summaryrefslogtreecommitdiff
path: root/libs/tgl/src
diff options
context:
space:
mode:
Diffstat (limited to 'libs/tgl/src')
-rw-r--r--libs/tgl/src/auto-static-autocomplete.c63
-rw-r--r--libs/tgl/src/auto-static-fetch-ds.c0
-rw-r--r--libs/tgl/src/auto-static-fetch.c106
-rw-r--r--libs/tgl/src/auto-static-free-ds.c0
-rw-r--r--libs/tgl/src/auto-static-print-ds.c106
-rw-r--r--libs/tgl/src/auto-static-print.c461
-rw-r--r--libs/tgl/src/auto-static-skip.c0
-rw-r--r--libs/tgl/src/auto-static-store-ds.c0
-rw-r--r--libs/tgl/src/auto-static-store.c262
-rw-r--r--libs/tgl/src/auto-static.c328
-rw-r--r--libs/tgl/src/auto.h62
-rw-r--r--libs/tgl/src/auto/auto-autocomplete.c29968
-rw-r--r--libs/tgl/src/auto/auto-autocomplete.h865
-rw-r--r--libs/tgl/src/auto/auto-fetch-ds.c11877
-rw-r--r--libs/tgl/src/auto/auto-fetch-ds.h716
-rw-r--r--libs/tgl/src/auto/auto-fetch.c16330
-rw-r--r--libs/tgl/src/auto/auto-fetch.h717
-rw-r--r--libs/tgl/src/auto/auto-free-ds.c9116
-rw-r--r--libs/tgl/src/auto/auto-free-ds.h569
-rw-r--r--libs/tgl/src/auto/auto-print-ds.c16382
-rw-r--r--libs/tgl/src/auto/auto-print-ds.h719
-rw-r--r--libs/tgl/src/auto/auto-skip.c11302
-rw-r--r--libs/tgl/src/auto/auto-skip.h714
-rw-r--r--libs/tgl/src/auto/auto-store-ds.c10208
-rw-r--r--libs/tgl/src/auto/auto-store-ds.h718
-rw-r--r--libs/tgl/src/auto/auto-store.c24400
-rw-r--r--libs/tgl/src/auto/auto-store.h848
-rw-r--r--libs/tgl/src/auto/auto-types.c1793
-rw-r--r--libs/tgl/src/auto/auto-types.h1589
-rw-r--r--libs/tgl/src/auto/constants.h561
-rw-r--r--libs/tgl/src/auto/scheme.tl829
-rw-r--r--libs/tgl/src/auto/scheme.tlobin0 -> 85572 bytes
-rw-r--r--libs/tgl/src/auto/scheme2.tl540
-rw-r--r--libs/tgl/src/binlog.c1830
-rw-r--r--libs/tgl/src/binlog.tl102
-rw-r--r--libs/tgl/src/config.h162
-rw-r--r--libs/tgl/src/encrypted_scheme.tl1
-rw-r--r--libs/tgl/src/encrypted_scheme16.tl22
-rw-r--r--libs/tgl/src/encrypted_scheme17.tl31
-rw-r--r--libs/tgl/src/encrypted_scheme18.tl38
-rw-r--r--libs/tgl/src/encrypted_scheme23.tl29
-rw-r--r--libs/tgl/src/errors11
-rw-r--r--libs/tgl/src/event-old.h48
-rw-r--r--libs/tgl/src/generate.c3219
-rw-r--r--libs/tgl/src/generate.h173
-rw-r--r--libs/tgl/src/mime-types.c4421
-rw-r--r--libs/tgl/src/mtproto-client.c1489
-rw-r--r--libs/tgl/src/mtproto-client.h61
-rw-r--r--libs/tgl/src/mtproto-common.c475
-rw-r--r--libs/tgl/src/mtproto-common.h385
-rw-r--r--libs/tgl/src/mtproto-utils.c178
-rw-r--r--libs/tgl/src/mtproto-utils.h7
-rw-r--r--libs/tgl/src/mtproto.tl19
-rw-r--r--libs/tgl/src/no-preview.h106
-rw-r--r--libs/tgl/src/queries-encrypted.c758
-rw-r--r--libs/tgl/src/queries.c4477
-rw-r--r--libs/tgl/src/queries.h84
-rw-r--r--libs/tgl/src/scheme.tl1
-rw-r--r--libs/tgl/src/scheme12.tl505
-rw-r--r--libs/tgl/src/scheme15.tl522
-rw-r--r--libs/tgl/src/scheme16.tl504
-rw-r--r--libs/tgl/src/scheme17.tl528
-rw-r--r--libs/tgl/src/scheme18.tl535
-rw-r--r--libs/tgl/src/scheme19.tl596
-rw-r--r--libs/tgl/src/scheme22.tl596
-rw-r--r--libs/tgl/src/scheme25.tl622
-rw-r--r--libs/tgl/src/scheme28.tl641
-rw-r--r--libs/tgl/src/scheme30.tl656
-rw-r--r--libs/tgl/src/scheme31.tl668
-rw-r--r--libs/tgl/src/structures.c2311
-rw-r--r--libs/tgl/src/tg-mime-types.c112
-rw-r--r--libs/tgl/src/tg-mime-types.h3
-rw-r--r--libs/tgl/src/tgl-binlog.h73
-rw-r--r--libs/tgl/src/tgl-fetch.h59
-rw-r--r--libs/tgl/src/tgl-inner.h33
-rw-r--r--libs/tgl/src/tgl-layout.h539
-rw-r--r--libs/tgl/src/tgl-methods-in.h50
-rw-r--r--libs/tgl/src/tgl-net-inner.h93
-rw-r--r--libs/tgl/src/tgl-net.c674
-rw-r--r--libs/tgl/src/tgl-net.h24
-rw-r--r--libs/tgl/src/tgl-structures.h69
-rw-r--r--libs/tgl/src/tgl-timers.c69
-rw-r--r--libs/tgl/src/tgl-timers.h27
-rw-r--r--libs/tgl/src/tgl.c149
-rw-r--r--libs/tgl/src/tgl.h659
-rw-r--r--libs/tgl/src/tools.c406
-rw-r--r--libs/tgl/src/tools.h142
-rw-r--r--libs/tgl/src/tree.h179
-rw-r--r--libs/tgl/src/updates.c668
-rw-r--r--libs/tgl/src/updates.h34
-rw-r--r--libs/tgl/src/wingetopt.c82
-rw-r--r--libs/tgl/src/wingetopt.h32
92 files changed, 173136 insertions, 0 deletions
diff --git a/libs/tgl/src/auto-static-autocomplete.c b/libs/tgl/src/auto-static-autocomplete.c
new file mode 100644
index 0000000000..43ec4cc02e
--- /dev/null
+++ b/libs/tgl/src/auto-static-autocomplete.c
@@ -0,0 +1,63 @@
+#define IN_AUTOCOMPLETE_H
+#include "auto-static-store.c"
+#undef IN_AUTOCOMPLETE_H
+
+static int autocomplete_mode;
+static char *autocomplete_string;
+static int (*autocomplete_fun)(const char *, int, int, char **);
+
+static void set_autocomplete_string (const char *s) {
+ if (autocomplete_string) { free (autocomplete_string); }
+ autocomplete_string = strdup (s);
+ assert (autocomplete_string);
+ autocomplete_mode = 1;
+}
+
+static void set_autocomplete_type (int (*f)(const char *, int, int, char **)) {
+ autocomplete_fun = f;
+ autocomplete_mode = 2;
+}
+
+#define MAX_FVARS 100
+static struct paramed_type *fvars[MAX_FVARS];
+static int fvars_pos;
+
+static void add_var_to_be_freed (struct paramed_type *P) {
+ assert (fvars_pos < MAX_FVARS);
+ fvars[fvars_pos ++] = P;
+}
+
+static 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;
+}
+
+int tglf_extf_autocomplete (struct tgl_state *TLS, const char *text, int text_len, int index, char **R, char *data, int data_len) {
+ if (index == -1) {
+ buffer_pos = data;
+ buffer_end = data + data_len;
+ autocomplete_mode = 0;
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_any ();
+ free_vars_to_be_freed ();
+ if (P) { tgl_paramed_type_free (P); }
+ }
+ if (autocomplete_mode == 0) { return -1; }
+ int len = strlen (text);
+ if (autocomplete_mode == 1) {
+ if (index >= 0) { return -1; }
+ index = 0;
+ if (!strncmp (text, autocomplete_string, len)) {
+ *R = strdup (autocomplete_string);
+ assert (*R);
+ return index;
+ } else {
+ return -1;
+ }
+ } else {
+ return autocomplete_fun (text, len, index, R);
+ }
+}
diff --git a/libs/tgl/src/auto-static-fetch-ds.c b/libs/tgl/src/auto-static-fetch-ds.c
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/libs/tgl/src/auto-static-fetch-ds.c
diff --git a/libs/tgl/src/auto-static-fetch.c b/libs/tgl/src/auto-static-fetch.c
new file mode 100644
index 0000000000..4d4e47cc5c
--- /dev/null
+++ b/libs/tgl/src/auto-static-fetch.c
@@ -0,0 +1,106 @@
+static int multiline_output = 1;
+static int multiline_offset;
+static int multiline_offset_size = 2;
+
+static int disable_field_names;
+
+#define OUT_BUF_SIZE (1 << 25)
+static char out_buf[OUT_BUF_SIZE];
+static 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)\
+
+static 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;
+}
+
+static 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 ("\"");
+}
+
+static void print_offset (void) {
+ int i;
+ for (i = 0; i < multiline_offset; i++) {
+ eprintf (" ");
+ }
+}
+
+char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T) {
+ out_buf_pos = 0;
+ if (fetch_type_any (T) < 0) { return 0; }
+ return out_buf;
+}
diff --git a/libs/tgl/src/auto-static-free-ds.c b/libs/tgl/src/auto-static-free-ds.c
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/libs/tgl/src/auto-static-free-ds.c
diff --git a/libs/tgl/src/auto-static-print-ds.c b/libs/tgl/src/auto-static-print-ds.c
new file mode 100644
index 0000000000..cfec470fcc
--- /dev/null
+++ b/libs/tgl/src/auto-static-print-ds.c
@@ -0,0 +1,106 @@
+static int multiline_output = 1;
+static int multiline_offset;
+static int multiline_offset_size = 2;
+
+static int disable_field_names;
+
+#define OUT_BUF_SIZE (1 << 25)
+static char out_buf[OUT_BUF_SIZE];
+static 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)\
+
+static 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;
+}
+
+static 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 ("\"");
+}
+
+static void print_offset (void) {
+ int i;
+ for (i = 0; i < multiline_offset; i++) {
+ eprintf (" ");
+ }
+}
+
+char *tglf_extf_print_ds (struct tgl_state *TLS, void *DS, struct paramed_type *T) {
+ out_buf_pos = 0;
+ if (print_ds_type_any (DS, T) < 0) { return 0; }
+ return out_buf;
+}
diff --git a/libs/tgl/src/auto-static-print.c b/libs/tgl/src/auto-static-print.c
new file mode 100644
index 0000000000..3c4e810fad
--- /dev/null
+++ b/libs/tgl/src/auto-static-print.c
@@ -0,0 +1,461 @@
+/*
+ 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 <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+static int cur_token_len;
+static char *cur_token;
+static int cur_token_real_len;
+static int cur_token_quoted;
+static int multiline_output = 1;
+static int multiline_offset;
+static int multiline_offset_size = 2;
+
+static int *in_ptr, *in_end;
+
+static inline int fetch_int (void) {
+ return *(in_ptr ++);
+}
+
+static inline int fetch_long (void) {
+ long long r = *(long long *)in_ptr;
+ in_ptr += 2;
+ return r;
+}
+
+static inline int fetch_long (void) {
+ long long r = *(long long *)in_ptr;
+ in_ptr += 2;
+ return r;
+}
+
+static inline void out_int (int a) {}
+static inline void out_double (double a) {}
+static inline void out_string (char *s, int l) {}
+static inline void out_long (long long a) {}
+
+static 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 ();
+
+
+static int autocomplete_mode;
+static char *autocomplete_string;
+static int (*autocomplete_fun)(const char *, int, int, char **);
+
+static void set_autocomplete_string (const char *s) {
+ if (autocomplete_string) { free (autocomplete_string); }
+ autocomplete_string = strdup (s);
+ assert (autocomplete_string);
+ autocomplete_mode = 1;
+}
+
+static void set_autocomplete_type (int (*f)(const char *, int, int, char **)) {
+ autocomplete_fun = f;
+ autocomplete_mode = 2;
+}
+
+static 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;
+}
+
+static 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;
+}
+
+static 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;
+}
+
+static 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;
+}
+
+static 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 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);
+}
+
+static char *buffer_pos, *buffer_end;
+
+static int is_wspc (char c) {
+ return c <= 32 && c > 0;
+}
+
+static void skip_wspc (void) {
+ while (buffer_pos < buffer_end && is_wspc (*buffer_pos)) {
+ buffer_pos ++;
+ }
+}
+
+static int is_letter (char c) {
+ return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '.' || c == '_' || c == '-';
+}
+
+
+static char exp_buffer[1 << 25];;
+static int exp_buffer_pos;
+
+static inline int is_hex (char c) {
+ return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f');
+}
+
+static inline int hex2dec (char c) {
+ if (c >= '0' && c <= '9') { return c - '0'; }
+ else { return c - 'a' + 10; }
+}
+
+static 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 ++];
+ }
+ }
+ }
+}
+
+static 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
+static struct paramed_type *fvars[MAX_FVARS];
+static int fvars_pos;
+
+static void add_var_to_be_freed (struct paramed_type *P) {
+ assert (fvars_pos < MAX_FVARS);
+ fvars[fvars_pos ++] = P;
+}
+
+static 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;
+}
+
+int tglf_extf_autocomplete (const char *text, int text_len, int index, char **R, char *data, int data_len) {
+ if (index == -1) {
+ buffer_pos = data;
+ buffer_end = data + data_len;
+ autocomplete_mode = 0;
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_any ();
+ free_vars_to_be_freed ();
+ if (P) { tgl_paramed_type_free (P); }
+ }
+ if (autocomplete_mode == 0) { return -1; }
+ int len = strlen (text);
+ if (autocomplete_mode == 1) {
+ if (index >= 0) { return -1; }
+ index = 0;
+ if (!strncmp (text, autocomplete_string, len)) {
+ *R = strdup (autocomplete_string);
+ assert (*R);
+ return index;
+ } else {
+ return -1;
+ }
+ } else {
+ return autocomplete_fun (text, len, index, R);
+ }
+}
+
+struct paramed_type *tglf_extf_store (const char *data, int data_len) {
+ buffer_pos = (char *)data;
+ buffer_end = (char *)(data + data_len);
+ local_next_token ();
+ return store_function_any ();
+}
+
+#define OUT_BUF_SIZE (1 << 25)
+static char out_buf[OUT_BUF_SIZE];
+static 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)\
+
+static 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;
+}
+
+static 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 ("\"");
+}
+
+static void print_offset (void) {
+ int i;
+ for (i = 0; i < multiline_offset; i++) {
+ eprintf (" ");
+ }
+}
+
+char *tglf_extf_fetch (struct paramed_type *T) {
+ out_buf_pos = 0;
+ fetch_type_any (T);
+ return out_buf;
+}
diff --git a/libs/tgl/src/auto-static-skip.c b/libs/tgl/src/auto-static-skip.c
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/libs/tgl/src/auto-static-skip.c
diff --git a/libs/tgl/src/auto-static-store-ds.c b/libs/tgl/src/auto-static-store-ds.c
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/libs/tgl/src/auto-static-store-ds.c
diff --git a/libs/tgl/src/auto-static-store.c b/libs/tgl/src/auto-static-store.c
new file mode 100644
index 0000000000..bff0cb5f84
--- /dev/null
+++ b/libs/tgl/src/auto-static-store.c
@@ -0,0 +1,262 @@
+static int cur_token_len;
+static char *cur_token;
+static int cur_token_real_len;
+static int cur_token_quoted;
+
+#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 ();
+
+static 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;
+}
+
+static 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;
+}
+
+static 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;
+}
+
+#ifndef IN_AUTOCOMPLETE_H
+static 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;
+}
+#endif
+
+static char *buffer_pos, *buffer_end;
+
+static int is_wspc (char c) {
+ return c <= 32 && c > 0;
+}
+
+static void skip_wspc (void) {
+ while (buffer_pos < buffer_end && is_wspc (*buffer_pos)) {
+ buffer_pos ++;
+ }
+}
+
+static int is_letter (char c) {
+ return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '.' || c == '_' || c == '-';
+}
+
+
+static char exp_buffer[1 << 25];;
+static int exp_buffer_pos;
+
+static inline int is_hex (char c) {
+ return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f');
+}
+
+static inline int hex2dec (char c) {
+ if (c >= '0' && c <= '9') { return c - '0'; }
+ else { return c - 'a' + 10; }
+}
+
+static 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 ++];
+ }
+ }
+ }
+}
+
+static 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;
+ }
+ }
+}
+
+static 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;
+}
+
+#ifndef IN_AUTOCOMPLETE_H
+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);
+}
+#else
+void tgl_paramed_type_free (struct paramed_type *P);
+#endif
+
+#ifndef IN_AUTOCOMPLETE_H
+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 ();
+}
+
+int tglf_store_type (struct tgl_state *TLS, const char *data, int data_len, struct paramed_type *P) {
+ buffer_pos = (char *)data;
+ buffer_end = (char *)(data + data_len);
+ local_next_token ();
+ return store_type_any (P);
+}
+#endif
diff --git a/libs/tgl/src/auto-static.c b/libs/tgl/src/auto-static.c
new file mode 100644
index 0000000000..89a0a176bf
--- /dev/null
+++ b/libs/tgl/src/auto-static.c
@@ -0,0 +1,328 @@
+/*
+ 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 "mtproto-common.h"
+#include "config.h"
+#include <string.h>
+
+#ifndef DISABLE_EXTF
+static int cur_token_len;
+static char *cur_token;
+static int cur_token_real_len;
+static int cur_token_quoted;
+
+#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 ();
+
+
+static int autocomplete_mode;
+static char *autocomplete_string;
+static int (*autocomplete_fun)(const char *, int, int, char **);
+
+static void set_autocomplete_string (const char *s) {
+ if (autocomplete_string) { free (autocomplete_string); }
+ autocomplete_string = strdup (s);
+ assert (autocomplete_string);
+ autocomplete_mode = 1;
+}
+
+static void set_autocomplete_type (int (*f)(const char *, int, int, char **)) {
+ autocomplete_fun = f;
+ autocomplete_mode = 2;
+}
+
+static 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;
+}
+
+static 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;
+}
+
+static 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;
+}
+
+static 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;
+}
+
+static 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 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);
+}
+
+static char *buffer_pos, *buffer_end;
+
+static int is_wspc (char c) {
+ return c <= 32 && c > 0;
+}
+
+static void skip_wspc (void) {
+ while (buffer_pos < buffer_end && is_wspc (*buffer_pos)) {
+ buffer_pos ++;
+ }
+}
+
+static int is_letter (char c) {
+ return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '.' || c == '_' || c == '-';
+}
+
+
+static char exp_buffer[1 << 25];;
+static int exp_buffer_pos;
+
+static inline int is_hex (char c) {
+ return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f');
+}
+
+static inline int hex2dec (char c) {
+ if (c >= '0' && c <= '9') { return c - '0'; }
+ else { return c - 'a' + 10; }
+}
+
+static 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 ++];
+ }
+ }
+ }
+}
+
+static 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
+static struct paramed_type *fvars[MAX_FVARS];
+static int fvars_pos;
+
+static void add_var_to_be_freed (struct paramed_type *P) {
+ assert (fvars_pos < MAX_FVARS);
+ fvars[fvars_pos ++] = P;
+}
+
+static 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;
+}
+
+int tglf_extf_autocomplete (struct tgl_state *TLS, const char *text, int text_len, int index, char **R, char *data, int data_len) {
+ if (index == -1) {
+ buffer_pos = data;
+ buffer_end = data + data_len;
+ autocomplete_mode = 0;
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_any ();
+ free_vars_to_be_freed ();
+ if (P) { tgl_paramed_type_free (P); }
+ }
+ if (autocomplete_mode == 0) { return -1; }
+ int len = strlen (text);
+ if (autocomplete_mode == 1) {
+ if (index >= 0) { return -1; }
+ index = 0;
+ if (!strncmp (text, autocomplete_string, len)) {
+ *R = strdup (autocomplete_string);
+ assert (*R);
+ return index;
+ } else {
+ return -1;
+ }
+ } else {
+ return autocomplete_fun (text, len, index, R);
+ }
+}
+
+#endif
diff --git a/libs/tgl/src/auto.h b/libs/tgl/src/auto.h
new file mode 100644
index 0000000000..b2e216aff3
--- /dev/null
+++ b/libs/tgl/src/auto.h
@@ -0,0 +1,62 @@
+/*
+ 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__
+
+#include "tools.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)
+
+static inline void *memdup (const void *d, int len) {
+ assert (d || !len);
+ if (!d) { return NULL; }
+ void *r = talloc (len);
+ memcpy (r, d, len);
+ return r;
+}
+
+#define DS_LVAL(x) ((x) ? *(x) : 0)
+#define DS_STR(x) ((x) ? (x)->data : NULL), ((x) ? (x)->len : 0)
+#define DS_RSTR(x) ((x) ? (x)->len : 0), ((x) ? (x)->data : NULL)
+#define DS_STR_DUP(x) memdup(((x) ? (x)->data : NULL), ((x) ? (x)->len + 1: 0))
+#define DS_BVAL(x) ((x) && ((x)->magic == CODE_bool_true))
+
+void tgl_paramed_type_free (struct paramed_type *P);
+
+#endif
diff --git a/libs/tgl/src/auto/auto-autocomplete.c b/libs/tgl/src/auto/auto-autocomplete.c
new file mode 100644
index 0000000000..e0f5d4a990
--- /dev/null
+++ b/libs/tgl/src/auto/auto-autocomplete.c
@@ -0,0 +1,29968 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#include "..\mtproto-common.h"
+#include "auto-autocomplete.h"
+#include "..\auto-static-autocomplete.c"
+#else
+#include "auto.h"
+#include "mtproto-common.h"
+#include "auto/auto-autocomplete.h"
+#include "auto-static-autocomplete.c"
+#endif
+#include <assert.h>
+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 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 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 autocomplete_constructor_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { 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 = 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, "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 <= 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", cur_token_real_len)) {
+ set_autocomplete_string ("device_model");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "device_model", 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, "platform", cur_token_real_len)) {
+ set_autocomplete_string ("platform");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "platform", 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 <= 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", cur_token_real_len)) {
+ set_autocomplete_string ("system_version");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "system_version", 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 <= 6 && !cur_token_quoted && !memcmp (cur_token, "api_id", cur_token_real_len)) {
+ set_autocomplete_string ("api_id");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "api_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, "app_name", cur_token_real_len)) {
+ set_autocomplete_string ("app_name");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "app_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;}
+ 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 -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "app_version", 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 <= 12 && !cur_token_quoted && !memcmp (cur_token, "date_created", cur_token_real_len)) {
+ set_autocomplete_string ("date_created");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "date_created", 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 <= 11 && !cur_token_quoted && !memcmp (cur_token, "date_active", cur_token_real_len)) {
+ set_autocomplete_string ("date_active");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "date_active", 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 <= 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 *field11 =
+ &(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 (field11) < 0) { 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 *field12 =
+ &(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 (field12) < 0) { return -1;}
+ if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "region", cur_token_real_len)) {
+ set_autocomplete_string ("region");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "region", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field13 =
+ &(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 (field13) < 0) { return -1;}
+ 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 autocomplete_constructor_bool_true (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_bot_command (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "command", cur_token_real_len)) {
+ set_autocomplete_string ("command");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "command", 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 <= 11 && !cur_token_quoted && !memcmp (cur_token, "description", cur_token_real_len)) {
+ set_autocomplete_string ("description");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "description", 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 autocomplete_constructor_bot_command_old (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "command", cur_token_real_len)) {
+ set_autocomplete_string ("command");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "command", 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 <= 6 && !cur_token_quoted && !memcmp (cur_token, "params", cur_token_real_len)) {
+ set_autocomplete_string ("params");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "params", 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 <= 11 && !cur_token_quoted && !memcmp (cur_token, "description", cur_token_real_len)) {
+ set_autocomplete_string ("description");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "description", 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 autocomplete_constructor_bot_info_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_bot_info (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { 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, "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 <= 10 && !cur_token_quoted && !memcmp (cur_token, "share_text", cur_token_real_len)) {
+ set_autocomplete_string ("share_text");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "share_text", 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 <= 11 && !cur_token_quoted && !memcmp (cur_token, "description", cur_token_real_len)) {
+ set_autocomplete_string ("description");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "description", 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 <= 8 && !cur_token_quoted && !memcmp (cur_token, "commands", cur_token_real_len)) {
+ set_autocomplete_string ("commands");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "commands", 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 = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field5) < 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 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 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 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 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 autocomplete_constructor_chat_full (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { 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 = 0xc207550a, .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 <= 15 && !cur_token_quoted && !memcmp (cur_token, "exported_invite", cur_token_real_len)) {
+ set_autocomplete_string ("exported_invite");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "exported_invite", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_exported_chat_invite (field5) < 0) { return -1;}
+ if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "bot_info", cur_token_real_len)) {
+ set_autocomplete_string ("bot_info");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "bot_info", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field6) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_chat_invite_already (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { 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;}
+ return 0;
+}
+int autocomplete_constructor_chat_invite (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { 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 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 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 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 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 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 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 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 autocomplete_constructor_config (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { 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 <= 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 *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, "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 *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 <= 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 *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 <= 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 *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 = 0x2b1a62f0, .id = "DcOption", .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 <= 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 *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 <= 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 *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 <= 19 && !cur_token_quoted && !memcmp (cur_token, "forwarded_count_max", cur_token_real_len)) {
+ set_autocomplete_string ("forwarded_count_max");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 19 && !memcmp (cur_token, "forwarded_count_max", 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 <= 23 && !cur_token_quoted && !memcmp (cur_token, "online_update_period_ms", cur_token_real_len)) {
+ set_autocomplete_string ("online_update_period_ms");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 23 && !memcmp (cur_token, "online_update_period_ms", 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 <= 23 && !cur_token_quoted && !memcmp (cur_token, "offline_blur_timeout_ms", cur_token_real_len)) {
+ set_autocomplete_string ("offline_blur_timeout_ms");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 23 && !memcmp (cur_token, "offline_blur_timeout_ms", 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 <= 23 && !cur_token_quoted && !memcmp (cur_token, "offline_idle_timeout_ms", cur_token_real_len)) {
+ set_autocomplete_string ("offline_idle_timeout_ms");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 23 && !memcmp (cur_token, "offline_idle_timeout_ms", 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 <= 23 && !cur_token_quoted && !memcmp (cur_token, "online_cloud_timeout_ms", cur_token_real_len)) {
+ set_autocomplete_string ("online_cloud_timeout_ms");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 23 && !memcmp (cur_token, "online_cloud_timeout_ms", 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;}
+ if (cur_token_len == -3 && cur_token_real_len <= 21 && !cur_token_quoted && !memcmp (cur_token, "notify_cloud_delay_ms", cur_token_real_len)) {
+ set_autocomplete_string ("notify_cloud_delay_ms");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 21 && !memcmp (cur_token, "notify_cloud_delay_ms", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_int (field13) < 0) { return -1;}
+ if (cur_token_len == -3 && cur_token_real_len <= 23 && !cur_token_quoted && !memcmp (cur_token, "notify_default_delay_ms", cur_token_real_len)) {
+ set_autocomplete_string ("notify_default_delay_ms");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 23 && !memcmp (cur_token, "notify_default_delay_ms", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_int (field14) < 0) { return -1;}
+ if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "chat_big_size", cur_token_real_len)) {
+ set_autocomplete_string ("chat_big_size");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "chat_big_size", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_int (field15) < 0) { return -1;}
+ if (cur_token_len == -3 && cur_token_real_len <= 19 && !cur_token_quoted && !memcmp (cur_token, "push_chat_period_ms", cur_token_real_len)) {
+ set_autocomplete_string ("push_chat_period_ms");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 19 && !memcmp (cur_token, "push_chat_period_ms", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field16 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_int (field16) < 0) { return -1;}
+ if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "push_chat_limit", cur_token_real_len)) {
+ set_autocomplete_string ("push_chat_limit");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "push_chat_limit", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field17 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_int (field17) < 0) { return -1;}
+ if (cur_token_len == -3 && cur_token_real_len <= 17 && !cur_token_quoted && !memcmp (cur_token, "disabled_features", cur_token_real_len)) {
+ set_autocomplete_string ("disabled_features");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 17 && !memcmp (cur_token, "disabled_features", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field18 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field18) < 0) { return -1;}
+ 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 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 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 autocomplete_constructor_contact_link_unknown (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_contact_link_none (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_contact_link_has_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_contact_link_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ 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 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 autocomplete_constructor_dc_option_l28 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { 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 autocomplete_constructor_dc_option (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { 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 <= 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 autocomplete_constructor_decrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { 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 <= 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;}
+ 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 = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_decrypted_message_media (field4) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_decrypted_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { 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 <= 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 = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_decrypted_message_action (field2) < 0) { return -1;}
+ 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 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 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 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 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 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 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 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 = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_send_message_action (field1) < 0) { return -1;}
+ 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 = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_bytes (field2) < 0) { return -1;}
+ 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 = 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 <= 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 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 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 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 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 <= 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 *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 <= 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;}
+ 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 *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;}
+ 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 = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_decrypted_message (field5) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_decrypted_message_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_decrypted_message_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "str_thumb", cur_token_real_len)) {
+ set_autocomplete_string ("str_thumb");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "str_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 autocomplete_constructor_decrypted_message_media_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "latitude", cur_token_real_len)) {
+ set_autocomplete_string ("latitude");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "latitude", 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 <= 9 && !cur_token_quoted && !memcmp (cur_token, "longitude", cur_token_real_len)) {
+ set_autocomplete_string ("longitude");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "longitude", 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 autocomplete_constructor_decrypted_message_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 autocomplete_constructor_decrypted_message_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "str_thumb", cur_token_real_len)) {
+ set_autocomplete_string ("str_thumb");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "str_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 autocomplete_constructor_decrypted_message_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "str_thumb", cur_token_real_len)) {
+ set_autocomplete_string ("str_thumb");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "str_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 autocomplete_constructor_decrypted_message_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 autocomplete_constructor_decrypted_message_media_external_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field8) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_decrypted_message_media_video_l12 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "str_thumb", cur_token_real_len)) {
+ set_autocomplete_string ("str_thumb");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "str_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 <= 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 *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 <= 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 *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, "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 <= 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 *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;}
+ 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 *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;}
+ return 0;
+}
+int autocomplete_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 <= 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 *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);
+ }
+ 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;}
+ 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 *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 autocomplete_constructor_dialog (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { 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 <= 17 && !cur_token_quoted && !memcmp (cur_token, "read_inbox_max_id", cur_token_real_len)) {
+ set_autocomplete_string ("read_inbox_max_id");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 17 && !memcmp (cur_token, "read_inbox_max_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 <= 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 *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, "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 *field5 =
+ &(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 (field5) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_disabled_feature (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "feature", cur_token_real_len)) {
+ set_autocomplete_string ("feature");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "feature", 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 <= 11 && !cur_token_quoted && !memcmp (cur_token, "description", cur_token_real_len)) {
+ set_autocomplete_string ("description");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "description", 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 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 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field8) < 0) { return -1;}
+ 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 autocomplete_constructor_document_attribute_image_size (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 autocomplete_constructor_document_attribute_animated (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_document_attribute_sticker_l28 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "alt", cur_token_real_len)) {
+ set_autocomplete_string ("alt");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "alt", 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 autocomplete_constructor_document_attribute_sticker (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "alt", cur_token_real_len)) {
+ set_autocomplete_string ("alt");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "alt", 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, "stickerset", cur_token_real_len)) {
+ set_autocomplete_string ("stickerset");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "stickerset", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_input_sticker_set (field2) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_document_attribute_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 autocomplete_constructor_document_attribute_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 autocomplete_constructor_document_attribute_filename (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 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 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 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 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 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 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 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 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 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 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 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 autocomplete_constructor_chat_invite_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_chat_invite_exported (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { 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 *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 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 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 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 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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_message_media (field6) < 0) { return -1;}
+ 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 = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_message_action (field5) < 0) { return -1;}
+ 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 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 <= 9 && !cur_token_quoted && !memcmp (cur_token, "longitude", cur_token_real_len)) {
+ set_autocomplete_string ("longitude");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "longitude", 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, "latitude", cur_token_real_len)) {
+ set_autocomplete_string ("latitude");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "latitude", 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 <= 8 && !cur_token_quoted && !memcmp (cur_token, "latitude", cur_token_real_len)) {
+ set_autocomplete_string ("latitude");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "latitude", 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 <= 9 && !cur_token_quoted && !memcmp (cur_token, "longitude", cur_token_real_len)) {
+ set_autocomplete_string ("longitude");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "longitude", 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 autocomplete_constructor_input_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_input_media_uploaded_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 <= 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 *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 autocomplete_constructor_input_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 <= 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 *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 autocomplete_constructor_input_media_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 autocomplete_constructor_input_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 autocomplete_constructor_input_media_uploaded_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 <= 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;}
+ return 0;
+}
+int autocomplete_constructor_input_media_uploaded_thumb_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 <= 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 *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 autocomplete_constructor_input_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "video_id", cur_token_real_len)) {
+ set_autocomplete_string ("video_id");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "video_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;}
+ 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 *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 autocomplete_constructor_input_media_uploaded_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 autocomplete_constructor_input_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "audio_id", cur_token_real_len)) {
+ set_autocomplete_string ("audio_id");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "audio_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 autocomplete_constructor_input_media_uploaded_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field3) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_input_media_uploaded_thumb_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field4) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_input_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "document_id", cur_token_real_len)) {
+ set_autocomplete_string ("document_id");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "document_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 autocomplete_constructor_input_media_venue (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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;}
+ 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 <= 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 *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, "provider", cur_token_real_len)) {
+ set_autocomplete_string ("provider");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "provider", 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 <= 8 && !cur_token_quoted && !memcmp (cur_token, "venue_id", cur_token_real_len)) {
+ set_autocomplete_string ("venue_id");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "venue_id", 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 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 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 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 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 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 <= 8 && !cur_token_quoted && !memcmp (cur_token, "geo_peer", cur_token_real_len)) {
+ set_autocomplete_string ("geo_peer");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "geo_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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 autocomplete_constructor_input_sticker_set_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_input_sticker_set_i_d (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { 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 autocomplete_constructor_input_sticker_set_short_name (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "short_name", cur_token_real_len)) {
+ set_autocomplete_string ("short_name");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "short_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 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 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 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 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 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 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 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 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 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 autocomplete_constructor_keyboard_button (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { 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 autocomplete_constructor_keyboard_button_row (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { 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 = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field1) < 0) { return -1;}
+ 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 autocomplete_constructor_message_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { 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 autocomplete_constructor_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 3)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", cur_token_real_len)) {
+ set_autocomplete_string ("reply_to_msg_id");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "reply_to_msg_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 <= 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 *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 <= 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 *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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_message_media (field10) < 0) { return -1;}
+ if (PTR2INT (var0) & (1 << 6)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_real_len)) {
+ set_autocomplete_string ("reply_markup");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "reply_markup", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_reply_markup (field11) < 0) { return -1;}
+ }
+ return 0;
+}
+int autocomplete_constructor_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { 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 = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_message_action (field6) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_message_action_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_message_action_chat_create (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 autocomplete_constructor_message_action_chat_edit_title (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 autocomplete_constructor_message_action_chat_edit_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_photo (field1) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_message_action_chat_delete_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_message_action_chat_add_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 autocomplete_constructor_message_action_chat_delete_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 autocomplete_constructor_message_action_geo_chat_create (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 autocomplete_constructor_message_action_geo_chat_checkin (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_message_action_chat_joined_by_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 *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 autocomplete_constructor_message_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_message_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 = 0xc207550a, .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 <= 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 *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 autocomplete_constructor_message_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_video (field1) < 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 *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 autocomplete_constructor_message_media_geo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 autocomplete_constructor_message_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 autocomplete_constructor_message_media_unsupported (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_message_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 autocomplete_constructor_message_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 autocomplete_constructor_message_media_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "webpage", cur_token_real_len)) {
+ set_autocomplete_string ("webpage");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "webpage", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_web_page (field1) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_message_media_venue (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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;}
+ 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 <= 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 *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, "provider", cur_token_real_len)) {
+ set_autocomplete_string ("provider");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "provider", 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 <= 8 && !cur_token_quoted && !memcmp (cur_token, "venue_id", cur_token_real_len)) {
+ set_autocomplete_string ("venue_id");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "venue_id", 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 autocomplete_constructor_message_media_photo_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_photo (field1) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_message_media_video_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_video (field1) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_input_messages_filter_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_input_messages_filter_photos (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_input_messages_filter_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_input_messages_filter_photo_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_input_messages_filter_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_input_messages_filter_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ 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 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 autocomplete_constructor_notify_users (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+ 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 autocomplete_constructor_notify_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+ 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 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 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 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 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 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 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 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 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 autocomplete_constructor_photo_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { 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 autocomplete_constructor_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { 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 <= 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 *field5 =
+ &(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 (field5) < 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 *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_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 (field6) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_photo_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { 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 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 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 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 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 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 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 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 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 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 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 autocomplete_constructor_received_notify_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { 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;}
+ return 0;
+}
+int autocomplete_constructor_reply_keyboard_hide (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { 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;}
+ return 0;
+}
+int autocomplete_constructor_reply_keyboard_force_reply (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { 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;}
+ return 0;
+}
+int autocomplete_constructor_reply_keyboard_markup (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { 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 <= 4 && !cur_token_quoted && !memcmp (cur_token, "rows", cur_token_real_len)) {
+ set_autocomplete_string ("rows");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "rows", 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 = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field2) < 0) { return -1;}
+ 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 autocomplete_constructor_send_message_typing_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_send_message_cancel_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_send_message_record_video_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_send_message_upload_video_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_send_message_upload_video_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "progress", cur_token_real_len)) {
+ set_autocomplete_string ("progress");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "progress", 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 autocomplete_constructor_send_message_record_audio_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_send_message_upload_audio_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "progress", cur_token_real_len)) {
+ set_autocomplete_string ("progress");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "progress", 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 autocomplete_constructor_send_message_upload_photo_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "progress", cur_token_real_len)) {
+ set_autocomplete_string ("progress");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "progress", 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 autocomplete_constructor_send_message_upload_document_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_send_message_upload_document_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "progress", cur_token_real_len)) {
+ set_autocomplete_string ("progress");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "progress", 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 autocomplete_constructor_send_message_geo_location_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_send_message_choose_contact_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ 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 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 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 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 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 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 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 autocomplete_constructor_sticker_set (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { 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 <= 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 <= 10 && !cur_token_quoted && !memcmp (cur_token, "short_name", cur_token_real_len)) {
+ set_autocomplete_string ("short_name");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "short_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 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 autocomplete_constructor_update_new_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x5d652a7f, .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;}
+ if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) {
+ set_autocomplete_string ("pts_count");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_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;}
+ return 0;
+}
+int autocomplete_constructor_update_message_i_d (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 autocomplete_constructor_update_delete_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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;}
+ if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) {
+ set_autocomplete_string ("pts_count");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_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;}
+ return 0;
+}
+int autocomplete_constructor_update_user_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_send_message_action (field2) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_update_chat_user_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_send_message_action (field3) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_update_chat_participants (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 autocomplete_constructor_update_user_status (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 autocomplete_constructor_update_user_name (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 autocomplete_constructor_update_user_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 autocomplete_constructor_update_contact_registered (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 autocomplete_constructor_update_contact_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_contact_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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_contact_link (field3) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_update_new_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 autocomplete_constructor_update_new_geo_chat_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "geo_message", cur_token_real_len)) {
+ set_autocomplete_string ("geo_message");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "geo_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 autocomplete_constructor_update_new_encrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "encr_message", cur_token_real_len)) {
+ set_autocomplete_string ("encr_message");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "encr_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 autocomplete_constructor_update_encrypted_chat_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 autocomplete_constructor_update_encryption (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "encr_chat", cur_token_real_len)) {
+ set_autocomplete_string ("encr_chat");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "encr_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 autocomplete_constructor_update_encrypted_messages_read (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 autocomplete_constructor_update_chat_participant_add (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 autocomplete_constructor_update_chat_participant_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 autocomplete_constructor_update_dc_options (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field1) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_update_user_blocked (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 autocomplete_constructor_update_notify_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "notify_peer", cur_token_real_len)) {
+ set_autocomplete_string ("notify_peer");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "notify_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 autocomplete_constructor_update_service_notification (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 <= 12 && !cur_token_quoted && !memcmp (cur_token, "message_text", cur_token_real_len)) {
+ set_autocomplete_string ("message_text");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "message_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;}
+ 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 = 0x95f2471a, .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 autocomplete_constructor_update_privacy (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 autocomplete_constructor_update_user_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 autocomplete_constructor_update_read_history_inbox (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) {
+ set_autocomplete_string ("max_id");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_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 <= 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 <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) {
+ set_autocomplete_string ("pts_count");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_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;}
+ return 0;
+}
+int autocomplete_constructor_update_read_history_outbox (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) {
+ set_autocomplete_string ("max_id");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_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 <= 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 <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) {
+ set_autocomplete_string ("pts_count");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_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;}
+ return 0;
+}
+int autocomplete_constructor_update_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "webpage", cur_token_real_len)) {
+ set_autocomplete_string ("webpage");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "webpage", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_web_page (field1) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_update_read_messages_contents (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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;}
+ if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) {
+ set_autocomplete_string ("pts_count");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_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;}
+ return 0;
+}
+int autocomplete_constructor_update_msg_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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, "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;}
+ if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) {
+ set_autocomplete_string ("pts_count");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_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;}
+ return 0;
+}
+int autocomplete_constructor_updates_too_long (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_update_short_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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, "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 <= 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 <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) {
+ set_autocomplete_string ("pts_count");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", 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, "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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 3)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", cur_token_real_len)) {
+ set_autocomplete_string ("reply_to_msg_id");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "reply_to_msg_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;}
+ }
+ return 0;
+}
+int autocomplete_constructor_update_short_chat_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 <= 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 *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 <= 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 *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, "pts_count", cur_token_real_len)) {
+ set_autocomplete_string ("pts_count");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", 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, "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 *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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 3)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", cur_token_real_len)) {
+ set_autocomplete_string ("reply_to_msg_id");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "reply_to_msg_id", 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 autocomplete_constructor_update_short (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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 = 0x2e02b27e, .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 autocomplete_constructor_updates_combined (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 autocomplete_constructor_updates (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 autocomplete_constructor_user_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { 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 autocomplete_constructor_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 (PTR2INT (var0) & (1 << 0)) {
+ 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 *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 (PTR2INT (var0) & (1 << 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 *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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 3)) {
+ 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 *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 (PTR2INT (var0) & (1 << 4)) {
+ 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 *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 (PTR2INT (var0) & (1 << 5)) {
+ 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 *field8 =
+ &(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 (field8) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ 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 *field9 =
+ &(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 (field9) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 14)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 16 && !cur_token_quoted && !memcmp (cur_token, "bot_info_version", cur_token_real_len)) {
+ set_autocomplete_string ("bot_info_version");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 16 && !memcmp (cur_token, "bot_info_version", 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;}
+ }
+ return 0;
+}
+int autocomplete_constructor_user_full (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { 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 = 0x02e6c0c8, .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 = 0x3ace484c, .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 = 0xc207550a, .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 <= 8 && !cur_token_quoted && !memcmp (cur_token, "bot_info", cur_token_real_len)) {
+ set_autocomplete_string ("bot_info");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "bot_info", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bot_info (field6) < 0) { return -1;}
+ 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 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 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 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 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 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 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 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 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 autocomplete_constructor_video_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { 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 autocomplete_constructor_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { 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 <= 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 <= 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 *field7 =
+ &(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 (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;}
+ 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 *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 <= 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 *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;}
+ return 0;
+}
+int autocomplete_constructor_video_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { 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 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 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 autocomplete_constructor_web_page_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { 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 autocomplete_constructor_web_page_pending (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { 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, "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 autocomplete_constructor_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 = 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, "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 <= 11 && !cur_token_quoted && !memcmp (cur_token, "display_url", cur_token_real_len)) {
+ set_autocomplete_string ("display_url");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "display_url", 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 (PTR2INT (var0) & (1 << 0)) {
+ 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 *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 (PTR2INT (var0) & (1 << 1)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "site_name", cur_token_real_len)) {
+ set_autocomplete_string ("site_name");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "site_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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 3)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "description", cur_token_real_len)) {
+ set_autocomplete_string ("description");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "description", 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 (PTR2INT (var0) & (1 << 4)) {
+ 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 *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_photo (field9) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "embed_url", cur_token_real_len)) {
+ set_autocomplete_string ("embed_url");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "embed_url", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field10 =
+ &(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 (field10) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "embed_type", cur_token_real_len)) {
+ set_autocomplete_string ("embed_type");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "embed_type", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field11 =
+ &(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 (field11) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "embed_width", cur_token_real_len)) {
+ set_autocomplete_string ("embed_width");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "embed_width", 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;}
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "embed_height", cur_token_real_len)) {
+ set_autocomplete_string ("embed_height");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "embed_height", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_int (field13) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 7)) {
+ 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 *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_int (field14) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 8)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "author", cur_token_real_len)) {
+ set_autocomplete_string ("author");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "author", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field15 =
+ &(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 (field15) < 0) { return -1;}
+ }
+ return 0;
+}
+int autocomplete_constructor_account_authorizations (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { 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 = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field1) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_account_no_password (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { 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;}
+ if (cur_token_len == -3 && cur_token_real_len <= 25 && !cur_token_quoted && !memcmp (cur_token, "email_unconfirmed_pattern", cur_token_real_len)) {
+ set_autocomplete_string ("email_unconfirmed_pattern");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 25 && !memcmp (cur_token, "email_unconfirmed_pattern", 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 autocomplete_constructor_account_password (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { 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;}
+ if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "has_recovery", cur_token_real_len)) {
+ set_autocomplete_string ("has_recovery");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "has_recovery", 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;}
+ if (cur_token_len == -3 && cur_token_real_len <= 25 && !cur_token_quoted && !memcmp (cur_token, "email_unconfirmed_pattern", cur_token_real_len)) {
+ set_autocomplete_string ("email_unconfirmed_pattern");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 25 && !memcmp (cur_token, "email_unconfirmed_pattern", 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 autocomplete_constructor_account_password_input_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ assert (var0);
+ local_next_token ();
+ if (PTR2INT (var0) & (1 << 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 -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 (PTR2INT (var0) & (1 << 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 -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 17 && !memcmp (cur_token, "new_password_hash", 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;}
+ }
+ if (PTR2INT (var0) & (1 << 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 -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 *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 (PTR2INT (var0) & (1 << 1)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "email", cur_token_real_len)) {
+ set_autocomplete_string ("email");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "email", 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 autocomplete_constructor_account_password_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { 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 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field2) < 0) { return -1;}
+ 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 autocomplete_constructor_auth_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_user (field1) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_auth_checked_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { 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 (autocomplete_type_bool (field1) < 0) { return -1;}
+ 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 autocomplete_constructor_auth_password_recovery (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { 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 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 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 autocomplete_constructor_binlog_encr_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return -1; }
+ expect_token_autocomplete ("[", 1);
+ int multiplicity1 = PTR2INT (
+ INT2PTR (64) );
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ while (multiplicity1 -- > 0) {
+ if (autocomplete_type_any (field1) < 0) { return -1;}
+ }
+ expect_token_autocomplete ("]", 1);
+ return 0;
+}
+int autocomplete_constructor_binlog_start (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_binlog_dc_option (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 <= 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 autocomplete_constructor_binlog_dc_option_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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, "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 *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 <= 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 *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, "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 *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 autocomplete_constructor_binlog_auth_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 <= 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 *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_binlog_encr_key (field2) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_binlog_default_dc (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 autocomplete_constructor_binlog_dc_signed (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 autocomplete_constructor_binlog_our_id (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 autocomplete_constructor_binlog_set_dh_params (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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);
+ }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_binlog_encr_key (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 autocomplete_constructor_binlog_set_pts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 autocomplete_constructor_binlog_set_qts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 autocomplete_constructor_binlog_set_date (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 autocomplete_constructor_binlog_set_seq (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 autocomplete_constructor_binlog_encr_chat_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 autocomplete_constructor_binlog_encr_chat_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 *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 (PTR2INT (var0) & (1 << 18)) {
+ 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 (PTR2INT (var0) & (1 << 19)) {
+ 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 *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 (PTR2INT (var0) & (1 << 20)) {
+ 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 *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 (PTR2INT (var0) & (1 << 21)) {
+ 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 = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_binlog_encr_key (field7) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ 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);
+ }
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_binlog_encr_key (field8) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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 *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 (PTR2INT (var0) & (1 << 24)) {
+ 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 *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 (PTR2INT (var0) & (1 << 25)) {
+ 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 *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 (PTR2INT (var0) & (1 << 26)) {
+ 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 *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;}
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ 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 *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_int (field13) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ 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 *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_int (field14) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 27)) {
+ 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 *field15 =
+ &(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 (field15) < 0) { return -1;}
+ }
+ return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 *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 (PTR2INT (var0) & (1 << 18)) {
+ 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 = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_binlog_encr_key (field4) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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 *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 autocomplete_constructor_binlog_user_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 autocomplete_constructor_binlog_user_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 *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 (PTR2INT (var0) & (1 << 18)) {
+ 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 *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 (PTR2INT (var0) & (1 << 18)) {
+ 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 *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 (PTR2INT (var0) & (1 << 19)) {
+ 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 (PTR2INT (var0) & (1 << 20)) {
+ 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 *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 (PTR2INT (var0) & (1 << 21)) {
+ 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 *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_photo (field8) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ 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 *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 (PTR2INT (var0) & (1 << 22)) {
+ 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 *field10 =
+ &(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 (field10) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "user_photo", cur_token_real_len)) {
+ set_autocomplete_string ("user_photo");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "user_photo", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field11 =
+ &(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 (field11) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "last_read_in", cur_token_real_len)) {
+ set_autocomplete_string ("last_read_in");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "last_read_in", 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;}
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "last_read_out", cur_token_real_len)) {
+ set_autocomplete_string ("last_read_out");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "last_read_out", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_int (field13) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "bot_info", cur_token_real_len)) {
+ set_autocomplete_string ("bot_info");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "bot_info", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bot_info (field14) < 0) { return -1;}
+ }
+ return 0;
+}
+int autocomplete_constructor_binlog_chat_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 (PTR2INT (var0) & (1 << 18)) {
+ 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 (PTR2INT (var0) & (1 << 19)) {
+ 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 (PTR2INT (var0) & (1 << 20)) {
+ 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 (PTR2INT (var0) & (1 << 20)) {
+ 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 *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 = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field7) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ 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 *field8 =
+ &(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 (field8) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ 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 *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_photo (field9) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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 *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 (PTR2INT (var0) & (1 << 24)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "last_read_in", cur_token_real_len)) {
+ set_autocomplete_string ("last_read_in");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "last_read_in", 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 (PTR2INT (var0) & (1 << 25)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "last_read_out", cur_token_real_len)) {
+ set_autocomplete_string ("last_read_out");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "last_read_out", 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 autocomplete_constructor_binlog_chat_add_participant (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 <= 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 <= 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 *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;}
+ return 0;
+}
+int autocomplete_constructor_binlog_chat_del_participant (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 <= 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;}
+ return 0;
+}
+int autocomplete_constructor_binlog_set_msg_id (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 autocomplete_constructor_binlog_message_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "lid", cur_token_real_len)) {
+ set_autocomplete_string ("lid");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "lid", 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 autocomplete_constructor_binlog_message_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ assert (var0);
+ local_next_token ();
+ if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "lid", cur_token_real_len)) {
+ set_autocomplete_string ("lid");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "lid", 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 *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 (PTR2INT (var0) & (1 << 17)) {
+ 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 *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 (PTR2INT (var0) & (1 << 18)) {
+ 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 (PTR2INT (var0) & (1 << 18)) {
+ 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 (PTR2INT (var0) & (1 << 19)) {
+ 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 *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 (PTR2INT (var0) & (1 << 20)) {
+ 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 *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 (PTR2INT (var0) & (1 << 21)) {
+ 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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_message_media (field10) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ 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 *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_message_action (field11) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "reply_id", cur_token_real_len)) {
+ set_autocomplete_string ("reply_id");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "reply_id", 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;}
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_real_len)) {
+ set_autocomplete_string ("reply_markup");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "reply_markup", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_reply_markup (field13) < 0) { return -1;}
+ }
+ return 0;
+}
+int autocomplete_constructor_binlog_message_encr_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ assert (var0);
+ local_next_token ();
+ if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "lid", cur_token_real_len)) {
+ set_autocomplete_string ("lid");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "lid", 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 *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 (PTR2INT (var0) & (1 << 17)) {
+ 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 *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 (PTR2INT (var0) & (1 << 19)) {
+ 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 (PTR2INT (var0) & (1 << 20)) {
+ 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 *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 (PTR2INT (var0) & (1 << 21)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "encr_media", cur_token_real_len)) {
+ set_autocomplete_string ("encr_media");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "encr_media", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_decrypted_message_media (field8) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "encr_action", cur_token_real_len)) {
+ set_autocomplete_string ("encr_action");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "encr_action", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field9 =
+ &(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 (field9) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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 *field10 =
+ &(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 (field10) < 0) { return -1;}
+ }
+ return 0;
+}
+int autocomplete_constructor_binlog_msg_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "lid", cur_token_real_len)) {
+ set_autocomplete_string ("lid");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "lid", 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 autocomplete_constructor_binlog_reset_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field2) < 0) { return -1;}
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field3) < 0) { return -1;}
+ 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 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field2) < 0) { return -1;}
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field2) < 0) { return -1;}
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field3) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_contacts_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { 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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_contact_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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_contact_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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_user (field3) < 0) { return -1;}
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field2) < 0) { return -1;}
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field4) < 0) { return -1;}
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field3) < 0) { return -1;}
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field4) < 0) { return -1;}
+ 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 = 0x02e6c0c8, .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 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 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 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 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_user (field2) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_messages_affected_history (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { 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 <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) {
+ set_autocomplete_string ("pts_count");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", 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 autocomplete_constructor_messages_affected_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { 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 <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) {
+ set_autocomplete_string ("pts_count");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", 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 autocomplete_constructor_messages_all_stickers_not_modified (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return -1; }
+ return 0;
+}
+int autocomplete_constructor_messages_all_stickers (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { 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 <= 4 && !cur_token_quoted && !memcmp (cur_token, "sets", cur_token_real_len)) {
+ set_autocomplete_string ("sets");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "sets", 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 = 0xa7a43b17, .id = "StickerSet", .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 <= 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 *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 = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field4) < 0) { return -1;}
+ 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 = 0x2e02a614, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field3) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_messages_chats (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { 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 (autocomplete_type_vector (field1) < 0) { return -1;}
+ 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 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 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 = 0xc1dd804a, .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 = 0x5d652a7f, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field4) < 0) { return -1;}
+ 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 = 0xc1dd804a, .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 = 0x5d652a7f, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field5) < 0) { return -1;}
+ return 0;
+}
+int autocomplete_constructor_messages_message_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { return -1; }
+ 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 = 0x5d652a7f, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field3) < 0) { return -1;}
+ 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 = 0x5d652a7f, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field4) < 0) { return -1;}
+ 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 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 autocomplete_constructor_messages_sent_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { 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 <= 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 = 0x95f2471a, .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 <= 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 <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) {
+ set_autocomplete_string ("pts_count");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_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 autocomplete_constructor_messages_sent_message_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { 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 <= 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 = 0x95f2471a, .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 <= 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 <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) {
+ set_autocomplete_string ("pts_count");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_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;}
+ 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 *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (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 autocomplete_constructor_messages_sticker_set (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return -1; }
+ if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "set", cur_token_real_len)) {
+ set_autocomplete_string ("set");
+ return -1;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "set", cur_token_len)) {
+ local_next_token ();
+ expect_token_autocomplete (":", 1);
+ }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_sticker_set (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 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 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 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 = 0xc207550a, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field2) < 0) { return -1;}
+ 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 = 0xc207550a, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field2) < 0) { return -1;}
+ 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 = 0xc207550a, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (autocomplete_type_vector (field3) < 0) { return -1;}
+ 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 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 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 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 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 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 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 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 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 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 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 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 = 0x5d652a7f, .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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 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 = 0x5d652a7f, .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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 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 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 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 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 autocomplete_type_authorization (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_authorization); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 13 && !memcmp (cur_token, "authorization", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_authorization (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int autocomplete_type_bare_authorization (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_authorization); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 13 && !memcmp (cur_token, "authorization", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_authorization (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int do_autocomplete_type_authorization (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "authorization", text_len)) { *R = tstrdup ("authorization"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 autocomplete_type_bot_command (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_bot_command); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 10 && !memcmp (cur_token, "botCommand", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_bot_command (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 13 && !memcmp (cur_token, "botCommandOld", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_bot_command_old (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int autocomplete_type_bare_bot_command (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_bot_command); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 10 && !memcmp (cur_token, "botCommand", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_bot_command (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 13 && !memcmp (cur_token, "botCommandOld", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_bot_command_old (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int do_autocomplete_type_bot_command (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "botCommand", text_len)) { *R = tstrdup ("botCommand"); return index; } else { index ++; }}
+ if (index == 1) { if (!strncmp (text, "botCommandOld", text_len)) { *R = tstrdup ("botCommandOld"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+int autocomplete_type_bot_info (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_bot_info); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 12 && !memcmp (cur_token, "botInfoEmpty", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_bot_info_empty (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 7 && !memcmp (cur_token, "botInfo", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_bot_info (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int autocomplete_type_bare_bot_info (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_bot_info); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 12 && !memcmp (cur_token, "botInfoEmpty", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_bot_info_empty (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 7 && !memcmp (cur_token, "botInfo", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_bot_info (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int do_autocomplete_type_bot_info (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "botInfoEmpty", text_len)) { *R = tstrdup ("botInfoEmpty"); return index; } else { index ++; }}
+ if (index == 1) { if (!strncmp (text, "botInfo", text_len)) { *R = tstrdup ("botInfo"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 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 autocomplete_type_chat_invite (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_invite); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 17 && !memcmp (cur_token, "chatInviteAlready", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_chat_invite_already (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 10 && !memcmp (cur_token, "chatInvite", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_chat_invite (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int autocomplete_type_bare_chat_invite (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_invite); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 17 && !memcmp (cur_token, "chatInviteAlready", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_chat_invite_already (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 10 && !memcmp (cur_token, "chatInvite", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_chat_invite (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int do_autocomplete_type_chat_invite (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "chatInviteAlready", text_len)) { *R = tstrdup ("chatInviteAlready"); return index; } else { index ++; }}
+ if (index == 1) { if (!strncmp (text, "chatInvite", text_len)) { *R = tstrdup ("chatInvite"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 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 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 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 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 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 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 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 autocomplete_type_contact_link (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_link); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 18 && !memcmp (cur_token, "contactLinkUnknown", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_contact_link_unknown (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 15 && !memcmp (cur_token, "contactLinkNone", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_contact_link_none (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 19 && !memcmp (cur_token, "contactLinkHasPhone", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_contact_link_has_phone (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 18 && !memcmp (cur_token, "contactLinkContact", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_contact_link_contact (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int autocomplete_type_bare_contact_link (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_link); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 18 && !memcmp (cur_token, "contactLinkUnknown", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_contact_link_unknown (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 15 && !memcmp (cur_token, "contactLinkNone", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_contact_link_none (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 19 && !memcmp (cur_token, "contactLinkHasPhone", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_contact_link_has_phone (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 18 && !memcmp (cur_token, "contactLinkContact", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_contact_link_contact (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int do_autocomplete_type_contact_link (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "contactLinkUnknown", text_len)) { *R = tstrdup ("contactLinkUnknown"); return index; } else { index ++; }}
+ if (index == 1) { if (!strncmp (text, "contactLinkNone", text_len)) { *R = tstrdup ("contactLinkNone"); return index; } else { index ++; }}
+ if (index == 2) { if (!strncmp (text, "contactLinkHasPhone", text_len)) { *R = tstrdup ("contactLinkHasPhone"); return index; } else { index ++; }}
+ if (index == 3) { if (!strncmp (text, "contactLinkContact", text_len)) { *R = tstrdup ("contactLinkContact"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 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 == 11 && !memcmp (cur_token, "dcOptionL28", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_dc_option_l28 (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ 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 == 11 && !memcmp (cur_token, "dcOptionL28", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_dc_option_l28 (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ 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, "dcOptionL28", text_len)) { *R = tstrdup ("dcOptionL28"); return index; } else { index ++; }}
+ if (index == 1) { if (!strncmp (text, "dcOption", text_len)) { *R = tstrdup ("dcOption"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 == 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 == 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", text_len)) { *R = tstrdup ("decryptedMessage"); return index; } else { index ++; }}
+ if (index == 1) { if (!strncmp (text, "decryptedMessageService", text_len)) { *R = tstrdup ("decryptedMessageService"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 == 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 == 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, "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 == 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 == 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 == 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 == 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 == 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, "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 == 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 == 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 == 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, "decryptedMessageActionResend", text_len)) { *R = tstrdup ("decryptedMessageActionResend"); return index; } else { index ++; }}
+ if (index == 6) { if (!strncmp (text, "decryptedMessageActionNotifyLayer", text_len)) { *R = tstrdup ("decryptedMessageActionNotifyLayer"); 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, "decryptedMessageActionAbortKey", text_len)) { *R = tstrdup ("decryptedMessageActionAbortKey"); return index; } else { index ++; }}
+ if (index == 11) { if (!strncmp (text, "decryptedMessageActionCommitKey", text_len)) { *R = tstrdup ("decryptedMessageActionCommitKey"); 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 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 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;
+ }
+ if (cur_token_len == 37 && !memcmp (cur_token, "decryptedMessageMediaExternalDocument", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_decrypted_message_media_external_document (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaVideoL12", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_decrypted_message_media_video_l12 (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaAudioL12", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_decrypted_message_media_audio_l12 (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;
+ }
+ if (cur_token_len == 37 && !memcmp (cur_token, "decryptedMessageMediaExternalDocument", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_decrypted_message_media_external_document (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaVideoL12", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_decrypted_message_media_video_l12 (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaAudioL12", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_decrypted_message_media_audio_l12 (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 ++; }}
+ if (index == 7) { if (!strncmp (text, "decryptedMessageMediaExternalDocument", text_len)) { *R = tstrdup ("decryptedMessageMediaExternalDocument"); return index; } else { index ++; }}
+ if (index == 8) { if (!strncmp (text, "decryptedMessageMediaVideoL12", text_len)) { *R = tstrdup ("decryptedMessageMediaVideoL12"); return index; } else { index ++; }}
+ if (index == 9) { if (!strncmp (text, "decryptedMessageMediaAudioL12", text_len)) { *R = tstrdup ("decryptedMessageMediaAudioL12"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 autocomplete_type_disabled_feature (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_disabled_feature); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 15 && !memcmp (cur_token, "disabledFeature", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_disabled_feature (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int autocomplete_type_bare_disabled_feature (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_disabled_feature); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 15 && !memcmp (cur_token, "disabledFeature", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_disabled_feature (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int do_autocomplete_type_disabled_feature (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "disabledFeature", text_len)) { *R = tstrdup ("disabledFeature"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 == 27 && !memcmp (cur_token, "documentAttributeStickerL28", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_document_attribute_sticker_l28 (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 == 27 && !memcmp (cur_token, "documentAttributeStickerL28", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_document_attribute_sticker_l28 (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, "documentAttributeStickerL28", text_len)) { *R = tstrdup ("documentAttributeStickerL28"); return index; } else { index ++; }}
+ if (index == 3) { if (!strncmp (text, "documentAttributeSticker", text_len)) { *R = tstrdup ("documentAttributeSticker"); return index; } else { index ++; }}
+ if (index == 4) { if (!strncmp (text, "documentAttributeVideo", text_len)) { *R = tstrdup ("documentAttributeVideo"); return index; } else { index ++; }}
+ if (index == 5) { if (!strncmp (text, "documentAttributeAudio", text_len)) { *R = tstrdup ("documentAttributeAudio"); return index; } else { index ++; }}
+ if (index == 6) { if (!strncmp (text, "documentAttributeFilename", text_len)) { *R = tstrdup ("documentAttributeFilename"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 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 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 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 autocomplete_type_exported_chat_invite (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_exported_chat_invite); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 15 && !memcmp (cur_token, "chatInviteEmpty", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_chat_invite_empty (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 18 && !memcmp (cur_token, "chatInviteExported", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_chat_invite_exported (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int autocomplete_type_bare_exported_chat_invite (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_exported_chat_invite); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 15 && !memcmp (cur_token, "chatInviteEmpty", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_chat_invite_empty (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 18 && !memcmp (cur_token, "chatInviteExported", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_chat_invite_exported (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int do_autocomplete_type_exported_chat_invite (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "chatInviteEmpty", text_len)) { *R = tstrdup ("chatInviteEmpty"); return index; } else { index ++; }}
+ if (index == 1) { if (!strncmp (text, "chatInviteExported", text_len)) { *R = tstrdup ("chatInviteExported"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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;
+ }
+ if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVenue", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_input_media_venue (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;
+ }
+ if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVenue", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_input_media_venue (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 ++; }}
+ if (index == 13) { if (!strncmp (text, "inputMediaVenue", text_len)) { *R = tstrdup ("inputMediaVenue"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 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 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 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 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 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 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 autocomplete_type_input_sticker_set (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_sticker_set); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 20 && !memcmp (cur_token, "inputStickerSetEmpty", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_input_sticker_set_empty (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 17 && !memcmp (cur_token, "inputStickerSetID", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_input_sticker_set_i_d (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 24 && !memcmp (cur_token, "inputStickerSetShortName", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_input_sticker_set_short_name (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int autocomplete_type_bare_input_sticker_set (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_sticker_set); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 20 && !memcmp (cur_token, "inputStickerSetEmpty", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_input_sticker_set_empty (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 17 && !memcmp (cur_token, "inputStickerSetID", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_input_sticker_set_i_d (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 24 && !memcmp (cur_token, "inputStickerSetShortName", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_input_sticker_set_short_name (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int do_autocomplete_type_input_sticker_set (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "inputStickerSetEmpty", text_len)) { *R = tstrdup ("inputStickerSetEmpty"); return index; } else { index ++; }}
+ if (index == 1) { if (!strncmp (text, "inputStickerSetID", text_len)) { *R = tstrdup ("inputStickerSetID"); return index; } else { index ++; }}
+ if (index == 2) { if (!strncmp (text, "inputStickerSetShortName", text_len)) { *R = tstrdup ("inputStickerSetShortName"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 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 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 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 autocomplete_type_keyboard_button (struct paramed_type *T) {
+ if (autocomplete_constructor_keyboard_button (T) < 0) { return -1; }
+ return 0;
+}
+int autocomplete_type_bare_keyboard_button (struct paramed_type *T) {
+ if (autocomplete_constructor_keyboard_button (T) < 0) { return -1; }
+ return 0;
+}
+int do_autocomplete_type_keyboard_button (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "keyboardButton", text_len)) { *R = tstrdup ("keyboardButton"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+int autocomplete_type_keyboard_button_row (struct paramed_type *T) {
+ if (autocomplete_constructor_keyboard_button_row (T) < 0) { return -1; }
+ return 0;
+}
+int autocomplete_type_bare_keyboard_button_row (struct paramed_type *T) {
+ if (autocomplete_constructor_keyboard_button_row (T) < 0) { return -1; }
+ return 0;
+}
+int do_autocomplete_type_keyboard_button_row (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "keyboardButtonRow", text_len)) { *R = tstrdup ("keyboardButtonRow"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 == 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 == 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, "messageService", text_len)) { *R = tstrdup ("messageService"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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;
+ }
+ if (cur_token_len == 29 && !memcmp (cur_token, "messageActionChatJoinedByLink", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_message_action_chat_joined_by_link (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;
+ }
+ if (cur_token_len == 29 && !memcmp (cur_token, "messageActionChatJoinedByLink", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_message_action_chat_joined_by_link (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 ++; }}
+ if (index == 9) { if (!strncmp (text, "messageActionChatJoinedByLink", text_len)) { *R = tstrdup ("messageActionChatJoinedByLink"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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;
+ }
+ if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaWebPage", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_message_media_web_page (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVenue", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_message_media_venue (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaPhotoL27", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_message_media_photo_l27 (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaVideoL27", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_message_media_video_l27 (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;
+ }
+ if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaWebPage", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_message_media_web_page (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVenue", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_message_media_venue (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaPhotoL27", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_message_media_photo_l27 (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaVideoL27", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_message_media_video_l27 (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 ++; }}
+ if (index == 8) { if (!strncmp (text, "messageMediaWebPage", text_len)) { *R = tstrdup ("messageMediaWebPage"); return index; } else { index ++; }}
+ if (index == 9) { if (!strncmp (text, "messageMediaVenue", text_len)) { *R = tstrdup ("messageMediaVenue"); return index; } else { index ++; }}
+ if (index == 10) { if (!strncmp (text, "messageMediaPhotoL27", text_len)) { *R = tstrdup ("messageMediaPhotoL27"); return index; } else { index ++; }}
+ if (index == 11) { if (!strncmp (text, "messageMediaVideoL27", text_len)) { *R = tstrdup ("messageMediaVideoL27"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 == 38 && !memcmp (cur_token, "inputMessagesFilterPhotoVideoDocuments", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_input_messages_filter_photo_video_documents (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 == 38 && !memcmp (cur_token, "inputMessagesFilterPhotoVideoDocuments", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_input_messages_filter_photo_video_documents (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, "inputMessagesFilterPhotoVideoDocuments", text_len)) { *R = tstrdup ("inputMessagesFilterPhotoVideoDocuments"); return index; } else { index ++; }}
+ if (index == 5) { if (!strncmp (text, "inputMessagesFilterDocument", text_len)) { *R = tstrdup ("inputMessagesFilterDocument"); return index; } else { index ++; }}
+ if (index == 6) { if (!strncmp (text, "inputMessagesFilterAudio", text_len)) { *R = tstrdup ("inputMessagesFilterAudio"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 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 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 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 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 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 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;
+ }
+ if (cur_token_len == 8 && !memcmp (cur_token, "photoL27", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_photo_l27 (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;
+ }
+ if (cur_token_len == 8 && !memcmp (cur_token, "photoL27", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_photo_l27 (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 ++; }}
+ if (index == 2) { if (!strncmp (text, "photoL27", text_len)) { *R = tstrdup ("photoL27"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 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 autocomplete_type_received_notify_message (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_received_notify_message); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 21 && !memcmp (cur_token, "receivedNotifyMessage", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_received_notify_message (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int autocomplete_type_bare_received_notify_message (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_received_notify_message); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 21 && !memcmp (cur_token, "receivedNotifyMessage", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_received_notify_message (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int do_autocomplete_type_received_notify_message (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "receivedNotifyMessage", text_len)) { *R = tstrdup ("receivedNotifyMessage"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+int autocomplete_type_reply_markup (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_reply_markup); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 17 && !memcmp (cur_token, "replyKeyboardHide", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_reply_keyboard_hide (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 23 && !memcmp (cur_token, "replyKeyboardForceReply", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_reply_keyboard_force_reply (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 19 && !memcmp (cur_token, "replyKeyboardMarkup", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_reply_keyboard_markup (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int autocomplete_type_bare_reply_markup (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_reply_markup); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 17 && !memcmp (cur_token, "replyKeyboardHide", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_reply_keyboard_hide (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 23 && !memcmp (cur_token, "replyKeyboardForceReply", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_reply_keyboard_force_reply (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 19 && !memcmp (cur_token, "replyKeyboardMarkup", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_reply_keyboard_markup (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int do_autocomplete_type_reply_markup (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "replyKeyboardHide", text_len)) { *R = tstrdup ("replyKeyboardHide"); return index; } else { index ++; }}
+ if (index == 1) { if (!strncmp (text, "replyKeyboardForceReply", text_len)) { *R = tstrdup ("replyKeyboardForceReply"); return index; } else { index ++; }}
+ if (index == 2) { if (!strncmp (text, "replyKeyboardMarkup", text_len)) { *R = tstrdup ("replyKeyboardMarkup"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 == 31 && !memcmp (cur_token, "sendMessageUploadVideoActionL27", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_send_message_upload_video_action_l27 (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 == 31 && !memcmp (cur_token, "sendMessageUploadAudioActionL27", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_send_message_upload_audio_action_l27 (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 == 34 && !memcmp (cur_token, "sendMessageUploadDocumentActionL27", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_send_message_upload_document_action_l27 (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 == 31 && !memcmp (cur_token, "sendMessageUploadVideoActionL27", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_send_message_upload_video_action_l27 (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 == 31 && !memcmp (cur_token, "sendMessageUploadAudioActionL27", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_send_message_upload_audio_action_l27 (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 == 34 && !memcmp (cur_token, "sendMessageUploadDocumentActionL27", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_send_message_upload_document_action_l27 (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, "sendMessageUploadVideoActionL27", text_len)) { *R = tstrdup ("sendMessageUploadVideoActionL27"); return index; } else { index ++; }}
+ if (index == 4) { if (!strncmp (text, "sendMessageUploadVideoAction", text_len)) { *R = tstrdup ("sendMessageUploadVideoAction"); return index; } else { index ++; }}
+ if (index == 5) { if (!strncmp (text, "sendMessageRecordAudioAction", text_len)) { *R = tstrdup ("sendMessageRecordAudioAction"); return index; } else { index ++; }}
+ if (index == 6) { if (!strncmp (text, "sendMessageUploadAudioActionL27", text_len)) { *R = tstrdup ("sendMessageUploadAudioActionL27"); return index; } else { index ++; }}
+ if (index == 7) { if (!strncmp (text, "sendMessageUploadAudioAction", text_len)) { *R = tstrdup ("sendMessageUploadAudioAction"); return index; } else { index ++; }}
+ if (index == 8) { if (!strncmp (text, "sendMessageUploadPhotoAction", text_len)) { *R = tstrdup ("sendMessageUploadPhotoAction"); return index; } else { index ++; }}
+ if (index == 9) { if (!strncmp (text, "sendMessageUploadDocumentActionL27", text_len)) { *R = tstrdup ("sendMessageUploadDocumentActionL27"); return index; } else { index ++; }}
+ if (index == 10) { if (!strncmp (text, "sendMessageUploadDocumentAction", text_len)) { *R = tstrdup ("sendMessageUploadDocumentAction"); return index; } else { index ++; }}
+ if (index == 11) { if (!strncmp (text, "sendMessageGeoLocationAction", text_len)) { *R = tstrdup ("sendMessageGeoLocationAction"); return index; } else { index ++; }}
+ if (index == 12) { if (!strncmp (text, "sendMessageChooseContactAction", text_len)) { *R = tstrdup ("sendMessageChooseContactAction"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 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 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 autocomplete_type_sticker_set (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_sticker_set); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 10 && !memcmp (cur_token, "stickerSet", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_sticker_set (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int autocomplete_type_bare_sticker_set (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_sticker_set); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 10 && !memcmp (cur_token, "stickerSet", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_sticker_set (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int do_autocomplete_type_sticker_set (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "stickerSet", text_len)) { *R = tstrdup ("stickerSet"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 == 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 == 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 == 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;
+ }
+ if (cur_token_len == 22 && !memcmp (cur_token, "updateReadHistoryInbox", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_update_read_history_inbox (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 23 && !memcmp (cur_token, "updateReadHistoryOutbox", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_update_read_history_outbox (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 13 && !memcmp (cur_token, "updateWebPage", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_update_web_page (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 26 && !memcmp (cur_token, "updateReadMessagesContents", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_update_read_messages_contents (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 15 && !memcmp (cur_token, "updateMsgUpdate", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_update_msg_update (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 == 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 == 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 == 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;
+ }
+ if (cur_token_len == 22 && !memcmp (cur_token, "updateReadHistoryInbox", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_update_read_history_inbox (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 23 && !memcmp (cur_token, "updateReadHistoryOutbox", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_update_read_history_outbox (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 13 && !memcmp (cur_token, "updateWebPage", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_update_web_page (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 26 && !memcmp (cur_token, "updateReadMessagesContents", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_update_read_messages_contents (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 15 && !memcmp (cur_token, "updateMsgUpdate", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_update_msg_update (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, "updateDeleteMessages", text_len)) { *R = tstrdup ("updateDeleteMessages"); return index; } else { index ++; }}
+ if (index == 3) { if (!strncmp (text, "updateUserTyping", text_len)) { *R = tstrdup ("updateUserTyping"); return index; } else { index ++; }}
+ if (index == 4) { if (!strncmp (text, "updateChatUserTyping", text_len)) { *R = tstrdup ("updateChatUserTyping"); return index; } else { index ++; }}
+ if (index == 5) { if (!strncmp (text, "updateChatParticipants", text_len)) { *R = tstrdup ("updateChatParticipants"); return index; } else { index ++; }}
+ if (index == 6) { if (!strncmp (text, "updateUserStatus", text_len)) { *R = tstrdup ("updateUserStatus"); return index; } else { index ++; }}
+ if (index == 7) { if (!strncmp (text, "updateUserName", text_len)) { *R = tstrdup ("updateUserName"); return index; } else { index ++; }}
+ if (index == 8) { if (!strncmp (text, "updateUserPhoto", text_len)) { *R = tstrdup ("updateUserPhoto"); return index; } else { index ++; }}
+ if (index == 9) { if (!strncmp (text, "updateContactRegistered", text_len)) { *R = tstrdup ("updateContactRegistered"); return index; } else { index ++; }}
+ if (index == 10) { if (!strncmp (text, "updateContactLink", text_len)) { *R = tstrdup ("updateContactLink"); return index; } else { index ++; }}
+ if (index == 11) { if (!strncmp (text, "updateNewAuthorization", text_len)) { *R = tstrdup ("updateNewAuthorization"); return index; } else { index ++; }}
+ if (index == 12) { if (!strncmp (text, "updateNewGeoChatMessage", text_len)) { *R = tstrdup ("updateNewGeoChatMessage"); return index; } else { index ++; }}
+ if (index == 13) { if (!strncmp (text, "updateNewEncryptedMessage", text_len)) { *R = tstrdup ("updateNewEncryptedMessage"); return index; } else { index ++; }}
+ if (index == 14) { if (!strncmp (text, "updateEncryptedChatTyping", text_len)) { *R = tstrdup ("updateEncryptedChatTyping"); return index; } else { index ++; }}
+ if (index == 15) { if (!strncmp (text, "updateEncryption", text_len)) { *R = tstrdup ("updateEncryption"); return index; } else { index ++; }}
+ if (index == 16) { if (!strncmp (text, "updateEncryptedMessagesRead", text_len)) { *R = tstrdup ("updateEncryptedMessagesRead"); return index; } else { index ++; }}
+ if (index == 17) { if (!strncmp (text, "updateChatParticipantAdd", text_len)) { *R = tstrdup ("updateChatParticipantAdd"); return index; } else { index ++; }}
+ if (index == 18) { if (!strncmp (text, "updateChatParticipantDelete", text_len)) { *R = tstrdup ("updateChatParticipantDelete"); return index; } else { index ++; }}
+ if (index == 19) { if (!strncmp (text, "updateDcOptions", text_len)) { *R = tstrdup ("updateDcOptions"); return index; } else { index ++; }}
+ if (index == 20) { if (!strncmp (text, "updateUserBlocked", text_len)) { *R = tstrdup ("updateUserBlocked"); return index; } else { index ++; }}
+ if (index == 21) { if (!strncmp (text, "updateNotifySettings", text_len)) { *R = tstrdup ("updateNotifySettings"); return index; } else { index ++; }}
+ if (index == 22) { if (!strncmp (text, "updateServiceNotification", text_len)) { *R = tstrdup ("updateServiceNotification"); return index; } else { index ++; }}
+ if (index == 23) { if (!strncmp (text, "updatePrivacy", text_len)) { *R = tstrdup ("updatePrivacy"); return index; } else { index ++; }}
+ if (index == 24) { if (!strncmp (text, "updateUserPhone", text_len)) { *R = tstrdup ("updateUserPhone"); return index; } else { index ++; }}
+ if (index == 25) { if (!strncmp (text, "updateReadHistoryInbox", text_len)) { *R = tstrdup ("updateReadHistoryInbox"); return index; } else { index ++; }}
+ if (index == 26) { if (!strncmp (text, "updateReadHistoryOutbox", text_len)) { *R = tstrdup ("updateReadHistoryOutbox"); return index; } else { index ++; }}
+ if (index == 27) { if (!strncmp (text, "updateWebPage", text_len)) { *R = tstrdup ("updateWebPage"); return index; } else { index ++; }}
+ if (index == 28) { if (!strncmp (text, "updateReadMessagesContents", text_len)) { *R = tstrdup ("updateReadMessagesContents"); return index; } else { index ++; }}
+ if (index == 29) { if (!strncmp (text, "updateMsgUpdate", text_len)) { *R = tstrdup ("updateMsgUpdate"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 == 4 && !memcmp (cur_token, "user", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_user (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 == 4 && !memcmp (cur_token, "user", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_user (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, "user", text_len)) { *R = tstrdup ("user"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 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 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 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;
+ }
+ if (cur_token_len == 8 && !memcmp (cur_token, "videoL27", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_video_l27 (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;
+ }
+ if (cur_token_len == 8 && !memcmp (cur_token, "videoL27", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_video_l27 (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 ++; }}
+ if (index == 2) { if (!strncmp (text, "videoL27", text_len)) { *R = tstrdup ("videoL27"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 autocomplete_type_web_page (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_web_page); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 12 && !memcmp (cur_token, "webPageEmpty", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_web_page_empty (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 14 && !memcmp (cur_token, "webPagePending", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_web_page_pending (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 7 && !memcmp (cur_token, "webPage", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_web_page (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int autocomplete_type_bare_web_page (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_web_page); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 12 && !memcmp (cur_token, "webPageEmpty", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_web_page_empty (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 14 && !memcmp (cur_token, "webPagePending", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_web_page_pending (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 7 && !memcmp (cur_token, "webPage", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_web_page (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int do_autocomplete_type_web_page (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "webPageEmpty", text_len)) { *R = tstrdup ("webPageEmpty"); return index; } else { index ++; }}
+ if (index == 1) { if (!strncmp (text, "webPagePending", text_len)) { *R = tstrdup ("webPagePending"); return index; } else { index ++; }}
+ if (index == 2) { if (!strncmp (text, "webPage", text_len)) { *R = tstrdup ("webPage"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+int autocomplete_type_account_authorizations (struct paramed_type *T) {
+ if (autocomplete_constructor_account_authorizations (T) < 0) { return -1; }
+ return 0;
+}
+int autocomplete_type_bare_account_authorizations (struct paramed_type *T) {
+ if (autocomplete_constructor_account_authorizations (T) < 0) { return -1; }
+ return 0;
+}
+int do_autocomplete_type_account_authorizations (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "account.authorizations", text_len)) { *R = tstrdup ("account.authorizations"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 autocomplete_type_account_password_input_settings (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_password_input_settings); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 29 && !memcmp (cur_token, "account.passwordInputSettings", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_account_password_input_settings (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int autocomplete_type_bare_account_password_input_settings (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_password_input_settings); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 29 && !memcmp (cur_token, "account.passwordInputSettings", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_account_password_input_settings (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int do_autocomplete_type_account_password_input_settings (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "account.passwordInputSettings", text_len)) { *R = tstrdup ("account.passwordInputSettings"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+int autocomplete_type_account_password_settings (struct paramed_type *T) {
+ if (autocomplete_constructor_account_password_settings (T) < 0) { return -1; }
+ return 0;
+}
+int autocomplete_type_bare_account_password_settings (struct paramed_type *T) {
+ if (autocomplete_constructor_account_password_settings (T) < 0) { return -1; }
+ return 0;
+}
+int do_autocomplete_type_account_password_settings (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "account.passwordSettings", text_len)) { *R = tstrdup ("account.passwordSettings"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 autocomplete_type_auth_authorization (struct paramed_type *T) {
+ if (autocomplete_constructor_auth_authorization (T) < 0) { return -1; }
+ return 0;
+}
+int autocomplete_type_bare_auth_authorization (struct paramed_type *T) {
+ if (autocomplete_constructor_auth_authorization (T) < 0) { return -1; }
+ return 0;
+}
+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 autocomplete_type_auth_checked_phone (struct paramed_type *T) {
+ if (autocomplete_constructor_auth_checked_phone (T) < 0) { return -1; }
+ return 0;
+}
+int autocomplete_type_bare_auth_checked_phone (struct paramed_type *T) {
+ if (autocomplete_constructor_auth_checked_phone (T) < 0) { return -1; }
+ return 0;
+}
+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 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 autocomplete_type_auth_password_recovery (struct paramed_type *T) {
+ if (autocomplete_constructor_auth_password_recovery (T) < 0) { return -1; }
+ return 0;
+}
+int autocomplete_type_bare_auth_password_recovery (struct paramed_type *T) {
+ if (autocomplete_constructor_auth_password_recovery (T) < 0) { return -1; }
+ return 0;
+}
+int do_autocomplete_type_auth_password_recovery (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "auth.passwordRecovery", text_len)) { *R = tstrdup ("auth.passwordRecovery"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 autocomplete_type_binlog_encr_key (struct paramed_type *T) {
+ if (autocomplete_constructor_binlog_encr_key (T) < 0) { return -1; }
+ return 0;
+}
+int autocomplete_type_bare_binlog_encr_key (struct paramed_type *T) {
+ if (autocomplete_constructor_binlog_encr_key (T) < 0) { return -1; }
+ return 0;
+}
+int do_autocomplete_type_binlog_encr_key (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "binlog.encrKey", text_len)) { *R = tstrdup ("binlog.encrKey"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 == 18 && !memcmp (cur_token, "binlog.dcOptionNew", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_dc_option_new (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 == 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 == 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 == 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 == 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 == 18 && !memcmp (cur_token, "binlog.encrChatNew", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_encr_chat_new (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 26 && !memcmp (cur_token, "binlog.encrChatExchangeNew", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_encr_chat_exchange_new (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 == 14 && !memcmp (cur_token, "binlog.userNew", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_user_new (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 14 && !memcmp (cur_token, "binlog.chatNew", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_chat_new (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 == 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 == 20 && !memcmp (cur_token, "binlog.messageDelete", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_message_delete (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 17 && !memcmp (cur_token, "binlog.messageNew", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_message_new (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 21 && !memcmp (cur_token, "binlog.messageEncrNew", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_message_encr_new (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 == 18 && !memcmp (cur_token, "binlog.dcOptionNew", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_dc_option_new (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 == 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 == 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 == 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 == 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 == 18 && !memcmp (cur_token, "binlog.encrChatNew", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_encr_chat_new (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 26 && !memcmp (cur_token, "binlog.encrChatExchangeNew", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_encr_chat_exchange_new (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 == 14 && !memcmp (cur_token, "binlog.userNew", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_user_new (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 14 && !memcmp (cur_token, "binlog.chatNew", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_chat_new (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 == 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 == 20 && !memcmp (cur_token, "binlog.messageDelete", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_message_delete (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 17 && !memcmp (cur_token, "binlog.messageNew", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_message_new (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 21 && !memcmp (cur_token, "binlog.messageEncrNew", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_binlog_message_encr_new (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.dcOptionNew", text_len)) { *R = tstrdup ("binlog.dcOptionNew"); return index; } else { index ++; }}
+ if (index == 3) { if (!strncmp (text, "binlog.authKey", text_len)) { *R = tstrdup ("binlog.authKey"); return index; } else { index ++; }}
+ if (index == 4) { if (!strncmp (text, "binlog.defaultDc", text_len)) { *R = tstrdup ("binlog.defaultDc"); 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.ourId", text_len)) { *R = tstrdup ("binlog.ourId"); 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.encrChatDelete", text_len)) { *R = tstrdup ("binlog.encrChatDelete"); return index; } else { index ++; }}
+ if (index == 13) { if (!strncmp (text, "binlog.encrChatNew", text_len)) { *R = tstrdup ("binlog.encrChatNew"); return index; } else { index ++; }}
+ if (index == 14) { if (!strncmp (text, "binlog.encrChatExchangeNew", text_len)) { *R = tstrdup ("binlog.encrChatExchangeNew"); return index; } else { index ++; }}
+ if (index == 15) { if (!strncmp (text, "binlog.userDelete", text_len)) { *R = tstrdup ("binlog.userDelete"); return index; } else { index ++; }}
+ if (index == 16) { if (!strncmp (text, "binlog.userNew", text_len)) { *R = tstrdup ("binlog.userNew"); return index; } else { index ++; }}
+ if (index == 17) { if (!strncmp (text, "binlog.chatNew", text_len)) { *R = tstrdup ("binlog.chatNew"); return index; } else { index ++; }}
+ if (index == 18) { if (!strncmp (text, "binlog.chatAddParticipant", text_len)) { *R = tstrdup ("binlog.chatAddParticipant"); return index; } else { index ++; }}
+ if (index == 19) { if (!strncmp (text, "binlog.chatDelParticipant", text_len)) { *R = tstrdup ("binlog.chatDelParticipant"); return index; } else { index ++; }}
+ if (index == 20) { if (!strncmp (text, "binlog.setMsgId", text_len)) { *R = tstrdup ("binlog.setMsgId"); return index; } else { index ++; }}
+ if (index == 21) { if (!strncmp (text, "binlog.messageDelete", text_len)) { *R = tstrdup ("binlog.messageDelete"); return index; } else { index ++; }}
+ if (index == 22) { if (!strncmp (text, "binlog.messageNew", text_len)) { *R = tstrdup ("binlog.messageNew"); return index; } else { index ++; }}
+ if (index == 23) { if (!strncmp (text, "binlog.messageEncrNew", text_len)) { *R = tstrdup ("binlog.messageEncrNew"); return index; } else { index ++; }}
+ if (index == 24) { if (!strncmp (text, "binlog.msgUpdate", text_len)) { *R = tstrdup ("binlog.msgUpdate"); return index; } else { index ++; }}
+ if (index == 25) { if (!strncmp (text, "binlog.resetAuthorization", text_len)) { *R = tstrdup ("binlog.resetAuthorization"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 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 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 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 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 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 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 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 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 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 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 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 autocomplete_type_messages_affected_messages (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_affected_messages); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 25 && !memcmp (cur_token, "messages.affectedMessages", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_messages_affected_messages (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int autocomplete_type_bare_messages_affected_messages (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_affected_messages); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 25 && !memcmp (cur_token, "messages.affectedMessages", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_messages_affected_messages (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int do_autocomplete_type_messages_affected_messages (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "messages.affectedMessages", text_len)) { *R = tstrdup ("messages.affectedMessages"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 autocomplete_type_messages_chats (struct paramed_type *T) {
+ if (autocomplete_constructor_messages_chats (T) < 0) { return -1; }
+ return 0;
+}
+int autocomplete_type_bare_messages_chats (struct paramed_type *T) {
+ if (autocomplete_constructor_messages_chats (T) < 0) { return -1; }
+ return 0;
+}
+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 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 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 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;
+ }
+ 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;
+ }
+ 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 ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 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 autocomplete_type_messages_sticker_set (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_sticker_set); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 19 && !memcmp (cur_token, "messages.stickerSet", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_messages_sticker_set (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int autocomplete_type_bare_messages_sticker_set (struct paramed_type *T) {
+ expect_token_autocomplete ("(", 1);
+ if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_sticker_set); return -1; }
+ if (cur_token_len < 0) { return -1; }
+ if (cur_token_len == 19 && !memcmp (cur_token, "messages.stickerSet", cur_token_len)) {
+ local_next_token ();
+ if (autocomplete_constructor_messages_sticker_set (T) < 0) { return -1; }
+ expect_token_autocomplete (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int do_autocomplete_type_messages_sticker_set (const char *text, int text_len, int index, char **R) {
+ index ++;
+ if (index == 0) { if (!strncmp (text, "messages.stickerSet", text_len)) { *R = tstrdup ("messages.stickerSet"); return index; } else { index ++; }}
+ *R = 0;
+ return 0;
+}
+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 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 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 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 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 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 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 *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 = 0x02e6c0c8, .id = "User", .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 *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 *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 *autocomplete_function_account_get_authorizations (void) {
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1250abde, .id = "account.Authorizations", .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 *autocomplete_function_account_get_password (void) {
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xeac2a804, .id = "account.Password", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_get_password_settings (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;}
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb7b72ab3, .id = "account.PasswordSettings", .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 *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 *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 *autocomplete_function_account_reset_authorization (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 = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_bare_long (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_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_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 *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 *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 *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 *autocomplete_function_account_update_device_locked (void) {
+ if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "period", cur_token_real_len)) {
+ set_autocomplete_string ("period");
+ return 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "period", 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 *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 *autocomplete_function_account_update_password_settings (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 <= 12 && !cur_token_quoted && !memcmp (cur_token, "new_settings", cur_token_real_len)) {
+ set_autocomplete_string ("new_settings");
+ return 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "new_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 = 0xbcfc532c, .id = "account.PasswordInputSettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_account_password_input_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_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 = 0x02e6c0c8, .id = "User", .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 *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 = 0x02e6c0c8, .id = "User", .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 *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 = 0xff036af1, .id = "auth.Authorization", .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 = 0x811ea28e, .id = "auth.CheckedPhone", .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 *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 = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_auth_import_bot_authorization (void) {
+ 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 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", 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, "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 <= 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 *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, "bot_auth_token", cur_token_real_len)) {
+ set_autocomplete_string ("bot_auth_token");
+ return 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "bot_auth_token", 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 = 0xff036af1, .id = "auth.Authorization", .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 *autocomplete_function_auth_recover_password (void) {
+ 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 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "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 = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_auth_request_password_recovery (void) {
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x137948a5, .id = "auth.PasswordRecovery", .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 *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 *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 *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 *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 *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 = 0xff036af1, .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 = 0xff036af1, .id = "auth.Authorization", .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 *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 = 0x3ace484c, .id = "contacts.Link", .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 *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 *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 *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 *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 *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 *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 = 0x02e6c0c8, .id = "User", .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 *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 = 0x02e6c0c8, .id = "User", .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 *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 *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 *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 *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 *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 *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 *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 *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 *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 *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 = 0x80895ae0, .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 *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 = 0xb32c91dd, .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 *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 *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 *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 *autocomplete_function_help_get_config (void) {
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4e32b894, .id = "Config", .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 *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 *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 *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 *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 *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 *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 *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 *autocomplete_function_invoke_without_updates (void) {
+ 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 *field2 = autocomplete_function_any ();
+ if (!field2) { return 0; }
+ add_var_to_be_freed (field2);
+ if (ODDP(field2)) { return 0; }
+ struct paramed_type *var0 = field2; assert (var0);
+ struct paramed_type *R =
+ var0;
+ 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 *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 = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_check_chat_invite (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 = 0x94f910b1, .id = "ChatInvite", .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 = 0x22499d27, .id = "Updates", .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 = 0x22499d27, .id = "Updates", .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 = 0xb45c69d1, .id = "messages.AffectedHistory", .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 = 0x84d19185, .id = "messages.AffectedMessages", .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 *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 = 0x22499d27, .id = "Updates", .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 = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_export_chat_invite (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 = 0x95f132d5, .id = "ExportedChatInvite", .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 = 0x22499d27, .id = "Updates", .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;}
+ 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 = 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 (field3) < 0) { return 0;}
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .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 = 0xb485502f, .id = "messages.AllStickers", .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 = 0x64ff9fd5, .id = "messages.Chats", .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 *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 *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 *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 *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 *autocomplete_function_messages_get_sticker_set (void) {
+ if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "stickerset", cur_token_real_len)) {
+ set_autocomplete_string ("stickerset");
+ return 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "stickerset", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr_autocomplete (":", 1);
+ }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_input_sticker_set (field1) < 0) { return 0;}
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb60a24a6, .id = "messages.StickerSet", .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 *autocomplete_function_messages_get_web_page_preview (void) {
+ 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 *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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_import_chat_invite (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 = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_install_sticker_set (void) {
+ if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "stickerset", cur_token_real_len)) {
+ set_autocomplete_string ("stickerset");
+ return 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "stickerset", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr_autocomplete (":", 1);
+ }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_input_sticker_set (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_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 *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;}
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb45c69d1, .id = "messages.AffectedHistory", .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 = 0x84d19185, .id = "messages.AffectedMessages", .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 = 0xa384b779, .id = "ReceivedNotifyMessage", .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 *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 *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 = 0x80895ae0, .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 *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 <= 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 = 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 <= 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 *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, "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 *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb32c91dd, .id = "InputMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_input_media (field4) < 0) { return 0;}
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .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 *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 *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 *autocomplete_function_messages_send_media (void) {
+ 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 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr_autocomplete (":", 1);
+ }
+ if (cur_token_len < 0) { return 0; }
+ if (!is_int ()) { return 0;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 *field2 =
+ &(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 (field2) < 0) { return 0;}
+ if (PTR2INT (var0) & (1 << 0)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", cur_token_real_len)) {
+ set_autocomplete_string ("reply_to_msg_id");
+ return 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "reply_to_msg_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, "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 *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb32c91dd, .id = "InputMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_input_media (field4) < 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 *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 (PTR2INT (var0) & (1 << 2)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_real_len)) {
+ set_autocomplete_string ("reply_markup");
+ return 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "reply_markup", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr_autocomplete (":", 1);
+ }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_reply_markup (field6) < 0) { return 0;}
+ }
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .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 <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) {
+ set_autocomplete_string ("flags");
+ return 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr_autocomplete (":", 1);
+ }
+ if (cur_token_len < 0) { return 0; }
+ if (!is_int ()) { return 0;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 *field2 =
+ &(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 (field2) < 0) { return 0;}
+ if (PTR2INT (var0) & (1 << 0)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", cur_token_real_len)) {
+ set_autocomplete_string ("reply_to_msg_id");
+ return 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "reply_to_msg_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 <= 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 *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, "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 *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 (PTR2INT (var0) & (1 << 2)) {
+ if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_real_len)) {
+ set_autocomplete_string ("reply_markup");
+ return 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "reply_markup", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr_autocomplete (":", 1);
+ }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_reply_markup (field6) < 0) { return 0;}
+ }
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x799ce190, .id = "messages.SentMessage", .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 *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 = 0x70541c7e, .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 *autocomplete_function_messages_start_bot (void) {
+ if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "bot", cur_token_real_len)) {
+ set_autocomplete_string ("bot");
+ return 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "bot", 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 <= 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 *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;}
+ if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "start_param", cur_token_real_len)) {
+ set_autocomplete_string ("start_param");
+ return 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "start_param", 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 = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_uninstall_sticker_set (void) {
+ if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "stickerset", cur_token_real_len)) {
+ set_autocomplete_string ("stickerset");
+ return 0;
+ }
+ if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "stickerset", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr_autocomplete (":", 1);
+ }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (autocomplete_type_input_sticker_set (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_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 *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 *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 *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 *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 *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 *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 *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 *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 *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 *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 *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 *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 = 0x5a89ac5b, .id = "UserFull", .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ return paramed_type_dup (R);
+}
+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 0x7bf2e6f6: return autocomplete_type_authorization (T);
+ case 0x840d1909: return autocomplete_type_bare_authorization (T);
+ case 0x250be282: return autocomplete_type_bool (T);
+ case 0xdaf41d7d: return autocomplete_type_bare_bool (T);
+ case 0x75e7ea6c: return autocomplete_type_bot_command (T);
+ case 0x8a181593: return autocomplete_type_bare_bot_command (T);
+ case 0xb2e16f93: return autocomplete_type_bot_info (T);
+ case 0x4d1e906c: return autocomplete_type_bare_bot_info (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 0x2e02a614: return autocomplete_type_chat_full (T);
+ case 0xd1fd59eb: return autocomplete_type_bare_chat_full (T);
+ case 0x94f910b1: return autocomplete_type_chat_invite (T);
+ case 0x6b06ef4e: return autocomplete_type_bare_chat_invite (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 0x4e32b894: return autocomplete_type_config (T);
+ case 0xb1cd476b: 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 0x522fbc63: return autocomplete_type_contact_link (T);
+ case 0xadd0439c: return autocomplete_type_bare_contact_link (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 0x2b1a62f0: return autocomplete_type_dc_option (T);
+ case 0xd4e59d0f: return autocomplete_type_bare_dc_option (T);
+ case 0x535b7918: return autocomplete_type_decrypted_message (T);
+ case 0xaca486e7: 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 0x34e0d674: return autocomplete_type_decrypted_message_media (T);
+ case 0xcb1f298b: return autocomplete_type_bare_decrypted_message_media (T);
+ case 0xc1dd804a: return autocomplete_type_dialog (T);
+ case 0x3e227fb5: return autocomplete_type_bare_dialog (T);
+ case 0xae636f24: return autocomplete_type_disabled_feature (T);
+ case 0x519c90db: return autocomplete_type_bare_disabled_feature (T);
+ case 0x51a73418: return autocomplete_type_document (T);
+ case 0xae58cbe7: return autocomplete_type_bare_document (T);
+ case 0x97c637a3: return autocomplete_type_document_attribute (T);
+ case 0x6839c85c: 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 0x95f132d5: return autocomplete_type_exported_chat_invite (T);
+ case 0x6a0ecd2a: return autocomplete_type_bare_exported_chat_invite (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 0xb32c91dd: return autocomplete_type_input_media (T);
+ case 0x4cd36e22: 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 0xe44d415c: return autocomplete_type_input_sticker_set (T);
+ case 0x1bb2bea3: return autocomplete_type_bare_input_sticker_set (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 0xa2fa4880: return autocomplete_type_keyboard_button (T);
+ case 0x5d05b77f: return autocomplete_type_bare_keyboard_button (T);
+ case 0x77608b83: return autocomplete_type_keyboard_button_row (T);
+ case 0x889f747c: return autocomplete_type_bare_keyboard_button_row (T);
+ case 0x22076cba: return autocomplete_type_long (T);
+ case 0xddf89345: return autocomplete_type_bare_long (T);
+ case 0x5d652a7f: return autocomplete_type_message (T);
+ case 0xa29ad580: return autocomplete_type_bare_message (T);
+ case 0x383415fa: return autocomplete_type_message_action (T);
+ case 0xc7cbea05: return autocomplete_type_bare_message_action (T);
+ case 0x95f2471a: return autocomplete_type_message_media (T);
+ case 0x6a0db8e5: return autocomplete_type_bare_message_media (T);
+ case 0x80895ae0: return autocomplete_type_messages_filter (T);
+ case 0x7f76a51f: 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 0xc207550a: return autocomplete_type_photo (T);
+ case 0x3df8aaf5: 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 0xa384b779: return autocomplete_type_received_notify_message (T);
+ case 0x5c7b4886: return autocomplete_type_bare_received_notify_message (T);
+ case 0x612ca4a9: return autocomplete_type_reply_markup (T);
+ case 0x9ed35b56: return autocomplete_type_bare_reply_markup (T);
+ case 0x05162463: return autocomplete_type_res_p_q (T);
+ case 0xfae9db9c: return autocomplete_type_bare_res_p_q (T);
+ case 0x70541c7e: return autocomplete_type_send_message_action (T);
+ case 0x8fabe381: 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 0xa7a43b17: return autocomplete_type_sticker_set (T);
+ case 0x585bc4e8: return autocomplete_type_bare_sticker_set (T);
+ case 0xb5286e24: return autocomplete_type_string (T);
+ case 0x4ad791db: return autocomplete_type_bare_string (T);
+ case 0x2e02b27e: return autocomplete_type_update (T);
+ case 0xd1fd4d81: return autocomplete_type_bare_update (T);
+ case 0x22499d27: return autocomplete_type_updates (T);
+ case 0xddb662d8: return autocomplete_type_bare_updates (T);
+ case 0x02e6c0c8: return autocomplete_type_user (T);
+ case 0xfd193f37: return autocomplete_type_bare_user (T);
+ case 0x5a89ac5b: return autocomplete_type_user_full (T);
+ case 0xa57653a4: 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 0x1716b174: return autocomplete_type_video (T);
+ case 0xe8e94e8b: return autocomplete_type_bare_video (T);
+ case 0xafa14973: return autocomplete_type_wall_paper (T);
+ case 0x505eb68c: return autocomplete_type_bare_wall_paper (T);
+ case 0x8d8c0d41: return autocomplete_type_web_page (T);
+ case 0x7273f2be: return autocomplete_type_bare_web_page (T);
+ case 0x1250abde: return autocomplete_type_account_authorizations (T);
+ case 0xedaf5421: return autocomplete_type_bare_account_authorizations (T);
+ case 0xeac2a804: return autocomplete_type_account_password (T);
+ case 0x153d57fb: return autocomplete_type_bare_account_password (T);
+ case 0xbcfc532c: return autocomplete_type_account_password_input_settings (T);
+ case 0x4303acd3: return autocomplete_type_bare_account_password_input_settings (T);
+ case 0xb7b72ab3: return autocomplete_type_account_password_settings (T);
+ case 0x4848d54c: return autocomplete_type_bare_account_password_settings (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 0xff036af1: return autocomplete_type_auth_authorization (T);
+ case 0x00fc950e: return autocomplete_type_bare_auth_authorization (T);
+ case 0x811ea28e: return autocomplete_type_auth_checked_phone (T);
+ case 0x7ee15d71: 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 0x137948a5: return autocomplete_type_auth_password_recovery (T);
+ case 0xec86b75a: return autocomplete_type_bare_auth_password_recovery (T);
+ case 0x0cc8bc16: return autocomplete_type_auth_sent_code (T);
+ case 0xf33743e9: return autocomplete_type_bare_auth_sent_code (T);
+ case 0x0377168f: return autocomplete_type_binlog_encr_key (T);
+ case 0xfc88e970: return autocomplete_type_bare_binlog_encr_key (T);
+ case 0x66ff03a6: return autocomplete_type_binlog_update (T);
+ case 0x9900fc59: 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 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 0x3ace484c: return autocomplete_type_contacts_link (T);
+ case 0xc531b7b3: return autocomplete_type_bare_contacts_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 0xb45c69d1: return autocomplete_type_messages_affected_history (T);
+ case 0x4ba3962e: return autocomplete_type_bare_messages_affected_history (T);
+ case 0x84d19185: return autocomplete_type_messages_affected_messages (T);
+ case 0x7b2e6e7a: return autocomplete_type_bare_messages_affected_messages (T);
+ case 0xb485502f: return autocomplete_type_messages_all_stickers (T);
+ case 0x4b7aafd0: return autocomplete_type_bare_messages_all_stickers (T);
+ case 0xe5d7d19c: return autocomplete_type_messages_chat_full (T);
+ case 0x1a282e63: return autocomplete_type_bare_messages_chat_full (T);
+ case 0x64ff9fd5: return autocomplete_type_messages_chats (T);
+ case 0x9b00602a: 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 0x3f4e0648: return autocomplete_type_messages_message (T);
+ case 0xc0b1f9b7: 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 0x799ce190: return autocomplete_type_messages_sent_message (T);
+ case 0x86631e6f: return autocomplete_type_bare_messages_sent_message (T);
+ case 0xb60a24a6: return autocomplete_type_messages_sticker_set (T);
+ case 0x49f5db59: return autocomplete_type_bare_messages_sticker_set (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; }
+}
+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.getAuthorizations", text_len)) { *R = tstrdup ("account.getAuthorizations"); return index; } else { index ++; }}
+ if (index == 5) { if (!strncmp (text, "account.getNotifySettings", text_len)) { *R = tstrdup ("account.getNotifySettings"); return index; } else { index ++; }}
+ if (index == 6) { if (!strncmp (text, "account.getPassword", text_len)) { *R = tstrdup ("account.getPassword"); return index; } else { index ++; }}
+ if (index == 7) { if (!strncmp (text, "account.getPasswordSettings", text_len)) { *R = tstrdup ("account.getPasswordSettings"); return index; } else { index ++; }}
+ if (index == 8) { if (!strncmp (text, "account.getPrivacy", text_len)) { *R = tstrdup ("account.getPrivacy"); return index; } else { index ++; }}
+ if (index == 9) { if (!strncmp (text, "account.getWallPapers", text_len)) { *R = tstrdup ("account.getWallPapers"); return index; } else { index ++; }}
+ if (index == 10) { if (!strncmp (text, "account.registerDevice", text_len)) { *R = tstrdup ("account.registerDevice"); return index; } else { index ++; }}
+ if (index == 11) { if (!strncmp (text, "account.resetAuthorization", text_len)) { *R = tstrdup ("account.resetAuthorization"); return index; } else { index ++; }}
+ if (index == 12) { if (!strncmp (text, "account.resetNotifySettings", text_len)) { *R = tstrdup ("account.resetNotifySettings"); return index; } else { index ++; }}
+ if (index == 13) { if (!strncmp (text, "account.sendChangePhoneCode", text_len)) { *R = tstrdup ("account.sendChangePhoneCode"); return index; } else { index ++; }}
+ if (index == 14) { if (!strncmp (text, "account.setAccountTTL", text_len)) { *R = tstrdup ("account.setAccountTTL"); return index; } else { index ++; }}
+ if (index == 15) { if (!strncmp (text, "account.setPrivacy", text_len)) { *R = tstrdup ("account.setPrivacy"); return index; } else { index ++; }}
+ if (index == 16) { if (!strncmp (text, "account.unregisterDevice", text_len)) { *R = tstrdup ("account.unregisterDevice"); return index; } else { index ++; }}
+ if (index == 17) { if (!strncmp (text, "account.updateDeviceLocked", text_len)) { *R = tstrdup ("account.updateDeviceLocked"); return index; } else { index ++; }}
+ if (index == 18) { if (!strncmp (text, "account.updateNotifySettings", text_len)) { *R = tstrdup ("account.updateNotifySettings"); return index; } else { index ++; }}
+ if (index == 19) { if (!strncmp (text, "account.updatePasswordSettings", text_len)) { *R = tstrdup ("account.updatePasswordSettings"); return index; } else { index ++; }}
+ if (index == 20) { if (!strncmp (text, "account.updateProfile", text_len)) { *R = tstrdup ("account.updateProfile"); return index; } else { index ++; }}
+ if (index == 21) { if (!strncmp (text, "account.updateStatus", text_len)) { *R = tstrdup ("account.updateStatus"); return index; } else { index ++; }}
+ if (index == 22) { if (!strncmp (text, "account.updateUsername", text_len)) { *R = tstrdup ("account.updateUsername"); return index; } else { index ++; }}
+ if (index == 23) { if (!strncmp (text, "auth.bindTempAuthKey", text_len)) { *R = tstrdup ("auth.bindTempAuthKey"); return index; } else { index ++; }}
+ if (index == 24) { if (!strncmp (text, "auth.checkPassword", text_len)) { *R = tstrdup ("auth.checkPassword"); return index; } else { index ++; }}
+ if (index == 25) { if (!strncmp (text, "auth.checkPhone", text_len)) { *R = tstrdup ("auth.checkPhone"); return index; } else { index ++; }}
+ if (index == 26) { if (!strncmp (text, "auth.exportAuthorization", text_len)) { *R = tstrdup ("auth.exportAuthorization"); return index; } else { index ++; }}
+ if (index == 27) { if (!strncmp (text, "auth.importAuthorization", text_len)) { *R = tstrdup ("auth.importAuthorization"); return index; } else { index ++; }}
+ if (index == 28) { if (!strncmp (text, "auth.importBotAuthorization", text_len)) { *R = tstrdup ("auth.importBotAuthorization"); return index; } else { index ++; }}
+ if (index == 29) { if (!strncmp (text, "auth.logOut", text_len)) { *R = tstrdup ("auth.logOut"); return index; } else { index ++; }}
+ if (index == 30) { if (!strncmp (text, "auth.recoverPassword", text_len)) { *R = tstrdup ("auth.recoverPassword"); return index; } else { index ++; }}
+ if (index == 31) { if (!strncmp (text, "auth.requestPasswordRecovery", text_len)) { *R = tstrdup ("auth.requestPasswordRecovery"); return index; } else { index ++; }}
+ if (index == 32) { if (!strncmp (text, "auth.resetAuthorizations", text_len)) { *R = tstrdup ("auth.resetAuthorizations"); return index; } else { index ++; }}
+ if (index == 33) { if (!strncmp (text, "auth.sendCall", text_len)) { *R = tstrdup ("auth.sendCall"); return index; } else { index ++; }}
+ if (index == 34) { if (!strncmp (text, "auth.sendCode", text_len)) { *R = tstrdup ("auth.sendCode"); return index; } else { index ++; }}
+ if (index == 35) { if (!strncmp (text, "auth.sendInvites", text_len)) { *R = tstrdup ("auth.sendInvites"); return index; } else { index ++; }}
+ if (index == 36) { if (!strncmp (text, "auth.sendSms", text_len)) { *R = tstrdup ("auth.sendSms"); return index; } else { index ++; }}
+ if (index == 37) { if (!strncmp (text, "auth.signIn", text_len)) { *R = tstrdup ("auth.signIn"); return index; } else { index ++; }}
+ if (index == 38) { if (!strncmp (text, "auth.signUp", text_len)) { *R = tstrdup ("auth.signUp"); return index; } else { index ++; }}
+ if (index == 39) { if (!strncmp (text, "contacts.block", text_len)) { *R = tstrdup ("contacts.block"); return index; } else { index ++; }}
+ if (index == 40) { if (!strncmp (text, "contacts.deleteContact", text_len)) { *R = tstrdup ("contacts.deleteContact"); return index; } else { index ++; }}
+ if (index == 41) { if (!strncmp (text, "contacts.deleteContacts", text_len)) { *R = tstrdup ("contacts.deleteContacts"); return index; } else { index ++; }}
+ if (index == 42) { if (!strncmp (text, "contacts.exportCard", text_len)) { *R = tstrdup ("contacts.exportCard"); return index; } else { index ++; }}
+ if (index == 43) { if (!strncmp (text, "contacts.getBlocked", text_len)) { *R = tstrdup ("contacts.getBlocked"); return index; } else { index ++; }}
+ if (index == 44) { if (!strncmp (text, "contacts.getContacts", text_len)) { *R = tstrdup ("contacts.getContacts"); return index; } else { index ++; }}
+ if (index == 45) { if (!strncmp (text, "contacts.getStatuses", text_len)) { *R = tstrdup ("contacts.getStatuses"); return index; } else { index ++; }}
+ if (index == 46) { if (!strncmp (text, "contacts.getSuggested", text_len)) { *R = tstrdup ("contacts.getSuggested"); return index; } else { index ++; }}
+ if (index == 47) { if (!strncmp (text, "contacts.importCard", text_len)) { *R = tstrdup ("contacts.importCard"); return index; } else { index ++; }}
+ if (index == 48) { if (!strncmp (text, "contacts.importContacts", text_len)) { *R = tstrdup ("contacts.importContacts"); return index; } else { index ++; }}
+ if (index == 49) { if (!strncmp (text, "contacts.resolveUsername", text_len)) { *R = tstrdup ("contacts.resolveUsername"); return index; } else { index ++; }}
+ if (index == 50) { if (!strncmp (text, "contacts.search", text_len)) { *R = tstrdup ("contacts.search"); return index; } else { index ++; }}
+ if (index == 51) { if (!strncmp (text, "contacts.unblock", text_len)) { *R = tstrdup ("contacts.unblock"); return index; } else { index ++; }}
+ if (index == 52) { if (!strncmp (text, "geochats.checkin", text_len)) { *R = tstrdup ("geochats.checkin"); return index; } else { index ++; }}
+ if (index == 53) { if (!strncmp (text, "geochats.createGeoChat", text_len)) { *R = tstrdup ("geochats.createGeoChat"); return index; } else { index ++; }}
+ if (index == 54) { if (!strncmp (text, "geochats.editChatPhoto", text_len)) { *R = tstrdup ("geochats.editChatPhoto"); return index; } else { index ++; }}
+ if (index == 55) { if (!strncmp (text, "geochats.editChatTitle", text_len)) { *R = tstrdup ("geochats.editChatTitle"); return index; } else { index ++; }}
+ if (index == 56) { if (!strncmp (text, "geochats.getFullChat", text_len)) { *R = tstrdup ("geochats.getFullChat"); return index; } else { index ++; }}
+ if (index == 57) { if (!strncmp (text, "geochats.getHistory", text_len)) { *R = tstrdup ("geochats.getHistory"); return index; } else { index ++; }}
+ if (index == 58) { if (!strncmp (text, "geochats.getLocated", text_len)) { *R = tstrdup ("geochats.getLocated"); return index; } else { index ++; }}
+ if (index == 59) { if (!strncmp (text, "geochats.getRecents", text_len)) { *R = tstrdup ("geochats.getRecents"); return index; } else { index ++; }}
+ if (index == 60) { if (!strncmp (text, "geochats.search", text_len)) { *R = tstrdup ("geochats.search"); return index; } else { index ++; }}
+ if (index == 61) { if (!strncmp (text, "geochats.sendMedia", text_len)) { *R = tstrdup ("geochats.sendMedia"); return index; } else { index ++; }}
+ if (index == 62) { if (!strncmp (text, "geochats.sendMessage", text_len)) { *R = tstrdup ("geochats.sendMessage"); return index; } else { index ++; }}
+ if (index == 63) { if (!strncmp (text, "geochats.setTyping", text_len)) { *R = tstrdup ("geochats.setTyping"); return index; } else { index ++; }}
+ if (index == 64) { if (!strncmp (text, "help.getAppUpdate", text_len)) { *R = tstrdup ("help.getAppUpdate"); return index; } else { index ++; }}
+ if (index == 65) { if (!strncmp (text, "help.getConfig", text_len)) { *R = tstrdup ("help.getConfig"); return index; } else { index ++; }}
+ if (index == 66) { if (!strncmp (text, "help.getInviteText", text_len)) { *R = tstrdup ("help.getInviteText"); return index; } else { index ++; }}
+ if (index == 67) { if (!strncmp (text, "help.getNearestDc", text_len)) { *R = tstrdup ("help.getNearestDc"); return index; } else { index ++; }}
+ if (index == 68) { if (!strncmp (text, "help.getSupport", text_len)) { *R = tstrdup ("help.getSupport"); return index; } else { index ++; }}
+ if (index == 69) { if (!strncmp (text, "help.saveAppLog", text_len)) { *R = tstrdup ("help.saveAppLog"); return index; } else { index ++; }}
+ if (index == 70) { if (!strncmp (text, "initConnection", text_len)) { *R = tstrdup ("initConnection"); return index; } else { index ++; }}
+ if (index == 71) { if (!strncmp (text, "invokeAfterMsg", text_len)) { *R = tstrdup ("invokeAfterMsg"); return index; } else { index ++; }}
+ if (index == 72) { if (!strncmp (text, "invokeAfterMsgs", text_len)) { *R = tstrdup ("invokeAfterMsgs"); return index; } else { index ++; }}
+ if (index == 73) { if (!strncmp (text, "invokeWithLayer", text_len)) { *R = tstrdup ("invokeWithLayer"); return index; } else { index ++; }}
+ if (index == 74) { if (!strncmp (text, "invokeWithoutUpdates", text_len)) { *R = tstrdup ("invokeWithoutUpdates"); return index; } else { index ++; }}
+ if (index == 75) { if (!strncmp (text, "messages.acceptEncryption", text_len)) { *R = tstrdup ("messages.acceptEncryption"); return index; } else { index ++; }}
+ if (index == 76) { if (!strncmp (text, "messages.addChatUser", text_len)) { *R = tstrdup ("messages.addChatUser"); return index; } else { index ++; }}
+ if (index == 77) { if (!strncmp (text, "messages.checkChatInvite", text_len)) { *R = tstrdup ("messages.checkChatInvite"); return index; } else { index ++; }}
+ if (index == 78) { if (!strncmp (text, "messages.createChat", text_len)) { *R = tstrdup ("messages.createChat"); return index; } else { index ++; }}
+ if (index == 79) { if (!strncmp (text, "messages.deleteChatUser", text_len)) { *R = tstrdup ("messages.deleteChatUser"); return index; } else { index ++; }}
+ if (index == 80) { if (!strncmp (text, "messages.deleteHistory", text_len)) { *R = tstrdup ("messages.deleteHistory"); return index; } else { index ++; }}
+ if (index == 81) { if (!strncmp (text, "messages.deleteMessages", text_len)) { *R = tstrdup ("messages.deleteMessages"); return index; } else { index ++; }}
+ if (index == 82) { if (!strncmp (text, "messages.discardEncryption", text_len)) { *R = tstrdup ("messages.discardEncryption"); return index; } else { index ++; }}
+ if (index == 83) { if (!strncmp (text, "messages.editChatPhoto", text_len)) { *R = tstrdup ("messages.editChatPhoto"); return index; } else { index ++; }}
+ if (index == 84) { if (!strncmp (text, "messages.editChatTitle", text_len)) { *R = tstrdup ("messages.editChatTitle"); return index; } else { index ++; }}
+ if (index == 85) { if (!strncmp (text, "messages.exportChatInvite", text_len)) { *R = tstrdup ("messages.exportChatInvite"); return index; } else { index ++; }}
+ if (index == 86) { if (!strncmp (text, "messages.forwardMessage", text_len)) { *R = tstrdup ("messages.forwardMessage"); return index; } else { index ++; }}
+ if (index == 87) { if (!strncmp (text, "messages.forwardMessages", text_len)) { *R = tstrdup ("messages.forwardMessages"); return index; } else { index ++; }}
+ if (index == 88) { if (!strncmp (text, "messages.getAllStickers", text_len)) { *R = tstrdup ("messages.getAllStickers"); return index; } else { index ++; }}
+ if (index == 89) { if (!strncmp (text, "messages.getChats", text_len)) { *R = tstrdup ("messages.getChats"); return index; } else { index ++; }}
+ if (index == 90) { if (!strncmp (text, "messages.getDhConfig", text_len)) { *R = tstrdup ("messages.getDhConfig"); return index; } else { index ++; }}
+ if (index == 91) { if (!strncmp (text, "messages.getDialogs", text_len)) { *R = tstrdup ("messages.getDialogs"); return index; } else { index ++; }}
+ if (index == 92) { if (!strncmp (text, "messages.getFullChat", text_len)) { *R = tstrdup ("messages.getFullChat"); return index; } else { index ++; }}
+ if (index == 93) { if (!strncmp (text, "messages.getHistory", text_len)) { *R = tstrdup ("messages.getHistory"); return index; } else { index ++; }}
+ if (index == 94) { if (!strncmp (text, "messages.getMessages", text_len)) { *R = tstrdup ("messages.getMessages"); return index; } else { index ++; }}
+ if (index == 95) { if (!strncmp (text, "messages.getStickerSet", text_len)) { *R = tstrdup ("messages.getStickerSet"); return index; } else { index ++; }}
+ if (index == 96) { if (!strncmp (text, "messages.getStickers", text_len)) { *R = tstrdup ("messages.getStickers"); return index; } else { index ++; }}
+ if (index == 97) { if (!strncmp (text, "messages.getWebPagePreview", text_len)) { *R = tstrdup ("messages.getWebPagePreview"); return index; } else { index ++; }}
+ if (index == 98) { if (!strncmp (text, "messages.importChatInvite", text_len)) { *R = tstrdup ("messages.importChatInvite"); return index; } else { index ++; }}
+ if (index == 99) { if (!strncmp (text, "messages.installStickerSet", text_len)) { *R = tstrdup ("messages.installStickerSet"); return index; } else { index ++; }}
+ if (index == 100) { if (!strncmp (text, "messages.readEncryptedHistory", text_len)) { *R = tstrdup ("messages.readEncryptedHistory"); return index; } else { index ++; }}
+ if (index == 101) { if (!strncmp (text, "messages.readHistory", text_len)) { *R = tstrdup ("messages.readHistory"); return index; } else { index ++; }}
+ if (index == 102) { if (!strncmp (text, "messages.readMessageContents", text_len)) { *R = tstrdup ("messages.readMessageContents"); return index; } else { index ++; }}
+ if (index == 103) { if (!strncmp (text, "messages.receivedMessages", text_len)) { *R = tstrdup ("messages.receivedMessages"); return index; } else { index ++; }}
+ if (index == 104) { if (!strncmp (text, "messages.receivedQueue", text_len)) { *R = tstrdup ("messages.receivedQueue"); return index; } else { index ++; }}
+ if (index == 105) { if (!strncmp (text, "messages.requestEncryption", text_len)) { *R = tstrdup ("messages.requestEncryption"); return index; } else { index ++; }}
+ if (index == 106) { if (!strncmp (text, "messages.search", text_len)) { *R = tstrdup ("messages.search"); return index; } else { index ++; }}
+ if (index == 107) { if (!strncmp (text, "messages.sendBroadcast", text_len)) { *R = tstrdup ("messages.sendBroadcast"); return index; } else { index ++; }}
+ if (index == 108) { if (!strncmp (text, "messages.sendEncrypted", text_len)) { *R = tstrdup ("messages.sendEncrypted"); return index; } else { index ++; }}
+ if (index == 109) { if (!strncmp (text, "messages.sendEncryptedFile", text_len)) { *R = tstrdup ("messages.sendEncryptedFile"); return index; } else { index ++; }}
+ if (index == 110) { if (!strncmp (text, "messages.sendEncryptedService", text_len)) { *R = tstrdup ("messages.sendEncryptedService"); return index; } else { index ++; }}
+ if (index == 111) { if (!strncmp (text, "messages.sendMedia", text_len)) { *R = tstrdup ("messages.sendMedia"); return index; } else { index ++; }}
+ if (index == 112) { if (!strncmp (text, "messages.sendMessage", text_len)) { *R = tstrdup ("messages.sendMessage"); return index; } else { index ++; }}
+ if (index == 113) { if (!strncmp (text, "messages.setEncryptedTyping", text_len)) { *R = tstrdup ("messages.setEncryptedTyping"); return index; } else { index ++; }}
+ if (index == 114) { if (!strncmp (text, "messages.setTyping", text_len)) { *R = tstrdup ("messages.setTyping"); return index; } else { index ++; }}
+ if (index == 115) { if (!strncmp (text, "messages.startBot", text_len)) { *R = tstrdup ("messages.startBot"); return index; } else { index ++; }}
+ if (index == 116) { if (!strncmp (text, "messages.uninstallStickerSet", text_len)) { *R = tstrdup ("messages.uninstallStickerSet"); return index; } else { index ++; }}
+ if (index == 117) { if (!strncmp (text, "photos.deletePhotos", text_len)) { *R = tstrdup ("photos.deletePhotos"); return index; } else { index ++; }}
+ if (index == 118) { if (!strncmp (text, "photos.getUserPhotos", text_len)) { *R = tstrdup ("photos.getUserPhotos"); return index; } else { index ++; }}
+ if (index == 119) { if (!strncmp (text, "photos.updateProfilePhoto", text_len)) { *R = tstrdup ("photos.updateProfilePhoto"); return index; } else { index ++; }}
+ if (index == 120) { if (!strncmp (text, "photos.uploadProfilePhoto", text_len)) { *R = tstrdup ("photos.uploadProfilePhoto"); return index; } else { index ++; }}
+ if (index == 121) { if (!strncmp (text, "req_DH_params", text_len)) { *R = tstrdup ("req_DH_params"); return index; } else { index ++; }}
+ if (index == 122) { if (!strncmp (text, "req_pq", text_len)) { *R = tstrdup ("req_pq"); return index; } else { index ++; }}
+ if (index == 123) { if (!strncmp (text, "set_client_DH_params", text_len)) { *R = tstrdup ("set_client_DH_params"); return index; } else { index ++; }}
+ if (index == 124) { if (!strncmp (text, "updates.getDifference", text_len)) { *R = tstrdup ("updates.getDifference"); return index; } else { index ++; }}
+ if (index == 125) { if (!strncmp (text, "updates.getState", text_len)) { *R = tstrdup ("updates.getState"); return index; } else { index ++; }}
+ if (index == 126) { if (!strncmp (text, "upload.getFile", text_len)) { *R = tstrdup ("upload.getFile"); return index; } else { index ++; }}
+ if (index == 127) { if (!strncmp (text, "upload.saveBigFilePart", text_len)) { *R = tstrdup ("upload.saveBigFilePart"); return index; } else { index ++; }}
+ if (index == 128) { if (!strncmp (text, "upload.saveFilePart", text_len)) { *R = tstrdup ("upload.saveFilePart"); return index; } else { index ++; }}
+ if (index == 129) { if (!strncmp (text, "users.getFullUser", text_len)) { *R = tstrdup ("users.getFullUser"); return index; } else { index ++; }}
+ if (index == 130) { 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.getAuthorizations", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_account_get_authorizations ();
+ 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 == 27 && !memcmp (cur_token, "account.getPasswordSettings", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_account_get_password_settings ();
+ 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 == 26 && !memcmp (cur_token, "account.resetAuthorization", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_account_reset_authorization ();
+ 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 == 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 == 26 && !memcmp (cur_token, "account.updateDeviceLocked", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_account_update_device_locked ();
+ 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 == 30 && !memcmp (cur_token, "account.updatePasswordSettings", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_account_update_password_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 == 27 && !memcmp (cur_token, "auth.importBotAuthorization", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_auth_import_bot_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 == 20 && !memcmp (cur_token, "auth.recoverPassword", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_auth_recover_password ();
+ if (!P) { return 0; }
+ expect_token_ptr_autocomplete (")", 1);
+ return P;
+ }
+ if (cur_token_len == 28 && !memcmp (cur_token, "auth.requestPasswordRecovery", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_auth_request_password_recovery ();
+ 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 == 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 == 20 && !memcmp (cur_token, "invokeWithoutUpdates", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_invoke_without_updates ();
+ 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 == 24 && !memcmp (cur_token, "messages.checkChatInvite", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_messages_check_chat_invite ();
+ 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 == 25 && !memcmp (cur_token, "messages.exportChatInvite", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_messages_export_chat_invite ();
+ 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 == 22 && !memcmp (cur_token, "messages.getStickerSet", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_messages_get_sticker_set ();
+ 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 == 26 && !memcmp (cur_token, "messages.getWebPagePreview", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_messages_get_web_page_preview ();
+ if (!P) { return 0; }
+ expect_token_ptr_autocomplete (")", 1);
+ return P;
+ }
+ if (cur_token_len == 25 && !memcmp (cur_token, "messages.importChatInvite", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_messages_import_chat_invite ();
+ if (!P) { return 0; }
+ expect_token_ptr_autocomplete (")", 1);
+ return P;
+ }
+ if (cur_token_len == 26 && !memcmp (cur_token, "messages.installStickerSet", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_messages_install_sticker_set ();
+ 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 == 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 == 17 && !memcmp (cur_token, "messages.startBot", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_messages_start_bot ();
+ if (!P) { return 0; }
+ expect_token_ptr_autocomplete (")", 1);
+ return P;
+ }
+ if (cur_token_len == 28 && !memcmp (cur_token, "messages.uninstallStickerSet", cur_token_len)) {
+ local_next_token ();
+ struct paramed_type *P = autocomplete_function_messages_uninstall_sticker_set ();
+ 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;
+}
diff --git a/libs/tgl/src/auto/auto-autocomplete.h b/libs/tgl/src/auto/auto-autocomplete.h
new file mode 100644
index 0000000000..1e58313e55
--- /dev/null
+++ b/libs/tgl/src/auto/auto-autocomplete.h
@@ -0,0 +1,865 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#else
+#include "auto.h"
+#endif
+#include <assert.h>
+int tglf_extf_autocomplete (struct tgl_state *TLS, const char *text, int text_len, int index, char **R, char *data, int data_len);
+int autocomplete_constructor_account_days_t_t_l (struct paramed_type *T);
+int autocomplete_constructor_audio_empty (struct paramed_type *T);
+int autocomplete_constructor_audio (struct paramed_type *T);
+int autocomplete_constructor_authorization (struct paramed_type *T);
+int autocomplete_constructor_bool_false (struct paramed_type *T);
+int autocomplete_constructor_bool_true (struct paramed_type *T);
+int autocomplete_constructor_bot_command (struct paramed_type *T);
+int autocomplete_constructor_bot_command_old (struct paramed_type *T);
+int autocomplete_constructor_bot_info_empty (struct paramed_type *T);
+int autocomplete_constructor_bot_info (struct paramed_type *T);
+int autocomplete_constructor_bytes (struct paramed_type *T);
+int autocomplete_constructor_chat_empty (struct paramed_type *T);
+int autocomplete_constructor_chat (struct paramed_type *T);
+int autocomplete_constructor_chat_forbidden (struct paramed_type *T);
+int autocomplete_constructor_geo_chat (struct paramed_type *T);
+int autocomplete_constructor_chat_full (struct paramed_type *T);
+int autocomplete_constructor_chat_invite_already (struct paramed_type *T);
+int autocomplete_constructor_chat_invite (struct paramed_type *T);
+int autocomplete_constructor_chat_located (struct paramed_type *T);
+int autocomplete_constructor_chat_participant (struct paramed_type *T);
+int autocomplete_constructor_chat_participants_forbidden (struct paramed_type *T);
+int autocomplete_constructor_chat_participants (struct paramed_type *T);
+int autocomplete_constructor_chat_photo_empty (struct paramed_type *T);
+int autocomplete_constructor_chat_photo (struct paramed_type *T);
+int autocomplete_constructor_client_d_h_inner_data (struct paramed_type *T);
+int autocomplete_constructor_config (struct paramed_type *T);
+int autocomplete_constructor_contact (struct paramed_type *T);
+int autocomplete_constructor_contact_blocked (struct paramed_type *T);
+int autocomplete_constructor_contact_found (struct paramed_type *T);
+int autocomplete_constructor_contact_link_unknown (struct paramed_type *T);
+int autocomplete_constructor_contact_link_none (struct paramed_type *T);
+int autocomplete_constructor_contact_link_has_phone (struct paramed_type *T);
+int autocomplete_constructor_contact_link_contact (struct paramed_type *T);
+int autocomplete_constructor_contact_status (struct paramed_type *T);
+int autocomplete_constructor_contact_suggested (struct paramed_type *T);
+int autocomplete_constructor_dc_option_l28 (struct paramed_type *T);
+int autocomplete_constructor_dc_option (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_service (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_read_messages (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_delete_messages (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_flush_history (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_resend (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_notify_layer (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_typing (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_request_key (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_accept_key (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_abort_key (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_commit_key (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_noop (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_layer (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_empty (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_photo (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_geo_point (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_contact (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_document (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_video (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_audio (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_external_document (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_video_l12 (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T);
+int autocomplete_constructor_dialog (struct paramed_type *T);
+int autocomplete_constructor_disabled_feature (struct paramed_type *T);
+int autocomplete_constructor_document_empty (struct paramed_type *T);
+int autocomplete_constructor_document (struct paramed_type *T);
+int autocomplete_constructor_document_l19 (struct paramed_type *T);
+int autocomplete_constructor_document_attribute_image_size (struct paramed_type *T);
+int autocomplete_constructor_document_attribute_animated (struct paramed_type *T);
+int autocomplete_constructor_document_attribute_sticker_l28 (struct paramed_type *T);
+int autocomplete_constructor_document_attribute_sticker (struct paramed_type *T);
+int autocomplete_constructor_document_attribute_video (struct paramed_type *T);
+int autocomplete_constructor_document_attribute_audio (struct paramed_type *T);
+int autocomplete_constructor_document_attribute_filename (struct paramed_type *T);
+int autocomplete_constructor_double (struct paramed_type *T);
+int autocomplete_constructor_encrypted_chat_empty (struct paramed_type *T);
+int autocomplete_constructor_encrypted_chat_waiting (struct paramed_type *T);
+int autocomplete_constructor_encrypted_chat_requested (struct paramed_type *T);
+int autocomplete_constructor_encrypted_chat (struct paramed_type *T);
+int autocomplete_constructor_encrypted_chat_discarded (struct paramed_type *T);
+int autocomplete_constructor_encrypted_file_empty (struct paramed_type *T);
+int autocomplete_constructor_encrypted_file (struct paramed_type *T);
+int autocomplete_constructor_encrypted_message (struct paramed_type *T);
+int autocomplete_constructor_encrypted_message_service (struct paramed_type *T);
+int autocomplete_constructor_error (struct paramed_type *T);
+int autocomplete_constructor_chat_invite_empty (struct paramed_type *T);
+int autocomplete_constructor_chat_invite_exported (struct paramed_type *T);
+int autocomplete_constructor_file_location_unavailable (struct paramed_type *T);
+int autocomplete_constructor_file_location (struct paramed_type *T);
+int autocomplete_constructor_geo_chat_message_empty (struct paramed_type *T);
+int autocomplete_constructor_geo_chat_message (struct paramed_type *T);
+int autocomplete_constructor_geo_chat_message_service (struct paramed_type *T);
+int autocomplete_constructor_geo_point_empty (struct paramed_type *T);
+int autocomplete_constructor_geo_point (struct paramed_type *T);
+int autocomplete_constructor_imported_contact (struct paramed_type *T);
+int autocomplete_constructor_input_app_event (struct paramed_type *T);
+int autocomplete_constructor_input_audio_empty (struct paramed_type *T);
+int autocomplete_constructor_input_audio (struct paramed_type *T);
+int autocomplete_constructor_input_chat_photo_empty (struct paramed_type *T);
+int autocomplete_constructor_input_chat_uploaded_photo (struct paramed_type *T);
+int autocomplete_constructor_input_chat_photo (struct paramed_type *T);
+int autocomplete_constructor_input_phone_contact (struct paramed_type *T);
+int autocomplete_constructor_input_document_empty (struct paramed_type *T);
+int autocomplete_constructor_input_document (struct paramed_type *T);
+int autocomplete_constructor_input_encrypted_chat (struct paramed_type *T);
+int autocomplete_constructor_input_encrypted_file_empty (struct paramed_type *T);
+int autocomplete_constructor_input_encrypted_file_uploaded (struct paramed_type *T);
+int autocomplete_constructor_input_encrypted_file (struct paramed_type *T);
+int autocomplete_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T);
+int autocomplete_constructor_input_file (struct paramed_type *T);
+int autocomplete_constructor_input_file_big (struct paramed_type *T);
+int autocomplete_constructor_input_file_location (struct paramed_type *T);
+int autocomplete_constructor_input_video_file_location (struct paramed_type *T);
+int autocomplete_constructor_input_encrypted_file_location (struct paramed_type *T);
+int autocomplete_constructor_input_audio_file_location (struct paramed_type *T);
+int autocomplete_constructor_input_document_file_location (struct paramed_type *T);
+int autocomplete_constructor_input_geo_chat (struct paramed_type *T);
+int autocomplete_constructor_input_geo_point_empty (struct paramed_type *T);
+int autocomplete_constructor_input_geo_point (struct paramed_type *T);
+int autocomplete_constructor_input_media_empty (struct paramed_type *T);
+int autocomplete_constructor_input_media_uploaded_photo (struct paramed_type *T);
+int autocomplete_constructor_input_media_photo (struct paramed_type *T);
+int autocomplete_constructor_input_media_geo_point (struct paramed_type *T);
+int autocomplete_constructor_input_media_contact (struct paramed_type *T);
+int autocomplete_constructor_input_media_uploaded_video (struct paramed_type *T);
+int autocomplete_constructor_input_media_uploaded_thumb_video (struct paramed_type *T);
+int autocomplete_constructor_input_media_video (struct paramed_type *T);
+int autocomplete_constructor_input_media_uploaded_audio (struct paramed_type *T);
+int autocomplete_constructor_input_media_audio (struct paramed_type *T);
+int autocomplete_constructor_input_media_uploaded_document (struct paramed_type *T);
+int autocomplete_constructor_input_media_uploaded_thumb_document (struct paramed_type *T);
+int autocomplete_constructor_input_media_document (struct paramed_type *T);
+int autocomplete_constructor_input_media_venue (struct paramed_type *T);
+int autocomplete_constructor_input_notify_peer (struct paramed_type *T);
+int autocomplete_constructor_input_notify_users (struct paramed_type *T);
+int autocomplete_constructor_input_notify_chats (struct paramed_type *T);
+int autocomplete_constructor_input_notify_all (struct paramed_type *T);
+int autocomplete_constructor_input_notify_geo_chat_peer (struct paramed_type *T);
+int autocomplete_constructor_input_peer_empty (struct paramed_type *T);
+int autocomplete_constructor_input_peer_self (struct paramed_type *T);
+int autocomplete_constructor_input_peer_contact (struct paramed_type *T);
+int autocomplete_constructor_input_peer_foreign (struct paramed_type *T);
+int autocomplete_constructor_input_peer_chat (struct paramed_type *T);
+int autocomplete_constructor_input_peer_notify_events_empty (struct paramed_type *T);
+int autocomplete_constructor_input_peer_notify_events_all (struct paramed_type *T);
+int autocomplete_constructor_input_peer_notify_settings (struct paramed_type *T);
+int autocomplete_constructor_input_photo_empty (struct paramed_type *T);
+int autocomplete_constructor_input_photo (struct paramed_type *T);
+int autocomplete_constructor_input_photo_crop_auto (struct paramed_type *T);
+int autocomplete_constructor_input_photo_crop (struct paramed_type *T);
+int autocomplete_constructor_input_privacy_key_status_timestamp (struct paramed_type *T);
+int autocomplete_constructor_input_privacy_value_allow_contacts (struct paramed_type *T);
+int autocomplete_constructor_input_privacy_value_allow_all (struct paramed_type *T);
+int autocomplete_constructor_input_privacy_value_allow_users (struct paramed_type *T);
+int autocomplete_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T);
+int autocomplete_constructor_input_privacy_value_disallow_all (struct paramed_type *T);
+int autocomplete_constructor_input_privacy_value_disallow_users (struct paramed_type *T);
+int autocomplete_constructor_input_sticker_set_empty (struct paramed_type *T);
+int autocomplete_constructor_input_sticker_set_i_d (struct paramed_type *T);
+int autocomplete_constructor_input_sticker_set_short_name (struct paramed_type *T);
+int autocomplete_constructor_input_user_empty (struct paramed_type *T);
+int autocomplete_constructor_input_user_self (struct paramed_type *T);
+int autocomplete_constructor_input_user_contact (struct paramed_type *T);
+int autocomplete_constructor_input_user_foreign (struct paramed_type *T);
+int autocomplete_constructor_input_video_empty (struct paramed_type *T);
+int autocomplete_constructor_input_video (struct paramed_type *T);
+int autocomplete_constructor_int (struct paramed_type *T);
+int autocomplete_constructor_int128 (struct paramed_type *T);
+int autocomplete_constructor_int256 (struct paramed_type *T);
+int autocomplete_constructor_keyboard_button (struct paramed_type *T);
+int autocomplete_constructor_keyboard_button_row (struct paramed_type *T);
+int autocomplete_constructor_long (struct paramed_type *T);
+int autocomplete_constructor_message_empty (struct paramed_type *T);
+int autocomplete_constructor_message (struct paramed_type *T);
+int autocomplete_constructor_message_service (struct paramed_type *T);
+int autocomplete_constructor_message_action_empty (struct paramed_type *T);
+int autocomplete_constructor_message_action_chat_create (struct paramed_type *T);
+int autocomplete_constructor_message_action_chat_edit_title (struct paramed_type *T);
+int autocomplete_constructor_message_action_chat_edit_photo (struct paramed_type *T);
+int autocomplete_constructor_message_action_chat_delete_photo (struct paramed_type *T);
+int autocomplete_constructor_message_action_chat_add_user (struct paramed_type *T);
+int autocomplete_constructor_message_action_chat_delete_user (struct paramed_type *T);
+int autocomplete_constructor_message_action_geo_chat_create (struct paramed_type *T);
+int autocomplete_constructor_message_action_geo_chat_checkin (struct paramed_type *T);
+int autocomplete_constructor_message_action_chat_joined_by_link (struct paramed_type *T);
+int autocomplete_constructor_message_media_empty (struct paramed_type *T);
+int autocomplete_constructor_message_media_photo (struct paramed_type *T);
+int autocomplete_constructor_message_media_video (struct paramed_type *T);
+int autocomplete_constructor_message_media_geo (struct paramed_type *T);
+int autocomplete_constructor_message_media_contact (struct paramed_type *T);
+int autocomplete_constructor_message_media_unsupported (struct paramed_type *T);
+int autocomplete_constructor_message_media_document (struct paramed_type *T);
+int autocomplete_constructor_message_media_audio (struct paramed_type *T);
+int autocomplete_constructor_message_media_web_page (struct paramed_type *T);
+int autocomplete_constructor_message_media_venue (struct paramed_type *T);
+int autocomplete_constructor_message_media_photo_l27 (struct paramed_type *T);
+int autocomplete_constructor_message_media_video_l27 (struct paramed_type *T);
+int autocomplete_constructor_input_messages_filter_empty (struct paramed_type *T);
+int autocomplete_constructor_input_messages_filter_photos (struct paramed_type *T);
+int autocomplete_constructor_input_messages_filter_video (struct paramed_type *T);
+int autocomplete_constructor_input_messages_filter_photo_video (struct paramed_type *T);
+int autocomplete_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T);
+int autocomplete_constructor_input_messages_filter_document (struct paramed_type *T);
+int autocomplete_constructor_input_messages_filter_audio (struct paramed_type *T);
+int autocomplete_constructor_nearest_dc (struct paramed_type *T);
+int autocomplete_constructor_notify_peer (struct paramed_type *T);
+int autocomplete_constructor_notify_users (struct paramed_type *T);
+int autocomplete_constructor_notify_chats (struct paramed_type *T);
+int autocomplete_constructor_notify_all (struct paramed_type *T);
+int autocomplete_constructor_null (struct paramed_type *T);
+int autocomplete_constructor_p_q_inner_data (struct paramed_type *T);
+int autocomplete_constructor_p_q_inner_data_temp (struct paramed_type *T);
+int autocomplete_constructor_peer_user (struct paramed_type *T);
+int autocomplete_constructor_peer_chat (struct paramed_type *T);
+int autocomplete_constructor_peer_notify_events_empty (struct paramed_type *T);
+int autocomplete_constructor_peer_notify_events_all (struct paramed_type *T);
+int autocomplete_constructor_peer_notify_settings_empty (struct paramed_type *T);
+int autocomplete_constructor_peer_notify_settings (struct paramed_type *T);
+int autocomplete_constructor_photo_empty (struct paramed_type *T);
+int autocomplete_constructor_photo (struct paramed_type *T);
+int autocomplete_constructor_photo_l27 (struct paramed_type *T);
+int autocomplete_constructor_photo_size_empty (struct paramed_type *T);
+int autocomplete_constructor_photo_size (struct paramed_type *T);
+int autocomplete_constructor_photo_cached_size (struct paramed_type *T);
+int autocomplete_constructor_privacy_key_status_timestamp (struct paramed_type *T);
+int autocomplete_constructor_privacy_value_allow_contacts (struct paramed_type *T);
+int autocomplete_constructor_privacy_value_allow_all (struct paramed_type *T);
+int autocomplete_constructor_privacy_value_allow_users (struct paramed_type *T);
+int autocomplete_constructor_privacy_value_disallow_contacts (struct paramed_type *T);
+int autocomplete_constructor_privacy_value_disallow_all (struct paramed_type *T);
+int autocomplete_constructor_privacy_value_disallow_users (struct paramed_type *T);
+int autocomplete_constructor_received_notify_message (struct paramed_type *T);
+int autocomplete_constructor_reply_keyboard_hide (struct paramed_type *T);
+int autocomplete_constructor_reply_keyboard_force_reply (struct paramed_type *T);
+int autocomplete_constructor_reply_keyboard_markup (struct paramed_type *T);
+int autocomplete_constructor_res_p_q (struct paramed_type *T);
+int autocomplete_constructor_send_message_typing_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_cancel_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_record_video_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_upload_video_action_l27 (struct paramed_type *T);
+int autocomplete_constructor_send_message_upload_video_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_record_audio_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T);
+int autocomplete_constructor_send_message_upload_audio_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_upload_photo_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_upload_document_action_l27 (struct paramed_type *T);
+int autocomplete_constructor_send_message_upload_document_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_geo_location_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_choose_contact_action (struct paramed_type *T);
+int autocomplete_constructor_server_d_h_params_fail (struct paramed_type *T);
+int autocomplete_constructor_server_d_h_params_ok (struct paramed_type *T);
+int autocomplete_constructor_server_d_h_inner_data (struct paramed_type *T);
+int autocomplete_constructor_dh_gen_ok (struct paramed_type *T);
+int autocomplete_constructor_dh_gen_retry (struct paramed_type *T);
+int autocomplete_constructor_dh_gen_fail (struct paramed_type *T);
+int autocomplete_constructor_sticker_pack (struct paramed_type *T);
+int autocomplete_constructor_sticker_set (struct paramed_type *T);
+int autocomplete_constructor_string (struct paramed_type *T);
+int autocomplete_constructor_update_new_message (struct paramed_type *T);
+int autocomplete_constructor_update_message_i_d (struct paramed_type *T);
+int autocomplete_constructor_update_delete_messages (struct paramed_type *T);
+int autocomplete_constructor_update_user_typing (struct paramed_type *T);
+int autocomplete_constructor_update_chat_user_typing (struct paramed_type *T);
+int autocomplete_constructor_update_chat_participants (struct paramed_type *T);
+int autocomplete_constructor_update_user_status (struct paramed_type *T);
+int autocomplete_constructor_update_user_name (struct paramed_type *T);
+int autocomplete_constructor_update_user_photo (struct paramed_type *T);
+int autocomplete_constructor_update_contact_registered (struct paramed_type *T);
+int autocomplete_constructor_update_contact_link (struct paramed_type *T);
+int autocomplete_constructor_update_new_authorization (struct paramed_type *T);
+int autocomplete_constructor_update_new_geo_chat_message (struct paramed_type *T);
+int autocomplete_constructor_update_new_encrypted_message (struct paramed_type *T);
+int autocomplete_constructor_update_encrypted_chat_typing (struct paramed_type *T);
+int autocomplete_constructor_update_encryption (struct paramed_type *T);
+int autocomplete_constructor_update_encrypted_messages_read (struct paramed_type *T);
+int autocomplete_constructor_update_chat_participant_add (struct paramed_type *T);
+int autocomplete_constructor_update_chat_participant_delete (struct paramed_type *T);
+int autocomplete_constructor_update_dc_options (struct paramed_type *T);
+int autocomplete_constructor_update_user_blocked (struct paramed_type *T);
+int autocomplete_constructor_update_notify_settings (struct paramed_type *T);
+int autocomplete_constructor_update_service_notification (struct paramed_type *T);
+int autocomplete_constructor_update_privacy (struct paramed_type *T);
+int autocomplete_constructor_update_user_phone (struct paramed_type *T);
+int autocomplete_constructor_update_read_history_inbox (struct paramed_type *T);
+int autocomplete_constructor_update_read_history_outbox (struct paramed_type *T);
+int autocomplete_constructor_update_web_page (struct paramed_type *T);
+int autocomplete_constructor_update_read_messages_contents (struct paramed_type *T);
+int autocomplete_constructor_update_msg_update (struct paramed_type *T);
+int autocomplete_constructor_updates_too_long (struct paramed_type *T);
+int autocomplete_constructor_update_short_message (struct paramed_type *T);
+int autocomplete_constructor_update_short_chat_message (struct paramed_type *T);
+int autocomplete_constructor_update_short (struct paramed_type *T);
+int autocomplete_constructor_updates_combined (struct paramed_type *T);
+int autocomplete_constructor_updates (struct paramed_type *T);
+int autocomplete_constructor_user_empty (struct paramed_type *T);
+int autocomplete_constructor_user (struct paramed_type *T);
+int autocomplete_constructor_user_full (struct paramed_type *T);
+int autocomplete_constructor_user_profile_photo_empty (struct paramed_type *T);
+int autocomplete_constructor_user_profile_photo (struct paramed_type *T);
+int autocomplete_constructor_user_status_empty (struct paramed_type *T);
+int autocomplete_constructor_user_status_online (struct paramed_type *T);
+int autocomplete_constructor_user_status_offline (struct paramed_type *T);
+int autocomplete_constructor_user_status_recently (struct paramed_type *T);
+int autocomplete_constructor_user_status_last_week (struct paramed_type *T);
+int autocomplete_constructor_user_status_last_month (struct paramed_type *T);
+int autocomplete_constructor_vector (struct paramed_type *T);
+int autocomplete_constructor_video_empty (struct paramed_type *T);
+int autocomplete_constructor_video (struct paramed_type *T);
+int autocomplete_constructor_video_l27 (struct paramed_type *T);
+int autocomplete_constructor_wall_paper (struct paramed_type *T);
+int autocomplete_constructor_wall_paper_solid (struct paramed_type *T);
+int autocomplete_constructor_web_page_empty (struct paramed_type *T);
+int autocomplete_constructor_web_page_pending (struct paramed_type *T);
+int autocomplete_constructor_web_page (struct paramed_type *T);
+int autocomplete_constructor_account_authorizations (struct paramed_type *T);
+int autocomplete_constructor_account_no_password (struct paramed_type *T);
+int autocomplete_constructor_account_password (struct paramed_type *T);
+int autocomplete_constructor_account_password_input_settings (struct paramed_type *T);
+int autocomplete_constructor_account_password_settings (struct paramed_type *T);
+int autocomplete_constructor_account_privacy_rules (struct paramed_type *T);
+int autocomplete_constructor_account_sent_change_phone_code (struct paramed_type *T);
+int autocomplete_constructor_auth_authorization (struct paramed_type *T);
+int autocomplete_constructor_auth_checked_phone (struct paramed_type *T);
+int autocomplete_constructor_auth_exported_authorization (struct paramed_type *T);
+int autocomplete_constructor_auth_password_recovery (struct paramed_type *T);
+int autocomplete_constructor_auth_sent_code (struct paramed_type *T);
+int autocomplete_constructor_auth_sent_app_code (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_key (struct paramed_type *T);
+int autocomplete_constructor_binlog_start (struct paramed_type *T);
+int autocomplete_constructor_binlog_dc_option (struct paramed_type *T);
+int autocomplete_constructor_binlog_dc_option_new (struct paramed_type *T);
+int autocomplete_constructor_binlog_auth_key (struct paramed_type *T);
+int autocomplete_constructor_binlog_default_dc (struct paramed_type *T);
+int autocomplete_constructor_binlog_dc_signed (struct paramed_type *T);
+int autocomplete_constructor_binlog_our_id (struct paramed_type *T);
+int autocomplete_constructor_binlog_set_dh_params (struct paramed_type *T);
+int autocomplete_constructor_binlog_set_pts (struct paramed_type *T);
+int autocomplete_constructor_binlog_set_qts (struct paramed_type *T);
+int autocomplete_constructor_binlog_set_date (struct paramed_type *T);
+int autocomplete_constructor_binlog_set_seq (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_delete (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_new (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T);
+int autocomplete_constructor_binlog_user_delete (struct paramed_type *T);
+int autocomplete_constructor_binlog_user_new (struct paramed_type *T);
+int autocomplete_constructor_binlog_chat_new (struct paramed_type *T);
+int autocomplete_constructor_binlog_chat_add_participant (struct paramed_type *T);
+int autocomplete_constructor_binlog_chat_del_participant (struct paramed_type *T);
+int autocomplete_constructor_binlog_set_msg_id (struct paramed_type *T);
+int autocomplete_constructor_binlog_message_delete (struct paramed_type *T);
+int autocomplete_constructor_binlog_message_new (struct paramed_type *T);
+int autocomplete_constructor_binlog_message_encr_new (struct paramed_type *T);
+int autocomplete_constructor_binlog_msg_update (struct paramed_type *T);
+int autocomplete_constructor_binlog_reset_authorization (struct paramed_type *T);
+int autocomplete_constructor_contacts_blocked (struct paramed_type *T);
+int autocomplete_constructor_contacts_blocked_slice (struct paramed_type *T);
+int autocomplete_constructor_contacts_contacts_not_modified (struct paramed_type *T);
+int autocomplete_constructor_contacts_contacts (struct paramed_type *T);
+int autocomplete_constructor_contacts_found (struct paramed_type *T);
+int autocomplete_constructor_contacts_imported_contacts (struct paramed_type *T);
+int autocomplete_constructor_contacts_link (struct paramed_type *T);
+int autocomplete_constructor_contacts_suggested (struct paramed_type *T);
+int autocomplete_constructor_geochats_located (struct paramed_type *T);
+int autocomplete_constructor_geochats_messages (struct paramed_type *T);
+int autocomplete_constructor_geochats_messages_slice (struct paramed_type *T);
+int autocomplete_constructor_geochats_stated_message (struct paramed_type *T);
+int autocomplete_constructor_help_app_update (struct paramed_type *T);
+int autocomplete_constructor_help_no_app_update (struct paramed_type *T);
+int autocomplete_constructor_help_invite_text (struct paramed_type *T);
+int autocomplete_constructor_help_support (struct paramed_type *T);
+int autocomplete_constructor_messages_affected_history (struct paramed_type *T);
+int autocomplete_constructor_messages_affected_messages (struct paramed_type *T);
+int autocomplete_constructor_messages_all_stickers_not_modified (struct paramed_type *T);
+int autocomplete_constructor_messages_all_stickers (struct paramed_type *T);
+int autocomplete_constructor_messages_chat_full (struct paramed_type *T);
+int autocomplete_constructor_messages_chats (struct paramed_type *T);
+int autocomplete_constructor_messages_dh_config_not_modified (struct paramed_type *T);
+int autocomplete_constructor_messages_dh_config (struct paramed_type *T);
+int autocomplete_constructor_messages_dialogs (struct paramed_type *T);
+int autocomplete_constructor_messages_dialogs_slice (struct paramed_type *T);
+int autocomplete_constructor_messages_message_empty (struct paramed_type *T);
+int autocomplete_constructor_messages_messages (struct paramed_type *T);
+int autocomplete_constructor_messages_messages_slice (struct paramed_type *T);
+int autocomplete_constructor_messages_sent_encrypted_message (struct paramed_type *T);
+int autocomplete_constructor_messages_sent_encrypted_file (struct paramed_type *T);
+int autocomplete_constructor_messages_sent_message (struct paramed_type *T);
+int autocomplete_constructor_messages_sent_message_link (struct paramed_type *T);
+int autocomplete_constructor_messages_sticker_set (struct paramed_type *T);
+int autocomplete_constructor_messages_stickers_not_modified (struct paramed_type *T);
+int autocomplete_constructor_messages_stickers (struct paramed_type *T);
+int autocomplete_constructor_photos_photo (struct paramed_type *T);
+int autocomplete_constructor_photos_photos (struct paramed_type *T);
+int autocomplete_constructor_photos_photos_slice (struct paramed_type *T);
+int autocomplete_constructor_storage_file_unknown (struct paramed_type *T);
+int autocomplete_constructor_storage_file_jpeg (struct paramed_type *T);
+int autocomplete_constructor_storage_file_gif (struct paramed_type *T);
+int autocomplete_constructor_storage_file_png (struct paramed_type *T);
+int autocomplete_constructor_storage_file_pdf (struct paramed_type *T);
+int autocomplete_constructor_storage_file_mp3 (struct paramed_type *T);
+int autocomplete_constructor_storage_file_mov (struct paramed_type *T);
+int autocomplete_constructor_storage_file_partial (struct paramed_type *T);
+int autocomplete_constructor_storage_file_mp4 (struct paramed_type *T);
+int autocomplete_constructor_storage_file_webp (struct paramed_type *T);
+int autocomplete_constructor_updates_difference_empty (struct paramed_type *T);
+int autocomplete_constructor_updates_difference (struct paramed_type *T);
+int autocomplete_constructor_updates_difference_slice (struct paramed_type *T);
+int autocomplete_constructor_updates_state (struct paramed_type *T);
+int autocomplete_constructor_upload_file (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 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 autocomplete_type_authorization (struct paramed_type *T);
+int do_autocomplete_type_authorization (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_authorization (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 autocomplete_type_bot_command (struct paramed_type *T);
+int do_autocomplete_type_bot_command (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_bot_command (struct paramed_type *T);
+int autocomplete_type_bot_info (struct paramed_type *T);
+int do_autocomplete_type_bot_info (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_bot_info (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 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 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 autocomplete_type_chat_invite (struct paramed_type *T);
+int do_autocomplete_type_chat_invite (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_chat_invite (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 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 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 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 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 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 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 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 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 autocomplete_type_contact_link (struct paramed_type *T);
+int do_autocomplete_type_contact_link (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_contact_link (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 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 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 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 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 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 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 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 autocomplete_type_disabled_feature (struct paramed_type *T);
+int do_autocomplete_type_disabled_feature (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_disabled_feature (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 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 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 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 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 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 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 autocomplete_type_exported_chat_invite (struct paramed_type *T);
+int do_autocomplete_type_exported_chat_invite (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_exported_chat_invite (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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 autocomplete_type_input_sticker_set (struct paramed_type *T);
+int do_autocomplete_type_input_sticker_set (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_sticker_set (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 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 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 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 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 autocomplete_type_keyboard_button (struct paramed_type *T);
+int do_autocomplete_type_keyboard_button (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_keyboard_button (struct paramed_type *T);
+int autocomplete_type_keyboard_button_row (struct paramed_type *T);
+int do_autocomplete_type_keyboard_button_row (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_keyboard_button_row (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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 autocomplete_type_received_notify_message (struct paramed_type *T);
+int do_autocomplete_type_received_notify_message (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_received_notify_message (struct paramed_type *T);
+int autocomplete_type_reply_markup (struct paramed_type *T);
+int do_autocomplete_type_reply_markup (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_reply_markup (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 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 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 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 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 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 autocomplete_type_sticker_set (struct paramed_type *T);
+int do_autocomplete_type_sticker_set (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_sticker_set (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 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 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 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 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 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 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 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 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 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 autocomplete_type_web_page (struct paramed_type *T);
+int do_autocomplete_type_web_page (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_web_page (struct paramed_type *T);
+int autocomplete_type_account_authorizations (struct paramed_type *T);
+int do_autocomplete_type_account_authorizations (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_account_authorizations (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 autocomplete_type_account_password_input_settings (struct paramed_type *T);
+int do_autocomplete_type_account_password_input_settings (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_account_password_input_settings (struct paramed_type *T);
+int autocomplete_type_account_password_settings (struct paramed_type *T);
+int do_autocomplete_type_account_password_settings (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_account_password_settings (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 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 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 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 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 autocomplete_type_auth_password_recovery (struct paramed_type *T);
+int do_autocomplete_type_auth_password_recovery (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_auth_password_recovery (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 autocomplete_type_binlog_encr_key (struct paramed_type *T);
+int do_autocomplete_type_binlog_encr_key (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_binlog_encr_key (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 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 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 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 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 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 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 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 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 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 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 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 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 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 autocomplete_type_messages_affected_messages (struct paramed_type *T);
+int do_autocomplete_type_messages_affected_messages (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_affected_messages (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 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 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 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 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 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 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 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 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 autocomplete_type_messages_sticker_set (struct paramed_type *T);
+int do_autocomplete_type_messages_sticker_set (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_sticker_set (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 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 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 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 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 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 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);
+int autocomplete_type_any (struct paramed_type *T);
+struct paramed_type *autocomplete_function_any (void);
diff --git a/libs/tgl/src/auto/auto-fetch-ds.c b/libs/tgl/src/auto/auto-fetch-ds.c
new file mode 100644
index 0000000000..da360323a0
--- /dev/null
+++ b/libs/tgl/src/auto/auto-fetch-ds.c
@@ -0,0 +1,11877 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#include "auto-fetch-ds.h"
+#include "auto-skip.h"
+#include "auto-types.h"
+#include "..\auto-static-fetch-ds.c"
+#include "..\mtproto-common.h"
+#else
+#include "auto.h"
+#include "auto/auto-fetch-ds.h"
+#include "auto/auto-skip.h"
+#include "auto/auto-types.h"
+#include "auto-static-fetch-ds.c"
+#include "mtproto-common.h"
+#endif
+#include <assert.h>
+struct tl_ds_account_days_t_t_l *fetch_ds_constructor_account_days_t_t_l (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return 0; }
+ struct tl_ds_account_days_t_t_l * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->days = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_audio *fetch_ds_constructor_audio_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return 0; }
+ struct tl_ds_audio * result = talloc0 (sizeof (*result));
+ result->magic = 0x586988d8;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_audio *fetch_ds_constructor_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return 0; }
+ struct tl_ds_audio * result = talloc0 (sizeof (*result));
+ result->magic = 0xc7ac6496;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->duration = fetch_ds_type_bare_int (field5);
+ 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,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field6);
+ 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,
+ };
+ result->size = fetch_ds_type_bare_int (field7);
+ 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,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field8);
+ return result;
+}
+struct tl_ds_authorization *fetch_ds_constructor_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { return 0; }
+ struct tl_ds_authorization * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->hash = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field2);
+ 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,
+ };
+ result->device_model = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->platform = fetch_ds_type_bare_string (field4);
+ 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,
+ };
+ result->system_version = fetch_ds_type_bare_string (field5);
+ 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,
+ };
+ result->api_id = fetch_ds_type_bare_int (field6);
+ 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,
+ };
+ result->app_name = fetch_ds_type_bare_string (field7);
+ 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,
+ };
+ result->app_version = fetch_ds_type_bare_string (field8);
+ 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,
+ };
+ result->date_created = fetch_ds_type_bare_int (field9);
+ 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,
+ };
+ result->date_active = fetch_ds_type_bare_int (field10);
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->ip = fetch_ds_type_bare_string (field11);
+ struct paramed_type *field12 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->country = fetch_ds_type_bare_string (field12);
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->region = fetch_ds_type_bare_string (field13);
+ return result;
+}
+struct tl_ds_bool *fetch_ds_constructor_bool_false (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return 0; }
+ struct tl_ds_bool * result = talloc0 (sizeof (*result));
+ result->magic = 0xbc799737;
+ return result;
+}
+struct tl_ds_bool *fetch_ds_constructor_bool_true (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return 0; }
+ struct tl_ds_bool * result = talloc0 (sizeof (*result));
+ result->magic = 0x997275b5;
+ return result;
+}
+struct tl_ds_bot_command *fetch_ds_constructor_bot_command (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return 0; }
+ struct tl_ds_bot_command * result = talloc0 (sizeof (*result));
+ result->magic = 0xc27ac8c7;
+ 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,
+ };
+ result->command = fetch_ds_type_bare_string (field1);
+ 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,
+ };
+ result->description = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_bot_command *fetch_ds_constructor_bot_command_old (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return 0; }
+ struct tl_ds_bot_command * result = talloc0 (sizeof (*result));
+ result->magic = 0xb79d22ab;
+ 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,
+ };
+ result->command = fetch_ds_type_bare_string (field1);
+ 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,
+ };
+ result->params = fetch_ds_type_bare_string (field2);
+ 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,
+ };
+ result->description = fetch_ds_type_bare_string (field3);
+ return result;
+}
+struct tl_ds_bot_info *fetch_ds_constructor_bot_info_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return 0; }
+ struct tl_ds_bot_info * result = talloc0 (sizeof (*result));
+ result->magic = 0xbb2e37ce;
+ return result;
+}
+struct tl_ds_bot_info *fetch_ds_constructor_bot_info (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return 0; }
+ struct tl_ds_bot_info * result = talloc0 (sizeof (*result));
+ result->magic = 0x09cf585d;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field2);
+ 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,
+ };
+ result->share_text = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->description = fetch_ds_type_bare_string (field4);
+ 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 = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->commands = (void *)fetch_ds_type_vector (field5);
+ return result;
+}
+struct tl_ds_string *fetch_ds_constructor_bytes (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return 0; }
+ struct tl_ds_string * result = talloc0 (sizeof (*result));
+ assert (in_remaining () >= 4);
+ int l = prefetch_strlen ();
+ assert (l >= 0);
+ result->len = l;
+ result->data = talloc (l + 1);
+ result->data[l] = 0;
+ memcpy (result->data, fetch_str (l), l);
+ return result;
+}
+struct tl_ds_chat *fetch_ds_constructor_chat_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return 0; }
+ struct tl_ds_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0x9ba2d800;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_chat *fetch_ds_constructor_chat (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return 0; }
+ struct tl_ds_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0x6e9c9bc7;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->title = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_chat_photo (field3);
+ 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,
+ };
+ result->participants_count = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->left = fetch_ds_type_bool (field6);
+ 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,
+ };
+ result->version = fetch_ds_type_bare_int (field7);
+ return result;
+}
+struct tl_ds_chat *fetch_ds_constructor_chat_forbidden (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return 0; }
+ struct tl_ds_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0xfb0ccc41;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->title = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_chat *fetch_ds_constructor_geo_chat (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return 0; }
+ struct tl_ds_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0x75eaea5a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ 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,
+ };
+ result->title = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->address = fetch_ds_type_bare_string (field4);
+ 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,
+ };
+ result->venue = fetch_ds_type_bare_string (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo = fetch_ds_type_geo_point (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_chat_photo (field7);
+ 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,
+ };
+ result->participants_count = fetch_ds_type_bare_int (field8);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field9);
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->checked_in = fetch_ds_type_bool (field10);
+ 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,
+ };
+ result->version = fetch_ds_type_bare_int (field11);
+ return result;
+}
+struct tl_ds_chat_full *fetch_ds_constructor_chat_full (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { return 0; }
+ struct tl_ds_chat_full * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->participants = fetch_ds_type_chat_participants (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_photo = fetch_ds_type_photo (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->notify_settings = fetch_ds_type_peer_notify_settings (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->exported_invite = fetch_ds_type_exported_chat_invite (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->bot_info = (void *)fetch_ds_type_vector (field6);
+ return result;
+}
+struct tl_ds_chat_invite *fetch_ds_constructor_chat_invite_already (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return 0; }
+ struct tl_ds_chat_invite * result = talloc0 (sizeof (*result));
+ result->magic = 0x5a686d7c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat = fetch_ds_type_chat (field1);
+ return result;
+}
+struct tl_ds_chat_invite *fetch_ds_constructor_chat_invite (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return 0; }
+ struct tl_ds_chat_invite * result = talloc0 (sizeof (*result));
+ result->magic = 0xce917dcd;
+ 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,
+ };
+ result->title = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_chat_located *fetch_ds_constructor_chat_located (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return 0; }
+ struct tl_ds_chat_located * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->distance = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_chat_participant *fetch_ds_constructor_chat_participant (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return 0; }
+ struct tl_ds_chat_participant * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->inviter_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_chat_participants *fetch_ds_constructor_chat_participants_forbidden (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return 0; }
+ struct tl_ds_chat_participants * result = talloc0 (sizeof (*result));
+ result->magic = 0x0fd2bb8a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_chat_participants *fetch_ds_constructor_chat_participants (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return 0; }
+ struct tl_ds_chat_participants * result = talloc0 (sizeof (*result));
+ result->magic = 0x7841b415;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->admin_id = fetch_ds_type_bare_int (field2);
+ 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,
+ },
+ }
+ };
+ result->participants = (void *)fetch_ds_type_vector (field3);
+ 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,
+ };
+ result->version = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_chat_photo *fetch_ds_constructor_chat_photo_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return 0; }
+ struct tl_ds_chat_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x37c1011c;
+ return result;
+}
+struct tl_ds_chat_photo *fetch_ds_constructor_chat_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return 0; }
+ struct tl_ds_chat_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x6153276a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo_small = fetch_ds_type_file_location (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo_big = fetch_ds_type_file_location (field2);
+ return result;
+}
+struct tl_ds_client_d_h_inner_data *fetch_ds_constructor_client_d_h_inner_data (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return 0; }
+ struct tl_ds_client_d_h_inner_data * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ 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,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ 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,
+ };
+ result->retry_id = fetch_ds_type_bare_long (field3);
+ 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,
+ };
+ result->g_b = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_config *fetch_ds_constructor_config (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { return 0; }
+ struct tl_ds_config * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->expires = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->test_mode = fetch_ds_type_bool (field3);
+ 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,
+ };
+ result->this_dc = fetch_ds_type_bare_int (field4);
+ 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 = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->dc_options = (void *)fetch_ds_type_vector (field5);
+ 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,
+ };
+ result->chat_size_max = fetch_ds_type_bare_int (field6);
+ 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,
+ };
+ result->broadcast_size_max = fetch_ds_type_bare_int (field7);
+ 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,
+ };
+ result->forwarded_count_max = fetch_ds_type_bare_int (field8);
+ 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,
+ };
+ result->online_update_period_ms = fetch_ds_type_bare_int (field9);
+ 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,
+ };
+ result->offline_blur_timeout_ms = fetch_ds_type_bare_int (field10);
+ 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,
+ };
+ result->offline_idle_timeout_ms = fetch_ds_type_bare_int (field11);
+ 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,
+ };
+ result->online_cloud_timeout_ms = fetch_ds_type_bare_int (field12);
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->notify_cloud_delay_ms = fetch_ds_type_bare_int (field13);
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->notify_default_delay_ms = fetch_ds_type_bare_int (field14);
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_big_size = fetch_ds_type_bare_int (field15);
+ struct paramed_type *field16 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->push_chat_period_ms = fetch_ds_type_bare_int (field16);
+ struct paramed_type *field17 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->push_chat_limit = fetch_ds_type_bare_int (field17);
+ struct paramed_type *field18 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->disabled_features = (void *)fetch_ds_type_vector (field18);
+ return result;
+}
+struct tl_ds_contact *fetch_ds_constructor_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return 0; }
+ struct tl_ds_contact * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mutual = fetch_ds_type_bool (field2);
+ return result;
+}
+struct tl_ds_contact_blocked *fetch_ds_constructor_contact_blocked (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return 0; }
+ struct tl_ds_contact_blocked * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_contact_found *fetch_ds_constructor_contact_found (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return 0; }
+ struct tl_ds_contact_found * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_contact_link *fetch_ds_constructor_contact_link_unknown (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return 0; }
+ struct tl_ds_contact_link * result = talloc0 (sizeof (*result));
+ result->magic = 0x5f4f9247;
+ return result;
+}
+struct tl_ds_contact_link *fetch_ds_constructor_contact_link_none (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return 0; }
+ struct tl_ds_contact_link * result = talloc0 (sizeof (*result));
+ result->magic = 0xfeedd3ad;
+ return result;
+}
+struct tl_ds_contact_link *fetch_ds_constructor_contact_link_has_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return 0; }
+ struct tl_ds_contact_link * result = talloc0 (sizeof (*result));
+ result->magic = 0x268f3f59;
+ return result;
+}
+struct tl_ds_contact_link *fetch_ds_constructor_contact_link_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return 0; }
+ struct tl_ds_contact_link * result = talloc0 (sizeof (*result));
+ result->magic = 0xd502c2d0;
+ return result;
+}
+struct tl_ds_contact_status *fetch_ds_constructor_contact_status (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return 0; }
+ struct tl_ds_contact_status * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->status = fetch_ds_type_user_status (field2);
+ return result;
+}
+struct tl_ds_contact_suggested *fetch_ds_constructor_contact_suggested (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return 0; }
+ struct tl_ds_contact_suggested * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mutual_contacts = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_dc_option *fetch_ds_constructor_dc_option_l28 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return 0; }
+ struct tl_ds_dc_option * result = talloc0 (sizeof (*result));
+ result->magic = 0x2ec2a43c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->hostname = fetch_ds_type_bare_string (field2);
+ 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,
+ };
+ result->ip_address = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->port = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_dc_option *fetch_ds_constructor_dc_option (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return 0; }
+ struct tl_ds_dc_option * result = talloc0 (sizeof (*result));
+ result->magic = 0x05d8c6cc;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ 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,
+ };
+ result->ip_address = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->port = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_decrypted_message *fetch_ds_constructor_decrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return 0; }
+ struct tl_ds_decrypted_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x204d3878;
+ 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,
+ };
+ result->random_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->ttl = fetch_ds_type_bare_int (field2);
+ 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,
+ };
+ result->message = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->media = fetch_ds_type_decrypted_message_media (field4);
+ return result;
+}
+struct tl_ds_decrypted_message *fetch_ds_constructor_decrypted_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return 0; }
+ struct tl_ds_decrypted_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x73164160;
+ 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,
+ };
+ result->random_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->action = fetch_ds_type_decrypted_message_action (field2);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_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 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xa1733aec;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->ttl_seconds = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_read_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x0c4f40be;
+ 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,
+ },
+ }
+ };
+ result->random_ids = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_delete_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x65614304;
+ 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,
+ },
+ }
+ };
+ result->random_ids = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x8ac1f475;
+ 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,
+ },
+ }
+ };
+ result->random_ids = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_flush_history (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x6719e45c;
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_resend (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x511110b0;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->start_seq_no = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->end_seq_no = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_notify_layer (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xf3048883;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->layer = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xccb27641;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->action = fetch_ds_type_send_message_action (field1);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_request_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xf3c9611b;
+ 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,
+ };
+ result->exchange_id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->g_a = fetch_ds_type_bare_bytes (field2);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_accept_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x6fe1735b;
+ 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,
+ };
+ result->exchange_id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->g_b = fetch_ds_type_bare_bytes (field2);
+ 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,
+ };
+ result->key_fingerprint = fetch_ds_type_bare_long (field3);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_abort_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xdd05ec6b;
+ 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,
+ };
+ result->exchange_id = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_commit_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xec2e0b9b;
+ 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,
+ };
+ result->exchange_id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->key_fingerprint = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_noop (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xa82fdd63;
+ return result;
+}
+struct tl_ds_decrypted_message_layer *fetch_ds_constructor_decrypted_message_layer (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return 0; }
+ struct tl_ds_decrypted_message_layer * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->random_bytes = fetch_ds_type_bare_bytes (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->layer = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->in_seq_no = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->out_seq_no = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->message = fetch_ds_type_decrypted_message (field5);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x089f5c4a;
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x32798a8c;
+ 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,
+ };
+ result->str_thumb = fetch_ds_type_bare_bytes (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_w = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_h = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->w = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->h = fetch_ds_type_bare_int (field5);
+ 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,
+ };
+ result->size = fetch_ds_type_bare_int (field6);
+ 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,
+ };
+ result->key = fetch_ds_type_bare_bytes (field7);
+ 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,
+ };
+ result->iv = fetch_ds_type_bare_bytes (field8);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x35480a59;
+ 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,
+ };
+ result->latitude = fetch_ds_type_bare_double (field1);
+ 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,
+ };
+ result->longitude = fetch_ds_type_bare_double (field2);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x588a0a97;
+ 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,
+ };
+ result->phone_number = fetch_ds_type_bare_string (field1);
+ 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,
+ };
+ result->first_name = fetch_ds_type_bare_string (field2);
+ 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,
+ };
+ result->last_name = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->user_id = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xb095434b;
+ 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,
+ };
+ result->str_thumb = fetch_ds_type_bare_bytes (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_w = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_h = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->file_name = fetch_ds_type_bare_string (field4);
+ 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,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field5);
+ 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,
+ };
+ result->size = fetch_ds_type_bare_int (field6);
+ 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,
+ };
+ result->key = fetch_ds_type_bare_bytes (field7);
+ 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,
+ };
+ result->iv = fetch_ds_type_bare_bytes (field8);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x524a415d;
+ 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,
+ };
+ result->str_thumb = fetch_ds_type_bare_bytes (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_w = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_h = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->duration = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field5);
+ 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,
+ };
+ result->w = fetch_ds_type_bare_int (field6);
+ 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,
+ };
+ result->h = fetch_ds_type_bare_int (field7);
+ 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,
+ };
+ result->size = fetch_ds_type_bare_int (field8);
+ 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,
+ };
+ result->key = fetch_ds_type_bare_bytes (field9);
+ 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,
+ };
+ result->iv = fetch_ds_type_bare_bytes (field10);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x57e0a9cb;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->key = fetch_ds_type_bare_bytes (field4);
+ 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,
+ };
+ result->iv = fetch_ds_type_bare_bytes (field5);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_external_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xfa95b0dd;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field4);
+ 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,
+ };
+ result->size = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb = fetch_ds_type_photo_size (field6);
+ 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,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field7);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->attributes = (void *)fetch_ds_type_vector (field8);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_video_l12 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x4cee6ef3;
+ 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,
+ };
+ result->str_thumb = fetch_ds_type_bare_bytes (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_w = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_h = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->duration = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->w = fetch_ds_type_bare_int (field5);
+ 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,
+ };
+ result->h = fetch_ds_type_bare_int (field6);
+ 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,
+ };
+ result->size = fetch_ds_type_bare_int (field7);
+ 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,
+ };
+ result->key = fetch_ds_type_bare_bytes (field8);
+ 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,
+ };
+ result->iv = fetch_ds_type_bare_bytes (field9);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x6080758f;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field2);
+ 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,
+ };
+ result->key = fetch_ds_type_bare_bytes (field3);
+ 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,
+ };
+ result->iv = fetch_ds_type_bare_bytes (field4);
+ return result;
+}
+struct tl_ds_dialog *fetch_ds_constructor_dialog (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { return 0; }
+ struct tl_ds_dialog * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->peer = fetch_ds_type_peer (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->top_message = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->read_inbox_max_id = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->unread_count = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->notify_settings = fetch_ds_type_peer_notify_settings (field5);
+ return result;
+}
+struct tl_ds_disabled_feature *fetch_ds_constructor_disabled_feature (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return 0; }
+ struct tl_ds_disabled_feature * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->feature = fetch_ds_type_bare_string (field1);
+ 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,
+ };
+ result->description = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_document *fetch_ds_constructor_document_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return 0; }
+ struct tl_ds_document * result = talloc0 (sizeof (*result));
+ result->magic = 0x36f8c871;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_document *fetch_ds_constructor_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return 0; }
+ struct tl_ds_document * result = talloc0 (sizeof (*result));
+ result->magic = 0xf9a39f4f;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field4);
+ 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,
+ };
+ result->size = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb = fetch_ds_type_photo_size (field6);
+ 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,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field7);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->attributes = (void *)fetch_ds_type_vector (field8);
+ return result;
+}
+struct tl_ds_document *fetch_ds_constructor_document_l19 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return 0; }
+ struct tl_ds_document * result = talloc0 (sizeof (*result));
+ result->magic = 0x9efc6326;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->file_name = fetch_ds_type_bare_string (field5);
+ 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,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field6);
+ 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,
+ };
+ result->size = fetch_ds_type_bare_int (field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb = fetch_ds_type_photo_size (field8);
+ 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,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field9);
+ return result;
+}
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_image_size (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; }
+ struct tl_ds_document_attribute * result = talloc0 (sizeof (*result));
+ result->magic = 0x6c37c15c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->h = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_animated (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; }
+ struct tl_ds_document_attribute * result = talloc0 (sizeof (*result));
+ result->magic = 0x11b58939;
+ return result;
+}
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_sticker_l28 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; }
+ struct tl_ds_document_attribute * result = talloc0 (sizeof (*result));
+ result->magic = 0x994c9882;
+ 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,
+ };
+ result->alt = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_sticker (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; }
+ struct tl_ds_document_attribute * result = talloc0 (sizeof (*result));
+ result->magic = 0x3a556302;
+ 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,
+ };
+ result->alt = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->stickerset = fetch_ds_type_input_sticker_set (field2);
+ return result;
+}
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; }
+ struct tl_ds_document_attribute * result = talloc0 (sizeof (*result));
+ result->magic = 0x5910cccb;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->h = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; }
+ struct tl_ds_document_attribute * result = talloc0 (sizeof (*result));
+ result->magic = 0x051448e5;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_filename (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; }
+ struct tl_ds_document_attribute * result = talloc0 (sizeof (*result));
+ result->magic = 0x15590068;
+ 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,
+ };
+ result->file_name = fetch_ds_type_bare_string (field1);
+ return result;
+}
+double *fetch_ds_constructor_double (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return 0; }
+ double * result = talloc0 (sizeof (*result));
+ assert (in_remaining () >= 8);
+ *result = fetch_double ();
+ return result;
+}
+struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return 0; }
+ struct tl_ds_encrypted_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0xab7ec0a0;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_waiting (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return 0; }
+ struct tl_ds_encrypted_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0x3bf703dc;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->admin_id = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->participant_id = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_requested (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return 0; }
+ struct tl_ds_encrypted_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0xc878527e;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->admin_id = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->participant_id = fetch_ds_type_bare_int (field5);
+ 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,
+ };
+ result->g_a = fetch_ds_type_bare_bytes (field6);
+ return result;
+}
+struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return 0; }
+ struct tl_ds_encrypted_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0xfa56ce36;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->admin_id = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->participant_id = fetch_ds_type_bare_int (field5);
+ 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,
+ };
+ result->g_a_or_b = fetch_ds_type_bare_bytes (field6);
+ 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,
+ };
+ result->key_fingerprint = fetch_ds_type_bare_long (field7);
+ return result;
+}
+struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_discarded (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return 0; }
+ struct tl_ds_encrypted_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0x13d6dd27;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_encrypted_file *fetch_ds_constructor_encrypted_file_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return 0; }
+ struct tl_ds_encrypted_file * result = talloc0 (sizeof (*result));
+ result->magic = 0xc21f497e;
+ return result;
+}
+struct tl_ds_encrypted_file *fetch_ds_constructor_encrypted_file (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return 0; }
+ struct tl_ds_encrypted_file * result = talloc0 (sizeof (*result));
+ result->magic = 0x4a70994c;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->key_fingerprint = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_encrypted_message *fetch_ds_constructor_encrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return 0; }
+ struct tl_ds_encrypted_message * result = talloc0 (sizeof (*result));
+ result->magic = 0xed18c118;
+ 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,
+ };
+ result->random_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->bytes = fetch_ds_type_bare_bytes (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_encrypted_file (field5);
+ return result;
+}
+struct tl_ds_encrypted_message *fetch_ds_constructor_encrypted_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return 0; }
+ struct tl_ds_encrypted_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x23734b06;
+ 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,
+ };
+ result->random_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->bytes = fetch_ds_type_bare_bytes (field4);
+ return result;
+}
+struct tl_ds_error *fetch_ds_constructor_error (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return 0; }
+ struct tl_ds_error * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->code = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->text = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_exported_chat_invite *fetch_ds_constructor_chat_invite_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return 0; }
+ struct tl_ds_exported_chat_invite * result = talloc0 (sizeof (*result));
+ result->magic = 0x69df3769;
+ return result;
+}
+struct tl_ds_exported_chat_invite *fetch_ds_constructor_chat_invite_exported (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return 0; }
+ struct tl_ds_exported_chat_invite * result = talloc0 (sizeof (*result));
+ result->magic = 0xfc2e05bc;
+ 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,
+ };
+ result->link = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_file_location *fetch_ds_constructor_file_location_unavailable (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return 0; }
+ struct tl_ds_file_location * result = talloc0 (sizeof (*result));
+ result->magic = 0x7c596b46;
+ 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,
+ };
+ result->volume_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->local_id = fetch_ds_type_bare_int (field2);
+ 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,
+ };
+ result->secret = fetch_ds_type_bare_long (field3);
+ return result;
+}
+struct tl_ds_file_location *fetch_ds_constructor_file_location (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return 0; }
+ struct tl_ds_file_location * result = talloc0 (sizeof (*result));
+ result->magic = 0x53d69076;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->volume_id = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->local_id = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->secret = fetch_ds_type_bare_long (field4);
+ return result;
+}
+struct tl_ds_geo_chat_message *fetch_ds_constructor_geo_chat_message_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return 0; }
+ struct tl_ds_geo_chat_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x60311a9b;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_geo_chat_message *fetch_ds_constructor_geo_chat_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return 0; }
+ struct tl_ds_geo_chat_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x4505f8e1;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->from_id = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->message = fetch_ds_type_bare_string (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->media = fetch_ds_type_message_media (field6);
+ return result;
+}
+struct tl_ds_geo_chat_message *fetch_ds_constructor_geo_chat_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return 0; }
+ struct tl_ds_geo_chat_message * result = talloc0 (sizeof (*result));
+ result->magic = 0xd34fa24e;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->from_id = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->action = fetch_ds_type_message_action (field5);
+ return result;
+}
+struct tl_ds_geo_point *fetch_ds_constructor_geo_point_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return 0; }
+ struct tl_ds_geo_point * result = talloc0 (sizeof (*result));
+ result->magic = 0x1117dd5f;
+ return result;
+}
+struct tl_ds_geo_point *fetch_ds_constructor_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return 0; }
+ struct tl_ds_geo_point * result = talloc0 (sizeof (*result));
+ result->magic = 0x2049d70c;
+ 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,
+ };
+ result->longitude = fetch_ds_type_bare_double (field1);
+ 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,
+ };
+ result->latitude = fetch_ds_type_bare_double (field2);
+ return result;
+}
+struct tl_ds_imported_contact *fetch_ds_constructor_imported_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return 0; }
+ struct tl_ds_imported_contact * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->client_id = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_app_event *fetch_ds_constructor_input_app_event (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return 0; }
+ struct tl_ds_input_app_event * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->time = fetch_ds_type_bare_double (field1);
+ 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,
+ };
+ result->type = fetch_ds_type_bare_string (field2);
+ 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,
+ };
+ result->peer = fetch_ds_type_bare_long (field3);
+ 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,
+ };
+ result->data = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_input_audio *fetch_ds_constructor_input_audio_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return 0; }
+ struct tl_ds_input_audio * result = talloc0 (sizeof (*result));
+ result->magic = 0xd95adc84;
+ return result;
+}
+struct tl_ds_input_audio *fetch_ds_constructor_input_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return 0; }
+ struct tl_ds_input_audio * result = talloc0 (sizeof (*result));
+ result->magic = 0x77d440ff;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_chat_photo *fetch_ds_constructor_input_chat_photo_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return 0; }
+ struct tl_ds_input_chat_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x1ca48f57;
+ return result;
+}
+struct tl_ds_input_chat_photo *fetch_ds_constructor_input_chat_uploaded_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return 0; }
+ struct tl_ds_input_chat_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x94254732;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_input_file (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->crop = fetch_ds_type_input_photo_crop (field2);
+ return result;
+}
+struct tl_ds_input_chat_photo *fetch_ds_constructor_input_chat_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return 0; }
+ struct tl_ds_input_chat_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0xb2e1bf08;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_input_photo (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->crop = fetch_ds_type_input_photo_crop (field2);
+ return result;
+}
+struct tl_ds_input_contact *fetch_ds_constructor_input_phone_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return 0; }
+ struct tl_ds_input_contact * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->client_id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->phone = fetch_ds_type_bare_string (field2);
+ 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,
+ };
+ result->first_name = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->last_name = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_input_document *fetch_ds_constructor_input_document_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return 0; }
+ struct tl_ds_input_document * result = talloc0 (sizeof (*result));
+ result->magic = 0x72f0eaae;
+ return result;
+}
+struct tl_ds_input_document *fetch_ds_constructor_input_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return 0; }
+ struct tl_ds_input_document * result = talloc0 (sizeof (*result));
+ result->magic = 0x18798952;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_encrypted_chat *fetch_ds_constructor_input_encrypted_chat (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return 0; }
+ struct tl_ds_input_encrypted_chat * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return 0; }
+ struct tl_ds_input_encrypted_file * result = talloc0 (sizeof (*result));
+ result->magic = 0x1837c364;
+ return result;
+}
+struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file_uploaded (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return 0; }
+ struct tl_ds_input_encrypted_file * result = talloc0 (sizeof (*result));
+ result->magic = 0x64bd0306;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->parts = fetch_ds_type_bare_int (field2);
+ 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,
+ };
+ result->md5_checksum = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->key_fingerprint = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return 0; }
+ struct tl_ds_input_encrypted_file * result = talloc0 (sizeof (*result));
+ result->magic = 0x5a17b5e5;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return 0; }
+ struct tl_ds_input_encrypted_file * result = talloc0 (sizeof (*result));
+ result->magic = 0x2dc173c8;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->parts = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key_fingerprint = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_input_file *fetch_ds_constructor_input_file (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return 0; }
+ struct tl_ds_input_file * result = talloc0 (sizeof (*result));
+ result->magic = 0xf52ff27f;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->parts = fetch_ds_type_bare_int (field2);
+ 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,
+ };
+ result->name = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->md5_checksum = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_input_file *fetch_ds_constructor_input_file_big (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return 0; }
+ struct tl_ds_input_file * result = talloc0 (sizeof (*result));
+ result->magic = 0xfa4f0bb5;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->parts = fetch_ds_type_bare_int (field2);
+ 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,
+ };
+ result->name = fetch_ds_type_bare_string (field3);
+ return result;
+}
+struct tl_ds_input_file_location *fetch_ds_constructor_input_file_location (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return 0; }
+ struct tl_ds_input_file_location * result = talloc0 (sizeof (*result));
+ result->magic = 0x14637196;
+ 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,
+ };
+ result->volume_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->local_id = fetch_ds_type_bare_int (field2);
+ 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,
+ };
+ result->secret = fetch_ds_type_bare_long (field3);
+ return result;
+}
+struct tl_ds_input_file_location *fetch_ds_constructor_input_video_file_location (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return 0; }
+ struct tl_ds_input_file_location * result = talloc0 (sizeof (*result));
+ result->magic = 0x3d0364ec;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_file_location *fetch_ds_constructor_input_encrypted_file_location (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return 0; }
+ struct tl_ds_input_file_location * result = talloc0 (sizeof (*result));
+ result->magic = 0xf5235d55;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_file_location *fetch_ds_constructor_input_audio_file_location (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return 0; }
+ struct tl_ds_input_file_location * result = talloc0 (sizeof (*result));
+ result->magic = 0x74dc404d;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_file_location *fetch_ds_constructor_input_document_file_location (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return 0; }
+ struct tl_ds_input_file_location * result = talloc0 (sizeof (*result));
+ result->magic = 0x4e45abe9;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_geo_chat *fetch_ds_constructor_input_geo_chat (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return 0; }
+ struct tl_ds_input_geo_chat * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_geo_point *fetch_ds_constructor_input_geo_point_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return 0; }
+ struct tl_ds_input_geo_point * result = talloc0 (sizeof (*result));
+ result->magic = 0xe4c123d6;
+ return result;
+}
+struct tl_ds_input_geo_point *fetch_ds_constructor_input_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return 0; }
+ struct tl_ds_input_geo_point * result = talloc0 (sizeof (*result));
+ result->magic = 0xf3b7acc9;
+ 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,
+ };
+ result->latitude = fetch_ds_type_bare_double (field1);
+ 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,
+ };
+ result->longitude = fetch_ds_type_bare_double (field2);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x9664f57f;
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xf7aff1c0;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_input_file (field1);
+ 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,
+ };
+ result->caption = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xe9bfb4f3;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_input_photo (field1);
+ 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,
+ };
+ result->caption = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xf9c44144;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo_point = fetch_ds_type_input_geo_point (field1);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xa6e45987;
+ 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,
+ };
+ result->phone_number = fetch_ds_type_bare_string (field1);
+ 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,
+ };
+ result->first_name = fetch_ds_type_bare_string (field2);
+ 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,
+ };
+ result->last_name = fetch_ds_type_bare_string (field3);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xe13fd4bc;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_input_file (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->h = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->caption = fetch_ds_type_bare_string (field5);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_thumb_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x96fb97dc;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_input_file (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb = fetch_ds_type_input_file (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->w = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->h = fetch_ds_type_bare_int (field5);
+ 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,
+ };
+ result->caption = fetch_ds_type_bare_string (field6);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x936a4ebd;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->video_id = fetch_ds_type_input_video (field1);
+ 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,
+ };
+ result->caption = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x4e498cab;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_input_file (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field2);
+ 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,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field3);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x89938781;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->audio_id = fetch_ds_type_input_audio (field1);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xffe76b78;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_input_file (field1);
+ 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,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field2);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->attributes = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_thumb_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x41481486;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_input_file (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb = fetch_ds_type_input_file (field2);
+ 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,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field3);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->attributes = (void *)fetch_ds_type_vector (field4);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xd184e841;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->document_id = fetch_ds_type_input_document (field1);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_venue (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x2827a81a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo_point = fetch_ds_type_input_geo_point (field1);
+ 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,
+ };
+ result->title = fetch_ds_type_bare_string (field2);
+ 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,
+ };
+ result->address = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->provider = fetch_ds_type_bare_string (field4);
+ 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,
+ };
+ result->venue_id = fetch_ds_type_bare_string (field5);
+ return result;
+}
+struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_peer (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return 0; }
+ struct tl_ds_input_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0xb8bc5b0c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->peer = fetch_ds_type_input_peer (field1);
+ return result;
+}
+struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_users (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return 0; }
+ struct tl_ds_input_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x193b4417;
+ return result;
+}
+struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_chats (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return 0; }
+ struct tl_ds_input_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x4a95e84e;
+ return result;
+}
+struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return 0; }
+ struct tl_ds_input_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0xa429b886;
+ return result;
+}
+struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_geo_chat_peer (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return 0; }
+ struct tl_ds_input_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x4d8ddec8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo_peer = fetch_ds_type_input_geo_chat (field1);
+ return result;
+}
+struct tl_ds_input_peer *fetch_ds_constructor_input_peer_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return 0; }
+ struct tl_ds_input_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x7f3b18ea;
+ return result;
+}
+struct tl_ds_input_peer *fetch_ds_constructor_input_peer_self (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return 0; }
+ struct tl_ds_input_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x7da07ec9;
+ return result;
+}
+struct tl_ds_input_peer *fetch_ds_constructor_input_peer_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return 0; }
+ struct tl_ds_input_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x1023dbe8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_input_peer *fetch_ds_constructor_input_peer_foreign (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return 0; }
+ struct tl_ds_input_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x9b447325;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_peer *fetch_ds_constructor_input_peer_chat (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return 0; }
+ struct tl_ds_input_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x179be863;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_input_peer_notify_events *fetch_ds_constructor_input_peer_notify_events_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return 0; }
+ struct tl_ds_input_peer_notify_events * result = talloc0 (sizeof (*result));
+ result->magic = 0xf03064d8;
+ return result;
+}
+struct tl_ds_input_peer_notify_events *fetch_ds_constructor_input_peer_notify_events_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return 0; }
+ struct tl_ds_input_peer_notify_events * result = talloc0 (sizeof (*result));
+ result->magic = 0xe86a2c74;
+ return result;
+}
+struct tl_ds_input_peer_notify_settings *fetch_ds_constructor_input_peer_notify_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return 0; }
+ struct tl_ds_input_peer_notify_settings * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mute_until = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->sound = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->show_previews = fetch_ds_type_bool (field3);
+ 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,
+ };
+ result->events_mask = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_input_photo *fetch_ds_constructor_input_photo_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return 0; }
+ struct tl_ds_input_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x1cd7bf0d;
+ return result;
+}
+struct tl_ds_input_photo *fetch_ds_constructor_input_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return 0; }
+ struct tl_ds_input_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0xfb95c6c4;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_photo_crop *fetch_ds_constructor_input_photo_crop_auto (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return 0; }
+ struct tl_ds_input_photo_crop * result = talloc0 (sizeof (*result));
+ result->magic = 0xade6b004;
+ return result;
+}
+struct tl_ds_input_photo_crop *fetch_ds_constructor_input_photo_crop (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return 0; }
+ struct tl_ds_input_photo_crop * result = talloc0 (sizeof (*result));
+ result->magic = 0xd9915325;
+ 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,
+ };
+ result->crop_left = fetch_ds_type_bare_double (field1);
+ 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,
+ };
+ result->crop_top = fetch_ds_type_bare_double (field2);
+ 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,
+ };
+ result->crop_width = fetch_ds_type_bare_double (field3);
+ return result;
+}
+struct tl_ds_input_privacy_key *fetch_ds_constructor_input_privacy_key_status_timestamp (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return 0; }
+ struct tl_ds_input_privacy_key * result = talloc0 (sizeof (*result));
+ return result;
+}
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_allow_contacts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; }
+ struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x0d09e07b;
+ return result;
+}
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_allow_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; }
+ struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x184b35ce;
+ return result;
+}
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_allow_users (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; }
+ struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x131cc67f;
+ 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,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; }
+ struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x0ba52007;
+ return result;
+}
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_disallow_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; }
+ struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0xd66b66c9;
+ return result;
+}
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_disallow_users (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; }
+ struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x90110467;
+ 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,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_input_sticker_set *fetch_ds_constructor_input_sticker_set_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return 0; }
+ struct tl_ds_input_sticker_set * result = talloc0 (sizeof (*result));
+ result->magic = 0xffb62b95;
+ return result;
+}
+struct tl_ds_input_sticker_set *fetch_ds_constructor_input_sticker_set_i_d (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return 0; }
+ struct tl_ds_input_sticker_set * result = talloc0 (sizeof (*result));
+ result->magic = 0x9de7a269;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_sticker_set *fetch_ds_constructor_input_sticker_set_short_name (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return 0; }
+ struct tl_ds_input_sticker_set * result = talloc0 (sizeof (*result));
+ result->magic = 0x861cc8a0;
+ 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,
+ };
+ result->short_name = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_input_user *fetch_ds_constructor_input_user_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return 0; }
+ struct tl_ds_input_user * result = talloc0 (sizeof (*result));
+ result->magic = 0xb98886cf;
+ return result;
+}
+struct tl_ds_input_user *fetch_ds_constructor_input_user_self (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return 0; }
+ struct tl_ds_input_user * result = talloc0 (sizeof (*result));
+ result->magic = 0xf7c1b13f;
+ return result;
+}
+struct tl_ds_input_user *fetch_ds_constructor_input_user_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return 0; }
+ struct tl_ds_input_user * result = talloc0 (sizeof (*result));
+ result->magic = 0x86e94f65;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_input_user *fetch_ds_constructor_input_user_foreign (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return 0; }
+ struct tl_ds_input_user * result = talloc0 (sizeof (*result));
+ result->magic = 0x655e74ff;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_video *fetch_ds_constructor_input_video_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return 0; }
+ struct tl_ds_input_video * result = talloc0 (sizeof (*result));
+ result->magic = 0x5508ec75;
+ return result;
+}
+struct tl_ds_input_video *fetch_ds_constructor_input_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return 0; }
+ struct tl_ds_input_video * result = talloc0 (sizeof (*result));
+ result->magic = 0xee579652;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+int *fetch_ds_constructor_int (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return 0; }
+ int * result = talloc0 (sizeof (*result));
+ assert (in_remaining () >= 4);
+ *result = fetch_int ();
+ return result;
+}
+struct tl_ds_int128 *fetch_ds_constructor_int128 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return 0; }
+ struct tl_ds_int128 * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->f0 = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->f1 = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_int256 *fetch_ds_constructor_int256 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return 0; }
+ struct tl_ds_int256 * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->f0 = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->f1 = fetch_ds_type_bare_long (field2);
+ 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,
+ };
+ result->f2 = fetch_ds_type_bare_long (field3);
+ 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,
+ };
+ result->f3 = fetch_ds_type_bare_long (field4);
+ return result;
+}
+struct tl_ds_keyboard_button *fetch_ds_constructor_keyboard_button (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { return 0; }
+ struct tl_ds_keyboard_button * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->text = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_keyboard_button_row *fetch_ds_constructor_keyboard_button_row (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { return 0; }
+ struct tl_ds_keyboard_button_row * result = talloc0 (sizeof (*result));
+ 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 = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->buttons = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+long long *fetch_ds_constructor_long (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return 0; }
+ long long * result = talloc0 (sizeof (*result));
+ assert (in_remaining () >= 8);
+ *result = fetch_long ();
+ return result;
+}
+struct tl_ds_message *fetch_ds_constructor_message_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return 0; }
+ struct tl_ds_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x83e5de54;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_message *fetch_ds_constructor_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return 0; }
+ struct tl_ds_message * result = talloc0 (sizeof (*result));
+ result->magic = 0xc3060325;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->from_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->to_id = fetch_ds_type_peer (field4);
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ result->fwd_from_id = fetch_ds_type_bare_int (field5);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ result->fwd_date = fetch_ds_type_bare_int (field6);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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,
+ };
+ result->reply_to_msg_id = fetch_ds_type_bare_int (field7);
+ }
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field8);
+ 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,
+ };
+ result->message = fetch_ds_type_bare_string (field9);
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->media = fetch_ds_type_message_media (field10);
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->reply_markup = fetch_ds_type_reply_markup (field11);
+ }
+ return result;
+}
+struct tl_ds_message *fetch_ds_constructor_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return 0; }
+ struct tl_ds_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x1d86f70e;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->from_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->to_id = fetch_ds_type_peer (field4);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->action = fetch_ds_type_message_action (field6);
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xb6aef7b0;
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_create (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xa6638b9a;
+ 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,
+ };
+ result->title = fetch_ds_type_bare_string (field1);
+ 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,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_edit_title (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xb5a1ce5a;
+ 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,
+ };
+ result->title = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_edit_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x7fcb13a8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_photo (field1);
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_delete_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x95e3fbef;
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_add_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x5e3cfc4b;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_delete_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xb2ae9b0c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_geo_chat_create (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x6f038ebc;
+ 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,
+ };
+ result->title = fetch_ds_type_bare_string (field1);
+ 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,
+ };
+ result->address = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_geo_chat_checkin (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x0c7d53de;
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_joined_by_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xf89cf5e8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->inviter_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x3ded6320;
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x3d8ce53d;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_photo (field1);
+ 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,
+ };
+ result->caption = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x5bcf1675;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->video = fetch_ds_type_video (field1);
+ 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,
+ };
+ result->caption = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_geo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x56e0d474;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo = fetch_ds_type_geo_point (field1);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x5e7d2f39;
+ 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,
+ };
+ result->phone_number = fetch_ds_type_bare_string (field1);
+ 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,
+ };
+ result->first_name = fetch_ds_type_bare_string (field2);
+ 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,
+ };
+ result->last_name = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->user_id = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_unsupported (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x9f84f49e;
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x2fda2204;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->document = fetch_ds_type_document (field1);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xc6b68300;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->audio = fetch_ds_type_audio (field1);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xa32dd600;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->webpage = fetch_ds_type_web_page (field1);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_venue (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x7912b71f;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo = fetch_ds_type_geo_point (field1);
+ 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,
+ };
+ result->title = fetch_ds_type_bare_string (field2);
+ 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,
+ };
+ result->address = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->provider = fetch_ds_type_bare_string (field4);
+ 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,
+ };
+ result->venue_id = fetch_ds_type_bare_string (field5);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_photo_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xc8c45a2a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_photo (field1);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_video_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xa2d24290;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->video = fetch_ds_type_video (field1);
+ return result;
+}
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; }
+ struct tl_ds_messages_filter * result = talloc0 (sizeof (*result));
+ result->magic = 0x57e2f66c;
+ return result;
+}
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_photos (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; }
+ struct tl_ds_messages_filter * result = talloc0 (sizeof (*result));
+ result->magic = 0x9609a51c;
+ return result;
+}
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; }
+ struct tl_ds_messages_filter * result = talloc0 (sizeof (*result));
+ result->magic = 0x9fc00e65;
+ return result;
+}
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_photo_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; }
+ struct tl_ds_messages_filter * result = talloc0 (sizeof (*result));
+ result->magic = 0x56e9f0e4;
+ return result;
+}
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; }
+ struct tl_ds_messages_filter * result = talloc0 (sizeof (*result));
+ result->magic = 0xd95e73bb;
+ return result;
+}
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; }
+ struct tl_ds_messages_filter * result = talloc0 (sizeof (*result));
+ result->magic = 0x9eddf188;
+ return result;
+}
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; }
+ struct tl_ds_messages_filter * result = talloc0 (sizeof (*result));
+ result->magic = 0xcfc87522;
+ return result;
+}
+struct tl_ds_nearest_dc *fetch_ds_constructor_nearest_dc (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return 0; }
+ struct tl_ds_nearest_dc * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->country = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->this_dc = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->nearest_dc = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_notify_peer *fetch_ds_constructor_notify_peer (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return 0; }
+ struct tl_ds_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x9fd40bd8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->peer = fetch_ds_type_peer (field1);
+ return result;
+}
+struct tl_ds_notify_peer *fetch_ds_constructor_notify_users (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return 0; }
+ struct tl_ds_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0xb4c83b4c;
+ return result;
+}
+struct tl_ds_notify_peer *fetch_ds_constructor_notify_chats (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return 0; }
+ struct tl_ds_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0xc007cec3;
+ return result;
+}
+struct tl_ds_notify_peer *fetch_ds_constructor_notify_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return 0; }
+ struct tl_ds_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x74d07c60;
+ return result;
+}
+struct tl_ds_null *fetch_ds_constructor_null (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return 0; }
+ struct tl_ds_null * result = talloc0 (sizeof (*result));
+ return result;
+}
+struct tl_ds_p_q_inner_data *fetch_ds_constructor_p_q_inner_data (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return 0; }
+ struct tl_ds_p_q_inner_data * result = talloc0 (sizeof (*result));
+ result->magic = 0x83c95aec;
+ 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,
+ };
+ result->pq = fetch_ds_type_bare_string (field1);
+ 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,
+ };
+ result->p = fetch_ds_type_bare_string (field2);
+ 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,
+ };
+ result->q = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field4);
+ 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,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field5);
+ 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,
+ };
+ result->new_nonce = fetch_ds_type_bare_int256 (field6);
+ return result;
+}
+struct tl_ds_p_q_inner_data *fetch_ds_constructor_p_q_inner_data_temp (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return 0; }
+ struct tl_ds_p_q_inner_data * result = talloc0 (sizeof (*result));
+ result->magic = 0x3c6a84d4;
+ 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,
+ };
+ result->pq = fetch_ds_type_bare_string (field1);
+ 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,
+ };
+ result->p = fetch_ds_type_bare_string (field2);
+ 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,
+ };
+ result->q = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field4);
+ 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,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field5);
+ 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,
+ };
+ result->new_nonce = fetch_ds_type_bare_int256 (field6);
+ 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,
+ };
+ result->expires_in = fetch_ds_type_bare_int (field7);
+ return result;
+}
+struct tl_ds_peer *fetch_ds_constructor_peer_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return 0; }
+ struct tl_ds_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x9db1bc6d;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_peer *fetch_ds_constructor_peer_chat (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return 0; }
+ struct tl_ds_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0xbad0e5bb;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_peer_notify_events *fetch_ds_constructor_peer_notify_events_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return 0; }
+ struct tl_ds_peer_notify_events * result = talloc0 (sizeof (*result));
+ result->magic = 0xadd53cb3;
+ return result;
+}
+struct tl_ds_peer_notify_events *fetch_ds_constructor_peer_notify_events_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return 0; }
+ struct tl_ds_peer_notify_events * result = talloc0 (sizeof (*result));
+ result->magic = 0x6d1ded88;
+ return result;
+}
+struct tl_ds_peer_notify_settings *fetch_ds_constructor_peer_notify_settings_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return 0; }
+ struct tl_ds_peer_notify_settings * result = talloc0 (sizeof (*result));
+ result->magic = 0x70a68512;
+ return result;
+}
+struct tl_ds_peer_notify_settings *fetch_ds_constructor_peer_notify_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return 0; }
+ struct tl_ds_peer_notify_settings * result = talloc0 (sizeof (*result));
+ result->magic = 0x8d5e11ee;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mute_until = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->sound = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->show_previews = fetch_ds_type_bool (field3);
+ 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,
+ };
+ result->events_mask = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_photo *fetch_ds_constructor_photo_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return 0; }
+ struct tl_ds_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x2331b22d;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_photo *fetch_ds_constructor_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return 0; }
+ struct tl_ds_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0xc3838076;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo = fetch_ds_type_geo_point (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_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,
+ },
+ }
+ };
+ result->sizes = (void *)fetch_ds_type_vector (field6);
+ return result;
+}
+struct tl_ds_photo *fetch_ds_constructor_photo_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return 0; }
+ struct tl_ds_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x22b56751;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->caption = fetch_ds_type_bare_string (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo = fetch_ds_type_geo_point (field6);
+ 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,
+ },
+ }
+ };
+ result->sizes = (void *)fetch_ds_type_vector (field7);
+ return result;
+}
+struct tl_ds_photo_size *fetch_ds_constructor_photo_size_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return 0; }
+ struct tl_ds_photo_size * result = talloc0 (sizeof (*result));
+ result->magic = 0x0e17e23c;
+ 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,
+ };
+ result->type = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_photo_size *fetch_ds_constructor_photo_size (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return 0; }
+ struct tl_ds_photo_size * result = talloc0 (sizeof (*result));
+ result->magic = 0x77bfb61b;
+ 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,
+ };
+ result->type = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->location = fetch_ds_type_file_location (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->h = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->size = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_photo_size *fetch_ds_constructor_photo_cached_size (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return 0; }
+ struct tl_ds_photo_size * result = talloc0 (sizeof (*result));
+ result->magic = 0xe9a734fa;
+ 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,
+ };
+ result->type = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->location = fetch_ds_type_file_location (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->h = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->bytes = fetch_ds_type_bare_bytes (field5);
+ return result;
+}
+struct tl_ds_privacy_key *fetch_ds_constructor_privacy_key_status_timestamp (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return 0; }
+ struct tl_ds_privacy_key * result = talloc0 (sizeof (*result));
+ return result;
+}
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_allow_contacts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; }
+ struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0xfffe1bac;
+ return result;
+}
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_allow_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; }
+ struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x65427b82;
+ return result;
+}
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_allow_users (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; }
+ struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x4d5bbe0c;
+ 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,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_disallow_contacts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; }
+ struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0xf888fa1a;
+ return result;
+}
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_disallow_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; }
+ struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x8b73e763;
+ return result;
+}
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_disallow_users (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; }
+ struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x0c7f49b7;
+ 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,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_received_notify_message *fetch_ds_constructor_received_notify_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { return 0; }
+ struct tl_ds_received_notify_message * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_reply_markup *fetch_ds_constructor_reply_keyboard_hide (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return 0; }
+ struct tl_ds_reply_markup * result = talloc0 (sizeof (*result));
+ result->magic = 0xa03e5b85;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_reply_markup *fetch_ds_constructor_reply_keyboard_force_reply (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return 0; }
+ struct tl_ds_reply_markup * result = talloc0 (sizeof (*result));
+ result->magic = 0xf4108aa0;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_reply_markup *fetch_ds_constructor_reply_keyboard_markup (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return 0; }
+ struct tl_ds_reply_markup * result = talloc0 (sizeof (*result));
+ result->magic = 0x3502758c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field1);
+ 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 = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->rows = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_res_p_q *fetch_ds_constructor_res_p_q (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return 0; }
+ struct tl_ds_res_p_q * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ 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,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ 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,
+ };
+ result->pq = fetch_ds_type_bare_string (field3);
+ 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,
+ },
+ }
+ };
+ result->server_public_key_fingerprints = (void *)fetch_ds_type_vector (field4);
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_typing_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x16bf744e;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_cancel_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xfd5ec8f5;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_record_video_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xa187d66f;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_video_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x92042ff7;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_video_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xe9763aec;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->progress = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_record_audio_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xd52f73f7;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xe6ac8a6f;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_audio_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xf351d7ab;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->progress = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_photo_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xd1d34a26;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->progress = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_document_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x8faee98e;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_document_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xaa0cd9e4;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->progress = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_geo_location_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x176f8ba1;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_choose_contact_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x628cbc6f;
+ return result;
+}
+struct tl_ds_server_d_h_params *fetch_ds_constructor_server_d_h_params_fail (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return 0; }
+ struct tl_ds_server_d_h_params * result = talloc0 (sizeof (*result));
+ result->magic = 0x79cb045d;
+ 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,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ 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,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ 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,
+ };
+ result->new_nonce_hash = fetch_ds_type_bare_int128 (field3);
+ return result;
+}
+struct tl_ds_server_d_h_params *fetch_ds_constructor_server_d_h_params_ok (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return 0; }
+ struct tl_ds_server_d_h_params * result = talloc0 (sizeof (*result));
+ result->magic = 0xd0e8075c;
+ 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,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ 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,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ 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,
+ };
+ result->encrypted_answer = fetch_ds_type_bare_string (field3);
+ return result;
+}
+struct tl_ds_server_d_h_inner_data *fetch_ds_constructor_server_d_h_inner_data (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return 0; }
+ struct tl_ds_server_d_h_inner_data * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ 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,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->g = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->dh_prime = fetch_ds_type_bare_string (field4);
+ 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,
+ };
+ result->g_a = fetch_ds_type_bare_string (field5);
+ 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,
+ };
+ result->server_time = fetch_ds_type_bare_int (field6);
+ return result;
+}
+struct tl_ds_set_client_d_h_params_answer *fetch_ds_constructor_dh_gen_ok (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return 0; }
+ struct tl_ds_set_client_d_h_params_answer * result = talloc0 (sizeof (*result));
+ result->magic = 0x3bcbf734;
+ 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,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ 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,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ 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,
+ };
+ result->new_nonce_hash1 = fetch_ds_type_bare_int128 (field3);
+ return result;
+}
+struct tl_ds_set_client_d_h_params_answer *fetch_ds_constructor_dh_gen_retry (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return 0; }
+ struct tl_ds_set_client_d_h_params_answer * result = talloc0 (sizeof (*result));
+ result->magic = 0x46dc1fb9;
+ 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,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ 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,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ 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,
+ };
+ result->new_nonce_hash2 = fetch_ds_type_bare_int128 (field3);
+ return result;
+}
+struct tl_ds_set_client_d_h_params_answer *fetch_ds_constructor_dh_gen_fail (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return 0; }
+ struct tl_ds_set_client_d_h_params_answer * result = talloc0 (sizeof (*result));
+ result->magic = 0xa69dae02;
+ 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,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ 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,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ 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,
+ };
+ result->new_nonce_hash3 = fetch_ds_type_bare_int128 (field3);
+ return result;
+}
+struct tl_ds_sticker_pack *fetch_ds_constructor_sticker_pack (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return 0; }
+ struct tl_ds_sticker_pack * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->emoticon = fetch_ds_type_bare_string (field1);
+ 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,
+ },
+ }
+ };
+ result->documents = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_sticker_set *fetch_ds_constructor_sticker_set (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { return 0; }
+ struct tl_ds_sticker_set * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ 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,
+ };
+ result->title = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->short_name = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_string *fetch_ds_constructor_string (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return 0; }
+ struct tl_ds_string * result = talloc0 (sizeof (*result));
+ assert (in_remaining () >= 4);
+ int l = prefetch_strlen ();
+ assert (l >= 0);
+ result->len = l;
+ result->data = talloc (l + 1);
+ result->data[l] = 0;
+ memcpy (result->data, fetch_str (l), l);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_new_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x1f2b0afd;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->message = fetch_ds_type_message (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_message_i_d (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x4e90bfd6;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->random_id = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_delete_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xa20db0e5;
+ 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,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_user_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x5c486927;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->action = fetch_ds_type_send_message_action (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_chat_user_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x9a65ea1f;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->action = fetch_ds_type_send_message_action (field3);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_chat_participants (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x07761198;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->participants = fetch_ds_type_chat_participants (field1);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_user_status (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x1bfbd823;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->status = fetch_ds_type_user_status (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_user_name (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xa7332b73;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->first_name = fetch_ds_type_bare_string (field2);
+ 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,
+ };
+ result->last_name = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->username = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_user_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x95313b0c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_user_profile_photo (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->previous = fetch_ds_type_bool (field4);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_contact_registered (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x2575bbb9;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_contact_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x9d2e67c5;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->my_link = fetch_ds_type_contact_link (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->foreign_link = fetch_ds_type_contact_link (field3);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_new_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x8f06529a;
+ 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,
+ };
+ result->auth_key_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ 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,
+ };
+ result->device = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->location = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_new_geo_chat_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x5a68e3f7;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo_message = fetch_ds_type_geo_chat_message (field1);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_new_encrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x12bcbd9a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->encr_message = fetch_ds_type_encrypted_message (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->qts = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_encrypted_chat_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x1710f156;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_encryption (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xb4a2e88d;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->encr_chat = fetch_ds_type_encrypted_chat (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_encrypted_messages_read (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x38fe25b7;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->max_date = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_chat_participant_add (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x3a0eeb22;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->inviter_id = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->version = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_chat_participant_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x6e5f8c22;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_dc_options (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x8e5e9873;
+ 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 = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->dc_options = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_user_blocked (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x80ece81a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->blocked = fetch_ds_type_bool (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_notify_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xbec268ef;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->notify_peer = fetch_ds_type_notify_peer (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->notify_settings = fetch_ds_type_peer_notify_settings (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_service_notification (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x382dd3e4;
+ 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,
+ };
+ result->type = fetch_ds_type_bare_string (field1);
+ 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,
+ };
+ result->message_text = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->media = fetch_ds_type_message_media (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->popup = fetch_ds_type_bool (field4);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_privacy (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xee3b272a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = fetch_ds_type_privacy_key (field1);
+ 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,
+ },
+ }
+ };
+ result->rules = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_user_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x12b9417b;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->phone = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_read_history_inbox (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x9961fd5c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->peer = fetch_ds_type_peer (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->max_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_read_history_outbox (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x2f2f21bf;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->peer = fetch_ds_type_peer (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->max_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x2cc36971;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->webpage = fetch_ds_type_web_page (field1);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_read_messages_contents (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x68c13933;
+ 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,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_msg_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x03114739;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_updates *fetch_ds_constructor_updates_too_long (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; }
+ struct tl_ds_updates * result = talloc0 (sizeof (*result));
+ result->magic = 0xe317af7e;
+ return result;
+}
+struct tl_ds_updates *fetch_ds_constructor_update_short_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; }
+ struct tl_ds_updates * result = talloc0 (sizeof (*result));
+ result->magic = 0xed5c2127;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->message = fetch_ds_type_bare_string (field4);
+ 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,
+ };
+ result->pts = fetch_ds_type_bare_int (field5);
+ 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,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field6);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field7);
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ result->fwd_from_id = fetch_ds_type_bare_int (field8);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ result->fwd_date = fetch_ds_type_bare_int (field9);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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,
+ };
+ result->reply_to_msg_id = fetch_ds_type_bare_int (field10);
+ }
+ return result;
+}
+struct tl_ds_updates *fetch_ds_constructor_update_short_chat_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; }
+ struct tl_ds_updates * result = talloc0 (sizeof (*result));
+ result->magic = 0x52238b3c;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->from_id = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->message = fetch_ds_type_bare_string (field5);
+ 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,
+ };
+ result->pts = fetch_ds_type_bare_int (field6);
+ 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,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field7);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field8);
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ result->fwd_from_id = fetch_ds_type_bare_int (field9);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ result->fwd_date = fetch_ds_type_bare_int (field10);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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,
+ };
+ result->reply_to_msg_id = fetch_ds_type_bare_int (field11);
+ }
+ return result;
+}
+struct tl_ds_updates *fetch_ds_constructor_update_short (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; }
+ struct tl_ds_updates * result = talloc0 (sizeof (*result));
+ result->magic = 0x78d4dec1;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->update = fetch_ds_type_update (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_updates *fetch_ds_constructor_updates_combined (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; }
+ struct tl_ds_updates * result = talloc0 (sizeof (*result));
+ result->magic = 0x725b04c3;
+ 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->updates = (void *)fetch_ds_type_vector (field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ 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,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field3);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->seq_start = fetch_ds_type_bare_int (field5);
+ 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,
+ };
+ result->seq = fetch_ds_type_bare_int (field6);
+ return result;
+}
+struct tl_ds_updates *fetch_ds_constructor_updates (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; }
+ struct tl_ds_updates * result = talloc0 (sizeof (*result));
+ result->magic = 0x74ae4240;
+ 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->updates = (void *)fetch_ds_type_vector (field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ 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,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field3);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->seq = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_user *fetch_ds_constructor_user_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return 0; }
+ struct tl_ds_user * result = talloc0 (sizeof (*result));
+ result->magic = 0x200250ba;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_user *fetch_ds_constructor_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return 0; }
+ struct tl_ds_user * result = talloc0 (sizeof (*result));
+ result->magic = 0x22e49072;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field3);
+ }
+ if (PTR2INT (var0) & (1 << 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,
+ };
+ result->first_name = fetch_ds_type_bare_string (field4);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ result->last_name = fetch_ds_type_bare_string (field5);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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,
+ };
+ result->username = fetch_ds_type_bare_string (field6);
+ }
+ if (PTR2INT (var0) & (1 << 4)) {
+ 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,
+ };
+ result->phone = fetch_ds_type_bare_string (field7);
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_user_profile_photo (field8);
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->status = fetch_ds_type_user_status (field9);
+ }
+ if (PTR2INT (var0) & (1 << 14)) {
+ 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,
+ };
+ result->bot_info_version = fetch_ds_type_bare_int (field10);
+ }
+ return result;
+}
+struct tl_ds_user_full *fetch_ds_constructor_user_full (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { return 0; }
+ struct tl_ds_user_full * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user = fetch_ds_type_user (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->link = fetch_ds_type_contacts_link (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->profile_photo = fetch_ds_type_photo (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->notify_settings = fetch_ds_type_peer_notify_settings (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->blocked = fetch_ds_type_bool (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->bot_info = fetch_ds_type_bot_info (field6);
+ return result;
+}
+struct tl_ds_user_profile_photo *fetch_ds_constructor_user_profile_photo_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return 0; }
+ struct tl_ds_user_profile_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x4f11bae1;
+ return result;
+}
+struct tl_ds_user_profile_photo *fetch_ds_constructor_user_profile_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return 0; }
+ struct tl_ds_user_profile_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0xd559d8c8;
+ 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,
+ };
+ result->photo_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo_small = fetch_ds_type_file_location (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo_big = fetch_ds_type_file_location (field3);
+ return result;
+}
+struct tl_ds_user_status *fetch_ds_constructor_user_status_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; }
+ struct tl_ds_user_status * result = talloc0 (sizeof (*result));
+ result->magic = 0x09d05049;
+ return result;
+}
+struct tl_ds_user_status *fetch_ds_constructor_user_status_online (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; }
+ struct tl_ds_user_status * result = talloc0 (sizeof (*result));
+ result->magic = 0xedb93949;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->expires = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_user_status *fetch_ds_constructor_user_status_offline (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; }
+ struct tl_ds_user_status * result = talloc0 (sizeof (*result));
+ result->magic = 0x008c703f;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->was_online = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_user_status *fetch_ds_constructor_user_status_recently (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; }
+ struct tl_ds_user_status * result = talloc0 (sizeof (*result));
+ result->magic = 0xe26f42f1;
+ return result;
+}
+struct tl_ds_user_status *fetch_ds_constructor_user_status_last_week (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; }
+ struct tl_ds_user_status * result = talloc0 (sizeof (*result));
+ result->magic = 0x07bf09fc;
+ return result;
+}
+struct tl_ds_user_status *fetch_ds_constructor_user_status_last_month (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; }
+ struct tl_ds_user_status * result = talloc0 (sizeof (*result));
+ result->magic = 0x77ebc742;
+ return result;
+}
+struct tl_ds_vector *fetch_ds_constructor_vector (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return 0; }
+ if (ODDP(T->params[0])) { return 0; }
+ struct paramed_type *var0 = T->params[0]; assert (var0);
+ struct tl_ds_vector * result = talloc0 (sizeof (*result));
+ assert (in_remaining () >= 4);
+ result->f1 = talloc (4); *result->f1 = prefetch_int (); struct paramed_type *var1 = INT2PTR (fetch_int ());
+ int multiplicity3 = PTR2INT (
+ ((void *)var1) + 0 );
+ struct paramed_type *field3 =
+ var0;
+ result->f2 = talloc0 (multiplicity3 * sizeof (void *));
+ {
+ int i = 0;
+ while (i < multiplicity3) {
+ result->f2[i ++] = fetch_ds_type_any (field3);
+ }
+ }
+ return result;
+}
+struct tl_ds_video *fetch_ds_constructor_video_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return 0; }
+ struct tl_ds_video * result = talloc0 (sizeof (*result));
+ result->magic = 0xc10658a8;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_video *fetch_ds_constructor_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return 0; }
+ struct tl_ds_video * result = talloc0 (sizeof (*result));
+ result->magic = 0xee9f4a4d;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->duration = fetch_ds_type_bare_int (field5);
+ 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,
+ };
+ result->size = fetch_ds_type_bare_int (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb = fetch_ds_type_photo_size (field7);
+ 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,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field8);
+ 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,
+ };
+ result->w = fetch_ds_type_bare_int (field9);
+ 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,
+ };
+ result->h = fetch_ds_type_bare_int (field10);
+ return result;
+}
+struct tl_ds_video *fetch_ds_constructor_video_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return 0; }
+ struct tl_ds_video * result = talloc0 (sizeof (*result));
+ result->magic = 0x388fa391;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->caption = fetch_ds_type_bare_string (field5);
+ 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,
+ };
+ result->duration = fetch_ds_type_bare_int (field6);
+ 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,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field7);
+ 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,
+ };
+ result->size = fetch_ds_type_bare_int (field8);
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb = fetch_ds_type_photo_size (field9);
+ 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,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field10);
+ 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,
+ };
+ result->w = fetch_ds_type_bare_int (field11);
+ 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,
+ };
+ result->h = fetch_ds_type_bare_int (field12);
+ return result;
+}
+struct tl_ds_wall_paper *fetch_ds_constructor_wall_paper (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return 0; }
+ struct tl_ds_wall_paper * result = talloc0 (sizeof (*result));
+ result->magic = 0xccb03657;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->title = fetch_ds_type_bare_string (field2);
+ 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,
+ },
+ }
+ };
+ result->sizes = (void *)fetch_ds_type_vector (field3);
+ 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,
+ };
+ result->color = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_wall_paper *fetch_ds_constructor_wall_paper_solid (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return 0; }
+ struct tl_ds_wall_paper * result = talloc0 (sizeof (*result));
+ result->magic = 0x63117f24;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->title = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->bg_color = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->color = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_web_page *fetch_ds_constructor_web_page_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return 0; }
+ struct tl_ds_web_page * result = talloc0 (sizeof (*result));
+ result->magic = 0xeb1477e8;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_web_page *fetch_ds_constructor_web_page_pending (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return 0; }
+ struct tl_ds_web_page * result = talloc0 (sizeof (*result));
+ result->magic = 0xc586da1c;
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_web_page *fetch_ds_constructor_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return 0; }
+ struct tl_ds_web_page * result = talloc0 (sizeof (*result));
+ result->magic = 0xa31ea0b5;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ 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,
+ };
+ result->id = fetch_ds_type_bare_long (field2);
+ 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,
+ };
+ result->url = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->display_url = fetch_ds_type_bare_string (field4);
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ result->type = fetch_ds_type_bare_string (field5);
+ }
+ if (PTR2INT (var0) & (1 << 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,
+ };
+ result->site_name = fetch_ds_type_bare_string (field6);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ result->title = fetch_ds_type_bare_string (field7);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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,
+ };
+ result->description = fetch_ds_type_bare_string (field8);
+ }
+ if (PTR2INT (var0) & (1 << 4)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_photo (field9);
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->embed_url = fetch_ds_type_bare_string (field10);
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->embed_type = fetch_ds_type_bare_string (field11);
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ 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,
+ };
+ result->embed_width = fetch_ds_type_bare_int (field12);
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->embed_height = fetch_ds_type_bare_int (field13);
+ }
+ if (PTR2INT (var0) & (1 << 7)) {
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field14);
+ }
+ if (PTR2INT (var0) & (1 << 8)) {
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->author = fetch_ds_type_bare_string (field15);
+ }
+ return result;
+}
+struct tl_ds_account_authorizations *fetch_ds_constructor_account_authorizations (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { return 0; }
+ struct tl_ds_account_authorizations * result = talloc0 (sizeof (*result));
+ 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 = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->authorizations = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_account_password *fetch_ds_constructor_account_no_password (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return 0; }
+ struct tl_ds_account_password * result = talloc0 (sizeof (*result));
+ result->magic = 0x96dabc18;
+ 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,
+ };
+ result->new_salt = fetch_ds_type_bare_bytes (field1);
+ 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,
+ };
+ result->email_unconfirmed_pattern = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_account_password *fetch_ds_constructor_account_password (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return 0; }
+ struct tl_ds_account_password * result = talloc0 (sizeof (*result));
+ result->magic = 0x7c18141c;
+ 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,
+ };
+ result->current_salt = fetch_ds_type_bare_bytes (field1);
+ 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,
+ };
+ result->new_salt = fetch_ds_type_bare_bytes (field2);
+ 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,
+ };
+ result->hint = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->has_recovery = fetch_ds_type_bool (field4);
+ 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,
+ };
+ result->email_unconfirmed_pattern = fetch_ds_type_bare_string (field5);
+ return result;
+}
+struct tl_ds_account_password_input_settings *fetch_ds_constructor_account_password_input_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { return 0; }
+ struct tl_ds_account_password_input_settings * result = talloc0 (sizeof (*result));
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ result->new_salt = fetch_ds_type_bare_bytes (field2);
+ }
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ result->new_password_hash = fetch_ds_type_bare_bytes (field3);
+ }
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ result->hint = fetch_ds_type_bare_string (field4);
+ }
+ if (PTR2INT (var0) & (1 << 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,
+ };
+ result->email = fetch_ds_type_bare_string (field5);
+ }
+ return result;
+}
+struct tl_ds_account_password_settings *fetch_ds_constructor_account_password_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { return 0; }
+ struct tl_ds_account_password_settings * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->email = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_account_privacy_rules *fetch_ds_constructor_account_privacy_rules (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return 0; }
+ struct tl_ds_account_privacy_rules * result = talloc0 (sizeof (*result));
+ 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,
+ },
+ }
+ };
+ result->rules = (void *)fetch_ds_type_vector (field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_account_sent_change_phone_code *fetch_ds_constructor_account_sent_change_phone_code (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return 0; }
+ struct tl_ds_account_sent_change_phone_code * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->phone_code_hash = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->send_call_timeout = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_auth_authorization *fetch_ds_constructor_auth_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return 0; }
+ struct tl_ds_auth_authorization * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user = fetch_ds_type_user (field1);
+ return result;
+}
+struct tl_ds_auth_checked_phone *fetch_ds_constructor_auth_checked_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { return 0; }
+ struct tl_ds_auth_checked_phone * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone_registered = fetch_ds_type_bool (field1);
+ return result;
+}
+struct tl_ds_auth_exported_authorization *fetch_ds_constructor_auth_exported_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return 0; }
+ struct tl_ds_auth_exported_authorization * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->bytes = fetch_ds_type_bare_bytes (field2);
+ return result;
+}
+struct tl_ds_auth_password_recovery *fetch_ds_constructor_auth_password_recovery (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { return 0; }
+ struct tl_ds_auth_password_recovery * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->email_pattern = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_auth_sent_code *fetch_ds_constructor_auth_sent_code (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return 0; }
+ struct tl_ds_auth_sent_code * result = talloc0 (sizeof (*result));
+ result->magic = 0xefed51d9;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone_registered = fetch_ds_type_bool (field1);
+ 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,
+ };
+ result->phone_code_hash = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->send_call_timeout = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->is_password = fetch_ds_type_bool (field4);
+ return result;
+}
+struct tl_ds_auth_sent_code *fetch_ds_constructor_auth_sent_app_code (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return 0; }
+ struct tl_ds_auth_sent_code * result = talloc0 (sizeof (*result));
+ result->magic = 0xe325edcf;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone_registered = fetch_ds_type_bool (field1);
+ 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,
+ };
+ result->phone_code_hash = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->send_call_timeout = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->is_password = fetch_ds_type_bool (field4);
+ return result;
+}
+struct tl_ds_binlog_encr_key *fetch_ds_constructor_binlog_encr_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return 0; }
+ struct tl_ds_binlog_encr_key * result = talloc0 (sizeof (*result));
+ int multiplicity1 = PTR2INT (
+ INT2PTR (64) );
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = talloc0 (multiplicity1 * sizeof (void *));
+ {
+ int i = 0;
+ while (i < multiplicity1) {
+ result->key[i ++] =fetch_ds_type_any (field1);
+ }
+ }
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_start (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x3b06de69;
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_dc_option (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xf96feb32;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->name = fetch_ds_type_bare_string (field2);
+ 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,
+ };
+ result->ip = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->port = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_dc_option_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x7c0d22d8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc = fetch_ds_type_bare_int (field2);
+ 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,
+ };
+ result->name = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->ip = fetch_ds_type_bare_string (field4);
+ 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,
+ };
+ result->port = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_auth_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x71e8c156;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = fetch_ds_type_bare_binlog_encr_key (field2);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_default_dc (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x9e83dbdc;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_dc_signed (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x26451bb5;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_our_id (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x68a870e8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_dh_params (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xeaeb7826;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->root = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->prime = fetch_ds_type_bare_binlog_encr_key (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_pts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x2ca8c939;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_qts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xd95738ac;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->qts = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_date (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x1d0f4b52;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_seq (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x6eeb2989;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->seq = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_encr_chat_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xee1b38e8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_encr_chat_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x84977251;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ result->admin = fetch_ds_type_bare_int (field5);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ result->user_id = fetch_ds_type_bare_int (field6);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = fetch_ds_type_bare_binlog_encr_key (field7);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->g_key = fetch_ds_type_bare_binlog_encr_key (field8);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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,
+ };
+ result->state = fetch_ds_type_bare_int (field9);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ 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,
+ };
+ result->ttl = fetch_ds_type_bare_int (field10);
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ 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,
+ };
+ result->layer = fetch_ds_type_bare_int (field11);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ 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,
+ };
+ result->in_seq_no = fetch_ds_type_bare_int (field12);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->last_in_seq_no = fetch_ds_type_bare_int (field13);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->out_seq_no = fetch_ds_type_bare_int (field14);
+ }
+ if (PTR2INT (var0) & (1 << 27)) {
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key_fingerprint = fetch_ds_type_bare_long (field15);
+ }
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x9d49488d;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ result->exchange_id = fetch_ds_type_bare_long (field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = fetch_ds_type_bare_binlog_encr_key (field4);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ result->state = fetch_ds_type_bare_int (field5);
+ }
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_user_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xac55d447;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_user_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x127cf2f9;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ result->first_name = fetch_ds_type_bare_string (field4);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ result->last_name = fetch_ds_type_bare_string (field5);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ result->phone = fetch_ds_type_bare_string (field6);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ result->username = fetch_ds_type_bare_string (field7);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_photo (field8);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ 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,
+ };
+ result->real_first_name = fetch_ds_type_bare_string (field9);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->real_last_name = fetch_ds_type_bare_string (field10);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_photo = fetch_ds_type_user_profile_photo (field11);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ 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,
+ };
+ result->last_read_in = fetch_ds_type_bare_int (field12);
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->last_read_out = fetch_ds_type_bare_int (field13);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->bot_info = fetch_ds_type_bot_info (field14);
+ }
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_chat_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x0a10aa92;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ result->title = fetch_ds_type_bare_string (field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ result->user_num = fetch_ds_type_bare_int (field4);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field5);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ result->version = fetch_ds_type_bare_int (field6);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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 = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->participants = (void *)fetch_ds_type_vector (field7);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_photo = fetch_ds_type_chat_photo (field8);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_photo (field9);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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,
+ };
+ result->admin = fetch_ds_type_bare_int (field10);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ 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,
+ };
+ result->last_read_in = fetch_ds_type_bare_int (field11);
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ 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,
+ };
+ result->last_read_out = fetch_ds_type_bare_int (field12);
+ }
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_chat_add_participant (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x535475ea;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->inviter_id = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_chat_del_participant (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x7dd1a1a2;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_msg_id (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x3c873416;
+ 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,
+ };
+ result->old_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->new_id = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_message_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x847e77b1;
+ 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,
+ };
+ result->lid = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_message_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x427cfcdb;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ 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,
+ };
+ result->lid = fetch_ds_type_bare_long (field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->from_id = fetch_ds_type_bare_int (field3);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ result->to_type = fetch_ds_type_bare_int (field4);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ result->to_id = fetch_ds_type_bare_int (field5);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ result->fwd_from_id = fetch_ds_type_bare_int (field6);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ result->fwd_date = fetch_ds_type_bare_int (field7);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field8);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ result->message = fetch_ds_type_bare_string (field9);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->media = fetch_ds_type_message_media (field10);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->action = fetch_ds_type_message_action (field11);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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,
+ };
+ result->reply_id = fetch_ds_type_bare_int (field12);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->reply_markup = fetch_ds_type_reply_markup (field13);
+ }
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_message_encr_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x6cf7cabc;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ 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,
+ };
+ result->lid = fetch_ds_type_bare_long (field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->from_id = fetch_ds_type_bare_int (field3);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ result->to_type = fetch_ds_type_bare_int (field4);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ result->to_id = fetch_ds_type_bare_int (field5);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ result->date = fetch_ds_type_bare_int (field6);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ result->message = fetch_ds_type_bare_string (field7);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->encr_media = fetch_ds_type_decrypted_message_media (field8);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->encr_action = fetch_ds_type_decrypted_message_action (field9);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_encrypted_file (field10);
+ }
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_msg_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x6dd4d85f;
+ 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,
+ };
+ result->lid = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_reset_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x83327955;
+ return result;
+}
+struct tl_ds_contacts_blocked *fetch_ds_constructor_contacts_blocked (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return 0; }
+ struct tl_ds_contacts_blocked * result = talloc0 (sizeof (*result));
+ result->magic = 0x1c138d15;
+ 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,
+ },
+ }
+ };
+ result->blocked = (void *)fetch_ds_type_vector (field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_contacts_blocked *fetch_ds_constructor_contacts_blocked_slice (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return 0; }
+ struct tl_ds_contacts_blocked * result = talloc0 (sizeof (*result));
+ result->magic = 0x900802a1;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->count = fetch_ds_type_bare_int (field1);
+ 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,
+ },
+ }
+ };
+ result->blocked = (void *)fetch_ds_type_vector (field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_contacts_contacts *fetch_ds_constructor_contacts_contacts_not_modified (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return 0; }
+ struct tl_ds_contacts_contacts * result = talloc0 (sizeof (*result));
+ result->magic = 0xb74ba9d2;
+ return result;
+}
+struct tl_ds_contacts_contacts *fetch_ds_constructor_contacts_contacts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return 0; }
+ struct tl_ds_contacts_contacts * result = talloc0 (sizeof (*result));
+ result->magic = 0x6f8b8cb2;
+ 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,
+ },
+ }
+ };
+ result->contacts = (void *)fetch_ds_type_vector (field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_contacts_found *fetch_ds_constructor_contacts_found (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return 0; }
+ struct tl_ds_contacts_found * result = talloc0 (sizeof (*result));
+ 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,
+ },
+ }
+ };
+ result->results = (void *)fetch_ds_type_vector (field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_contacts_imported_contacts *fetch_ds_constructor_contacts_imported_contacts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return 0; }
+ struct tl_ds_contacts_imported_contacts * result = talloc0 (sizeof (*result));
+ 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,
+ },
+ }
+ };
+ result->imported = (void *)fetch_ds_type_vector (field1);
+ 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,
+ },
+ }
+ };
+ result->retry_contacts = (void *)fetch_ds_type_vector (field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_contacts_link *fetch_ds_constructor_contacts_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { return 0; }
+ struct tl_ds_contacts_link * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->my_link = fetch_ds_type_contact_link (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->foreign_link = fetch_ds_type_contact_link (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user = fetch_ds_type_user (field3);
+ return result;
+}
+struct tl_ds_contacts_suggested *fetch_ds_constructor_contacts_suggested (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return 0; }
+ struct tl_ds_contacts_suggested * result = talloc0 (sizeof (*result));
+ 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,
+ },
+ }
+ };
+ result->results = (void *)fetch_ds_type_vector (field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_geochats_located *fetch_ds_constructor_geochats_located (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return 0; }
+ struct tl_ds_geochats_located * result = talloc0 (sizeof (*result));
+ 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,
+ },
+ }
+ };
+ result->results = (void *)fetch_ds_type_vector (field1);
+ 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,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field2);
+ 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,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field4);
+ return result;
+}
+struct tl_ds_geochats_messages *fetch_ds_constructor_geochats_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return 0; }
+ struct tl_ds_geochats_messages * result = talloc0 (sizeof (*result));
+ result->magic = 0xd1526db1;
+ 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,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field1);
+ 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,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_geochats_messages *fetch_ds_constructor_geochats_messages_slice (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return 0; }
+ struct tl_ds_geochats_messages * result = talloc0 (sizeof (*result));
+ result->magic = 0xbc5863e8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->count = fetch_ds_type_bare_int (field1);
+ 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,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field2);
+ 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,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field4);
+ return result;
+}
+struct tl_ds_geochats_stated_message *fetch_ds_constructor_geochats_stated_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return 0; }
+ struct tl_ds_geochats_stated_message * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->message = fetch_ds_type_geo_chat_message (field1);
+ 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,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field3);
+ 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,
+ };
+ result->seq = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_help_app_update *fetch_ds_constructor_help_app_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return 0; }
+ struct tl_ds_help_app_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x8987f311;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->critical = fetch_ds_type_bool (field2);
+ 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,
+ };
+ result->url = fetch_ds_type_bare_string (field3);
+ 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,
+ };
+ result->text = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_help_app_update *fetch_ds_constructor_help_no_app_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return 0; }
+ struct tl_ds_help_app_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xc45a6536;
+ return result;
+}
+struct tl_ds_help_invite_text *fetch_ds_constructor_help_invite_text (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return 0; }
+ struct tl_ds_help_invite_text * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->message = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_help_support *fetch_ds_constructor_help_support (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return 0; }
+ struct tl_ds_help_support * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->phone_number = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user = fetch_ds_type_user (field2);
+ return result;
+}
+struct tl_ds_messages_affected_history *fetch_ds_constructor_messages_affected_history (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { return 0; }
+ struct tl_ds_messages_affected_history * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->offset = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_messages_affected_messages *fetch_ds_constructor_messages_affected_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { return 0; }
+ struct tl_ds_messages_affected_messages * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_messages_all_stickers *fetch_ds_constructor_messages_all_stickers_not_modified (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return 0; }
+ struct tl_ds_messages_all_stickers * result = talloc0 (sizeof (*result));
+ result->magic = 0xe86602c3;
+ return result;
+}
+struct tl_ds_messages_all_stickers *fetch_ds_constructor_messages_all_stickers (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return 0; }
+ struct tl_ds_messages_all_stickers * result = talloc0 (sizeof (*result));
+ result->magic = 0x5ce352ec;
+ 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,
+ };
+ result->hash = fetch_ds_type_bare_string (field1);
+ 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,
+ },
+ }
+ };
+ result->packs = (void *)fetch_ds_type_vector (field2);
+ 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 = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->sets = (void *)fetch_ds_type_vector (field3);
+ 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 = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->documents = (void *)fetch_ds_type_vector (field4);
+ return result;
+}
+struct tl_ds_messages_chat_full *fetch_ds_constructor_messages_chat_full (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return 0; }
+ struct tl_ds_messages_chat_full * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2e02a614, .id = "ChatFull", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->full_chat = fetch_ds_type_chat_full (field1);
+ 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,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_messages_chats *fetch_ds_constructor_messages_chats (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { return 0; }
+ struct tl_ds_messages_chats * result = talloc0 (sizeof (*result));
+ 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,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_messages_dh_config *fetch_ds_constructor_messages_dh_config_not_modified (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return 0; }
+ struct tl_ds_messages_dh_config * result = talloc0 (sizeof (*result));
+ result->magic = 0xc0e24635;
+ 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,
+ };
+ result->random = fetch_ds_type_bare_bytes (field1);
+ return result;
+}
+struct tl_ds_messages_dh_config *fetch_ds_constructor_messages_dh_config (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return 0; }
+ struct tl_ds_messages_dh_config * result = talloc0 (sizeof (*result));
+ result->magic = 0x2c221edd;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->g = fetch_ds_type_bare_int (field1);
+ 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,
+ };
+ result->p = fetch_ds_type_bare_bytes (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->random = fetch_ds_type_bare_bytes (field4);
+ return result;
+}
+struct tl_ds_messages_dialogs *fetch_ds_constructor_messages_dialogs (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return 0; }
+ struct tl_ds_messages_dialogs * result = talloc0 (sizeof (*result));
+ result->magic = 0x15ba6c40;
+ 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 = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->dialogs = (void *)fetch_ds_type_vector (field1);
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field2);
+ 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,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field4);
+ return result;
+}
+struct tl_ds_messages_dialogs *fetch_ds_constructor_messages_dialogs_slice (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return 0; }
+ struct tl_ds_messages_dialogs * result = talloc0 (sizeof (*result));
+ result->magic = 0x71e094f3;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->count = fetch_ds_type_bare_int (field1);
+ 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 = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->dialogs = (void *)fetch_ds_type_vector (field2);
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field3);
+ 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,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field4);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field5);
+ return result;
+}
+struct tl_ds_messages_message *fetch_ds_constructor_messages_message_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { return 0; }
+ struct tl_ds_messages_message * result = talloc0 (sizeof (*result));
+ return result;
+}
+struct tl_ds_messages_messages *fetch_ds_constructor_messages_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return 0; }
+ struct tl_ds_messages_messages * result = talloc0 (sizeof (*result));
+ result->magic = 0x8c718e87;
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field1);
+ 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,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_messages_messages *fetch_ds_constructor_messages_messages_slice (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return 0; }
+ struct tl_ds_messages_messages * result = talloc0 (sizeof (*result));
+ result->magic = 0x0b446ae3;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->count = fetch_ds_type_bare_int (field1);
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field2);
+ 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,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field4);
+ return result;
+}
+struct tl_ds_messages_sent_encrypted_message *fetch_ds_constructor_messages_sent_encrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return 0; }
+ struct tl_ds_messages_sent_encrypted_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x560f8935;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_messages_sent_encrypted_message *fetch_ds_constructor_messages_sent_encrypted_file (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return 0; }
+ struct tl_ds_messages_sent_encrypted_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x9493ff32;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_encrypted_file (field2);
+ return result;
+}
+struct tl_ds_messages_sent_message *fetch_ds_constructor_messages_sent_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return 0; }
+ struct tl_ds_messages_sent_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x4c3d47f3;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->media = fetch_ds_type_message_media (field3);
+ 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,
+ };
+ result->pts = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_messages_sent_message *fetch_ds_constructor_messages_sent_message_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return 0; }
+ struct tl_ds_messages_sent_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x35a1a663;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->media = fetch_ds_type_message_media (field3);
+ 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,
+ };
+ result->pts = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->links = (void *)fetch_ds_type_vector (field6);
+ 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,
+ };
+ result->seq = fetch_ds_type_bare_int (field7);
+ return result;
+}
+struct tl_ds_messages_sticker_set *fetch_ds_constructor_messages_sticker_set (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return 0; }
+ struct tl_ds_messages_sticker_set * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->set = fetch_ds_type_sticker_set (field1);
+ 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,
+ },
+ }
+ };
+ result->packs = (void *)fetch_ds_type_vector (field2);
+ 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,
+ },
+ }
+ };
+ result->documents = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_messages_stickers *fetch_ds_constructor_messages_stickers_not_modified (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return 0; }
+ struct tl_ds_messages_stickers * result = talloc0 (sizeof (*result));
+ result->magic = 0xf1749a22;
+ return result;
+}
+struct tl_ds_messages_stickers *fetch_ds_constructor_messages_stickers (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return 0; }
+ struct tl_ds_messages_stickers * result = talloc0 (sizeof (*result));
+ result->magic = 0x8a8ecd32;
+ 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,
+ };
+ result->hash = fetch_ds_type_bare_string (field1);
+ 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,
+ },
+ }
+ };
+ result->stickers = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_photos_photo *fetch_ds_constructor_photos_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return 0; }
+ struct tl_ds_photos_photo * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_photo (field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_photos_photos *fetch_ds_constructor_photos_photos (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return 0; }
+ struct tl_ds_photos_photos * result = talloc0 (sizeof (*result));
+ result->magic = 0x8dca6aa5;
+ 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->photos = (void *)fetch_ds_type_vector (field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_photos_photos *fetch_ds_constructor_photos_photos_slice (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return 0; }
+ struct tl_ds_photos_photos * result = talloc0 (sizeof (*result));
+ result->magic = 0x15051f54;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->count = fetch_ds_type_bare_int (field1);
+ 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->photos = (void *)fetch_ds_type_vector (field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_unknown (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0xaa963b05;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_jpeg (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0x007efe0e;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_gif (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0xcae1aadf;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_png (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0x0a4f63c0;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_pdf (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0xae1e508d;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_mp3 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0x528a0677;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_mov (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0x4b09ebbc;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_partial (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0x40bc6f52;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_mp4 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0xb3cea0e4;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_webp (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0x1081464c;
+ return result;
+}
+struct tl_ds_updates_difference *fetch_ds_constructor_updates_difference_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return 0; }
+ struct tl_ds_updates_difference * result = talloc0 (sizeof (*result));
+ result->magic = 0x5d75a138;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->seq = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_updates_difference *fetch_ds_constructor_updates_difference (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return 0; }
+ struct tl_ds_updates_difference * result = talloc0 (sizeof (*result));
+ result->magic = 0x00f49ca0;
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->new_messages = (void *)fetch_ds_type_vector (field1);
+ 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,
+ },
+ }
+ };
+ result->new_encrypted_messages = (void *)fetch_ds_type_vector (field2);
+ 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->other_updates = (void *)fetch_ds_type_vector (field3);
+ 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,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field4);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field5);
+ 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,
+ };
+ result->state = fetch_ds_type_updates_state (field6);
+ return result;
+}
+struct tl_ds_updates_difference *fetch_ds_constructor_updates_difference_slice (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return 0; }
+ struct tl_ds_updates_difference * result = talloc0 (sizeof (*result));
+ result->magic = 0xa8fb1981;
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->new_messages = (void *)fetch_ds_type_vector (field1);
+ 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,
+ },
+ }
+ };
+ result->new_encrypted_messages = (void *)fetch_ds_type_vector (field2);
+ 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->other_updates = (void *)fetch_ds_type_vector (field3);
+ 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,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field4);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field5);
+ 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,
+ };
+ result->intermediate_state = fetch_ds_type_updates_state (field6);
+ return result;
+}
+struct tl_ds_updates_state *fetch_ds_constructor_updates_state (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return 0; }
+ struct tl_ds_updates_state * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->qts = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ 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,
+ };
+ result->seq = fetch_ds_type_bare_int (field4);
+ 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,
+ };
+ result->unread_count = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_upload_file *fetch_ds_constructor_upload_file (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return 0; }
+ struct tl_ds_upload_file * result = talloc0 (sizeof (*result));
+ 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,
+ };
+ result->type = fetch_ds_type_storage_file_type (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mtime = fetch_ds_type_bare_int (field2);
+ 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,
+ };
+ result->bytes = fetch_ds_type_bare_bytes (field3);
+ return result;
+}
+struct tl_ds_account_days_t_t_l *fetch_ds_type_account_days_t_t_l (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb8d0afdf: return fetch_ds_constructor_account_days_t_t_l (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_account_days_t_t_l *fetch_ds_type_bare_account_days_t_t_l (struct paramed_type *T) {
+ return fetch_ds_constructor_account_days_t_t_l (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_audio *fetch_ds_type_audio (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x586988d8: return fetch_ds_constructor_audio_empty (T); break;
+ case 0xc7ac6496: return fetch_ds_constructor_audio (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_audio *fetch_ds_type_bare_audio (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_audio_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_audio_empty (T); }
+ if (skip_constructor_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_audio (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_authorization *fetch_ds_type_authorization (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x7bf2e6f6: return fetch_ds_constructor_authorization (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_authorization *fetch_ds_type_bare_authorization (struct paramed_type *T) {
+ return fetch_ds_constructor_authorization (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_bool *fetch_ds_type_bool (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xbc799737: return fetch_ds_constructor_bool_false (T); break;
+ case 0x997275b5: return fetch_ds_constructor_bool_true (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_bool *fetch_ds_type_bare_bool (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_bool_false (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bool_false (T); }
+ if (skip_constructor_bool_true (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bool_true (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_bot_command *fetch_ds_type_bot_command (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc27ac8c7: return fetch_ds_constructor_bot_command (T); break;
+ case 0xb79d22ab: return fetch_ds_constructor_bot_command_old (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_bot_command *fetch_ds_type_bare_bot_command (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_bot_command (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bot_command (T); }
+ if (skip_constructor_bot_command_old (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bot_command_old (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_bot_info *fetch_ds_type_bot_info (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xbb2e37ce: return fetch_ds_constructor_bot_info_empty (T); break;
+ case 0x09cf585d: return fetch_ds_constructor_bot_info (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_bot_info *fetch_ds_type_bare_bot_info (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_bot_info_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bot_info_empty (T); }
+ if (skip_constructor_bot_info (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bot_info (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_string *fetch_ds_type_bytes (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x0ee1379f: return fetch_ds_constructor_bytes (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_string *fetch_ds_type_bare_bytes (struct paramed_type *T) {
+ return fetch_ds_constructor_bytes (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_chat *fetch_ds_type_chat (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x9ba2d800: return fetch_ds_constructor_chat_empty (T); break;
+ case 0x6e9c9bc7: return fetch_ds_constructor_chat (T); break;
+ case 0xfb0ccc41: return fetch_ds_constructor_chat_forbidden (T); break;
+ case 0x75eaea5a: return fetch_ds_constructor_geo_chat (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_chat *fetch_ds_type_bare_chat (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_chat_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_empty (T); }
+ if (skip_constructor_chat (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat (T); }
+ if (skip_constructor_chat_forbidden (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_forbidden (T); }
+ if (skip_constructor_geo_chat (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_chat (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_chat_full *fetch_ds_type_chat_full (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x2e02a614: return fetch_ds_constructor_chat_full (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_chat_full *fetch_ds_type_bare_chat_full (struct paramed_type *T) {
+ return fetch_ds_constructor_chat_full (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_chat_invite *fetch_ds_type_chat_invite (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x5a686d7c: return fetch_ds_constructor_chat_invite_already (T); break;
+ case 0xce917dcd: return fetch_ds_constructor_chat_invite (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_chat_invite *fetch_ds_type_bare_chat_invite (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_chat_invite_already (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_invite_already (T); }
+ if (skip_constructor_chat_invite (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_invite (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_chat_located *fetch_ds_type_chat_located (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x3631cf4c: return fetch_ds_constructor_chat_located (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_chat_located *fetch_ds_type_bare_chat_located (struct paramed_type *T) {
+ return fetch_ds_constructor_chat_located (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_chat_participant *fetch_ds_type_chat_participant (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc8d7493e: return fetch_ds_constructor_chat_participant (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_chat_participant *fetch_ds_type_bare_chat_participant (struct paramed_type *T) {
+ return fetch_ds_constructor_chat_participant (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_chat_participants *fetch_ds_type_chat_participants (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x0fd2bb8a: return fetch_ds_constructor_chat_participants_forbidden (T); break;
+ case 0x7841b415: return fetch_ds_constructor_chat_participants (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_chat_participants *fetch_ds_type_bare_chat_participants (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_chat_participants_forbidden (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_participants_forbidden (T); }
+ if (skip_constructor_chat_participants (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_participants (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_chat_photo *fetch_ds_type_chat_photo (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x37c1011c: return fetch_ds_constructor_chat_photo_empty (T); break;
+ case 0x6153276a: return fetch_ds_constructor_chat_photo (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_chat_photo *fetch_ds_type_bare_chat_photo (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_chat_photo_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_photo_empty (T); }
+ if (skip_constructor_chat_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_photo (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_client_d_h_inner_data *fetch_ds_type_client_d_h_inner_data (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x6643b654: return fetch_ds_constructor_client_d_h_inner_data (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_client_d_h_inner_data *fetch_ds_type_bare_client_d_h_inner_data (struct paramed_type *T) {
+ return fetch_ds_constructor_client_d_h_inner_data (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_config *fetch_ds_type_config (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x4e32b894: return fetch_ds_constructor_config (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_config *fetch_ds_type_bare_config (struct paramed_type *T) {
+ return fetch_ds_constructor_config (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contact *fetch_ds_type_contact (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xf911c994: return fetch_ds_constructor_contact (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contact *fetch_ds_type_bare_contact (struct paramed_type *T) {
+ return fetch_ds_constructor_contact (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contact_blocked *fetch_ds_type_contact_blocked (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x561bc879: return fetch_ds_constructor_contact_blocked (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contact_blocked *fetch_ds_type_bare_contact_blocked (struct paramed_type *T) {
+ return fetch_ds_constructor_contact_blocked (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contact_found *fetch_ds_type_contact_found (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xea879f95: return fetch_ds_constructor_contact_found (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contact_found *fetch_ds_type_bare_contact_found (struct paramed_type *T) {
+ return fetch_ds_constructor_contact_found (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contact_link *fetch_ds_type_contact_link (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x5f4f9247: return fetch_ds_constructor_contact_link_unknown (T); break;
+ case 0xfeedd3ad: return fetch_ds_constructor_contact_link_none (T); break;
+ case 0x268f3f59: return fetch_ds_constructor_contact_link_has_phone (T); break;
+ case 0xd502c2d0: return fetch_ds_constructor_contact_link_contact (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contact_link *fetch_ds_type_bare_contact_link (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_contact_link_unknown (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contact_link_unknown (T); }
+ if (skip_constructor_contact_link_none (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contact_link_none (T); }
+ if (skip_constructor_contact_link_has_phone (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contact_link_has_phone (T); }
+ if (skip_constructor_contact_link_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contact_link_contact (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contact_status *fetch_ds_type_contact_status (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xd3680c61: return fetch_ds_constructor_contact_status (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contact_status *fetch_ds_type_bare_contact_status (struct paramed_type *T) {
+ return fetch_ds_constructor_contact_status (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contact_suggested *fetch_ds_type_contact_suggested (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x3de191a1: return fetch_ds_constructor_contact_suggested (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contact_suggested *fetch_ds_type_bare_contact_suggested (struct paramed_type *T) {
+ return fetch_ds_constructor_contact_suggested (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_dc_option *fetch_ds_type_dc_option (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x2ec2a43c: return fetch_ds_constructor_dc_option_l28 (T); break;
+ case 0x05d8c6cc: return fetch_ds_constructor_dc_option (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_dc_option *fetch_ds_type_bare_dc_option (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_dc_option_l28 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_dc_option_l28 (T); }
+ if (skip_constructor_dc_option (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_dc_option (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_decrypted_message *fetch_ds_type_decrypted_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x204d3878: return fetch_ds_constructor_decrypted_message (T); break;
+ case 0x73164160: return fetch_ds_constructor_decrypted_message_service (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_decrypted_message *fetch_ds_type_bare_decrypted_message (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_decrypted_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message (T); }
+ if (skip_constructor_decrypted_message_service (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_service (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_type_decrypted_message_action (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa1733aec: return fetch_ds_constructor_decrypted_message_action_set_message_t_t_l (T); break;
+ case 0x0c4f40be: return fetch_ds_constructor_decrypted_message_action_read_messages (T); break;
+ case 0x65614304: return fetch_ds_constructor_decrypted_message_action_delete_messages (T); break;
+ case 0x8ac1f475: return fetch_ds_constructor_decrypted_message_action_screenshot_messages (T); break;
+ case 0x6719e45c: return fetch_ds_constructor_decrypted_message_action_flush_history (T); break;
+ case 0x511110b0: return fetch_ds_constructor_decrypted_message_action_resend (T); break;
+ case 0xf3048883: return fetch_ds_constructor_decrypted_message_action_notify_layer (T); break;
+ case 0xccb27641: return fetch_ds_constructor_decrypted_message_action_typing (T); break;
+ case 0xf3c9611b: return fetch_ds_constructor_decrypted_message_action_request_key (T); break;
+ case 0x6fe1735b: return fetch_ds_constructor_decrypted_message_action_accept_key (T); break;
+ case 0xdd05ec6b: return fetch_ds_constructor_decrypted_message_action_abort_key (T); break;
+ case 0xec2e0b9b: return fetch_ds_constructor_decrypted_message_action_commit_key (T); break;
+ case 0xa82fdd63: return fetch_ds_constructor_decrypted_message_action_noop (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_decrypted_message_action *fetch_ds_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) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_set_message_t_t_l (T); }
+ if (skip_constructor_decrypted_message_action_read_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_read_messages (T); }
+ if (skip_constructor_decrypted_message_action_delete_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_delete_messages (T); }
+ if (skip_constructor_decrypted_message_action_screenshot_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_screenshot_messages (T); }
+ if (skip_constructor_decrypted_message_action_flush_history (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_flush_history (T); }
+ if (skip_constructor_decrypted_message_action_resend (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_resend (T); }
+ if (skip_constructor_decrypted_message_action_notify_layer (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_notify_layer (T); }
+ if (skip_constructor_decrypted_message_action_typing (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_typing (T); }
+ if (skip_constructor_decrypted_message_action_request_key (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_request_key (T); }
+ if (skip_constructor_decrypted_message_action_accept_key (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_accept_key (T); }
+ if (skip_constructor_decrypted_message_action_abort_key (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_abort_key (T); }
+ if (skip_constructor_decrypted_message_action_commit_key (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_commit_key (T); }
+ if (skip_constructor_decrypted_message_action_noop (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_noop (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_decrypted_message_layer *fetch_ds_type_decrypted_message_layer (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1be31789: return fetch_ds_constructor_decrypted_message_layer (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_decrypted_message_layer *fetch_ds_type_bare_decrypted_message_layer (struct paramed_type *T) {
+ return fetch_ds_constructor_decrypted_message_layer (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_type_decrypted_message_media (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x089f5c4a: return fetch_ds_constructor_decrypted_message_media_empty (T); break;
+ case 0x32798a8c: return fetch_ds_constructor_decrypted_message_media_photo (T); break;
+ case 0x35480a59: return fetch_ds_constructor_decrypted_message_media_geo_point (T); break;
+ case 0x588a0a97: return fetch_ds_constructor_decrypted_message_media_contact (T); break;
+ case 0xb095434b: return fetch_ds_constructor_decrypted_message_media_document (T); break;
+ case 0x524a415d: return fetch_ds_constructor_decrypted_message_media_video (T); break;
+ case 0x57e0a9cb: return fetch_ds_constructor_decrypted_message_media_audio (T); break;
+ case 0xfa95b0dd: return fetch_ds_constructor_decrypted_message_media_external_document (T); break;
+ case 0x4cee6ef3: return fetch_ds_constructor_decrypted_message_media_video_l12 (T); break;
+ case 0x6080758f: return fetch_ds_constructor_decrypted_message_media_audio_l12 (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_decrypted_message_media *fetch_ds_type_bare_decrypted_message_media (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_decrypted_message_media_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_empty (T); }
+ if (skip_constructor_decrypted_message_media_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_photo (T); }
+ if (skip_constructor_decrypted_message_media_geo_point (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_geo_point (T); }
+ if (skip_constructor_decrypted_message_media_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_contact (T); }
+ if (skip_constructor_decrypted_message_media_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_document (T); }
+ if (skip_constructor_decrypted_message_media_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_video (T); }
+ if (skip_constructor_decrypted_message_media_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_audio (T); }
+ if (skip_constructor_decrypted_message_media_external_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_external_document (T); }
+ if (skip_constructor_decrypted_message_media_video_l12 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_video_l12 (T); }
+ if (skip_constructor_decrypted_message_media_audio_l12 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_audio_l12 (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_dialog *fetch_ds_type_dialog (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc1dd804a: return fetch_ds_constructor_dialog (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_dialog *fetch_ds_type_bare_dialog (struct paramed_type *T) {
+ return fetch_ds_constructor_dialog (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_disabled_feature *fetch_ds_type_disabled_feature (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xae636f24: return fetch_ds_constructor_disabled_feature (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_disabled_feature *fetch_ds_type_bare_disabled_feature (struct paramed_type *T) {
+ return fetch_ds_constructor_disabled_feature (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_document *fetch_ds_type_document (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x36f8c871: return fetch_ds_constructor_document_empty (T); break;
+ case 0xf9a39f4f: return fetch_ds_constructor_document (T); break;
+ case 0x9efc6326: return fetch_ds_constructor_document_l19 (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_document *fetch_ds_type_bare_document (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_document_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_empty (T); }
+ if (skip_constructor_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document (T); }
+ if (skip_constructor_document_l19 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_l19 (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_document_attribute *fetch_ds_type_document_attribute (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x6c37c15c: return fetch_ds_constructor_document_attribute_image_size (T); break;
+ case 0x11b58939: return fetch_ds_constructor_document_attribute_animated (T); break;
+ case 0x994c9882: return fetch_ds_constructor_document_attribute_sticker_l28 (T); break;
+ case 0x3a556302: return fetch_ds_constructor_document_attribute_sticker (T); break;
+ case 0x5910cccb: return fetch_ds_constructor_document_attribute_video (T); break;
+ case 0x051448e5: return fetch_ds_constructor_document_attribute_audio (T); break;
+ case 0x15590068: return fetch_ds_constructor_document_attribute_filename (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_document_attribute *fetch_ds_type_bare_document_attribute (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_document_attribute_image_size (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_image_size (T); }
+ if (skip_constructor_document_attribute_animated (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_animated (T); }
+ if (skip_constructor_document_attribute_sticker_l28 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_sticker_l28 (T); }
+ if (skip_constructor_document_attribute_sticker (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_sticker (T); }
+ if (skip_constructor_document_attribute_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_video (T); }
+ if (skip_constructor_document_attribute_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_audio (T); }
+ if (skip_constructor_document_attribute_filename (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_filename (T); }
+ assert (0);
+ return NULL;
+}
+double *fetch_ds_type_double (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x2210c154: return fetch_ds_constructor_double (T); break;
+ default: assert (0); return NULL;
+ }
+}
+double *fetch_ds_type_bare_double (struct paramed_type *T) {
+ return fetch_ds_constructor_double (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_encrypted_chat *fetch_ds_type_encrypted_chat (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xab7ec0a0: return fetch_ds_constructor_encrypted_chat_empty (T); break;
+ case 0x3bf703dc: return fetch_ds_constructor_encrypted_chat_waiting (T); break;
+ case 0xc878527e: return fetch_ds_constructor_encrypted_chat_requested (T); break;
+ case 0xfa56ce36: return fetch_ds_constructor_encrypted_chat (T); break;
+ case 0x13d6dd27: return fetch_ds_constructor_encrypted_chat_discarded (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_encrypted_chat *fetch_ds_type_bare_encrypted_chat (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_encrypted_chat_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_chat_empty (T); }
+ if (skip_constructor_encrypted_chat_waiting (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_chat_waiting (T); }
+ if (skip_constructor_encrypted_chat_requested (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_chat_requested (T); }
+ if (skip_constructor_encrypted_chat (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_chat (T); }
+ if (skip_constructor_encrypted_chat_discarded (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_chat_discarded (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_encrypted_file *fetch_ds_type_encrypted_file (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc21f497e: return fetch_ds_constructor_encrypted_file_empty (T); break;
+ case 0x4a70994c: return fetch_ds_constructor_encrypted_file (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_encrypted_file *fetch_ds_type_bare_encrypted_file (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_encrypted_file_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_file_empty (T); }
+ if (skip_constructor_encrypted_file (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_file (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_encrypted_message *fetch_ds_type_encrypted_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xed18c118: return fetch_ds_constructor_encrypted_message (T); break;
+ case 0x23734b06: return fetch_ds_constructor_encrypted_message_service (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_encrypted_message *fetch_ds_type_bare_encrypted_message (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_encrypted_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_message (T); }
+ if (skip_constructor_encrypted_message_service (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_message_service (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_error *fetch_ds_type_error (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc4b9f9bb: return fetch_ds_constructor_error (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_error *fetch_ds_type_bare_error (struct paramed_type *T) {
+ return fetch_ds_constructor_error (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_exported_chat_invite *fetch_ds_type_exported_chat_invite (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x69df3769: return fetch_ds_constructor_chat_invite_empty (T); break;
+ case 0xfc2e05bc: return fetch_ds_constructor_chat_invite_exported (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_exported_chat_invite *fetch_ds_type_bare_exported_chat_invite (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_chat_invite_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_invite_empty (T); }
+ if (skip_constructor_chat_invite_exported (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_invite_exported (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_file_location *fetch_ds_type_file_location (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x7c596b46: return fetch_ds_constructor_file_location_unavailable (T); break;
+ case 0x53d69076: return fetch_ds_constructor_file_location (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_file_location *fetch_ds_type_bare_file_location (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_file_location_unavailable (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_file_location_unavailable (T); }
+ if (skip_constructor_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_file_location (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_geo_chat_message *fetch_ds_type_geo_chat_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x60311a9b: return fetch_ds_constructor_geo_chat_message_empty (T); break;
+ case 0x4505f8e1: return fetch_ds_constructor_geo_chat_message (T); break;
+ case 0xd34fa24e: return fetch_ds_constructor_geo_chat_message_service (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_geo_chat_message *fetch_ds_type_bare_geo_chat_message (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_geo_chat_message_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_chat_message_empty (T); }
+ if (skip_constructor_geo_chat_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_chat_message (T); }
+ if (skip_constructor_geo_chat_message_service (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_chat_message_service (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_geo_point *fetch_ds_type_geo_point (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1117dd5f: return fetch_ds_constructor_geo_point_empty (T); break;
+ case 0x2049d70c: return fetch_ds_constructor_geo_point (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_geo_point *fetch_ds_type_bare_geo_point (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_geo_point_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_point_empty (T); }
+ if (skip_constructor_geo_point (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_point (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_imported_contact *fetch_ds_type_imported_contact (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xd0028438: return fetch_ds_constructor_imported_contact (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_imported_contact *fetch_ds_type_bare_imported_contact (struct paramed_type *T) {
+ return fetch_ds_constructor_imported_contact (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_app_event *fetch_ds_type_input_app_event (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x770656a8: return fetch_ds_constructor_input_app_event (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_app_event *fetch_ds_type_bare_input_app_event (struct paramed_type *T) {
+ return fetch_ds_constructor_input_app_event (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_audio *fetch_ds_type_input_audio (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xd95adc84: return fetch_ds_constructor_input_audio_empty (T); break;
+ case 0x77d440ff: return fetch_ds_constructor_input_audio (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_audio *fetch_ds_type_bare_input_audio (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_audio_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_audio_empty (T); }
+ if (skip_constructor_input_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_audio (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_chat_photo *fetch_ds_type_input_chat_photo (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1ca48f57: return fetch_ds_constructor_input_chat_photo_empty (T); break;
+ case 0x94254732: return fetch_ds_constructor_input_chat_uploaded_photo (T); break;
+ case 0xb2e1bf08: return fetch_ds_constructor_input_chat_photo (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_chat_photo *fetch_ds_type_bare_input_chat_photo (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_chat_photo_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_chat_photo_empty (T); }
+ if (skip_constructor_input_chat_uploaded_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_chat_uploaded_photo (T); }
+ if (skip_constructor_input_chat_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_chat_photo (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_contact *fetch_ds_type_input_contact (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xf392b7f4: return fetch_ds_constructor_input_phone_contact (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_contact *fetch_ds_type_bare_input_contact (struct paramed_type *T) {
+ return fetch_ds_constructor_input_phone_contact (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_document *fetch_ds_type_input_document (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x72f0eaae: return fetch_ds_constructor_input_document_empty (T); break;
+ case 0x18798952: return fetch_ds_constructor_input_document (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_document *fetch_ds_type_bare_input_document (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_document_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_document_empty (T); }
+ if (skip_constructor_input_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_document (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_encrypted_chat *fetch_ds_type_input_encrypted_chat (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xf141b5e1: return fetch_ds_constructor_input_encrypted_chat (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_encrypted_chat *fetch_ds_type_bare_input_encrypted_chat (struct paramed_type *T) {
+ return fetch_ds_constructor_input_encrypted_chat (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_encrypted_file *fetch_ds_type_input_encrypted_file (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1837c364: return fetch_ds_constructor_input_encrypted_file_empty (T); break;
+ case 0x64bd0306: return fetch_ds_constructor_input_encrypted_file_uploaded (T); break;
+ case 0x5a17b5e5: return fetch_ds_constructor_input_encrypted_file (T); break;
+ case 0x2dc173c8: return fetch_ds_constructor_input_encrypted_file_big_uploaded (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_encrypted_file *fetch_ds_type_bare_input_encrypted_file (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_encrypted_file_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_encrypted_file_empty (T); }
+ if (skip_constructor_input_encrypted_file_uploaded (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_encrypted_file_uploaded (T); }
+ if (skip_constructor_input_encrypted_file (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_encrypted_file (T); }
+ if (skip_constructor_input_encrypted_file_big_uploaded (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_encrypted_file_big_uploaded (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_file *fetch_ds_type_input_file (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xf52ff27f: return fetch_ds_constructor_input_file (T); break;
+ case 0xfa4f0bb5: return fetch_ds_constructor_input_file_big (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_file *fetch_ds_type_bare_input_file (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_file (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_file (T); }
+ if (skip_constructor_input_file_big (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_file_big (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_file_location *fetch_ds_type_input_file_location (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x14637196: return fetch_ds_constructor_input_file_location (T); break;
+ case 0x3d0364ec: return fetch_ds_constructor_input_video_file_location (T); break;
+ case 0xf5235d55: return fetch_ds_constructor_input_encrypted_file_location (T); break;
+ case 0x74dc404d: return fetch_ds_constructor_input_audio_file_location (T); break;
+ case 0x4e45abe9: return fetch_ds_constructor_input_document_file_location (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_file_location *fetch_ds_type_bare_input_file_location (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_file_location (T); }
+ if (skip_constructor_input_video_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_video_file_location (T); }
+ if (skip_constructor_input_encrypted_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_encrypted_file_location (T); }
+ if (skip_constructor_input_audio_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_audio_file_location (T); }
+ if (skip_constructor_input_document_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_document_file_location (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_geo_chat *fetch_ds_type_input_geo_chat (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x74d456fa: return fetch_ds_constructor_input_geo_chat (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_geo_chat *fetch_ds_type_bare_input_geo_chat (struct paramed_type *T) {
+ return fetch_ds_constructor_input_geo_chat (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_geo_point *fetch_ds_type_input_geo_point (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xe4c123d6: return fetch_ds_constructor_input_geo_point_empty (T); break;
+ case 0xf3b7acc9: return fetch_ds_constructor_input_geo_point (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_geo_point *fetch_ds_type_bare_input_geo_point (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_geo_point_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_geo_point_empty (T); }
+ if (skip_constructor_input_geo_point (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_geo_point (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_media *fetch_ds_type_input_media (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x9664f57f: return fetch_ds_constructor_input_media_empty (T); break;
+ case 0xf7aff1c0: return fetch_ds_constructor_input_media_uploaded_photo (T); break;
+ case 0xe9bfb4f3: return fetch_ds_constructor_input_media_photo (T); break;
+ case 0xf9c44144: return fetch_ds_constructor_input_media_geo_point (T); break;
+ case 0xa6e45987: return fetch_ds_constructor_input_media_contact (T); break;
+ case 0xe13fd4bc: return fetch_ds_constructor_input_media_uploaded_video (T); break;
+ case 0x96fb97dc: return fetch_ds_constructor_input_media_uploaded_thumb_video (T); break;
+ case 0x936a4ebd: return fetch_ds_constructor_input_media_video (T); break;
+ case 0x4e498cab: return fetch_ds_constructor_input_media_uploaded_audio (T); break;
+ case 0x89938781: return fetch_ds_constructor_input_media_audio (T); break;
+ case 0xffe76b78: return fetch_ds_constructor_input_media_uploaded_document (T); break;
+ case 0x41481486: return fetch_ds_constructor_input_media_uploaded_thumb_document (T); break;
+ case 0xd184e841: return fetch_ds_constructor_input_media_document (T); break;
+ case 0x2827a81a: return fetch_ds_constructor_input_media_venue (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_media *fetch_ds_type_bare_input_media (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_media_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_empty (T); }
+ if (skip_constructor_input_media_uploaded_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_photo (T); }
+ if (skip_constructor_input_media_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_photo (T); }
+ if (skip_constructor_input_media_geo_point (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_geo_point (T); }
+ if (skip_constructor_input_media_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_contact (T); }
+ if (skip_constructor_input_media_uploaded_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_video (T); }
+ if (skip_constructor_input_media_uploaded_thumb_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_thumb_video (T); }
+ if (skip_constructor_input_media_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_video (T); }
+ if (skip_constructor_input_media_uploaded_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_audio (T); }
+ if (skip_constructor_input_media_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_audio (T); }
+ if (skip_constructor_input_media_uploaded_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_document (T); }
+ if (skip_constructor_input_media_uploaded_thumb_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_thumb_document (T); }
+ if (skip_constructor_input_media_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_document (T); }
+ if (skip_constructor_input_media_venue (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_venue (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_notify_peer *fetch_ds_type_input_notify_peer (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb8bc5b0c: return fetch_ds_constructor_input_notify_peer (T); break;
+ case 0x193b4417: return fetch_ds_constructor_input_notify_users (T); break;
+ case 0x4a95e84e: return fetch_ds_constructor_input_notify_chats (T); break;
+ case 0xa429b886: return fetch_ds_constructor_input_notify_all (T); break;
+ case 0x4d8ddec8: return fetch_ds_constructor_input_notify_geo_chat_peer (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_notify_peer *fetch_ds_type_bare_input_notify_peer (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_notify_peer (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_notify_peer (T); }
+ if (skip_constructor_input_notify_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_notify_users (T); }
+ if (skip_constructor_input_notify_chats (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_notify_chats (T); }
+ if (skip_constructor_input_notify_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_notify_all (T); }
+ if (skip_constructor_input_notify_geo_chat_peer (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_notify_geo_chat_peer (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_peer *fetch_ds_type_input_peer (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x7f3b18ea: return fetch_ds_constructor_input_peer_empty (T); break;
+ case 0x7da07ec9: return fetch_ds_constructor_input_peer_self (T); break;
+ case 0x1023dbe8: return fetch_ds_constructor_input_peer_contact (T); break;
+ case 0x9b447325: return fetch_ds_constructor_input_peer_foreign (T); break;
+ case 0x179be863: return fetch_ds_constructor_input_peer_chat (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_peer *fetch_ds_type_bare_input_peer (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_peer_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_empty (T); }
+ if (skip_constructor_input_peer_self (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_self (T); }
+ if (skip_constructor_input_peer_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_contact (T); }
+ if (skip_constructor_input_peer_foreign (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_foreign (T); }
+ if (skip_constructor_input_peer_chat (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_chat (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_peer_notify_events *fetch_ds_type_input_peer_notify_events (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xf03064d8: return fetch_ds_constructor_input_peer_notify_events_empty (T); break;
+ case 0xe86a2c74: return fetch_ds_constructor_input_peer_notify_events_all (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_peer_notify_events *fetch_ds_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) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_notify_events_empty (T); }
+ if (skip_constructor_input_peer_notify_events_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_notify_events_all (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_peer_notify_settings *fetch_ds_type_input_peer_notify_settings (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x46a2ce98: return fetch_ds_constructor_input_peer_notify_settings (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_peer_notify_settings *fetch_ds_type_bare_input_peer_notify_settings (struct paramed_type *T) {
+ return fetch_ds_constructor_input_peer_notify_settings (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_photo *fetch_ds_type_input_photo (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1cd7bf0d: return fetch_ds_constructor_input_photo_empty (T); break;
+ case 0xfb95c6c4: return fetch_ds_constructor_input_photo (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_photo *fetch_ds_type_bare_input_photo (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_photo_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_photo_empty (T); }
+ if (skip_constructor_input_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_photo (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_photo_crop *fetch_ds_type_input_photo_crop (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xade6b004: return fetch_ds_constructor_input_photo_crop_auto (T); break;
+ case 0xd9915325: return fetch_ds_constructor_input_photo_crop (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_photo_crop *fetch_ds_type_bare_input_photo_crop (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_photo_crop_auto (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_photo_crop_auto (T); }
+ if (skip_constructor_input_photo_crop (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_photo_crop (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_privacy_key *fetch_ds_type_input_privacy_key (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x4f96cb18: return fetch_ds_constructor_input_privacy_key_status_timestamp (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_privacy_key *fetch_ds_type_bare_input_privacy_key (struct paramed_type *T) {
+ return fetch_ds_constructor_input_privacy_key_status_timestamp (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_privacy_rule *fetch_ds_type_input_privacy_rule (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x0d09e07b: return fetch_ds_constructor_input_privacy_value_allow_contacts (T); break;
+ case 0x184b35ce: return fetch_ds_constructor_input_privacy_value_allow_all (T); break;
+ case 0x131cc67f: return fetch_ds_constructor_input_privacy_value_allow_users (T); break;
+ case 0x0ba52007: return fetch_ds_constructor_input_privacy_value_disallow_contacts (T); break;
+ case 0xd66b66c9: return fetch_ds_constructor_input_privacy_value_disallow_all (T); break;
+ case 0x90110467: return fetch_ds_constructor_input_privacy_value_disallow_users (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_privacy_rule *fetch_ds_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) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_allow_contacts (T); }
+ if (skip_constructor_input_privacy_value_allow_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_allow_all (T); }
+ if (skip_constructor_input_privacy_value_allow_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_allow_users (T); }
+ if (skip_constructor_input_privacy_value_disallow_contacts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_disallow_contacts (T); }
+ if (skip_constructor_input_privacy_value_disallow_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_disallow_all (T); }
+ if (skip_constructor_input_privacy_value_disallow_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_disallow_users (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_sticker_set *fetch_ds_type_input_sticker_set (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xffb62b95: return fetch_ds_constructor_input_sticker_set_empty (T); break;
+ case 0x9de7a269: return fetch_ds_constructor_input_sticker_set_i_d (T); break;
+ case 0x861cc8a0: return fetch_ds_constructor_input_sticker_set_short_name (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_sticker_set *fetch_ds_type_bare_input_sticker_set (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_sticker_set_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_sticker_set_empty (T); }
+ if (skip_constructor_input_sticker_set_i_d (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_sticker_set_i_d (T); }
+ if (skip_constructor_input_sticker_set_short_name (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_sticker_set_short_name (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_user *fetch_ds_type_input_user (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb98886cf: return fetch_ds_constructor_input_user_empty (T); break;
+ case 0xf7c1b13f: return fetch_ds_constructor_input_user_self (T); break;
+ case 0x86e94f65: return fetch_ds_constructor_input_user_contact (T); break;
+ case 0x655e74ff: return fetch_ds_constructor_input_user_foreign (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_user *fetch_ds_type_bare_input_user (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_user_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_user_empty (T); }
+ if (skip_constructor_input_user_self (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_user_self (T); }
+ if (skip_constructor_input_user_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_user_contact (T); }
+ if (skip_constructor_input_user_foreign (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_user_foreign (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_video *fetch_ds_type_input_video (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x5508ec75: return fetch_ds_constructor_input_video_empty (T); break;
+ case 0xee579652: return fetch_ds_constructor_input_video (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_video *fetch_ds_type_bare_input_video (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_video_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_video_empty (T); }
+ if (skip_constructor_input_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_video (T); }
+ assert (0);
+ return NULL;
+}
+int *fetch_ds_type_int (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa8509bda: return fetch_ds_constructor_int (T); break;
+ default: assert (0); return NULL;
+ }
+}
+int *fetch_ds_type_bare_int (struct paramed_type *T) {
+ return fetch_ds_constructor_int (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_int128 *fetch_ds_type_int128 (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x7d36c439: return fetch_ds_constructor_int128 (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_int128 *fetch_ds_type_bare_int128 (struct paramed_type *T) {
+ return fetch_ds_constructor_int128 (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_int256 *fetch_ds_type_int256 (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xf2c798b3: return fetch_ds_constructor_int256 (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_int256 *fetch_ds_type_bare_int256 (struct paramed_type *T) {
+ return fetch_ds_constructor_int256 (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_keyboard_button *fetch_ds_type_keyboard_button (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa2fa4880: return fetch_ds_constructor_keyboard_button (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_keyboard_button *fetch_ds_type_bare_keyboard_button (struct paramed_type *T) {
+ return fetch_ds_constructor_keyboard_button (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_keyboard_button_row *fetch_ds_type_keyboard_button_row (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x77608b83: return fetch_ds_constructor_keyboard_button_row (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_keyboard_button_row *fetch_ds_type_bare_keyboard_button_row (struct paramed_type *T) {
+ return fetch_ds_constructor_keyboard_button_row (T);
+ assert (0);
+ return NULL;
+}
+long long *fetch_ds_type_long (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x22076cba: return fetch_ds_constructor_long (T); break;
+ default: assert (0); return NULL;
+ }
+}
+long long *fetch_ds_type_bare_long (struct paramed_type *T) {
+ return fetch_ds_constructor_long (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_message *fetch_ds_type_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x83e5de54: return fetch_ds_constructor_message_empty (T); break;
+ case 0xc3060325: return fetch_ds_constructor_message (T); break;
+ case 0x1d86f70e: return fetch_ds_constructor_message_service (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_message *fetch_ds_type_bare_message (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_message_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_empty (T); }
+ if (skip_constructor_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message (T); }
+ if (skip_constructor_message_service (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_service (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_message_action *fetch_ds_type_message_action (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb6aef7b0: return fetch_ds_constructor_message_action_empty (T); break;
+ case 0xa6638b9a: return fetch_ds_constructor_message_action_chat_create (T); break;
+ case 0xb5a1ce5a: return fetch_ds_constructor_message_action_chat_edit_title (T); break;
+ case 0x7fcb13a8: return fetch_ds_constructor_message_action_chat_edit_photo (T); break;
+ case 0x95e3fbef: return fetch_ds_constructor_message_action_chat_delete_photo (T); break;
+ case 0x5e3cfc4b: return fetch_ds_constructor_message_action_chat_add_user (T); break;
+ case 0xb2ae9b0c: return fetch_ds_constructor_message_action_chat_delete_user (T); break;
+ case 0x6f038ebc: return fetch_ds_constructor_message_action_geo_chat_create (T); break;
+ case 0x0c7d53de: return fetch_ds_constructor_message_action_geo_chat_checkin (T); break;
+ case 0xf89cf5e8: return fetch_ds_constructor_message_action_chat_joined_by_link (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_message_action *fetch_ds_type_bare_message_action (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_message_action_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_empty (T); }
+ if (skip_constructor_message_action_chat_create (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_create (T); }
+ if (skip_constructor_message_action_chat_edit_title (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_edit_title (T); }
+ if (skip_constructor_message_action_chat_edit_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_edit_photo (T); }
+ if (skip_constructor_message_action_chat_delete_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_delete_photo (T); }
+ if (skip_constructor_message_action_chat_add_user (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_add_user (T); }
+ if (skip_constructor_message_action_chat_delete_user (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_delete_user (T); }
+ if (skip_constructor_message_action_geo_chat_create (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_geo_chat_create (T); }
+ if (skip_constructor_message_action_geo_chat_checkin (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_geo_chat_checkin (T); }
+ if (skip_constructor_message_action_chat_joined_by_link (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_joined_by_link (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_message_media *fetch_ds_type_message_media (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x3ded6320: return fetch_ds_constructor_message_media_empty (T); break;
+ case 0x3d8ce53d: return fetch_ds_constructor_message_media_photo (T); break;
+ case 0x5bcf1675: return fetch_ds_constructor_message_media_video (T); break;
+ case 0x56e0d474: return fetch_ds_constructor_message_media_geo (T); break;
+ case 0x5e7d2f39: return fetch_ds_constructor_message_media_contact (T); break;
+ case 0x9f84f49e: return fetch_ds_constructor_message_media_unsupported (T); break;
+ case 0x2fda2204: return fetch_ds_constructor_message_media_document (T); break;
+ case 0xc6b68300: return fetch_ds_constructor_message_media_audio (T); break;
+ case 0xa32dd600: return fetch_ds_constructor_message_media_web_page (T); break;
+ case 0x7912b71f: return fetch_ds_constructor_message_media_venue (T); break;
+ case 0xc8c45a2a: return fetch_ds_constructor_message_media_photo_l27 (T); break;
+ case 0xa2d24290: return fetch_ds_constructor_message_media_video_l27 (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_message_media *fetch_ds_type_bare_message_media (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_message_media_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_empty (T); }
+ if (skip_constructor_message_media_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_photo (T); }
+ if (skip_constructor_message_media_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_video (T); }
+ if (skip_constructor_message_media_geo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_geo (T); }
+ if (skip_constructor_message_media_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_contact (T); }
+ if (skip_constructor_message_media_unsupported (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_unsupported (T); }
+ if (skip_constructor_message_media_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_document (T); }
+ if (skip_constructor_message_media_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_audio (T); }
+ if (skip_constructor_message_media_web_page (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_web_page (T); }
+ if (skip_constructor_message_media_venue (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_venue (T); }
+ if (skip_constructor_message_media_photo_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_photo_l27 (T); }
+ if (skip_constructor_message_media_video_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_video_l27 (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_filter *fetch_ds_type_messages_filter (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x57e2f66c: return fetch_ds_constructor_input_messages_filter_empty (T); break;
+ case 0x9609a51c: return fetch_ds_constructor_input_messages_filter_photos (T); break;
+ case 0x9fc00e65: return fetch_ds_constructor_input_messages_filter_video (T); break;
+ case 0x56e9f0e4: return fetch_ds_constructor_input_messages_filter_photo_video (T); break;
+ case 0xd95e73bb: return fetch_ds_constructor_input_messages_filter_photo_video_documents (T); break;
+ case 0x9eddf188: return fetch_ds_constructor_input_messages_filter_document (T); break;
+ case 0xcfc87522: return fetch_ds_constructor_input_messages_filter_audio (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_filter *fetch_ds_type_bare_messages_filter (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_messages_filter_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_empty (T); }
+ if (skip_constructor_input_messages_filter_photos (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_photos (T); }
+ if (skip_constructor_input_messages_filter_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_video (T); }
+ if (skip_constructor_input_messages_filter_photo_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_photo_video (T); }
+ if (skip_constructor_input_messages_filter_photo_video_documents (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_photo_video_documents (T); }
+ if (skip_constructor_input_messages_filter_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_document (T); }
+ if (skip_constructor_input_messages_filter_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_audio (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_nearest_dc *fetch_ds_type_nearest_dc (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x8e1a1775: return fetch_ds_constructor_nearest_dc (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_nearest_dc *fetch_ds_type_bare_nearest_dc (struct paramed_type *T) {
+ return fetch_ds_constructor_nearest_dc (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_notify_peer *fetch_ds_type_notify_peer (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x9fd40bd8: return fetch_ds_constructor_notify_peer (T); break;
+ case 0xb4c83b4c: return fetch_ds_constructor_notify_users (T); break;
+ case 0xc007cec3: return fetch_ds_constructor_notify_chats (T); break;
+ case 0x74d07c60: return fetch_ds_constructor_notify_all (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_notify_peer *fetch_ds_type_bare_notify_peer (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_notify_peer (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_notify_peer (T); }
+ if (skip_constructor_notify_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_notify_users (T); }
+ if (skip_constructor_notify_chats (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_notify_chats (T); }
+ if (skip_constructor_notify_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_notify_all (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_null *fetch_ds_type_null (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x56730bcc: return fetch_ds_constructor_null (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_null *fetch_ds_type_bare_null (struct paramed_type *T) {
+ return fetch_ds_constructor_null (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_p_q_inner_data *fetch_ds_type_p_q_inner_data (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x83c95aec: return fetch_ds_constructor_p_q_inner_data (T); break;
+ case 0x3c6a84d4: return fetch_ds_constructor_p_q_inner_data_temp (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_p_q_inner_data *fetch_ds_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) { in_ptr = save_in_ptr; return fetch_ds_constructor_p_q_inner_data (T); }
+ if (skip_constructor_p_q_inner_data_temp (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_p_q_inner_data_temp (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_peer *fetch_ds_type_peer (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x9db1bc6d: return fetch_ds_constructor_peer_user (T); break;
+ case 0xbad0e5bb: return fetch_ds_constructor_peer_chat (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_peer *fetch_ds_type_bare_peer (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_peer_user (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_user (T); }
+ if (skip_constructor_peer_chat (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_chat (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_peer_notify_events *fetch_ds_type_peer_notify_events (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xadd53cb3: return fetch_ds_constructor_peer_notify_events_empty (T); break;
+ case 0x6d1ded88: return fetch_ds_constructor_peer_notify_events_all (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_peer_notify_events *fetch_ds_type_bare_peer_notify_events (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_peer_notify_events_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_notify_events_empty (T); }
+ if (skip_constructor_peer_notify_events_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_notify_events_all (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_peer_notify_settings *fetch_ds_type_peer_notify_settings (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x70a68512: return fetch_ds_constructor_peer_notify_settings_empty (T); break;
+ case 0x8d5e11ee: return fetch_ds_constructor_peer_notify_settings (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_peer_notify_settings *fetch_ds_type_bare_peer_notify_settings (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_peer_notify_settings_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_notify_settings_empty (T); }
+ if (skip_constructor_peer_notify_settings (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_notify_settings (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_photo *fetch_ds_type_photo (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x2331b22d: return fetch_ds_constructor_photo_empty (T); break;
+ case 0xc3838076: return fetch_ds_constructor_photo (T); break;
+ case 0x22b56751: return fetch_ds_constructor_photo_l27 (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_photo *fetch_ds_type_bare_photo (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_photo_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo_empty (T); }
+ if (skip_constructor_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo (T); }
+ if (skip_constructor_photo_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo_l27 (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_photo_size *fetch_ds_type_photo_size (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x0e17e23c: return fetch_ds_constructor_photo_size_empty (T); break;
+ case 0x77bfb61b: return fetch_ds_constructor_photo_size (T); break;
+ case 0xe9a734fa: return fetch_ds_constructor_photo_cached_size (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_photo_size *fetch_ds_type_bare_photo_size (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_photo_size_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo_size_empty (T); }
+ if (skip_constructor_photo_size (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo_size (T); }
+ if (skip_constructor_photo_cached_size (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo_cached_size (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_privacy_key *fetch_ds_type_privacy_key (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xbc2eab30: return fetch_ds_constructor_privacy_key_status_timestamp (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_privacy_key *fetch_ds_type_bare_privacy_key (struct paramed_type *T) {
+ return fetch_ds_constructor_privacy_key_status_timestamp (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_privacy_rule *fetch_ds_type_privacy_rule (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xfffe1bac: return fetch_ds_constructor_privacy_value_allow_contacts (T); break;
+ case 0x65427b82: return fetch_ds_constructor_privacy_value_allow_all (T); break;
+ case 0x4d5bbe0c: return fetch_ds_constructor_privacy_value_allow_users (T); break;
+ case 0xf888fa1a: return fetch_ds_constructor_privacy_value_disallow_contacts (T); break;
+ case 0x8b73e763: return fetch_ds_constructor_privacy_value_disallow_all (T); break;
+ case 0x0c7f49b7: return fetch_ds_constructor_privacy_value_disallow_users (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_privacy_rule *fetch_ds_type_bare_privacy_rule (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_privacy_value_allow_contacts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_allow_contacts (T); }
+ if (skip_constructor_privacy_value_allow_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_allow_all (T); }
+ if (skip_constructor_privacy_value_allow_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_allow_users (T); }
+ if (skip_constructor_privacy_value_disallow_contacts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_disallow_contacts (T); }
+ if (skip_constructor_privacy_value_disallow_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_disallow_all (T); }
+ if (skip_constructor_privacy_value_disallow_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_disallow_users (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_received_notify_message *fetch_ds_type_received_notify_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa384b779: return fetch_ds_constructor_received_notify_message (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_received_notify_message *fetch_ds_type_bare_received_notify_message (struct paramed_type *T) {
+ return fetch_ds_constructor_received_notify_message (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_reply_markup *fetch_ds_type_reply_markup (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa03e5b85: return fetch_ds_constructor_reply_keyboard_hide (T); break;
+ case 0xf4108aa0: return fetch_ds_constructor_reply_keyboard_force_reply (T); break;
+ case 0x3502758c: return fetch_ds_constructor_reply_keyboard_markup (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_reply_markup *fetch_ds_type_bare_reply_markup (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_reply_keyboard_hide (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_reply_keyboard_hide (T); }
+ if (skip_constructor_reply_keyboard_force_reply (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_reply_keyboard_force_reply (T); }
+ if (skip_constructor_reply_keyboard_markup (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_reply_keyboard_markup (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_res_p_q *fetch_ds_type_res_p_q (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x05162463: return fetch_ds_constructor_res_p_q (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_res_p_q *fetch_ds_type_bare_res_p_q (struct paramed_type *T) {
+ return fetch_ds_constructor_res_p_q (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_send_message_action *fetch_ds_type_send_message_action (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x16bf744e: return fetch_ds_constructor_send_message_typing_action (T); break;
+ case 0xfd5ec8f5: return fetch_ds_constructor_send_message_cancel_action (T); break;
+ case 0xa187d66f: return fetch_ds_constructor_send_message_record_video_action (T); break;
+ case 0x92042ff7: return fetch_ds_constructor_send_message_upload_video_action_l27 (T); break;
+ case 0xe9763aec: return fetch_ds_constructor_send_message_upload_video_action (T); break;
+ case 0xd52f73f7: return fetch_ds_constructor_send_message_record_audio_action (T); break;
+ case 0xe6ac8a6f: return fetch_ds_constructor_send_message_upload_audio_action_l27 (T); break;
+ case 0xf351d7ab: return fetch_ds_constructor_send_message_upload_audio_action (T); break;
+ case 0xd1d34a26: return fetch_ds_constructor_send_message_upload_photo_action (T); break;
+ case 0x8faee98e: return fetch_ds_constructor_send_message_upload_document_action_l27 (T); break;
+ case 0xaa0cd9e4: return fetch_ds_constructor_send_message_upload_document_action (T); break;
+ case 0x176f8ba1: return fetch_ds_constructor_send_message_geo_location_action (T); break;
+ case 0x628cbc6f: return fetch_ds_constructor_send_message_choose_contact_action (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_send_message_action *fetch_ds_type_bare_send_message_action (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_send_message_typing_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_typing_action (T); }
+ if (skip_constructor_send_message_cancel_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_cancel_action (T); }
+ if (skip_constructor_send_message_record_video_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_record_video_action (T); }
+ if (skip_constructor_send_message_upload_video_action_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_video_action_l27 (T); }
+ if (skip_constructor_send_message_upload_video_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_video_action (T); }
+ if (skip_constructor_send_message_record_audio_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_record_audio_action (T); }
+ if (skip_constructor_send_message_upload_audio_action_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_audio_action_l27 (T); }
+ if (skip_constructor_send_message_upload_audio_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_audio_action (T); }
+ if (skip_constructor_send_message_upload_photo_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_photo_action (T); }
+ if (skip_constructor_send_message_upload_document_action_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_document_action_l27 (T); }
+ if (skip_constructor_send_message_upload_document_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_document_action (T); }
+ if (skip_constructor_send_message_geo_location_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_geo_location_action (T); }
+ if (skip_constructor_send_message_choose_contact_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_choose_contact_action (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_server_d_h_params *fetch_ds_type_server_d_h_params (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x79cb045d: return fetch_ds_constructor_server_d_h_params_fail (T); break;
+ case 0xd0e8075c: return fetch_ds_constructor_server_d_h_params_ok (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_server_d_h_params *fetch_ds_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) { in_ptr = save_in_ptr; return fetch_ds_constructor_server_d_h_params_fail (T); }
+ if (skip_constructor_server_d_h_params_ok (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_server_d_h_params_ok (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_server_d_h_inner_data *fetch_ds_type_server_d_h_inner_data (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb5890dba: return fetch_ds_constructor_server_d_h_inner_data (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_server_d_h_inner_data *fetch_ds_type_bare_server_d_h_inner_data (struct paramed_type *T) {
+ return fetch_ds_constructor_server_d_h_inner_data (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_set_client_d_h_params_answer *fetch_ds_type_set_client_d_h_params_answer (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x3bcbf734: return fetch_ds_constructor_dh_gen_ok (T); break;
+ case 0x46dc1fb9: return fetch_ds_constructor_dh_gen_retry (T); break;
+ case 0xa69dae02: return fetch_ds_constructor_dh_gen_fail (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_set_client_d_h_params_answer *fetch_ds_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) { in_ptr = save_in_ptr; return fetch_ds_constructor_dh_gen_ok (T); }
+ if (skip_constructor_dh_gen_retry (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_dh_gen_retry (T); }
+ if (skip_constructor_dh_gen_fail (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_dh_gen_fail (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_sticker_pack *fetch_ds_type_sticker_pack (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x12b299d4: return fetch_ds_constructor_sticker_pack (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_sticker_pack *fetch_ds_type_bare_sticker_pack (struct paramed_type *T) {
+ return fetch_ds_constructor_sticker_pack (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_sticker_set *fetch_ds_type_sticker_set (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa7a43b17: return fetch_ds_constructor_sticker_set (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_sticker_set *fetch_ds_type_bare_sticker_set (struct paramed_type *T) {
+ return fetch_ds_constructor_sticker_set (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_string *fetch_ds_type_string (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb5286e24: return fetch_ds_constructor_string (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_string *fetch_ds_type_bare_string (struct paramed_type *T) {
+ return fetch_ds_constructor_string (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_update *fetch_ds_type_update (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1f2b0afd: return fetch_ds_constructor_update_new_message (T); break;
+ case 0x4e90bfd6: return fetch_ds_constructor_update_message_i_d (T); break;
+ case 0xa20db0e5: return fetch_ds_constructor_update_delete_messages (T); break;
+ case 0x5c486927: return fetch_ds_constructor_update_user_typing (T); break;
+ case 0x9a65ea1f: return fetch_ds_constructor_update_chat_user_typing (T); break;
+ case 0x07761198: return fetch_ds_constructor_update_chat_participants (T); break;
+ case 0x1bfbd823: return fetch_ds_constructor_update_user_status (T); break;
+ case 0xa7332b73: return fetch_ds_constructor_update_user_name (T); break;
+ case 0x95313b0c: return fetch_ds_constructor_update_user_photo (T); break;
+ case 0x2575bbb9: return fetch_ds_constructor_update_contact_registered (T); break;
+ case 0x9d2e67c5: return fetch_ds_constructor_update_contact_link (T); break;
+ case 0x8f06529a: return fetch_ds_constructor_update_new_authorization (T); break;
+ case 0x5a68e3f7: return fetch_ds_constructor_update_new_geo_chat_message (T); break;
+ case 0x12bcbd9a: return fetch_ds_constructor_update_new_encrypted_message (T); break;
+ case 0x1710f156: return fetch_ds_constructor_update_encrypted_chat_typing (T); break;
+ case 0xb4a2e88d: return fetch_ds_constructor_update_encryption (T); break;
+ case 0x38fe25b7: return fetch_ds_constructor_update_encrypted_messages_read (T); break;
+ case 0x3a0eeb22: return fetch_ds_constructor_update_chat_participant_add (T); break;
+ case 0x6e5f8c22: return fetch_ds_constructor_update_chat_participant_delete (T); break;
+ case 0x8e5e9873: return fetch_ds_constructor_update_dc_options (T); break;
+ case 0x80ece81a: return fetch_ds_constructor_update_user_blocked (T); break;
+ case 0xbec268ef: return fetch_ds_constructor_update_notify_settings (T); break;
+ case 0x382dd3e4: return fetch_ds_constructor_update_service_notification (T); break;
+ case 0xee3b272a: return fetch_ds_constructor_update_privacy (T); break;
+ case 0x12b9417b: return fetch_ds_constructor_update_user_phone (T); break;
+ case 0x9961fd5c: return fetch_ds_constructor_update_read_history_inbox (T); break;
+ case 0x2f2f21bf: return fetch_ds_constructor_update_read_history_outbox (T); break;
+ case 0x2cc36971: return fetch_ds_constructor_update_web_page (T); break;
+ case 0x68c13933: return fetch_ds_constructor_update_read_messages_contents (T); break;
+ case 0x03114739: return fetch_ds_constructor_update_msg_update (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_update *fetch_ds_type_bare_update (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_update_new_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_new_message (T); }
+ if (skip_constructor_update_message_i_d (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_message_i_d (T); }
+ if (skip_constructor_update_delete_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_delete_messages (T); }
+ if (skip_constructor_update_user_typing (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_typing (T); }
+ if (skip_constructor_update_chat_user_typing (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_chat_user_typing (T); }
+ if (skip_constructor_update_chat_participants (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_chat_participants (T); }
+ if (skip_constructor_update_user_status (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_status (T); }
+ if (skip_constructor_update_user_name (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_name (T); }
+ if (skip_constructor_update_user_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_photo (T); }
+ if (skip_constructor_update_contact_registered (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_contact_registered (T); }
+ if (skip_constructor_update_contact_link (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_contact_link (T); }
+ if (skip_constructor_update_new_authorization (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_new_authorization (T); }
+ if (skip_constructor_update_new_geo_chat_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_new_geo_chat_message (T); }
+ if (skip_constructor_update_new_encrypted_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_new_encrypted_message (T); }
+ if (skip_constructor_update_encrypted_chat_typing (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_encrypted_chat_typing (T); }
+ if (skip_constructor_update_encryption (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_encryption (T); }
+ if (skip_constructor_update_encrypted_messages_read (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_encrypted_messages_read (T); }
+ if (skip_constructor_update_chat_participant_add (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_chat_participant_add (T); }
+ if (skip_constructor_update_chat_participant_delete (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_chat_participant_delete (T); }
+ if (skip_constructor_update_dc_options (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_dc_options (T); }
+ if (skip_constructor_update_user_blocked (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_blocked (T); }
+ if (skip_constructor_update_notify_settings (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_notify_settings (T); }
+ if (skip_constructor_update_service_notification (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_service_notification (T); }
+ if (skip_constructor_update_privacy (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_privacy (T); }
+ if (skip_constructor_update_user_phone (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_phone (T); }
+ if (skip_constructor_update_read_history_inbox (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_read_history_inbox (T); }
+ if (skip_constructor_update_read_history_outbox (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_read_history_outbox (T); }
+ if (skip_constructor_update_web_page (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_web_page (T); }
+ if (skip_constructor_update_read_messages_contents (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_read_messages_contents (T); }
+ if (skip_constructor_update_msg_update (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_msg_update (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_updates *fetch_ds_type_updates (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xe317af7e: return fetch_ds_constructor_updates_too_long (T); break;
+ case 0xed5c2127: return fetch_ds_constructor_update_short_message (T); break;
+ case 0x52238b3c: return fetch_ds_constructor_update_short_chat_message (T); break;
+ case 0x78d4dec1: return fetch_ds_constructor_update_short (T); break;
+ case 0x725b04c3: return fetch_ds_constructor_updates_combined (T); break;
+ case 0x74ae4240: return fetch_ds_constructor_updates (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_updates *fetch_ds_type_bare_updates (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_updates_too_long (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates_too_long (T); }
+ if (skip_constructor_update_short_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_short_message (T); }
+ if (skip_constructor_update_short_chat_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_short_chat_message (T); }
+ if (skip_constructor_update_short (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_short (T); }
+ if (skip_constructor_updates_combined (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates_combined (T); }
+ if (skip_constructor_updates (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_user *fetch_ds_type_user (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x200250ba: return fetch_ds_constructor_user_empty (T); break;
+ case 0x22e49072: return fetch_ds_constructor_user (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_user *fetch_ds_type_bare_user (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_user_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_empty (T); }
+ if (skip_constructor_user (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_user_full *fetch_ds_type_user_full (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x5a89ac5b: return fetch_ds_constructor_user_full (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_user_full *fetch_ds_type_bare_user_full (struct paramed_type *T) {
+ return fetch_ds_constructor_user_full (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_user_profile_photo *fetch_ds_type_user_profile_photo (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x4f11bae1: return fetch_ds_constructor_user_profile_photo_empty (T); break;
+ case 0xd559d8c8: return fetch_ds_constructor_user_profile_photo (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_user_profile_photo *fetch_ds_type_bare_user_profile_photo (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_user_profile_photo_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_profile_photo_empty (T); }
+ if (skip_constructor_user_profile_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_profile_photo (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_user_status *fetch_ds_type_user_status (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x09d05049: return fetch_ds_constructor_user_status_empty (T); break;
+ case 0xedb93949: return fetch_ds_constructor_user_status_online (T); break;
+ case 0x008c703f: return fetch_ds_constructor_user_status_offline (T); break;
+ case 0xe26f42f1: return fetch_ds_constructor_user_status_recently (T); break;
+ case 0x07bf09fc: return fetch_ds_constructor_user_status_last_week (T); break;
+ case 0x77ebc742: return fetch_ds_constructor_user_status_last_month (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_user_status *fetch_ds_type_bare_user_status (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_user_status_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_empty (T); }
+ if (skip_constructor_user_status_online (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_online (T); }
+ if (skip_constructor_user_status_offline (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_offline (T); }
+ if (skip_constructor_user_status_recently (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_recently (T); }
+ if (skip_constructor_user_status_last_week (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_last_week (T); }
+ if (skip_constructor_user_status_last_month (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_last_month (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_vector *fetch_ds_type_vector (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1cb5c415: return fetch_ds_constructor_vector (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_vector *fetch_ds_type_bare_vector (struct paramed_type *T) {
+ return fetch_ds_constructor_vector (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_video *fetch_ds_type_video (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc10658a8: return fetch_ds_constructor_video_empty (T); break;
+ case 0xee9f4a4d: return fetch_ds_constructor_video (T); break;
+ case 0x388fa391: return fetch_ds_constructor_video_l27 (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_video *fetch_ds_type_bare_video (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_video_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_video_empty (T); }
+ if (skip_constructor_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_video (T); }
+ if (skip_constructor_video_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_video_l27 (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_wall_paper *fetch_ds_type_wall_paper (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xccb03657: return fetch_ds_constructor_wall_paper (T); break;
+ case 0x63117f24: return fetch_ds_constructor_wall_paper_solid (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_wall_paper *fetch_ds_type_bare_wall_paper (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_wall_paper (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_wall_paper (T); }
+ if (skip_constructor_wall_paper_solid (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_wall_paper_solid (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_web_page *fetch_ds_type_web_page (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xeb1477e8: return fetch_ds_constructor_web_page_empty (T); break;
+ case 0xc586da1c: return fetch_ds_constructor_web_page_pending (T); break;
+ case 0xa31ea0b5: return fetch_ds_constructor_web_page (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_web_page *fetch_ds_type_bare_web_page (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_web_page_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_web_page_empty (T); }
+ if (skip_constructor_web_page_pending (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_web_page_pending (T); }
+ if (skip_constructor_web_page (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_web_page (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_account_authorizations *fetch_ds_type_account_authorizations (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1250abde: return fetch_ds_constructor_account_authorizations (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_account_authorizations *fetch_ds_type_bare_account_authorizations (struct paramed_type *T) {
+ return fetch_ds_constructor_account_authorizations (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_account_password *fetch_ds_type_account_password (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x96dabc18: return fetch_ds_constructor_account_no_password (T); break;
+ case 0x7c18141c: return fetch_ds_constructor_account_password (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_account_password *fetch_ds_type_bare_account_password (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_account_no_password (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_account_no_password (T); }
+ if (skip_constructor_account_password (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_account_password (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_account_password_input_settings *fetch_ds_type_account_password_input_settings (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xbcfc532c: return fetch_ds_constructor_account_password_input_settings (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_account_password_input_settings *fetch_ds_type_bare_account_password_input_settings (struct paramed_type *T) {
+ return fetch_ds_constructor_account_password_input_settings (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_account_password_settings *fetch_ds_type_account_password_settings (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb7b72ab3: return fetch_ds_constructor_account_password_settings (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_account_password_settings *fetch_ds_type_bare_account_password_settings (struct paramed_type *T) {
+ return fetch_ds_constructor_account_password_settings (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_account_privacy_rules *fetch_ds_type_account_privacy_rules (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x554abb6f: return fetch_ds_constructor_account_privacy_rules (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_account_privacy_rules *fetch_ds_type_bare_account_privacy_rules (struct paramed_type *T) {
+ return fetch_ds_constructor_account_privacy_rules (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_account_sent_change_phone_code *fetch_ds_type_account_sent_change_phone_code (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa4f58c4c: return fetch_ds_constructor_account_sent_change_phone_code (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_account_sent_change_phone_code *fetch_ds_type_bare_account_sent_change_phone_code (struct paramed_type *T) {
+ return fetch_ds_constructor_account_sent_change_phone_code (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_auth_authorization *fetch_ds_type_auth_authorization (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xff036af1: return fetch_ds_constructor_auth_authorization (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_auth_authorization *fetch_ds_type_bare_auth_authorization (struct paramed_type *T) {
+ return fetch_ds_constructor_auth_authorization (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_auth_checked_phone *fetch_ds_type_auth_checked_phone (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x811ea28e: return fetch_ds_constructor_auth_checked_phone (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_auth_checked_phone *fetch_ds_type_bare_auth_checked_phone (struct paramed_type *T) {
+ return fetch_ds_constructor_auth_checked_phone (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_auth_exported_authorization *fetch_ds_type_auth_exported_authorization (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xdf969c2d: return fetch_ds_constructor_auth_exported_authorization (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_auth_exported_authorization *fetch_ds_type_bare_auth_exported_authorization (struct paramed_type *T) {
+ return fetch_ds_constructor_auth_exported_authorization (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_auth_password_recovery *fetch_ds_type_auth_password_recovery (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x137948a5: return fetch_ds_constructor_auth_password_recovery (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_auth_password_recovery *fetch_ds_type_bare_auth_password_recovery (struct paramed_type *T) {
+ return fetch_ds_constructor_auth_password_recovery (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_auth_sent_code *fetch_ds_type_auth_sent_code (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xefed51d9: return fetch_ds_constructor_auth_sent_code (T); break;
+ case 0xe325edcf: return fetch_ds_constructor_auth_sent_app_code (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_auth_sent_code *fetch_ds_type_bare_auth_sent_code (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_auth_sent_code (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_auth_sent_code (T); }
+ if (skip_constructor_auth_sent_app_code (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_auth_sent_app_code (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_binlog_encr_key *fetch_ds_type_binlog_encr_key (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x0377168f: return fetch_ds_constructor_binlog_encr_key (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_binlog_encr_key *fetch_ds_type_bare_binlog_encr_key (struct paramed_type *T) {
+ return fetch_ds_constructor_binlog_encr_key (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_binlog_update *fetch_ds_type_binlog_update (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x3b06de69: return fetch_ds_constructor_binlog_start (T); break;
+ case 0xf96feb32: return fetch_ds_constructor_binlog_dc_option (T); break;
+ case 0x7c0d22d8: return fetch_ds_constructor_binlog_dc_option_new (T); break;
+ case 0x71e8c156: return fetch_ds_constructor_binlog_auth_key (T); break;
+ case 0x9e83dbdc: return fetch_ds_constructor_binlog_default_dc (T); break;
+ case 0x26451bb5: return fetch_ds_constructor_binlog_dc_signed (T); break;
+ case 0x68a870e8: return fetch_ds_constructor_binlog_our_id (T); break;
+ case 0xeaeb7826: return fetch_ds_constructor_binlog_set_dh_params (T); break;
+ case 0x2ca8c939: return fetch_ds_constructor_binlog_set_pts (T); break;
+ case 0xd95738ac: return fetch_ds_constructor_binlog_set_qts (T); break;
+ case 0x1d0f4b52: return fetch_ds_constructor_binlog_set_date (T); break;
+ case 0x6eeb2989: return fetch_ds_constructor_binlog_set_seq (T); break;
+ case 0xee1b38e8: return fetch_ds_constructor_binlog_encr_chat_delete (T); break;
+ case 0x84977251: return fetch_ds_constructor_binlog_encr_chat_new (T); break;
+ case 0x9d49488d: return fetch_ds_constructor_binlog_encr_chat_exchange_new (T); break;
+ case 0xac55d447: return fetch_ds_constructor_binlog_user_delete (T); break;
+ case 0x127cf2f9: return fetch_ds_constructor_binlog_user_new (T); break;
+ case 0x0a10aa92: return fetch_ds_constructor_binlog_chat_new (T); break;
+ case 0x535475ea: return fetch_ds_constructor_binlog_chat_add_participant (T); break;
+ case 0x7dd1a1a2: return fetch_ds_constructor_binlog_chat_del_participant (T); break;
+ case 0x3c873416: return fetch_ds_constructor_binlog_set_msg_id (T); break;
+ case 0x847e77b1: return fetch_ds_constructor_binlog_message_delete (T); break;
+ case 0x427cfcdb: return fetch_ds_constructor_binlog_message_new (T); break;
+ case 0x6cf7cabc: return fetch_ds_constructor_binlog_message_encr_new (T); break;
+ case 0x6dd4d85f: return fetch_ds_constructor_binlog_msg_update (T); break;
+ case 0x83327955: return fetch_ds_constructor_binlog_reset_authorization (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_binlog_update *fetch_ds_type_bare_binlog_update (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_binlog_start (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_start (T); }
+ if (skip_constructor_binlog_dc_option (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_dc_option (T); }
+ if (skip_constructor_binlog_dc_option_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_dc_option_new (T); }
+ if (skip_constructor_binlog_auth_key (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_auth_key (T); }
+ if (skip_constructor_binlog_default_dc (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_default_dc (T); }
+ if (skip_constructor_binlog_dc_signed (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_dc_signed (T); }
+ if (skip_constructor_binlog_our_id (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_our_id (T); }
+ if (skip_constructor_binlog_set_dh_params (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_dh_params (T); }
+ if (skip_constructor_binlog_set_pts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_pts (T); }
+ if (skip_constructor_binlog_set_qts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_qts (T); }
+ if (skip_constructor_binlog_set_date (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_date (T); }
+ if (skip_constructor_binlog_set_seq (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_seq (T); }
+ if (skip_constructor_binlog_encr_chat_delete (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_encr_chat_delete (T); }
+ if (skip_constructor_binlog_encr_chat_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_encr_chat_new (T); }
+ if (skip_constructor_binlog_encr_chat_exchange_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_encr_chat_exchange_new (T); }
+ if (skip_constructor_binlog_user_delete (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_user_delete (T); }
+ if (skip_constructor_binlog_user_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_user_new (T); }
+ if (skip_constructor_binlog_chat_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_chat_new (T); }
+ if (skip_constructor_binlog_chat_add_participant (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_chat_add_participant (T); }
+ if (skip_constructor_binlog_chat_del_participant (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_chat_del_participant (T); }
+ if (skip_constructor_binlog_set_msg_id (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_msg_id (T); }
+ if (skip_constructor_binlog_message_delete (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_message_delete (T); }
+ if (skip_constructor_binlog_message_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_message_new (T); }
+ if (skip_constructor_binlog_message_encr_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_message_encr_new (T); }
+ if (skip_constructor_binlog_msg_update (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_msg_update (T); }
+ if (skip_constructor_binlog_reset_authorization (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_reset_authorization (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contacts_blocked *fetch_ds_type_contacts_blocked (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1c138d15: return fetch_ds_constructor_contacts_blocked (T); break;
+ case 0x900802a1: return fetch_ds_constructor_contacts_blocked_slice (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contacts_blocked *fetch_ds_type_bare_contacts_blocked (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_contacts_blocked (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contacts_blocked (T); }
+ if (skip_constructor_contacts_blocked_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contacts_blocked_slice (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contacts_contacts *fetch_ds_type_contacts_contacts (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb74ba9d2: return fetch_ds_constructor_contacts_contacts_not_modified (T); break;
+ case 0x6f8b8cb2: return fetch_ds_constructor_contacts_contacts (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contacts_contacts *fetch_ds_type_bare_contacts_contacts (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_contacts_contacts_not_modified (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contacts_contacts_not_modified (T); }
+ if (skip_constructor_contacts_contacts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contacts_contacts (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contacts_found *fetch_ds_type_contacts_found (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x0566000e: return fetch_ds_constructor_contacts_found (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contacts_found *fetch_ds_type_bare_contacts_found (struct paramed_type *T) {
+ return fetch_ds_constructor_contacts_found (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contacts_imported_contacts *fetch_ds_type_contacts_imported_contacts (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xad524315: return fetch_ds_constructor_contacts_imported_contacts (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contacts_imported_contacts *fetch_ds_type_bare_contacts_imported_contacts (struct paramed_type *T) {
+ return fetch_ds_constructor_contacts_imported_contacts (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contacts_link *fetch_ds_type_contacts_link (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x3ace484c: return fetch_ds_constructor_contacts_link (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contacts_link *fetch_ds_type_bare_contacts_link (struct paramed_type *T) {
+ return fetch_ds_constructor_contacts_link (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contacts_suggested *fetch_ds_type_contacts_suggested (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x5649dcc5: return fetch_ds_constructor_contacts_suggested (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contacts_suggested *fetch_ds_type_bare_contacts_suggested (struct paramed_type *T) {
+ return fetch_ds_constructor_contacts_suggested (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_geochats_located *fetch_ds_type_geochats_located (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x48feb267: return fetch_ds_constructor_geochats_located (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_geochats_located *fetch_ds_type_bare_geochats_located (struct paramed_type *T) {
+ return fetch_ds_constructor_geochats_located (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_geochats_messages *fetch_ds_type_geochats_messages (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xd1526db1: return fetch_ds_constructor_geochats_messages (T); break;
+ case 0xbc5863e8: return fetch_ds_constructor_geochats_messages_slice (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_geochats_messages *fetch_ds_type_bare_geochats_messages (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_geochats_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geochats_messages (T); }
+ if (skip_constructor_geochats_messages_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geochats_messages_slice (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_geochats_stated_message *fetch_ds_type_geochats_stated_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x17b1578b: return fetch_ds_constructor_geochats_stated_message (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_geochats_stated_message *fetch_ds_type_bare_geochats_stated_message (struct paramed_type *T) {
+ return fetch_ds_constructor_geochats_stated_message (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_help_app_update *fetch_ds_type_help_app_update (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x8987f311: return fetch_ds_constructor_help_app_update (T); break;
+ case 0xc45a6536: return fetch_ds_constructor_help_no_app_update (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_help_app_update *fetch_ds_type_bare_help_app_update (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_help_app_update (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_help_app_update (T); }
+ if (skip_constructor_help_no_app_update (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_help_no_app_update (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_help_invite_text *fetch_ds_type_help_invite_text (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x18cb9f78: return fetch_ds_constructor_help_invite_text (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_help_invite_text *fetch_ds_type_bare_help_invite_text (struct paramed_type *T) {
+ return fetch_ds_constructor_help_invite_text (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_help_support *fetch_ds_type_help_support (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x17c6b5f6: return fetch_ds_constructor_help_support (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_help_support *fetch_ds_type_bare_help_support (struct paramed_type *T) {
+ return fetch_ds_constructor_help_support (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_affected_history *fetch_ds_type_messages_affected_history (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb45c69d1: return fetch_ds_constructor_messages_affected_history (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_affected_history *fetch_ds_type_bare_messages_affected_history (struct paramed_type *T) {
+ return fetch_ds_constructor_messages_affected_history (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_affected_messages *fetch_ds_type_messages_affected_messages (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x84d19185: return fetch_ds_constructor_messages_affected_messages (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_affected_messages *fetch_ds_type_bare_messages_affected_messages (struct paramed_type *T) {
+ return fetch_ds_constructor_messages_affected_messages (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_all_stickers *fetch_ds_type_messages_all_stickers (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xe86602c3: return fetch_ds_constructor_messages_all_stickers_not_modified (T); break;
+ case 0x5ce352ec: return fetch_ds_constructor_messages_all_stickers (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_all_stickers *fetch_ds_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) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_all_stickers_not_modified (T); }
+ if (skip_constructor_messages_all_stickers (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_all_stickers (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_chat_full *fetch_ds_type_messages_chat_full (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xe5d7d19c: return fetch_ds_constructor_messages_chat_full (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_chat_full *fetch_ds_type_bare_messages_chat_full (struct paramed_type *T) {
+ return fetch_ds_constructor_messages_chat_full (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_chats *fetch_ds_type_messages_chats (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x64ff9fd5: return fetch_ds_constructor_messages_chats (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_chats *fetch_ds_type_bare_messages_chats (struct paramed_type *T) {
+ return fetch_ds_constructor_messages_chats (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_dh_config *fetch_ds_type_messages_dh_config (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc0e24635: return fetch_ds_constructor_messages_dh_config_not_modified (T); break;
+ case 0x2c221edd: return fetch_ds_constructor_messages_dh_config (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_dh_config *fetch_ds_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) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_dh_config_not_modified (T); }
+ if (skip_constructor_messages_dh_config (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_dh_config (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_dialogs *fetch_ds_type_messages_dialogs (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x15ba6c40: return fetch_ds_constructor_messages_dialogs (T); break;
+ case 0x71e094f3: return fetch_ds_constructor_messages_dialogs_slice (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_dialogs *fetch_ds_type_bare_messages_dialogs (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_messages_dialogs (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_dialogs (T); }
+ if (skip_constructor_messages_dialogs_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_dialogs_slice (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_message *fetch_ds_type_messages_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x3f4e0648: return fetch_ds_constructor_messages_message_empty (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_message *fetch_ds_type_bare_messages_message (struct paramed_type *T) {
+ return fetch_ds_constructor_messages_message_empty (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_messages *fetch_ds_type_messages_messages (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x8c718e87: return fetch_ds_constructor_messages_messages (T); break;
+ case 0x0b446ae3: return fetch_ds_constructor_messages_messages_slice (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_messages *fetch_ds_type_bare_messages_messages (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_messages_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_messages (T); }
+ if (skip_constructor_messages_messages_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_messages_slice (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_sent_encrypted_message *fetch_ds_type_messages_sent_encrypted_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x560f8935: return fetch_ds_constructor_messages_sent_encrypted_message (T); break;
+ case 0x9493ff32: return fetch_ds_constructor_messages_sent_encrypted_file (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_sent_encrypted_message *fetch_ds_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) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_sent_encrypted_message (T); }
+ if (skip_constructor_messages_sent_encrypted_file (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_sent_encrypted_file (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_sent_message *fetch_ds_type_messages_sent_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x4c3d47f3: return fetch_ds_constructor_messages_sent_message (T); break;
+ case 0x35a1a663: return fetch_ds_constructor_messages_sent_message_link (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_sent_message *fetch_ds_type_bare_messages_sent_message (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_messages_sent_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_sent_message (T); }
+ if (skip_constructor_messages_sent_message_link (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_sent_message_link (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_sticker_set *fetch_ds_type_messages_sticker_set (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb60a24a6: return fetch_ds_constructor_messages_sticker_set (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_sticker_set *fetch_ds_type_bare_messages_sticker_set (struct paramed_type *T) {
+ return fetch_ds_constructor_messages_sticker_set (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_stickers *fetch_ds_type_messages_stickers (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xf1749a22: return fetch_ds_constructor_messages_stickers_not_modified (T); break;
+ case 0x8a8ecd32: return fetch_ds_constructor_messages_stickers (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_stickers *fetch_ds_type_bare_messages_stickers (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_messages_stickers_not_modified (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_stickers_not_modified (T); }
+ if (skip_constructor_messages_stickers (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_stickers (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_photos_photo *fetch_ds_type_photos_photo (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x20212ca8: return fetch_ds_constructor_photos_photo (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_photos_photo *fetch_ds_type_bare_photos_photo (struct paramed_type *T) {
+ return fetch_ds_constructor_photos_photo (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_photos_photos *fetch_ds_type_photos_photos (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x8dca6aa5: return fetch_ds_constructor_photos_photos (T); break;
+ case 0x15051f54: return fetch_ds_constructor_photos_photos_slice (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_photos_photos *fetch_ds_type_bare_photos_photos (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_photos_photos (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photos_photos (T); }
+ if (skip_constructor_photos_photos_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photos_photos_slice (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_storage_file_type *fetch_ds_type_storage_file_type (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xaa963b05: return fetch_ds_constructor_storage_file_unknown (T); break;
+ case 0x007efe0e: return fetch_ds_constructor_storage_file_jpeg (T); break;
+ case 0xcae1aadf: return fetch_ds_constructor_storage_file_gif (T); break;
+ case 0x0a4f63c0: return fetch_ds_constructor_storage_file_png (T); break;
+ case 0xae1e508d: return fetch_ds_constructor_storage_file_pdf (T); break;
+ case 0x528a0677: return fetch_ds_constructor_storage_file_mp3 (T); break;
+ case 0x4b09ebbc: return fetch_ds_constructor_storage_file_mov (T); break;
+ case 0x40bc6f52: return fetch_ds_constructor_storage_file_partial (T); break;
+ case 0xb3cea0e4: return fetch_ds_constructor_storage_file_mp4 (T); break;
+ case 0x1081464c: return fetch_ds_constructor_storage_file_webp (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_storage_file_type *fetch_ds_type_bare_storage_file_type (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_storage_file_unknown (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_unknown (T); }
+ if (skip_constructor_storage_file_jpeg (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_jpeg (T); }
+ if (skip_constructor_storage_file_gif (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_gif (T); }
+ if (skip_constructor_storage_file_png (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_png (T); }
+ if (skip_constructor_storage_file_pdf (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_pdf (T); }
+ if (skip_constructor_storage_file_mp3 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_mp3 (T); }
+ if (skip_constructor_storage_file_mov (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_mov (T); }
+ if (skip_constructor_storage_file_partial (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_partial (T); }
+ if (skip_constructor_storage_file_mp4 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_mp4 (T); }
+ if (skip_constructor_storage_file_webp (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_webp (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_updates_difference *fetch_ds_type_updates_difference (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x5d75a138: return fetch_ds_constructor_updates_difference_empty (T); break;
+ case 0x00f49ca0: return fetch_ds_constructor_updates_difference (T); break;
+ case 0xa8fb1981: return fetch_ds_constructor_updates_difference_slice (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_updates_difference *fetch_ds_type_bare_updates_difference (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_updates_difference_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates_difference_empty (T); }
+ if (skip_constructor_updates_difference (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates_difference (T); }
+ if (skip_constructor_updates_difference_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates_difference_slice (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_updates_state *fetch_ds_type_updates_state (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa56c2a3e: return fetch_ds_constructor_updates_state (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_updates_state *fetch_ds_type_bare_updates_state (struct paramed_type *T) {
+ return fetch_ds_constructor_updates_state (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_upload_file *fetch_ds_type_upload_file (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x096a18d5: return fetch_ds_constructor_upload_file (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_upload_file *fetch_ds_type_bare_upload_file (struct paramed_type *T) {
+ return fetch_ds_constructor_upload_file (T);
+ assert (0);
+ return NULL;
+}
+void *fetch_ds_type_any (struct paramed_type *T) {
+ switch (T->type->name) {
+ case 0xb8d0afdf: return fetch_ds_type_account_days_t_t_l (T);
+ case 0x472f5020: return fetch_ds_type_bare_account_days_t_t_l (T);
+ case 0x9fc5ec4e: return fetch_ds_type_audio (T);
+ case 0x603a13b1: return fetch_ds_type_bare_audio (T);
+ case 0x7bf2e6f6: return fetch_ds_type_authorization (T);
+ case 0x840d1909: return fetch_ds_type_bare_authorization (T);
+ case 0x250be282: return fetch_ds_type_bool (T);
+ case 0xdaf41d7d: return fetch_ds_type_bare_bool (T);
+ case 0x75e7ea6c: return fetch_ds_type_bot_command (T);
+ case 0x8a181593: return fetch_ds_type_bare_bot_command (T);
+ case 0xb2e16f93: return fetch_ds_type_bot_info (T);
+ case 0x4d1e906c: return fetch_ds_type_bare_bot_info (T);
+ case 0x0ee1379f: return fetch_ds_type_bytes (T);
+ case 0xf11ec860: return fetch_ds_type_bare_bytes (T);
+ case 0x7bd865dc: return fetch_ds_type_chat (T);
+ case 0x84279a23: return fetch_ds_type_bare_chat (T);
+ case 0x2e02a614: return fetch_ds_type_chat_full (T);
+ case 0xd1fd59eb: return fetch_ds_type_bare_chat_full (T);
+ case 0x94f910b1: return fetch_ds_type_chat_invite (T);
+ case 0x6b06ef4e: return fetch_ds_type_bare_chat_invite (T);
+ case 0x3631cf4c: return fetch_ds_type_chat_located (T);
+ case 0xc9ce30b3: return fetch_ds_type_bare_chat_located (T);
+ case 0xc8d7493e: return fetch_ds_type_chat_participant (T);
+ case 0x3728b6c1: return fetch_ds_type_bare_chat_participant (T);
+ case 0x77930f9f: return fetch_ds_type_chat_participants (T);
+ case 0x886cf060: return fetch_ds_type_bare_chat_participants (T);
+ case 0x56922676: return fetch_ds_type_chat_photo (T);
+ case 0xa96dd989: return fetch_ds_type_bare_chat_photo (T);
+ case 0x6643b654: return fetch_ds_type_client_d_h_inner_data (T);
+ case 0x99bc49ab: return fetch_ds_type_bare_client_d_h_inner_data (T);
+ case 0x4e32b894: return fetch_ds_type_config (T);
+ case 0xb1cd476b: return fetch_ds_type_bare_config (T);
+ case 0xf911c994: return fetch_ds_type_contact (T);
+ case 0x06ee366b: return fetch_ds_type_bare_contact (T);
+ case 0x561bc879: return fetch_ds_type_contact_blocked (T);
+ case 0xa9e43786: return fetch_ds_type_bare_contact_blocked (T);
+ case 0xea879f95: return fetch_ds_type_contact_found (T);
+ case 0x1578606a: return fetch_ds_type_bare_contact_found (T);
+ case 0x522fbc63: return fetch_ds_type_contact_link (T);
+ case 0xadd0439c: return fetch_ds_type_bare_contact_link (T);
+ case 0xd3680c61: return fetch_ds_type_contact_status (T);
+ case 0x2c97f39e: return fetch_ds_type_bare_contact_status (T);
+ case 0x3de191a1: return fetch_ds_type_contact_suggested (T);
+ case 0xc21e6e5e: return fetch_ds_type_bare_contact_suggested (T);
+ case 0x2b1a62f0: return fetch_ds_type_dc_option (T);
+ case 0xd4e59d0f: return fetch_ds_type_bare_dc_option (T);
+ case 0x535b7918: return fetch_ds_type_decrypted_message (T);
+ case 0xaca486e7: return fetch_ds_type_bare_decrypted_message (T);
+ case 0x4e0eefde: return fetch_ds_type_decrypted_message_action (T);
+ case 0xb1f11021: return fetch_ds_type_bare_decrypted_message_action (T);
+ case 0x1be31789: return fetch_ds_type_decrypted_message_layer (T);
+ case 0xe41ce876: return fetch_ds_type_bare_decrypted_message_layer (T);
+ case 0x34e0d674: return fetch_ds_type_decrypted_message_media (T);
+ case 0xcb1f298b: return fetch_ds_type_bare_decrypted_message_media (T);
+ case 0xc1dd804a: return fetch_ds_type_dialog (T);
+ case 0x3e227fb5: return fetch_ds_type_bare_dialog (T);
+ case 0xae636f24: return fetch_ds_type_disabled_feature (T);
+ case 0x519c90db: return fetch_ds_type_bare_disabled_feature (T);
+ case 0x51a73418: return fetch_ds_type_document (T);
+ case 0xae58cbe7: return fetch_ds_type_bare_document (T);
+ case 0x97c637a3: return fetch_ds_type_document_attribute (T);
+ case 0x6839c85c: return fetch_ds_type_bare_document_attribute (T);
+ case 0x2210c154: return fetch_ds_type_double (T);
+ case 0xddef3eab: return fetch_ds_type_bare_double (T);
+ case 0xb1718213: return fetch_ds_type_encrypted_chat (T);
+ case 0x4e8e7dec: return fetch_ds_type_bare_encrypted_chat (T);
+ case 0x886fd032: return fetch_ds_type_encrypted_file (T);
+ case 0x77902fcd: return fetch_ds_type_bare_encrypted_file (T);
+ case 0xce6b8a1e: return fetch_ds_type_encrypted_message (T);
+ case 0x319475e1: return fetch_ds_type_bare_encrypted_message (T);
+ case 0xc4b9f9bb: return fetch_ds_type_error (T);
+ case 0x3b460644: return fetch_ds_type_bare_error (T);
+ case 0x95f132d5: return fetch_ds_type_exported_chat_invite (T);
+ case 0x6a0ecd2a: return fetch_ds_type_bare_exported_chat_invite (T);
+ case 0x2f8ffb30: return fetch_ds_type_file_location (T);
+ case 0xd07004cf: return fetch_ds_type_bare_file_location (T);
+ case 0xf67b4034: return fetch_ds_type_geo_chat_message (T);
+ case 0x0984bfcb: return fetch_ds_type_bare_geo_chat_message (T);
+ case 0x315e0a53: return fetch_ds_type_geo_point (T);
+ case 0xcea1f5ac: return fetch_ds_type_bare_geo_point (T);
+ case 0xd0028438: return fetch_ds_type_imported_contact (T);
+ case 0x2ffd7bc7: return fetch_ds_type_bare_imported_contact (T);
+ case 0x770656a8: return fetch_ds_type_input_app_event (T);
+ case 0x88f9a957: return fetch_ds_type_bare_input_app_event (T);
+ case 0xae8e9c7b: return fetch_ds_type_input_audio (T);
+ case 0x51716384: return fetch_ds_type_bare_input_audio (T);
+ case 0x3a60776d: return fetch_ds_type_input_chat_photo (T);
+ case 0xc59f8892: return fetch_ds_type_bare_input_chat_photo (T);
+ case 0xf392b7f4: return fetch_ds_type_input_contact (T);
+ case 0x0c6d480b: return fetch_ds_type_bare_input_contact (T);
+ case 0x6a8963fc: return fetch_ds_type_input_document (T);
+ case 0x95769c03: return fetch_ds_type_bare_input_document (T);
+ case 0xf141b5e1: return fetch_ds_type_input_encrypted_chat (T);
+ case 0x0ebe4a1e: return fetch_ds_type_bare_input_encrypted_chat (T);
+ case 0x0b5c064f: return fetch_ds_type_input_encrypted_file (T);
+ case 0xf4a3f9b0: return fetch_ds_type_bare_input_encrypted_file (T);
+ case 0x0f60f9ca: return fetch_ds_type_input_file (T);
+ case 0xf09f0635: return fetch_ds_type_bare_input_file (T);
+ case 0xe6daa38b: return fetch_ds_type_input_file_location (T);
+ case 0x19255c74: return fetch_ds_type_bare_input_file_location (T);
+ case 0x74d456fa: return fetch_ds_type_input_geo_chat (T);
+ case 0x8b2ba905: return fetch_ds_type_bare_input_geo_chat (T);
+ case 0x17768f1f: return fetch_ds_type_input_geo_point (T);
+ case 0xe88970e0: return fetch_ds_type_bare_input_geo_point (T);
+ case 0xb32c91dd: return fetch_ds_type_input_media (T);
+ case 0x4cd36e22: return fetch_ds_type_bare_input_media (T);
+ case 0x02b6911b: return fetch_ds_type_input_notify_peer (T);
+ case 0xfd496ee4: return fetch_ds_type_bare_input_notify_peer (T);
+ case 0x9e67268d: return fetch_ds_type_input_peer (T);
+ case 0x6198d972: return fetch_ds_type_bare_input_peer (T);
+ case 0x185a48ac: return fetch_ds_type_input_peer_notify_events (T);
+ case 0xe7a5b753: return fetch_ds_type_bare_input_peer_notify_events (T);
+ case 0x46a2ce98: return fetch_ds_type_input_peer_notify_settings (T);
+ case 0xb95d3167: return fetch_ds_type_bare_input_peer_notify_settings (T);
+ case 0xe74279c9: return fetch_ds_type_input_photo (T);
+ case 0x18bd8636: return fetch_ds_type_bare_input_photo (T);
+ case 0x7477e321: return fetch_ds_type_input_photo_crop (T);
+ case 0x8b881cde: return fetch_ds_type_bare_input_photo_crop (T);
+ case 0x4f96cb18: return fetch_ds_type_input_privacy_key (T);
+ case 0xb06934e7: return fetch_ds_type_bare_input_privacy_key (T);
+ case 0x4b815163: return fetch_ds_type_input_privacy_rule (T);
+ case 0xb47eae9c: return fetch_ds_type_bare_input_privacy_rule (T);
+ case 0xe44d415c: return fetch_ds_type_input_sticker_set (T);
+ case 0x1bb2bea3: return fetch_ds_type_bare_input_sticker_set (T);
+ case 0xadfe0c6a: return fetch_ds_type_input_user (T);
+ case 0x5201f395: return fetch_ds_type_bare_input_user (T);
+ case 0xbb5f7a27: return fetch_ds_type_input_video (T);
+ case 0x44a085d8: return fetch_ds_type_bare_input_video (T);
+ case 0xa8509bda: return fetch_ds_type_int (T);
+ case 0x57af6425: return fetch_ds_type_bare_int (T);
+ case 0x7d36c439: return fetch_ds_type_int128 (T);
+ case 0x82c93bc6: return fetch_ds_type_bare_int128 (T);
+ case 0xf2c798b3: return fetch_ds_type_int256 (T);
+ case 0x0d38674c: return fetch_ds_type_bare_int256 (T);
+ case 0xa2fa4880: return fetch_ds_type_keyboard_button (T);
+ case 0x5d05b77f: return fetch_ds_type_bare_keyboard_button (T);
+ case 0x77608b83: return fetch_ds_type_keyboard_button_row (T);
+ case 0x889f747c: return fetch_ds_type_bare_keyboard_button_row (T);
+ case 0x22076cba: return fetch_ds_type_long (T);
+ case 0xddf89345: return fetch_ds_type_bare_long (T);
+ case 0x5d652a7f: return fetch_ds_type_message (T);
+ case 0xa29ad580: return fetch_ds_type_bare_message (T);
+ case 0x383415fa: return fetch_ds_type_message_action (T);
+ case 0xc7cbea05: return fetch_ds_type_bare_message_action (T);
+ case 0x95f2471a: return fetch_ds_type_message_media (T);
+ case 0x6a0db8e5: return fetch_ds_type_bare_message_media (T);
+ case 0x80895ae0: return fetch_ds_type_messages_filter (T);
+ case 0x7f76a51f: return fetch_ds_type_bare_messages_filter (T);
+ case 0x8e1a1775: return fetch_ds_type_nearest_dc (T);
+ case 0x71e5e88a: return fetch_ds_type_bare_nearest_dc (T);
+ case 0x9fcb8237: return fetch_ds_type_notify_peer (T);
+ case 0x60347dc8: return fetch_ds_type_bare_notify_peer (T);
+ case 0x56730bcc: return fetch_ds_type_null (T);
+ case 0xa98cf433: return fetch_ds_type_bare_null (T);
+ case 0xbfa3de38: return fetch_ds_type_p_q_inner_data (T);
+ case 0x405c21c7: return fetch_ds_type_bare_p_q_inner_data (T);
+ case 0x276159d6: return fetch_ds_type_peer (T);
+ case 0xd89ea629: return fetch_ds_type_bare_peer (T);
+ case 0xc0c8d13b: return fetch_ds_type_peer_notify_events (T);
+ case 0x3f372ec4: return fetch_ds_type_bare_peer_notify_events (T);
+ case 0xfdf894fc: return fetch_ds_type_peer_notify_settings (T);
+ case 0x02076b03: return fetch_ds_type_bare_peer_notify_settings (T);
+ case 0xc207550a: return fetch_ds_type_photo (T);
+ case 0x3df8aaf5: return fetch_ds_type_bare_photo (T);
+ case 0x900f60dd: return fetch_ds_type_photo_size (T);
+ case 0x6ff09f22: return fetch_ds_type_bare_photo_size (T);
+ case 0xbc2eab30: return fetch_ds_type_privacy_key (T);
+ case 0x43d154cf: return fetch_ds_type_bare_privacy_key (T);
+ case 0xa8638aec: return fetch_ds_type_privacy_rule (T);
+ case 0x579c7513: return fetch_ds_type_bare_privacy_rule (T);
+ case 0xa384b779: return fetch_ds_type_received_notify_message (T);
+ case 0x5c7b4886: return fetch_ds_type_bare_received_notify_message (T);
+ case 0x612ca4a9: return fetch_ds_type_reply_markup (T);
+ case 0x9ed35b56: return fetch_ds_type_bare_reply_markup (T);
+ case 0x05162463: return fetch_ds_type_res_p_q (T);
+ case 0xfae9db9c: return fetch_ds_type_bare_res_p_q (T);
+ case 0x70541c7e: return fetch_ds_type_send_message_action (T);
+ case 0x8fabe381: return fetch_ds_type_bare_send_message_action (T);
+ case 0xa9230301: return fetch_ds_type_server_d_h_params (T);
+ case 0x56dcfcfe: return fetch_ds_type_bare_server_d_h_params (T);
+ case 0xb5890dba: return fetch_ds_type_server_d_h_inner_data (T);
+ case 0x4a76f245: return fetch_ds_type_bare_server_d_h_inner_data (T);
+ case 0xdb8a468f: return fetch_ds_type_set_client_d_h_params_answer (T);
+ case 0x2475b970: return fetch_ds_type_bare_set_client_d_h_params_answer (T);
+ case 0x12b299d4: return fetch_ds_type_sticker_pack (T);
+ case 0xed4d662b: return fetch_ds_type_bare_sticker_pack (T);
+ case 0xa7a43b17: return fetch_ds_type_sticker_set (T);
+ case 0x585bc4e8: return fetch_ds_type_bare_sticker_set (T);
+ case 0xb5286e24: return fetch_ds_type_string (T);
+ case 0x4ad791db: return fetch_ds_type_bare_string (T);
+ case 0x2e02b27e: return fetch_ds_type_update (T);
+ case 0xd1fd4d81: return fetch_ds_type_bare_update (T);
+ case 0x22499d27: return fetch_ds_type_updates (T);
+ case 0xddb662d8: return fetch_ds_type_bare_updates (T);
+ case 0x02e6c0c8: return fetch_ds_type_user (T);
+ case 0xfd193f37: return fetch_ds_type_bare_user (T);
+ case 0x5a89ac5b: return fetch_ds_type_user_full (T);
+ case 0xa57653a4: return fetch_ds_type_bare_user_full (T);
+ case 0x9a486229: return fetch_ds_type_user_profile_photo (T);
+ case 0x65b79dd6: return fetch_ds_type_bare_user_profile_photo (T);
+ case 0x76de9570: return fetch_ds_type_user_status (T);
+ case 0x89216a8f: return fetch_ds_type_bare_user_status (T);
+ case 0x1cb5c415: return fetch_ds_type_vector (T);
+ case 0xe34a3bea: return fetch_ds_type_bare_vector (T);
+ case 0x1716b174: return fetch_ds_type_video (T);
+ case 0xe8e94e8b: return fetch_ds_type_bare_video (T);
+ case 0xafa14973: return fetch_ds_type_wall_paper (T);
+ case 0x505eb68c: return fetch_ds_type_bare_wall_paper (T);
+ case 0x8d8c0d41: return fetch_ds_type_web_page (T);
+ case 0x7273f2be: return fetch_ds_type_bare_web_page (T);
+ case 0x1250abde: return fetch_ds_type_account_authorizations (T);
+ case 0xedaf5421: return fetch_ds_type_bare_account_authorizations (T);
+ case 0xeac2a804: return fetch_ds_type_account_password (T);
+ case 0x153d57fb: return fetch_ds_type_bare_account_password (T);
+ case 0xbcfc532c: return fetch_ds_type_account_password_input_settings (T);
+ case 0x4303acd3: return fetch_ds_type_bare_account_password_input_settings (T);
+ case 0xb7b72ab3: return fetch_ds_type_account_password_settings (T);
+ case 0x4848d54c: return fetch_ds_type_bare_account_password_settings (T);
+ case 0x554abb6f: return fetch_ds_type_account_privacy_rules (T);
+ case 0xaab54490: return fetch_ds_type_bare_account_privacy_rules (T);
+ case 0xa4f58c4c: return fetch_ds_type_account_sent_change_phone_code (T);
+ case 0x5b0a73b3: return fetch_ds_type_bare_account_sent_change_phone_code (T);
+ case 0xff036af1: return fetch_ds_type_auth_authorization (T);
+ case 0x00fc950e: return fetch_ds_type_bare_auth_authorization (T);
+ case 0x811ea28e: return fetch_ds_type_auth_checked_phone (T);
+ case 0x7ee15d71: return fetch_ds_type_bare_auth_checked_phone (T);
+ case 0xdf969c2d: return fetch_ds_type_auth_exported_authorization (T);
+ case 0x206963d2: return fetch_ds_type_bare_auth_exported_authorization (T);
+ case 0x137948a5: return fetch_ds_type_auth_password_recovery (T);
+ case 0xec86b75a: return fetch_ds_type_bare_auth_password_recovery (T);
+ case 0x0cc8bc16: return fetch_ds_type_auth_sent_code (T);
+ case 0xf33743e9: return fetch_ds_type_bare_auth_sent_code (T);
+ case 0x0377168f: return fetch_ds_type_binlog_encr_key (T);
+ case 0xfc88e970: return fetch_ds_type_bare_binlog_encr_key (T);
+ case 0x66ff03a6: return fetch_ds_type_binlog_update (T);
+ case 0x9900fc59: return fetch_ds_type_bare_binlog_update (T);
+ case 0x8c1b8fb4: return fetch_ds_type_contacts_blocked (T);
+ case 0x73e4704b: return fetch_ds_type_bare_contacts_blocked (T);
+ case 0xd8c02560: return fetch_ds_type_contacts_contacts (T);
+ case 0x273fda9f: return fetch_ds_type_bare_contacts_contacts (T);
+ case 0x0566000e: return fetch_ds_type_contacts_found (T);
+ case 0xfa99fff1: return fetch_ds_type_bare_contacts_found (T);
+ case 0xad524315: return fetch_ds_type_contacts_imported_contacts (T);
+ case 0x52adbcea: return fetch_ds_type_bare_contacts_imported_contacts (T);
+ case 0x3ace484c: return fetch_ds_type_contacts_link (T);
+ case 0xc531b7b3: return fetch_ds_type_bare_contacts_link (T);
+ case 0x5649dcc5: return fetch_ds_type_contacts_suggested (T);
+ case 0xa9b6233a: return fetch_ds_type_bare_contacts_suggested (T);
+ case 0x48feb267: return fetch_ds_type_geochats_located (T);
+ case 0xb7014d98: return fetch_ds_type_bare_geochats_located (T);
+ case 0x6d0a0e59: return fetch_ds_type_geochats_messages (T);
+ case 0x92f5f1a6: return fetch_ds_type_bare_geochats_messages (T);
+ case 0x17b1578b: return fetch_ds_type_geochats_stated_message (T);
+ case 0xe84ea874: return fetch_ds_type_bare_geochats_stated_message (T);
+ case 0x4ddd9627: return fetch_ds_type_help_app_update (T);
+ case 0xb22269d8: return fetch_ds_type_bare_help_app_update (T);
+ case 0x18cb9f78: return fetch_ds_type_help_invite_text (T);
+ case 0xe7346087: return fetch_ds_type_bare_help_invite_text (T);
+ case 0x17c6b5f6: return fetch_ds_type_help_support (T);
+ case 0xe8394a09: return fetch_ds_type_bare_help_support (T);
+ case 0xb45c69d1: return fetch_ds_type_messages_affected_history (T);
+ case 0x4ba3962e: return fetch_ds_type_bare_messages_affected_history (T);
+ case 0x84d19185: return fetch_ds_type_messages_affected_messages (T);
+ case 0x7b2e6e7a: return fetch_ds_type_bare_messages_affected_messages (T);
+ case 0xb485502f: return fetch_ds_type_messages_all_stickers (T);
+ case 0x4b7aafd0: return fetch_ds_type_bare_messages_all_stickers (T);
+ case 0xe5d7d19c: return fetch_ds_type_messages_chat_full (T);
+ case 0x1a282e63: return fetch_ds_type_bare_messages_chat_full (T);
+ case 0x64ff9fd5: return fetch_ds_type_messages_chats (T);
+ case 0x9b00602a: return fetch_ds_type_bare_messages_chats (T);
+ case 0xecc058e8: return fetch_ds_type_messages_dh_config (T);
+ case 0x133fa717: return fetch_ds_type_bare_messages_dh_config (T);
+ case 0x645af8b3: return fetch_ds_type_messages_dialogs (T);
+ case 0x9ba5074c: return fetch_ds_type_bare_messages_dialogs (T);
+ case 0x3f4e0648: return fetch_ds_type_messages_message (T);
+ case 0xc0b1f9b7: return fetch_ds_type_bare_messages_message (T);
+ case 0x8735e464: return fetch_ds_type_messages_messages (T);
+ case 0x78ca1b9b: return fetch_ds_type_bare_messages_messages (T);
+ case 0xc29c7607: return fetch_ds_type_messages_sent_encrypted_message (T);
+ case 0x3d6389f8: return fetch_ds_type_bare_messages_sent_encrypted_message (T);
+ case 0x799ce190: return fetch_ds_type_messages_sent_message (T);
+ case 0x86631e6f: return fetch_ds_type_bare_messages_sent_message (T);
+ case 0xb60a24a6: return fetch_ds_type_messages_sticker_set (T);
+ case 0x49f5db59: return fetch_ds_type_bare_messages_sticker_set (T);
+ case 0x7bfa5710: return fetch_ds_type_messages_stickers (T);
+ case 0x8405a8ef: return fetch_ds_type_bare_messages_stickers (T);
+ case 0x20212ca8: return fetch_ds_type_photos_photo (T);
+ case 0xdfded357: return fetch_ds_type_bare_photos_photo (T);
+ case 0x98cf75f1: return fetch_ds_type_photos_photos (T);
+ case 0x67308a0e: return fetch_ds_type_bare_photos_photos (T);
+ case 0x3e2838a8: return fetch_ds_type_storage_file_type (T);
+ case 0xc1d7c757: return fetch_ds_type_bare_storage_file_type (T);
+ case 0xf57a2419: return fetch_ds_type_updates_difference (T);
+ case 0x0a85dbe6: return fetch_ds_type_bare_updates_difference (T);
+ case 0xa56c2a3e: return fetch_ds_type_updates_state (T);
+ case 0x5a93d5c1: return fetch_ds_type_bare_updates_state (T);
+ case 0x096a18d5: return fetch_ds_type_upload_file (T);
+ case 0xf695e72a: return fetch_ds_type_bare_upload_file (T);
+ default: return NULL; }
+}
diff --git a/libs/tgl/src/auto/auto-fetch-ds.h b/libs/tgl/src/auto/auto-fetch-ds.h
new file mode 100644
index 0000000000..6c39473b14
--- /dev/null
+++ b/libs/tgl/src/auto/auto-fetch-ds.h
@@ -0,0 +1,716 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#else
+#include "auto.h"
+#endif
+#include <assert.h>
+#include <stdio.h>
+struct tgl_state;
+struct tl_ds_account_days_t_t_l *fetch_ds_constructor_account_days_t_t_l (struct paramed_type *T);
+struct tl_ds_audio *fetch_ds_constructor_audio_empty (struct paramed_type *T);
+struct tl_ds_audio *fetch_ds_constructor_audio (struct paramed_type *T);
+struct tl_ds_authorization *fetch_ds_constructor_authorization (struct paramed_type *T);
+struct tl_ds_bool *fetch_ds_constructor_bool_false (struct paramed_type *T);
+struct tl_ds_bool *fetch_ds_constructor_bool_true (struct paramed_type *T);
+struct tl_ds_bot_command *fetch_ds_constructor_bot_command (struct paramed_type *T);
+struct tl_ds_bot_command *fetch_ds_constructor_bot_command_old (struct paramed_type *T);
+struct tl_ds_bot_info *fetch_ds_constructor_bot_info_empty (struct paramed_type *T);
+struct tl_ds_bot_info *fetch_ds_constructor_bot_info (struct paramed_type *T);
+struct tl_ds_string *fetch_ds_constructor_bytes (struct paramed_type *T);
+struct tl_ds_chat *fetch_ds_constructor_chat_empty (struct paramed_type *T);
+struct tl_ds_chat *fetch_ds_constructor_chat (struct paramed_type *T);
+struct tl_ds_chat *fetch_ds_constructor_chat_forbidden (struct paramed_type *T);
+struct tl_ds_chat *fetch_ds_constructor_geo_chat (struct paramed_type *T);
+struct tl_ds_chat_full *fetch_ds_constructor_chat_full (struct paramed_type *T);
+struct tl_ds_chat_invite *fetch_ds_constructor_chat_invite_already (struct paramed_type *T);
+struct tl_ds_chat_invite *fetch_ds_constructor_chat_invite (struct paramed_type *T);
+struct tl_ds_chat_located *fetch_ds_constructor_chat_located (struct paramed_type *T);
+struct tl_ds_chat_participant *fetch_ds_constructor_chat_participant (struct paramed_type *T);
+struct tl_ds_chat_participants *fetch_ds_constructor_chat_participants_forbidden (struct paramed_type *T);
+struct tl_ds_chat_participants *fetch_ds_constructor_chat_participants (struct paramed_type *T);
+struct tl_ds_chat_photo *fetch_ds_constructor_chat_photo_empty (struct paramed_type *T);
+struct tl_ds_chat_photo *fetch_ds_constructor_chat_photo (struct paramed_type *T);
+struct tl_ds_client_d_h_inner_data *fetch_ds_constructor_client_d_h_inner_data (struct paramed_type *T);
+struct tl_ds_config *fetch_ds_constructor_config (struct paramed_type *T);
+struct tl_ds_contact *fetch_ds_constructor_contact (struct paramed_type *T);
+struct tl_ds_contact_blocked *fetch_ds_constructor_contact_blocked (struct paramed_type *T);
+struct tl_ds_contact_found *fetch_ds_constructor_contact_found (struct paramed_type *T);
+struct tl_ds_contact_link *fetch_ds_constructor_contact_link_unknown (struct paramed_type *T);
+struct tl_ds_contact_link *fetch_ds_constructor_contact_link_none (struct paramed_type *T);
+struct tl_ds_contact_link *fetch_ds_constructor_contact_link_has_phone (struct paramed_type *T);
+struct tl_ds_contact_link *fetch_ds_constructor_contact_link_contact (struct paramed_type *T);
+struct tl_ds_contact_status *fetch_ds_constructor_contact_status (struct paramed_type *T);
+struct tl_ds_contact_suggested *fetch_ds_constructor_contact_suggested (struct paramed_type *T);
+struct tl_ds_dc_option *fetch_ds_constructor_dc_option_l28 (struct paramed_type *T);
+struct tl_ds_dc_option *fetch_ds_constructor_dc_option (struct paramed_type *T);
+struct tl_ds_decrypted_message *fetch_ds_constructor_decrypted_message (struct paramed_type *T);
+struct tl_ds_decrypted_message *fetch_ds_constructor_decrypted_message_service (struct paramed_type *T);
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T);
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_read_messages (struct paramed_type *T);
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_delete_messages (struct paramed_type *T);
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T);
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_flush_history (struct paramed_type *T);
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_resend (struct paramed_type *T);
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_notify_layer (struct paramed_type *T);
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_typing (struct paramed_type *T);
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_request_key (struct paramed_type *T);
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_accept_key (struct paramed_type *T);
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_abort_key (struct paramed_type *T);
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_commit_key (struct paramed_type *T);
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_noop (struct paramed_type *T);
+struct tl_ds_decrypted_message_layer *fetch_ds_constructor_decrypted_message_layer (struct paramed_type *T);
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_empty (struct paramed_type *T);
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_photo (struct paramed_type *T);
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_geo_point (struct paramed_type *T);
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_contact (struct paramed_type *T);
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_document (struct paramed_type *T);
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_video (struct paramed_type *T);
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_audio (struct paramed_type *T);
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_external_document (struct paramed_type *T);
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_video_l12 (struct paramed_type *T);
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T);
+struct tl_ds_dialog *fetch_ds_constructor_dialog (struct paramed_type *T);
+struct tl_ds_disabled_feature *fetch_ds_constructor_disabled_feature (struct paramed_type *T);
+struct tl_ds_document *fetch_ds_constructor_document_empty (struct paramed_type *T);
+struct tl_ds_document *fetch_ds_constructor_document (struct paramed_type *T);
+struct tl_ds_document *fetch_ds_constructor_document_l19 (struct paramed_type *T);
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_image_size (struct paramed_type *T);
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_animated (struct paramed_type *T);
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_sticker_l28 (struct paramed_type *T);
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_sticker (struct paramed_type *T);
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_video (struct paramed_type *T);
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_audio (struct paramed_type *T);
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_filename (struct paramed_type *T);
+double *fetch_ds_constructor_double (struct paramed_type *T);
+struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_empty (struct paramed_type *T);
+struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_waiting (struct paramed_type *T);
+struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_requested (struct paramed_type *T);
+struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat (struct paramed_type *T);
+struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_discarded (struct paramed_type *T);
+struct tl_ds_encrypted_file *fetch_ds_constructor_encrypted_file_empty (struct paramed_type *T);
+struct tl_ds_encrypted_file *fetch_ds_constructor_encrypted_file (struct paramed_type *T);
+struct tl_ds_encrypted_message *fetch_ds_constructor_encrypted_message (struct paramed_type *T);
+struct tl_ds_encrypted_message *fetch_ds_constructor_encrypted_message_service (struct paramed_type *T);
+struct tl_ds_error *fetch_ds_constructor_error (struct paramed_type *T);
+struct tl_ds_exported_chat_invite *fetch_ds_constructor_chat_invite_empty (struct paramed_type *T);
+struct tl_ds_exported_chat_invite *fetch_ds_constructor_chat_invite_exported (struct paramed_type *T);
+struct tl_ds_file_location *fetch_ds_constructor_file_location_unavailable (struct paramed_type *T);
+struct tl_ds_file_location *fetch_ds_constructor_file_location (struct paramed_type *T);
+struct tl_ds_geo_chat_message *fetch_ds_constructor_geo_chat_message_empty (struct paramed_type *T);
+struct tl_ds_geo_chat_message *fetch_ds_constructor_geo_chat_message (struct paramed_type *T);
+struct tl_ds_geo_chat_message *fetch_ds_constructor_geo_chat_message_service (struct paramed_type *T);
+struct tl_ds_geo_point *fetch_ds_constructor_geo_point_empty (struct paramed_type *T);
+struct tl_ds_geo_point *fetch_ds_constructor_geo_point (struct paramed_type *T);
+struct tl_ds_imported_contact *fetch_ds_constructor_imported_contact (struct paramed_type *T);
+struct tl_ds_input_app_event *fetch_ds_constructor_input_app_event (struct paramed_type *T);
+struct tl_ds_input_audio *fetch_ds_constructor_input_audio_empty (struct paramed_type *T);
+struct tl_ds_input_audio *fetch_ds_constructor_input_audio (struct paramed_type *T);
+struct tl_ds_input_chat_photo *fetch_ds_constructor_input_chat_photo_empty (struct paramed_type *T);
+struct tl_ds_input_chat_photo *fetch_ds_constructor_input_chat_uploaded_photo (struct paramed_type *T);
+struct tl_ds_input_chat_photo *fetch_ds_constructor_input_chat_photo (struct paramed_type *T);
+struct tl_ds_input_contact *fetch_ds_constructor_input_phone_contact (struct paramed_type *T);
+struct tl_ds_input_document *fetch_ds_constructor_input_document_empty (struct paramed_type *T);
+struct tl_ds_input_document *fetch_ds_constructor_input_document (struct paramed_type *T);
+struct tl_ds_input_encrypted_chat *fetch_ds_constructor_input_encrypted_chat (struct paramed_type *T);
+struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file_empty (struct paramed_type *T);
+struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file_uploaded (struct paramed_type *T);
+struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file (struct paramed_type *T);
+struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T);
+struct tl_ds_input_file *fetch_ds_constructor_input_file (struct paramed_type *T);
+struct tl_ds_input_file *fetch_ds_constructor_input_file_big (struct paramed_type *T);
+struct tl_ds_input_file_location *fetch_ds_constructor_input_file_location (struct paramed_type *T);
+struct tl_ds_input_file_location *fetch_ds_constructor_input_video_file_location (struct paramed_type *T);
+struct tl_ds_input_file_location *fetch_ds_constructor_input_encrypted_file_location (struct paramed_type *T);
+struct tl_ds_input_file_location *fetch_ds_constructor_input_audio_file_location (struct paramed_type *T);
+struct tl_ds_input_file_location *fetch_ds_constructor_input_document_file_location (struct paramed_type *T);
+struct tl_ds_input_geo_chat *fetch_ds_constructor_input_geo_chat (struct paramed_type *T);
+struct tl_ds_input_geo_point *fetch_ds_constructor_input_geo_point_empty (struct paramed_type *T);
+struct tl_ds_input_geo_point *fetch_ds_constructor_input_geo_point (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_constructor_input_media_empty (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_photo (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_constructor_input_media_photo (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_constructor_input_media_geo_point (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_constructor_input_media_contact (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_video (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_thumb_video (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_constructor_input_media_video (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_audio (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_constructor_input_media_audio (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_document (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_thumb_document (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_constructor_input_media_document (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_constructor_input_media_venue (struct paramed_type *T);
+struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_peer (struct paramed_type *T);
+struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_users (struct paramed_type *T);
+struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_chats (struct paramed_type *T);
+struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_all (struct paramed_type *T);
+struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_geo_chat_peer (struct paramed_type *T);
+struct tl_ds_input_peer *fetch_ds_constructor_input_peer_empty (struct paramed_type *T);
+struct tl_ds_input_peer *fetch_ds_constructor_input_peer_self (struct paramed_type *T);
+struct tl_ds_input_peer *fetch_ds_constructor_input_peer_contact (struct paramed_type *T);
+struct tl_ds_input_peer *fetch_ds_constructor_input_peer_foreign (struct paramed_type *T);
+struct tl_ds_input_peer *fetch_ds_constructor_input_peer_chat (struct paramed_type *T);
+struct tl_ds_input_peer_notify_events *fetch_ds_constructor_input_peer_notify_events_empty (struct paramed_type *T);
+struct tl_ds_input_peer_notify_events *fetch_ds_constructor_input_peer_notify_events_all (struct paramed_type *T);
+struct tl_ds_input_peer_notify_settings *fetch_ds_constructor_input_peer_notify_settings (struct paramed_type *T);
+struct tl_ds_input_photo *fetch_ds_constructor_input_photo_empty (struct paramed_type *T);
+struct tl_ds_input_photo *fetch_ds_constructor_input_photo (struct paramed_type *T);
+struct tl_ds_input_photo_crop *fetch_ds_constructor_input_photo_crop_auto (struct paramed_type *T);
+struct tl_ds_input_photo_crop *fetch_ds_constructor_input_photo_crop (struct paramed_type *T);
+struct tl_ds_input_privacy_key *fetch_ds_constructor_input_privacy_key_status_timestamp (struct paramed_type *T);
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_allow_contacts (struct paramed_type *T);
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_allow_all (struct paramed_type *T);
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_allow_users (struct paramed_type *T);
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T);
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_disallow_all (struct paramed_type *T);
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_disallow_users (struct paramed_type *T);
+struct tl_ds_input_sticker_set *fetch_ds_constructor_input_sticker_set_empty (struct paramed_type *T);
+struct tl_ds_input_sticker_set *fetch_ds_constructor_input_sticker_set_i_d (struct paramed_type *T);
+struct tl_ds_input_sticker_set *fetch_ds_constructor_input_sticker_set_short_name (struct paramed_type *T);
+struct tl_ds_input_user *fetch_ds_constructor_input_user_empty (struct paramed_type *T);
+struct tl_ds_input_user *fetch_ds_constructor_input_user_self (struct paramed_type *T);
+struct tl_ds_input_user *fetch_ds_constructor_input_user_contact (struct paramed_type *T);
+struct tl_ds_input_user *fetch_ds_constructor_input_user_foreign (struct paramed_type *T);
+struct tl_ds_input_video *fetch_ds_constructor_input_video_empty (struct paramed_type *T);
+struct tl_ds_input_video *fetch_ds_constructor_input_video (struct paramed_type *T);
+int *fetch_ds_constructor_int (struct paramed_type *T);
+struct tl_ds_int128 *fetch_ds_constructor_int128 (struct paramed_type *T);
+struct tl_ds_int256 *fetch_ds_constructor_int256 (struct paramed_type *T);
+struct tl_ds_keyboard_button *fetch_ds_constructor_keyboard_button (struct paramed_type *T);
+struct tl_ds_keyboard_button_row *fetch_ds_constructor_keyboard_button_row (struct paramed_type *T);
+long long *fetch_ds_constructor_long (struct paramed_type *T);
+struct tl_ds_message *fetch_ds_constructor_message_empty (struct paramed_type *T);
+struct tl_ds_message *fetch_ds_constructor_message (struct paramed_type *T);
+struct tl_ds_message *fetch_ds_constructor_message_service (struct paramed_type *T);
+struct tl_ds_message_action *fetch_ds_constructor_message_action_empty (struct paramed_type *T);
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_create (struct paramed_type *T);
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_edit_title (struct paramed_type *T);
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_edit_photo (struct paramed_type *T);
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_delete_photo (struct paramed_type *T);
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_add_user (struct paramed_type *T);
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_delete_user (struct paramed_type *T);
+struct tl_ds_message_action *fetch_ds_constructor_message_action_geo_chat_create (struct paramed_type *T);
+struct tl_ds_message_action *fetch_ds_constructor_message_action_geo_chat_checkin (struct paramed_type *T);
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_joined_by_link (struct paramed_type *T);
+struct tl_ds_message_media *fetch_ds_constructor_message_media_empty (struct paramed_type *T);
+struct tl_ds_message_media *fetch_ds_constructor_message_media_photo (struct paramed_type *T);
+struct tl_ds_message_media *fetch_ds_constructor_message_media_video (struct paramed_type *T);
+struct tl_ds_message_media *fetch_ds_constructor_message_media_geo (struct paramed_type *T);
+struct tl_ds_message_media *fetch_ds_constructor_message_media_contact (struct paramed_type *T);
+struct tl_ds_message_media *fetch_ds_constructor_message_media_unsupported (struct paramed_type *T);
+struct tl_ds_message_media *fetch_ds_constructor_message_media_document (struct paramed_type *T);
+struct tl_ds_message_media *fetch_ds_constructor_message_media_audio (struct paramed_type *T);
+struct tl_ds_message_media *fetch_ds_constructor_message_media_web_page (struct paramed_type *T);
+struct tl_ds_message_media *fetch_ds_constructor_message_media_venue (struct paramed_type *T);
+struct tl_ds_message_media *fetch_ds_constructor_message_media_photo_l27 (struct paramed_type *T);
+struct tl_ds_message_media *fetch_ds_constructor_message_media_video_l27 (struct paramed_type *T);
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_empty (struct paramed_type *T);
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_photos (struct paramed_type *T);
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_video (struct paramed_type *T);
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_photo_video (struct paramed_type *T);
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T);
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_document (struct paramed_type *T);
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_audio (struct paramed_type *T);
+struct tl_ds_nearest_dc *fetch_ds_constructor_nearest_dc (struct paramed_type *T);
+struct tl_ds_notify_peer *fetch_ds_constructor_notify_peer (struct paramed_type *T);
+struct tl_ds_notify_peer *fetch_ds_constructor_notify_users (struct paramed_type *T);
+struct tl_ds_notify_peer *fetch_ds_constructor_notify_chats (struct paramed_type *T);
+struct tl_ds_notify_peer *fetch_ds_constructor_notify_all (struct paramed_type *T);
+struct tl_ds_null *fetch_ds_constructor_null (struct paramed_type *T);
+struct tl_ds_p_q_inner_data *fetch_ds_constructor_p_q_inner_data (struct paramed_type *T);
+struct tl_ds_p_q_inner_data *fetch_ds_constructor_p_q_inner_data_temp (struct paramed_type *T);
+struct tl_ds_peer *fetch_ds_constructor_peer_user (struct paramed_type *T);
+struct tl_ds_peer *fetch_ds_constructor_peer_chat (struct paramed_type *T);
+struct tl_ds_peer_notify_events *fetch_ds_constructor_peer_notify_events_empty (struct paramed_type *T);
+struct tl_ds_peer_notify_events *fetch_ds_constructor_peer_notify_events_all (struct paramed_type *T);
+struct tl_ds_peer_notify_settings *fetch_ds_constructor_peer_notify_settings_empty (struct paramed_type *T);
+struct tl_ds_peer_notify_settings *fetch_ds_constructor_peer_notify_settings (struct paramed_type *T);
+struct tl_ds_photo *fetch_ds_constructor_photo_empty (struct paramed_type *T);
+struct tl_ds_photo *fetch_ds_constructor_photo (struct paramed_type *T);
+struct tl_ds_photo *fetch_ds_constructor_photo_l27 (struct paramed_type *T);
+struct tl_ds_photo_size *fetch_ds_constructor_photo_size_empty (struct paramed_type *T);
+struct tl_ds_photo_size *fetch_ds_constructor_photo_size (struct paramed_type *T);
+struct tl_ds_photo_size *fetch_ds_constructor_photo_cached_size (struct paramed_type *T);
+struct tl_ds_privacy_key *fetch_ds_constructor_privacy_key_status_timestamp (struct paramed_type *T);
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_allow_contacts (struct paramed_type *T);
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_allow_all (struct paramed_type *T);
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_allow_users (struct paramed_type *T);
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_disallow_contacts (struct paramed_type *T);
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_disallow_all (struct paramed_type *T);
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_disallow_users (struct paramed_type *T);
+struct tl_ds_received_notify_message *fetch_ds_constructor_received_notify_message (struct paramed_type *T);
+struct tl_ds_reply_markup *fetch_ds_constructor_reply_keyboard_hide (struct paramed_type *T);
+struct tl_ds_reply_markup *fetch_ds_constructor_reply_keyboard_force_reply (struct paramed_type *T);
+struct tl_ds_reply_markup *fetch_ds_constructor_reply_keyboard_markup (struct paramed_type *T);
+struct tl_ds_res_p_q *fetch_ds_constructor_res_p_q (struct paramed_type *T);
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_typing_action (struct paramed_type *T);
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_cancel_action (struct paramed_type *T);
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_record_video_action (struct paramed_type *T);
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_video_action_l27 (struct paramed_type *T);
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_video_action (struct paramed_type *T);
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_record_audio_action (struct paramed_type *T);
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T);
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_audio_action (struct paramed_type *T);
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_photo_action (struct paramed_type *T);
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_document_action_l27 (struct paramed_type *T);
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_document_action (struct paramed_type *T);
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_geo_location_action (struct paramed_type *T);
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_choose_contact_action (struct paramed_type *T);
+struct tl_ds_server_d_h_params *fetch_ds_constructor_server_d_h_params_fail (struct paramed_type *T);
+struct tl_ds_server_d_h_params *fetch_ds_constructor_server_d_h_params_ok (struct paramed_type *T);
+struct tl_ds_server_d_h_inner_data *fetch_ds_constructor_server_d_h_inner_data (struct paramed_type *T);
+struct tl_ds_set_client_d_h_params_answer *fetch_ds_constructor_dh_gen_ok (struct paramed_type *T);
+struct tl_ds_set_client_d_h_params_answer *fetch_ds_constructor_dh_gen_retry (struct paramed_type *T);
+struct tl_ds_set_client_d_h_params_answer *fetch_ds_constructor_dh_gen_fail (struct paramed_type *T);
+struct tl_ds_sticker_pack *fetch_ds_constructor_sticker_pack (struct paramed_type *T);
+struct tl_ds_sticker_set *fetch_ds_constructor_sticker_set (struct paramed_type *T);
+struct tl_ds_string *fetch_ds_constructor_string (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_new_message (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_message_i_d (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_delete_messages (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_user_typing (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_chat_user_typing (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_chat_participants (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_user_status (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_user_name (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_user_photo (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_contact_registered (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_contact_link (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_new_authorization (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_new_geo_chat_message (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_new_encrypted_message (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_encrypted_chat_typing (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_encryption (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_encrypted_messages_read (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_chat_participant_add (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_chat_participant_delete (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_dc_options (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_user_blocked (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_notify_settings (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_service_notification (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_privacy (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_user_phone (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_read_history_inbox (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_read_history_outbox (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_web_page (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_read_messages_contents (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_constructor_update_msg_update (struct paramed_type *T);
+struct tl_ds_updates *fetch_ds_constructor_updates_too_long (struct paramed_type *T);
+struct tl_ds_updates *fetch_ds_constructor_update_short_message (struct paramed_type *T);
+struct tl_ds_updates *fetch_ds_constructor_update_short_chat_message (struct paramed_type *T);
+struct tl_ds_updates *fetch_ds_constructor_update_short (struct paramed_type *T);
+struct tl_ds_updates *fetch_ds_constructor_updates_combined (struct paramed_type *T);
+struct tl_ds_updates *fetch_ds_constructor_updates (struct paramed_type *T);
+struct tl_ds_user *fetch_ds_constructor_user_empty (struct paramed_type *T);
+struct tl_ds_user *fetch_ds_constructor_user (struct paramed_type *T);
+struct tl_ds_user_full *fetch_ds_constructor_user_full (struct paramed_type *T);
+struct tl_ds_user_profile_photo *fetch_ds_constructor_user_profile_photo_empty (struct paramed_type *T);
+struct tl_ds_user_profile_photo *fetch_ds_constructor_user_profile_photo (struct paramed_type *T);
+struct tl_ds_user_status *fetch_ds_constructor_user_status_empty (struct paramed_type *T);
+struct tl_ds_user_status *fetch_ds_constructor_user_status_online (struct paramed_type *T);
+struct tl_ds_user_status *fetch_ds_constructor_user_status_offline (struct paramed_type *T);
+struct tl_ds_user_status *fetch_ds_constructor_user_status_recently (struct paramed_type *T);
+struct tl_ds_user_status *fetch_ds_constructor_user_status_last_week (struct paramed_type *T);
+struct tl_ds_user_status *fetch_ds_constructor_user_status_last_month (struct paramed_type *T);
+struct tl_ds_vector *fetch_ds_constructor_vector (struct paramed_type *T);
+struct tl_ds_video *fetch_ds_constructor_video_empty (struct paramed_type *T);
+struct tl_ds_video *fetch_ds_constructor_video (struct paramed_type *T);
+struct tl_ds_video *fetch_ds_constructor_video_l27 (struct paramed_type *T);
+struct tl_ds_wall_paper *fetch_ds_constructor_wall_paper (struct paramed_type *T);
+struct tl_ds_wall_paper *fetch_ds_constructor_wall_paper_solid (struct paramed_type *T);
+struct tl_ds_web_page *fetch_ds_constructor_web_page_empty (struct paramed_type *T);
+struct tl_ds_web_page *fetch_ds_constructor_web_page_pending (struct paramed_type *T);
+struct tl_ds_web_page *fetch_ds_constructor_web_page (struct paramed_type *T);
+struct tl_ds_account_authorizations *fetch_ds_constructor_account_authorizations (struct paramed_type *T);
+struct tl_ds_account_password *fetch_ds_constructor_account_no_password (struct paramed_type *T);
+struct tl_ds_account_password *fetch_ds_constructor_account_password (struct paramed_type *T);
+struct tl_ds_account_password_input_settings *fetch_ds_constructor_account_password_input_settings (struct paramed_type *T);
+struct tl_ds_account_password_settings *fetch_ds_constructor_account_password_settings (struct paramed_type *T);
+struct tl_ds_account_privacy_rules *fetch_ds_constructor_account_privacy_rules (struct paramed_type *T);
+struct tl_ds_account_sent_change_phone_code *fetch_ds_constructor_account_sent_change_phone_code (struct paramed_type *T);
+struct tl_ds_auth_authorization *fetch_ds_constructor_auth_authorization (struct paramed_type *T);
+struct tl_ds_auth_checked_phone *fetch_ds_constructor_auth_checked_phone (struct paramed_type *T);
+struct tl_ds_auth_exported_authorization *fetch_ds_constructor_auth_exported_authorization (struct paramed_type *T);
+struct tl_ds_auth_password_recovery *fetch_ds_constructor_auth_password_recovery (struct paramed_type *T);
+struct tl_ds_auth_sent_code *fetch_ds_constructor_auth_sent_code (struct paramed_type *T);
+struct tl_ds_auth_sent_code *fetch_ds_constructor_auth_sent_app_code (struct paramed_type *T);
+struct tl_ds_binlog_encr_key *fetch_ds_constructor_binlog_encr_key (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_start (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_dc_option (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_dc_option_new (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_auth_key (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_default_dc (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_dc_signed (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_our_id (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_dh_params (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_pts (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_qts (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_date (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_seq (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_encr_chat_delete (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_encr_chat_new (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_user_delete (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_user_new (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_chat_new (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_chat_add_participant (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_chat_del_participant (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_msg_id (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_message_delete (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_message_new (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_message_encr_new (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_msg_update (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_reset_authorization (struct paramed_type *T);
+struct tl_ds_contacts_blocked *fetch_ds_constructor_contacts_blocked (struct paramed_type *T);
+struct tl_ds_contacts_blocked *fetch_ds_constructor_contacts_blocked_slice (struct paramed_type *T);
+struct tl_ds_contacts_contacts *fetch_ds_constructor_contacts_contacts_not_modified (struct paramed_type *T);
+struct tl_ds_contacts_contacts *fetch_ds_constructor_contacts_contacts (struct paramed_type *T);
+struct tl_ds_contacts_found *fetch_ds_constructor_contacts_found (struct paramed_type *T);
+struct tl_ds_contacts_imported_contacts *fetch_ds_constructor_contacts_imported_contacts (struct paramed_type *T);
+struct tl_ds_contacts_link *fetch_ds_constructor_contacts_link (struct paramed_type *T);
+struct tl_ds_contacts_suggested *fetch_ds_constructor_contacts_suggested (struct paramed_type *T);
+struct tl_ds_geochats_located *fetch_ds_constructor_geochats_located (struct paramed_type *T);
+struct tl_ds_geochats_messages *fetch_ds_constructor_geochats_messages (struct paramed_type *T);
+struct tl_ds_geochats_messages *fetch_ds_constructor_geochats_messages_slice (struct paramed_type *T);
+struct tl_ds_geochats_stated_message *fetch_ds_constructor_geochats_stated_message (struct paramed_type *T);
+struct tl_ds_help_app_update *fetch_ds_constructor_help_app_update (struct paramed_type *T);
+struct tl_ds_help_app_update *fetch_ds_constructor_help_no_app_update (struct paramed_type *T);
+struct tl_ds_help_invite_text *fetch_ds_constructor_help_invite_text (struct paramed_type *T);
+struct tl_ds_help_support *fetch_ds_constructor_help_support (struct paramed_type *T);
+struct tl_ds_messages_affected_history *fetch_ds_constructor_messages_affected_history (struct paramed_type *T);
+struct tl_ds_messages_affected_messages *fetch_ds_constructor_messages_affected_messages (struct paramed_type *T);
+struct tl_ds_messages_all_stickers *fetch_ds_constructor_messages_all_stickers_not_modified (struct paramed_type *T);
+struct tl_ds_messages_all_stickers *fetch_ds_constructor_messages_all_stickers (struct paramed_type *T);
+struct tl_ds_messages_chat_full *fetch_ds_constructor_messages_chat_full (struct paramed_type *T);
+struct tl_ds_messages_chats *fetch_ds_constructor_messages_chats (struct paramed_type *T);
+struct tl_ds_messages_dh_config *fetch_ds_constructor_messages_dh_config_not_modified (struct paramed_type *T);
+struct tl_ds_messages_dh_config *fetch_ds_constructor_messages_dh_config (struct paramed_type *T);
+struct tl_ds_messages_dialogs *fetch_ds_constructor_messages_dialogs (struct paramed_type *T);
+struct tl_ds_messages_dialogs *fetch_ds_constructor_messages_dialogs_slice (struct paramed_type *T);
+struct tl_ds_messages_message *fetch_ds_constructor_messages_message_empty (struct paramed_type *T);
+struct tl_ds_messages_messages *fetch_ds_constructor_messages_messages (struct paramed_type *T);
+struct tl_ds_messages_messages *fetch_ds_constructor_messages_messages_slice (struct paramed_type *T);
+struct tl_ds_messages_sent_encrypted_message *fetch_ds_constructor_messages_sent_encrypted_message (struct paramed_type *T);
+struct tl_ds_messages_sent_encrypted_message *fetch_ds_constructor_messages_sent_encrypted_file (struct paramed_type *T);
+struct tl_ds_messages_sent_message *fetch_ds_constructor_messages_sent_message (struct paramed_type *T);
+struct tl_ds_messages_sent_message *fetch_ds_constructor_messages_sent_message_link (struct paramed_type *T);
+struct tl_ds_messages_sticker_set *fetch_ds_constructor_messages_sticker_set (struct paramed_type *T);
+struct tl_ds_messages_stickers *fetch_ds_constructor_messages_stickers_not_modified (struct paramed_type *T);
+struct tl_ds_messages_stickers *fetch_ds_constructor_messages_stickers (struct paramed_type *T);
+struct tl_ds_photos_photo *fetch_ds_constructor_photos_photo (struct paramed_type *T);
+struct tl_ds_photos_photos *fetch_ds_constructor_photos_photos (struct paramed_type *T);
+struct tl_ds_photos_photos *fetch_ds_constructor_photos_photos_slice (struct paramed_type *T);
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_unknown (struct paramed_type *T);
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_jpeg (struct paramed_type *T);
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_gif (struct paramed_type *T);
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_png (struct paramed_type *T);
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_pdf (struct paramed_type *T);
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_mp3 (struct paramed_type *T);
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_mov (struct paramed_type *T);
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_partial (struct paramed_type *T);
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_mp4 (struct paramed_type *T);
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_webp (struct paramed_type *T);
+struct tl_ds_updates_difference *fetch_ds_constructor_updates_difference_empty (struct paramed_type *T);
+struct tl_ds_updates_difference *fetch_ds_constructor_updates_difference (struct paramed_type *T);
+struct tl_ds_updates_difference *fetch_ds_constructor_updates_difference_slice (struct paramed_type *T);
+struct tl_ds_updates_state *fetch_ds_constructor_updates_state (struct paramed_type *T);
+struct tl_ds_upload_file *fetch_ds_constructor_upload_file (struct paramed_type *T);
+struct tl_ds_account_days_t_t_l *fetch_ds_type_account_days_t_t_l (struct paramed_type *T);
+struct tl_ds_account_days_t_t_l *fetch_ds_type_bare_account_days_t_t_l (struct paramed_type *T);
+struct tl_ds_audio *fetch_ds_type_audio (struct paramed_type *T);
+struct tl_ds_audio *fetch_ds_type_bare_audio (struct paramed_type *T);
+struct tl_ds_authorization *fetch_ds_type_authorization (struct paramed_type *T);
+struct tl_ds_authorization *fetch_ds_type_bare_authorization (struct paramed_type *T);
+struct tl_ds_bool *fetch_ds_type_bool (struct paramed_type *T);
+struct tl_ds_bool *fetch_ds_type_bare_bool (struct paramed_type *T);
+struct tl_ds_bot_command *fetch_ds_type_bot_command (struct paramed_type *T);
+struct tl_ds_bot_command *fetch_ds_type_bare_bot_command (struct paramed_type *T);
+struct tl_ds_bot_info *fetch_ds_type_bot_info (struct paramed_type *T);
+struct tl_ds_bot_info *fetch_ds_type_bare_bot_info (struct paramed_type *T);
+struct tl_ds_string *fetch_ds_type_bytes (struct paramed_type *T);
+struct tl_ds_string *fetch_ds_type_bare_bytes (struct paramed_type *T);
+struct tl_ds_chat *fetch_ds_type_chat (struct paramed_type *T);
+struct tl_ds_chat *fetch_ds_type_bare_chat (struct paramed_type *T);
+struct tl_ds_chat_full *fetch_ds_type_chat_full (struct paramed_type *T);
+struct tl_ds_chat_full *fetch_ds_type_bare_chat_full (struct paramed_type *T);
+struct tl_ds_chat_invite *fetch_ds_type_chat_invite (struct paramed_type *T);
+struct tl_ds_chat_invite *fetch_ds_type_bare_chat_invite (struct paramed_type *T);
+struct tl_ds_chat_located *fetch_ds_type_chat_located (struct paramed_type *T);
+struct tl_ds_chat_located *fetch_ds_type_bare_chat_located (struct paramed_type *T);
+struct tl_ds_chat_participant *fetch_ds_type_chat_participant (struct paramed_type *T);
+struct tl_ds_chat_participant *fetch_ds_type_bare_chat_participant (struct paramed_type *T);
+struct tl_ds_chat_participants *fetch_ds_type_chat_participants (struct paramed_type *T);
+struct tl_ds_chat_participants *fetch_ds_type_bare_chat_participants (struct paramed_type *T);
+struct tl_ds_chat_photo *fetch_ds_type_chat_photo (struct paramed_type *T);
+struct tl_ds_chat_photo *fetch_ds_type_bare_chat_photo (struct paramed_type *T);
+struct tl_ds_client_d_h_inner_data *fetch_ds_type_client_d_h_inner_data (struct paramed_type *T);
+struct tl_ds_client_d_h_inner_data *fetch_ds_type_bare_client_d_h_inner_data (struct paramed_type *T);
+struct tl_ds_config *fetch_ds_type_config (struct paramed_type *T);
+struct tl_ds_config *fetch_ds_type_bare_config (struct paramed_type *T);
+struct tl_ds_contact *fetch_ds_type_contact (struct paramed_type *T);
+struct tl_ds_contact *fetch_ds_type_bare_contact (struct paramed_type *T);
+struct tl_ds_contact_blocked *fetch_ds_type_contact_blocked (struct paramed_type *T);
+struct tl_ds_contact_blocked *fetch_ds_type_bare_contact_blocked (struct paramed_type *T);
+struct tl_ds_contact_found *fetch_ds_type_contact_found (struct paramed_type *T);
+struct tl_ds_contact_found *fetch_ds_type_bare_contact_found (struct paramed_type *T);
+struct tl_ds_contact_link *fetch_ds_type_contact_link (struct paramed_type *T);
+struct tl_ds_contact_link *fetch_ds_type_bare_contact_link (struct paramed_type *T);
+struct tl_ds_contact_status *fetch_ds_type_contact_status (struct paramed_type *T);
+struct tl_ds_contact_status *fetch_ds_type_bare_contact_status (struct paramed_type *T);
+struct tl_ds_contact_suggested *fetch_ds_type_contact_suggested (struct paramed_type *T);
+struct tl_ds_contact_suggested *fetch_ds_type_bare_contact_suggested (struct paramed_type *T);
+struct tl_ds_dc_option *fetch_ds_type_dc_option (struct paramed_type *T);
+struct tl_ds_dc_option *fetch_ds_type_bare_dc_option (struct paramed_type *T);
+struct tl_ds_decrypted_message *fetch_ds_type_decrypted_message (struct paramed_type *T);
+struct tl_ds_decrypted_message *fetch_ds_type_bare_decrypted_message (struct paramed_type *T);
+struct tl_ds_decrypted_message_action *fetch_ds_type_decrypted_message_action (struct paramed_type *T);
+struct tl_ds_decrypted_message_action *fetch_ds_type_bare_decrypted_message_action (struct paramed_type *T);
+struct tl_ds_decrypted_message_layer *fetch_ds_type_decrypted_message_layer (struct paramed_type *T);
+struct tl_ds_decrypted_message_layer *fetch_ds_type_bare_decrypted_message_layer (struct paramed_type *T);
+struct tl_ds_decrypted_message_media *fetch_ds_type_decrypted_message_media (struct paramed_type *T);
+struct tl_ds_decrypted_message_media *fetch_ds_type_bare_decrypted_message_media (struct paramed_type *T);
+struct tl_ds_dialog *fetch_ds_type_dialog (struct paramed_type *T);
+struct tl_ds_dialog *fetch_ds_type_bare_dialog (struct paramed_type *T);
+struct tl_ds_disabled_feature *fetch_ds_type_disabled_feature (struct paramed_type *T);
+struct tl_ds_disabled_feature *fetch_ds_type_bare_disabled_feature (struct paramed_type *T);
+struct tl_ds_document *fetch_ds_type_document (struct paramed_type *T);
+struct tl_ds_document *fetch_ds_type_bare_document (struct paramed_type *T);
+struct tl_ds_document_attribute *fetch_ds_type_document_attribute (struct paramed_type *T);
+struct tl_ds_document_attribute *fetch_ds_type_bare_document_attribute (struct paramed_type *T);
+double *fetch_ds_type_double (struct paramed_type *T);
+double *fetch_ds_type_bare_double (struct paramed_type *T);
+struct tl_ds_encrypted_chat *fetch_ds_type_encrypted_chat (struct paramed_type *T);
+struct tl_ds_encrypted_chat *fetch_ds_type_bare_encrypted_chat (struct paramed_type *T);
+struct tl_ds_encrypted_file *fetch_ds_type_encrypted_file (struct paramed_type *T);
+struct tl_ds_encrypted_file *fetch_ds_type_bare_encrypted_file (struct paramed_type *T);
+struct tl_ds_encrypted_message *fetch_ds_type_encrypted_message (struct paramed_type *T);
+struct tl_ds_encrypted_message *fetch_ds_type_bare_encrypted_message (struct paramed_type *T);
+struct tl_ds_error *fetch_ds_type_error (struct paramed_type *T);
+struct tl_ds_error *fetch_ds_type_bare_error (struct paramed_type *T);
+struct tl_ds_exported_chat_invite *fetch_ds_type_exported_chat_invite (struct paramed_type *T);
+struct tl_ds_exported_chat_invite *fetch_ds_type_bare_exported_chat_invite (struct paramed_type *T);
+struct tl_ds_file_location *fetch_ds_type_file_location (struct paramed_type *T);
+struct tl_ds_file_location *fetch_ds_type_bare_file_location (struct paramed_type *T);
+struct tl_ds_geo_chat_message *fetch_ds_type_geo_chat_message (struct paramed_type *T);
+struct tl_ds_geo_chat_message *fetch_ds_type_bare_geo_chat_message (struct paramed_type *T);
+struct tl_ds_geo_point *fetch_ds_type_geo_point (struct paramed_type *T);
+struct tl_ds_geo_point *fetch_ds_type_bare_geo_point (struct paramed_type *T);
+struct tl_ds_imported_contact *fetch_ds_type_imported_contact (struct paramed_type *T);
+struct tl_ds_imported_contact *fetch_ds_type_bare_imported_contact (struct paramed_type *T);
+struct tl_ds_input_app_event *fetch_ds_type_input_app_event (struct paramed_type *T);
+struct tl_ds_input_app_event *fetch_ds_type_bare_input_app_event (struct paramed_type *T);
+struct tl_ds_input_audio *fetch_ds_type_input_audio (struct paramed_type *T);
+struct tl_ds_input_audio *fetch_ds_type_bare_input_audio (struct paramed_type *T);
+struct tl_ds_input_chat_photo *fetch_ds_type_input_chat_photo (struct paramed_type *T);
+struct tl_ds_input_chat_photo *fetch_ds_type_bare_input_chat_photo (struct paramed_type *T);
+struct tl_ds_input_contact *fetch_ds_type_input_contact (struct paramed_type *T);
+struct tl_ds_input_contact *fetch_ds_type_bare_input_contact (struct paramed_type *T);
+struct tl_ds_input_document *fetch_ds_type_input_document (struct paramed_type *T);
+struct tl_ds_input_document *fetch_ds_type_bare_input_document (struct paramed_type *T);
+struct tl_ds_input_encrypted_chat *fetch_ds_type_input_encrypted_chat (struct paramed_type *T);
+struct tl_ds_input_encrypted_chat *fetch_ds_type_bare_input_encrypted_chat (struct paramed_type *T);
+struct tl_ds_input_encrypted_file *fetch_ds_type_input_encrypted_file (struct paramed_type *T);
+struct tl_ds_input_encrypted_file *fetch_ds_type_bare_input_encrypted_file (struct paramed_type *T);
+struct tl_ds_input_file *fetch_ds_type_input_file (struct paramed_type *T);
+struct tl_ds_input_file *fetch_ds_type_bare_input_file (struct paramed_type *T);
+struct tl_ds_input_file_location *fetch_ds_type_input_file_location (struct paramed_type *T);
+struct tl_ds_input_file_location *fetch_ds_type_bare_input_file_location (struct paramed_type *T);
+struct tl_ds_input_geo_chat *fetch_ds_type_input_geo_chat (struct paramed_type *T);
+struct tl_ds_input_geo_chat *fetch_ds_type_bare_input_geo_chat (struct paramed_type *T);
+struct tl_ds_input_geo_point *fetch_ds_type_input_geo_point (struct paramed_type *T);
+struct tl_ds_input_geo_point *fetch_ds_type_bare_input_geo_point (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_type_input_media (struct paramed_type *T);
+struct tl_ds_input_media *fetch_ds_type_bare_input_media (struct paramed_type *T);
+struct tl_ds_input_notify_peer *fetch_ds_type_input_notify_peer (struct paramed_type *T);
+struct tl_ds_input_notify_peer *fetch_ds_type_bare_input_notify_peer (struct paramed_type *T);
+struct tl_ds_input_peer *fetch_ds_type_input_peer (struct paramed_type *T);
+struct tl_ds_input_peer *fetch_ds_type_bare_input_peer (struct paramed_type *T);
+struct tl_ds_input_peer_notify_events *fetch_ds_type_input_peer_notify_events (struct paramed_type *T);
+struct tl_ds_input_peer_notify_events *fetch_ds_type_bare_input_peer_notify_events (struct paramed_type *T);
+struct tl_ds_input_peer_notify_settings *fetch_ds_type_input_peer_notify_settings (struct paramed_type *T);
+struct tl_ds_input_peer_notify_settings *fetch_ds_type_bare_input_peer_notify_settings (struct paramed_type *T);
+struct tl_ds_input_photo *fetch_ds_type_input_photo (struct paramed_type *T);
+struct tl_ds_input_photo *fetch_ds_type_bare_input_photo (struct paramed_type *T);
+struct tl_ds_input_photo_crop *fetch_ds_type_input_photo_crop (struct paramed_type *T);
+struct tl_ds_input_photo_crop *fetch_ds_type_bare_input_photo_crop (struct paramed_type *T);
+struct tl_ds_input_privacy_key *fetch_ds_type_input_privacy_key (struct paramed_type *T);
+struct tl_ds_input_privacy_key *fetch_ds_type_bare_input_privacy_key (struct paramed_type *T);
+struct tl_ds_input_privacy_rule *fetch_ds_type_input_privacy_rule (struct paramed_type *T);
+struct tl_ds_input_privacy_rule *fetch_ds_type_bare_input_privacy_rule (struct paramed_type *T);
+struct tl_ds_input_sticker_set *fetch_ds_type_input_sticker_set (struct paramed_type *T);
+struct tl_ds_input_sticker_set *fetch_ds_type_bare_input_sticker_set (struct paramed_type *T);
+struct tl_ds_input_user *fetch_ds_type_input_user (struct paramed_type *T);
+struct tl_ds_input_user *fetch_ds_type_bare_input_user (struct paramed_type *T);
+struct tl_ds_input_video *fetch_ds_type_input_video (struct paramed_type *T);
+struct tl_ds_input_video *fetch_ds_type_bare_input_video (struct paramed_type *T);
+int *fetch_ds_type_int (struct paramed_type *T);
+int *fetch_ds_type_bare_int (struct paramed_type *T);
+struct tl_ds_int128 *fetch_ds_type_int128 (struct paramed_type *T);
+struct tl_ds_int128 *fetch_ds_type_bare_int128 (struct paramed_type *T);
+struct tl_ds_int256 *fetch_ds_type_int256 (struct paramed_type *T);
+struct tl_ds_int256 *fetch_ds_type_bare_int256 (struct paramed_type *T);
+struct tl_ds_keyboard_button *fetch_ds_type_keyboard_button (struct paramed_type *T);
+struct tl_ds_keyboard_button *fetch_ds_type_bare_keyboard_button (struct paramed_type *T);
+struct tl_ds_keyboard_button_row *fetch_ds_type_keyboard_button_row (struct paramed_type *T);
+struct tl_ds_keyboard_button_row *fetch_ds_type_bare_keyboard_button_row (struct paramed_type *T);
+long long *fetch_ds_type_long (struct paramed_type *T);
+long long *fetch_ds_type_bare_long (struct paramed_type *T);
+struct tl_ds_message *fetch_ds_type_message (struct paramed_type *T);
+struct tl_ds_message *fetch_ds_type_bare_message (struct paramed_type *T);
+struct tl_ds_message_action *fetch_ds_type_message_action (struct paramed_type *T);
+struct tl_ds_message_action *fetch_ds_type_bare_message_action (struct paramed_type *T);
+struct tl_ds_message_media *fetch_ds_type_message_media (struct paramed_type *T);
+struct tl_ds_message_media *fetch_ds_type_bare_message_media (struct paramed_type *T);
+struct tl_ds_messages_filter *fetch_ds_type_messages_filter (struct paramed_type *T);
+struct tl_ds_messages_filter *fetch_ds_type_bare_messages_filter (struct paramed_type *T);
+struct tl_ds_nearest_dc *fetch_ds_type_nearest_dc (struct paramed_type *T);
+struct tl_ds_nearest_dc *fetch_ds_type_bare_nearest_dc (struct paramed_type *T);
+struct tl_ds_notify_peer *fetch_ds_type_notify_peer (struct paramed_type *T);
+struct tl_ds_notify_peer *fetch_ds_type_bare_notify_peer (struct paramed_type *T);
+struct tl_ds_null *fetch_ds_type_null (struct paramed_type *T);
+struct tl_ds_null *fetch_ds_type_bare_null (struct paramed_type *T);
+struct tl_ds_p_q_inner_data *fetch_ds_type_p_q_inner_data (struct paramed_type *T);
+struct tl_ds_p_q_inner_data *fetch_ds_type_bare_p_q_inner_data (struct paramed_type *T);
+struct tl_ds_peer *fetch_ds_type_peer (struct paramed_type *T);
+struct tl_ds_peer *fetch_ds_type_bare_peer (struct paramed_type *T);
+struct tl_ds_peer_notify_events *fetch_ds_type_peer_notify_events (struct paramed_type *T);
+struct tl_ds_peer_notify_events *fetch_ds_type_bare_peer_notify_events (struct paramed_type *T);
+struct tl_ds_peer_notify_settings *fetch_ds_type_peer_notify_settings (struct paramed_type *T);
+struct tl_ds_peer_notify_settings *fetch_ds_type_bare_peer_notify_settings (struct paramed_type *T);
+struct tl_ds_photo *fetch_ds_type_photo (struct paramed_type *T);
+struct tl_ds_photo *fetch_ds_type_bare_photo (struct paramed_type *T);
+struct tl_ds_photo_size *fetch_ds_type_photo_size (struct paramed_type *T);
+struct tl_ds_photo_size *fetch_ds_type_bare_photo_size (struct paramed_type *T);
+struct tl_ds_privacy_key *fetch_ds_type_privacy_key (struct paramed_type *T);
+struct tl_ds_privacy_key *fetch_ds_type_bare_privacy_key (struct paramed_type *T);
+struct tl_ds_privacy_rule *fetch_ds_type_privacy_rule (struct paramed_type *T);
+struct tl_ds_privacy_rule *fetch_ds_type_bare_privacy_rule (struct paramed_type *T);
+struct tl_ds_received_notify_message *fetch_ds_type_received_notify_message (struct paramed_type *T);
+struct tl_ds_received_notify_message *fetch_ds_type_bare_received_notify_message (struct paramed_type *T);
+struct tl_ds_reply_markup *fetch_ds_type_reply_markup (struct paramed_type *T);
+struct tl_ds_reply_markup *fetch_ds_type_bare_reply_markup (struct paramed_type *T);
+struct tl_ds_res_p_q *fetch_ds_type_res_p_q (struct paramed_type *T);
+struct tl_ds_res_p_q *fetch_ds_type_bare_res_p_q (struct paramed_type *T);
+struct tl_ds_send_message_action *fetch_ds_type_send_message_action (struct paramed_type *T);
+struct tl_ds_send_message_action *fetch_ds_type_bare_send_message_action (struct paramed_type *T);
+struct tl_ds_server_d_h_params *fetch_ds_type_server_d_h_params (struct paramed_type *T);
+struct tl_ds_server_d_h_params *fetch_ds_type_bare_server_d_h_params (struct paramed_type *T);
+struct tl_ds_server_d_h_inner_data *fetch_ds_type_server_d_h_inner_data (struct paramed_type *T);
+struct tl_ds_server_d_h_inner_data *fetch_ds_type_bare_server_d_h_inner_data (struct paramed_type *T);
+struct tl_ds_set_client_d_h_params_answer *fetch_ds_type_set_client_d_h_params_answer (struct paramed_type *T);
+struct tl_ds_set_client_d_h_params_answer *fetch_ds_type_bare_set_client_d_h_params_answer (struct paramed_type *T);
+struct tl_ds_sticker_pack *fetch_ds_type_sticker_pack (struct paramed_type *T);
+struct tl_ds_sticker_pack *fetch_ds_type_bare_sticker_pack (struct paramed_type *T);
+struct tl_ds_sticker_set *fetch_ds_type_sticker_set (struct paramed_type *T);
+struct tl_ds_sticker_set *fetch_ds_type_bare_sticker_set (struct paramed_type *T);
+struct tl_ds_string *fetch_ds_type_string (struct paramed_type *T);
+struct tl_ds_string *fetch_ds_type_bare_string (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_type_update (struct paramed_type *T);
+struct tl_ds_update *fetch_ds_type_bare_update (struct paramed_type *T);
+struct tl_ds_updates *fetch_ds_type_updates (struct paramed_type *T);
+struct tl_ds_updates *fetch_ds_type_bare_updates (struct paramed_type *T);
+struct tl_ds_user *fetch_ds_type_user (struct paramed_type *T);
+struct tl_ds_user *fetch_ds_type_bare_user (struct paramed_type *T);
+struct tl_ds_user_full *fetch_ds_type_user_full (struct paramed_type *T);
+struct tl_ds_user_full *fetch_ds_type_bare_user_full (struct paramed_type *T);
+struct tl_ds_user_profile_photo *fetch_ds_type_user_profile_photo (struct paramed_type *T);
+struct tl_ds_user_profile_photo *fetch_ds_type_bare_user_profile_photo (struct paramed_type *T);
+struct tl_ds_user_status *fetch_ds_type_user_status (struct paramed_type *T);
+struct tl_ds_user_status *fetch_ds_type_bare_user_status (struct paramed_type *T);
+struct tl_ds_vector *fetch_ds_type_vector (struct paramed_type *T);
+struct tl_ds_vector *fetch_ds_type_bare_vector (struct paramed_type *T);
+struct tl_ds_video *fetch_ds_type_video (struct paramed_type *T);
+struct tl_ds_video *fetch_ds_type_bare_video (struct paramed_type *T);
+struct tl_ds_wall_paper *fetch_ds_type_wall_paper (struct paramed_type *T);
+struct tl_ds_wall_paper *fetch_ds_type_bare_wall_paper (struct paramed_type *T);
+struct tl_ds_web_page *fetch_ds_type_web_page (struct paramed_type *T);
+struct tl_ds_web_page *fetch_ds_type_bare_web_page (struct paramed_type *T);
+struct tl_ds_account_authorizations *fetch_ds_type_account_authorizations (struct paramed_type *T);
+struct tl_ds_account_authorizations *fetch_ds_type_bare_account_authorizations (struct paramed_type *T);
+struct tl_ds_account_password *fetch_ds_type_account_password (struct paramed_type *T);
+struct tl_ds_account_password *fetch_ds_type_bare_account_password (struct paramed_type *T);
+struct tl_ds_account_password_input_settings *fetch_ds_type_account_password_input_settings (struct paramed_type *T);
+struct tl_ds_account_password_input_settings *fetch_ds_type_bare_account_password_input_settings (struct paramed_type *T);
+struct tl_ds_account_password_settings *fetch_ds_type_account_password_settings (struct paramed_type *T);
+struct tl_ds_account_password_settings *fetch_ds_type_bare_account_password_settings (struct paramed_type *T);
+struct tl_ds_account_privacy_rules *fetch_ds_type_account_privacy_rules (struct paramed_type *T);
+struct tl_ds_account_privacy_rules *fetch_ds_type_bare_account_privacy_rules (struct paramed_type *T);
+struct tl_ds_account_sent_change_phone_code *fetch_ds_type_account_sent_change_phone_code (struct paramed_type *T);
+struct tl_ds_account_sent_change_phone_code *fetch_ds_type_bare_account_sent_change_phone_code (struct paramed_type *T);
+struct tl_ds_auth_authorization *fetch_ds_type_auth_authorization (struct paramed_type *T);
+struct tl_ds_auth_authorization *fetch_ds_type_bare_auth_authorization (struct paramed_type *T);
+struct tl_ds_auth_checked_phone *fetch_ds_type_auth_checked_phone (struct paramed_type *T);
+struct tl_ds_auth_checked_phone *fetch_ds_type_bare_auth_checked_phone (struct paramed_type *T);
+struct tl_ds_auth_exported_authorization *fetch_ds_type_auth_exported_authorization (struct paramed_type *T);
+struct tl_ds_auth_exported_authorization *fetch_ds_type_bare_auth_exported_authorization (struct paramed_type *T);
+struct tl_ds_auth_password_recovery *fetch_ds_type_auth_password_recovery (struct paramed_type *T);
+struct tl_ds_auth_password_recovery *fetch_ds_type_bare_auth_password_recovery (struct paramed_type *T);
+struct tl_ds_auth_sent_code *fetch_ds_type_auth_sent_code (struct paramed_type *T);
+struct tl_ds_auth_sent_code *fetch_ds_type_bare_auth_sent_code (struct paramed_type *T);
+struct tl_ds_binlog_encr_key *fetch_ds_type_binlog_encr_key (struct paramed_type *T);
+struct tl_ds_binlog_encr_key *fetch_ds_type_bare_binlog_encr_key (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_type_binlog_update (struct paramed_type *T);
+struct tl_ds_binlog_update *fetch_ds_type_bare_binlog_update (struct paramed_type *T);
+struct tl_ds_contacts_blocked *fetch_ds_type_contacts_blocked (struct paramed_type *T);
+struct tl_ds_contacts_blocked *fetch_ds_type_bare_contacts_blocked (struct paramed_type *T);
+struct tl_ds_contacts_contacts *fetch_ds_type_contacts_contacts (struct paramed_type *T);
+struct tl_ds_contacts_contacts *fetch_ds_type_bare_contacts_contacts (struct paramed_type *T);
+struct tl_ds_contacts_found *fetch_ds_type_contacts_found (struct paramed_type *T);
+struct tl_ds_contacts_found *fetch_ds_type_bare_contacts_found (struct paramed_type *T);
+struct tl_ds_contacts_imported_contacts *fetch_ds_type_contacts_imported_contacts (struct paramed_type *T);
+struct tl_ds_contacts_imported_contacts *fetch_ds_type_bare_contacts_imported_contacts (struct paramed_type *T);
+struct tl_ds_contacts_link *fetch_ds_type_contacts_link (struct paramed_type *T);
+struct tl_ds_contacts_link *fetch_ds_type_bare_contacts_link (struct paramed_type *T);
+struct tl_ds_contacts_suggested *fetch_ds_type_contacts_suggested (struct paramed_type *T);
+struct tl_ds_contacts_suggested *fetch_ds_type_bare_contacts_suggested (struct paramed_type *T);
+struct tl_ds_geochats_located *fetch_ds_type_geochats_located (struct paramed_type *T);
+struct tl_ds_geochats_located *fetch_ds_type_bare_geochats_located (struct paramed_type *T);
+struct tl_ds_geochats_messages *fetch_ds_type_geochats_messages (struct paramed_type *T);
+struct tl_ds_geochats_messages *fetch_ds_type_bare_geochats_messages (struct paramed_type *T);
+struct tl_ds_geochats_stated_message *fetch_ds_type_geochats_stated_message (struct paramed_type *T);
+struct tl_ds_geochats_stated_message *fetch_ds_type_bare_geochats_stated_message (struct paramed_type *T);
+struct tl_ds_help_app_update *fetch_ds_type_help_app_update (struct paramed_type *T);
+struct tl_ds_help_app_update *fetch_ds_type_bare_help_app_update (struct paramed_type *T);
+struct tl_ds_help_invite_text *fetch_ds_type_help_invite_text (struct paramed_type *T);
+struct tl_ds_help_invite_text *fetch_ds_type_bare_help_invite_text (struct paramed_type *T);
+struct tl_ds_help_support *fetch_ds_type_help_support (struct paramed_type *T);
+struct tl_ds_help_support *fetch_ds_type_bare_help_support (struct paramed_type *T);
+struct tl_ds_messages_affected_history *fetch_ds_type_messages_affected_history (struct paramed_type *T);
+struct tl_ds_messages_affected_history *fetch_ds_type_bare_messages_affected_history (struct paramed_type *T);
+struct tl_ds_messages_affected_messages *fetch_ds_type_messages_affected_messages (struct paramed_type *T);
+struct tl_ds_messages_affected_messages *fetch_ds_type_bare_messages_affected_messages (struct paramed_type *T);
+struct tl_ds_messages_all_stickers *fetch_ds_type_messages_all_stickers (struct paramed_type *T);
+struct tl_ds_messages_all_stickers *fetch_ds_type_bare_messages_all_stickers (struct paramed_type *T);
+struct tl_ds_messages_chat_full *fetch_ds_type_messages_chat_full (struct paramed_type *T);
+struct tl_ds_messages_chat_full *fetch_ds_type_bare_messages_chat_full (struct paramed_type *T);
+struct tl_ds_messages_chats *fetch_ds_type_messages_chats (struct paramed_type *T);
+struct tl_ds_messages_chats *fetch_ds_type_bare_messages_chats (struct paramed_type *T);
+struct tl_ds_messages_dh_config *fetch_ds_type_messages_dh_config (struct paramed_type *T);
+struct tl_ds_messages_dh_config *fetch_ds_type_bare_messages_dh_config (struct paramed_type *T);
+struct tl_ds_messages_dialogs *fetch_ds_type_messages_dialogs (struct paramed_type *T);
+struct tl_ds_messages_dialogs *fetch_ds_type_bare_messages_dialogs (struct paramed_type *T);
+struct tl_ds_messages_message *fetch_ds_type_messages_message (struct paramed_type *T);
+struct tl_ds_messages_message *fetch_ds_type_bare_messages_message (struct paramed_type *T);
+struct tl_ds_messages_messages *fetch_ds_type_messages_messages (struct paramed_type *T);
+struct tl_ds_messages_messages *fetch_ds_type_bare_messages_messages (struct paramed_type *T);
+struct tl_ds_messages_sent_encrypted_message *fetch_ds_type_messages_sent_encrypted_message (struct paramed_type *T);
+struct tl_ds_messages_sent_encrypted_message *fetch_ds_type_bare_messages_sent_encrypted_message (struct paramed_type *T);
+struct tl_ds_messages_sent_message *fetch_ds_type_messages_sent_message (struct paramed_type *T);
+struct tl_ds_messages_sent_message *fetch_ds_type_bare_messages_sent_message (struct paramed_type *T);
+struct tl_ds_messages_sticker_set *fetch_ds_type_messages_sticker_set (struct paramed_type *T);
+struct tl_ds_messages_sticker_set *fetch_ds_type_bare_messages_sticker_set (struct paramed_type *T);
+struct tl_ds_messages_stickers *fetch_ds_type_messages_stickers (struct paramed_type *T);
+struct tl_ds_messages_stickers *fetch_ds_type_bare_messages_stickers (struct paramed_type *T);
+struct tl_ds_photos_photo *fetch_ds_type_photos_photo (struct paramed_type *T);
+struct tl_ds_photos_photo *fetch_ds_type_bare_photos_photo (struct paramed_type *T);
+struct tl_ds_photos_photos *fetch_ds_type_photos_photos (struct paramed_type *T);
+struct tl_ds_photos_photos *fetch_ds_type_bare_photos_photos (struct paramed_type *T);
+struct tl_ds_storage_file_type *fetch_ds_type_storage_file_type (struct paramed_type *T);
+struct tl_ds_storage_file_type *fetch_ds_type_bare_storage_file_type (struct paramed_type *T);
+struct tl_ds_updates_difference *fetch_ds_type_updates_difference (struct paramed_type *T);
+struct tl_ds_updates_difference *fetch_ds_type_bare_updates_difference (struct paramed_type *T);
+struct tl_ds_updates_state *fetch_ds_type_updates_state (struct paramed_type *T);
+struct tl_ds_updates_state *fetch_ds_type_bare_updates_state (struct paramed_type *T);
+struct tl_ds_upload_file *fetch_ds_type_upload_file (struct paramed_type *T);
+struct tl_ds_upload_file *fetch_ds_type_bare_upload_file (struct paramed_type *T);
+void *fetch_ds_type_any (struct paramed_type *T);
diff --git a/libs/tgl/src/auto/auto-fetch.c b/libs/tgl/src/auto/auto-fetch.c
new file mode 100644
index 0000000000..adb2ef789d
--- /dev/null
+++ b/libs/tgl/src/auto/auto-fetch.c
@@ -0,0 +1,16330 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#include "auto-fetch.h"
+#include "auto-skip.h"
+#include "..\auto-static-fetch.c"
+#include "..\mtproto-common.h"
+#else
+#include "auto.h"
+#include "auto/auto-fetch.h"
+#include "auto/auto-skip.h"
+#include "auto-static-fetch.c"
+#include "mtproto-common.h"
+#endif
+#include <assert.h>
+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 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 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 fetch_constructor_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { return -1; }
+ eprintf (" authorization");
+ 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 = 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 (" 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 (" device_model :"); }
+ 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 (" platform :"); }
+ 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 (" system_version :"); }
+ 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 (" api_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 (" app_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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" app_version :"); }
+ 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 (" date_created :"); }
+ 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 (" date_active :"); }
+ 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 (" ip :"); }
+ struct paramed_type *field11 =
+ &(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 (field11) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" country :"); }
+ struct paramed_type *field12 =
+ &(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 (field12) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" region :"); }
+ struct paramed_type *field13 =
+ &(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 (field13) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ 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 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 fetch_constructor_bot_command (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; }
+ eprintf (" botCommand");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" command :"); }
+ 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 (" description :"); }
+ 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 fetch_constructor_bot_command_old (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; }
+ eprintf (" botCommandOld");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" command :"); }
+ 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 (" params :"); }
+ 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 (" description :"); }
+ 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 fetch_constructor_bot_info_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; }
+ eprintf (" botInfoEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_bot_info (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; }
+ eprintf (" botInfo");
+ 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 (" 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 (" share_text :"); }
+ 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 (" description :"); }
+ 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 (" commands :"); }
+ 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 = 0x75e7ea6c, .id = "BotCommand", .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 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 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 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 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 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 fetch_constructor_chat_full (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { 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 = 0xc207550a, .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 (" exported_invite :"); }
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_exported_chat_invite (field5) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" bot_info :"); }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (fetch_type_vector (field6) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_chat_invite_already (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return -1; }
+ eprintf (" chatInviteAlready");
+ 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"); }
+ return 0;
+}
+int fetch_constructor_chat_invite (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return -1; }
+ eprintf (" chatInvite");
+ 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 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 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 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 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 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 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 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 fetch_constructor_config (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { 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 (" expires :"); }
+ struct paramed_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 (" test_mode :"); }
+ 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 (" this_dc :"); }
+ 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 (" dc_options :"); }
+ 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 = 0x2b1a62f0, .id = "DcOption", .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 (" chat_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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" broadcast_size_max :"); }
+ 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 (" forwarded_count_max :"); }
+ 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 (" online_update_period_ms :"); }
+ 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 (" offline_blur_timeout_ms :"); }
+ 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 (" offline_idle_timeout_ms :"); }
+ 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 (" online_cloud_timeout_ms :"); }
+ 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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" notify_cloud_delay_ms :"); }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bare_int (field13) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" notify_default_delay_ms :"); }
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bare_int (field14) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" chat_big_size :"); }
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bare_int (field15) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" push_chat_period_ms :"); }
+ struct paramed_type *field16 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bare_int (field16) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" push_chat_limit :"); }
+ struct paramed_type *field17 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bare_int (field17) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" disabled_features :"); }
+ struct paramed_type *field18 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (fetch_type_vector (field18) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ 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 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 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 fetch_constructor_contact_link_unknown (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ eprintf (" contactLinkUnknown");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_contact_link_none (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ eprintf (" contactLinkNone");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_contact_link_has_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ eprintf (" contactLinkHasPhone");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_contact_link_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ eprintf (" contactLinkContact");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ 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 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 fetch_constructor_dc_option_l28 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return -1; }
+ eprintf (" dcOptionL28");
+ 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 fetch_constructor_dc_option (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return -1; }
+ eprintf (" dcOption");
+ 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 (" 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 fetch_constructor_decrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return -1; }
+ eprintf (" decryptedMessage");
+ 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 (" 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"); }
+ 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 = 0x34e0d674, .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 fetch_constructor_decrypted_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return -1; }
+ eprintf (" decryptedMessageService");
+ 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 (" action :"); }
+ struct paramed_type *field2 =
+ &(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 (field2) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ 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 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 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 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 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 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 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 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 = 0x70541c7e, .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 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 = 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 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 = 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 (" 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 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 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 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 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 (" random_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"); }
+ 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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" 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"); }
+ 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 = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_decrypted_message (field5) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_decrypted_message_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_decrypted_message_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaPhoto");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" str_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 fetch_constructor_decrypted_message_media_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaGeoPoint");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" latitude :"); }
+ 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 (" longitude :"); }
+ 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 fetch_constructor_decrypted_message_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 fetch_constructor_decrypted_message_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaDocument");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" str_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 fetch_constructor_decrypted_message_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaVideo");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" str_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 fetch_constructor_decrypted_message_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 fetch_constructor_decrypted_message_media_external_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaExternalDocument");
+ 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 = 0x97c637a3, .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 fetch_constructor_decrypted_message_media_video_l12 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaVideoL12");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" str_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 (" w :"); }
+ 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 (" h :"); }
+ 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 (" 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 (" key :"); }
+ 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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" iv :"); }
+ 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"); }
+ return 0;
+}
+int fetch_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaAudioL12");
+ 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 (" size :"); }
+ struct paramed_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 :"); }
+ 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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" iv :"); }
+ 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 fetch_constructor_dialog (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { 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 (" read_inbox_max_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 (" unread_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 (" notify_settings :"); }
+ struct paramed_type *field5 =
+ &(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 (field5) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_disabled_feature (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return -1; }
+ eprintf (" disabledFeature");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" feature :"); }
+ 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 (" description :"); }
+ 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 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 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 = 0x97c637a3, .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 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 fetch_constructor_document_attribute_image_size (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 fetch_constructor_document_attribute_animated (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; }
+ eprintf (" documentAttributeAnimated");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_document_attribute_sticker_l28 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; }
+ eprintf (" documentAttributeStickerL28");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" alt :"); }
+ 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 fetch_constructor_document_attribute_sticker (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; }
+ eprintf (" documentAttributeSticker");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" alt :"); }
+ 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 (" stickerset :"); }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_input_sticker_set (field2) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_document_attribute_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 fetch_constructor_document_attribute_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 fetch_constructor_document_attribute_filename (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 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 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 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 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 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 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 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 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 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 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 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 fetch_constructor_chat_invite_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; }
+ eprintf (" chatInviteEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_chat_invite_exported (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; }
+ eprintf (" chatInviteExported");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" link :"); }
+ 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 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 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 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 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 = 0x95f2471a, .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 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 = 0x383415fa, .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 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 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 (" longitude :"); }
+ 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 (" latitude :"); }
+ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 (" latitude :"); }
+ 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 (" longitude :"); }
+ 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 fetch_constructor_input_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ eprintf (" inputMediaEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_input_media_uploaded_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" caption :"); }
+ 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 fetch_constructor_input_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" caption :"); }
+ 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 fetch_constructor_input_media_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 fetch_constructor_input_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 fetch_constructor_input_media_uploaded_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 (" 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"); }
+ return 0;
+}
+int fetch_constructor_input_media_uploaded_thumb_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 (" caption :"); }
+ 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 fetch_constructor_input_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ eprintf (" inputMediaVideo");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" video_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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" caption :"); }
+ 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 fetch_constructor_input_media_uploaded_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 fetch_constructor_input_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ eprintf (" inputMediaAudio");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" audio_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 fetch_constructor_input_media_uploaded_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 = 0x97c637a3, .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 fetch_constructor_input_media_uploaded_thumb_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 = 0x97c637a3, .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 fetch_constructor_input_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ eprintf (" inputMediaDocument");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" document_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 fetch_constructor_input_media_venue (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ eprintf (" inputMediaVenue");
+ 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"); }
+ 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 (" 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 (" provider :"); }
+ 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_id :"); }
+ 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 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 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 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 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 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 (" geo_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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 fetch_constructor_input_sticker_set_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; }
+ eprintf (" inputStickerSetEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_input_sticker_set_i_d (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; }
+ eprintf (" inputStickerSetID");
+ 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 fetch_constructor_input_sticker_set_short_name (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; }
+ eprintf (" inputStickerSetShortName");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" short_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 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 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 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 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 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 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 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 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 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 fetch_constructor_keyboard_button (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { 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 fetch_constructor_keyboard_button_row (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { 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 = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (fetch_type_vector (field1) < 0) { return -1;}
+ return 0;
+}
+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 (" %I64d", fetch_long ());
+ return 0;
+}
+int fetch_constructor_message_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { 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 fetch_constructor_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; }
+ eprintf (" message");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ if (in_remaining () < 4) { return -1;}
+ eprintf (" %d", prefetch_int ());
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ 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 (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" fwd_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 (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" fwd_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 (PTR2INT (var0) & (1 << 3)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" reply_to_msg_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 (" date :"); }
+ 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 (" message :"); }
+ 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 = 0x95f2471a, .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"); }
+ if (PTR2INT (var0) & (1 << 6)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" reply_markup :"); }
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_reply_markup (field11) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int fetch_constructor_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { 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 = 0x383415fa, .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 fetch_constructor_message_action_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ eprintf (" messageActionEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_message_action_chat_create (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 fetch_constructor_message_action_chat_edit_title (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 fetch_constructor_message_action_chat_edit_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 = 0xc207550a, .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 fetch_constructor_message_action_chat_delete_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ eprintf (" messageActionChatDeletePhoto");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_message_action_chat_add_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 fetch_constructor_message_action_chat_delete_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 fetch_constructor_message_action_geo_chat_create (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 fetch_constructor_message_action_geo_chat_checkin (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ eprintf (" messageActionGeoChatCheckin");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_message_action_chat_joined_by_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ eprintf (" messageActionChatJoinedByLink");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" inviter_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 fetch_constructor_message_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ eprintf (" messageMediaEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_message_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 = 0xc207550a, .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 (" caption :"); }
+ 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 fetch_constructor_message_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_video (field1) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" caption :"); }
+ 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 fetch_constructor_message_media_geo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 fetch_constructor_message_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 fetch_constructor_message_media_unsupported (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ eprintf (" messageMediaUnsupported");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_message_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 fetch_constructor_message_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 fetch_constructor_message_media_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ eprintf (" messageMediaWebPage");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" webpage :"); }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_web_page (field1) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_message_media_venue (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ eprintf (" messageMediaVenue");
+ 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"); }
+ 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 (" 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 (" provider :"); }
+ 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_id :"); }
+ 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 fetch_constructor_message_media_photo_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ eprintf (" messageMediaPhotoL27");
+ 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 = 0xc207550a, .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 fetch_constructor_message_media_video_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ eprintf (" messageMediaVideoL27");
+ 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 = 0x1716b174, .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 fetch_constructor_input_messages_filter_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ eprintf (" inputMessagesFilterEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_input_messages_filter_photos (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ eprintf (" inputMessagesFilterPhotos");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_input_messages_filter_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ eprintf (" inputMessagesFilterVideo");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_input_messages_filter_photo_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ eprintf (" inputMessagesFilterPhotoVideo");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ eprintf (" inputMessagesFilterPhotoVideoDocuments");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_input_messages_filter_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ eprintf (" inputMessagesFilterDocument");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_input_messages_filter_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ eprintf (" inputMessagesFilterAudio");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 fetch_constructor_photo_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { 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 fetch_constructor_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { 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 (" geo :"); }
+ struct paramed_type *field5 =
+ &(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 (field5) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" sizes :"); }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_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 (field6) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_photo_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; }
+ eprintf (" photoL27");
+ 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 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 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 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 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 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 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 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 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 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 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 fetch_constructor_received_notify_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { return -1; }
+ eprintf (" receivedNotifyMessage");
+ 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"); }
+ return 0;
+}
+int fetch_constructor_reply_keyboard_hide (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; }
+ eprintf (" replyKeyboardHide");
+ 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"); }
+ return 0;
+}
+int fetch_constructor_reply_keyboard_force_reply (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; }
+ eprintf (" replyKeyboardForceReply");
+ 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"); }
+ return 0;
+}
+int fetch_constructor_reply_keyboard_markup (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; }
+ eprintf (" replyKeyboardMarkup");
+ 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 (" rows :"); }
+ 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 = 0x77608b83, .id = "KeyboardButtonRow", .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 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 fetch_constructor_send_message_typing_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageTypingAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_send_message_cancel_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageCancelAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_send_message_record_video_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageRecordVideoAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_send_message_upload_video_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageUploadVideoActionL27");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_send_message_upload_video_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageUploadVideoAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" progress :"); }
+ struct paramed_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 fetch_constructor_send_message_record_audio_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageRecordAudioAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageUploadAudioActionL27");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_send_message_upload_audio_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageUploadAudioAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" progress :"); }
+ struct paramed_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 fetch_constructor_send_message_upload_photo_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageUploadPhotoAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" progress :"); }
+ struct paramed_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 fetch_constructor_send_message_upload_document_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageUploadDocumentActionL27");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_send_message_upload_document_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageUploadDocumentAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" progress :"); }
+ struct paramed_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 fetch_constructor_send_message_geo_location_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageGeoLocationAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_send_message_choose_contact_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageChooseContactAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ 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 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 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 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 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 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 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 fetch_constructor_sticker_set (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { return -1; }
+ eprintf (" stickerSet");
+ 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 (" 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 (" short_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 fetch_constructor_string (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return -1; }
+ static 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 fetch_constructor_update_new_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x5d652a7f, .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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_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"); }
+ return 0;
+}
+int fetch_constructor_update_message_i_d (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 fetch_constructor_update_delete_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_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"); }
+ return 0;
+}
+int fetch_constructor_update_user_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x70541c7e, .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 fetch_constructor_update_chat_user_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x70541c7e, .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 fetch_constructor_update_chat_participants (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 fetch_constructor_update_user_status (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 fetch_constructor_update_user_name (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 fetch_constructor_update_user_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 fetch_constructor_update_contact_registered (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 fetch_constructor_update_contact_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_contact_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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_contact_link (field3) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_update_new_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 fetch_constructor_update_new_geo_chat_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateNewGeoChatMessage");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" geo_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 fetch_constructor_update_new_encrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateNewEncryptedMessage");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" encr_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 fetch_constructor_update_encrypted_chat_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 fetch_constructor_update_encryption (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateEncryption");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" encr_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 fetch_constructor_update_encrypted_messages_read (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 fetch_constructor_update_chat_participant_add (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 fetch_constructor_update_chat_participant_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 fetch_constructor_update_dc_options (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x2b1a62f0, .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 fetch_constructor_update_user_blocked (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 fetch_constructor_update_notify_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateNotifySettings");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" notify_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 fetch_constructor_update_service_notification (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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_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"); }
+ 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 = 0x95f2471a, .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 fetch_constructor_update_privacy (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 fetch_constructor_update_user_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 fetch_constructor_update_read_history_inbox (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateReadHistoryInbox");
+ 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 (" max_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 (" 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 (" pts_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"); }
+ return 0;
+}
+int fetch_constructor_update_read_history_outbox (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateReadHistoryOutbox");
+ 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 (" max_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 (" 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 (" pts_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"); }
+ return 0;
+}
+int fetch_constructor_update_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateWebPage");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" webpage :"); }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_web_page (field1) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_update_read_messages_contents (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateReadMessagesContents");
+ 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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_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"); }
+ return 0;
+}
+int fetch_constructor_update_msg_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateMsgUpdate");
+ 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 (" 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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_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"); }
+ return 0;
+}
+int fetch_constructor_updates_too_long (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; }
+ eprintf (" updatesTooLong");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_update_short_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; }
+ eprintf (" updateShortMessage");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ if (in_remaining () < 4) { return -1;}
+ eprintf (" %d", prefetch_int ());
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ 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 (" 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 (" 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 (" pts_count :"); }
+ 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 (" 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 (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" fwd_from_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"); }
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" fwd_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 (PTR2INT (var0) & (1 << 3)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" reply_to_msg_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"); }
+ }
+ return 0;
+}
+int fetch_constructor_update_short_chat_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; }
+ eprintf (" updateShortChatMessage");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ if (in_remaining () < 4) { return -1;}
+ eprintf (" %d", prefetch_int ());
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ 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 (" chat_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 (" 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 (" pts :"); }
+ 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 (" pts_count :"); }
+ 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 (" date :"); }
+ 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 (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" fwd_from_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"); }
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" fwd_date :"); }
+ 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 (PTR2INT (var0) & (1 << 3)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" reply_to_msg_id :"); }
+ 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 fetch_constructor_update_short (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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 = 0x2e02b27e, .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 fetch_constructor_updates_combined (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 fetch_constructor_updates (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 fetch_constructor_user_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { 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 fetch_constructor_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return -1; }
+ eprintf (" user");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ if (in_remaining () < 4) { return -1;}
+ eprintf (" %d", prefetch_int ());
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ 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 (PTR2INT (var0) & (1 << 0)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" access_hash :"); }
+ 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 (PTR2INT (var0) & (1 << 1)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" first_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 (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" last_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 (PTR2INT (var0) & (1 << 3)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" username :"); }
+ 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 (PTR2INT (var0) & (1 << 4)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" phone :"); }
+ 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 (PTR2INT (var0) & (1 << 5)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" photo :"); }
+ struct paramed_type *field8 =
+ &(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 (field8) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" status :"); }
+ struct paramed_type *field9 =
+ &(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 (field9) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 14)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" bot_info_version :"); }
+ 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"); }
+ }
+ return 0;
+}
+int fetch_constructor_user_full (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { 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 = 0x02e6c0c8, .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 = 0x3ace484c, .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 = 0xc207550a, .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 (" bot_info :"); }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bot_info (field6) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ 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 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 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 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 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 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 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 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 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 fetch_constructor_video_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { 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 fetch_constructor_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { 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 (" 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 (" 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 (" thumb :"); }
+ struct paramed_type *field7 =
+ &(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 (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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" w :"); }
+ 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 (" h :"); }
+ 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"); }
+ return 0;
+}
+int fetch_constructor_video_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; }
+ eprintf (" videoL27");
+ 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 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 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 fetch_constructor_web_page_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; }
+ eprintf (" webPageEmpty");
+ 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 fetch_constructor_web_page_pending (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; }
+ eprintf (" webPagePending");
+ 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 (" 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 fetch_constructor_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; }
+ eprintf (" webPage");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ if (in_remaining () < 4) { return -1;}
+ eprintf (" %d", prefetch_int ());
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ 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 = 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 (" 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 (" display_url :"); }
+ 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 (PTR2INT (var0) & (1 << 0)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" 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 (PTR2INT (var0) & (1 << 1)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" site_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 (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" title :"); }
+ 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 (PTR2INT (var0) & (1 << 3)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" description :"); }
+ 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 (PTR2INT (var0) & (1 << 4)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" photo :"); }
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_photo (field9) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" embed_url :"); }
+ struct paramed_type *field10 =
+ &(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 (field10) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" embed_type :"); }
+ struct paramed_type *field11 =
+ &(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 (field11) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" embed_width :"); }
+ 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"); }
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" embed_height :"); }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bare_int (field13) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 7)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" duration :"); }
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bare_int (field14) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 8)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" author :"); }
+ struct paramed_type *field15 =
+ &(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 (field15) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int fetch_constructor_account_authorizations (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { 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 = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (fetch_type_vector (field1) < 0) { return -1;}
+ return 0;
+}
+int fetch_constructor_account_no_password (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { 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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" email_unconfirmed_pattern :"); }
+ 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 fetch_constructor_account_password (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { 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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" has_recovery :"); }
+ 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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" email_unconfirmed_pattern :"); }
+ 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 fetch_constructor_account_password_input_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { return -1; }
+ eprintf (" account.passwordInputSettings");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ if (in_remaining () < 4) { return -1;}
+ eprintf (" %d", prefetch_int ());
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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 (PTR2INT (var0) & (1 << 0)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" new_password_hash :"); }
+ 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"); }
+ }
+ if (PTR2INT (var0) & (1 << 0)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" hint :"); }
+ 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 (PTR2INT (var0) & (1 << 1)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" email :"); }
+ 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 fetch_constructor_account_password_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { 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 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 = 0x02e6c0c8, .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 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 fetch_constructor_auth_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_user (field1) < 0) { return -1;}
+ return 0;
+}
+int fetch_constructor_auth_checked_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { 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 (fetch_type_bool (field1) < 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 fetch_constructor_auth_password_recovery (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { 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 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 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 fetch_constructor_binlog_encr_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return -1; }
+ int multiplicity1 = PTR2INT (
+ INT2PTR (64) );
+ struct paramed_type *field1 =
+ &(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 (multiplicity1 -- > 0) {
+ if (multiline_output >= 1) { print_offset (); }
+ if (fetch_type_any (field1) < 0) { return -1;}
+ if (multiline_output >= 1) { eprintf ("\n"); }
+ }
+ if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+ eprintf (" ]");
+ return 0;
+}
+int fetch_constructor_binlog_start (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.start");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_binlog_dc_option (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.dcOption");
+ 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 (" 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 fetch_constructor_binlog_dc_option_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.dcOptionNew");
+ 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 (" 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 (" 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 (" ip :"); }
+ 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 (" port :"); }
+ 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 fetch_constructor_binlog_auth_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 :"); }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bare_binlog_encr_key (field2) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_binlog_default_dc (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 fetch_constructor_binlog_dc_signed (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.dcSigned");
+ 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 fetch_constructor_binlog_our_id (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 fetch_constructor_binlog_set_dh_params (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 :"); }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bare_binlog_encr_key (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 fetch_constructor_binlog_set_pts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 fetch_constructor_binlog_set_qts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 fetch_constructor_binlog_set_date (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 fetch_constructor_binlog_set_seq (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 fetch_constructor_binlog_encr_chat_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 fetch_constructor_binlog_encr_chat_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.encrChatNew");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ if (in_remaining () < 4) { return -1;}
+ eprintf (" %d", prefetch_int ());
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" access_hash :"); }
+ 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 (PTR2INT (var0) & (1 << 18)) {
+ 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 (PTR2INT (var0) & (1 << 19)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" admin :"); }
+ 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 (PTR2INT (var0) & (1 << 20)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" user_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 (PTR2INT (var0) & (1 << 21)) {
+ 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 = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bare_binlog_encr_key (field7) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" g_key :"); }
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bare_binlog_encr_key (field8) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" state :"); }
+ 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 (PTR2INT (var0) & (1 << 24)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" ttl :"); }
+ 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 (PTR2INT (var0) & (1 << 25)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" layer :"); }
+ 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 (PTR2INT (var0) & (1 << 26)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" in_seq_no :"); }
+ 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"); }
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" last_in_seq_no :"); }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bare_int (field13) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" out_seq_no :"); }
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bare_int (field14) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 27)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" key_fingerprint :"); }
+ struct paramed_type *field15 =
+ &(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 (field15) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int fetch_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.encrChatExchangeNew");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ if (in_remaining () < 4) { return -1;}
+ eprintf (" %d", prefetch_int ());
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" exchange_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 (PTR2INT (var0) & (1 << 18)) {
+ 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 = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bare_binlog_encr_key (field4) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" state :"); }
+ 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 fetch_constructor_binlog_user_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 fetch_constructor_binlog_user_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.userNew");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ if (in_remaining () < 4) { return -1;}
+ eprintf (" %d", prefetch_int ());
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" access_hash :"); }
+ 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 (PTR2INT (var0) & (1 << 18)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" first_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 (PTR2INT (var0) & (1 << 18)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" last_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 (PTR2INT (var0) & (1 << 19)) {
+ 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 (PTR2INT (var0) & (1 << 20)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" username :"); }
+ 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 (PTR2INT (var0) & (1 << 21)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" photo :"); }
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_photo (field8) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" real_first_name :"); }
+ 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 (PTR2INT (var0) & (1 << 22)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" real_last_name :"); }
+ struct paramed_type *field10 =
+ &(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 (field10) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" user_photo :"); }
+ struct paramed_type *field11 =
+ &(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 (field11) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" last_read_in :"); }
+ 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"); }
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" last_read_out :"); }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bare_int (field13) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" bot_info :"); }
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_bot_info (field14) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int fetch_constructor_binlog_chat_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.chatNew");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ if (in_remaining () < 4) { return -1;}
+ eprintf (" %d", prefetch_int ());
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 (PTR2INT (var0) & (1 << 18)) {
+ 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 (PTR2INT (var0) & (1 << 19)) {
+ 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 (PTR2INT (var0) & (1 << 20)) {
+ 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 (PTR2INT (var0) & (1 << 20)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" participants :"); }
+ 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 = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (fetch_type_vector (field7) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" chat_photo :"); }
+ struct paramed_type *field8 =
+ &(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 (field8) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" photo :"); }
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_photo (field9) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" admin :"); }
+ 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 (PTR2INT (var0) & (1 << 24)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" last_read_in :"); }
+ 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 (PTR2INT (var0) & (1 << 25)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" last_read_out :"); }
+ 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 fetch_constructor_binlog_chat_add_participant (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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_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 (" inviter_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"); }
+ return 0;
+}
+int fetch_constructor_binlog_chat_del_participant (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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_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"); }
+ return 0;
+}
+int fetch_constructor_binlog_set_msg_id (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 fetch_constructor_binlog_message_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.messageDelete");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" lid :"); }
+ 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 fetch_constructor_binlog_message_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.messageNew");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ if (in_remaining () < 4) { return -1;}
+ eprintf (" %d", prefetch_int ());
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" lid :"); }
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" to_type :"); }
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" to_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 (PTR2INT (var0) & (1 << 18)) {
+ 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 (PTR2INT (var0) & (1 << 18)) {
+ 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 (PTR2INT (var0) & (1 << 19)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" date :"); }
+ 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 (PTR2INT (var0) & (1 << 20)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" message :"); }
+ 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 (PTR2INT (var0) & (1 << 21)) {
+ 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 = 0x95f2471a, .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"); }
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" action :"); }
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_message_action (field11) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" reply_id :"); }
+ 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"); }
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" reply_markup :"); }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_reply_markup (field13) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int fetch_constructor_binlog_message_encr_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.messageEncrNew");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ if (in_remaining () < 4) { return -1;}
+ eprintf (" %d", prefetch_int ());
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" lid :"); }
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" to_type :"); }
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" to_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 (PTR2INT (var0) & (1 << 19)) {
+ 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 (PTR2INT (var0) & (1 << 20)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" message :"); }
+ 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 (PTR2INT (var0) & (1 << 21)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" encr_media :"); }
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_decrypted_message_media (field8) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" encr_action :"); }
+ struct paramed_type *field9 =
+ &(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 (field9) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" file :"); }
+ struct paramed_type *field10 =
+ &(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 (field10) < 0) { return -1;}
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int fetch_constructor_binlog_msg_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.msgUpdate");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" lid :"); }
+ 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 fetch_constructor_binlog_reset_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.resetAuthorization");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ 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 = 0x02e6c0c8, .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 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 = 0x02e6c0c8, .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 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 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 = 0x02e6c0c8, .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 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 = 0x02e6c0c8, .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 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 = 0x02e6c0c8, .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 fetch_constructor_contacts_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { 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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_contact_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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_contact_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 = 0x02e6c0c8, .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 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 = 0x02e6c0c8, .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 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 = 0x02e6c0c8, .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 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 = 0x02e6c0c8, .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 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 = 0x02e6c0c8, .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 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 = 0x02e6c0c8, .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 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 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 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 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 = 0x02e6c0c8, .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 fetch_constructor_messages_affected_history (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { 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 (" pts_count :"); }
+ struct paramed_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 fetch_constructor_messages_affected_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { return -1; }
+ eprintf (" messages.affectedMessages");
+ 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 (" pts_count :"); }
+ struct paramed_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 fetch_constructor_messages_all_stickers_not_modified (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return -1; }
+ eprintf (" messages.allStickersNotModified");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int fetch_constructor_messages_all_stickers (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { 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 (" sets :"); }
+ 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 = 0xa7a43b17, .id = "StickerSet", .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 (" documents :"); }
+ 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 = 0x51a73418, .id = "Document", .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 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 = 0x2e02a614, .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 = 0x02e6c0c8, .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 fetch_constructor_messages_chats (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { 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 (fetch_type_vector (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 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 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 = 0xc1dd804a, .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 = 0x5d652a7f, .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 = 0x02e6c0c8, .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 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 = 0xc1dd804a, .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 = 0x5d652a7f, .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 = 0x02e6c0c8, .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 fetch_constructor_messages_message_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { return -1; }
+ eprintf (" messages.messageEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ 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 = 0x5d652a7f, .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 = 0x02e6c0c8, .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 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 = 0x5d652a7f, .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 = 0x02e6c0c8, .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 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 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 fetch_constructor_messages_sent_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { 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 (" media :"); }
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .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 (" 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 (" pts_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 fetch_constructor_messages_sent_message_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { 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 (" media :"); }
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .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 (" 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 (" pts_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"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" links :"); }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (fetch_type_vector (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 fetch_constructor_messages_sticker_set (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return -1; }
+ eprintf (" messages.stickerSet");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" set :"); }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (fetch_type_sticker_set (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 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 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 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 = 0xc207550a, .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 = 0x02e6c0c8, .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 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 = 0xc207550a, .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 = 0x02e6c0c8, .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 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 = 0xc207550a, .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 = 0x02e6c0c8, .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 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 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 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 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 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 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 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 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 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 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 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 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 = 0x5d652a7f, .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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 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 = 0x5d652a7f, .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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 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 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 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 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 fetch_type_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 0x7bf2e6f6: res = fetch_constructor_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_authorization (struct paramed_type *T) {
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ if (fetch_constructor_authorization (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");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 fetch_type_bot_command (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 0xc27ac8c7: res = fetch_constructor_bot_command (T); break;
+ case 0xb79d22ab: res = fetch_constructor_bot_command_old (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_bot_command (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ if (skip_constructor_bot_command (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_bot_command (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_bot_command_old (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_bot_command_old (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+int fetch_type_bot_info (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 0xbb2e37ce: res = fetch_constructor_bot_info_empty (T); break;
+ case 0x09cf585d: res = fetch_constructor_bot_info (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_bot_info (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ if (skip_constructor_bot_info_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_bot_info_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_bot_info (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_bot_info (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+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 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 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 0x2e02a614: 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 fetch_type_chat_invite (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 0x5a686d7c: res = fetch_constructor_chat_invite_already (T); break;
+ case 0xce917dcd: res = fetch_constructor_chat_invite (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_invite (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ if (skip_constructor_chat_invite_already (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_invite_already (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_chat_invite (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_invite (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ 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 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 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 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 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 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 0x4e32b894: 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 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 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 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 fetch_type_contact_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 0x5f4f9247: res = fetch_constructor_contact_link_unknown (T); break;
+ case 0xfeedd3ad: res = fetch_constructor_contact_link_none (T); break;
+ case 0x268f3f59: res = fetch_constructor_contact_link_has_phone (T); break;
+ case 0xd502c2d0: res = fetch_constructor_contact_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_contact_link (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ if (skip_constructor_contact_link_unknown (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contact_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_contact_link_none (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contact_link_none (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_contact_link_has_phone (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contact_link_has_phone (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_contact_link_contact (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contact_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 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 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 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_l28 (T); break;
+ case 0x05d8c6cc: 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) {
+ int *save_in_ptr = in_ptr;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ if (skip_constructor_dc_option_l28 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_dc_option_l28 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_dc_option (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_dc_option (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ 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 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 (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 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 0x511110b0: res = fetch_constructor_decrypted_message_action_resend (T); break;
+ case 0xf3048883: res = fetch_constructor_decrypted_message_action_notify_layer (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 0xdd05ec6b: res = fetch_constructor_decrypted_message_action_abort_key (T); break;
+ case 0xec2e0b9b: res = fetch_constructor_decrypted_message_action_commit_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_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_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_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_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_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_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 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 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;
+ case 0xfa95b0dd: res = fetch_constructor_decrypted_message_media_external_document (T); break;
+ case 0x4cee6ef3: res = fetch_constructor_decrypted_message_media_video_l12 (T); break;
+ case 0x6080758f: res = fetch_constructor_decrypted_message_media_audio_l12 (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;
+ if (skip_constructor_decrypted_message_media_external_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_external_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_l12 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_video_l12 (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_l12 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_audio_l12 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ 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 0xc1dd804a: 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 fetch_type_disabled_feature (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 0xae636f24: res = fetch_constructor_disabled_feature (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_disabled_feature (struct paramed_type *T) {
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ if (fetch_constructor_disabled_feature (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");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 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 0x994c9882: res = fetch_constructor_document_attribute_sticker_l28 (T); break;
+ case 0x3a556302: 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_l28 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_attribute_sticker_l28 (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 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 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 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 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 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 fetch_type_exported_chat_invite (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 0x69df3769: res = fetch_constructor_chat_invite_empty (T); break;
+ case 0xfc2e05bc: res = fetch_constructor_chat_invite_exported (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_exported_chat_invite (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ if (skip_constructor_chat_invite_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_invite_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_invite_exported (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_invite_exported (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 0xf7aff1c0: res = fetch_constructor_input_media_uploaded_photo (T); break;
+ case 0xe9bfb4f3: 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 0xe13fd4bc: res = fetch_constructor_input_media_uploaded_video (T); break;
+ case 0x96fb97dc: res = fetch_constructor_input_media_uploaded_thumb_video (T); break;
+ case 0x936a4ebd: 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;
+ case 0x2827a81a: res = fetch_constructor_input_media_venue (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;
+ if (skip_constructor_input_media_venue (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_venue (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ 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 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 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 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 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 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 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 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 fetch_type_input_sticker_set (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 0xffb62b95: res = fetch_constructor_input_sticker_set_empty (T); break;
+ case 0x9de7a269: res = fetch_constructor_input_sticker_set_i_d (T); break;
+ case 0x861cc8a0: res = fetch_constructor_input_sticker_set_short_name (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_sticker_set (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ if (skip_constructor_input_sticker_set_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_sticker_set_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_sticker_set_i_d (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_sticker_set_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_input_sticker_set_short_name (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_sticker_set_short_name (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ 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 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 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 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 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 fetch_type_keyboard_button (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ int res = -1;
+ switch (magic) {
+ case 0xa2fa4880: res = fetch_constructor_keyboard_button (T); break;
+ default: return -1;
+ }
+ return res;
+}
+int fetch_type_bare_keyboard_button (struct paramed_type *T) {
+ if (fetch_constructor_keyboard_button (T) >= 0) { return 0; }
+ return -1;
+}
+int fetch_type_keyboard_button_row (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ int res = -1;
+ switch (magic) {
+ case 0x77608b83: res = fetch_constructor_keyboard_button_row (T); break;
+ default: return -1;
+ }
+ return res;
+}
+int fetch_type_bare_keyboard_button_row (struct paramed_type *T) {
+ if (fetch_constructor_keyboard_button_row (T) >= 0) { return 0; }
+ return -1;
+}
+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 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 0xc3060325: res = fetch_constructor_message (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_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 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;
+ case 0xf89cf5e8: res = fetch_constructor_message_action_chat_joined_by_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_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;
+ if (skip_constructor_message_action_chat_joined_by_link (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_chat_joined_by_link (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ 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 0x3d8ce53d: res = fetch_constructor_message_media_photo (T); break;
+ case 0x5bcf1675: 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 0x9f84f49e: 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;
+ case 0xa32dd600: res = fetch_constructor_message_media_web_page (T); break;
+ case 0x7912b71f: res = fetch_constructor_message_media_venue (T); break;
+ case 0xc8c45a2a: res = fetch_constructor_message_media_photo_l27 (T); break;
+ case 0xa2d24290: res = fetch_constructor_message_media_video_l27 (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;
+ if (skip_constructor_message_media_web_page (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_web_page (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_venue (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_venue (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_l27 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_photo_l27 (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_l27 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_video_l27 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ 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 0xd95e73bb: res = fetch_constructor_input_messages_filter_photo_video_documents (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_photo_video_documents (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_messages_filter_photo_video_documents (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 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 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 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 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 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 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 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 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 0xc3838076: res = fetch_constructor_photo (T); break;
+ case 0x22b56751: res = fetch_constructor_photo_l27 (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;
+ if (skip_constructor_photo_l27 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photo_l27 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ 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 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 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 fetch_type_received_notify_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 0xa384b779: res = fetch_constructor_received_notify_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_received_notify_message (struct paramed_type *T) {
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ if (fetch_constructor_received_notify_message (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ return -1;
+}
+int fetch_type_reply_markup (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 0xa03e5b85: res = fetch_constructor_reply_keyboard_hide (T); break;
+ case 0xf4108aa0: res = fetch_constructor_reply_keyboard_force_reply (T); break;
+ case 0x3502758c: res = fetch_constructor_reply_keyboard_markup (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_reply_markup (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ if (skip_constructor_reply_keyboard_hide (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_reply_keyboard_hide (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_reply_keyboard_force_reply (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_reply_keyboard_force_reply (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_reply_keyboard_markup (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_reply_keyboard_markup (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ 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 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_l27 (T); break;
+ case 0xe9763aec: 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_l27 (T); break;
+ case 0xf351d7ab: res = fetch_constructor_send_message_upload_audio_action (T); break;
+ case 0xd1d34a26: res = fetch_constructor_send_message_upload_photo_action (T); break;
+ case 0x8faee98e: res = fetch_constructor_send_message_upload_document_action_l27 (T); break;
+ case 0xaa0cd9e4: 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_l27 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_upload_video_action_l27 (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_l27 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_upload_audio_action_l27 (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_l27 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_upload_document_action_l27 (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 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 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 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 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 fetch_type_sticker_set (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 0xa7a43b17: res = fetch_constructor_sticker_set (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_set (struct paramed_type *T) {
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ if (fetch_constructor_sticker_set (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ return -1;
+}
+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 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 0x1f2b0afd: res = fetch_constructor_update_new_message (T); break;
+ case 0x4e90bfd6: res = fetch_constructor_update_message_i_d (T); break;
+ case 0xa20db0e5: res = fetch_constructor_update_delete_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 0x9d2e67c5: res = fetch_constructor_update_contact_link (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;
+ case 0x9961fd5c: res = fetch_constructor_update_read_history_inbox (T); break;
+ case 0x2f2f21bf: res = fetch_constructor_update_read_history_outbox (T); break;
+ case 0x2cc36971: res = fetch_constructor_update_web_page (T); break;
+ case 0x68c13933: res = fetch_constructor_update_read_messages_contents (T); break;
+ case 0x03114739: res = fetch_constructor_update_msg_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_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_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_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_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;
+ if (skip_constructor_update_read_history_inbox (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_read_history_inbox (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_history_outbox (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_read_history_outbox (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_update_web_page (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_web_page (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_contents (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_read_messages_contents (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_update_msg_update (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_msg_update (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ 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 0xed5c2127: res = fetch_constructor_update_short_message (T); break;
+ case 0x52238b3c: 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 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 0x22e49072: res = fetch_constructor_user (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 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ 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 0x5a89ac5b: 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 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 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 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 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 0xee9f4a4d: res = fetch_constructor_video (T); break;
+ case 0x388fa391: res = fetch_constructor_video_l27 (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;
+ if (skip_constructor_video_l27 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_video_l27 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ 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 fetch_type_web_page (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 0xeb1477e8: res = fetch_constructor_web_page_empty (T); break;
+ case 0xc586da1c: res = fetch_constructor_web_page_pending (T); break;
+ case 0xa31ea0b5: res = fetch_constructor_web_page (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_web_page (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ if (skip_constructor_web_page_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_web_page_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_web_page_pending (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_web_page_pending (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_web_page (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_web_page (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+int fetch_type_account_authorizations (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ int res = -1;
+ switch (magic) {
+ case 0x1250abde: res = fetch_constructor_account_authorizations (T); break;
+ default: return -1;
+ }
+ return res;
+}
+int fetch_type_bare_account_authorizations (struct paramed_type *T) {
+ if (fetch_constructor_account_authorizations (T) >= 0) { 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 0x96dabc18: res = fetch_constructor_account_no_password (T); break;
+ case 0x7c18141c: 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 fetch_type_account_password_input_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 0xbcfc532c: res = fetch_constructor_account_password_input_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_account_password_input_settings (struct paramed_type *T) {
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ if (fetch_constructor_account_password_input_settings (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+ return -1;
+}
+int fetch_type_account_password_settings (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ int res = -1;
+ switch (magic) {
+ case 0xb7b72ab3: res = fetch_constructor_account_password_settings (T); break;
+ default: return -1;
+ }
+ return res;
+}
+int fetch_type_bare_account_password_settings (struct paramed_type *T) {
+ if (fetch_constructor_account_password_settings (T) >= 0) { 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 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 fetch_type_auth_authorization (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ int res = -1;
+ switch (magic) {
+ case 0xff036af1: res = fetch_constructor_auth_authorization (T); break;
+ default: return -1;
+ }
+ return res;
+}
+int fetch_type_bare_auth_authorization (struct paramed_type *T) {
+ if (fetch_constructor_auth_authorization (T) >= 0) { return 0; }
+ return -1;
+}
+int fetch_type_auth_checked_phone (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ int res = -1;
+ switch (magic) {
+ case 0x811ea28e: res = fetch_constructor_auth_checked_phone (T); break;
+ default: return -1;
+ }
+ return res;
+}
+int fetch_type_bare_auth_checked_phone (struct paramed_type *T) {
+ if (fetch_constructor_auth_checked_phone (T) >= 0) { 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 fetch_type_auth_password_recovery (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ int res = -1;
+ switch (magic) {
+ case 0x137948a5: res = fetch_constructor_auth_password_recovery (T); break;
+ default: return -1;
+ }
+ return res;
+}
+int fetch_type_bare_auth_password_recovery (struct paramed_type *T) {
+ if (fetch_constructor_auth_password_recovery (T) >= 0) { 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 fetch_type_binlog_encr_key (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ int res = -1;
+ switch (magic) {
+ case 0x0377168f: res = fetch_constructor_binlog_encr_key (T); break;
+ default: return -1;
+ }
+ return res;
+}
+int fetch_type_bare_binlog_encr_key (struct paramed_type *T) {
+ if (fetch_constructor_binlog_encr_key (T) >= 0) { 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 0xf96feb32: res = fetch_constructor_binlog_dc_option (T); break;
+ case 0x7c0d22d8: res = fetch_constructor_binlog_dc_option_new (T); break;
+ case 0x71e8c156: res = fetch_constructor_binlog_auth_key (T); break;
+ case 0x9e83dbdc: res = fetch_constructor_binlog_default_dc (T); break;
+ case 0x26451bb5: res = fetch_constructor_binlog_dc_signed (T); break;
+ case 0x68a870e8: res = fetch_constructor_binlog_our_id (T); break;
+ case 0xeaeb7826: 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 0xee1b38e8: res = fetch_constructor_binlog_encr_chat_delete (T); break;
+ case 0x84977251: res = fetch_constructor_binlog_encr_chat_new (T); break;
+ case 0x9d49488d: res = fetch_constructor_binlog_encr_chat_exchange_new (T); break;
+ case 0xac55d447: res = fetch_constructor_binlog_user_delete (T); break;
+ case 0x127cf2f9: res = fetch_constructor_binlog_user_new (T); break;
+ case 0x0a10aa92: res = fetch_constructor_binlog_chat_new (T); break;
+ case 0x535475ea: res = fetch_constructor_binlog_chat_add_participant (T); break;
+ case 0x7dd1a1a2: res = fetch_constructor_binlog_chat_del_participant (T); break;
+ case 0x3c873416: res = fetch_constructor_binlog_set_msg_id (T); break;
+ case 0x847e77b1: res = fetch_constructor_binlog_message_delete (T); break;
+ case 0x427cfcdb: res = fetch_constructor_binlog_message_new (T); break;
+ case 0x6cf7cabc: res = fetch_constructor_binlog_message_encr_new (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_dc_option_new (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_dc_option_new (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_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_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_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_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_new (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_new (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_new (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_exchange_new (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_new (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_user_new (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_new (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_chat_new (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_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_message_delete (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_message_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_message_new (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_message_new (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_encr_new (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_message_encr_new (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 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 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 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 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 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 0x3ace484c: 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 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 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 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 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 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 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 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 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 0xb45c69d1: 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 fetch_type_messages_affected_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 0x84d19185: res = fetch_constructor_messages_affected_messages (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_messages (struct paramed_type *T) {
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ if (fetch_constructor_messages_affected_messages (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");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 0x5ce352ec: 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 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 fetch_type_messages_chats (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ int res = -1;
+ switch (magic) {
+ case 0x64ff9fd5: res = fetch_constructor_messages_chats (T); break;
+ default: return -1;
+ }
+ return res;
+}
+int fetch_type_bare_messages_chats (struct paramed_type *T) {
+ if (fetch_constructor_messages_chats (T) >= 0) { 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 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 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;
+ 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) {
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ if (fetch_constructor_messages_message_empty (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");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 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 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 0x4c3d47f3: res = fetch_constructor_messages_sent_message (T); break;
+ case 0x35a1a663: 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 fetch_type_messages_sticker_set (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 0xb60a24a6: res = fetch_constructor_messages_sticker_set (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_sticker_set (struct paramed_type *T) {
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ if (fetch_constructor_messages_sticker_set (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");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 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 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 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 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 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 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 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 0x7bf2e6f6: return fetch_type_authorization (T);
+ case 0x840d1909: return fetch_type_bare_authorization (T);
+ case 0x250be282: return fetch_type_bool (T);
+ case 0xdaf41d7d: return fetch_type_bare_bool (T);
+ case 0x75e7ea6c: return fetch_type_bot_command (T);
+ case 0x8a181593: return fetch_type_bare_bot_command (T);
+ case 0xb2e16f93: return fetch_type_bot_info (T);
+ case 0x4d1e906c: return fetch_type_bare_bot_info (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 0x2e02a614: return fetch_type_chat_full (T);
+ case 0xd1fd59eb: return fetch_type_bare_chat_full (T);
+ case 0x94f910b1: return fetch_type_chat_invite (T);
+ case 0x6b06ef4e: return fetch_type_bare_chat_invite (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 0x4e32b894: return fetch_type_config (T);
+ case 0xb1cd476b: 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 0x522fbc63: return fetch_type_contact_link (T);
+ case 0xadd0439c: return fetch_type_bare_contact_link (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 0x2b1a62f0: return fetch_type_dc_option (T);
+ case 0xd4e59d0f: return fetch_type_bare_dc_option (T);
+ case 0x535b7918: return fetch_type_decrypted_message (T);
+ case 0xaca486e7: 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 0x34e0d674: return fetch_type_decrypted_message_media (T);
+ case 0xcb1f298b: return fetch_type_bare_decrypted_message_media (T);
+ case 0xc1dd804a: return fetch_type_dialog (T);
+ case 0x3e227fb5: return fetch_type_bare_dialog (T);
+ case 0xae636f24: return fetch_type_disabled_feature (T);
+ case 0x519c90db: return fetch_type_bare_disabled_feature (T);
+ case 0x51a73418: return fetch_type_document (T);
+ case 0xae58cbe7: return fetch_type_bare_document (T);
+ case 0x97c637a3: return fetch_type_document_attribute (T);
+ case 0x6839c85c: 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 0x95f132d5: return fetch_type_exported_chat_invite (T);
+ case 0x6a0ecd2a: return fetch_type_bare_exported_chat_invite (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 0xb32c91dd: return fetch_type_input_media (T);
+ case 0x4cd36e22: 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 0xe44d415c: return fetch_type_input_sticker_set (T);
+ case 0x1bb2bea3: return fetch_type_bare_input_sticker_set (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 0xa2fa4880: return fetch_type_keyboard_button (T);
+ case 0x5d05b77f: return fetch_type_bare_keyboard_button (T);
+ case 0x77608b83: return fetch_type_keyboard_button_row (T);
+ case 0x889f747c: return fetch_type_bare_keyboard_button_row (T);
+ case 0x22076cba: return fetch_type_long (T);
+ case 0xddf89345: return fetch_type_bare_long (T);
+ case 0x5d652a7f: return fetch_type_message (T);
+ case 0xa29ad580: return fetch_type_bare_message (T);
+ case 0x383415fa: return fetch_type_message_action (T);
+ case 0xc7cbea05: return fetch_type_bare_message_action (T);
+ case 0x95f2471a: return fetch_type_message_media (T);
+ case 0x6a0db8e5: return fetch_type_bare_message_media (T);
+ case 0x80895ae0: return fetch_type_messages_filter (T);
+ case 0x7f76a51f: 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 0xc207550a: return fetch_type_photo (T);
+ case 0x3df8aaf5: 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 0xa384b779: return fetch_type_received_notify_message (T);
+ case 0x5c7b4886: return fetch_type_bare_received_notify_message (T);
+ case 0x612ca4a9: return fetch_type_reply_markup (T);
+ case 0x9ed35b56: return fetch_type_bare_reply_markup (T);
+ case 0x05162463: return fetch_type_res_p_q (T);
+ case 0xfae9db9c: return fetch_type_bare_res_p_q (T);
+ case 0x70541c7e: return fetch_type_send_message_action (T);
+ case 0x8fabe381: 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 0xa7a43b17: return fetch_type_sticker_set (T);
+ case 0x585bc4e8: return fetch_type_bare_sticker_set (T);
+ case 0xb5286e24: return fetch_type_string (T);
+ case 0x4ad791db: return fetch_type_bare_string (T);
+ case 0x2e02b27e: return fetch_type_update (T);
+ case 0xd1fd4d81: return fetch_type_bare_update (T);
+ case 0x22499d27: return fetch_type_updates (T);
+ case 0xddb662d8: return fetch_type_bare_updates (T);
+ case 0x02e6c0c8: return fetch_type_user (T);
+ case 0xfd193f37: return fetch_type_bare_user (T);
+ case 0x5a89ac5b: return fetch_type_user_full (T);
+ case 0xa57653a4: 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 0x1716b174: return fetch_type_video (T);
+ case 0xe8e94e8b: return fetch_type_bare_video (T);
+ case 0xafa14973: return fetch_type_wall_paper (T);
+ case 0x505eb68c: return fetch_type_bare_wall_paper (T);
+ case 0x8d8c0d41: return fetch_type_web_page (T);
+ case 0x7273f2be: return fetch_type_bare_web_page (T);
+ case 0x1250abde: return fetch_type_account_authorizations (T);
+ case 0xedaf5421: return fetch_type_bare_account_authorizations (T);
+ case 0xeac2a804: return fetch_type_account_password (T);
+ case 0x153d57fb: return fetch_type_bare_account_password (T);
+ case 0xbcfc532c: return fetch_type_account_password_input_settings (T);
+ case 0x4303acd3: return fetch_type_bare_account_password_input_settings (T);
+ case 0xb7b72ab3: return fetch_type_account_password_settings (T);
+ case 0x4848d54c: return fetch_type_bare_account_password_settings (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 0xff036af1: return fetch_type_auth_authorization (T);
+ case 0x00fc950e: return fetch_type_bare_auth_authorization (T);
+ case 0x811ea28e: return fetch_type_auth_checked_phone (T);
+ case 0x7ee15d71: 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 0x137948a5: return fetch_type_auth_password_recovery (T);
+ case 0xec86b75a: return fetch_type_bare_auth_password_recovery (T);
+ case 0x0cc8bc16: return fetch_type_auth_sent_code (T);
+ case 0xf33743e9: return fetch_type_bare_auth_sent_code (T);
+ case 0x0377168f: return fetch_type_binlog_encr_key (T);
+ case 0xfc88e970: return fetch_type_bare_binlog_encr_key (T);
+ case 0x66ff03a6: return fetch_type_binlog_update (T);
+ case 0x9900fc59: 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 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 0x3ace484c: return fetch_type_contacts_link (T);
+ case 0xc531b7b3: return fetch_type_bare_contacts_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 0xb45c69d1: return fetch_type_messages_affected_history (T);
+ case 0x4ba3962e: return fetch_type_bare_messages_affected_history (T);
+ case 0x84d19185: return fetch_type_messages_affected_messages (T);
+ case 0x7b2e6e7a: return fetch_type_bare_messages_affected_messages (T);
+ case 0xb485502f: return fetch_type_messages_all_stickers (T);
+ case 0x4b7aafd0: return fetch_type_bare_messages_all_stickers (T);
+ case 0xe5d7d19c: return fetch_type_messages_chat_full (T);
+ case 0x1a282e63: return fetch_type_bare_messages_chat_full (T);
+ case 0x64ff9fd5: return fetch_type_messages_chats (T);
+ case 0x9b00602a: 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 0x3f4e0648: return fetch_type_messages_message (T);
+ case 0xc0b1f9b7: 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 0x799ce190: return fetch_type_messages_sent_message (T);
+ case 0x86631e6f: return fetch_type_bare_messages_sent_message (T);
+ case 0xb60a24a6: return fetch_type_messages_sticker_set (T);
+ case 0x49f5db59: return fetch_type_bare_messages_sticker_set (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; }
+}
diff --git a/libs/tgl/src/auto/auto-fetch.h b/libs/tgl/src/auto/auto-fetch.h
new file mode 100644
index 0000000000..803f7b6902
--- /dev/null
+++ b/libs/tgl/src/auto/auto-fetch.h
@@ -0,0 +1,717 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#else
+#include "auto.h"
+#endif
+#include <assert.h>
+#include <stdio.h>
+struct tgl_state;
+char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);
+int fetch_constructor_account_days_t_t_l (struct paramed_type *T);
+int fetch_constructor_audio_empty (struct paramed_type *T);
+int fetch_constructor_audio (struct paramed_type *T);
+int fetch_constructor_authorization (struct paramed_type *T);
+int fetch_constructor_bool_false (struct paramed_type *T);
+int fetch_constructor_bool_true (struct paramed_type *T);
+int fetch_constructor_bot_command (struct paramed_type *T);
+int fetch_constructor_bot_command_old (struct paramed_type *T);
+int fetch_constructor_bot_info_empty (struct paramed_type *T);
+int fetch_constructor_bot_info (struct paramed_type *T);
+int fetch_constructor_bytes (struct paramed_type *T);
+int fetch_constructor_chat_empty (struct paramed_type *T);
+int fetch_constructor_chat (struct paramed_type *T);
+int fetch_constructor_chat_forbidden (struct paramed_type *T);
+int fetch_constructor_geo_chat (struct paramed_type *T);
+int fetch_constructor_chat_full (struct paramed_type *T);
+int fetch_constructor_chat_invite_already (struct paramed_type *T);
+int fetch_constructor_chat_invite (struct paramed_type *T);
+int fetch_constructor_chat_located (struct paramed_type *T);
+int fetch_constructor_chat_participant (struct paramed_type *T);
+int fetch_constructor_chat_participants_forbidden (struct paramed_type *T);
+int fetch_constructor_chat_participants (struct paramed_type *T);
+int fetch_constructor_chat_photo_empty (struct paramed_type *T);
+int fetch_constructor_chat_photo (struct paramed_type *T);
+int fetch_constructor_client_d_h_inner_data (struct paramed_type *T);
+int fetch_constructor_config (struct paramed_type *T);
+int fetch_constructor_contact (struct paramed_type *T);
+int fetch_constructor_contact_blocked (struct paramed_type *T);
+int fetch_constructor_contact_found (struct paramed_type *T);
+int fetch_constructor_contact_link_unknown (struct paramed_type *T);
+int fetch_constructor_contact_link_none (struct paramed_type *T);
+int fetch_constructor_contact_link_has_phone (struct paramed_type *T);
+int fetch_constructor_contact_link_contact (struct paramed_type *T);
+int fetch_constructor_contact_status (struct paramed_type *T);
+int fetch_constructor_contact_suggested (struct paramed_type *T);
+int fetch_constructor_dc_option_l28 (struct paramed_type *T);
+int fetch_constructor_dc_option (struct paramed_type *T);
+int fetch_constructor_decrypted_message (struct paramed_type *T);
+int fetch_constructor_decrypted_message_service (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_read_messages (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_delete_messages (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_flush_history (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_resend (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_notify_layer (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_typing (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_request_key (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_accept_key (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_abort_key (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_commit_key (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_noop (struct paramed_type *T);
+int fetch_constructor_decrypted_message_layer (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_empty (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_photo (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_geo_point (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_contact (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_document (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_video (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_audio (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_external_document (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_video_l12 (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T);
+int fetch_constructor_dialog (struct paramed_type *T);
+int fetch_constructor_disabled_feature (struct paramed_type *T);
+int fetch_constructor_document_empty (struct paramed_type *T);
+int fetch_constructor_document (struct paramed_type *T);
+int fetch_constructor_document_l19 (struct paramed_type *T);
+int fetch_constructor_document_attribute_image_size (struct paramed_type *T);
+int fetch_constructor_document_attribute_animated (struct paramed_type *T);
+int fetch_constructor_document_attribute_sticker_l28 (struct paramed_type *T);
+int fetch_constructor_document_attribute_sticker (struct paramed_type *T);
+int fetch_constructor_document_attribute_video (struct paramed_type *T);
+int fetch_constructor_document_attribute_audio (struct paramed_type *T);
+int fetch_constructor_document_attribute_filename (struct paramed_type *T);
+int fetch_constructor_double (struct paramed_type *T);
+int fetch_constructor_encrypted_chat_empty (struct paramed_type *T);
+int fetch_constructor_encrypted_chat_waiting (struct paramed_type *T);
+int fetch_constructor_encrypted_chat_requested (struct paramed_type *T);
+int fetch_constructor_encrypted_chat (struct paramed_type *T);
+int fetch_constructor_encrypted_chat_discarded (struct paramed_type *T);
+int fetch_constructor_encrypted_file_empty (struct paramed_type *T);
+int fetch_constructor_encrypted_file (struct paramed_type *T);
+int fetch_constructor_encrypted_message (struct paramed_type *T);
+int fetch_constructor_encrypted_message_service (struct paramed_type *T);
+int fetch_constructor_error (struct paramed_type *T);
+int fetch_constructor_chat_invite_empty (struct paramed_type *T);
+int fetch_constructor_chat_invite_exported (struct paramed_type *T);
+int fetch_constructor_file_location_unavailable (struct paramed_type *T);
+int fetch_constructor_file_location (struct paramed_type *T);
+int fetch_constructor_geo_chat_message_empty (struct paramed_type *T);
+int fetch_constructor_geo_chat_message (struct paramed_type *T);
+int fetch_constructor_geo_chat_message_service (struct paramed_type *T);
+int fetch_constructor_geo_point_empty (struct paramed_type *T);
+int fetch_constructor_geo_point (struct paramed_type *T);
+int fetch_constructor_imported_contact (struct paramed_type *T);
+int fetch_constructor_input_app_event (struct paramed_type *T);
+int fetch_constructor_input_audio_empty (struct paramed_type *T);
+int fetch_constructor_input_audio (struct paramed_type *T);
+int fetch_constructor_input_chat_photo_empty (struct paramed_type *T);
+int fetch_constructor_input_chat_uploaded_photo (struct paramed_type *T);
+int fetch_constructor_input_chat_photo (struct paramed_type *T);
+int fetch_constructor_input_phone_contact (struct paramed_type *T);
+int fetch_constructor_input_document_empty (struct paramed_type *T);
+int fetch_constructor_input_document (struct paramed_type *T);
+int fetch_constructor_input_encrypted_chat (struct paramed_type *T);
+int fetch_constructor_input_encrypted_file_empty (struct paramed_type *T);
+int fetch_constructor_input_encrypted_file_uploaded (struct paramed_type *T);
+int fetch_constructor_input_encrypted_file (struct paramed_type *T);
+int fetch_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T);
+int fetch_constructor_input_file (struct paramed_type *T);
+int fetch_constructor_input_file_big (struct paramed_type *T);
+int fetch_constructor_input_file_location (struct paramed_type *T);
+int fetch_constructor_input_video_file_location (struct paramed_type *T);
+int fetch_constructor_input_encrypted_file_location (struct paramed_type *T);
+int fetch_constructor_input_audio_file_location (struct paramed_type *T);
+int fetch_constructor_input_document_file_location (struct paramed_type *T);
+int fetch_constructor_input_geo_chat (struct paramed_type *T);
+int fetch_constructor_input_geo_point_empty (struct paramed_type *T);
+int fetch_constructor_input_geo_point (struct paramed_type *T);
+int fetch_constructor_input_media_empty (struct paramed_type *T);
+int fetch_constructor_input_media_uploaded_photo (struct paramed_type *T);
+int fetch_constructor_input_media_photo (struct paramed_type *T);
+int fetch_constructor_input_media_geo_point (struct paramed_type *T);
+int fetch_constructor_input_media_contact (struct paramed_type *T);
+int fetch_constructor_input_media_uploaded_video (struct paramed_type *T);
+int fetch_constructor_input_media_uploaded_thumb_video (struct paramed_type *T);
+int fetch_constructor_input_media_video (struct paramed_type *T);
+int fetch_constructor_input_media_uploaded_audio (struct paramed_type *T);
+int fetch_constructor_input_media_audio (struct paramed_type *T);
+int fetch_constructor_input_media_uploaded_document (struct paramed_type *T);
+int fetch_constructor_input_media_uploaded_thumb_document (struct paramed_type *T);
+int fetch_constructor_input_media_document (struct paramed_type *T);
+int fetch_constructor_input_media_venue (struct paramed_type *T);
+int fetch_constructor_input_notify_peer (struct paramed_type *T);
+int fetch_constructor_input_notify_users (struct paramed_type *T);
+int fetch_constructor_input_notify_chats (struct paramed_type *T);
+int fetch_constructor_input_notify_all (struct paramed_type *T);
+int fetch_constructor_input_notify_geo_chat_peer (struct paramed_type *T);
+int fetch_constructor_input_peer_empty (struct paramed_type *T);
+int fetch_constructor_input_peer_self (struct paramed_type *T);
+int fetch_constructor_input_peer_contact (struct paramed_type *T);
+int fetch_constructor_input_peer_foreign (struct paramed_type *T);
+int fetch_constructor_input_peer_chat (struct paramed_type *T);
+int fetch_constructor_input_peer_notify_events_empty (struct paramed_type *T);
+int fetch_constructor_input_peer_notify_events_all (struct paramed_type *T);
+int fetch_constructor_input_peer_notify_settings (struct paramed_type *T);
+int fetch_constructor_input_photo_empty (struct paramed_type *T);
+int fetch_constructor_input_photo (struct paramed_type *T);
+int fetch_constructor_input_photo_crop_auto (struct paramed_type *T);
+int fetch_constructor_input_photo_crop (struct paramed_type *T);
+int fetch_constructor_input_privacy_key_status_timestamp (struct paramed_type *T);
+int fetch_constructor_input_privacy_value_allow_contacts (struct paramed_type *T);
+int fetch_constructor_input_privacy_value_allow_all (struct paramed_type *T);
+int fetch_constructor_input_privacy_value_allow_users (struct paramed_type *T);
+int fetch_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T);
+int fetch_constructor_input_privacy_value_disallow_all (struct paramed_type *T);
+int fetch_constructor_input_privacy_value_disallow_users (struct paramed_type *T);
+int fetch_constructor_input_sticker_set_empty (struct paramed_type *T);
+int fetch_constructor_input_sticker_set_i_d (struct paramed_type *T);
+int fetch_constructor_input_sticker_set_short_name (struct paramed_type *T);
+int fetch_constructor_input_user_empty (struct paramed_type *T);
+int fetch_constructor_input_user_self (struct paramed_type *T);
+int fetch_constructor_input_user_contact (struct paramed_type *T);
+int fetch_constructor_input_user_foreign (struct paramed_type *T);
+int fetch_constructor_input_video_empty (struct paramed_type *T);
+int fetch_constructor_input_video (struct paramed_type *T);
+int fetch_constructor_int (struct paramed_type *T);
+int fetch_constructor_int128 (struct paramed_type *T);
+int fetch_constructor_int256 (struct paramed_type *T);
+int fetch_constructor_keyboard_button (struct paramed_type *T);
+int fetch_constructor_keyboard_button_row (struct paramed_type *T);
+int fetch_constructor_long (struct paramed_type *T);
+int fetch_constructor_message_empty (struct paramed_type *T);
+int fetch_constructor_message (struct paramed_type *T);
+int fetch_constructor_message_service (struct paramed_type *T);
+int fetch_constructor_message_action_empty (struct paramed_type *T);
+int fetch_constructor_message_action_chat_create (struct paramed_type *T);
+int fetch_constructor_message_action_chat_edit_title (struct paramed_type *T);
+int fetch_constructor_message_action_chat_edit_photo (struct paramed_type *T);
+int fetch_constructor_message_action_chat_delete_photo (struct paramed_type *T);
+int fetch_constructor_message_action_chat_add_user (struct paramed_type *T);
+int fetch_constructor_message_action_chat_delete_user (struct paramed_type *T);
+int fetch_constructor_message_action_geo_chat_create (struct paramed_type *T);
+int fetch_constructor_message_action_geo_chat_checkin (struct paramed_type *T);
+int fetch_constructor_message_action_chat_joined_by_link (struct paramed_type *T);
+int fetch_constructor_message_media_empty (struct paramed_type *T);
+int fetch_constructor_message_media_photo (struct paramed_type *T);
+int fetch_constructor_message_media_video (struct paramed_type *T);
+int fetch_constructor_message_media_geo (struct paramed_type *T);
+int fetch_constructor_message_media_contact (struct paramed_type *T);
+int fetch_constructor_message_media_unsupported (struct paramed_type *T);
+int fetch_constructor_message_media_document (struct paramed_type *T);
+int fetch_constructor_message_media_audio (struct paramed_type *T);
+int fetch_constructor_message_media_web_page (struct paramed_type *T);
+int fetch_constructor_message_media_venue (struct paramed_type *T);
+int fetch_constructor_message_media_photo_l27 (struct paramed_type *T);
+int fetch_constructor_message_media_video_l27 (struct paramed_type *T);
+int fetch_constructor_input_messages_filter_empty (struct paramed_type *T);
+int fetch_constructor_input_messages_filter_photos (struct paramed_type *T);
+int fetch_constructor_input_messages_filter_video (struct paramed_type *T);
+int fetch_constructor_input_messages_filter_photo_video (struct paramed_type *T);
+int fetch_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T);
+int fetch_constructor_input_messages_filter_document (struct paramed_type *T);
+int fetch_constructor_input_messages_filter_audio (struct paramed_type *T);
+int fetch_constructor_nearest_dc (struct paramed_type *T);
+int fetch_constructor_notify_peer (struct paramed_type *T);
+int fetch_constructor_notify_users (struct paramed_type *T);
+int fetch_constructor_notify_chats (struct paramed_type *T);
+int fetch_constructor_notify_all (struct paramed_type *T);
+int fetch_constructor_null (struct paramed_type *T);
+int fetch_constructor_p_q_inner_data (struct paramed_type *T);
+int fetch_constructor_p_q_inner_data_temp (struct paramed_type *T);
+int fetch_constructor_peer_user (struct paramed_type *T);
+int fetch_constructor_peer_chat (struct paramed_type *T);
+int fetch_constructor_peer_notify_events_empty (struct paramed_type *T);
+int fetch_constructor_peer_notify_events_all (struct paramed_type *T);
+int fetch_constructor_peer_notify_settings_empty (struct paramed_type *T);
+int fetch_constructor_peer_notify_settings (struct paramed_type *T);
+int fetch_constructor_photo_empty (struct paramed_type *T);
+int fetch_constructor_photo (struct paramed_type *T);
+int fetch_constructor_photo_l27 (struct paramed_type *T);
+int fetch_constructor_photo_size_empty (struct paramed_type *T);
+int fetch_constructor_photo_size (struct paramed_type *T);
+int fetch_constructor_photo_cached_size (struct paramed_type *T);
+int fetch_constructor_privacy_key_status_timestamp (struct paramed_type *T);
+int fetch_constructor_privacy_value_allow_contacts (struct paramed_type *T);
+int fetch_constructor_privacy_value_allow_all (struct paramed_type *T);
+int fetch_constructor_privacy_value_allow_users (struct paramed_type *T);
+int fetch_constructor_privacy_value_disallow_contacts (struct paramed_type *T);
+int fetch_constructor_privacy_value_disallow_all (struct paramed_type *T);
+int fetch_constructor_privacy_value_disallow_users (struct paramed_type *T);
+int fetch_constructor_received_notify_message (struct paramed_type *T);
+int fetch_constructor_reply_keyboard_hide (struct paramed_type *T);
+int fetch_constructor_reply_keyboard_force_reply (struct paramed_type *T);
+int fetch_constructor_reply_keyboard_markup (struct paramed_type *T);
+int fetch_constructor_res_p_q (struct paramed_type *T);
+int fetch_constructor_send_message_typing_action (struct paramed_type *T);
+int fetch_constructor_send_message_cancel_action (struct paramed_type *T);
+int fetch_constructor_send_message_record_video_action (struct paramed_type *T);
+int fetch_constructor_send_message_upload_video_action_l27 (struct paramed_type *T);
+int fetch_constructor_send_message_upload_video_action (struct paramed_type *T);
+int fetch_constructor_send_message_record_audio_action (struct paramed_type *T);
+int fetch_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T);
+int fetch_constructor_send_message_upload_audio_action (struct paramed_type *T);
+int fetch_constructor_send_message_upload_photo_action (struct paramed_type *T);
+int fetch_constructor_send_message_upload_document_action_l27 (struct paramed_type *T);
+int fetch_constructor_send_message_upload_document_action (struct paramed_type *T);
+int fetch_constructor_send_message_geo_location_action (struct paramed_type *T);
+int fetch_constructor_send_message_choose_contact_action (struct paramed_type *T);
+int fetch_constructor_server_d_h_params_fail (struct paramed_type *T);
+int fetch_constructor_server_d_h_params_ok (struct paramed_type *T);
+int fetch_constructor_server_d_h_inner_data (struct paramed_type *T);
+int fetch_constructor_dh_gen_ok (struct paramed_type *T);
+int fetch_constructor_dh_gen_retry (struct paramed_type *T);
+int fetch_constructor_dh_gen_fail (struct paramed_type *T);
+int fetch_constructor_sticker_pack (struct paramed_type *T);
+int fetch_constructor_sticker_set (struct paramed_type *T);
+int fetch_constructor_string (struct paramed_type *T);
+int fetch_constructor_update_new_message (struct paramed_type *T);
+int fetch_constructor_update_message_i_d (struct paramed_type *T);
+int fetch_constructor_update_delete_messages (struct paramed_type *T);
+int fetch_constructor_update_user_typing (struct paramed_type *T);
+int fetch_constructor_update_chat_user_typing (struct paramed_type *T);
+int fetch_constructor_update_chat_participants (struct paramed_type *T);
+int fetch_constructor_update_user_status (struct paramed_type *T);
+int fetch_constructor_update_user_name (struct paramed_type *T);
+int fetch_constructor_update_user_photo (struct paramed_type *T);
+int fetch_constructor_update_contact_registered (struct paramed_type *T);
+int fetch_constructor_update_contact_link (struct paramed_type *T);
+int fetch_constructor_update_new_authorization (struct paramed_type *T);
+int fetch_constructor_update_new_geo_chat_message (struct paramed_type *T);
+int fetch_constructor_update_new_encrypted_message (struct paramed_type *T);
+int fetch_constructor_update_encrypted_chat_typing (struct paramed_type *T);
+int fetch_constructor_update_encryption (struct paramed_type *T);
+int fetch_constructor_update_encrypted_messages_read (struct paramed_type *T);
+int fetch_constructor_update_chat_participant_add (struct paramed_type *T);
+int fetch_constructor_update_chat_participant_delete (struct paramed_type *T);
+int fetch_constructor_update_dc_options (struct paramed_type *T);
+int fetch_constructor_update_user_blocked (struct paramed_type *T);
+int fetch_constructor_update_notify_settings (struct paramed_type *T);
+int fetch_constructor_update_service_notification (struct paramed_type *T);
+int fetch_constructor_update_privacy (struct paramed_type *T);
+int fetch_constructor_update_user_phone (struct paramed_type *T);
+int fetch_constructor_update_read_history_inbox (struct paramed_type *T);
+int fetch_constructor_update_read_history_outbox (struct paramed_type *T);
+int fetch_constructor_update_web_page (struct paramed_type *T);
+int fetch_constructor_update_read_messages_contents (struct paramed_type *T);
+int fetch_constructor_update_msg_update (struct paramed_type *T);
+int fetch_constructor_updates_too_long (struct paramed_type *T);
+int fetch_constructor_update_short_message (struct paramed_type *T);
+int fetch_constructor_update_short_chat_message (struct paramed_type *T);
+int fetch_constructor_update_short (struct paramed_type *T);
+int fetch_constructor_updates_combined (struct paramed_type *T);
+int fetch_constructor_updates (struct paramed_type *T);
+int fetch_constructor_user_empty (struct paramed_type *T);
+int fetch_constructor_user (struct paramed_type *T);
+int fetch_constructor_user_full (struct paramed_type *T);
+int fetch_constructor_user_profile_photo_empty (struct paramed_type *T);
+int fetch_constructor_user_profile_photo (struct paramed_type *T);
+int fetch_constructor_user_status_empty (struct paramed_type *T);
+int fetch_constructor_user_status_online (struct paramed_type *T);
+int fetch_constructor_user_status_offline (struct paramed_type *T);
+int fetch_constructor_user_status_recently (struct paramed_type *T);
+int fetch_constructor_user_status_last_week (struct paramed_type *T);
+int fetch_constructor_user_status_last_month (struct paramed_type *T);
+int fetch_constructor_vector (struct paramed_type *T);
+int fetch_constructor_video_empty (struct paramed_type *T);
+int fetch_constructor_video (struct paramed_type *T);
+int fetch_constructor_video_l27 (struct paramed_type *T);
+int fetch_constructor_wall_paper (struct paramed_type *T);
+int fetch_constructor_wall_paper_solid (struct paramed_type *T);
+int fetch_constructor_web_page_empty (struct paramed_type *T);
+int fetch_constructor_web_page_pending (struct paramed_type *T);
+int fetch_constructor_web_page (struct paramed_type *T);
+int fetch_constructor_account_authorizations (struct paramed_type *T);
+int fetch_constructor_account_no_password (struct paramed_type *T);
+int fetch_constructor_account_password (struct paramed_type *T);
+int fetch_constructor_account_password_input_settings (struct paramed_type *T);
+int fetch_constructor_account_password_settings (struct paramed_type *T);
+int fetch_constructor_account_privacy_rules (struct paramed_type *T);
+int fetch_constructor_account_sent_change_phone_code (struct paramed_type *T);
+int fetch_constructor_auth_authorization (struct paramed_type *T);
+int fetch_constructor_auth_checked_phone (struct paramed_type *T);
+int fetch_constructor_auth_exported_authorization (struct paramed_type *T);
+int fetch_constructor_auth_password_recovery (struct paramed_type *T);
+int fetch_constructor_auth_sent_code (struct paramed_type *T);
+int fetch_constructor_auth_sent_app_code (struct paramed_type *T);
+int fetch_constructor_binlog_encr_key (struct paramed_type *T);
+int fetch_constructor_binlog_start (struct paramed_type *T);
+int fetch_constructor_binlog_dc_option (struct paramed_type *T);
+int fetch_constructor_binlog_dc_option_new (struct paramed_type *T);
+int fetch_constructor_binlog_auth_key (struct paramed_type *T);
+int fetch_constructor_binlog_default_dc (struct paramed_type *T);
+int fetch_constructor_binlog_dc_signed (struct paramed_type *T);
+int fetch_constructor_binlog_our_id (struct paramed_type *T);
+int fetch_constructor_binlog_set_dh_params (struct paramed_type *T);
+int fetch_constructor_binlog_set_pts (struct paramed_type *T);
+int fetch_constructor_binlog_set_qts (struct paramed_type *T);
+int fetch_constructor_binlog_set_date (struct paramed_type *T);
+int fetch_constructor_binlog_set_seq (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_delete (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_new (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T);
+int fetch_constructor_binlog_user_delete (struct paramed_type *T);
+int fetch_constructor_binlog_user_new (struct paramed_type *T);
+int fetch_constructor_binlog_chat_new (struct paramed_type *T);
+int fetch_constructor_binlog_chat_add_participant (struct paramed_type *T);
+int fetch_constructor_binlog_chat_del_participant (struct paramed_type *T);
+int fetch_constructor_binlog_set_msg_id (struct paramed_type *T);
+int fetch_constructor_binlog_message_delete (struct paramed_type *T);
+int fetch_constructor_binlog_message_new (struct paramed_type *T);
+int fetch_constructor_binlog_message_encr_new (struct paramed_type *T);
+int fetch_constructor_binlog_msg_update (struct paramed_type *T);
+int fetch_constructor_binlog_reset_authorization (struct paramed_type *T);
+int fetch_constructor_contacts_blocked (struct paramed_type *T);
+int fetch_constructor_contacts_blocked_slice (struct paramed_type *T);
+int fetch_constructor_contacts_contacts_not_modified (struct paramed_type *T);
+int fetch_constructor_contacts_contacts (struct paramed_type *T);
+int fetch_constructor_contacts_found (struct paramed_type *T);
+int fetch_constructor_contacts_imported_contacts (struct paramed_type *T);
+int fetch_constructor_contacts_link (struct paramed_type *T);
+int fetch_constructor_contacts_suggested (struct paramed_type *T);
+int fetch_constructor_geochats_located (struct paramed_type *T);
+int fetch_constructor_geochats_messages (struct paramed_type *T);
+int fetch_constructor_geochats_messages_slice (struct paramed_type *T);
+int fetch_constructor_geochats_stated_message (struct paramed_type *T);
+int fetch_constructor_help_app_update (struct paramed_type *T);
+int fetch_constructor_help_no_app_update (struct paramed_type *T);
+int fetch_constructor_help_invite_text (struct paramed_type *T);
+int fetch_constructor_help_support (struct paramed_type *T);
+int fetch_constructor_messages_affected_history (struct paramed_type *T);
+int fetch_constructor_messages_affected_messages (struct paramed_type *T);
+int fetch_constructor_messages_all_stickers_not_modified (struct paramed_type *T);
+int fetch_constructor_messages_all_stickers (struct paramed_type *T);
+int fetch_constructor_messages_chat_full (struct paramed_type *T);
+int fetch_constructor_messages_chats (struct paramed_type *T);
+int fetch_constructor_messages_dh_config_not_modified (struct paramed_type *T);
+int fetch_constructor_messages_dh_config (struct paramed_type *T);
+int fetch_constructor_messages_dialogs (struct paramed_type *T);
+int fetch_constructor_messages_dialogs_slice (struct paramed_type *T);
+int fetch_constructor_messages_message_empty (struct paramed_type *T);
+int fetch_constructor_messages_messages (struct paramed_type *T);
+int fetch_constructor_messages_messages_slice (struct paramed_type *T);
+int fetch_constructor_messages_sent_encrypted_message (struct paramed_type *T);
+int fetch_constructor_messages_sent_encrypted_file (struct paramed_type *T);
+int fetch_constructor_messages_sent_message (struct paramed_type *T);
+int fetch_constructor_messages_sent_message_link (struct paramed_type *T);
+int fetch_constructor_messages_sticker_set (struct paramed_type *T);
+int fetch_constructor_messages_stickers_not_modified (struct paramed_type *T);
+int fetch_constructor_messages_stickers (struct paramed_type *T);
+int fetch_constructor_photos_photo (struct paramed_type *T);
+int fetch_constructor_photos_photos (struct paramed_type *T);
+int fetch_constructor_photos_photos_slice (struct paramed_type *T);
+int fetch_constructor_storage_file_unknown (struct paramed_type *T);
+int fetch_constructor_storage_file_jpeg (struct paramed_type *T);
+int fetch_constructor_storage_file_gif (struct paramed_type *T);
+int fetch_constructor_storage_file_png (struct paramed_type *T);
+int fetch_constructor_storage_file_pdf (struct paramed_type *T);
+int fetch_constructor_storage_file_mp3 (struct paramed_type *T);
+int fetch_constructor_storage_file_mov (struct paramed_type *T);
+int fetch_constructor_storage_file_partial (struct paramed_type *T);
+int fetch_constructor_storage_file_mp4 (struct paramed_type *T);
+int fetch_constructor_storage_file_webp (struct paramed_type *T);
+int fetch_constructor_updates_difference_empty (struct paramed_type *T);
+int fetch_constructor_updates_difference (struct paramed_type *T);
+int fetch_constructor_updates_difference_slice (struct paramed_type *T);
+int fetch_constructor_updates_state (struct paramed_type *T);
+int fetch_constructor_upload_file (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 fetch_type_audio (struct paramed_type *T);
+int fetch_type_bare_audio (struct paramed_type *T);
+int fetch_type_authorization (struct paramed_type *T);
+int fetch_type_bare_authorization (struct paramed_type *T);
+int fetch_type_bool (struct paramed_type *T);
+int fetch_type_bare_bool (struct paramed_type *T);
+int fetch_type_bot_command (struct paramed_type *T);
+int fetch_type_bare_bot_command (struct paramed_type *T);
+int fetch_type_bot_info (struct paramed_type *T);
+int fetch_type_bare_bot_info (struct paramed_type *T);
+int fetch_type_bytes (struct paramed_type *T);
+int fetch_type_bare_bytes (struct paramed_type *T);
+int fetch_type_chat (struct paramed_type *T);
+int fetch_type_bare_chat (struct paramed_type *T);
+int fetch_type_chat_full (struct paramed_type *T);
+int fetch_type_bare_chat_full (struct paramed_type *T);
+int fetch_type_chat_invite (struct paramed_type *T);
+int fetch_type_bare_chat_invite (struct paramed_type *T);
+int fetch_type_chat_located (struct paramed_type *T);
+int fetch_type_bare_chat_located (struct paramed_type *T);
+int fetch_type_chat_participant (struct paramed_type *T);
+int fetch_type_bare_chat_participant (struct paramed_type *T);
+int fetch_type_chat_participants (struct paramed_type *T);
+int fetch_type_bare_chat_participants (struct paramed_type *T);
+int fetch_type_chat_photo (struct paramed_type *T);
+int fetch_type_bare_chat_photo (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 fetch_type_config (struct paramed_type *T);
+int fetch_type_bare_config (struct paramed_type *T);
+int fetch_type_contact (struct paramed_type *T);
+int fetch_type_bare_contact (struct paramed_type *T);
+int fetch_type_contact_blocked (struct paramed_type *T);
+int fetch_type_bare_contact_blocked (struct paramed_type *T);
+int fetch_type_contact_found (struct paramed_type *T);
+int fetch_type_bare_contact_found (struct paramed_type *T);
+int fetch_type_contact_link (struct paramed_type *T);
+int fetch_type_bare_contact_link (struct paramed_type *T);
+int fetch_type_contact_status (struct paramed_type *T);
+int fetch_type_bare_contact_status (struct paramed_type *T);
+int fetch_type_contact_suggested (struct paramed_type *T);
+int fetch_type_bare_contact_suggested (struct paramed_type *T);
+int fetch_type_dc_option (struct paramed_type *T);
+int fetch_type_bare_dc_option (struct paramed_type *T);
+int fetch_type_decrypted_message (struct paramed_type *T);
+int fetch_type_bare_decrypted_message (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 fetch_type_decrypted_message_layer (struct paramed_type *T);
+int fetch_type_bare_decrypted_message_layer (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 fetch_type_dialog (struct paramed_type *T);
+int fetch_type_bare_dialog (struct paramed_type *T);
+int fetch_type_disabled_feature (struct paramed_type *T);
+int fetch_type_bare_disabled_feature (struct paramed_type *T);
+int fetch_type_document (struct paramed_type *T);
+int fetch_type_bare_document (struct paramed_type *T);
+int fetch_type_document_attribute (struct paramed_type *T);
+int fetch_type_bare_document_attribute (struct paramed_type *T);
+int fetch_type_double (struct paramed_type *T);
+int fetch_type_bare_double (struct paramed_type *T);
+int fetch_type_encrypted_chat (struct paramed_type *T);
+int fetch_type_bare_encrypted_chat (struct paramed_type *T);
+int fetch_type_encrypted_file (struct paramed_type *T);
+int fetch_type_bare_encrypted_file (struct paramed_type *T);
+int fetch_type_encrypted_message (struct paramed_type *T);
+int fetch_type_bare_encrypted_message (struct paramed_type *T);
+int fetch_type_error (struct paramed_type *T);
+int fetch_type_bare_error (struct paramed_type *T);
+int fetch_type_exported_chat_invite (struct paramed_type *T);
+int fetch_type_bare_exported_chat_invite (struct paramed_type *T);
+int fetch_type_file_location (struct paramed_type *T);
+int fetch_type_bare_file_location (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 fetch_type_geo_point (struct paramed_type *T);
+int fetch_type_bare_geo_point (struct paramed_type *T);
+int fetch_type_imported_contact (struct paramed_type *T);
+int fetch_type_bare_imported_contact (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 fetch_type_input_audio (struct paramed_type *T);
+int fetch_type_bare_input_audio (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 fetch_type_input_contact (struct paramed_type *T);
+int fetch_type_bare_input_contact (struct paramed_type *T);
+int fetch_type_input_document (struct paramed_type *T);
+int fetch_type_bare_input_document (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 fetch_type_input_encrypted_file (struct paramed_type *T);
+int fetch_type_bare_input_encrypted_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 fetch_type_input_file_location (struct paramed_type *T);
+int fetch_type_bare_input_file_location (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 fetch_type_input_geo_point (struct paramed_type *T);
+int fetch_type_bare_input_geo_point (struct paramed_type *T);
+int fetch_type_input_media (struct paramed_type *T);
+int fetch_type_bare_input_media (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 fetch_type_input_peer (struct paramed_type *T);
+int fetch_type_bare_input_peer (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 fetch_type_input_peer_notify_settings (struct paramed_type *T);
+int fetch_type_bare_input_peer_notify_settings (struct paramed_type *T);
+int fetch_type_input_photo (struct paramed_type *T);
+int fetch_type_bare_input_photo (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 fetch_type_input_privacy_key (struct paramed_type *T);
+int fetch_type_bare_input_privacy_key (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 fetch_type_input_sticker_set (struct paramed_type *T);
+int fetch_type_bare_input_sticker_set (struct paramed_type *T);
+int fetch_type_input_user (struct paramed_type *T);
+int fetch_type_bare_input_user (struct paramed_type *T);
+int fetch_type_input_video (struct paramed_type *T);
+int fetch_type_bare_input_video (struct paramed_type *T);
+int fetch_type_int (struct paramed_type *T);
+int fetch_type_bare_int (struct paramed_type *T);
+int fetch_type_int128 (struct paramed_type *T);
+int fetch_type_bare_int128 (struct paramed_type *T);
+int fetch_type_int256 (struct paramed_type *T);
+int fetch_type_bare_int256 (struct paramed_type *T);
+int fetch_type_keyboard_button (struct paramed_type *T);
+int fetch_type_bare_keyboard_button (struct paramed_type *T);
+int fetch_type_keyboard_button_row (struct paramed_type *T);
+int fetch_type_bare_keyboard_button_row (struct paramed_type *T);
+int fetch_type_long (struct paramed_type *T);
+int fetch_type_bare_long (struct paramed_type *T);
+int fetch_type_message (struct paramed_type *T);
+int fetch_type_bare_message (struct paramed_type *T);
+int fetch_type_message_action (struct paramed_type *T);
+int fetch_type_bare_message_action (struct paramed_type *T);
+int fetch_type_message_media (struct paramed_type *T);
+int fetch_type_bare_message_media (struct paramed_type *T);
+int fetch_type_messages_filter (struct paramed_type *T);
+int fetch_type_bare_messages_filter (struct paramed_type *T);
+int fetch_type_nearest_dc (struct paramed_type *T);
+int fetch_type_bare_nearest_dc (struct paramed_type *T);
+int fetch_type_notify_peer (struct paramed_type *T);
+int fetch_type_bare_notify_peer (struct paramed_type *T);
+int fetch_type_null (struct paramed_type *T);
+int fetch_type_bare_null (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 fetch_type_peer (struct paramed_type *T);
+int fetch_type_bare_peer (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 fetch_type_peer_notify_settings (struct paramed_type *T);
+int fetch_type_bare_peer_notify_settings (struct paramed_type *T);
+int fetch_type_photo (struct paramed_type *T);
+int fetch_type_bare_photo (struct paramed_type *T);
+int fetch_type_photo_size (struct paramed_type *T);
+int fetch_type_bare_photo_size (struct paramed_type *T);
+int fetch_type_privacy_key (struct paramed_type *T);
+int fetch_type_bare_privacy_key (struct paramed_type *T);
+int fetch_type_privacy_rule (struct paramed_type *T);
+int fetch_type_bare_privacy_rule (struct paramed_type *T);
+int fetch_type_received_notify_message (struct paramed_type *T);
+int fetch_type_bare_received_notify_message (struct paramed_type *T);
+int fetch_type_reply_markup (struct paramed_type *T);
+int fetch_type_bare_reply_markup (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 fetch_type_send_message_action (struct paramed_type *T);
+int fetch_type_bare_send_message_action (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 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 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 fetch_type_sticker_pack (struct paramed_type *T);
+int fetch_type_bare_sticker_pack (struct paramed_type *T);
+int fetch_type_sticker_set (struct paramed_type *T);
+int fetch_type_bare_sticker_set (struct paramed_type *T);
+int fetch_type_string (struct paramed_type *T);
+int fetch_type_bare_string (struct paramed_type *T);
+int fetch_type_update (struct paramed_type *T);
+int fetch_type_bare_update (struct paramed_type *T);
+int fetch_type_updates (struct paramed_type *T);
+int fetch_type_bare_updates (struct paramed_type *T);
+int fetch_type_user (struct paramed_type *T);
+int fetch_type_bare_user (struct paramed_type *T);
+int fetch_type_user_full (struct paramed_type *T);
+int fetch_type_bare_user_full (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 fetch_type_user_status (struct paramed_type *T);
+int fetch_type_bare_user_status (struct paramed_type *T);
+int fetch_type_vector (struct paramed_type *T);
+int fetch_type_bare_vector (struct paramed_type *T);
+int fetch_type_video (struct paramed_type *T);
+int fetch_type_bare_video (struct paramed_type *T);
+int fetch_type_wall_paper (struct paramed_type *T);
+int fetch_type_bare_wall_paper (struct paramed_type *T);
+int fetch_type_web_page (struct paramed_type *T);
+int fetch_type_bare_web_page (struct paramed_type *T);
+int fetch_type_account_authorizations (struct paramed_type *T);
+int fetch_type_bare_account_authorizations (struct paramed_type *T);
+int fetch_type_account_password (struct paramed_type *T);
+int fetch_type_bare_account_password (struct paramed_type *T);
+int fetch_type_account_password_input_settings (struct paramed_type *T);
+int fetch_type_bare_account_password_input_settings (struct paramed_type *T);
+int fetch_type_account_password_settings (struct paramed_type *T);
+int fetch_type_bare_account_password_settings (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 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 fetch_type_auth_authorization (struct paramed_type *T);
+int fetch_type_bare_auth_authorization (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 fetch_type_auth_exported_authorization (struct paramed_type *T);
+int fetch_type_bare_auth_exported_authorization (struct paramed_type *T);
+int fetch_type_auth_password_recovery (struct paramed_type *T);
+int fetch_type_bare_auth_password_recovery (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 fetch_type_binlog_encr_key (struct paramed_type *T);
+int fetch_type_bare_binlog_encr_key (struct paramed_type *T);
+int fetch_type_binlog_update (struct paramed_type *T);
+int fetch_type_bare_binlog_update (struct paramed_type *T);
+int fetch_type_contacts_blocked (struct paramed_type *T);
+int fetch_type_bare_contacts_blocked (struct paramed_type *T);
+int fetch_type_contacts_contacts (struct paramed_type *T);
+int fetch_type_bare_contacts_contacts (struct paramed_type *T);
+int fetch_type_contacts_found (struct paramed_type *T);
+int fetch_type_bare_contacts_found (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 fetch_type_contacts_link (struct paramed_type *T);
+int fetch_type_bare_contacts_link (struct paramed_type *T);
+int fetch_type_contacts_suggested (struct paramed_type *T);
+int fetch_type_bare_contacts_suggested (struct paramed_type *T);
+int fetch_type_geochats_located (struct paramed_type *T);
+int fetch_type_bare_geochats_located (struct paramed_type *T);
+int fetch_type_geochats_messages (struct paramed_type *T);
+int fetch_type_bare_geochats_messages (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 fetch_type_help_app_update (struct paramed_type *T);
+int fetch_type_bare_help_app_update (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 fetch_type_help_support (struct paramed_type *T);
+int fetch_type_bare_help_support (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 fetch_type_messages_affected_messages (struct paramed_type *T);
+int fetch_type_bare_messages_affected_messages (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 fetch_type_messages_chat_full (struct paramed_type *T);
+int fetch_type_bare_messages_chat_full (struct paramed_type *T);
+int fetch_type_messages_chats (struct paramed_type *T);
+int fetch_type_bare_messages_chats (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 fetch_type_messages_dialogs (struct paramed_type *T);
+int fetch_type_bare_messages_dialogs (struct paramed_type *T);
+int fetch_type_messages_message (struct paramed_type *T);
+int fetch_type_bare_messages_message (struct paramed_type *T);
+int fetch_type_messages_messages (struct paramed_type *T);
+int fetch_type_bare_messages_messages (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 fetch_type_messages_sent_message (struct paramed_type *T);
+int fetch_type_bare_messages_sent_message (struct paramed_type *T);
+int fetch_type_messages_sticker_set (struct paramed_type *T);
+int fetch_type_bare_messages_sticker_set (struct paramed_type *T);
+int fetch_type_messages_stickers (struct paramed_type *T);
+int fetch_type_bare_messages_stickers (struct paramed_type *T);
+int fetch_type_photos_photo (struct paramed_type *T);
+int fetch_type_bare_photos_photo (struct paramed_type *T);
+int fetch_type_photos_photos (struct paramed_type *T);
+int fetch_type_bare_photos_photos (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 fetch_type_updates_difference (struct paramed_type *T);
+int fetch_type_bare_updates_difference (struct paramed_type *T);
+int fetch_type_updates_state (struct paramed_type *T);
+int fetch_type_bare_updates_state (struct paramed_type *T);
+int fetch_type_upload_file (struct paramed_type *T);
+int fetch_type_bare_upload_file (struct paramed_type *T);
+int fetch_type_any (struct paramed_type *T);
diff --git a/libs/tgl/src/auto/auto-free-ds.c b/libs/tgl/src/auto/auto-free-ds.c
new file mode 100644
index 0000000000..1538633aff
--- /dev/null
+++ b/libs/tgl/src/auto/auto-free-ds.c
@@ -0,0 +1,9116 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#include "auto-free-ds.h"
+#include "auto-skip.h"
+#include "auto-types.h"
+#include "..\auto-static-free-ds.c"
+#include "..\mtproto-common.h"
+#else
+#include "auto.h"
+#include "auto/auto-free-ds.h"
+#include "auto/auto-skip.h"
+#include "auto/auto-types.h"
+#include "auto-static-free-ds.c"
+#include "mtproto-common.h"
+#endif
+#include <assert.h>
+void free_ds_constructor_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->days, field1);
+}
+void free_ds_constructor_audio_empty (struct tl_ds_audio *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+}
+void free_ds_constructor_audio (struct tl_ds_audio *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field3);
+ 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,
+ };
+ free_ds_type_int (D->date, field4);
+ 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,
+ };
+ free_ds_type_int (D->duration, field5);
+ 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,
+ };
+ free_ds_type_string (D->mime_type, field6);
+ 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,
+ };
+ free_ds_type_int (D->size, field7);
+ 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,
+ };
+ free_ds_type_int (D->dc_id, field8);
+}
+void free_ds_constructor_authorization (struct tl_ds_authorization *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->hash, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->flags, field2);
+ 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,
+ };
+ free_ds_type_string (D->device_model, field3);
+ 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,
+ };
+ free_ds_type_string (D->platform, field4);
+ 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,
+ };
+ free_ds_type_string (D->system_version, field5);
+ 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,
+ };
+ free_ds_type_int (D->api_id, field6);
+ 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,
+ };
+ free_ds_type_string (D->app_name, field7);
+ 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,
+ };
+ free_ds_type_string (D->app_version, field8);
+ 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,
+ };
+ free_ds_type_int (D->date_created, field9);
+ 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,
+ };
+ free_ds_type_int (D->date_active, field10);
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_string (D->ip, field11);
+ struct paramed_type *field12 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_string (D->country, field12);
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_string (D->region, field13);
+}
+void free_ds_constructor_bool_false (struct tl_ds_bool *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return; }
+}
+void free_ds_constructor_bool_true (struct tl_ds_bool *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return; }
+}
+void free_ds_constructor_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->command, field1);
+ 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,
+ };
+ free_ds_type_string (D->description, field2);
+}
+void free_ds_constructor_bot_command_old (struct tl_ds_bot_command *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->command, field1);
+ 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,
+ };
+ free_ds_type_string (D->params, field2);
+ 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,
+ };
+ free_ds_type_string (D->description, field3);
+}
+void free_ds_constructor_bot_info_empty (struct tl_ds_bot_info *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return; }
+}
+void free_ds_constructor_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->version, field2);
+ 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,
+ };
+ free_ds_type_string (D->share_text, field3);
+ 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,
+ };
+ free_ds_type_string (D->description, field4);
+ 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 = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->commands, field5);
+}
+void free_ds_constructor_bytes (struct tl_ds_string *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return; }
+ tfree (D->data, D->len + 1);
+ tfree (D, sizeof (*D));
+}
+void free_ds_constructor_chat_empty (struct tl_ds_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+}
+void free_ds_constructor_chat (struct tl_ds_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ 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,
+ };
+ free_ds_type_string (D->title, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_chat_photo (D->photo, field3);
+ 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,
+ };
+ free_ds_type_int (D->participants_count, field4);
+ 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,
+ };
+ free_ds_type_int (D->date, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->left, field6);
+ 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,
+ };
+ free_ds_type_int (D->version, field7);
+}
+void free_ds_constructor_chat_forbidden (struct tl_ds_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ 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,
+ };
+ free_ds_type_string (D->title, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field3);
+}
+void free_ds_constructor_geo_chat (struct tl_ds_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+ 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,
+ };
+ free_ds_type_string (D->title, field3);
+ 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,
+ };
+ free_ds_type_string (D->address, field4);
+ 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,
+ };
+ free_ds_type_string (D->venue, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_geo_point (D->geo, field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_chat_photo (D->photo, field7);
+ 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,
+ };
+ free_ds_type_int (D->participants_count, field8);
+ 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,
+ };
+ free_ds_type_int (D->date, field9);
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->checked_in, field10);
+ 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,
+ };
+ free_ds_type_int (D->version, field11);
+}
+void free_ds_constructor_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_chat_participants (D->participants, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_photo (D->chat_photo, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_peer_notify_settings (D->notify_settings, field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_exported_chat_invite (D->exported_invite, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->bot_info, field6);
+}
+void free_ds_constructor_chat_invite_already (struct tl_ds_chat_invite *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_chat (D->chat, field1);
+}
+void free_ds_constructor_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->title, field1);
+}
+void free_ds_constructor_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->distance, field2);
+}
+void free_ds_constructor_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->inviter_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field3);
+}
+void free_ds_constructor_chat_participants_forbidden (struct tl_ds_chat_participants *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field1);
+}
+void free_ds_constructor_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->admin_id, field2);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->participants, field3);
+ 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,
+ };
+ free_ds_type_int (D->version, field4);
+}
+void free_ds_constructor_chat_photo_empty (struct tl_ds_chat_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return; }
+}
+void free_ds_constructor_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_file_location (D->photo_small, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_file_location (D->photo_big, field2);
+}
+void free_ds_constructor_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return; }
+ 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,
+ };
+ free_ds_type_int128 (D->nonce, field1);
+ 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,
+ };
+ free_ds_type_int128 (D->server_nonce, field2);
+ 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,
+ };
+ free_ds_type_long (D->retry_id, field3);
+ 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,
+ };
+ free_ds_type_string (D->g_b, field4);
+}
+void free_ds_constructor_config (struct tl_ds_config *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->expires, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->test_mode, field3);
+ 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,
+ };
+ free_ds_type_int (D->this_dc, field4);
+ 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 = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->dc_options, field5);
+ 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,
+ };
+ free_ds_type_int (D->chat_size_max, field6);
+ 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,
+ };
+ free_ds_type_int (D->broadcast_size_max, field7);
+ 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,
+ };
+ free_ds_type_int (D->forwarded_count_max, field8);
+ 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,
+ };
+ free_ds_type_int (D->online_update_period_ms, field9);
+ 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,
+ };
+ free_ds_type_int (D->offline_blur_timeout_ms, field10);
+ 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,
+ };
+ free_ds_type_int (D->offline_idle_timeout_ms, field11);
+ 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,
+ };
+ free_ds_type_int (D->online_cloud_timeout_ms, field12);
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->notify_cloud_delay_ms, field13);
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->notify_default_delay_ms, field14);
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_big_size, field15);
+ struct paramed_type *field16 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->push_chat_period_ms, field16);
+ struct paramed_type *field17 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->push_chat_limit, field17);
+ struct paramed_type *field18 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->disabled_features, field18);
+}
+void free_ds_constructor_contact (struct tl_ds_contact *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->mutual, field2);
+}
+void free_ds_constructor_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field2);
+}
+void free_ds_constructor_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+}
+void free_ds_constructor_contact_link_unknown (struct tl_ds_contact_link *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; }
+}
+void free_ds_constructor_contact_link_none (struct tl_ds_contact_link *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; }
+}
+void free_ds_constructor_contact_link_has_phone (struct tl_ds_contact_link *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; }
+}
+void free_ds_constructor_contact_link_contact (struct tl_ds_contact_link *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; }
+}
+void free_ds_constructor_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_user_status (D->status, field2);
+}
+void free_ds_constructor_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->mutual_contacts, field2);
+}
+void free_ds_constructor_dc_option_l28 (struct tl_ds_dc_option *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ 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,
+ };
+ free_ds_type_string (D->hostname, field2);
+ 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,
+ };
+ free_ds_type_string (D->ip_address, field3);
+ 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,
+ };
+ free_ds_type_int (D->port, field4);
+}
+void free_ds_constructor_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->flags, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field2);
+ 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,
+ };
+ free_ds_type_string (D->ip_address, field3);
+ 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,
+ };
+ free_ds_type_int (D->port, field4);
+}
+void free_ds_constructor_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->random_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->ttl, field2);
+ 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,
+ };
+ free_ds_type_string (D->message, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_decrypted_message_media (D->media, field4);
+}
+void free_ds_constructor_decrypted_message_service (struct tl_ds_decrypted_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->random_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_decrypted_message_action (D->action, field2);
+}
+void free_ds_constructor_decrypted_message_action_set_message_t_t_l (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->ttl_seconds, field1);
+}
+void free_ds_constructor_decrypted_message_action_read_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->random_ids, field1);
+}
+void free_ds_constructor_decrypted_message_action_delete_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->random_ids, field1);
+}
+void free_ds_constructor_decrypted_message_action_screenshot_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->random_ids, field1);
+}
+void free_ds_constructor_decrypted_message_action_flush_history (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+}
+void free_ds_constructor_decrypted_message_action_resend (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->start_seq_no, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->end_seq_no, field2);
+}
+void free_ds_constructor_decrypted_message_action_notify_layer (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->layer, field1);
+}
+void free_ds_constructor_decrypted_message_action_typing (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_send_message_action (D->action, field1);
+}
+void free_ds_constructor_decrypted_message_action_request_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->exchange_id, field1);
+ 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,
+ };
+ free_ds_type_bytes (D->g_a, field2);
+}
+void free_ds_constructor_decrypted_message_action_accept_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->exchange_id, field1);
+ 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,
+ };
+ free_ds_type_bytes (D->g_b, field2);
+ 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,
+ };
+ free_ds_type_long (D->key_fingerprint, field3);
+}
+void free_ds_constructor_decrypted_message_action_abort_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->exchange_id, field1);
+}
+void free_ds_constructor_decrypted_message_action_commit_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->exchange_id, field1);
+ 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,
+ };
+ free_ds_type_long (D->key_fingerprint, field2);
+}
+void free_ds_constructor_decrypted_message_action_noop (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+}
+void free_ds_constructor_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return; }
+ 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,
+ };
+ free_ds_type_bytes (D->random_bytes, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->layer, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->in_seq_no, field3);
+ 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,
+ };
+ free_ds_type_int (D->out_seq_no, field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_decrypted_message (D->message, field5);
+}
+void free_ds_constructor_decrypted_message_media_empty (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+}
+void free_ds_constructor_decrypted_message_media_photo (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ 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,
+ };
+ free_ds_type_bytes (D->str_thumb, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->thumb_w, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->thumb_h, field3);
+ 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,
+ };
+ free_ds_type_int (D->w, field4);
+ 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,
+ };
+ free_ds_type_int (D->h, field5);
+ 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,
+ };
+ free_ds_type_int (D->size, field6);
+ 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,
+ };
+ free_ds_type_bytes (D->key, field7);
+ 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,
+ };
+ free_ds_type_bytes (D->iv, field8);
+}
+void free_ds_constructor_decrypted_message_media_geo_point (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ 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,
+ };
+ free_ds_type_double (D->latitude, field1);
+ 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,
+ };
+ free_ds_type_double (D->longitude, field2);
+}
+void free_ds_constructor_decrypted_message_media_contact (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->phone_number, field1);
+ 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,
+ };
+ free_ds_type_string (D->first_name, field2);
+ 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,
+ };
+ free_ds_type_string (D->last_name, field3);
+ 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,
+ };
+ free_ds_type_int (D->user_id, field4);
+}
+void free_ds_constructor_decrypted_message_media_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ 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,
+ };
+ free_ds_type_bytes (D->str_thumb, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->thumb_w, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->thumb_h, field3);
+ 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,
+ };
+ free_ds_type_string (D->file_name, field4);
+ 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,
+ };
+ free_ds_type_string (D->mime_type, field5);
+ 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,
+ };
+ free_ds_type_int (D->size, field6);
+ 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,
+ };
+ free_ds_type_bytes (D->key, field7);
+ 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,
+ };
+ free_ds_type_bytes (D->iv, field8);
+}
+void free_ds_constructor_decrypted_message_media_video (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ 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,
+ };
+ free_ds_type_bytes (D->str_thumb, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->thumb_w, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->thumb_h, field3);
+ 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,
+ };
+ free_ds_type_int (D->duration, field4);
+ 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,
+ };
+ free_ds_type_string (D->mime_type, field5);
+ 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,
+ };
+ free_ds_type_int (D->w, field6);
+ 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,
+ };
+ free_ds_type_int (D->h, field7);
+ 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,
+ };
+ free_ds_type_int (D->size, field8);
+ 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,
+ };
+ free_ds_type_bytes (D->key, field9);
+ 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,
+ };
+ free_ds_type_bytes (D->iv, field10);
+}
+void free_ds_constructor_decrypted_message_media_audio (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->duration, field1);
+ 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,
+ };
+ free_ds_type_string (D->mime_type, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->size, field3);
+ 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,
+ };
+ free_ds_type_bytes (D->key, field4);
+ 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,
+ };
+ free_ds_type_bytes (D->iv, field5);
+}
+void free_ds_constructor_decrypted_message_media_external_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field3);
+ 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,
+ };
+ free_ds_type_string (D->mime_type, field4);
+ 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,
+ };
+ free_ds_type_int (D->size, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_photo_size (D->thumb, field6);
+ 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,
+ };
+ free_ds_type_int (D->dc_id, field7);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->attributes, field8);
+}
+void free_ds_constructor_decrypted_message_media_video_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ 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,
+ };
+ free_ds_type_bytes (D->str_thumb, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->thumb_w, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->thumb_h, field3);
+ 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,
+ };
+ free_ds_type_int (D->duration, field4);
+ 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,
+ };
+ free_ds_type_int (D->w, field5);
+ 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,
+ };
+ free_ds_type_int (D->h, field6);
+ 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,
+ };
+ free_ds_type_int (D->size, field7);
+ 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,
+ };
+ free_ds_type_bytes (D->key, field8);
+ 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,
+ };
+ free_ds_type_bytes (D->iv, field9);
+}
+void free_ds_constructor_decrypted_message_media_audio_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->duration, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->size, field2);
+ 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,
+ };
+ free_ds_type_bytes (D->key, field3);
+ 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,
+ };
+ free_ds_type_bytes (D->iv, field4);
+}
+void free_ds_constructor_dialog (struct tl_ds_dialog *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_peer (D->peer, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->top_message, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->read_inbox_max_id, field3);
+ 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,
+ };
+ free_ds_type_int (D->unread_count, field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_peer_notify_settings (D->notify_settings, field5);
+}
+void free_ds_constructor_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->feature, field1);
+ 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,
+ };
+ free_ds_type_string (D->description, field2);
+}
+void free_ds_constructor_document_empty (struct tl_ds_document *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+}
+void free_ds_constructor_document (struct tl_ds_document *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field3);
+ 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,
+ };
+ free_ds_type_string (D->mime_type, field4);
+ 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,
+ };
+ free_ds_type_int (D->size, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_photo_size (D->thumb, field6);
+ 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,
+ };
+ free_ds_type_int (D->dc_id, field7);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->attributes, field8);
+}
+void free_ds_constructor_document_l19 (struct tl_ds_document *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field3);
+ 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,
+ };
+ free_ds_type_int (D->date, field4);
+ 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,
+ };
+ free_ds_type_string (D->file_name, field5);
+ 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,
+ };
+ free_ds_type_string (D->mime_type, field6);
+ 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,
+ };
+ free_ds_type_int (D->size, field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_photo_size (D->thumb, field8);
+ 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,
+ };
+ free_ds_type_int (D->dc_id, field9);
+}
+void free_ds_constructor_document_attribute_image_size (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->w, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->h, field2);
+}
+void free_ds_constructor_document_attribute_animated (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; }
+}
+void free_ds_constructor_document_attribute_sticker_l28 (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->alt, field1);
+}
+void free_ds_constructor_document_attribute_sticker (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->alt, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_sticker_set (D->stickerset, field2);
+}
+void free_ds_constructor_document_attribute_video (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->duration, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->w, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->h, field3);
+}
+void free_ds_constructor_document_attribute_audio (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->duration, field1);
+}
+void free_ds_constructor_document_attribute_filename (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->file_name, field1);
+}
+void free_ds_constructor_double (double *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return; }
+ tfree (D, sizeof (*D));
+}
+void free_ds_constructor_encrypted_chat_empty (struct tl_ds_encrypted_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+}
+void free_ds_constructor_encrypted_chat_waiting (struct tl_ds_encrypted_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field3);
+ 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,
+ };
+ free_ds_type_int (D->admin_id, field4);
+ 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,
+ };
+ free_ds_type_int (D->participant_id, field5);
+}
+void free_ds_constructor_encrypted_chat_requested (struct tl_ds_encrypted_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field3);
+ 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,
+ };
+ free_ds_type_int (D->admin_id, field4);
+ 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,
+ };
+ free_ds_type_int (D->participant_id, field5);
+ 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,
+ };
+ free_ds_type_bytes (D->g_a, field6);
+}
+void free_ds_constructor_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field3);
+ 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,
+ };
+ free_ds_type_int (D->admin_id, field4);
+ 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,
+ };
+ free_ds_type_int (D->participant_id, field5);
+ 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,
+ };
+ free_ds_type_bytes (D->g_a_or_b, field6);
+ 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,
+ };
+ free_ds_type_long (D->key_fingerprint, field7);
+}
+void free_ds_constructor_encrypted_chat_discarded (struct tl_ds_encrypted_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+}
+void free_ds_constructor_encrypted_file_empty (struct tl_ds_encrypted_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return; }
+}
+void free_ds_constructor_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->size, field3);
+ 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,
+ };
+ free_ds_type_int (D->dc_id, field4);
+ 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,
+ };
+ free_ds_type_int (D->key_fingerprint, field5);
+}
+void free_ds_constructor_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->random_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field3);
+ 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,
+ };
+ free_ds_type_bytes (D->bytes, field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_encrypted_file (D->file, field5);
+}
+void free_ds_constructor_encrypted_message_service (struct tl_ds_encrypted_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->random_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field3);
+ 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,
+ };
+ free_ds_type_bytes (D->bytes, field4);
+}
+void free_ds_constructor_error (struct tl_ds_error *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->code, field1);
+ 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,
+ };
+ free_ds_type_string (D->text, field2);
+}
+void free_ds_constructor_chat_invite_empty (struct tl_ds_exported_chat_invite *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return; }
+}
+void free_ds_constructor_chat_invite_exported (struct tl_ds_exported_chat_invite *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->link, field1);
+}
+void free_ds_constructor_file_location_unavailable (struct tl_ds_file_location *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->volume_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->local_id, field2);
+ 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,
+ };
+ free_ds_type_long (D->secret, field3);
+}
+void free_ds_constructor_file_location (struct tl_ds_file_location *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->dc_id, field1);
+ 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,
+ };
+ free_ds_type_long (D->volume_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->local_id, field3);
+ 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,
+ };
+ free_ds_type_long (D->secret, field4);
+}
+void free_ds_constructor_geo_chat_message_empty (struct tl_ds_geo_chat_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field2);
+}
+void free_ds_constructor_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->from_id, field3);
+ 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,
+ };
+ free_ds_type_int (D->date, field4);
+ 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,
+ };
+ free_ds_type_string (D->message, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_message_media (D->media, field6);
+}
+void free_ds_constructor_geo_chat_message_service (struct tl_ds_geo_chat_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->from_id, field3);
+ 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,
+ };
+ free_ds_type_int (D->date, field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_message_action (D->action, field5);
+}
+void free_ds_constructor_geo_point_empty (struct tl_ds_geo_point *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return; }
+}
+void free_ds_constructor_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return; }
+ 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,
+ };
+ free_ds_type_double (D->longitude, field1);
+ 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,
+ };
+ free_ds_type_double (D->latitude, field2);
+}
+void free_ds_constructor_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ 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,
+ };
+ free_ds_type_long (D->client_id, field2);
+}
+void free_ds_constructor_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return; }
+ 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,
+ };
+ free_ds_type_double (D->time, field1);
+ 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,
+ };
+ free_ds_type_string (D->type, field2);
+ 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,
+ };
+ free_ds_type_long (D->peer, field3);
+ 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,
+ };
+ free_ds_type_string (D->data, field4);
+}
+void free_ds_constructor_input_audio_empty (struct tl_ds_input_audio *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return; }
+}
+void free_ds_constructor_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+}
+void free_ds_constructor_input_chat_photo_empty (struct tl_ds_input_chat_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return; }
+}
+void free_ds_constructor_input_chat_uploaded_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_file (D->file, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_photo_crop (D->crop, field2);
+}
+void free_ds_constructor_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_photo (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_photo_crop (D->crop, field2);
+}
+void free_ds_constructor_input_phone_contact (struct tl_ds_input_contact *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->client_id, field1);
+ 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,
+ };
+ free_ds_type_string (D->phone, field2);
+ 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,
+ };
+ free_ds_type_string (D->first_name, field3);
+ 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,
+ };
+ free_ds_type_string (D->last_name, field4);
+}
+void free_ds_constructor_input_document_empty (struct tl_ds_input_document *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return; }
+}
+void free_ds_constructor_input_document (struct tl_ds_input_document *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+}
+void free_ds_constructor_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+}
+void free_ds_constructor_input_encrypted_file_empty (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; }
+}
+void free_ds_constructor_input_encrypted_file_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->parts, field2);
+ 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,
+ };
+ free_ds_type_string (D->md5_checksum, field3);
+ 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,
+ };
+ free_ds_type_int (D->key_fingerprint, field4);
+}
+void free_ds_constructor_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+}
+void free_ds_constructor_input_encrypted_file_big_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->parts, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->key_fingerprint, field3);
+}
+void free_ds_constructor_input_file (struct tl_ds_input_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->parts, field2);
+ 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,
+ };
+ free_ds_type_string (D->name, field3);
+ 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,
+ };
+ free_ds_type_string (D->md5_checksum, field4);
+}
+void free_ds_constructor_input_file_big (struct tl_ds_input_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->parts, field2);
+ 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,
+ };
+ free_ds_type_string (D->name, field3);
+}
+void free_ds_constructor_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->volume_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->local_id, field2);
+ 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,
+ };
+ free_ds_type_long (D->secret, field3);
+}
+void free_ds_constructor_input_video_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+}
+void free_ds_constructor_input_encrypted_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+}
+void free_ds_constructor_input_audio_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+}
+void free_ds_constructor_input_document_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+}
+void free_ds_constructor_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+}
+void free_ds_constructor_input_geo_point_empty (struct tl_ds_input_geo_point *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return; }
+}
+void free_ds_constructor_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return; }
+ 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,
+ };
+ free_ds_type_double (D->latitude, field1);
+ 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,
+ };
+ free_ds_type_double (D->longitude, field2);
+}
+void free_ds_constructor_input_media_empty (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+}
+void free_ds_constructor_input_media_uploaded_photo (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_file (D->file, field1);
+ 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,
+ };
+ free_ds_type_string (D->caption, field2);
+}
+void free_ds_constructor_input_media_photo (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_photo (D->id, field1);
+ 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,
+ };
+ free_ds_type_string (D->caption, field2);
+}
+void free_ds_constructor_input_media_geo_point (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_geo_point (D->geo_point, field1);
+}
+void free_ds_constructor_input_media_contact (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->phone_number, field1);
+ 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,
+ };
+ free_ds_type_string (D->first_name, field2);
+ 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,
+ };
+ free_ds_type_string (D->last_name, field3);
+}
+void free_ds_constructor_input_media_uploaded_video (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_file (D->file, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->duration, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->w, field3);
+ 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,
+ };
+ free_ds_type_int (D->h, field4);
+ 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,
+ };
+ free_ds_type_string (D->caption, field5);
+}
+void free_ds_constructor_input_media_uploaded_thumb_video (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_file (D->file, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_file (D->thumb, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->duration, field3);
+ 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,
+ };
+ free_ds_type_int (D->w, field4);
+ 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,
+ };
+ free_ds_type_int (D->h, field5);
+ 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,
+ };
+ free_ds_type_string (D->caption, field6);
+}
+void free_ds_constructor_input_media_video (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_video (D->video_id, field1);
+ 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,
+ };
+ free_ds_type_string (D->caption, field2);
+}
+void free_ds_constructor_input_media_uploaded_audio (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_file (D->file, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->duration, field2);
+ 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,
+ };
+ free_ds_type_string (D->mime_type, field3);
+}
+void free_ds_constructor_input_media_audio (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_audio (D->audio_id, field1);
+}
+void free_ds_constructor_input_media_uploaded_document (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_file (D->file, field1);
+ 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,
+ };
+ free_ds_type_string (D->mime_type, field2);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->attributes, field3);
+}
+void free_ds_constructor_input_media_uploaded_thumb_document (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_file (D->file, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_file (D->thumb, field2);
+ 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,
+ };
+ free_ds_type_string (D->mime_type, field3);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->attributes, field4);
+}
+void free_ds_constructor_input_media_document (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_document (D->document_id, field1);
+}
+void free_ds_constructor_input_media_venue (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_geo_point (D->geo_point, field1);
+ 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,
+ };
+ free_ds_type_string (D->title, field2);
+ 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,
+ };
+ free_ds_type_string (D->address, field3);
+ 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,
+ };
+ free_ds_type_string (D->provider, field4);
+ 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,
+ };
+ free_ds_type_string (D->venue_id, field5);
+}
+void free_ds_constructor_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_peer (D->peer, field1);
+}
+void free_ds_constructor_input_notify_users (struct tl_ds_input_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; }
+}
+void free_ds_constructor_input_notify_chats (struct tl_ds_input_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; }
+}
+void free_ds_constructor_input_notify_all (struct tl_ds_input_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; }
+}
+void free_ds_constructor_input_notify_geo_chat_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_input_geo_chat (D->geo_peer, field1);
+}
+void free_ds_constructor_input_peer_empty (struct tl_ds_input_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; }
+}
+void free_ds_constructor_input_peer_self (struct tl_ds_input_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; }
+}
+void free_ds_constructor_input_peer_contact (struct tl_ds_input_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+}
+void free_ds_constructor_input_peer_foreign (struct tl_ds_input_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+}
+void free_ds_constructor_input_peer_chat (struct tl_ds_input_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field1);
+}
+void free_ds_constructor_input_peer_notify_events_empty (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return; }
+}
+void free_ds_constructor_input_peer_notify_events_all (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return; }
+}
+void free_ds_constructor_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->mute_until, field1);
+ 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,
+ };
+ free_ds_type_string (D->sound, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->show_previews, field3);
+ 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,
+ };
+ free_ds_type_int (D->events_mask, field4);
+}
+void free_ds_constructor_input_photo_empty (struct tl_ds_input_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return; }
+}
+void free_ds_constructor_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+}
+void free_ds_constructor_input_photo_crop_auto (struct tl_ds_input_photo_crop *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return; }
+}
+void free_ds_constructor_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return; }
+ 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,
+ };
+ free_ds_type_double (D->crop_left, field1);
+ 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,
+ };
+ free_ds_type_double (D->crop_top, field2);
+ 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,
+ };
+ free_ds_type_double (D->crop_width, field3);
+}
+void free_ds_constructor_input_privacy_key_status_timestamp (struct tl_ds_input_privacy_key *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return; }
+}
+void free_ds_constructor_input_privacy_value_allow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; }
+}
+void free_ds_constructor_input_privacy_value_allow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; }
+}
+void free_ds_constructor_input_privacy_value_allow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field1);
+}
+void free_ds_constructor_input_privacy_value_disallow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; }
+}
+void free_ds_constructor_input_privacy_value_disallow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; }
+}
+void free_ds_constructor_input_privacy_value_disallow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field1);
+}
+void free_ds_constructor_input_sticker_set_empty (struct tl_ds_input_sticker_set *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return; }
+}
+void free_ds_constructor_input_sticker_set_i_d (struct tl_ds_input_sticker_set *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+}
+void free_ds_constructor_input_sticker_set_short_name (struct tl_ds_input_sticker_set *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->short_name, field1);
+}
+void free_ds_constructor_input_user_empty (struct tl_ds_input_user *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; }
+}
+void free_ds_constructor_input_user_self (struct tl_ds_input_user *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; }
+}
+void free_ds_constructor_input_user_contact (struct tl_ds_input_user *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+}
+void free_ds_constructor_input_user_foreign (struct tl_ds_input_user *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+}
+void free_ds_constructor_input_video_empty (struct tl_ds_input_video *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return; }
+}
+void free_ds_constructor_input_video (struct tl_ds_input_video *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+}
+void free_ds_constructor_int (int *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return; }
+ tfree (D, sizeof (*D));
+}
+void free_ds_constructor_int128 (struct tl_ds_int128 *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->f0, field1);
+ 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,
+ };
+ free_ds_type_long (D->f1, field2);
+}
+void free_ds_constructor_int256 (struct tl_ds_int256 *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->f0, field1);
+ 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,
+ };
+ free_ds_type_long (D->f1, field2);
+ 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,
+ };
+ free_ds_type_long (D->f2, field3);
+ 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,
+ };
+ free_ds_type_long (D->f3, field4);
+}
+void free_ds_constructor_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->text, field1);
+}
+void free_ds_constructor_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { return; }
+ 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 = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->buttons, field1);
+}
+void free_ds_constructor_long (long long *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return; }
+ tfree (D, sizeof (*D));
+}
+void free_ds_constructor_message_empty (struct tl_ds_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+}
+void free_ds_constructor_message (struct tl_ds_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ tfree (D->flags, sizeof (*D->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,
+ };
+ free_ds_type_int (D->id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->from_id, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_peer (D->to_id, field4);
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ free_ds_type_int (D->fwd_from_id, field5);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ free_ds_type_int (D->fwd_date, field6);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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,
+ };
+ free_ds_type_int (D->reply_to_msg_id, field7);
+ }
+ 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,
+ };
+ free_ds_type_int (D->date, field8);
+ 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,
+ };
+ free_ds_type_string (D->message, field9);
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_message_media (D->media, field10);
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_reply_markup (D->reply_markup, field11);
+ }
+}
+void free_ds_constructor_message_service (struct tl_ds_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->flags, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->from_id, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_peer (D->to_id, field4);
+ 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,
+ };
+ free_ds_type_int (D->date, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_message_action (D->action, field6);
+}
+void free_ds_constructor_message_action_empty (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+}
+void free_ds_constructor_message_action_chat_create (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->title, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field2);
+}
+void free_ds_constructor_message_action_chat_edit_title (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->title, field1);
+}
+void free_ds_constructor_message_action_chat_edit_photo (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_photo (D->photo, field1);
+}
+void free_ds_constructor_message_action_chat_delete_photo (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+}
+void free_ds_constructor_message_action_chat_add_user (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+}
+void free_ds_constructor_message_action_chat_delete_user (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+}
+void free_ds_constructor_message_action_geo_chat_create (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->title, field1);
+ 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,
+ };
+ free_ds_type_string (D->address, field2);
+}
+void free_ds_constructor_message_action_geo_chat_checkin (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+}
+void free_ds_constructor_message_action_chat_joined_by_link (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->inviter_id, field1);
+}
+void free_ds_constructor_message_media_empty (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+}
+void free_ds_constructor_message_media_photo (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_photo (D->photo, field1);
+ 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,
+ };
+ free_ds_type_string (D->caption, field2);
+}
+void free_ds_constructor_message_media_video (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_video (D->video, field1);
+ 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,
+ };
+ free_ds_type_string (D->caption, field2);
+}
+void free_ds_constructor_message_media_geo (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_geo_point (D->geo, field1);
+}
+void free_ds_constructor_message_media_contact (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->phone_number, field1);
+ 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,
+ };
+ free_ds_type_string (D->first_name, field2);
+ 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,
+ };
+ free_ds_type_string (D->last_name, field3);
+ 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,
+ };
+ free_ds_type_int (D->user_id, field4);
+}
+void free_ds_constructor_message_media_unsupported (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+}
+void free_ds_constructor_message_media_document (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_document (D->document, field1);
+}
+void free_ds_constructor_message_media_audio (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_audio (D->audio, field1);
+}
+void free_ds_constructor_message_media_web_page (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_web_page (D->webpage, field1);
+}
+void free_ds_constructor_message_media_venue (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_geo_point (D->geo, field1);
+ 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,
+ };
+ free_ds_type_string (D->title, field2);
+ 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,
+ };
+ free_ds_type_string (D->address, field3);
+ 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,
+ };
+ free_ds_type_string (D->provider, field4);
+ 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,
+ };
+ free_ds_type_string (D->venue_id, field5);
+}
+void free_ds_constructor_message_media_photo_l27 (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_photo (D->photo, field1);
+}
+void free_ds_constructor_message_media_video_l27 (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_video (D->video, field1);
+}
+void free_ds_constructor_input_messages_filter_empty (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; }
+}
+void free_ds_constructor_input_messages_filter_photos (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; }
+}
+void free_ds_constructor_input_messages_filter_video (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; }
+}
+void free_ds_constructor_input_messages_filter_photo_video (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; }
+}
+void free_ds_constructor_input_messages_filter_photo_video_documents (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; }
+}
+void free_ds_constructor_input_messages_filter_document (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; }
+}
+void free_ds_constructor_input_messages_filter_audio (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; }
+}
+void free_ds_constructor_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->country, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->this_dc, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->nearest_dc, field3);
+}
+void free_ds_constructor_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_peer (D->peer, field1);
+}
+void free_ds_constructor_notify_users (struct tl_ds_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; }
+}
+void free_ds_constructor_notify_chats (struct tl_ds_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; }
+}
+void free_ds_constructor_notify_all (struct tl_ds_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; }
+}
+void free_ds_constructor_null (struct tl_ds_null *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return; }
+}
+void free_ds_constructor_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->pq, field1);
+ 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,
+ };
+ free_ds_type_string (D->p, field2);
+ 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,
+ };
+ free_ds_type_string (D->q, field3);
+ 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,
+ };
+ free_ds_type_int128 (D->nonce, field4);
+ 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,
+ };
+ free_ds_type_int128 (D->server_nonce, field5);
+ 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,
+ };
+ free_ds_type_int256 (D->new_nonce, field6);
+}
+void free_ds_constructor_p_q_inner_data_temp (struct tl_ds_p_q_inner_data *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->pq, field1);
+ 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,
+ };
+ free_ds_type_string (D->p, field2);
+ 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,
+ };
+ free_ds_type_string (D->q, field3);
+ 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,
+ };
+ free_ds_type_int128 (D->nonce, field4);
+ 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,
+ };
+ free_ds_type_int128 (D->server_nonce, field5);
+ 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,
+ };
+ free_ds_type_int256 (D->new_nonce, field6);
+ 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,
+ };
+ free_ds_type_int (D->expires_in, field7);
+}
+void free_ds_constructor_peer_user (struct tl_ds_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+}
+void free_ds_constructor_peer_chat (struct tl_ds_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field1);
+}
+void free_ds_constructor_peer_notify_events_empty (struct tl_ds_peer_notify_events *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return; }
+}
+void free_ds_constructor_peer_notify_events_all (struct tl_ds_peer_notify_events *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return; }
+}
+void free_ds_constructor_peer_notify_settings_empty (struct tl_ds_peer_notify_settings *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return; }
+}
+void free_ds_constructor_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->mute_until, field1);
+ 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,
+ };
+ free_ds_type_string (D->sound, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->show_previews, field3);
+ 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,
+ };
+ free_ds_type_int (D->events_mask, field4);
+}
+void free_ds_constructor_photo_empty (struct tl_ds_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+}
+void free_ds_constructor_photo (struct tl_ds_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field3);
+ 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,
+ };
+ free_ds_type_int (D->date, field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_geo_point (D->geo, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_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,
+ },
+ }
+ };
+ free_ds_type_any (D->sizes, field6);
+}
+void free_ds_constructor_photo_l27 (struct tl_ds_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field3);
+ 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,
+ };
+ free_ds_type_int (D->date, field4);
+ 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,
+ };
+ free_ds_type_string (D->caption, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_geo_point (D->geo, field6);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->sizes, field7);
+}
+void free_ds_constructor_photo_size_empty (struct tl_ds_photo_size *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->type, field1);
+}
+void free_ds_constructor_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->type, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_file_location (D->location, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->w, field3);
+ 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,
+ };
+ free_ds_type_int (D->h, field4);
+ 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,
+ };
+ free_ds_type_int (D->size, field5);
+}
+void free_ds_constructor_photo_cached_size (struct tl_ds_photo_size *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->type, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_file_location (D->location, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->w, field3);
+ 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,
+ };
+ free_ds_type_int (D->h, field4);
+ 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,
+ };
+ free_ds_type_bytes (D->bytes, field5);
+}
+void free_ds_constructor_privacy_key_status_timestamp (struct tl_ds_privacy_key *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return; }
+}
+void free_ds_constructor_privacy_value_allow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; }
+}
+void free_ds_constructor_privacy_value_allow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; }
+}
+void free_ds_constructor_privacy_value_allow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field1);
+}
+void free_ds_constructor_privacy_value_disallow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; }
+}
+void free_ds_constructor_privacy_value_disallow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; }
+}
+void free_ds_constructor_privacy_value_disallow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field1);
+}
+void free_ds_constructor_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->flags, field2);
+}
+void free_ds_constructor_reply_keyboard_hide (struct tl_ds_reply_markup *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->flags, field1);
+}
+void free_ds_constructor_reply_keyboard_force_reply (struct tl_ds_reply_markup *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->flags, field1);
+}
+void free_ds_constructor_reply_keyboard_markup (struct tl_ds_reply_markup *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->flags, field1);
+ 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 = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->rows, field2);
+}
+void free_ds_constructor_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return; }
+ 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,
+ };
+ free_ds_type_int128 (D->nonce, field1);
+ 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,
+ };
+ free_ds_type_int128 (D->server_nonce, field2);
+ 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,
+ };
+ free_ds_type_string (D->pq, field3);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->server_public_key_fingerprints, field4);
+}
+void free_ds_constructor_send_message_typing_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void free_ds_constructor_send_message_cancel_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void free_ds_constructor_send_message_record_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void free_ds_constructor_send_message_upload_video_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void free_ds_constructor_send_message_upload_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->progress, field1);
+}
+void free_ds_constructor_send_message_record_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void free_ds_constructor_send_message_upload_audio_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void free_ds_constructor_send_message_upload_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->progress, field1);
+}
+void free_ds_constructor_send_message_upload_photo_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->progress, field1);
+}
+void free_ds_constructor_send_message_upload_document_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void free_ds_constructor_send_message_upload_document_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->progress, field1);
+}
+void free_ds_constructor_send_message_geo_location_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void free_ds_constructor_send_message_choose_contact_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void free_ds_constructor_server_d_h_params_fail (struct tl_ds_server_d_h_params *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return; }
+ 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,
+ };
+ free_ds_type_int128 (D->nonce, field1);
+ 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,
+ };
+ free_ds_type_int128 (D->server_nonce, field2);
+ 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,
+ };
+ free_ds_type_int128 (D->new_nonce_hash, field3);
+}
+void free_ds_constructor_server_d_h_params_ok (struct tl_ds_server_d_h_params *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return; }
+ 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,
+ };
+ free_ds_type_int128 (D->nonce, field1);
+ 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,
+ };
+ free_ds_type_int128 (D->server_nonce, field2);
+ 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,
+ };
+ free_ds_type_string (D->encrypted_answer, field3);
+}
+void free_ds_constructor_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return; }
+ 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,
+ };
+ free_ds_type_int128 (D->nonce, field1);
+ 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,
+ };
+ free_ds_type_int128 (D->server_nonce, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->g, field3);
+ 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,
+ };
+ free_ds_type_string (D->dh_prime, field4);
+ 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,
+ };
+ free_ds_type_string (D->g_a, field5);
+ 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,
+ };
+ free_ds_type_int (D->server_time, field6);
+}
+void free_ds_constructor_dh_gen_ok (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return; }
+ 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,
+ };
+ free_ds_type_int128 (D->nonce, field1);
+ 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,
+ };
+ free_ds_type_int128 (D->server_nonce, field2);
+ 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,
+ };
+ free_ds_type_int128 (D->new_nonce_hash1, field3);
+}
+void free_ds_constructor_dh_gen_retry (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return; }
+ 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,
+ };
+ free_ds_type_int128 (D->nonce, field1);
+ 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,
+ };
+ free_ds_type_int128 (D->server_nonce, field2);
+ 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,
+ };
+ free_ds_type_int128 (D->new_nonce_hash2, field3);
+}
+void free_ds_constructor_dh_gen_fail (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return; }
+ 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,
+ };
+ free_ds_type_int128 (D->nonce, field1);
+ 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,
+ };
+ free_ds_type_int128 (D->server_nonce, field2);
+ 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,
+ };
+ free_ds_type_int128 (D->new_nonce_hash3, field3);
+}
+void free_ds_constructor_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->emoticon, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->documents, field2);
+}
+void free_ds_constructor_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+ 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,
+ };
+ free_ds_type_string (D->title, field3);
+ 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,
+ };
+ free_ds_type_string (D->short_name, field4);
+}
+void free_ds_constructor_string (struct tl_ds_string *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return; }
+ tfree (D->data, D->len + 1);
+ tfree (D, sizeof (*D));
+}
+void free_ds_constructor_update_new_message (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_message (D->message, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts_count, field3);
+}
+void free_ds_constructor_update_message_i_d (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->random_id, field2);
+}
+void free_ds_constructor_update_delete_messages (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->messages, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts_count, field3);
+}
+void free_ds_constructor_update_user_typing (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_send_message_action (D->action, field2);
+}
+void free_ds_constructor_update_chat_user_typing (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_send_message_action (D->action, field3);
+}
+void free_ds_constructor_update_chat_participants (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_chat_participants (D->participants, field1);
+}
+void free_ds_constructor_update_user_status (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_user_status (D->status, field2);
+}
+void free_ds_constructor_update_user_name (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ 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,
+ };
+ free_ds_type_string (D->first_name, field2);
+ 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,
+ };
+ free_ds_type_string (D->last_name, field3);
+ 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,
+ };
+ free_ds_type_string (D->username, field4);
+}
+void free_ds_constructor_update_user_photo (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_user_profile_photo (D->photo, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->previous, field4);
+}
+void free_ds_constructor_update_contact_registered (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field2);
+}
+void free_ds_constructor_update_contact_link (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_contact_link (D->my_link, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_contact_link (D->foreign_link, field3);
+}
+void free_ds_constructor_update_new_authorization (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->auth_key_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field2);
+ 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,
+ };
+ free_ds_type_string (D->device, field3);
+ 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,
+ };
+ free_ds_type_string (D->location, field4);
+}
+void free_ds_constructor_update_new_geo_chat_message (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_geo_chat_message (D->geo_message, field1);
+}
+void free_ds_constructor_update_new_encrypted_message (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_encrypted_message (D->encr_message, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->qts, field2);
+}
+void free_ds_constructor_update_encrypted_chat_typing (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field1);
+}
+void free_ds_constructor_update_encryption (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_encrypted_chat (D->encr_chat, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field2);
+}
+void free_ds_constructor_update_encrypted_messages_read (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->max_date, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field3);
+}
+void free_ds_constructor_update_chat_participant_add (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->inviter_id, field3);
+ 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,
+ };
+ free_ds_type_int (D->version, field4);
+}
+void free_ds_constructor_update_chat_participant_delete (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->version, field3);
+}
+void free_ds_constructor_update_dc_options (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ 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 = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->dc_options, field1);
+}
+void free_ds_constructor_update_user_blocked (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->blocked, field2);
+}
+void free_ds_constructor_update_notify_settings (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_notify_peer (D->notify_peer, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_peer_notify_settings (D->notify_settings, field2);
+}
+void free_ds_constructor_update_service_notification (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->type, field1);
+ 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,
+ };
+ free_ds_type_string (D->message_text, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_message_media (D->media, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->popup, field4);
+}
+void free_ds_constructor_update_privacy (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_privacy_key (D->key, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->rules, field2);
+}
+void free_ds_constructor_update_user_phone (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field1);
+ 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,
+ };
+ free_ds_type_string (D->phone, field2);
+}
+void free_ds_constructor_update_read_history_inbox (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_peer (D->peer, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->max_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts, field3);
+ 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,
+ };
+ free_ds_type_int (D->pts_count, field4);
+}
+void free_ds_constructor_update_read_history_outbox (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_peer (D->peer, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->max_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts, field3);
+ 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,
+ };
+ free_ds_type_int (D->pts_count, field4);
+}
+void free_ds_constructor_update_web_page (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_web_page (D->webpage, field1);
+}
+void free_ds_constructor_update_read_messages_contents (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->messages, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts_count, field3);
+}
+void free_ds_constructor_update_msg_update (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts_count, field3);
+}
+void free_ds_constructor_updates_too_long (struct tl_ds_updates *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; }
+}
+void free_ds_constructor_update_short_message (struct tl_ds_updates *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ tfree (D->flags, sizeof (*D->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,
+ };
+ free_ds_type_int (D->id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field3);
+ 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,
+ };
+ free_ds_type_string (D->message, field4);
+ 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,
+ };
+ free_ds_type_int (D->pts, field5);
+ 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,
+ };
+ free_ds_type_int (D->pts_count, field6);
+ 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,
+ };
+ free_ds_type_int (D->date, field7);
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ free_ds_type_int (D->fwd_from_id, field8);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ free_ds_type_int (D->fwd_date, field9);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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,
+ };
+ free_ds_type_int (D->reply_to_msg_id, field10);
+ }
+}
+void free_ds_constructor_update_short_chat_message (struct tl_ds_updates *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ tfree (D->flags, sizeof (*D->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,
+ };
+ free_ds_type_int (D->id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->from_id, field3);
+ 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,
+ };
+ free_ds_type_int (D->chat_id, field4);
+ 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,
+ };
+ free_ds_type_string (D->message, field5);
+ 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,
+ };
+ free_ds_type_int (D->pts, field6);
+ 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,
+ };
+ free_ds_type_int (D->pts_count, field7);
+ 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,
+ };
+ free_ds_type_int (D->date, field8);
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ free_ds_type_int (D->fwd_from_id, field9);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ free_ds_type_int (D->fwd_date, field10);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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,
+ };
+ free_ds_type_int (D->reply_to_msg_id, field11);
+ }
+}
+void free_ds_constructor_update_short (struct tl_ds_updates *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_update (D->update, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field2);
+}
+void free_ds_constructor_updates_combined (struct tl_ds_updates *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; }
+ 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->updates, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field2);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->chats, field3);
+ 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,
+ };
+ free_ds_type_int (D->date, field4);
+ 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,
+ };
+ free_ds_type_int (D->seq_start, field5);
+ 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,
+ };
+ free_ds_type_int (D->seq, field6);
+}
+void free_ds_constructor_updates (struct tl_ds_updates *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; }
+ 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->updates, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field2);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->chats, field3);
+ 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,
+ };
+ free_ds_type_int (D->date, field4);
+ 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,
+ };
+ free_ds_type_int (D->seq, field5);
+}
+void free_ds_constructor_user_empty (struct tl_ds_user *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+}
+void free_ds_constructor_user (struct tl_ds_user *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ tfree (D->flags, sizeof (*D->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,
+ };
+ free_ds_type_int (D->id, field2);
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field3);
+ }
+ if (PTR2INT (var0) & (1 << 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,
+ };
+ free_ds_type_string (D->first_name, field4);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ free_ds_type_string (D->last_name, field5);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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,
+ };
+ free_ds_type_string (D->username, field6);
+ }
+ if (PTR2INT (var0) & (1 << 4)) {
+ 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,
+ };
+ free_ds_type_string (D->phone, field7);
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_user_profile_photo (D->photo, field8);
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_user_status (D->status, field9);
+ }
+ if (PTR2INT (var0) & (1 << 14)) {
+ 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,
+ };
+ free_ds_type_int (D->bot_info_version, field10);
+ }
+}
+void free_ds_constructor_user_full (struct tl_ds_user_full *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_user (D->user, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_contacts_link (D->link, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_photo (D->profile_photo, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_peer_notify_settings (D->notify_settings, field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->blocked, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bot_info (D->bot_info, field6);
+}
+void free_ds_constructor_user_profile_photo_empty (struct tl_ds_user_profile_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return; }
+}
+void free_ds_constructor_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->photo_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_file_location (D->photo_small, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_file_location (D->photo_big, field3);
+}
+void free_ds_constructor_user_status_empty (struct tl_ds_user_status *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; }
+}
+void free_ds_constructor_user_status_online (struct tl_ds_user_status *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->expires, field1);
+}
+void free_ds_constructor_user_status_offline (struct tl_ds_user_status *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->was_online, field1);
+}
+void free_ds_constructor_user_status_recently (struct tl_ds_user_status *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; }
+}
+void free_ds_constructor_user_status_last_week (struct tl_ds_user_status *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; }
+}
+void free_ds_constructor_user_status_last_month (struct tl_ds_user_status *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; }
+}
+void free_ds_constructor_vector (struct tl_ds_vector *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return; }
+ if (ODDP(T->params[0])) { return; }
+ struct paramed_type *var0 = T->params[0]; assert (var0);
+ struct paramed_type *var1 = INT2PTR (*D->f1);
+ tfree (D->f1, sizeof (*D->f1));
+ int multiplicity3 = PTR2INT (
+ ((void *)var1) + 0 );
+ struct paramed_type *field3 =
+ var0;
+ {
+ int i = 0;
+ while (i < multiplicity3) {
+ free_ds_type_any (D->f2[i ++], field3);
+ }
+ }
+ tfree (D->f2, sizeof (void *) * multiplicity3);
+}
+void free_ds_constructor_video_empty (struct tl_ds_video *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+}
+void free_ds_constructor_video (struct tl_ds_video *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field3);
+ 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,
+ };
+ free_ds_type_int (D->date, field4);
+ 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,
+ };
+ free_ds_type_int (D->duration, field5);
+ 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,
+ };
+ free_ds_type_int (D->size, field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_photo_size (D->thumb, field7);
+ 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,
+ };
+ free_ds_type_int (D->dc_id, field8);
+ 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,
+ };
+ free_ds_type_int (D->w, field9);
+ 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,
+ };
+ free_ds_type_int (D->h, field10);
+}
+void free_ds_constructor_video_l27 (struct tl_ds_video *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field3);
+ 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,
+ };
+ free_ds_type_int (D->date, field4);
+ 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,
+ };
+ free_ds_type_string (D->caption, field5);
+ 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,
+ };
+ free_ds_type_int (D->duration, field6);
+ 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,
+ };
+ free_ds_type_string (D->mime_type, field7);
+ 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,
+ };
+ free_ds_type_int (D->size, field8);
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_photo_size (D->thumb, field9);
+ 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,
+ };
+ free_ds_type_int (D->dc_id, field10);
+ 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,
+ };
+ free_ds_type_int (D->w, field11);
+ 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,
+ };
+ free_ds_type_int (D->h, field12);
+}
+void free_ds_constructor_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ 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,
+ };
+ free_ds_type_string (D->title, field2);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->sizes, field3);
+ 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,
+ };
+ free_ds_type_int (D->color, field4);
+}
+void free_ds_constructor_wall_paper_solid (struct tl_ds_wall_paper *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ 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,
+ };
+ free_ds_type_string (D->title, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->bg_color, field3);
+ 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,
+ };
+ free_ds_type_int (D->color, field4);
+}
+void free_ds_constructor_web_page_empty (struct tl_ds_web_page *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+}
+void free_ds_constructor_web_page_pending (struct tl_ds_web_page *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field2);
+}
+void free_ds_constructor_web_page (struct tl_ds_web_page *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ tfree (D->flags, sizeof (*D->flags));
+ 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,
+ };
+ free_ds_type_long (D->id, field2);
+ 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,
+ };
+ free_ds_type_string (D->url, field3);
+ 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,
+ };
+ free_ds_type_string (D->display_url, field4);
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ free_ds_type_string (D->type, field5);
+ }
+ if (PTR2INT (var0) & (1 << 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,
+ };
+ free_ds_type_string (D->site_name, field6);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ free_ds_type_string (D->title, field7);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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,
+ };
+ free_ds_type_string (D->description, field8);
+ }
+ if (PTR2INT (var0) & (1 << 4)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_photo (D->photo, field9);
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_string (D->embed_url, field10);
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_string (D->embed_type, field11);
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ 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,
+ };
+ free_ds_type_int (D->embed_width, field12);
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->embed_height, field13);
+ }
+ if (PTR2INT (var0) & (1 << 7)) {
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->duration, field14);
+ }
+ if (PTR2INT (var0) & (1 << 8)) {
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_string (D->author, field15);
+ }
+}
+void free_ds_constructor_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { return; }
+ 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 = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->authorizations, field1);
+}
+void free_ds_constructor_account_no_password (struct tl_ds_account_password *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return; }
+ 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,
+ };
+ free_ds_type_bytes (D->new_salt, field1);
+ 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,
+ };
+ free_ds_type_string (D->email_unconfirmed_pattern, field2);
+}
+void free_ds_constructor_account_password (struct tl_ds_account_password *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return; }
+ 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,
+ };
+ free_ds_type_bytes (D->current_salt, field1);
+ 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,
+ };
+ free_ds_type_bytes (D->new_salt, field2);
+ 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,
+ };
+ free_ds_type_string (D->hint, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->has_recovery, field4);
+ 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,
+ };
+ free_ds_type_string (D->email_unconfirmed_pattern, field5);
+}
+void free_ds_constructor_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ tfree (D->flags, sizeof (*D->flags));
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ free_ds_type_bytes (D->new_salt, field2);
+ }
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ free_ds_type_bytes (D->new_password_hash, field3);
+ }
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ free_ds_type_string (D->hint, field4);
+ }
+ if (PTR2INT (var0) & (1 << 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,
+ };
+ free_ds_type_string (D->email, field5);
+ }
+}
+void free_ds_constructor_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->email, field1);
+}
+void free_ds_constructor_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->rules, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field2);
+}
+void free_ds_constructor_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->phone_code_hash, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->send_call_timeout, field2);
+}
+void free_ds_constructor_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_user (D->user, field1);
+}
+void free_ds_constructor_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->phone_registered, field1);
+}
+void free_ds_constructor_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ 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,
+ };
+ free_ds_type_bytes (D->bytes, field2);
+}
+void free_ds_constructor_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->email_pattern, field1);
+}
+void free_ds_constructor_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->phone_registered, field1);
+ 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,
+ };
+ free_ds_type_string (D->phone_code_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->send_call_timeout, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->is_password, field4);
+}
+void free_ds_constructor_auth_sent_app_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->phone_registered, field1);
+ 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,
+ };
+ free_ds_type_string (D->phone_code_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->send_call_timeout, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->is_password, field4);
+}
+void free_ds_constructor_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return; }
+ int multiplicity1 = PTR2INT (
+ INT2PTR (64) );
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ {
+ int i = 0;
+ while (i < multiplicity1) {
+ free_ds_type_any (D->key[i ++], field1);
+ }
+ }
+ tfree (D->key, sizeof (void *) * multiplicity1);
+}
+void free_ds_constructor_binlog_start (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+}
+void free_ds_constructor_binlog_dc_option (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->dc, field1);
+ 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,
+ };
+ free_ds_type_string (D->name, field2);
+ 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,
+ };
+ free_ds_type_string (D->ip, field3);
+ 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,
+ };
+ free_ds_type_int (D->port, field4);
+}
+void free_ds_constructor_binlog_dc_option_new (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->flags, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->dc, field2);
+ 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,
+ };
+ free_ds_type_string (D->name, field3);
+ 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,
+ };
+ free_ds_type_string (D->ip, field4);
+ 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,
+ };
+ free_ds_type_int (D->port, field5);
+}
+void free_ds_constructor_binlog_auth_key (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->dc, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_binlog_encr_key (D->key, field2);
+}
+void free_ds_constructor_binlog_default_dc (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->dc, field1);
+}
+void free_ds_constructor_binlog_dc_signed (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->dc, field1);
+}
+void free_ds_constructor_binlog_our_id (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+}
+void free_ds_constructor_binlog_set_dh_params (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->root, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_binlog_encr_key (D->prime, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->version, field3);
+}
+void free_ds_constructor_binlog_set_pts (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts, field1);
+}
+void free_ds_constructor_binlog_set_qts (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->qts, field1);
+}
+void free_ds_constructor_binlog_set_date (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field1);
+}
+void free_ds_constructor_binlog_set_seq (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->seq, field1);
+}
+void free_ds_constructor_binlog_encr_chat_delete (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+}
+void free_ds_constructor_binlog_encr_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ tfree (D->flags, sizeof (*D->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,
+ };
+ free_ds_type_int (D->id, field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ free_ds_type_int (D->date, field4);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ free_ds_type_int (D->admin, field5);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ free_ds_type_int (D->user_id, field6);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_binlog_encr_key (D->key, field7);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_binlog_encr_key (D->g_key, field8);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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,
+ };
+ free_ds_type_int (D->state, field9);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ 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,
+ };
+ free_ds_type_int (D->ttl, field10);
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ 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,
+ };
+ free_ds_type_int (D->layer, field11);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ 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,
+ };
+ free_ds_type_int (D->in_seq_no, field12);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->last_in_seq_no, field13);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->out_seq_no, field14);
+ }
+ if (PTR2INT (var0) & (1 << 27)) {
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_long (D->key_fingerprint, field15);
+ }
+}
+void free_ds_constructor_binlog_encr_chat_exchange_new (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ tfree (D->flags, sizeof (*D->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,
+ };
+ free_ds_type_int (D->id, field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ free_ds_type_long (D->exchange_id, field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_binlog_encr_key (D->key, field4);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ free_ds_type_int (D->state, field5);
+ }
+}
+void free_ds_constructor_binlog_user_delete (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+}
+void free_ds_constructor_binlog_user_new (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ tfree (D->flags, sizeof (*D->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,
+ };
+ free_ds_type_int (D->id, field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ free_ds_type_long (D->access_hash, field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ free_ds_type_string (D->first_name, field4);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ free_ds_type_string (D->last_name, field5);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ free_ds_type_string (D->phone, field6);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ free_ds_type_string (D->username, field7);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_photo (D->photo, field8);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ 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,
+ };
+ free_ds_type_string (D->real_first_name, field9);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_string (D->real_last_name, field10);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_user_profile_photo (D->user_photo, field11);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ 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,
+ };
+ free_ds_type_int (D->last_read_in, field12);
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->last_read_out, field13);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bot_info (D->bot_info, field14);
+ }
+}
+void free_ds_constructor_binlog_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ tfree (D->flags, sizeof (*D->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,
+ };
+ free_ds_type_int (D->id, field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ free_ds_type_string (D->title, field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ free_ds_type_int (D->user_num, field4);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ free_ds_type_int (D->date, field5);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ free_ds_type_int (D->version, field6);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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 = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->participants, field7);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_chat_photo (D->chat_photo, field8);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_photo (D->photo, field9);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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,
+ };
+ free_ds_type_int (D->admin, field10);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ 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,
+ };
+ free_ds_type_int (D->last_read_in, field11);
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ 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,
+ };
+ free_ds_type_int (D->last_read_out, field12);
+ }
+}
+void free_ds_constructor_binlog_chat_add_participant (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->version, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field3);
+ 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,
+ };
+ free_ds_type_int (D->inviter_id, field4);
+ 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,
+ };
+ free_ds_type_int (D->date, field5);
+}
+void free_ds_constructor_binlog_chat_del_participant (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->version, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->user_id, field3);
+}
+void free_ds_constructor_binlog_set_msg_id (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->old_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->new_id, field2);
+}
+void free_ds_constructor_binlog_message_delete (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->lid, field1);
+}
+void free_ds_constructor_binlog_message_new (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ tfree (D->flags, sizeof (*D->flags));
+ 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,
+ };
+ free_ds_type_long (D->lid, field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->from_id, field3);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ free_ds_type_int (D->to_type, field4);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ free_ds_type_int (D->to_id, field5);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ free_ds_type_int (D->fwd_from_id, field6);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ free_ds_type_int (D->fwd_date, field7);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ free_ds_type_int (D->date, field8);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ free_ds_type_string (D->message, field9);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_message_media (D->media, field10);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_message_action (D->action, field11);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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,
+ };
+ free_ds_type_int (D->reply_id, field12);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_reply_markup (D->reply_markup, field13);
+ }
+}
+void free_ds_constructor_binlog_message_encr_new (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ tfree (D->flags, sizeof (*D->flags));
+ 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,
+ };
+ free_ds_type_long (D->lid, field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->from_id, field3);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ free_ds_type_int (D->to_type, field4);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ free_ds_type_int (D->to_id, field5);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ free_ds_type_int (D->date, field6);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ free_ds_type_string (D->message, field7);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_decrypted_message_media (D->encr_media, field8);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_decrypted_message_action (D->encr_action, field9);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_encrypted_file (D->file, field10);
+ }
+}
+void free_ds_constructor_binlog_msg_update (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ 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,
+ };
+ free_ds_type_long (D->lid, field1);
+}
+void free_ds_constructor_binlog_reset_authorization (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+}
+void free_ds_constructor_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->blocked, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field2);
+}
+void free_ds_constructor_contacts_blocked_slice (struct tl_ds_contacts_blocked *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->count, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->blocked, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field3);
+}
+void free_ds_constructor_contacts_contacts_not_modified (struct tl_ds_contacts_contacts *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return; }
+}
+void free_ds_constructor_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->contacts, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field2);
+}
+void free_ds_constructor_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->results, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field2);
+}
+void free_ds_constructor_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->imported, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->retry_contacts, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field3);
+}
+void free_ds_constructor_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_contact_link (D->my_link, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_contact_link (D->foreign_link, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_user (D->user, field3);
+}
+void free_ds_constructor_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->results, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field2);
+}
+void free_ds_constructor_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->results, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->messages, field2);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->chats, field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field4);
+}
+void free_ds_constructor_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->messages, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->chats, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field3);
+}
+void free_ds_constructor_geochats_messages_slice (struct tl_ds_geochats_messages *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->count, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->messages, field2);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->chats, field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field4);
+}
+void free_ds_constructor_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_geo_chat_message (D->message, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->chats, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field3);
+ 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,
+ };
+ free_ds_type_int (D->seq, field4);
+}
+void free_ds_constructor_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_bool (D->critical, field2);
+ 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,
+ };
+ free_ds_type_string (D->url, field3);
+ 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,
+ };
+ free_ds_type_string (D->text, field4);
+}
+void free_ds_constructor_help_no_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return; }
+}
+void free_ds_constructor_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->message, field1);
+}
+void free_ds_constructor_help_support (struct tl_ds_help_support *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->phone_number, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_user (D->user, field2);
+}
+void free_ds_constructor_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts_count, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->offset, field3);
+}
+void free_ds_constructor_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts_count, field2);
+}
+void free_ds_constructor_messages_all_stickers_not_modified (struct tl_ds_messages_all_stickers *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return; }
+}
+void free_ds_constructor_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->hash, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->packs, field2);
+ 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 = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->sets, field3);
+ 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 = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->documents, field4);
+}
+void free_ds_constructor_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2e02a614, .id = "ChatFull", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_chat_full (D->full_chat, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->chats, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field3);
+}
+void free_ds_constructor_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { return; }
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->chats, field1);
+}
+void free_ds_constructor_messages_dh_config_not_modified (struct tl_ds_messages_dh_config *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return; }
+ 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,
+ };
+ free_ds_type_bytes (D->random, field1);
+}
+void free_ds_constructor_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->g, field1);
+ 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,
+ };
+ free_ds_type_bytes (D->p, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->version, field3);
+ 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,
+ };
+ free_ds_type_bytes (D->random, field4);
+}
+void free_ds_constructor_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return; }
+ 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 = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->dialogs, field1);
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->messages, field2);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->chats, field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field4);
+}
+void free_ds_constructor_messages_dialogs_slice (struct tl_ds_messages_dialogs *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->count, field1);
+ 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 = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->dialogs, field2);
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->messages, field3);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->chats, field4);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field5);
+}
+void free_ds_constructor_messages_message_empty (struct tl_ds_messages_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { return; }
+}
+void free_ds_constructor_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return; }
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->messages, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->chats, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field3);
+}
+void free_ds_constructor_messages_messages_slice (struct tl_ds_messages_messages *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->count, field1);
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->messages, field2);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->chats, field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field4);
+}
+void free_ds_constructor_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field1);
+}
+void free_ds_constructor_messages_sent_encrypted_file (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_encrypted_file (D->file, field2);
+}
+void free_ds_constructor_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_message_media (D->media, field3);
+ 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,
+ };
+ free_ds_type_int (D->pts, field4);
+ 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,
+ };
+ free_ds_type_int (D->pts_count, field5);
+}
+void free_ds_constructor_messages_sent_message_link (struct tl_ds_messages_sent_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_message_media (D->media, field3);
+ 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,
+ };
+ free_ds_type_int (D->pts, field4);
+ 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,
+ };
+ free_ds_type_int (D->pts_count, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->links, field6);
+ 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,
+ };
+ free_ds_type_int (D->seq, field7);
+}
+void free_ds_constructor_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_sticker_set (D->set, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->packs, field2);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->documents, field3);
+}
+void free_ds_constructor_messages_stickers_not_modified (struct tl_ds_messages_stickers *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return; }
+}
+void free_ds_constructor_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return; }
+ 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,
+ };
+ free_ds_type_string (D->hash, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->stickers, field2);
+}
+void free_ds_constructor_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_photo (D->photo, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field2);
+}
+void free_ds_constructor_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return; }
+ 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->photos, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field2);
+}
+void free_ds_constructor_photos_photos_slice (struct tl_ds_photos_photos *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->count, field1);
+ 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->photos, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field3);
+}
+void free_ds_constructor_storage_file_unknown (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void free_ds_constructor_storage_file_jpeg (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void free_ds_constructor_storage_file_gif (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void free_ds_constructor_storage_file_png (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void free_ds_constructor_storage_file_pdf (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void free_ds_constructor_storage_file_mp3 (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void free_ds_constructor_storage_file_mov (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void free_ds_constructor_storage_file_partial (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void free_ds_constructor_storage_file_mp4 (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void free_ds_constructor_storage_file_webp (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void free_ds_constructor_updates_difference_empty (struct tl_ds_updates_difference *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->seq, field2);
+}
+void free_ds_constructor_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return; }
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->new_messages, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->new_encrypted_messages, field2);
+ 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->other_updates, field3);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->chats, field4);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field5);
+ 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,
+ };
+ free_ds_type_updates_state (D->state, field6);
+}
+void free_ds_constructor_updates_difference_slice (struct tl_ds_updates_difference *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return; }
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->new_messages, field1);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->new_encrypted_messages, field2);
+ 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->other_updates, field3);
+ 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,
+ },
+ }
+ };
+ free_ds_type_any (D->chats, field4);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ free_ds_type_any (D->users, field5);
+ 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,
+ };
+ free_ds_type_updates_state (D->intermediate_state, field6);
+}
+void free_ds_constructor_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->pts, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->qts, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->date, field3);
+ 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,
+ };
+ free_ds_type_int (D->seq, field4);
+ 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,
+ };
+ free_ds_type_int (D->unread_count, field5);
+}
+void free_ds_constructor_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return; }
+ 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,
+ };
+ free_ds_type_storage_file_type (D->type, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ free_ds_type_int (D->mtime, field2);
+ 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,
+ };
+ free_ds_type_bytes (D->bytes, field3);
+}
+void free_ds_type_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T) {
+ free_ds_constructor_account_days_t_t_l (D, T); return;
+}
+void free_ds_type_audio (struct tl_ds_audio *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x586988d8: free_ds_constructor_audio_empty (D, T); return;
+ case 0xc7ac6496: free_ds_constructor_audio (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_authorization (struct tl_ds_authorization *D, struct paramed_type *T) {
+ free_ds_constructor_authorization (D, T); return;
+}
+void free_ds_type_bool (struct tl_ds_bool *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xbc799737: free_ds_constructor_bool_false (D, T); return;
+ case 0x997275b5: free_ds_constructor_bool_true (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xc27ac8c7: free_ds_constructor_bot_command (D, T); return;
+ case 0xb79d22ab: free_ds_constructor_bot_command_old (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xbb2e37ce: free_ds_constructor_bot_info_empty (D, T); return;
+ case 0x09cf585d: free_ds_constructor_bot_info (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_bytes (struct tl_ds_string *D, struct paramed_type *T) {
+ free_ds_constructor_bytes (D, T); return;
+}
+void free_ds_type_chat (struct tl_ds_chat *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x9ba2d800: free_ds_constructor_chat_empty (D, T); return;
+ case 0x6e9c9bc7: free_ds_constructor_chat (D, T); return;
+ case 0xfb0ccc41: free_ds_constructor_chat_forbidden (D, T); return;
+ case 0x75eaea5a: free_ds_constructor_geo_chat (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T) {
+ free_ds_constructor_chat_full (D, T); return;
+}
+void free_ds_type_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x5a686d7c: free_ds_constructor_chat_invite_already (D, T); return;
+ case 0xce917dcd: free_ds_constructor_chat_invite (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T) {
+ free_ds_constructor_chat_located (D, T); return;
+}
+void free_ds_type_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T) {
+ free_ds_constructor_chat_participant (D, T); return;
+}
+void free_ds_type_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x0fd2bb8a: free_ds_constructor_chat_participants_forbidden (D, T); return;
+ case 0x7841b415: free_ds_constructor_chat_participants (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x37c1011c: free_ds_constructor_chat_photo_empty (D, T); return;
+ case 0x6153276a: free_ds_constructor_chat_photo (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T) {
+ free_ds_constructor_client_d_h_inner_data (D, T); return;
+}
+void free_ds_type_config (struct tl_ds_config *D, struct paramed_type *T) {
+ free_ds_constructor_config (D, T); return;
+}
+void free_ds_type_contact (struct tl_ds_contact *D, struct paramed_type *T) {
+ free_ds_constructor_contact (D, T); return;
+}
+void free_ds_type_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T) {
+ free_ds_constructor_contact_blocked (D, T); return;
+}
+void free_ds_type_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T) {
+ free_ds_constructor_contact_found (D, T); return;
+}
+void free_ds_type_contact_link (struct tl_ds_contact_link *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x5f4f9247: free_ds_constructor_contact_link_unknown (D, T); return;
+ case 0xfeedd3ad: free_ds_constructor_contact_link_none (D, T); return;
+ case 0x268f3f59: free_ds_constructor_contact_link_has_phone (D, T); return;
+ case 0xd502c2d0: free_ds_constructor_contact_link_contact (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T) {
+ free_ds_constructor_contact_status (D, T); return;
+}
+void free_ds_type_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T) {
+ free_ds_constructor_contact_suggested (D, T); return;
+}
+void free_ds_type_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x2ec2a43c: free_ds_constructor_dc_option_l28 (D, T); return;
+ case 0x05d8c6cc: free_ds_constructor_dc_option (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x204d3878: free_ds_constructor_decrypted_message (D, T); return;
+ case 0x73164160: free_ds_constructor_decrypted_message_service (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_decrypted_message_action (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xa1733aec: free_ds_constructor_decrypted_message_action_set_message_t_t_l (D, T); return;
+ case 0x0c4f40be: free_ds_constructor_decrypted_message_action_read_messages (D, T); return;
+ case 0x65614304: free_ds_constructor_decrypted_message_action_delete_messages (D, T); return;
+ case 0x8ac1f475: free_ds_constructor_decrypted_message_action_screenshot_messages (D, T); return;
+ case 0x6719e45c: free_ds_constructor_decrypted_message_action_flush_history (D, T); return;
+ case 0x511110b0: free_ds_constructor_decrypted_message_action_resend (D, T); return;
+ case 0xf3048883: free_ds_constructor_decrypted_message_action_notify_layer (D, T); return;
+ case 0xccb27641: free_ds_constructor_decrypted_message_action_typing (D, T); return;
+ case 0xf3c9611b: free_ds_constructor_decrypted_message_action_request_key (D, T); return;
+ case 0x6fe1735b: free_ds_constructor_decrypted_message_action_accept_key (D, T); return;
+ case 0xdd05ec6b: free_ds_constructor_decrypted_message_action_abort_key (D, T); return;
+ case 0xec2e0b9b: free_ds_constructor_decrypted_message_action_commit_key (D, T); return;
+ case 0xa82fdd63: free_ds_constructor_decrypted_message_action_noop (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T) {
+ free_ds_constructor_decrypted_message_layer (D, T); return;
+}
+void free_ds_type_decrypted_message_media (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x089f5c4a: free_ds_constructor_decrypted_message_media_empty (D, T); return;
+ case 0x32798a8c: free_ds_constructor_decrypted_message_media_photo (D, T); return;
+ case 0x35480a59: free_ds_constructor_decrypted_message_media_geo_point (D, T); return;
+ case 0x588a0a97: free_ds_constructor_decrypted_message_media_contact (D, T); return;
+ case 0xb095434b: free_ds_constructor_decrypted_message_media_document (D, T); return;
+ case 0x524a415d: free_ds_constructor_decrypted_message_media_video (D, T); return;
+ case 0x57e0a9cb: free_ds_constructor_decrypted_message_media_audio (D, T); return;
+ case 0xfa95b0dd: free_ds_constructor_decrypted_message_media_external_document (D, T); return;
+ case 0x4cee6ef3: free_ds_constructor_decrypted_message_media_video_l12 (D, T); return;
+ case 0x6080758f: free_ds_constructor_decrypted_message_media_audio_l12 (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_dialog (struct tl_ds_dialog *D, struct paramed_type *T) {
+ free_ds_constructor_dialog (D, T); return;
+}
+void free_ds_type_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T) {
+ free_ds_constructor_disabled_feature (D, T); return;
+}
+void free_ds_type_document (struct tl_ds_document *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x36f8c871: free_ds_constructor_document_empty (D, T); return;
+ case 0xf9a39f4f: free_ds_constructor_document (D, T); return;
+ case 0x9efc6326: free_ds_constructor_document_l19 (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_document_attribute (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x6c37c15c: free_ds_constructor_document_attribute_image_size (D, T); return;
+ case 0x11b58939: free_ds_constructor_document_attribute_animated (D, T); return;
+ case 0x994c9882: free_ds_constructor_document_attribute_sticker_l28 (D, T); return;
+ case 0x3a556302: free_ds_constructor_document_attribute_sticker (D, T); return;
+ case 0x5910cccb: free_ds_constructor_document_attribute_video (D, T); return;
+ case 0x051448e5: free_ds_constructor_document_attribute_audio (D, T); return;
+ case 0x15590068: free_ds_constructor_document_attribute_filename (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_double (double *D, struct paramed_type *T) {
+ free_ds_constructor_double (D, T); return;
+}
+void free_ds_type_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xab7ec0a0: free_ds_constructor_encrypted_chat_empty (D, T); return;
+ case 0x3bf703dc: free_ds_constructor_encrypted_chat_waiting (D, T); return;
+ case 0xc878527e: free_ds_constructor_encrypted_chat_requested (D, T); return;
+ case 0xfa56ce36: free_ds_constructor_encrypted_chat (D, T); return;
+ case 0x13d6dd27: free_ds_constructor_encrypted_chat_discarded (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xc21f497e: free_ds_constructor_encrypted_file_empty (D, T); return;
+ case 0x4a70994c: free_ds_constructor_encrypted_file (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xed18c118: free_ds_constructor_encrypted_message (D, T); return;
+ case 0x23734b06: free_ds_constructor_encrypted_message_service (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_error (struct tl_ds_error *D, struct paramed_type *T) {
+ free_ds_constructor_error (D, T); return;
+}
+void free_ds_type_exported_chat_invite (struct tl_ds_exported_chat_invite *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x69df3769: free_ds_constructor_chat_invite_empty (D, T); return;
+ case 0xfc2e05bc: free_ds_constructor_chat_invite_exported (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_file_location (struct tl_ds_file_location *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x7c596b46: free_ds_constructor_file_location_unavailable (D, T); return;
+ case 0x53d69076: free_ds_constructor_file_location (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x60311a9b: free_ds_constructor_geo_chat_message_empty (D, T); return;
+ case 0x4505f8e1: free_ds_constructor_geo_chat_message (D, T); return;
+ case 0xd34fa24e: free_ds_constructor_geo_chat_message_service (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x1117dd5f: free_ds_constructor_geo_point_empty (D, T); return;
+ case 0x2049d70c: free_ds_constructor_geo_point (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T) {
+ free_ds_constructor_imported_contact (D, T); return;
+}
+void free_ds_type_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T) {
+ free_ds_constructor_input_app_event (D, T); return;
+}
+void free_ds_type_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xd95adc84: free_ds_constructor_input_audio_empty (D, T); return;
+ case 0x77d440ff: free_ds_constructor_input_audio (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x1ca48f57: free_ds_constructor_input_chat_photo_empty (D, T); return;
+ case 0x94254732: free_ds_constructor_input_chat_uploaded_photo (D, T); return;
+ case 0xb2e1bf08: free_ds_constructor_input_chat_photo (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_contact (struct tl_ds_input_contact *D, struct paramed_type *T) {
+ free_ds_constructor_input_phone_contact (D, T); return;
+}
+void free_ds_type_input_document (struct tl_ds_input_document *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x72f0eaae: free_ds_constructor_input_document_empty (D, T); return;
+ case 0x18798952: free_ds_constructor_input_document (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T) {
+ free_ds_constructor_input_encrypted_chat (D, T); return;
+}
+void free_ds_type_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x1837c364: free_ds_constructor_input_encrypted_file_empty (D, T); return;
+ case 0x64bd0306: free_ds_constructor_input_encrypted_file_uploaded (D, T); return;
+ case 0x5a17b5e5: free_ds_constructor_input_encrypted_file (D, T); return;
+ case 0x2dc173c8: free_ds_constructor_input_encrypted_file_big_uploaded (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_file (struct tl_ds_input_file *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xf52ff27f: free_ds_constructor_input_file (D, T); return;
+ case 0xfa4f0bb5: free_ds_constructor_input_file_big (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x14637196: free_ds_constructor_input_file_location (D, T); return;
+ case 0x3d0364ec: free_ds_constructor_input_video_file_location (D, T); return;
+ case 0xf5235d55: free_ds_constructor_input_encrypted_file_location (D, T); return;
+ case 0x74dc404d: free_ds_constructor_input_audio_file_location (D, T); return;
+ case 0x4e45abe9: free_ds_constructor_input_document_file_location (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T) {
+ free_ds_constructor_input_geo_chat (D, T); return;
+}
+void free_ds_type_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xe4c123d6: free_ds_constructor_input_geo_point_empty (D, T); return;
+ case 0xf3b7acc9: free_ds_constructor_input_geo_point (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_media (struct tl_ds_input_media *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x9664f57f: free_ds_constructor_input_media_empty (D, T); return;
+ case 0xf7aff1c0: free_ds_constructor_input_media_uploaded_photo (D, T); return;
+ case 0xe9bfb4f3: free_ds_constructor_input_media_photo (D, T); return;
+ case 0xf9c44144: free_ds_constructor_input_media_geo_point (D, T); return;
+ case 0xa6e45987: free_ds_constructor_input_media_contact (D, T); return;
+ case 0xe13fd4bc: free_ds_constructor_input_media_uploaded_video (D, T); return;
+ case 0x96fb97dc: free_ds_constructor_input_media_uploaded_thumb_video (D, T); return;
+ case 0x936a4ebd: free_ds_constructor_input_media_video (D, T); return;
+ case 0x4e498cab: free_ds_constructor_input_media_uploaded_audio (D, T); return;
+ case 0x89938781: free_ds_constructor_input_media_audio (D, T); return;
+ case 0xffe76b78: free_ds_constructor_input_media_uploaded_document (D, T); return;
+ case 0x41481486: free_ds_constructor_input_media_uploaded_thumb_document (D, T); return;
+ case 0xd184e841: free_ds_constructor_input_media_document (D, T); return;
+ case 0x2827a81a: free_ds_constructor_input_media_venue (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xb8bc5b0c: free_ds_constructor_input_notify_peer (D, T); return;
+ case 0x193b4417: free_ds_constructor_input_notify_users (D, T); return;
+ case 0x4a95e84e: free_ds_constructor_input_notify_chats (D, T); return;
+ case 0xa429b886: free_ds_constructor_input_notify_all (D, T); return;
+ case 0x4d8ddec8: free_ds_constructor_input_notify_geo_chat_peer (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_peer (struct tl_ds_input_peer *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x7f3b18ea: free_ds_constructor_input_peer_empty (D, T); return;
+ case 0x7da07ec9: free_ds_constructor_input_peer_self (D, T); return;
+ case 0x1023dbe8: free_ds_constructor_input_peer_contact (D, T); return;
+ case 0x9b447325: free_ds_constructor_input_peer_foreign (D, T); return;
+ case 0x179be863: free_ds_constructor_input_peer_chat (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_peer_notify_events (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xf03064d8: free_ds_constructor_input_peer_notify_events_empty (D, T); return;
+ case 0xe86a2c74: free_ds_constructor_input_peer_notify_events_all (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T) {
+ free_ds_constructor_input_peer_notify_settings (D, T); return;
+}
+void free_ds_type_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x1cd7bf0d: free_ds_constructor_input_photo_empty (D, T); return;
+ case 0xfb95c6c4: free_ds_constructor_input_photo (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xade6b004: free_ds_constructor_input_photo_crop_auto (D, T); return;
+ case 0xd9915325: free_ds_constructor_input_photo_crop (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_privacy_key (struct tl_ds_input_privacy_key *D, struct paramed_type *T) {
+ free_ds_constructor_input_privacy_key_status_timestamp (D, T); return;
+}
+void free_ds_type_input_privacy_rule (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x0d09e07b: free_ds_constructor_input_privacy_value_allow_contacts (D, T); return;
+ case 0x184b35ce: free_ds_constructor_input_privacy_value_allow_all (D, T); return;
+ case 0x131cc67f: free_ds_constructor_input_privacy_value_allow_users (D, T); return;
+ case 0x0ba52007: free_ds_constructor_input_privacy_value_disallow_contacts (D, T); return;
+ case 0xd66b66c9: free_ds_constructor_input_privacy_value_disallow_all (D, T); return;
+ case 0x90110467: free_ds_constructor_input_privacy_value_disallow_users (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_sticker_set (struct tl_ds_input_sticker_set *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xffb62b95: free_ds_constructor_input_sticker_set_empty (D, T); return;
+ case 0x9de7a269: free_ds_constructor_input_sticker_set_i_d (D, T); return;
+ case 0x861cc8a0: free_ds_constructor_input_sticker_set_short_name (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_user (struct tl_ds_input_user *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xb98886cf: free_ds_constructor_input_user_empty (D, T); return;
+ case 0xf7c1b13f: free_ds_constructor_input_user_self (D, T); return;
+ case 0x86e94f65: free_ds_constructor_input_user_contact (D, T); return;
+ case 0x655e74ff: free_ds_constructor_input_user_foreign (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_input_video (struct tl_ds_input_video *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x5508ec75: free_ds_constructor_input_video_empty (D, T); return;
+ case 0xee579652: free_ds_constructor_input_video (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_int (int *D, struct paramed_type *T) {
+ free_ds_constructor_int (D, T); return;
+}
+void free_ds_type_int128 (struct tl_ds_int128 *D, struct paramed_type *T) {
+ free_ds_constructor_int128 (D, T); return;
+}
+void free_ds_type_int256 (struct tl_ds_int256 *D, struct paramed_type *T) {
+ free_ds_constructor_int256 (D, T); return;
+}
+void free_ds_type_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T) {
+ free_ds_constructor_keyboard_button (D, T); return;
+}
+void free_ds_type_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T) {
+ free_ds_constructor_keyboard_button_row (D, T); return;
+}
+void free_ds_type_long (long long *D, struct paramed_type *T) {
+ free_ds_constructor_long (D, T); return;
+}
+void free_ds_type_message (struct tl_ds_message *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x83e5de54: free_ds_constructor_message_empty (D, T); return;
+ case 0xc3060325: free_ds_constructor_message (D, T); return;
+ case 0x1d86f70e: free_ds_constructor_message_service (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_message_action (struct tl_ds_message_action *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xb6aef7b0: free_ds_constructor_message_action_empty (D, T); return;
+ case 0xa6638b9a: free_ds_constructor_message_action_chat_create (D, T); return;
+ case 0xb5a1ce5a: free_ds_constructor_message_action_chat_edit_title (D, T); return;
+ case 0x7fcb13a8: free_ds_constructor_message_action_chat_edit_photo (D, T); return;
+ case 0x95e3fbef: free_ds_constructor_message_action_chat_delete_photo (D, T); return;
+ case 0x5e3cfc4b: free_ds_constructor_message_action_chat_add_user (D, T); return;
+ case 0xb2ae9b0c: free_ds_constructor_message_action_chat_delete_user (D, T); return;
+ case 0x6f038ebc: free_ds_constructor_message_action_geo_chat_create (D, T); return;
+ case 0x0c7d53de: free_ds_constructor_message_action_geo_chat_checkin (D, T); return;
+ case 0xf89cf5e8: free_ds_constructor_message_action_chat_joined_by_link (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_message_media (struct tl_ds_message_media *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x3ded6320: free_ds_constructor_message_media_empty (D, T); return;
+ case 0x3d8ce53d: free_ds_constructor_message_media_photo (D, T); return;
+ case 0x5bcf1675: free_ds_constructor_message_media_video (D, T); return;
+ case 0x56e0d474: free_ds_constructor_message_media_geo (D, T); return;
+ case 0x5e7d2f39: free_ds_constructor_message_media_contact (D, T); return;
+ case 0x9f84f49e: free_ds_constructor_message_media_unsupported (D, T); return;
+ case 0x2fda2204: free_ds_constructor_message_media_document (D, T); return;
+ case 0xc6b68300: free_ds_constructor_message_media_audio (D, T); return;
+ case 0xa32dd600: free_ds_constructor_message_media_web_page (D, T); return;
+ case 0x7912b71f: free_ds_constructor_message_media_venue (D, T); return;
+ case 0xc8c45a2a: free_ds_constructor_message_media_photo_l27 (D, T); return;
+ case 0xa2d24290: free_ds_constructor_message_media_video_l27 (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_messages_filter (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x57e2f66c: free_ds_constructor_input_messages_filter_empty (D, T); return;
+ case 0x9609a51c: free_ds_constructor_input_messages_filter_photos (D, T); return;
+ case 0x9fc00e65: free_ds_constructor_input_messages_filter_video (D, T); return;
+ case 0x56e9f0e4: free_ds_constructor_input_messages_filter_photo_video (D, T); return;
+ case 0xd95e73bb: free_ds_constructor_input_messages_filter_photo_video_documents (D, T); return;
+ case 0x9eddf188: free_ds_constructor_input_messages_filter_document (D, T); return;
+ case 0xcfc87522: free_ds_constructor_input_messages_filter_audio (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T) {
+ free_ds_constructor_nearest_dc (D, T); return;
+}
+void free_ds_type_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x9fd40bd8: free_ds_constructor_notify_peer (D, T); return;
+ case 0xb4c83b4c: free_ds_constructor_notify_users (D, T); return;
+ case 0xc007cec3: free_ds_constructor_notify_chats (D, T); return;
+ case 0x74d07c60: free_ds_constructor_notify_all (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_null (struct tl_ds_null *D, struct paramed_type *T) {
+ free_ds_constructor_null (D, T); return;
+}
+void free_ds_type_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x83c95aec: free_ds_constructor_p_q_inner_data (D, T); return;
+ case 0x3c6a84d4: free_ds_constructor_p_q_inner_data_temp (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_peer (struct tl_ds_peer *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x9db1bc6d: free_ds_constructor_peer_user (D, T); return;
+ case 0xbad0e5bb: free_ds_constructor_peer_chat (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_peer_notify_events (struct tl_ds_peer_notify_events *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xadd53cb3: free_ds_constructor_peer_notify_events_empty (D, T); return;
+ case 0x6d1ded88: free_ds_constructor_peer_notify_events_all (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x70a68512: free_ds_constructor_peer_notify_settings_empty (D, T); return;
+ case 0x8d5e11ee: free_ds_constructor_peer_notify_settings (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_photo (struct tl_ds_photo *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x2331b22d: free_ds_constructor_photo_empty (D, T); return;
+ case 0xc3838076: free_ds_constructor_photo (D, T); return;
+ case 0x22b56751: free_ds_constructor_photo_l27 (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x0e17e23c: free_ds_constructor_photo_size_empty (D, T); return;
+ case 0x77bfb61b: free_ds_constructor_photo_size (D, T); return;
+ case 0xe9a734fa: free_ds_constructor_photo_cached_size (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_privacy_key (struct tl_ds_privacy_key *D, struct paramed_type *T) {
+ free_ds_constructor_privacy_key_status_timestamp (D, T); return;
+}
+void free_ds_type_privacy_rule (struct tl_ds_privacy_rule *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xfffe1bac: free_ds_constructor_privacy_value_allow_contacts (D, T); return;
+ case 0x65427b82: free_ds_constructor_privacy_value_allow_all (D, T); return;
+ case 0x4d5bbe0c: free_ds_constructor_privacy_value_allow_users (D, T); return;
+ case 0xf888fa1a: free_ds_constructor_privacy_value_disallow_contacts (D, T); return;
+ case 0x8b73e763: free_ds_constructor_privacy_value_disallow_all (D, T); return;
+ case 0x0c7f49b7: free_ds_constructor_privacy_value_disallow_users (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T) {
+ free_ds_constructor_received_notify_message (D, T); return;
+}
+void free_ds_type_reply_markup (struct tl_ds_reply_markup *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xa03e5b85: free_ds_constructor_reply_keyboard_hide (D, T); return;
+ case 0xf4108aa0: free_ds_constructor_reply_keyboard_force_reply (D, T); return;
+ case 0x3502758c: free_ds_constructor_reply_keyboard_markup (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T) {
+ free_ds_constructor_res_p_q (D, T); return;
+}
+void free_ds_type_send_message_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x16bf744e: free_ds_constructor_send_message_typing_action (D, T); return;
+ case 0xfd5ec8f5: free_ds_constructor_send_message_cancel_action (D, T); return;
+ case 0xa187d66f: free_ds_constructor_send_message_record_video_action (D, T); return;
+ case 0x92042ff7: free_ds_constructor_send_message_upload_video_action_l27 (D, T); return;
+ case 0xe9763aec: free_ds_constructor_send_message_upload_video_action (D, T); return;
+ case 0xd52f73f7: free_ds_constructor_send_message_record_audio_action (D, T); return;
+ case 0xe6ac8a6f: free_ds_constructor_send_message_upload_audio_action_l27 (D, T); return;
+ case 0xf351d7ab: free_ds_constructor_send_message_upload_audio_action (D, T); return;
+ case 0xd1d34a26: free_ds_constructor_send_message_upload_photo_action (D, T); return;
+ case 0x8faee98e: free_ds_constructor_send_message_upload_document_action_l27 (D, T); return;
+ case 0xaa0cd9e4: free_ds_constructor_send_message_upload_document_action (D, T); return;
+ case 0x176f8ba1: free_ds_constructor_send_message_geo_location_action (D, T); return;
+ case 0x628cbc6f: free_ds_constructor_send_message_choose_contact_action (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_server_d_h_params (struct tl_ds_server_d_h_params *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x79cb045d: free_ds_constructor_server_d_h_params_fail (D, T); return;
+ case 0xd0e8075c: free_ds_constructor_server_d_h_params_ok (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T) {
+ free_ds_constructor_server_d_h_inner_data (D, T); return;
+}
+void free_ds_type_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x3bcbf734: free_ds_constructor_dh_gen_ok (D, T); return;
+ case 0x46dc1fb9: free_ds_constructor_dh_gen_retry (D, T); return;
+ case 0xa69dae02: free_ds_constructor_dh_gen_fail (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T) {
+ free_ds_constructor_sticker_pack (D, T); return;
+}
+void free_ds_type_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T) {
+ free_ds_constructor_sticker_set (D, T); return;
+}
+void free_ds_type_string (struct tl_ds_string *D, struct paramed_type *T) {
+ free_ds_constructor_string (D, T); return;
+}
+void free_ds_type_update (struct tl_ds_update *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x1f2b0afd: free_ds_constructor_update_new_message (D, T); return;
+ case 0x4e90bfd6: free_ds_constructor_update_message_i_d (D, T); return;
+ case 0xa20db0e5: free_ds_constructor_update_delete_messages (D, T); return;
+ case 0x5c486927: free_ds_constructor_update_user_typing (D, T); return;
+ case 0x9a65ea1f: free_ds_constructor_update_chat_user_typing (D, T); return;
+ case 0x07761198: free_ds_constructor_update_chat_participants (D, T); return;
+ case 0x1bfbd823: free_ds_constructor_update_user_status (D, T); return;
+ case 0xa7332b73: free_ds_constructor_update_user_name (D, T); return;
+ case 0x95313b0c: free_ds_constructor_update_user_photo (D, T); return;
+ case 0x2575bbb9: free_ds_constructor_update_contact_registered (D, T); return;
+ case 0x9d2e67c5: free_ds_constructor_update_contact_link (D, T); return;
+ case 0x8f06529a: free_ds_constructor_update_new_authorization (D, T); return;
+ case 0x5a68e3f7: free_ds_constructor_update_new_geo_chat_message (D, T); return;
+ case 0x12bcbd9a: free_ds_constructor_update_new_encrypted_message (D, T); return;
+ case 0x1710f156: free_ds_constructor_update_encrypted_chat_typing (D, T); return;
+ case 0xb4a2e88d: free_ds_constructor_update_encryption (D, T); return;
+ case 0x38fe25b7: free_ds_constructor_update_encrypted_messages_read (D, T); return;
+ case 0x3a0eeb22: free_ds_constructor_update_chat_participant_add (D, T); return;
+ case 0x6e5f8c22: free_ds_constructor_update_chat_participant_delete (D, T); return;
+ case 0x8e5e9873: free_ds_constructor_update_dc_options (D, T); return;
+ case 0x80ece81a: free_ds_constructor_update_user_blocked (D, T); return;
+ case 0xbec268ef: free_ds_constructor_update_notify_settings (D, T); return;
+ case 0x382dd3e4: free_ds_constructor_update_service_notification (D, T); return;
+ case 0xee3b272a: free_ds_constructor_update_privacy (D, T); return;
+ case 0x12b9417b: free_ds_constructor_update_user_phone (D, T); return;
+ case 0x9961fd5c: free_ds_constructor_update_read_history_inbox (D, T); return;
+ case 0x2f2f21bf: free_ds_constructor_update_read_history_outbox (D, T); return;
+ case 0x2cc36971: free_ds_constructor_update_web_page (D, T); return;
+ case 0x68c13933: free_ds_constructor_update_read_messages_contents (D, T); return;
+ case 0x03114739: free_ds_constructor_update_msg_update (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_updates (struct tl_ds_updates *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xe317af7e: free_ds_constructor_updates_too_long (D, T); return;
+ case 0xed5c2127: free_ds_constructor_update_short_message (D, T); return;
+ case 0x52238b3c: free_ds_constructor_update_short_chat_message (D, T); return;
+ case 0x78d4dec1: free_ds_constructor_update_short (D, T); return;
+ case 0x725b04c3: free_ds_constructor_updates_combined (D, T); return;
+ case 0x74ae4240: free_ds_constructor_updates (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_user (struct tl_ds_user *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x200250ba: free_ds_constructor_user_empty (D, T); return;
+ case 0x22e49072: free_ds_constructor_user (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_user_full (struct tl_ds_user_full *D, struct paramed_type *T) {
+ free_ds_constructor_user_full (D, T); return;
+}
+void free_ds_type_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x4f11bae1: free_ds_constructor_user_profile_photo_empty (D, T); return;
+ case 0xd559d8c8: free_ds_constructor_user_profile_photo (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_user_status (struct tl_ds_user_status *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x09d05049: free_ds_constructor_user_status_empty (D, T); return;
+ case 0xedb93949: free_ds_constructor_user_status_online (D, T); return;
+ case 0x008c703f: free_ds_constructor_user_status_offline (D, T); return;
+ case 0xe26f42f1: free_ds_constructor_user_status_recently (D, T); return;
+ case 0x07bf09fc: free_ds_constructor_user_status_last_week (D, T); return;
+ case 0x77ebc742: free_ds_constructor_user_status_last_month (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_vector (struct tl_ds_vector *D, struct paramed_type *T) {
+ free_ds_constructor_vector (D, T); return;
+}
+void free_ds_type_video (struct tl_ds_video *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xc10658a8: free_ds_constructor_video_empty (D, T); return;
+ case 0xee9f4a4d: free_ds_constructor_video (D, T); return;
+ case 0x388fa391: free_ds_constructor_video_l27 (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xccb03657: free_ds_constructor_wall_paper (D, T); return;
+ case 0x63117f24: free_ds_constructor_wall_paper_solid (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_web_page (struct tl_ds_web_page *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xeb1477e8: free_ds_constructor_web_page_empty (D, T); return;
+ case 0xc586da1c: free_ds_constructor_web_page_pending (D, T); return;
+ case 0xa31ea0b5: free_ds_constructor_web_page (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T) {
+ free_ds_constructor_account_authorizations (D, T); return;
+}
+void free_ds_type_account_password (struct tl_ds_account_password *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x96dabc18: free_ds_constructor_account_no_password (D, T); return;
+ case 0x7c18141c: free_ds_constructor_account_password (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T) {
+ free_ds_constructor_account_password_input_settings (D, T); return;
+}
+void free_ds_type_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T) {
+ free_ds_constructor_account_password_settings (D, T); return;
+}
+void free_ds_type_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T) {
+ free_ds_constructor_account_privacy_rules (D, T); return;
+}
+void free_ds_type_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T) {
+ free_ds_constructor_account_sent_change_phone_code (D, T); return;
+}
+void free_ds_type_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T) {
+ free_ds_constructor_auth_authorization (D, T); return;
+}
+void free_ds_type_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T) {
+ free_ds_constructor_auth_checked_phone (D, T); return;
+}
+void free_ds_type_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T) {
+ free_ds_constructor_auth_exported_authorization (D, T); return;
+}
+void free_ds_type_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T) {
+ free_ds_constructor_auth_password_recovery (D, T); return;
+}
+void free_ds_type_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xefed51d9: free_ds_constructor_auth_sent_code (D, T); return;
+ case 0xe325edcf: free_ds_constructor_auth_sent_app_code (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T) {
+ free_ds_constructor_binlog_encr_key (D, T); return;
+}
+void free_ds_type_binlog_update (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x3b06de69: free_ds_constructor_binlog_start (D, T); return;
+ case 0xf96feb32: free_ds_constructor_binlog_dc_option (D, T); return;
+ case 0x7c0d22d8: free_ds_constructor_binlog_dc_option_new (D, T); return;
+ case 0x71e8c156: free_ds_constructor_binlog_auth_key (D, T); return;
+ case 0x9e83dbdc: free_ds_constructor_binlog_default_dc (D, T); return;
+ case 0x26451bb5: free_ds_constructor_binlog_dc_signed (D, T); return;
+ case 0x68a870e8: free_ds_constructor_binlog_our_id (D, T); return;
+ case 0xeaeb7826: free_ds_constructor_binlog_set_dh_params (D, T); return;
+ case 0x2ca8c939: free_ds_constructor_binlog_set_pts (D, T); return;
+ case 0xd95738ac: free_ds_constructor_binlog_set_qts (D, T); return;
+ case 0x1d0f4b52: free_ds_constructor_binlog_set_date (D, T); return;
+ case 0x6eeb2989: free_ds_constructor_binlog_set_seq (D, T); return;
+ case 0xee1b38e8: free_ds_constructor_binlog_encr_chat_delete (D, T); return;
+ case 0x84977251: free_ds_constructor_binlog_encr_chat_new (D, T); return;
+ case 0x9d49488d: free_ds_constructor_binlog_encr_chat_exchange_new (D, T); return;
+ case 0xac55d447: free_ds_constructor_binlog_user_delete (D, T); return;
+ case 0x127cf2f9: free_ds_constructor_binlog_user_new (D, T); return;
+ case 0x0a10aa92: free_ds_constructor_binlog_chat_new (D, T); return;
+ case 0x535475ea: free_ds_constructor_binlog_chat_add_participant (D, T); return;
+ case 0x7dd1a1a2: free_ds_constructor_binlog_chat_del_participant (D, T); return;
+ case 0x3c873416: free_ds_constructor_binlog_set_msg_id (D, T); return;
+ case 0x847e77b1: free_ds_constructor_binlog_message_delete (D, T); return;
+ case 0x427cfcdb: free_ds_constructor_binlog_message_new (D, T); return;
+ case 0x6cf7cabc: free_ds_constructor_binlog_message_encr_new (D, T); return;
+ case 0x6dd4d85f: free_ds_constructor_binlog_msg_update (D, T); return;
+ case 0x83327955: free_ds_constructor_binlog_reset_authorization (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x1c138d15: free_ds_constructor_contacts_blocked (D, T); return;
+ case 0x900802a1: free_ds_constructor_contacts_blocked_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xb74ba9d2: free_ds_constructor_contacts_contacts_not_modified (D, T); return;
+ case 0x6f8b8cb2: free_ds_constructor_contacts_contacts (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T) {
+ free_ds_constructor_contacts_found (D, T); return;
+}
+void free_ds_type_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T) {
+ free_ds_constructor_contacts_imported_contacts (D, T); return;
+}
+void free_ds_type_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T) {
+ free_ds_constructor_contacts_link (D, T); return;
+}
+void free_ds_type_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T) {
+ free_ds_constructor_contacts_suggested (D, T); return;
+}
+void free_ds_type_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T) {
+ free_ds_constructor_geochats_located (D, T); return;
+}
+void free_ds_type_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xd1526db1: free_ds_constructor_geochats_messages (D, T); return;
+ case 0xbc5863e8: free_ds_constructor_geochats_messages_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T) {
+ free_ds_constructor_geochats_stated_message (D, T); return;
+}
+void free_ds_type_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x8987f311: free_ds_constructor_help_app_update (D, T); return;
+ case 0xc45a6536: free_ds_constructor_help_no_app_update (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T) {
+ free_ds_constructor_help_invite_text (D, T); return;
+}
+void free_ds_type_help_support (struct tl_ds_help_support *D, struct paramed_type *T) {
+ free_ds_constructor_help_support (D, T); return;
+}
+void free_ds_type_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T) {
+ free_ds_constructor_messages_affected_history (D, T); return;
+}
+void free_ds_type_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T) {
+ free_ds_constructor_messages_affected_messages (D, T); return;
+}
+void free_ds_type_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xe86602c3: free_ds_constructor_messages_all_stickers_not_modified (D, T); return;
+ case 0x5ce352ec: free_ds_constructor_messages_all_stickers (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T) {
+ free_ds_constructor_messages_chat_full (D, T); return;
+}
+void free_ds_type_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T) {
+ free_ds_constructor_messages_chats (D, T); return;
+}
+void free_ds_type_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xc0e24635: free_ds_constructor_messages_dh_config_not_modified (D, T); return;
+ case 0x2c221edd: free_ds_constructor_messages_dh_config (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x15ba6c40: free_ds_constructor_messages_dialogs (D, T); return;
+ case 0x71e094f3: free_ds_constructor_messages_dialogs_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_messages_message (struct tl_ds_messages_message *D, struct paramed_type *T) {
+ free_ds_constructor_messages_message_empty (D, T); return;
+}
+void free_ds_type_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x8c718e87: free_ds_constructor_messages_messages (D, T); return;
+ case 0x0b446ae3: free_ds_constructor_messages_messages_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x560f8935: free_ds_constructor_messages_sent_encrypted_message (D, T); return;
+ case 0x9493ff32: free_ds_constructor_messages_sent_encrypted_file (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x4c3d47f3: free_ds_constructor_messages_sent_message (D, T); return;
+ case 0x35a1a663: free_ds_constructor_messages_sent_message_link (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T) {
+ free_ds_constructor_messages_sticker_set (D, T); return;
+}
+void free_ds_type_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xf1749a22: free_ds_constructor_messages_stickers_not_modified (D, T); return;
+ case 0x8a8ecd32: free_ds_constructor_messages_stickers (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T) {
+ free_ds_constructor_photos_photo (D, T); return;
+}
+void free_ds_type_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x8dca6aa5: free_ds_constructor_photos_photos (D, T); return;
+ case 0x15051f54: free_ds_constructor_photos_photos_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_storage_file_type (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xaa963b05: free_ds_constructor_storage_file_unknown (D, T); return;
+ case 0x007efe0e: free_ds_constructor_storage_file_jpeg (D, T); return;
+ case 0xcae1aadf: free_ds_constructor_storage_file_gif (D, T); return;
+ case 0x0a4f63c0: free_ds_constructor_storage_file_png (D, T); return;
+ case 0xae1e508d: free_ds_constructor_storage_file_pdf (D, T); return;
+ case 0x528a0677: free_ds_constructor_storage_file_mp3 (D, T); return;
+ case 0x4b09ebbc: free_ds_constructor_storage_file_mov (D, T); return;
+ case 0x40bc6f52: free_ds_constructor_storage_file_partial (D, T); return;
+ case 0xb3cea0e4: free_ds_constructor_storage_file_mp4 (D, T); return;
+ case 0x1081464c: free_ds_constructor_storage_file_webp (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x5d75a138: free_ds_constructor_updates_difference_empty (D, T); return;
+ case 0x00f49ca0: free_ds_constructor_updates_difference (D, T); return;
+ case 0xa8fb1981: free_ds_constructor_updates_difference_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void free_ds_type_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T) {
+ free_ds_constructor_updates_state (D, T); return;
+}
+void free_ds_type_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T) {
+ free_ds_constructor_upload_file (D, T); return;
+}
+void free_ds_type_any (void *D, struct paramed_type *T) {
+ switch (T->type->name) {
+ case 0xb8d0afdf: free_ds_type_account_days_t_t_l (D, T); return;
+ case 0x472f5020: free_ds_type_account_days_t_t_l (D, T); return;
+ case 0x9fc5ec4e: free_ds_type_audio (D, T); return;
+ case 0x603a13b1: free_ds_type_audio (D, T); return;
+ case 0x7bf2e6f6: free_ds_type_authorization (D, T); return;
+ case 0x840d1909: free_ds_type_authorization (D, T); return;
+ case 0x250be282: free_ds_type_bool (D, T); return;
+ case 0xdaf41d7d: free_ds_type_bool (D, T); return;
+ case 0x75e7ea6c: free_ds_type_bot_command (D, T); return;
+ case 0x8a181593: free_ds_type_bot_command (D, T); return;
+ case 0xb2e16f93: free_ds_type_bot_info (D, T); return;
+ case 0x4d1e906c: free_ds_type_bot_info (D, T); return;
+ case 0x0ee1379f: free_ds_type_bytes (D, T); return;
+ case 0xf11ec860: free_ds_type_bytes (D, T); return;
+ case 0x7bd865dc: free_ds_type_chat (D, T); return;
+ case 0x84279a23: free_ds_type_chat (D, T); return;
+ case 0x2e02a614: free_ds_type_chat_full (D, T); return;
+ case 0xd1fd59eb: free_ds_type_chat_full (D, T); return;
+ case 0x94f910b1: free_ds_type_chat_invite (D, T); return;
+ case 0x6b06ef4e: free_ds_type_chat_invite (D, T); return;
+ case 0x3631cf4c: free_ds_type_chat_located (D, T); return;
+ case 0xc9ce30b3: free_ds_type_chat_located (D, T); return;
+ case 0xc8d7493e: free_ds_type_chat_participant (D, T); return;
+ case 0x3728b6c1: free_ds_type_chat_participant (D, T); return;
+ case 0x77930f9f: free_ds_type_chat_participants (D, T); return;
+ case 0x886cf060: free_ds_type_chat_participants (D, T); return;
+ case 0x56922676: free_ds_type_chat_photo (D, T); return;
+ case 0xa96dd989: free_ds_type_chat_photo (D, T); return;
+ case 0x6643b654: free_ds_type_client_d_h_inner_data (D, T); return;
+ case 0x99bc49ab: free_ds_type_client_d_h_inner_data (D, T); return;
+ case 0x4e32b894: free_ds_type_config (D, T); return;
+ case 0xb1cd476b: free_ds_type_config (D, T); return;
+ case 0xf911c994: free_ds_type_contact (D, T); return;
+ case 0x06ee366b: free_ds_type_contact (D, T); return;
+ case 0x561bc879: free_ds_type_contact_blocked (D, T); return;
+ case 0xa9e43786: free_ds_type_contact_blocked (D, T); return;
+ case 0xea879f95: free_ds_type_contact_found (D, T); return;
+ case 0x1578606a: free_ds_type_contact_found (D, T); return;
+ case 0x522fbc63: free_ds_type_contact_link (D, T); return;
+ case 0xadd0439c: free_ds_type_contact_link (D, T); return;
+ case 0xd3680c61: free_ds_type_contact_status (D, T); return;
+ case 0x2c97f39e: free_ds_type_contact_status (D, T); return;
+ case 0x3de191a1: free_ds_type_contact_suggested (D, T); return;
+ case 0xc21e6e5e: free_ds_type_contact_suggested (D, T); return;
+ case 0x2b1a62f0: free_ds_type_dc_option (D, T); return;
+ case 0xd4e59d0f: free_ds_type_dc_option (D, T); return;
+ case 0x535b7918: free_ds_type_decrypted_message (D, T); return;
+ case 0xaca486e7: free_ds_type_decrypted_message (D, T); return;
+ case 0x4e0eefde: free_ds_type_decrypted_message_action (D, T); return;
+ case 0xb1f11021: free_ds_type_decrypted_message_action (D, T); return;
+ case 0x1be31789: free_ds_type_decrypted_message_layer (D, T); return;
+ case 0xe41ce876: free_ds_type_decrypted_message_layer (D, T); return;
+ case 0x34e0d674: free_ds_type_decrypted_message_media (D, T); return;
+ case 0xcb1f298b: free_ds_type_decrypted_message_media (D, T); return;
+ case 0xc1dd804a: free_ds_type_dialog (D, T); return;
+ case 0x3e227fb5: free_ds_type_dialog (D, T); return;
+ case 0xae636f24: free_ds_type_disabled_feature (D, T); return;
+ case 0x519c90db: free_ds_type_disabled_feature (D, T); return;
+ case 0x51a73418: free_ds_type_document (D, T); return;
+ case 0xae58cbe7: free_ds_type_document (D, T); return;
+ case 0x97c637a3: free_ds_type_document_attribute (D, T); return;
+ case 0x6839c85c: free_ds_type_document_attribute (D, T); return;
+ case 0x2210c154: free_ds_type_double (D, T); return;
+ case 0xddef3eab: free_ds_type_double (D, T); return;
+ case 0xb1718213: free_ds_type_encrypted_chat (D, T); return;
+ case 0x4e8e7dec: free_ds_type_encrypted_chat (D, T); return;
+ case 0x886fd032: free_ds_type_encrypted_file (D, T); return;
+ case 0x77902fcd: free_ds_type_encrypted_file (D, T); return;
+ case 0xce6b8a1e: free_ds_type_encrypted_message (D, T); return;
+ case 0x319475e1: free_ds_type_encrypted_message (D, T); return;
+ case 0xc4b9f9bb: free_ds_type_error (D, T); return;
+ case 0x3b460644: free_ds_type_error (D, T); return;
+ case 0x95f132d5: free_ds_type_exported_chat_invite (D, T); return;
+ case 0x6a0ecd2a: free_ds_type_exported_chat_invite (D, T); return;
+ case 0x2f8ffb30: free_ds_type_file_location (D, T); return;
+ case 0xd07004cf: free_ds_type_file_location (D, T); return;
+ case 0xf67b4034: free_ds_type_geo_chat_message (D, T); return;
+ case 0x0984bfcb: free_ds_type_geo_chat_message (D, T); return;
+ case 0x315e0a53: free_ds_type_geo_point (D, T); return;
+ case 0xcea1f5ac: free_ds_type_geo_point (D, T); return;
+ case 0xd0028438: free_ds_type_imported_contact (D, T); return;
+ case 0x2ffd7bc7: free_ds_type_imported_contact (D, T); return;
+ case 0x770656a8: free_ds_type_input_app_event (D, T); return;
+ case 0x88f9a957: free_ds_type_input_app_event (D, T); return;
+ case 0xae8e9c7b: free_ds_type_input_audio (D, T); return;
+ case 0x51716384: free_ds_type_input_audio (D, T); return;
+ case 0x3a60776d: free_ds_type_input_chat_photo (D, T); return;
+ case 0xc59f8892: free_ds_type_input_chat_photo (D, T); return;
+ case 0xf392b7f4: free_ds_type_input_contact (D, T); return;
+ case 0x0c6d480b: free_ds_type_input_contact (D, T); return;
+ case 0x6a8963fc: free_ds_type_input_document (D, T); return;
+ case 0x95769c03: free_ds_type_input_document (D, T); return;
+ case 0xf141b5e1: free_ds_type_input_encrypted_chat (D, T); return;
+ case 0x0ebe4a1e: free_ds_type_input_encrypted_chat (D, T); return;
+ case 0x0b5c064f: free_ds_type_input_encrypted_file (D, T); return;
+ case 0xf4a3f9b0: free_ds_type_input_encrypted_file (D, T); return;
+ case 0x0f60f9ca: free_ds_type_input_file (D, T); return;
+ case 0xf09f0635: free_ds_type_input_file (D, T); return;
+ case 0xe6daa38b: free_ds_type_input_file_location (D, T); return;
+ case 0x19255c74: free_ds_type_input_file_location (D, T); return;
+ case 0x74d456fa: free_ds_type_input_geo_chat (D, T); return;
+ case 0x8b2ba905: free_ds_type_input_geo_chat (D, T); return;
+ case 0x17768f1f: free_ds_type_input_geo_point (D, T); return;
+ case 0xe88970e0: free_ds_type_input_geo_point (D, T); return;
+ case 0xb32c91dd: free_ds_type_input_media (D, T); return;
+ case 0x4cd36e22: free_ds_type_input_media (D, T); return;
+ case 0x02b6911b: free_ds_type_input_notify_peer (D, T); return;
+ case 0xfd496ee4: free_ds_type_input_notify_peer (D, T); return;
+ case 0x9e67268d: free_ds_type_input_peer (D, T); return;
+ case 0x6198d972: free_ds_type_input_peer (D, T); return;
+ case 0x185a48ac: free_ds_type_input_peer_notify_events (D, T); return;
+ case 0xe7a5b753: free_ds_type_input_peer_notify_events (D, T); return;
+ case 0x46a2ce98: free_ds_type_input_peer_notify_settings (D, T); return;
+ case 0xb95d3167: free_ds_type_input_peer_notify_settings (D, T); return;
+ case 0xe74279c9: free_ds_type_input_photo (D, T); return;
+ case 0x18bd8636: free_ds_type_input_photo (D, T); return;
+ case 0x7477e321: free_ds_type_input_photo_crop (D, T); return;
+ case 0x8b881cde: free_ds_type_input_photo_crop (D, T); return;
+ case 0x4f96cb18: free_ds_type_input_privacy_key (D, T); return;
+ case 0xb06934e7: free_ds_type_input_privacy_key (D, T); return;
+ case 0x4b815163: free_ds_type_input_privacy_rule (D, T); return;
+ case 0xb47eae9c: free_ds_type_input_privacy_rule (D, T); return;
+ case 0xe44d415c: free_ds_type_input_sticker_set (D, T); return;
+ case 0x1bb2bea3: free_ds_type_input_sticker_set (D, T); return;
+ case 0xadfe0c6a: free_ds_type_input_user (D, T); return;
+ case 0x5201f395: free_ds_type_input_user (D, T); return;
+ case 0xbb5f7a27: free_ds_type_input_video (D, T); return;
+ case 0x44a085d8: free_ds_type_input_video (D, T); return;
+ case 0xa8509bda: free_ds_type_int (D, T); return;
+ case 0x57af6425: free_ds_type_int (D, T); return;
+ case 0x7d36c439: free_ds_type_int128 (D, T); return;
+ case 0x82c93bc6: free_ds_type_int128 (D, T); return;
+ case 0xf2c798b3: free_ds_type_int256 (D, T); return;
+ case 0x0d38674c: free_ds_type_int256 (D, T); return;
+ case 0xa2fa4880: free_ds_type_keyboard_button (D, T); return;
+ case 0x5d05b77f: free_ds_type_keyboard_button (D, T); return;
+ case 0x77608b83: free_ds_type_keyboard_button_row (D, T); return;
+ case 0x889f747c: free_ds_type_keyboard_button_row (D, T); return;
+ case 0x22076cba: free_ds_type_long (D, T); return;
+ case 0xddf89345: free_ds_type_long (D, T); return;
+ case 0x5d652a7f: free_ds_type_message (D, T); return;
+ case 0xa29ad580: free_ds_type_message (D, T); return;
+ case 0x383415fa: free_ds_type_message_action (D, T); return;
+ case 0xc7cbea05: free_ds_type_message_action (D, T); return;
+ case 0x95f2471a: free_ds_type_message_media (D, T); return;
+ case 0x6a0db8e5: free_ds_type_message_media (D, T); return;
+ case 0x80895ae0: free_ds_type_messages_filter (D, T); return;
+ case 0x7f76a51f: free_ds_type_messages_filter (D, T); return;
+ case 0x8e1a1775: free_ds_type_nearest_dc (D, T); return;
+ case 0x71e5e88a: free_ds_type_nearest_dc (D, T); return;
+ case 0x9fcb8237: free_ds_type_notify_peer (D, T); return;
+ case 0x60347dc8: free_ds_type_notify_peer (D, T); return;
+ case 0x56730bcc: free_ds_type_null (D, T); return;
+ case 0xa98cf433: free_ds_type_null (D, T); return;
+ case 0xbfa3de38: free_ds_type_p_q_inner_data (D, T); return;
+ case 0x405c21c7: free_ds_type_p_q_inner_data (D, T); return;
+ case 0x276159d6: free_ds_type_peer (D, T); return;
+ case 0xd89ea629: free_ds_type_peer (D, T); return;
+ case 0xc0c8d13b: free_ds_type_peer_notify_events (D, T); return;
+ case 0x3f372ec4: free_ds_type_peer_notify_events (D, T); return;
+ case 0xfdf894fc: free_ds_type_peer_notify_settings (D, T); return;
+ case 0x02076b03: free_ds_type_peer_notify_settings (D, T); return;
+ case 0xc207550a: free_ds_type_photo (D, T); return;
+ case 0x3df8aaf5: free_ds_type_photo (D, T); return;
+ case 0x900f60dd: free_ds_type_photo_size (D, T); return;
+ case 0x6ff09f22: free_ds_type_photo_size (D, T); return;
+ case 0xbc2eab30: free_ds_type_privacy_key (D, T); return;
+ case 0x43d154cf: free_ds_type_privacy_key (D, T); return;
+ case 0xa8638aec: free_ds_type_privacy_rule (D, T); return;
+ case 0x579c7513: free_ds_type_privacy_rule (D, T); return;
+ case 0xa384b779: free_ds_type_received_notify_message (D, T); return;
+ case 0x5c7b4886: free_ds_type_received_notify_message (D, T); return;
+ case 0x612ca4a9: free_ds_type_reply_markup (D, T); return;
+ case 0x9ed35b56: free_ds_type_reply_markup (D, T); return;
+ case 0x05162463: free_ds_type_res_p_q (D, T); return;
+ case 0xfae9db9c: free_ds_type_res_p_q (D, T); return;
+ case 0x70541c7e: free_ds_type_send_message_action (D, T); return;
+ case 0x8fabe381: free_ds_type_send_message_action (D, T); return;
+ case 0xa9230301: free_ds_type_server_d_h_params (D, T); return;
+ case 0x56dcfcfe: free_ds_type_server_d_h_params (D, T); return;
+ case 0xb5890dba: free_ds_type_server_d_h_inner_data (D, T); return;
+ case 0x4a76f245: free_ds_type_server_d_h_inner_data (D, T); return;
+ case 0xdb8a468f: free_ds_type_set_client_d_h_params_answer (D, T); return;
+ case 0x2475b970: free_ds_type_set_client_d_h_params_answer (D, T); return;
+ case 0x12b299d4: free_ds_type_sticker_pack (D, T); return;
+ case 0xed4d662b: free_ds_type_sticker_pack (D, T); return;
+ case 0xa7a43b17: free_ds_type_sticker_set (D, T); return;
+ case 0x585bc4e8: free_ds_type_sticker_set (D, T); return;
+ case 0xb5286e24: free_ds_type_string (D, T); return;
+ case 0x4ad791db: free_ds_type_string (D, T); return;
+ case 0x2e02b27e: free_ds_type_update (D, T); return;
+ case 0xd1fd4d81: free_ds_type_update (D, T); return;
+ case 0x22499d27: free_ds_type_updates (D, T); return;
+ case 0xddb662d8: free_ds_type_updates (D, T); return;
+ case 0x02e6c0c8: free_ds_type_user (D, T); return;
+ case 0xfd193f37: free_ds_type_user (D, T); return;
+ case 0x5a89ac5b: free_ds_type_user_full (D, T); return;
+ case 0xa57653a4: free_ds_type_user_full (D, T); return;
+ case 0x9a486229: free_ds_type_user_profile_photo (D, T); return;
+ case 0x65b79dd6: free_ds_type_user_profile_photo (D, T); return;
+ case 0x76de9570: free_ds_type_user_status (D, T); return;
+ case 0x89216a8f: free_ds_type_user_status (D, T); return;
+ case 0x1cb5c415: free_ds_type_vector (D, T); return;
+ case 0xe34a3bea: free_ds_type_vector (D, T); return;
+ case 0x1716b174: free_ds_type_video (D, T); return;
+ case 0xe8e94e8b: free_ds_type_video (D, T); return;
+ case 0xafa14973: free_ds_type_wall_paper (D, T); return;
+ case 0x505eb68c: free_ds_type_wall_paper (D, T); return;
+ case 0x8d8c0d41: free_ds_type_web_page (D, T); return;
+ case 0x7273f2be: free_ds_type_web_page (D, T); return;
+ case 0x1250abde: free_ds_type_account_authorizations (D, T); return;
+ case 0xedaf5421: free_ds_type_account_authorizations (D, T); return;
+ case 0xeac2a804: free_ds_type_account_password (D, T); return;
+ case 0x153d57fb: free_ds_type_account_password (D, T); return;
+ case 0xbcfc532c: free_ds_type_account_password_input_settings (D, T); return;
+ case 0x4303acd3: free_ds_type_account_password_input_settings (D, T); return;
+ case 0xb7b72ab3: free_ds_type_account_password_settings (D, T); return;
+ case 0x4848d54c: free_ds_type_account_password_settings (D, T); return;
+ case 0x554abb6f: free_ds_type_account_privacy_rules (D, T); return;
+ case 0xaab54490: free_ds_type_account_privacy_rules (D, T); return;
+ case 0xa4f58c4c: free_ds_type_account_sent_change_phone_code (D, T); return;
+ case 0x5b0a73b3: free_ds_type_account_sent_change_phone_code (D, T); return;
+ case 0xff036af1: free_ds_type_auth_authorization (D, T); return;
+ case 0x00fc950e: free_ds_type_auth_authorization (D, T); return;
+ case 0x811ea28e: free_ds_type_auth_checked_phone (D, T); return;
+ case 0x7ee15d71: free_ds_type_auth_checked_phone (D, T); return;
+ case 0xdf969c2d: free_ds_type_auth_exported_authorization (D, T); return;
+ case 0x206963d2: free_ds_type_auth_exported_authorization (D, T); return;
+ case 0x137948a5: free_ds_type_auth_password_recovery (D, T); return;
+ case 0xec86b75a: free_ds_type_auth_password_recovery (D, T); return;
+ case 0x0cc8bc16: free_ds_type_auth_sent_code (D, T); return;
+ case 0xf33743e9: free_ds_type_auth_sent_code (D, T); return;
+ case 0x0377168f: free_ds_type_binlog_encr_key (D, T); return;
+ case 0xfc88e970: free_ds_type_binlog_encr_key (D, T); return;
+ case 0x66ff03a6: free_ds_type_binlog_update (D, T); return;
+ case 0x9900fc59: free_ds_type_binlog_update (D, T); return;
+ case 0x8c1b8fb4: free_ds_type_contacts_blocked (D, T); return;
+ case 0x73e4704b: free_ds_type_contacts_blocked (D, T); return;
+ case 0xd8c02560: free_ds_type_contacts_contacts (D, T); return;
+ case 0x273fda9f: free_ds_type_contacts_contacts (D, T); return;
+ case 0x0566000e: free_ds_type_contacts_found (D, T); return;
+ case 0xfa99fff1: free_ds_type_contacts_found (D, T); return;
+ case 0xad524315: free_ds_type_contacts_imported_contacts (D, T); return;
+ case 0x52adbcea: free_ds_type_contacts_imported_contacts (D, T); return;
+ case 0x3ace484c: free_ds_type_contacts_link (D, T); return;
+ case 0xc531b7b3: free_ds_type_contacts_link (D, T); return;
+ case 0x5649dcc5: free_ds_type_contacts_suggested (D, T); return;
+ case 0xa9b6233a: free_ds_type_contacts_suggested (D, T); return;
+ case 0x48feb267: free_ds_type_geochats_located (D, T); return;
+ case 0xb7014d98: free_ds_type_geochats_located (D, T); return;
+ case 0x6d0a0e59: free_ds_type_geochats_messages (D, T); return;
+ case 0x92f5f1a6: free_ds_type_geochats_messages (D, T); return;
+ case 0x17b1578b: free_ds_type_geochats_stated_message (D, T); return;
+ case 0xe84ea874: free_ds_type_geochats_stated_message (D, T); return;
+ case 0x4ddd9627: free_ds_type_help_app_update (D, T); return;
+ case 0xb22269d8: free_ds_type_help_app_update (D, T); return;
+ case 0x18cb9f78: free_ds_type_help_invite_text (D, T); return;
+ case 0xe7346087: free_ds_type_help_invite_text (D, T); return;
+ case 0x17c6b5f6: free_ds_type_help_support (D, T); return;
+ case 0xe8394a09: free_ds_type_help_support (D, T); return;
+ case 0xb45c69d1: free_ds_type_messages_affected_history (D, T); return;
+ case 0x4ba3962e: free_ds_type_messages_affected_history (D, T); return;
+ case 0x84d19185: free_ds_type_messages_affected_messages (D, T); return;
+ case 0x7b2e6e7a: free_ds_type_messages_affected_messages (D, T); return;
+ case 0xb485502f: free_ds_type_messages_all_stickers (D, T); return;
+ case 0x4b7aafd0: free_ds_type_messages_all_stickers (D, T); return;
+ case 0xe5d7d19c: free_ds_type_messages_chat_full (D, T); return;
+ case 0x1a282e63: free_ds_type_messages_chat_full (D, T); return;
+ case 0x64ff9fd5: free_ds_type_messages_chats (D, T); return;
+ case 0x9b00602a: free_ds_type_messages_chats (D, T); return;
+ case 0xecc058e8: free_ds_type_messages_dh_config (D, T); return;
+ case 0x133fa717: free_ds_type_messages_dh_config (D, T); return;
+ case 0x645af8b3: free_ds_type_messages_dialogs (D, T); return;
+ case 0x9ba5074c: free_ds_type_messages_dialogs (D, T); return;
+ case 0x3f4e0648: free_ds_type_messages_message (D, T); return;
+ case 0xc0b1f9b7: free_ds_type_messages_message (D, T); return;
+ case 0x8735e464: free_ds_type_messages_messages (D, T); return;
+ case 0x78ca1b9b: free_ds_type_messages_messages (D, T); return;
+ case 0xc29c7607: free_ds_type_messages_sent_encrypted_message (D, T); return;
+ case 0x3d6389f8: free_ds_type_messages_sent_encrypted_message (D, T); return;
+ case 0x799ce190: free_ds_type_messages_sent_message (D, T); return;
+ case 0x86631e6f: free_ds_type_messages_sent_message (D, T); return;
+ case 0xb60a24a6: free_ds_type_messages_sticker_set (D, T); return;
+ case 0x49f5db59: free_ds_type_messages_sticker_set (D, T); return;
+ case 0x7bfa5710: free_ds_type_messages_stickers (D, T); return;
+ case 0x8405a8ef: free_ds_type_messages_stickers (D, T); return;
+ case 0x20212ca8: free_ds_type_photos_photo (D, T); return;
+ case 0xdfded357: free_ds_type_photos_photo (D, T); return;
+ case 0x98cf75f1: free_ds_type_photos_photos (D, T); return;
+ case 0x67308a0e: free_ds_type_photos_photos (D, T); return;
+ case 0x3e2838a8: free_ds_type_storage_file_type (D, T); return;
+ case 0xc1d7c757: free_ds_type_storage_file_type (D, T); return;
+ case 0xf57a2419: free_ds_type_updates_difference (D, T); return;
+ case 0x0a85dbe6: free_ds_type_updates_difference (D, T); return;
+ case 0xa56c2a3e: free_ds_type_updates_state (D, T); return;
+ case 0x5a93d5c1: free_ds_type_updates_state (D, T); return;
+ case 0x096a18d5: free_ds_type_upload_file (D, T); return;
+ case 0xf695e72a: free_ds_type_upload_file (D, T); return;
+ default: return; }
+}
diff --git a/libs/tgl/src/auto/auto-free-ds.h b/libs/tgl/src/auto/auto-free-ds.h
new file mode 100644
index 0000000000..7785aa0141
--- /dev/null
+++ b/libs/tgl/src/auto/auto-free-ds.h
@@ -0,0 +1,569 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#include "auto-types.h"
+#else
+#include "auto.h"
+#include "auto/auto-types.h"
+#endif
+#include <assert.h>
+#include <stdio.h>
+struct tgl_state;
+void free_ds_constructor_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T);
+void free_ds_constructor_audio_empty (struct tl_ds_audio *D, struct paramed_type *T);
+void free_ds_constructor_audio (struct tl_ds_audio *D, struct paramed_type *T);
+void free_ds_constructor_authorization (struct tl_ds_authorization *D, struct paramed_type *T);
+void free_ds_constructor_bool_false (struct tl_ds_bool *D, struct paramed_type *T);
+void free_ds_constructor_bool_true (struct tl_ds_bool *D, struct paramed_type *T);
+void free_ds_constructor_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T);
+void free_ds_constructor_bot_command_old (struct tl_ds_bot_command *D, struct paramed_type *T);
+void free_ds_constructor_bot_info_empty (struct tl_ds_bot_info *D, struct paramed_type *T);
+void free_ds_constructor_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T);
+void free_ds_constructor_bytes (struct tl_ds_string *D, struct paramed_type *T);
+void free_ds_constructor_chat_empty (struct tl_ds_chat *D, struct paramed_type *T);
+void free_ds_constructor_chat (struct tl_ds_chat *D, struct paramed_type *T);
+void free_ds_constructor_chat_forbidden (struct tl_ds_chat *D, struct paramed_type *T);
+void free_ds_constructor_geo_chat (struct tl_ds_chat *D, struct paramed_type *T);
+void free_ds_constructor_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T);
+void free_ds_constructor_chat_invite_already (struct tl_ds_chat_invite *D, struct paramed_type *T);
+void free_ds_constructor_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T);
+void free_ds_constructor_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T);
+void free_ds_constructor_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T);
+void free_ds_constructor_chat_participants_forbidden (struct tl_ds_chat_participants *D, struct paramed_type *T);
+void free_ds_constructor_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T);
+void free_ds_constructor_chat_photo_empty (struct tl_ds_chat_photo *D, struct paramed_type *T);
+void free_ds_constructor_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T);
+void free_ds_constructor_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T);
+void free_ds_constructor_config (struct tl_ds_config *D, struct paramed_type *T);
+void free_ds_constructor_contact (struct tl_ds_contact *D, struct paramed_type *T);
+void free_ds_constructor_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T);
+void free_ds_constructor_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T);
+void free_ds_constructor_contact_link_unknown (struct tl_ds_contact_link *D, struct paramed_type *T);
+void free_ds_constructor_contact_link_none (struct tl_ds_contact_link *D, struct paramed_type *T);
+void free_ds_constructor_contact_link_has_phone (struct tl_ds_contact_link *D, struct paramed_type *T);
+void free_ds_constructor_contact_link_contact (struct tl_ds_contact_link *D, struct paramed_type *T);
+void free_ds_constructor_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T);
+void free_ds_constructor_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T);
+void free_ds_constructor_dc_option_l28 (struct tl_ds_dc_option *D, struct paramed_type *T);
+void free_ds_constructor_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_service (struct tl_ds_decrypted_message *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_action_set_message_t_t_l (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_action_read_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_action_delete_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_action_screenshot_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_action_flush_history (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_action_resend (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_action_notify_layer (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_action_typing (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_action_request_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_action_accept_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_action_abort_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_action_commit_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_action_noop (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_media_empty (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_media_photo (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_media_geo_point (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_media_contact (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_media_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_media_video (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_media_audio (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_media_external_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_media_video_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void free_ds_constructor_decrypted_message_media_audio_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void free_ds_constructor_dialog (struct tl_ds_dialog *D, struct paramed_type *T);
+void free_ds_constructor_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T);
+void free_ds_constructor_document_empty (struct tl_ds_document *D, struct paramed_type *T);
+void free_ds_constructor_document (struct tl_ds_document *D, struct paramed_type *T);
+void free_ds_constructor_document_l19 (struct tl_ds_document *D, struct paramed_type *T);
+void free_ds_constructor_document_attribute_image_size (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void free_ds_constructor_document_attribute_animated (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void free_ds_constructor_document_attribute_sticker_l28 (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void free_ds_constructor_document_attribute_sticker (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void free_ds_constructor_document_attribute_video (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void free_ds_constructor_document_attribute_audio (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void free_ds_constructor_document_attribute_filename (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void free_ds_constructor_double (double *D, struct paramed_type *T);
+void free_ds_constructor_encrypted_chat_empty (struct tl_ds_encrypted_chat *D, struct paramed_type *T);
+void free_ds_constructor_encrypted_chat_waiting (struct tl_ds_encrypted_chat *D, struct paramed_type *T);
+void free_ds_constructor_encrypted_chat_requested (struct tl_ds_encrypted_chat *D, struct paramed_type *T);
+void free_ds_constructor_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T);
+void free_ds_constructor_encrypted_chat_discarded (struct tl_ds_encrypted_chat *D, struct paramed_type *T);
+void free_ds_constructor_encrypted_file_empty (struct tl_ds_encrypted_file *D, struct paramed_type *T);
+void free_ds_constructor_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T);
+void free_ds_constructor_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T);
+void free_ds_constructor_encrypted_message_service (struct tl_ds_encrypted_message *D, struct paramed_type *T);
+void free_ds_constructor_error (struct tl_ds_error *D, struct paramed_type *T);
+void free_ds_constructor_chat_invite_empty (struct tl_ds_exported_chat_invite *D, struct paramed_type *T);
+void free_ds_constructor_chat_invite_exported (struct tl_ds_exported_chat_invite *D, struct paramed_type *T);
+void free_ds_constructor_file_location_unavailable (struct tl_ds_file_location *D, struct paramed_type *T);
+void free_ds_constructor_file_location (struct tl_ds_file_location *D, struct paramed_type *T);
+void free_ds_constructor_geo_chat_message_empty (struct tl_ds_geo_chat_message *D, struct paramed_type *T);
+void free_ds_constructor_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T);
+void free_ds_constructor_geo_chat_message_service (struct tl_ds_geo_chat_message *D, struct paramed_type *T);
+void free_ds_constructor_geo_point_empty (struct tl_ds_geo_point *D, struct paramed_type *T);
+void free_ds_constructor_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T);
+void free_ds_constructor_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T);
+void free_ds_constructor_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T);
+void free_ds_constructor_input_audio_empty (struct tl_ds_input_audio *D, struct paramed_type *T);
+void free_ds_constructor_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T);
+void free_ds_constructor_input_chat_photo_empty (struct tl_ds_input_chat_photo *D, struct paramed_type *T);
+void free_ds_constructor_input_chat_uploaded_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T);
+void free_ds_constructor_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T);
+void free_ds_constructor_input_phone_contact (struct tl_ds_input_contact *D, struct paramed_type *T);
+void free_ds_constructor_input_document_empty (struct tl_ds_input_document *D, struct paramed_type *T);
+void free_ds_constructor_input_document (struct tl_ds_input_document *D, struct paramed_type *T);
+void free_ds_constructor_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T);
+void free_ds_constructor_input_encrypted_file_empty (struct tl_ds_input_encrypted_file *D, struct paramed_type *T);
+void free_ds_constructor_input_encrypted_file_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T);
+void free_ds_constructor_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T);
+void free_ds_constructor_input_encrypted_file_big_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T);
+void free_ds_constructor_input_file (struct tl_ds_input_file *D, struct paramed_type *T);
+void free_ds_constructor_input_file_big (struct tl_ds_input_file *D, struct paramed_type *T);
+void free_ds_constructor_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T);
+void free_ds_constructor_input_video_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T);
+void free_ds_constructor_input_encrypted_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T);
+void free_ds_constructor_input_audio_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T);
+void free_ds_constructor_input_document_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T);
+void free_ds_constructor_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T);
+void free_ds_constructor_input_geo_point_empty (struct tl_ds_input_geo_point *D, struct paramed_type *T);
+void free_ds_constructor_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T);
+void free_ds_constructor_input_media_empty (struct tl_ds_input_media *D, struct paramed_type *T);
+void free_ds_constructor_input_media_uploaded_photo (struct tl_ds_input_media *D, struct paramed_type *T);
+void free_ds_constructor_input_media_photo (struct tl_ds_input_media *D, struct paramed_type *T);
+void free_ds_constructor_input_media_geo_point (struct tl_ds_input_media *D, struct paramed_type *T);
+void free_ds_constructor_input_media_contact (struct tl_ds_input_media *D, struct paramed_type *T);
+void free_ds_constructor_input_media_uploaded_video (struct tl_ds_input_media *D, struct paramed_type *T);
+void free_ds_constructor_input_media_uploaded_thumb_video (struct tl_ds_input_media *D, struct paramed_type *T);
+void free_ds_constructor_input_media_video (struct tl_ds_input_media *D, struct paramed_type *T);
+void free_ds_constructor_input_media_uploaded_audio (struct tl_ds_input_media *D, struct paramed_type *T);
+void free_ds_constructor_input_media_audio (struct tl_ds_input_media *D, struct paramed_type *T);
+void free_ds_constructor_input_media_uploaded_document (struct tl_ds_input_media *D, struct paramed_type *T);
+void free_ds_constructor_input_media_uploaded_thumb_document (struct tl_ds_input_media *D, struct paramed_type *T);
+void free_ds_constructor_input_media_document (struct tl_ds_input_media *D, struct paramed_type *T);
+void free_ds_constructor_input_media_venue (struct tl_ds_input_media *D, struct paramed_type *T);
+void free_ds_constructor_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T);
+void free_ds_constructor_input_notify_users (struct tl_ds_input_notify_peer *D, struct paramed_type *T);
+void free_ds_constructor_input_notify_chats (struct tl_ds_input_notify_peer *D, struct paramed_type *T);
+void free_ds_constructor_input_notify_all (struct tl_ds_input_notify_peer *D, struct paramed_type *T);
+void free_ds_constructor_input_notify_geo_chat_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T);
+void free_ds_constructor_input_peer_empty (struct tl_ds_input_peer *D, struct paramed_type *T);
+void free_ds_constructor_input_peer_self (struct tl_ds_input_peer *D, struct paramed_type *T);
+void free_ds_constructor_input_peer_contact (struct tl_ds_input_peer *D, struct paramed_type *T);
+void free_ds_constructor_input_peer_foreign (struct tl_ds_input_peer *D, struct paramed_type *T);
+void free_ds_constructor_input_peer_chat (struct tl_ds_input_peer *D, struct paramed_type *T);
+void free_ds_constructor_input_peer_notify_events_empty (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T);
+void free_ds_constructor_input_peer_notify_events_all (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T);
+void free_ds_constructor_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T);
+void free_ds_constructor_input_photo_empty (struct tl_ds_input_photo *D, struct paramed_type *T);
+void free_ds_constructor_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T);
+void free_ds_constructor_input_photo_crop_auto (struct tl_ds_input_photo_crop *D, struct paramed_type *T);
+void free_ds_constructor_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T);
+void free_ds_constructor_input_privacy_key_status_timestamp (struct tl_ds_input_privacy_key *D, struct paramed_type *T);
+void free_ds_constructor_input_privacy_value_allow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T);
+void free_ds_constructor_input_privacy_value_allow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T);
+void free_ds_constructor_input_privacy_value_allow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T);
+void free_ds_constructor_input_privacy_value_disallow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T);
+void free_ds_constructor_input_privacy_value_disallow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T);
+void free_ds_constructor_input_privacy_value_disallow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T);
+void free_ds_constructor_input_sticker_set_empty (struct tl_ds_input_sticker_set *D, struct paramed_type *T);
+void free_ds_constructor_input_sticker_set_i_d (struct tl_ds_input_sticker_set *D, struct paramed_type *T);
+void free_ds_constructor_input_sticker_set_short_name (struct tl_ds_input_sticker_set *D, struct paramed_type *T);
+void free_ds_constructor_input_user_empty (struct tl_ds_input_user *D, struct paramed_type *T);
+void free_ds_constructor_input_user_self (struct tl_ds_input_user *D, struct paramed_type *T);
+void free_ds_constructor_input_user_contact (struct tl_ds_input_user *D, struct paramed_type *T);
+void free_ds_constructor_input_user_foreign (struct tl_ds_input_user *D, struct paramed_type *T);
+void free_ds_constructor_input_video_empty (struct tl_ds_input_video *D, struct paramed_type *T);
+void free_ds_constructor_input_video (struct tl_ds_input_video *D, struct paramed_type *T);
+void free_ds_constructor_int (int *D, struct paramed_type *T);
+void free_ds_constructor_int128 (struct tl_ds_int128 *D, struct paramed_type *T);
+void free_ds_constructor_int256 (struct tl_ds_int256 *D, struct paramed_type *T);
+void free_ds_constructor_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T);
+void free_ds_constructor_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T);
+void free_ds_constructor_long (long long *D, struct paramed_type *T);
+void free_ds_constructor_message_empty (struct tl_ds_message *D, struct paramed_type *T);
+void free_ds_constructor_message (struct tl_ds_message *D, struct paramed_type *T);
+void free_ds_constructor_message_service (struct tl_ds_message *D, struct paramed_type *T);
+void free_ds_constructor_message_action_empty (struct tl_ds_message_action *D, struct paramed_type *T);
+void free_ds_constructor_message_action_chat_create (struct tl_ds_message_action *D, struct paramed_type *T);
+void free_ds_constructor_message_action_chat_edit_title (struct tl_ds_message_action *D, struct paramed_type *T);
+void free_ds_constructor_message_action_chat_edit_photo (struct tl_ds_message_action *D, struct paramed_type *T);
+void free_ds_constructor_message_action_chat_delete_photo (struct tl_ds_message_action *D, struct paramed_type *T);
+void free_ds_constructor_message_action_chat_add_user (struct tl_ds_message_action *D, struct paramed_type *T);
+void free_ds_constructor_message_action_chat_delete_user (struct tl_ds_message_action *D, struct paramed_type *T);
+void free_ds_constructor_message_action_geo_chat_create (struct tl_ds_message_action *D, struct paramed_type *T);
+void free_ds_constructor_message_action_geo_chat_checkin (struct tl_ds_message_action *D, struct paramed_type *T);
+void free_ds_constructor_message_action_chat_joined_by_link (struct tl_ds_message_action *D, struct paramed_type *T);
+void free_ds_constructor_message_media_empty (struct tl_ds_message_media *D, struct paramed_type *T);
+void free_ds_constructor_message_media_photo (struct tl_ds_message_media *D, struct paramed_type *T);
+void free_ds_constructor_message_media_video (struct tl_ds_message_media *D, struct paramed_type *T);
+void free_ds_constructor_message_media_geo (struct tl_ds_message_media *D, struct paramed_type *T);
+void free_ds_constructor_message_media_contact (struct tl_ds_message_media *D, struct paramed_type *T);
+void free_ds_constructor_message_media_unsupported (struct tl_ds_message_media *D, struct paramed_type *T);
+void free_ds_constructor_message_media_document (struct tl_ds_message_media *D, struct paramed_type *T);
+void free_ds_constructor_message_media_audio (struct tl_ds_message_media *D, struct paramed_type *T);
+void free_ds_constructor_message_media_web_page (struct tl_ds_message_media *D, struct paramed_type *T);
+void free_ds_constructor_message_media_venue (struct tl_ds_message_media *D, struct paramed_type *T);
+void free_ds_constructor_message_media_photo_l27 (struct tl_ds_message_media *D, struct paramed_type *T);
+void free_ds_constructor_message_media_video_l27 (struct tl_ds_message_media *D, struct paramed_type *T);
+void free_ds_constructor_input_messages_filter_empty (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void free_ds_constructor_input_messages_filter_photos (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void free_ds_constructor_input_messages_filter_video (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void free_ds_constructor_input_messages_filter_photo_video (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void free_ds_constructor_input_messages_filter_photo_video_documents (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void free_ds_constructor_input_messages_filter_document (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void free_ds_constructor_input_messages_filter_audio (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void free_ds_constructor_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T);
+void free_ds_constructor_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T);
+void free_ds_constructor_notify_users (struct tl_ds_notify_peer *D, struct paramed_type *T);
+void free_ds_constructor_notify_chats (struct tl_ds_notify_peer *D, struct paramed_type *T);
+void free_ds_constructor_notify_all (struct tl_ds_notify_peer *D, struct paramed_type *T);
+void free_ds_constructor_null (struct tl_ds_null *D, struct paramed_type *T);
+void free_ds_constructor_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T);
+void free_ds_constructor_p_q_inner_data_temp (struct tl_ds_p_q_inner_data *D, struct paramed_type *T);
+void free_ds_constructor_peer_user (struct tl_ds_peer *D, struct paramed_type *T);
+void free_ds_constructor_peer_chat (struct tl_ds_peer *D, struct paramed_type *T);
+void free_ds_constructor_peer_notify_events_empty (struct tl_ds_peer_notify_events *D, struct paramed_type *T);
+void free_ds_constructor_peer_notify_events_all (struct tl_ds_peer_notify_events *D, struct paramed_type *T);
+void free_ds_constructor_peer_notify_settings_empty (struct tl_ds_peer_notify_settings *D, struct paramed_type *T);
+void free_ds_constructor_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T);
+void free_ds_constructor_photo_empty (struct tl_ds_photo *D, struct paramed_type *T);
+void free_ds_constructor_photo (struct tl_ds_photo *D, struct paramed_type *T);
+void free_ds_constructor_photo_l27 (struct tl_ds_photo *D, struct paramed_type *T);
+void free_ds_constructor_photo_size_empty (struct tl_ds_photo_size *D, struct paramed_type *T);
+void free_ds_constructor_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T);
+void free_ds_constructor_photo_cached_size (struct tl_ds_photo_size *D, struct paramed_type *T);
+void free_ds_constructor_privacy_key_status_timestamp (struct tl_ds_privacy_key *D, struct paramed_type *T);
+void free_ds_constructor_privacy_value_allow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T);
+void free_ds_constructor_privacy_value_allow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T);
+void free_ds_constructor_privacy_value_allow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T);
+void free_ds_constructor_privacy_value_disallow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T);
+void free_ds_constructor_privacy_value_disallow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T);
+void free_ds_constructor_privacy_value_disallow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T);
+void free_ds_constructor_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T);
+void free_ds_constructor_reply_keyboard_hide (struct tl_ds_reply_markup *D, struct paramed_type *T);
+void free_ds_constructor_reply_keyboard_force_reply (struct tl_ds_reply_markup *D, struct paramed_type *T);
+void free_ds_constructor_reply_keyboard_markup (struct tl_ds_reply_markup *D, struct paramed_type *T);
+void free_ds_constructor_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T);
+void free_ds_constructor_send_message_typing_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void free_ds_constructor_send_message_cancel_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void free_ds_constructor_send_message_record_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void free_ds_constructor_send_message_upload_video_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void free_ds_constructor_send_message_upload_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void free_ds_constructor_send_message_record_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void free_ds_constructor_send_message_upload_audio_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void free_ds_constructor_send_message_upload_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void free_ds_constructor_send_message_upload_photo_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void free_ds_constructor_send_message_upload_document_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void free_ds_constructor_send_message_upload_document_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void free_ds_constructor_send_message_geo_location_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void free_ds_constructor_send_message_choose_contact_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void free_ds_constructor_server_d_h_params_fail (struct tl_ds_server_d_h_params *D, struct paramed_type *T);
+void free_ds_constructor_server_d_h_params_ok (struct tl_ds_server_d_h_params *D, struct paramed_type *T);
+void free_ds_constructor_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T);
+void free_ds_constructor_dh_gen_ok (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T);
+void free_ds_constructor_dh_gen_retry (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T);
+void free_ds_constructor_dh_gen_fail (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T);
+void free_ds_constructor_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T);
+void free_ds_constructor_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T);
+void free_ds_constructor_string (struct tl_ds_string *D, struct paramed_type *T);
+void free_ds_constructor_update_new_message (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_message_i_d (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_delete_messages (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_user_typing (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_chat_user_typing (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_chat_participants (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_user_status (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_user_name (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_user_photo (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_contact_registered (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_contact_link (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_new_authorization (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_new_geo_chat_message (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_new_encrypted_message (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_encrypted_chat_typing (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_encryption (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_encrypted_messages_read (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_chat_participant_add (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_chat_participant_delete (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_dc_options (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_user_blocked (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_notify_settings (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_service_notification (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_privacy (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_user_phone (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_read_history_inbox (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_read_history_outbox (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_web_page (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_read_messages_contents (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_update_msg_update (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_constructor_updates_too_long (struct tl_ds_updates *D, struct paramed_type *T);
+void free_ds_constructor_update_short_message (struct tl_ds_updates *D, struct paramed_type *T);
+void free_ds_constructor_update_short_chat_message (struct tl_ds_updates *D, struct paramed_type *T);
+void free_ds_constructor_update_short (struct tl_ds_updates *D, struct paramed_type *T);
+void free_ds_constructor_updates_combined (struct tl_ds_updates *D, struct paramed_type *T);
+void free_ds_constructor_updates (struct tl_ds_updates *D, struct paramed_type *T);
+void free_ds_constructor_user_empty (struct tl_ds_user *D, struct paramed_type *T);
+void free_ds_constructor_user (struct tl_ds_user *D, struct paramed_type *T);
+void free_ds_constructor_user_full (struct tl_ds_user_full *D, struct paramed_type *T);
+void free_ds_constructor_user_profile_photo_empty (struct tl_ds_user_profile_photo *D, struct paramed_type *T);
+void free_ds_constructor_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T);
+void free_ds_constructor_user_status_empty (struct tl_ds_user_status *D, struct paramed_type *T);
+void free_ds_constructor_user_status_online (struct tl_ds_user_status *D, struct paramed_type *T);
+void free_ds_constructor_user_status_offline (struct tl_ds_user_status *D, struct paramed_type *T);
+void free_ds_constructor_user_status_recently (struct tl_ds_user_status *D, struct paramed_type *T);
+void free_ds_constructor_user_status_last_week (struct tl_ds_user_status *D, struct paramed_type *T);
+void free_ds_constructor_user_status_last_month (struct tl_ds_user_status *D, struct paramed_type *T);
+void free_ds_constructor_vector (struct tl_ds_vector *D, struct paramed_type *T);
+void free_ds_constructor_video_empty (struct tl_ds_video *D, struct paramed_type *T);
+void free_ds_constructor_video (struct tl_ds_video *D, struct paramed_type *T);
+void free_ds_constructor_video_l27 (struct tl_ds_video *D, struct paramed_type *T);
+void free_ds_constructor_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T);
+void free_ds_constructor_wall_paper_solid (struct tl_ds_wall_paper *D, struct paramed_type *T);
+void free_ds_constructor_web_page_empty (struct tl_ds_web_page *D, struct paramed_type *T);
+void free_ds_constructor_web_page_pending (struct tl_ds_web_page *D, struct paramed_type *T);
+void free_ds_constructor_web_page (struct tl_ds_web_page *D, struct paramed_type *T);
+void free_ds_constructor_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T);
+void free_ds_constructor_account_no_password (struct tl_ds_account_password *D, struct paramed_type *T);
+void free_ds_constructor_account_password (struct tl_ds_account_password *D, struct paramed_type *T);
+void free_ds_constructor_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T);
+void free_ds_constructor_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T);
+void free_ds_constructor_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T);
+void free_ds_constructor_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T);
+void free_ds_constructor_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T);
+void free_ds_constructor_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T);
+void free_ds_constructor_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T);
+void free_ds_constructor_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T);
+void free_ds_constructor_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T);
+void free_ds_constructor_auth_sent_app_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T);
+void free_ds_constructor_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T);
+void free_ds_constructor_binlog_start (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_dc_option (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_dc_option_new (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_auth_key (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_default_dc (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_dc_signed (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_our_id (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_set_dh_params (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_set_pts (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_set_qts (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_set_date (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_set_seq (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_encr_chat_delete (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_encr_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_encr_chat_exchange_new (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_user_delete (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_user_new (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_chat_add_participant (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_chat_del_participant (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_set_msg_id (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_message_delete (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_message_new (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_message_encr_new (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_msg_update (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_binlog_reset_authorization (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_constructor_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T);
+void free_ds_constructor_contacts_blocked_slice (struct tl_ds_contacts_blocked *D, struct paramed_type *T);
+void free_ds_constructor_contacts_contacts_not_modified (struct tl_ds_contacts_contacts *D, struct paramed_type *T);
+void free_ds_constructor_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T);
+void free_ds_constructor_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T);
+void free_ds_constructor_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T);
+void free_ds_constructor_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T);
+void free_ds_constructor_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T);
+void free_ds_constructor_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T);
+void free_ds_constructor_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T);
+void free_ds_constructor_geochats_messages_slice (struct tl_ds_geochats_messages *D, struct paramed_type *T);
+void free_ds_constructor_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T);
+void free_ds_constructor_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T);
+void free_ds_constructor_help_no_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T);
+void free_ds_constructor_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T);
+void free_ds_constructor_help_support (struct tl_ds_help_support *D, struct paramed_type *T);
+void free_ds_constructor_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T);
+void free_ds_constructor_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T);
+void free_ds_constructor_messages_all_stickers_not_modified (struct tl_ds_messages_all_stickers *D, struct paramed_type *T);
+void free_ds_constructor_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T);
+void free_ds_constructor_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T);
+void free_ds_constructor_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T);
+void free_ds_constructor_messages_dh_config_not_modified (struct tl_ds_messages_dh_config *D, struct paramed_type *T);
+void free_ds_constructor_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T);
+void free_ds_constructor_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T);
+void free_ds_constructor_messages_dialogs_slice (struct tl_ds_messages_dialogs *D, struct paramed_type *T);
+void free_ds_constructor_messages_message_empty (struct tl_ds_messages_message *D, struct paramed_type *T);
+void free_ds_constructor_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T);
+void free_ds_constructor_messages_messages_slice (struct tl_ds_messages_messages *D, struct paramed_type *T);
+void free_ds_constructor_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T);
+void free_ds_constructor_messages_sent_encrypted_file (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T);
+void free_ds_constructor_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T);
+void free_ds_constructor_messages_sent_message_link (struct tl_ds_messages_sent_message *D, struct paramed_type *T);
+void free_ds_constructor_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T);
+void free_ds_constructor_messages_stickers_not_modified (struct tl_ds_messages_stickers *D, struct paramed_type *T);
+void free_ds_constructor_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T);
+void free_ds_constructor_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T);
+void free_ds_constructor_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T);
+void free_ds_constructor_photos_photos_slice (struct tl_ds_photos_photos *D, struct paramed_type *T);
+void free_ds_constructor_storage_file_unknown (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void free_ds_constructor_storage_file_jpeg (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void free_ds_constructor_storage_file_gif (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void free_ds_constructor_storage_file_png (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void free_ds_constructor_storage_file_pdf (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void free_ds_constructor_storage_file_mp3 (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void free_ds_constructor_storage_file_mov (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void free_ds_constructor_storage_file_partial (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void free_ds_constructor_storage_file_mp4 (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void free_ds_constructor_storage_file_webp (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void free_ds_constructor_updates_difference_empty (struct tl_ds_updates_difference *D, struct paramed_type *T);
+void free_ds_constructor_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T);
+void free_ds_constructor_updates_difference_slice (struct tl_ds_updates_difference *D, struct paramed_type *T);
+void free_ds_constructor_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T);
+void free_ds_constructor_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T);
+void free_ds_type_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T);
+void free_ds_type_audio (struct tl_ds_audio *D, struct paramed_type *T);
+void free_ds_type_authorization (struct tl_ds_authorization *D, struct paramed_type *T);
+void free_ds_type_bool (struct tl_ds_bool *D, struct paramed_type *T);
+void free_ds_type_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T);
+void free_ds_type_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T);
+void free_ds_type_bytes (struct tl_ds_string *D, struct paramed_type *T);
+void free_ds_type_chat (struct tl_ds_chat *D, struct paramed_type *T);
+void free_ds_type_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T);
+void free_ds_type_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T);
+void free_ds_type_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T);
+void free_ds_type_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T);
+void free_ds_type_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T);
+void free_ds_type_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T);
+void free_ds_type_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T);
+void free_ds_type_config (struct tl_ds_config *D, struct paramed_type *T);
+void free_ds_type_contact (struct tl_ds_contact *D, struct paramed_type *T);
+void free_ds_type_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T);
+void free_ds_type_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T);
+void free_ds_type_contact_link (struct tl_ds_contact_link *D, struct paramed_type *T);
+void free_ds_type_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T);
+void free_ds_type_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T);
+void free_ds_type_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T);
+void free_ds_type_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T);
+void free_ds_type_decrypted_message_action (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void free_ds_type_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T);
+void free_ds_type_decrypted_message_media (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void free_ds_type_dialog (struct tl_ds_dialog *D, struct paramed_type *T);
+void free_ds_type_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T);
+void free_ds_type_document (struct tl_ds_document *D, struct paramed_type *T);
+void free_ds_type_document_attribute (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void free_ds_type_double (double *D, struct paramed_type *T);
+void free_ds_type_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T);
+void free_ds_type_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T);
+void free_ds_type_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T);
+void free_ds_type_error (struct tl_ds_error *D, struct paramed_type *T);
+void free_ds_type_exported_chat_invite (struct tl_ds_exported_chat_invite *D, struct paramed_type *T);
+void free_ds_type_file_location (struct tl_ds_file_location *D, struct paramed_type *T);
+void free_ds_type_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T);
+void free_ds_type_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T);
+void free_ds_type_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T);
+void free_ds_type_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T);
+void free_ds_type_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T);
+void free_ds_type_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T);
+void free_ds_type_input_contact (struct tl_ds_input_contact *D, struct paramed_type *T);
+void free_ds_type_input_document (struct tl_ds_input_document *D, struct paramed_type *T);
+void free_ds_type_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T);
+void free_ds_type_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T);
+void free_ds_type_input_file (struct tl_ds_input_file *D, struct paramed_type *T);
+void free_ds_type_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T);
+void free_ds_type_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T);
+void free_ds_type_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T);
+void free_ds_type_input_media (struct tl_ds_input_media *D, struct paramed_type *T);
+void free_ds_type_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T);
+void free_ds_type_input_peer (struct tl_ds_input_peer *D, struct paramed_type *T);
+void free_ds_type_input_peer_notify_events (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T);
+void free_ds_type_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T);
+void free_ds_type_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T);
+void free_ds_type_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T);
+void free_ds_type_input_privacy_key (struct tl_ds_input_privacy_key *D, struct paramed_type *T);
+void free_ds_type_input_privacy_rule (struct tl_ds_input_privacy_rule *D, struct paramed_type *T);
+void free_ds_type_input_sticker_set (struct tl_ds_input_sticker_set *D, struct paramed_type *T);
+void free_ds_type_input_user (struct tl_ds_input_user *D, struct paramed_type *T);
+void free_ds_type_input_video (struct tl_ds_input_video *D, struct paramed_type *T);
+void free_ds_type_int (int *D, struct paramed_type *T);
+void free_ds_type_int128 (struct tl_ds_int128 *D, struct paramed_type *T);
+void free_ds_type_int256 (struct tl_ds_int256 *D, struct paramed_type *T);
+void free_ds_type_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T);
+void free_ds_type_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T);
+void free_ds_type_long (long long *D, struct paramed_type *T);
+void free_ds_type_message (struct tl_ds_message *D, struct paramed_type *T);
+void free_ds_type_message_action (struct tl_ds_message_action *D, struct paramed_type *T);
+void free_ds_type_message_media (struct tl_ds_message_media *D, struct paramed_type *T);
+void free_ds_type_messages_filter (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void free_ds_type_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T);
+void free_ds_type_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T);
+void free_ds_type_null (struct tl_ds_null *D, struct paramed_type *T);
+void free_ds_type_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T);
+void free_ds_type_peer (struct tl_ds_peer *D, struct paramed_type *T);
+void free_ds_type_peer_notify_events (struct tl_ds_peer_notify_events *D, struct paramed_type *T);
+void free_ds_type_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T);
+void free_ds_type_photo (struct tl_ds_photo *D, struct paramed_type *T);
+void free_ds_type_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T);
+void free_ds_type_privacy_key (struct tl_ds_privacy_key *D, struct paramed_type *T);
+void free_ds_type_privacy_rule (struct tl_ds_privacy_rule *D, struct paramed_type *T);
+void free_ds_type_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T);
+void free_ds_type_reply_markup (struct tl_ds_reply_markup *D, struct paramed_type *T);
+void free_ds_type_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T);
+void free_ds_type_send_message_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void free_ds_type_server_d_h_params (struct tl_ds_server_d_h_params *D, struct paramed_type *T);
+void free_ds_type_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T);
+void free_ds_type_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T);
+void free_ds_type_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T);
+void free_ds_type_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T);
+void free_ds_type_string (struct tl_ds_string *D, struct paramed_type *T);
+void free_ds_type_update (struct tl_ds_update *D, struct paramed_type *T);
+void free_ds_type_updates (struct tl_ds_updates *D, struct paramed_type *T);
+void free_ds_type_user (struct tl_ds_user *D, struct paramed_type *T);
+void free_ds_type_user_full (struct tl_ds_user_full *D, struct paramed_type *T);
+void free_ds_type_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T);
+void free_ds_type_user_status (struct tl_ds_user_status *D, struct paramed_type *T);
+void free_ds_type_vector (struct tl_ds_vector *D, struct paramed_type *T);
+void free_ds_type_video (struct tl_ds_video *D, struct paramed_type *T);
+void free_ds_type_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T);
+void free_ds_type_web_page (struct tl_ds_web_page *D, struct paramed_type *T);
+void free_ds_type_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T);
+void free_ds_type_account_password (struct tl_ds_account_password *D, struct paramed_type *T);
+void free_ds_type_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T);
+void free_ds_type_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T);
+void free_ds_type_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T);
+void free_ds_type_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T);
+void free_ds_type_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T);
+void free_ds_type_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T);
+void free_ds_type_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T);
+void free_ds_type_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T);
+void free_ds_type_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T);
+void free_ds_type_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T);
+void free_ds_type_binlog_update (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void free_ds_type_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T);
+void free_ds_type_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T);
+void free_ds_type_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T);
+void free_ds_type_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T);
+void free_ds_type_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T);
+void free_ds_type_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T);
+void free_ds_type_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T);
+void free_ds_type_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T);
+void free_ds_type_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T);
+void free_ds_type_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T);
+void free_ds_type_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T);
+void free_ds_type_help_support (struct tl_ds_help_support *D, struct paramed_type *T);
+void free_ds_type_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T);
+void free_ds_type_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T);
+void free_ds_type_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T);
+void free_ds_type_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T);
+void free_ds_type_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T);
+void free_ds_type_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T);
+void free_ds_type_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T);
+void free_ds_type_messages_message (struct tl_ds_messages_message *D, struct paramed_type *T);
+void free_ds_type_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T);
+void free_ds_type_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T);
+void free_ds_type_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T);
+void free_ds_type_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T);
+void free_ds_type_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T);
+void free_ds_type_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T);
+void free_ds_type_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T);
+void free_ds_type_storage_file_type (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void free_ds_type_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T);
+void free_ds_type_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T);
+void free_ds_type_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T);
+void free_ds_type_any (void *D, struct paramed_type *T);
diff --git a/libs/tgl/src/auto/auto-print-ds.c b/libs/tgl/src/auto/auto-print-ds.c
new file mode 100644
index 0000000000..6ca075d912
--- /dev/null
+++ b/libs/tgl/src/auto/auto-print-ds.c
@@ -0,0 +1,16382 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#include "auto-print-ds.h"
+#include "auto-skip.h"
+#include "..\auto-static-print-ds.c"
+#include "..\mtproto-common.h"
+#else
+#include "auto.h"
+#include "auto/auto-print-ds.h"
+#include "auto/auto-skip.h"
+#include "auto-static-print-ds.c"
+#include "mtproto-common.h"
+#endif
+#include <assert.h>
+int print_ds_constructor_account_days_t_t_l (struct tl_ds_account_days_t_t_l *DS, 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,
+ };
+ print_ds_type_bare_int (DS->days, field1);
+ return 0;
+}
+int print_ds_constructor_audio_empty (struct tl_ds_audio *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_audio (struct tl_ds_audio *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->duration, field5);
+ 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,
+ };
+ print_ds_type_bare_string (DS->mime_type, field6);
+ 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,
+ };
+ print_ds_type_bare_int (DS->size, field7);
+ 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,
+ };
+ print_ds_type_bare_int (DS->dc_id, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_authorization (struct tl_ds_authorization *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { return -1; }
+ eprintf (" authorization");
+ 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 = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_long (DS->hash, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->flags, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" device_model :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->device_model, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" platform :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->platform, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" system_version :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->system_version, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" api_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,
+ };
+ print_ds_type_bare_int (DS->api_id, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" app_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,
+ };
+ print_ds_type_bare_string (DS->app_name, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" app_version :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->app_version, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" date_created :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->date_created, field9);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" date_active :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->date_active, field10);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" ip :"); }
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_string (DS->ip, field11);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" country :"); }
+ struct paramed_type *field12 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_string (DS->country, field12);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" region :"); }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_string (DS->region, field13);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_bool_false (struct tl_ds_bool *DS, 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 print_ds_constructor_bool_true (struct tl_ds_bool *DS, 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 print_ds_constructor_bot_command (struct tl_ds_bot_command *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; }
+ eprintf (" botCommand");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" command :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->command, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" description :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->description, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_bot_command_old (struct tl_ds_bot_command *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; }
+ eprintf (" botCommandOld");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" command :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->command, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" params :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->params, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" description :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->description, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_bot_info_empty (struct tl_ds_bot_info *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; }
+ eprintf (" botInfoEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_bot_info (struct tl_ds_bot_info *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; }
+ eprintf (" botInfo");
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->version, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" share_text :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->share_text, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" description :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->description, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" commands :"); }
+ 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 = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->commands, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_bytes (struct tl_ds_string *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return -1; }
+ print_escaped_string (DS->data, DS->len);
+ return 0;
+}
+int print_ds_constructor_chat_empty (struct tl_ds_chat *DS, 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_chat (struct tl_ds_chat *DS, 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->title, field2);
+ 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,
+ };
+ print_ds_type_chat_photo (DS->photo, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->participants_count, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field5);
+ 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,
+ };
+ print_ds_type_bool (DS->left, field6);
+ 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,
+ };
+ print_ds_type_bare_int (DS->version, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_chat_forbidden (struct tl_ds_chat *DS, 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->title, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_geo_chat (struct tl_ds_chat *DS, 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->title, field3);
+ 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,
+ };
+ print_ds_type_bare_string (DS->address, field4);
+ 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,
+ };
+ print_ds_type_bare_string (DS->venue, field5);
+ 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,
+ };
+ print_ds_type_geo_point (DS->geo, field6);
+ 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,
+ };
+ print_ds_type_chat_photo (DS->photo, field7);
+ 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,
+ };
+ print_ds_type_bare_int (DS->participants_count, field8);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field9);
+ 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,
+ };
+ print_ds_type_bool (DS->checked_in, field10);
+ 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,
+ };
+ print_ds_type_bare_int (DS->version, field11);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_chat_full (struct tl_ds_chat_full *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_chat_participants (DS->participants, field2);
+ 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_photo (DS->chat_photo, field3);
+ 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,
+ };
+ print_ds_type_peer_notify_settings (DS->notify_settings, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" exported_invite :"); }
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_exported_chat_invite (DS->exported_invite, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" bot_info :"); }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->bot_info, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_chat_invite_already (struct tl_ds_chat_invite *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return -1; }
+ eprintf (" chatInviteAlready");
+ 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,
+ };
+ print_ds_type_chat (DS->chat, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_chat_invite (struct tl_ds_chat_invite *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return -1; }
+ eprintf (" chatInvite");
+ 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,
+ };
+ print_ds_type_bare_string (DS->title, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_chat_located (struct tl_ds_chat_located *DS, 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->distance, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_chat_participant (struct tl_ds_chat_participant *DS, 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->inviter_id, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_chat_participants_forbidden (struct tl_ds_chat_participants *DS, 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_chat_participants (struct tl_ds_chat_participants *DS, 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->admin_id, field2);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->participants, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->version, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_chat_photo_empty (struct tl_ds_chat_photo *DS, 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 print_ds_constructor_chat_photo (struct tl_ds_chat_photo *DS, 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,
+ };
+ print_ds_type_file_location (DS->photo_small, field1);
+ 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,
+ };
+ print_ds_type_file_location (DS->photo_big, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *DS, 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,
+ };
+ print_ds_type_bare_int128 (DS->nonce, field1);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->server_nonce, field2);
+ 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,
+ };
+ print_ds_type_bare_long (DS->retry_id, field3);
+ 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,
+ };
+ print_ds_type_bare_string (DS->g_b, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_config (struct tl_ds_config *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { 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,
+ };
+ print_ds_type_bare_int (DS->date, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" expires :"); }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->expires, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" test_mode :"); }
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bool (DS->test_mode, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" this_dc :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->this_dc, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" dc_options :"); }
+ 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 = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->dc_options, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" chat_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,
+ };
+ print_ds_type_bare_int (DS->chat_size_max, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" broadcast_size_max :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->broadcast_size_max, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" forwarded_count_max :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->forwarded_count_max, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" online_update_period_ms :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->online_update_period_ms, field9);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" offline_blur_timeout_ms :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->offline_blur_timeout_ms, field10);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" offline_idle_timeout_ms :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->offline_idle_timeout_ms, field11);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" online_cloud_timeout_ms :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->online_cloud_timeout_ms, field12);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" notify_cloud_delay_ms :"); }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->notify_cloud_delay_ms, field13);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" notify_default_delay_ms :"); }
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->notify_default_delay_ms, field14);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" chat_big_size :"); }
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->chat_big_size, field15);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" push_chat_period_ms :"); }
+ struct paramed_type *field16 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->push_chat_period_ms, field16);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" push_chat_limit :"); }
+ struct paramed_type *field17 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->push_chat_limit, field17);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" disabled_features :"); }
+ struct paramed_type *field18 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->disabled_features, field18);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_contact (struct tl_ds_contact *DS, 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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,
+ };
+ print_ds_type_bool (DS->mutual, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_contact_blocked (struct tl_ds_contact_blocked *DS, 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_contact_found (struct tl_ds_contact_found *DS, 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ return 0;
+}
+int print_ds_constructor_contact_link_unknown (struct tl_ds_contact_link *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ eprintf (" contactLinkUnknown");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_contact_link_none (struct tl_ds_contact_link *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ eprintf (" contactLinkNone");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_contact_link_has_phone (struct tl_ds_contact_link *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ eprintf (" contactLinkHasPhone");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_contact_link_contact (struct tl_ds_contact_link *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ eprintf (" contactLinkContact");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_contact_status (struct tl_ds_contact_status *DS, 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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,
+ };
+ print_ds_type_user_status (DS->status, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_contact_suggested (struct tl_ds_contact_suggested *DS, 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->mutual_contacts, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_dc_option_l28 (struct tl_ds_dc_option *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return -1; }
+ eprintf (" dcOptionL28");
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->hostname, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->ip_address, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->port, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_dc_option (struct tl_ds_dc_option *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return -1; }
+ eprintf (" dcOption");
+ 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,
+ };
+ print_ds_type_bare_int (DS->flags, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->ip_address, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->port, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message (struct tl_ds_decrypted_message *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return -1; }
+ eprintf (" decryptedMessage");
+ 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,
+ };
+ print_ds_type_bare_long (DS->random_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->ttl, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->message, field3);
+ 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 = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_decrypted_message_media (DS->media, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_service (struct tl_ds_decrypted_message *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return -1; }
+ eprintf (" decryptedMessageService");
+ 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,
+ };
+ print_ds_type_bare_long (DS->random_id, field1);
+ 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 = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_decrypted_message_action (DS->action, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_action_set_message_t_t_l (struct tl_ds_decrypted_message_action *DS, 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,
+ };
+ print_ds_type_bare_int (DS->ttl_seconds, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_action_read_messages (struct tl_ds_decrypted_message_action *DS, 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->random_ids, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_action_delete_messages (struct tl_ds_decrypted_message_action *DS, 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->random_ids, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_action_screenshot_messages (struct tl_ds_decrypted_message_action *DS, 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->random_ids, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_action_flush_history (struct tl_ds_decrypted_message_action *DS, 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 print_ds_constructor_decrypted_message_action_resend (struct tl_ds_decrypted_message_action *DS, 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,
+ };
+ print_ds_type_bare_int (DS->start_seq_no, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->end_seq_no, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_action_notify_layer (struct tl_ds_decrypted_message_action *DS, 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,
+ };
+ print_ds_type_bare_int (DS->layer, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_action_typing (struct tl_ds_decrypted_message_action *DS, 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 = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_send_message_action (DS->action, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_action_request_key (struct tl_ds_decrypted_message_action *DS, 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,
+ };
+ print_ds_type_bare_long (DS->exchange_id, field1);
+ 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 = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_bytes (DS->g_a, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_action_accept_key (struct tl_ds_decrypted_message_action *DS, 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,
+ };
+ print_ds_type_bare_long (DS->exchange_id, field1);
+ 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 = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_bytes (DS->g_b, field2);
+ 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,
+ };
+ print_ds_type_bare_long (DS->key_fingerprint, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_action_abort_key (struct tl_ds_decrypted_message_action *DS, 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,
+ };
+ print_ds_type_bare_long (DS->exchange_id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_action_commit_key (struct tl_ds_decrypted_message_action *DS, 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,
+ };
+ print_ds_type_bare_long (DS->exchange_id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->key_fingerprint, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_action_noop (struct tl_ds_decrypted_message_action *DS, 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 print_ds_constructor_decrypted_message_layer (struct tl_ds_decrypted_message_layer *DS, 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 (" random_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,
+ };
+ print_ds_type_bare_bytes (DS->random_bytes, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->layer, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" 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,
+ };
+ print_ds_type_bare_int (DS->in_seq_no, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->out_seq_no, field4);
+ 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 = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_decrypted_message (DS->message, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_media_empty (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_media_photo (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaPhoto");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" str_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,
+ };
+ print_ds_type_bare_bytes (DS->str_thumb, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->thumb_w, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->thumb_h, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->w, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->h, field5);
+ 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,
+ };
+ print_ds_type_bare_int (DS->size, field6);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->key, field7);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->iv, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_media_geo_point (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaGeoPoint");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" latitude :"); }
+ 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,
+ };
+ print_ds_type_bare_double (DS->latitude, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" longitude :"); }
+ 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,
+ };
+ print_ds_type_bare_double (DS->longitude, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_media_contact (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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,
+ };
+ print_ds_type_bare_string (DS->phone_number, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->first_name, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->last_name, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_media_document (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaDocument");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" str_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,
+ };
+ print_ds_type_bare_bytes (DS->str_thumb, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->thumb_w, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->thumb_h, field3);
+ 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,
+ };
+ print_ds_type_bare_string (DS->file_name, field4);
+ 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,
+ };
+ print_ds_type_bare_string (DS->mime_type, field5);
+ 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,
+ };
+ print_ds_type_bare_int (DS->size, field6);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->key, field7);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->iv, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_media_video (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaVideo");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" str_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,
+ };
+ print_ds_type_bare_bytes (DS->str_thumb, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->thumb_w, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->thumb_h, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->duration, field4);
+ 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,
+ };
+ print_ds_type_bare_string (DS->mime_type, field5);
+ 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,
+ };
+ print_ds_type_bare_int (DS->w, field6);
+ 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,
+ };
+ print_ds_type_bare_int (DS->h, field7);
+ 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,
+ };
+ print_ds_type_bare_int (DS->size, field8);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->key, field9);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->iv, field10);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_media_audio (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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,
+ };
+ print_ds_type_bare_int (DS->duration, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->mime_type, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->size, field3);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->key, field4);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->iv, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_media_external_document (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaExternalDocument");
+ 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field3);
+ 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,
+ };
+ print_ds_type_bare_string (DS->mime_type, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->size, field5);
+ 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,
+ };
+ print_ds_type_photo_size (DS->thumb, field6);
+ 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,
+ };
+ print_ds_type_bare_int (DS->dc_id, field7);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->attributes, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_media_video_l12 (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaVideoL12");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" str_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,
+ };
+ print_ds_type_bare_bytes (DS->str_thumb, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->thumb_w, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->thumb_h, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->duration, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" w :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->w, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" h :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->h, field6);
+ 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,
+ };
+ print_ds_type_bare_int (DS->size, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" key :"); }
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->key, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" iv :"); }
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->iv, field9);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_decrypted_message_media_audio_l12 (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ eprintf (" decryptedMessageMediaAudioL12");
+ 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,
+ };
+ print_ds_type_bare_int (DS->duration, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" size :"); }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->size, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" key :"); }
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->key, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" iv :"); }
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->iv, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_dialog (struct tl_ds_dialog *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { 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,
+ };
+ print_ds_type_peer (DS->peer, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->top_message, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" read_inbox_max_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,
+ };
+ print_ds_type_bare_int (DS->read_inbox_max_id, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" unread_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,
+ };
+ print_ds_type_bare_int (DS->unread_count, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" notify_settings :"); }
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_peer_notify_settings (DS->notify_settings, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_disabled_feature (struct tl_ds_disabled_feature *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return -1; }
+ eprintf (" disabledFeature");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" feature :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->feature, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" description :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->description, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_document_empty (struct tl_ds_document *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_document (struct tl_ds_document *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field3);
+ 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,
+ };
+ print_ds_type_bare_string (DS->mime_type, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->size, field5);
+ 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,
+ };
+ print_ds_type_photo_size (DS->thumb, field6);
+ 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,
+ };
+ print_ds_type_bare_int (DS->dc_id, field7);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->attributes, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_document_l19 (struct tl_ds_document *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field4);
+ 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,
+ };
+ print_ds_type_bare_string (DS->file_name, field5);
+ 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,
+ };
+ print_ds_type_bare_string (DS->mime_type, field6);
+ 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,
+ };
+ print_ds_type_bare_int (DS->size, field7);
+ 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,
+ };
+ print_ds_type_photo_size (DS->thumb, field8);
+ 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,
+ };
+ print_ds_type_bare_int (DS->dc_id, field9);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_document_attribute_image_size (struct tl_ds_document_attribute *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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,
+ };
+ print_ds_type_bare_int (DS->w, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->h, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_document_attribute_animated (struct tl_ds_document_attribute *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; }
+ eprintf (" documentAttributeAnimated");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_document_attribute_sticker_l28 (struct tl_ds_document_attribute *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; }
+ eprintf (" documentAttributeStickerL28");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" alt :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->alt, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_document_attribute_sticker (struct tl_ds_document_attribute *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; }
+ eprintf (" documentAttributeSticker");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" alt :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->alt, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" stickerset :"); }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_input_sticker_set (DS->stickerset, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_document_attribute_video (struct tl_ds_document_attribute *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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,
+ };
+ print_ds_type_bare_int (DS->duration, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->w, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->h, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_document_attribute_audio (struct tl_ds_document_attribute *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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,
+ };
+ print_ds_type_bare_int (DS->duration, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_document_attribute_filename (struct tl_ds_document_attribute *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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,
+ };
+ print_ds_type_bare_string (DS->file_name, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_double (double *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return -1; }
+ eprintf (" %lf", *DS);
+ return 0;
+}
+int print_ds_constructor_encrypted_chat_empty (struct tl_ds_encrypted_chat *DS, 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_encrypted_chat_waiting (struct tl_ds_encrypted_chat *DS, 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->admin_id, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->participant_id, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_encrypted_chat_requested (struct tl_ds_encrypted_chat *DS, 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->admin_id, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->participant_id, field5);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->g_a, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_encrypted_chat (struct tl_ds_encrypted_chat *DS, 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->admin_id, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->participant_id, field5);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->g_a_or_b, field6);
+ 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,
+ };
+ print_ds_type_bare_long (DS->key_fingerprint, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_encrypted_chat_discarded (struct tl_ds_encrypted_chat *DS, 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_encrypted_file_empty (struct tl_ds_encrypted_file *DS, 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 print_ds_constructor_encrypted_file (struct tl_ds_encrypted_file *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->size, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->dc_id, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->key_fingerprint, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_encrypted_message (struct tl_ds_encrypted_message *DS, 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,
+ };
+ print_ds_type_bare_long (DS->random_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field3);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->bytes, field4);
+ 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,
+ };
+ print_ds_type_encrypted_file (DS->file, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_encrypted_message_service (struct tl_ds_encrypted_message *DS, 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,
+ };
+ print_ds_type_bare_long (DS->random_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field3);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->bytes, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_error (struct tl_ds_error *DS, 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,
+ };
+ print_ds_type_bare_int (DS->code, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->text, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_chat_invite_empty (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; }
+ eprintf (" chatInviteEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_chat_invite_exported (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; }
+ eprintf (" chatInviteExported");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" link :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->link, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_file_location_unavailable (struct tl_ds_file_location *DS, 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,
+ };
+ print_ds_type_bare_long (DS->volume_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->local_id, field2);
+ 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,
+ };
+ print_ds_type_bare_long (DS->secret, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_file_location (struct tl_ds_file_location *DS, 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,
+ };
+ print_ds_type_bare_int (DS->dc_id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->volume_id, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->local_id, field3);
+ 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,
+ };
+ print_ds_type_bare_long (DS->secret, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_geo_chat_message_empty (struct tl_ds_geo_chat_message *DS, 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_geo_chat_message (struct tl_ds_geo_chat_message *DS, 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->from_id, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field4);
+ 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,
+ };
+ print_ds_type_bare_string (DS->message, field5);
+ 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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_message_media (DS->media, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_geo_chat_message_service (struct tl_ds_geo_chat_message *DS, 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->from_id, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field4);
+ 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 = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_message_action (DS->action, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_geo_point_empty (struct tl_ds_geo_point *DS, 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 print_ds_constructor_geo_point (struct tl_ds_geo_point *DS, 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 (" longitude :"); }
+ 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,
+ };
+ print_ds_type_bare_double (DS->longitude, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" latitude :"); }
+ 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,
+ };
+ print_ds_type_bare_double (DS->latitude, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_imported_contact (struct tl_ds_imported_contact *DS, 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->client_id, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_app_event (struct tl_ds_input_app_event *DS, 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,
+ };
+ print_ds_type_bare_double (DS->time, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->type, field2);
+ 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,
+ };
+ print_ds_type_bare_long (DS->peer, field3);
+ 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,
+ };
+ print_ds_type_bare_string (DS->data, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_audio_empty (struct tl_ds_input_audio *DS, 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 print_ds_constructor_input_audio (struct tl_ds_input_audio *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_chat_photo_empty (struct tl_ds_input_chat_photo *DS, 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 print_ds_constructor_input_chat_uploaded_photo (struct tl_ds_input_chat_photo *DS, 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,
+ };
+ print_ds_type_input_file (DS->file, field1);
+ 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,
+ };
+ print_ds_type_input_photo_crop (DS->crop, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_chat_photo (struct tl_ds_input_chat_photo *DS, 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,
+ };
+ print_ds_type_input_photo (DS->id, field1);
+ 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,
+ };
+ print_ds_type_input_photo_crop (DS->crop, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_phone_contact (struct tl_ds_input_contact *DS, 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,
+ };
+ print_ds_type_bare_long (DS->client_id, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->phone, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->first_name, field3);
+ 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,
+ };
+ print_ds_type_bare_string (DS->last_name, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_document_empty (struct tl_ds_input_document *DS, 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 print_ds_constructor_input_document (struct tl_ds_input_document *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_encrypted_chat (struct tl_ds_input_encrypted_chat *DS, 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_encrypted_file_empty (struct tl_ds_input_encrypted_file *DS, 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 print_ds_constructor_input_encrypted_file_uploaded (struct tl_ds_input_encrypted_file *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->parts, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->md5_checksum, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->key_fingerprint, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_encrypted_file (struct tl_ds_input_encrypted_file *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_encrypted_file_big_uploaded (struct tl_ds_input_encrypted_file *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->parts, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->key_fingerprint, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_file (struct tl_ds_input_file *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->parts, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->name, field3);
+ 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,
+ };
+ print_ds_type_bare_string (DS->md5_checksum, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_file_big (struct tl_ds_input_file *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->parts, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->name, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_file_location (struct tl_ds_input_file_location *DS, 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,
+ };
+ print_ds_type_bare_long (DS->volume_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->local_id, field2);
+ 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,
+ };
+ print_ds_type_bare_long (DS->secret, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_video_file_location (struct tl_ds_input_file_location *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_encrypted_file_location (struct tl_ds_input_file_location *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_audio_file_location (struct tl_ds_input_file_location *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_document_file_location (struct tl_ds_input_file_location *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_geo_chat (struct tl_ds_input_geo_chat *DS, 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_geo_point_empty (struct tl_ds_input_geo_point *DS, 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 print_ds_constructor_input_geo_point (struct tl_ds_input_geo_point *DS, 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 (" latitude :"); }
+ 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,
+ };
+ print_ds_type_bare_double (DS->latitude, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" longitude :"); }
+ 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,
+ };
+ print_ds_type_bare_double (DS->longitude, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_media_empty (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ eprintf (" inputMediaEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_media_uploaded_photo (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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,
+ };
+ print_ds_type_input_file (DS->file, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" caption :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->caption, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_media_photo (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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,
+ };
+ print_ds_type_input_photo (DS->id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" caption :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->caption, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_media_geo_point (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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,
+ };
+ print_ds_type_input_geo_point (DS->geo_point, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_media_contact (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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,
+ };
+ print_ds_type_bare_string (DS->phone_number, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->first_name, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->last_name, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_media_uploaded_video (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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,
+ };
+ print_ds_type_input_file (DS->file, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->duration, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->w, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->h, field4);
+ 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,
+ };
+ print_ds_type_bare_string (DS->caption, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_media_uploaded_thumb_video (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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,
+ };
+ print_ds_type_input_file (DS->file, field1);
+ 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,
+ };
+ print_ds_type_input_file (DS->thumb, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->duration, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->w, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->h, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" caption :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->caption, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_media_video (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ eprintf (" inputMediaVideo");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" video_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,
+ };
+ print_ds_type_input_video (DS->video_id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" caption :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->caption, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_media_uploaded_audio (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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,
+ };
+ print_ds_type_input_file (DS->file, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->duration, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->mime_type, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_media_audio (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ eprintf (" inputMediaAudio");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" audio_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,
+ };
+ print_ds_type_input_audio (DS->audio_id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_media_uploaded_document (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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,
+ };
+ print_ds_type_input_file (DS->file, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->mime_type, field2);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->attributes, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_media_uploaded_thumb_document (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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,
+ };
+ print_ds_type_input_file (DS->file, field1);
+ 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,
+ };
+ print_ds_type_input_file (DS->thumb, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->mime_type, field3);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->attributes, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_media_document (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ eprintf (" inputMediaDocument");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" document_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,
+ };
+ print_ds_type_input_document (DS->document_id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_media_venue (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ eprintf (" inputMediaVenue");
+ 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,
+ };
+ print_ds_type_input_geo_point (DS->geo_point, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->title, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" 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,
+ };
+ print_ds_type_bare_string (DS->address, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" provider :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->provider, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" venue_id :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->venue_id, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_notify_peer (struct tl_ds_input_notify_peer *DS, 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,
+ };
+ print_ds_type_input_peer (DS->peer, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_notify_users (struct tl_ds_input_notify_peer *DS, 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 print_ds_constructor_input_notify_chats (struct tl_ds_input_notify_peer *DS, 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 print_ds_constructor_input_notify_all (struct tl_ds_input_notify_peer *DS, 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 print_ds_constructor_input_notify_geo_chat_peer (struct tl_ds_input_notify_peer *DS, 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 (" geo_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,
+ };
+ print_ds_type_input_geo_chat (DS->geo_peer, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_peer_empty (struct tl_ds_input_peer *DS, 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 print_ds_constructor_input_peer_self (struct tl_ds_input_peer *DS, 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 print_ds_constructor_input_peer_contact (struct tl_ds_input_peer *DS, 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_peer_foreign (struct tl_ds_input_peer *DS, 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_peer_chat (struct tl_ds_input_peer *DS, 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_peer_notify_events_empty (struct tl_ds_input_peer_notify_events *DS, 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 print_ds_constructor_input_peer_notify_events_all (struct tl_ds_input_peer_notify_events *DS, 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 print_ds_constructor_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *DS, 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,
+ };
+ print_ds_type_bare_int (DS->mute_until, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->sound, field2);
+ 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,
+ };
+ print_ds_type_bool (DS->show_previews, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->events_mask, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_photo_empty (struct tl_ds_input_photo *DS, 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 print_ds_constructor_input_photo (struct tl_ds_input_photo *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_photo_crop_auto (struct tl_ds_input_photo_crop *DS, 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 print_ds_constructor_input_photo_crop (struct tl_ds_input_photo_crop *DS, 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,
+ };
+ print_ds_type_bare_double (DS->crop_left, field1);
+ 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,
+ };
+ print_ds_type_bare_double (DS->crop_top, field2);
+ 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,
+ };
+ print_ds_type_bare_double (DS->crop_width, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_privacy_key_status_timestamp (struct tl_ds_input_privacy_key *DS, 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 print_ds_constructor_input_privacy_value_allow_contacts (struct tl_ds_input_privacy_rule *DS, 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 print_ds_constructor_input_privacy_value_allow_all (struct tl_ds_input_privacy_rule *DS, 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 print_ds_constructor_input_privacy_value_allow_users (struct tl_ds_input_privacy_rule *DS, 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_privacy_value_disallow_contacts (struct tl_ds_input_privacy_rule *DS, 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 print_ds_constructor_input_privacy_value_disallow_all (struct tl_ds_input_privacy_rule *DS, 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 print_ds_constructor_input_privacy_value_disallow_users (struct tl_ds_input_privacy_rule *DS, 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_sticker_set_empty (struct tl_ds_input_sticker_set *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; }
+ eprintf (" inputStickerSetEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_sticker_set_i_d (struct tl_ds_input_sticker_set *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; }
+ eprintf (" inputStickerSetID");
+ 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_sticker_set_short_name (struct tl_ds_input_sticker_set *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; }
+ eprintf (" inputStickerSetShortName");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" short_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,
+ };
+ print_ds_type_bare_string (DS->short_name, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_user_empty (struct tl_ds_input_user *DS, 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 print_ds_constructor_input_user_self (struct tl_ds_input_user *DS, 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 print_ds_constructor_input_user_contact (struct tl_ds_input_user *DS, 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_user_foreign (struct tl_ds_input_user *DS, 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_video_empty (struct tl_ds_input_video *DS, 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 print_ds_constructor_input_video (struct tl_ds_input_video *DS, 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_int (int *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return -1; }
+ eprintf (" %d", *DS);
+ return 0;
+}
+int print_ds_constructor_int128 (struct tl_ds_int128 *DS, 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,
+ };
+ print_ds_type_bare_long (DS->f0, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->f1, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_int256 (struct tl_ds_int256 *DS, 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,
+ };
+ print_ds_type_bare_long (DS->f0, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->f1, field2);
+ 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,
+ };
+ print_ds_type_bare_long (DS->f2, field3);
+ 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,
+ };
+ print_ds_type_bare_long (DS->f3, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_keyboard_button (struct tl_ds_keyboard_button *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { 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,
+ };
+ print_ds_type_bare_string (DS->text, field1);
+ return 0;
+}
+int print_ds_constructor_keyboard_button_row (struct tl_ds_keyboard_button_row *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { 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 = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->buttons, field1);
+ return 0;
+}
+int print_ds_constructor_long (long long *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return -1; }
+ eprintf (" %I64d", *DS);
+ return 0;
+}
+int print_ds_constructor_message_empty (struct tl_ds_message *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message (struct tl_ds_message *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { 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 *var0 = INT2PTR (*DS->flags);
+ eprintf (" %d", (int)PTR2INT (var0));
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->from_id, field3);
+ 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,
+ };
+ print_ds_type_peer (DS->to_id, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" fwd_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,
+ };
+ print_ds_type_bare_int (DS->fwd_from_id, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" fwd_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,
+ };
+ print_ds_type_bare_int (DS->fwd_date, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" reply_to_msg_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,
+ };
+ print_ds_type_bare_int (DS->reply_to_msg_id, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" date :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" message :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->message, field9);
+ 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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_message_media (DS->media, field10);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (PTR2INT (var0) & (1 << 6)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" reply_markup :"); }
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_reply_markup (DS->reply_markup, field11);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int print_ds_constructor_message_service (struct tl_ds_message *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { 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,
+ };
+ print_ds_type_bare_int (DS->flags, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->from_id, field3);
+ 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,
+ };
+ print_ds_type_peer (DS->to_id, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field5);
+ 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 = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_message_action (DS->action, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_action_empty (struct tl_ds_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ eprintf (" messageActionEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_action_chat_create (struct tl_ds_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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,
+ };
+ print_ds_type_bare_string (DS->title, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_action_chat_edit_title (struct tl_ds_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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,
+ };
+ print_ds_type_bare_string (DS->title, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_action_chat_edit_photo (struct tl_ds_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_photo (DS->photo, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_action_chat_delete_photo (struct tl_ds_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ eprintf (" messageActionChatDeletePhoto");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_action_chat_add_user (struct tl_ds_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_action_chat_delete_user (struct tl_ds_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_action_geo_chat_create (struct tl_ds_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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,
+ };
+ print_ds_type_bare_string (DS->title, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->address, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_action_geo_chat_checkin (struct tl_ds_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ eprintf (" messageActionGeoChatCheckin");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_action_chat_joined_by_link (struct tl_ds_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ eprintf (" messageActionChatJoinedByLink");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" inviter_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,
+ };
+ print_ds_type_bare_int (DS->inviter_id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_media_empty (struct tl_ds_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ eprintf (" messageMediaEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_media_photo (struct tl_ds_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_photo (DS->photo, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" caption :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->caption, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_media_video (struct tl_ds_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_video (DS->video, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" caption :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->caption, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_media_geo (struct tl_ds_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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,
+ };
+ print_ds_type_geo_point (DS->geo, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_media_contact (struct tl_ds_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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,
+ };
+ print_ds_type_bare_string (DS->phone_number, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->first_name, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->last_name, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_media_unsupported (struct tl_ds_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ eprintf (" messageMediaUnsupported");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_media_document (struct tl_ds_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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,
+ };
+ print_ds_type_document (DS->document, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_media_audio (struct tl_ds_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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,
+ };
+ print_ds_type_audio (DS->audio, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_media_web_page (struct tl_ds_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ eprintf (" messageMediaWebPage");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" webpage :"); }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_web_page (DS->webpage, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_media_venue (struct tl_ds_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ eprintf (" messageMediaVenue");
+ 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,
+ };
+ print_ds_type_geo_point (DS->geo, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->title, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" 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,
+ };
+ print_ds_type_bare_string (DS->address, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" provider :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->provider, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" venue_id :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->venue_id, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_media_photo_l27 (struct tl_ds_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ eprintf (" messageMediaPhotoL27");
+ 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_photo (DS->photo, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_message_media_video_l27 (struct tl_ds_message_media *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ eprintf (" messageMediaVideoL27");
+ 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 = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_video (DS->video, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_messages_filter_empty (struct tl_ds_messages_filter *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ eprintf (" inputMessagesFilterEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_messages_filter_photos (struct tl_ds_messages_filter *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ eprintf (" inputMessagesFilterPhotos");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_messages_filter_video (struct tl_ds_messages_filter *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ eprintf (" inputMessagesFilterVideo");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_messages_filter_photo_video (struct tl_ds_messages_filter *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ eprintf (" inputMessagesFilterPhotoVideo");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_messages_filter_photo_video_documents (struct tl_ds_messages_filter *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ eprintf (" inputMessagesFilterPhotoVideoDocuments");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_messages_filter_document (struct tl_ds_messages_filter *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ eprintf (" inputMessagesFilterDocument");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_input_messages_filter_audio (struct tl_ds_messages_filter *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ eprintf (" inputMessagesFilterAudio");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_nearest_dc (struct tl_ds_nearest_dc *DS, 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,
+ };
+ print_ds_type_bare_string (DS->country, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->this_dc, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->nearest_dc, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_notify_peer (struct tl_ds_notify_peer *DS, 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,
+ };
+ print_ds_type_peer (DS->peer, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_notify_users (struct tl_ds_notify_peer *DS, 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 print_ds_constructor_notify_chats (struct tl_ds_notify_peer *DS, 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 print_ds_constructor_notify_all (struct tl_ds_notify_peer *DS, 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 print_ds_constructor_null (struct tl_ds_null *DS, 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 print_ds_constructor_p_q_inner_data (struct tl_ds_p_q_inner_data *DS, 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,
+ };
+ print_ds_type_bare_string (DS->pq, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->p, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->q, field3);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->nonce, field4);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->server_nonce, field5);
+ 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,
+ };
+ print_ds_type_bare_int256 (DS->new_nonce, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_p_q_inner_data_temp (struct tl_ds_p_q_inner_data *DS, 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,
+ };
+ print_ds_type_bare_string (DS->pq, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->p, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->q, field3);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->nonce, field4);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->server_nonce, field5);
+ 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,
+ };
+ print_ds_type_bare_int256 (DS->new_nonce, field6);
+ 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,
+ };
+ print_ds_type_bare_int (DS->expires_in, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_peer_user (struct tl_ds_peer *DS, 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_peer_chat (struct tl_ds_peer *DS, 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_peer_notify_events_empty (struct tl_ds_peer_notify_events *DS, 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 print_ds_constructor_peer_notify_events_all (struct tl_ds_peer_notify_events *DS, 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 print_ds_constructor_peer_notify_settings_empty (struct tl_ds_peer_notify_settings *DS, 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 print_ds_constructor_peer_notify_settings (struct tl_ds_peer_notify_settings *DS, 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,
+ };
+ print_ds_type_bare_int (DS->mute_until, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->sound, field2);
+ 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,
+ };
+ print_ds_type_bool (DS->show_previews, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->events_mask, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_photo_empty (struct tl_ds_photo *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_photo (struct tl_ds_photo *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" geo :"); }
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_geo_point (DS->geo, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" sizes :"); }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->sizes, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_photo_l27 (struct tl_ds_photo *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; }
+ eprintf (" photoL27");
+ 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field4);
+ 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,
+ };
+ print_ds_type_bare_string (DS->caption, field5);
+ 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,
+ };
+ print_ds_type_geo_point (DS->geo, field6);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->sizes, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_photo_size_empty (struct tl_ds_photo_size *DS, 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,
+ };
+ print_ds_type_bare_string (DS->type, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_photo_size (struct tl_ds_photo_size *DS, 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,
+ };
+ print_ds_type_bare_string (DS->type, field1);
+ 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,
+ };
+ print_ds_type_file_location (DS->location, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->w, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->h, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->size, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_photo_cached_size (struct tl_ds_photo_size *DS, 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,
+ };
+ print_ds_type_bare_string (DS->type, field1);
+ 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,
+ };
+ print_ds_type_file_location (DS->location, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->w, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->h, field4);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->bytes, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_privacy_key_status_timestamp (struct tl_ds_privacy_key *DS, 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 print_ds_constructor_privacy_value_allow_contacts (struct tl_ds_privacy_rule *DS, 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 print_ds_constructor_privacy_value_allow_all (struct tl_ds_privacy_rule *DS, 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 print_ds_constructor_privacy_value_allow_users (struct tl_ds_privacy_rule *DS, 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_privacy_value_disallow_contacts (struct tl_ds_privacy_rule *DS, 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 print_ds_constructor_privacy_value_disallow_all (struct tl_ds_privacy_rule *DS, 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 print_ds_constructor_privacy_value_disallow_users (struct tl_ds_privacy_rule *DS, 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_received_notify_message (struct tl_ds_received_notify_message *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { return -1; }
+ eprintf (" receivedNotifyMessage");
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->flags, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_reply_keyboard_hide (struct tl_ds_reply_markup *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; }
+ eprintf (" replyKeyboardHide");
+ 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,
+ };
+ print_ds_type_bare_int (DS->flags, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_reply_keyboard_force_reply (struct tl_ds_reply_markup *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; }
+ eprintf (" replyKeyboardForceReply");
+ 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,
+ };
+ print_ds_type_bare_int (DS->flags, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_reply_keyboard_markup (struct tl_ds_reply_markup *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; }
+ eprintf (" replyKeyboardMarkup");
+ 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,
+ };
+ print_ds_type_bare_int (DS->flags, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" rows :"); }
+ 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 = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->rows, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_res_p_q (struct tl_ds_res_p_q *DS, 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,
+ };
+ print_ds_type_bare_int128 (DS->nonce, field1);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->server_nonce, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->pq, field3);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->server_public_key_fingerprints, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_send_message_typing_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageTypingAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_send_message_cancel_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageCancelAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_send_message_record_video_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageRecordVideoAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_send_message_upload_video_action_l27 (struct tl_ds_send_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageUploadVideoActionL27");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_send_message_upload_video_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageUploadVideoAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" progress :"); }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->progress, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_send_message_record_audio_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageRecordAudioAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_send_message_upload_audio_action_l27 (struct tl_ds_send_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageUploadAudioActionL27");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_send_message_upload_audio_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageUploadAudioAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" progress :"); }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->progress, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_send_message_upload_photo_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageUploadPhotoAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" progress :"); }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->progress, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_send_message_upload_document_action_l27 (struct tl_ds_send_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageUploadDocumentActionL27");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_send_message_upload_document_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageUploadDocumentAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" progress :"); }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->progress, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_send_message_geo_location_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageGeoLocationAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_send_message_choose_contact_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ eprintf (" sendMessageChooseContactAction");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_server_d_h_params_fail (struct tl_ds_server_d_h_params *DS, 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,
+ };
+ print_ds_type_bare_int128 (DS->nonce, field1);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->server_nonce, field2);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->new_nonce_hash, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_server_d_h_params_ok (struct tl_ds_server_d_h_params *DS, 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,
+ };
+ print_ds_type_bare_int128 (DS->nonce, field1);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->server_nonce, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->encrypted_answer, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *DS, 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,
+ };
+ print_ds_type_bare_int128 (DS->nonce, field1);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->server_nonce, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->g, field3);
+ 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,
+ };
+ print_ds_type_bare_string (DS->dh_prime, field4);
+ 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,
+ };
+ print_ds_type_bare_string (DS->g_a, field5);
+ 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,
+ };
+ print_ds_type_bare_int (DS->server_time, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_dh_gen_ok (struct tl_ds_set_client_d_h_params_answer *DS, 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,
+ };
+ print_ds_type_bare_int128 (DS->nonce, field1);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->server_nonce, field2);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->new_nonce_hash1, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_dh_gen_retry (struct tl_ds_set_client_d_h_params_answer *DS, 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,
+ };
+ print_ds_type_bare_int128 (DS->nonce, field1);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->server_nonce, field2);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->new_nonce_hash2, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_dh_gen_fail (struct tl_ds_set_client_d_h_params_answer *DS, 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,
+ };
+ print_ds_type_bare_int128 (DS->nonce, field1);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->server_nonce, field2);
+ 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,
+ };
+ print_ds_type_bare_int128 (DS->new_nonce_hash3, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_sticker_pack (struct tl_ds_sticker_pack *DS, 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,
+ };
+ print_ds_type_bare_string (DS->emoticon, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->documents, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_sticker_set (struct tl_ds_sticker_set *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { return -1; }
+ eprintf (" stickerSet");
+ 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->title, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" short_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,
+ };
+ print_ds_type_bare_string (DS->short_name, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_string (struct tl_ds_string *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return -1; }
+ print_escaped_string (DS->data, DS->len);
+ return 0;
+}
+int print_ds_constructor_update_new_message (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_message (DS->message, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->pts, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_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,
+ };
+ print_ds_type_bare_int (DS->pts_count, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_message_i_d (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->random_id, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_delete_messages (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->messages, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->pts, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_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,
+ };
+ print_ds_type_bare_int (DS->pts_count, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_user_typing (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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 = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_send_message_action (DS->action, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_chat_user_typing (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field2);
+ 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 = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_send_message_action (DS->action, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_chat_participants (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_chat_participants (DS->participants, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_user_status (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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,
+ };
+ print_ds_type_user_status (DS->status, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_user_name (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->first_name, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->last_name, field3);
+ 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,
+ };
+ print_ds_type_bare_string (DS->username, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_user_photo (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field2);
+ 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,
+ };
+ print_ds_type_user_profile_photo (DS->photo, field3);
+ 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,
+ };
+ print_ds_type_bool (DS->previous, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_contact_registered (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_contact_link (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_contact_link (DS->my_link, field2);
+ 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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_contact_link (DS->foreign_link, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_new_authorization (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_long (DS->auth_key_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->device, field3);
+ 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,
+ };
+ print_ds_type_bare_string (DS->location, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_new_geo_chat_message (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateNewGeoChatMessage");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" geo_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,
+ };
+ print_ds_type_geo_chat_message (DS->geo_message, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_new_encrypted_message (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateNewEncryptedMessage");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" encr_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,
+ };
+ print_ds_type_encrypted_message (DS->encr_message, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->qts, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_encrypted_chat_typing (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_encryption (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateEncryption");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" encr_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,
+ };
+ print_ds_type_encrypted_chat (DS->encr_chat, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_encrypted_messages_read (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->max_date, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_chat_participant_add (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->inviter_id, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->version, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_chat_participant_delete (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->version, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_dc_options (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->dc_options, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_user_blocked (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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,
+ };
+ print_ds_type_bool (DS->blocked, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_notify_settings (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateNotifySettings");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" notify_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,
+ };
+ print_ds_type_notify_peer (DS->notify_peer, field1);
+ 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,
+ };
+ print_ds_type_peer_notify_settings (DS->notify_settings, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_service_notification (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_string (DS->type, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" message_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,
+ };
+ print_ds_type_bare_string (DS->message_text, field2);
+ 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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_message_media (DS->media, field3);
+ 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,
+ };
+ print_ds_type_bool (DS->popup, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_privacy (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_privacy_key (DS->key, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->rules, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_user_phone (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->phone, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_read_history_inbox (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateReadHistoryInbox");
+ 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,
+ };
+ print_ds_type_peer (DS->peer, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" max_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,
+ };
+ print_ds_type_bare_int (DS->max_id, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->pts, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_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,
+ };
+ print_ds_type_bare_int (DS->pts_count, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_read_history_outbox (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateReadHistoryOutbox");
+ 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,
+ };
+ print_ds_type_peer (DS->peer, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" max_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,
+ };
+ print_ds_type_bare_int (DS->max_id, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->pts, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_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,
+ };
+ print_ds_type_bare_int (DS->pts_count, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_web_page (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateWebPage");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" webpage :"); }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_web_page (DS->webpage, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_read_messages_contents (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateReadMessagesContents");
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->messages, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->pts, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_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,
+ };
+ print_ds_type_bare_int (DS->pts_count, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_msg_update (struct tl_ds_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ eprintf (" updateMsgUpdate");
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->pts, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_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,
+ };
+ print_ds_type_bare_int (DS->pts_count, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_updates_too_long (struct tl_ds_updates *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; }
+ eprintf (" updatesTooLong");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_update_short_message (struct tl_ds_updates *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; }
+ eprintf (" updateShortMessage");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ struct paramed_type *var0 = INT2PTR (*DS->flags);
+ eprintf (" %d", (int)PTR2INT (var0));
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field3);
+ 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,
+ };
+ print_ds_type_bare_string (DS->message, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->pts, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_count :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->pts_count, field6);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" fwd_from_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,
+ };
+ print_ds_type_bare_int (DS->fwd_from_id, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" fwd_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,
+ };
+ print_ds_type_bare_int (DS->fwd_date, field9);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" reply_to_msg_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,
+ };
+ print_ds_type_bare_int (DS->reply_to_msg_id, field10);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int print_ds_constructor_update_short_chat_message (struct tl_ds_updates *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; }
+ eprintf (" updateShortChatMessage");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ struct paramed_type *var0 = INT2PTR (*DS->flags);
+ eprintf (" %d", (int)PTR2INT (var0));
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->from_id, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" chat_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,
+ };
+ print_ds_type_bare_int (DS->chat_id, field4);
+ 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,
+ };
+ print_ds_type_bare_string (DS->message, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->pts, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_count :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->pts_count, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" date :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" fwd_from_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,
+ };
+ print_ds_type_bare_int (DS->fwd_from_id, field9);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" fwd_date :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->fwd_date, field10);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" reply_to_msg_id :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->reply_to_msg_id, field11);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int print_ds_constructor_update_short (struct tl_ds_updates *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_update (DS->update, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_updates_combined (struct tl_ds_updates *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->updates, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field2);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->chats, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->seq_start, field5);
+ 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,
+ };
+ print_ds_type_bare_int (DS->seq, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_updates (struct tl_ds_updates *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->updates, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field2);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->chats, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->seq, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_user_empty (struct tl_ds_user *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_user (struct tl_ds_user *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return -1; }
+ eprintf (" user");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ struct paramed_type *var0 = INT2PTR (*DS->flags);
+ eprintf (" %d", (int)PTR2INT (var0));
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (PTR2INT (var0) & (1 << 0)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" access_hash :"); }
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 1)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" first_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,
+ };
+ print_ds_type_bare_string (DS->first_name, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" last_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,
+ };
+ print_ds_type_bare_string (DS->last_name, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" username :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->username, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 4)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" phone :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->phone, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" photo :"); }
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_user_profile_photo (DS->photo, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" status :"); }
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_user_status (DS->status, field9);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 14)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" bot_info_version :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->bot_info_version, field10);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int print_ds_constructor_user_full (struct tl_ds_user_full *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_user (DS->user, field1);
+ 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 = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_contacts_link (DS->link, field2);
+ 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_photo (DS->profile_photo, field3);
+ 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,
+ };
+ print_ds_type_peer_notify_settings (DS->notify_settings, field4);
+ 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,
+ };
+ print_ds_type_bool (DS->blocked, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" bot_info :"); }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bot_info (DS->bot_info, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_user_profile_photo_empty (struct tl_ds_user_profile_photo *DS, 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 print_ds_constructor_user_profile_photo (struct tl_ds_user_profile_photo *DS, 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,
+ };
+ print_ds_type_bare_long (DS->photo_id, field1);
+ 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,
+ };
+ print_ds_type_file_location (DS->photo_small, field2);
+ 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,
+ };
+ print_ds_type_file_location (DS->photo_big, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_user_status_empty (struct tl_ds_user_status *DS, 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 print_ds_constructor_user_status_online (struct tl_ds_user_status *DS, 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,
+ };
+ print_ds_type_bare_int (DS->expires, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_user_status_offline (struct tl_ds_user_status *DS, 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,
+ };
+ print_ds_type_bare_int (DS->was_online, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_user_status_recently (struct tl_ds_user_status *DS, 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 print_ds_constructor_user_status_last_week (struct tl_ds_user_status *DS, 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 print_ds_constructor_user_status_last_month (struct tl_ds_user_status *DS, 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 print_ds_constructor_vector (struct tl_ds_vector *DS, 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 (); }
+ struct paramed_type *var1 = INT2PTR (*DS->f1);
+ eprintf (" %d", (int)PTR2INT (var1));
+ 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;}
+ {
+ int i = 0;
+ while (i < multiplicity3) {
+ if (multiline_output >= 1) { print_offset (); }
+ print_ds_type_any (DS->f2[i ++], field3);
+ 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 print_ds_constructor_video_empty (struct tl_ds_video *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_video (struct tl_ds_video *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->duration, field5);
+ 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,
+ };
+ print_ds_type_bare_int (DS->size, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" thumb :"); }
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_photo_size (DS->thumb, field7);
+ 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,
+ };
+ print_ds_type_bare_int (DS->dc_id, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" w :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->w, field9);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" h :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->h, field10);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_video_l27 (struct tl_ds_video *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; }
+ eprintf (" videoL27");
+ 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field4);
+ 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,
+ };
+ print_ds_type_bare_string (DS->caption, field5);
+ 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,
+ };
+ print_ds_type_bare_int (DS->duration, field6);
+ 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,
+ };
+ print_ds_type_bare_string (DS->mime_type, field7);
+ 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,
+ };
+ print_ds_type_bare_int (DS->size, field8);
+ 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,
+ };
+ print_ds_type_photo_size (DS->thumb, field9);
+ 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,
+ };
+ print_ds_type_bare_int (DS->dc_id, field10);
+ 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,
+ };
+ print_ds_type_bare_int (DS->w, field11);
+ 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,
+ };
+ print_ds_type_bare_int (DS->h, field12);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_wall_paper (struct tl_ds_wall_paper *DS, 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->title, field2);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->sizes, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->color, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_wall_paper_solid (struct tl_ds_wall_paper *DS, 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->title, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->bg_color, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->color, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_web_page_empty (struct tl_ds_web_page *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; }
+ eprintf (" webPageEmpty");
+ 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_web_page_pending (struct tl_ds_web_page *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; }
+ eprintf (" webPagePending");
+ 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,
+ };
+ print_ds_type_bare_long (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_web_page (struct tl_ds_web_page *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; }
+ eprintf (" webPage");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ struct paramed_type *var0 = INT2PTR (*DS->flags);
+ eprintf (" %d", (int)PTR2INT (var0));
+ 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 = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_long (DS->id, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->url, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" display_url :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->display_url, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (PTR2INT (var0) & (1 << 0)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" 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,
+ };
+ print_ds_type_bare_string (DS->type, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 1)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" site_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,
+ };
+ print_ds_type_bare_string (DS->site_name, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" title :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->title, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" description :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->description, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 4)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" photo :"); }
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_photo (DS->photo, field9);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" embed_url :"); }
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_string (DS->embed_url, field10);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" embed_type :"); }
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_string (DS->embed_type, field11);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" embed_width :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->embed_width, field12);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" embed_height :"); }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->embed_height, field13);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 7)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" duration :"); }
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->duration, field14);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 8)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" author :"); }
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_string (DS->author, field15);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int print_ds_constructor_account_authorizations (struct tl_ds_account_authorizations *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { 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 = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->authorizations, field1);
+ return 0;
+}
+int print_ds_constructor_account_no_password (struct tl_ds_account_password *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { 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,
+ };
+ print_ds_type_bare_bytes (DS->new_salt, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" email_unconfirmed_pattern :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->email_unconfirmed_pattern, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_account_password (struct tl_ds_account_password *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { 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,
+ };
+ print_ds_type_bare_bytes (DS->current_salt, field1);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->new_salt, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->hint, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" has_recovery :"); }
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bool (DS->has_recovery, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" email_unconfirmed_pattern :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->email_unconfirmed_pattern, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_account_password_input_settings (struct tl_ds_account_password_input_settings *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { return -1; }
+ eprintf (" account.passwordInputSettings");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ struct paramed_type *var0 = INT2PTR (*DS->flags);
+ eprintf (" %d", (int)PTR2INT (var0));
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->new_salt, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 0)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" new_password_hash :"); }
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->new_password_hash, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 0)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" hint :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->hint, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 1)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" email :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->email, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int print_ds_constructor_account_password_settings (struct tl_ds_account_password_settings *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { 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,
+ };
+ print_ds_type_bare_string (DS->email, field1);
+ return 0;
+}
+int print_ds_constructor_account_privacy_rules (struct tl_ds_account_privacy_rules *DS, 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->rules, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *DS, 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,
+ };
+ print_ds_type_bare_string (DS->phone_code_hash, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->send_call_timeout, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_auth_authorization (struct tl_ds_auth_authorization *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_user (DS->user, field1);
+ return 0;
+}
+int print_ds_constructor_auth_checked_phone (struct tl_ds_auth_checked_phone *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { 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,
+ };
+ print_ds_type_bool (DS->phone_registered, field1);
+ return 0;
+}
+int print_ds_constructor_auth_exported_authorization (struct tl_ds_auth_exported_authorization *DS, 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->bytes, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_auth_password_recovery (struct tl_ds_auth_password_recovery *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { 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,
+ };
+ print_ds_type_bare_string (DS->email_pattern, field1);
+ return 0;
+}
+int print_ds_constructor_auth_sent_code (struct tl_ds_auth_sent_code *DS, 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,
+ };
+ print_ds_type_bool (DS->phone_registered, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->phone_code_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->send_call_timeout, field3);
+ 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,
+ };
+ print_ds_type_bool (DS->is_password, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_auth_sent_app_code (struct tl_ds_auth_sent_code *DS, 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,
+ };
+ print_ds_type_bool (DS->phone_registered, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->phone_code_hash, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->send_call_timeout, field3);
+ 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,
+ };
+ print_ds_type_bool (DS->is_password, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_encr_key (struct tl_ds_binlog_encr_key *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return -1; }
+ int multiplicity1 = PTR2INT (
+ INT2PTR (64) );
+ struct paramed_type *field1 =
+ &(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;}
+ {
+ int i = 0;
+ while (i < multiplicity1) {
+ if (multiline_output >= 1) { print_offset (); }
+ print_ds_type_any (DS->key[i ++], field1);
+ if (multiline_output >= 1) { eprintf ("\n"); }
+ }
+ }
+ if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+ eprintf (" ]");
+ return 0;
+}
+int print_ds_constructor_binlog_start (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.start");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_dc_option (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.dcOption");
+ 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,
+ };
+ print_ds_type_bare_int (DS->dc, field1);
+ 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,
+ };
+ print_ds_type_bare_string (DS->name, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->ip, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->port, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_dc_option_new (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.dcOptionNew");
+ 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,
+ };
+ print_ds_type_bare_int (DS->flags, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" 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,
+ };
+ print_ds_type_bare_int (DS->dc, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->name, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" ip :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->ip, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" port :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->port, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_auth_key (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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,
+ };
+ print_ds_type_bare_int (DS->dc, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" key :"); }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_binlog_encr_key (DS->key, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_default_dc (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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,
+ };
+ print_ds_type_bare_int (DS->dc, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_dc_signed (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.dcSigned");
+ 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,
+ };
+ print_ds_type_bare_int (DS->dc, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_our_id (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_set_dh_params (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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,
+ };
+ print_ds_type_bare_int (DS->root, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" prime :"); }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_binlog_encr_key (DS->prime, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->version, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_set_pts (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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,
+ };
+ print_ds_type_bare_int (DS->pts, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_set_qts (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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,
+ };
+ print_ds_type_bare_int (DS->qts, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_set_date (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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,
+ };
+ print_ds_type_bare_int (DS->date, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_set_seq (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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,
+ };
+ print_ds_type_bare_int (DS->seq, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_encr_chat_delete (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_encr_chat_new (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.encrChatNew");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ struct paramed_type *var0 = INT2PTR (*DS->flags);
+ eprintf (" %d", (int)PTR2INT (var0));
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (PTR2INT (var0) & (1 << 17)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" access_hash :"); }
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" admin :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->admin, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" user_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,
+ };
+ print_ds_type_bare_int (DS->user_id, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ 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 = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_binlog_encr_key (DS->key, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" g_key :"); }
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_binlog_encr_key (DS->g_key, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" state :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->state, field9);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" ttl :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->ttl, field10);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" layer :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->layer, field11);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" in_seq_no :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->in_seq_no, field12);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" last_in_seq_no :"); }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->last_in_seq_no, field13);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" out_seq_no :"); }
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->out_seq_no, field14);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 27)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" key_fingerprint :"); }
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_long (DS->key_fingerprint, field15);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int print_ds_constructor_binlog_encr_chat_exchange_new (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.encrChatExchangeNew");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ struct paramed_type *var0 = INT2PTR (*DS->flags);
+ eprintf (" %d", (int)PTR2INT (var0));
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (PTR2INT (var0) & (1 << 17)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" exchange_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,
+ };
+ print_ds_type_bare_long (DS->exchange_id, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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 = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_binlog_encr_key (DS->key, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" state :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->state, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int print_ds_constructor_binlog_user_delete (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_user_new (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.userNew");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ struct paramed_type *var0 = INT2PTR (*DS->flags);
+ eprintf (" %d", (int)PTR2INT (var0));
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (PTR2INT (var0) & (1 << 17)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" access_hash :"); }
+ 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,
+ };
+ print_ds_type_bare_long (DS->access_hash, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" first_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,
+ };
+ print_ds_type_bare_string (DS->first_name, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" last_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,
+ };
+ print_ds_type_bare_string (DS->last_name, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ print_ds_type_bare_string (DS->phone, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" username :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->username, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" photo :"); }
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_photo (DS->photo, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" real_first_name :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->real_first_name, field9);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" real_last_name :"); }
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_string (DS->real_last_name, field10);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" user_photo :"); }
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_user_profile_photo (DS->user_photo, field11);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" last_read_in :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->last_read_in, field12);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" last_read_out :"); }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->last_read_out, field13);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" bot_info :"); }
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bot_info (DS->bot_info, field14);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int print_ds_constructor_binlog_chat_new (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.chatNew");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ struct paramed_type *var0 = INT2PTR (*DS->flags);
+ eprintf (" %d", (int)PTR2INT (var0));
+ 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,
+ };
+ print_ds_type_bare_int (DS->id, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ print_ds_type_bare_string (DS->title, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_num, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ print_ds_type_bare_int (DS->version, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" participants :"); }
+ 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 = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->participants, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" chat_photo :"); }
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_chat_photo (DS->chat_photo, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" photo :"); }
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_photo (DS->photo, field9);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" admin :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->admin, field10);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" last_read_in :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->last_read_in, field11);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" last_read_out :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->last_read_out, field12);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int print_ds_constructor_binlog_chat_add_participant (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->version, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" inviter_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,
+ };
+ print_ds_type_bare_int (DS->inviter_id, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_chat_del_participant (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->version, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->user_id, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_set_msg_id (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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,
+ };
+ print_ds_type_bare_long (DS->old_id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->new_id, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_message_delete (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.messageDelete");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" lid :"); }
+ 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,
+ };
+ print_ds_type_bare_long (DS->lid, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_message_new (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.messageNew");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ struct paramed_type *var0 = INT2PTR (*DS->flags);
+ eprintf (" %d", (int)PTR2INT (var0));
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" lid :"); }
+ 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,
+ };
+ print_ds_type_bare_long (DS->lid, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ print_ds_type_bare_int (DS->from_id, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" to_type :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->to_type, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" to_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,
+ };
+ print_ds_type_bare_int (DS->to_id, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ print_ds_type_bare_int (DS->fwd_from_id, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ print_ds_type_bare_int (DS->fwd_date, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" date :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" message :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->message, field9);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ 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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_message_media (DS->media, field10);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" action :"); }
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_message_action (DS->action, field11);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" reply_id :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->reply_id, field12);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" reply_markup :"); }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_reply_markup (DS->reply_markup, field13);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int print_ds_constructor_binlog_message_encr_new (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.messageEncrNew");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" flags :"); }
+ struct paramed_type *var0 = INT2PTR (*DS->flags);
+ eprintf (" %d", (int)PTR2INT (var0));
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" lid :"); }
+ 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,
+ };
+ print_ds_type_bare_long (DS->lid, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ print_ds_type_bare_int (DS->from_id, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" to_type :"); }
+ 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,
+ };
+ print_ds_type_bare_int (DS->to_type, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" to_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,
+ };
+ print_ds_type_bare_int (DS->to_id, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" message :"); }
+ 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,
+ };
+ print_ds_type_bare_string (DS->message, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" encr_media :"); }
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_decrypted_message_media (DS->encr_media, field8);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" encr_action :"); }
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_decrypted_message_action (DS->encr_action, field9);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" file :"); }
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_encrypted_file (DS->file, field10);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ }
+ return 0;
+}
+int print_ds_constructor_binlog_msg_update (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.msgUpdate");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" lid :"); }
+ 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,
+ };
+ print_ds_type_bare_long (DS->lid, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_binlog_reset_authorization (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ eprintf (" binlog.resetAuthorization");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_contacts_blocked (struct tl_ds_contacts_blocked *DS, 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->blocked, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_contacts_blocked_slice (struct tl_ds_contacts_blocked *DS, 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,
+ };
+ print_ds_type_bare_int (DS->count, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->blocked, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_contacts_contacts_not_modified (struct tl_ds_contacts_contacts *DS, 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 print_ds_constructor_contacts_contacts (struct tl_ds_contacts_contacts *DS, 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->contacts, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_contacts_found (struct tl_ds_contacts_found *DS, 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->results, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *DS, 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->imported, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->retry_contacts, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_contacts_link (struct tl_ds_contacts_link *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { 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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_contact_link (DS->my_link, field1);
+ 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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_contact_link (DS->foreign_link, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_user (DS->user, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_contacts_suggested (struct tl_ds_contacts_suggested *DS, 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->results, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_geochats_located (struct tl_ds_geochats_located *DS, 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->results, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->messages, field2);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->chats, field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_geochats_messages (struct tl_ds_geochats_messages *DS, 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->messages, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->chats, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_geochats_messages_slice (struct tl_ds_geochats_messages *DS, 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,
+ };
+ print_ds_type_bare_int (DS->count, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->messages, field2);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->chats, field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_geochats_stated_message (struct tl_ds_geochats_stated_message *DS, 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,
+ };
+ print_ds_type_geo_chat_message (DS->message, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->chats, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->seq, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_help_app_update (struct tl_ds_help_app_update *DS, 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bool (DS->critical, field2);
+ 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,
+ };
+ print_ds_type_bare_string (DS->url, field3);
+ 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,
+ };
+ print_ds_type_bare_string (DS->text, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_help_no_app_update (struct tl_ds_help_app_update *DS, 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 print_ds_constructor_help_invite_text (struct tl_ds_help_invite_text *DS, 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,
+ };
+ print_ds_type_bare_string (DS->message, field1);
+ return 0;
+}
+int print_ds_constructor_help_support (struct tl_ds_help_support *DS, 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,
+ };
+ print_ds_type_bare_string (DS->phone_number, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_user (DS->user, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_affected_history (struct tl_ds_messages_affected_history *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { 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,
+ };
+ print_ds_type_bare_int (DS->pts, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_count :"); }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->pts_count, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->offset, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_affected_messages (struct tl_ds_messages_affected_messages *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { return -1; }
+ eprintf (" messages.affectedMessages");
+ 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,
+ };
+ print_ds_type_bare_int (DS->pts, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_count :"); }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_bare_int (DS->pts_count, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_all_stickers_not_modified (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return -1; }
+ eprintf (" messages.allStickersNotModified");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_all_stickers (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { 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,
+ };
+ print_ds_type_bare_string (DS->hash, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->packs, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" sets :"); }
+ 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 = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->sets, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" documents :"); }
+ 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 = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->documents, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_chat_full (struct tl_ds_messages_chat_full *DS, 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 = 0x2e02a614, .id = "ChatFull", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_chat_full (DS->full_chat, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->chats, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_chats (struct tl_ds_messages_chats *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->chats, field1);
+ return 0;
+}
+int print_ds_constructor_messages_dh_config_not_modified (struct tl_ds_messages_dh_config *DS, 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,
+ };
+ print_ds_type_bare_bytes (DS->random, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_dh_config (struct tl_ds_messages_dh_config *DS, 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,
+ };
+ print_ds_type_bare_int (DS->g, field1);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->p, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->version, field3);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->random, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_dialogs (struct tl_ds_messages_dialogs *DS, 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 = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->dialogs, field1);
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->messages, field2);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->chats, field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_dialogs_slice (struct tl_ds_messages_dialogs *DS, 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,
+ };
+ print_ds_type_bare_int (DS->count, field1);
+ 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 = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->dialogs, field2);
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->messages, field3);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->chats, field4);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_message_empty (struct tl_ds_messages_message *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { return -1; }
+ eprintf (" messages.messageEmpty");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_messages (struct tl_ds_messages_messages *DS, 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->messages, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->chats, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_messages_slice (struct tl_ds_messages_messages *DS, 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,
+ };
+ print_ds_type_bare_int (DS->count, field1);
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->messages, field2);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->chats, field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *DS, 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,
+ };
+ print_ds_type_bare_int (DS->date, field1);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_sent_encrypted_file (struct tl_ds_messages_sent_encrypted_message *DS, 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,
+ };
+ print_ds_type_bare_int (DS->date, field1);
+ 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,
+ };
+ print_ds_type_encrypted_file (DS->file, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_sent_message (struct tl_ds_messages_sent_message *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field2);
+ 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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_message_media (DS->media, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->pts, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_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,
+ };
+ print_ds_type_bare_int (DS->pts_count, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_sent_message_link (struct tl_ds_messages_sent_message *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { 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,
+ };
+ print_ds_type_bare_int (DS->id, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field2);
+ 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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_message_media (DS->media, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->pts, field4);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" pts_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,
+ };
+ print_ds_type_bare_int (DS->pts_count, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" links :"); }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->links, field6);
+ 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,
+ };
+ print_ds_type_bare_int (DS->seq, field7);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_sticker_set (struct tl_ds_messages_sticker_set *DS, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return -1; }
+ eprintf (" messages.stickerSet");
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ if (multiline_output >= 2) { print_offset (); }
+ if (!disable_field_names) { eprintf (" set :"); }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_sticker_set (DS->set, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->packs, field2);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->documents, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_messages_stickers_not_modified (struct tl_ds_messages_stickers *DS, 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 print_ds_constructor_messages_stickers (struct tl_ds_messages_stickers *DS, 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,
+ };
+ print_ds_type_bare_string (DS->hash, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->stickers, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_photos_photo (struct tl_ds_photos_photo *DS, 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ print_ds_type_photo (DS->photo, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_photos_photos (struct tl_ds_photos_photos *DS, 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->photos, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_photos_photos_slice (struct tl_ds_photos_photos *DS, 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,
+ };
+ print_ds_type_bare_int (DS->count, field1);
+ 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->photos, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_storage_file_unknown (struct tl_ds_storage_file_type *DS, 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 print_ds_constructor_storage_file_jpeg (struct tl_ds_storage_file_type *DS, 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 print_ds_constructor_storage_file_gif (struct tl_ds_storage_file_type *DS, 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 print_ds_constructor_storage_file_png (struct tl_ds_storage_file_type *DS, 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 print_ds_constructor_storage_file_pdf (struct tl_ds_storage_file_type *DS, 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 print_ds_constructor_storage_file_mp3 (struct tl_ds_storage_file_type *DS, 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 print_ds_constructor_storage_file_mov (struct tl_ds_storage_file_type *DS, 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 print_ds_constructor_storage_file_partial (struct tl_ds_storage_file_type *DS, 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 print_ds_constructor_storage_file_mp4 (struct tl_ds_storage_file_type *DS, 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 print_ds_constructor_storage_file_webp (struct tl_ds_storage_file_type *DS, 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 print_ds_constructor_updates_difference_empty (struct tl_ds_updates_difference *DS, 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,
+ };
+ print_ds_type_bare_int (DS->date, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->seq, field2);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_updates_difference (struct tl_ds_updates_difference *DS, 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->new_messages, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->new_encrypted_messages, field2);
+ 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->other_updates, field3);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->chats, field4);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field5);
+ 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,
+ };
+ print_ds_type_updates_state (DS->state, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_updates_difference_slice (struct tl_ds_updates_difference *DS, 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->new_messages, field1);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->new_encrypted_messages, field2);
+ 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->other_updates, field3);
+ 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,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->chats, field4);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ print_ds_type_vector ((void *)DS->users, field5);
+ 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,
+ };
+ print_ds_type_updates_state (DS->intermediate_state, field6);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_updates_state (struct tl_ds_updates_state *DS, 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,
+ };
+ print_ds_type_bare_int (DS->pts, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->qts, field2);
+ 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,
+ };
+ print_ds_type_bare_int (DS->date, field3);
+ 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,
+ };
+ print_ds_type_bare_int (DS->seq, field4);
+ 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,
+ };
+ print_ds_type_bare_int (DS->unread_count, field5);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_constructor_upload_file (struct tl_ds_upload_file *DS, 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,
+ };
+ print_ds_type_storage_file_type (DS->type, field1);
+ 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,
+ };
+ print_ds_type_bare_int (DS->mtime, field2);
+ 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,
+ };
+ print_ds_type_bare_bytes (DS->bytes, field3);
+ if (multiline_output >= 2) { eprintf ("\n"); }
+ return 0;
+}
+int print_ds_type_account_days_t_t_l (struct tl_ds_account_days_t_t_l *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_account_days_t_t_l (DS, T);
+ return res;
+}
+int print_ds_type_bare_account_days_t_t_l (struct tl_ds_account_days_t_t_l *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_account_days_t_t_l (DS, T);
+ return res;
+}
+int print_ds_type_audio (struct tl_ds_audio *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x586988d8: res = print_ds_constructor_audio_empty (DS, T); break;
+ case 0xc7ac6496: res = print_ds_constructor_audio (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_audio (struct tl_ds_audio *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x586988d8: res = print_ds_constructor_audio_empty (DS, T); break;
+ case 0xc7ac6496: res = print_ds_constructor_audio (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_authorization (struct tl_ds_authorization *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_authorization (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_authorization (struct tl_ds_authorization *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_authorization (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bool (struct tl_ds_bool *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xbc799737: res = print_ds_constructor_bool_false (DS, T); break;
+ case 0x997275b5: res = print_ds_constructor_bool_true (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_bool (struct tl_ds_bool *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xbc799737: res = print_ds_constructor_bool_false (DS, T); break;
+ case 0x997275b5: res = print_ds_constructor_bool_true (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bot_command (struct tl_ds_bot_command *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xc27ac8c7: res = print_ds_constructor_bot_command (DS, T); break;
+ case 0xb79d22ab: res = print_ds_constructor_bot_command_old (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_bot_command (struct tl_ds_bot_command *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xc27ac8c7: res = print_ds_constructor_bot_command (DS, T); break;
+ case 0xb79d22ab: res = print_ds_constructor_bot_command_old (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bot_info (struct tl_ds_bot_info *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xbb2e37ce: res = print_ds_constructor_bot_info_empty (DS, T); break;
+ case 0x09cf585d: res = print_ds_constructor_bot_info (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_bot_info (struct tl_ds_bot_info *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xbb2e37ce: res = print_ds_constructor_bot_info_empty (DS, T); break;
+ case 0x09cf585d: res = print_ds_constructor_bot_info (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bytes (struct tl_ds_string *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_bytes (DS, T);
+ return res;
+}
+int print_ds_type_bare_bytes (struct tl_ds_string *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_bytes (DS, T);
+ return res;
+}
+int print_ds_type_chat (struct tl_ds_chat *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x9ba2d800: res = print_ds_constructor_chat_empty (DS, T); break;
+ case 0x6e9c9bc7: res = print_ds_constructor_chat (DS, T); break;
+ case 0xfb0ccc41: res = print_ds_constructor_chat_forbidden (DS, T); break;
+ case 0x75eaea5a: res = print_ds_constructor_geo_chat (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_chat (struct tl_ds_chat *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x9ba2d800: res = print_ds_constructor_chat_empty (DS, T); break;
+ case 0x6e9c9bc7: res = print_ds_constructor_chat (DS, T); break;
+ case 0xfb0ccc41: res = print_ds_constructor_chat_forbidden (DS, T); break;
+ case 0x75eaea5a: res = print_ds_constructor_geo_chat (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_chat_full (struct tl_ds_chat_full *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_chat_full (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_chat_full (struct tl_ds_chat_full *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_chat_full (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_chat_invite (struct tl_ds_chat_invite *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x5a686d7c: res = print_ds_constructor_chat_invite_already (DS, T); break;
+ case 0xce917dcd: res = print_ds_constructor_chat_invite (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_chat_invite (struct tl_ds_chat_invite *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x5a686d7c: res = print_ds_constructor_chat_invite_already (DS, T); break;
+ case 0xce917dcd: res = print_ds_constructor_chat_invite (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_chat_located (struct tl_ds_chat_located *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_chat_located (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_chat_located (struct tl_ds_chat_located *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_chat_located (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_chat_participant (struct tl_ds_chat_participant *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_chat_participant (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_chat_participant (struct tl_ds_chat_participant *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_chat_participant (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_chat_participants (struct tl_ds_chat_participants *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x0fd2bb8a: res = print_ds_constructor_chat_participants_forbidden (DS, T); break;
+ case 0x7841b415: res = print_ds_constructor_chat_participants (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_chat_participants (struct tl_ds_chat_participants *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x0fd2bb8a: res = print_ds_constructor_chat_participants_forbidden (DS, T); break;
+ case 0x7841b415: res = print_ds_constructor_chat_participants (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_chat_photo (struct tl_ds_chat_photo *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x37c1011c: res = print_ds_constructor_chat_photo_empty (DS, T); break;
+ case 0x6153276a: res = print_ds_constructor_chat_photo (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_chat_photo (struct tl_ds_chat_photo *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x37c1011c: res = print_ds_constructor_chat_photo_empty (DS, T); break;
+ case 0x6153276a: res = print_ds_constructor_chat_photo (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_client_d_h_inner_data (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_client_d_h_inner_data (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_config (struct tl_ds_config *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_config (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_config (struct tl_ds_config *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_config (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_contact (struct tl_ds_contact *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contact (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_contact (struct tl_ds_contact *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contact (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_contact_blocked (struct tl_ds_contact_blocked *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contact_blocked (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_contact_blocked (struct tl_ds_contact_blocked *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contact_blocked (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_contact_found (struct tl_ds_contact_found *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_contact_found (DS, T);
+ return res;
+}
+int print_ds_type_bare_contact_found (struct tl_ds_contact_found *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_contact_found (DS, T);
+ return res;
+}
+int print_ds_type_contact_link (struct tl_ds_contact_link *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x5f4f9247: res = print_ds_constructor_contact_link_unknown (DS, T); break;
+ case 0xfeedd3ad: res = print_ds_constructor_contact_link_none (DS, T); break;
+ case 0x268f3f59: res = print_ds_constructor_contact_link_has_phone (DS, T); break;
+ case 0xd502c2d0: res = print_ds_constructor_contact_link_contact (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_contact_link (struct tl_ds_contact_link *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x5f4f9247: res = print_ds_constructor_contact_link_unknown (DS, T); break;
+ case 0xfeedd3ad: res = print_ds_constructor_contact_link_none (DS, T); break;
+ case 0x268f3f59: res = print_ds_constructor_contact_link_has_phone (DS, T); break;
+ case 0xd502c2d0: res = print_ds_constructor_contact_link_contact (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_contact_status (struct tl_ds_contact_status *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contact_status (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_contact_status (struct tl_ds_contact_status *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contact_status (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_contact_suggested (struct tl_ds_contact_suggested *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contact_suggested (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_contact_suggested (struct tl_ds_contact_suggested *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contact_suggested (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_dc_option (struct tl_ds_dc_option *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x2ec2a43c: res = print_ds_constructor_dc_option_l28 (DS, T); break;
+ case 0x05d8c6cc: res = print_ds_constructor_dc_option (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_dc_option (struct tl_ds_dc_option *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x2ec2a43c: res = print_ds_constructor_dc_option_l28 (DS, T); break;
+ case 0x05d8c6cc: res = print_ds_constructor_dc_option (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_decrypted_message (struct tl_ds_decrypted_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x204d3878: res = print_ds_constructor_decrypted_message (DS, T); break;
+ case 0x73164160: res = print_ds_constructor_decrypted_message_service (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_decrypted_message (struct tl_ds_decrypted_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x204d3878: res = print_ds_constructor_decrypted_message (DS, T); break;
+ case 0x73164160: res = print_ds_constructor_decrypted_message_service (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_decrypted_message_action (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xa1733aec: res = print_ds_constructor_decrypted_message_action_set_message_t_t_l (DS, T); break;
+ case 0x0c4f40be: res = print_ds_constructor_decrypted_message_action_read_messages (DS, T); break;
+ case 0x65614304: res = print_ds_constructor_decrypted_message_action_delete_messages (DS, T); break;
+ case 0x8ac1f475: res = print_ds_constructor_decrypted_message_action_screenshot_messages (DS, T); break;
+ case 0x6719e45c: res = print_ds_constructor_decrypted_message_action_flush_history (DS, T); break;
+ case 0x511110b0: res = print_ds_constructor_decrypted_message_action_resend (DS, T); break;
+ case 0xf3048883: res = print_ds_constructor_decrypted_message_action_notify_layer (DS, T); break;
+ case 0xccb27641: res = print_ds_constructor_decrypted_message_action_typing (DS, T); break;
+ case 0xf3c9611b: res = print_ds_constructor_decrypted_message_action_request_key (DS, T); break;
+ case 0x6fe1735b: res = print_ds_constructor_decrypted_message_action_accept_key (DS, T); break;
+ case 0xdd05ec6b: res = print_ds_constructor_decrypted_message_action_abort_key (DS, T); break;
+ case 0xec2e0b9b: res = print_ds_constructor_decrypted_message_action_commit_key (DS, T); break;
+ case 0xa82fdd63: res = print_ds_constructor_decrypted_message_action_noop (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_decrypted_message_action (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xa1733aec: res = print_ds_constructor_decrypted_message_action_set_message_t_t_l (DS, T); break;
+ case 0x0c4f40be: res = print_ds_constructor_decrypted_message_action_read_messages (DS, T); break;
+ case 0x65614304: res = print_ds_constructor_decrypted_message_action_delete_messages (DS, T); break;
+ case 0x8ac1f475: res = print_ds_constructor_decrypted_message_action_screenshot_messages (DS, T); break;
+ case 0x6719e45c: res = print_ds_constructor_decrypted_message_action_flush_history (DS, T); break;
+ case 0x511110b0: res = print_ds_constructor_decrypted_message_action_resend (DS, T); break;
+ case 0xf3048883: res = print_ds_constructor_decrypted_message_action_notify_layer (DS, T); break;
+ case 0xccb27641: res = print_ds_constructor_decrypted_message_action_typing (DS, T); break;
+ case 0xf3c9611b: res = print_ds_constructor_decrypted_message_action_request_key (DS, T); break;
+ case 0x6fe1735b: res = print_ds_constructor_decrypted_message_action_accept_key (DS, T); break;
+ case 0xdd05ec6b: res = print_ds_constructor_decrypted_message_action_abort_key (DS, T); break;
+ case 0xec2e0b9b: res = print_ds_constructor_decrypted_message_action_commit_key (DS, T); break;
+ case 0xa82fdd63: res = print_ds_constructor_decrypted_message_action_noop (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_decrypted_message_layer (struct tl_ds_decrypted_message_layer *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_decrypted_message_layer (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_decrypted_message_layer (struct tl_ds_decrypted_message_layer *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_decrypted_message_layer (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_decrypted_message_media (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x089f5c4a: res = print_ds_constructor_decrypted_message_media_empty (DS, T); break;
+ case 0x32798a8c: res = print_ds_constructor_decrypted_message_media_photo (DS, T); break;
+ case 0x35480a59: res = print_ds_constructor_decrypted_message_media_geo_point (DS, T); break;
+ case 0x588a0a97: res = print_ds_constructor_decrypted_message_media_contact (DS, T); break;
+ case 0xb095434b: res = print_ds_constructor_decrypted_message_media_document (DS, T); break;
+ case 0x524a415d: res = print_ds_constructor_decrypted_message_media_video (DS, T); break;
+ case 0x57e0a9cb: res = print_ds_constructor_decrypted_message_media_audio (DS, T); break;
+ case 0xfa95b0dd: res = print_ds_constructor_decrypted_message_media_external_document (DS, T); break;
+ case 0x4cee6ef3: res = print_ds_constructor_decrypted_message_media_video_l12 (DS, T); break;
+ case 0x6080758f: res = print_ds_constructor_decrypted_message_media_audio_l12 (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_decrypted_message_media (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x089f5c4a: res = print_ds_constructor_decrypted_message_media_empty (DS, T); break;
+ case 0x32798a8c: res = print_ds_constructor_decrypted_message_media_photo (DS, T); break;
+ case 0x35480a59: res = print_ds_constructor_decrypted_message_media_geo_point (DS, T); break;
+ case 0x588a0a97: res = print_ds_constructor_decrypted_message_media_contact (DS, T); break;
+ case 0xb095434b: res = print_ds_constructor_decrypted_message_media_document (DS, T); break;
+ case 0x524a415d: res = print_ds_constructor_decrypted_message_media_video (DS, T); break;
+ case 0x57e0a9cb: res = print_ds_constructor_decrypted_message_media_audio (DS, T); break;
+ case 0xfa95b0dd: res = print_ds_constructor_decrypted_message_media_external_document (DS, T); break;
+ case 0x4cee6ef3: res = print_ds_constructor_decrypted_message_media_video_l12 (DS, T); break;
+ case 0x6080758f: res = print_ds_constructor_decrypted_message_media_audio_l12 (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_dialog (struct tl_ds_dialog *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_dialog (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_dialog (struct tl_ds_dialog *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_dialog (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_disabled_feature (struct tl_ds_disabled_feature *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_disabled_feature (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_disabled_feature (struct tl_ds_disabled_feature *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_disabled_feature (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_document (struct tl_ds_document *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x36f8c871: res = print_ds_constructor_document_empty (DS, T); break;
+ case 0xf9a39f4f: res = print_ds_constructor_document (DS, T); break;
+ case 0x9efc6326: res = print_ds_constructor_document_l19 (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_document (struct tl_ds_document *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x36f8c871: res = print_ds_constructor_document_empty (DS, T); break;
+ case 0xf9a39f4f: res = print_ds_constructor_document (DS, T); break;
+ case 0x9efc6326: res = print_ds_constructor_document_l19 (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_document_attribute (struct tl_ds_document_attribute *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x6c37c15c: res = print_ds_constructor_document_attribute_image_size (DS, T); break;
+ case 0x11b58939: res = print_ds_constructor_document_attribute_animated (DS, T); break;
+ case 0x994c9882: res = print_ds_constructor_document_attribute_sticker_l28 (DS, T); break;
+ case 0x3a556302: res = print_ds_constructor_document_attribute_sticker (DS, T); break;
+ case 0x5910cccb: res = print_ds_constructor_document_attribute_video (DS, T); break;
+ case 0x051448e5: res = print_ds_constructor_document_attribute_audio (DS, T); break;
+ case 0x15590068: res = print_ds_constructor_document_attribute_filename (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_document_attribute (struct tl_ds_document_attribute *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x6c37c15c: res = print_ds_constructor_document_attribute_image_size (DS, T); break;
+ case 0x11b58939: res = print_ds_constructor_document_attribute_animated (DS, T); break;
+ case 0x994c9882: res = print_ds_constructor_document_attribute_sticker_l28 (DS, T); break;
+ case 0x3a556302: res = print_ds_constructor_document_attribute_sticker (DS, T); break;
+ case 0x5910cccb: res = print_ds_constructor_document_attribute_video (DS, T); break;
+ case 0x051448e5: res = print_ds_constructor_document_attribute_audio (DS, T); break;
+ case 0x15590068: res = print_ds_constructor_document_attribute_filename (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_double (double *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_double (DS, T);
+ return res;
+}
+int print_ds_type_bare_double (double *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_double (DS, T);
+ return res;
+}
+int print_ds_type_encrypted_chat (struct tl_ds_encrypted_chat *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xab7ec0a0: res = print_ds_constructor_encrypted_chat_empty (DS, T); break;
+ case 0x3bf703dc: res = print_ds_constructor_encrypted_chat_waiting (DS, T); break;
+ case 0xc878527e: res = print_ds_constructor_encrypted_chat_requested (DS, T); break;
+ case 0xfa56ce36: res = print_ds_constructor_encrypted_chat (DS, T); break;
+ case 0x13d6dd27: res = print_ds_constructor_encrypted_chat_discarded (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_encrypted_chat (struct tl_ds_encrypted_chat *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xab7ec0a0: res = print_ds_constructor_encrypted_chat_empty (DS, T); break;
+ case 0x3bf703dc: res = print_ds_constructor_encrypted_chat_waiting (DS, T); break;
+ case 0xc878527e: res = print_ds_constructor_encrypted_chat_requested (DS, T); break;
+ case 0xfa56ce36: res = print_ds_constructor_encrypted_chat (DS, T); break;
+ case 0x13d6dd27: res = print_ds_constructor_encrypted_chat_discarded (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_encrypted_file (struct tl_ds_encrypted_file *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xc21f497e: res = print_ds_constructor_encrypted_file_empty (DS, T); break;
+ case 0x4a70994c: res = print_ds_constructor_encrypted_file (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_encrypted_file (struct tl_ds_encrypted_file *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xc21f497e: res = print_ds_constructor_encrypted_file_empty (DS, T); break;
+ case 0x4a70994c: res = print_ds_constructor_encrypted_file (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_encrypted_message (struct tl_ds_encrypted_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xed18c118: res = print_ds_constructor_encrypted_message (DS, T); break;
+ case 0x23734b06: res = print_ds_constructor_encrypted_message_service (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_encrypted_message (struct tl_ds_encrypted_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xed18c118: res = print_ds_constructor_encrypted_message (DS, T); break;
+ case 0x23734b06: res = print_ds_constructor_encrypted_message_service (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_error (struct tl_ds_error *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_error (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_error (struct tl_ds_error *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_error (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_exported_chat_invite (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x69df3769: res = print_ds_constructor_chat_invite_empty (DS, T); break;
+ case 0xfc2e05bc: res = print_ds_constructor_chat_invite_exported (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_exported_chat_invite (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x69df3769: res = print_ds_constructor_chat_invite_empty (DS, T); break;
+ case 0xfc2e05bc: res = print_ds_constructor_chat_invite_exported (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_file_location (struct tl_ds_file_location *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x7c596b46: res = print_ds_constructor_file_location_unavailable (DS, T); break;
+ case 0x53d69076: res = print_ds_constructor_file_location (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_file_location (struct tl_ds_file_location *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x7c596b46: res = print_ds_constructor_file_location_unavailable (DS, T); break;
+ case 0x53d69076: res = print_ds_constructor_file_location (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_geo_chat_message (struct tl_ds_geo_chat_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x60311a9b: res = print_ds_constructor_geo_chat_message_empty (DS, T); break;
+ case 0x4505f8e1: res = print_ds_constructor_geo_chat_message (DS, T); break;
+ case 0xd34fa24e: res = print_ds_constructor_geo_chat_message_service (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_geo_chat_message (struct tl_ds_geo_chat_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x60311a9b: res = print_ds_constructor_geo_chat_message_empty (DS, T); break;
+ case 0x4505f8e1: res = print_ds_constructor_geo_chat_message (DS, T); break;
+ case 0xd34fa24e: res = print_ds_constructor_geo_chat_message_service (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_geo_point (struct tl_ds_geo_point *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x1117dd5f: res = print_ds_constructor_geo_point_empty (DS, T); break;
+ case 0x2049d70c: res = print_ds_constructor_geo_point (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_geo_point (struct tl_ds_geo_point *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x1117dd5f: res = print_ds_constructor_geo_point_empty (DS, T); break;
+ case 0x2049d70c: res = print_ds_constructor_geo_point (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_imported_contact (struct tl_ds_imported_contact *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_imported_contact (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_imported_contact (struct tl_ds_imported_contact *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_imported_contact (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_app_event (struct tl_ds_input_app_event *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_input_app_event (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_app_event (struct tl_ds_input_app_event *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_input_app_event (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_audio (struct tl_ds_input_audio *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xd95adc84: res = print_ds_constructor_input_audio_empty (DS, T); break;
+ case 0x77d440ff: res = print_ds_constructor_input_audio (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_audio (struct tl_ds_input_audio *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xd95adc84: res = print_ds_constructor_input_audio_empty (DS, T); break;
+ case 0x77d440ff: res = print_ds_constructor_input_audio (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_chat_photo (struct tl_ds_input_chat_photo *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x1ca48f57: res = print_ds_constructor_input_chat_photo_empty (DS, T); break;
+ case 0x94254732: res = print_ds_constructor_input_chat_uploaded_photo (DS, T); break;
+ case 0xb2e1bf08: res = print_ds_constructor_input_chat_photo (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_chat_photo (struct tl_ds_input_chat_photo *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x1ca48f57: res = print_ds_constructor_input_chat_photo_empty (DS, T); break;
+ case 0x94254732: res = print_ds_constructor_input_chat_uploaded_photo (DS, T); break;
+ case 0xb2e1bf08: res = print_ds_constructor_input_chat_photo (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_contact (struct tl_ds_input_contact *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_input_phone_contact (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_contact (struct tl_ds_input_contact *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_input_phone_contact (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_document (struct tl_ds_input_document *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x72f0eaae: res = print_ds_constructor_input_document_empty (DS, T); break;
+ case 0x18798952: res = print_ds_constructor_input_document (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_document (struct tl_ds_input_document *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x72f0eaae: res = print_ds_constructor_input_document_empty (DS, T); break;
+ case 0x18798952: res = print_ds_constructor_input_document (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_encrypted_chat (struct tl_ds_input_encrypted_chat *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_input_encrypted_chat (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_encrypted_chat (struct tl_ds_input_encrypted_chat *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_input_encrypted_chat (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_encrypted_file (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x1837c364: res = print_ds_constructor_input_encrypted_file_empty (DS, T); break;
+ case 0x64bd0306: res = print_ds_constructor_input_encrypted_file_uploaded (DS, T); break;
+ case 0x5a17b5e5: res = print_ds_constructor_input_encrypted_file (DS, T); break;
+ case 0x2dc173c8: res = print_ds_constructor_input_encrypted_file_big_uploaded (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_encrypted_file (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x1837c364: res = print_ds_constructor_input_encrypted_file_empty (DS, T); break;
+ case 0x64bd0306: res = print_ds_constructor_input_encrypted_file_uploaded (DS, T); break;
+ case 0x5a17b5e5: res = print_ds_constructor_input_encrypted_file (DS, T); break;
+ case 0x2dc173c8: res = print_ds_constructor_input_encrypted_file_big_uploaded (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_file (struct tl_ds_input_file *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xf52ff27f: res = print_ds_constructor_input_file (DS, T); break;
+ case 0xfa4f0bb5: res = print_ds_constructor_input_file_big (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_file (struct tl_ds_input_file *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xf52ff27f: res = print_ds_constructor_input_file (DS, T); break;
+ case 0xfa4f0bb5: res = print_ds_constructor_input_file_big (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x14637196: res = print_ds_constructor_input_file_location (DS, T); break;
+ case 0x3d0364ec: res = print_ds_constructor_input_video_file_location (DS, T); break;
+ case 0xf5235d55: res = print_ds_constructor_input_encrypted_file_location (DS, T); break;
+ case 0x74dc404d: res = print_ds_constructor_input_audio_file_location (DS, T); break;
+ case 0x4e45abe9: res = print_ds_constructor_input_document_file_location (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x14637196: res = print_ds_constructor_input_file_location (DS, T); break;
+ case 0x3d0364ec: res = print_ds_constructor_input_video_file_location (DS, T); break;
+ case 0xf5235d55: res = print_ds_constructor_input_encrypted_file_location (DS, T); break;
+ case 0x74dc404d: res = print_ds_constructor_input_audio_file_location (DS, T); break;
+ case 0x4e45abe9: res = print_ds_constructor_input_document_file_location (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_geo_chat (struct tl_ds_input_geo_chat *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_input_geo_chat (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_geo_chat (struct tl_ds_input_geo_chat *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_input_geo_chat (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_geo_point (struct tl_ds_input_geo_point *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xe4c123d6: res = print_ds_constructor_input_geo_point_empty (DS, T); break;
+ case 0xf3b7acc9: res = print_ds_constructor_input_geo_point (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_geo_point (struct tl_ds_input_geo_point *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xe4c123d6: res = print_ds_constructor_input_geo_point_empty (DS, T); break;
+ case 0xf3b7acc9: res = print_ds_constructor_input_geo_point (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_media (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x9664f57f: res = print_ds_constructor_input_media_empty (DS, T); break;
+ case 0xf7aff1c0: res = print_ds_constructor_input_media_uploaded_photo (DS, T); break;
+ case 0xe9bfb4f3: res = print_ds_constructor_input_media_photo (DS, T); break;
+ case 0xf9c44144: res = print_ds_constructor_input_media_geo_point (DS, T); break;
+ case 0xa6e45987: res = print_ds_constructor_input_media_contact (DS, T); break;
+ case 0xe13fd4bc: res = print_ds_constructor_input_media_uploaded_video (DS, T); break;
+ case 0x96fb97dc: res = print_ds_constructor_input_media_uploaded_thumb_video (DS, T); break;
+ case 0x936a4ebd: res = print_ds_constructor_input_media_video (DS, T); break;
+ case 0x4e498cab: res = print_ds_constructor_input_media_uploaded_audio (DS, T); break;
+ case 0x89938781: res = print_ds_constructor_input_media_audio (DS, T); break;
+ case 0xffe76b78: res = print_ds_constructor_input_media_uploaded_document (DS, T); break;
+ case 0x41481486: res = print_ds_constructor_input_media_uploaded_thumb_document (DS, T); break;
+ case 0xd184e841: res = print_ds_constructor_input_media_document (DS, T); break;
+ case 0x2827a81a: res = print_ds_constructor_input_media_venue (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_media (struct tl_ds_input_media *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x9664f57f: res = print_ds_constructor_input_media_empty (DS, T); break;
+ case 0xf7aff1c0: res = print_ds_constructor_input_media_uploaded_photo (DS, T); break;
+ case 0xe9bfb4f3: res = print_ds_constructor_input_media_photo (DS, T); break;
+ case 0xf9c44144: res = print_ds_constructor_input_media_geo_point (DS, T); break;
+ case 0xa6e45987: res = print_ds_constructor_input_media_contact (DS, T); break;
+ case 0xe13fd4bc: res = print_ds_constructor_input_media_uploaded_video (DS, T); break;
+ case 0x96fb97dc: res = print_ds_constructor_input_media_uploaded_thumb_video (DS, T); break;
+ case 0x936a4ebd: res = print_ds_constructor_input_media_video (DS, T); break;
+ case 0x4e498cab: res = print_ds_constructor_input_media_uploaded_audio (DS, T); break;
+ case 0x89938781: res = print_ds_constructor_input_media_audio (DS, T); break;
+ case 0xffe76b78: res = print_ds_constructor_input_media_uploaded_document (DS, T); break;
+ case 0x41481486: res = print_ds_constructor_input_media_uploaded_thumb_document (DS, T); break;
+ case 0xd184e841: res = print_ds_constructor_input_media_document (DS, T); break;
+ case 0x2827a81a: res = print_ds_constructor_input_media_venue (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_notify_peer (struct tl_ds_input_notify_peer *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xb8bc5b0c: res = print_ds_constructor_input_notify_peer (DS, T); break;
+ case 0x193b4417: res = print_ds_constructor_input_notify_users (DS, T); break;
+ case 0x4a95e84e: res = print_ds_constructor_input_notify_chats (DS, T); break;
+ case 0xa429b886: res = print_ds_constructor_input_notify_all (DS, T); break;
+ case 0x4d8ddec8: res = print_ds_constructor_input_notify_geo_chat_peer (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_notify_peer (struct tl_ds_input_notify_peer *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xb8bc5b0c: res = print_ds_constructor_input_notify_peer (DS, T); break;
+ case 0x193b4417: res = print_ds_constructor_input_notify_users (DS, T); break;
+ case 0x4a95e84e: res = print_ds_constructor_input_notify_chats (DS, T); break;
+ case 0xa429b886: res = print_ds_constructor_input_notify_all (DS, T); break;
+ case 0x4d8ddec8: res = print_ds_constructor_input_notify_geo_chat_peer (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_peer (struct tl_ds_input_peer *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x7f3b18ea: res = print_ds_constructor_input_peer_empty (DS, T); break;
+ case 0x7da07ec9: res = print_ds_constructor_input_peer_self (DS, T); break;
+ case 0x1023dbe8: res = print_ds_constructor_input_peer_contact (DS, T); break;
+ case 0x9b447325: res = print_ds_constructor_input_peer_foreign (DS, T); break;
+ case 0x179be863: res = print_ds_constructor_input_peer_chat (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_peer (struct tl_ds_input_peer *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x7f3b18ea: res = print_ds_constructor_input_peer_empty (DS, T); break;
+ case 0x7da07ec9: res = print_ds_constructor_input_peer_self (DS, T); break;
+ case 0x1023dbe8: res = print_ds_constructor_input_peer_contact (DS, T); break;
+ case 0x9b447325: res = print_ds_constructor_input_peer_foreign (DS, T); break;
+ case 0x179be863: res = print_ds_constructor_input_peer_chat (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_peer_notify_events (struct tl_ds_input_peer_notify_events *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xf03064d8: res = print_ds_constructor_input_peer_notify_events_empty (DS, T); break;
+ case 0xe86a2c74: res = print_ds_constructor_input_peer_notify_events_all (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_peer_notify_events (struct tl_ds_input_peer_notify_events *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xf03064d8: res = print_ds_constructor_input_peer_notify_events_empty (DS, T); break;
+ case 0xe86a2c74: res = print_ds_constructor_input_peer_notify_events_all (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_input_peer_notify_settings (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_input_peer_notify_settings (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_photo (struct tl_ds_input_photo *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x1cd7bf0d: res = print_ds_constructor_input_photo_empty (DS, T); break;
+ case 0xfb95c6c4: res = print_ds_constructor_input_photo (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_photo (struct tl_ds_input_photo *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x1cd7bf0d: res = print_ds_constructor_input_photo_empty (DS, T); break;
+ case 0xfb95c6c4: res = print_ds_constructor_input_photo (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_photo_crop (struct tl_ds_input_photo_crop *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xade6b004: res = print_ds_constructor_input_photo_crop_auto (DS, T); break;
+ case 0xd9915325: res = print_ds_constructor_input_photo_crop (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_photo_crop (struct tl_ds_input_photo_crop *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xade6b004: res = print_ds_constructor_input_photo_crop_auto (DS, T); break;
+ case 0xd9915325: res = print_ds_constructor_input_photo_crop (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_privacy_key (struct tl_ds_input_privacy_key *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_input_privacy_key_status_timestamp (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_privacy_key (struct tl_ds_input_privacy_key *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_input_privacy_key_status_timestamp (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_privacy_rule (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x0d09e07b: res = print_ds_constructor_input_privacy_value_allow_contacts (DS, T); break;
+ case 0x184b35ce: res = print_ds_constructor_input_privacy_value_allow_all (DS, T); break;
+ case 0x131cc67f: res = print_ds_constructor_input_privacy_value_allow_users (DS, T); break;
+ case 0x0ba52007: res = print_ds_constructor_input_privacy_value_disallow_contacts (DS, T); break;
+ case 0xd66b66c9: res = print_ds_constructor_input_privacy_value_disallow_all (DS, T); break;
+ case 0x90110467: res = print_ds_constructor_input_privacy_value_disallow_users (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_privacy_rule (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x0d09e07b: res = print_ds_constructor_input_privacy_value_allow_contacts (DS, T); break;
+ case 0x184b35ce: res = print_ds_constructor_input_privacy_value_allow_all (DS, T); break;
+ case 0x131cc67f: res = print_ds_constructor_input_privacy_value_allow_users (DS, T); break;
+ case 0x0ba52007: res = print_ds_constructor_input_privacy_value_disallow_contacts (DS, T); break;
+ case 0xd66b66c9: res = print_ds_constructor_input_privacy_value_disallow_all (DS, T); break;
+ case 0x90110467: res = print_ds_constructor_input_privacy_value_disallow_users (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_sticker_set (struct tl_ds_input_sticker_set *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xffb62b95: res = print_ds_constructor_input_sticker_set_empty (DS, T); break;
+ case 0x9de7a269: res = print_ds_constructor_input_sticker_set_i_d (DS, T); break;
+ case 0x861cc8a0: res = print_ds_constructor_input_sticker_set_short_name (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_sticker_set (struct tl_ds_input_sticker_set *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xffb62b95: res = print_ds_constructor_input_sticker_set_empty (DS, T); break;
+ case 0x9de7a269: res = print_ds_constructor_input_sticker_set_i_d (DS, T); break;
+ case 0x861cc8a0: res = print_ds_constructor_input_sticker_set_short_name (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_user (struct tl_ds_input_user *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xb98886cf: res = print_ds_constructor_input_user_empty (DS, T); break;
+ case 0xf7c1b13f: res = print_ds_constructor_input_user_self (DS, T); break;
+ case 0x86e94f65: res = print_ds_constructor_input_user_contact (DS, T); break;
+ case 0x655e74ff: res = print_ds_constructor_input_user_foreign (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_user (struct tl_ds_input_user *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xb98886cf: res = print_ds_constructor_input_user_empty (DS, T); break;
+ case 0xf7c1b13f: res = print_ds_constructor_input_user_self (DS, T); break;
+ case 0x86e94f65: res = print_ds_constructor_input_user_contact (DS, T); break;
+ case 0x655e74ff: res = print_ds_constructor_input_user_foreign (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_input_video (struct tl_ds_input_video *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x5508ec75: res = print_ds_constructor_input_video_empty (DS, T); break;
+ case 0xee579652: res = print_ds_constructor_input_video (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_input_video (struct tl_ds_input_video *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x5508ec75: res = print_ds_constructor_input_video_empty (DS, T); break;
+ case 0xee579652: res = print_ds_constructor_input_video (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_int (int *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_int (DS, T);
+ return res;
+}
+int print_ds_type_bare_int (int *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_int (DS, T);
+ return res;
+}
+int print_ds_type_int128 (struct tl_ds_int128 *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_int128 (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_int128 (struct tl_ds_int128 *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_int128 (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_int256 (struct tl_ds_int256 *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_int256 (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_int256 (struct tl_ds_int256 *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_int256 (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_keyboard_button (struct tl_ds_keyboard_button *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_keyboard_button (DS, T);
+ return res;
+}
+int print_ds_type_bare_keyboard_button (struct tl_ds_keyboard_button *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_keyboard_button (DS, T);
+ return res;
+}
+int print_ds_type_keyboard_button_row (struct tl_ds_keyboard_button_row *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_keyboard_button_row (DS, T);
+ return res;
+}
+int print_ds_type_bare_keyboard_button_row (struct tl_ds_keyboard_button_row *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_keyboard_button_row (DS, T);
+ return res;
+}
+int print_ds_type_long (long long *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_long (DS, T);
+ return res;
+}
+int print_ds_type_bare_long (long long *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_long (DS, T);
+ return res;
+}
+int print_ds_type_message (struct tl_ds_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x83e5de54: res = print_ds_constructor_message_empty (DS, T); break;
+ case 0xc3060325: res = print_ds_constructor_message (DS, T); break;
+ case 0x1d86f70e: res = print_ds_constructor_message_service (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_message (struct tl_ds_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x83e5de54: res = print_ds_constructor_message_empty (DS, T); break;
+ case 0xc3060325: res = print_ds_constructor_message (DS, T); break;
+ case 0x1d86f70e: res = print_ds_constructor_message_service (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_message_action (struct tl_ds_message_action *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xb6aef7b0: res = print_ds_constructor_message_action_empty (DS, T); break;
+ case 0xa6638b9a: res = print_ds_constructor_message_action_chat_create (DS, T); break;
+ case 0xb5a1ce5a: res = print_ds_constructor_message_action_chat_edit_title (DS, T); break;
+ case 0x7fcb13a8: res = print_ds_constructor_message_action_chat_edit_photo (DS, T); break;
+ case 0x95e3fbef: res = print_ds_constructor_message_action_chat_delete_photo (DS, T); break;
+ case 0x5e3cfc4b: res = print_ds_constructor_message_action_chat_add_user (DS, T); break;
+ case 0xb2ae9b0c: res = print_ds_constructor_message_action_chat_delete_user (DS, T); break;
+ case 0x6f038ebc: res = print_ds_constructor_message_action_geo_chat_create (DS, T); break;
+ case 0x0c7d53de: res = print_ds_constructor_message_action_geo_chat_checkin (DS, T); break;
+ case 0xf89cf5e8: res = print_ds_constructor_message_action_chat_joined_by_link (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_message_action (struct tl_ds_message_action *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xb6aef7b0: res = print_ds_constructor_message_action_empty (DS, T); break;
+ case 0xa6638b9a: res = print_ds_constructor_message_action_chat_create (DS, T); break;
+ case 0xb5a1ce5a: res = print_ds_constructor_message_action_chat_edit_title (DS, T); break;
+ case 0x7fcb13a8: res = print_ds_constructor_message_action_chat_edit_photo (DS, T); break;
+ case 0x95e3fbef: res = print_ds_constructor_message_action_chat_delete_photo (DS, T); break;
+ case 0x5e3cfc4b: res = print_ds_constructor_message_action_chat_add_user (DS, T); break;
+ case 0xb2ae9b0c: res = print_ds_constructor_message_action_chat_delete_user (DS, T); break;
+ case 0x6f038ebc: res = print_ds_constructor_message_action_geo_chat_create (DS, T); break;
+ case 0x0c7d53de: res = print_ds_constructor_message_action_geo_chat_checkin (DS, T); break;
+ case 0xf89cf5e8: res = print_ds_constructor_message_action_chat_joined_by_link (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_message_media (struct tl_ds_message_media *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x3ded6320: res = print_ds_constructor_message_media_empty (DS, T); break;
+ case 0x3d8ce53d: res = print_ds_constructor_message_media_photo (DS, T); break;
+ case 0x5bcf1675: res = print_ds_constructor_message_media_video (DS, T); break;
+ case 0x56e0d474: res = print_ds_constructor_message_media_geo (DS, T); break;
+ case 0x5e7d2f39: res = print_ds_constructor_message_media_contact (DS, T); break;
+ case 0x9f84f49e: res = print_ds_constructor_message_media_unsupported (DS, T); break;
+ case 0x2fda2204: res = print_ds_constructor_message_media_document (DS, T); break;
+ case 0xc6b68300: res = print_ds_constructor_message_media_audio (DS, T); break;
+ case 0xa32dd600: res = print_ds_constructor_message_media_web_page (DS, T); break;
+ case 0x7912b71f: res = print_ds_constructor_message_media_venue (DS, T); break;
+ case 0xc8c45a2a: res = print_ds_constructor_message_media_photo_l27 (DS, T); break;
+ case 0xa2d24290: res = print_ds_constructor_message_media_video_l27 (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_message_media (struct tl_ds_message_media *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x3ded6320: res = print_ds_constructor_message_media_empty (DS, T); break;
+ case 0x3d8ce53d: res = print_ds_constructor_message_media_photo (DS, T); break;
+ case 0x5bcf1675: res = print_ds_constructor_message_media_video (DS, T); break;
+ case 0x56e0d474: res = print_ds_constructor_message_media_geo (DS, T); break;
+ case 0x5e7d2f39: res = print_ds_constructor_message_media_contact (DS, T); break;
+ case 0x9f84f49e: res = print_ds_constructor_message_media_unsupported (DS, T); break;
+ case 0x2fda2204: res = print_ds_constructor_message_media_document (DS, T); break;
+ case 0xc6b68300: res = print_ds_constructor_message_media_audio (DS, T); break;
+ case 0xa32dd600: res = print_ds_constructor_message_media_web_page (DS, T); break;
+ case 0x7912b71f: res = print_ds_constructor_message_media_venue (DS, T); break;
+ case 0xc8c45a2a: res = print_ds_constructor_message_media_photo_l27 (DS, T); break;
+ case 0xa2d24290: res = print_ds_constructor_message_media_video_l27 (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_messages_filter (struct tl_ds_messages_filter *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x57e2f66c: res = print_ds_constructor_input_messages_filter_empty (DS, T); break;
+ case 0x9609a51c: res = print_ds_constructor_input_messages_filter_photos (DS, T); break;
+ case 0x9fc00e65: res = print_ds_constructor_input_messages_filter_video (DS, T); break;
+ case 0x56e9f0e4: res = print_ds_constructor_input_messages_filter_photo_video (DS, T); break;
+ case 0xd95e73bb: res = print_ds_constructor_input_messages_filter_photo_video_documents (DS, T); break;
+ case 0x9eddf188: res = print_ds_constructor_input_messages_filter_document (DS, T); break;
+ case 0xcfc87522: res = print_ds_constructor_input_messages_filter_audio (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_messages_filter (struct tl_ds_messages_filter *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x57e2f66c: res = print_ds_constructor_input_messages_filter_empty (DS, T); break;
+ case 0x9609a51c: res = print_ds_constructor_input_messages_filter_photos (DS, T); break;
+ case 0x9fc00e65: res = print_ds_constructor_input_messages_filter_video (DS, T); break;
+ case 0x56e9f0e4: res = print_ds_constructor_input_messages_filter_photo_video (DS, T); break;
+ case 0xd95e73bb: res = print_ds_constructor_input_messages_filter_photo_video_documents (DS, T); break;
+ case 0x9eddf188: res = print_ds_constructor_input_messages_filter_document (DS, T); break;
+ case 0xcfc87522: res = print_ds_constructor_input_messages_filter_audio (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_nearest_dc (struct tl_ds_nearest_dc *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_nearest_dc (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_nearest_dc (struct tl_ds_nearest_dc *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_nearest_dc (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_notify_peer (struct tl_ds_notify_peer *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x9fd40bd8: res = print_ds_constructor_notify_peer (DS, T); break;
+ case 0xb4c83b4c: res = print_ds_constructor_notify_users (DS, T); break;
+ case 0xc007cec3: res = print_ds_constructor_notify_chats (DS, T); break;
+ case 0x74d07c60: res = print_ds_constructor_notify_all (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_notify_peer (struct tl_ds_notify_peer *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x9fd40bd8: res = print_ds_constructor_notify_peer (DS, T); break;
+ case 0xb4c83b4c: res = print_ds_constructor_notify_users (DS, T); break;
+ case 0xc007cec3: res = print_ds_constructor_notify_chats (DS, T); break;
+ case 0x74d07c60: res = print_ds_constructor_notify_all (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_null (struct tl_ds_null *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_null (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_null (struct tl_ds_null *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_null (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_p_q_inner_data (struct tl_ds_p_q_inner_data *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x83c95aec: res = print_ds_constructor_p_q_inner_data (DS, T); break;
+ case 0x3c6a84d4: res = print_ds_constructor_p_q_inner_data_temp (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_p_q_inner_data (struct tl_ds_p_q_inner_data *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x83c95aec: res = print_ds_constructor_p_q_inner_data (DS, T); break;
+ case 0x3c6a84d4: res = print_ds_constructor_p_q_inner_data_temp (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_peer (struct tl_ds_peer *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x9db1bc6d: res = print_ds_constructor_peer_user (DS, T); break;
+ case 0xbad0e5bb: res = print_ds_constructor_peer_chat (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_peer (struct tl_ds_peer *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x9db1bc6d: res = print_ds_constructor_peer_user (DS, T); break;
+ case 0xbad0e5bb: res = print_ds_constructor_peer_chat (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_peer_notify_events (struct tl_ds_peer_notify_events *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xadd53cb3: res = print_ds_constructor_peer_notify_events_empty (DS, T); break;
+ case 0x6d1ded88: res = print_ds_constructor_peer_notify_events_all (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_peer_notify_events (struct tl_ds_peer_notify_events *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xadd53cb3: res = print_ds_constructor_peer_notify_events_empty (DS, T); break;
+ case 0x6d1ded88: res = print_ds_constructor_peer_notify_events_all (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_peer_notify_settings (struct tl_ds_peer_notify_settings *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x70a68512: res = print_ds_constructor_peer_notify_settings_empty (DS, T); break;
+ case 0x8d5e11ee: res = print_ds_constructor_peer_notify_settings (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_peer_notify_settings (struct tl_ds_peer_notify_settings *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x70a68512: res = print_ds_constructor_peer_notify_settings_empty (DS, T); break;
+ case 0x8d5e11ee: res = print_ds_constructor_peer_notify_settings (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_photo (struct tl_ds_photo *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x2331b22d: res = print_ds_constructor_photo_empty (DS, T); break;
+ case 0xc3838076: res = print_ds_constructor_photo (DS, T); break;
+ case 0x22b56751: res = print_ds_constructor_photo_l27 (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_photo (struct tl_ds_photo *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x2331b22d: res = print_ds_constructor_photo_empty (DS, T); break;
+ case 0xc3838076: res = print_ds_constructor_photo (DS, T); break;
+ case 0x22b56751: res = print_ds_constructor_photo_l27 (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_photo_size (struct tl_ds_photo_size *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x0e17e23c: res = print_ds_constructor_photo_size_empty (DS, T); break;
+ case 0x77bfb61b: res = print_ds_constructor_photo_size (DS, T); break;
+ case 0xe9a734fa: res = print_ds_constructor_photo_cached_size (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_photo_size (struct tl_ds_photo_size *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x0e17e23c: res = print_ds_constructor_photo_size_empty (DS, T); break;
+ case 0x77bfb61b: res = print_ds_constructor_photo_size (DS, T); break;
+ case 0xe9a734fa: res = print_ds_constructor_photo_cached_size (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_privacy_key (struct tl_ds_privacy_key *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_privacy_key_status_timestamp (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_privacy_key (struct tl_ds_privacy_key *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_privacy_key_status_timestamp (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_privacy_rule (struct tl_ds_privacy_rule *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xfffe1bac: res = print_ds_constructor_privacy_value_allow_contacts (DS, T); break;
+ case 0x65427b82: res = print_ds_constructor_privacy_value_allow_all (DS, T); break;
+ case 0x4d5bbe0c: res = print_ds_constructor_privacy_value_allow_users (DS, T); break;
+ case 0xf888fa1a: res = print_ds_constructor_privacy_value_disallow_contacts (DS, T); break;
+ case 0x8b73e763: res = print_ds_constructor_privacy_value_disallow_all (DS, T); break;
+ case 0x0c7f49b7: res = print_ds_constructor_privacy_value_disallow_users (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_privacy_rule (struct tl_ds_privacy_rule *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xfffe1bac: res = print_ds_constructor_privacy_value_allow_contacts (DS, T); break;
+ case 0x65427b82: res = print_ds_constructor_privacy_value_allow_all (DS, T); break;
+ case 0x4d5bbe0c: res = print_ds_constructor_privacy_value_allow_users (DS, T); break;
+ case 0xf888fa1a: res = print_ds_constructor_privacy_value_disallow_contacts (DS, T); break;
+ case 0x8b73e763: res = print_ds_constructor_privacy_value_disallow_all (DS, T); break;
+ case 0x0c7f49b7: res = print_ds_constructor_privacy_value_disallow_users (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_received_notify_message (struct tl_ds_received_notify_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_received_notify_message (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_received_notify_message (struct tl_ds_received_notify_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_received_notify_message (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_reply_markup (struct tl_ds_reply_markup *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xa03e5b85: res = print_ds_constructor_reply_keyboard_hide (DS, T); break;
+ case 0xf4108aa0: res = print_ds_constructor_reply_keyboard_force_reply (DS, T); break;
+ case 0x3502758c: res = print_ds_constructor_reply_keyboard_markup (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_reply_markup (struct tl_ds_reply_markup *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xa03e5b85: res = print_ds_constructor_reply_keyboard_hide (DS, T); break;
+ case 0xf4108aa0: res = print_ds_constructor_reply_keyboard_force_reply (DS, T); break;
+ case 0x3502758c: res = print_ds_constructor_reply_keyboard_markup (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_res_p_q (struct tl_ds_res_p_q *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_res_p_q (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_res_p_q (struct tl_ds_res_p_q *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_res_p_q (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_send_message_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x16bf744e: res = print_ds_constructor_send_message_typing_action (DS, T); break;
+ case 0xfd5ec8f5: res = print_ds_constructor_send_message_cancel_action (DS, T); break;
+ case 0xa187d66f: res = print_ds_constructor_send_message_record_video_action (DS, T); break;
+ case 0x92042ff7: res = print_ds_constructor_send_message_upload_video_action_l27 (DS, T); break;
+ case 0xe9763aec: res = print_ds_constructor_send_message_upload_video_action (DS, T); break;
+ case 0xd52f73f7: res = print_ds_constructor_send_message_record_audio_action (DS, T); break;
+ case 0xe6ac8a6f: res = print_ds_constructor_send_message_upload_audio_action_l27 (DS, T); break;
+ case 0xf351d7ab: res = print_ds_constructor_send_message_upload_audio_action (DS, T); break;
+ case 0xd1d34a26: res = print_ds_constructor_send_message_upload_photo_action (DS, T); break;
+ case 0x8faee98e: res = print_ds_constructor_send_message_upload_document_action_l27 (DS, T); break;
+ case 0xaa0cd9e4: res = print_ds_constructor_send_message_upload_document_action (DS, T); break;
+ case 0x176f8ba1: res = print_ds_constructor_send_message_geo_location_action (DS, T); break;
+ case 0x628cbc6f: res = print_ds_constructor_send_message_choose_contact_action (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_send_message_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x16bf744e: res = print_ds_constructor_send_message_typing_action (DS, T); break;
+ case 0xfd5ec8f5: res = print_ds_constructor_send_message_cancel_action (DS, T); break;
+ case 0xa187d66f: res = print_ds_constructor_send_message_record_video_action (DS, T); break;
+ case 0x92042ff7: res = print_ds_constructor_send_message_upload_video_action_l27 (DS, T); break;
+ case 0xe9763aec: res = print_ds_constructor_send_message_upload_video_action (DS, T); break;
+ case 0xd52f73f7: res = print_ds_constructor_send_message_record_audio_action (DS, T); break;
+ case 0xe6ac8a6f: res = print_ds_constructor_send_message_upload_audio_action_l27 (DS, T); break;
+ case 0xf351d7ab: res = print_ds_constructor_send_message_upload_audio_action (DS, T); break;
+ case 0xd1d34a26: res = print_ds_constructor_send_message_upload_photo_action (DS, T); break;
+ case 0x8faee98e: res = print_ds_constructor_send_message_upload_document_action_l27 (DS, T); break;
+ case 0xaa0cd9e4: res = print_ds_constructor_send_message_upload_document_action (DS, T); break;
+ case 0x176f8ba1: res = print_ds_constructor_send_message_geo_location_action (DS, T); break;
+ case 0x628cbc6f: res = print_ds_constructor_send_message_choose_contact_action (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_server_d_h_params (struct tl_ds_server_d_h_params *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x79cb045d: res = print_ds_constructor_server_d_h_params_fail (DS, T); break;
+ case 0xd0e8075c: res = print_ds_constructor_server_d_h_params_ok (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_server_d_h_params (struct tl_ds_server_d_h_params *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x79cb045d: res = print_ds_constructor_server_d_h_params_fail (DS, T); break;
+ case 0xd0e8075c: res = print_ds_constructor_server_d_h_params_ok (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_server_d_h_inner_data (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_server_d_h_inner_data (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x3bcbf734: res = print_ds_constructor_dh_gen_ok (DS, T); break;
+ case 0x46dc1fb9: res = print_ds_constructor_dh_gen_retry (DS, T); break;
+ case 0xa69dae02: res = print_ds_constructor_dh_gen_fail (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x3bcbf734: res = print_ds_constructor_dh_gen_ok (DS, T); break;
+ case 0x46dc1fb9: res = print_ds_constructor_dh_gen_retry (DS, T); break;
+ case 0xa69dae02: res = print_ds_constructor_dh_gen_fail (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_sticker_pack (struct tl_ds_sticker_pack *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_sticker_pack (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_sticker_pack (struct tl_ds_sticker_pack *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_sticker_pack (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_sticker_set (struct tl_ds_sticker_set *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_sticker_set (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_sticker_set (struct tl_ds_sticker_set *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_sticker_set (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_string (struct tl_ds_string *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_string (DS, T);
+ return res;
+}
+int print_ds_type_bare_string (struct tl_ds_string *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_string (DS, T);
+ return res;
+}
+int print_ds_type_update (struct tl_ds_update *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x1f2b0afd: res = print_ds_constructor_update_new_message (DS, T); break;
+ case 0x4e90bfd6: res = print_ds_constructor_update_message_i_d (DS, T); break;
+ case 0xa20db0e5: res = print_ds_constructor_update_delete_messages (DS, T); break;
+ case 0x5c486927: res = print_ds_constructor_update_user_typing (DS, T); break;
+ case 0x9a65ea1f: res = print_ds_constructor_update_chat_user_typing (DS, T); break;
+ case 0x07761198: res = print_ds_constructor_update_chat_participants (DS, T); break;
+ case 0x1bfbd823: res = print_ds_constructor_update_user_status (DS, T); break;
+ case 0xa7332b73: res = print_ds_constructor_update_user_name (DS, T); break;
+ case 0x95313b0c: res = print_ds_constructor_update_user_photo (DS, T); break;
+ case 0x2575bbb9: res = print_ds_constructor_update_contact_registered (DS, T); break;
+ case 0x9d2e67c5: res = print_ds_constructor_update_contact_link (DS, T); break;
+ case 0x8f06529a: res = print_ds_constructor_update_new_authorization (DS, T); break;
+ case 0x5a68e3f7: res = print_ds_constructor_update_new_geo_chat_message (DS, T); break;
+ case 0x12bcbd9a: res = print_ds_constructor_update_new_encrypted_message (DS, T); break;
+ case 0x1710f156: res = print_ds_constructor_update_encrypted_chat_typing (DS, T); break;
+ case 0xb4a2e88d: res = print_ds_constructor_update_encryption (DS, T); break;
+ case 0x38fe25b7: res = print_ds_constructor_update_encrypted_messages_read (DS, T); break;
+ case 0x3a0eeb22: res = print_ds_constructor_update_chat_participant_add (DS, T); break;
+ case 0x6e5f8c22: res = print_ds_constructor_update_chat_participant_delete (DS, T); break;
+ case 0x8e5e9873: res = print_ds_constructor_update_dc_options (DS, T); break;
+ case 0x80ece81a: res = print_ds_constructor_update_user_blocked (DS, T); break;
+ case 0xbec268ef: res = print_ds_constructor_update_notify_settings (DS, T); break;
+ case 0x382dd3e4: res = print_ds_constructor_update_service_notification (DS, T); break;
+ case 0xee3b272a: res = print_ds_constructor_update_privacy (DS, T); break;
+ case 0x12b9417b: res = print_ds_constructor_update_user_phone (DS, T); break;
+ case 0x9961fd5c: res = print_ds_constructor_update_read_history_inbox (DS, T); break;
+ case 0x2f2f21bf: res = print_ds_constructor_update_read_history_outbox (DS, T); break;
+ case 0x2cc36971: res = print_ds_constructor_update_web_page (DS, T); break;
+ case 0x68c13933: res = print_ds_constructor_update_read_messages_contents (DS, T); break;
+ case 0x03114739: res = print_ds_constructor_update_msg_update (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_update (struct tl_ds_update *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x1f2b0afd: res = print_ds_constructor_update_new_message (DS, T); break;
+ case 0x4e90bfd6: res = print_ds_constructor_update_message_i_d (DS, T); break;
+ case 0xa20db0e5: res = print_ds_constructor_update_delete_messages (DS, T); break;
+ case 0x5c486927: res = print_ds_constructor_update_user_typing (DS, T); break;
+ case 0x9a65ea1f: res = print_ds_constructor_update_chat_user_typing (DS, T); break;
+ case 0x07761198: res = print_ds_constructor_update_chat_participants (DS, T); break;
+ case 0x1bfbd823: res = print_ds_constructor_update_user_status (DS, T); break;
+ case 0xa7332b73: res = print_ds_constructor_update_user_name (DS, T); break;
+ case 0x95313b0c: res = print_ds_constructor_update_user_photo (DS, T); break;
+ case 0x2575bbb9: res = print_ds_constructor_update_contact_registered (DS, T); break;
+ case 0x9d2e67c5: res = print_ds_constructor_update_contact_link (DS, T); break;
+ case 0x8f06529a: res = print_ds_constructor_update_new_authorization (DS, T); break;
+ case 0x5a68e3f7: res = print_ds_constructor_update_new_geo_chat_message (DS, T); break;
+ case 0x12bcbd9a: res = print_ds_constructor_update_new_encrypted_message (DS, T); break;
+ case 0x1710f156: res = print_ds_constructor_update_encrypted_chat_typing (DS, T); break;
+ case 0xb4a2e88d: res = print_ds_constructor_update_encryption (DS, T); break;
+ case 0x38fe25b7: res = print_ds_constructor_update_encrypted_messages_read (DS, T); break;
+ case 0x3a0eeb22: res = print_ds_constructor_update_chat_participant_add (DS, T); break;
+ case 0x6e5f8c22: res = print_ds_constructor_update_chat_participant_delete (DS, T); break;
+ case 0x8e5e9873: res = print_ds_constructor_update_dc_options (DS, T); break;
+ case 0x80ece81a: res = print_ds_constructor_update_user_blocked (DS, T); break;
+ case 0xbec268ef: res = print_ds_constructor_update_notify_settings (DS, T); break;
+ case 0x382dd3e4: res = print_ds_constructor_update_service_notification (DS, T); break;
+ case 0xee3b272a: res = print_ds_constructor_update_privacy (DS, T); break;
+ case 0x12b9417b: res = print_ds_constructor_update_user_phone (DS, T); break;
+ case 0x9961fd5c: res = print_ds_constructor_update_read_history_inbox (DS, T); break;
+ case 0x2f2f21bf: res = print_ds_constructor_update_read_history_outbox (DS, T); break;
+ case 0x2cc36971: res = print_ds_constructor_update_web_page (DS, T); break;
+ case 0x68c13933: res = print_ds_constructor_update_read_messages_contents (DS, T); break;
+ case 0x03114739: res = print_ds_constructor_update_msg_update (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_updates (struct tl_ds_updates *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xe317af7e: res = print_ds_constructor_updates_too_long (DS, T); break;
+ case 0xed5c2127: res = print_ds_constructor_update_short_message (DS, T); break;
+ case 0x52238b3c: res = print_ds_constructor_update_short_chat_message (DS, T); break;
+ case 0x78d4dec1: res = print_ds_constructor_update_short (DS, T); break;
+ case 0x725b04c3: res = print_ds_constructor_updates_combined (DS, T); break;
+ case 0x74ae4240: res = print_ds_constructor_updates (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_updates (struct tl_ds_updates *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xe317af7e: res = print_ds_constructor_updates_too_long (DS, T); break;
+ case 0xed5c2127: res = print_ds_constructor_update_short_message (DS, T); break;
+ case 0x52238b3c: res = print_ds_constructor_update_short_chat_message (DS, T); break;
+ case 0x78d4dec1: res = print_ds_constructor_update_short (DS, T); break;
+ case 0x725b04c3: res = print_ds_constructor_updates_combined (DS, T); break;
+ case 0x74ae4240: res = print_ds_constructor_updates (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_user (struct tl_ds_user *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x200250ba: res = print_ds_constructor_user_empty (DS, T); break;
+ case 0x22e49072: res = print_ds_constructor_user (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_user (struct tl_ds_user *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x200250ba: res = print_ds_constructor_user_empty (DS, T); break;
+ case 0x22e49072: res = print_ds_constructor_user (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_user_full (struct tl_ds_user_full *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_user_full (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_user_full (struct tl_ds_user_full *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_user_full (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_user_profile_photo (struct tl_ds_user_profile_photo *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x4f11bae1: res = print_ds_constructor_user_profile_photo_empty (DS, T); break;
+ case 0xd559d8c8: res = print_ds_constructor_user_profile_photo (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_user_profile_photo (struct tl_ds_user_profile_photo *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x4f11bae1: res = print_ds_constructor_user_profile_photo_empty (DS, T); break;
+ case 0xd559d8c8: res = print_ds_constructor_user_profile_photo (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_user_status (struct tl_ds_user_status *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x09d05049: res = print_ds_constructor_user_status_empty (DS, T); break;
+ case 0xedb93949: res = print_ds_constructor_user_status_online (DS, T); break;
+ case 0x008c703f: res = print_ds_constructor_user_status_offline (DS, T); break;
+ case 0xe26f42f1: res = print_ds_constructor_user_status_recently (DS, T); break;
+ case 0x07bf09fc: res = print_ds_constructor_user_status_last_week (DS, T); break;
+ case 0x77ebc742: res = print_ds_constructor_user_status_last_month (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_user_status (struct tl_ds_user_status *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x09d05049: res = print_ds_constructor_user_status_empty (DS, T); break;
+ case 0xedb93949: res = print_ds_constructor_user_status_online (DS, T); break;
+ case 0x008c703f: res = print_ds_constructor_user_status_offline (DS, T); break;
+ case 0xe26f42f1: res = print_ds_constructor_user_status_recently (DS, T); break;
+ case 0x07bf09fc: res = print_ds_constructor_user_status_last_week (DS, T); break;
+ case 0x77ebc742: res = print_ds_constructor_user_status_last_month (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_vector (struct tl_ds_vector *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_vector (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_vector (struct tl_ds_vector *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_vector (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_video (struct tl_ds_video *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xc10658a8: res = print_ds_constructor_video_empty (DS, T); break;
+ case 0xee9f4a4d: res = print_ds_constructor_video (DS, T); break;
+ case 0x388fa391: res = print_ds_constructor_video_l27 (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_video (struct tl_ds_video *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xc10658a8: res = print_ds_constructor_video_empty (DS, T); break;
+ case 0xee9f4a4d: res = print_ds_constructor_video (DS, T); break;
+ case 0x388fa391: res = print_ds_constructor_video_l27 (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_wall_paper (struct tl_ds_wall_paper *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xccb03657: res = print_ds_constructor_wall_paper (DS, T); break;
+ case 0x63117f24: res = print_ds_constructor_wall_paper_solid (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_wall_paper (struct tl_ds_wall_paper *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xccb03657: res = print_ds_constructor_wall_paper (DS, T); break;
+ case 0x63117f24: res = print_ds_constructor_wall_paper_solid (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_web_page (struct tl_ds_web_page *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xeb1477e8: res = print_ds_constructor_web_page_empty (DS, T); break;
+ case 0xc586da1c: res = print_ds_constructor_web_page_pending (DS, T); break;
+ case 0xa31ea0b5: res = print_ds_constructor_web_page (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_web_page (struct tl_ds_web_page *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xeb1477e8: res = print_ds_constructor_web_page_empty (DS, T); break;
+ case 0xc586da1c: res = print_ds_constructor_web_page_pending (DS, T); break;
+ case 0xa31ea0b5: res = print_ds_constructor_web_page (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_account_authorizations (struct tl_ds_account_authorizations *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_account_authorizations (DS, T);
+ return res;
+}
+int print_ds_type_bare_account_authorizations (struct tl_ds_account_authorizations *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_account_authorizations (DS, T);
+ return res;
+}
+int print_ds_type_account_password (struct tl_ds_account_password *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x96dabc18: res = print_ds_constructor_account_no_password (DS, T); break;
+ case 0x7c18141c: res = print_ds_constructor_account_password (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_account_password (struct tl_ds_account_password *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x96dabc18: res = print_ds_constructor_account_no_password (DS, T); break;
+ case 0x7c18141c: res = print_ds_constructor_account_password (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_account_password_input_settings (struct tl_ds_account_password_input_settings *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_account_password_input_settings (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_account_password_input_settings (struct tl_ds_account_password_input_settings *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_account_password_input_settings (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_account_password_settings (struct tl_ds_account_password_settings *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_account_password_settings (DS, T);
+ return res;
+}
+int print_ds_type_bare_account_password_settings (struct tl_ds_account_password_settings *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_account_password_settings (DS, T);
+ return res;
+}
+int print_ds_type_account_privacy_rules (struct tl_ds_account_privacy_rules *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_account_privacy_rules (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_account_privacy_rules (struct tl_ds_account_privacy_rules *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_account_privacy_rules (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_account_sent_change_phone_code (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_account_sent_change_phone_code (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_auth_authorization (struct tl_ds_auth_authorization *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_auth_authorization (DS, T);
+ return res;
+}
+int print_ds_type_bare_auth_authorization (struct tl_ds_auth_authorization *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_auth_authorization (DS, T);
+ return res;
+}
+int print_ds_type_auth_checked_phone (struct tl_ds_auth_checked_phone *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_auth_checked_phone (DS, T);
+ return res;
+}
+int print_ds_type_bare_auth_checked_phone (struct tl_ds_auth_checked_phone *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_auth_checked_phone (DS, T);
+ return res;
+}
+int print_ds_type_auth_exported_authorization (struct tl_ds_auth_exported_authorization *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_auth_exported_authorization (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_auth_exported_authorization (struct tl_ds_auth_exported_authorization *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_auth_exported_authorization (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_auth_password_recovery (struct tl_ds_auth_password_recovery *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_auth_password_recovery (DS, T);
+ return res;
+}
+int print_ds_type_bare_auth_password_recovery (struct tl_ds_auth_password_recovery *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_auth_password_recovery (DS, T);
+ return res;
+}
+int print_ds_type_auth_sent_code (struct tl_ds_auth_sent_code *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xefed51d9: res = print_ds_constructor_auth_sent_code (DS, T); break;
+ case 0xe325edcf: res = print_ds_constructor_auth_sent_app_code (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_auth_sent_code (struct tl_ds_auth_sent_code *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xefed51d9: res = print_ds_constructor_auth_sent_code (DS, T); break;
+ case 0xe325edcf: res = print_ds_constructor_auth_sent_app_code (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_binlog_encr_key (struct tl_ds_binlog_encr_key *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_binlog_encr_key (DS, T);
+ return res;
+}
+int print_ds_type_bare_binlog_encr_key (struct tl_ds_binlog_encr_key *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_binlog_encr_key (DS, T);
+ return res;
+}
+int print_ds_type_binlog_update (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x3b06de69: res = print_ds_constructor_binlog_start (DS, T); break;
+ case 0xf96feb32: res = print_ds_constructor_binlog_dc_option (DS, T); break;
+ case 0x7c0d22d8: res = print_ds_constructor_binlog_dc_option_new (DS, T); break;
+ case 0x71e8c156: res = print_ds_constructor_binlog_auth_key (DS, T); break;
+ case 0x9e83dbdc: res = print_ds_constructor_binlog_default_dc (DS, T); break;
+ case 0x26451bb5: res = print_ds_constructor_binlog_dc_signed (DS, T); break;
+ case 0x68a870e8: res = print_ds_constructor_binlog_our_id (DS, T); break;
+ case 0xeaeb7826: res = print_ds_constructor_binlog_set_dh_params (DS, T); break;
+ case 0x2ca8c939: res = print_ds_constructor_binlog_set_pts (DS, T); break;
+ case 0xd95738ac: res = print_ds_constructor_binlog_set_qts (DS, T); break;
+ case 0x1d0f4b52: res = print_ds_constructor_binlog_set_date (DS, T); break;
+ case 0x6eeb2989: res = print_ds_constructor_binlog_set_seq (DS, T); break;
+ case 0xee1b38e8: res = print_ds_constructor_binlog_encr_chat_delete (DS, T); break;
+ case 0x84977251: res = print_ds_constructor_binlog_encr_chat_new (DS, T); break;
+ case 0x9d49488d: res = print_ds_constructor_binlog_encr_chat_exchange_new (DS, T); break;
+ case 0xac55d447: res = print_ds_constructor_binlog_user_delete (DS, T); break;
+ case 0x127cf2f9: res = print_ds_constructor_binlog_user_new (DS, T); break;
+ case 0x0a10aa92: res = print_ds_constructor_binlog_chat_new (DS, T); break;
+ case 0x535475ea: res = print_ds_constructor_binlog_chat_add_participant (DS, T); break;
+ case 0x7dd1a1a2: res = print_ds_constructor_binlog_chat_del_participant (DS, T); break;
+ case 0x3c873416: res = print_ds_constructor_binlog_set_msg_id (DS, T); break;
+ case 0x847e77b1: res = print_ds_constructor_binlog_message_delete (DS, T); break;
+ case 0x427cfcdb: res = print_ds_constructor_binlog_message_new (DS, T); break;
+ case 0x6cf7cabc: res = print_ds_constructor_binlog_message_encr_new (DS, T); break;
+ case 0x6dd4d85f: res = print_ds_constructor_binlog_msg_update (DS, T); break;
+ case 0x83327955: res = print_ds_constructor_binlog_reset_authorization (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_binlog_update (struct tl_ds_binlog_update *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x3b06de69: res = print_ds_constructor_binlog_start (DS, T); break;
+ case 0xf96feb32: res = print_ds_constructor_binlog_dc_option (DS, T); break;
+ case 0x7c0d22d8: res = print_ds_constructor_binlog_dc_option_new (DS, T); break;
+ case 0x71e8c156: res = print_ds_constructor_binlog_auth_key (DS, T); break;
+ case 0x9e83dbdc: res = print_ds_constructor_binlog_default_dc (DS, T); break;
+ case 0x26451bb5: res = print_ds_constructor_binlog_dc_signed (DS, T); break;
+ case 0x68a870e8: res = print_ds_constructor_binlog_our_id (DS, T); break;
+ case 0xeaeb7826: res = print_ds_constructor_binlog_set_dh_params (DS, T); break;
+ case 0x2ca8c939: res = print_ds_constructor_binlog_set_pts (DS, T); break;
+ case 0xd95738ac: res = print_ds_constructor_binlog_set_qts (DS, T); break;
+ case 0x1d0f4b52: res = print_ds_constructor_binlog_set_date (DS, T); break;
+ case 0x6eeb2989: res = print_ds_constructor_binlog_set_seq (DS, T); break;
+ case 0xee1b38e8: res = print_ds_constructor_binlog_encr_chat_delete (DS, T); break;
+ case 0x84977251: res = print_ds_constructor_binlog_encr_chat_new (DS, T); break;
+ case 0x9d49488d: res = print_ds_constructor_binlog_encr_chat_exchange_new (DS, T); break;
+ case 0xac55d447: res = print_ds_constructor_binlog_user_delete (DS, T); break;
+ case 0x127cf2f9: res = print_ds_constructor_binlog_user_new (DS, T); break;
+ case 0x0a10aa92: res = print_ds_constructor_binlog_chat_new (DS, T); break;
+ case 0x535475ea: res = print_ds_constructor_binlog_chat_add_participant (DS, T); break;
+ case 0x7dd1a1a2: res = print_ds_constructor_binlog_chat_del_participant (DS, T); break;
+ case 0x3c873416: res = print_ds_constructor_binlog_set_msg_id (DS, T); break;
+ case 0x847e77b1: res = print_ds_constructor_binlog_message_delete (DS, T); break;
+ case 0x427cfcdb: res = print_ds_constructor_binlog_message_new (DS, T); break;
+ case 0x6cf7cabc: res = print_ds_constructor_binlog_message_encr_new (DS, T); break;
+ case 0x6dd4d85f: res = print_ds_constructor_binlog_msg_update (DS, T); break;
+ case 0x83327955: res = print_ds_constructor_binlog_reset_authorization (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_contacts_blocked (struct tl_ds_contacts_blocked *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x1c138d15: res = print_ds_constructor_contacts_blocked (DS, T); break;
+ case 0x900802a1: res = print_ds_constructor_contacts_blocked_slice (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_contacts_blocked (struct tl_ds_contacts_blocked *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x1c138d15: res = print_ds_constructor_contacts_blocked (DS, T); break;
+ case 0x900802a1: res = print_ds_constructor_contacts_blocked_slice (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_contacts_contacts (struct tl_ds_contacts_contacts *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xb74ba9d2: res = print_ds_constructor_contacts_contacts_not_modified (DS, T); break;
+ case 0x6f8b8cb2: res = print_ds_constructor_contacts_contacts (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_contacts_contacts (struct tl_ds_contacts_contacts *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xb74ba9d2: res = print_ds_constructor_contacts_contacts_not_modified (DS, T); break;
+ case 0x6f8b8cb2: res = print_ds_constructor_contacts_contacts (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_contacts_found (struct tl_ds_contacts_found *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contacts_found (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_contacts_found (struct tl_ds_contacts_found *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contacts_found (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contacts_imported_contacts (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contacts_imported_contacts (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_contacts_link (struct tl_ds_contacts_link *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contacts_link (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_contacts_link (struct tl_ds_contacts_link *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contacts_link (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_contacts_suggested (struct tl_ds_contacts_suggested *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contacts_suggested (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_contacts_suggested (struct tl_ds_contacts_suggested *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_contacts_suggested (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_geochats_located (struct tl_ds_geochats_located *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_geochats_located (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_geochats_located (struct tl_ds_geochats_located *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_geochats_located (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_geochats_messages (struct tl_ds_geochats_messages *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xd1526db1: res = print_ds_constructor_geochats_messages (DS, T); break;
+ case 0xbc5863e8: res = print_ds_constructor_geochats_messages_slice (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_geochats_messages (struct tl_ds_geochats_messages *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xd1526db1: res = print_ds_constructor_geochats_messages (DS, T); break;
+ case 0xbc5863e8: res = print_ds_constructor_geochats_messages_slice (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_geochats_stated_message (struct tl_ds_geochats_stated_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_geochats_stated_message (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_geochats_stated_message (struct tl_ds_geochats_stated_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_geochats_stated_message (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_help_app_update (struct tl_ds_help_app_update *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x8987f311: res = print_ds_constructor_help_app_update (DS, T); break;
+ case 0xc45a6536: res = print_ds_constructor_help_no_app_update (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_help_app_update (struct tl_ds_help_app_update *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x8987f311: res = print_ds_constructor_help_app_update (DS, T); break;
+ case 0xc45a6536: res = print_ds_constructor_help_no_app_update (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_help_invite_text (struct tl_ds_help_invite_text *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_help_invite_text (DS, T);
+ return res;
+}
+int print_ds_type_bare_help_invite_text (struct tl_ds_help_invite_text *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_help_invite_text (DS, T);
+ return res;
+}
+int print_ds_type_help_support (struct tl_ds_help_support *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_help_support (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_help_support (struct tl_ds_help_support *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_help_support (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_messages_affected_history (struct tl_ds_messages_affected_history *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_messages_affected_history (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_messages_affected_history (struct tl_ds_messages_affected_history *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_messages_affected_history (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_messages_affected_messages (struct tl_ds_messages_affected_messages *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_messages_affected_messages (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_messages_affected_messages (struct tl_ds_messages_affected_messages *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_messages_affected_messages (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_messages_all_stickers (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xe86602c3: res = print_ds_constructor_messages_all_stickers_not_modified (DS, T); break;
+ case 0x5ce352ec: res = print_ds_constructor_messages_all_stickers (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_messages_all_stickers (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xe86602c3: res = print_ds_constructor_messages_all_stickers_not_modified (DS, T); break;
+ case 0x5ce352ec: res = print_ds_constructor_messages_all_stickers (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_messages_chat_full (struct tl_ds_messages_chat_full *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_messages_chat_full (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_messages_chat_full (struct tl_ds_messages_chat_full *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_messages_chat_full (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_messages_chats (struct tl_ds_messages_chats *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_messages_chats (DS, T);
+ return res;
+}
+int print_ds_type_bare_messages_chats (struct tl_ds_messages_chats *DS, struct paramed_type *T) {
+ int res;
+ res = print_ds_constructor_messages_chats (DS, T);
+ return res;
+}
+int print_ds_type_messages_dh_config (struct tl_ds_messages_dh_config *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xc0e24635: res = print_ds_constructor_messages_dh_config_not_modified (DS, T); break;
+ case 0x2c221edd: res = print_ds_constructor_messages_dh_config (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_messages_dh_config (struct tl_ds_messages_dh_config *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xc0e24635: res = print_ds_constructor_messages_dh_config_not_modified (DS, T); break;
+ case 0x2c221edd: res = print_ds_constructor_messages_dh_config (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_messages_dialogs (struct tl_ds_messages_dialogs *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x15ba6c40: res = print_ds_constructor_messages_dialogs (DS, T); break;
+ case 0x71e094f3: res = print_ds_constructor_messages_dialogs_slice (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_messages_dialogs (struct tl_ds_messages_dialogs *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x15ba6c40: res = print_ds_constructor_messages_dialogs (DS, T); break;
+ case 0x71e094f3: res = print_ds_constructor_messages_dialogs_slice (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_messages_message (struct tl_ds_messages_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_messages_message_empty (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_messages_message (struct tl_ds_messages_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_messages_message_empty (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_messages_messages (struct tl_ds_messages_messages *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x8c718e87: res = print_ds_constructor_messages_messages (DS, T); break;
+ case 0x0b446ae3: res = print_ds_constructor_messages_messages_slice (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_messages_messages (struct tl_ds_messages_messages *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x8c718e87: res = print_ds_constructor_messages_messages (DS, T); break;
+ case 0x0b446ae3: res = print_ds_constructor_messages_messages_slice (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x560f8935: res = print_ds_constructor_messages_sent_encrypted_message (DS, T); break;
+ case 0x9493ff32: res = print_ds_constructor_messages_sent_encrypted_file (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x560f8935: res = print_ds_constructor_messages_sent_encrypted_message (DS, T); break;
+ case 0x9493ff32: res = print_ds_constructor_messages_sent_encrypted_file (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_messages_sent_message (struct tl_ds_messages_sent_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x4c3d47f3: res = print_ds_constructor_messages_sent_message (DS, T); break;
+ case 0x35a1a663: res = print_ds_constructor_messages_sent_message_link (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_messages_sent_message (struct tl_ds_messages_sent_message *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x4c3d47f3: res = print_ds_constructor_messages_sent_message (DS, T); break;
+ case 0x35a1a663: res = print_ds_constructor_messages_sent_message_link (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_messages_sticker_set (struct tl_ds_messages_sticker_set *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_messages_sticker_set (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_messages_sticker_set (struct tl_ds_messages_sticker_set *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_messages_sticker_set (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_messages_stickers (struct tl_ds_messages_stickers *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xf1749a22: res = print_ds_constructor_messages_stickers_not_modified (DS, T); break;
+ case 0x8a8ecd32: res = print_ds_constructor_messages_stickers (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_messages_stickers (struct tl_ds_messages_stickers *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xf1749a22: res = print_ds_constructor_messages_stickers_not_modified (DS, T); break;
+ case 0x8a8ecd32: res = print_ds_constructor_messages_stickers (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_photos_photo (struct tl_ds_photos_photo *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_photos_photo (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_photos_photo (struct tl_ds_photos_photo *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_photos_photo (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_photos_photos (struct tl_ds_photos_photos *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x8dca6aa5: res = print_ds_constructor_photos_photos (DS, T); break;
+ case 0x15051f54: res = print_ds_constructor_photos_photos_slice (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_photos_photos (struct tl_ds_photos_photos *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x8dca6aa5: res = print_ds_constructor_photos_photos (DS, T); break;
+ case 0x15051f54: res = print_ds_constructor_photos_photos_slice (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_storage_file_type (struct tl_ds_storage_file_type *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xaa963b05: res = print_ds_constructor_storage_file_unknown (DS, T); break;
+ case 0x007efe0e: res = print_ds_constructor_storage_file_jpeg (DS, T); break;
+ case 0xcae1aadf: res = print_ds_constructor_storage_file_gif (DS, T); break;
+ case 0x0a4f63c0: res = print_ds_constructor_storage_file_png (DS, T); break;
+ case 0xae1e508d: res = print_ds_constructor_storage_file_pdf (DS, T); break;
+ case 0x528a0677: res = print_ds_constructor_storage_file_mp3 (DS, T); break;
+ case 0x4b09ebbc: res = print_ds_constructor_storage_file_mov (DS, T); break;
+ case 0x40bc6f52: res = print_ds_constructor_storage_file_partial (DS, T); break;
+ case 0xb3cea0e4: res = print_ds_constructor_storage_file_mp4 (DS, T); break;
+ case 0x1081464c: res = print_ds_constructor_storage_file_webp (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_storage_file_type (struct tl_ds_storage_file_type *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0xaa963b05: res = print_ds_constructor_storage_file_unknown (DS, T); break;
+ case 0x007efe0e: res = print_ds_constructor_storage_file_jpeg (DS, T); break;
+ case 0xcae1aadf: res = print_ds_constructor_storage_file_gif (DS, T); break;
+ case 0x0a4f63c0: res = print_ds_constructor_storage_file_png (DS, T); break;
+ case 0xae1e508d: res = print_ds_constructor_storage_file_pdf (DS, T); break;
+ case 0x528a0677: res = print_ds_constructor_storage_file_mp3 (DS, T); break;
+ case 0x4b09ebbc: res = print_ds_constructor_storage_file_mov (DS, T); break;
+ case 0x40bc6f52: res = print_ds_constructor_storage_file_partial (DS, T); break;
+ case 0xb3cea0e4: res = print_ds_constructor_storage_file_mp4 (DS, T); break;
+ case 0x1081464c: res = print_ds_constructor_storage_file_webp (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_updates_difference (struct tl_ds_updates_difference *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x5d75a138: res = print_ds_constructor_updates_difference_empty (DS, T); break;
+ case 0x00f49ca0: res = print_ds_constructor_updates_difference (DS, T); break;
+ case 0xa8fb1981: res = print_ds_constructor_updates_difference_slice (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_updates_difference (struct tl_ds_updates_difference *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ switch (DS->magic) {
+ case 0x5d75a138: res = print_ds_constructor_updates_difference_empty (DS, T); break;
+ case 0x00f49ca0: res = print_ds_constructor_updates_difference (DS, T); break;
+ case 0xa8fb1981: res = print_ds_constructor_updates_difference_slice (DS, T); break;
+ default: return -1;
+ }
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_updates_state (struct tl_ds_updates_state *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_updates_state (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_updates_state (struct tl_ds_updates_state *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_updates_state (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_upload_file (struct tl_ds_upload_file *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_upload_file (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_bare_upload_file (struct tl_ds_upload_file *DS, struct paramed_type *T) {
+ int res;
+ if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+ eprintf (" (");
+ res = print_ds_constructor_upload_file (DS, T);
+ if (res >= 0) {
+ if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+ eprintf (" )");
+ }
+ return res;
+}
+int print_ds_type_any (void *DS, struct paramed_type *T) {
+ switch (T->type->name) {
+ case 0xb8d0afdf: return print_ds_type_account_days_t_t_l (DS, T);
+ case 0x472f5020: return print_ds_type_bare_account_days_t_t_l (DS, T);
+ case 0x9fc5ec4e: return print_ds_type_audio (DS, T);
+ case 0x603a13b1: return print_ds_type_bare_audio (DS, T);
+ case 0x7bf2e6f6: return print_ds_type_authorization (DS, T);
+ case 0x840d1909: return print_ds_type_bare_authorization (DS, T);
+ case 0x250be282: return print_ds_type_bool (DS, T);
+ case 0xdaf41d7d: return print_ds_type_bare_bool (DS, T);
+ case 0x75e7ea6c: return print_ds_type_bot_command (DS, T);
+ case 0x8a181593: return print_ds_type_bare_bot_command (DS, T);
+ case 0xb2e16f93: return print_ds_type_bot_info (DS, T);
+ case 0x4d1e906c: return print_ds_type_bare_bot_info (DS, T);
+ case 0x0ee1379f: return print_ds_type_bytes (DS, T);
+ case 0xf11ec860: return print_ds_type_bare_bytes (DS, T);
+ case 0x7bd865dc: return print_ds_type_chat (DS, T);
+ case 0x84279a23: return print_ds_type_bare_chat (DS, T);
+ case 0x2e02a614: return print_ds_type_chat_full (DS, T);
+ case 0xd1fd59eb: return print_ds_type_bare_chat_full (DS, T);
+ case 0x94f910b1: return print_ds_type_chat_invite (DS, T);
+ case 0x6b06ef4e: return print_ds_type_bare_chat_invite (DS, T);
+ case 0x3631cf4c: return print_ds_type_chat_located (DS, T);
+ case 0xc9ce30b3: return print_ds_type_bare_chat_located (DS, T);
+ case 0xc8d7493e: return print_ds_type_chat_participant (DS, T);
+ case 0x3728b6c1: return print_ds_type_bare_chat_participant (DS, T);
+ case 0x77930f9f: return print_ds_type_chat_participants (DS, T);
+ case 0x886cf060: return print_ds_type_bare_chat_participants (DS, T);
+ case 0x56922676: return print_ds_type_chat_photo (DS, T);
+ case 0xa96dd989: return print_ds_type_bare_chat_photo (DS, T);
+ case 0x6643b654: return print_ds_type_client_d_h_inner_data (DS, T);
+ case 0x99bc49ab: return print_ds_type_bare_client_d_h_inner_data (DS, T);
+ case 0x4e32b894: return print_ds_type_config (DS, T);
+ case 0xb1cd476b: return print_ds_type_bare_config (DS, T);
+ case 0xf911c994: return print_ds_type_contact (DS, T);
+ case 0x06ee366b: return print_ds_type_bare_contact (DS, T);
+ case 0x561bc879: return print_ds_type_contact_blocked (DS, T);
+ case 0xa9e43786: return print_ds_type_bare_contact_blocked (DS, T);
+ case 0xea879f95: return print_ds_type_contact_found (DS, T);
+ case 0x1578606a: return print_ds_type_bare_contact_found (DS, T);
+ case 0x522fbc63: return print_ds_type_contact_link (DS, T);
+ case 0xadd0439c: return print_ds_type_bare_contact_link (DS, T);
+ case 0xd3680c61: return print_ds_type_contact_status (DS, T);
+ case 0x2c97f39e: return print_ds_type_bare_contact_status (DS, T);
+ case 0x3de191a1: return print_ds_type_contact_suggested (DS, T);
+ case 0xc21e6e5e: return print_ds_type_bare_contact_suggested (DS, T);
+ case 0x2b1a62f0: return print_ds_type_dc_option (DS, T);
+ case 0xd4e59d0f: return print_ds_type_bare_dc_option (DS, T);
+ case 0x535b7918: return print_ds_type_decrypted_message (DS, T);
+ case 0xaca486e7: return print_ds_type_bare_decrypted_message (DS, T);
+ case 0x4e0eefde: return print_ds_type_decrypted_message_action (DS, T);
+ case 0xb1f11021: return print_ds_type_bare_decrypted_message_action (DS, T);
+ case 0x1be31789: return print_ds_type_decrypted_message_layer (DS, T);
+ case 0xe41ce876: return print_ds_type_bare_decrypted_message_layer (DS, T);
+ case 0x34e0d674: return print_ds_type_decrypted_message_media (DS, T);
+ case 0xcb1f298b: return print_ds_type_bare_decrypted_message_media (DS, T);
+ case 0xc1dd804a: return print_ds_type_dialog (DS, T);
+ case 0x3e227fb5: return print_ds_type_bare_dialog (DS, T);
+ case 0xae636f24: return print_ds_type_disabled_feature (DS, T);
+ case 0x519c90db: return print_ds_type_bare_disabled_feature (DS, T);
+ case 0x51a73418: return print_ds_type_document (DS, T);
+ case 0xae58cbe7: return print_ds_type_bare_document (DS, T);
+ case 0x97c637a3: return print_ds_type_document_attribute (DS, T);
+ case 0x6839c85c: return print_ds_type_bare_document_attribute (DS, T);
+ case 0x2210c154: return print_ds_type_double (DS, T);
+ case 0xddef3eab: return print_ds_type_bare_double (DS, T);
+ case 0xb1718213: return print_ds_type_encrypted_chat (DS, T);
+ case 0x4e8e7dec: return print_ds_type_bare_encrypted_chat (DS, T);
+ case 0x886fd032: return print_ds_type_encrypted_file (DS, T);
+ case 0x77902fcd: return print_ds_type_bare_encrypted_file (DS, T);
+ case 0xce6b8a1e: return print_ds_type_encrypted_message (DS, T);
+ case 0x319475e1: return print_ds_type_bare_encrypted_message (DS, T);
+ case 0xc4b9f9bb: return print_ds_type_error (DS, T);
+ case 0x3b460644: return print_ds_type_bare_error (DS, T);
+ case 0x95f132d5: return print_ds_type_exported_chat_invite (DS, T);
+ case 0x6a0ecd2a: return print_ds_type_bare_exported_chat_invite (DS, T);
+ case 0x2f8ffb30: return print_ds_type_file_location (DS, T);
+ case 0xd07004cf: return print_ds_type_bare_file_location (DS, T);
+ case 0xf67b4034: return print_ds_type_geo_chat_message (DS, T);
+ case 0x0984bfcb: return print_ds_type_bare_geo_chat_message (DS, T);
+ case 0x315e0a53: return print_ds_type_geo_point (DS, T);
+ case 0xcea1f5ac: return print_ds_type_bare_geo_point (DS, T);
+ case 0xd0028438: return print_ds_type_imported_contact (DS, T);
+ case 0x2ffd7bc7: return print_ds_type_bare_imported_contact (DS, T);
+ case 0x770656a8: return print_ds_type_input_app_event (DS, T);
+ case 0x88f9a957: return print_ds_type_bare_input_app_event (DS, T);
+ case 0xae8e9c7b: return print_ds_type_input_audio (DS, T);
+ case 0x51716384: return print_ds_type_bare_input_audio (DS, T);
+ case 0x3a60776d: return print_ds_type_input_chat_photo (DS, T);
+ case 0xc59f8892: return print_ds_type_bare_input_chat_photo (DS, T);
+ case 0xf392b7f4: return print_ds_type_input_contact (DS, T);
+ case 0x0c6d480b: return print_ds_type_bare_input_contact (DS, T);
+ case 0x6a8963fc: return print_ds_type_input_document (DS, T);
+ case 0x95769c03: return print_ds_type_bare_input_document (DS, T);
+ case 0xf141b5e1: return print_ds_type_input_encrypted_chat (DS, T);
+ case 0x0ebe4a1e: return print_ds_type_bare_input_encrypted_chat (DS, T);
+ case 0x0b5c064f: return print_ds_type_input_encrypted_file (DS, T);
+ case 0xf4a3f9b0: return print_ds_type_bare_input_encrypted_file (DS, T);
+ case 0x0f60f9ca: return print_ds_type_input_file (DS, T);
+ case 0xf09f0635: return print_ds_type_bare_input_file (DS, T);
+ case 0xe6daa38b: return print_ds_type_input_file_location (DS, T);
+ case 0x19255c74: return print_ds_type_bare_input_file_location (DS, T);
+ case 0x74d456fa: return print_ds_type_input_geo_chat (DS, T);
+ case 0x8b2ba905: return print_ds_type_bare_input_geo_chat (DS, T);
+ case 0x17768f1f: return print_ds_type_input_geo_point (DS, T);
+ case 0xe88970e0: return print_ds_type_bare_input_geo_point (DS, T);
+ case 0xb32c91dd: return print_ds_type_input_media (DS, T);
+ case 0x4cd36e22: return print_ds_type_bare_input_media (DS, T);
+ case 0x02b6911b: return print_ds_type_input_notify_peer (DS, T);
+ case 0xfd496ee4: return print_ds_type_bare_input_notify_peer (DS, T);
+ case 0x9e67268d: return print_ds_type_input_peer (DS, T);
+ case 0x6198d972: return print_ds_type_bare_input_peer (DS, T);
+ case 0x185a48ac: return print_ds_type_input_peer_notify_events (DS, T);
+ case 0xe7a5b753: return print_ds_type_bare_input_peer_notify_events (DS, T);
+ case 0x46a2ce98: return print_ds_type_input_peer_notify_settings (DS, T);
+ case 0xb95d3167: return print_ds_type_bare_input_peer_notify_settings (DS, T);
+ case 0xe74279c9: return print_ds_type_input_photo (DS, T);
+ case 0x18bd8636: return print_ds_type_bare_input_photo (DS, T);
+ case 0x7477e321: return print_ds_type_input_photo_crop (DS, T);
+ case 0x8b881cde: return print_ds_type_bare_input_photo_crop (DS, T);
+ case 0x4f96cb18: return print_ds_type_input_privacy_key (DS, T);
+ case 0xb06934e7: return print_ds_type_bare_input_privacy_key (DS, T);
+ case 0x4b815163: return print_ds_type_input_privacy_rule (DS, T);
+ case 0xb47eae9c: return print_ds_type_bare_input_privacy_rule (DS, T);
+ case 0xe44d415c: return print_ds_type_input_sticker_set (DS, T);
+ case 0x1bb2bea3: return print_ds_type_bare_input_sticker_set (DS, T);
+ case 0xadfe0c6a: return print_ds_type_input_user (DS, T);
+ case 0x5201f395: return print_ds_type_bare_input_user (DS, T);
+ case 0xbb5f7a27: return print_ds_type_input_video (DS, T);
+ case 0x44a085d8: return print_ds_type_bare_input_video (DS, T);
+ case 0xa8509bda: return print_ds_type_int (DS, T);
+ case 0x57af6425: return print_ds_type_bare_int (DS, T);
+ case 0x7d36c439: return print_ds_type_int128 (DS, T);
+ case 0x82c93bc6: return print_ds_type_bare_int128 (DS, T);
+ case 0xf2c798b3: return print_ds_type_int256 (DS, T);
+ case 0x0d38674c: return print_ds_type_bare_int256 (DS, T);
+ case 0xa2fa4880: return print_ds_type_keyboard_button (DS, T);
+ case 0x5d05b77f: return print_ds_type_bare_keyboard_button (DS, T);
+ case 0x77608b83: return print_ds_type_keyboard_button_row (DS, T);
+ case 0x889f747c: return print_ds_type_bare_keyboard_button_row (DS, T);
+ case 0x22076cba: return print_ds_type_long (DS, T);
+ case 0xddf89345: return print_ds_type_bare_long (DS, T);
+ case 0x5d652a7f: return print_ds_type_message (DS, T);
+ case 0xa29ad580: return print_ds_type_bare_message (DS, T);
+ case 0x383415fa: return print_ds_type_message_action (DS, T);
+ case 0xc7cbea05: return print_ds_type_bare_message_action (DS, T);
+ case 0x95f2471a: return print_ds_type_message_media (DS, T);
+ case 0x6a0db8e5: return print_ds_type_bare_message_media (DS, T);
+ case 0x80895ae0: return print_ds_type_messages_filter (DS, T);
+ case 0x7f76a51f: return print_ds_type_bare_messages_filter (DS, T);
+ case 0x8e1a1775: return print_ds_type_nearest_dc (DS, T);
+ case 0x71e5e88a: return print_ds_type_bare_nearest_dc (DS, T);
+ case 0x9fcb8237: return print_ds_type_notify_peer (DS, T);
+ case 0x60347dc8: return print_ds_type_bare_notify_peer (DS, T);
+ case 0x56730bcc: return print_ds_type_null (DS, T);
+ case 0xa98cf433: return print_ds_type_bare_null (DS, T);
+ case 0xbfa3de38: return print_ds_type_p_q_inner_data (DS, T);
+ case 0x405c21c7: return print_ds_type_bare_p_q_inner_data (DS, T);
+ case 0x276159d6: return print_ds_type_peer (DS, T);
+ case 0xd89ea629: return print_ds_type_bare_peer (DS, T);
+ case 0xc0c8d13b: return print_ds_type_peer_notify_events (DS, T);
+ case 0x3f372ec4: return print_ds_type_bare_peer_notify_events (DS, T);
+ case 0xfdf894fc: return print_ds_type_peer_notify_settings (DS, T);
+ case 0x02076b03: return print_ds_type_bare_peer_notify_settings (DS, T);
+ case 0xc207550a: return print_ds_type_photo (DS, T);
+ case 0x3df8aaf5: return print_ds_type_bare_photo (DS, T);
+ case 0x900f60dd: return print_ds_type_photo_size (DS, T);
+ case 0x6ff09f22: return print_ds_type_bare_photo_size (DS, T);
+ case 0xbc2eab30: return print_ds_type_privacy_key (DS, T);
+ case 0x43d154cf: return print_ds_type_bare_privacy_key (DS, T);
+ case 0xa8638aec: return print_ds_type_privacy_rule (DS, T);
+ case 0x579c7513: return print_ds_type_bare_privacy_rule (DS, T);
+ case 0xa384b779: return print_ds_type_received_notify_message (DS, T);
+ case 0x5c7b4886: return print_ds_type_bare_received_notify_message (DS, T);
+ case 0x612ca4a9: return print_ds_type_reply_markup (DS, T);
+ case 0x9ed35b56: return print_ds_type_bare_reply_markup (DS, T);
+ case 0x05162463: return print_ds_type_res_p_q (DS, T);
+ case 0xfae9db9c: return print_ds_type_bare_res_p_q (DS, T);
+ case 0x70541c7e: return print_ds_type_send_message_action (DS, T);
+ case 0x8fabe381: return print_ds_type_bare_send_message_action (DS, T);
+ case 0xa9230301: return print_ds_type_server_d_h_params (DS, T);
+ case 0x56dcfcfe: return print_ds_type_bare_server_d_h_params (DS, T);
+ case 0xb5890dba: return print_ds_type_server_d_h_inner_data (DS, T);
+ case 0x4a76f245: return print_ds_type_bare_server_d_h_inner_data (DS, T);
+ case 0xdb8a468f: return print_ds_type_set_client_d_h_params_answer (DS, T);
+ case 0x2475b970: return print_ds_type_bare_set_client_d_h_params_answer (DS, T);
+ case 0x12b299d4: return print_ds_type_sticker_pack (DS, T);
+ case 0xed4d662b: return print_ds_type_bare_sticker_pack (DS, T);
+ case 0xa7a43b17: return print_ds_type_sticker_set (DS, T);
+ case 0x585bc4e8: return print_ds_type_bare_sticker_set (DS, T);
+ case 0xb5286e24: return print_ds_type_string (DS, T);
+ case 0x4ad791db: return print_ds_type_bare_string (DS, T);
+ case 0x2e02b27e: return print_ds_type_update (DS, T);
+ case 0xd1fd4d81: return print_ds_type_bare_update (DS, T);
+ case 0x22499d27: return print_ds_type_updates (DS, T);
+ case 0xddb662d8: return print_ds_type_bare_updates (DS, T);
+ case 0x02e6c0c8: return print_ds_type_user (DS, T);
+ case 0xfd193f37: return print_ds_type_bare_user (DS, T);
+ case 0x5a89ac5b: return print_ds_type_user_full (DS, T);
+ case 0xa57653a4: return print_ds_type_bare_user_full (DS, T);
+ case 0x9a486229: return print_ds_type_user_profile_photo (DS, T);
+ case 0x65b79dd6: return print_ds_type_bare_user_profile_photo (DS, T);
+ case 0x76de9570: return print_ds_type_user_status (DS, T);
+ case 0x89216a8f: return print_ds_type_bare_user_status (DS, T);
+ case 0x1cb5c415: return print_ds_type_vector (DS, T);
+ case 0xe34a3bea: return print_ds_type_bare_vector (DS, T);
+ case 0x1716b174: return print_ds_type_video (DS, T);
+ case 0xe8e94e8b: return print_ds_type_bare_video (DS, T);
+ case 0xafa14973: return print_ds_type_wall_paper (DS, T);
+ case 0x505eb68c: return print_ds_type_bare_wall_paper (DS, T);
+ case 0x8d8c0d41: return print_ds_type_web_page (DS, T);
+ case 0x7273f2be: return print_ds_type_bare_web_page (DS, T);
+ case 0x1250abde: return print_ds_type_account_authorizations (DS, T);
+ case 0xedaf5421: return print_ds_type_bare_account_authorizations (DS, T);
+ case 0xeac2a804: return print_ds_type_account_password (DS, T);
+ case 0x153d57fb: return print_ds_type_bare_account_password (DS, T);
+ case 0xbcfc532c: return print_ds_type_account_password_input_settings (DS, T);
+ case 0x4303acd3: return print_ds_type_bare_account_password_input_settings (DS, T);
+ case 0xb7b72ab3: return print_ds_type_account_password_settings (DS, T);
+ case 0x4848d54c: return print_ds_type_bare_account_password_settings (DS, T);
+ case 0x554abb6f: return print_ds_type_account_privacy_rules (DS, T);
+ case 0xaab54490: return print_ds_type_bare_account_privacy_rules (DS, T);
+ case 0xa4f58c4c: return print_ds_type_account_sent_change_phone_code (DS, T);
+ case 0x5b0a73b3: return print_ds_type_bare_account_sent_change_phone_code (DS, T);
+ case 0xff036af1: return print_ds_type_auth_authorization (DS, T);
+ case 0x00fc950e: return print_ds_type_bare_auth_authorization (DS, T);
+ case 0x811ea28e: return print_ds_type_auth_checked_phone (DS, T);
+ case 0x7ee15d71: return print_ds_type_bare_auth_checked_phone (DS, T);
+ case 0xdf969c2d: return print_ds_type_auth_exported_authorization (DS, T);
+ case 0x206963d2: return print_ds_type_bare_auth_exported_authorization (DS, T);
+ case 0x137948a5: return print_ds_type_auth_password_recovery (DS, T);
+ case 0xec86b75a: return print_ds_type_bare_auth_password_recovery (DS, T);
+ case 0x0cc8bc16: return print_ds_type_auth_sent_code (DS, T);
+ case 0xf33743e9: return print_ds_type_bare_auth_sent_code (DS, T);
+ case 0x0377168f: return print_ds_type_binlog_encr_key (DS, T);
+ case 0xfc88e970: return print_ds_type_bare_binlog_encr_key (DS, T);
+ case 0x66ff03a6: return print_ds_type_binlog_update (DS, T);
+ case 0x9900fc59: return print_ds_type_bare_binlog_update (DS, T);
+ case 0x8c1b8fb4: return print_ds_type_contacts_blocked (DS, T);
+ case 0x73e4704b: return print_ds_type_bare_contacts_blocked (DS, T);
+ case 0xd8c02560: return print_ds_type_contacts_contacts (DS, T);
+ case 0x273fda9f: return print_ds_type_bare_contacts_contacts (DS, T);
+ case 0x0566000e: return print_ds_type_contacts_found (DS, T);
+ case 0xfa99fff1: return print_ds_type_bare_contacts_found (DS, T);
+ case 0xad524315: return print_ds_type_contacts_imported_contacts (DS, T);
+ case 0x52adbcea: return print_ds_type_bare_contacts_imported_contacts (DS, T);
+ case 0x3ace484c: return print_ds_type_contacts_link (DS, T);
+ case 0xc531b7b3: return print_ds_type_bare_contacts_link (DS, T);
+ case 0x5649dcc5: return print_ds_type_contacts_suggested (DS, T);
+ case 0xa9b6233a: return print_ds_type_bare_contacts_suggested (DS, T);
+ case 0x48feb267: return print_ds_type_geochats_located (DS, T);
+ case 0xb7014d98: return print_ds_type_bare_geochats_located (DS, T);
+ case 0x6d0a0e59: return print_ds_type_geochats_messages (DS, T);
+ case 0x92f5f1a6: return print_ds_type_bare_geochats_messages (DS, T);
+ case 0x17b1578b: return print_ds_type_geochats_stated_message (DS, T);
+ case 0xe84ea874: return print_ds_type_bare_geochats_stated_message (DS, T);
+ case 0x4ddd9627: return print_ds_type_help_app_update (DS, T);
+ case 0xb22269d8: return print_ds_type_bare_help_app_update (DS, T);
+ case 0x18cb9f78: return print_ds_type_help_invite_text (DS, T);
+ case 0xe7346087: return print_ds_type_bare_help_invite_text (DS, T);
+ case 0x17c6b5f6: return print_ds_type_help_support (DS, T);
+ case 0xe8394a09: return print_ds_type_bare_help_support (DS, T);
+ case 0xb45c69d1: return print_ds_type_messages_affected_history (DS, T);
+ case 0x4ba3962e: return print_ds_type_bare_messages_affected_history (DS, T);
+ case 0x84d19185: return print_ds_type_messages_affected_messages (DS, T);
+ case 0x7b2e6e7a: return print_ds_type_bare_messages_affected_messages (DS, T);
+ case 0xb485502f: return print_ds_type_messages_all_stickers (DS, T);
+ case 0x4b7aafd0: return print_ds_type_bare_messages_all_stickers (DS, T);
+ case 0xe5d7d19c: return print_ds_type_messages_chat_full (DS, T);
+ case 0x1a282e63: return print_ds_type_bare_messages_chat_full (DS, T);
+ case 0x64ff9fd5: return print_ds_type_messages_chats (DS, T);
+ case 0x9b00602a: return print_ds_type_bare_messages_chats (DS, T);
+ case 0xecc058e8: return print_ds_type_messages_dh_config (DS, T);
+ case 0x133fa717: return print_ds_type_bare_messages_dh_config (DS, T);
+ case 0x645af8b3: return print_ds_type_messages_dialogs (DS, T);
+ case 0x9ba5074c: return print_ds_type_bare_messages_dialogs (DS, T);
+ case 0x3f4e0648: return print_ds_type_messages_message (DS, T);
+ case 0xc0b1f9b7: return print_ds_type_bare_messages_message (DS, T);
+ case 0x8735e464: return print_ds_type_messages_messages (DS, T);
+ case 0x78ca1b9b: return print_ds_type_bare_messages_messages (DS, T);
+ case 0xc29c7607: return print_ds_type_messages_sent_encrypted_message (DS, T);
+ case 0x3d6389f8: return print_ds_type_bare_messages_sent_encrypted_message (DS, T);
+ case 0x799ce190: return print_ds_type_messages_sent_message (DS, T);
+ case 0x86631e6f: return print_ds_type_bare_messages_sent_message (DS, T);
+ case 0xb60a24a6: return print_ds_type_messages_sticker_set (DS, T);
+ case 0x49f5db59: return print_ds_type_bare_messages_sticker_set (DS, T);
+ case 0x7bfa5710: return print_ds_type_messages_stickers (DS, T);
+ case 0x8405a8ef: return print_ds_type_bare_messages_stickers (DS, T);
+ case 0x20212ca8: return print_ds_type_photos_photo (DS, T);
+ case 0xdfded357: return print_ds_type_bare_photos_photo (DS, T);
+ case 0x98cf75f1: return print_ds_type_photos_photos (DS, T);
+ case 0x67308a0e: return print_ds_type_bare_photos_photos (DS, T);
+ case 0x3e2838a8: return print_ds_type_storage_file_type (DS, T);
+ case 0xc1d7c757: return print_ds_type_bare_storage_file_type (DS, T);
+ case 0xf57a2419: return print_ds_type_updates_difference (DS, T);
+ case 0x0a85dbe6: return print_ds_type_bare_updates_difference (DS, T);
+ case 0xa56c2a3e: return print_ds_type_updates_state (DS, T);
+ case 0x5a93d5c1: return print_ds_type_bare_updates_state (DS, T);
+ case 0x096a18d5: return print_ds_type_upload_file (DS, T);
+ case 0xf695e72a: return print_ds_type_bare_upload_file (DS, T);
+ default: return -1; }
+}
diff --git a/libs/tgl/src/auto/auto-print-ds.h b/libs/tgl/src/auto/auto-print-ds.h
new file mode 100644
index 0000000000..2f74cd9f17
--- /dev/null
+++ b/libs/tgl/src/auto/auto-print-ds.h
@@ -0,0 +1,719 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#include "auto-types.h"
+#else
+#include "auto.h"
+#include "auto-types.h"
+#endif
+#include <assert.h>
+#include <stdio.h>
+struct tgl_state;
+char *tglf_extf_print_ds (struct tgl_state *TLS, void *DS, struct paramed_type *T);
+int print_ds_constructor_account_days_t_t_l (struct tl_ds_account_days_t_t_l *DS, struct paramed_type *T);
+int print_ds_constructor_audio_empty (struct tl_ds_audio *DS, struct paramed_type *T);
+int print_ds_constructor_audio (struct tl_ds_audio *DS, struct paramed_type *T);
+int print_ds_constructor_authorization (struct tl_ds_authorization *DS, struct paramed_type *T);
+int print_ds_constructor_bool_false (struct tl_ds_bool *DS, struct paramed_type *T);
+int print_ds_constructor_bool_true (struct tl_ds_bool *DS, struct paramed_type *T);
+int print_ds_constructor_bot_command (struct tl_ds_bot_command *DS, struct paramed_type *T);
+int print_ds_constructor_bot_command_old (struct tl_ds_bot_command *DS, struct paramed_type *T);
+int print_ds_constructor_bot_info_empty (struct tl_ds_bot_info *DS, struct paramed_type *T);
+int print_ds_constructor_bot_info (struct tl_ds_bot_info *DS, struct paramed_type *T);
+int print_ds_constructor_bytes (struct tl_ds_string *DS, struct paramed_type *T);
+int print_ds_constructor_chat_empty (struct tl_ds_chat *DS, struct paramed_type *T);
+int print_ds_constructor_chat (struct tl_ds_chat *DS, struct paramed_type *T);
+int print_ds_constructor_chat_forbidden (struct tl_ds_chat *DS, struct paramed_type *T);
+int print_ds_constructor_geo_chat (struct tl_ds_chat *DS, struct paramed_type *T);
+int print_ds_constructor_chat_full (struct tl_ds_chat_full *DS, struct paramed_type *T);
+int print_ds_constructor_chat_invite_already (struct tl_ds_chat_invite *DS, struct paramed_type *T);
+int print_ds_constructor_chat_invite (struct tl_ds_chat_invite *DS, struct paramed_type *T);
+int print_ds_constructor_chat_located (struct tl_ds_chat_located *DS, struct paramed_type *T);
+int print_ds_constructor_chat_participant (struct tl_ds_chat_participant *DS, struct paramed_type *T);
+int print_ds_constructor_chat_participants_forbidden (struct tl_ds_chat_participants *DS, struct paramed_type *T);
+int print_ds_constructor_chat_participants (struct tl_ds_chat_participants *DS, struct paramed_type *T);
+int print_ds_constructor_chat_photo_empty (struct tl_ds_chat_photo *DS, struct paramed_type *T);
+int print_ds_constructor_chat_photo (struct tl_ds_chat_photo *DS, struct paramed_type *T);
+int print_ds_constructor_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *DS, struct paramed_type *T);
+int print_ds_constructor_config (struct tl_ds_config *DS, struct paramed_type *T);
+int print_ds_constructor_contact (struct tl_ds_contact *DS, struct paramed_type *T);
+int print_ds_constructor_contact_blocked (struct tl_ds_contact_blocked *DS, struct paramed_type *T);
+int print_ds_constructor_contact_found (struct tl_ds_contact_found *DS, struct paramed_type *T);
+int print_ds_constructor_contact_link_unknown (struct tl_ds_contact_link *DS, struct paramed_type *T);
+int print_ds_constructor_contact_link_none (struct tl_ds_contact_link *DS, struct paramed_type *T);
+int print_ds_constructor_contact_link_has_phone (struct tl_ds_contact_link *DS, struct paramed_type *T);
+int print_ds_constructor_contact_link_contact (struct tl_ds_contact_link *DS, struct paramed_type *T);
+int print_ds_constructor_contact_status (struct tl_ds_contact_status *DS, struct paramed_type *T);
+int print_ds_constructor_contact_suggested (struct tl_ds_contact_suggested *DS, struct paramed_type *T);
+int print_ds_constructor_dc_option_l28 (struct tl_ds_dc_option *DS, struct paramed_type *T);
+int print_ds_constructor_dc_option (struct tl_ds_dc_option *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message (struct tl_ds_decrypted_message *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_service (struct tl_ds_decrypted_message *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_action_set_message_t_t_l (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_action_read_messages (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_action_delete_messages (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_action_screenshot_messages (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_action_flush_history (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_action_resend (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_action_notify_layer (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_action_typing (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_action_request_key (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_action_accept_key (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_action_abort_key (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_action_commit_key (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_action_noop (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_layer (struct tl_ds_decrypted_message_layer *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_media_empty (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_media_photo (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_media_geo_point (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_media_contact (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_media_document (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_media_video (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_media_audio (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_media_external_document (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_media_video_l12 (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_decrypted_message_media_audio_l12 (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_dialog (struct tl_ds_dialog *DS, struct paramed_type *T);
+int print_ds_constructor_disabled_feature (struct tl_ds_disabled_feature *DS, struct paramed_type *T);
+int print_ds_constructor_document_empty (struct tl_ds_document *DS, struct paramed_type *T);
+int print_ds_constructor_document (struct tl_ds_document *DS, struct paramed_type *T);
+int print_ds_constructor_document_l19 (struct tl_ds_document *DS, struct paramed_type *T);
+int print_ds_constructor_document_attribute_image_size (struct tl_ds_document_attribute *DS, struct paramed_type *T);
+int print_ds_constructor_document_attribute_animated (struct tl_ds_document_attribute *DS, struct paramed_type *T);
+int print_ds_constructor_document_attribute_sticker_l28 (struct tl_ds_document_attribute *DS, struct paramed_type *T);
+int print_ds_constructor_document_attribute_sticker (struct tl_ds_document_attribute *DS, struct paramed_type *T);
+int print_ds_constructor_document_attribute_video (struct tl_ds_document_attribute *DS, struct paramed_type *T);
+int print_ds_constructor_document_attribute_audio (struct tl_ds_document_attribute *DS, struct paramed_type *T);
+int print_ds_constructor_document_attribute_filename (struct tl_ds_document_attribute *DS, struct paramed_type *T);
+int print_ds_constructor_double (double *DS, struct paramed_type *T);
+int print_ds_constructor_encrypted_chat_empty (struct tl_ds_encrypted_chat *DS, struct paramed_type *T);
+int print_ds_constructor_encrypted_chat_waiting (struct tl_ds_encrypted_chat *DS, struct paramed_type *T);
+int print_ds_constructor_encrypted_chat_requested (struct tl_ds_encrypted_chat *DS, struct paramed_type *T);
+int print_ds_constructor_encrypted_chat (struct tl_ds_encrypted_chat *DS, struct paramed_type *T);
+int print_ds_constructor_encrypted_chat_discarded (struct tl_ds_encrypted_chat *DS, struct paramed_type *T);
+int print_ds_constructor_encrypted_file_empty (struct tl_ds_encrypted_file *DS, struct paramed_type *T);
+int print_ds_constructor_encrypted_file (struct tl_ds_encrypted_file *DS, struct paramed_type *T);
+int print_ds_constructor_encrypted_message (struct tl_ds_encrypted_message *DS, struct paramed_type *T);
+int print_ds_constructor_encrypted_message_service (struct tl_ds_encrypted_message *DS, struct paramed_type *T);
+int print_ds_constructor_error (struct tl_ds_error *DS, struct paramed_type *T);
+int print_ds_constructor_chat_invite_empty (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T);
+int print_ds_constructor_chat_invite_exported (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T);
+int print_ds_constructor_file_location_unavailable (struct tl_ds_file_location *DS, struct paramed_type *T);
+int print_ds_constructor_file_location (struct tl_ds_file_location *DS, struct paramed_type *T);
+int print_ds_constructor_geo_chat_message_empty (struct tl_ds_geo_chat_message *DS, struct paramed_type *T);
+int print_ds_constructor_geo_chat_message (struct tl_ds_geo_chat_message *DS, struct paramed_type *T);
+int print_ds_constructor_geo_chat_message_service (struct tl_ds_geo_chat_message *DS, struct paramed_type *T);
+int print_ds_constructor_geo_point_empty (struct tl_ds_geo_point *DS, struct paramed_type *T);
+int print_ds_constructor_geo_point (struct tl_ds_geo_point *DS, struct paramed_type *T);
+int print_ds_constructor_imported_contact (struct tl_ds_imported_contact *DS, struct paramed_type *T);
+int print_ds_constructor_input_app_event (struct tl_ds_input_app_event *DS, struct paramed_type *T);
+int print_ds_constructor_input_audio_empty (struct tl_ds_input_audio *DS, struct paramed_type *T);
+int print_ds_constructor_input_audio (struct tl_ds_input_audio *DS, struct paramed_type *T);
+int print_ds_constructor_input_chat_photo_empty (struct tl_ds_input_chat_photo *DS, struct paramed_type *T);
+int print_ds_constructor_input_chat_uploaded_photo (struct tl_ds_input_chat_photo *DS, struct paramed_type *T);
+int print_ds_constructor_input_chat_photo (struct tl_ds_input_chat_photo *DS, struct paramed_type *T);
+int print_ds_constructor_input_phone_contact (struct tl_ds_input_contact *DS, struct paramed_type *T);
+int print_ds_constructor_input_document_empty (struct tl_ds_input_document *DS, struct paramed_type *T);
+int print_ds_constructor_input_document (struct tl_ds_input_document *DS, struct paramed_type *T);
+int print_ds_constructor_input_encrypted_chat (struct tl_ds_input_encrypted_chat *DS, struct paramed_type *T);
+int print_ds_constructor_input_encrypted_file_empty (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T);
+int print_ds_constructor_input_encrypted_file_uploaded (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T);
+int print_ds_constructor_input_encrypted_file (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T);
+int print_ds_constructor_input_encrypted_file_big_uploaded (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T);
+int print_ds_constructor_input_file (struct tl_ds_input_file *DS, struct paramed_type *T);
+int print_ds_constructor_input_file_big (struct tl_ds_input_file *DS, struct paramed_type *T);
+int print_ds_constructor_input_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T);
+int print_ds_constructor_input_video_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T);
+int print_ds_constructor_input_encrypted_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T);
+int print_ds_constructor_input_audio_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T);
+int print_ds_constructor_input_document_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T);
+int print_ds_constructor_input_geo_chat (struct tl_ds_input_geo_chat *DS, struct paramed_type *T);
+int print_ds_constructor_input_geo_point_empty (struct tl_ds_input_geo_point *DS, struct paramed_type *T);
+int print_ds_constructor_input_geo_point (struct tl_ds_input_geo_point *DS, struct paramed_type *T);
+int print_ds_constructor_input_media_empty (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_constructor_input_media_uploaded_photo (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_constructor_input_media_photo (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_constructor_input_media_geo_point (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_constructor_input_media_contact (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_constructor_input_media_uploaded_video (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_constructor_input_media_uploaded_thumb_video (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_constructor_input_media_video (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_constructor_input_media_uploaded_audio (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_constructor_input_media_audio (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_constructor_input_media_uploaded_document (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_constructor_input_media_uploaded_thumb_document (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_constructor_input_media_document (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_constructor_input_media_venue (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_constructor_input_notify_peer (struct tl_ds_input_notify_peer *DS, struct paramed_type *T);
+int print_ds_constructor_input_notify_users (struct tl_ds_input_notify_peer *DS, struct paramed_type *T);
+int print_ds_constructor_input_notify_chats (struct tl_ds_input_notify_peer *DS, struct paramed_type *T);
+int print_ds_constructor_input_notify_all (struct tl_ds_input_notify_peer *DS, struct paramed_type *T);
+int print_ds_constructor_input_notify_geo_chat_peer (struct tl_ds_input_notify_peer *DS, struct paramed_type *T);
+int print_ds_constructor_input_peer_empty (struct tl_ds_input_peer *DS, struct paramed_type *T);
+int print_ds_constructor_input_peer_self (struct tl_ds_input_peer *DS, struct paramed_type *T);
+int print_ds_constructor_input_peer_contact (struct tl_ds_input_peer *DS, struct paramed_type *T);
+int print_ds_constructor_input_peer_foreign (struct tl_ds_input_peer *DS, struct paramed_type *T);
+int print_ds_constructor_input_peer_chat (struct tl_ds_input_peer *DS, struct paramed_type *T);
+int print_ds_constructor_input_peer_notify_events_empty (struct tl_ds_input_peer_notify_events *DS, struct paramed_type *T);
+int print_ds_constructor_input_peer_notify_events_all (struct tl_ds_input_peer_notify_events *DS, struct paramed_type *T);
+int print_ds_constructor_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *DS, struct paramed_type *T);
+int print_ds_constructor_input_photo_empty (struct tl_ds_input_photo *DS, struct paramed_type *T);
+int print_ds_constructor_input_photo (struct tl_ds_input_photo *DS, struct paramed_type *T);
+int print_ds_constructor_input_photo_crop_auto (struct tl_ds_input_photo_crop *DS, struct paramed_type *T);
+int print_ds_constructor_input_photo_crop (struct tl_ds_input_photo_crop *DS, struct paramed_type *T);
+int print_ds_constructor_input_privacy_key_status_timestamp (struct tl_ds_input_privacy_key *DS, struct paramed_type *T);
+int print_ds_constructor_input_privacy_value_allow_contacts (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T);
+int print_ds_constructor_input_privacy_value_allow_all (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T);
+int print_ds_constructor_input_privacy_value_allow_users (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T);
+int print_ds_constructor_input_privacy_value_disallow_contacts (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T);
+int print_ds_constructor_input_privacy_value_disallow_all (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T);
+int print_ds_constructor_input_privacy_value_disallow_users (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T);
+int print_ds_constructor_input_sticker_set_empty (struct tl_ds_input_sticker_set *DS, struct paramed_type *T);
+int print_ds_constructor_input_sticker_set_i_d (struct tl_ds_input_sticker_set *DS, struct paramed_type *T);
+int print_ds_constructor_input_sticker_set_short_name (struct tl_ds_input_sticker_set *DS, struct paramed_type *T);
+int print_ds_constructor_input_user_empty (struct tl_ds_input_user *DS, struct paramed_type *T);
+int print_ds_constructor_input_user_self (struct tl_ds_input_user *DS, struct paramed_type *T);
+int print_ds_constructor_input_user_contact (struct tl_ds_input_user *DS, struct paramed_type *T);
+int print_ds_constructor_input_user_foreign (struct tl_ds_input_user *DS, struct paramed_type *T);
+int print_ds_constructor_input_video_empty (struct tl_ds_input_video *DS, struct paramed_type *T);
+int print_ds_constructor_input_video (struct tl_ds_input_video *DS, struct paramed_type *T);
+int print_ds_constructor_int (int *DS, struct paramed_type *T);
+int print_ds_constructor_int128 (struct tl_ds_int128 *DS, struct paramed_type *T);
+int print_ds_constructor_int256 (struct tl_ds_int256 *DS, struct paramed_type *T);
+int print_ds_constructor_keyboard_button (struct tl_ds_keyboard_button *DS, struct paramed_type *T);
+int print_ds_constructor_keyboard_button_row (struct tl_ds_keyboard_button_row *DS, struct paramed_type *T);
+int print_ds_constructor_long (long long *DS, struct paramed_type *T);
+int print_ds_constructor_message_empty (struct tl_ds_message *DS, struct paramed_type *T);
+int print_ds_constructor_message (struct tl_ds_message *DS, struct paramed_type *T);
+int print_ds_constructor_message_service (struct tl_ds_message *DS, struct paramed_type *T);
+int print_ds_constructor_message_action_empty (struct tl_ds_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_message_action_chat_create (struct tl_ds_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_message_action_chat_edit_title (struct tl_ds_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_message_action_chat_edit_photo (struct tl_ds_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_message_action_chat_delete_photo (struct tl_ds_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_message_action_chat_add_user (struct tl_ds_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_message_action_chat_delete_user (struct tl_ds_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_message_action_geo_chat_create (struct tl_ds_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_message_action_geo_chat_checkin (struct tl_ds_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_message_action_chat_joined_by_link (struct tl_ds_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_message_media_empty (struct tl_ds_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_message_media_photo (struct tl_ds_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_message_media_video (struct tl_ds_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_message_media_geo (struct tl_ds_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_message_media_contact (struct tl_ds_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_message_media_unsupported (struct tl_ds_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_message_media_document (struct tl_ds_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_message_media_audio (struct tl_ds_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_message_media_web_page (struct tl_ds_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_message_media_venue (struct tl_ds_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_message_media_photo_l27 (struct tl_ds_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_message_media_video_l27 (struct tl_ds_message_media *DS, struct paramed_type *T);
+int print_ds_constructor_input_messages_filter_empty (struct tl_ds_messages_filter *DS, struct paramed_type *T);
+int print_ds_constructor_input_messages_filter_photos (struct tl_ds_messages_filter *DS, struct paramed_type *T);
+int print_ds_constructor_input_messages_filter_video (struct tl_ds_messages_filter *DS, struct paramed_type *T);
+int print_ds_constructor_input_messages_filter_photo_video (struct tl_ds_messages_filter *DS, struct paramed_type *T);
+int print_ds_constructor_input_messages_filter_photo_video_documents (struct tl_ds_messages_filter *DS, struct paramed_type *T);
+int print_ds_constructor_input_messages_filter_document (struct tl_ds_messages_filter *DS, struct paramed_type *T);
+int print_ds_constructor_input_messages_filter_audio (struct tl_ds_messages_filter *DS, struct paramed_type *T);
+int print_ds_constructor_nearest_dc (struct tl_ds_nearest_dc *DS, struct paramed_type *T);
+int print_ds_constructor_notify_peer (struct tl_ds_notify_peer *DS, struct paramed_type *T);
+int print_ds_constructor_notify_users (struct tl_ds_notify_peer *DS, struct paramed_type *T);
+int print_ds_constructor_notify_chats (struct tl_ds_notify_peer *DS, struct paramed_type *T);
+int print_ds_constructor_notify_all (struct tl_ds_notify_peer *DS, struct paramed_type *T);
+int print_ds_constructor_null (struct tl_ds_null *DS, struct paramed_type *T);
+int print_ds_constructor_p_q_inner_data (struct tl_ds_p_q_inner_data *DS, struct paramed_type *T);
+int print_ds_constructor_p_q_inner_data_temp (struct tl_ds_p_q_inner_data *DS, struct paramed_type *T);
+int print_ds_constructor_peer_user (struct tl_ds_peer *DS, struct paramed_type *T);
+int print_ds_constructor_peer_chat (struct tl_ds_peer *DS, struct paramed_type *T);
+int print_ds_constructor_peer_notify_events_empty (struct tl_ds_peer_notify_events *DS, struct paramed_type *T);
+int print_ds_constructor_peer_notify_events_all (struct tl_ds_peer_notify_events *DS, struct paramed_type *T);
+int print_ds_constructor_peer_notify_settings_empty (struct tl_ds_peer_notify_settings *DS, struct paramed_type *T);
+int print_ds_constructor_peer_notify_settings (struct tl_ds_peer_notify_settings *DS, struct paramed_type *T);
+int print_ds_constructor_photo_empty (struct tl_ds_photo *DS, struct paramed_type *T);
+int print_ds_constructor_photo (struct tl_ds_photo *DS, struct paramed_type *T);
+int print_ds_constructor_photo_l27 (struct tl_ds_photo *DS, struct paramed_type *T);
+int print_ds_constructor_photo_size_empty (struct tl_ds_photo_size *DS, struct paramed_type *T);
+int print_ds_constructor_photo_size (struct tl_ds_photo_size *DS, struct paramed_type *T);
+int print_ds_constructor_photo_cached_size (struct tl_ds_photo_size *DS, struct paramed_type *T);
+int print_ds_constructor_privacy_key_status_timestamp (struct tl_ds_privacy_key *DS, struct paramed_type *T);
+int print_ds_constructor_privacy_value_allow_contacts (struct tl_ds_privacy_rule *DS, struct paramed_type *T);
+int print_ds_constructor_privacy_value_allow_all (struct tl_ds_privacy_rule *DS, struct paramed_type *T);
+int print_ds_constructor_privacy_value_allow_users (struct tl_ds_privacy_rule *DS, struct paramed_type *T);
+int print_ds_constructor_privacy_value_disallow_contacts (struct tl_ds_privacy_rule *DS, struct paramed_type *T);
+int print_ds_constructor_privacy_value_disallow_all (struct tl_ds_privacy_rule *DS, struct paramed_type *T);
+int print_ds_constructor_privacy_value_disallow_users (struct tl_ds_privacy_rule *DS, struct paramed_type *T);
+int print_ds_constructor_received_notify_message (struct tl_ds_received_notify_message *DS, struct paramed_type *T);
+int print_ds_constructor_reply_keyboard_hide (struct tl_ds_reply_markup *DS, struct paramed_type *T);
+int print_ds_constructor_reply_keyboard_force_reply (struct tl_ds_reply_markup *DS, struct paramed_type *T);
+int print_ds_constructor_reply_keyboard_markup (struct tl_ds_reply_markup *DS, struct paramed_type *T);
+int print_ds_constructor_res_p_q (struct tl_ds_res_p_q *DS, struct paramed_type *T);
+int print_ds_constructor_send_message_typing_action (struct tl_ds_send_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_send_message_cancel_action (struct tl_ds_send_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_send_message_record_video_action (struct tl_ds_send_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_send_message_upload_video_action_l27 (struct tl_ds_send_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_send_message_upload_video_action (struct tl_ds_send_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_send_message_record_audio_action (struct tl_ds_send_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_send_message_upload_audio_action_l27 (struct tl_ds_send_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_send_message_upload_audio_action (struct tl_ds_send_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_send_message_upload_photo_action (struct tl_ds_send_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_send_message_upload_document_action_l27 (struct tl_ds_send_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_send_message_upload_document_action (struct tl_ds_send_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_send_message_geo_location_action (struct tl_ds_send_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_send_message_choose_contact_action (struct tl_ds_send_message_action *DS, struct paramed_type *T);
+int print_ds_constructor_server_d_h_params_fail (struct tl_ds_server_d_h_params *DS, struct paramed_type *T);
+int print_ds_constructor_server_d_h_params_ok (struct tl_ds_server_d_h_params *DS, struct paramed_type *T);
+int print_ds_constructor_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *DS, struct paramed_type *T);
+int print_ds_constructor_dh_gen_ok (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T);
+int print_ds_constructor_dh_gen_retry (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T);
+int print_ds_constructor_dh_gen_fail (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T);
+int print_ds_constructor_sticker_pack (struct tl_ds_sticker_pack *DS, struct paramed_type *T);
+int print_ds_constructor_sticker_set (struct tl_ds_sticker_set *DS, struct paramed_type *T);
+int print_ds_constructor_string (struct tl_ds_string *DS, struct paramed_type *T);
+int print_ds_constructor_update_new_message (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_message_i_d (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_delete_messages (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_user_typing (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_chat_user_typing (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_chat_participants (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_user_status (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_user_name (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_user_photo (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_contact_registered (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_contact_link (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_new_authorization (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_new_geo_chat_message (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_new_encrypted_message (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_encrypted_chat_typing (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_encryption (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_encrypted_messages_read (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_chat_participant_add (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_chat_participant_delete (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_dc_options (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_user_blocked (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_notify_settings (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_service_notification (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_privacy (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_user_phone (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_read_history_inbox (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_read_history_outbox (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_web_page (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_read_messages_contents (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_update_msg_update (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_constructor_updates_too_long (struct tl_ds_updates *DS, struct paramed_type *T);
+int print_ds_constructor_update_short_message (struct tl_ds_updates *DS, struct paramed_type *T);
+int print_ds_constructor_update_short_chat_message (struct tl_ds_updates *DS, struct paramed_type *T);
+int print_ds_constructor_update_short (struct tl_ds_updates *DS, struct paramed_type *T);
+int print_ds_constructor_updates_combined (struct tl_ds_updates *DS, struct paramed_type *T);
+int print_ds_constructor_updates (struct tl_ds_updates *DS, struct paramed_type *T);
+int print_ds_constructor_user_empty (struct tl_ds_user *DS, struct paramed_type *T);
+int print_ds_constructor_user (struct tl_ds_user *DS, struct paramed_type *T);
+int print_ds_constructor_user_full (struct tl_ds_user_full *DS, struct paramed_type *T);
+int print_ds_constructor_user_profile_photo_empty (struct tl_ds_user_profile_photo *DS, struct paramed_type *T);
+int print_ds_constructor_user_profile_photo (struct tl_ds_user_profile_photo *DS, struct paramed_type *T);
+int print_ds_constructor_user_status_empty (struct tl_ds_user_status *DS, struct paramed_type *T);
+int print_ds_constructor_user_status_online (struct tl_ds_user_status *DS, struct paramed_type *T);
+int print_ds_constructor_user_status_offline (struct tl_ds_user_status *DS, struct paramed_type *T);
+int print_ds_constructor_user_status_recently (struct tl_ds_user_status *DS, struct paramed_type *T);
+int print_ds_constructor_user_status_last_week (struct tl_ds_user_status *DS, struct paramed_type *T);
+int print_ds_constructor_user_status_last_month (struct tl_ds_user_status *DS, struct paramed_type *T);
+int print_ds_constructor_vector (struct tl_ds_vector *DS, struct paramed_type *T);
+int print_ds_constructor_video_empty (struct tl_ds_video *DS, struct paramed_type *T);
+int print_ds_constructor_video (struct tl_ds_video *DS, struct paramed_type *T);
+int print_ds_constructor_video_l27 (struct tl_ds_video *DS, struct paramed_type *T);
+int print_ds_constructor_wall_paper (struct tl_ds_wall_paper *DS, struct paramed_type *T);
+int print_ds_constructor_wall_paper_solid (struct tl_ds_wall_paper *DS, struct paramed_type *T);
+int print_ds_constructor_web_page_empty (struct tl_ds_web_page *DS, struct paramed_type *T);
+int print_ds_constructor_web_page_pending (struct tl_ds_web_page *DS, struct paramed_type *T);
+int print_ds_constructor_web_page (struct tl_ds_web_page *DS, struct paramed_type *T);
+int print_ds_constructor_account_authorizations (struct tl_ds_account_authorizations *DS, struct paramed_type *T);
+int print_ds_constructor_account_no_password (struct tl_ds_account_password *DS, struct paramed_type *T);
+int print_ds_constructor_account_password (struct tl_ds_account_password *DS, struct paramed_type *T);
+int print_ds_constructor_account_password_input_settings (struct tl_ds_account_password_input_settings *DS, struct paramed_type *T);
+int print_ds_constructor_account_password_settings (struct tl_ds_account_password_settings *DS, struct paramed_type *T);
+int print_ds_constructor_account_privacy_rules (struct tl_ds_account_privacy_rules *DS, struct paramed_type *T);
+int print_ds_constructor_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *DS, struct paramed_type *T);
+int print_ds_constructor_auth_authorization (struct tl_ds_auth_authorization *DS, struct paramed_type *T);
+int print_ds_constructor_auth_checked_phone (struct tl_ds_auth_checked_phone *DS, struct paramed_type *T);
+int print_ds_constructor_auth_exported_authorization (struct tl_ds_auth_exported_authorization *DS, struct paramed_type *T);
+int print_ds_constructor_auth_password_recovery (struct tl_ds_auth_password_recovery *DS, struct paramed_type *T);
+int print_ds_constructor_auth_sent_code (struct tl_ds_auth_sent_code *DS, struct paramed_type *T);
+int print_ds_constructor_auth_sent_app_code (struct tl_ds_auth_sent_code *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_encr_key (struct tl_ds_binlog_encr_key *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_start (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_dc_option (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_dc_option_new (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_auth_key (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_default_dc (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_dc_signed (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_our_id (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_set_dh_params (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_set_pts (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_set_qts (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_set_date (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_set_seq (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_encr_chat_delete (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_encr_chat_new (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_encr_chat_exchange_new (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_user_delete (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_user_new (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_chat_new (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_chat_add_participant (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_chat_del_participant (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_set_msg_id (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_message_delete (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_message_new (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_message_encr_new (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_msg_update (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_binlog_reset_authorization (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_constructor_contacts_blocked (struct tl_ds_contacts_blocked *DS, struct paramed_type *T);
+int print_ds_constructor_contacts_blocked_slice (struct tl_ds_contacts_blocked *DS, struct paramed_type *T);
+int print_ds_constructor_contacts_contacts_not_modified (struct tl_ds_contacts_contacts *DS, struct paramed_type *T);
+int print_ds_constructor_contacts_contacts (struct tl_ds_contacts_contacts *DS, struct paramed_type *T);
+int print_ds_constructor_contacts_found (struct tl_ds_contacts_found *DS, struct paramed_type *T);
+int print_ds_constructor_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *DS, struct paramed_type *T);
+int print_ds_constructor_contacts_link (struct tl_ds_contacts_link *DS, struct paramed_type *T);
+int print_ds_constructor_contacts_suggested (struct tl_ds_contacts_suggested *DS, struct paramed_type *T);
+int print_ds_constructor_geochats_located (struct tl_ds_geochats_located *DS, struct paramed_type *T);
+int print_ds_constructor_geochats_messages (struct tl_ds_geochats_messages *DS, struct paramed_type *T);
+int print_ds_constructor_geochats_messages_slice (struct tl_ds_geochats_messages *DS, struct paramed_type *T);
+int print_ds_constructor_geochats_stated_message (struct tl_ds_geochats_stated_message *DS, struct paramed_type *T);
+int print_ds_constructor_help_app_update (struct tl_ds_help_app_update *DS, struct paramed_type *T);
+int print_ds_constructor_help_no_app_update (struct tl_ds_help_app_update *DS, struct paramed_type *T);
+int print_ds_constructor_help_invite_text (struct tl_ds_help_invite_text *DS, struct paramed_type *T);
+int print_ds_constructor_help_support (struct tl_ds_help_support *DS, struct paramed_type *T);
+int print_ds_constructor_messages_affected_history (struct tl_ds_messages_affected_history *DS, struct paramed_type *T);
+int print_ds_constructor_messages_affected_messages (struct tl_ds_messages_affected_messages *DS, struct paramed_type *T);
+int print_ds_constructor_messages_all_stickers_not_modified (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T);
+int print_ds_constructor_messages_all_stickers (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T);
+int print_ds_constructor_messages_chat_full (struct tl_ds_messages_chat_full *DS, struct paramed_type *T);
+int print_ds_constructor_messages_chats (struct tl_ds_messages_chats *DS, struct paramed_type *T);
+int print_ds_constructor_messages_dh_config_not_modified (struct tl_ds_messages_dh_config *DS, struct paramed_type *T);
+int print_ds_constructor_messages_dh_config (struct tl_ds_messages_dh_config *DS, struct paramed_type *T);
+int print_ds_constructor_messages_dialogs (struct tl_ds_messages_dialogs *DS, struct paramed_type *T);
+int print_ds_constructor_messages_dialogs_slice (struct tl_ds_messages_dialogs *DS, struct paramed_type *T);
+int print_ds_constructor_messages_message_empty (struct tl_ds_messages_message *DS, struct paramed_type *T);
+int print_ds_constructor_messages_messages (struct tl_ds_messages_messages *DS, struct paramed_type *T);
+int print_ds_constructor_messages_messages_slice (struct tl_ds_messages_messages *DS, struct paramed_type *T);
+int print_ds_constructor_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *DS, struct paramed_type *T);
+int print_ds_constructor_messages_sent_encrypted_file (struct tl_ds_messages_sent_encrypted_message *DS, struct paramed_type *T);
+int print_ds_constructor_messages_sent_message (struct tl_ds_messages_sent_message *DS, struct paramed_type *T);
+int print_ds_constructor_messages_sent_message_link (struct tl_ds_messages_sent_message *DS, struct paramed_type *T);
+int print_ds_constructor_messages_sticker_set (struct tl_ds_messages_sticker_set *DS, struct paramed_type *T);
+int print_ds_constructor_messages_stickers_not_modified (struct tl_ds_messages_stickers *DS, struct paramed_type *T);
+int print_ds_constructor_messages_stickers (struct tl_ds_messages_stickers *DS, struct paramed_type *T);
+int print_ds_constructor_photos_photo (struct tl_ds_photos_photo *DS, struct paramed_type *T);
+int print_ds_constructor_photos_photos (struct tl_ds_photos_photos *DS, struct paramed_type *T);
+int print_ds_constructor_photos_photos_slice (struct tl_ds_photos_photos *DS, struct paramed_type *T);
+int print_ds_constructor_storage_file_unknown (struct tl_ds_storage_file_type *DS, struct paramed_type *T);
+int print_ds_constructor_storage_file_jpeg (struct tl_ds_storage_file_type *DS, struct paramed_type *T);
+int print_ds_constructor_storage_file_gif (struct tl_ds_storage_file_type *DS, struct paramed_type *T);
+int print_ds_constructor_storage_file_png (struct tl_ds_storage_file_type *DS, struct paramed_type *T);
+int print_ds_constructor_storage_file_pdf (struct tl_ds_storage_file_type *DS, struct paramed_type *T);
+int print_ds_constructor_storage_file_mp3 (struct tl_ds_storage_file_type *DS, struct paramed_type *T);
+int print_ds_constructor_storage_file_mov (struct tl_ds_storage_file_type *DS, struct paramed_type *T);
+int print_ds_constructor_storage_file_partial (struct tl_ds_storage_file_type *DS, struct paramed_type *T);
+int print_ds_constructor_storage_file_mp4 (struct tl_ds_storage_file_type *DS, struct paramed_type *T);
+int print_ds_constructor_storage_file_webp (struct tl_ds_storage_file_type *DS, struct paramed_type *T);
+int print_ds_constructor_updates_difference_empty (struct tl_ds_updates_difference *DS, struct paramed_type *T);
+int print_ds_constructor_updates_difference (struct tl_ds_updates_difference *DS, struct paramed_type *T);
+int print_ds_constructor_updates_difference_slice (struct tl_ds_updates_difference *DS, struct paramed_type *T);
+int print_ds_constructor_updates_state (struct tl_ds_updates_state *DS, struct paramed_type *T);
+int print_ds_constructor_upload_file (struct tl_ds_upload_file *DS, struct paramed_type *T);
+int print_ds_type_account_days_t_t_l (struct tl_ds_account_days_t_t_l *DS, struct paramed_type *T);
+int print_ds_type_bare_account_days_t_t_l (struct tl_ds_account_days_t_t_l *DS, struct paramed_type *T);
+int print_ds_type_audio (struct tl_ds_audio *DS, struct paramed_type *T);
+int print_ds_type_bare_audio (struct tl_ds_audio *DS, struct paramed_type *T);
+int print_ds_type_authorization (struct tl_ds_authorization *DS, struct paramed_type *T);
+int print_ds_type_bare_authorization (struct tl_ds_authorization *DS, struct paramed_type *T);
+int print_ds_type_bool (struct tl_ds_bool *DS, struct paramed_type *T);
+int print_ds_type_bare_bool (struct tl_ds_bool *DS, struct paramed_type *T);
+int print_ds_type_bot_command (struct tl_ds_bot_command *DS, struct paramed_type *T);
+int print_ds_type_bare_bot_command (struct tl_ds_bot_command *DS, struct paramed_type *T);
+int print_ds_type_bot_info (struct tl_ds_bot_info *DS, struct paramed_type *T);
+int print_ds_type_bare_bot_info (struct tl_ds_bot_info *DS, struct paramed_type *T);
+int print_ds_type_bytes (struct tl_ds_string *DS, struct paramed_type *T);
+int print_ds_type_bare_bytes (struct tl_ds_string *DS, struct paramed_type *T);
+int print_ds_type_chat (struct tl_ds_chat *DS, struct paramed_type *T);
+int print_ds_type_bare_chat (struct tl_ds_chat *DS, struct paramed_type *T);
+int print_ds_type_chat_full (struct tl_ds_chat_full *DS, struct paramed_type *T);
+int print_ds_type_bare_chat_full (struct tl_ds_chat_full *DS, struct paramed_type *T);
+int print_ds_type_chat_invite (struct tl_ds_chat_invite *DS, struct paramed_type *T);
+int print_ds_type_bare_chat_invite (struct tl_ds_chat_invite *DS, struct paramed_type *T);
+int print_ds_type_chat_located (struct tl_ds_chat_located *DS, struct paramed_type *T);
+int print_ds_type_bare_chat_located (struct tl_ds_chat_located *DS, struct paramed_type *T);
+int print_ds_type_chat_participant (struct tl_ds_chat_participant *DS, struct paramed_type *T);
+int print_ds_type_bare_chat_participant (struct tl_ds_chat_participant *DS, struct paramed_type *T);
+int print_ds_type_chat_participants (struct tl_ds_chat_participants *DS, struct paramed_type *T);
+int print_ds_type_bare_chat_participants (struct tl_ds_chat_participants *DS, struct paramed_type *T);
+int print_ds_type_chat_photo (struct tl_ds_chat_photo *DS, struct paramed_type *T);
+int print_ds_type_bare_chat_photo (struct tl_ds_chat_photo *DS, struct paramed_type *T);
+int print_ds_type_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *DS, struct paramed_type *T);
+int print_ds_type_bare_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *DS, struct paramed_type *T);
+int print_ds_type_config (struct tl_ds_config *DS, struct paramed_type *T);
+int print_ds_type_bare_config (struct tl_ds_config *DS, struct paramed_type *T);
+int print_ds_type_contact (struct tl_ds_contact *DS, struct paramed_type *T);
+int print_ds_type_bare_contact (struct tl_ds_contact *DS, struct paramed_type *T);
+int print_ds_type_contact_blocked (struct tl_ds_contact_blocked *DS, struct paramed_type *T);
+int print_ds_type_bare_contact_blocked (struct tl_ds_contact_blocked *DS, struct paramed_type *T);
+int print_ds_type_contact_found (struct tl_ds_contact_found *DS, struct paramed_type *T);
+int print_ds_type_bare_contact_found (struct tl_ds_contact_found *DS, struct paramed_type *T);
+int print_ds_type_contact_link (struct tl_ds_contact_link *DS, struct paramed_type *T);
+int print_ds_type_bare_contact_link (struct tl_ds_contact_link *DS, struct paramed_type *T);
+int print_ds_type_contact_status (struct tl_ds_contact_status *DS, struct paramed_type *T);
+int print_ds_type_bare_contact_status (struct tl_ds_contact_status *DS, struct paramed_type *T);
+int print_ds_type_contact_suggested (struct tl_ds_contact_suggested *DS, struct paramed_type *T);
+int print_ds_type_bare_contact_suggested (struct tl_ds_contact_suggested *DS, struct paramed_type *T);
+int print_ds_type_dc_option (struct tl_ds_dc_option *DS, struct paramed_type *T);
+int print_ds_type_bare_dc_option (struct tl_ds_dc_option *DS, struct paramed_type *T);
+int print_ds_type_decrypted_message (struct tl_ds_decrypted_message *DS, struct paramed_type *T);
+int print_ds_type_bare_decrypted_message (struct tl_ds_decrypted_message *DS, struct paramed_type *T);
+int print_ds_type_decrypted_message_action (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T);
+int print_ds_type_bare_decrypted_message_action (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T);
+int print_ds_type_decrypted_message_layer (struct tl_ds_decrypted_message_layer *DS, struct paramed_type *T);
+int print_ds_type_bare_decrypted_message_layer (struct tl_ds_decrypted_message_layer *DS, struct paramed_type *T);
+int print_ds_type_decrypted_message_media (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T);
+int print_ds_type_bare_decrypted_message_media (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T);
+int print_ds_type_dialog (struct tl_ds_dialog *DS, struct paramed_type *T);
+int print_ds_type_bare_dialog (struct tl_ds_dialog *DS, struct paramed_type *T);
+int print_ds_type_disabled_feature (struct tl_ds_disabled_feature *DS, struct paramed_type *T);
+int print_ds_type_bare_disabled_feature (struct tl_ds_disabled_feature *DS, struct paramed_type *T);
+int print_ds_type_document (struct tl_ds_document *DS, struct paramed_type *T);
+int print_ds_type_bare_document (struct tl_ds_document *DS, struct paramed_type *T);
+int print_ds_type_document_attribute (struct tl_ds_document_attribute *DS, struct paramed_type *T);
+int print_ds_type_bare_document_attribute (struct tl_ds_document_attribute *DS, struct paramed_type *T);
+int print_ds_type_double (double *DS, struct paramed_type *T);
+int print_ds_type_bare_double (double *DS, struct paramed_type *T);
+int print_ds_type_encrypted_chat (struct tl_ds_encrypted_chat *DS, struct paramed_type *T);
+int print_ds_type_bare_encrypted_chat (struct tl_ds_encrypted_chat *DS, struct paramed_type *T);
+int print_ds_type_encrypted_file (struct tl_ds_encrypted_file *DS, struct paramed_type *T);
+int print_ds_type_bare_encrypted_file (struct tl_ds_encrypted_file *DS, struct paramed_type *T);
+int print_ds_type_encrypted_message (struct tl_ds_encrypted_message *DS, struct paramed_type *T);
+int print_ds_type_bare_encrypted_message (struct tl_ds_encrypted_message *DS, struct paramed_type *T);
+int print_ds_type_error (struct tl_ds_error *DS, struct paramed_type *T);
+int print_ds_type_bare_error (struct tl_ds_error *DS, struct paramed_type *T);
+int print_ds_type_exported_chat_invite (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T);
+int print_ds_type_bare_exported_chat_invite (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T);
+int print_ds_type_file_location (struct tl_ds_file_location *DS, struct paramed_type *T);
+int print_ds_type_bare_file_location (struct tl_ds_file_location *DS, struct paramed_type *T);
+int print_ds_type_geo_chat_message (struct tl_ds_geo_chat_message *DS, struct paramed_type *T);
+int print_ds_type_bare_geo_chat_message (struct tl_ds_geo_chat_message *DS, struct paramed_type *T);
+int print_ds_type_geo_point (struct tl_ds_geo_point *DS, struct paramed_type *T);
+int print_ds_type_bare_geo_point (struct tl_ds_geo_point *DS, struct paramed_type *T);
+int print_ds_type_imported_contact (struct tl_ds_imported_contact *DS, struct paramed_type *T);
+int print_ds_type_bare_imported_contact (struct tl_ds_imported_contact *DS, struct paramed_type *T);
+int print_ds_type_input_app_event (struct tl_ds_input_app_event *DS, struct paramed_type *T);
+int print_ds_type_bare_input_app_event (struct tl_ds_input_app_event *DS, struct paramed_type *T);
+int print_ds_type_input_audio (struct tl_ds_input_audio *DS, struct paramed_type *T);
+int print_ds_type_bare_input_audio (struct tl_ds_input_audio *DS, struct paramed_type *T);
+int print_ds_type_input_chat_photo (struct tl_ds_input_chat_photo *DS, struct paramed_type *T);
+int print_ds_type_bare_input_chat_photo (struct tl_ds_input_chat_photo *DS, struct paramed_type *T);
+int print_ds_type_input_contact (struct tl_ds_input_contact *DS, struct paramed_type *T);
+int print_ds_type_bare_input_contact (struct tl_ds_input_contact *DS, struct paramed_type *T);
+int print_ds_type_input_document (struct tl_ds_input_document *DS, struct paramed_type *T);
+int print_ds_type_bare_input_document (struct tl_ds_input_document *DS, struct paramed_type *T);
+int print_ds_type_input_encrypted_chat (struct tl_ds_input_encrypted_chat *DS, struct paramed_type *T);
+int print_ds_type_bare_input_encrypted_chat (struct tl_ds_input_encrypted_chat *DS, struct paramed_type *T);
+int print_ds_type_input_encrypted_file (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T);
+int print_ds_type_bare_input_encrypted_file (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T);
+int print_ds_type_input_file (struct tl_ds_input_file *DS, struct paramed_type *T);
+int print_ds_type_bare_input_file (struct tl_ds_input_file *DS, struct paramed_type *T);
+int print_ds_type_input_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T);
+int print_ds_type_bare_input_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T);
+int print_ds_type_input_geo_chat (struct tl_ds_input_geo_chat *DS, struct paramed_type *T);
+int print_ds_type_bare_input_geo_chat (struct tl_ds_input_geo_chat *DS, struct paramed_type *T);
+int print_ds_type_input_geo_point (struct tl_ds_input_geo_point *DS, struct paramed_type *T);
+int print_ds_type_bare_input_geo_point (struct tl_ds_input_geo_point *DS, struct paramed_type *T);
+int print_ds_type_input_media (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_type_bare_input_media (struct tl_ds_input_media *DS, struct paramed_type *T);
+int print_ds_type_input_notify_peer (struct tl_ds_input_notify_peer *DS, struct paramed_type *T);
+int print_ds_type_bare_input_notify_peer (struct tl_ds_input_notify_peer *DS, struct paramed_type *T);
+int print_ds_type_input_peer (struct tl_ds_input_peer *DS, struct paramed_type *T);
+int print_ds_type_bare_input_peer (struct tl_ds_input_peer *DS, struct paramed_type *T);
+int print_ds_type_input_peer_notify_events (struct tl_ds_input_peer_notify_events *DS, struct paramed_type *T);
+int print_ds_type_bare_input_peer_notify_events (struct tl_ds_input_peer_notify_events *DS, struct paramed_type *T);
+int print_ds_type_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *DS, struct paramed_type *T);
+int print_ds_type_bare_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *DS, struct paramed_type *T);
+int print_ds_type_input_photo (struct tl_ds_input_photo *DS, struct paramed_type *T);
+int print_ds_type_bare_input_photo (struct tl_ds_input_photo *DS, struct paramed_type *T);
+int print_ds_type_input_photo_crop (struct tl_ds_input_photo_crop *DS, struct paramed_type *T);
+int print_ds_type_bare_input_photo_crop (struct tl_ds_input_photo_crop *DS, struct paramed_type *T);
+int print_ds_type_input_privacy_key (struct tl_ds_input_privacy_key *DS, struct paramed_type *T);
+int print_ds_type_bare_input_privacy_key (struct tl_ds_input_privacy_key *DS, struct paramed_type *T);
+int print_ds_type_input_privacy_rule (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T);
+int print_ds_type_bare_input_privacy_rule (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T);
+int print_ds_type_input_sticker_set (struct tl_ds_input_sticker_set *DS, struct paramed_type *T);
+int print_ds_type_bare_input_sticker_set (struct tl_ds_input_sticker_set *DS, struct paramed_type *T);
+int print_ds_type_input_user (struct tl_ds_input_user *DS, struct paramed_type *T);
+int print_ds_type_bare_input_user (struct tl_ds_input_user *DS, struct paramed_type *T);
+int print_ds_type_input_video (struct tl_ds_input_video *DS, struct paramed_type *T);
+int print_ds_type_bare_input_video (struct tl_ds_input_video *DS, struct paramed_type *T);
+int print_ds_type_int (int *DS, struct paramed_type *T);
+int print_ds_type_bare_int (int *DS, struct paramed_type *T);
+int print_ds_type_int128 (struct tl_ds_int128 *DS, struct paramed_type *T);
+int print_ds_type_bare_int128 (struct tl_ds_int128 *DS, struct paramed_type *T);
+int print_ds_type_int256 (struct tl_ds_int256 *DS, struct paramed_type *T);
+int print_ds_type_bare_int256 (struct tl_ds_int256 *DS, struct paramed_type *T);
+int print_ds_type_keyboard_button (struct tl_ds_keyboard_button *DS, struct paramed_type *T);
+int print_ds_type_bare_keyboard_button (struct tl_ds_keyboard_button *DS, struct paramed_type *T);
+int print_ds_type_keyboard_button_row (struct tl_ds_keyboard_button_row *DS, struct paramed_type *T);
+int print_ds_type_bare_keyboard_button_row (struct tl_ds_keyboard_button_row *DS, struct paramed_type *T);
+int print_ds_type_long (long long *DS, struct paramed_type *T);
+int print_ds_type_bare_long (long long *DS, struct paramed_type *T);
+int print_ds_type_message (struct tl_ds_message *DS, struct paramed_type *T);
+int print_ds_type_bare_message (struct tl_ds_message *DS, struct paramed_type *T);
+int print_ds_type_message_action (struct tl_ds_message_action *DS, struct paramed_type *T);
+int print_ds_type_bare_message_action (struct tl_ds_message_action *DS, struct paramed_type *T);
+int print_ds_type_message_media (struct tl_ds_message_media *DS, struct paramed_type *T);
+int print_ds_type_bare_message_media (struct tl_ds_message_media *DS, struct paramed_type *T);
+int print_ds_type_messages_filter (struct tl_ds_messages_filter *DS, struct paramed_type *T);
+int print_ds_type_bare_messages_filter (struct tl_ds_messages_filter *DS, struct paramed_type *T);
+int print_ds_type_nearest_dc (struct tl_ds_nearest_dc *DS, struct paramed_type *T);
+int print_ds_type_bare_nearest_dc (struct tl_ds_nearest_dc *DS, struct paramed_type *T);
+int print_ds_type_notify_peer (struct tl_ds_notify_peer *DS, struct paramed_type *T);
+int print_ds_type_bare_notify_peer (struct tl_ds_notify_peer *DS, struct paramed_type *T);
+int print_ds_type_null (struct tl_ds_null *DS, struct paramed_type *T);
+int print_ds_type_bare_null (struct tl_ds_null *DS, struct paramed_type *T);
+int print_ds_type_p_q_inner_data (struct tl_ds_p_q_inner_data *DS, struct paramed_type *T);
+int print_ds_type_bare_p_q_inner_data (struct tl_ds_p_q_inner_data *DS, struct paramed_type *T);
+int print_ds_type_peer (struct tl_ds_peer *DS, struct paramed_type *T);
+int print_ds_type_bare_peer (struct tl_ds_peer *DS, struct paramed_type *T);
+int print_ds_type_peer_notify_events (struct tl_ds_peer_notify_events *DS, struct paramed_type *T);
+int print_ds_type_bare_peer_notify_events (struct tl_ds_peer_notify_events *DS, struct paramed_type *T);
+int print_ds_type_peer_notify_settings (struct tl_ds_peer_notify_settings *DS, struct paramed_type *T);
+int print_ds_type_bare_peer_notify_settings (struct tl_ds_peer_notify_settings *DS, struct paramed_type *T);
+int print_ds_type_photo (struct tl_ds_photo *DS, struct paramed_type *T);
+int print_ds_type_bare_photo (struct tl_ds_photo *DS, struct paramed_type *T);
+int print_ds_type_photo_size (struct tl_ds_photo_size *DS, struct paramed_type *T);
+int print_ds_type_bare_photo_size (struct tl_ds_photo_size *DS, struct paramed_type *T);
+int print_ds_type_privacy_key (struct tl_ds_privacy_key *DS, struct paramed_type *T);
+int print_ds_type_bare_privacy_key (struct tl_ds_privacy_key *DS, struct paramed_type *T);
+int print_ds_type_privacy_rule (struct tl_ds_privacy_rule *DS, struct paramed_type *T);
+int print_ds_type_bare_privacy_rule (struct tl_ds_privacy_rule *DS, struct paramed_type *T);
+int print_ds_type_received_notify_message (struct tl_ds_received_notify_message *DS, struct paramed_type *T);
+int print_ds_type_bare_received_notify_message (struct tl_ds_received_notify_message *DS, struct paramed_type *T);
+int print_ds_type_reply_markup (struct tl_ds_reply_markup *DS, struct paramed_type *T);
+int print_ds_type_bare_reply_markup (struct tl_ds_reply_markup *DS, struct paramed_type *T);
+int print_ds_type_res_p_q (struct tl_ds_res_p_q *DS, struct paramed_type *T);
+int print_ds_type_bare_res_p_q (struct tl_ds_res_p_q *DS, struct paramed_type *T);
+int print_ds_type_send_message_action (struct tl_ds_send_message_action *DS, struct paramed_type *T);
+int print_ds_type_bare_send_message_action (struct tl_ds_send_message_action *DS, struct paramed_type *T);
+int print_ds_type_server_d_h_params (struct tl_ds_server_d_h_params *DS, struct paramed_type *T);
+int print_ds_type_bare_server_d_h_params (struct tl_ds_server_d_h_params *DS, struct paramed_type *T);
+int print_ds_type_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *DS, struct paramed_type *T);
+int print_ds_type_bare_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *DS, struct paramed_type *T);
+int print_ds_type_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T);
+int print_ds_type_bare_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T);
+int print_ds_type_sticker_pack (struct tl_ds_sticker_pack *DS, struct paramed_type *T);
+int print_ds_type_bare_sticker_pack (struct tl_ds_sticker_pack *DS, struct paramed_type *T);
+int print_ds_type_sticker_set (struct tl_ds_sticker_set *DS, struct paramed_type *T);
+int print_ds_type_bare_sticker_set (struct tl_ds_sticker_set *DS, struct paramed_type *T);
+int print_ds_type_string (struct tl_ds_string *DS, struct paramed_type *T);
+int print_ds_type_bare_string (struct tl_ds_string *DS, struct paramed_type *T);
+int print_ds_type_update (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_type_bare_update (struct tl_ds_update *DS, struct paramed_type *T);
+int print_ds_type_updates (struct tl_ds_updates *DS, struct paramed_type *T);
+int print_ds_type_bare_updates (struct tl_ds_updates *DS, struct paramed_type *T);
+int print_ds_type_user (struct tl_ds_user *DS, struct paramed_type *T);
+int print_ds_type_bare_user (struct tl_ds_user *DS, struct paramed_type *T);
+int print_ds_type_user_full (struct tl_ds_user_full *DS, struct paramed_type *T);
+int print_ds_type_bare_user_full (struct tl_ds_user_full *DS, struct paramed_type *T);
+int print_ds_type_user_profile_photo (struct tl_ds_user_profile_photo *DS, struct paramed_type *T);
+int print_ds_type_bare_user_profile_photo (struct tl_ds_user_profile_photo *DS, struct paramed_type *T);
+int print_ds_type_user_status (struct tl_ds_user_status *DS, struct paramed_type *T);
+int print_ds_type_bare_user_status (struct tl_ds_user_status *DS, struct paramed_type *T);
+int print_ds_type_vector (struct tl_ds_vector *DS, struct paramed_type *T);
+int print_ds_type_bare_vector (struct tl_ds_vector *DS, struct paramed_type *T);
+int print_ds_type_video (struct tl_ds_video *DS, struct paramed_type *T);
+int print_ds_type_bare_video (struct tl_ds_video *DS, struct paramed_type *T);
+int print_ds_type_wall_paper (struct tl_ds_wall_paper *DS, struct paramed_type *T);
+int print_ds_type_bare_wall_paper (struct tl_ds_wall_paper *DS, struct paramed_type *T);
+int print_ds_type_web_page (struct tl_ds_web_page *DS, struct paramed_type *T);
+int print_ds_type_bare_web_page (struct tl_ds_web_page *DS, struct paramed_type *T);
+int print_ds_type_account_authorizations (struct tl_ds_account_authorizations *DS, struct paramed_type *T);
+int print_ds_type_bare_account_authorizations (struct tl_ds_account_authorizations *DS, struct paramed_type *T);
+int print_ds_type_account_password (struct tl_ds_account_password *DS, struct paramed_type *T);
+int print_ds_type_bare_account_password (struct tl_ds_account_password *DS, struct paramed_type *T);
+int print_ds_type_account_password_input_settings (struct tl_ds_account_password_input_settings *DS, struct paramed_type *T);
+int print_ds_type_bare_account_password_input_settings (struct tl_ds_account_password_input_settings *DS, struct paramed_type *T);
+int print_ds_type_account_password_settings (struct tl_ds_account_password_settings *DS, struct paramed_type *T);
+int print_ds_type_bare_account_password_settings (struct tl_ds_account_password_settings *DS, struct paramed_type *T);
+int print_ds_type_account_privacy_rules (struct tl_ds_account_privacy_rules *DS, struct paramed_type *T);
+int print_ds_type_bare_account_privacy_rules (struct tl_ds_account_privacy_rules *DS, struct paramed_type *T);
+int print_ds_type_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *DS, struct paramed_type *T);
+int print_ds_type_bare_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *DS, struct paramed_type *T);
+int print_ds_type_auth_authorization (struct tl_ds_auth_authorization *DS, struct paramed_type *T);
+int print_ds_type_bare_auth_authorization (struct tl_ds_auth_authorization *DS, struct paramed_type *T);
+int print_ds_type_auth_checked_phone (struct tl_ds_auth_checked_phone *DS, struct paramed_type *T);
+int print_ds_type_bare_auth_checked_phone (struct tl_ds_auth_checked_phone *DS, struct paramed_type *T);
+int print_ds_type_auth_exported_authorization (struct tl_ds_auth_exported_authorization *DS, struct paramed_type *T);
+int print_ds_type_bare_auth_exported_authorization (struct tl_ds_auth_exported_authorization *DS, struct paramed_type *T);
+int print_ds_type_auth_password_recovery (struct tl_ds_auth_password_recovery *DS, struct paramed_type *T);
+int print_ds_type_bare_auth_password_recovery (struct tl_ds_auth_password_recovery *DS, struct paramed_type *T);
+int print_ds_type_auth_sent_code (struct tl_ds_auth_sent_code *DS, struct paramed_type *T);
+int print_ds_type_bare_auth_sent_code (struct tl_ds_auth_sent_code *DS, struct paramed_type *T);
+int print_ds_type_binlog_encr_key (struct tl_ds_binlog_encr_key *DS, struct paramed_type *T);
+int print_ds_type_bare_binlog_encr_key (struct tl_ds_binlog_encr_key *DS, struct paramed_type *T);
+int print_ds_type_binlog_update (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_type_bare_binlog_update (struct tl_ds_binlog_update *DS, struct paramed_type *T);
+int print_ds_type_contacts_blocked (struct tl_ds_contacts_blocked *DS, struct paramed_type *T);
+int print_ds_type_bare_contacts_blocked (struct tl_ds_contacts_blocked *DS, struct paramed_type *T);
+int print_ds_type_contacts_contacts (struct tl_ds_contacts_contacts *DS, struct paramed_type *T);
+int print_ds_type_bare_contacts_contacts (struct tl_ds_contacts_contacts *DS, struct paramed_type *T);
+int print_ds_type_contacts_found (struct tl_ds_contacts_found *DS, struct paramed_type *T);
+int print_ds_type_bare_contacts_found (struct tl_ds_contacts_found *DS, struct paramed_type *T);
+int print_ds_type_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *DS, struct paramed_type *T);
+int print_ds_type_bare_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *DS, struct paramed_type *T);
+int print_ds_type_contacts_link (struct tl_ds_contacts_link *DS, struct paramed_type *T);
+int print_ds_type_bare_contacts_link (struct tl_ds_contacts_link *DS, struct paramed_type *T);
+int print_ds_type_contacts_suggested (struct tl_ds_contacts_suggested *DS, struct paramed_type *T);
+int print_ds_type_bare_contacts_suggested (struct tl_ds_contacts_suggested *DS, struct paramed_type *T);
+int print_ds_type_geochats_located (struct tl_ds_geochats_located *DS, struct paramed_type *T);
+int print_ds_type_bare_geochats_located (struct tl_ds_geochats_located *DS, struct paramed_type *T);
+int print_ds_type_geochats_messages (struct tl_ds_geochats_messages *DS, struct paramed_type *T);
+int print_ds_type_bare_geochats_messages (struct tl_ds_geochats_messages *DS, struct paramed_type *T);
+int print_ds_type_geochats_stated_message (struct tl_ds_geochats_stated_message *DS, struct paramed_type *T);
+int print_ds_type_bare_geochats_stated_message (struct tl_ds_geochats_stated_message *DS, struct paramed_type *T);
+int print_ds_type_help_app_update (struct tl_ds_help_app_update *DS, struct paramed_type *T);
+int print_ds_type_bare_help_app_update (struct tl_ds_help_app_update *DS, struct paramed_type *T);
+int print_ds_type_help_invite_text (struct tl_ds_help_invite_text *DS, struct paramed_type *T);
+int print_ds_type_bare_help_invite_text (struct tl_ds_help_invite_text *DS, struct paramed_type *T);
+int print_ds_type_help_support (struct tl_ds_help_support *DS, struct paramed_type *T);
+int print_ds_type_bare_help_support (struct tl_ds_help_support *DS, struct paramed_type *T);
+int print_ds_type_messages_affected_history (struct tl_ds_messages_affected_history *DS, struct paramed_type *T);
+int print_ds_type_bare_messages_affected_history (struct tl_ds_messages_affected_history *DS, struct paramed_type *T);
+int print_ds_type_messages_affected_messages (struct tl_ds_messages_affected_messages *DS, struct paramed_type *T);
+int print_ds_type_bare_messages_affected_messages (struct tl_ds_messages_affected_messages *DS, struct paramed_type *T);
+int print_ds_type_messages_all_stickers (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T);
+int print_ds_type_bare_messages_all_stickers (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T);
+int print_ds_type_messages_chat_full (struct tl_ds_messages_chat_full *DS, struct paramed_type *T);
+int print_ds_type_bare_messages_chat_full (struct tl_ds_messages_chat_full *DS, struct paramed_type *T);
+int print_ds_type_messages_chats (struct tl_ds_messages_chats *DS, struct paramed_type *T);
+int print_ds_type_bare_messages_chats (struct tl_ds_messages_chats *DS, struct paramed_type *T);
+int print_ds_type_messages_dh_config (struct tl_ds_messages_dh_config *DS, struct paramed_type *T);
+int print_ds_type_bare_messages_dh_config (struct tl_ds_messages_dh_config *DS, struct paramed_type *T);
+int print_ds_type_messages_dialogs (struct tl_ds_messages_dialogs *DS, struct paramed_type *T);
+int print_ds_type_bare_messages_dialogs (struct tl_ds_messages_dialogs *DS, struct paramed_type *T);
+int print_ds_type_messages_message (struct tl_ds_messages_message *DS, struct paramed_type *T);
+int print_ds_type_bare_messages_message (struct tl_ds_messages_message *DS, struct paramed_type *T);
+int print_ds_type_messages_messages (struct tl_ds_messages_messages *DS, struct paramed_type *T);
+int print_ds_type_bare_messages_messages (struct tl_ds_messages_messages *DS, struct paramed_type *T);
+int print_ds_type_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *DS, struct paramed_type *T);
+int print_ds_type_bare_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *DS, struct paramed_type *T);
+int print_ds_type_messages_sent_message (struct tl_ds_messages_sent_message *DS, struct paramed_type *T);
+int print_ds_type_bare_messages_sent_message (struct tl_ds_messages_sent_message *DS, struct paramed_type *T);
+int print_ds_type_messages_sticker_set (struct tl_ds_messages_sticker_set *DS, struct paramed_type *T);
+int print_ds_type_bare_messages_sticker_set (struct tl_ds_messages_sticker_set *DS, struct paramed_type *T);
+int print_ds_type_messages_stickers (struct tl_ds_messages_stickers *DS, struct paramed_type *T);
+int print_ds_type_bare_messages_stickers (struct tl_ds_messages_stickers *DS, struct paramed_type *T);
+int print_ds_type_photos_photo (struct tl_ds_photos_photo *DS, struct paramed_type *T);
+int print_ds_type_bare_photos_photo (struct tl_ds_photos_photo *DS, struct paramed_type *T);
+int print_ds_type_photos_photos (struct tl_ds_photos_photos *DS, struct paramed_type *T);
+int print_ds_type_bare_photos_photos (struct tl_ds_photos_photos *DS, struct paramed_type *T);
+int print_ds_type_storage_file_type (struct tl_ds_storage_file_type *DS, struct paramed_type *T);
+int print_ds_type_bare_storage_file_type (struct tl_ds_storage_file_type *DS, struct paramed_type *T);
+int print_ds_type_updates_difference (struct tl_ds_updates_difference *DS, struct paramed_type *T);
+int print_ds_type_bare_updates_difference (struct tl_ds_updates_difference *DS, struct paramed_type *T);
+int print_ds_type_updates_state (struct tl_ds_updates_state *DS, struct paramed_type *T);
+int print_ds_type_bare_updates_state (struct tl_ds_updates_state *DS, struct paramed_type *T);
+int print_ds_type_upload_file (struct tl_ds_upload_file *DS, struct paramed_type *T);
+int print_ds_type_bare_upload_file (struct tl_ds_upload_file *DS, struct paramed_type *T);
+int print_ds_type_any (void *DS, struct paramed_type *T);
diff --git a/libs/tgl/src/auto/auto-skip.c b/libs/tgl/src/auto/auto-skip.c
new file mode 100644
index 0000000000..9ff28a1de2
--- /dev/null
+++ b/libs/tgl/src/auto/auto-skip.c
@@ -0,0 +1,11302 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#include "auto-skip.h"
+#include "..\auto-static-skip.c"
+#include "..\mtproto-common.h"
+#else
+#include "auto.h"
+#include "auto/auto-skip.h"
+#include "auto-static-skip.c"
+#include "mtproto-common.h"
+#endif
+#include <assert.h>
+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 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 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 skip_constructor_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { 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;}
+ 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 = 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 = 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 = 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 = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_string (field11) < 0) { return -1;}
+ struct paramed_type *field12 =
+ &(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 (field12) < 0) { return -1;}
+ struct paramed_type *field13 =
+ &(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 (field13) < 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 skip_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_bot_command (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { 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 skip_constructor_bot_command_old (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { 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 skip_constructor_bot_info_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; }
+ return 0;
+}
+int skip_constructor_bot_info (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { 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 = 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 = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (field5) < 0) { 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 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 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 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 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 skip_constructor_chat_full (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { 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 = 0xc207550a, .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 = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_exported_chat_invite (field5) < 0) { return -1;}
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (field6) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_chat_invite_already (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { 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;}
+ return 0;
+}
+int skip_constructor_chat_invite (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { 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 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 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 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 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 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 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 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 skip_constructor_config (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { 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 = 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;}
+ 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 = 0x2b1a62f0, .id = "DcOption", .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 = 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 = 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 = 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;}
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_int (field13) < 0) { return -1;}
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_int (field14) < 0) { return -1;}
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_int (field15) < 0) { return -1;}
+ struct paramed_type *field16 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_int (field16) < 0) { return -1;}
+ struct paramed_type *field17 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_int (field17) < 0) { return -1;}
+ struct paramed_type *field18 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (field18) < 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 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 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 skip_constructor_contact_link_unknown (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ return 0;
+}
+int skip_constructor_contact_link_none (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ return 0;
+}
+int skip_constructor_contact_link_has_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ return 0;
+}
+int skip_constructor_contact_link_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { 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 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 skip_constructor_dc_option_l28 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { 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 skip_constructor_dc_option (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { 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;}
+ return 0;
+}
+int skip_constructor_decrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { 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 = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_decrypted_message_media (field4) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_decrypted_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { 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 = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_decrypted_message_action (field2) < 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 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 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 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 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 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 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 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 = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_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 = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_bytes (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 = 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 = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_long (field3) < 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 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 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 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 = 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 = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_decrypted_message (field5) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_decrypted_message_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ return 0;
+}
+int skip_constructor_decrypted_message_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 skip_constructor_decrypted_message_media_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 skip_constructor_decrypted_message_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 skip_constructor_decrypted_message_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 skip_constructor_decrypted_message_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 skip_constructor_decrypted_message_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 skip_constructor_decrypted_message_media_external_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (field8) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_decrypted_message_media_video_l12 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 = 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 = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_bytes (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;}
+ return 0;
+}
+int skip_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_bytes (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 skip_constructor_dialog (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { 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 = 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 = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_peer_notify_settings (field5) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_disabled_feature (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { 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 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 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 skip_constructor_document_attribute_image_size (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 skip_constructor_document_attribute_animated (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; }
+ return 0;
+}
+int skip_constructor_document_attribute_sticker_l28 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 skip_constructor_document_attribute_sticker (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_input_sticker_set (field2) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_document_attribute_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 skip_constructor_document_attribute_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 skip_constructor_document_attribute_filename (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 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 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 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 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 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 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 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 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 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 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 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 skip_constructor_chat_invite_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; }
+ return 0;
+}
+int skip_constructor_chat_invite_exported (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { 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 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 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 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 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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_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 = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 skip_constructor_input_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ return 0;
+}
+int skip_constructor_input_media_uploaded_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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;}
+ return 0;
+}
+int skip_constructor_input_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_string (field2) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_input_media_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 skip_constructor_input_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 skip_constructor_input_media_uploaded_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 skip_constructor_input_media_uploaded_thumb_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 skip_constructor_input_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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;}
+ 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 skip_constructor_input_media_uploaded_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 skip_constructor_input_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 skip_constructor_input_media_uploaded_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (field4) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_input_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 skip_constructor_input_media_venue (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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;}
+ 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;}
+ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 skip_constructor_input_sticker_set_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; }
+ return 0;
+}
+int skip_constructor_input_sticker_set_i_d (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { 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 skip_constructor_input_sticker_set_short_name (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { 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 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 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 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 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 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 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 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 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 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 skip_constructor_keyboard_button (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { 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 skip_constructor_keyboard_button_row (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { 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 = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (field1) < 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 skip_constructor_message_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { 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 skip_constructor_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; }
+ if (in_remaining () < 4) { return -1;}
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_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;}
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_message_media (field10) < 0) { return -1;}
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_reply_markup (field11) < 0) { return -1;}
+ }
+ return 0;
+}
+int skip_constructor_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { 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 = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_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 != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ return 0;
+}
+int skip_constructor_message_action_chat_create (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 skip_constructor_message_action_chat_edit_title (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 skip_constructor_message_action_chat_edit_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_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 != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ return 0;
+}
+int skip_constructor_message_action_chat_add_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 skip_constructor_message_action_chat_delete_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 skip_constructor_message_action_geo_chat_create (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 skip_constructor_message_action_geo_chat_checkin (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ return 0;
+}
+int skip_constructor_message_action_chat_joined_by_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 skip_constructor_message_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ return 0;
+}
+int skip_constructor_message_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .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 = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_string (field2) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_message_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_video (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 skip_constructor_message_media_geo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 skip_constructor_message_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 skip_constructor_message_media_unsupported (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ return 0;
+}
+int skip_constructor_message_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 skip_constructor_message_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 skip_constructor_message_media_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_web_page (field1) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_message_media_venue (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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;}
+ 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;}
+ return 0;
+}
+int skip_constructor_message_media_photo_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_photo (field1) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_message_media_video_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_video (field1) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_input_messages_filter_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int skip_constructor_input_messages_filter_photos (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int skip_constructor_input_messages_filter_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int skip_constructor_input_messages_filter_photo_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int skip_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int skip_constructor_input_messages_filter_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int skip_constructor_input_messages_filter_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { 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 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 skip_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 skip_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 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 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 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 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 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 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 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 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 skip_constructor_photo_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { 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 skip_constructor_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { 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 = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_geo_point (field5) < 0) { return -1;}
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_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 (field6) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_photo_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { 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 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 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 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 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 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 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 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 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 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 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 skip_constructor_received_notify_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { 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 skip_constructor_reply_keyboard_hide (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { 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 skip_constructor_reply_keyboard_force_reply (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { 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 skip_constructor_reply_keyboard_markup (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { 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 = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (field2) < 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 skip_constructor_send_message_typing_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int skip_constructor_send_message_cancel_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int skip_constructor_send_message_record_video_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int skip_constructor_send_message_upload_video_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int skip_constructor_send_message_upload_video_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { 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 skip_constructor_send_message_record_audio_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int skip_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int skip_constructor_send_message_upload_audio_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { 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 skip_constructor_send_message_upload_photo_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { 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 skip_constructor_send_message_upload_document_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int skip_constructor_send_message_upload_document_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { 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 skip_constructor_send_message_geo_location_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int skip_constructor_send_message_choose_contact_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { 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 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 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 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 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 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 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 skip_constructor_sticker_set (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { 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 = 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 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 skip_constructor_update_new_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .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;}
+ struct paramed_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 skip_constructor_update_message_i_d (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_delete_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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;}
+ struct paramed_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 skip_constructor_update_user_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_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 != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_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 != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_user_status (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_user_name (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_user_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_contact_registered (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_contact_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_contact_link (field2) < 0) { return -1;}
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_contact_link (field3) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_update_new_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_new_geo_chat_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_new_encrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_encrypted_chat_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_encryption (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_encrypted_messages_read (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_chat_participant_add (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_chat_participant_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_dc_options (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (field1) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_update_user_blocked (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_notify_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_service_notification (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x95f2471a, .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 skip_constructor_update_privacy (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_user_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_update_read_history_inbox (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_int (field4) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_update_read_history_outbox (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_int (field4) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_update_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_web_page (field1) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_update_read_messages_contents (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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;}
+ struct paramed_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 skip_constructor_update_msg_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 skip_constructor_updates_too_long (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; }
+ return 0;
+}
+int skip_constructor_update_short_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; }
+ if (in_remaining () < 4) { return -1;}
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_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;}
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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;}
+ }
+ return 0;
+}
+int skip_constructor_update_short_chat_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; }
+ if (in_remaining () < 4) { return -1;}
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_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;}
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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 skip_constructor_update_short (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .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 skip_constructor_updates_combined (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 skip_constructor_updates (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 skip_constructor_user_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { 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 skip_constructor_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return -1; }
+ if (in_remaining () < 4) { return -1;}
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_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;}
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 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;}
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 4)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ struct paramed_type *field8 =
+ &(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 (field8) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field9 =
+ &(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 (field9) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 14)) {
+ 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;}
+ }
+ return 0;
+}
+int skip_constructor_user_full (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .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 = 0x3ace484c, .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 = 0xc207550a, .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 = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bot_info (field6) < 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 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 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 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 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 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 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 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 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 skip_constructor_video_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { 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 skip_constructor_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { 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 = 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 = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_photo_size (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 = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_int (field10) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_video_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { 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 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 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 skip_constructor_web_page_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { 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 skip_constructor_web_page_pending (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { 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 skip_constructor_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; }
+ if (in_remaining () < 4) { return -1;}
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ 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;}
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 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;}
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 4)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_photo (field9) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ struct paramed_type *field10 =
+ &(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 (field10) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ struct paramed_type *field11 =
+ &(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 (field11) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_int (field13) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 7)) {
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_int (field14) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 8)) {
+ struct paramed_type *field15 =
+ &(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 (field15) < 0) { return -1;}
+ }
+ return 0;
+}
+int skip_constructor_account_authorizations (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { 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 = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (field1) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_account_no_password (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { 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 = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_string (field2) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_account_password (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { 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;}
+ 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;}
+ 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 skip_constructor_account_password_input_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { return -1; }
+ if (in_remaining () < 4) { return -1;}
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 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 skip_constructor_account_password_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { 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 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 skip_constructor_auth_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_user (field1) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_auth_checked_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { 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 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 skip_constructor_auth_password_recovery (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { 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 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 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 skip_constructor_binlog_encr_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return -1; }
+ int multiplicity1 = PTR2INT (
+ INT2PTR (64) );
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ while (multiplicity1 -- > 0) {
+ if (skip_type_any (field1) < 0) { return -1;}
+ }
+ return 0;
+}
+int skip_constructor_binlog_start (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ return 0;
+}
+int skip_constructor_binlog_dc_option (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 skip_constructor_binlog_dc_option_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 = 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;}
+ return 0;
+}
+int skip_constructor_binlog_auth_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_binlog_encr_key (field2) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_binlog_default_dc (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 skip_constructor_binlog_dc_signed (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 skip_constructor_binlog_our_id (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 skip_constructor_binlog_set_dh_params (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_binlog_encr_key (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 skip_constructor_binlog_set_pts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 skip_constructor_binlog_set_qts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 skip_constructor_binlog_set_date (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 skip_constructor_binlog_set_seq (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 skip_constructor_binlog_encr_chat_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 skip_constructor_binlog_encr_chat_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ if (in_remaining () < 4) { return -1;}
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_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;}
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_binlog_encr_key (field7) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_binlog_encr_key (field8) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_int (field13) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_int (field14) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 27)) {
+ struct paramed_type *field15 =
+ &(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 (field15) < 0) { return -1;}
+ }
+ return 0;
+}
+int skip_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ if (in_remaining () < 4) { return -1;}
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_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;}
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_binlog_encr_key (field4) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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 skip_constructor_binlog_user_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 skip_constructor_binlog_user_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ if (in_remaining () < 4) { return -1;}
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_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;}
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_photo (field8) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field10 =
+ &(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 (field10) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ struct paramed_type *field11 =
+ &(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 (field11) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bare_int (field13) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_bot_info (field14) < 0) { return -1;}
+ }
+ return 0;
+}
+int skip_constructor_binlog_chat_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ if (in_remaining () < 4) { return -1;}
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_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;}
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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 = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (field7) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field8 =
+ &(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 (field8) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_photo (field9) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ 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 skip_constructor_binlog_chat_add_participant (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 skip_constructor_binlog_chat_del_participant (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 skip_constructor_binlog_set_msg_id (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 skip_constructor_binlog_message_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 skip_constructor_binlog_message_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ if (in_remaining () < 4) { return -1;}
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ 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;}
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_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;}
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_message_media (field10) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_message_action (field11) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_reply_markup (field13) < 0) { return -1;}
+ }
+ return 0;
+}
+int skip_constructor_binlog_message_encr_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ if (in_remaining () < 4) { return -1;}
+ struct paramed_type *var0 = INT2PTR (fetch_int ());
+ 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;}
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_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;}
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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;}
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_decrypted_message_media (field8) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field9 =
+ &(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 (field9) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ struct paramed_type *field10 =
+ &(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 (field10) < 0) { return -1;}
+ }
+ return 0;
+}
+int skip_constructor_binlog_msg_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 skip_constructor_binlog_reset_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (field2) < 0) { 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (field3) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_contacts_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_contact_link (field1) < 0) { return -1;}
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_contact_link (field2) < 0) { return -1;}
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_user (field3) < 0) { 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 = 0x02e6c0c8, .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 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 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 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 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_user (field2) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_messages_affected_history (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { 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 skip_constructor_messages_affected_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { 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 skip_constructor_messages_all_stickers_not_modified (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return -1; }
+ return 0;
+}
+int skip_constructor_messages_all_stickers (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { 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 = 0xa7a43b17, .id = "StickerSet", .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 = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (field4) < 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 = 0x2e02a614, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (field3) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_messages_chats (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { 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;}
+ 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 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 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 = 0xc1dd804a, .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 = 0x5d652a7f, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 = 0xc1dd804a, .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 = 0x5d652a7f, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (field5) < 0) { return -1;}
+ return 0;
+}
+int skip_constructor_messages_message_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { 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 = 0x5d652a7f, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 = 0x5d652a7f, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 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 skip_constructor_messages_sent_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { 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 = 0x95f2471a, .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 = 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 skip_constructor_messages_sent_message_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { 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 = 0x95f2471a, .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 = 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 = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_type_vector (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 skip_constructor_messages_sticker_set (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (skip_type_sticker_set (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 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 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 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 = 0xc207550a, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 = 0xc207550a, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 = 0xc207550a, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (skip_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 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 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 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 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 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 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 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 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 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 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 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 = 0x5d652a7f, .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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 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 = 0x5d652a7f, .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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 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 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 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 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 skip_type_authorization (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x7bf2e6f6: return skip_constructor_authorization (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_authorization (struct paramed_type *T) {
+ if (skip_constructor_authorization (T) >= 0) { return 0; }
+ return -1;
+}
+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 skip_type_bot_command (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc27ac8c7: return skip_constructor_bot_command (T);
+ case 0xb79d22ab: return skip_constructor_bot_command_old (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_bot_command (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_bot_command (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_bot_command_old (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+int skip_type_bot_info (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xbb2e37ce: return skip_constructor_bot_info_empty (T);
+ case 0x09cf585d: return skip_constructor_bot_info (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_bot_info (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_bot_info_empty (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_bot_info (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+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 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 skip_type_chat_full (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x2e02a614: 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 skip_type_chat_invite (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x5a686d7c: return skip_constructor_chat_invite_already (T);
+ case 0xce917dcd: return skip_constructor_chat_invite (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_chat_invite (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_chat_invite_already (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_chat_invite (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+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 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 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 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 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 skip_type_config (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x4e32b894: 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 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 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 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 skip_type_contact_link (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x5f4f9247: return skip_constructor_contact_link_unknown (T);
+ case 0xfeedd3ad: return skip_constructor_contact_link_none (T);
+ case 0x268f3f59: return skip_constructor_contact_link_has_phone (T);
+ case 0xd502c2d0: return skip_constructor_contact_link_contact (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_contact_link (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_contact_link_unknown (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_contact_link_none (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_contact_link_has_phone (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_contact_link_contact (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+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 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 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_l28 (T);
+ case 0x05d8c6cc: return skip_constructor_dc_option (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_dc_option (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_dc_option_l28 (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_dc_option (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+int skip_type_decrypted_message (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ 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 (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 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 0x511110b0: return skip_constructor_decrypted_message_action_resend (T);
+ case 0xf3048883: return skip_constructor_decrypted_message_action_notify_layer (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 0xdd05ec6b: return skip_constructor_decrypted_message_action_abort_key (T);
+ case 0xec2e0b9b: return skip_constructor_decrypted_message_action_commit_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_resend (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_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_abort_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_noop (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+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 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);
+ case 0xfa95b0dd: return skip_constructor_decrypted_message_media_external_document (T);
+ case 0x4cee6ef3: return skip_constructor_decrypted_message_media_video_l12 (T);
+ case 0x6080758f: return skip_constructor_decrypted_message_media_audio_l12 (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;
+ if (skip_constructor_decrypted_message_media_external_document (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_decrypted_message_media_video_l12 (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_decrypted_message_media_audio_l12 (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+int skip_type_dialog (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc1dd804a: 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 skip_type_disabled_feature (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xae636f24: return skip_constructor_disabled_feature (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_disabled_feature (struct paramed_type *T) {
+ if (skip_constructor_disabled_feature (T) >= 0) { return 0; }
+ return -1;
+}
+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 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 0x994c9882: return skip_constructor_document_attribute_sticker_l28 (T);
+ case 0x3a556302: 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_l28 (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 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 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 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 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 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 skip_type_exported_chat_invite (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x69df3769: return skip_constructor_chat_invite_empty (T);
+ case 0xfc2e05bc: return skip_constructor_chat_invite_exported (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_exported_chat_invite (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_chat_invite_empty (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_chat_invite_exported (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 0xf7aff1c0: return skip_constructor_input_media_uploaded_photo (T);
+ case 0xe9bfb4f3: 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 0xe13fd4bc: return skip_constructor_input_media_uploaded_video (T);
+ case 0x96fb97dc: return skip_constructor_input_media_uploaded_thumb_video (T);
+ case 0x936a4ebd: 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);
+ case 0x2827a81a: return skip_constructor_input_media_venue (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;
+ if (skip_constructor_input_media_venue (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+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 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 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 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 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 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 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 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 skip_type_input_sticker_set (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xffb62b95: return skip_constructor_input_sticker_set_empty (T);
+ case 0x9de7a269: return skip_constructor_input_sticker_set_i_d (T);
+ case 0x861cc8a0: return skip_constructor_input_sticker_set_short_name (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_input_sticker_set (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_sticker_set_empty (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_input_sticker_set_i_d (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_input_sticker_set_short_name (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+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 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 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 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 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 skip_type_keyboard_button (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa2fa4880: return skip_constructor_keyboard_button (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_keyboard_button (struct paramed_type *T) {
+ if (skip_constructor_keyboard_button (T) >= 0) { return 0; }
+ return -1;
+}
+int skip_type_keyboard_button_row (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x77608b83: return skip_constructor_keyboard_button_row (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_keyboard_button_row (struct paramed_type *T) {
+ if (skip_constructor_keyboard_button_row (T) >= 0) { return 0; }
+ return -1;
+}
+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 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 0xc3060325: return skip_constructor_message (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_service (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+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);
+ case 0xf89cf5e8: return skip_constructor_message_action_chat_joined_by_link (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;
+ if (skip_constructor_message_action_chat_joined_by_link (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+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 0x3d8ce53d: return skip_constructor_message_media_photo (T);
+ case 0x5bcf1675: 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 0x9f84f49e: 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);
+ case 0xa32dd600: return skip_constructor_message_media_web_page (T);
+ case 0x7912b71f: return skip_constructor_message_media_venue (T);
+ case 0xc8c45a2a: return skip_constructor_message_media_photo_l27 (T);
+ case 0xa2d24290: return skip_constructor_message_media_video_l27 (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;
+ if (skip_constructor_message_media_web_page (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_message_media_venue (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_message_media_photo_l27 (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_message_media_video_l27 (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+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 0xd95e73bb: return skip_constructor_input_messages_filter_photo_video_documents (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_photo_video_documents (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 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 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 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 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 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 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 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 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 0xc3838076: return skip_constructor_photo (T);
+ case 0x22b56751: return skip_constructor_photo_l27 (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;
+ if (skip_constructor_photo_l27 (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+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 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 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 skip_type_received_notify_message (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa384b779: return skip_constructor_received_notify_message (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_received_notify_message (struct paramed_type *T) {
+ if (skip_constructor_received_notify_message (T) >= 0) { return 0; }
+ return -1;
+}
+int skip_type_reply_markup (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa03e5b85: return skip_constructor_reply_keyboard_hide (T);
+ case 0xf4108aa0: return skip_constructor_reply_keyboard_force_reply (T);
+ case 0x3502758c: return skip_constructor_reply_keyboard_markup (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_reply_markup (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_reply_keyboard_hide (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_reply_keyboard_force_reply (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_reply_keyboard_markup (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+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 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_l27 (T);
+ case 0xe9763aec: 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_l27 (T);
+ case 0xf351d7ab: return skip_constructor_send_message_upload_audio_action (T);
+ case 0xd1d34a26: return skip_constructor_send_message_upload_photo_action (T);
+ case 0x8faee98e: return skip_constructor_send_message_upload_document_action_l27 (T);
+ case 0xaa0cd9e4: 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_l27 (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_l27 (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_l27 (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 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 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 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 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 skip_type_sticker_set (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa7a43b17: return skip_constructor_sticker_set (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_sticker_set (struct paramed_type *T) {
+ if (skip_constructor_sticker_set (T) >= 0) { return 0; }
+ return -1;
+}
+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 skip_type_update (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1f2b0afd: return skip_constructor_update_new_message (T);
+ case 0x4e90bfd6: return skip_constructor_update_message_i_d (T);
+ case 0xa20db0e5: return skip_constructor_update_delete_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 0x9d2e67c5: return skip_constructor_update_contact_link (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);
+ case 0x9961fd5c: return skip_constructor_update_read_history_inbox (T);
+ case 0x2f2f21bf: return skip_constructor_update_read_history_outbox (T);
+ case 0x2cc36971: return skip_constructor_update_web_page (T);
+ case 0x68c13933: return skip_constructor_update_read_messages_contents (T);
+ case 0x03114739: return skip_constructor_update_msg_update (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_delete_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_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;
+ if (skip_constructor_update_read_history_inbox (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_update_read_history_outbox (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_update_web_page (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_update_read_messages_contents (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_update_msg_update (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+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 0xed5c2127: return skip_constructor_update_short_message (T);
+ case 0x52238b3c: 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 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 0x22e49072: return skip_constructor_user (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 (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+int skip_type_user_full (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x5a89ac5b: 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 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 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 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 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 0xee9f4a4d: return skip_constructor_video (T);
+ case 0x388fa391: return skip_constructor_video_l27 (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;
+ if (skip_constructor_video_l27 (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+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 skip_type_web_page (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xeb1477e8: return skip_constructor_web_page_empty (T);
+ case 0xc586da1c: return skip_constructor_web_page_pending (T);
+ case 0xa31ea0b5: return skip_constructor_web_page (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_web_page (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_web_page_empty (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_web_page_pending (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_web_page (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ return -1;
+}
+int skip_type_account_authorizations (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1250abde: return skip_constructor_account_authorizations (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_account_authorizations (struct paramed_type *T) {
+ if (skip_constructor_account_authorizations (T) >= 0) { return 0; }
+ return -1;
+}
+int skip_type_account_password (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x96dabc18: return skip_constructor_account_no_password (T);
+ case 0x7c18141c: 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 skip_type_account_password_input_settings (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xbcfc532c: return skip_constructor_account_password_input_settings (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_account_password_input_settings (struct paramed_type *T) {
+ if (skip_constructor_account_password_input_settings (T) >= 0) { return 0; }
+ return -1;
+}
+int skip_type_account_password_settings (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb7b72ab3: return skip_constructor_account_password_settings (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_account_password_settings (struct paramed_type *T) {
+ if (skip_constructor_account_password_settings (T) >= 0) { return 0; }
+ return -1;
+}
+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 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 skip_type_auth_authorization (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xff036af1: 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 skip_type_auth_checked_phone (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x811ea28e: 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 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 skip_type_auth_password_recovery (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x137948a5: return skip_constructor_auth_password_recovery (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_auth_password_recovery (struct paramed_type *T) {
+ if (skip_constructor_auth_password_recovery (T) >= 0) { return 0; }
+ return -1;
+}
+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 skip_type_binlog_encr_key (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x0377168f: return skip_constructor_binlog_encr_key (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_binlog_encr_key (struct paramed_type *T) {
+ if (skip_constructor_binlog_encr_key (T) >= 0) { return 0; }
+ return -1;
+}
+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 0xf96feb32: return skip_constructor_binlog_dc_option (T);
+ case 0x7c0d22d8: return skip_constructor_binlog_dc_option_new (T);
+ case 0x71e8c156: return skip_constructor_binlog_auth_key (T);
+ case 0x9e83dbdc: return skip_constructor_binlog_default_dc (T);
+ case 0x26451bb5: return skip_constructor_binlog_dc_signed (T);
+ case 0x68a870e8: return skip_constructor_binlog_our_id (T);
+ case 0xeaeb7826: 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 0xee1b38e8: return skip_constructor_binlog_encr_chat_delete (T);
+ case 0x84977251: return skip_constructor_binlog_encr_chat_new (T);
+ case 0x9d49488d: return skip_constructor_binlog_encr_chat_exchange_new (T);
+ case 0xac55d447: return skip_constructor_binlog_user_delete (T);
+ case 0x127cf2f9: return skip_constructor_binlog_user_new (T);
+ case 0x0a10aa92: return skip_constructor_binlog_chat_new (T);
+ case 0x535475ea: return skip_constructor_binlog_chat_add_participant (T);
+ case 0x7dd1a1a2: return skip_constructor_binlog_chat_del_participant (T);
+ case 0x3c873416: return skip_constructor_binlog_set_msg_id (T);
+ case 0x847e77b1: return skip_constructor_binlog_message_delete (T);
+ case 0x427cfcdb: return skip_constructor_binlog_message_new (T);
+ case 0x6cf7cabc: return skip_constructor_binlog_message_encr_new (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_dc_option_new (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_dc_signed (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_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_encr_chat_delete (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_binlog_encr_chat_new (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_binlog_encr_chat_exchange_new (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_new (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_binlog_chat_new (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_set_msg_id (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_binlog_message_delete (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_binlog_message_new (T) >= 0) { return 0; }
+ in_ptr = save_in_ptr;
+ if (skip_constructor_binlog_message_encr_new (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 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 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 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 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 skip_type_contacts_link (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x3ace484c: 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 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 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 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 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 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 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 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 skip_type_messages_affected_history (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb45c69d1: 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 skip_type_messages_affected_messages (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x84d19185: return skip_constructor_messages_affected_messages (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_messages_affected_messages (struct paramed_type *T) {
+ if (skip_constructor_messages_affected_messages (T) >= 0) { return 0; }
+ return -1;
+}
+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 0x5ce352ec: 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 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 skip_type_messages_chats (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x64ff9fd5: 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 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 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 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);
+ default: return -1;
+ }
+}
+int skip_type_bare_messages_message (struct paramed_type *T) {
+ if (skip_constructor_messages_message_empty (T) >= 0) { return 0; }
+ return -1;
+}
+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 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 skip_type_messages_sent_message (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x4c3d47f3: return skip_constructor_messages_sent_message (T);
+ case 0x35a1a663: 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 skip_type_messages_sticker_set (struct paramed_type *T) {
+ if (in_remaining () < 4) { return -1;}
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb60a24a6: return skip_constructor_messages_sticker_set (T);
+ default: return -1;
+ }
+}
+int skip_type_bare_messages_sticker_set (struct paramed_type *T) {
+ if (skip_constructor_messages_sticker_set (T) >= 0) { return 0; }
+ return -1;
+}
+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 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 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 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 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 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 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 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 0x7bf2e6f6: return skip_type_authorization (T);
+ case 0x840d1909: return skip_type_bare_authorization (T);
+ case 0x250be282: return skip_type_bool (T);
+ case 0xdaf41d7d: return skip_type_bare_bool (T);
+ case 0x75e7ea6c: return skip_type_bot_command (T);
+ case 0x8a181593: return skip_type_bare_bot_command (T);
+ case 0xb2e16f93: return skip_type_bot_info (T);
+ case 0x4d1e906c: return skip_type_bare_bot_info (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 0x2e02a614: return skip_type_chat_full (T);
+ case 0xd1fd59eb: return skip_type_bare_chat_full (T);
+ case 0x94f910b1: return skip_type_chat_invite (T);
+ case 0x6b06ef4e: return skip_type_bare_chat_invite (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 0x4e32b894: return skip_type_config (T);
+ case 0xb1cd476b: 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 0x522fbc63: return skip_type_contact_link (T);
+ case 0xadd0439c: return skip_type_bare_contact_link (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 0x2b1a62f0: return skip_type_dc_option (T);
+ case 0xd4e59d0f: return skip_type_bare_dc_option (T);
+ case 0x535b7918: return skip_type_decrypted_message (T);
+ case 0xaca486e7: 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 0x34e0d674: return skip_type_decrypted_message_media (T);
+ case 0xcb1f298b: return skip_type_bare_decrypted_message_media (T);
+ case 0xc1dd804a: return skip_type_dialog (T);
+ case 0x3e227fb5: return skip_type_bare_dialog (T);
+ case 0xae636f24: return skip_type_disabled_feature (T);
+ case 0x519c90db: return skip_type_bare_disabled_feature (T);
+ case 0x51a73418: return skip_type_document (T);
+ case 0xae58cbe7: return skip_type_bare_document (T);
+ case 0x97c637a3: return skip_type_document_attribute (T);
+ case 0x6839c85c: 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 0x95f132d5: return skip_type_exported_chat_invite (T);
+ case 0x6a0ecd2a: return skip_type_bare_exported_chat_invite (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 0xb32c91dd: return skip_type_input_media (T);
+ case 0x4cd36e22: 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 0xe44d415c: return skip_type_input_sticker_set (T);
+ case 0x1bb2bea3: return skip_type_bare_input_sticker_set (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 0xa2fa4880: return skip_type_keyboard_button (T);
+ case 0x5d05b77f: return skip_type_bare_keyboard_button (T);
+ case 0x77608b83: return skip_type_keyboard_button_row (T);
+ case 0x889f747c: return skip_type_bare_keyboard_button_row (T);
+ case 0x22076cba: return skip_type_long (T);
+ case 0xddf89345: return skip_type_bare_long (T);
+ case 0x5d652a7f: return skip_type_message (T);
+ case 0xa29ad580: return skip_type_bare_message (T);
+ case 0x383415fa: return skip_type_message_action (T);
+ case 0xc7cbea05: return skip_type_bare_message_action (T);
+ case 0x95f2471a: return skip_type_message_media (T);
+ case 0x6a0db8e5: return skip_type_bare_message_media (T);
+ case 0x80895ae0: return skip_type_messages_filter (T);
+ case 0x7f76a51f: 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 0xc207550a: return skip_type_photo (T);
+ case 0x3df8aaf5: 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 0xa384b779: return skip_type_received_notify_message (T);
+ case 0x5c7b4886: return skip_type_bare_received_notify_message (T);
+ case 0x612ca4a9: return skip_type_reply_markup (T);
+ case 0x9ed35b56: return skip_type_bare_reply_markup (T);
+ case 0x05162463: return skip_type_res_p_q (T);
+ case 0xfae9db9c: return skip_type_bare_res_p_q (T);
+ case 0x70541c7e: return skip_type_send_message_action (T);
+ case 0x8fabe381: 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 0xa7a43b17: return skip_type_sticker_set (T);
+ case 0x585bc4e8: return skip_type_bare_sticker_set (T);
+ case 0xb5286e24: return skip_type_string (T);
+ case 0x4ad791db: return skip_type_bare_string (T);
+ case 0x2e02b27e: return skip_type_update (T);
+ case 0xd1fd4d81: return skip_type_bare_update (T);
+ case 0x22499d27: return skip_type_updates (T);
+ case 0xddb662d8: return skip_type_bare_updates (T);
+ case 0x02e6c0c8: return skip_type_user (T);
+ case 0xfd193f37: return skip_type_bare_user (T);
+ case 0x5a89ac5b: return skip_type_user_full (T);
+ case 0xa57653a4: 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 0x1716b174: return skip_type_video (T);
+ case 0xe8e94e8b: return skip_type_bare_video (T);
+ case 0xafa14973: return skip_type_wall_paper (T);
+ case 0x505eb68c: return skip_type_bare_wall_paper (T);
+ case 0x8d8c0d41: return skip_type_web_page (T);
+ case 0x7273f2be: return skip_type_bare_web_page (T);
+ case 0x1250abde: return skip_type_account_authorizations (T);
+ case 0xedaf5421: return skip_type_bare_account_authorizations (T);
+ case 0xeac2a804: return skip_type_account_password (T);
+ case 0x153d57fb: return skip_type_bare_account_password (T);
+ case 0xbcfc532c: return skip_type_account_password_input_settings (T);
+ case 0x4303acd3: return skip_type_bare_account_password_input_settings (T);
+ case 0xb7b72ab3: return skip_type_account_password_settings (T);
+ case 0x4848d54c: return skip_type_bare_account_password_settings (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 0xff036af1: return skip_type_auth_authorization (T);
+ case 0x00fc950e: return skip_type_bare_auth_authorization (T);
+ case 0x811ea28e: return skip_type_auth_checked_phone (T);
+ case 0x7ee15d71: 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 0x137948a5: return skip_type_auth_password_recovery (T);
+ case 0xec86b75a: return skip_type_bare_auth_password_recovery (T);
+ case 0x0cc8bc16: return skip_type_auth_sent_code (T);
+ case 0xf33743e9: return skip_type_bare_auth_sent_code (T);
+ case 0x0377168f: return skip_type_binlog_encr_key (T);
+ case 0xfc88e970: return skip_type_bare_binlog_encr_key (T);
+ case 0x66ff03a6: return skip_type_binlog_update (T);
+ case 0x9900fc59: 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 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 0x3ace484c: return skip_type_contacts_link (T);
+ case 0xc531b7b3: return skip_type_bare_contacts_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 0xb45c69d1: return skip_type_messages_affected_history (T);
+ case 0x4ba3962e: return skip_type_bare_messages_affected_history (T);
+ case 0x84d19185: return skip_type_messages_affected_messages (T);
+ case 0x7b2e6e7a: return skip_type_bare_messages_affected_messages (T);
+ case 0xb485502f: return skip_type_messages_all_stickers (T);
+ case 0x4b7aafd0: return skip_type_bare_messages_all_stickers (T);
+ case 0xe5d7d19c: return skip_type_messages_chat_full (T);
+ case 0x1a282e63: return skip_type_bare_messages_chat_full (T);
+ case 0x64ff9fd5: return skip_type_messages_chats (T);
+ case 0x9b00602a: 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 0x3f4e0648: return skip_type_messages_message (T);
+ case 0xc0b1f9b7: 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 0x799ce190: return skip_type_messages_sent_message (T);
+ case 0x86631e6f: return skip_type_bare_messages_sent_message (T);
+ case 0xb60a24a6: return skip_type_messages_sticker_set (T);
+ case 0x49f5db59: return skip_type_bare_messages_sticker_set (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; }
+}
diff --git a/libs/tgl/src/auto/auto-skip.h b/libs/tgl/src/auto/auto-skip.h
new file mode 100644
index 0000000000..f26a800b1a
--- /dev/null
+++ b/libs/tgl/src/auto/auto-skip.h
@@ -0,0 +1,714 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#else
+#include "auto.h"
+#endif
+#include <assert.h>
+int skip_constructor_account_days_t_t_l (struct paramed_type *T);
+int skip_constructor_audio_empty (struct paramed_type *T);
+int skip_constructor_audio (struct paramed_type *T);
+int skip_constructor_authorization (struct paramed_type *T);
+int skip_constructor_bool_false (struct paramed_type *T);
+int skip_constructor_bool_true (struct paramed_type *T);
+int skip_constructor_bot_command (struct paramed_type *T);
+int skip_constructor_bot_command_old (struct paramed_type *T);
+int skip_constructor_bot_info_empty (struct paramed_type *T);
+int skip_constructor_bot_info (struct paramed_type *T);
+int skip_constructor_bytes (struct paramed_type *T);
+int skip_constructor_chat_empty (struct paramed_type *T);
+int skip_constructor_chat (struct paramed_type *T);
+int skip_constructor_chat_forbidden (struct paramed_type *T);
+int skip_constructor_geo_chat (struct paramed_type *T);
+int skip_constructor_chat_full (struct paramed_type *T);
+int skip_constructor_chat_invite_already (struct paramed_type *T);
+int skip_constructor_chat_invite (struct paramed_type *T);
+int skip_constructor_chat_located (struct paramed_type *T);
+int skip_constructor_chat_participant (struct paramed_type *T);
+int skip_constructor_chat_participants_forbidden (struct paramed_type *T);
+int skip_constructor_chat_participants (struct paramed_type *T);
+int skip_constructor_chat_photo_empty (struct paramed_type *T);
+int skip_constructor_chat_photo (struct paramed_type *T);
+int skip_constructor_client_d_h_inner_data (struct paramed_type *T);
+int skip_constructor_config (struct paramed_type *T);
+int skip_constructor_contact (struct paramed_type *T);
+int skip_constructor_contact_blocked (struct paramed_type *T);
+int skip_constructor_contact_found (struct paramed_type *T);
+int skip_constructor_contact_link_unknown (struct paramed_type *T);
+int skip_constructor_contact_link_none (struct paramed_type *T);
+int skip_constructor_contact_link_has_phone (struct paramed_type *T);
+int skip_constructor_contact_link_contact (struct paramed_type *T);
+int skip_constructor_contact_status (struct paramed_type *T);
+int skip_constructor_contact_suggested (struct paramed_type *T);
+int skip_constructor_dc_option_l28 (struct paramed_type *T);
+int skip_constructor_dc_option (struct paramed_type *T);
+int skip_constructor_decrypted_message (struct paramed_type *T);
+int skip_constructor_decrypted_message_service (struct paramed_type *T);
+int skip_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 skip_constructor_decrypted_message_action_delete_messages (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_flush_history (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_resend (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_notify_layer (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_typing (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_request_key (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_accept_key (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_abort_key (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_commit_key (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_noop (struct paramed_type *T);
+int skip_constructor_decrypted_message_layer (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_empty (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_photo (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_geo_point (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_contact (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_document (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_video (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_audio (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_external_document (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_video_l12 (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T);
+int skip_constructor_dialog (struct paramed_type *T);
+int skip_constructor_disabled_feature (struct paramed_type *T);
+int skip_constructor_document_empty (struct paramed_type *T);
+int skip_constructor_document (struct paramed_type *T);
+int skip_constructor_document_l19 (struct paramed_type *T);
+int skip_constructor_document_attribute_image_size (struct paramed_type *T);
+int skip_constructor_document_attribute_animated (struct paramed_type *T);
+int skip_constructor_document_attribute_sticker_l28 (struct paramed_type *T);
+int skip_constructor_document_attribute_sticker (struct paramed_type *T);
+int skip_constructor_document_attribute_video (struct paramed_type *T);
+int skip_constructor_document_attribute_audio (struct paramed_type *T);
+int skip_constructor_document_attribute_filename (struct paramed_type *T);
+int skip_constructor_double (struct paramed_type *T);
+int skip_constructor_encrypted_chat_empty (struct paramed_type *T);
+int skip_constructor_encrypted_chat_waiting (struct paramed_type *T);
+int skip_constructor_encrypted_chat_requested (struct paramed_type *T);
+int skip_constructor_encrypted_chat (struct paramed_type *T);
+int skip_constructor_encrypted_chat_discarded (struct paramed_type *T);
+int skip_constructor_encrypted_file_empty (struct paramed_type *T);
+int skip_constructor_encrypted_file (struct paramed_type *T);
+int skip_constructor_encrypted_message (struct paramed_type *T);
+int skip_constructor_encrypted_message_service (struct paramed_type *T);
+int skip_constructor_error (struct paramed_type *T);
+int skip_constructor_chat_invite_empty (struct paramed_type *T);
+int skip_constructor_chat_invite_exported (struct paramed_type *T);
+int skip_constructor_file_location_unavailable (struct paramed_type *T);
+int skip_constructor_file_location (struct paramed_type *T);
+int skip_constructor_geo_chat_message_empty (struct paramed_type *T);
+int skip_constructor_geo_chat_message (struct paramed_type *T);
+int skip_constructor_geo_chat_message_service (struct paramed_type *T);
+int skip_constructor_geo_point_empty (struct paramed_type *T);
+int skip_constructor_geo_point (struct paramed_type *T);
+int skip_constructor_imported_contact (struct paramed_type *T);
+int skip_constructor_input_app_event (struct paramed_type *T);
+int skip_constructor_input_audio_empty (struct paramed_type *T);
+int skip_constructor_input_audio (struct paramed_type *T);
+int skip_constructor_input_chat_photo_empty (struct paramed_type *T);
+int skip_constructor_input_chat_uploaded_photo (struct paramed_type *T);
+int skip_constructor_input_chat_photo (struct paramed_type *T);
+int skip_constructor_input_phone_contact (struct paramed_type *T);
+int skip_constructor_input_document_empty (struct paramed_type *T);
+int skip_constructor_input_document (struct paramed_type *T);
+int skip_constructor_input_encrypted_chat (struct paramed_type *T);
+int skip_constructor_input_encrypted_file_empty (struct paramed_type *T);
+int skip_constructor_input_encrypted_file_uploaded (struct paramed_type *T);
+int skip_constructor_input_encrypted_file (struct paramed_type *T);
+int skip_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T);
+int skip_constructor_input_file (struct paramed_type *T);
+int skip_constructor_input_file_big (struct paramed_type *T);
+int skip_constructor_input_file_location (struct paramed_type *T);
+int skip_constructor_input_video_file_location (struct paramed_type *T);
+int skip_constructor_input_encrypted_file_location (struct paramed_type *T);
+int skip_constructor_input_audio_file_location (struct paramed_type *T);
+int skip_constructor_input_document_file_location (struct paramed_type *T);
+int skip_constructor_input_geo_chat (struct paramed_type *T);
+int skip_constructor_input_geo_point_empty (struct paramed_type *T);
+int skip_constructor_input_geo_point (struct paramed_type *T);
+int skip_constructor_input_media_empty (struct paramed_type *T);
+int skip_constructor_input_media_uploaded_photo (struct paramed_type *T);
+int skip_constructor_input_media_photo (struct paramed_type *T);
+int skip_constructor_input_media_geo_point (struct paramed_type *T);
+int skip_constructor_input_media_contact (struct paramed_type *T);
+int skip_constructor_input_media_uploaded_video (struct paramed_type *T);
+int skip_constructor_input_media_uploaded_thumb_video (struct paramed_type *T);
+int skip_constructor_input_media_video (struct paramed_type *T);
+int skip_constructor_input_media_uploaded_audio (struct paramed_type *T);
+int skip_constructor_input_media_audio (struct paramed_type *T);
+int skip_constructor_input_media_uploaded_document (struct paramed_type *T);
+int skip_constructor_input_media_uploaded_thumb_document (struct paramed_type *T);
+int skip_constructor_input_media_document (struct paramed_type *T);
+int skip_constructor_input_media_venue (struct paramed_type *T);
+int skip_constructor_input_notify_peer (struct paramed_type *T);
+int skip_constructor_input_notify_users (struct paramed_type *T);
+int skip_constructor_input_notify_chats (struct paramed_type *T);
+int skip_constructor_input_notify_all (struct paramed_type *T);
+int skip_constructor_input_notify_geo_chat_peer (struct paramed_type *T);
+int skip_constructor_input_peer_empty (struct paramed_type *T);
+int skip_constructor_input_peer_self (struct paramed_type *T);
+int skip_constructor_input_peer_contact (struct paramed_type *T);
+int skip_constructor_input_peer_foreign (struct paramed_type *T);
+int skip_constructor_input_peer_chat (struct paramed_type *T);
+int skip_constructor_input_peer_notify_events_empty (struct paramed_type *T);
+int skip_constructor_input_peer_notify_events_all (struct paramed_type *T);
+int skip_constructor_input_peer_notify_settings (struct paramed_type *T);
+int skip_constructor_input_photo_empty (struct paramed_type *T);
+int skip_constructor_input_photo (struct paramed_type *T);
+int skip_constructor_input_photo_crop_auto (struct paramed_type *T);
+int skip_constructor_input_photo_crop (struct paramed_type *T);
+int skip_constructor_input_privacy_key_status_timestamp (struct paramed_type *T);
+int skip_constructor_input_privacy_value_allow_contacts (struct paramed_type *T);
+int skip_constructor_input_privacy_value_allow_all (struct paramed_type *T);
+int skip_constructor_input_privacy_value_allow_users (struct paramed_type *T);
+int skip_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T);
+int skip_constructor_input_privacy_value_disallow_all (struct paramed_type *T);
+int skip_constructor_input_privacy_value_disallow_users (struct paramed_type *T);
+int skip_constructor_input_sticker_set_empty (struct paramed_type *T);
+int skip_constructor_input_sticker_set_i_d (struct paramed_type *T);
+int skip_constructor_input_sticker_set_short_name (struct paramed_type *T);
+int skip_constructor_input_user_empty (struct paramed_type *T);
+int skip_constructor_input_user_self (struct paramed_type *T);
+int skip_constructor_input_user_contact (struct paramed_type *T);
+int skip_constructor_input_user_foreign (struct paramed_type *T);
+int skip_constructor_input_video_empty (struct paramed_type *T);
+int skip_constructor_input_video (struct paramed_type *T);
+int skip_constructor_int (struct paramed_type *T);
+int skip_constructor_int128 (struct paramed_type *T);
+int skip_constructor_int256 (struct paramed_type *T);
+int skip_constructor_keyboard_button (struct paramed_type *T);
+int skip_constructor_keyboard_button_row (struct paramed_type *T);
+int skip_constructor_long (struct paramed_type *T);
+int skip_constructor_message_empty (struct paramed_type *T);
+int skip_constructor_message (struct paramed_type *T);
+int skip_constructor_message_service (struct paramed_type *T);
+int skip_constructor_message_action_empty (struct paramed_type *T);
+int skip_constructor_message_action_chat_create (struct paramed_type *T);
+int skip_constructor_message_action_chat_edit_title (struct paramed_type *T);
+int skip_constructor_message_action_chat_edit_photo (struct paramed_type *T);
+int skip_constructor_message_action_chat_delete_photo (struct paramed_type *T);
+int skip_constructor_message_action_chat_add_user (struct paramed_type *T);
+int skip_constructor_message_action_chat_delete_user (struct paramed_type *T);
+int skip_constructor_message_action_geo_chat_create (struct paramed_type *T);
+int skip_constructor_message_action_geo_chat_checkin (struct paramed_type *T);
+int skip_constructor_message_action_chat_joined_by_link (struct paramed_type *T);
+int skip_constructor_message_media_empty (struct paramed_type *T);
+int skip_constructor_message_media_photo (struct paramed_type *T);
+int skip_constructor_message_media_video (struct paramed_type *T);
+int skip_constructor_message_media_geo (struct paramed_type *T);
+int skip_constructor_message_media_contact (struct paramed_type *T);
+int skip_constructor_message_media_unsupported (struct paramed_type *T);
+int skip_constructor_message_media_document (struct paramed_type *T);
+int skip_constructor_message_media_audio (struct paramed_type *T);
+int skip_constructor_message_media_web_page (struct paramed_type *T);
+int skip_constructor_message_media_venue (struct paramed_type *T);
+int skip_constructor_message_media_photo_l27 (struct paramed_type *T);
+int skip_constructor_message_media_video_l27 (struct paramed_type *T);
+int skip_constructor_input_messages_filter_empty (struct paramed_type *T);
+int skip_constructor_input_messages_filter_photos (struct paramed_type *T);
+int skip_constructor_input_messages_filter_video (struct paramed_type *T);
+int skip_constructor_input_messages_filter_photo_video (struct paramed_type *T);
+int skip_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T);
+int skip_constructor_input_messages_filter_document (struct paramed_type *T);
+int skip_constructor_input_messages_filter_audio (struct paramed_type *T);
+int skip_constructor_nearest_dc (struct paramed_type *T);
+int skip_constructor_notify_peer (struct paramed_type *T);
+int skip_constructor_notify_users (struct paramed_type *T);
+int skip_constructor_notify_chats (struct paramed_type *T);
+int skip_constructor_notify_all (struct paramed_type *T);
+int skip_constructor_null (struct paramed_type *T);
+int skip_constructor_p_q_inner_data (struct paramed_type *T);
+int skip_constructor_p_q_inner_data_temp (struct paramed_type *T);
+int skip_constructor_peer_user (struct paramed_type *T);
+int skip_constructor_peer_chat (struct paramed_type *T);
+int skip_constructor_peer_notify_events_empty (struct paramed_type *T);
+int skip_constructor_peer_notify_events_all (struct paramed_type *T);
+int skip_constructor_peer_notify_settings_empty (struct paramed_type *T);
+int skip_constructor_peer_notify_settings (struct paramed_type *T);
+int skip_constructor_photo_empty (struct paramed_type *T);
+int skip_constructor_photo (struct paramed_type *T);
+int skip_constructor_photo_l27 (struct paramed_type *T);
+int skip_constructor_photo_size_empty (struct paramed_type *T);
+int skip_constructor_photo_size (struct paramed_type *T);
+int skip_constructor_photo_cached_size (struct paramed_type *T);
+int skip_constructor_privacy_key_status_timestamp (struct paramed_type *T);
+int skip_constructor_privacy_value_allow_contacts (struct paramed_type *T);
+int skip_constructor_privacy_value_allow_all (struct paramed_type *T);
+int skip_constructor_privacy_value_allow_users (struct paramed_type *T);
+int skip_constructor_privacy_value_disallow_contacts (struct paramed_type *T);
+int skip_constructor_privacy_value_disallow_all (struct paramed_type *T);
+int skip_constructor_privacy_value_disallow_users (struct paramed_type *T);
+int skip_constructor_received_notify_message (struct paramed_type *T);
+int skip_constructor_reply_keyboard_hide (struct paramed_type *T);
+int skip_constructor_reply_keyboard_force_reply (struct paramed_type *T);
+int skip_constructor_reply_keyboard_markup (struct paramed_type *T);
+int skip_constructor_res_p_q (struct paramed_type *T);
+int skip_constructor_send_message_typing_action (struct paramed_type *T);
+int skip_constructor_send_message_cancel_action (struct paramed_type *T);
+int skip_constructor_send_message_record_video_action (struct paramed_type *T);
+int skip_constructor_send_message_upload_video_action_l27 (struct paramed_type *T);
+int skip_constructor_send_message_upload_video_action (struct paramed_type *T);
+int skip_constructor_send_message_record_audio_action (struct paramed_type *T);
+int skip_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T);
+int skip_constructor_send_message_upload_audio_action (struct paramed_type *T);
+int skip_constructor_send_message_upload_photo_action (struct paramed_type *T);
+int skip_constructor_send_message_upload_document_action_l27 (struct paramed_type *T);
+int skip_constructor_send_message_upload_document_action (struct paramed_type *T);
+int skip_constructor_send_message_geo_location_action (struct paramed_type *T);
+int skip_constructor_send_message_choose_contact_action (struct paramed_type *T);
+int skip_constructor_server_d_h_params_fail (struct paramed_type *T);
+int skip_constructor_server_d_h_params_ok (struct paramed_type *T);
+int skip_constructor_server_d_h_inner_data (struct paramed_type *T);
+int skip_constructor_dh_gen_ok (struct paramed_type *T);
+int skip_constructor_dh_gen_retry (struct paramed_type *T);
+int skip_constructor_dh_gen_fail (struct paramed_type *T);
+int skip_constructor_sticker_pack (struct paramed_type *T);
+int skip_constructor_sticker_set (struct paramed_type *T);
+int skip_constructor_string (struct paramed_type *T);
+int skip_constructor_update_new_message (struct paramed_type *T);
+int skip_constructor_update_message_i_d (struct paramed_type *T);
+int skip_constructor_update_delete_messages (struct paramed_type *T);
+int skip_constructor_update_user_typing (struct paramed_type *T);
+int skip_constructor_update_chat_user_typing (struct paramed_type *T);
+int skip_constructor_update_chat_participants (struct paramed_type *T);
+int skip_constructor_update_user_status (struct paramed_type *T);
+int skip_constructor_update_user_name (struct paramed_type *T);
+int skip_constructor_update_user_photo (struct paramed_type *T);
+int skip_constructor_update_contact_registered (struct paramed_type *T);
+int skip_constructor_update_contact_link (struct paramed_type *T);
+int skip_constructor_update_new_authorization (struct paramed_type *T);
+int skip_constructor_update_new_geo_chat_message (struct paramed_type *T);
+int skip_constructor_update_new_encrypted_message (struct paramed_type *T);
+int skip_constructor_update_encrypted_chat_typing (struct paramed_type *T);
+int skip_constructor_update_encryption (struct paramed_type *T);
+int skip_constructor_update_encrypted_messages_read (struct paramed_type *T);
+int skip_constructor_update_chat_participant_add (struct paramed_type *T);
+int skip_constructor_update_chat_participant_delete (struct paramed_type *T);
+int skip_constructor_update_dc_options (struct paramed_type *T);
+int skip_constructor_update_user_blocked (struct paramed_type *T);
+int skip_constructor_update_notify_settings (struct paramed_type *T);
+int skip_constructor_update_service_notification (struct paramed_type *T);
+int skip_constructor_update_privacy (struct paramed_type *T);
+int skip_constructor_update_user_phone (struct paramed_type *T);
+int skip_constructor_update_read_history_inbox (struct paramed_type *T);
+int skip_constructor_update_read_history_outbox (struct paramed_type *T);
+int skip_constructor_update_web_page (struct paramed_type *T);
+int skip_constructor_update_read_messages_contents (struct paramed_type *T);
+int skip_constructor_update_msg_update (struct paramed_type *T);
+int skip_constructor_updates_too_long (struct paramed_type *T);
+int skip_constructor_update_short_message (struct paramed_type *T);
+int skip_constructor_update_short_chat_message (struct paramed_type *T);
+int skip_constructor_update_short (struct paramed_type *T);
+int skip_constructor_updates_combined (struct paramed_type *T);
+int skip_constructor_updates (struct paramed_type *T);
+int skip_constructor_user_empty (struct paramed_type *T);
+int skip_constructor_user (struct paramed_type *T);
+int skip_constructor_user_full (struct paramed_type *T);
+int skip_constructor_user_profile_photo_empty (struct paramed_type *T);
+int skip_constructor_user_profile_photo (struct paramed_type *T);
+int skip_constructor_user_status_empty (struct paramed_type *T);
+int skip_constructor_user_status_online (struct paramed_type *T);
+int skip_constructor_user_status_offline (struct paramed_type *T);
+int skip_constructor_user_status_recently (struct paramed_type *T);
+int skip_constructor_user_status_last_week (struct paramed_type *T);
+int skip_constructor_user_status_last_month (struct paramed_type *T);
+int skip_constructor_vector (struct paramed_type *T);
+int skip_constructor_video_empty (struct paramed_type *T);
+int skip_constructor_video (struct paramed_type *T);
+int skip_constructor_video_l27 (struct paramed_type *T);
+int skip_constructor_wall_paper (struct paramed_type *T);
+int skip_constructor_wall_paper_solid (struct paramed_type *T);
+int skip_constructor_web_page_empty (struct paramed_type *T);
+int skip_constructor_web_page_pending (struct paramed_type *T);
+int skip_constructor_web_page (struct paramed_type *T);
+int skip_constructor_account_authorizations (struct paramed_type *T);
+int skip_constructor_account_no_password (struct paramed_type *T);
+int skip_constructor_account_password (struct paramed_type *T);
+int skip_constructor_account_password_input_settings (struct paramed_type *T);
+int skip_constructor_account_password_settings (struct paramed_type *T);
+int skip_constructor_account_privacy_rules (struct paramed_type *T);
+int skip_constructor_account_sent_change_phone_code (struct paramed_type *T);
+int skip_constructor_auth_authorization (struct paramed_type *T);
+int skip_constructor_auth_checked_phone (struct paramed_type *T);
+int skip_constructor_auth_exported_authorization (struct paramed_type *T);
+int skip_constructor_auth_password_recovery (struct paramed_type *T);
+int skip_constructor_auth_sent_code (struct paramed_type *T);
+int skip_constructor_auth_sent_app_code (struct paramed_type *T);
+int skip_constructor_binlog_encr_key (struct paramed_type *T);
+int skip_constructor_binlog_start (struct paramed_type *T);
+int skip_constructor_binlog_dc_option (struct paramed_type *T);
+int skip_constructor_binlog_dc_option_new (struct paramed_type *T);
+int skip_constructor_binlog_auth_key (struct paramed_type *T);
+int skip_constructor_binlog_default_dc (struct paramed_type *T);
+int skip_constructor_binlog_dc_signed (struct paramed_type *T);
+int skip_constructor_binlog_our_id (struct paramed_type *T);
+int skip_constructor_binlog_set_dh_params (struct paramed_type *T);
+int skip_constructor_binlog_set_pts (struct paramed_type *T);
+int skip_constructor_binlog_set_qts (struct paramed_type *T);
+int skip_constructor_binlog_set_date (struct paramed_type *T);
+int skip_constructor_binlog_set_seq (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_delete (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_new (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T);
+int skip_constructor_binlog_user_delete (struct paramed_type *T);
+int skip_constructor_binlog_user_new (struct paramed_type *T);
+int skip_constructor_binlog_chat_new (struct paramed_type *T);
+int skip_constructor_binlog_chat_add_participant (struct paramed_type *T);
+int skip_constructor_binlog_chat_del_participant (struct paramed_type *T);
+int skip_constructor_binlog_set_msg_id (struct paramed_type *T);
+int skip_constructor_binlog_message_delete (struct paramed_type *T);
+int skip_constructor_binlog_message_new (struct paramed_type *T);
+int skip_constructor_binlog_message_encr_new (struct paramed_type *T);
+int skip_constructor_binlog_msg_update (struct paramed_type *T);
+int skip_constructor_binlog_reset_authorization (struct paramed_type *T);
+int skip_constructor_contacts_blocked (struct paramed_type *T);
+int skip_constructor_contacts_blocked_slice (struct paramed_type *T);
+int skip_constructor_contacts_contacts_not_modified (struct paramed_type *T);
+int skip_constructor_contacts_contacts (struct paramed_type *T);
+int skip_constructor_contacts_found (struct paramed_type *T);
+int skip_constructor_contacts_imported_contacts (struct paramed_type *T);
+int skip_constructor_contacts_link (struct paramed_type *T);
+int skip_constructor_contacts_suggested (struct paramed_type *T);
+int skip_constructor_geochats_located (struct paramed_type *T);
+int skip_constructor_geochats_messages (struct paramed_type *T);
+int skip_constructor_geochats_messages_slice (struct paramed_type *T);
+int skip_constructor_geochats_stated_message (struct paramed_type *T);
+int skip_constructor_help_app_update (struct paramed_type *T);
+int skip_constructor_help_no_app_update (struct paramed_type *T);
+int skip_constructor_help_invite_text (struct paramed_type *T);
+int skip_constructor_help_support (struct paramed_type *T);
+int skip_constructor_messages_affected_history (struct paramed_type *T);
+int skip_constructor_messages_affected_messages (struct paramed_type *T);
+int skip_constructor_messages_all_stickers_not_modified (struct paramed_type *T);
+int skip_constructor_messages_all_stickers (struct paramed_type *T);
+int skip_constructor_messages_chat_full (struct paramed_type *T);
+int skip_constructor_messages_chats (struct paramed_type *T);
+int skip_constructor_messages_dh_config_not_modified (struct paramed_type *T);
+int skip_constructor_messages_dh_config (struct paramed_type *T);
+int skip_constructor_messages_dialogs (struct paramed_type *T);
+int skip_constructor_messages_dialogs_slice (struct paramed_type *T);
+int skip_constructor_messages_message_empty (struct paramed_type *T);
+int skip_constructor_messages_messages (struct paramed_type *T);
+int skip_constructor_messages_messages_slice (struct paramed_type *T);
+int skip_constructor_messages_sent_encrypted_message (struct paramed_type *T);
+int skip_constructor_messages_sent_encrypted_file (struct paramed_type *T);
+int skip_constructor_messages_sent_message (struct paramed_type *T);
+int skip_constructor_messages_sent_message_link (struct paramed_type *T);
+int skip_constructor_messages_sticker_set (struct paramed_type *T);
+int skip_constructor_messages_stickers_not_modified (struct paramed_type *T);
+int skip_constructor_messages_stickers (struct paramed_type *T);
+int skip_constructor_photos_photo (struct paramed_type *T);
+int skip_constructor_photos_photos (struct paramed_type *T);
+int skip_constructor_photos_photos_slice (struct paramed_type *T);
+int skip_constructor_storage_file_unknown (struct paramed_type *T);
+int skip_constructor_storage_file_jpeg (struct paramed_type *T);
+int skip_constructor_storage_file_gif (struct paramed_type *T);
+int skip_constructor_storage_file_png (struct paramed_type *T);
+int skip_constructor_storage_file_pdf (struct paramed_type *T);
+int skip_constructor_storage_file_mp3 (struct paramed_type *T);
+int skip_constructor_storage_file_mov (struct paramed_type *T);
+int skip_constructor_storage_file_partial (struct paramed_type *T);
+int skip_constructor_storage_file_mp4 (struct paramed_type *T);
+int skip_constructor_storage_file_webp (struct paramed_type *T);
+int skip_constructor_updates_difference_empty (struct paramed_type *T);
+int skip_constructor_updates_difference (struct paramed_type *T);
+int skip_constructor_updates_difference_slice (struct paramed_type *T);
+int skip_constructor_updates_state (struct paramed_type *T);
+int skip_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 skip_type_audio (struct paramed_type *T);
+int skip_type_bare_audio (struct paramed_type *T);
+int skip_type_authorization (struct paramed_type *T);
+int skip_type_bare_authorization (struct paramed_type *T);
+int skip_type_bool (struct paramed_type *T);
+int skip_type_bare_bool (struct paramed_type *T);
+int skip_type_bot_command (struct paramed_type *T);
+int skip_type_bare_bot_command (struct paramed_type *T);
+int skip_type_bot_info (struct paramed_type *T);
+int skip_type_bare_bot_info (struct paramed_type *T);
+int skip_type_bytes (struct paramed_type *T);
+int skip_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 skip_type_chat_full (struct paramed_type *T);
+int skip_type_bare_chat_full (struct paramed_type *T);
+int skip_type_chat_invite (struct paramed_type *T);
+int skip_type_bare_chat_invite (struct paramed_type *T);
+int skip_type_chat_located (struct paramed_type *T);
+int skip_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 skip_type_chat_participants (struct paramed_type *T);
+int skip_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 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 skip_type_config (struct paramed_type *T);
+int skip_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 skip_type_contact_blocked (struct paramed_type *T);
+int skip_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 skip_type_contact_link (struct paramed_type *T);
+int skip_type_bare_contact_link (struct paramed_type *T);
+int skip_type_contact_status (struct paramed_type *T);
+int skip_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 skip_type_dc_option (struct paramed_type *T);
+int skip_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 skip_type_decrypted_message_action (struct paramed_type *T);
+int skip_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 skip_type_decrypted_message_media (struct paramed_type *T);
+int skip_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 skip_type_disabled_feature (struct paramed_type *T);
+int skip_type_bare_disabled_feature (struct paramed_type *T);
+int skip_type_document (struct paramed_type *T);
+int skip_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 skip_type_double (struct paramed_type *T);
+int skip_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 skip_type_encrypted_file (struct paramed_type *T);
+int skip_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 skip_type_error (struct paramed_type *T);
+int skip_type_bare_error (struct paramed_type *T);
+int skip_type_exported_chat_invite (struct paramed_type *T);
+int skip_type_bare_exported_chat_invite (struct paramed_type *T);
+int skip_type_file_location (struct paramed_type *T);
+int skip_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 skip_type_geo_point (struct paramed_type *T);
+int skip_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 skip_type_input_app_event (struct paramed_type *T);
+int skip_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 skip_type_input_chat_photo (struct paramed_type *T);
+int skip_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 skip_type_input_document (struct paramed_type *T);
+int skip_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 skip_type_input_encrypted_file (struct paramed_type *T);
+int skip_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 skip_type_input_file_location (struct paramed_type *T);
+int skip_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 skip_type_input_geo_point (struct paramed_type *T);
+int skip_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 skip_type_input_notify_peer (struct paramed_type *T);
+int skip_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 skip_type_input_peer_notify_events (struct paramed_type *T);
+int skip_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 skip_type_input_photo (struct paramed_type *T);
+int skip_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 skip_type_input_privacy_key (struct paramed_type *T);
+int skip_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 skip_type_input_sticker_set (struct paramed_type *T);
+int skip_type_bare_input_sticker_set (struct paramed_type *T);
+int skip_type_input_user (struct paramed_type *T);
+int skip_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 skip_type_int (struct paramed_type *T);
+int skip_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 skip_type_int256 (struct paramed_type *T);
+int skip_type_bare_int256 (struct paramed_type *T);
+int skip_type_keyboard_button (struct paramed_type *T);
+int skip_type_bare_keyboard_button (struct paramed_type *T);
+int skip_type_keyboard_button_row (struct paramed_type *T);
+int skip_type_bare_keyboard_button_row (struct paramed_type *T);
+int skip_type_long (struct paramed_type *T);
+int skip_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 skip_type_message_action (struct paramed_type *T);
+int skip_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 skip_type_messages_filter (struct paramed_type *T);
+int skip_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 skip_type_notify_peer (struct paramed_type *T);
+int skip_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 skip_type_p_q_inner_data (struct paramed_type *T);
+int skip_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 skip_type_peer_notify_events (struct paramed_type *T);
+int skip_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 skip_type_photo (struct paramed_type *T);
+int skip_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 skip_type_privacy_key (struct paramed_type *T);
+int skip_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 skip_type_received_notify_message (struct paramed_type *T);
+int skip_type_bare_received_notify_message (struct paramed_type *T);
+int skip_type_reply_markup (struct paramed_type *T);
+int skip_type_bare_reply_markup (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 skip_type_send_message_action (struct paramed_type *T);
+int skip_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 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 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 skip_type_sticker_pack (struct paramed_type *T);
+int skip_type_bare_sticker_pack (struct paramed_type *T);
+int skip_type_sticker_set (struct paramed_type *T);
+int skip_type_bare_sticker_set (struct paramed_type *T);
+int skip_type_string (struct paramed_type *T);
+int skip_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 skip_type_updates (struct paramed_type *T);
+int skip_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 skip_type_user_full (struct paramed_type *T);
+int skip_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 skip_type_user_status (struct paramed_type *T);
+int skip_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 skip_type_video (struct paramed_type *T);
+int skip_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 skip_type_web_page (struct paramed_type *T);
+int skip_type_bare_web_page (struct paramed_type *T);
+int skip_type_account_authorizations (struct paramed_type *T);
+int skip_type_bare_account_authorizations (struct paramed_type *T);
+int skip_type_account_password (struct paramed_type *T);
+int skip_type_bare_account_password (struct paramed_type *T);
+int skip_type_account_password_input_settings (struct paramed_type *T);
+int skip_type_bare_account_password_input_settings (struct paramed_type *T);
+int skip_type_account_password_settings (struct paramed_type *T);
+int skip_type_bare_account_password_settings (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 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 skip_type_auth_authorization (struct paramed_type *T);
+int skip_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 skip_type_auth_exported_authorization (struct paramed_type *T);
+int skip_type_bare_auth_exported_authorization (struct paramed_type *T);
+int skip_type_auth_password_recovery (struct paramed_type *T);
+int skip_type_bare_auth_password_recovery (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 skip_type_binlog_encr_key (struct paramed_type *T);
+int skip_type_bare_binlog_encr_key (struct paramed_type *T);
+int skip_type_binlog_update (struct paramed_type *T);
+int skip_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 skip_type_contacts_contacts (struct paramed_type *T);
+int skip_type_bare_contacts_contacts (struct paramed_type *T);
+int skip_type_contacts_found (struct paramed_type *T);
+int skip_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 skip_type_contacts_link (struct paramed_type *T);
+int skip_type_bare_contacts_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 skip_type_geochats_located (struct paramed_type *T);
+int skip_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 skip_type_geochats_stated_message (struct paramed_type *T);
+int skip_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 skip_type_help_invite_text (struct paramed_type *T);
+int skip_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 skip_type_messages_affected_history (struct paramed_type *T);
+int skip_type_bare_messages_affected_history (struct paramed_type *T);
+int skip_type_messages_affected_messages (struct paramed_type *T);
+int skip_type_bare_messages_affected_messages (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 skip_type_messages_chat_full (struct paramed_type *T);
+int skip_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 skip_type_messages_dh_config (struct paramed_type *T);
+int skip_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 skip_type_messages_message (struct paramed_type *T);
+int skip_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 skip_type_messages_sent_encrypted_message (struct paramed_type *T);
+int skip_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 skip_type_messages_sticker_set (struct paramed_type *T);
+int skip_type_bare_messages_sticker_set (struct paramed_type *T);
+int skip_type_messages_stickers (struct paramed_type *T);
+int skip_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 skip_type_photos_photos (struct paramed_type *T);
+int skip_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 skip_type_updates_difference (struct paramed_type *T);
+int skip_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 skip_type_upload_file (struct paramed_type *T);
+int skip_type_bare_upload_file (struct paramed_type *T);
+int skip_type_any (struct paramed_type *T);
diff --git a/libs/tgl/src/auto/auto-store-ds.c b/libs/tgl/src/auto/auto-store-ds.c
new file mode 100644
index 0000000000..1a5356e4d0
--- /dev/null
+++ b/libs/tgl/src/auto/auto-store-ds.c
@@ -0,0 +1,10208 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#include "auto-store-ds.h"
+#include "auto-skip.h"
+#include "auto-types.h"
+#include "..\auto-static-store-ds.c"
+#include "..\mtproto-common.h"
+#else
+#include "auto.h"
+#include "auto/auto-store-ds.h"
+#include "auto/auto-skip.h"
+#include "auto/auto-types.h"
+#include "auto-static-store-ds.c"
+#include "mtproto-common.h"
+#endif
+#include <assert.h>
+void store_ds_constructor_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->days, field1);
+}
+void store_ds_constructor_audio_empty (struct tl_ds_audio *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+}
+void store_ds_constructor_audio (struct tl_ds_audio *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->duration, field5);
+ 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,
+ };
+ store_ds_type_bare_string (D->mime_type, field6);
+ 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,
+ };
+ store_ds_type_bare_int (D->size, field7);
+ 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,
+ };
+ store_ds_type_bare_int (D->dc_id, field8);
+}
+void store_ds_constructor_authorization (struct tl_ds_authorization *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->hash, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->flags, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->device_model, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->platform, field4);
+ 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,
+ };
+ store_ds_type_bare_string (D->system_version, field5);
+ 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,
+ };
+ store_ds_type_bare_int (D->api_id, field6);
+ 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,
+ };
+ store_ds_type_bare_string (D->app_name, field7);
+ 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,
+ };
+ store_ds_type_bare_string (D->app_version, field8);
+ 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,
+ };
+ store_ds_type_bare_int (D->date_created, field9);
+ 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,
+ };
+ store_ds_type_bare_int (D->date_active, field10);
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_string (D->ip, field11);
+ struct paramed_type *field12 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_string (D->country, field12);
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_string (D->region, field13);
+}
+void store_ds_constructor_bool_false (struct tl_ds_bool *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return; }
+}
+void store_ds_constructor_bool_true (struct tl_ds_bool *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return; }
+}
+void store_ds_constructor_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->command, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->description, field2);
+}
+void store_ds_constructor_bot_command_old (struct tl_ds_bot_command *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->command, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->params, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->description, field3);
+}
+void store_ds_constructor_bot_info_empty (struct tl_ds_bot_info *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return; }
+}
+void store_ds_constructor_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->version, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->share_text, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->description, field4);
+ 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 = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->commands, field5);
+}
+void store_ds_constructor_bytes (struct tl_ds_string *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return; }
+ out_cstring (D->data, D->len);
+}
+void store_ds_constructor_chat_empty (struct tl_ds_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+}
+void store_ds_constructor_chat (struct tl_ds_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->title, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_chat_photo (D->photo, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->participants_count, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->left, field6);
+ 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,
+ };
+ store_ds_type_bare_int (D->version, field7);
+}
+void store_ds_constructor_chat_forbidden (struct tl_ds_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->title, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field3);
+}
+void store_ds_constructor_geo_chat (struct tl_ds_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->title, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->address, field4);
+ 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,
+ };
+ store_ds_type_bare_string (D->venue, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_geo_point (D->geo, field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_chat_photo (D->photo, field7);
+ 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,
+ };
+ store_ds_type_bare_int (D->participants_count, field8);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field9);
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->checked_in, field10);
+ 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,
+ };
+ store_ds_type_bare_int (D->version, field11);
+}
+void store_ds_constructor_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_chat_participants (D->participants, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_photo (D->chat_photo, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_peer_notify_settings (D->notify_settings, field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_exported_chat_invite (D->exported_invite, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->bot_info, field6);
+}
+void store_ds_constructor_chat_invite_already (struct tl_ds_chat_invite *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_chat (D->chat, field1);
+}
+void store_ds_constructor_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->title, field1);
+}
+void store_ds_constructor_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->distance, field2);
+}
+void store_ds_constructor_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->inviter_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field3);
+}
+void store_ds_constructor_chat_participants_forbidden (struct tl_ds_chat_participants *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field1);
+}
+void store_ds_constructor_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->admin_id, field2);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->participants, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->version, field4);
+}
+void store_ds_constructor_chat_photo_empty (struct tl_ds_chat_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return; }
+}
+void store_ds_constructor_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_file_location (D->photo_small, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_file_location (D->photo_big, field2);
+}
+void store_ds_constructor_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return; }
+ 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,
+ };
+ store_ds_type_bare_int128 (D->nonce, field1);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->server_nonce, field2);
+ 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,
+ };
+ store_ds_type_bare_long (D->retry_id, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->g_b, field4);
+}
+void store_ds_constructor_config (struct tl_ds_config *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->expires, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->test_mode, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->this_dc, field4);
+ 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 = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->dc_options, field5);
+ 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,
+ };
+ store_ds_type_bare_int (D->chat_size_max, field6);
+ 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,
+ };
+ store_ds_type_bare_int (D->broadcast_size_max, field7);
+ 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,
+ };
+ store_ds_type_bare_int (D->forwarded_count_max, field8);
+ 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,
+ };
+ store_ds_type_bare_int (D->online_update_period_ms, field9);
+ 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,
+ };
+ store_ds_type_bare_int (D->offline_blur_timeout_ms, field10);
+ 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,
+ };
+ store_ds_type_bare_int (D->offline_idle_timeout_ms, field11);
+ 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,
+ };
+ store_ds_type_bare_int (D->online_cloud_timeout_ms, field12);
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->notify_cloud_delay_ms, field13);
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->notify_default_delay_ms, field14);
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_big_size, field15);
+ struct paramed_type *field16 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->push_chat_period_ms, field16);
+ struct paramed_type *field17 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->push_chat_limit, field17);
+ struct paramed_type *field18 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->disabled_features, field18);
+}
+void store_ds_constructor_contact (struct tl_ds_contact *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->mutual, field2);
+}
+void store_ds_constructor_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field2);
+}
+void store_ds_constructor_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+}
+void store_ds_constructor_contact_link_unknown (struct tl_ds_contact_link *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; }
+}
+void store_ds_constructor_contact_link_none (struct tl_ds_contact_link *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; }
+}
+void store_ds_constructor_contact_link_has_phone (struct tl_ds_contact_link *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; }
+}
+void store_ds_constructor_contact_link_contact (struct tl_ds_contact_link *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; }
+}
+void store_ds_constructor_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_user_status (D->status, field2);
+}
+void store_ds_constructor_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->mutual_contacts, field2);
+}
+void store_ds_constructor_dc_option_l28 (struct tl_ds_dc_option *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->hostname, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->ip_address, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->port, field4);
+}
+void store_ds_constructor_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->flags, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->ip_address, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->port, field4);
+}
+void store_ds_constructor_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->random_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->ttl, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->message, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_decrypted_message_media (D->media, field4);
+}
+void store_ds_constructor_decrypted_message_service (struct tl_ds_decrypted_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->random_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_decrypted_message_action (D->action, field2);
+}
+void store_ds_constructor_decrypted_message_action_set_message_t_t_l (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->ttl_seconds, field1);
+}
+void store_ds_constructor_decrypted_message_action_read_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->random_ids, field1);
+}
+void store_ds_constructor_decrypted_message_action_delete_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->random_ids, field1);
+}
+void store_ds_constructor_decrypted_message_action_screenshot_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->random_ids, field1);
+}
+void store_ds_constructor_decrypted_message_action_flush_history (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+}
+void store_ds_constructor_decrypted_message_action_resend (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->start_seq_no, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->end_seq_no, field2);
+}
+void store_ds_constructor_decrypted_message_action_notify_layer (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->layer, field1);
+}
+void store_ds_constructor_decrypted_message_action_typing (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_send_message_action (D->action, field1);
+}
+void store_ds_constructor_decrypted_message_action_request_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->exchange_id, field1);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->g_a, field2);
+}
+void store_ds_constructor_decrypted_message_action_accept_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->exchange_id, field1);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->g_b, field2);
+ 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,
+ };
+ store_ds_type_bare_long (D->key_fingerprint, field3);
+}
+void store_ds_constructor_decrypted_message_action_abort_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->exchange_id, field1);
+}
+void store_ds_constructor_decrypted_message_action_commit_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->exchange_id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->key_fingerprint, field2);
+}
+void store_ds_constructor_decrypted_message_action_noop (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; }
+}
+void store_ds_constructor_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return; }
+ 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,
+ };
+ store_ds_type_bare_bytes (D->random_bytes, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->layer, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->in_seq_no, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->out_seq_no, field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_decrypted_message (D->message, field5);
+}
+void store_ds_constructor_decrypted_message_media_empty (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+}
+void store_ds_constructor_decrypted_message_media_photo (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ 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,
+ };
+ store_ds_type_bare_bytes (D->str_thumb, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->thumb_w, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->thumb_h, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->w, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->h, field5);
+ 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,
+ };
+ store_ds_type_bare_int (D->size, field6);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->key, field7);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->iv, field8);
+}
+void store_ds_constructor_decrypted_message_media_geo_point (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ 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,
+ };
+ store_ds_type_bare_double (D->latitude, field1);
+ 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,
+ };
+ store_ds_type_bare_double (D->longitude, field2);
+}
+void store_ds_constructor_decrypted_message_media_contact (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->phone_number, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->first_name, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->last_name, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->user_id, field4);
+}
+void store_ds_constructor_decrypted_message_media_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ 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,
+ };
+ store_ds_type_bare_bytes (D->str_thumb, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->thumb_w, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->thumb_h, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->file_name, field4);
+ 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,
+ };
+ store_ds_type_bare_string (D->mime_type, field5);
+ 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,
+ };
+ store_ds_type_bare_int (D->size, field6);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->key, field7);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->iv, field8);
+}
+void store_ds_constructor_decrypted_message_media_video (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ 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,
+ };
+ store_ds_type_bare_bytes (D->str_thumb, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->thumb_w, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->thumb_h, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->duration, field4);
+ 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,
+ };
+ store_ds_type_bare_string (D->mime_type, field5);
+ 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,
+ };
+ store_ds_type_bare_int (D->w, field6);
+ 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,
+ };
+ store_ds_type_bare_int (D->h, field7);
+ 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,
+ };
+ store_ds_type_bare_int (D->size, field8);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->key, field9);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->iv, field10);
+}
+void store_ds_constructor_decrypted_message_media_audio (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->duration, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->mime_type, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->size, field3);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->key, field4);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->iv, field5);
+}
+void store_ds_constructor_decrypted_message_media_external_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->mime_type, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->size, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_photo_size (D->thumb, field6);
+ 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,
+ };
+ store_ds_type_bare_int (D->dc_id, field7);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->attributes, field8);
+}
+void store_ds_constructor_decrypted_message_media_video_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ 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,
+ };
+ store_ds_type_bare_bytes (D->str_thumb, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->thumb_w, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->thumb_h, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->duration, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->w, field5);
+ 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,
+ };
+ store_ds_type_bare_int (D->h, field6);
+ 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,
+ };
+ store_ds_type_bare_int (D->size, field7);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->key, field8);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->iv, field9);
+}
+void store_ds_constructor_decrypted_message_media_audio_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->duration, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->size, field2);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->key, field3);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->iv, field4);
+}
+void store_ds_constructor_dialog (struct tl_ds_dialog *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_peer (D->peer, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->top_message, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->read_inbox_max_id, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->unread_count, field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_peer_notify_settings (D->notify_settings, field5);
+}
+void store_ds_constructor_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->feature, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->description, field2);
+}
+void store_ds_constructor_document_empty (struct tl_ds_document *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+}
+void store_ds_constructor_document (struct tl_ds_document *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->mime_type, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->size, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_photo_size (D->thumb, field6);
+ 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,
+ };
+ store_ds_type_bare_int (D->dc_id, field7);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->attributes, field8);
+}
+void store_ds_constructor_document_l19 (struct tl_ds_document *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field4);
+ 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,
+ };
+ store_ds_type_bare_string (D->file_name, field5);
+ 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,
+ };
+ store_ds_type_bare_string (D->mime_type, field6);
+ 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,
+ };
+ store_ds_type_bare_int (D->size, field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_photo_size (D->thumb, field8);
+ 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,
+ };
+ store_ds_type_bare_int (D->dc_id, field9);
+}
+void store_ds_constructor_document_attribute_image_size (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->w, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->h, field2);
+}
+void store_ds_constructor_document_attribute_animated (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; }
+}
+void store_ds_constructor_document_attribute_sticker_l28 (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->alt, field1);
+}
+void store_ds_constructor_document_attribute_sticker (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->alt, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_sticker_set (D->stickerset, field2);
+}
+void store_ds_constructor_document_attribute_video (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->duration, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->w, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->h, field3);
+}
+void store_ds_constructor_document_attribute_audio (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->duration, field1);
+}
+void store_ds_constructor_document_attribute_filename (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->file_name, field1);
+}
+void store_ds_constructor_double (double *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return; }
+ out_double (*D);
+}
+void store_ds_constructor_encrypted_chat_empty (struct tl_ds_encrypted_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+}
+void store_ds_constructor_encrypted_chat_waiting (struct tl_ds_encrypted_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->admin_id, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->participant_id, field5);
+}
+void store_ds_constructor_encrypted_chat_requested (struct tl_ds_encrypted_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->admin_id, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->participant_id, field5);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->g_a, field6);
+}
+void store_ds_constructor_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->admin_id, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->participant_id, field5);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->g_a_or_b, field6);
+ 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,
+ };
+ store_ds_type_bare_long (D->key_fingerprint, field7);
+}
+void store_ds_constructor_encrypted_chat_discarded (struct tl_ds_encrypted_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+}
+void store_ds_constructor_encrypted_file_empty (struct tl_ds_encrypted_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return; }
+}
+void store_ds_constructor_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->size, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->dc_id, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->key_fingerprint, field5);
+}
+void store_ds_constructor_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->random_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field3);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->bytes, field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_encrypted_file (D->file, field5);
+}
+void store_ds_constructor_encrypted_message_service (struct tl_ds_encrypted_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->random_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field3);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->bytes, field4);
+}
+void store_ds_constructor_error (struct tl_ds_error *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->code, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->text, field2);
+}
+void store_ds_constructor_chat_invite_empty (struct tl_ds_exported_chat_invite *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return; }
+}
+void store_ds_constructor_chat_invite_exported (struct tl_ds_exported_chat_invite *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->link, field1);
+}
+void store_ds_constructor_file_location_unavailable (struct tl_ds_file_location *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->volume_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->local_id, field2);
+ 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,
+ };
+ store_ds_type_bare_long (D->secret, field3);
+}
+void store_ds_constructor_file_location (struct tl_ds_file_location *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->dc_id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->volume_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->local_id, field3);
+ 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,
+ };
+ store_ds_type_bare_long (D->secret, field4);
+}
+void store_ds_constructor_geo_chat_message_empty (struct tl_ds_geo_chat_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field2);
+}
+void store_ds_constructor_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->from_id, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field4);
+ 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,
+ };
+ store_ds_type_bare_string (D->message, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_message_media (D->media, field6);
+}
+void store_ds_constructor_geo_chat_message_service (struct tl_ds_geo_chat_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->from_id, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_message_action (D->action, field5);
+}
+void store_ds_constructor_geo_point_empty (struct tl_ds_geo_point *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return; }
+}
+void store_ds_constructor_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return; }
+ 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,
+ };
+ store_ds_type_bare_double (D->longitude, field1);
+ 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,
+ };
+ store_ds_type_bare_double (D->latitude, field2);
+}
+void store_ds_constructor_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->client_id, field2);
+}
+void store_ds_constructor_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return; }
+ 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,
+ };
+ store_ds_type_bare_double (D->time, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->type, field2);
+ 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,
+ };
+ store_ds_type_bare_long (D->peer, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->data, field4);
+}
+void store_ds_constructor_input_audio_empty (struct tl_ds_input_audio *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return; }
+}
+void store_ds_constructor_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+}
+void store_ds_constructor_input_chat_photo_empty (struct tl_ds_input_chat_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return; }
+}
+void store_ds_constructor_input_chat_uploaded_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_file (D->file, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_photo_crop (D->crop, field2);
+}
+void store_ds_constructor_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_photo (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_photo_crop (D->crop, field2);
+}
+void store_ds_constructor_input_phone_contact (struct tl_ds_input_contact *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->client_id, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->phone, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->first_name, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->last_name, field4);
+}
+void store_ds_constructor_input_document_empty (struct tl_ds_input_document *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return; }
+}
+void store_ds_constructor_input_document (struct tl_ds_input_document *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+}
+void store_ds_constructor_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+}
+void store_ds_constructor_input_encrypted_file_empty (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; }
+}
+void store_ds_constructor_input_encrypted_file_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->parts, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->md5_checksum, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->key_fingerprint, field4);
+}
+void store_ds_constructor_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+}
+void store_ds_constructor_input_encrypted_file_big_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->parts, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->key_fingerprint, field3);
+}
+void store_ds_constructor_input_file (struct tl_ds_input_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->parts, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->name, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->md5_checksum, field4);
+}
+void store_ds_constructor_input_file_big (struct tl_ds_input_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->parts, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->name, field3);
+}
+void store_ds_constructor_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->volume_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->local_id, field2);
+ 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,
+ };
+ store_ds_type_bare_long (D->secret, field3);
+}
+void store_ds_constructor_input_video_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+}
+void store_ds_constructor_input_encrypted_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+}
+void store_ds_constructor_input_audio_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+}
+void store_ds_constructor_input_document_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+}
+void store_ds_constructor_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+}
+void store_ds_constructor_input_geo_point_empty (struct tl_ds_input_geo_point *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return; }
+}
+void store_ds_constructor_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return; }
+ 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,
+ };
+ store_ds_type_bare_double (D->latitude, field1);
+ 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,
+ };
+ store_ds_type_bare_double (D->longitude, field2);
+}
+void store_ds_constructor_input_media_empty (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+}
+void store_ds_constructor_input_media_uploaded_photo (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_file (D->file, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->caption, field2);
+}
+void store_ds_constructor_input_media_photo (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_photo (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->caption, field2);
+}
+void store_ds_constructor_input_media_geo_point (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_geo_point (D->geo_point, field1);
+}
+void store_ds_constructor_input_media_contact (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->phone_number, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->first_name, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->last_name, field3);
+}
+void store_ds_constructor_input_media_uploaded_video (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_file (D->file, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->duration, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->w, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->h, field4);
+ 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,
+ };
+ store_ds_type_bare_string (D->caption, field5);
+}
+void store_ds_constructor_input_media_uploaded_thumb_video (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_file (D->file, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_file (D->thumb, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->duration, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->w, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->h, field5);
+ 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,
+ };
+ store_ds_type_bare_string (D->caption, field6);
+}
+void store_ds_constructor_input_media_video (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_video (D->video_id, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->caption, field2);
+}
+void store_ds_constructor_input_media_uploaded_audio (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_file (D->file, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->duration, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->mime_type, field3);
+}
+void store_ds_constructor_input_media_audio (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_audio (D->audio_id, field1);
+}
+void store_ds_constructor_input_media_uploaded_document (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_file (D->file, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->mime_type, field2);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->attributes, field3);
+}
+void store_ds_constructor_input_media_uploaded_thumb_document (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_file (D->file, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_file (D->thumb, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->mime_type, field3);
+ 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->attributes, field4);
+}
+void store_ds_constructor_input_media_document (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_document (D->document_id, field1);
+}
+void store_ds_constructor_input_media_venue (struct tl_ds_input_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_geo_point (D->geo_point, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->title, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->address, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->provider, field4);
+ 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,
+ };
+ store_ds_type_bare_string (D->venue_id, field5);
+}
+void store_ds_constructor_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_peer (D->peer, field1);
+}
+void store_ds_constructor_input_notify_users (struct tl_ds_input_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; }
+}
+void store_ds_constructor_input_notify_chats (struct tl_ds_input_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; }
+}
+void store_ds_constructor_input_notify_all (struct tl_ds_input_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; }
+}
+void store_ds_constructor_input_notify_geo_chat_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_input_geo_chat (D->geo_peer, field1);
+}
+void store_ds_constructor_input_peer_empty (struct tl_ds_input_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; }
+}
+void store_ds_constructor_input_peer_self (struct tl_ds_input_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; }
+}
+void store_ds_constructor_input_peer_contact (struct tl_ds_input_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+}
+void store_ds_constructor_input_peer_foreign (struct tl_ds_input_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+}
+void store_ds_constructor_input_peer_chat (struct tl_ds_input_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field1);
+}
+void store_ds_constructor_input_peer_notify_events_empty (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return; }
+}
+void store_ds_constructor_input_peer_notify_events_all (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return; }
+}
+void store_ds_constructor_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->mute_until, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->sound, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->show_previews, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->events_mask, field4);
+}
+void store_ds_constructor_input_photo_empty (struct tl_ds_input_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return; }
+}
+void store_ds_constructor_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+}
+void store_ds_constructor_input_photo_crop_auto (struct tl_ds_input_photo_crop *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return; }
+}
+void store_ds_constructor_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return; }
+ 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,
+ };
+ store_ds_type_bare_double (D->crop_left, field1);
+ 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,
+ };
+ store_ds_type_bare_double (D->crop_top, field2);
+ 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,
+ };
+ store_ds_type_bare_double (D->crop_width, field3);
+}
+void store_ds_constructor_input_privacy_key_status_timestamp (struct tl_ds_input_privacy_key *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return; }
+}
+void store_ds_constructor_input_privacy_value_allow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; }
+}
+void store_ds_constructor_input_privacy_value_allow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; }
+}
+void store_ds_constructor_input_privacy_value_allow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field1);
+}
+void store_ds_constructor_input_privacy_value_disallow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; }
+}
+void store_ds_constructor_input_privacy_value_disallow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; }
+}
+void store_ds_constructor_input_privacy_value_disallow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field1);
+}
+void store_ds_constructor_input_sticker_set_empty (struct tl_ds_input_sticker_set *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return; }
+}
+void store_ds_constructor_input_sticker_set_i_d (struct tl_ds_input_sticker_set *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+}
+void store_ds_constructor_input_sticker_set_short_name (struct tl_ds_input_sticker_set *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->short_name, field1);
+}
+void store_ds_constructor_input_user_empty (struct tl_ds_input_user *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; }
+}
+void store_ds_constructor_input_user_self (struct tl_ds_input_user *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; }
+}
+void store_ds_constructor_input_user_contact (struct tl_ds_input_user *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+}
+void store_ds_constructor_input_user_foreign (struct tl_ds_input_user *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+}
+void store_ds_constructor_input_video_empty (struct tl_ds_input_video *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return; }
+}
+void store_ds_constructor_input_video (struct tl_ds_input_video *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+}
+void store_ds_constructor_int (int *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return; }
+ out_int (*D);
+}
+void store_ds_constructor_int128 (struct tl_ds_int128 *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->f0, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->f1, field2);
+}
+void store_ds_constructor_int256 (struct tl_ds_int256 *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->f0, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->f1, field2);
+ 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,
+ };
+ store_ds_type_bare_long (D->f2, field3);
+ 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,
+ };
+ store_ds_type_bare_long (D->f3, field4);
+}
+void store_ds_constructor_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->text, field1);
+}
+void store_ds_constructor_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { return; }
+ 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 = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->buttons, field1);
+}
+void store_ds_constructor_long (long long *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return; }
+ out_long (*D);
+}
+void store_ds_constructor_message_empty (struct tl_ds_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+}
+void store_ds_constructor_message (struct tl_ds_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ out_int (PTR2INT (var0));
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->from_id, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_peer (D->to_id, field4);
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->fwd_from_id, field5);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->fwd_date, field6);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->reply_to_msg_id, field7);
+ }
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field8);
+ 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,
+ };
+ store_ds_type_bare_string (D->message, field9);
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_message_media (D->media, field10);
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_reply_markup (D->reply_markup, field11);
+ }
+}
+void store_ds_constructor_message_service (struct tl_ds_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->flags, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->from_id, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_peer (D->to_id, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_message_action (D->action, field6);
+}
+void store_ds_constructor_message_action_empty (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+}
+void store_ds_constructor_message_action_chat_create (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->title, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field2);
+}
+void store_ds_constructor_message_action_chat_edit_title (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->title, field1);
+}
+void store_ds_constructor_message_action_chat_edit_photo (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_photo (D->photo, field1);
+}
+void store_ds_constructor_message_action_chat_delete_photo (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+}
+void store_ds_constructor_message_action_chat_add_user (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+}
+void store_ds_constructor_message_action_chat_delete_user (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+}
+void store_ds_constructor_message_action_geo_chat_create (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->title, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->address, field2);
+}
+void store_ds_constructor_message_action_geo_chat_checkin (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+}
+void store_ds_constructor_message_action_chat_joined_by_link (struct tl_ds_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->inviter_id, field1);
+}
+void store_ds_constructor_message_media_empty (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+}
+void store_ds_constructor_message_media_photo (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_photo (D->photo, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->caption, field2);
+}
+void store_ds_constructor_message_media_video (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_video (D->video, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->caption, field2);
+}
+void store_ds_constructor_message_media_geo (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_geo_point (D->geo, field1);
+}
+void store_ds_constructor_message_media_contact (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->phone_number, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->first_name, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->last_name, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->user_id, field4);
+}
+void store_ds_constructor_message_media_unsupported (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+}
+void store_ds_constructor_message_media_document (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_document (D->document, field1);
+}
+void store_ds_constructor_message_media_audio (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_audio (D->audio, field1);
+}
+void store_ds_constructor_message_media_web_page (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_web_page (D->webpage, field1);
+}
+void store_ds_constructor_message_media_venue (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_geo_point (D->geo, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->title, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->address, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->provider, field4);
+ 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,
+ };
+ store_ds_type_bare_string (D->venue_id, field5);
+}
+void store_ds_constructor_message_media_photo_l27 (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_photo (D->photo, field1);
+}
+void store_ds_constructor_message_media_video_l27 (struct tl_ds_message_media *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_video (D->video, field1);
+}
+void store_ds_constructor_input_messages_filter_empty (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; }
+}
+void store_ds_constructor_input_messages_filter_photos (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; }
+}
+void store_ds_constructor_input_messages_filter_video (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; }
+}
+void store_ds_constructor_input_messages_filter_photo_video (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; }
+}
+void store_ds_constructor_input_messages_filter_photo_video_documents (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; }
+}
+void store_ds_constructor_input_messages_filter_document (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; }
+}
+void store_ds_constructor_input_messages_filter_audio (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; }
+}
+void store_ds_constructor_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->country, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->this_dc, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->nearest_dc, field3);
+}
+void store_ds_constructor_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_peer (D->peer, field1);
+}
+void store_ds_constructor_notify_users (struct tl_ds_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; }
+}
+void store_ds_constructor_notify_chats (struct tl_ds_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; }
+}
+void store_ds_constructor_notify_all (struct tl_ds_notify_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; }
+}
+void store_ds_constructor_null (struct tl_ds_null *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return; }
+}
+void store_ds_constructor_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->pq, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->p, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->q, field3);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->nonce, field4);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->server_nonce, field5);
+ 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,
+ };
+ store_ds_type_bare_int256 (D->new_nonce, field6);
+}
+void store_ds_constructor_p_q_inner_data_temp (struct tl_ds_p_q_inner_data *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->pq, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->p, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->q, field3);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->nonce, field4);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->server_nonce, field5);
+ 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,
+ };
+ store_ds_type_bare_int256 (D->new_nonce, field6);
+ 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,
+ };
+ store_ds_type_bare_int (D->expires_in, field7);
+}
+void store_ds_constructor_peer_user (struct tl_ds_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+}
+void store_ds_constructor_peer_chat (struct tl_ds_peer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field1);
+}
+void store_ds_constructor_peer_notify_events_empty (struct tl_ds_peer_notify_events *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return; }
+}
+void store_ds_constructor_peer_notify_events_all (struct tl_ds_peer_notify_events *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return; }
+}
+void store_ds_constructor_peer_notify_settings_empty (struct tl_ds_peer_notify_settings *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return; }
+}
+void store_ds_constructor_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->mute_until, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->sound, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->show_previews, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->events_mask, field4);
+}
+void store_ds_constructor_photo_empty (struct tl_ds_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+}
+void store_ds_constructor_photo (struct tl_ds_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_geo_point (D->geo, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->sizes, field6);
+}
+void store_ds_constructor_photo_l27 (struct tl_ds_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field4);
+ 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,
+ };
+ store_ds_type_bare_string (D->caption, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_geo_point (D->geo, field6);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->sizes, field7);
+}
+void store_ds_constructor_photo_size_empty (struct tl_ds_photo_size *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->type, field1);
+}
+void store_ds_constructor_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->type, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_file_location (D->location, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->w, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->h, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->size, field5);
+}
+void store_ds_constructor_photo_cached_size (struct tl_ds_photo_size *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->type, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_file_location (D->location, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->w, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->h, field4);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->bytes, field5);
+}
+void store_ds_constructor_privacy_key_status_timestamp (struct tl_ds_privacy_key *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return; }
+}
+void store_ds_constructor_privacy_value_allow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; }
+}
+void store_ds_constructor_privacy_value_allow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; }
+}
+void store_ds_constructor_privacy_value_allow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field1);
+}
+void store_ds_constructor_privacy_value_disallow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; }
+}
+void store_ds_constructor_privacy_value_disallow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; }
+}
+void store_ds_constructor_privacy_value_disallow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field1);
+}
+void store_ds_constructor_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->flags, field2);
+}
+void store_ds_constructor_reply_keyboard_hide (struct tl_ds_reply_markup *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->flags, field1);
+}
+void store_ds_constructor_reply_keyboard_force_reply (struct tl_ds_reply_markup *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->flags, field1);
+}
+void store_ds_constructor_reply_keyboard_markup (struct tl_ds_reply_markup *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->flags, field1);
+ 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 = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->rows, field2);
+}
+void store_ds_constructor_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return; }
+ 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,
+ };
+ store_ds_type_bare_int128 (D->nonce, field1);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->server_nonce, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->pq, field3);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->server_public_key_fingerprints, field4);
+}
+void store_ds_constructor_send_message_typing_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void store_ds_constructor_send_message_cancel_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void store_ds_constructor_send_message_record_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void store_ds_constructor_send_message_upload_video_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void store_ds_constructor_send_message_upload_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->progress, field1);
+}
+void store_ds_constructor_send_message_record_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void store_ds_constructor_send_message_upload_audio_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void store_ds_constructor_send_message_upload_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->progress, field1);
+}
+void store_ds_constructor_send_message_upload_photo_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->progress, field1);
+}
+void store_ds_constructor_send_message_upload_document_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void store_ds_constructor_send_message_upload_document_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->progress, field1);
+}
+void store_ds_constructor_send_message_geo_location_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void store_ds_constructor_send_message_choose_contact_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; }
+}
+void store_ds_constructor_server_d_h_params_fail (struct tl_ds_server_d_h_params *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return; }
+ 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,
+ };
+ store_ds_type_bare_int128 (D->nonce, field1);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->server_nonce, field2);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->new_nonce_hash, field3);
+}
+void store_ds_constructor_server_d_h_params_ok (struct tl_ds_server_d_h_params *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return; }
+ 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,
+ };
+ store_ds_type_bare_int128 (D->nonce, field1);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->server_nonce, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->encrypted_answer, field3);
+}
+void store_ds_constructor_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return; }
+ 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,
+ };
+ store_ds_type_bare_int128 (D->nonce, field1);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->server_nonce, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->g, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->dh_prime, field4);
+ 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,
+ };
+ store_ds_type_bare_string (D->g_a, field5);
+ 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,
+ };
+ store_ds_type_bare_int (D->server_time, field6);
+}
+void store_ds_constructor_dh_gen_ok (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return; }
+ 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,
+ };
+ store_ds_type_bare_int128 (D->nonce, field1);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->server_nonce, field2);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->new_nonce_hash1, field3);
+}
+void store_ds_constructor_dh_gen_retry (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return; }
+ 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,
+ };
+ store_ds_type_bare_int128 (D->nonce, field1);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->server_nonce, field2);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->new_nonce_hash2, field3);
+}
+void store_ds_constructor_dh_gen_fail (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return; }
+ 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,
+ };
+ store_ds_type_bare_int128 (D->nonce, field1);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->server_nonce, field2);
+ 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,
+ };
+ store_ds_type_bare_int128 (D->new_nonce_hash3, field3);
+}
+void store_ds_constructor_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->emoticon, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->documents, field2);
+}
+void store_ds_constructor_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->title, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->short_name, field4);
+}
+void store_ds_constructor_string (struct tl_ds_string *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return; }
+ out_cstring (D->data, D->len);
+}
+void store_ds_constructor_update_new_message (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_message (D->message, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts_count, field3);
+}
+void store_ds_constructor_update_message_i_d (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->random_id, field2);
+}
+void store_ds_constructor_update_delete_messages (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->messages, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts_count, field3);
+}
+void store_ds_constructor_update_user_typing (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_send_message_action (D->action, field2);
+}
+void store_ds_constructor_update_chat_user_typing (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_send_message_action (D->action, field3);
+}
+void store_ds_constructor_update_chat_participants (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_chat_participants (D->participants, field1);
+}
+void store_ds_constructor_update_user_status (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_user_status (D->status, field2);
+}
+void store_ds_constructor_update_user_name (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->first_name, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->last_name, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->username, field4);
+}
+void store_ds_constructor_update_user_photo (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_user_profile_photo (D->photo, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->previous, field4);
+}
+void store_ds_constructor_update_contact_registered (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field2);
+}
+void store_ds_constructor_update_contact_link (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_contact_link (D->my_link, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_contact_link (D->foreign_link, field3);
+}
+void store_ds_constructor_update_new_authorization (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->auth_key_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->device, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->location, field4);
+}
+void store_ds_constructor_update_new_geo_chat_message (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_geo_chat_message (D->geo_message, field1);
+}
+void store_ds_constructor_update_new_encrypted_message (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_encrypted_message (D->encr_message, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->qts, field2);
+}
+void store_ds_constructor_update_encrypted_chat_typing (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field1);
+}
+void store_ds_constructor_update_encryption (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_encrypted_chat (D->encr_chat, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field2);
+}
+void store_ds_constructor_update_encrypted_messages_read (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->max_date, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field3);
+}
+void store_ds_constructor_update_chat_participant_add (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->inviter_id, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->version, field4);
+}
+void store_ds_constructor_update_chat_participant_delete (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->chat_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->version, field3);
+}
+void store_ds_constructor_update_dc_options (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ 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 = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->dc_options, field1);
+}
+void store_ds_constructor_update_user_blocked (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->blocked, field2);
+}
+void store_ds_constructor_update_notify_settings (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_notify_peer (D->notify_peer, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_peer_notify_settings (D->notify_settings, field2);
+}
+void store_ds_constructor_update_service_notification (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->type, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->message_text, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_message_media (D->media, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->popup, field4);
+}
+void store_ds_constructor_update_privacy (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_privacy_key (D->key, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->rules, field2);
+}
+void store_ds_constructor_update_user_phone (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->phone, field2);
+}
+void store_ds_constructor_update_read_history_inbox (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_peer (D->peer, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->max_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->pts_count, field4);
+}
+void store_ds_constructor_update_read_history_outbox (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_peer (D->peer, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->max_id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->pts_count, field4);
+}
+void store_ds_constructor_update_web_page (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_web_page (D->webpage, field1);
+}
+void store_ds_constructor_update_read_messages_contents (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->messages, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts_count, field3);
+}
+void store_ds_constructor_update_msg_update (struct tl_ds_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts_count, field3);
+}
+void store_ds_constructor_updates_too_long (struct tl_ds_updates *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; }
+}
+void store_ds_constructor_update_short_message (struct tl_ds_updates *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ out_int (PTR2INT (var0));
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->message, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->pts, field5);
+ 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,
+ };
+ store_ds_type_bare_int (D->pts_count, field6);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field7);
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->fwd_from_id, field8);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->fwd_date, field9);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->reply_to_msg_id, field10);
+ }
+}
+void store_ds_constructor_update_short_chat_message (struct tl_ds_updates *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ out_int (PTR2INT (var0));
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->from_id, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->chat_id, field4);
+ 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,
+ };
+ store_ds_type_bare_string (D->message, field5);
+ 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,
+ };
+ store_ds_type_bare_int (D->pts, field6);
+ 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,
+ };
+ store_ds_type_bare_int (D->pts_count, field7);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field8);
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->fwd_from_id, field9);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->fwd_date, field10);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->reply_to_msg_id, field11);
+ }
+}
+void store_ds_constructor_update_short (struct tl_ds_updates *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_update (D->update, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field2);
+}
+void store_ds_constructor_updates_combined (struct tl_ds_updates *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; }
+ 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->updates, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field2);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->chats, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->seq_start, field5);
+ 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,
+ };
+ store_ds_type_bare_int (D->seq, field6);
+}
+void store_ds_constructor_updates (struct tl_ds_updates *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; }
+ 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->updates, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field2);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->chats, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->seq, field5);
+}
+void store_ds_constructor_user_empty (struct tl_ds_user *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+}
+void store_ds_constructor_user (struct tl_ds_user *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ out_int (PTR2INT (var0));
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field2);
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field3);
+ }
+ if (PTR2INT (var0) & (1 << 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,
+ };
+ store_ds_type_bare_string (D->first_name, field4);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ store_ds_type_bare_string (D->last_name, field5);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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,
+ };
+ store_ds_type_bare_string (D->username, field6);
+ }
+ if (PTR2INT (var0) & (1 << 4)) {
+ 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,
+ };
+ store_ds_type_bare_string (D->phone, field7);
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_user_profile_photo (D->photo, field8);
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_user_status (D->status, field9);
+ }
+ if (PTR2INT (var0) & (1 << 14)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->bot_info_version, field10);
+ }
+}
+void store_ds_constructor_user_full (struct tl_ds_user_full *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_user (D->user, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_contacts_link (D->link, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_photo (D->profile_photo, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_peer_notify_settings (D->notify_settings, field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->blocked, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bot_info (D->bot_info, field6);
+}
+void store_ds_constructor_user_profile_photo_empty (struct tl_ds_user_profile_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return; }
+}
+void store_ds_constructor_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->photo_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_file_location (D->photo_small, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_file_location (D->photo_big, field3);
+}
+void store_ds_constructor_user_status_empty (struct tl_ds_user_status *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; }
+}
+void store_ds_constructor_user_status_online (struct tl_ds_user_status *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->expires, field1);
+}
+void store_ds_constructor_user_status_offline (struct tl_ds_user_status *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->was_online, field1);
+}
+void store_ds_constructor_user_status_recently (struct tl_ds_user_status *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; }
+}
+void store_ds_constructor_user_status_last_week (struct tl_ds_user_status *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; }
+}
+void store_ds_constructor_user_status_last_month (struct tl_ds_user_status *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; }
+}
+void store_ds_constructor_vector (struct tl_ds_vector *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return; }
+ if (ODDP(T->params[0])) { return; }
+ struct paramed_type *var0 = T->params[0]; assert (var0);
+ struct paramed_type *var1 = INT2PTR (*D->f1);
+ out_int (PTR2INT (var1));
+ int multiplicity3 = PTR2INT (
+ ((void *)var1) + 0 );
+ struct paramed_type *field3 =
+ var0;
+ {
+ int i = 0;
+ while (i < multiplicity3) {
+ store_ds_type_any (D->f2[i ++], field3);
+ }
+ }
+}
+void store_ds_constructor_video_empty (struct tl_ds_video *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+}
+void store_ds_constructor_video (struct tl_ds_video *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->duration, field5);
+ 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,
+ };
+ store_ds_type_bare_int (D->size, field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_photo_size (D->thumb, field7);
+ 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,
+ };
+ store_ds_type_bare_int (D->dc_id, field8);
+ 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,
+ };
+ store_ds_type_bare_int (D->w, field9);
+ 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,
+ };
+ store_ds_type_bare_int (D->h, field10);
+}
+void store_ds_constructor_video_l27 (struct tl_ds_video *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field4);
+ 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,
+ };
+ store_ds_type_bare_string (D->caption, field5);
+ 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,
+ };
+ store_ds_type_bare_int (D->duration, field6);
+ 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,
+ };
+ store_ds_type_bare_string (D->mime_type, field7);
+ 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,
+ };
+ store_ds_type_bare_int (D->size, field8);
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_photo_size (D->thumb, field9);
+ 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,
+ };
+ store_ds_type_bare_int (D->dc_id, field10);
+ 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,
+ };
+ store_ds_type_bare_int (D->w, field11);
+ 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,
+ };
+ store_ds_type_bare_int (D->h, field12);
+}
+void store_ds_constructor_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->title, field2);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->sizes, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->color, field4);
+}
+void store_ds_constructor_wall_paper_solid (struct tl_ds_wall_paper *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->title, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->bg_color, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->color, field4);
+}
+void store_ds_constructor_web_page_empty (struct tl_ds_web_page *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+}
+void store_ds_constructor_web_page_pending (struct tl_ds_web_page *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field2);
+}
+void store_ds_constructor_web_page (struct tl_ds_web_page *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ out_int (PTR2INT (var0));
+ 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,
+ };
+ store_ds_type_bare_long (D->id, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->url, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->display_url, field4);
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ store_ds_type_bare_string (D->type, field5);
+ }
+ if (PTR2INT (var0) & (1 << 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,
+ };
+ store_ds_type_bare_string (D->site_name, field6);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ 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,
+ };
+ store_ds_type_bare_string (D->title, field7);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ 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,
+ };
+ store_ds_type_bare_string (D->description, field8);
+ }
+ if (PTR2INT (var0) & (1 << 4)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_photo (D->photo, field9);
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_string (D->embed_url, field10);
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_string (D->embed_type, field11);
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->embed_width, field12);
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->embed_height, field13);
+ }
+ if (PTR2INT (var0) & (1 << 7)) {
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->duration, field14);
+ }
+ if (PTR2INT (var0) & (1 << 8)) {
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_string (D->author, field15);
+ }
+}
+void store_ds_constructor_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { return; }
+ 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 = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->authorizations, field1);
+}
+void store_ds_constructor_account_no_password (struct tl_ds_account_password *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return; }
+ 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,
+ };
+ store_ds_type_bare_bytes (D->new_salt, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->email_unconfirmed_pattern, field2);
+}
+void store_ds_constructor_account_password (struct tl_ds_account_password *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return; }
+ 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,
+ };
+ store_ds_type_bare_bytes (D->current_salt, field1);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->new_salt, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->hint, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->has_recovery, field4);
+ 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,
+ };
+ store_ds_type_bare_string (D->email_unconfirmed_pattern, field5);
+}
+void store_ds_constructor_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ out_int (PTR2INT (var0));
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ store_ds_type_bare_bytes (D->new_salt, field2);
+ }
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ store_ds_type_bare_bytes (D->new_password_hash, field3);
+ }
+ if (PTR2INT (var0) & (1 << 0)) {
+ 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,
+ };
+ store_ds_type_bare_string (D->hint, field4);
+ }
+ if (PTR2INT (var0) & (1 << 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,
+ };
+ store_ds_type_bare_string (D->email, field5);
+ }
+}
+void store_ds_constructor_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->email, field1);
+}
+void store_ds_constructor_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->rules, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field2);
+}
+void store_ds_constructor_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->phone_code_hash, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->send_call_timeout, field2);
+}
+void store_ds_constructor_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_user (D->user, field1);
+}
+void store_ds_constructor_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->phone_registered, field1);
+}
+void store_ds_constructor_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->bytes, field2);
+}
+void store_ds_constructor_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->email_pattern, field1);
+}
+void store_ds_constructor_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->phone_registered, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->phone_code_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->send_call_timeout, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->is_password, field4);
+}
+void store_ds_constructor_auth_sent_app_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->phone_registered, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->phone_code_hash, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->send_call_timeout, field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->is_password, field4);
+}
+void store_ds_constructor_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return; }
+ int multiplicity1 = PTR2INT (
+ INT2PTR (64) );
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ {
+ int i = 0;
+ while (i < multiplicity1) {
+ store_ds_type_any (D->key[i ++], field1);
+ }
+ }
+}
+void store_ds_constructor_binlog_start (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+}
+void store_ds_constructor_binlog_dc_option (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->dc, field1);
+ 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,
+ };
+ store_ds_type_bare_string (D->name, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->ip, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->port, field4);
+}
+void store_ds_constructor_binlog_dc_option_new (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->flags, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->dc, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->name, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->ip, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->port, field5);
+}
+void store_ds_constructor_binlog_auth_key (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->dc, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_binlog_encr_key (D->key, field2);
+}
+void store_ds_constructor_binlog_default_dc (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->dc, field1);
+}
+void store_ds_constructor_binlog_dc_signed (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->dc, field1);
+}
+void store_ds_constructor_binlog_our_id (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+}
+void store_ds_constructor_binlog_set_dh_params (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->root, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_binlog_encr_key (D->prime, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->version, field3);
+}
+void store_ds_constructor_binlog_set_pts (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts, field1);
+}
+void store_ds_constructor_binlog_set_qts (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->qts, field1);
+}
+void store_ds_constructor_binlog_set_date (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field1);
+}
+void store_ds_constructor_binlog_set_seq (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->seq, field1);
+}
+void store_ds_constructor_binlog_encr_chat_delete (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+}
+void store_ds_constructor_binlog_encr_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ out_int (PTR2INT (var0));
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field4);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->admin, field5);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->user_id, field6);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_binlog_encr_key (D->key, field7);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_binlog_encr_key (D->g_key, field8);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->state, field9);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->ttl, field10);
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->layer, field11);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->in_seq_no, field12);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->last_in_seq_no, field13);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->out_seq_no, field14);
+ }
+ if (PTR2INT (var0) & (1 << 27)) {
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_long (D->key_fingerprint, field15);
+ }
+}
+void store_ds_constructor_binlog_encr_chat_exchange_new (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ out_int (PTR2INT (var0));
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ store_ds_type_bare_long (D->exchange_id, field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_binlog_encr_key (D->key, field4);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->state, field5);
+ }
+}
+void store_ds_constructor_binlog_user_delete (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+}
+void store_ds_constructor_binlog_user_new (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ out_int (PTR2INT (var0));
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ store_ds_type_bare_long (D->access_hash, field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ store_ds_type_bare_string (D->first_name, field4);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ store_ds_type_bare_string (D->last_name, field5);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ store_ds_type_bare_string (D->phone, field6);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ store_ds_type_bare_string (D->username, field7);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_photo (D->photo, field8);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ 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,
+ };
+ store_ds_type_bare_string (D->real_first_name, field9);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_string (D->real_last_name, field10);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_user_profile_photo (D->user_photo, field11);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->last_read_in, field12);
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->last_read_out, field13);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bot_info (D->bot_info, field14);
+ }
+}
+void store_ds_constructor_binlog_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ out_int (PTR2INT (var0));
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ store_ds_type_bare_string (D->title, field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->user_num, field4);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field5);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->version, field6);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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 = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->participants, field7);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_chat_photo (D->chat_photo, field8);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_photo (D->photo, field9);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->admin, field10);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->last_read_in, field11);
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->last_read_out, field12);
+ }
+}
+void store_ds_constructor_binlog_chat_add_participant (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->version, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->inviter_id, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field5);
+}
+void store_ds_constructor_binlog_chat_del_participant (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->version, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->user_id, field3);
+}
+void store_ds_constructor_binlog_set_msg_id (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->old_id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->new_id, field2);
+}
+void store_ds_constructor_binlog_message_delete (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->lid, field1);
+}
+void store_ds_constructor_binlog_message_new (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ out_int (PTR2INT (var0));
+ 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,
+ };
+ store_ds_type_bare_long (D->lid, field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->from_id, field3);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->to_type, field4);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->to_id, field5);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->fwd_from_id, field6);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->fwd_date, field7);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field8);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ store_ds_type_bare_string (D->message, field9);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_message_media (D->media, field10);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_message_action (D->action, field11);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->reply_id, field12);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_reply_markup (D->reply_markup, field13);
+ }
+}
+void store_ds_constructor_binlog_message_encr_new (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ struct paramed_type *var0 = INT2PTR (*D->flags);
+ out_int (PTR2INT (var0));
+ 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,
+ };
+ store_ds_type_bare_long (D->lid, field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->from_id, field3);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->to_type, field4);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->to_id, field5);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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,
+ };
+ store_ds_type_bare_int (D->date, field6);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ 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,
+ };
+ store_ds_type_bare_string (D->message, field7);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_decrypted_message_media (D->encr_media, field8);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_decrypted_message_action (D->encr_action, field9);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_encrypted_file (D->file, field10);
+ }
+}
+void store_ds_constructor_binlog_msg_update (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+ 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,
+ };
+ store_ds_type_bare_long (D->lid, field1);
+}
+void store_ds_constructor_binlog_reset_authorization (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; }
+}
+void store_ds_constructor_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->blocked, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field2);
+}
+void store_ds_constructor_contacts_blocked_slice (struct tl_ds_contacts_blocked *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->count, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->blocked, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field3);
+}
+void store_ds_constructor_contacts_contacts_not_modified (struct tl_ds_contacts_contacts *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return; }
+}
+void store_ds_constructor_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->contacts, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field2);
+}
+void store_ds_constructor_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->results, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field2);
+}
+void store_ds_constructor_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->imported, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->retry_contacts, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field3);
+}
+void store_ds_constructor_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_contact_link (D->my_link, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_contact_link (D->foreign_link, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_user (D->user, field3);
+}
+void store_ds_constructor_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->results, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field2);
+}
+void store_ds_constructor_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->results, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->messages, field2);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->chats, field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field4);
+}
+void store_ds_constructor_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->messages, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->chats, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field3);
+}
+void store_ds_constructor_geochats_messages_slice (struct tl_ds_geochats_messages *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->count, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->messages, field2);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->chats, field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field4);
+}
+void store_ds_constructor_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_geo_chat_message (D->message, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->chats, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->seq, field4);
+}
+void store_ds_constructor_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bool (D->critical, field2);
+ 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,
+ };
+ store_ds_type_bare_string (D->url, field3);
+ 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,
+ };
+ store_ds_type_bare_string (D->text, field4);
+}
+void store_ds_constructor_help_no_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return; }
+}
+void store_ds_constructor_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->message, field1);
+}
+void store_ds_constructor_help_support (struct tl_ds_help_support *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->phone_number, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_user (D->user, field2);
+}
+void store_ds_constructor_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts_count, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->offset, field3);
+}
+void store_ds_constructor_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts_count, field2);
+}
+void store_ds_constructor_messages_all_stickers_not_modified (struct tl_ds_messages_all_stickers *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return; }
+}
+void store_ds_constructor_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->hash, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->packs, field2);
+ 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 = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->sets, field3);
+ 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 = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->documents, field4);
+}
+void store_ds_constructor_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2e02a614, .id = "ChatFull", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_chat_full (D->full_chat, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->chats, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field3);
+}
+void store_ds_constructor_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { return; }
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->chats, field1);
+}
+void store_ds_constructor_messages_dh_config_not_modified (struct tl_ds_messages_dh_config *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return; }
+ 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,
+ };
+ store_ds_type_bare_bytes (D->random, field1);
+}
+void store_ds_constructor_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->g, field1);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->p, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->version, field3);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->random, field4);
+}
+void store_ds_constructor_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return; }
+ 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 = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->dialogs, field1);
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->messages, field2);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->chats, field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field4);
+}
+void store_ds_constructor_messages_dialogs_slice (struct tl_ds_messages_dialogs *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->count, field1);
+ 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 = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->dialogs, field2);
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->messages, field3);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->chats, field4);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field5);
+}
+void store_ds_constructor_messages_message_empty (struct tl_ds_messages_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { return; }
+}
+void store_ds_constructor_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return; }
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->messages, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->chats, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field3);
+}
+void store_ds_constructor_messages_messages_slice (struct tl_ds_messages_messages *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->count, field1);
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->messages, field2);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->chats, field3);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field4);
+}
+void store_ds_constructor_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field1);
+}
+void store_ds_constructor_messages_sent_encrypted_file (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_encrypted_file (D->file, field2);
+}
+void store_ds_constructor_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_message_media (D->media, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->pts, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->pts_count, field5);
+}
+void store_ds_constructor_messages_sent_message_link (struct tl_ds_messages_sent_message *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->id, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_message_media (D->media, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->pts, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->pts_count, field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->links, field6);
+ 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,
+ };
+ store_ds_type_bare_int (D->seq, field7);
+}
+void store_ds_constructor_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_sticker_set (D->set, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->packs, field2);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->documents, field3);
+}
+void store_ds_constructor_messages_stickers_not_modified (struct tl_ds_messages_stickers *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return; }
+}
+void store_ds_constructor_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return; }
+ 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,
+ };
+ store_ds_type_bare_string (D->hash, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->stickers, field2);
+}
+void store_ds_constructor_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_photo (D->photo, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field2);
+}
+void store_ds_constructor_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return; }
+ 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->photos, field1);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field2);
+}
+void store_ds_constructor_photos_photos_slice (struct tl_ds_photos_photos *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->count, field1);
+ 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->photos, field2);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field3);
+}
+void store_ds_constructor_storage_file_unknown (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void store_ds_constructor_storage_file_jpeg (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void store_ds_constructor_storage_file_gif (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void store_ds_constructor_storage_file_png (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void store_ds_constructor_storage_file_pdf (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void store_ds_constructor_storage_file_mp3 (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void store_ds_constructor_storage_file_mov (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void store_ds_constructor_storage_file_partial (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void store_ds_constructor_storage_file_mp4 (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void store_ds_constructor_storage_file_webp (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; }
+}
+void store_ds_constructor_updates_difference_empty (struct tl_ds_updates_difference *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->seq, field2);
+}
+void store_ds_constructor_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return; }
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->new_messages, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->new_encrypted_messages, field2);
+ 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->other_updates, field3);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->chats, field4);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field5);
+ 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,
+ };
+ store_ds_type_updates_state (D->state, field6);
+}
+void store_ds_constructor_updates_difference_slice (struct tl_ds_updates_difference *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return; }
+ 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 = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->new_messages, field1);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->new_encrypted_messages, field2);
+ 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 = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->other_updates, field3);
+ 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,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->chats, field4);
+ 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ store_ds_type_vector ((void *)D->users, field5);
+ 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,
+ };
+ store_ds_type_updates_state (D->intermediate_state, field6);
+}
+void store_ds_constructor_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->pts, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->qts, field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->date, field3);
+ 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,
+ };
+ store_ds_type_bare_int (D->seq, field4);
+ 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,
+ };
+ store_ds_type_bare_int (D->unread_count, field5);
+}
+void store_ds_constructor_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return; }
+ 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,
+ };
+ store_ds_type_storage_file_type (D->type, field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ store_ds_type_bare_int (D->mtime, field2);
+ 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,
+ };
+ store_ds_type_bare_bytes (D->bytes, field3);
+}
+void store_ds_type_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T) {
+ out_int (0xb8d0afdf);
+ store_ds_constructor_account_days_t_t_l (D, T); return;
+}
+void store_ds_type_bare_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T) {
+ store_ds_constructor_account_days_t_t_l (D, T); return;
+}
+void store_ds_type_audio (struct tl_ds_audio *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x586988d8: store_ds_constructor_audio_empty (D, T); return;
+ case 0xc7ac6496: store_ds_constructor_audio (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_audio (struct tl_ds_audio *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x586988d8: store_ds_constructor_audio_empty (D, T); return;
+ case 0xc7ac6496: store_ds_constructor_audio (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_authorization (struct tl_ds_authorization *D, struct paramed_type *T) {
+ out_int (0x7bf2e6f6);
+ store_ds_constructor_authorization (D, T); return;
+}
+void store_ds_type_bare_authorization (struct tl_ds_authorization *D, struct paramed_type *T) {
+ store_ds_constructor_authorization (D, T); return;
+}
+void store_ds_type_bool (struct tl_ds_bool *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xbc799737: store_ds_constructor_bool_false (D, T); return;
+ case 0x997275b5: store_ds_constructor_bool_true (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_bool (struct tl_ds_bool *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xbc799737: store_ds_constructor_bool_false (D, T); return;
+ case 0x997275b5: store_ds_constructor_bool_true (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xc27ac8c7: store_ds_constructor_bot_command (D, T); return;
+ case 0xb79d22ab: store_ds_constructor_bot_command_old (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xc27ac8c7: store_ds_constructor_bot_command (D, T); return;
+ case 0xb79d22ab: store_ds_constructor_bot_command_old (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xbb2e37ce: store_ds_constructor_bot_info_empty (D, T); return;
+ case 0x09cf585d: store_ds_constructor_bot_info (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xbb2e37ce: store_ds_constructor_bot_info_empty (D, T); return;
+ case 0x09cf585d: store_ds_constructor_bot_info (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bytes (struct tl_ds_string *D, struct paramed_type *T) {
+ out_int (0x0ee1379f);
+ store_ds_constructor_bytes (D, T); return;
+}
+void store_ds_type_bare_bytes (struct tl_ds_string *D, struct paramed_type *T) {
+ store_ds_constructor_bytes (D, T); return;
+}
+void store_ds_type_chat (struct tl_ds_chat *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x9ba2d800: store_ds_constructor_chat_empty (D, T); return;
+ case 0x6e9c9bc7: store_ds_constructor_chat (D, T); return;
+ case 0xfb0ccc41: store_ds_constructor_chat_forbidden (D, T); return;
+ case 0x75eaea5a: store_ds_constructor_geo_chat (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_chat (struct tl_ds_chat *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x9ba2d800: store_ds_constructor_chat_empty (D, T); return;
+ case 0x6e9c9bc7: store_ds_constructor_chat (D, T); return;
+ case 0xfb0ccc41: store_ds_constructor_chat_forbidden (D, T); return;
+ case 0x75eaea5a: store_ds_constructor_geo_chat (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T) {
+ out_int (0x2e02a614);
+ store_ds_constructor_chat_full (D, T); return;
+}
+void store_ds_type_bare_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T) {
+ store_ds_constructor_chat_full (D, T); return;
+}
+void store_ds_type_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x5a686d7c: store_ds_constructor_chat_invite_already (D, T); return;
+ case 0xce917dcd: store_ds_constructor_chat_invite (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x5a686d7c: store_ds_constructor_chat_invite_already (D, T); return;
+ case 0xce917dcd: store_ds_constructor_chat_invite (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T) {
+ out_int (0x3631cf4c);
+ store_ds_constructor_chat_located (D, T); return;
+}
+void store_ds_type_bare_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T) {
+ store_ds_constructor_chat_located (D, T); return;
+}
+void store_ds_type_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T) {
+ out_int (0xc8d7493e);
+ store_ds_constructor_chat_participant (D, T); return;
+}
+void store_ds_type_bare_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T) {
+ store_ds_constructor_chat_participant (D, T); return;
+}
+void store_ds_type_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x0fd2bb8a: store_ds_constructor_chat_participants_forbidden (D, T); return;
+ case 0x7841b415: store_ds_constructor_chat_participants (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x0fd2bb8a: store_ds_constructor_chat_participants_forbidden (D, T); return;
+ case 0x7841b415: store_ds_constructor_chat_participants (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x37c1011c: store_ds_constructor_chat_photo_empty (D, T); return;
+ case 0x6153276a: store_ds_constructor_chat_photo (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x37c1011c: store_ds_constructor_chat_photo_empty (D, T); return;
+ case 0x6153276a: store_ds_constructor_chat_photo (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T) {
+ out_int (0x6643b654);
+ store_ds_constructor_client_d_h_inner_data (D, T); return;
+}
+void store_ds_type_bare_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T) {
+ store_ds_constructor_client_d_h_inner_data (D, T); return;
+}
+void store_ds_type_config (struct tl_ds_config *D, struct paramed_type *T) {
+ out_int (0x4e32b894);
+ store_ds_constructor_config (D, T); return;
+}
+void store_ds_type_bare_config (struct tl_ds_config *D, struct paramed_type *T) {
+ store_ds_constructor_config (D, T); return;
+}
+void store_ds_type_contact (struct tl_ds_contact *D, struct paramed_type *T) {
+ out_int (0xf911c994);
+ store_ds_constructor_contact (D, T); return;
+}
+void store_ds_type_bare_contact (struct tl_ds_contact *D, struct paramed_type *T) {
+ store_ds_constructor_contact (D, T); return;
+}
+void store_ds_type_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T) {
+ out_int (0x561bc879);
+ store_ds_constructor_contact_blocked (D, T); return;
+}
+void store_ds_type_bare_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T) {
+ store_ds_constructor_contact_blocked (D, T); return;
+}
+void store_ds_type_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T) {
+ out_int (0xea879f95);
+ store_ds_constructor_contact_found (D, T); return;
+}
+void store_ds_type_bare_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T) {
+ store_ds_constructor_contact_found (D, T); return;
+}
+void store_ds_type_contact_link (struct tl_ds_contact_link *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x5f4f9247: store_ds_constructor_contact_link_unknown (D, T); return;
+ case 0xfeedd3ad: store_ds_constructor_contact_link_none (D, T); return;
+ case 0x268f3f59: store_ds_constructor_contact_link_has_phone (D, T); return;
+ case 0xd502c2d0: store_ds_constructor_contact_link_contact (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_contact_link (struct tl_ds_contact_link *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x5f4f9247: store_ds_constructor_contact_link_unknown (D, T); return;
+ case 0xfeedd3ad: store_ds_constructor_contact_link_none (D, T); return;
+ case 0x268f3f59: store_ds_constructor_contact_link_has_phone (D, T); return;
+ case 0xd502c2d0: store_ds_constructor_contact_link_contact (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T) {
+ out_int (0xd3680c61);
+ store_ds_constructor_contact_status (D, T); return;
+}
+void store_ds_type_bare_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T) {
+ store_ds_constructor_contact_status (D, T); return;
+}
+void store_ds_type_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T) {
+ out_int (0x3de191a1);
+ store_ds_constructor_contact_suggested (D, T); return;
+}
+void store_ds_type_bare_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T) {
+ store_ds_constructor_contact_suggested (D, T); return;
+}
+void store_ds_type_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x2ec2a43c: store_ds_constructor_dc_option_l28 (D, T); return;
+ case 0x05d8c6cc: store_ds_constructor_dc_option (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x2ec2a43c: store_ds_constructor_dc_option_l28 (D, T); return;
+ case 0x05d8c6cc: store_ds_constructor_dc_option (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x204d3878: store_ds_constructor_decrypted_message (D, T); return;
+ case 0x73164160: store_ds_constructor_decrypted_message_service (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x204d3878: store_ds_constructor_decrypted_message (D, T); return;
+ case 0x73164160: store_ds_constructor_decrypted_message_service (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_decrypted_message_action (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xa1733aec: store_ds_constructor_decrypted_message_action_set_message_t_t_l (D, T); return;
+ case 0x0c4f40be: store_ds_constructor_decrypted_message_action_read_messages (D, T); return;
+ case 0x65614304: store_ds_constructor_decrypted_message_action_delete_messages (D, T); return;
+ case 0x8ac1f475: store_ds_constructor_decrypted_message_action_screenshot_messages (D, T); return;
+ case 0x6719e45c: store_ds_constructor_decrypted_message_action_flush_history (D, T); return;
+ case 0x511110b0: store_ds_constructor_decrypted_message_action_resend (D, T); return;
+ case 0xf3048883: store_ds_constructor_decrypted_message_action_notify_layer (D, T); return;
+ case 0xccb27641: store_ds_constructor_decrypted_message_action_typing (D, T); return;
+ case 0xf3c9611b: store_ds_constructor_decrypted_message_action_request_key (D, T); return;
+ case 0x6fe1735b: store_ds_constructor_decrypted_message_action_accept_key (D, T); return;
+ case 0xdd05ec6b: store_ds_constructor_decrypted_message_action_abort_key (D, T); return;
+ case 0xec2e0b9b: store_ds_constructor_decrypted_message_action_commit_key (D, T); return;
+ case 0xa82fdd63: store_ds_constructor_decrypted_message_action_noop (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_decrypted_message_action (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xa1733aec: store_ds_constructor_decrypted_message_action_set_message_t_t_l (D, T); return;
+ case 0x0c4f40be: store_ds_constructor_decrypted_message_action_read_messages (D, T); return;
+ case 0x65614304: store_ds_constructor_decrypted_message_action_delete_messages (D, T); return;
+ case 0x8ac1f475: store_ds_constructor_decrypted_message_action_screenshot_messages (D, T); return;
+ case 0x6719e45c: store_ds_constructor_decrypted_message_action_flush_history (D, T); return;
+ case 0x511110b0: store_ds_constructor_decrypted_message_action_resend (D, T); return;
+ case 0xf3048883: store_ds_constructor_decrypted_message_action_notify_layer (D, T); return;
+ case 0xccb27641: store_ds_constructor_decrypted_message_action_typing (D, T); return;
+ case 0xf3c9611b: store_ds_constructor_decrypted_message_action_request_key (D, T); return;
+ case 0x6fe1735b: store_ds_constructor_decrypted_message_action_accept_key (D, T); return;
+ case 0xdd05ec6b: store_ds_constructor_decrypted_message_action_abort_key (D, T); return;
+ case 0xec2e0b9b: store_ds_constructor_decrypted_message_action_commit_key (D, T); return;
+ case 0xa82fdd63: store_ds_constructor_decrypted_message_action_noop (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T) {
+ out_int (0x1be31789);
+ store_ds_constructor_decrypted_message_layer (D, T); return;
+}
+void store_ds_type_bare_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T) {
+ store_ds_constructor_decrypted_message_layer (D, T); return;
+}
+void store_ds_type_decrypted_message_media (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x089f5c4a: store_ds_constructor_decrypted_message_media_empty (D, T); return;
+ case 0x32798a8c: store_ds_constructor_decrypted_message_media_photo (D, T); return;
+ case 0x35480a59: store_ds_constructor_decrypted_message_media_geo_point (D, T); return;
+ case 0x588a0a97: store_ds_constructor_decrypted_message_media_contact (D, T); return;
+ case 0xb095434b: store_ds_constructor_decrypted_message_media_document (D, T); return;
+ case 0x524a415d: store_ds_constructor_decrypted_message_media_video (D, T); return;
+ case 0x57e0a9cb: store_ds_constructor_decrypted_message_media_audio (D, T); return;
+ case 0xfa95b0dd: store_ds_constructor_decrypted_message_media_external_document (D, T); return;
+ case 0x4cee6ef3: store_ds_constructor_decrypted_message_media_video_l12 (D, T); return;
+ case 0x6080758f: store_ds_constructor_decrypted_message_media_audio_l12 (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_decrypted_message_media (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x089f5c4a: store_ds_constructor_decrypted_message_media_empty (D, T); return;
+ case 0x32798a8c: store_ds_constructor_decrypted_message_media_photo (D, T); return;
+ case 0x35480a59: store_ds_constructor_decrypted_message_media_geo_point (D, T); return;
+ case 0x588a0a97: store_ds_constructor_decrypted_message_media_contact (D, T); return;
+ case 0xb095434b: store_ds_constructor_decrypted_message_media_document (D, T); return;
+ case 0x524a415d: store_ds_constructor_decrypted_message_media_video (D, T); return;
+ case 0x57e0a9cb: store_ds_constructor_decrypted_message_media_audio (D, T); return;
+ case 0xfa95b0dd: store_ds_constructor_decrypted_message_media_external_document (D, T); return;
+ case 0x4cee6ef3: store_ds_constructor_decrypted_message_media_video_l12 (D, T); return;
+ case 0x6080758f: store_ds_constructor_decrypted_message_media_audio_l12 (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_dialog (struct tl_ds_dialog *D, struct paramed_type *T) {
+ out_int (0xc1dd804a);
+ store_ds_constructor_dialog (D, T); return;
+}
+void store_ds_type_bare_dialog (struct tl_ds_dialog *D, struct paramed_type *T) {
+ store_ds_constructor_dialog (D, T); return;
+}
+void store_ds_type_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T) {
+ out_int (0xae636f24);
+ store_ds_constructor_disabled_feature (D, T); return;
+}
+void store_ds_type_bare_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T) {
+ store_ds_constructor_disabled_feature (D, T); return;
+}
+void store_ds_type_document (struct tl_ds_document *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x36f8c871: store_ds_constructor_document_empty (D, T); return;
+ case 0xf9a39f4f: store_ds_constructor_document (D, T); return;
+ case 0x9efc6326: store_ds_constructor_document_l19 (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_document (struct tl_ds_document *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x36f8c871: store_ds_constructor_document_empty (D, T); return;
+ case 0xf9a39f4f: store_ds_constructor_document (D, T); return;
+ case 0x9efc6326: store_ds_constructor_document_l19 (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_document_attribute (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x6c37c15c: store_ds_constructor_document_attribute_image_size (D, T); return;
+ case 0x11b58939: store_ds_constructor_document_attribute_animated (D, T); return;
+ case 0x994c9882: store_ds_constructor_document_attribute_sticker_l28 (D, T); return;
+ case 0x3a556302: store_ds_constructor_document_attribute_sticker (D, T); return;
+ case 0x5910cccb: store_ds_constructor_document_attribute_video (D, T); return;
+ case 0x051448e5: store_ds_constructor_document_attribute_audio (D, T); return;
+ case 0x15590068: store_ds_constructor_document_attribute_filename (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_document_attribute (struct tl_ds_document_attribute *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x6c37c15c: store_ds_constructor_document_attribute_image_size (D, T); return;
+ case 0x11b58939: store_ds_constructor_document_attribute_animated (D, T); return;
+ case 0x994c9882: store_ds_constructor_document_attribute_sticker_l28 (D, T); return;
+ case 0x3a556302: store_ds_constructor_document_attribute_sticker (D, T); return;
+ case 0x5910cccb: store_ds_constructor_document_attribute_video (D, T); return;
+ case 0x051448e5: store_ds_constructor_document_attribute_audio (D, T); return;
+ case 0x15590068: store_ds_constructor_document_attribute_filename (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_double (double *D, struct paramed_type *T) {
+ out_int (0x2210c154);
+ store_ds_constructor_double (D, T); return;
+}
+void store_ds_type_bare_double (double *D, struct paramed_type *T) {
+ store_ds_constructor_double (D, T); return;
+}
+void store_ds_type_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xab7ec0a0: store_ds_constructor_encrypted_chat_empty (D, T); return;
+ case 0x3bf703dc: store_ds_constructor_encrypted_chat_waiting (D, T); return;
+ case 0xc878527e: store_ds_constructor_encrypted_chat_requested (D, T); return;
+ case 0xfa56ce36: store_ds_constructor_encrypted_chat (D, T); return;
+ case 0x13d6dd27: store_ds_constructor_encrypted_chat_discarded (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xab7ec0a0: store_ds_constructor_encrypted_chat_empty (D, T); return;
+ case 0x3bf703dc: store_ds_constructor_encrypted_chat_waiting (D, T); return;
+ case 0xc878527e: store_ds_constructor_encrypted_chat_requested (D, T); return;
+ case 0xfa56ce36: store_ds_constructor_encrypted_chat (D, T); return;
+ case 0x13d6dd27: store_ds_constructor_encrypted_chat_discarded (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xc21f497e: store_ds_constructor_encrypted_file_empty (D, T); return;
+ case 0x4a70994c: store_ds_constructor_encrypted_file (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xc21f497e: store_ds_constructor_encrypted_file_empty (D, T); return;
+ case 0x4a70994c: store_ds_constructor_encrypted_file (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xed18c118: store_ds_constructor_encrypted_message (D, T); return;
+ case 0x23734b06: store_ds_constructor_encrypted_message_service (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xed18c118: store_ds_constructor_encrypted_message (D, T); return;
+ case 0x23734b06: store_ds_constructor_encrypted_message_service (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_error (struct tl_ds_error *D, struct paramed_type *T) {
+ out_int (0xc4b9f9bb);
+ store_ds_constructor_error (D, T); return;
+}
+void store_ds_type_bare_error (struct tl_ds_error *D, struct paramed_type *T) {
+ store_ds_constructor_error (D, T); return;
+}
+void store_ds_type_exported_chat_invite (struct tl_ds_exported_chat_invite *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x69df3769: store_ds_constructor_chat_invite_empty (D, T); return;
+ case 0xfc2e05bc: store_ds_constructor_chat_invite_exported (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_exported_chat_invite (struct tl_ds_exported_chat_invite *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x69df3769: store_ds_constructor_chat_invite_empty (D, T); return;
+ case 0xfc2e05bc: store_ds_constructor_chat_invite_exported (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_file_location (struct tl_ds_file_location *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x7c596b46: store_ds_constructor_file_location_unavailable (D, T); return;
+ case 0x53d69076: store_ds_constructor_file_location (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_file_location (struct tl_ds_file_location *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x7c596b46: store_ds_constructor_file_location_unavailable (D, T); return;
+ case 0x53d69076: store_ds_constructor_file_location (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x60311a9b: store_ds_constructor_geo_chat_message_empty (D, T); return;
+ case 0x4505f8e1: store_ds_constructor_geo_chat_message (D, T); return;
+ case 0xd34fa24e: store_ds_constructor_geo_chat_message_service (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x60311a9b: store_ds_constructor_geo_chat_message_empty (D, T); return;
+ case 0x4505f8e1: store_ds_constructor_geo_chat_message (D, T); return;
+ case 0xd34fa24e: store_ds_constructor_geo_chat_message_service (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x1117dd5f: store_ds_constructor_geo_point_empty (D, T); return;
+ case 0x2049d70c: store_ds_constructor_geo_point (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x1117dd5f: store_ds_constructor_geo_point_empty (D, T); return;
+ case 0x2049d70c: store_ds_constructor_geo_point (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T) {
+ out_int (0xd0028438);
+ store_ds_constructor_imported_contact (D, T); return;
+}
+void store_ds_type_bare_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T) {
+ store_ds_constructor_imported_contact (D, T); return;
+}
+void store_ds_type_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T) {
+ out_int (0x770656a8);
+ store_ds_constructor_input_app_event (D, T); return;
+}
+void store_ds_type_bare_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T) {
+ store_ds_constructor_input_app_event (D, T); return;
+}
+void store_ds_type_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xd95adc84: store_ds_constructor_input_audio_empty (D, T); return;
+ case 0x77d440ff: store_ds_constructor_input_audio (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xd95adc84: store_ds_constructor_input_audio_empty (D, T); return;
+ case 0x77d440ff: store_ds_constructor_input_audio (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x1ca48f57: store_ds_constructor_input_chat_photo_empty (D, T); return;
+ case 0x94254732: store_ds_constructor_input_chat_uploaded_photo (D, T); return;
+ case 0xb2e1bf08: store_ds_constructor_input_chat_photo (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x1ca48f57: store_ds_constructor_input_chat_photo_empty (D, T); return;
+ case 0x94254732: store_ds_constructor_input_chat_uploaded_photo (D, T); return;
+ case 0xb2e1bf08: store_ds_constructor_input_chat_photo (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_contact (struct tl_ds_input_contact *D, struct paramed_type *T) {
+ out_int (0xf392b7f4);
+ store_ds_constructor_input_phone_contact (D, T); return;
+}
+void store_ds_type_bare_input_contact (struct tl_ds_input_contact *D, struct paramed_type *T) {
+ store_ds_constructor_input_phone_contact (D, T); return;
+}
+void store_ds_type_input_document (struct tl_ds_input_document *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x72f0eaae: store_ds_constructor_input_document_empty (D, T); return;
+ case 0x18798952: store_ds_constructor_input_document (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_document (struct tl_ds_input_document *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x72f0eaae: store_ds_constructor_input_document_empty (D, T); return;
+ case 0x18798952: store_ds_constructor_input_document (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T) {
+ out_int (0xf141b5e1);
+ store_ds_constructor_input_encrypted_chat (D, T); return;
+}
+void store_ds_type_bare_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T) {
+ store_ds_constructor_input_encrypted_chat (D, T); return;
+}
+void store_ds_type_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x1837c364: store_ds_constructor_input_encrypted_file_empty (D, T); return;
+ case 0x64bd0306: store_ds_constructor_input_encrypted_file_uploaded (D, T); return;
+ case 0x5a17b5e5: store_ds_constructor_input_encrypted_file (D, T); return;
+ case 0x2dc173c8: store_ds_constructor_input_encrypted_file_big_uploaded (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x1837c364: store_ds_constructor_input_encrypted_file_empty (D, T); return;
+ case 0x64bd0306: store_ds_constructor_input_encrypted_file_uploaded (D, T); return;
+ case 0x5a17b5e5: store_ds_constructor_input_encrypted_file (D, T); return;
+ case 0x2dc173c8: store_ds_constructor_input_encrypted_file_big_uploaded (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_file (struct tl_ds_input_file *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xf52ff27f: store_ds_constructor_input_file (D, T); return;
+ case 0xfa4f0bb5: store_ds_constructor_input_file_big (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_file (struct tl_ds_input_file *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xf52ff27f: store_ds_constructor_input_file (D, T); return;
+ case 0xfa4f0bb5: store_ds_constructor_input_file_big (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x14637196: store_ds_constructor_input_file_location (D, T); return;
+ case 0x3d0364ec: store_ds_constructor_input_video_file_location (D, T); return;
+ case 0xf5235d55: store_ds_constructor_input_encrypted_file_location (D, T); return;
+ case 0x74dc404d: store_ds_constructor_input_audio_file_location (D, T); return;
+ case 0x4e45abe9: store_ds_constructor_input_document_file_location (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x14637196: store_ds_constructor_input_file_location (D, T); return;
+ case 0x3d0364ec: store_ds_constructor_input_video_file_location (D, T); return;
+ case 0xf5235d55: store_ds_constructor_input_encrypted_file_location (D, T); return;
+ case 0x74dc404d: store_ds_constructor_input_audio_file_location (D, T); return;
+ case 0x4e45abe9: store_ds_constructor_input_document_file_location (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T) {
+ out_int (0x74d456fa);
+ store_ds_constructor_input_geo_chat (D, T); return;
+}
+void store_ds_type_bare_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T) {
+ store_ds_constructor_input_geo_chat (D, T); return;
+}
+void store_ds_type_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xe4c123d6: store_ds_constructor_input_geo_point_empty (D, T); return;
+ case 0xf3b7acc9: store_ds_constructor_input_geo_point (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xe4c123d6: store_ds_constructor_input_geo_point_empty (D, T); return;
+ case 0xf3b7acc9: store_ds_constructor_input_geo_point (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_media (struct tl_ds_input_media *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x9664f57f: store_ds_constructor_input_media_empty (D, T); return;
+ case 0xf7aff1c0: store_ds_constructor_input_media_uploaded_photo (D, T); return;
+ case 0xe9bfb4f3: store_ds_constructor_input_media_photo (D, T); return;
+ case 0xf9c44144: store_ds_constructor_input_media_geo_point (D, T); return;
+ case 0xa6e45987: store_ds_constructor_input_media_contact (D, T); return;
+ case 0xe13fd4bc: store_ds_constructor_input_media_uploaded_video (D, T); return;
+ case 0x96fb97dc: store_ds_constructor_input_media_uploaded_thumb_video (D, T); return;
+ case 0x936a4ebd: store_ds_constructor_input_media_video (D, T); return;
+ case 0x4e498cab: store_ds_constructor_input_media_uploaded_audio (D, T); return;
+ case 0x89938781: store_ds_constructor_input_media_audio (D, T); return;
+ case 0xffe76b78: store_ds_constructor_input_media_uploaded_document (D, T); return;
+ case 0x41481486: store_ds_constructor_input_media_uploaded_thumb_document (D, T); return;
+ case 0xd184e841: store_ds_constructor_input_media_document (D, T); return;
+ case 0x2827a81a: store_ds_constructor_input_media_venue (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_media (struct tl_ds_input_media *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x9664f57f: store_ds_constructor_input_media_empty (D, T); return;
+ case 0xf7aff1c0: store_ds_constructor_input_media_uploaded_photo (D, T); return;
+ case 0xe9bfb4f3: store_ds_constructor_input_media_photo (D, T); return;
+ case 0xf9c44144: store_ds_constructor_input_media_geo_point (D, T); return;
+ case 0xa6e45987: store_ds_constructor_input_media_contact (D, T); return;
+ case 0xe13fd4bc: store_ds_constructor_input_media_uploaded_video (D, T); return;
+ case 0x96fb97dc: store_ds_constructor_input_media_uploaded_thumb_video (D, T); return;
+ case 0x936a4ebd: store_ds_constructor_input_media_video (D, T); return;
+ case 0x4e498cab: store_ds_constructor_input_media_uploaded_audio (D, T); return;
+ case 0x89938781: store_ds_constructor_input_media_audio (D, T); return;
+ case 0xffe76b78: store_ds_constructor_input_media_uploaded_document (D, T); return;
+ case 0x41481486: store_ds_constructor_input_media_uploaded_thumb_document (D, T); return;
+ case 0xd184e841: store_ds_constructor_input_media_document (D, T); return;
+ case 0x2827a81a: store_ds_constructor_input_media_venue (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xb8bc5b0c: store_ds_constructor_input_notify_peer (D, T); return;
+ case 0x193b4417: store_ds_constructor_input_notify_users (D, T); return;
+ case 0x4a95e84e: store_ds_constructor_input_notify_chats (D, T); return;
+ case 0xa429b886: store_ds_constructor_input_notify_all (D, T); return;
+ case 0x4d8ddec8: store_ds_constructor_input_notify_geo_chat_peer (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xb8bc5b0c: store_ds_constructor_input_notify_peer (D, T); return;
+ case 0x193b4417: store_ds_constructor_input_notify_users (D, T); return;
+ case 0x4a95e84e: store_ds_constructor_input_notify_chats (D, T); return;
+ case 0xa429b886: store_ds_constructor_input_notify_all (D, T); return;
+ case 0x4d8ddec8: store_ds_constructor_input_notify_geo_chat_peer (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_peer (struct tl_ds_input_peer *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x7f3b18ea: store_ds_constructor_input_peer_empty (D, T); return;
+ case 0x7da07ec9: store_ds_constructor_input_peer_self (D, T); return;
+ case 0x1023dbe8: store_ds_constructor_input_peer_contact (D, T); return;
+ case 0x9b447325: store_ds_constructor_input_peer_foreign (D, T); return;
+ case 0x179be863: store_ds_constructor_input_peer_chat (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_peer (struct tl_ds_input_peer *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x7f3b18ea: store_ds_constructor_input_peer_empty (D, T); return;
+ case 0x7da07ec9: store_ds_constructor_input_peer_self (D, T); return;
+ case 0x1023dbe8: store_ds_constructor_input_peer_contact (D, T); return;
+ case 0x9b447325: store_ds_constructor_input_peer_foreign (D, T); return;
+ case 0x179be863: store_ds_constructor_input_peer_chat (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_peer_notify_events (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xf03064d8: store_ds_constructor_input_peer_notify_events_empty (D, T); return;
+ case 0xe86a2c74: store_ds_constructor_input_peer_notify_events_all (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_peer_notify_events (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xf03064d8: store_ds_constructor_input_peer_notify_events_empty (D, T); return;
+ case 0xe86a2c74: store_ds_constructor_input_peer_notify_events_all (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T) {
+ out_int (0x46a2ce98);
+ store_ds_constructor_input_peer_notify_settings (D, T); return;
+}
+void store_ds_type_bare_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T) {
+ store_ds_constructor_input_peer_notify_settings (D, T); return;
+}
+void store_ds_type_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x1cd7bf0d: store_ds_constructor_input_photo_empty (D, T); return;
+ case 0xfb95c6c4: store_ds_constructor_input_photo (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x1cd7bf0d: store_ds_constructor_input_photo_empty (D, T); return;
+ case 0xfb95c6c4: store_ds_constructor_input_photo (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xade6b004: store_ds_constructor_input_photo_crop_auto (D, T); return;
+ case 0xd9915325: store_ds_constructor_input_photo_crop (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xade6b004: store_ds_constructor_input_photo_crop_auto (D, T); return;
+ case 0xd9915325: store_ds_constructor_input_photo_crop (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_privacy_key (struct tl_ds_input_privacy_key *D, struct paramed_type *T) {
+ out_int (0x4f96cb18);
+ store_ds_constructor_input_privacy_key_status_timestamp (D, T); return;
+}
+void store_ds_type_bare_input_privacy_key (struct tl_ds_input_privacy_key *D, struct paramed_type *T) {
+ store_ds_constructor_input_privacy_key_status_timestamp (D, T); return;
+}
+void store_ds_type_input_privacy_rule (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x0d09e07b: store_ds_constructor_input_privacy_value_allow_contacts (D, T); return;
+ case 0x184b35ce: store_ds_constructor_input_privacy_value_allow_all (D, T); return;
+ case 0x131cc67f: store_ds_constructor_input_privacy_value_allow_users (D, T); return;
+ case 0x0ba52007: store_ds_constructor_input_privacy_value_disallow_contacts (D, T); return;
+ case 0xd66b66c9: store_ds_constructor_input_privacy_value_disallow_all (D, T); return;
+ case 0x90110467: store_ds_constructor_input_privacy_value_disallow_users (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_privacy_rule (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x0d09e07b: store_ds_constructor_input_privacy_value_allow_contacts (D, T); return;
+ case 0x184b35ce: store_ds_constructor_input_privacy_value_allow_all (D, T); return;
+ case 0x131cc67f: store_ds_constructor_input_privacy_value_allow_users (D, T); return;
+ case 0x0ba52007: store_ds_constructor_input_privacy_value_disallow_contacts (D, T); return;
+ case 0xd66b66c9: store_ds_constructor_input_privacy_value_disallow_all (D, T); return;
+ case 0x90110467: store_ds_constructor_input_privacy_value_disallow_users (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_sticker_set (struct tl_ds_input_sticker_set *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xffb62b95: store_ds_constructor_input_sticker_set_empty (D, T); return;
+ case 0x9de7a269: store_ds_constructor_input_sticker_set_i_d (D, T); return;
+ case 0x861cc8a0: store_ds_constructor_input_sticker_set_short_name (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_sticker_set (struct tl_ds_input_sticker_set *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xffb62b95: store_ds_constructor_input_sticker_set_empty (D, T); return;
+ case 0x9de7a269: store_ds_constructor_input_sticker_set_i_d (D, T); return;
+ case 0x861cc8a0: store_ds_constructor_input_sticker_set_short_name (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_user (struct tl_ds_input_user *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xb98886cf: store_ds_constructor_input_user_empty (D, T); return;
+ case 0xf7c1b13f: store_ds_constructor_input_user_self (D, T); return;
+ case 0x86e94f65: store_ds_constructor_input_user_contact (D, T); return;
+ case 0x655e74ff: store_ds_constructor_input_user_foreign (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_user (struct tl_ds_input_user *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xb98886cf: store_ds_constructor_input_user_empty (D, T); return;
+ case 0xf7c1b13f: store_ds_constructor_input_user_self (D, T); return;
+ case 0x86e94f65: store_ds_constructor_input_user_contact (D, T); return;
+ case 0x655e74ff: store_ds_constructor_input_user_foreign (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_input_video (struct tl_ds_input_video *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x5508ec75: store_ds_constructor_input_video_empty (D, T); return;
+ case 0xee579652: store_ds_constructor_input_video (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_input_video (struct tl_ds_input_video *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x5508ec75: store_ds_constructor_input_video_empty (D, T); return;
+ case 0xee579652: store_ds_constructor_input_video (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_int (int *D, struct paramed_type *T) {
+ out_int (0xa8509bda);
+ store_ds_constructor_int (D, T); return;
+}
+void store_ds_type_bare_int (int *D, struct paramed_type *T) {
+ store_ds_constructor_int (D, T); return;
+}
+void store_ds_type_int128 (struct tl_ds_int128 *D, struct paramed_type *T) {
+ out_int (0x7d36c439);
+ store_ds_constructor_int128 (D, T); return;
+}
+void store_ds_type_bare_int128 (struct tl_ds_int128 *D, struct paramed_type *T) {
+ store_ds_constructor_int128 (D, T); return;
+}
+void store_ds_type_int256 (struct tl_ds_int256 *D, struct paramed_type *T) {
+ out_int (0xf2c798b3);
+ store_ds_constructor_int256 (D, T); return;
+}
+void store_ds_type_bare_int256 (struct tl_ds_int256 *D, struct paramed_type *T) {
+ store_ds_constructor_int256 (D, T); return;
+}
+void store_ds_type_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T) {
+ out_int (0xa2fa4880);
+ store_ds_constructor_keyboard_button (D, T); return;
+}
+void store_ds_type_bare_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T) {
+ store_ds_constructor_keyboard_button (D, T); return;
+}
+void store_ds_type_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T) {
+ out_int (0x77608b83);
+ store_ds_constructor_keyboard_button_row (D, T); return;
+}
+void store_ds_type_bare_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T) {
+ store_ds_constructor_keyboard_button_row (D, T); return;
+}
+void store_ds_type_long (long long *D, struct paramed_type *T) {
+ out_int (0x22076cba);
+ store_ds_constructor_long (D, T); return;
+}
+void store_ds_type_bare_long (long long *D, struct paramed_type *T) {
+ store_ds_constructor_long (D, T); return;
+}
+void store_ds_type_message (struct tl_ds_message *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x83e5de54: store_ds_constructor_message_empty (D, T); return;
+ case 0xc3060325: store_ds_constructor_message (D, T); return;
+ case 0x1d86f70e: store_ds_constructor_message_service (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_message (struct tl_ds_message *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x83e5de54: store_ds_constructor_message_empty (D, T); return;
+ case 0xc3060325: store_ds_constructor_message (D, T); return;
+ case 0x1d86f70e: store_ds_constructor_message_service (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_message_action (struct tl_ds_message_action *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xb6aef7b0: store_ds_constructor_message_action_empty (D, T); return;
+ case 0xa6638b9a: store_ds_constructor_message_action_chat_create (D, T); return;
+ case 0xb5a1ce5a: store_ds_constructor_message_action_chat_edit_title (D, T); return;
+ case 0x7fcb13a8: store_ds_constructor_message_action_chat_edit_photo (D, T); return;
+ case 0x95e3fbef: store_ds_constructor_message_action_chat_delete_photo (D, T); return;
+ case 0x5e3cfc4b: store_ds_constructor_message_action_chat_add_user (D, T); return;
+ case 0xb2ae9b0c: store_ds_constructor_message_action_chat_delete_user (D, T); return;
+ case 0x6f038ebc: store_ds_constructor_message_action_geo_chat_create (D, T); return;
+ case 0x0c7d53de: store_ds_constructor_message_action_geo_chat_checkin (D, T); return;
+ case 0xf89cf5e8: store_ds_constructor_message_action_chat_joined_by_link (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_message_action (struct tl_ds_message_action *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xb6aef7b0: store_ds_constructor_message_action_empty (D, T); return;
+ case 0xa6638b9a: store_ds_constructor_message_action_chat_create (D, T); return;
+ case 0xb5a1ce5a: store_ds_constructor_message_action_chat_edit_title (D, T); return;
+ case 0x7fcb13a8: store_ds_constructor_message_action_chat_edit_photo (D, T); return;
+ case 0x95e3fbef: store_ds_constructor_message_action_chat_delete_photo (D, T); return;
+ case 0x5e3cfc4b: store_ds_constructor_message_action_chat_add_user (D, T); return;
+ case 0xb2ae9b0c: store_ds_constructor_message_action_chat_delete_user (D, T); return;
+ case 0x6f038ebc: store_ds_constructor_message_action_geo_chat_create (D, T); return;
+ case 0x0c7d53de: store_ds_constructor_message_action_geo_chat_checkin (D, T); return;
+ case 0xf89cf5e8: store_ds_constructor_message_action_chat_joined_by_link (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_message_media (struct tl_ds_message_media *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x3ded6320: store_ds_constructor_message_media_empty (D, T); return;
+ case 0x3d8ce53d: store_ds_constructor_message_media_photo (D, T); return;
+ case 0x5bcf1675: store_ds_constructor_message_media_video (D, T); return;
+ case 0x56e0d474: store_ds_constructor_message_media_geo (D, T); return;
+ case 0x5e7d2f39: store_ds_constructor_message_media_contact (D, T); return;
+ case 0x9f84f49e: store_ds_constructor_message_media_unsupported (D, T); return;
+ case 0x2fda2204: store_ds_constructor_message_media_document (D, T); return;
+ case 0xc6b68300: store_ds_constructor_message_media_audio (D, T); return;
+ case 0xa32dd600: store_ds_constructor_message_media_web_page (D, T); return;
+ case 0x7912b71f: store_ds_constructor_message_media_venue (D, T); return;
+ case 0xc8c45a2a: store_ds_constructor_message_media_photo_l27 (D, T); return;
+ case 0xa2d24290: store_ds_constructor_message_media_video_l27 (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_message_media (struct tl_ds_message_media *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x3ded6320: store_ds_constructor_message_media_empty (D, T); return;
+ case 0x3d8ce53d: store_ds_constructor_message_media_photo (D, T); return;
+ case 0x5bcf1675: store_ds_constructor_message_media_video (D, T); return;
+ case 0x56e0d474: store_ds_constructor_message_media_geo (D, T); return;
+ case 0x5e7d2f39: store_ds_constructor_message_media_contact (D, T); return;
+ case 0x9f84f49e: store_ds_constructor_message_media_unsupported (D, T); return;
+ case 0x2fda2204: store_ds_constructor_message_media_document (D, T); return;
+ case 0xc6b68300: store_ds_constructor_message_media_audio (D, T); return;
+ case 0xa32dd600: store_ds_constructor_message_media_web_page (D, T); return;
+ case 0x7912b71f: store_ds_constructor_message_media_venue (D, T); return;
+ case 0xc8c45a2a: store_ds_constructor_message_media_photo_l27 (D, T); return;
+ case 0xa2d24290: store_ds_constructor_message_media_video_l27 (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_messages_filter (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x57e2f66c: store_ds_constructor_input_messages_filter_empty (D, T); return;
+ case 0x9609a51c: store_ds_constructor_input_messages_filter_photos (D, T); return;
+ case 0x9fc00e65: store_ds_constructor_input_messages_filter_video (D, T); return;
+ case 0x56e9f0e4: store_ds_constructor_input_messages_filter_photo_video (D, T); return;
+ case 0xd95e73bb: store_ds_constructor_input_messages_filter_photo_video_documents (D, T); return;
+ case 0x9eddf188: store_ds_constructor_input_messages_filter_document (D, T); return;
+ case 0xcfc87522: store_ds_constructor_input_messages_filter_audio (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_messages_filter (struct tl_ds_messages_filter *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x57e2f66c: store_ds_constructor_input_messages_filter_empty (D, T); return;
+ case 0x9609a51c: store_ds_constructor_input_messages_filter_photos (D, T); return;
+ case 0x9fc00e65: store_ds_constructor_input_messages_filter_video (D, T); return;
+ case 0x56e9f0e4: store_ds_constructor_input_messages_filter_photo_video (D, T); return;
+ case 0xd95e73bb: store_ds_constructor_input_messages_filter_photo_video_documents (D, T); return;
+ case 0x9eddf188: store_ds_constructor_input_messages_filter_document (D, T); return;
+ case 0xcfc87522: store_ds_constructor_input_messages_filter_audio (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T) {
+ out_int (0x8e1a1775);
+ store_ds_constructor_nearest_dc (D, T); return;
+}
+void store_ds_type_bare_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T) {
+ store_ds_constructor_nearest_dc (D, T); return;
+}
+void store_ds_type_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x9fd40bd8: store_ds_constructor_notify_peer (D, T); return;
+ case 0xb4c83b4c: store_ds_constructor_notify_users (D, T); return;
+ case 0xc007cec3: store_ds_constructor_notify_chats (D, T); return;
+ case 0x74d07c60: store_ds_constructor_notify_all (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x9fd40bd8: store_ds_constructor_notify_peer (D, T); return;
+ case 0xb4c83b4c: store_ds_constructor_notify_users (D, T); return;
+ case 0xc007cec3: store_ds_constructor_notify_chats (D, T); return;
+ case 0x74d07c60: store_ds_constructor_notify_all (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_null (struct tl_ds_null *D, struct paramed_type *T) {
+ out_int (0x56730bcc);
+ store_ds_constructor_null (D, T); return;
+}
+void store_ds_type_bare_null (struct tl_ds_null *D, struct paramed_type *T) {
+ store_ds_constructor_null (D, T); return;
+}
+void store_ds_type_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x83c95aec: store_ds_constructor_p_q_inner_data (D, T); return;
+ case 0x3c6a84d4: store_ds_constructor_p_q_inner_data_temp (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x83c95aec: store_ds_constructor_p_q_inner_data (D, T); return;
+ case 0x3c6a84d4: store_ds_constructor_p_q_inner_data_temp (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_peer (struct tl_ds_peer *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x9db1bc6d: store_ds_constructor_peer_user (D, T); return;
+ case 0xbad0e5bb: store_ds_constructor_peer_chat (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_peer (struct tl_ds_peer *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x9db1bc6d: store_ds_constructor_peer_user (D, T); return;
+ case 0xbad0e5bb: store_ds_constructor_peer_chat (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_peer_notify_events (struct tl_ds_peer_notify_events *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xadd53cb3: store_ds_constructor_peer_notify_events_empty (D, T); return;
+ case 0x6d1ded88: store_ds_constructor_peer_notify_events_all (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_peer_notify_events (struct tl_ds_peer_notify_events *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xadd53cb3: store_ds_constructor_peer_notify_events_empty (D, T); return;
+ case 0x6d1ded88: store_ds_constructor_peer_notify_events_all (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x70a68512: store_ds_constructor_peer_notify_settings_empty (D, T); return;
+ case 0x8d5e11ee: store_ds_constructor_peer_notify_settings (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x70a68512: store_ds_constructor_peer_notify_settings_empty (D, T); return;
+ case 0x8d5e11ee: store_ds_constructor_peer_notify_settings (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_photo (struct tl_ds_photo *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x2331b22d: store_ds_constructor_photo_empty (D, T); return;
+ case 0xc3838076: store_ds_constructor_photo (D, T); return;
+ case 0x22b56751: store_ds_constructor_photo_l27 (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_photo (struct tl_ds_photo *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x2331b22d: store_ds_constructor_photo_empty (D, T); return;
+ case 0xc3838076: store_ds_constructor_photo (D, T); return;
+ case 0x22b56751: store_ds_constructor_photo_l27 (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x0e17e23c: store_ds_constructor_photo_size_empty (D, T); return;
+ case 0x77bfb61b: store_ds_constructor_photo_size (D, T); return;
+ case 0xe9a734fa: store_ds_constructor_photo_cached_size (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x0e17e23c: store_ds_constructor_photo_size_empty (D, T); return;
+ case 0x77bfb61b: store_ds_constructor_photo_size (D, T); return;
+ case 0xe9a734fa: store_ds_constructor_photo_cached_size (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_privacy_key (struct tl_ds_privacy_key *D, struct paramed_type *T) {
+ out_int (0xbc2eab30);
+ store_ds_constructor_privacy_key_status_timestamp (D, T); return;
+}
+void store_ds_type_bare_privacy_key (struct tl_ds_privacy_key *D, struct paramed_type *T) {
+ store_ds_constructor_privacy_key_status_timestamp (D, T); return;
+}
+void store_ds_type_privacy_rule (struct tl_ds_privacy_rule *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xfffe1bac: store_ds_constructor_privacy_value_allow_contacts (D, T); return;
+ case 0x65427b82: store_ds_constructor_privacy_value_allow_all (D, T); return;
+ case 0x4d5bbe0c: store_ds_constructor_privacy_value_allow_users (D, T); return;
+ case 0xf888fa1a: store_ds_constructor_privacy_value_disallow_contacts (D, T); return;
+ case 0x8b73e763: store_ds_constructor_privacy_value_disallow_all (D, T); return;
+ case 0x0c7f49b7: store_ds_constructor_privacy_value_disallow_users (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_privacy_rule (struct tl_ds_privacy_rule *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xfffe1bac: store_ds_constructor_privacy_value_allow_contacts (D, T); return;
+ case 0x65427b82: store_ds_constructor_privacy_value_allow_all (D, T); return;
+ case 0x4d5bbe0c: store_ds_constructor_privacy_value_allow_users (D, T); return;
+ case 0xf888fa1a: store_ds_constructor_privacy_value_disallow_contacts (D, T); return;
+ case 0x8b73e763: store_ds_constructor_privacy_value_disallow_all (D, T); return;
+ case 0x0c7f49b7: store_ds_constructor_privacy_value_disallow_users (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T) {
+ out_int (0xa384b779);
+ store_ds_constructor_received_notify_message (D, T); return;
+}
+void store_ds_type_bare_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T) {
+ store_ds_constructor_received_notify_message (D, T); return;
+}
+void store_ds_type_reply_markup (struct tl_ds_reply_markup *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xa03e5b85: store_ds_constructor_reply_keyboard_hide (D, T); return;
+ case 0xf4108aa0: store_ds_constructor_reply_keyboard_force_reply (D, T); return;
+ case 0x3502758c: store_ds_constructor_reply_keyboard_markup (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_reply_markup (struct tl_ds_reply_markup *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xa03e5b85: store_ds_constructor_reply_keyboard_hide (D, T); return;
+ case 0xf4108aa0: store_ds_constructor_reply_keyboard_force_reply (D, T); return;
+ case 0x3502758c: store_ds_constructor_reply_keyboard_markup (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T) {
+ out_int (0x05162463);
+ store_ds_constructor_res_p_q (D, T); return;
+}
+void store_ds_type_bare_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T) {
+ store_ds_constructor_res_p_q (D, T); return;
+}
+void store_ds_type_send_message_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x16bf744e: store_ds_constructor_send_message_typing_action (D, T); return;
+ case 0xfd5ec8f5: store_ds_constructor_send_message_cancel_action (D, T); return;
+ case 0xa187d66f: store_ds_constructor_send_message_record_video_action (D, T); return;
+ case 0x92042ff7: store_ds_constructor_send_message_upload_video_action_l27 (D, T); return;
+ case 0xe9763aec: store_ds_constructor_send_message_upload_video_action (D, T); return;
+ case 0xd52f73f7: store_ds_constructor_send_message_record_audio_action (D, T); return;
+ case 0xe6ac8a6f: store_ds_constructor_send_message_upload_audio_action_l27 (D, T); return;
+ case 0xf351d7ab: store_ds_constructor_send_message_upload_audio_action (D, T); return;
+ case 0xd1d34a26: store_ds_constructor_send_message_upload_photo_action (D, T); return;
+ case 0x8faee98e: store_ds_constructor_send_message_upload_document_action_l27 (D, T); return;
+ case 0xaa0cd9e4: store_ds_constructor_send_message_upload_document_action (D, T); return;
+ case 0x176f8ba1: store_ds_constructor_send_message_geo_location_action (D, T); return;
+ case 0x628cbc6f: store_ds_constructor_send_message_choose_contact_action (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_send_message_action (struct tl_ds_send_message_action *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x16bf744e: store_ds_constructor_send_message_typing_action (D, T); return;
+ case 0xfd5ec8f5: store_ds_constructor_send_message_cancel_action (D, T); return;
+ case 0xa187d66f: store_ds_constructor_send_message_record_video_action (D, T); return;
+ case 0x92042ff7: store_ds_constructor_send_message_upload_video_action_l27 (D, T); return;
+ case 0xe9763aec: store_ds_constructor_send_message_upload_video_action (D, T); return;
+ case 0xd52f73f7: store_ds_constructor_send_message_record_audio_action (D, T); return;
+ case 0xe6ac8a6f: store_ds_constructor_send_message_upload_audio_action_l27 (D, T); return;
+ case 0xf351d7ab: store_ds_constructor_send_message_upload_audio_action (D, T); return;
+ case 0xd1d34a26: store_ds_constructor_send_message_upload_photo_action (D, T); return;
+ case 0x8faee98e: store_ds_constructor_send_message_upload_document_action_l27 (D, T); return;
+ case 0xaa0cd9e4: store_ds_constructor_send_message_upload_document_action (D, T); return;
+ case 0x176f8ba1: store_ds_constructor_send_message_geo_location_action (D, T); return;
+ case 0x628cbc6f: store_ds_constructor_send_message_choose_contact_action (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_server_d_h_params (struct tl_ds_server_d_h_params *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x79cb045d: store_ds_constructor_server_d_h_params_fail (D, T); return;
+ case 0xd0e8075c: store_ds_constructor_server_d_h_params_ok (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_server_d_h_params (struct tl_ds_server_d_h_params *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x79cb045d: store_ds_constructor_server_d_h_params_fail (D, T); return;
+ case 0xd0e8075c: store_ds_constructor_server_d_h_params_ok (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T) {
+ out_int (0xb5890dba);
+ store_ds_constructor_server_d_h_inner_data (D, T); return;
+}
+void store_ds_type_bare_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T) {
+ store_ds_constructor_server_d_h_inner_data (D, T); return;
+}
+void store_ds_type_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x3bcbf734: store_ds_constructor_dh_gen_ok (D, T); return;
+ case 0x46dc1fb9: store_ds_constructor_dh_gen_retry (D, T); return;
+ case 0xa69dae02: store_ds_constructor_dh_gen_fail (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x3bcbf734: store_ds_constructor_dh_gen_ok (D, T); return;
+ case 0x46dc1fb9: store_ds_constructor_dh_gen_retry (D, T); return;
+ case 0xa69dae02: store_ds_constructor_dh_gen_fail (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T) {
+ out_int (0x12b299d4);
+ store_ds_constructor_sticker_pack (D, T); return;
+}
+void store_ds_type_bare_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T) {
+ store_ds_constructor_sticker_pack (D, T); return;
+}
+void store_ds_type_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T) {
+ out_int (0xa7a43b17);
+ store_ds_constructor_sticker_set (D, T); return;
+}
+void store_ds_type_bare_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T) {
+ store_ds_constructor_sticker_set (D, T); return;
+}
+void store_ds_type_string (struct tl_ds_string *D, struct paramed_type *T) {
+ out_int (0xb5286e24);
+ store_ds_constructor_string (D, T); return;
+}
+void store_ds_type_bare_string (struct tl_ds_string *D, struct paramed_type *T) {
+ store_ds_constructor_string (D, T); return;
+}
+void store_ds_type_update (struct tl_ds_update *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x1f2b0afd: store_ds_constructor_update_new_message (D, T); return;
+ case 0x4e90bfd6: store_ds_constructor_update_message_i_d (D, T); return;
+ case 0xa20db0e5: store_ds_constructor_update_delete_messages (D, T); return;
+ case 0x5c486927: store_ds_constructor_update_user_typing (D, T); return;
+ case 0x9a65ea1f: store_ds_constructor_update_chat_user_typing (D, T); return;
+ case 0x07761198: store_ds_constructor_update_chat_participants (D, T); return;
+ case 0x1bfbd823: store_ds_constructor_update_user_status (D, T); return;
+ case 0xa7332b73: store_ds_constructor_update_user_name (D, T); return;
+ case 0x95313b0c: store_ds_constructor_update_user_photo (D, T); return;
+ case 0x2575bbb9: store_ds_constructor_update_contact_registered (D, T); return;
+ case 0x9d2e67c5: store_ds_constructor_update_contact_link (D, T); return;
+ case 0x8f06529a: store_ds_constructor_update_new_authorization (D, T); return;
+ case 0x5a68e3f7: store_ds_constructor_update_new_geo_chat_message (D, T); return;
+ case 0x12bcbd9a: store_ds_constructor_update_new_encrypted_message (D, T); return;
+ case 0x1710f156: store_ds_constructor_update_encrypted_chat_typing (D, T); return;
+ case 0xb4a2e88d: store_ds_constructor_update_encryption (D, T); return;
+ case 0x38fe25b7: store_ds_constructor_update_encrypted_messages_read (D, T); return;
+ case 0x3a0eeb22: store_ds_constructor_update_chat_participant_add (D, T); return;
+ case 0x6e5f8c22: store_ds_constructor_update_chat_participant_delete (D, T); return;
+ case 0x8e5e9873: store_ds_constructor_update_dc_options (D, T); return;
+ case 0x80ece81a: store_ds_constructor_update_user_blocked (D, T); return;
+ case 0xbec268ef: store_ds_constructor_update_notify_settings (D, T); return;
+ case 0x382dd3e4: store_ds_constructor_update_service_notification (D, T); return;
+ case 0xee3b272a: store_ds_constructor_update_privacy (D, T); return;
+ case 0x12b9417b: store_ds_constructor_update_user_phone (D, T); return;
+ case 0x9961fd5c: store_ds_constructor_update_read_history_inbox (D, T); return;
+ case 0x2f2f21bf: store_ds_constructor_update_read_history_outbox (D, T); return;
+ case 0x2cc36971: store_ds_constructor_update_web_page (D, T); return;
+ case 0x68c13933: store_ds_constructor_update_read_messages_contents (D, T); return;
+ case 0x03114739: store_ds_constructor_update_msg_update (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_update (struct tl_ds_update *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x1f2b0afd: store_ds_constructor_update_new_message (D, T); return;
+ case 0x4e90bfd6: store_ds_constructor_update_message_i_d (D, T); return;
+ case 0xa20db0e5: store_ds_constructor_update_delete_messages (D, T); return;
+ case 0x5c486927: store_ds_constructor_update_user_typing (D, T); return;
+ case 0x9a65ea1f: store_ds_constructor_update_chat_user_typing (D, T); return;
+ case 0x07761198: store_ds_constructor_update_chat_participants (D, T); return;
+ case 0x1bfbd823: store_ds_constructor_update_user_status (D, T); return;
+ case 0xa7332b73: store_ds_constructor_update_user_name (D, T); return;
+ case 0x95313b0c: store_ds_constructor_update_user_photo (D, T); return;
+ case 0x2575bbb9: store_ds_constructor_update_contact_registered (D, T); return;
+ case 0x9d2e67c5: store_ds_constructor_update_contact_link (D, T); return;
+ case 0x8f06529a: store_ds_constructor_update_new_authorization (D, T); return;
+ case 0x5a68e3f7: store_ds_constructor_update_new_geo_chat_message (D, T); return;
+ case 0x12bcbd9a: store_ds_constructor_update_new_encrypted_message (D, T); return;
+ case 0x1710f156: store_ds_constructor_update_encrypted_chat_typing (D, T); return;
+ case 0xb4a2e88d: store_ds_constructor_update_encryption (D, T); return;
+ case 0x38fe25b7: store_ds_constructor_update_encrypted_messages_read (D, T); return;
+ case 0x3a0eeb22: store_ds_constructor_update_chat_participant_add (D, T); return;
+ case 0x6e5f8c22: store_ds_constructor_update_chat_participant_delete (D, T); return;
+ case 0x8e5e9873: store_ds_constructor_update_dc_options (D, T); return;
+ case 0x80ece81a: store_ds_constructor_update_user_blocked (D, T); return;
+ case 0xbec268ef: store_ds_constructor_update_notify_settings (D, T); return;
+ case 0x382dd3e4: store_ds_constructor_update_service_notification (D, T); return;
+ case 0xee3b272a: store_ds_constructor_update_privacy (D, T); return;
+ case 0x12b9417b: store_ds_constructor_update_user_phone (D, T); return;
+ case 0x9961fd5c: store_ds_constructor_update_read_history_inbox (D, T); return;
+ case 0x2f2f21bf: store_ds_constructor_update_read_history_outbox (D, T); return;
+ case 0x2cc36971: store_ds_constructor_update_web_page (D, T); return;
+ case 0x68c13933: store_ds_constructor_update_read_messages_contents (D, T); return;
+ case 0x03114739: store_ds_constructor_update_msg_update (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_updates (struct tl_ds_updates *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xe317af7e: store_ds_constructor_updates_too_long (D, T); return;
+ case 0xed5c2127: store_ds_constructor_update_short_message (D, T); return;
+ case 0x52238b3c: store_ds_constructor_update_short_chat_message (D, T); return;
+ case 0x78d4dec1: store_ds_constructor_update_short (D, T); return;
+ case 0x725b04c3: store_ds_constructor_updates_combined (D, T); return;
+ case 0x74ae4240: store_ds_constructor_updates (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_updates (struct tl_ds_updates *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xe317af7e: store_ds_constructor_updates_too_long (D, T); return;
+ case 0xed5c2127: store_ds_constructor_update_short_message (D, T); return;
+ case 0x52238b3c: store_ds_constructor_update_short_chat_message (D, T); return;
+ case 0x78d4dec1: store_ds_constructor_update_short (D, T); return;
+ case 0x725b04c3: store_ds_constructor_updates_combined (D, T); return;
+ case 0x74ae4240: store_ds_constructor_updates (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_user (struct tl_ds_user *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x200250ba: store_ds_constructor_user_empty (D, T); return;
+ case 0x22e49072: store_ds_constructor_user (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_user (struct tl_ds_user *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x200250ba: store_ds_constructor_user_empty (D, T); return;
+ case 0x22e49072: store_ds_constructor_user (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_user_full (struct tl_ds_user_full *D, struct paramed_type *T) {
+ out_int (0x5a89ac5b);
+ store_ds_constructor_user_full (D, T); return;
+}
+void store_ds_type_bare_user_full (struct tl_ds_user_full *D, struct paramed_type *T) {
+ store_ds_constructor_user_full (D, T); return;
+}
+void store_ds_type_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x4f11bae1: store_ds_constructor_user_profile_photo_empty (D, T); return;
+ case 0xd559d8c8: store_ds_constructor_user_profile_photo (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x4f11bae1: store_ds_constructor_user_profile_photo_empty (D, T); return;
+ case 0xd559d8c8: store_ds_constructor_user_profile_photo (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_user_status (struct tl_ds_user_status *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x09d05049: store_ds_constructor_user_status_empty (D, T); return;
+ case 0xedb93949: store_ds_constructor_user_status_online (D, T); return;
+ case 0x008c703f: store_ds_constructor_user_status_offline (D, T); return;
+ case 0xe26f42f1: store_ds_constructor_user_status_recently (D, T); return;
+ case 0x07bf09fc: store_ds_constructor_user_status_last_week (D, T); return;
+ case 0x77ebc742: store_ds_constructor_user_status_last_month (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_user_status (struct tl_ds_user_status *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x09d05049: store_ds_constructor_user_status_empty (D, T); return;
+ case 0xedb93949: store_ds_constructor_user_status_online (D, T); return;
+ case 0x008c703f: store_ds_constructor_user_status_offline (D, T); return;
+ case 0xe26f42f1: store_ds_constructor_user_status_recently (D, T); return;
+ case 0x07bf09fc: store_ds_constructor_user_status_last_week (D, T); return;
+ case 0x77ebc742: store_ds_constructor_user_status_last_month (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_vector (struct tl_ds_vector *D, struct paramed_type *T) {
+ out_int (0x1cb5c415);
+ store_ds_constructor_vector (D, T); return;
+}
+void store_ds_type_bare_vector (struct tl_ds_vector *D, struct paramed_type *T) {
+ store_ds_constructor_vector (D, T); return;
+}
+void store_ds_type_video (struct tl_ds_video *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xc10658a8: store_ds_constructor_video_empty (D, T); return;
+ case 0xee9f4a4d: store_ds_constructor_video (D, T); return;
+ case 0x388fa391: store_ds_constructor_video_l27 (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_video (struct tl_ds_video *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xc10658a8: store_ds_constructor_video_empty (D, T); return;
+ case 0xee9f4a4d: store_ds_constructor_video (D, T); return;
+ case 0x388fa391: store_ds_constructor_video_l27 (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xccb03657: store_ds_constructor_wall_paper (D, T); return;
+ case 0x63117f24: store_ds_constructor_wall_paper_solid (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xccb03657: store_ds_constructor_wall_paper (D, T); return;
+ case 0x63117f24: store_ds_constructor_wall_paper_solid (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_web_page (struct tl_ds_web_page *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xeb1477e8: store_ds_constructor_web_page_empty (D, T); return;
+ case 0xc586da1c: store_ds_constructor_web_page_pending (D, T); return;
+ case 0xa31ea0b5: store_ds_constructor_web_page (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_web_page (struct tl_ds_web_page *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xeb1477e8: store_ds_constructor_web_page_empty (D, T); return;
+ case 0xc586da1c: store_ds_constructor_web_page_pending (D, T); return;
+ case 0xa31ea0b5: store_ds_constructor_web_page (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T) {
+ out_int (0x1250abde);
+ store_ds_constructor_account_authorizations (D, T); return;
+}
+void store_ds_type_bare_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T) {
+ store_ds_constructor_account_authorizations (D, T); return;
+}
+void store_ds_type_account_password (struct tl_ds_account_password *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x96dabc18: store_ds_constructor_account_no_password (D, T); return;
+ case 0x7c18141c: store_ds_constructor_account_password (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_account_password (struct tl_ds_account_password *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x96dabc18: store_ds_constructor_account_no_password (D, T); return;
+ case 0x7c18141c: store_ds_constructor_account_password (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T) {
+ out_int (0xbcfc532c);
+ store_ds_constructor_account_password_input_settings (D, T); return;
+}
+void store_ds_type_bare_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T) {
+ store_ds_constructor_account_password_input_settings (D, T); return;
+}
+void store_ds_type_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T) {
+ out_int (0xb7b72ab3);
+ store_ds_constructor_account_password_settings (D, T); return;
+}
+void store_ds_type_bare_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T) {
+ store_ds_constructor_account_password_settings (D, T); return;
+}
+void store_ds_type_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T) {
+ out_int (0x554abb6f);
+ store_ds_constructor_account_privacy_rules (D, T); return;
+}
+void store_ds_type_bare_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T) {
+ store_ds_constructor_account_privacy_rules (D, T); return;
+}
+void store_ds_type_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T) {
+ out_int (0xa4f58c4c);
+ store_ds_constructor_account_sent_change_phone_code (D, T); return;
+}
+void store_ds_type_bare_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T) {
+ store_ds_constructor_account_sent_change_phone_code (D, T); return;
+}
+void store_ds_type_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T) {
+ out_int (0xff036af1);
+ store_ds_constructor_auth_authorization (D, T); return;
+}
+void store_ds_type_bare_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T) {
+ store_ds_constructor_auth_authorization (D, T); return;
+}
+void store_ds_type_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T) {
+ out_int (0x811ea28e);
+ store_ds_constructor_auth_checked_phone (D, T); return;
+}
+void store_ds_type_bare_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T) {
+ store_ds_constructor_auth_checked_phone (D, T); return;
+}
+void store_ds_type_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T) {
+ out_int (0xdf969c2d);
+ store_ds_constructor_auth_exported_authorization (D, T); return;
+}
+void store_ds_type_bare_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T) {
+ store_ds_constructor_auth_exported_authorization (D, T); return;
+}
+void store_ds_type_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T) {
+ out_int (0x137948a5);
+ store_ds_constructor_auth_password_recovery (D, T); return;
+}
+void store_ds_type_bare_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T) {
+ store_ds_constructor_auth_password_recovery (D, T); return;
+}
+void store_ds_type_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xefed51d9: store_ds_constructor_auth_sent_code (D, T); return;
+ case 0xe325edcf: store_ds_constructor_auth_sent_app_code (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xefed51d9: store_ds_constructor_auth_sent_code (D, T); return;
+ case 0xe325edcf: store_ds_constructor_auth_sent_app_code (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T) {
+ out_int (0x0377168f);
+ store_ds_constructor_binlog_encr_key (D, T); return;
+}
+void store_ds_type_bare_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T) {
+ store_ds_constructor_binlog_encr_key (D, T); return;
+}
+void store_ds_type_binlog_update (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x3b06de69: store_ds_constructor_binlog_start (D, T); return;
+ case 0xf96feb32: store_ds_constructor_binlog_dc_option (D, T); return;
+ case 0x7c0d22d8: store_ds_constructor_binlog_dc_option_new (D, T); return;
+ case 0x71e8c156: store_ds_constructor_binlog_auth_key (D, T); return;
+ case 0x9e83dbdc: store_ds_constructor_binlog_default_dc (D, T); return;
+ case 0x26451bb5: store_ds_constructor_binlog_dc_signed (D, T); return;
+ case 0x68a870e8: store_ds_constructor_binlog_our_id (D, T); return;
+ case 0xeaeb7826: store_ds_constructor_binlog_set_dh_params (D, T); return;
+ case 0x2ca8c939: store_ds_constructor_binlog_set_pts (D, T); return;
+ case 0xd95738ac: store_ds_constructor_binlog_set_qts (D, T); return;
+ case 0x1d0f4b52: store_ds_constructor_binlog_set_date (D, T); return;
+ case 0x6eeb2989: store_ds_constructor_binlog_set_seq (D, T); return;
+ case 0xee1b38e8: store_ds_constructor_binlog_encr_chat_delete (D, T); return;
+ case 0x84977251: store_ds_constructor_binlog_encr_chat_new (D, T); return;
+ case 0x9d49488d: store_ds_constructor_binlog_encr_chat_exchange_new (D, T); return;
+ case 0xac55d447: store_ds_constructor_binlog_user_delete (D, T); return;
+ case 0x127cf2f9: store_ds_constructor_binlog_user_new (D, T); return;
+ case 0x0a10aa92: store_ds_constructor_binlog_chat_new (D, T); return;
+ case 0x535475ea: store_ds_constructor_binlog_chat_add_participant (D, T); return;
+ case 0x7dd1a1a2: store_ds_constructor_binlog_chat_del_participant (D, T); return;
+ case 0x3c873416: store_ds_constructor_binlog_set_msg_id (D, T); return;
+ case 0x847e77b1: store_ds_constructor_binlog_message_delete (D, T); return;
+ case 0x427cfcdb: store_ds_constructor_binlog_message_new (D, T); return;
+ case 0x6cf7cabc: store_ds_constructor_binlog_message_encr_new (D, T); return;
+ case 0x6dd4d85f: store_ds_constructor_binlog_msg_update (D, T); return;
+ case 0x83327955: store_ds_constructor_binlog_reset_authorization (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_binlog_update (struct tl_ds_binlog_update *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x3b06de69: store_ds_constructor_binlog_start (D, T); return;
+ case 0xf96feb32: store_ds_constructor_binlog_dc_option (D, T); return;
+ case 0x7c0d22d8: store_ds_constructor_binlog_dc_option_new (D, T); return;
+ case 0x71e8c156: store_ds_constructor_binlog_auth_key (D, T); return;
+ case 0x9e83dbdc: store_ds_constructor_binlog_default_dc (D, T); return;
+ case 0x26451bb5: store_ds_constructor_binlog_dc_signed (D, T); return;
+ case 0x68a870e8: store_ds_constructor_binlog_our_id (D, T); return;
+ case 0xeaeb7826: store_ds_constructor_binlog_set_dh_params (D, T); return;
+ case 0x2ca8c939: store_ds_constructor_binlog_set_pts (D, T); return;
+ case 0xd95738ac: store_ds_constructor_binlog_set_qts (D, T); return;
+ case 0x1d0f4b52: store_ds_constructor_binlog_set_date (D, T); return;
+ case 0x6eeb2989: store_ds_constructor_binlog_set_seq (D, T); return;
+ case 0xee1b38e8: store_ds_constructor_binlog_encr_chat_delete (D, T); return;
+ case 0x84977251: store_ds_constructor_binlog_encr_chat_new (D, T); return;
+ case 0x9d49488d: store_ds_constructor_binlog_encr_chat_exchange_new (D, T); return;
+ case 0xac55d447: store_ds_constructor_binlog_user_delete (D, T); return;
+ case 0x127cf2f9: store_ds_constructor_binlog_user_new (D, T); return;
+ case 0x0a10aa92: store_ds_constructor_binlog_chat_new (D, T); return;
+ case 0x535475ea: store_ds_constructor_binlog_chat_add_participant (D, T); return;
+ case 0x7dd1a1a2: store_ds_constructor_binlog_chat_del_participant (D, T); return;
+ case 0x3c873416: store_ds_constructor_binlog_set_msg_id (D, T); return;
+ case 0x847e77b1: store_ds_constructor_binlog_message_delete (D, T); return;
+ case 0x427cfcdb: store_ds_constructor_binlog_message_new (D, T); return;
+ case 0x6cf7cabc: store_ds_constructor_binlog_message_encr_new (D, T); return;
+ case 0x6dd4d85f: store_ds_constructor_binlog_msg_update (D, T); return;
+ case 0x83327955: store_ds_constructor_binlog_reset_authorization (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x1c138d15: store_ds_constructor_contacts_blocked (D, T); return;
+ case 0x900802a1: store_ds_constructor_contacts_blocked_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x1c138d15: store_ds_constructor_contacts_blocked (D, T); return;
+ case 0x900802a1: store_ds_constructor_contacts_blocked_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xb74ba9d2: store_ds_constructor_contacts_contacts_not_modified (D, T); return;
+ case 0x6f8b8cb2: store_ds_constructor_contacts_contacts (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xb74ba9d2: store_ds_constructor_contacts_contacts_not_modified (D, T); return;
+ case 0x6f8b8cb2: store_ds_constructor_contacts_contacts (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T) {
+ out_int (0x0566000e);
+ store_ds_constructor_contacts_found (D, T); return;
+}
+void store_ds_type_bare_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T) {
+ store_ds_constructor_contacts_found (D, T); return;
+}
+void store_ds_type_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T) {
+ out_int (0xad524315);
+ store_ds_constructor_contacts_imported_contacts (D, T); return;
+}
+void store_ds_type_bare_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T) {
+ store_ds_constructor_contacts_imported_contacts (D, T); return;
+}
+void store_ds_type_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T) {
+ out_int (0x3ace484c);
+ store_ds_constructor_contacts_link (D, T); return;
+}
+void store_ds_type_bare_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T) {
+ store_ds_constructor_contacts_link (D, T); return;
+}
+void store_ds_type_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T) {
+ out_int (0x5649dcc5);
+ store_ds_constructor_contacts_suggested (D, T); return;
+}
+void store_ds_type_bare_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T) {
+ store_ds_constructor_contacts_suggested (D, T); return;
+}
+void store_ds_type_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T) {
+ out_int (0x48feb267);
+ store_ds_constructor_geochats_located (D, T); return;
+}
+void store_ds_type_bare_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T) {
+ store_ds_constructor_geochats_located (D, T); return;
+}
+void store_ds_type_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xd1526db1: store_ds_constructor_geochats_messages (D, T); return;
+ case 0xbc5863e8: store_ds_constructor_geochats_messages_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xd1526db1: store_ds_constructor_geochats_messages (D, T); return;
+ case 0xbc5863e8: store_ds_constructor_geochats_messages_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T) {
+ out_int (0x17b1578b);
+ store_ds_constructor_geochats_stated_message (D, T); return;
+}
+void store_ds_type_bare_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T) {
+ store_ds_constructor_geochats_stated_message (D, T); return;
+}
+void store_ds_type_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x8987f311: store_ds_constructor_help_app_update (D, T); return;
+ case 0xc45a6536: store_ds_constructor_help_no_app_update (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x8987f311: store_ds_constructor_help_app_update (D, T); return;
+ case 0xc45a6536: store_ds_constructor_help_no_app_update (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T) {
+ out_int (0x18cb9f78);
+ store_ds_constructor_help_invite_text (D, T); return;
+}
+void store_ds_type_bare_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T) {
+ store_ds_constructor_help_invite_text (D, T); return;
+}
+void store_ds_type_help_support (struct tl_ds_help_support *D, struct paramed_type *T) {
+ out_int (0x17c6b5f6);
+ store_ds_constructor_help_support (D, T); return;
+}
+void store_ds_type_bare_help_support (struct tl_ds_help_support *D, struct paramed_type *T) {
+ store_ds_constructor_help_support (D, T); return;
+}
+void store_ds_type_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T) {
+ out_int (0xb45c69d1);
+ store_ds_constructor_messages_affected_history (D, T); return;
+}
+void store_ds_type_bare_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T) {
+ store_ds_constructor_messages_affected_history (D, T); return;
+}
+void store_ds_type_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T) {
+ out_int (0x84d19185);
+ store_ds_constructor_messages_affected_messages (D, T); return;
+}
+void store_ds_type_bare_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T) {
+ store_ds_constructor_messages_affected_messages (D, T); return;
+}
+void store_ds_type_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xe86602c3: store_ds_constructor_messages_all_stickers_not_modified (D, T); return;
+ case 0x5ce352ec: store_ds_constructor_messages_all_stickers (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xe86602c3: store_ds_constructor_messages_all_stickers_not_modified (D, T); return;
+ case 0x5ce352ec: store_ds_constructor_messages_all_stickers (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T) {
+ out_int (0xe5d7d19c);
+ store_ds_constructor_messages_chat_full (D, T); return;
+}
+void store_ds_type_bare_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T) {
+ store_ds_constructor_messages_chat_full (D, T); return;
+}
+void store_ds_type_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T) {
+ out_int (0x64ff9fd5);
+ store_ds_constructor_messages_chats (D, T); return;
+}
+void store_ds_type_bare_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T) {
+ store_ds_constructor_messages_chats (D, T); return;
+}
+void store_ds_type_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xc0e24635: store_ds_constructor_messages_dh_config_not_modified (D, T); return;
+ case 0x2c221edd: store_ds_constructor_messages_dh_config (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xc0e24635: store_ds_constructor_messages_dh_config_not_modified (D, T); return;
+ case 0x2c221edd: store_ds_constructor_messages_dh_config (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x15ba6c40: store_ds_constructor_messages_dialogs (D, T); return;
+ case 0x71e094f3: store_ds_constructor_messages_dialogs_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x15ba6c40: store_ds_constructor_messages_dialogs (D, T); return;
+ case 0x71e094f3: store_ds_constructor_messages_dialogs_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_messages_message (struct tl_ds_messages_message *D, struct paramed_type *T) {
+ out_int (0x3f4e0648);
+ store_ds_constructor_messages_message_empty (D, T); return;
+}
+void store_ds_type_bare_messages_message (struct tl_ds_messages_message *D, struct paramed_type *T) {
+ store_ds_constructor_messages_message_empty (D, T); return;
+}
+void store_ds_type_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x8c718e87: store_ds_constructor_messages_messages (D, T); return;
+ case 0x0b446ae3: store_ds_constructor_messages_messages_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x8c718e87: store_ds_constructor_messages_messages (D, T); return;
+ case 0x0b446ae3: store_ds_constructor_messages_messages_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x560f8935: store_ds_constructor_messages_sent_encrypted_message (D, T); return;
+ case 0x9493ff32: store_ds_constructor_messages_sent_encrypted_file (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x560f8935: store_ds_constructor_messages_sent_encrypted_message (D, T); return;
+ case 0x9493ff32: store_ds_constructor_messages_sent_encrypted_file (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x4c3d47f3: store_ds_constructor_messages_sent_message (D, T); return;
+ case 0x35a1a663: store_ds_constructor_messages_sent_message_link (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x4c3d47f3: store_ds_constructor_messages_sent_message (D, T); return;
+ case 0x35a1a663: store_ds_constructor_messages_sent_message_link (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T) {
+ out_int (0xb60a24a6);
+ store_ds_constructor_messages_sticker_set (D, T); return;
+}
+void store_ds_type_bare_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T) {
+ store_ds_constructor_messages_sticker_set (D, T); return;
+}
+void store_ds_type_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xf1749a22: store_ds_constructor_messages_stickers_not_modified (D, T); return;
+ case 0x8a8ecd32: store_ds_constructor_messages_stickers (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xf1749a22: store_ds_constructor_messages_stickers_not_modified (D, T); return;
+ case 0x8a8ecd32: store_ds_constructor_messages_stickers (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T) {
+ out_int (0x20212ca8);
+ store_ds_constructor_photos_photo (D, T); return;
+}
+void store_ds_type_bare_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T) {
+ store_ds_constructor_photos_photo (D, T); return;
+}
+void store_ds_type_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x8dca6aa5: store_ds_constructor_photos_photos (D, T); return;
+ case 0x15051f54: store_ds_constructor_photos_photos_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x8dca6aa5: store_ds_constructor_photos_photos (D, T); return;
+ case 0x15051f54: store_ds_constructor_photos_photos_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_storage_file_type (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0xaa963b05: store_ds_constructor_storage_file_unknown (D, T); return;
+ case 0x007efe0e: store_ds_constructor_storage_file_jpeg (D, T); return;
+ case 0xcae1aadf: store_ds_constructor_storage_file_gif (D, T); return;
+ case 0x0a4f63c0: store_ds_constructor_storage_file_png (D, T); return;
+ case 0xae1e508d: store_ds_constructor_storage_file_pdf (D, T); return;
+ case 0x528a0677: store_ds_constructor_storage_file_mp3 (D, T); return;
+ case 0x4b09ebbc: store_ds_constructor_storage_file_mov (D, T); return;
+ case 0x40bc6f52: store_ds_constructor_storage_file_partial (D, T); return;
+ case 0xb3cea0e4: store_ds_constructor_storage_file_mp4 (D, T); return;
+ case 0x1081464c: store_ds_constructor_storage_file_webp (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_storage_file_type (struct tl_ds_storage_file_type *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0xaa963b05: store_ds_constructor_storage_file_unknown (D, T); return;
+ case 0x007efe0e: store_ds_constructor_storage_file_jpeg (D, T); return;
+ case 0xcae1aadf: store_ds_constructor_storage_file_gif (D, T); return;
+ case 0x0a4f63c0: store_ds_constructor_storage_file_png (D, T); return;
+ case 0xae1e508d: store_ds_constructor_storage_file_pdf (D, T); return;
+ case 0x528a0677: store_ds_constructor_storage_file_mp3 (D, T); return;
+ case 0x4b09ebbc: store_ds_constructor_storage_file_mov (D, T); return;
+ case 0x40bc6f52: store_ds_constructor_storage_file_partial (D, T); return;
+ case 0xb3cea0e4: store_ds_constructor_storage_file_mp4 (D, T); return;
+ case 0x1081464c: store_ds_constructor_storage_file_webp (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T) {
+ out_int (D->magic);
+ switch (D->magic) {
+ case 0x5d75a138: store_ds_constructor_updates_difference_empty (D, T); return;
+ case 0x00f49ca0: store_ds_constructor_updates_difference (D, T); return;
+ case 0xa8fb1981: store_ds_constructor_updates_difference_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_bare_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T) {
+ switch (D->magic) {
+ case 0x5d75a138: store_ds_constructor_updates_difference_empty (D, T); return;
+ case 0x00f49ca0: store_ds_constructor_updates_difference (D, T); return;
+ case 0xa8fb1981: store_ds_constructor_updates_difference_slice (D, T); return;
+ default: assert (0);
+ }
+}
+void store_ds_type_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T) {
+ out_int (0xa56c2a3e);
+ store_ds_constructor_updates_state (D, T); return;
+}
+void store_ds_type_bare_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T) {
+ store_ds_constructor_updates_state (D, T); return;
+}
+void store_ds_type_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T) {
+ out_int (0x096a18d5);
+ store_ds_constructor_upload_file (D, T); return;
+}
+void store_ds_type_bare_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T) {
+ store_ds_constructor_upload_file (D, T); return;
+}
+void store_ds_type_any (void *D, struct paramed_type *T) {
+ switch (T->type->name) {
+ case 0xb8d0afdf: store_ds_type_account_days_t_t_l (D, T); return;
+ case 0x472f5020: store_ds_type_bare_account_days_t_t_l (D, T); return;
+ case 0x9fc5ec4e: store_ds_type_audio (D, T); return;
+ case 0x603a13b1: store_ds_type_bare_audio (D, T); return;
+ case 0x7bf2e6f6: store_ds_type_authorization (D, T); return;
+ case 0x840d1909: store_ds_type_bare_authorization (D, T); return;
+ case 0x250be282: store_ds_type_bool (D, T); return;
+ case 0xdaf41d7d: store_ds_type_bare_bool (D, T); return;
+ case 0x75e7ea6c: store_ds_type_bot_command (D, T); return;
+ case 0x8a181593: store_ds_type_bare_bot_command (D, T); return;
+ case 0xb2e16f93: store_ds_type_bot_info (D, T); return;
+ case 0x4d1e906c: store_ds_type_bare_bot_info (D, T); return;
+ case 0x0ee1379f: store_ds_type_bytes (D, T); return;
+ case 0xf11ec860: store_ds_type_bare_bytes (D, T); return;
+ case 0x7bd865dc: store_ds_type_chat (D, T); return;
+ case 0x84279a23: store_ds_type_bare_chat (D, T); return;
+ case 0x2e02a614: store_ds_type_chat_full (D, T); return;
+ case 0xd1fd59eb: store_ds_type_bare_chat_full (D, T); return;
+ case 0x94f910b1: store_ds_type_chat_invite (D, T); return;
+ case 0x6b06ef4e: store_ds_type_bare_chat_invite (D, T); return;
+ case 0x3631cf4c: store_ds_type_chat_located (D, T); return;
+ case 0xc9ce30b3: store_ds_type_bare_chat_located (D, T); return;
+ case 0xc8d7493e: store_ds_type_chat_participant (D, T); return;
+ case 0x3728b6c1: store_ds_type_bare_chat_participant (D, T); return;
+ case 0x77930f9f: store_ds_type_chat_participants (D, T); return;
+ case 0x886cf060: store_ds_type_bare_chat_participants (D, T); return;
+ case 0x56922676: store_ds_type_chat_photo (D, T); return;
+ case 0xa96dd989: store_ds_type_bare_chat_photo (D, T); return;
+ case 0x6643b654: store_ds_type_client_d_h_inner_data (D, T); return;
+ case 0x99bc49ab: store_ds_type_bare_client_d_h_inner_data (D, T); return;
+ case 0x4e32b894: store_ds_type_config (D, T); return;
+ case 0xb1cd476b: store_ds_type_bare_config (D, T); return;
+ case 0xf911c994: store_ds_type_contact (D, T); return;
+ case 0x06ee366b: store_ds_type_bare_contact (D, T); return;
+ case 0x561bc879: store_ds_type_contact_blocked (D, T); return;
+ case 0xa9e43786: store_ds_type_bare_contact_blocked (D, T); return;
+ case 0xea879f95: store_ds_type_contact_found (D, T); return;
+ case 0x1578606a: store_ds_type_bare_contact_found (D, T); return;
+ case 0x522fbc63: store_ds_type_contact_link (D, T); return;
+ case 0xadd0439c: store_ds_type_bare_contact_link (D, T); return;
+ case 0xd3680c61: store_ds_type_contact_status (D, T); return;
+ case 0x2c97f39e: store_ds_type_bare_contact_status (D, T); return;
+ case 0x3de191a1: store_ds_type_contact_suggested (D, T); return;
+ case 0xc21e6e5e: store_ds_type_bare_contact_suggested (D, T); return;
+ case 0x2b1a62f0: store_ds_type_dc_option (D, T); return;
+ case 0xd4e59d0f: store_ds_type_bare_dc_option (D, T); return;
+ case 0x535b7918: store_ds_type_decrypted_message (D, T); return;
+ case 0xaca486e7: store_ds_type_bare_decrypted_message (D, T); return;
+ case 0x4e0eefde: store_ds_type_decrypted_message_action (D, T); return;
+ case 0xb1f11021: store_ds_type_bare_decrypted_message_action (D, T); return;
+ case 0x1be31789: store_ds_type_decrypted_message_layer (D, T); return;
+ case 0xe41ce876: store_ds_type_bare_decrypted_message_layer (D, T); return;
+ case 0x34e0d674: store_ds_type_decrypted_message_media (D, T); return;
+ case 0xcb1f298b: store_ds_type_bare_decrypted_message_media (D, T); return;
+ case 0xc1dd804a: store_ds_type_dialog (D, T); return;
+ case 0x3e227fb5: store_ds_type_bare_dialog (D, T); return;
+ case 0xae636f24: store_ds_type_disabled_feature (D, T); return;
+ case 0x519c90db: store_ds_type_bare_disabled_feature (D, T); return;
+ case 0x51a73418: store_ds_type_document (D, T); return;
+ case 0xae58cbe7: store_ds_type_bare_document (D, T); return;
+ case 0x97c637a3: store_ds_type_document_attribute (D, T); return;
+ case 0x6839c85c: store_ds_type_bare_document_attribute (D, T); return;
+ case 0x2210c154: store_ds_type_double (D, T); return;
+ case 0xddef3eab: store_ds_type_bare_double (D, T); return;
+ case 0xb1718213: store_ds_type_encrypted_chat (D, T); return;
+ case 0x4e8e7dec: store_ds_type_bare_encrypted_chat (D, T); return;
+ case 0x886fd032: store_ds_type_encrypted_file (D, T); return;
+ case 0x77902fcd: store_ds_type_bare_encrypted_file (D, T); return;
+ case 0xce6b8a1e: store_ds_type_encrypted_message (D, T); return;
+ case 0x319475e1: store_ds_type_bare_encrypted_message (D, T); return;
+ case 0xc4b9f9bb: store_ds_type_error (D, T); return;
+ case 0x3b460644: store_ds_type_bare_error (D, T); return;
+ case 0x95f132d5: store_ds_type_exported_chat_invite (D, T); return;
+ case 0x6a0ecd2a: store_ds_type_bare_exported_chat_invite (D, T); return;
+ case 0x2f8ffb30: store_ds_type_file_location (D, T); return;
+ case 0xd07004cf: store_ds_type_bare_file_location (D, T); return;
+ case 0xf67b4034: store_ds_type_geo_chat_message (D, T); return;
+ case 0x0984bfcb: store_ds_type_bare_geo_chat_message (D, T); return;
+ case 0x315e0a53: store_ds_type_geo_point (D, T); return;
+ case 0xcea1f5ac: store_ds_type_bare_geo_point (D, T); return;
+ case 0xd0028438: store_ds_type_imported_contact (D, T); return;
+ case 0x2ffd7bc7: store_ds_type_bare_imported_contact (D, T); return;
+ case 0x770656a8: store_ds_type_input_app_event (D, T); return;
+ case 0x88f9a957: store_ds_type_bare_input_app_event (D, T); return;
+ case 0xae8e9c7b: store_ds_type_input_audio (D, T); return;
+ case 0x51716384: store_ds_type_bare_input_audio (D, T); return;
+ case 0x3a60776d: store_ds_type_input_chat_photo (D, T); return;
+ case 0xc59f8892: store_ds_type_bare_input_chat_photo (D, T); return;
+ case 0xf392b7f4: store_ds_type_input_contact (D, T); return;
+ case 0x0c6d480b: store_ds_type_bare_input_contact (D, T); return;
+ case 0x6a8963fc: store_ds_type_input_document (D, T); return;
+ case 0x95769c03: store_ds_type_bare_input_document (D, T); return;
+ case 0xf141b5e1: store_ds_type_input_encrypted_chat (D, T); return;
+ case 0x0ebe4a1e: store_ds_type_bare_input_encrypted_chat (D, T); return;
+ case 0x0b5c064f: store_ds_type_input_encrypted_file (D, T); return;
+ case 0xf4a3f9b0: store_ds_type_bare_input_encrypted_file (D, T); return;
+ case 0x0f60f9ca: store_ds_type_input_file (D, T); return;
+ case 0xf09f0635: store_ds_type_bare_input_file (D, T); return;
+ case 0xe6daa38b: store_ds_type_input_file_location (D, T); return;
+ case 0x19255c74: store_ds_type_bare_input_file_location (D, T); return;
+ case 0x74d456fa: store_ds_type_input_geo_chat (D, T); return;
+ case 0x8b2ba905: store_ds_type_bare_input_geo_chat (D, T); return;
+ case 0x17768f1f: store_ds_type_input_geo_point (D, T); return;
+ case 0xe88970e0: store_ds_type_bare_input_geo_point (D, T); return;
+ case 0xb32c91dd: store_ds_type_input_media (D, T); return;
+ case 0x4cd36e22: store_ds_type_bare_input_media (D, T); return;
+ case 0x02b6911b: store_ds_type_input_notify_peer (D, T); return;
+ case 0xfd496ee4: store_ds_type_bare_input_notify_peer (D, T); return;
+ case 0x9e67268d: store_ds_type_input_peer (D, T); return;
+ case 0x6198d972: store_ds_type_bare_input_peer (D, T); return;
+ case 0x185a48ac: store_ds_type_input_peer_notify_events (D, T); return;
+ case 0xe7a5b753: store_ds_type_bare_input_peer_notify_events (D, T); return;
+ case 0x46a2ce98: store_ds_type_input_peer_notify_settings (D, T); return;
+ case 0xb95d3167: store_ds_type_bare_input_peer_notify_settings (D, T); return;
+ case 0xe74279c9: store_ds_type_input_photo (D, T); return;
+ case 0x18bd8636: store_ds_type_bare_input_photo (D, T); return;
+ case 0x7477e321: store_ds_type_input_photo_crop (D, T); return;
+ case 0x8b881cde: store_ds_type_bare_input_photo_crop (D, T); return;
+ case 0x4f96cb18: store_ds_type_input_privacy_key (D, T); return;
+ case 0xb06934e7: store_ds_type_bare_input_privacy_key (D, T); return;
+ case 0x4b815163: store_ds_type_input_privacy_rule (D, T); return;
+ case 0xb47eae9c: store_ds_type_bare_input_privacy_rule (D, T); return;
+ case 0xe44d415c: store_ds_type_input_sticker_set (D, T); return;
+ case 0x1bb2bea3: store_ds_type_bare_input_sticker_set (D, T); return;
+ case 0xadfe0c6a: store_ds_type_input_user (D, T); return;
+ case 0x5201f395: store_ds_type_bare_input_user (D, T); return;
+ case 0xbb5f7a27: store_ds_type_input_video (D, T); return;
+ case 0x44a085d8: store_ds_type_bare_input_video (D, T); return;
+ case 0xa8509bda: store_ds_type_int (D, T); return;
+ case 0x57af6425: store_ds_type_bare_int (D, T); return;
+ case 0x7d36c439: store_ds_type_int128 (D, T); return;
+ case 0x82c93bc6: store_ds_type_bare_int128 (D, T); return;
+ case 0xf2c798b3: store_ds_type_int256 (D, T); return;
+ case 0x0d38674c: store_ds_type_bare_int256 (D, T); return;
+ case 0xa2fa4880: store_ds_type_keyboard_button (D, T); return;
+ case 0x5d05b77f: store_ds_type_bare_keyboard_button (D, T); return;
+ case 0x77608b83: store_ds_type_keyboard_button_row (D, T); return;
+ case 0x889f747c: store_ds_type_bare_keyboard_button_row (D, T); return;
+ case 0x22076cba: store_ds_type_long (D, T); return;
+ case 0xddf89345: store_ds_type_bare_long (D, T); return;
+ case 0x5d652a7f: store_ds_type_message (D, T); return;
+ case 0xa29ad580: store_ds_type_bare_message (D, T); return;
+ case 0x383415fa: store_ds_type_message_action (D, T); return;
+ case 0xc7cbea05: store_ds_type_bare_message_action (D, T); return;
+ case 0x95f2471a: store_ds_type_message_media (D, T); return;
+ case 0x6a0db8e5: store_ds_type_bare_message_media (D, T); return;
+ case 0x80895ae0: store_ds_type_messages_filter (D, T); return;
+ case 0x7f76a51f: store_ds_type_bare_messages_filter (D, T); return;
+ case 0x8e1a1775: store_ds_type_nearest_dc (D, T); return;
+ case 0x71e5e88a: store_ds_type_bare_nearest_dc (D, T); return;
+ case 0x9fcb8237: store_ds_type_notify_peer (D, T); return;
+ case 0x60347dc8: store_ds_type_bare_notify_peer (D, T); return;
+ case 0x56730bcc: store_ds_type_null (D, T); return;
+ case 0xa98cf433: store_ds_type_bare_null (D, T); return;
+ case 0xbfa3de38: store_ds_type_p_q_inner_data (D, T); return;
+ case 0x405c21c7: store_ds_type_bare_p_q_inner_data (D, T); return;
+ case 0x276159d6: store_ds_type_peer (D, T); return;
+ case 0xd89ea629: store_ds_type_bare_peer (D, T); return;
+ case 0xc0c8d13b: store_ds_type_peer_notify_events (D, T); return;
+ case 0x3f372ec4: store_ds_type_bare_peer_notify_events (D, T); return;
+ case 0xfdf894fc: store_ds_type_peer_notify_settings (D, T); return;
+ case 0x02076b03: store_ds_type_bare_peer_notify_settings (D, T); return;
+ case 0xc207550a: store_ds_type_photo (D, T); return;
+ case 0x3df8aaf5: store_ds_type_bare_photo (D, T); return;
+ case 0x900f60dd: store_ds_type_photo_size (D, T); return;
+ case 0x6ff09f22: store_ds_type_bare_photo_size (D, T); return;
+ case 0xbc2eab30: store_ds_type_privacy_key (D, T); return;
+ case 0x43d154cf: store_ds_type_bare_privacy_key (D, T); return;
+ case 0xa8638aec: store_ds_type_privacy_rule (D, T); return;
+ case 0x579c7513: store_ds_type_bare_privacy_rule (D, T); return;
+ case 0xa384b779: store_ds_type_received_notify_message (D, T); return;
+ case 0x5c7b4886: store_ds_type_bare_received_notify_message (D, T); return;
+ case 0x612ca4a9: store_ds_type_reply_markup (D, T); return;
+ case 0x9ed35b56: store_ds_type_bare_reply_markup (D, T); return;
+ case 0x05162463: store_ds_type_res_p_q (D, T); return;
+ case 0xfae9db9c: store_ds_type_bare_res_p_q (D, T); return;
+ case 0x70541c7e: store_ds_type_send_message_action (D, T); return;
+ case 0x8fabe381: store_ds_type_bare_send_message_action (D, T); return;
+ case 0xa9230301: store_ds_type_server_d_h_params (D, T); return;
+ case 0x56dcfcfe: store_ds_type_bare_server_d_h_params (D, T); return;
+ case 0xb5890dba: store_ds_type_server_d_h_inner_data (D, T); return;
+ case 0x4a76f245: store_ds_type_bare_server_d_h_inner_data (D, T); return;
+ case 0xdb8a468f: store_ds_type_set_client_d_h_params_answer (D, T); return;
+ case 0x2475b970: store_ds_type_bare_set_client_d_h_params_answer (D, T); return;
+ case 0x12b299d4: store_ds_type_sticker_pack (D, T); return;
+ case 0xed4d662b: store_ds_type_bare_sticker_pack (D, T); return;
+ case 0xa7a43b17: store_ds_type_sticker_set (D, T); return;
+ case 0x585bc4e8: store_ds_type_bare_sticker_set (D, T); return;
+ case 0xb5286e24: store_ds_type_string (D, T); return;
+ case 0x4ad791db: store_ds_type_bare_string (D, T); return;
+ case 0x2e02b27e: store_ds_type_update (D, T); return;
+ case 0xd1fd4d81: store_ds_type_bare_update (D, T); return;
+ case 0x22499d27: store_ds_type_updates (D, T); return;
+ case 0xddb662d8: store_ds_type_bare_updates (D, T); return;
+ case 0x02e6c0c8: store_ds_type_user (D, T); return;
+ case 0xfd193f37: store_ds_type_bare_user (D, T); return;
+ case 0x5a89ac5b: store_ds_type_user_full (D, T); return;
+ case 0xa57653a4: store_ds_type_bare_user_full (D, T); return;
+ case 0x9a486229: store_ds_type_user_profile_photo (D, T); return;
+ case 0x65b79dd6: store_ds_type_bare_user_profile_photo (D, T); return;
+ case 0x76de9570: store_ds_type_user_status (D, T); return;
+ case 0x89216a8f: store_ds_type_bare_user_status (D, T); return;
+ case 0x1cb5c415: store_ds_type_vector (D, T); return;
+ case 0xe34a3bea: store_ds_type_bare_vector (D, T); return;
+ case 0x1716b174: store_ds_type_video (D, T); return;
+ case 0xe8e94e8b: store_ds_type_bare_video (D, T); return;
+ case 0xafa14973: store_ds_type_wall_paper (D, T); return;
+ case 0x505eb68c: store_ds_type_bare_wall_paper (D, T); return;
+ case 0x8d8c0d41: store_ds_type_web_page (D, T); return;
+ case 0x7273f2be: store_ds_type_bare_web_page (D, T); return;
+ case 0x1250abde: store_ds_type_account_authorizations (D, T); return;
+ case 0xedaf5421: store_ds_type_bare_account_authorizations (D, T); return;
+ case 0xeac2a804: store_ds_type_account_password (D, T); return;
+ case 0x153d57fb: store_ds_type_bare_account_password (D, T); return;
+ case 0xbcfc532c: store_ds_type_account_password_input_settings (D, T); return;
+ case 0x4303acd3: store_ds_type_bare_account_password_input_settings (D, T); return;
+ case 0xb7b72ab3: store_ds_type_account_password_settings (D, T); return;
+ case 0x4848d54c: store_ds_type_bare_account_password_settings (D, T); return;
+ case 0x554abb6f: store_ds_type_account_privacy_rules (D, T); return;
+ case 0xaab54490: store_ds_type_bare_account_privacy_rules (D, T); return;
+ case 0xa4f58c4c: store_ds_type_account_sent_change_phone_code (D, T); return;
+ case 0x5b0a73b3: store_ds_type_bare_account_sent_change_phone_code (D, T); return;
+ case 0xff036af1: store_ds_type_auth_authorization (D, T); return;
+ case 0x00fc950e: store_ds_type_bare_auth_authorization (D, T); return;
+ case 0x811ea28e: store_ds_type_auth_checked_phone (D, T); return;
+ case 0x7ee15d71: store_ds_type_bare_auth_checked_phone (D, T); return;
+ case 0xdf969c2d: store_ds_type_auth_exported_authorization (D, T); return;
+ case 0x206963d2: store_ds_type_bare_auth_exported_authorization (D, T); return;
+ case 0x137948a5: store_ds_type_auth_password_recovery (D, T); return;
+ case 0xec86b75a: store_ds_type_bare_auth_password_recovery (D, T); return;
+ case 0x0cc8bc16: store_ds_type_auth_sent_code (D, T); return;
+ case 0xf33743e9: store_ds_type_bare_auth_sent_code (D, T); return;
+ case 0x0377168f: store_ds_type_binlog_encr_key (D, T); return;
+ case 0xfc88e970: store_ds_type_bare_binlog_encr_key (D, T); return;
+ case 0x66ff03a6: store_ds_type_binlog_update (D, T); return;
+ case 0x9900fc59: store_ds_type_bare_binlog_update (D, T); return;
+ case 0x8c1b8fb4: store_ds_type_contacts_blocked (D, T); return;
+ case 0x73e4704b: store_ds_type_bare_contacts_blocked (D, T); return;
+ case 0xd8c02560: store_ds_type_contacts_contacts (D, T); return;
+ case 0x273fda9f: store_ds_type_bare_contacts_contacts (D, T); return;
+ case 0x0566000e: store_ds_type_contacts_found (D, T); return;
+ case 0xfa99fff1: store_ds_type_bare_contacts_found (D, T); return;
+ case 0xad524315: store_ds_type_contacts_imported_contacts (D, T); return;
+ case 0x52adbcea: store_ds_type_bare_contacts_imported_contacts (D, T); return;
+ case 0x3ace484c: store_ds_type_contacts_link (D, T); return;
+ case 0xc531b7b3: store_ds_type_bare_contacts_link (D, T); return;
+ case 0x5649dcc5: store_ds_type_contacts_suggested (D, T); return;
+ case 0xa9b6233a: store_ds_type_bare_contacts_suggested (D, T); return;
+ case 0x48feb267: store_ds_type_geochats_located (D, T); return;
+ case 0xb7014d98: store_ds_type_bare_geochats_located (D, T); return;
+ case 0x6d0a0e59: store_ds_type_geochats_messages (D, T); return;
+ case 0x92f5f1a6: store_ds_type_bare_geochats_messages (D, T); return;
+ case 0x17b1578b: store_ds_type_geochats_stated_message (D, T); return;
+ case 0xe84ea874: store_ds_type_bare_geochats_stated_message (D, T); return;
+ case 0x4ddd9627: store_ds_type_help_app_update (D, T); return;
+ case 0xb22269d8: store_ds_type_bare_help_app_update (D, T); return;
+ case 0x18cb9f78: store_ds_type_help_invite_text (D, T); return;
+ case 0xe7346087: store_ds_type_bare_help_invite_text (D, T); return;
+ case 0x17c6b5f6: store_ds_type_help_support (D, T); return;
+ case 0xe8394a09: store_ds_type_bare_help_support (D, T); return;
+ case 0xb45c69d1: store_ds_type_messages_affected_history (D, T); return;
+ case 0x4ba3962e: store_ds_type_bare_messages_affected_history (D, T); return;
+ case 0x84d19185: store_ds_type_messages_affected_messages (D, T); return;
+ case 0x7b2e6e7a: store_ds_type_bare_messages_affected_messages (D, T); return;
+ case 0xb485502f: store_ds_type_messages_all_stickers (D, T); return;
+ case 0x4b7aafd0: store_ds_type_bare_messages_all_stickers (D, T); return;
+ case 0xe5d7d19c: store_ds_type_messages_chat_full (D, T); return;
+ case 0x1a282e63: store_ds_type_bare_messages_chat_full (D, T); return;
+ case 0x64ff9fd5: store_ds_type_messages_chats (D, T); return;
+ case 0x9b00602a: store_ds_type_bare_messages_chats (D, T); return;
+ case 0xecc058e8: store_ds_type_messages_dh_config (D, T); return;
+ case 0x133fa717: store_ds_type_bare_messages_dh_config (D, T); return;
+ case 0x645af8b3: store_ds_type_messages_dialogs (D, T); return;
+ case 0x9ba5074c: store_ds_type_bare_messages_dialogs (D, T); return;
+ case 0x3f4e0648: store_ds_type_messages_message (D, T); return;
+ case 0xc0b1f9b7: store_ds_type_bare_messages_message (D, T); return;
+ case 0x8735e464: store_ds_type_messages_messages (D, T); return;
+ case 0x78ca1b9b: store_ds_type_bare_messages_messages (D, T); return;
+ case 0xc29c7607: store_ds_type_messages_sent_encrypted_message (D, T); return;
+ case 0x3d6389f8: store_ds_type_bare_messages_sent_encrypted_message (D, T); return;
+ case 0x799ce190: store_ds_type_messages_sent_message (D, T); return;
+ case 0x86631e6f: store_ds_type_bare_messages_sent_message (D, T); return;
+ case 0xb60a24a6: store_ds_type_messages_sticker_set (D, T); return;
+ case 0x49f5db59: store_ds_type_bare_messages_sticker_set (D, T); return;
+ case 0x7bfa5710: store_ds_type_messages_stickers (D, T); return;
+ case 0x8405a8ef: store_ds_type_bare_messages_stickers (D, T); return;
+ case 0x20212ca8: store_ds_type_photos_photo (D, T); return;
+ case 0xdfded357: store_ds_type_bare_photos_photo (D, T); return;
+ case 0x98cf75f1: store_ds_type_photos_photos (D, T); return;
+ case 0x67308a0e: store_ds_type_bare_photos_photos (D, T); return;
+ case 0x3e2838a8: store_ds_type_storage_file_type (D, T); return;
+ case 0xc1d7c757: store_ds_type_bare_storage_file_type (D, T); return;
+ case 0xf57a2419: store_ds_type_updates_difference (D, T); return;
+ case 0x0a85dbe6: store_ds_type_bare_updates_difference (D, T); return;
+ case 0xa56c2a3e: store_ds_type_updates_state (D, T); return;
+ case 0x5a93d5c1: store_ds_type_bare_updates_state (D, T); return;
+ case 0x096a18d5: store_ds_type_upload_file (D, T); return;
+ case 0xf695e72a: store_ds_type_bare_upload_file (D, T); return;
+ default: return; }
+}
diff --git a/libs/tgl/src/auto/auto-store-ds.h b/libs/tgl/src/auto/auto-store-ds.h
new file mode 100644
index 0000000000..4abc26b3ce
--- /dev/null
+++ b/libs/tgl/src/auto/auto-store-ds.h
@@ -0,0 +1,718 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#include "auto-types.h"
+#else
+#include "auto.h"
+#include "auto/auto-types.h"
+#endif
+#include <assert.h>
+#include <stdio.h>
+struct tgl_state;
+void store_ds_constructor_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T);
+void store_ds_constructor_audio_empty (struct tl_ds_audio *D, struct paramed_type *T);
+void store_ds_constructor_audio (struct tl_ds_audio *D, struct paramed_type *T);
+void store_ds_constructor_authorization (struct tl_ds_authorization *D, struct paramed_type *T);
+void store_ds_constructor_bool_false (struct tl_ds_bool *D, struct paramed_type *T);
+void store_ds_constructor_bool_true (struct tl_ds_bool *D, struct paramed_type *T);
+void store_ds_constructor_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T);
+void store_ds_constructor_bot_command_old (struct tl_ds_bot_command *D, struct paramed_type *T);
+void store_ds_constructor_bot_info_empty (struct tl_ds_bot_info *D, struct paramed_type *T);
+void store_ds_constructor_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T);
+void store_ds_constructor_bytes (struct tl_ds_string *D, struct paramed_type *T);
+void store_ds_constructor_chat_empty (struct tl_ds_chat *D, struct paramed_type *T);
+void store_ds_constructor_chat (struct tl_ds_chat *D, struct paramed_type *T);
+void store_ds_constructor_chat_forbidden (struct tl_ds_chat *D, struct paramed_type *T);
+void store_ds_constructor_geo_chat (struct tl_ds_chat *D, struct paramed_type *T);
+void store_ds_constructor_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T);
+void store_ds_constructor_chat_invite_already (struct tl_ds_chat_invite *D, struct paramed_type *T);
+void store_ds_constructor_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T);
+void store_ds_constructor_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T);
+void store_ds_constructor_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T);
+void store_ds_constructor_chat_participants_forbidden (struct tl_ds_chat_participants *D, struct paramed_type *T);
+void store_ds_constructor_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T);
+void store_ds_constructor_chat_photo_empty (struct tl_ds_chat_photo *D, struct paramed_type *T);
+void store_ds_constructor_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T);
+void store_ds_constructor_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T);
+void store_ds_constructor_config (struct tl_ds_config *D, struct paramed_type *T);
+void store_ds_constructor_contact (struct tl_ds_contact *D, struct paramed_type *T);
+void store_ds_constructor_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T);
+void store_ds_constructor_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T);
+void store_ds_constructor_contact_link_unknown (struct tl_ds_contact_link *D, struct paramed_type *T);
+void store_ds_constructor_contact_link_none (struct tl_ds_contact_link *D, struct paramed_type *T);
+void store_ds_constructor_contact_link_has_phone (struct tl_ds_contact_link *D, struct paramed_type *T);
+void store_ds_constructor_contact_link_contact (struct tl_ds_contact_link *D, struct paramed_type *T);
+void store_ds_constructor_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T);
+void store_ds_constructor_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T);
+void store_ds_constructor_dc_option_l28 (struct tl_ds_dc_option *D, struct paramed_type *T);
+void store_ds_constructor_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_service (struct tl_ds_decrypted_message *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_action_set_message_t_t_l (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_action_read_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_action_delete_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_action_screenshot_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_action_flush_history (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_action_resend (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_action_notify_layer (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_action_typing (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_action_request_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_action_accept_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_action_abort_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_action_commit_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_action_noop (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_media_empty (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_media_photo (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_media_geo_point (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_media_contact (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_media_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_media_video (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_media_audio (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_media_external_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_media_video_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void store_ds_constructor_decrypted_message_media_audio_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void store_ds_constructor_dialog (struct tl_ds_dialog *D, struct paramed_type *T);
+void store_ds_constructor_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T);
+void store_ds_constructor_document_empty (struct tl_ds_document *D, struct paramed_type *T);
+void store_ds_constructor_document (struct tl_ds_document *D, struct paramed_type *T);
+void store_ds_constructor_document_l19 (struct tl_ds_document *D, struct paramed_type *T);
+void store_ds_constructor_document_attribute_image_size (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void store_ds_constructor_document_attribute_animated (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void store_ds_constructor_document_attribute_sticker_l28 (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void store_ds_constructor_document_attribute_sticker (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void store_ds_constructor_document_attribute_video (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void store_ds_constructor_document_attribute_audio (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void store_ds_constructor_document_attribute_filename (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void store_ds_constructor_double (double *D, struct paramed_type *T);
+void store_ds_constructor_encrypted_chat_empty (struct tl_ds_encrypted_chat *D, struct paramed_type *T);
+void store_ds_constructor_encrypted_chat_waiting (struct tl_ds_encrypted_chat *D, struct paramed_type *T);
+void store_ds_constructor_encrypted_chat_requested (struct tl_ds_encrypted_chat *D, struct paramed_type *T);
+void store_ds_constructor_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T);
+void store_ds_constructor_encrypted_chat_discarded (struct tl_ds_encrypted_chat *D, struct paramed_type *T);
+void store_ds_constructor_encrypted_file_empty (struct tl_ds_encrypted_file *D, struct paramed_type *T);
+void store_ds_constructor_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T);
+void store_ds_constructor_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T);
+void store_ds_constructor_encrypted_message_service (struct tl_ds_encrypted_message *D, struct paramed_type *T);
+void store_ds_constructor_error (struct tl_ds_error *D, struct paramed_type *T);
+void store_ds_constructor_chat_invite_empty (struct tl_ds_exported_chat_invite *D, struct paramed_type *T);
+void store_ds_constructor_chat_invite_exported (struct tl_ds_exported_chat_invite *D, struct paramed_type *T);
+void store_ds_constructor_file_location_unavailable (struct tl_ds_file_location *D, struct paramed_type *T);
+void store_ds_constructor_file_location (struct tl_ds_file_location *D, struct paramed_type *T);
+void store_ds_constructor_geo_chat_message_empty (struct tl_ds_geo_chat_message *D, struct paramed_type *T);
+void store_ds_constructor_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T);
+void store_ds_constructor_geo_chat_message_service (struct tl_ds_geo_chat_message *D, struct paramed_type *T);
+void store_ds_constructor_geo_point_empty (struct tl_ds_geo_point *D, struct paramed_type *T);
+void store_ds_constructor_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T);
+void store_ds_constructor_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T);
+void store_ds_constructor_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T);
+void store_ds_constructor_input_audio_empty (struct tl_ds_input_audio *D, struct paramed_type *T);
+void store_ds_constructor_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T);
+void store_ds_constructor_input_chat_photo_empty (struct tl_ds_input_chat_photo *D, struct paramed_type *T);
+void store_ds_constructor_input_chat_uploaded_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T);
+void store_ds_constructor_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T);
+void store_ds_constructor_input_phone_contact (struct tl_ds_input_contact *D, struct paramed_type *T);
+void store_ds_constructor_input_document_empty (struct tl_ds_input_document *D, struct paramed_type *T);
+void store_ds_constructor_input_document (struct tl_ds_input_document *D, struct paramed_type *T);
+void store_ds_constructor_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T);
+void store_ds_constructor_input_encrypted_file_empty (struct tl_ds_input_encrypted_file *D, struct paramed_type *T);
+void store_ds_constructor_input_encrypted_file_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T);
+void store_ds_constructor_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T);
+void store_ds_constructor_input_encrypted_file_big_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T);
+void store_ds_constructor_input_file (struct tl_ds_input_file *D, struct paramed_type *T);
+void store_ds_constructor_input_file_big (struct tl_ds_input_file *D, struct paramed_type *T);
+void store_ds_constructor_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T);
+void store_ds_constructor_input_video_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T);
+void store_ds_constructor_input_encrypted_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T);
+void store_ds_constructor_input_audio_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T);
+void store_ds_constructor_input_document_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T);
+void store_ds_constructor_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T);
+void store_ds_constructor_input_geo_point_empty (struct tl_ds_input_geo_point *D, struct paramed_type *T);
+void store_ds_constructor_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T);
+void store_ds_constructor_input_media_empty (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_constructor_input_media_uploaded_photo (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_constructor_input_media_photo (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_constructor_input_media_geo_point (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_constructor_input_media_contact (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_constructor_input_media_uploaded_video (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_constructor_input_media_uploaded_thumb_video (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_constructor_input_media_video (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_constructor_input_media_uploaded_audio (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_constructor_input_media_audio (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_constructor_input_media_uploaded_document (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_constructor_input_media_uploaded_thumb_document (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_constructor_input_media_document (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_constructor_input_media_venue (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_constructor_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T);
+void store_ds_constructor_input_notify_users (struct tl_ds_input_notify_peer *D, struct paramed_type *T);
+void store_ds_constructor_input_notify_chats (struct tl_ds_input_notify_peer *D, struct paramed_type *T);
+void store_ds_constructor_input_notify_all (struct tl_ds_input_notify_peer *D, struct paramed_type *T);
+void store_ds_constructor_input_notify_geo_chat_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T);
+void store_ds_constructor_input_peer_empty (struct tl_ds_input_peer *D, struct paramed_type *T);
+void store_ds_constructor_input_peer_self (struct tl_ds_input_peer *D, struct paramed_type *T);
+void store_ds_constructor_input_peer_contact (struct tl_ds_input_peer *D, struct paramed_type *T);
+void store_ds_constructor_input_peer_foreign (struct tl_ds_input_peer *D, struct paramed_type *T);
+void store_ds_constructor_input_peer_chat (struct tl_ds_input_peer *D, struct paramed_type *T);
+void store_ds_constructor_input_peer_notify_events_empty (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T);
+void store_ds_constructor_input_peer_notify_events_all (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T);
+void store_ds_constructor_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T);
+void store_ds_constructor_input_photo_empty (struct tl_ds_input_photo *D, struct paramed_type *T);
+void store_ds_constructor_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T);
+void store_ds_constructor_input_photo_crop_auto (struct tl_ds_input_photo_crop *D, struct paramed_type *T);
+void store_ds_constructor_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T);
+void store_ds_constructor_input_privacy_key_status_timestamp (struct tl_ds_input_privacy_key *D, struct paramed_type *T);
+void store_ds_constructor_input_privacy_value_allow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T);
+void store_ds_constructor_input_privacy_value_allow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T);
+void store_ds_constructor_input_privacy_value_allow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T);
+void store_ds_constructor_input_privacy_value_disallow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T);
+void store_ds_constructor_input_privacy_value_disallow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T);
+void store_ds_constructor_input_privacy_value_disallow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T);
+void store_ds_constructor_input_sticker_set_empty (struct tl_ds_input_sticker_set *D, struct paramed_type *T);
+void store_ds_constructor_input_sticker_set_i_d (struct tl_ds_input_sticker_set *D, struct paramed_type *T);
+void store_ds_constructor_input_sticker_set_short_name (struct tl_ds_input_sticker_set *D, struct paramed_type *T);
+void store_ds_constructor_input_user_empty (struct tl_ds_input_user *D, struct paramed_type *T);
+void store_ds_constructor_input_user_self (struct tl_ds_input_user *D, struct paramed_type *T);
+void store_ds_constructor_input_user_contact (struct tl_ds_input_user *D, struct paramed_type *T);
+void store_ds_constructor_input_user_foreign (struct tl_ds_input_user *D, struct paramed_type *T);
+void store_ds_constructor_input_video_empty (struct tl_ds_input_video *D, struct paramed_type *T);
+void store_ds_constructor_input_video (struct tl_ds_input_video *D, struct paramed_type *T);
+void store_ds_constructor_int (int *D, struct paramed_type *T);
+void store_ds_constructor_int128 (struct tl_ds_int128 *D, struct paramed_type *T);
+void store_ds_constructor_int256 (struct tl_ds_int256 *D, struct paramed_type *T);
+void store_ds_constructor_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T);
+void store_ds_constructor_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T);
+void store_ds_constructor_long (long long *D, struct paramed_type *T);
+void store_ds_constructor_message_empty (struct tl_ds_message *D, struct paramed_type *T);
+void store_ds_constructor_message (struct tl_ds_message *D, struct paramed_type *T);
+void store_ds_constructor_message_service (struct tl_ds_message *D, struct paramed_type *T);
+void store_ds_constructor_message_action_empty (struct tl_ds_message_action *D, struct paramed_type *T);
+void store_ds_constructor_message_action_chat_create (struct tl_ds_message_action *D, struct paramed_type *T);
+void store_ds_constructor_message_action_chat_edit_title (struct tl_ds_message_action *D, struct paramed_type *T);
+void store_ds_constructor_message_action_chat_edit_photo (struct tl_ds_message_action *D, struct paramed_type *T);
+void store_ds_constructor_message_action_chat_delete_photo (struct tl_ds_message_action *D, struct paramed_type *T);
+void store_ds_constructor_message_action_chat_add_user (struct tl_ds_message_action *D, struct paramed_type *T);
+void store_ds_constructor_message_action_chat_delete_user (struct tl_ds_message_action *D, struct paramed_type *T);
+void store_ds_constructor_message_action_geo_chat_create (struct tl_ds_message_action *D, struct paramed_type *T);
+void store_ds_constructor_message_action_geo_chat_checkin (struct tl_ds_message_action *D, struct paramed_type *T);
+void store_ds_constructor_message_action_chat_joined_by_link (struct tl_ds_message_action *D, struct paramed_type *T);
+void store_ds_constructor_message_media_empty (struct tl_ds_message_media *D, struct paramed_type *T);
+void store_ds_constructor_message_media_photo (struct tl_ds_message_media *D, struct paramed_type *T);
+void store_ds_constructor_message_media_video (struct tl_ds_message_media *D, struct paramed_type *T);
+void store_ds_constructor_message_media_geo (struct tl_ds_message_media *D, struct paramed_type *T);
+void store_ds_constructor_message_media_contact (struct tl_ds_message_media *D, struct paramed_type *T);
+void store_ds_constructor_message_media_unsupported (struct tl_ds_message_media *D, struct paramed_type *T);
+void store_ds_constructor_message_media_document (struct tl_ds_message_media *D, struct paramed_type *T);
+void store_ds_constructor_message_media_audio (struct tl_ds_message_media *D, struct paramed_type *T);
+void store_ds_constructor_message_media_web_page (struct tl_ds_message_media *D, struct paramed_type *T);
+void store_ds_constructor_message_media_venue (struct tl_ds_message_media *D, struct paramed_type *T);
+void store_ds_constructor_message_media_photo_l27 (struct tl_ds_message_media *D, struct paramed_type *T);
+void store_ds_constructor_message_media_video_l27 (struct tl_ds_message_media *D, struct paramed_type *T);
+void store_ds_constructor_input_messages_filter_empty (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void store_ds_constructor_input_messages_filter_photos (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void store_ds_constructor_input_messages_filter_video (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void store_ds_constructor_input_messages_filter_photo_video (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void store_ds_constructor_input_messages_filter_photo_video_documents (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void store_ds_constructor_input_messages_filter_document (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void store_ds_constructor_input_messages_filter_audio (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void store_ds_constructor_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T);
+void store_ds_constructor_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T);
+void store_ds_constructor_notify_users (struct tl_ds_notify_peer *D, struct paramed_type *T);
+void store_ds_constructor_notify_chats (struct tl_ds_notify_peer *D, struct paramed_type *T);
+void store_ds_constructor_notify_all (struct tl_ds_notify_peer *D, struct paramed_type *T);
+void store_ds_constructor_null (struct tl_ds_null *D, struct paramed_type *T);
+void store_ds_constructor_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T);
+void store_ds_constructor_p_q_inner_data_temp (struct tl_ds_p_q_inner_data *D, struct paramed_type *T);
+void store_ds_constructor_peer_user (struct tl_ds_peer *D, struct paramed_type *T);
+void store_ds_constructor_peer_chat (struct tl_ds_peer *D, struct paramed_type *T);
+void store_ds_constructor_peer_notify_events_empty (struct tl_ds_peer_notify_events *D, struct paramed_type *T);
+void store_ds_constructor_peer_notify_events_all (struct tl_ds_peer_notify_events *D, struct paramed_type *T);
+void store_ds_constructor_peer_notify_settings_empty (struct tl_ds_peer_notify_settings *D, struct paramed_type *T);
+void store_ds_constructor_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T);
+void store_ds_constructor_photo_empty (struct tl_ds_photo *D, struct paramed_type *T);
+void store_ds_constructor_photo (struct tl_ds_photo *D, struct paramed_type *T);
+void store_ds_constructor_photo_l27 (struct tl_ds_photo *D, struct paramed_type *T);
+void store_ds_constructor_photo_size_empty (struct tl_ds_photo_size *D, struct paramed_type *T);
+void store_ds_constructor_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T);
+void store_ds_constructor_photo_cached_size (struct tl_ds_photo_size *D, struct paramed_type *T);
+void store_ds_constructor_privacy_key_status_timestamp (struct tl_ds_privacy_key *D, struct paramed_type *T);
+void store_ds_constructor_privacy_value_allow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T);
+void store_ds_constructor_privacy_value_allow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T);
+void store_ds_constructor_privacy_value_allow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T);
+void store_ds_constructor_privacy_value_disallow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T);
+void store_ds_constructor_privacy_value_disallow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T);
+void store_ds_constructor_privacy_value_disallow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T);
+void store_ds_constructor_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T);
+void store_ds_constructor_reply_keyboard_hide (struct tl_ds_reply_markup *D, struct paramed_type *T);
+void store_ds_constructor_reply_keyboard_force_reply (struct tl_ds_reply_markup *D, struct paramed_type *T);
+void store_ds_constructor_reply_keyboard_markup (struct tl_ds_reply_markup *D, struct paramed_type *T);
+void store_ds_constructor_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T);
+void store_ds_constructor_send_message_typing_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void store_ds_constructor_send_message_cancel_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void store_ds_constructor_send_message_record_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void store_ds_constructor_send_message_upload_video_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void store_ds_constructor_send_message_upload_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void store_ds_constructor_send_message_record_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void store_ds_constructor_send_message_upload_audio_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void store_ds_constructor_send_message_upload_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void store_ds_constructor_send_message_upload_photo_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void store_ds_constructor_send_message_upload_document_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void store_ds_constructor_send_message_upload_document_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void store_ds_constructor_send_message_geo_location_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void store_ds_constructor_send_message_choose_contact_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void store_ds_constructor_server_d_h_params_fail (struct tl_ds_server_d_h_params *D, struct paramed_type *T);
+void store_ds_constructor_server_d_h_params_ok (struct tl_ds_server_d_h_params *D, struct paramed_type *T);
+void store_ds_constructor_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T);
+void store_ds_constructor_dh_gen_ok (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T);
+void store_ds_constructor_dh_gen_retry (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T);
+void store_ds_constructor_dh_gen_fail (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T);
+void store_ds_constructor_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T);
+void store_ds_constructor_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T);
+void store_ds_constructor_string (struct tl_ds_string *D, struct paramed_type *T);
+void store_ds_constructor_update_new_message (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_message_i_d (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_delete_messages (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_user_typing (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_chat_user_typing (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_chat_participants (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_user_status (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_user_name (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_user_photo (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_contact_registered (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_contact_link (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_new_authorization (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_new_geo_chat_message (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_new_encrypted_message (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_encrypted_chat_typing (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_encryption (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_encrypted_messages_read (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_chat_participant_add (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_chat_participant_delete (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_dc_options (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_user_blocked (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_notify_settings (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_service_notification (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_privacy (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_user_phone (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_read_history_inbox (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_read_history_outbox (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_web_page (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_read_messages_contents (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_update_msg_update (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_constructor_updates_too_long (struct tl_ds_updates *D, struct paramed_type *T);
+void store_ds_constructor_update_short_message (struct tl_ds_updates *D, struct paramed_type *T);
+void store_ds_constructor_update_short_chat_message (struct tl_ds_updates *D, struct paramed_type *T);
+void store_ds_constructor_update_short (struct tl_ds_updates *D, struct paramed_type *T);
+void store_ds_constructor_updates_combined (struct tl_ds_updates *D, struct paramed_type *T);
+void store_ds_constructor_updates (struct tl_ds_updates *D, struct paramed_type *T);
+void store_ds_constructor_user_empty (struct tl_ds_user *D, struct paramed_type *T);
+void store_ds_constructor_user (struct tl_ds_user *D, struct paramed_type *T);
+void store_ds_constructor_user_full (struct tl_ds_user_full *D, struct paramed_type *T);
+void store_ds_constructor_user_profile_photo_empty (struct tl_ds_user_profile_photo *D, struct paramed_type *T);
+void store_ds_constructor_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T);
+void store_ds_constructor_user_status_empty (struct tl_ds_user_status *D, struct paramed_type *T);
+void store_ds_constructor_user_status_online (struct tl_ds_user_status *D, struct paramed_type *T);
+void store_ds_constructor_user_status_offline (struct tl_ds_user_status *D, struct paramed_type *T);
+void store_ds_constructor_user_status_recently (struct tl_ds_user_status *D, struct paramed_type *T);
+void store_ds_constructor_user_status_last_week (struct tl_ds_user_status *D, struct paramed_type *T);
+void store_ds_constructor_user_status_last_month (struct tl_ds_user_status *D, struct paramed_type *T);
+void store_ds_constructor_vector (struct tl_ds_vector *D, struct paramed_type *T);
+void store_ds_constructor_video_empty (struct tl_ds_video *D, struct paramed_type *T);
+void store_ds_constructor_video (struct tl_ds_video *D, struct paramed_type *T);
+void store_ds_constructor_video_l27 (struct tl_ds_video *D, struct paramed_type *T);
+void store_ds_constructor_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T);
+void store_ds_constructor_wall_paper_solid (struct tl_ds_wall_paper *D, struct paramed_type *T);
+void store_ds_constructor_web_page_empty (struct tl_ds_web_page *D, struct paramed_type *T);
+void store_ds_constructor_web_page_pending (struct tl_ds_web_page *D, struct paramed_type *T);
+void store_ds_constructor_web_page (struct tl_ds_web_page *D, struct paramed_type *T);
+void store_ds_constructor_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T);
+void store_ds_constructor_account_no_password (struct tl_ds_account_password *D, struct paramed_type *T);
+void store_ds_constructor_account_password (struct tl_ds_account_password *D, struct paramed_type *T);
+void store_ds_constructor_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T);
+void store_ds_constructor_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T);
+void store_ds_constructor_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T);
+void store_ds_constructor_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T);
+void store_ds_constructor_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T);
+void store_ds_constructor_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T);
+void store_ds_constructor_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T);
+void store_ds_constructor_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T);
+void store_ds_constructor_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T);
+void store_ds_constructor_auth_sent_app_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T);
+void store_ds_constructor_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T);
+void store_ds_constructor_binlog_start (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_dc_option (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_dc_option_new (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_auth_key (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_default_dc (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_dc_signed (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_our_id (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_set_dh_params (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_set_pts (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_set_qts (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_set_date (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_set_seq (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_encr_chat_delete (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_encr_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_encr_chat_exchange_new (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_user_delete (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_user_new (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_chat_add_participant (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_chat_del_participant (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_set_msg_id (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_message_delete (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_message_new (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_message_encr_new (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_msg_update (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_binlog_reset_authorization (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_constructor_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T);
+void store_ds_constructor_contacts_blocked_slice (struct tl_ds_contacts_blocked *D, struct paramed_type *T);
+void store_ds_constructor_contacts_contacts_not_modified (struct tl_ds_contacts_contacts *D, struct paramed_type *T);
+void store_ds_constructor_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T);
+void store_ds_constructor_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T);
+void store_ds_constructor_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T);
+void store_ds_constructor_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T);
+void store_ds_constructor_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T);
+void store_ds_constructor_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T);
+void store_ds_constructor_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T);
+void store_ds_constructor_geochats_messages_slice (struct tl_ds_geochats_messages *D, struct paramed_type *T);
+void store_ds_constructor_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T);
+void store_ds_constructor_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T);
+void store_ds_constructor_help_no_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T);
+void store_ds_constructor_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T);
+void store_ds_constructor_help_support (struct tl_ds_help_support *D, struct paramed_type *T);
+void store_ds_constructor_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T);
+void store_ds_constructor_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T);
+void store_ds_constructor_messages_all_stickers_not_modified (struct tl_ds_messages_all_stickers *D, struct paramed_type *T);
+void store_ds_constructor_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T);
+void store_ds_constructor_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T);
+void store_ds_constructor_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T);
+void store_ds_constructor_messages_dh_config_not_modified (struct tl_ds_messages_dh_config *D, struct paramed_type *T);
+void store_ds_constructor_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T);
+void store_ds_constructor_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T);
+void store_ds_constructor_messages_dialogs_slice (struct tl_ds_messages_dialogs *D, struct paramed_type *T);
+void store_ds_constructor_messages_message_empty (struct tl_ds_messages_message *D, struct paramed_type *T);
+void store_ds_constructor_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T);
+void store_ds_constructor_messages_messages_slice (struct tl_ds_messages_messages *D, struct paramed_type *T);
+void store_ds_constructor_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T);
+void store_ds_constructor_messages_sent_encrypted_file (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T);
+void store_ds_constructor_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T);
+void store_ds_constructor_messages_sent_message_link (struct tl_ds_messages_sent_message *D, struct paramed_type *T);
+void store_ds_constructor_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T);
+void store_ds_constructor_messages_stickers_not_modified (struct tl_ds_messages_stickers *D, struct paramed_type *T);
+void store_ds_constructor_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T);
+void store_ds_constructor_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T);
+void store_ds_constructor_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T);
+void store_ds_constructor_photos_photos_slice (struct tl_ds_photos_photos *D, struct paramed_type *T);
+void store_ds_constructor_storage_file_unknown (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void store_ds_constructor_storage_file_jpeg (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void store_ds_constructor_storage_file_gif (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void store_ds_constructor_storage_file_png (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void store_ds_constructor_storage_file_pdf (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void store_ds_constructor_storage_file_mp3 (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void store_ds_constructor_storage_file_mov (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void store_ds_constructor_storage_file_partial (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void store_ds_constructor_storage_file_mp4 (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void store_ds_constructor_storage_file_webp (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void store_ds_constructor_updates_difference_empty (struct tl_ds_updates_difference *D, struct paramed_type *T);
+void store_ds_constructor_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T);
+void store_ds_constructor_updates_difference_slice (struct tl_ds_updates_difference *D, struct paramed_type *T);
+void store_ds_constructor_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T);
+void store_ds_constructor_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T);
+void store_ds_type_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T);
+void store_ds_type_bare_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T);
+void store_ds_type_audio (struct tl_ds_audio *D, struct paramed_type *T);
+void store_ds_type_bare_audio (struct tl_ds_audio *D, struct paramed_type *T);
+void store_ds_type_authorization (struct tl_ds_authorization *D, struct paramed_type *T);
+void store_ds_type_bare_authorization (struct tl_ds_authorization *D, struct paramed_type *T);
+void store_ds_type_bool (struct tl_ds_bool *D, struct paramed_type *T);
+void store_ds_type_bare_bool (struct tl_ds_bool *D, struct paramed_type *T);
+void store_ds_type_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T);
+void store_ds_type_bare_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T);
+void store_ds_type_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T);
+void store_ds_type_bare_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T);
+void store_ds_type_bytes (struct tl_ds_string *D, struct paramed_type *T);
+void store_ds_type_bare_bytes (struct tl_ds_string *D, struct paramed_type *T);
+void store_ds_type_chat (struct tl_ds_chat *D, struct paramed_type *T);
+void store_ds_type_bare_chat (struct tl_ds_chat *D, struct paramed_type *T);
+void store_ds_type_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T);
+void store_ds_type_bare_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T);
+void store_ds_type_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T);
+void store_ds_type_bare_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T);
+void store_ds_type_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T);
+void store_ds_type_bare_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T);
+void store_ds_type_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T);
+void store_ds_type_bare_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T);
+void store_ds_type_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T);
+void store_ds_type_bare_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T);
+void store_ds_type_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T);
+void store_ds_type_bare_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T);
+void store_ds_type_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T);
+void store_ds_type_bare_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T);
+void store_ds_type_config (struct tl_ds_config *D, struct paramed_type *T);
+void store_ds_type_bare_config (struct tl_ds_config *D, struct paramed_type *T);
+void store_ds_type_contact (struct tl_ds_contact *D, struct paramed_type *T);
+void store_ds_type_bare_contact (struct tl_ds_contact *D, struct paramed_type *T);
+void store_ds_type_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T);
+void store_ds_type_bare_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T);
+void store_ds_type_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T);
+void store_ds_type_bare_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T);
+void store_ds_type_contact_link (struct tl_ds_contact_link *D, struct paramed_type *T);
+void store_ds_type_bare_contact_link (struct tl_ds_contact_link *D, struct paramed_type *T);
+void store_ds_type_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T);
+void store_ds_type_bare_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T);
+void store_ds_type_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T);
+void store_ds_type_bare_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T);
+void store_ds_type_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T);
+void store_ds_type_bare_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T);
+void store_ds_type_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T);
+void store_ds_type_bare_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T);
+void store_ds_type_decrypted_message_action (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void store_ds_type_bare_decrypted_message_action (struct tl_ds_decrypted_message_action *D, struct paramed_type *T);
+void store_ds_type_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T);
+void store_ds_type_bare_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T);
+void store_ds_type_decrypted_message_media (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void store_ds_type_bare_decrypted_message_media (struct tl_ds_decrypted_message_media *D, struct paramed_type *T);
+void store_ds_type_dialog (struct tl_ds_dialog *D, struct paramed_type *T);
+void store_ds_type_bare_dialog (struct tl_ds_dialog *D, struct paramed_type *T);
+void store_ds_type_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T);
+void store_ds_type_bare_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T);
+void store_ds_type_document (struct tl_ds_document *D, struct paramed_type *T);
+void store_ds_type_bare_document (struct tl_ds_document *D, struct paramed_type *T);
+void store_ds_type_document_attribute (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void store_ds_type_bare_document_attribute (struct tl_ds_document_attribute *D, struct paramed_type *T);
+void store_ds_type_double (double *D, struct paramed_type *T);
+void store_ds_type_bare_double (double *D, struct paramed_type *T);
+void store_ds_type_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T);
+void store_ds_type_bare_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T);
+void store_ds_type_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T);
+void store_ds_type_bare_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T);
+void store_ds_type_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T);
+void store_ds_type_bare_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T);
+void store_ds_type_error (struct tl_ds_error *D, struct paramed_type *T);
+void store_ds_type_bare_error (struct tl_ds_error *D, struct paramed_type *T);
+void store_ds_type_exported_chat_invite (struct tl_ds_exported_chat_invite *D, struct paramed_type *T);
+void store_ds_type_bare_exported_chat_invite (struct tl_ds_exported_chat_invite *D, struct paramed_type *T);
+void store_ds_type_file_location (struct tl_ds_file_location *D, struct paramed_type *T);
+void store_ds_type_bare_file_location (struct tl_ds_file_location *D, struct paramed_type *T);
+void store_ds_type_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T);
+void store_ds_type_bare_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T);
+void store_ds_type_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T);
+void store_ds_type_bare_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T);
+void store_ds_type_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T);
+void store_ds_type_bare_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T);
+void store_ds_type_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T);
+void store_ds_type_bare_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T);
+void store_ds_type_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T);
+void store_ds_type_bare_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T);
+void store_ds_type_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T);
+void store_ds_type_bare_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T);
+void store_ds_type_input_contact (struct tl_ds_input_contact *D, struct paramed_type *T);
+void store_ds_type_bare_input_contact (struct tl_ds_input_contact *D, struct paramed_type *T);
+void store_ds_type_input_document (struct tl_ds_input_document *D, struct paramed_type *T);
+void store_ds_type_bare_input_document (struct tl_ds_input_document *D, struct paramed_type *T);
+void store_ds_type_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T);
+void store_ds_type_bare_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T);
+void store_ds_type_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T);
+void store_ds_type_bare_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T);
+void store_ds_type_input_file (struct tl_ds_input_file *D, struct paramed_type *T);
+void store_ds_type_bare_input_file (struct tl_ds_input_file *D, struct paramed_type *T);
+void store_ds_type_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T);
+void store_ds_type_bare_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T);
+void store_ds_type_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T);
+void store_ds_type_bare_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T);
+void store_ds_type_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T);
+void store_ds_type_bare_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T);
+void store_ds_type_input_media (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_type_bare_input_media (struct tl_ds_input_media *D, struct paramed_type *T);
+void store_ds_type_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T);
+void store_ds_type_bare_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T);
+void store_ds_type_input_peer (struct tl_ds_input_peer *D, struct paramed_type *T);
+void store_ds_type_bare_input_peer (struct tl_ds_input_peer *D, struct paramed_type *T);
+void store_ds_type_input_peer_notify_events (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T);
+void store_ds_type_bare_input_peer_notify_events (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T);
+void store_ds_type_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T);
+void store_ds_type_bare_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T);
+void store_ds_type_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T);
+void store_ds_type_bare_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T);
+void store_ds_type_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T);
+void store_ds_type_bare_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T);
+void store_ds_type_input_privacy_key (struct tl_ds_input_privacy_key *D, struct paramed_type *T);
+void store_ds_type_bare_input_privacy_key (struct tl_ds_input_privacy_key *D, struct paramed_type *T);
+void store_ds_type_input_privacy_rule (struct tl_ds_input_privacy_rule *D, struct paramed_type *T);
+void store_ds_type_bare_input_privacy_rule (struct tl_ds_input_privacy_rule *D, struct paramed_type *T);
+void store_ds_type_input_sticker_set (struct tl_ds_input_sticker_set *D, struct paramed_type *T);
+void store_ds_type_bare_input_sticker_set (struct tl_ds_input_sticker_set *D, struct paramed_type *T);
+void store_ds_type_input_user (struct tl_ds_input_user *D, struct paramed_type *T);
+void store_ds_type_bare_input_user (struct tl_ds_input_user *D, struct paramed_type *T);
+void store_ds_type_input_video (struct tl_ds_input_video *D, struct paramed_type *T);
+void store_ds_type_bare_input_video (struct tl_ds_input_video *D, struct paramed_type *T);
+void store_ds_type_int (int *D, struct paramed_type *T);
+void store_ds_type_bare_int (int *D, struct paramed_type *T);
+void store_ds_type_int128 (struct tl_ds_int128 *D, struct paramed_type *T);
+void store_ds_type_bare_int128 (struct tl_ds_int128 *D, struct paramed_type *T);
+void store_ds_type_int256 (struct tl_ds_int256 *D, struct paramed_type *T);
+void store_ds_type_bare_int256 (struct tl_ds_int256 *D, struct paramed_type *T);
+void store_ds_type_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T);
+void store_ds_type_bare_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T);
+void store_ds_type_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T);
+void store_ds_type_bare_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T);
+void store_ds_type_long (long long *D, struct paramed_type *T);
+void store_ds_type_bare_long (long long *D, struct paramed_type *T);
+void store_ds_type_message (struct tl_ds_message *D, struct paramed_type *T);
+void store_ds_type_bare_message (struct tl_ds_message *D, struct paramed_type *T);
+void store_ds_type_message_action (struct tl_ds_message_action *D, struct paramed_type *T);
+void store_ds_type_bare_message_action (struct tl_ds_message_action *D, struct paramed_type *T);
+void store_ds_type_message_media (struct tl_ds_message_media *D, struct paramed_type *T);
+void store_ds_type_bare_message_media (struct tl_ds_message_media *D, struct paramed_type *T);
+void store_ds_type_messages_filter (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void store_ds_type_bare_messages_filter (struct tl_ds_messages_filter *D, struct paramed_type *T);
+void store_ds_type_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T);
+void store_ds_type_bare_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T);
+void store_ds_type_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T);
+void store_ds_type_bare_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T);
+void store_ds_type_null (struct tl_ds_null *D, struct paramed_type *T);
+void store_ds_type_bare_null (struct tl_ds_null *D, struct paramed_type *T);
+void store_ds_type_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T);
+void store_ds_type_bare_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T);
+void store_ds_type_peer (struct tl_ds_peer *D, struct paramed_type *T);
+void store_ds_type_bare_peer (struct tl_ds_peer *D, struct paramed_type *T);
+void store_ds_type_peer_notify_events (struct tl_ds_peer_notify_events *D, struct paramed_type *T);
+void store_ds_type_bare_peer_notify_events (struct tl_ds_peer_notify_events *D, struct paramed_type *T);
+void store_ds_type_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T);
+void store_ds_type_bare_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T);
+void store_ds_type_photo (struct tl_ds_photo *D, struct paramed_type *T);
+void store_ds_type_bare_photo (struct tl_ds_photo *D, struct paramed_type *T);
+void store_ds_type_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T);
+void store_ds_type_bare_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T);
+void store_ds_type_privacy_key (struct tl_ds_privacy_key *D, struct paramed_type *T);
+void store_ds_type_bare_privacy_key (struct tl_ds_privacy_key *D, struct paramed_type *T);
+void store_ds_type_privacy_rule (struct tl_ds_privacy_rule *D, struct paramed_type *T);
+void store_ds_type_bare_privacy_rule (struct tl_ds_privacy_rule *D, struct paramed_type *T);
+void store_ds_type_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T);
+void store_ds_type_bare_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T);
+void store_ds_type_reply_markup (struct tl_ds_reply_markup *D, struct paramed_type *T);
+void store_ds_type_bare_reply_markup (struct tl_ds_reply_markup *D, struct paramed_type *T);
+void store_ds_type_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T);
+void store_ds_type_bare_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T);
+void store_ds_type_send_message_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void store_ds_type_bare_send_message_action (struct tl_ds_send_message_action *D, struct paramed_type *T);
+void store_ds_type_server_d_h_params (struct tl_ds_server_d_h_params *D, struct paramed_type *T);
+void store_ds_type_bare_server_d_h_params (struct tl_ds_server_d_h_params *D, struct paramed_type *T);
+void store_ds_type_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T);
+void store_ds_type_bare_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T);
+void store_ds_type_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T);
+void store_ds_type_bare_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T);
+void store_ds_type_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T);
+void store_ds_type_bare_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T);
+void store_ds_type_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T);
+void store_ds_type_bare_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T);
+void store_ds_type_string (struct tl_ds_string *D, struct paramed_type *T);
+void store_ds_type_bare_string (struct tl_ds_string *D, struct paramed_type *T);
+void store_ds_type_update (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_type_bare_update (struct tl_ds_update *D, struct paramed_type *T);
+void store_ds_type_updates (struct tl_ds_updates *D, struct paramed_type *T);
+void store_ds_type_bare_updates (struct tl_ds_updates *D, struct paramed_type *T);
+void store_ds_type_user (struct tl_ds_user *D, struct paramed_type *T);
+void store_ds_type_bare_user (struct tl_ds_user *D, struct paramed_type *T);
+void store_ds_type_user_full (struct tl_ds_user_full *D, struct paramed_type *T);
+void store_ds_type_bare_user_full (struct tl_ds_user_full *D, struct paramed_type *T);
+void store_ds_type_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T);
+void store_ds_type_bare_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T);
+void store_ds_type_user_status (struct tl_ds_user_status *D, struct paramed_type *T);
+void store_ds_type_bare_user_status (struct tl_ds_user_status *D, struct paramed_type *T);
+void store_ds_type_vector (struct tl_ds_vector *D, struct paramed_type *T);
+void store_ds_type_bare_vector (struct tl_ds_vector *D, struct paramed_type *T);
+void store_ds_type_video (struct tl_ds_video *D, struct paramed_type *T);
+void store_ds_type_bare_video (struct tl_ds_video *D, struct paramed_type *T);
+void store_ds_type_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T);
+void store_ds_type_bare_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T);
+void store_ds_type_web_page (struct tl_ds_web_page *D, struct paramed_type *T);
+void store_ds_type_bare_web_page (struct tl_ds_web_page *D, struct paramed_type *T);
+void store_ds_type_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T);
+void store_ds_type_bare_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T);
+void store_ds_type_account_password (struct tl_ds_account_password *D, struct paramed_type *T);
+void store_ds_type_bare_account_password (struct tl_ds_account_password *D, struct paramed_type *T);
+void store_ds_type_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T);
+void store_ds_type_bare_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T);
+void store_ds_type_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T);
+void store_ds_type_bare_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T);
+void store_ds_type_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T);
+void store_ds_type_bare_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T);
+void store_ds_type_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T);
+void store_ds_type_bare_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T);
+void store_ds_type_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T);
+void store_ds_type_bare_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T);
+void store_ds_type_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T);
+void store_ds_type_bare_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T);
+void store_ds_type_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T);
+void store_ds_type_bare_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T);
+void store_ds_type_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T);
+void store_ds_type_bare_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T);
+void store_ds_type_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T);
+void store_ds_type_bare_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T);
+void store_ds_type_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T);
+void store_ds_type_bare_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T);
+void store_ds_type_binlog_update (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_type_bare_binlog_update (struct tl_ds_binlog_update *D, struct paramed_type *T);
+void store_ds_type_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T);
+void store_ds_type_bare_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T);
+void store_ds_type_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T);
+void store_ds_type_bare_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T);
+void store_ds_type_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T);
+void store_ds_type_bare_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T);
+void store_ds_type_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T);
+void store_ds_type_bare_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T);
+void store_ds_type_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T);
+void store_ds_type_bare_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T);
+void store_ds_type_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T);
+void store_ds_type_bare_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T);
+void store_ds_type_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T);
+void store_ds_type_bare_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T);
+void store_ds_type_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T);
+void store_ds_type_bare_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T);
+void store_ds_type_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T);
+void store_ds_type_bare_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T);
+void store_ds_type_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T);
+void store_ds_type_bare_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T);
+void store_ds_type_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T);
+void store_ds_type_bare_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T);
+void store_ds_type_help_support (struct tl_ds_help_support *D, struct paramed_type *T);
+void store_ds_type_bare_help_support (struct tl_ds_help_support *D, struct paramed_type *T);
+void store_ds_type_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T);
+void store_ds_type_bare_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T);
+void store_ds_type_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T);
+void store_ds_type_bare_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T);
+void store_ds_type_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T);
+void store_ds_type_bare_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T);
+void store_ds_type_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T);
+void store_ds_type_bare_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T);
+void store_ds_type_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T);
+void store_ds_type_bare_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T);
+void store_ds_type_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T);
+void store_ds_type_bare_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T);
+void store_ds_type_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T);
+void store_ds_type_bare_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T);
+void store_ds_type_messages_message (struct tl_ds_messages_message *D, struct paramed_type *T);
+void store_ds_type_bare_messages_message (struct tl_ds_messages_message *D, struct paramed_type *T);
+void store_ds_type_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T);
+void store_ds_type_bare_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T);
+void store_ds_type_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T);
+void store_ds_type_bare_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T);
+void store_ds_type_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T);
+void store_ds_type_bare_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T);
+void store_ds_type_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T);
+void store_ds_type_bare_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T);
+void store_ds_type_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T);
+void store_ds_type_bare_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T);
+void store_ds_type_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T);
+void store_ds_type_bare_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T);
+void store_ds_type_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T);
+void store_ds_type_bare_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T);
+void store_ds_type_storage_file_type (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void store_ds_type_bare_storage_file_type (struct tl_ds_storage_file_type *D, struct paramed_type *T);
+void store_ds_type_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T);
+void store_ds_type_bare_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T);
+void store_ds_type_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T);
+void store_ds_type_bare_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T);
+void store_ds_type_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T);
+void store_ds_type_bare_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T);
+void store_ds_type_any (void *D, struct paramed_type *T);
diff --git a/libs/tgl/src/auto/auto-store.c b/libs/tgl/src/auto/auto-store.c
new file mode 100644
index 0000000000..50d5ff7970
--- /dev/null
+++ b/libs/tgl/src/auto/auto-store.c
@@ -0,0 +1,24400 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#include "..\mtproto-common.h"
+#include "auto-store.h"
+#include "..\auto-static-store.c"
+#else
+#include "auto.h"
+#include "mtproto-common.h"
+#include "auto/auto-store.h"
+#include "auto-static-store.c"
+#endif
+#include <assert.h>
+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 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 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 store_constructor_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { 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 = 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, "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 == 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", 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, "platform", 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 == 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", 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 == 6 && !cur_token_quoted && !memcmp (cur_token, "api_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, "app_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;}
+ 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 (":", 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 == 12 && !cur_token_quoted && !memcmp (cur_token, "date_created", 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 == 11 && !cur_token_quoted && !memcmp (cur_token, "date_active", 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 == 2 && !cur_token_quoted && !memcmp (cur_token, "ip", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field11 =
+ &(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 (field11) < 0) { 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 *field12 =
+ &(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 (field12) < 0) { return -1;}
+ if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "region", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field13 =
+ &(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 (field13) < 0) { 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 store_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_bot_command (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "command", 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 == 11 && !cur_token_quoted && !memcmp (cur_token, "description", 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 store_constructor_bot_command_old (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "command", 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 == 6 && !cur_token_quoted && !memcmp (cur_token, "params", 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 == 11 && !cur_token_quoted && !memcmp (cur_token, "description", 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 store_constructor_bot_info_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; }
+ return 0;
+}
+int store_constructor_bot_info (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { 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, "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 == 10 && !cur_token_quoted && !memcmp (cur_token, "share_text", 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 == 11 && !cur_token_quoted && !memcmp (cur_token, "description", 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 == 8 && !cur_token_quoted && !memcmp (cur_token, "commands", 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 = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field5) < 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 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 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 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 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 store_constructor_chat_full (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { 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 = 0xc207550a, .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 == 15 && !cur_token_quoted && !memcmp (cur_token, "exported_invite", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_exported_chat_invite (field5) < 0) { return -1;}
+ if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "bot_info", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field6) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_chat_invite_already (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { 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;}
+ return 0;
+}
+int store_constructor_chat_invite (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { 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 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 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 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 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 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 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 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 store_constructor_config (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { 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 == 7 && !cur_token_quoted && !memcmp (cur_token, "expires", 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, "test_mode", 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 == 7 && !cur_token_quoted && !memcmp (cur_token, "this_dc", 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 == 10 && !cur_token_quoted && !memcmp (cur_token, "dc_options", 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 = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field5) < 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 *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 == 18 && !cur_token_quoted && !memcmp (cur_token, "broadcast_size_max", 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 == 19 && !cur_token_quoted && !memcmp (cur_token, "forwarded_count_max", 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 == 23 && !cur_token_quoted && !memcmp (cur_token, "online_update_period_ms", 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 == 23 && !cur_token_quoted && !memcmp (cur_token, "offline_blur_timeout_ms", 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 == 23 && !cur_token_quoted && !memcmp (cur_token, "offline_idle_timeout_ms", 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 == 23 && !cur_token_quoted && !memcmp (cur_token, "online_cloud_timeout_ms", 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;}
+ if (cur_token_len >= 0 && cur_token_len == 21 && !cur_token_quoted && !memcmp (cur_token, "notify_cloud_delay_ms", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_int (field13) < 0) { return -1;}
+ if (cur_token_len >= 0 && cur_token_len == 23 && !cur_token_quoted && !memcmp (cur_token, "notify_default_delay_ms", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_int (field14) < 0) { return -1;}
+ if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "chat_big_size", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_int (field15) < 0) { return -1;}
+ if (cur_token_len >= 0 && cur_token_len == 19 && !cur_token_quoted && !memcmp (cur_token, "push_chat_period_ms", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field16 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_int (field16) < 0) { return -1;}
+ if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "push_chat_limit", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field17 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_int (field17) < 0) { return -1;}
+ if (cur_token_len >= 0 && cur_token_len == 17 && !cur_token_quoted && !memcmp (cur_token, "disabled_features", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field18 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field18) < 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 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 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 store_constructor_contact_link_unknown (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ return 0;
+}
+int store_constructor_contact_link_none (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ return 0;
+}
+int store_constructor_contact_link_has_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; }
+ return 0;
+}
+int store_constructor_contact_link_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { 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 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 store_constructor_dc_option_l28 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { 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 store_constructor_dc_option (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { 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 == 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 store_constructor_decrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { 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 == 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;}
+ 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 = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_decrypted_message_media (field4) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_decrypted_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { 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 == 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 = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_decrypted_message_action (field2) < 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 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 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 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 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 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 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 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 = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_send_message_action (field1) < 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 = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_bytes (field2) < 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 = 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 == 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 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 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 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 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 == 12 && !cur_token_quoted && !memcmp (cur_token, "random_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;}
+ 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;}
+ 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 *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;}
+ 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 = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_decrypted_message (field5) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_decrypted_message_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ return 0;
+}
+int store_constructor_decrypted_message_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "str_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 store_constructor_decrypted_message_media_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "latitude", 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 == 9 && !cur_token_quoted && !memcmp (cur_token, "longitude", 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 store_constructor_decrypted_message_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 store_constructor_decrypted_message_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "str_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 store_constructor_decrypted_message_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "str_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 store_constructor_decrypted_message_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 store_constructor_decrypted_message_media_external_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field8) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_decrypted_message_media_video_l12 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "str_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 == 1 && !cur_token_quoted && !memcmp (cur_token, "w", 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 == 1 && !cur_token_quoted && !memcmp (cur_token, "h", 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, "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 == 3 && !cur_token_quoted && !memcmp (cur_token, "key", 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;}
+ 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 *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;}
+ return 0;
+}
+int store_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { 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 == 4 && !cur_token_quoted && !memcmp (cur_token, "size", 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);
+ }
+ 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;}
+ 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 *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 store_constructor_dialog (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { 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 == 17 && !cur_token_quoted && !memcmp (cur_token, "read_inbox_max_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 == 12 && !cur_token_quoted && !memcmp (cur_token, "unread_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 == 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field5 =
+ &(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 (field5) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_disabled_feature (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "feature", 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 == 11 && !cur_token_quoted && !memcmp (cur_token, "description", 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 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 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field8) < 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 store_constructor_document_attribute_image_size (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 store_constructor_document_attribute_animated (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; }
+ return 0;
+}
+int store_constructor_document_attribute_sticker_l28 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "alt", 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 store_constructor_document_attribute_sticker (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "alt", 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, "stickerset", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_input_sticker_set (field2) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_document_attribute_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 store_constructor_document_attribute_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 store_constructor_document_attribute_filename (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { 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 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 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 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 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 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 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 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 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 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 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 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 store_constructor_chat_invite_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; }
+ return 0;
+}
+int store_constructor_chat_invite_exported (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { 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 *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 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 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 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 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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_message_media (field6) < 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 = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_message_action (field5) < 0) { 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 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 == 9 && !cur_token_quoted && !memcmp (cur_token, "longitude", 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, "latitude", 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 == 8 && !cur_token_quoted && !memcmp (cur_token, "latitude", 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 == 9 && !cur_token_quoted && !memcmp (cur_token, "longitude", 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 store_constructor_input_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ return 0;
+}
+int store_constructor_input_media_uploaded_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", 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 store_constructor_input_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", 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 store_constructor_input_media_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 store_constructor_input_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 store_constructor_input_media_uploaded_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 == 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;}
+ return 0;
+}
+int store_constructor_input_media_uploaded_thumb_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", 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 store_constructor_input_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "video_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;}
+ 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 *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 store_constructor_input_media_uploaded_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 store_constructor_input_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "audio_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 store_constructor_input_media_uploaded_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field3) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_input_media_uploaded_thumb_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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 = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field4) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_input_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "document_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 store_constructor_input_media_venue (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { 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;}
+ 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 == 7 && !cur_token_quoted && !memcmp (cur_token, "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 == 8 && !cur_token_quoted && !memcmp (cur_token, "provider", 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 == 8 && !cur_token_quoted && !memcmp (cur_token, "venue_id", 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 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 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 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 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 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 == 8 && !cur_token_quoted && !memcmp (cur_token, "geo_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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 store_constructor_input_sticker_set_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; }
+ return 0;
+}
+int store_constructor_input_sticker_set_i_d (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { 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 store_constructor_input_sticker_set_short_name (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "short_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 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 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 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 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 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 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 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 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 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 store_constructor_keyboard_button (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { 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 store_constructor_keyboard_button_row (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { 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 = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field1) < 0) { return -1;}
+ 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 store_constructor_message_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { 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 store_constructor_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ out_int (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 3)) {
+ if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_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 == 4 && !cur_token_quoted && !memcmp (cur_token, "date", 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 == 7 && !cur_token_quoted && !memcmp (cur_token, "message", 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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_message_media (field10) < 0) { return -1;}
+ if (PTR2INT (var0) & (1 << 6)) {
+ if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_reply_markup (field11) < 0) { return -1;}
+ }
+ return 0;
+}
+int store_constructor_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { 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 = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_message_action (field6) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_message_action_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ return 0;
+}
+int store_constructor_message_action_chat_create (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 store_constructor_message_action_chat_edit_title (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 store_constructor_message_action_chat_edit_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_photo (field1) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_message_action_chat_delete_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ return 0;
+}
+int store_constructor_message_action_chat_add_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 store_constructor_message_action_chat_delete_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 store_constructor_message_action_geo_chat_create (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 store_constructor_message_action_geo_chat_checkin (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; }
+ return 0;
+}
+int store_constructor_message_action_chat_joined_by_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { 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 *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 store_constructor_message_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ return 0;
+}
+int store_constructor_message_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 = 0xc207550a, .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 == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", 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 store_constructor_message_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_video (field1) < 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 *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 store_constructor_message_media_geo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 store_constructor_message_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 store_constructor_message_media_unsupported (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ return 0;
+}
+int store_constructor_message_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 store_constructor_message_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 store_constructor_message_media_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "webpage", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_web_page (field1) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_message_media_venue (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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;}
+ 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 == 7 && !cur_token_quoted && !memcmp (cur_token, "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 == 8 && !cur_token_quoted && !memcmp (cur_token, "provider", 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 == 8 && !cur_token_quoted && !memcmp (cur_token, "venue_id", 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 store_constructor_message_media_photo_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_photo (field1) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_message_media_video_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { 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 = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_video (field1) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_input_messages_filter_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int store_constructor_input_messages_filter_photos (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int store_constructor_input_messages_filter_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int store_constructor_input_messages_filter_photo_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int store_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int store_constructor_input_messages_filter_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; }
+ return 0;
+}
+int store_constructor_input_messages_filter_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { 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 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 store_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_chats (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 store_constructor_null (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { 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 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 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 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 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 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 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 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 store_constructor_photo_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { 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 store_constructor_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { 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 == 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field5 =
+ &(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 (field5) < 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 *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_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 (field6) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_photo_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { 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 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 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 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 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 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 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 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 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 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 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 store_constructor_received_notify_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { 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;}
+ return 0;
+}
+int store_constructor_reply_keyboard_hide (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { 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;}
+ return 0;
+}
+int store_constructor_reply_keyboard_force_reply (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { 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;}
+ return 0;
+}
+int store_constructor_reply_keyboard_markup (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { 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 == 4 && !cur_token_quoted && !memcmp (cur_token, "rows", 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 = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field2) < 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 store_constructor_send_message_typing_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int store_constructor_send_message_cancel_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int store_constructor_send_message_record_video_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int store_constructor_send_message_upload_video_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int store_constructor_send_message_upload_video_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "progress", 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 store_constructor_send_message_record_audio_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int store_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int store_constructor_send_message_upload_audio_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "progress", 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 store_constructor_send_message_upload_photo_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "progress", 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 store_constructor_send_message_upload_document_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int store_constructor_send_message_upload_document_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "progress", 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 store_constructor_send_message_geo_location_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; }
+ return 0;
+}
+int store_constructor_send_message_choose_contact_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { 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 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 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 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 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 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 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 store_constructor_sticker_set (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { 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 == 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 == 10 && !cur_token_quoted && !memcmp (cur_token, "short_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 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 store_constructor_update_new_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x5d652a7f, .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;}
+ if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_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;}
+ return 0;
+}
+int store_constructor_update_message_i_d (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 store_constructor_update_delete_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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;}
+ if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_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;}
+ return 0;
+}
+int store_constructor_update_user_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_send_message_action (field2) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_update_chat_user_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_send_message_action (field3) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_update_chat_participants (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 store_constructor_update_user_status (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 store_constructor_update_user_name (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 store_constructor_update_user_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 store_constructor_update_contact_registered (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 store_constructor_update_contact_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_contact_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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_contact_link (field3) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_update_new_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 store_constructor_update_new_geo_chat_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "geo_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 store_constructor_update_new_encrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "encr_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 store_constructor_update_encrypted_chat_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 store_constructor_update_encryption (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "encr_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 store_constructor_update_encrypted_messages_read (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 store_constructor_update_chat_participant_add (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 store_constructor_update_chat_participant_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 store_constructor_update_dc_options (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field1) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_update_user_blocked (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 store_constructor_update_notify_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "notify_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 store_constructor_update_service_notification (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 == 12 && !cur_token_quoted && !memcmp (cur_token, "message_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;}
+ 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 = 0x95f2471a, .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 store_constructor_update_privacy (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 store_constructor_update_user_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 store_constructor_update_read_history_inbox (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 == 6 && !cur_token_quoted && !memcmp (cur_token, "max_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 == 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 == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_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;}
+ return 0;
+}
+int store_constructor_update_read_history_outbox (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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 == 6 && !cur_token_quoted && !memcmp (cur_token, "max_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 == 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 == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_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;}
+ return 0;
+}
+int store_constructor_update_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "webpage", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_web_page (field1) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_update_read_messages_contents (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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;}
+ if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_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;}
+ return 0;
+}
+int store_constructor_update_msg_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { 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, "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;}
+ if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_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;}
+ return 0;
+}
+int store_constructor_updates_too_long (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; }
+ return 0;
+}
+int store_constructor_update_short_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ out_int (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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, "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 == 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 == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", 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, "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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 3)) {
+ if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_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;}
+ }
+ return 0;
+}
+int store_constructor_update_short_chat_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ out_int (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_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 == 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 == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", 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, "pts_count", 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, "date", 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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 3)) {
+ if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", 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 store_constructor_update_short (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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 = 0x2e02b27e, .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 store_constructor_updates_combined (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 store_constructor_updates (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { 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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 store_constructor_user_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { 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 store_constructor_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ out_int (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 (PTR2INT (var0) & (1 << 0)) {
+ 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 *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 (PTR2INT (var0) & (1 << 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 *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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 3)) {
+ 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 *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 (PTR2INT (var0) & (1 << 4)) {
+ 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 *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 (PTR2INT (var0) & (1 << 5)) {
+ 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 *field8 =
+ &(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 (field8) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ 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 *field9 =
+ &(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 (field9) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 14)) {
+ if (cur_token_len >= 0 && cur_token_len == 16 && !cur_token_quoted && !memcmp (cur_token, "bot_info_version", 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;}
+ }
+ return 0;
+}
+int store_constructor_user_full (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { 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 = 0x02e6c0c8, .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 = 0x3ace484c, .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 = 0xc207550a, .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 == 8 && !cur_token_quoted && !memcmp (cur_token, "bot_info", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bot_info (field6) < 0) { 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 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 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 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 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 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 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 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 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 store_constructor_video_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { 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 store_constructor_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { 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 == 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 == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field7 =
+ &(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 (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;}
+ 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 *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 == 1 && !cur_token_quoted && !memcmp (cur_token, "h", 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;}
+ return 0;
+}
+int store_constructor_video_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { 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 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 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 store_constructor_web_page_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { 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 store_constructor_web_page_pending (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { 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, "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 store_constructor_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ out_int (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 = 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, "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 == 11 && !cur_token_quoted && !memcmp (cur_token, "display_url", 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 (PTR2INT (var0) & (1 << 0)) {
+ 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 *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 (PTR2INT (var0) & (1 << 1)) {
+ if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "site_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 (PTR2INT (var0) & (1 << 2)) {
+ 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 *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 (PTR2INT (var0) & (1 << 3)) {
+ if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "description", 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 (PTR2INT (var0) & (1 << 4)) {
+ 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 *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_photo (field9) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "embed_url", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field10 =
+ &(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 (field10) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "embed_type", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field11 =
+ &(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 (field11) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "embed_width", 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;}
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "embed_height", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_int (field13) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 7)) {
+ 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 *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_int (field14) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 8)) {
+ if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "author", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field15 =
+ &(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 (field15) < 0) { return -1;}
+ }
+ return 0;
+}
+int store_constructor_account_authorizations (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { 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 = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field1) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_account_no_password (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { 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;}
+ if (cur_token_len >= 0 && cur_token_len == 25 && !cur_token_quoted && !memcmp (cur_token, "email_unconfirmed_pattern", 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 store_constructor_account_password (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { 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;}
+ if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "has_recovery", 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;}
+ if (cur_token_len >= 0 && cur_token_len == 25 && !cur_token_quoted && !memcmp (cur_token, "email_unconfirmed_pattern", 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 store_constructor_account_password_input_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ out_int (get_int ());
+ assert (var0);
+ local_next_token ();
+ if (PTR2INT (var0) & (1 << 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 (":", 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 (PTR2INT (var0) & (1 << 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 (":", 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;}
+ }
+ if (PTR2INT (var0) & (1 << 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 (":", 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 (PTR2INT (var0) & (1 << 1)) {
+ if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "email", 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 store_constructor_account_password_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { 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 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (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 store_constructor_auth_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return -1; }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_user (field1) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_auth_checked_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { 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 (store_type_bool (field1) < 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 store_constructor_auth_password_recovery (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { 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 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 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 store_constructor_binlog_encr_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return -1; }
+ expect_token ("[", 1);
+ int multiplicity1 = PTR2INT (
+ INT2PTR (64) );
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ while (multiplicity1 -- > 0) {
+ if (store_type_any (field1) < 0) { return -1;}
+ }
+ expect_token ("]", 1);
+ return 0;
+}
+int store_constructor_binlog_start (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ return 0;
+}
+int store_constructor_binlog_dc_option (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 == 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 store_constructor_binlog_dc_option_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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, "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 == 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 == 2 && !cur_token_quoted && !memcmp (cur_token, "ip", 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, "port", 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 store_constructor_binlog_auth_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_binlog_encr_key (field2) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_binlog_default_dc (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 store_constructor_binlog_dc_signed (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 store_constructor_binlog_our_id (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 store_constructor_binlog_set_dh_params (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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);
+ }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_binlog_encr_key (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 store_constructor_binlog_set_pts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 store_constructor_binlog_set_qts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 store_constructor_binlog_set_date (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 store_constructor_binlog_set_seq (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 store_constructor_binlog_encr_chat_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 store_constructor_binlog_encr_chat_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ out_int (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 *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 (PTR2INT (var0) & (1 << 18)) {
+ 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 (PTR2INT (var0) & (1 << 19)) {
+ 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 *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 (PTR2INT (var0) & (1 << 20)) {
+ 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 *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 (PTR2INT (var0) & (1 << 21)) {
+ 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 = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_binlog_encr_key (field7) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ 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);
+ }
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_binlog_encr_key (field8) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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 *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 (PTR2INT (var0) & (1 << 24)) {
+ 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 *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 (PTR2INT (var0) & (1 << 25)) {
+ 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 *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 (PTR2INT (var0) & (1 << 26)) {
+ 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 *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;}
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ 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 *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_int (field13) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ 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 *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_int (field14) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 27)) {
+ 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 *field15 =
+ &(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 (field15) < 0) { return -1;}
+ }
+ return 0;
+}
+int store_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ out_int (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 *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 (PTR2INT (var0) & (1 << 18)) {
+ 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 = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_binlog_encr_key (field4) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ 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 *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 store_constructor_binlog_user_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 store_constructor_binlog_user_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ out_int (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 *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 (PTR2INT (var0) & (1 << 18)) {
+ 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 *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 (PTR2INT (var0) & (1 << 18)) {
+ 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 *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 (PTR2INT (var0) & (1 << 19)) {
+ 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 (PTR2INT (var0) & (1 << 20)) {
+ 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 *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 (PTR2INT (var0) & (1 << 21)) {
+ 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 *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_photo (field8) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ 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 *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 (PTR2INT (var0) & (1 << 22)) {
+ 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 *field10 =
+ &(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 (field10) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "user_photo", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field11 =
+ &(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 (field11) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "last_read_in", 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;}
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "last_read_out", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_int (field13) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "bot_info", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bot_info (field14) < 0) { return -1;}
+ }
+ return 0;
+}
+int store_constructor_binlog_chat_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ out_int (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 (PTR2INT (var0) & (1 << 18)) {
+ 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 (PTR2INT (var0) & (1 << 19)) {
+ 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 (PTR2INT (var0) & (1 << 20)) {
+ 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 (PTR2INT (var0) & (1 << 20)) {
+ 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 *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 = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field7) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ 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 *field8 =
+ &(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 (field8) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ 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 *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_photo (field9) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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 *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 (PTR2INT (var0) & (1 << 24)) {
+ if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "last_read_in", 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 (PTR2INT (var0) & (1 << 25)) {
+ if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "last_read_out", 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 store_constructor_binlog_chat_add_participant (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 == 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 == 10 && !cur_token_quoted && !memcmp (cur_token, "inviter_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;}
+ return 0;
+}
+int store_constructor_binlog_chat_del_participant (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 == 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;}
+ return 0;
+}
+int store_constructor_binlog_set_msg_id (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 store_constructor_binlog_message_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "lid", 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 store_constructor_binlog_message_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ out_int (get_int ());
+ assert (var0);
+ local_next_token ();
+ if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "lid", 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 *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 (PTR2INT (var0) & (1 << 17)) {
+ 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 *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 (PTR2INT (var0) & (1 << 18)) {
+ 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 (PTR2INT (var0) & (1 << 18)) {
+ 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 (PTR2INT (var0) & (1 << 19)) {
+ 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 *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 (PTR2INT (var0) & (1 << 20)) {
+ 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 *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 (PTR2INT (var0) & (1 << 21)) {
+ 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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_message_media (field10) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ 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 *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_message_action (field11) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "reply_id", 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;}
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_reply_markup (field13) < 0) { return -1;}
+ }
+ return 0;
+}
+int store_constructor_binlog_message_encr_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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);
+ }
+ if (cur_token_len < 0) { return -1; }
+ if (!is_int ()) { return -1;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ out_int (get_int ());
+ assert (var0);
+ local_next_token ();
+ if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "lid", 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 (PTR2INT (var0) & (1 << 17)) {
+ 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 *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 (PTR2INT (var0) & (1 << 17)) {
+ 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 *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 (PTR2INT (var0) & (1 << 19)) {
+ 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 (PTR2INT (var0) & (1 << 20)) {
+ 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 *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 (PTR2INT (var0) & (1 << 21)) {
+ if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "encr_media", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_decrypted_message_media (field8) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "encr_action", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field9 =
+ &(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 (field9) < 0) { return -1;}
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ 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 *field10 =
+ &(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 (field10) < 0) { return -1;}
+ }
+ return 0;
+}
+int store_constructor_binlog_msg_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "lid", 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 store_constructor_binlog_reset_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field2) < 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field3) < 0) { 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 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field2) < 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field3) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_contacts_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { 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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_contact_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 = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_contact_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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_user (field3) < 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field2) < 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field4) < 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field3) < 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (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 = 0x02e6c0c8, .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 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 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 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 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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_user (field2) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_messages_affected_history (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { 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 == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", 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 store_constructor_messages_affected_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { 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 == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", 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 store_constructor_messages_all_stickers_not_modified (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return -1; }
+ return 0;
+}
+int store_constructor_messages_all_stickers (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { 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 == 4 && !cur_token_quoted && !memcmp (cur_token, "sets", 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 = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field3) < 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 *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 = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field4) < 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 = 0x2e02a614, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field3) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_messages_chats (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { 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 (store_type_vector (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 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 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 = 0xc1dd804a, .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 = 0x5d652a7f, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field4) < 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 = 0xc1dd804a, .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 = 0x5d652a7f, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field5) < 0) { return -1;}
+ return 0;
+}
+int store_constructor_messages_message_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { 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 = 0x5d652a7f, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field3) < 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 = 0x5d652a7f, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field4) < 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 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 store_constructor_messages_sent_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { 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 == 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 = 0x95f2471a, .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 == 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 == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_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 store_constructor_messages_sent_message_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { 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 == 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 = 0x95f2471a, .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 == 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 == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_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;}
+ 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 *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (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 store_constructor_messages_sticker_set (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return -1; }
+ if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "set", cur_token_len)) {
+ local_next_token ();
+ expect_token (":", 1);
+ }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_sticker_set (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 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 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 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 = 0xc207550a, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_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 = 0xc207550a, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field2) < 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 = 0xc207550a, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ if (store_type_vector (field3) < 0) { 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 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 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 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 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 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 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 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 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 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 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 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 = 0x5d652a7f, .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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 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 = 0x5d652a7f, .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 = 0x2e02b27e, .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 = 0x02e6c0c8, .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 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 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 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 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 store_type_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 == 13 && !memcmp (cur_token, "authorization", cur_token_len)) {
+ out_int (0x7bf2e6f6);
+ local_next_token ();
+ if (store_constructor_authorization (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bare_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 == 13 && !memcmp (cur_token, "authorization", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_authorization (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ 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 store_type_bot_command (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, "botCommand", cur_token_len)) {
+ out_int (0xc27ac8c7);
+ local_next_token ();
+ if (store_constructor_bot_command (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 13 && !memcmp (cur_token, "botCommandOld", cur_token_len)) {
+ out_int (0xb79d22ab);
+ local_next_token ();
+ if (store_constructor_bot_command_old (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bare_bot_command (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, "botCommand", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_bot_command (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 13 && !memcmp (cur_token, "botCommandOld", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_bot_command_old (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bot_info (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, "botInfoEmpty", cur_token_len)) {
+ out_int (0xbb2e37ce);
+ local_next_token ();
+ if (store_constructor_bot_info_empty (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 7 && !memcmp (cur_token, "botInfo", cur_token_len)) {
+ out_int (0x09cf585d);
+ local_next_token ();
+ if (store_constructor_bot_info (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bare_bot_info (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, "botInfoEmpty", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_bot_info_empty (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 7 && !memcmp (cur_token, "botInfo", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_bot_info (T) < 0) { return -1; }
+ expect_token (")", 1);
+ 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 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 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 (0x2e02a614);
+ 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 store_type_chat_invite (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, "chatInviteAlready", cur_token_len)) {
+ out_int (0x5a686d7c);
+ local_next_token ();
+ if (store_constructor_chat_invite_already (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 10 && !memcmp (cur_token, "chatInvite", cur_token_len)) {
+ out_int (0xce917dcd);
+ local_next_token ();
+ if (store_constructor_chat_invite (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bare_chat_invite (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, "chatInviteAlready", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_chat_invite_already (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 10 && !memcmp (cur_token, "chatInvite", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_chat_invite (T) < 0) { return -1; }
+ expect_token (")", 1);
+ 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 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 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 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 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 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 (0x4e32b894);
+ 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 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 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 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 store_type_contact_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 == 18 && !memcmp (cur_token, "contactLinkUnknown", cur_token_len)) {
+ out_int (0x5f4f9247);
+ local_next_token ();
+ if (store_constructor_contact_link_unknown (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 15 && !memcmp (cur_token, "contactLinkNone", cur_token_len)) {
+ out_int (0xfeedd3ad);
+ local_next_token ();
+ if (store_constructor_contact_link_none (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 19 && !memcmp (cur_token, "contactLinkHasPhone", cur_token_len)) {
+ out_int (0x268f3f59);
+ local_next_token ();
+ if (store_constructor_contact_link_has_phone (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 18 && !memcmp (cur_token, "contactLinkContact", cur_token_len)) {
+ out_int (0xd502c2d0);
+ local_next_token ();
+ if (store_constructor_contact_link_contact (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bare_contact_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 == 18 && !memcmp (cur_token, "contactLinkUnknown", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_contact_link_unknown (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 15 && !memcmp (cur_token, "contactLinkNone", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_contact_link_none (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 19 && !memcmp (cur_token, "contactLinkHasPhone", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_contact_link_has_phone (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 18 && !memcmp (cur_token, "contactLinkContact", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_contact_link_contact (T) < 0) { return -1; }
+ expect_token (")", 1);
+ 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 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 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 == 11 && !memcmp (cur_token, "dcOptionL28", cur_token_len)) {
+ out_int (0x2ec2a43c);
+ local_next_token ();
+ if (store_constructor_dc_option_l28 (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 8 && !memcmp (cur_token, "dcOption", cur_token_len)) {
+ out_int (0x05d8c6cc);
+ 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 == 11 && !memcmp (cur_token, "dcOptionL28", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_dc_option_l28 (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ 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 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 == 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 == 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 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 == 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 == 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, "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 == 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 == 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 == 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 == 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 == 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, "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 == 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 == 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 == 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 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 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;
+ }
+ if (cur_token_len == 37 && !memcmp (cur_token, "decryptedMessageMediaExternalDocument", cur_token_len)) {
+ out_int (0xfa95b0dd);
+ local_next_token ();
+ if (store_constructor_decrypted_message_media_external_document (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaVideoL12", cur_token_len)) {
+ out_int (0x4cee6ef3);
+ local_next_token ();
+ if (store_constructor_decrypted_message_media_video_l12 (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaAudioL12", cur_token_len)) {
+ out_int (0x6080758f);
+ local_next_token ();
+ if (store_constructor_decrypted_message_media_audio_l12 (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;
+ }
+ if (cur_token_len == 37 && !memcmp (cur_token, "decryptedMessageMediaExternalDocument", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_decrypted_message_media_external_document (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaVideoL12", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_decrypted_message_media_video_l12 (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaAudioL12", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_decrypted_message_media_audio_l12 (T) < 0) { return -1; }
+ expect_token (")", 1);
+ 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 (0xc1dd804a);
+ 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 store_type_disabled_feature (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, "disabledFeature", cur_token_len)) {
+ out_int (0xae636f24);
+ local_next_token ();
+ if (store_constructor_disabled_feature (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bare_disabled_feature (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, "disabledFeature", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_disabled_feature (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ 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 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 == 27 && !memcmp (cur_token, "documentAttributeStickerL28", cur_token_len)) {
+ out_int (0x994c9882);
+ local_next_token ();
+ if (store_constructor_document_attribute_sticker_l28 (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 24 && !memcmp (cur_token, "documentAttributeSticker", cur_token_len)) {
+ out_int (0x3a556302);
+ 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 == 27 && !memcmp (cur_token, "documentAttributeStickerL28", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_document_attribute_sticker_l28 (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 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 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 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 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 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 store_type_exported_chat_invite (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, "chatInviteEmpty", cur_token_len)) {
+ out_int (0x69df3769);
+ local_next_token ();
+ if (store_constructor_chat_invite_empty (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 18 && !memcmp (cur_token, "chatInviteExported", cur_token_len)) {
+ out_int (0xfc2e05bc);
+ local_next_token ();
+ if (store_constructor_chat_invite_exported (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bare_exported_chat_invite (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, "chatInviteEmpty", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_chat_invite_empty (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 18 && !memcmp (cur_token, "chatInviteExported", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_chat_invite_exported (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 (0xf7aff1c0);
+ 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 (0xe9bfb4f3);
+ 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 (0xe13fd4bc);
+ 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 (0x96fb97dc);
+ 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 (0x936a4ebd);
+ 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;
+ }
+ if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVenue", cur_token_len)) {
+ out_int (0x2827a81a);
+ local_next_token ();
+ if (store_constructor_input_media_venue (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;
+ }
+ if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVenue", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_input_media_venue (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ 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 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 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 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 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 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 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 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 store_type_input_sticker_set (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, "inputStickerSetEmpty", cur_token_len)) {
+ out_int (0xffb62b95);
+ local_next_token ();
+ if (store_constructor_input_sticker_set_empty (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 17 && !memcmp (cur_token, "inputStickerSetID", cur_token_len)) {
+ out_int (0x9de7a269);
+ local_next_token ();
+ if (store_constructor_input_sticker_set_i_d (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 24 && !memcmp (cur_token, "inputStickerSetShortName", cur_token_len)) {
+ out_int (0x861cc8a0);
+ local_next_token ();
+ if (store_constructor_input_sticker_set_short_name (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bare_input_sticker_set (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, "inputStickerSetEmpty", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_input_sticker_set_empty (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 17 && !memcmp (cur_token, "inputStickerSetID", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_input_sticker_set_i_d (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 24 && !memcmp (cur_token, "inputStickerSetShortName", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_input_sticker_set_short_name (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ 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 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 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 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 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 store_type_keyboard_button (struct paramed_type *T) {
+ out_int (0xa2fa4880);
+ if (store_constructor_keyboard_button (T) < 0) { return -1; }
+ return 0;
+}
+int store_type_bare_keyboard_button (struct paramed_type *T) {
+ if (store_constructor_keyboard_button (T) < 0) { return -1; }
+ return 0;
+}
+int store_type_keyboard_button_row (struct paramed_type *T) {
+ out_int (0x77608b83);
+ if (store_constructor_keyboard_button_row (T) < 0) { return -1; }
+ return 0;
+}
+int store_type_bare_keyboard_button_row (struct paramed_type *T) {
+ if (store_constructor_keyboard_button_row (T) < 0) { return -1; }
+ return 0;
+}
+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 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 (0xc3060325);
+ local_next_token ();
+ if (store_constructor_message (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 == 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 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;
+ }
+ if (cur_token_len == 29 && !memcmp (cur_token, "messageActionChatJoinedByLink", cur_token_len)) {
+ out_int (0xf89cf5e8);
+ local_next_token ();
+ if (store_constructor_message_action_chat_joined_by_link (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;
+ }
+ if (cur_token_len == 29 && !memcmp (cur_token, "messageActionChatJoinedByLink", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_message_action_chat_joined_by_link (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ 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 (0x3d8ce53d);
+ 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 (0x5bcf1675);
+ 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 (0x9f84f49e);
+ 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;
+ }
+ if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaWebPage", cur_token_len)) {
+ out_int (0xa32dd600);
+ local_next_token ();
+ if (store_constructor_message_media_web_page (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVenue", cur_token_len)) {
+ out_int (0x7912b71f);
+ local_next_token ();
+ if (store_constructor_message_media_venue (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaPhotoL27", cur_token_len)) {
+ out_int (0xc8c45a2a);
+ local_next_token ();
+ if (store_constructor_message_media_photo_l27 (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaVideoL27", cur_token_len)) {
+ out_int (0xa2d24290);
+ local_next_token ();
+ if (store_constructor_message_media_video_l27 (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;
+ }
+ if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaWebPage", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_message_media_web_page (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVenue", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_message_media_venue (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaPhotoL27", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_message_media_photo_l27 (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaVideoL27", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_message_media_video_l27 (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ 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 == 38 && !memcmp (cur_token, "inputMessagesFilterPhotoVideoDocuments", cur_token_len)) {
+ out_int (0xd95e73bb);
+ local_next_token ();
+ if (store_constructor_input_messages_filter_photo_video_documents (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 == 38 && !memcmp (cur_token, "inputMessagesFilterPhotoVideoDocuments", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_input_messages_filter_photo_video_documents (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 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 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 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 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 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 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 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 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 (0xc3838076);
+ local_next_token ();
+ if (store_constructor_photo (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 8 && !memcmp (cur_token, "photoL27", cur_token_len)) {
+ out_int (0x22b56751);
+ local_next_token ();
+ if (store_constructor_photo_l27 (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;
+ }
+ if (cur_token_len == 8 && !memcmp (cur_token, "photoL27", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_photo_l27 (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ 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 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 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 store_type_received_notify_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, "receivedNotifyMessage", cur_token_len)) {
+ out_int (0xa384b779);
+ local_next_token ();
+ if (store_constructor_received_notify_message (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bare_received_notify_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, "receivedNotifyMessage", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_received_notify_message (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_reply_markup (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, "replyKeyboardHide", cur_token_len)) {
+ out_int (0xa03e5b85);
+ local_next_token ();
+ if (store_constructor_reply_keyboard_hide (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 23 && !memcmp (cur_token, "replyKeyboardForceReply", cur_token_len)) {
+ out_int (0xf4108aa0);
+ local_next_token ();
+ if (store_constructor_reply_keyboard_force_reply (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 19 && !memcmp (cur_token, "replyKeyboardMarkup", cur_token_len)) {
+ out_int (0x3502758c);
+ local_next_token ();
+ if (store_constructor_reply_keyboard_markup (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bare_reply_markup (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, "replyKeyboardHide", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_reply_keyboard_hide (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 23 && !memcmp (cur_token, "replyKeyboardForceReply", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_reply_keyboard_force_reply (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 19 && !memcmp (cur_token, "replyKeyboardMarkup", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_reply_keyboard_markup (T) < 0) { return -1; }
+ expect_token (")", 1);
+ 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 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 == 31 && !memcmp (cur_token, "sendMessageUploadVideoActionL27", cur_token_len)) {
+ out_int (0x92042ff7);
+ local_next_token ();
+ if (store_constructor_send_message_upload_video_action_l27 (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadVideoAction", cur_token_len)) {
+ out_int (0xe9763aec);
+ 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 == 31 && !memcmp (cur_token, "sendMessageUploadAudioActionL27", cur_token_len)) {
+ out_int (0xe6ac8a6f);
+ local_next_token ();
+ if (store_constructor_send_message_upload_audio_action_l27 (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadAudioAction", cur_token_len)) {
+ out_int (0xf351d7ab);
+ 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 (0xd1d34a26);
+ local_next_token ();
+ if (store_constructor_send_message_upload_photo_action (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 34 && !memcmp (cur_token, "sendMessageUploadDocumentActionL27", cur_token_len)) {
+ out_int (0x8faee98e);
+ local_next_token ();
+ if (store_constructor_send_message_upload_document_action_l27 (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadDocumentAction", cur_token_len)) {
+ out_int (0xaa0cd9e4);
+ 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 == 31 && !memcmp (cur_token, "sendMessageUploadVideoActionL27", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_send_message_upload_video_action_l27 (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 == 31 && !memcmp (cur_token, "sendMessageUploadAudioActionL27", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_send_message_upload_audio_action_l27 (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 == 34 && !memcmp (cur_token, "sendMessageUploadDocumentActionL27", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_send_message_upload_document_action_l27 (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 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 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 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 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 store_type_sticker_set (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, "stickerSet", cur_token_len)) {
+ out_int (0xa7a43b17);
+ local_next_token ();
+ if (store_constructor_sticker_set (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bare_sticker_set (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, "stickerSet", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_sticker_set (T) < 0) { return -1; }
+ expect_token (")", 1);
+ 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 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 (0x1f2b0afd);
+ 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 == 20 && !memcmp (cur_token, "updateDeleteMessages", cur_token_len)) {
+ out_int (0xa20db0e5);
+ local_next_token ();
+ if (store_constructor_update_delete_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 (0x9d2e67c5);
+ local_next_token ();
+ if (store_constructor_update_contact_link (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;
+ }
+ if (cur_token_len == 22 && !memcmp (cur_token, "updateReadHistoryInbox", cur_token_len)) {
+ out_int (0x9961fd5c);
+ local_next_token ();
+ if (store_constructor_update_read_history_inbox (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 23 && !memcmp (cur_token, "updateReadHistoryOutbox", cur_token_len)) {
+ out_int (0x2f2f21bf);
+ local_next_token ();
+ if (store_constructor_update_read_history_outbox (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 13 && !memcmp (cur_token, "updateWebPage", cur_token_len)) {
+ out_int (0x2cc36971);
+ local_next_token ();
+ if (store_constructor_update_web_page (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 26 && !memcmp (cur_token, "updateReadMessagesContents", cur_token_len)) {
+ out_int (0x68c13933);
+ local_next_token ();
+ if (store_constructor_update_read_messages_contents (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 15 && !memcmp (cur_token, "updateMsgUpdate", cur_token_len)) {
+ out_int (0x03114739);
+ local_next_token ();
+ if (store_constructor_update_msg_update (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 == 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 == 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 == 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;
+ }
+ if (cur_token_len == 22 && !memcmp (cur_token, "updateReadHistoryInbox", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_update_read_history_inbox (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 23 && !memcmp (cur_token, "updateReadHistoryOutbox", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_update_read_history_outbox (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 13 && !memcmp (cur_token, "updateWebPage", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_update_web_page (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 26 && !memcmp (cur_token, "updateReadMessagesContents", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_update_read_messages_contents (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 15 && !memcmp (cur_token, "updateMsgUpdate", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_update_msg_update (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ 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 (0xed5c2127);
+ 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 (0x52238b3c);
+ 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 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 == 4 && !memcmp (cur_token, "user", cur_token_len)) {
+ out_int (0x22e49072);
+ local_next_token ();
+ if (store_constructor_user (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 == 4 && !memcmp (cur_token, "user", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_user (T) < 0) { return -1; }
+ expect_token (")", 1);
+ 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 (0x5a89ac5b);
+ 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 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 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 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 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 (0xee9f4a4d);
+ local_next_token ();
+ if (store_constructor_video (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 8 && !memcmp (cur_token, "videoL27", cur_token_len)) {
+ out_int (0x388fa391);
+ local_next_token ();
+ if (store_constructor_video_l27 (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;
+ }
+ if (cur_token_len == 8 && !memcmp (cur_token, "videoL27", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_video_l27 (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ 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 store_type_web_page (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, "webPageEmpty", cur_token_len)) {
+ out_int (0xeb1477e8);
+ local_next_token ();
+ if (store_constructor_web_page_empty (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 14 && !memcmp (cur_token, "webPagePending", cur_token_len)) {
+ out_int (0xc586da1c);
+ local_next_token ();
+ if (store_constructor_web_page_pending (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 7 && !memcmp (cur_token, "webPage", cur_token_len)) {
+ out_int (0xa31ea0b5);
+ local_next_token ();
+ if (store_constructor_web_page (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bare_web_page (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, "webPageEmpty", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_web_page_empty (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 14 && !memcmp (cur_token, "webPagePending", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_web_page_pending (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 7 && !memcmp (cur_token, "webPage", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_web_page (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_account_authorizations (struct paramed_type *T) {
+ out_int (0x1250abde);
+ if (store_constructor_account_authorizations (T) < 0) { return -1; }
+ return 0;
+}
+int store_type_bare_account_authorizations (struct paramed_type *T) {
+ if (store_constructor_account_authorizations (T) < 0) { return -1; }
+ return 0;
+}
+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 (0x96dabc18);
+ 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 (0x7c18141c);
+ 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 store_type_account_password_input_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 == 29 && !memcmp (cur_token, "account.passwordInputSettings", cur_token_len)) {
+ out_int (0xbcfc532c);
+ local_next_token ();
+ if (store_constructor_account_password_input_settings (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bare_account_password_input_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 == 29 && !memcmp (cur_token, "account.passwordInputSettings", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_account_password_input_settings (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_account_password_settings (struct paramed_type *T) {
+ out_int (0xb7b72ab3);
+ if (store_constructor_account_password_settings (T) < 0) { return -1; }
+ return 0;
+}
+int store_type_bare_account_password_settings (struct paramed_type *T) {
+ if (store_constructor_account_password_settings (T) < 0) { return -1; }
+ return 0;
+}
+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 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 store_type_auth_authorization (struct paramed_type *T) {
+ out_int (0xff036af1);
+ if (store_constructor_auth_authorization (T) < 0) { return -1; }
+ return 0;
+}
+int store_type_bare_auth_authorization (struct paramed_type *T) {
+ if (store_constructor_auth_authorization (T) < 0) { return -1; }
+ return 0;
+}
+int store_type_auth_checked_phone (struct paramed_type *T) {
+ out_int (0x811ea28e);
+ if (store_constructor_auth_checked_phone (T) < 0) { return -1; }
+ return 0;
+}
+int store_type_bare_auth_checked_phone (struct paramed_type *T) {
+ if (store_constructor_auth_checked_phone (T) < 0) { return -1; }
+ return 0;
+}
+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 store_type_auth_password_recovery (struct paramed_type *T) {
+ out_int (0x137948a5);
+ if (store_constructor_auth_password_recovery (T) < 0) { return -1; }
+ return 0;
+}
+int store_type_bare_auth_password_recovery (struct paramed_type *T) {
+ if (store_constructor_auth_password_recovery (T) < 0) { return -1; }
+ return 0;
+}
+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 store_type_binlog_encr_key (struct paramed_type *T) {
+ out_int (0x0377168f);
+ if (store_constructor_binlog_encr_key (T) < 0) { return -1; }
+ return 0;
+}
+int store_type_bare_binlog_encr_key (struct paramed_type *T) {
+ if (store_constructor_binlog_encr_key (T) < 0) { return -1; }
+ return 0;
+}
+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 (0xf96feb32);
+ local_next_token ();
+ if (store_constructor_binlog_dc_option (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 18 && !memcmp (cur_token, "binlog.dcOptionNew", cur_token_len)) {
+ out_int (0x7c0d22d8);
+ local_next_token ();
+ if (store_constructor_binlog_dc_option_new (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 14 && !memcmp (cur_token, "binlog.authKey", cur_token_len)) {
+ out_int (0x71e8c156);
+ 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 == 15 && !memcmp (cur_token, "binlog.dcSigned", cur_token_len)) {
+ out_int (0x26451bb5);
+ local_next_token ();
+ if (store_constructor_binlog_dc_signed (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 == 18 && !memcmp (cur_token, "binlog.setDhParams", cur_token_len)) {
+ out_int (0xeaeb7826);
+ 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 == 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 == 18 && !memcmp (cur_token, "binlog.encrChatNew", cur_token_len)) {
+ out_int (0x84977251);
+ local_next_token ();
+ if (store_constructor_binlog_encr_chat_new (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 26 && !memcmp (cur_token, "binlog.encrChatExchangeNew", cur_token_len)) {
+ out_int (0x9d49488d);
+ local_next_token ();
+ if (store_constructor_binlog_encr_chat_exchange_new (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 == 14 && !memcmp (cur_token, "binlog.userNew", cur_token_len)) {
+ out_int (0x127cf2f9);
+ local_next_token ();
+ if (store_constructor_binlog_user_new (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 14 && !memcmp (cur_token, "binlog.chatNew", cur_token_len)) {
+ out_int (0x0a10aa92);
+ local_next_token ();
+ if (store_constructor_binlog_chat_new (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatAddParticipant", cur_token_len)) {
+ out_int (0x535475ea);
+ 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 (0x7dd1a1a2);
+ local_next_token ();
+ if (store_constructor_binlog_chat_del_participant (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 == 20 && !memcmp (cur_token, "binlog.messageDelete", cur_token_len)) {
+ out_int (0x847e77b1);
+ local_next_token ();
+ if (store_constructor_binlog_message_delete (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 17 && !memcmp (cur_token, "binlog.messageNew", cur_token_len)) {
+ out_int (0x427cfcdb);
+ local_next_token ();
+ if (store_constructor_binlog_message_new (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 21 && !memcmp (cur_token, "binlog.messageEncrNew", cur_token_len)) {
+ out_int (0x6cf7cabc);
+ local_next_token ();
+ if (store_constructor_binlog_message_encr_new (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 == 18 && !memcmp (cur_token, "binlog.dcOptionNew", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_binlog_dc_option_new (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 == 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 == 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 == 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 == 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 == 18 && !memcmp (cur_token, "binlog.encrChatNew", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_binlog_encr_chat_new (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 26 && !memcmp (cur_token, "binlog.encrChatExchangeNew", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_binlog_encr_chat_exchange_new (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 == 14 && !memcmp (cur_token, "binlog.userNew", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_binlog_user_new (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 14 && !memcmp (cur_token, "binlog.chatNew", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_binlog_chat_new (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 == 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 == 20 && !memcmp (cur_token, "binlog.messageDelete", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_binlog_message_delete (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 17 && !memcmp (cur_token, "binlog.messageNew", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_binlog_message_new (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ if (cur_token_len == 21 && !memcmp (cur_token, "binlog.messageEncrNew", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_binlog_message_encr_new (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 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 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 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 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 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 (0x3ace484c);
+ 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 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 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 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 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 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 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 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 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 (0xb45c69d1);
+ 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 store_type_messages_affected_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 == 25 && !memcmp (cur_token, "messages.affectedMessages", cur_token_len)) {
+ out_int (0x84d19185);
+ local_next_token ();
+ if (store_constructor_messages_affected_messages (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bare_messages_affected_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 == 25 && !memcmp (cur_token, "messages.affectedMessages", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_messages_affected_messages (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ 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 (0x5ce352ec);
+ 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 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 store_type_messages_chats (struct paramed_type *T) {
+ out_int (0x64ff9fd5);
+ if (store_constructor_messages_chats (T) < 0) { return -1; }
+ return 0;
+}
+int store_type_bare_messages_chats (struct paramed_type *T) {
+ if (store_constructor_messages_chats (T) < 0) { return -1; }
+ return 0;
+}
+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 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 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;
+ }
+ 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;
+ }
+ 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 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 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 (0x4c3d47f3);
+ 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 (0x35a1a663);
+ 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 store_type_messages_sticker_set (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, "messages.stickerSet", cur_token_len)) {
+ out_int (0xb60a24a6);
+ local_next_token ();
+ if (store_constructor_messages_sticker_set (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ return -1;
+}
+int store_type_bare_messages_sticker_set (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, "messages.stickerSet", cur_token_len)) {
+ local_next_token ();
+ if (store_constructor_messages_sticker_set (T) < 0) { return -1; }
+ expect_token (")", 1);
+ return 0;
+ }
+ 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 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 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 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 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 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 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;
+}
+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 = 0x02e6c0c8, .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 *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 *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 *store_function_account_get_authorizations (void) {
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1250abde, .id = "account.Authorizations", .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 *store_function_account_get_password (void) {
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xeac2a804, .id = "account.Password", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_get_password_settings (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;}
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb7b72ab3, .id = "account.PasswordSettings", .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 *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 *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 *store_function_account_reset_authorization (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 = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_bare_long (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_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 *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 *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 *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 *store_function_account_update_device_locked (void) {
+ if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "period", 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 *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 *store_function_account_update_password_settings (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 == 12 && !cur_token_quoted && !memcmp (cur_token, "new_settings", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr (":", 1);
+ }
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xbcfc532c, .id = "account.PasswordInputSettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_account_password_input_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 = 0x02e6c0c8, .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 *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 = 0x02e6c0c8, .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 *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 = 0xff036af1, .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 = 0x811ea28e, .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 *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 = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *store_function_auth_import_bot_authorization (void) {
+ if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", 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, "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 == 8 && !cur_token_quoted && !memcmp (cur_token, "api_hash", 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, "bot_auth_token", 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 = 0xff036af1, .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 *store_function_auth_recover_password (void) {
+ if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "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 = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *store_function_auth_request_password_recovery (void) {
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x137948a5, .id = "auth.PasswordRecovery", .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 *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 *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 *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 *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 *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 = 0xff036af1, .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 = 0xff036af1, .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 *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 = 0x3ace484c, .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 *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 *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 *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 *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 *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 *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 = 0x02e6c0c8, .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 *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 = 0x02e6c0c8, .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 *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 *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 *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 *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 *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 *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 *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 *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 *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 *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 = 0x80895ae0, .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 *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 = 0xb32c91dd, .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 *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 *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 *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 *store_function_help_get_config (void) {
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4e32b894, .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 *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 *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 *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 *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 *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 *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 *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 *store_function_invoke_without_updates (void) {
+ 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 *field2 = store_function_any ();
+ if (!field2) { return 0; }
+ if (ODDP(field2)) { return 0; }
+ struct paramed_type *var0 = field2; 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 *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 = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_check_chat_invite (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 = 0x94f910b1, .id = "ChatInvite", .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 = 0x22499d27, .id = "Updates", .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 = 0x22499d27, .id = "Updates", .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 = 0xb45c69d1, .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 = 0x84d19185, .id = "messages.AffectedMessages", .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 *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 = 0x22499d27, .id = "Updates", .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 = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_export_chat_invite (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 = 0x95f132d5, .id = "ExportedChatInvite", .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 = 0x22499d27, .id = "Updates", .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;}
+ 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 = 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 (field3) < 0) { return 0;}
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .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 = 0xb485502f, .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 = 0x64ff9fd5, .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 *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 *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 *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 *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 *store_function_messages_get_sticker_set (void) {
+ if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "stickerset", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr (":", 1);
+ }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_input_sticker_set (field1) < 0) { return 0;}
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb60a24a6, .id = "messages.StickerSet", .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 *store_function_messages_get_web_page_preview (void) {
+ 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 *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 = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_import_chat_invite (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 = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_install_sticker_set (void) {
+ if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "stickerset", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr (":", 1);
+ }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_input_sticker_set (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_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 *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;}
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb45c69d1, .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 = 0x84d19185, .id = "messages.AffectedMessages", .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 = 0xa384b779, .id = "ReceivedNotifyMessage", .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 *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 *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 = 0x80895ae0, .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 *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 == 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 = 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 == 7 && !cur_token_quoted && !memcmp (cur_token, "message", 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, "media", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr (":", 1);
+ }
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb32c91dd, .id = "InputMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_input_media (field4) < 0) { return 0;}
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .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 *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 *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 *store_function_messages_send_media (void) {
+ if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr (":", 1);
+ }
+ if (cur_token_len < 0) { return 0; }
+ if (!is_int ()) { return 0;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ out_int (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 *field2 =
+ &(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 (field2) < 0) { return 0;}
+ if (PTR2INT (var0) & (1 << 0)) {
+ if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_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, "media", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr (":", 1);
+ }
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb32c91dd, .id = "InputMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_input_media (field4) < 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 *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 (PTR2INT (var0) & (1 << 2)) {
+ if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr (":", 1);
+ }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_reply_markup (field6) < 0) { return 0;}
+ }
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .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 == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr (":", 1);
+ }
+ if (cur_token_len < 0) { return 0; }
+ if (!is_int ()) { return 0;}
+ struct paramed_type *var0 = INT2PTR (get_int ());
+ out_int (get_int ());
+ assert (var0);
+ local_next_token ();
+ 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 *field2 =
+ &(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 (field2) < 0) { return 0;}
+ if (PTR2INT (var0) & (1 << 0)) {
+ if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_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 == 7 && !cur_token_quoted && !memcmp (cur_token, "message", 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, "random_id", 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 (PTR2INT (var0) & (1 << 2)) {
+ if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr (":", 1);
+ }
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_reply_markup (field6) < 0) { return 0;}
+ }
+ struct paramed_type *R =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x799ce190, .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 *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 = 0x70541c7e, .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 *store_function_messages_start_bot (void) {
+ if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "bot", 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 == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_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;}
+ if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "start_param", 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 = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_uninstall_sticker_set (void) {
+ if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "stickerset", cur_token_len)) {
+ local_next_token ();
+ expect_token_ptr (":", 1);
+ }
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ if (store_type_input_sticker_set (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_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 *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 *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 *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 *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 *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 *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 *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 *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 *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 *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 *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 *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 = 0x5a89ac5b, .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 = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ return paramed_type_dup (R);
+}
+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 0x7bf2e6f6: return store_type_authorization (T);
+ case 0x840d1909: return store_type_bare_authorization (T);
+ case 0x250be282: return store_type_bool (T);
+ case 0xdaf41d7d: return store_type_bare_bool (T);
+ case 0x75e7ea6c: return store_type_bot_command (T);
+ case 0x8a181593: return store_type_bare_bot_command (T);
+ case 0xb2e16f93: return store_type_bot_info (T);
+ case 0x4d1e906c: return store_type_bare_bot_info (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 0x2e02a614: return store_type_chat_full (T);
+ case 0xd1fd59eb: return store_type_bare_chat_full (T);
+ case 0x94f910b1: return store_type_chat_invite (T);
+ case 0x6b06ef4e: return store_type_bare_chat_invite (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 0x4e32b894: return store_type_config (T);
+ case 0xb1cd476b: 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 0x522fbc63: return store_type_contact_link (T);
+ case 0xadd0439c: return store_type_bare_contact_link (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 0x2b1a62f0: return store_type_dc_option (T);
+ case 0xd4e59d0f: return store_type_bare_dc_option (T);
+ case 0x535b7918: return store_type_decrypted_message (T);
+ case 0xaca486e7: 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 0x34e0d674: return store_type_decrypted_message_media (T);
+ case 0xcb1f298b: return store_type_bare_decrypted_message_media (T);
+ case 0xc1dd804a: return store_type_dialog (T);
+ case 0x3e227fb5: return store_type_bare_dialog (T);
+ case 0xae636f24: return store_type_disabled_feature (T);
+ case 0x519c90db: return store_type_bare_disabled_feature (T);
+ case 0x51a73418: return store_type_document (T);
+ case 0xae58cbe7: return store_type_bare_document (T);
+ case 0x97c637a3: return store_type_document_attribute (T);
+ case 0x6839c85c: 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 0x95f132d5: return store_type_exported_chat_invite (T);
+ case 0x6a0ecd2a: return store_type_bare_exported_chat_invite (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 0xb32c91dd: return store_type_input_media (T);
+ case 0x4cd36e22: 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 0xe44d415c: return store_type_input_sticker_set (T);
+ case 0x1bb2bea3: return store_type_bare_input_sticker_set (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 0xa2fa4880: return store_type_keyboard_button (T);
+ case 0x5d05b77f: return store_type_bare_keyboard_button (T);
+ case 0x77608b83: return store_type_keyboard_button_row (T);
+ case 0x889f747c: return store_type_bare_keyboard_button_row (T);
+ case 0x22076cba: return store_type_long (T);
+ case 0xddf89345: return store_type_bare_long (T);
+ case 0x5d652a7f: return store_type_message (T);
+ case 0xa29ad580: return store_type_bare_message (T);
+ case 0x383415fa: return store_type_message_action (T);
+ case 0xc7cbea05: return store_type_bare_message_action (T);
+ case 0x95f2471a: return store_type_message_media (T);
+ case 0x6a0db8e5: return store_type_bare_message_media (T);
+ case 0x80895ae0: return store_type_messages_filter (T);
+ case 0x7f76a51f: 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 0xc207550a: return store_type_photo (T);
+ case 0x3df8aaf5: 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 0xa384b779: return store_type_received_notify_message (T);
+ case 0x5c7b4886: return store_type_bare_received_notify_message (T);
+ case 0x612ca4a9: return store_type_reply_markup (T);
+ case 0x9ed35b56: return store_type_bare_reply_markup (T);
+ case 0x05162463: return store_type_res_p_q (T);
+ case 0xfae9db9c: return store_type_bare_res_p_q (T);
+ case 0x70541c7e: return store_type_send_message_action (T);
+ case 0x8fabe381: 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 0xa7a43b17: return store_type_sticker_set (T);
+ case 0x585bc4e8: return store_type_bare_sticker_set (T);
+ case 0xb5286e24: return store_type_string (T);
+ case 0x4ad791db: return store_type_bare_string (T);
+ case 0x2e02b27e: return store_type_update (T);
+ case 0xd1fd4d81: return store_type_bare_update (T);
+ case 0x22499d27: return store_type_updates (T);
+ case 0xddb662d8: return store_type_bare_updates (T);
+ case 0x02e6c0c8: return store_type_user (T);
+ case 0xfd193f37: return store_type_bare_user (T);
+ case 0x5a89ac5b: return store_type_user_full (T);
+ case 0xa57653a4: 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 0x1716b174: return store_type_video (T);
+ case 0xe8e94e8b: return store_type_bare_video (T);
+ case 0xafa14973: return store_type_wall_paper (T);
+ case 0x505eb68c: return store_type_bare_wall_paper (T);
+ case 0x8d8c0d41: return store_type_web_page (T);
+ case 0x7273f2be: return store_type_bare_web_page (T);
+ case 0x1250abde: return store_type_account_authorizations (T);
+ case 0xedaf5421: return store_type_bare_account_authorizations (T);
+ case 0xeac2a804: return store_type_account_password (T);
+ case 0x153d57fb: return store_type_bare_account_password (T);
+ case 0xbcfc532c: return store_type_account_password_input_settings (T);
+ case 0x4303acd3: return store_type_bare_account_password_input_settings (T);
+ case 0xb7b72ab3: return store_type_account_password_settings (T);
+ case 0x4848d54c: return store_type_bare_account_password_settings (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 0xff036af1: return store_type_auth_authorization (T);
+ case 0x00fc950e: return store_type_bare_auth_authorization (T);
+ case 0x811ea28e: return store_type_auth_checked_phone (T);
+ case 0x7ee15d71: 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 0x137948a5: return store_type_auth_password_recovery (T);
+ case 0xec86b75a: return store_type_bare_auth_password_recovery (T);
+ case 0x0cc8bc16: return store_type_auth_sent_code (T);
+ case 0xf33743e9: return store_type_bare_auth_sent_code (T);
+ case 0x0377168f: return store_type_binlog_encr_key (T);
+ case 0xfc88e970: return store_type_bare_binlog_encr_key (T);
+ case 0x66ff03a6: return store_type_binlog_update (T);
+ case 0x9900fc59: 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 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 0x3ace484c: return store_type_contacts_link (T);
+ case 0xc531b7b3: return store_type_bare_contacts_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 0xb45c69d1: return store_type_messages_affected_history (T);
+ case 0x4ba3962e: return store_type_bare_messages_affected_history (T);
+ case 0x84d19185: return store_type_messages_affected_messages (T);
+ case 0x7b2e6e7a: return store_type_bare_messages_affected_messages (T);
+ case 0xb485502f: return store_type_messages_all_stickers (T);
+ case 0x4b7aafd0: return store_type_bare_messages_all_stickers (T);
+ case 0xe5d7d19c: return store_type_messages_chat_full (T);
+ case 0x1a282e63: return store_type_bare_messages_chat_full (T);
+ case 0x64ff9fd5: return store_type_messages_chats (T);
+ case 0x9b00602a: 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 0x3f4e0648: return store_type_messages_message (T);
+ case 0xc0b1f9b7: 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 0x799ce190: return store_type_messages_sent_message (T);
+ case 0x86631e6f: return store_type_bare_messages_sent_message (T);
+ case 0xb60a24a6: return store_type_messages_sticker_set (T);
+ case 0x49f5db59: return store_type_bare_messages_sticker_set (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; }
+}
+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.getAuthorizations", cur_token_len)) {
+ out_int (0xe320c158);
+ local_next_token ();
+ struct paramed_type *P = store_function_account_get_authorizations ();
+ 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 == 27 && !memcmp (cur_token, "account.getPasswordSettings", cur_token_len)) {
+ out_int (0xbc8d11bb);
+ local_next_token ();
+ struct paramed_type *P = store_function_account_get_password_settings ();
+ 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 == 26 && !memcmp (cur_token, "account.resetAuthorization", cur_token_len)) {
+ out_int (0xdf77f3bc);
+ local_next_token ();
+ struct paramed_type *P = store_function_account_reset_authorization ();
+ 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 == 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 == 26 && !memcmp (cur_token, "account.updateDeviceLocked", cur_token_len)) {
+ out_int (0x38df3532);
+ local_next_token ();
+ struct paramed_type *P = store_function_account_update_device_locked ();
+ 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 == 30 && !memcmp (cur_token, "account.updatePasswordSettings", cur_token_len)) {
+ out_int (0xfa7c4b86);
+ local_next_token ();
+ struct paramed_type *P = store_function_account_update_password_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 == 27 && !memcmp (cur_token, "auth.importBotAuthorization", cur_token_len)) {
+ out_int (0x67a3ff2c);
+ local_next_token ();
+ struct paramed_type *P = store_function_auth_import_bot_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 == 20 && !memcmp (cur_token, "auth.recoverPassword", cur_token_len)) {
+ out_int (0x4ea56e92);
+ local_next_token ();
+ struct paramed_type *P = store_function_auth_recover_password ();
+ 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, "auth.requestPasswordRecovery", cur_token_len)) {
+ out_int (0xd897bc66);
+ local_next_token ();
+ struct paramed_type *P = store_function_auth_request_password_recovery ();
+ 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 == 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 == 20 && !memcmp (cur_token, "invokeWithoutUpdates", cur_token_len)) {
+ out_int (0xbf9459b7);
+ local_next_token ();
+ struct paramed_type *P = store_function_invoke_without_updates ();
+ 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 (0xf9a0aa09);
+ 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 == 24 && !memcmp (cur_token, "messages.checkChatInvite", cur_token_len)) {
+ out_int (0x3eadb1bb);
+ local_next_token ();
+ struct paramed_type *P = store_function_messages_check_chat_invite ();
+ 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 (0x09cb126e);
+ 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 (0xe0611f16);
+ 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 (0xa5f18925);
+ 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 (0xca4c79d8);
+ 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 (0xdc452855);
+ 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 == 25 && !memcmp (cur_token, "messages.exportChatInvite", cur_token_len)) {
+ out_int (0x7d885289);
+ local_next_token ();
+ struct paramed_type *P = store_function_messages_export_chat_invite ();
+ 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 (0x33963bf9);
+ 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 (0x55e1728d);
+ 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 == 22 && !memcmp (cur_token, "messages.getStickerSet", cur_token_len)) {
+ out_int (0x2619a90e);
+ local_next_token ();
+ struct paramed_type *P = store_function_messages_get_sticker_set ();
+ 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 == 26 && !memcmp (cur_token, "messages.getWebPagePreview", cur_token_len)) {
+ out_int (0x25223e24);
+ local_next_token ();
+ struct paramed_type *P = store_function_messages_get_web_page_preview ();
+ 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.importChatInvite", cur_token_len)) {
+ out_int (0x6c50051c);
+ local_next_token ();
+ struct paramed_type *P = store_function_messages_import_chat_invite ();
+ 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.installStickerSet", cur_token_len)) {
+ out_int (0xefbbfae9);
+ local_next_token ();
+ struct paramed_type *P = store_function_messages_install_sticker_set ();
+ 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 (0xb04f2510);
+ 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 (0x36a73f77);
+ 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 (0x05a954c0);
+ 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 == 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 (0xbf73f4da);
+ 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 (0xc8f16791);
+ 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 (0xfc55e6b5);
+ 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 == 17 && !memcmp (cur_token, "messages.startBot", cur_token_len)) {
+ out_int (0x1b3e0ffc);
+ local_next_token ();
+ struct paramed_type *P = store_function_messages_start_bot ();
+ 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.uninstallStickerSet", cur_token_len)) {
+ out_int (0xf96e55de);
+ local_next_token ();
+ struct paramed_type *P = store_function_messages_uninstall_sticker_set ();
+ 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;
+}
diff --git a/libs/tgl/src/auto/auto-store.h b/libs/tgl/src/auto/auto-store.h
new file mode 100644
index 0000000000..9a7a737ad2
--- /dev/null
+++ b/libs/tgl/src/auto/auto-store.h
@@ -0,0 +1,848 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#else
+#include "auto.h"
+#endif
+#include <assert.h>
+struct paramed_type *tglf_extf_store (struct tgl_state *TLS, const char *data, int data_len);
+int tglf_store_type (struct tgl_state *TLS, const char *work, int work_len, struct paramed_type *P);
+int store_constructor_account_days_t_t_l (struct paramed_type *T);
+int store_constructor_audio_empty (struct paramed_type *T);
+int store_constructor_audio (struct paramed_type *T);
+int store_constructor_authorization (struct paramed_type *T);
+int store_constructor_bool_false (struct paramed_type *T);
+int store_constructor_bool_true (struct paramed_type *T);
+int store_constructor_bot_command (struct paramed_type *T);
+int store_constructor_bot_command_old (struct paramed_type *T);
+int store_constructor_bot_info_empty (struct paramed_type *T);
+int store_constructor_bot_info (struct paramed_type *T);
+int store_constructor_bytes (struct paramed_type *T);
+int store_constructor_chat_empty (struct paramed_type *T);
+int store_constructor_chat (struct paramed_type *T);
+int store_constructor_chat_forbidden (struct paramed_type *T);
+int store_constructor_geo_chat (struct paramed_type *T);
+int store_constructor_chat_full (struct paramed_type *T);
+int store_constructor_chat_invite_already (struct paramed_type *T);
+int store_constructor_chat_invite (struct paramed_type *T);
+int store_constructor_chat_located (struct paramed_type *T);
+int store_constructor_chat_participant (struct paramed_type *T);
+int store_constructor_chat_participants_forbidden (struct paramed_type *T);
+int store_constructor_chat_participants (struct paramed_type *T);
+int store_constructor_chat_photo_empty (struct paramed_type *T);
+int store_constructor_chat_photo (struct paramed_type *T);
+int store_constructor_client_d_h_inner_data (struct paramed_type *T);
+int store_constructor_config (struct paramed_type *T);
+int store_constructor_contact (struct paramed_type *T);
+int store_constructor_contact_blocked (struct paramed_type *T);
+int store_constructor_contact_found (struct paramed_type *T);
+int store_constructor_contact_link_unknown (struct paramed_type *T);
+int store_constructor_contact_link_none (struct paramed_type *T);
+int store_constructor_contact_link_has_phone (struct paramed_type *T);
+int store_constructor_contact_link_contact (struct paramed_type *T);
+int store_constructor_contact_status (struct paramed_type *T);
+int store_constructor_contact_suggested (struct paramed_type *T);
+int store_constructor_dc_option_l28 (struct paramed_type *T);
+int store_constructor_dc_option (struct paramed_type *T);
+int store_constructor_decrypted_message (struct paramed_type *T);
+int store_constructor_decrypted_message_service (struct paramed_type *T);
+int store_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T);
+int store_constructor_decrypted_message_action_read_messages (struct paramed_type *T);
+int store_constructor_decrypted_message_action_delete_messages (struct paramed_type *T);
+int store_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T);
+int store_constructor_decrypted_message_action_flush_history (struct paramed_type *T);
+int store_constructor_decrypted_message_action_resend (struct paramed_type *T);
+int store_constructor_decrypted_message_action_notify_layer (struct paramed_type *T);
+int store_constructor_decrypted_message_action_typing (struct paramed_type *T);
+int store_constructor_decrypted_message_action_request_key (struct paramed_type *T);
+int store_constructor_decrypted_message_action_accept_key (struct paramed_type *T);
+int store_constructor_decrypted_message_action_abort_key (struct paramed_type *T);
+int store_constructor_decrypted_message_action_commit_key (struct paramed_type *T);
+int store_constructor_decrypted_message_action_noop (struct paramed_type *T);
+int store_constructor_decrypted_message_layer (struct paramed_type *T);
+int store_constructor_decrypted_message_media_empty (struct paramed_type *T);
+int store_constructor_decrypted_message_media_photo (struct paramed_type *T);
+int store_constructor_decrypted_message_media_geo_point (struct paramed_type *T);
+int store_constructor_decrypted_message_media_contact (struct paramed_type *T);
+int store_constructor_decrypted_message_media_document (struct paramed_type *T);
+int store_constructor_decrypted_message_media_video (struct paramed_type *T);
+int store_constructor_decrypted_message_media_audio (struct paramed_type *T);
+int store_constructor_decrypted_message_media_external_document (struct paramed_type *T);
+int store_constructor_decrypted_message_media_video_l12 (struct paramed_type *T);
+int store_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T);
+int store_constructor_dialog (struct paramed_type *T);
+int store_constructor_disabled_feature (struct paramed_type *T);
+int store_constructor_document_empty (struct paramed_type *T);
+int store_constructor_document (struct paramed_type *T);
+int store_constructor_document_l19 (struct paramed_type *T);
+int store_constructor_document_attribute_image_size (struct paramed_type *T);
+int store_constructor_document_attribute_animated (struct paramed_type *T);
+int store_constructor_document_attribute_sticker_l28 (struct paramed_type *T);
+int store_constructor_document_attribute_sticker (struct paramed_type *T);
+int store_constructor_document_attribute_video (struct paramed_type *T);
+int store_constructor_document_attribute_audio (struct paramed_type *T);
+int store_constructor_document_attribute_filename (struct paramed_type *T);
+int store_constructor_double (struct paramed_type *T);
+int store_constructor_encrypted_chat_empty (struct paramed_type *T);
+int store_constructor_encrypted_chat_waiting (struct paramed_type *T);
+int store_constructor_encrypted_chat_requested (struct paramed_type *T);
+int store_constructor_encrypted_chat (struct paramed_type *T);
+int store_constructor_encrypted_chat_discarded (struct paramed_type *T);
+int store_constructor_encrypted_file_empty (struct paramed_type *T);
+int store_constructor_encrypted_file (struct paramed_type *T);
+int store_constructor_encrypted_message (struct paramed_type *T);
+int store_constructor_encrypted_message_service (struct paramed_type *T);
+int store_constructor_error (struct paramed_type *T);
+int store_constructor_chat_invite_empty (struct paramed_type *T);
+int store_constructor_chat_invite_exported (struct paramed_type *T);
+int store_constructor_file_location_unavailable (struct paramed_type *T);
+int store_constructor_file_location (struct paramed_type *T);
+int store_constructor_geo_chat_message_empty (struct paramed_type *T);
+int store_constructor_geo_chat_message (struct paramed_type *T);
+int store_constructor_geo_chat_message_service (struct paramed_type *T);
+int store_constructor_geo_point_empty (struct paramed_type *T);
+int store_constructor_geo_point (struct paramed_type *T);
+int store_constructor_imported_contact (struct paramed_type *T);
+int store_constructor_input_app_event (struct paramed_type *T);
+int store_constructor_input_audio_empty (struct paramed_type *T);
+int store_constructor_input_audio (struct paramed_type *T);
+int store_constructor_input_chat_photo_empty (struct paramed_type *T);
+int store_constructor_input_chat_uploaded_photo (struct paramed_type *T);
+int store_constructor_input_chat_photo (struct paramed_type *T);
+int store_constructor_input_phone_contact (struct paramed_type *T);
+int store_constructor_input_document_empty (struct paramed_type *T);
+int store_constructor_input_document (struct paramed_type *T);
+int store_constructor_input_encrypted_chat (struct paramed_type *T);
+int store_constructor_input_encrypted_file_empty (struct paramed_type *T);
+int store_constructor_input_encrypted_file_uploaded (struct paramed_type *T);
+int store_constructor_input_encrypted_file (struct paramed_type *T);
+int store_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T);
+int store_constructor_input_file (struct paramed_type *T);
+int store_constructor_input_file_big (struct paramed_type *T);
+int store_constructor_input_file_location (struct paramed_type *T);
+int store_constructor_input_video_file_location (struct paramed_type *T);
+int store_constructor_input_encrypted_file_location (struct paramed_type *T);
+int store_constructor_input_audio_file_location (struct paramed_type *T);
+int store_constructor_input_document_file_location (struct paramed_type *T);
+int store_constructor_input_geo_chat (struct paramed_type *T);
+int store_constructor_input_geo_point_empty (struct paramed_type *T);
+int store_constructor_input_geo_point (struct paramed_type *T);
+int store_constructor_input_media_empty (struct paramed_type *T);
+int store_constructor_input_media_uploaded_photo (struct paramed_type *T);
+int store_constructor_input_media_photo (struct paramed_type *T);
+int store_constructor_input_media_geo_point (struct paramed_type *T);
+int store_constructor_input_media_contact (struct paramed_type *T);
+int store_constructor_input_media_uploaded_video (struct paramed_type *T);
+int store_constructor_input_media_uploaded_thumb_video (struct paramed_type *T);
+int store_constructor_input_media_video (struct paramed_type *T);
+int store_constructor_input_media_uploaded_audio (struct paramed_type *T);
+int store_constructor_input_media_audio (struct paramed_type *T);
+int store_constructor_input_media_uploaded_document (struct paramed_type *T);
+int store_constructor_input_media_uploaded_thumb_document (struct paramed_type *T);
+int store_constructor_input_media_document (struct paramed_type *T);
+int store_constructor_input_media_venue (struct paramed_type *T);
+int store_constructor_input_notify_peer (struct paramed_type *T);
+int store_constructor_input_notify_users (struct paramed_type *T);
+int store_constructor_input_notify_chats (struct paramed_type *T);
+int store_constructor_input_notify_all (struct paramed_type *T);
+int store_constructor_input_notify_geo_chat_peer (struct paramed_type *T);
+int store_constructor_input_peer_empty (struct paramed_type *T);
+int store_constructor_input_peer_self (struct paramed_type *T);
+int store_constructor_input_peer_contact (struct paramed_type *T);
+int store_constructor_input_peer_foreign (struct paramed_type *T);
+int store_constructor_input_peer_chat (struct paramed_type *T);
+int store_constructor_input_peer_notify_events_empty (struct paramed_type *T);
+int store_constructor_input_peer_notify_events_all (struct paramed_type *T);
+int store_constructor_input_peer_notify_settings (struct paramed_type *T);
+int store_constructor_input_photo_empty (struct paramed_type *T);
+int store_constructor_input_photo (struct paramed_type *T);
+int store_constructor_input_photo_crop_auto (struct paramed_type *T);
+int store_constructor_input_photo_crop (struct paramed_type *T);
+int store_constructor_input_privacy_key_status_timestamp (struct paramed_type *T);
+int store_constructor_input_privacy_value_allow_contacts (struct paramed_type *T);
+int store_constructor_input_privacy_value_allow_all (struct paramed_type *T);
+int store_constructor_input_privacy_value_allow_users (struct paramed_type *T);
+int store_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T);
+int store_constructor_input_privacy_value_disallow_all (struct paramed_type *T);
+int store_constructor_input_privacy_value_disallow_users (struct paramed_type *T);
+int store_constructor_input_sticker_set_empty (struct paramed_type *T);
+int store_constructor_input_sticker_set_i_d (struct paramed_type *T);
+int store_constructor_input_sticker_set_short_name (struct paramed_type *T);
+int store_constructor_input_user_empty (struct paramed_type *T);
+int store_constructor_input_user_self (struct paramed_type *T);
+int store_constructor_input_user_contact (struct paramed_type *T);
+int store_constructor_input_user_foreign (struct paramed_type *T);
+int store_constructor_input_video_empty (struct paramed_type *T);
+int store_constructor_input_video (struct paramed_type *T);
+int store_constructor_int (struct paramed_type *T);
+int store_constructor_int128 (struct paramed_type *T);
+int store_constructor_int256 (struct paramed_type *T);
+int store_constructor_keyboard_button (struct paramed_type *T);
+int store_constructor_keyboard_button_row (struct paramed_type *T);
+int store_constructor_long (struct paramed_type *T);
+int store_constructor_message_empty (struct paramed_type *T);
+int store_constructor_message (struct paramed_type *T);
+int store_constructor_message_service (struct paramed_type *T);
+int store_constructor_message_action_empty (struct paramed_type *T);
+int store_constructor_message_action_chat_create (struct paramed_type *T);
+int store_constructor_message_action_chat_edit_title (struct paramed_type *T);
+int store_constructor_message_action_chat_edit_photo (struct paramed_type *T);
+int store_constructor_message_action_chat_delete_photo (struct paramed_type *T);
+int store_constructor_message_action_chat_add_user (struct paramed_type *T);
+int store_constructor_message_action_chat_delete_user (struct paramed_type *T);
+int store_constructor_message_action_geo_chat_create (struct paramed_type *T);
+int store_constructor_message_action_geo_chat_checkin (struct paramed_type *T);
+int store_constructor_message_action_chat_joined_by_link (struct paramed_type *T);
+int store_constructor_message_media_empty (struct paramed_type *T);
+int store_constructor_message_media_photo (struct paramed_type *T);
+int store_constructor_message_media_video (struct paramed_type *T);
+int store_constructor_message_media_geo (struct paramed_type *T);
+int store_constructor_message_media_contact (struct paramed_type *T);
+int store_constructor_message_media_unsupported (struct paramed_type *T);
+int store_constructor_message_media_document (struct paramed_type *T);
+int store_constructor_message_media_audio (struct paramed_type *T);
+int store_constructor_message_media_web_page (struct paramed_type *T);
+int store_constructor_message_media_venue (struct paramed_type *T);
+int store_constructor_message_media_photo_l27 (struct paramed_type *T);
+int store_constructor_message_media_video_l27 (struct paramed_type *T);
+int store_constructor_input_messages_filter_empty (struct paramed_type *T);
+int store_constructor_input_messages_filter_photos (struct paramed_type *T);
+int store_constructor_input_messages_filter_video (struct paramed_type *T);
+int store_constructor_input_messages_filter_photo_video (struct paramed_type *T);
+int store_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T);
+int store_constructor_input_messages_filter_document (struct paramed_type *T);
+int store_constructor_input_messages_filter_audio (struct paramed_type *T);
+int store_constructor_nearest_dc (struct paramed_type *T);
+int store_constructor_notify_peer (struct paramed_type *T);
+int store_constructor_notify_users (struct paramed_type *T);
+int store_constructor_notify_chats (struct paramed_type *T);
+int store_constructor_notify_all (struct paramed_type *T);
+int store_constructor_null (struct paramed_type *T);
+int store_constructor_p_q_inner_data (struct paramed_type *T);
+int store_constructor_p_q_inner_data_temp (struct paramed_type *T);
+int store_constructor_peer_user (struct paramed_type *T);
+int store_constructor_peer_chat (struct paramed_type *T);
+int store_constructor_peer_notify_events_empty (struct paramed_type *T);
+int store_constructor_peer_notify_events_all (struct paramed_type *T);
+int store_constructor_peer_notify_settings_empty (struct paramed_type *T);
+int store_constructor_peer_notify_settings (struct paramed_type *T);
+int store_constructor_photo_empty (struct paramed_type *T);
+int store_constructor_photo (struct paramed_type *T);
+int store_constructor_photo_l27 (struct paramed_type *T);
+int store_constructor_photo_size_empty (struct paramed_type *T);
+int store_constructor_photo_size (struct paramed_type *T);
+int store_constructor_photo_cached_size (struct paramed_type *T);
+int store_constructor_privacy_key_status_timestamp (struct paramed_type *T);
+int store_constructor_privacy_value_allow_contacts (struct paramed_type *T);
+int store_constructor_privacy_value_allow_all (struct paramed_type *T);
+int store_constructor_privacy_value_allow_users (struct paramed_type *T);
+int store_constructor_privacy_value_disallow_contacts (struct paramed_type *T);
+int store_constructor_privacy_value_disallow_all (struct paramed_type *T);
+int store_constructor_privacy_value_disallow_users (struct paramed_type *T);
+int store_constructor_received_notify_message (struct paramed_type *T);
+int store_constructor_reply_keyboard_hide (struct paramed_type *T);
+int store_constructor_reply_keyboard_force_reply (struct paramed_type *T);
+int store_constructor_reply_keyboard_markup (struct paramed_type *T);
+int store_constructor_res_p_q (struct paramed_type *T);
+int store_constructor_send_message_typing_action (struct paramed_type *T);
+int store_constructor_send_message_cancel_action (struct paramed_type *T);
+int store_constructor_send_message_record_video_action (struct paramed_type *T);
+int store_constructor_send_message_upload_video_action_l27 (struct paramed_type *T);
+int store_constructor_send_message_upload_video_action (struct paramed_type *T);
+int store_constructor_send_message_record_audio_action (struct paramed_type *T);
+int store_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T);
+int store_constructor_send_message_upload_audio_action (struct paramed_type *T);
+int store_constructor_send_message_upload_photo_action (struct paramed_type *T);
+int store_constructor_send_message_upload_document_action_l27 (struct paramed_type *T);
+int store_constructor_send_message_upload_document_action (struct paramed_type *T);
+int store_constructor_send_message_geo_location_action (struct paramed_type *T);
+int store_constructor_send_message_choose_contact_action (struct paramed_type *T);
+int store_constructor_server_d_h_params_fail (struct paramed_type *T);
+int store_constructor_server_d_h_params_ok (struct paramed_type *T);
+int store_constructor_server_d_h_inner_data (struct paramed_type *T);
+int store_constructor_dh_gen_ok (struct paramed_type *T);
+int store_constructor_dh_gen_retry (struct paramed_type *T);
+int store_constructor_dh_gen_fail (struct paramed_type *T);
+int store_constructor_sticker_pack (struct paramed_type *T);
+int store_constructor_sticker_set (struct paramed_type *T);
+int store_constructor_string (struct paramed_type *T);
+int store_constructor_update_new_message (struct paramed_type *T);
+int store_constructor_update_message_i_d (struct paramed_type *T);
+int store_constructor_update_delete_messages (struct paramed_type *T);
+int store_constructor_update_user_typing (struct paramed_type *T);
+int store_constructor_update_chat_user_typing (struct paramed_type *T);
+int store_constructor_update_chat_participants (struct paramed_type *T);
+int store_constructor_update_user_status (struct paramed_type *T);
+int store_constructor_update_user_name (struct paramed_type *T);
+int store_constructor_update_user_photo (struct paramed_type *T);
+int store_constructor_update_contact_registered (struct paramed_type *T);
+int store_constructor_update_contact_link (struct paramed_type *T);
+int store_constructor_update_new_authorization (struct paramed_type *T);
+int store_constructor_update_new_geo_chat_message (struct paramed_type *T);
+int store_constructor_update_new_encrypted_message (struct paramed_type *T);
+int store_constructor_update_encrypted_chat_typing (struct paramed_type *T);
+int store_constructor_update_encryption (struct paramed_type *T);
+int store_constructor_update_encrypted_messages_read (struct paramed_type *T);
+int store_constructor_update_chat_participant_add (struct paramed_type *T);
+int store_constructor_update_chat_participant_delete (struct paramed_type *T);
+int store_constructor_update_dc_options (struct paramed_type *T);
+int store_constructor_update_user_blocked (struct paramed_type *T);
+int store_constructor_update_notify_settings (struct paramed_type *T);
+int store_constructor_update_service_notification (struct paramed_type *T);
+int store_constructor_update_privacy (struct paramed_type *T);
+int store_constructor_update_user_phone (struct paramed_type *T);
+int store_constructor_update_read_history_inbox (struct paramed_type *T);
+int store_constructor_update_read_history_outbox (struct paramed_type *T);
+int store_constructor_update_web_page (struct paramed_type *T);
+int store_constructor_update_read_messages_contents (struct paramed_type *T);
+int store_constructor_update_msg_update (struct paramed_type *T);
+int store_constructor_updates_too_long (struct paramed_type *T);
+int store_constructor_update_short_message (struct paramed_type *T);
+int store_constructor_update_short_chat_message (struct paramed_type *T);
+int store_constructor_update_short (struct paramed_type *T);
+int store_constructor_updates_combined (struct paramed_type *T);
+int store_constructor_updates (struct paramed_type *T);
+int store_constructor_user_empty (struct paramed_type *T);
+int store_constructor_user (struct paramed_type *T);
+int store_constructor_user_full (struct paramed_type *T);
+int store_constructor_user_profile_photo_empty (struct paramed_type *T);
+int store_constructor_user_profile_photo (struct paramed_type *T);
+int store_constructor_user_status_empty (struct paramed_type *T);
+int store_constructor_user_status_online (struct paramed_type *T);
+int store_constructor_user_status_offline (struct paramed_type *T);
+int store_constructor_user_status_recently (struct paramed_type *T);
+int store_constructor_user_status_last_week (struct paramed_type *T);
+int store_constructor_user_status_last_month (struct paramed_type *T);
+int store_constructor_vector (struct paramed_type *T);
+int store_constructor_video_empty (struct paramed_type *T);
+int store_constructor_video (struct paramed_type *T);
+int store_constructor_video_l27 (struct paramed_type *T);
+int store_constructor_wall_paper (struct paramed_type *T);
+int store_constructor_wall_paper_solid (struct paramed_type *T);
+int store_constructor_web_page_empty (struct paramed_type *T);
+int store_constructor_web_page_pending (struct paramed_type *T);
+int store_constructor_web_page (struct paramed_type *T);
+int store_constructor_account_authorizations (struct paramed_type *T);
+int store_constructor_account_no_password (struct paramed_type *T);
+int store_constructor_account_password (struct paramed_type *T);
+int store_constructor_account_password_input_settings (struct paramed_type *T);
+int store_constructor_account_password_settings (struct paramed_type *T);
+int store_constructor_account_privacy_rules (struct paramed_type *T);
+int store_constructor_account_sent_change_phone_code (struct paramed_type *T);
+int store_constructor_auth_authorization (struct paramed_type *T);
+int store_constructor_auth_checked_phone (struct paramed_type *T);
+int store_constructor_auth_exported_authorization (struct paramed_type *T);
+int store_constructor_auth_password_recovery (struct paramed_type *T);
+int store_constructor_auth_sent_code (struct paramed_type *T);
+int store_constructor_auth_sent_app_code (struct paramed_type *T);
+int store_constructor_binlog_encr_key (struct paramed_type *T);
+int store_constructor_binlog_start (struct paramed_type *T);
+int store_constructor_binlog_dc_option (struct paramed_type *T);
+int store_constructor_binlog_dc_option_new (struct paramed_type *T);
+int store_constructor_binlog_auth_key (struct paramed_type *T);
+int store_constructor_binlog_default_dc (struct paramed_type *T);
+int store_constructor_binlog_dc_signed (struct paramed_type *T);
+int store_constructor_binlog_our_id (struct paramed_type *T);
+int store_constructor_binlog_set_dh_params (struct paramed_type *T);
+int store_constructor_binlog_set_pts (struct paramed_type *T);
+int store_constructor_binlog_set_qts (struct paramed_type *T);
+int store_constructor_binlog_set_date (struct paramed_type *T);
+int store_constructor_binlog_set_seq (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_delete (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_new (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T);
+int store_constructor_binlog_user_delete (struct paramed_type *T);
+int store_constructor_binlog_user_new (struct paramed_type *T);
+int store_constructor_binlog_chat_new (struct paramed_type *T);
+int store_constructor_binlog_chat_add_participant (struct paramed_type *T);
+int store_constructor_binlog_chat_del_participant (struct paramed_type *T);
+int store_constructor_binlog_set_msg_id (struct paramed_type *T);
+int store_constructor_binlog_message_delete (struct paramed_type *T);
+int store_constructor_binlog_message_new (struct paramed_type *T);
+int store_constructor_binlog_message_encr_new (struct paramed_type *T);
+int store_constructor_binlog_msg_update (struct paramed_type *T);
+int store_constructor_binlog_reset_authorization (struct paramed_type *T);
+int store_constructor_contacts_blocked (struct paramed_type *T);
+int store_constructor_contacts_blocked_slice (struct paramed_type *T);
+int store_constructor_contacts_contacts_not_modified (struct paramed_type *T);
+int store_constructor_contacts_contacts (struct paramed_type *T);
+int store_constructor_contacts_found (struct paramed_type *T);
+int store_constructor_contacts_imported_contacts (struct paramed_type *T);
+int store_constructor_contacts_link (struct paramed_type *T);
+int store_constructor_contacts_suggested (struct paramed_type *T);
+int store_constructor_geochats_located (struct paramed_type *T);
+int store_constructor_geochats_messages (struct paramed_type *T);
+int store_constructor_geochats_messages_slice (struct paramed_type *T);
+int store_constructor_geochats_stated_message (struct paramed_type *T);
+int store_constructor_help_app_update (struct paramed_type *T);
+int store_constructor_help_no_app_update (struct paramed_type *T);
+int store_constructor_help_invite_text (struct paramed_type *T);
+int store_constructor_help_support (struct paramed_type *T);
+int store_constructor_messages_affected_history (struct paramed_type *T);
+int store_constructor_messages_affected_messages (struct paramed_type *T);
+int store_constructor_messages_all_stickers_not_modified (struct paramed_type *T);
+int store_constructor_messages_all_stickers (struct paramed_type *T);
+int store_constructor_messages_chat_full (struct paramed_type *T);
+int store_constructor_messages_chats (struct paramed_type *T);
+int store_constructor_messages_dh_config_not_modified (struct paramed_type *T);
+int store_constructor_messages_dh_config (struct paramed_type *T);
+int store_constructor_messages_dialogs (struct paramed_type *T);
+int store_constructor_messages_dialogs_slice (struct paramed_type *T);
+int store_constructor_messages_message_empty (struct paramed_type *T);
+int store_constructor_messages_messages (struct paramed_type *T);
+int store_constructor_messages_messages_slice (struct paramed_type *T);
+int store_constructor_messages_sent_encrypted_message (struct paramed_type *T);
+int store_constructor_messages_sent_encrypted_file (struct paramed_type *T);
+int store_constructor_messages_sent_message (struct paramed_type *T);
+int store_constructor_messages_sent_message_link (struct paramed_type *T);
+int store_constructor_messages_sticker_set (struct paramed_type *T);
+int store_constructor_messages_stickers_not_modified (struct paramed_type *T);
+int store_constructor_messages_stickers (struct paramed_type *T);
+int store_constructor_photos_photo (struct paramed_type *T);
+int store_constructor_photos_photos (struct paramed_type *T);
+int store_constructor_photos_photos_slice (struct paramed_type *T);
+int store_constructor_storage_file_unknown (struct paramed_type *T);
+int store_constructor_storage_file_jpeg (struct paramed_type *T);
+int store_constructor_storage_file_gif (struct paramed_type *T);
+int store_constructor_storage_file_png (struct paramed_type *T);
+int store_constructor_storage_file_pdf (struct paramed_type *T);
+int store_constructor_storage_file_mp3 (struct paramed_type *T);
+int store_constructor_storage_file_mov (struct paramed_type *T);
+int store_constructor_storage_file_partial (struct paramed_type *T);
+int store_constructor_storage_file_mp4 (struct paramed_type *T);
+int store_constructor_storage_file_webp (struct paramed_type *T);
+int store_constructor_updates_difference_empty (struct paramed_type *T);
+int store_constructor_updates_difference (struct paramed_type *T);
+int store_constructor_updates_difference_slice (struct paramed_type *T);
+int store_constructor_updates_state (struct paramed_type *T);
+int store_constructor_upload_file (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 store_type_audio (struct paramed_type *T);
+int store_type_bare_audio (struct paramed_type *T);
+int store_type_authorization (struct paramed_type *T);
+int store_type_bare_authorization (struct paramed_type *T);
+int store_type_bool (struct paramed_type *T);
+int store_type_bare_bool (struct paramed_type *T);
+int store_type_bot_command (struct paramed_type *T);
+int store_type_bare_bot_command (struct paramed_type *T);
+int store_type_bot_info (struct paramed_type *T);
+int store_type_bare_bot_info (struct paramed_type *T);
+int store_type_bytes (struct paramed_type *T);
+int store_type_bare_bytes (struct paramed_type *T);
+int store_type_chat (struct paramed_type *T);
+int store_type_bare_chat (struct paramed_type *T);
+int store_type_chat_full (struct paramed_type *T);
+int store_type_bare_chat_full (struct paramed_type *T);
+int store_type_chat_invite (struct paramed_type *T);
+int store_type_bare_chat_invite (struct paramed_type *T);
+int store_type_chat_located (struct paramed_type *T);
+int store_type_bare_chat_located (struct paramed_type *T);
+int store_type_chat_participant (struct paramed_type *T);
+int store_type_bare_chat_participant (struct paramed_type *T);
+int store_type_chat_participants (struct paramed_type *T);
+int store_type_bare_chat_participants (struct paramed_type *T);
+int store_type_chat_photo (struct paramed_type *T);
+int store_type_bare_chat_photo (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 store_type_config (struct paramed_type *T);
+int store_type_bare_config (struct paramed_type *T);
+int store_type_contact (struct paramed_type *T);
+int store_type_bare_contact (struct paramed_type *T);
+int store_type_contact_blocked (struct paramed_type *T);
+int store_type_bare_contact_blocked (struct paramed_type *T);
+int store_type_contact_found (struct paramed_type *T);
+int store_type_bare_contact_found (struct paramed_type *T);
+int store_type_contact_link (struct paramed_type *T);
+int store_type_bare_contact_link (struct paramed_type *T);
+int store_type_contact_status (struct paramed_type *T);
+int store_type_bare_contact_status (struct paramed_type *T);
+int store_type_contact_suggested (struct paramed_type *T);
+int store_type_bare_contact_suggested (struct paramed_type *T);
+int store_type_dc_option (struct paramed_type *T);
+int store_type_bare_dc_option (struct paramed_type *T);
+int store_type_decrypted_message (struct paramed_type *T);
+int store_type_bare_decrypted_message (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 store_type_decrypted_message_layer (struct paramed_type *T);
+int store_type_bare_decrypted_message_layer (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 store_type_dialog (struct paramed_type *T);
+int store_type_bare_dialog (struct paramed_type *T);
+int store_type_disabled_feature (struct paramed_type *T);
+int store_type_bare_disabled_feature (struct paramed_type *T);
+int store_type_document (struct paramed_type *T);
+int store_type_bare_document (struct paramed_type *T);
+int store_type_document_attribute (struct paramed_type *T);
+int store_type_bare_document_attribute (struct paramed_type *T);
+int store_type_double (struct paramed_type *T);
+int store_type_bare_double (struct paramed_type *T);
+int store_type_encrypted_chat (struct paramed_type *T);
+int store_type_bare_encrypted_chat (struct paramed_type *T);
+int store_type_encrypted_file (struct paramed_type *T);
+int store_type_bare_encrypted_file (struct paramed_type *T);
+int store_type_encrypted_message (struct paramed_type *T);
+int store_type_bare_encrypted_message (struct paramed_type *T);
+int store_type_error (struct paramed_type *T);
+int store_type_bare_error (struct paramed_type *T);
+int store_type_exported_chat_invite (struct paramed_type *T);
+int store_type_bare_exported_chat_invite (struct paramed_type *T);
+int store_type_file_location (struct paramed_type *T);
+int store_type_bare_file_location (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 store_type_geo_point (struct paramed_type *T);
+int store_type_bare_geo_point (struct paramed_type *T);
+int store_type_imported_contact (struct paramed_type *T);
+int store_type_bare_imported_contact (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 store_type_input_audio (struct paramed_type *T);
+int store_type_bare_input_audio (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 store_type_input_contact (struct paramed_type *T);
+int store_type_bare_input_contact (struct paramed_type *T);
+int store_type_input_document (struct paramed_type *T);
+int store_type_bare_input_document (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 store_type_input_encrypted_file (struct paramed_type *T);
+int store_type_bare_input_encrypted_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 store_type_input_file_location (struct paramed_type *T);
+int store_type_bare_input_file_location (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 store_type_input_geo_point (struct paramed_type *T);
+int store_type_bare_input_geo_point (struct paramed_type *T);
+int store_type_input_media (struct paramed_type *T);
+int store_type_bare_input_media (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 store_type_input_peer (struct paramed_type *T);
+int store_type_bare_input_peer (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 store_type_input_peer_notify_settings (struct paramed_type *T);
+int store_type_bare_input_peer_notify_settings (struct paramed_type *T);
+int store_type_input_photo (struct paramed_type *T);
+int store_type_bare_input_photo (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 store_type_input_privacy_key (struct paramed_type *T);
+int store_type_bare_input_privacy_key (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 store_type_input_sticker_set (struct paramed_type *T);
+int store_type_bare_input_sticker_set (struct paramed_type *T);
+int store_type_input_user (struct paramed_type *T);
+int store_type_bare_input_user (struct paramed_type *T);
+int store_type_input_video (struct paramed_type *T);
+int store_type_bare_input_video (struct paramed_type *T);
+int store_type_int (struct paramed_type *T);
+int store_type_bare_int (struct paramed_type *T);
+int store_type_int128 (struct paramed_type *T);
+int store_type_bare_int128 (struct paramed_type *T);
+int store_type_int256 (struct paramed_type *T);
+int store_type_bare_int256 (struct paramed_type *T);
+int store_type_keyboard_button (struct paramed_type *T);
+int store_type_bare_keyboard_button (struct paramed_type *T);
+int store_type_keyboard_button_row (struct paramed_type *T);
+int store_type_bare_keyboard_button_row (struct paramed_type *T);
+int store_type_long (struct paramed_type *T);
+int store_type_bare_long (struct paramed_type *T);
+int store_type_message (struct paramed_type *T);
+int store_type_bare_message (struct paramed_type *T);
+int store_type_message_action (struct paramed_type *T);
+int store_type_bare_message_action (struct paramed_type *T);
+int store_type_message_media (struct paramed_type *T);
+int store_type_bare_message_media (struct paramed_type *T);
+int store_type_messages_filter (struct paramed_type *T);
+int store_type_bare_messages_filter (struct paramed_type *T);
+int store_type_nearest_dc (struct paramed_type *T);
+int store_type_bare_nearest_dc (struct paramed_type *T);
+int store_type_notify_peer (struct paramed_type *T);
+int store_type_bare_notify_peer (struct paramed_type *T);
+int store_type_null (struct paramed_type *T);
+int store_type_bare_null (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 store_type_peer (struct paramed_type *T);
+int store_type_bare_peer (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 store_type_peer_notify_settings (struct paramed_type *T);
+int store_type_bare_peer_notify_settings (struct paramed_type *T);
+int store_type_photo (struct paramed_type *T);
+int store_type_bare_photo (struct paramed_type *T);
+int store_type_photo_size (struct paramed_type *T);
+int store_type_bare_photo_size (struct paramed_type *T);
+int store_type_privacy_key (struct paramed_type *T);
+int store_type_bare_privacy_key (struct paramed_type *T);
+int store_type_privacy_rule (struct paramed_type *T);
+int store_type_bare_privacy_rule (struct paramed_type *T);
+int store_type_received_notify_message (struct paramed_type *T);
+int store_type_bare_received_notify_message (struct paramed_type *T);
+int store_type_reply_markup (struct paramed_type *T);
+int store_type_bare_reply_markup (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 store_type_send_message_action (struct paramed_type *T);
+int store_type_bare_send_message_action (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 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 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 store_type_sticker_pack (struct paramed_type *T);
+int store_type_bare_sticker_pack (struct paramed_type *T);
+int store_type_sticker_set (struct paramed_type *T);
+int store_type_bare_sticker_set (struct paramed_type *T);
+int store_type_string (struct paramed_type *T);
+int store_type_bare_string (struct paramed_type *T);
+int store_type_update (struct paramed_type *T);
+int store_type_bare_update (struct paramed_type *T);
+int store_type_updates (struct paramed_type *T);
+int store_type_bare_updates (struct paramed_type *T);
+int store_type_user (struct paramed_type *T);
+int store_type_bare_user (struct paramed_type *T);
+int store_type_user_full (struct paramed_type *T);
+int store_type_bare_user_full (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 store_type_user_status (struct paramed_type *T);
+int store_type_bare_user_status (struct paramed_type *T);
+int store_type_vector (struct paramed_type *T);
+int store_type_bare_vector (struct paramed_type *T);
+int store_type_video (struct paramed_type *T);
+int store_type_bare_video (struct paramed_type *T);
+int store_type_wall_paper (struct paramed_type *T);
+int store_type_bare_wall_paper (struct paramed_type *T);
+int store_type_web_page (struct paramed_type *T);
+int store_type_bare_web_page (struct paramed_type *T);
+int store_type_account_authorizations (struct paramed_type *T);
+int store_type_bare_account_authorizations (struct paramed_type *T);
+int store_type_account_password (struct paramed_type *T);
+int store_type_bare_account_password (struct paramed_type *T);
+int store_type_account_password_input_settings (struct paramed_type *T);
+int store_type_bare_account_password_input_settings (struct paramed_type *T);
+int store_type_account_password_settings (struct paramed_type *T);
+int store_type_bare_account_password_settings (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 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 store_type_auth_authorization (struct paramed_type *T);
+int store_type_bare_auth_authorization (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 store_type_auth_exported_authorization (struct paramed_type *T);
+int store_type_bare_auth_exported_authorization (struct paramed_type *T);
+int store_type_auth_password_recovery (struct paramed_type *T);
+int store_type_bare_auth_password_recovery (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 store_type_binlog_encr_key (struct paramed_type *T);
+int store_type_bare_binlog_encr_key (struct paramed_type *T);
+int store_type_binlog_update (struct paramed_type *T);
+int store_type_bare_binlog_update (struct paramed_type *T);
+int store_type_contacts_blocked (struct paramed_type *T);
+int store_type_bare_contacts_blocked (struct paramed_type *T);
+int store_type_contacts_contacts (struct paramed_type *T);
+int store_type_bare_contacts_contacts (struct paramed_type *T);
+int store_type_contacts_found (struct paramed_type *T);
+int store_type_bare_contacts_found (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 store_type_contacts_link (struct paramed_type *T);
+int store_type_bare_contacts_link (struct paramed_type *T);
+int store_type_contacts_suggested (struct paramed_type *T);
+int store_type_bare_contacts_suggested (struct paramed_type *T);
+int store_type_geochats_located (struct paramed_type *T);
+int store_type_bare_geochats_located (struct paramed_type *T);
+int store_type_geochats_messages (struct paramed_type *T);
+int store_type_bare_geochats_messages (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 store_type_help_app_update (struct paramed_type *T);
+int store_type_bare_help_app_update (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 store_type_help_support (struct paramed_type *T);
+int store_type_bare_help_support (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 store_type_messages_affected_messages (struct paramed_type *T);
+int store_type_bare_messages_affected_messages (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 store_type_messages_chat_full (struct paramed_type *T);
+int store_type_bare_messages_chat_full (struct paramed_type *T);
+int store_type_messages_chats (struct paramed_type *T);
+int store_type_bare_messages_chats (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 store_type_messages_dialogs (struct paramed_type *T);
+int store_type_bare_messages_dialogs (struct paramed_type *T);
+int store_type_messages_message (struct paramed_type *T);
+int store_type_bare_messages_message (struct paramed_type *T);
+int store_type_messages_messages (struct paramed_type *T);
+int store_type_bare_messages_messages (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 store_type_messages_sent_message (struct paramed_type *T);
+int store_type_bare_messages_sent_message (struct paramed_type *T);
+int store_type_messages_sticker_set (struct paramed_type *T);
+int store_type_bare_messages_sticker_set (struct paramed_type *T);
+int store_type_messages_stickers (struct paramed_type *T);
+int store_type_bare_messages_stickers (struct paramed_type *T);
+int store_type_photos_photo (struct paramed_type *T);
+int store_type_bare_photos_photo (struct paramed_type *T);
+int store_type_photos_photos (struct paramed_type *T);
+int store_type_bare_photos_photos (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 store_type_updates_difference (struct paramed_type *T);
+int store_type_bare_updates_difference (struct paramed_type *T);
+int store_type_updates_state (struct paramed_type *T);
+int store_type_bare_updates_state (struct paramed_type *T);
+int store_type_upload_file (struct paramed_type *T);
+int store_type_bare_upload_file (struct paramed_type *T);
+struct paramed_type *store_function_account_change_phone (void);
+struct paramed_type *store_function_account_check_username (void);
+struct paramed_type *store_function_account_delete_account (void);
+struct paramed_type *store_function_account_get_account_t_t_l (void);
+struct paramed_type *store_function_account_get_authorizations (void);
+struct paramed_type *store_function_account_get_notify_settings (void);
+struct paramed_type *store_function_account_get_password (void);
+struct paramed_type *store_function_account_get_password_settings (void);
+struct paramed_type *store_function_account_get_privacy (void);
+struct paramed_type *store_function_account_get_wall_papers (void);
+struct paramed_type *store_function_account_register_device (void);
+struct paramed_type *store_function_account_reset_authorization (void);
+struct paramed_type *store_function_account_reset_notify_settings (void);
+struct paramed_type *store_function_account_send_change_phone_code (void);
+struct paramed_type *store_function_account_set_account_t_t_l (void);
+struct paramed_type *store_function_account_set_privacy (void);
+struct paramed_type *store_function_account_unregister_device (void);
+struct paramed_type *store_function_account_update_device_locked (void);
+struct paramed_type *store_function_account_update_notify_settings (void);
+struct paramed_type *store_function_account_update_password_settings (void);
+struct paramed_type *store_function_account_update_profile (void);
+struct paramed_type *store_function_account_update_status (void);
+struct paramed_type *store_function_account_update_username (void);
+struct paramed_type *store_function_auth_bind_temp_auth_key (void);
+struct paramed_type *store_function_auth_check_password (void);
+struct paramed_type *store_function_auth_check_phone (void);
+struct paramed_type *store_function_auth_export_authorization (void);
+struct paramed_type *store_function_auth_import_authorization (void);
+struct paramed_type *store_function_auth_import_bot_authorization (void);
+struct paramed_type *store_function_auth_log_out (void);
+struct paramed_type *store_function_auth_recover_password (void);
+struct paramed_type *store_function_auth_request_password_recovery (void);
+struct paramed_type *store_function_auth_reset_authorizations (void);
+struct paramed_type *store_function_auth_send_call (void);
+struct paramed_type *store_function_auth_send_code (void);
+struct paramed_type *store_function_auth_send_invites (void);
+struct paramed_type *store_function_auth_send_sms (void);
+struct paramed_type *store_function_auth_sign_in (void);
+struct paramed_type *store_function_auth_sign_up (void);
+struct paramed_type *store_function_contacts_block (void);
+struct paramed_type *store_function_contacts_delete_contact (void);
+struct paramed_type *store_function_contacts_delete_contacts (void);
+struct paramed_type *store_function_contacts_export_card (void);
+struct paramed_type *store_function_contacts_get_blocked (void);
+struct paramed_type *store_function_contacts_get_contacts (void);
+struct paramed_type *store_function_contacts_get_statuses (void);
+struct paramed_type *store_function_contacts_get_suggested (void);
+struct paramed_type *store_function_contacts_import_card (void);
+struct paramed_type *store_function_contacts_import_contacts (void);
+struct paramed_type *store_function_contacts_resolve_username (void);
+struct paramed_type *store_function_contacts_search (void);
+struct paramed_type *store_function_contacts_unblock (void);
+struct paramed_type *store_function_geochats_checkin (void);
+struct paramed_type *store_function_geochats_create_geo_chat (void);
+struct paramed_type *store_function_geochats_edit_chat_photo (void);
+struct paramed_type *store_function_geochats_edit_chat_title (void);
+struct paramed_type *store_function_geochats_get_full_chat (void);
+struct paramed_type *store_function_geochats_get_history (void);
+struct paramed_type *store_function_geochats_get_located (void);
+struct paramed_type *store_function_geochats_get_recents (void);
+struct paramed_type *store_function_geochats_search (void);
+struct paramed_type *store_function_geochats_send_media (void);
+struct paramed_type *store_function_geochats_send_message (void);
+struct paramed_type *store_function_geochats_set_typing (void);
+struct paramed_type *store_function_help_get_app_update (void);
+struct paramed_type *store_function_help_get_config (void);
+struct paramed_type *store_function_help_get_invite_text (void);
+struct paramed_type *store_function_help_get_nearest_dc (void);
+struct paramed_type *store_function_help_get_support (void);
+struct paramed_type *store_function_help_save_app_log (void);
+struct paramed_type *store_function_init_connection (void);
+struct paramed_type *store_function_invoke_after_msg (void);
+struct paramed_type *store_function_invoke_after_msgs (void);
+struct paramed_type *store_function_invoke_with_layer (void);
+struct paramed_type *store_function_invoke_without_updates (void);
+struct paramed_type *store_function_messages_accept_encryption (void);
+struct paramed_type *store_function_messages_add_chat_user (void);
+struct paramed_type *store_function_messages_check_chat_invite (void);
+struct paramed_type *store_function_messages_create_chat (void);
+struct paramed_type *store_function_messages_delete_chat_user (void);
+struct paramed_type *store_function_messages_delete_history (void);
+struct paramed_type *store_function_messages_delete_messages (void);
+struct paramed_type *store_function_messages_discard_encryption (void);
+struct paramed_type *store_function_messages_edit_chat_photo (void);
+struct paramed_type *store_function_messages_edit_chat_title (void);
+struct paramed_type *store_function_messages_export_chat_invite (void);
+struct paramed_type *store_function_messages_forward_message (void);
+struct paramed_type *store_function_messages_forward_messages (void);
+struct paramed_type *store_function_messages_get_all_stickers (void);
+struct paramed_type *store_function_messages_get_chats (void);
+struct paramed_type *store_function_messages_get_dh_config (void);
+struct paramed_type *store_function_messages_get_dialogs (void);
+struct paramed_type *store_function_messages_get_full_chat (void);
+struct paramed_type *store_function_messages_get_history (void);
+struct paramed_type *store_function_messages_get_messages (void);
+struct paramed_type *store_function_messages_get_sticker_set (void);
+struct paramed_type *store_function_messages_get_stickers (void);
+struct paramed_type *store_function_messages_get_web_page_preview (void);
+struct paramed_type *store_function_messages_import_chat_invite (void);
+struct paramed_type *store_function_messages_install_sticker_set (void);
+struct paramed_type *store_function_messages_read_encrypted_history (void);
+struct paramed_type *store_function_messages_read_history (void);
+struct paramed_type *store_function_messages_read_message_contents (void);
+struct paramed_type *store_function_messages_received_messages (void);
+struct paramed_type *store_function_messages_received_queue (void);
+struct paramed_type *store_function_messages_request_encryption (void);
+struct paramed_type *store_function_messages_search (void);
+struct paramed_type *store_function_messages_send_broadcast (void);
+struct paramed_type *store_function_messages_send_encrypted (void);
+struct paramed_type *store_function_messages_send_encrypted_file (void);
+struct paramed_type *store_function_messages_send_encrypted_service (void);
+struct paramed_type *store_function_messages_send_media (void);
+struct paramed_type *store_function_messages_send_message (void);
+struct paramed_type *store_function_messages_set_encrypted_typing (void);
+struct paramed_type *store_function_messages_set_typing (void);
+struct paramed_type *store_function_messages_start_bot (void);
+struct paramed_type *store_function_messages_uninstall_sticker_set (void);
+struct paramed_type *store_function_photos_delete_photos (void);
+struct paramed_type *store_function_photos_get_user_photos (void);
+struct paramed_type *store_function_photos_update_profile_photo (void);
+struct paramed_type *store_function_photos_upload_profile_photo (void);
+struct paramed_type *store_function_req_d_h_params (void);
+struct paramed_type *store_function_req_pq (void);
+struct paramed_type *store_function_set_client_d_h_params (void);
+struct paramed_type *store_function_updates_get_difference (void);
+struct paramed_type *store_function_updates_get_state (void);
+struct paramed_type *store_function_upload_get_file (void);
+struct paramed_type *store_function_upload_save_big_file_part (void);
+struct paramed_type *store_function_upload_save_file_part (void);
+struct paramed_type *store_function_users_get_full_user (void);
+struct paramed_type *store_function_users_get_users (void);
+int store_type_any (struct paramed_type *T);
+struct paramed_type *store_function_any (void);
diff --git a/libs/tgl/src/auto/auto-types.c b/libs/tgl/src/auto/auto-types.c
new file mode 100644
index 0000000000..d81edf0949
--- /dev/null
+++ b/libs/tgl/src/auto/auto-types.c
@@ -0,0 +1,1793 @@
+#ifdef _MSC_VER
+#include "..\auto.h"
+#else
+#include "auto.h"
+#endif
+struct tl_type_descr tl_type_account_days_t_t_l = {
+ .name = 0xb8d0afdf,
+ .id = "AccountDaysTTL"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_account_days_t_t_l = {
+ .name = 0x472f5020,
+ .id = "Bare_AccountDaysTTL",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_audio = {
+ .name = 0x9fc5ec4e,
+ .id = "Audio"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_audio = {
+ .name = 0x603a13b1,
+ .id = "Bare_Audio",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_authorization = {
+ .name = 0x7bf2e6f6,
+ .id = "Authorization"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_authorization = {
+ .name = 0x840d1909,
+ .id = "Bare_Authorization",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bool = {
+ .name = 0x250be282,
+ .id = "Bool"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_bool = {
+ .name = 0xdaf41d7d,
+ .id = "Bare_Bool",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bot_command = {
+ .name = 0x75e7ea6c,
+ .id = "BotCommand"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_bot_command = {
+ .name = 0x8a181593,
+ .id = "Bare_BotCommand",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bot_info = {
+ .name = 0xb2e16f93,
+ .id = "BotInfo"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_bot_info = {
+ .name = 0x4d1e906c,
+ .id = "Bare_BotInfo",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bytes = {
+ .name = 0x0ee1379f,
+ .id = "Bytes"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_bytes = {
+ .name = 0xf11ec860,
+ .id = "Bare_Bytes",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_chat = {
+ .name = 0x7bd865dc,
+ .id = "Chat"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_chat = {
+ .name = 0x84279a23,
+ .id = "Bare_Chat",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_chat_full = {
+ .name = 0x2e02a614,
+ .id = "ChatFull"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_chat_full = {
+ .name = 0xd1fd59eb,
+ .id = "Bare_ChatFull",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_chat_invite = {
+ .name = 0x94f910b1,
+ .id = "ChatInvite"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_chat_invite = {
+ .name = 0x6b06ef4e,
+ .id = "Bare_ChatInvite",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_chat_located = {
+ .name = 0x3631cf4c,
+ .id = "ChatLocated"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_chat_located = {
+ .name = 0xc9ce30b3,
+ .id = "Bare_ChatLocated",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_chat_participant = {
+ .name = 0xc8d7493e,
+ .id = "ChatParticipant"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_chat_participant = {
+ .name = 0x3728b6c1,
+ .id = "Bare_ChatParticipant",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_chat_participants = {
+ .name = 0x77930f9f,
+ .id = "ChatParticipants"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_chat_participants = {
+ .name = 0x886cf060,
+ .id = "Bare_ChatParticipants",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_chat_photo = {
+ .name = 0x56922676,
+ .id = "ChatPhoto"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_chat_photo = {
+ .name = 0xa96dd989,
+ .id = "Bare_ChatPhoto",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_client_d_h_inner_data = {
+ .name = 0x6643b654,
+ .id = "Client_DH_Inner_Data"
+, .params_num = 0,
+ .params_types = 0
+};
+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
+};
+struct tl_type_descr tl_type_config = {
+ .name = 0x4e32b894,
+ .id = "Config"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_config = {
+ .name = 0xb1cd476b,
+ .id = "Bare_Config",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_contact = {
+ .name = 0xf911c994,
+ .id = "Contact"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_contact = {
+ .name = 0x06ee366b,
+ .id = "Bare_Contact",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_contact_blocked = {
+ .name = 0x561bc879,
+ .id = "ContactBlocked"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_contact_blocked = {
+ .name = 0xa9e43786,
+ .id = "Bare_ContactBlocked",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_contact_found = {
+ .name = 0xea879f95,
+ .id = "ContactFound"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_contact_found = {
+ .name = 0x1578606a,
+ .id = "Bare_ContactFound",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_contact_link = {
+ .name = 0x522fbc63,
+ .id = "ContactLink"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_contact_link = {
+ .name = 0xadd0439c,
+ .id = "Bare_ContactLink",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_contact_status = {
+ .name = 0xd3680c61,
+ .id = "ContactStatus"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_contact_status = {
+ .name = 0x2c97f39e,
+ .id = "Bare_ContactStatus",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_contact_suggested = {
+ .name = 0x3de191a1,
+ .id = "ContactSuggested"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_contact_suggested = {
+ .name = 0xc21e6e5e,
+ .id = "Bare_ContactSuggested",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_dc_option = {
+ .name = 0x2b1a62f0,
+ .id = "DcOption"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_dc_option = {
+ .name = 0xd4e59d0f,
+ .id = "Bare_DcOption",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_decrypted_message = {
+ .name = 0x535b7918,
+ .id = "DecryptedMessage"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_decrypted_message = {
+ .name = 0xaca486e7,
+ .id = "Bare_DecryptedMessage",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_decrypted_message_action = {
+ .name = 0x4e0eefde,
+ .id = "DecryptedMessageAction"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_decrypted_message_action = {
+ .name = 0xb1f11021,
+ .id = "Bare_DecryptedMessageAction",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_decrypted_message_layer = {
+ .name = 0x1be31789,
+ .id = "DecryptedMessageLayer"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_decrypted_message_layer = {
+ .name = 0xe41ce876,
+ .id = "Bare_DecryptedMessageLayer",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_decrypted_message_media = {
+ .name = 0x34e0d674,
+ .id = "DecryptedMessageMedia"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_decrypted_message_media = {
+ .name = 0xcb1f298b,
+ .id = "Bare_DecryptedMessageMedia",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_dialog = {
+ .name = 0xc1dd804a,
+ .id = "Dialog"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_dialog = {
+ .name = 0x3e227fb5,
+ .id = "Bare_Dialog",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_disabled_feature = {
+ .name = 0xae636f24,
+ .id = "DisabledFeature"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_disabled_feature = {
+ .name = 0x519c90db,
+ .id = "Bare_DisabledFeature",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_document = {
+ .name = 0x51a73418,
+ .id = "Document"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_document = {
+ .name = 0xae58cbe7,
+ .id = "Bare_Document",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_document_attribute = {
+ .name = 0x97c637a3,
+ .id = "DocumentAttribute"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_document_attribute = {
+ .name = 0x6839c85c,
+ .id = "Bare_DocumentAttribute",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_double = {
+ .name = 0x2210c154,
+ .id = "Double"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_double = {
+ .name = 0xddef3eab,
+ .id = "Bare_Double",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_encrypted_chat = {
+ .name = 0xb1718213,
+ .id = "EncryptedChat"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_encrypted_chat = {
+ .name = 0x4e8e7dec,
+ .id = "Bare_EncryptedChat",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_encrypted_file = {
+ .name = 0x886fd032,
+ .id = "EncryptedFile"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_encrypted_file = {
+ .name = 0x77902fcd,
+ .id = "Bare_EncryptedFile",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_encrypted_message = {
+ .name = 0xce6b8a1e,
+ .id = "EncryptedMessage"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_encrypted_message = {
+ .name = 0x319475e1,
+ .id = "Bare_EncryptedMessage",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_error = {
+ .name = 0xc4b9f9bb,
+ .id = "Error"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_error = {
+ .name = 0x3b460644,
+ .id = "Bare_Error",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_exported_chat_invite = {
+ .name = 0x95f132d5,
+ .id = "ExportedChatInvite"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_exported_chat_invite = {
+ .name = 0x6a0ecd2a,
+ .id = "Bare_ExportedChatInvite",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_file_location = {
+ .name = 0x2f8ffb30,
+ .id = "FileLocation"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_file_location = {
+ .name = 0xd07004cf,
+ .id = "Bare_FileLocation",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_geo_chat_message = {
+ .name = 0xf67b4034,
+ .id = "GeoChatMessage"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_geo_chat_message = {
+ .name = 0x0984bfcb,
+ .id = "Bare_GeoChatMessage",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_geo_point = {
+ .name = 0x315e0a53,
+ .id = "GeoPoint"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_geo_point = {
+ .name = 0xcea1f5ac,
+ .id = "Bare_GeoPoint",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_imported_contact = {
+ .name = 0xd0028438,
+ .id = "ImportedContact"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_imported_contact = {
+ .name = 0x2ffd7bc7,
+ .id = "Bare_ImportedContact",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_app_event = {
+ .name = 0x770656a8,
+ .id = "InputAppEvent"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_app_event = {
+ .name = 0x88f9a957,
+ .id = "Bare_InputAppEvent",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_audio = {
+ .name = 0xae8e9c7b,
+ .id = "InputAudio"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_audio = {
+ .name = 0x51716384,
+ .id = "Bare_InputAudio",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_chat_photo = {
+ .name = 0x3a60776d,
+ .id = "InputChatPhoto"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_chat_photo = {
+ .name = 0xc59f8892,
+ .id = "Bare_InputChatPhoto",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_contact = {
+ .name = 0xf392b7f4,
+ .id = "InputContact"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_contact = {
+ .name = 0x0c6d480b,
+ .id = "Bare_InputContact",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_document = {
+ .name = 0x6a8963fc,
+ .id = "InputDocument"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_document = {
+ .name = 0x95769c03,
+ .id = "Bare_InputDocument",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_encrypted_chat = {
+ .name = 0xf141b5e1,
+ .id = "InputEncryptedChat"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_encrypted_chat = {
+ .name = 0x0ebe4a1e,
+ .id = "Bare_InputEncryptedChat",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_encrypted_file = {
+ .name = 0x0b5c064f,
+ .id = "InputEncryptedFile"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_encrypted_file = {
+ .name = 0xf4a3f9b0,
+ .id = "Bare_InputEncryptedFile",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_file = {
+ .name = 0x0f60f9ca,
+ .id = "InputFile"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_file = {
+ .name = 0xf09f0635,
+ .id = "Bare_InputFile",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_file_location = {
+ .name = 0xe6daa38b,
+ .id = "InputFileLocation"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_file_location = {
+ .name = 0x19255c74,
+ .id = "Bare_InputFileLocation",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_geo_chat = {
+ .name = 0x74d456fa,
+ .id = "InputGeoChat"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_geo_chat = {
+ .name = 0x8b2ba905,
+ .id = "Bare_InputGeoChat",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_geo_point = {
+ .name = 0x17768f1f,
+ .id = "InputGeoPoint"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_geo_point = {
+ .name = 0xe88970e0,
+ .id = "Bare_InputGeoPoint",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_media = {
+ .name = 0xb32c91dd,
+ .id = "InputMedia"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_media = {
+ .name = 0x4cd36e22,
+ .id = "Bare_InputMedia",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_notify_peer = {
+ .name = 0x02b6911b,
+ .id = "InputNotifyPeer"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_notify_peer = {
+ .name = 0xfd496ee4,
+ .id = "Bare_InputNotifyPeer",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_peer = {
+ .name = 0x9e67268d,
+ .id = "InputPeer"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_peer = {
+ .name = 0x6198d972,
+ .id = "Bare_InputPeer",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_peer_notify_events = {
+ .name = 0x185a48ac,
+ .id = "InputPeerNotifyEvents"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_peer_notify_events = {
+ .name = 0xe7a5b753,
+ .id = "Bare_InputPeerNotifyEvents",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_peer_notify_settings = {
+ .name = 0x46a2ce98,
+ .id = "InputPeerNotifySettings"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_peer_notify_settings = {
+ .name = 0xb95d3167,
+ .id = "Bare_InputPeerNotifySettings",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_photo = {
+ .name = 0xe74279c9,
+ .id = "InputPhoto"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_photo = {
+ .name = 0x18bd8636,
+ .id = "Bare_InputPhoto",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_photo_crop = {
+ .name = 0x7477e321,
+ .id = "InputPhotoCrop"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_photo_crop = {
+ .name = 0x8b881cde,
+ .id = "Bare_InputPhotoCrop",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_privacy_key = {
+ .name = 0x4f96cb18,
+ .id = "InputPrivacyKey"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_privacy_key = {
+ .name = 0xb06934e7,
+ .id = "Bare_InputPrivacyKey",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_privacy_rule = {
+ .name = 0x4b815163,
+ .id = "InputPrivacyRule"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_privacy_rule = {
+ .name = 0xb47eae9c,
+ .id = "Bare_InputPrivacyRule",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_sticker_set = {
+ .name = 0xe44d415c,
+ .id = "InputStickerSet"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_sticker_set = {
+ .name = 0x1bb2bea3,
+ .id = "Bare_InputStickerSet",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_user = {
+ .name = 0xadfe0c6a,
+ .id = "InputUser"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_user = {
+ .name = 0x5201f395,
+ .id = "Bare_InputUser",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_input_video = {
+ .name = 0xbb5f7a27,
+ .id = "InputVideo"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_input_video = {
+ .name = 0x44a085d8,
+ .id = "Bare_InputVideo",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_int = {
+ .name = 0xa8509bda,
+ .id = "Int"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_int = {
+ .name = 0x57af6425,
+ .id = "Bare_Int",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_int128 = {
+ .name = 0x7d36c439,
+ .id = "Int128"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_int128 = {
+ .name = 0x82c93bc6,
+ .id = "Bare_Int128",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_int256 = {
+ .name = 0xf2c798b3,
+ .id = "Int256"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_int256 = {
+ .name = 0x0d38674c,
+ .id = "Bare_Int256",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_keyboard_button = {
+ .name = 0xa2fa4880,
+ .id = "KeyboardButton"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_keyboard_button = {
+ .name = 0x5d05b77f,
+ .id = "Bare_KeyboardButton",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_keyboard_button_row = {
+ .name = 0x77608b83,
+ .id = "KeyboardButtonRow"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_keyboard_button_row = {
+ .name = 0x889f747c,
+ .id = "Bare_KeyboardButtonRow",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_long = {
+ .name = 0x22076cba,
+ .id = "Long"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_long = {
+ .name = 0xddf89345,
+ .id = "Bare_Long",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_message = {
+ .name = 0x5d652a7f,
+ .id = "Message"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_message = {
+ .name = 0xa29ad580,
+ .id = "Bare_Message",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_message_action = {
+ .name = 0x383415fa,
+ .id = "MessageAction"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_message_action = {
+ .name = 0xc7cbea05,
+ .id = "Bare_MessageAction",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_message_media = {
+ .name = 0x95f2471a,
+ .id = "MessageMedia"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_message_media = {
+ .name = 0x6a0db8e5,
+ .id = "Bare_MessageMedia",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_messages_filter = {
+ .name = 0x80895ae0,
+ .id = "MessagesFilter"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_messages_filter = {
+ .name = 0x7f76a51f,
+ .id = "Bare_MessagesFilter",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_nearest_dc = {
+ .name = 0x8e1a1775,
+ .id = "NearestDc"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_nearest_dc = {
+ .name = 0x71e5e88a,
+ .id = "Bare_NearestDc",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_notify_peer = {
+ .name = 0x9fcb8237,
+ .id = "NotifyPeer"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_notify_peer = {
+ .name = 0x60347dc8,
+ .id = "Bare_NotifyPeer",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_null = {
+ .name = 0x56730bcc,
+ .id = "Null"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_null = {
+ .name = 0xa98cf433,
+ .id = "Bare_Null",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_p_q_inner_data = {
+ .name = 0xbfa3de38,
+ .id = "P_Q_inner_data"
+, .params_num = 0,
+ .params_types = 0
+};
+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
+};
+struct tl_type_descr tl_type_peer = {
+ .name = 0x276159d6,
+ .id = "Peer"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_peer = {
+ .name = 0xd89ea629,
+ .id = "Bare_Peer",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_peer_notify_events = {
+ .name = 0xc0c8d13b,
+ .id = "PeerNotifyEvents"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_peer_notify_events = {
+ .name = 0x3f372ec4,
+ .id = "Bare_PeerNotifyEvents",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_peer_notify_settings = {
+ .name = 0xfdf894fc,
+ .id = "PeerNotifySettings"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_peer_notify_settings = {
+ .name = 0x02076b03,
+ .id = "Bare_PeerNotifySettings",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_photo = {
+ .name = 0xc207550a,
+ .id = "Photo"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_photo = {
+ .name = 0x3df8aaf5,
+ .id = "Bare_Photo",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_photo_size = {
+ .name = 0x900f60dd,
+ .id = "PhotoSize"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_photo_size = {
+ .name = 0x6ff09f22,
+ .id = "Bare_PhotoSize",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_privacy_key = {
+ .name = 0xbc2eab30,
+ .id = "PrivacyKey"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_privacy_key = {
+ .name = 0x43d154cf,
+ .id = "Bare_PrivacyKey",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_privacy_rule = {
+ .name = 0xa8638aec,
+ .id = "PrivacyRule"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_privacy_rule = {
+ .name = 0x579c7513,
+ .id = "Bare_PrivacyRule",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_received_notify_message = {
+ .name = 0xa384b779,
+ .id = "ReceivedNotifyMessage"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_received_notify_message = {
+ .name = 0x5c7b4886,
+ .id = "Bare_ReceivedNotifyMessage",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_reply_markup = {
+ .name = 0x612ca4a9,
+ .id = "ReplyMarkup"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_reply_markup = {
+ .name = 0x9ed35b56,
+ .id = "Bare_ReplyMarkup",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_res_p_q = {
+ .name = 0x05162463,
+ .id = "ResPQ"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_res_p_q = {
+ .name = 0xfae9db9c,
+ .id = "Bare_ResPQ",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_send_message_action = {
+ .name = 0x70541c7e,
+ .id = "SendMessageAction"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_send_message_action = {
+ .name = 0x8fabe381,
+ .id = "Bare_SendMessageAction",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_server_d_h_params = {
+ .name = 0xa9230301,
+ .id = "Server_DH_Params"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_server_d_h_params = {
+ .name = 0x56dcfcfe,
+ .id = "Bare_Server_DH_Params",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_server_d_h_inner_data = {
+ .name = 0xb5890dba,
+ .id = "Server_DH_inner_data"
+, .params_num = 0,
+ .params_types = 0
+};
+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
+};
+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
+};
+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
+};
+struct tl_type_descr tl_type_sticker_pack = {
+ .name = 0x12b299d4,
+ .id = "StickerPack"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_sticker_pack = {
+ .name = 0xed4d662b,
+ .id = "Bare_StickerPack",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_sticker_set = {
+ .name = 0xa7a43b17,
+ .id = "StickerSet"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_sticker_set = {
+ .name = 0x585bc4e8,
+ .id = "Bare_StickerSet",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_string = {
+ .name = 0xb5286e24,
+ .id = "String"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_string = {
+ .name = 0x4ad791db,
+ .id = "Bare_String",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_update = {
+ .name = 0x2e02b27e,
+ .id = "Update"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_update = {
+ .name = 0xd1fd4d81,
+ .id = "Bare_Update",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_updates = {
+ .name = 0x22499d27,
+ .id = "Updates"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_updates = {
+ .name = 0xddb662d8,
+ .id = "Bare_Updates",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_user = {
+ .name = 0x02e6c0c8,
+ .id = "User"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_user = {
+ .name = 0xfd193f37,
+ .id = "Bare_User",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_user_full = {
+ .name = 0x5a89ac5b,
+ .id = "UserFull"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_user_full = {
+ .name = 0xa57653a4,
+ .id = "Bare_UserFull",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_user_profile_photo = {
+ .name = 0x9a486229,
+ .id = "UserProfilePhoto"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_user_profile_photo = {
+ .name = 0x65b79dd6,
+ .id = "Bare_UserProfilePhoto",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_user_status = {
+ .name = 0x76de9570,
+ .id = "UserStatus"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_user_status = {
+ .name = 0x89216a8f,
+ .id = "Bare_UserStatus",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_vector = {
+ .name = 0x1cb5c415,
+ .id = "Vector"
+, .params_num = 1,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_vector = {
+ .name = 0xe34a3bea,
+ .id = "Bare_Vector",
+ .params_num = 1,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_video = {
+ .name = 0x1716b174,
+ .id = "Video"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_video = {
+ .name = 0xe8e94e8b,
+ .id = "Bare_Video",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_wall_paper = {
+ .name = 0xafa14973,
+ .id = "WallPaper"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_wall_paper = {
+ .name = 0x505eb68c,
+ .id = "Bare_WallPaper",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_web_page = {
+ .name = 0x8d8c0d41,
+ .id = "WebPage"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_web_page = {
+ .name = 0x7273f2be,
+ .id = "Bare_WebPage",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_account_authorizations = {
+ .name = 0x1250abde,
+ .id = "account.Authorizations"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_account_authorizations = {
+ .name = 0xedaf5421,
+ .id = "Bare_account.Authorizations",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_account_password = {
+ .name = 0xeac2a804,
+ .id = "account.Password"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_account_password = {
+ .name = 0x153d57fb,
+ .id = "Bare_account.Password",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_account_password_input_settings = {
+ .name = 0xbcfc532c,
+ .id = "account.PasswordInputSettings"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_account_password_input_settings = {
+ .name = 0x4303acd3,
+ .id = "Bare_account.PasswordInputSettings",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_account_password_settings = {
+ .name = 0xb7b72ab3,
+ .id = "account.PasswordSettings"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_account_password_settings = {
+ .name = 0x4848d54c,
+ .id = "Bare_account.PasswordSettings",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_account_privacy_rules = {
+ .name = 0x554abb6f,
+ .id = "account.PrivacyRules"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_account_privacy_rules = {
+ .name = 0xaab54490,
+ .id = "Bare_account.PrivacyRules",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_account_sent_change_phone_code = {
+ .name = 0xa4f58c4c,
+ .id = "account.SentChangePhoneCode"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_account_sent_change_phone_code = {
+ .name = 0x5b0a73b3,
+ .id = "Bare_account.SentChangePhoneCode",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_auth_authorization = {
+ .name = 0xff036af1,
+ .id = "auth.Authorization"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_auth_authorization = {
+ .name = 0x00fc950e,
+ .id = "Bare_auth.Authorization",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_auth_checked_phone = {
+ .name = 0x811ea28e,
+ .id = "auth.CheckedPhone"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_auth_checked_phone = {
+ .name = 0x7ee15d71,
+ .id = "Bare_auth.CheckedPhone",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_auth_exported_authorization = {
+ .name = 0xdf969c2d,
+ .id = "auth.ExportedAuthorization"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_auth_exported_authorization = {
+ .name = 0x206963d2,
+ .id = "Bare_auth.ExportedAuthorization",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_auth_password_recovery = {
+ .name = 0x137948a5,
+ .id = "auth.PasswordRecovery"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_auth_password_recovery = {
+ .name = 0xec86b75a,
+ .id = "Bare_auth.PasswordRecovery",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_auth_sent_code = {
+ .name = 0x0cc8bc16,
+ .id = "auth.SentCode"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_auth_sent_code = {
+ .name = 0xf33743e9,
+ .id = "Bare_auth.SentCode",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_binlog_encr_key = {
+ .name = 0x0377168f,
+ .id = "binlog.EncrKey"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_binlog_encr_key = {
+ .name = 0xfc88e970,
+ .id = "Bare_binlog.EncrKey",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_binlog_update = {
+ .name = 0x66ff03a6,
+ .id = "binlog.Update"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_binlog_update = {
+ .name = 0x9900fc59,
+ .id = "Bare_binlog.Update",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_contacts_blocked = {
+ .name = 0x8c1b8fb4,
+ .id = "contacts.Blocked"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_contacts_blocked = {
+ .name = 0x73e4704b,
+ .id = "Bare_contacts.Blocked",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_contacts_contacts = {
+ .name = 0xd8c02560,
+ .id = "contacts.Contacts"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_contacts_contacts = {
+ .name = 0x273fda9f,
+ .id = "Bare_contacts.Contacts",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_contacts_found = {
+ .name = 0x0566000e,
+ .id = "contacts.Found"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_contacts_found = {
+ .name = 0xfa99fff1,
+ .id = "Bare_contacts.Found",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_contacts_imported_contacts = {
+ .name = 0xad524315,
+ .id = "contacts.ImportedContacts"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_contacts_imported_contacts = {
+ .name = 0x52adbcea,
+ .id = "Bare_contacts.ImportedContacts",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_contacts_link = {
+ .name = 0x3ace484c,
+ .id = "contacts.Link"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_contacts_link = {
+ .name = 0xc531b7b3,
+ .id = "Bare_contacts.Link",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_contacts_suggested = {
+ .name = 0x5649dcc5,
+ .id = "contacts.Suggested"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_contacts_suggested = {
+ .name = 0xa9b6233a,
+ .id = "Bare_contacts.Suggested",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_geochats_located = {
+ .name = 0x48feb267,
+ .id = "geochats.Located"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_geochats_located = {
+ .name = 0xb7014d98,
+ .id = "Bare_geochats.Located",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_geochats_messages = {
+ .name = 0x6d0a0e59,
+ .id = "geochats.Messages"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_geochats_messages = {
+ .name = 0x92f5f1a6,
+ .id = "Bare_geochats.Messages",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_geochats_stated_message = {
+ .name = 0x17b1578b,
+ .id = "geochats.StatedMessage"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_geochats_stated_message = {
+ .name = 0xe84ea874,
+ .id = "Bare_geochats.StatedMessage",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_help_app_update = {
+ .name = 0x4ddd9627,
+ .id = "help.AppUpdate"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_help_app_update = {
+ .name = 0xb22269d8,
+ .id = "Bare_help.AppUpdate",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_help_invite_text = {
+ .name = 0x18cb9f78,
+ .id = "help.InviteText"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_help_invite_text = {
+ .name = 0xe7346087,
+ .id = "Bare_help.InviteText",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_help_support = {
+ .name = 0x17c6b5f6,
+ .id = "help.Support"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_help_support = {
+ .name = 0xe8394a09,
+ .id = "Bare_help.Support",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_messages_affected_history = {
+ .name = 0xb45c69d1,
+ .id = "messages.AffectedHistory"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_messages_affected_history = {
+ .name = 0x4ba3962e,
+ .id = "Bare_messages.AffectedHistory",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_messages_affected_messages = {
+ .name = 0x84d19185,
+ .id = "messages.AffectedMessages"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_messages_affected_messages = {
+ .name = 0x7b2e6e7a,
+ .id = "Bare_messages.AffectedMessages",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_messages_all_stickers = {
+ .name = 0xb485502f,
+ .id = "messages.AllStickers"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_messages_all_stickers = {
+ .name = 0x4b7aafd0,
+ .id = "Bare_messages.AllStickers",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_messages_chat_full = {
+ .name = 0xe5d7d19c,
+ .id = "messages.ChatFull"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_messages_chat_full = {
+ .name = 0x1a282e63,
+ .id = "Bare_messages.ChatFull",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_messages_chats = {
+ .name = 0x64ff9fd5,
+ .id = "messages.Chats"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_messages_chats = {
+ .name = 0x9b00602a,
+ .id = "Bare_messages.Chats",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_messages_dh_config = {
+ .name = 0xecc058e8,
+ .id = "messages.DhConfig"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_messages_dh_config = {
+ .name = 0x133fa717,
+ .id = "Bare_messages.DhConfig",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_messages_dialogs = {
+ .name = 0x645af8b3,
+ .id = "messages.Dialogs"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_messages_dialogs = {
+ .name = 0x9ba5074c,
+ .id = "Bare_messages.Dialogs",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_messages_message = {
+ .name = 0x3f4e0648,
+ .id = "messages.Message"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_messages_message = {
+ .name = 0xc0b1f9b7,
+ .id = "Bare_messages.Message",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_messages_messages = {
+ .name = 0x8735e464,
+ .id = "messages.Messages"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_messages_messages = {
+ .name = 0x78ca1b9b,
+ .id = "Bare_messages.Messages",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_messages_sent_encrypted_message = {
+ .name = 0xc29c7607,
+ .id = "messages.SentEncryptedMessage"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_messages_sent_encrypted_message = {
+ .name = 0x3d6389f8,
+ .id = "Bare_messages.SentEncryptedMessage",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_messages_sent_message = {
+ .name = 0x799ce190,
+ .id = "messages.SentMessage"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_messages_sent_message = {
+ .name = 0x86631e6f,
+ .id = "Bare_messages.SentMessage",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_messages_sticker_set = {
+ .name = 0xb60a24a6,
+ .id = "messages.StickerSet"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_messages_sticker_set = {
+ .name = 0x49f5db59,
+ .id = "Bare_messages.StickerSet",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_messages_stickers = {
+ .name = 0x7bfa5710,
+ .id = "messages.Stickers"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_messages_stickers = {
+ .name = 0x8405a8ef,
+ .id = "Bare_messages.Stickers",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_photos_photo = {
+ .name = 0x20212ca8,
+ .id = "photos.Photo"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_photos_photo = {
+ .name = 0xdfded357,
+ .id = "Bare_photos.Photo",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_photos_photos = {
+ .name = 0x98cf75f1,
+ .id = "photos.Photos"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_photos_photos = {
+ .name = 0x67308a0e,
+ .id = "Bare_photos.Photos",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_storage_file_type = {
+ .name = 0x3e2838a8,
+ .id = "storage.FileType"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_storage_file_type = {
+ .name = 0xc1d7c757,
+ .id = "Bare_storage.FileType",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_updates_difference = {
+ .name = 0xf57a2419,
+ .id = "updates.Difference"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_updates_difference = {
+ .name = 0x0a85dbe6,
+ .id = "Bare_updates.Difference",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_updates_state = {
+ .name = 0xa56c2a3e,
+ .id = "updates.State"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_updates_state = {
+ .name = 0x5a93d5c1,
+ .id = "Bare_updates.State",
+ .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_upload_file = {
+ .name = 0x096a18d5,
+ .id = "upload.File"
+, .params_num = 0,
+ .params_types = 0
+};
+struct tl_type_descr tl_type_bare_upload_file = {
+ .name = 0xf695e72a,
+ .id = "Bare_upload.File",
+ .params_num = 0,
+ .params_types = 0
+};
diff --git a/libs/tgl/src/auto/auto-types.h b/libs/tgl/src/auto/auto-types.h
new file mode 100644
index 0000000000..74e8de9039
--- /dev/null
+++ b/libs/tgl/src/auto/auto-types.h
@@ -0,0 +1,1589 @@
+#ifndef __AUTO_TYPES_H__
+#define __AUTO_TYPES_H__
+#ifdef _MSC_VER
+#include "..\auto.h"
+#else
+#include "auto.h"
+#endif
+extern struct tl_type_descr tl_type_account_days_t_t_l;
+extern struct tl_type_descr tl_type_bare_account_days_t_t_l;
+extern struct tl_type_descr tl_type_audio;
+extern struct tl_type_descr tl_type_bare_audio;
+extern struct tl_type_descr tl_type_authorization;
+extern struct tl_type_descr tl_type_bare_authorization;
+extern struct tl_type_descr tl_type_bool;
+extern struct tl_type_descr tl_type_bare_bool;
+extern struct tl_type_descr tl_type_bot_command;
+extern struct tl_type_descr tl_type_bare_bot_command;
+extern struct tl_type_descr tl_type_bot_info;
+extern struct tl_type_descr tl_type_bare_bot_info;
+extern struct tl_type_descr tl_type_bytes;
+extern struct tl_type_descr tl_type_bare_bytes;
+extern struct tl_type_descr tl_type_chat;
+extern struct tl_type_descr tl_type_bare_chat;
+extern struct tl_type_descr tl_type_chat_full;
+extern struct tl_type_descr tl_type_bare_chat_full;
+extern struct tl_type_descr tl_type_chat_invite;
+extern struct tl_type_descr tl_type_bare_chat_invite;
+extern struct tl_type_descr tl_type_chat_located;
+extern struct tl_type_descr tl_type_bare_chat_located;
+extern struct tl_type_descr tl_type_chat_participant;
+extern struct tl_type_descr tl_type_bare_chat_participant;
+extern struct tl_type_descr tl_type_chat_participants;
+extern struct tl_type_descr tl_type_bare_chat_participants;
+extern struct tl_type_descr tl_type_chat_photo;
+extern struct tl_type_descr tl_type_bare_chat_photo;
+extern struct tl_type_descr tl_type_client_d_h_inner_data;
+extern struct tl_type_descr tl_type_bare_client_d_h_inner_data;
+extern struct tl_type_descr tl_type_config;
+extern struct tl_type_descr tl_type_bare_config;
+extern struct tl_type_descr tl_type_contact;
+extern struct tl_type_descr tl_type_bare_contact;
+extern struct tl_type_descr tl_type_contact_blocked;
+extern struct tl_type_descr tl_type_bare_contact_blocked;
+extern struct tl_type_descr tl_type_contact_found;
+extern struct tl_type_descr tl_type_bare_contact_found;
+extern struct tl_type_descr tl_type_contact_link;
+extern struct tl_type_descr tl_type_bare_contact_link;
+extern struct tl_type_descr tl_type_contact_status;
+extern struct tl_type_descr tl_type_bare_contact_status;
+extern struct tl_type_descr tl_type_contact_suggested;
+extern struct tl_type_descr tl_type_bare_contact_suggested;
+extern struct tl_type_descr tl_type_dc_option;
+extern struct tl_type_descr tl_type_bare_dc_option;
+extern struct tl_type_descr tl_type_decrypted_message;
+extern struct tl_type_descr tl_type_bare_decrypted_message;
+extern struct tl_type_descr tl_type_decrypted_message_action;
+extern struct tl_type_descr tl_type_bare_decrypted_message_action;
+extern struct tl_type_descr tl_type_decrypted_message_layer;
+extern struct tl_type_descr tl_type_bare_decrypted_message_layer;
+extern struct tl_type_descr tl_type_decrypted_message_media;
+extern struct tl_type_descr tl_type_bare_decrypted_message_media;
+extern struct tl_type_descr tl_type_dialog;
+extern struct tl_type_descr tl_type_bare_dialog;
+extern struct tl_type_descr tl_type_disabled_feature;
+extern struct tl_type_descr tl_type_bare_disabled_feature;
+extern struct tl_type_descr tl_type_document;
+extern struct tl_type_descr tl_type_bare_document;
+extern struct tl_type_descr tl_type_document_attribute;
+extern struct tl_type_descr tl_type_bare_document_attribute;
+extern struct tl_type_descr tl_type_double;
+extern struct tl_type_descr tl_type_bare_double;
+extern struct tl_type_descr tl_type_encrypted_chat;
+extern struct tl_type_descr tl_type_bare_encrypted_chat;
+extern struct tl_type_descr tl_type_encrypted_file;
+extern struct tl_type_descr tl_type_bare_encrypted_file;
+extern struct tl_type_descr tl_type_encrypted_message;
+extern struct tl_type_descr tl_type_bare_encrypted_message;
+extern struct tl_type_descr tl_type_error;
+extern struct tl_type_descr tl_type_bare_error;
+extern struct tl_type_descr tl_type_exported_chat_invite;
+extern struct tl_type_descr tl_type_bare_exported_chat_invite;
+extern struct tl_type_descr tl_type_file_location;
+extern struct tl_type_descr tl_type_bare_file_location;
+extern struct tl_type_descr tl_type_geo_chat_message;
+extern struct tl_type_descr tl_type_bare_geo_chat_message;
+extern struct tl_type_descr tl_type_geo_point;
+extern struct tl_type_descr tl_type_bare_geo_point;
+extern struct tl_type_descr tl_type_imported_contact;
+extern struct tl_type_descr tl_type_bare_imported_contact;
+extern struct tl_type_descr tl_type_input_app_event;
+extern struct tl_type_descr tl_type_bare_input_app_event;
+extern struct tl_type_descr tl_type_input_audio;
+extern struct tl_type_descr tl_type_bare_input_audio;
+extern struct tl_type_descr tl_type_input_chat_photo;
+extern struct tl_type_descr tl_type_bare_input_chat_photo;
+extern struct tl_type_descr tl_type_input_contact;
+extern struct tl_type_descr tl_type_bare_input_contact;
+extern struct tl_type_descr tl_type_input_document;
+extern struct tl_type_descr tl_type_bare_input_document;
+extern struct tl_type_descr tl_type_input_encrypted_chat;
+extern struct tl_type_descr tl_type_bare_input_encrypted_chat;
+extern struct tl_type_descr tl_type_input_encrypted_file;
+extern struct tl_type_descr tl_type_bare_input_encrypted_file;
+extern struct tl_type_descr tl_type_input_file;
+extern struct tl_type_descr tl_type_bare_input_file;
+extern struct tl_type_descr tl_type_input_file_location;
+extern struct tl_type_descr tl_type_bare_input_file_location;
+extern struct tl_type_descr tl_type_input_geo_chat;
+extern struct tl_type_descr tl_type_bare_input_geo_chat;
+extern struct tl_type_descr tl_type_input_geo_point;
+extern struct tl_type_descr tl_type_bare_input_geo_point;
+extern struct tl_type_descr tl_type_input_media;
+extern struct tl_type_descr tl_type_bare_input_media;
+extern struct tl_type_descr tl_type_input_notify_peer;
+extern struct tl_type_descr tl_type_bare_input_notify_peer;
+extern struct tl_type_descr tl_type_input_peer;
+extern struct tl_type_descr tl_type_bare_input_peer;
+extern struct tl_type_descr tl_type_input_peer_notify_events;
+extern struct tl_type_descr tl_type_bare_input_peer_notify_events;
+extern struct tl_type_descr tl_type_input_peer_notify_settings;
+extern struct tl_type_descr tl_type_bare_input_peer_notify_settings;
+extern struct tl_type_descr tl_type_input_photo;
+extern struct tl_type_descr tl_type_bare_input_photo;
+extern struct tl_type_descr tl_type_input_photo_crop;
+extern struct tl_type_descr tl_type_bare_input_photo_crop;
+extern struct tl_type_descr tl_type_input_privacy_key;
+extern struct tl_type_descr tl_type_bare_input_privacy_key;
+extern struct tl_type_descr tl_type_input_privacy_rule;
+extern struct tl_type_descr tl_type_bare_input_privacy_rule;
+extern struct tl_type_descr tl_type_input_sticker_set;
+extern struct tl_type_descr tl_type_bare_input_sticker_set;
+extern struct tl_type_descr tl_type_input_user;
+extern struct tl_type_descr tl_type_bare_input_user;
+extern struct tl_type_descr tl_type_input_video;
+extern struct tl_type_descr tl_type_bare_input_video;
+extern struct tl_type_descr tl_type_int;
+extern struct tl_type_descr tl_type_bare_int;
+extern struct tl_type_descr tl_type_int128;
+extern struct tl_type_descr tl_type_bare_int128;
+extern struct tl_type_descr tl_type_int256;
+extern struct tl_type_descr tl_type_bare_int256;
+extern struct tl_type_descr tl_type_keyboard_button;
+extern struct tl_type_descr tl_type_bare_keyboard_button;
+extern struct tl_type_descr tl_type_keyboard_button_row;
+extern struct tl_type_descr tl_type_bare_keyboard_button_row;
+extern struct tl_type_descr tl_type_long;
+extern struct tl_type_descr tl_type_bare_long;
+extern struct tl_type_descr tl_type_message;
+extern struct tl_type_descr tl_type_bare_message;
+extern struct tl_type_descr tl_type_message_action;
+extern struct tl_type_descr tl_type_bare_message_action;
+extern struct tl_type_descr tl_type_message_media;
+extern struct tl_type_descr tl_type_bare_message_media;
+extern struct tl_type_descr tl_type_messages_filter;
+extern struct tl_type_descr tl_type_bare_messages_filter;
+extern struct tl_type_descr tl_type_nearest_dc;
+extern struct tl_type_descr tl_type_bare_nearest_dc;
+extern struct tl_type_descr tl_type_notify_peer;
+extern struct tl_type_descr tl_type_bare_notify_peer;
+extern struct tl_type_descr tl_type_null;
+extern struct tl_type_descr tl_type_bare_null;
+extern struct tl_type_descr tl_type_p_q_inner_data;
+extern struct tl_type_descr tl_type_bare_p_q_inner_data;
+extern struct tl_type_descr tl_type_peer;
+extern struct tl_type_descr tl_type_bare_peer;
+extern struct tl_type_descr tl_type_peer_notify_events;
+extern struct tl_type_descr tl_type_bare_peer_notify_events;
+extern struct tl_type_descr tl_type_peer_notify_settings;
+extern struct tl_type_descr tl_type_bare_peer_notify_settings;
+extern struct tl_type_descr tl_type_photo;
+extern struct tl_type_descr tl_type_bare_photo;
+extern struct tl_type_descr tl_type_photo_size;
+extern struct tl_type_descr tl_type_bare_photo_size;
+extern struct tl_type_descr tl_type_privacy_key;
+extern struct tl_type_descr tl_type_bare_privacy_key;
+extern struct tl_type_descr tl_type_privacy_rule;
+extern struct tl_type_descr tl_type_bare_privacy_rule;
+extern struct tl_type_descr tl_type_received_notify_message;
+extern struct tl_type_descr tl_type_bare_received_notify_message;
+extern struct tl_type_descr tl_type_reply_markup;
+extern struct tl_type_descr tl_type_bare_reply_markup;
+extern struct tl_type_descr tl_type_res_p_q;
+extern struct tl_type_descr tl_type_bare_res_p_q;
+extern struct tl_type_descr tl_type_send_message_action;
+extern struct tl_type_descr tl_type_bare_send_message_action;
+extern struct tl_type_descr tl_type_server_d_h_params;
+extern struct tl_type_descr tl_type_bare_server_d_h_params;
+extern struct tl_type_descr tl_type_server_d_h_inner_data;
+extern struct tl_type_descr tl_type_bare_server_d_h_inner_data;
+extern struct tl_type_descr tl_type_set_client_d_h_params_answer;
+extern struct tl_type_descr tl_type_bare_set_client_d_h_params_answer;
+extern struct tl_type_descr tl_type_sticker_pack;
+extern struct tl_type_descr tl_type_bare_sticker_pack;
+extern struct tl_type_descr tl_type_sticker_set;
+extern struct tl_type_descr tl_type_bare_sticker_set;
+extern struct tl_type_descr tl_type_string;
+extern struct tl_type_descr tl_type_bare_string;
+extern struct tl_type_descr tl_type_update;
+extern struct tl_type_descr tl_type_bare_update;
+extern struct tl_type_descr tl_type_updates;
+extern struct tl_type_descr tl_type_bare_updates;
+extern struct tl_type_descr tl_type_user;
+extern struct tl_type_descr tl_type_bare_user;
+extern struct tl_type_descr tl_type_user_full;
+extern struct tl_type_descr tl_type_bare_user_full;
+extern struct tl_type_descr tl_type_user_profile_photo;
+extern struct tl_type_descr tl_type_bare_user_profile_photo;
+extern struct tl_type_descr tl_type_user_status;
+extern struct tl_type_descr tl_type_bare_user_status;
+extern struct tl_type_descr tl_type_vector;
+extern struct tl_type_descr tl_type_bare_vector;
+extern struct tl_type_descr tl_type_video;
+extern struct tl_type_descr tl_type_bare_video;
+extern struct tl_type_descr tl_type_wall_paper;
+extern struct tl_type_descr tl_type_bare_wall_paper;
+extern struct tl_type_descr tl_type_web_page;
+extern struct tl_type_descr tl_type_bare_web_page;
+extern struct tl_type_descr tl_type_account_authorizations;
+extern struct tl_type_descr tl_type_bare_account_authorizations;
+extern struct tl_type_descr tl_type_account_password;
+extern struct tl_type_descr tl_type_bare_account_password;
+extern struct tl_type_descr tl_type_account_password_input_settings;
+extern struct tl_type_descr tl_type_bare_account_password_input_settings;
+extern struct tl_type_descr tl_type_account_password_settings;
+extern struct tl_type_descr tl_type_bare_account_password_settings;
+extern struct tl_type_descr tl_type_account_privacy_rules;
+extern struct tl_type_descr tl_type_bare_account_privacy_rules;
+extern struct tl_type_descr tl_type_account_sent_change_phone_code;
+extern struct tl_type_descr tl_type_bare_account_sent_change_phone_code;
+extern struct tl_type_descr tl_type_auth_authorization;
+extern struct tl_type_descr tl_type_bare_auth_authorization;
+extern struct tl_type_descr tl_type_auth_checked_phone;
+extern struct tl_type_descr tl_type_bare_auth_checked_phone;
+extern struct tl_type_descr tl_type_auth_exported_authorization;
+extern struct tl_type_descr tl_type_bare_auth_exported_authorization;
+extern struct tl_type_descr tl_type_auth_password_recovery;
+extern struct tl_type_descr tl_type_bare_auth_password_recovery;
+extern struct tl_type_descr tl_type_auth_sent_code;
+extern struct tl_type_descr tl_type_bare_auth_sent_code;
+extern struct tl_type_descr tl_type_binlog_encr_key;
+extern struct tl_type_descr tl_type_bare_binlog_encr_key;
+extern struct tl_type_descr tl_type_binlog_update;
+extern struct tl_type_descr tl_type_bare_binlog_update;
+extern struct tl_type_descr tl_type_contacts_blocked;
+extern struct tl_type_descr tl_type_bare_contacts_blocked;
+extern struct tl_type_descr tl_type_contacts_contacts;
+extern struct tl_type_descr tl_type_bare_contacts_contacts;
+extern struct tl_type_descr tl_type_contacts_found;
+extern struct tl_type_descr tl_type_bare_contacts_found;
+extern struct tl_type_descr tl_type_contacts_imported_contacts;
+extern struct tl_type_descr tl_type_bare_contacts_imported_contacts;
+extern struct tl_type_descr tl_type_contacts_link;
+extern struct tl_type_descr tl_type_bare_contacts_link;
+extern struct tl_type_descr tl_type_contacts_suggested;
+extern struct tl_type_descr tl_type_bare_contacts_suggested;
+extern struct tl_type_descr tl_type_geochats_located;
+extern struct tl_type_descr tl_type_bare_geochats_located;
+extern struct tl_type_descr tl_type_geochats_messages;
+extern struct tl_type_descr tl_type_bare_geochats_messages;
+extern struct tl_type_descr tl_type_geochats_stated_message;
+extern struct tl_type_descr tl_type_bare_geochats_stated_message;
+extern struct tl_type_descr tl_type_help_app_update;
+extern struct tl_type_descr tl_type_bare_help_app_update;
+extern struct tl_type_descr tl_type_help_invite_text;
+extern struct tl_type_descr tl_type_bare_help_invite_text;
+extern struct tl_type_descr tl_type_help_support;
+extern struct tl_type_descr tl_type_bare_help_support;
+extern struct tl_type_descr tl_type_messages_affected_history;
+extern struct tl_type_descr tl_type_bare_messages_affected_history;
+extern struct tl_type_descr tl_type_messages_affected_messages;
+extern struct tl_type_descr tl_type_bare_messages_affected_messages;
+extern struct tl_type_descr tl_type_messages_all_stickers;
+extern struct tl_type_descr tl_type_bare_messages_all_stickers;
+extern struct tl_type_descr tl_type_messages_chat_full;
+extern struct tl_type_descr tl_type_bare_messages_chat_full;
+extern struct tl_type_descr tl_type_messages_chats;
+extern struct tl_type_descr tl_type_bare_messages_chats;
+extern struct tl_type_descr tl_type_messages_dh_config;
+extern struct tl_type_descr tl_type_bare_messages_dh_config;
+extern struct tl_type_descr tl_type_messages_dialogs;
+extern struct tl_type_descr tl_type_bare_messages_dialogs;
+extern struct tl_type_descr tl_type_messages_message;
+extern struct tl_type_descr tl_type_bare_messages_message;
+extern struct tl_type_descr tl_type_messages_messages;
+extern struct tl_type_descr tl_type_bare_messages_messages;
+extern struct tl_type_descr tl_type_messages_sent_encrypted_message;
+extern struct tl_type_descr tl_type_bare_messages_sent_encrypted_message;
+extern struct tl_type_descr tl_type_messages_sent_message;
+extern struct tl_type_descr tl_type_bare_messages_sent_message;
+extern struct tl_type_descr tl_type_messages_sticker_set;
+extern struct tl_type_descr tl_type_bare_messages_sticker_set;
+extern struct tl_type_descr tl_type_messages_stickers;
+extern struct tl_type_descr tl_type_bare_messages_stickers;
+extern struct tl_type_descr tl_type_photos_photo;
+extern struct tl_type_descr tl_type_bare_photos_photo;
+extern struct tl_type_descr tl_type_photos_photos;
+extern struct tl_type_descr tl_type_bare_photos_photos;
+extern struct tl_type_descr tl_type_storage_file_type;
+extern struct tl_type_descr tl_type_bare_storage_file_type;
+extern struct tl_type_descr tl_type_updates_difference;
+extern struct tl_type_descr tl_type_bare_updates_difference;
+extern struct tl_type_descr tl_type_updates_state;
+extern struct tl_type_descr tl_type_bare_updates_state;
+extern struct tl_type_descr tl_type_upload_file;
+extern struct tl_type_descr tl_type_bare_upload_file;
+struct tl_ds_account_days_t_t_l {
+ int *days;
+};
+struct tl_ds_audio {
+ unsigned magic;
+ long long *id;
+ long long *access_hash;
+ int *user_id;
+ int *date;
+ int *duration;
+ struct tl_ds_string *mime_type;
+ int *size;
+ int *dc_id;
+};
+struct tl_ds_authorization {
+ long long *hash;
+ int *flags;
+ struct tl_ds_string *device_model;
+ struct tl_ds_string *platform;
+ struct tl_ds_string *system_version;
+ int *api_id;
+ struct tl_ds_string *app_name;
+ struct tl_ds_string *app_version;
+ int *date_created;
+ int *date_active;
+ struct tl_ds_string *ip;
+ struct tl_ds_string *country;
+ struct tl_ds_string *region;
+};
+struct tl_ds_bool {
+ unsigned magic;
+};
+struct tl_ds_bot_command {
+ unsigned magic;
+ struct tl_ds_string *command;
+ struct tl_ds_string *description;
+ struct tl_ds_string *params;
+};
+struct tl_ds_bot_info {
+ unsigned magic;
+ int *user_id;
+ int *version;
+ struct tl_ds_string *share_text;
+ struct tl_ds_string *description;
+ struct {
+ int *cnt;
+ struct tl_ds_bot_command **data;
+ } *commands;
+};
+struct tl_ds_bytes {
+ int len;
+ char *data;
+};
+struct tl_ds_chat {
+ unsigned magic;
+ int *id;
+ struct tl_ds_string *title;
+ struct tl_ds_chat_photo *photo;
+ int *participants_count;
+ int *date;
+ struct tl_ds_bool *left;
+ int *version;
+ long long *access_hash;
+ struct tl_ds_string *address;
+ struct tl_ds_string *venue;
+ struct tl_ds_geo_point *geo;
+ struct tl_ds_bool *checked_in;
+};
+struct tl_ds_chat_full {
+ int *id;
+ struct tl_ds_chat_participants *participants;
+ struct tl_ds_photo *chat_photo;
+ struct tl_ds_peer_notify_settings *notify_settings;
+ struct tl_ds_exported_chat_invite *exported_invite;
+ struct {
+ int *cnt;
+ struct tl_ds_bot_info **data;
+ } *bot_info;
+};
+struct tl_ds_chat_invite {
+ unsigned magic;
+ struct tl_ds_chat *chat;
+ struct tl_ds_string *title;
+};
+struct tl_ds_chat_located {
+ int *chat_id;
+ int *distance;
+};
+struct tl_ds_chat_participant {
+ int *user_id;
+ int *inviter_id;
+ int *date;
+};
+struct tl_ds_chat_participants {
+ unsigned magic;
+ int *chat_id;
+ int *admin_id;
+ struct {
+ int *cnt;
+ struct tl_ds_chat_participant **data;
+ } *participants;
+ int *version;
+};
+struct tl_ds_chat_photo {
+ unsigned magic;
+ struct tl_ds_file_location *photo_small;
+ struct tl_ds_file_location *photo_big;
+};
+struct tl_ds_client_d_h_inner_data {
+ struct tl_ds_int128 *nonce;
+ struct tl_ds_int128 *server_nonce;
+ long long *retry_id;
+ struct tl_ds_string *g_b;
+};
+struct tl_ds_config {
+ int *date;
+ int *expires;
+ struct tl_ds_bool *test_mode;
+ int *this_dc;
+ struct {
+ int *cnt;
+ struct tl_ds_dc_option **data;
+ } *dc_options;
+ int *chat_size_max;
+ int *broadcast_size_max;
+ int *forwarded_count_max;
+ int *online_update_period_ms;
+ int *offline_blur_timeout_ms;
+ int *offline_idle_timeout_ms;
+ int *online_cloud_timeout_ms;
+ int *notify_cloud_delay_ms;
+ int *notify_default_delay_ms;
+ int *chat_big_size;
+ int *push_chat_period_ms;
+ int *push_chat_limit;
+ struct {
+ int *cnt;
+ struct tl_ds_disabled_feature **data;
+ } *disabled_features;
+};
+struct tl_ds_contact {
+ int *user_id;
+ struct tl_ds_bool *mutual;
+};
+struct tl_ds_contact_blocked {
+ int *user_id;
+ int *date;
+};
+struct tl_ds_contact_found {
+ int *user_id;
+};
+struct tl_ds_contact_link {
+ unsigned magic;
+};
+struct tl_ds_contact_status {
+ int *user_id;
+ struct tl_ds_user_status *status;
+};
+struct tl_ds_contact_suggested {
+ int *user_id;
+ int *mutual_contacts;
+};
+struct tl_ds_dc_option {
+ unsigned magic;
+ int *id;
+ struct tl_ds_string *hostname;
+ struct tl_ds_string *ip_address;
+ int *port;
+ int *flags;
+};
+struct tl_ds_decrypted_message {
+ unsigned magic;
+ long long *random_id;
+ int *ttl;
+ struct tl_ds_string *message;
+ struct tl_ds_decrypted_message_media *media;
+ struct tl_ds_decrypted_message_action *action;
+};
+struct tl_ds_decrypted_message_action {
+ unsigned magic;
+ int *ttl_seconds;
+ struct {
+ int *cnt;
+ long long **data;
+ } *random_ids;
+ int *start_seq_no;
+ int *end_seq_no;
+ int *layer;
+ struct tl_ds_send_message_action *action;
+ long long *exchange_id;
+ struct tl_ds_string *g_a;
+ struct tl_ds_string *g_b;
+ long long *key_fingerprint;
+};
+struct tl_ds_decrypted_message_layer {
+ struct tl_ds_string *random_bytes;
+ int *layer;
+ int *in_seq_no;
+ int *out_seq_no;
+ struct tl_ds_decrypted_message *message;
+};
+struct tl_ds_decrypted_message_media {
+ unsigned magic;
+ struct tl_ds_string *str_thumb;
+ int *thumb_w;
+ int *thumb_h;
+ int *w;
+ int *h;
+ int *size;
+ struct tl_ds_string *key;
+ struct tl_ds_string *iv;
+ double *latitude;
+ double *longitude;
+ struct tl_ds_string *phone_number;
+ struct tl_ds_string *first_name;
+ struct tl_ds_string *last_name;
+ int *user_id;
+ struct tl_ds_string *file_name;
+ struct tl_ds_string *mime_type;
+ int *duration;
+ long long *id;
+ long long *access_hash;
+ int *date;
+ struct tl_ds_photo_size *thumb;
+ int *dc_id;
+ struct {
+ int *cnt;
+ struct tl_ds_document_attribute **data;
+ } *attributes;
+};
+struct tl_ds_dialog {
+ struct tl_ds_peer *peer;
+ int *top_message;
+ int *read_inbox_max_id;
+ int *unread_count;
+ struct tl_ds_peer_notify_settings *notify_settings;
+};
+struct tl_ds_disabled_feature {
+ struct tl_ds_string *feature;
+ struct tl_ds_string *description;
+};
+struct tl_ds_document {
+ unsigned magic;
+ long long *id;
+ long long *access_hash;
+ int *date;
+ struct tl_ds_string *mime_type;
+ int *size;
+ struct tl_ds_photo_size *thumb;
+ int *dc_id;
+ struct {
+ int *cnt;
+ struct tl_ds_document_attribute **data;
+ } *attributes;
+ int *user_id;
+ struct tl_ds_string *file_name;
+};
+struct tl_ds_document_attribute {
+ unsigned magic;
+ int *w;
+ int *h;
+ struct tl_ds_string *alt;
+ struct tl_ds_input_sticker_set *stickerset;
+ int *duration;
+ struct tl_ds_string *file_name;
+};
+struct tl_ds_double {
+ int : 0;
+};
+struct tl_ds_encrypted_chat {
+ unsigned magic;
+ int *id;
+ long long *access_hash;
+ int *date;
+ int *admin_id;
+ int *participant_id;
+ struct tl_ds_string *g_a;
+ struct tl_ds_string *g_a_or_b;
+ long long *key_fingerprint;
+};
+struct tl_ds_encrypted_file {
+ unsigned magic;
+ long long *id;
+ long long *access_hash;
+ int *size;
+ int *dc_id;
+ int *key_fingerprint;
+};
+struct tl_ds_encrypted_message {
+ unsigned magic;
+ long long *random_id;
+ int *chat_id;
+ int *date;
+ struct tl_ds_string *bytes;
+ struct tl_ds_encrypted_file *file;
+};
+struct tl_ds_error {
+ int *code;
+ struct tl_ds_string *text;
+};
+struct tl_ds_exported_chat_invite {
+ unsigned magic;
+ struct tl_ds_string *link;
+};
+struct tl_ds_file_location {
+ unsigned magic;
+ long long *volume_id;
+ int *local_id;
+ long long *secret;
+ int *dc_id;
+};
+struct tl_ds_geo_chat_message {
+ unsigned magic;
+ int *chat_id;
+ int *id;
+ int *from_id;
+ int *date;
+ struct tl_ds_string *message;
+ struct tl_ds_message_media *media;
+ struct tl_ds_message_action *action;
+};
+struct tl_ds_geo_point {
+ unsigned magic;
+ double *longitude;
+ double *latitude;
+};
+struct tl_ds_imported_contact {
+ int *user_id;
+ long long *client_id;
+};
+struct tl_ds_input_app_event {
+ double *time;
+ struct tl_ds_string *type;
+ long long *peer;
+ struct tl_ds_string *data;
+};
+struct tl_ds_input_audio {
+ unsigned magic;
+ long long *id;
+ long long *access_hash;
+};
+struct tl_ds_input_chat_photo {
+ unsigned magic;
+ struct tl_ds_input_file *file;
+ struct tl_ds_input_photo_crop *crop;
+ struct tl_ds_input_photo *id;
+};
+struct tl_ds_input_contact {
+ long long *client_id;
+ struct tl_ds_string *phone;
+ struct tl_ds_string *first_name;
+ struct tl_ds_string *last_name;
+};
+struct tl_ds_input_document {
+ unsigned magic;
+ long long *id;
+ long long *access_hash;
+};
+struct tl_ds_input_encrypted_chat {
+ int *chat_id;
+ long long *access_hash;
+};
+struct tl_ds_input_encrypted_file {
+ unsigned magic;
+ long long *id;
+ int *parts;
+ struct tl_ds_string *md5_checksum;
+ int *key_fingerprint;
+ long long *access_hash;
+};
+struct tl_ds_input_file {
+ unsigned magic;
+ long long *id;
+ int *parts;
+ struct tl_ds_string *name;
+ struct tl_ds_string *md5_checksum;
+};
+struct tl_ds_input_file_location {
+ unsigned magic;
+ long long *volume_id;
+ int *local_id;
+ long long *secret;
+ long long *id;
+ long long *access_hash;
+};
+struct tl_ds_input_geo_chat {
+ int *chat_id;
+ long long *access_hash;
+};
+struct tl_ds_input_geo_point {
+ unsigned magic;
+ double *latitude;
+ double *longitude;
+};
+struct tl_ds_input_media {
+ unsigned magic;
+ struct tl_ds_input_file *file;
+ struct tl_ds_string *caption;
+ struct tl_ds_input_photo *id;
+ struct tl_ds_input_geo_point *geo_point;
+ struct tl_ds_string *phone_number;
+ struct tl_ds_string *first_name;
+ struct tl_ds_string *last_name;
+ int *duration;
+ int *w;
+ int *h;
+ struct tl_ds_input_file *thumb;
+ struct tl_ds_input_video *video_id;
+ struct tl_ds_string *mime_type;
+ struct tl_ds_input_audio *audio_id;
+ struct {
+ int *cnt;
+ struct tl_ds_document_attribute **data;
+ } *attributes;
+ struct tl_ds_input_document *document_id;
+ struct tl_ds_string *title;
+ struct tl_ds_string *address;
+ struct tl_ds_string *provider;
+ struct tl_ds_string *venue_id;
+};
+struct tl_ds_input_notify_peer {
+ unsigned magic;
+ struct tl_ds_input_peer *peer;
+ struct tl_ds_input_geo_chat *geo_peer;
+};
+struct tl_ds_input_peer {
+ unsigned magic;
+ int *user_id;
+ long long *access_hash;
+ int *chat_id;
+};
+struct tl_ds_input_peer_notify_events {
+ unsigned magic;
+};
+struct tl_ds_input_peer_notify_settings {
+ int *mute_until;
+ struct tl_ds_string *sound;
+ struct tl_ds_bool *show_previews;
+ int *events_mask;
+};
+struct tl_ds_input_photo {
+ unsigned magic;
+ long long *id;
+ long long *access_hash;
+};
+struct tl_ds_input_photo_crop {
+ unsigned magic;
+ double *crop_left;
+ double *crop_top;
+ double *crop_width;
+};
+struct tl_ds_input_privacy_key {
+ int : 0;
+};
+struct tl_ds_input_privacy_rule {
+ unsigned magic;
+ struct {
+ int *cnt;
+ struct tl_ds_input_user **data;
+ } *users;
+};
+struct tl_ds_input_sticker_set {
+ unsigned magic;
+ long long *id;
+ long long *access_hash;
+ struct tl_ds_string *short_name;
+};
+struct tl_ds_input_user {
+ unsigned magic;
+ int *user_id;
+ long long *access_hash;
+};
+struct tl_ds_input_video {
+ unsigned magic;
+ long long *id;
+ long long *access_hash;
+};
+struct tl_ds_int {
+ int : 0;
+};
+struct tl_ds_int128 {
+ long long *f0;
+ long long *f1;
+};
+struct tl_ds_int256 {
+ long long *f0;
+ long long *f1;
+ long long *f2;
+ long long *f3;
+};
+struct tl_ds_keyboard_button {
+ struct tl_ds_string *text;
+};
+struct tl_ds_keyboard_button_row {
+ struct {
+ int *cnt;
+ struct tl_ds_keyboard_button **data;
+ } *buttons;
+};
+struct tl_ds_long {
+ int : 0;
+};
+struct tl_ds_message {
+ unsigned magic;
+ int *id;
+ int *flags;
+ int *from_id;
+ struct tl_ds_peer *to_id;
+ int *fwd_from_id;
+ int *fwd_date;
+ int *reply_to_msg_id;
+ int *date;
+ struct tl_ds_string *message;
+ struct tl_ds_message_media *media;
+ struct tl_ds_reply_markup *reply_markup;
+ struct tl_ds_message_action *action;
+};
+struct tl_ds_message_action {
+ unsigned magic;
+ struct tl_ds_string *title;
+ struct {
+ int *cnt;
+ int **data;
+ } *users;
+ struct tl_ds_photo *photo;
+ int *user_id;
+ struct tl_ds_string *address;
+ int *inviter_id;
+};
+struct tl_ds_message_media {
+ unsigned magic;
+ struct tl_ds_photo *photo;
+ struct tl_ds_string *caption;
+ struct tl_ds_video *video;
+ struct tl_ds_geo_point *geo;
+ struct tl_ds_string *phone_number;
+ struct tl_ds_string *first_name;
+ struct tl_ds_string *last_name;
+ int *user_id;
+ struct tl_ds_document *document;
+ struct tl_ds_audio *audio;
+ struct tl_ds_web_page *webpage;
+ struct tl_ds_string *title;
+ struct tl_ds_string *address;
+ struct tl_ds_string *provider;
+ struct tl_ds_string *venue_id;
+};
+struct tl_ds_messages_filter {
+ unsigned magic;
+};
+struct tl_ds_nearest_dc {
+ struct tl_ds_string *country;
+ int *this_dc;
+ int *nearest_dc;
+};
+struct tl_ds_notify_peer {
+ unsigned magic;
+ struct tl_ds_peer *peer;
+};
+struct tl_ds_null {
+ int : 0;
+};
+struct tl_ds_p_q_inner_data {
+ unsigned magic;
+ struct tl_ds_string *pq;
+ struct tl_ds_string *p;
+ struct tl_ds_string *q;
+ struct tl_ds_int128 *nonce;
+ struct tl_ds_int128 *server_nonce;
+ struct tl_ds_int256 *new_nonce;
+ int *expires_in;
+};
+struct tl_ds_peer {
+ unsigned magic;
+ int *user_id;
+ int *chat_id;
+};
+struct tl_ds_peer_notify_events {
+ unsigned magic;
+};
+struct tl_ds_peer_notify_settings {
+ unsigned magic;
+ int *mute_until;
+ struct tl_ds_string *sound;
+ struct tl_ds_bool *show_previews;
+ int *events_mask;
+};
+struct tl_ds_photo {
+ unsigned magic;
+ long long *id;
+ long long *access_hash;
+ int *user_id;
+ int *date;
+ struct tl_ds_geo_point *geo;
+ struct {
+ int *cnt;
+ struct tl_ds_photo_size **data;
+ } *sizes;
+ struct tl_ds_string *caption;
+};
+struct tl_ds_photo_size {
+ unsigned magic;
+ struct tl_ds_string *type;
+ struct tl_ds_file_location *location;
+ int *w;
+ int *h;
+ int *size;
+ struct tl_ds_string *bytes;
+};
+struct tl_ds_privacy_key {
+ int : 0;
+};
+struct tl_ds_privacy_rule {
+ unsigned magic;
+ struct {
+ int *cnt;
+ int **data;
+ } *users;
+};
+struct tl_ds_received_notify_message {
+ int *id;
+ int *flags;
+};
+struct tl_ds_reply_markup {
+ unsigned magic;
+ int *flags;
+ struct {
+ int *cnt;
+ struct tl_ds_keyboard_button_row **data;
+ } *rows;
+};
+struct tl_ds_res_p_q {
+ struct tl_ds_int128 *nonce;
+ struct tl_ds_int128 *server_nonce;
+ struct tl_ds_string *pq;
+ struct {
+ int *cnt;
+ long long **data;
+ } *server_public_key_fingerprints;
+};
+struct tl_ds_send_message_action {
+ unsigned magic;
+ int *progress;
+};
+struct tl_ds_server_d_h_params {
+ unsigned magic;
+ struct tl_ds_int128 *nonce;
+ struct tl_ds_int128 *server_nonce;
+ struct tl_ds_int128 *new_nonce_hash;
+ struct tl_ds_string *encrypted_answer;
+};
+struct tl_ds_server_d_h_inner_data {
+ struct tl_ds_int128 *nonce;
+ struct tl_ds_int128 *server_nonce;
+ int *g;
+ struct tl_ds_string *dh_prime;
+ struct tl_ds_string *g_a;
+ int *server_time;
+};
+struct tl_ds_set_client_d_h_params_answer {
+ unsigned magic;
+ struct tl_ds_int128 *nonce;
+ struct tl_ds_int128 *server_nonce;
+ struct tl_ds_int128 *new_nonce_hash1;
+ struct tl_ds_int128 *new_nonce_hash2;
+ struct tl_ds_int128 *new_nonce_hash3;
+};
+struct tl_ds_sticker_pack {
+ struct tl_ds_string *emoticon;
+ struct {
+ int *cnt;
+ long long **data;
+ } *documents;
+};
+struct tl_ds_sticker_set {
+ long long *id;
+ long long *access_hash;
+ struct tl_ds_string *title;
+ struct tl_ds_string *short_name;
+};
+struct tl_ds_string {
+ int len;
+ char *data;
+};
+struct tl_ds_update {
+ unsigned magic;
+ struct tl_ds_message *message;
+ int *pts;
+ int *pts_count;
+ int *id;
+ long long *random_id;
+ struct {
+ int *cnt;
+ int **data;
+ } *messages;
+ int *user_id;
+ struct tl_ds_send_message_action *action;
+ int *chat_id;
+ struct tl_ds_chat_participants *participants;
+ struct tl_ds_user_status *status;
+ struct tl_ds_string *first_name;
+ struct tl_ds_string *last_name;
+ struct tl_ds_string *username;
+ int *date;
+ struct tl_ds_user_profile_photo *photo;
+ struct tl_ds_bool *previous;
+ struct tl_ds_contact_link *my_link;
+ struct tl_ds_contact_link *foreign_link;
+ long long *auth_key_id;
+ struct tl_ds_string *device;
+ struct tl_ds_string *location;
+ struct tl_ds_geo_chat_message *geo_message;
+ struct tl_ds_encrypted_message *encr_message;
+ int *qts;
+ struct tl_ds_encrypted_chat *encr_chat;
+ int *max_date;
+ int *inviter_id;
+ int *version;
+ struct {
+ int *cnt;
+ struct tl_ds_dc_option **data;
+ } *dc_options;
+ struct tl_ds_bool *blocked;
+ struct tl_ds_notify_peer *notify_peer;
+ struct tl_ds_peer_notify_settings *notify_settings;
+ struct tl_ds_string *type;
+ struct tl_ds_string *message_text;
+ struct tl_ds_message_media *media;
+ struct tl_ds_bool *popup;
+ struct tl_ds_privacy_key *key;
+ struct {
+ int *cnt;
+ struct tl_ds_privacy_rule **data;
+ } *rules;
+ struct tl_ds_string *phone;
+ struct tl_ds_peer *peer;
+ int *max_id;
+ struct tl_ds_web_page *webpage;
+};
+struct tl_ds_updates {
+ unsigned magic;
+ int *flags;
+ int *id;
+ int *user_id;
+ struct tl_ds_string *message;
+ int *pts;
+ int *pts_count;
+ int *date;
+ int *fwd_from_id;
+ int *fwd_date;
+ int *reply_to_msg_id;
+ int *from_id;
+ int *chat_id;
+ struct tl_ds_update *update;
+ struct {
+ int *cnt;
+ struct tl_ds_update **data;
+ } *updates;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+ struct {
+ int *cnt;
+ struct tl_ds_chat **data;
+ } *chats;
+ int *seq_start;
+ int *seq;
+};
+struct tl_ds_user {
+ unsigned magic;
+ int *id;
+ int *flags;
+ long long *access_hash;
+ struct tl_ds_string *first_name;
+ struct tl_ds_string *last_name;
+ struct tl_ds_string *username;
+ struct tl_ds_string *phone;
+ struct tl_ds_user_profile_photo *photo;
+ struct tl_ds_user_status *status;
+ int *bot_info_version;
+};
+struct tl_ds_user_full {
+ struct tl_ds_user *user;
+ struct tl_ds_contacts_link *link;
+ struct tl_ds_photo *profile_photo;
+ struct tl_ds_peer_notify_settings *notify_settings;
+ struct tl_ds_bool *blocked;
+ struct tl_ds_bot_info *bot_info;
+};
+struct tl_ds_user_profile_photo {
+ unsigned magic;
+ long long *photo_id;
+ struct tl_ds_file_location *photo_small;
+ struct tl_ds_file_location *photo_big;
+};
+struct tl_ds_user_status {
+ unsigned magic;
+ int *expires;
+ int *was_online;
+};
+struct tl_ds_vector {
+ int *f1;
+ void **f2;
+};
+struct tl_ds_video {
+ unsigned magic;
+ long long *id;
+ long long *access_hash;
+ int *user_id;
+ int *date;
+ int *duration;
+ int *size;
+ struct tl_ds_photo_size *thumb;
+ int *dc_id;
+ int *w;
+ int *h;
+ struct tl_ds_string *caption;
+ struct tl_ds_string *mime_type;
+};
+struct tl_ds_wall_paper {
+ unsigned magic;
+ int *id;
+ struct tl_ds_string *title;
+ struct {
+ int *cnt;
+ struct tl_ds_photo_size **data;
+ } *sizes;
+ int *color;
+ int *bg_color;
+};
+struct tl_ds_web_page {
+ unsigned magic;
+ long long *id;
+ int *date;
+ int *flags;
+ struct tl_ds_string *url;
+ struct tl_ds_string *display_url;
+ struct tl_ds_string *type;
+ struct tl_ds_string *site_name;
+ struct tl_ds_string *title;
+ struct tl_ds_string *description;
+ struct tl_ds_photo *photo;
+ struct tl_ds_string *embed_url;
+ struct tl_ds_string *embed_type;
+ int *embed_width;
+ int *embed_height;
+ int *duration;
+ struct tl_ds_string *author;
+};
+struct tl_ds_account_authorizations {
+ struct {
+ int *cnt;
+ struct tl_ds_authorization **data;
+ } *authorizations;
+};
+struct tl_ds_account_password {
+ unsigned magic;
+ struct tl_ds_string *new_salt;
+ struct tl_ds_string *email_unconfirmed_pattern;
+ struct tl_ds_string *current_salt;
+ struct tl_ds_string *hint;
+ struct tl_ds_bool *has_recovery;
+};
+struct tl_ds_account_password_input_settings {
+ int *flags;
+ struct tl_ds_string *new_salt;
+ struct tl_ds_string *new_password_hash;
+ struct tl_ds_string *hint;
+ struct tl_ds_string *email;
+};
+struct tl_ds_account_password_settings {
+ struct tl_ds_string *email;
+};
+struct tl_ds_account_privacy_rules {
+ struct {
+ int *cnt;
+ struct tl_ds_privacy_rule **data;
+ } *rules;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+};
+struct tl_ds_account_sent_change_phone_code {
+ struct tl_ds_string *phone_code_hash;
+ int *send_call_timeout;
+};
+struct tl_ds_auth_authorization {
+ struct tl_ds_user *user;
+};
+struct tl_ds_auth_checked_phone {
+ struct tl_ds_bool *phone_registered;
+};
+struct tl_ds_auth_exported_authorization {
+ int *id;
+ struct tl_ds_string *bytes;
+};
+struct tl_ds_auth_password_recovery {
+ struct tl_ds_string *email_pattern;
+};
+struct tl_ds_auth_sent_code {
+ unsigned magic;
+ struct tl_ds_bool *phone_registered;
+ struct tl_ds_string *phone_code_hash;
+ int *send_call_timeout;
+ struct tl_ds_bool *is_password;
+};
+struct tl_ds_binlog_encr_key {
+ int **key;
+};
+struct tl_ds_binlog_update {
+ unsigned magic;
+ int *dc;
+ struct tl_ds_string *name;
+ struct tl_ds_string *ip;
+ int *port;
+ int *flags;
+ struct tl_ds_binlog_encr_key *key;
+ int *id;
+ int *root;
+ struct tl_ds_binlog_encr_key *prime;
+ int *version;
+ int *pts;
+ int *qts;
+ int *date;
+ int *seq;
+ long long *access_hash;
+ int *admin;
+ int *user_id;
+ struct tl_ds_binlog_encr_key *g_key;
+ int *state;
+ int *ttl;
+ int *layer;
+ int *in_seq_no;
+ int *last_in_seq_no;
+ int *out_seq_no;
+ long long *key_fingerprint;
+ long long *exchange_id;
+ struct tl_ds_string *first_name;
+ struct tl_ds_string *last_name;
+ struct tl_ds_string *phone;
+ struct tl_ds_string *username;
+ struct tl_ds_photo *photo;
+ struct tl_ds_string *real_first_name;
+ struct tl_ds_string *real_last_name;
+ struct tl_ds_user_profile_photo *user_photo;
+ int *last_read_in;
+ int *last_read_out;
+ struct tl_ds_bot_info *bot_info;
+ struct tl_ds_string *title;
+ int *user_num;
+ struct {
+ int *cnt;
+ struct tl_ds_chat_participant **data;
+ } *participants;
+ struct tl_ds_chat_photo *chat_photo;
+ int *inviter_id;
+ long long *old_id;
+ int *new_id;
+ long long *lid;
+ int *from_id;
+ int *to_type;
+ int *to_id;
+ int *fwd_from_id;
+ int *fwd_date;
+ struct tl_ds_string *message;
+ struct tl_ds_message_media *media;
+ struct tl_ds_message_action *action;
+ int *reply_id;
+ struct tl_ds_reply_markup *reply_markup;
+ struct tl_ds_decrypted_message_media *encr_media;
+ struct tl_ds_decrypted_message_action *encr_action;
+ struct tl_ds_encrypted_file *file;
+};
+struct tl_ds_contacts_blocked {
+ unsigned magic;
+ struct {
+ int *cnt;
+ struct tl_ds_contact_blocked **data;
+ } *blocked;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+ int *count;
+};
+struct tl_ds_contacts_contacts {
+ unsigned magic;
+ struct {
+ int *cnt;
+ struct tl_ds_contact **data;
+ } *contacts;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+};
+struct tl_ds_contacts_found {
+ struct {
+ int *cnt;
+ struct tl_ds_contact_found **data;
+ } *results;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+};
+struct tl_ds_contacts_imported_contacts {
+ struct {
+ int *cnt;
+ struct tl_ds_imported_contact **data;
+ } *imported;
+ struct {
+ int *cnt;
+ long long **data;
+ } *retry_contacts;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+};
+struct tl_ds_contacts_link {
+ struct tl_ds_contact_link *my_link;
+ struct tl_ds_contact_link *foreign_link;
+ struct tl_ds_user *user;
+};
+struct tl_ds_contacts_suggested {
+ struct {
+ int *cnt;
+ struct tl_ds_contact_suggested **data;
+ } *results;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+};
+struct tl_ds_geochats_located {
+ struct {
+ int *cnt;
+ struct tl_ds_chat_located **data;
+ } *results;
+ struct {
+ int *cnt;
+ struct tl_ds_geo_chat_message **data;
+ } *messages;
+ struct {
+ int *cnt;
+ struct tl_ds_chat **data;
+ } *chats;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+};
+struct tl_ds_geochats_messages {
+ unsigned magic;
+ struct {
+ int *cnt;
+ struct tl_ds_geo_chat_message **data;
+ } *messages;
+ struct {
+ int *cnt;
+ struct tl_ds_chat **data;
+ } *chats;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+ int *count;
+};
+struct tl_ds_geochats_stated_message {
+ struct tl_ds_geo_chat_message *message;
+ struct {
+ int *cnt;
+ struct tl_ds_chat **data;
+ } *chats;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+ int *seq;
+};
+struct tl_ds_help_app_update {
+ unsigned magic;
+ int *id;
+ struct tl_ds_bool *critical;
+ struct tl_ds_string *url;
+ struct tl_ds_string *text;
+};
+struct tl_ds_help_invite_text {
+ struct tl_ds_string *message;
+};
+struct tl_ds_help_support {
+ struct tl_ds_string *phone_number;
+ struct tl_ds_user *user;
+};
+struct tl_ds_messages_affected_history {
+ int *pts;
+ int *pts_count;
+ int *offset;
+};
+struct tl_ds_messages_affected_messages {
+ int *pts;
+ int *pts_count;
+};
+struct tl_ds_messages_all_stickers {
+ unsigned magic;
+ struct tl_ds_string *hash;
+ struct {
+ int *cnt;
+ struct tl_ds_sticker_pack **data;
+ } *packs;
+ struct {
+ int *cnt;
+ struct tl_ds_sticker_set **data;
+ } *sets;
+ struct {
+ int *cnt;
+ struct tl_ds_document **data;
+ } *documents;
+};
+struct tl_ds_messages_chat_full {
+ struct tl_ds_chat_full *full_chat;
+ struct {
+ int *cnt;
+ struct tl_ds_chat **data;
+ } *chats;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+};
+struct tl_ds_messages_chats {
+ struct {
+ int *cnt;
+ struct tl_ds_chat **data;
+ } *chats;
+};
+struct tl_ds_messages_dh_config {
+ unsigned magic;
+ struct tl_ds_string *random;
+ int *g;
+ struct tl_ds_string *p;
+ int *version;
+};
+struct tl_ds_messages_dialogs {
+ unsigned magic;
+ struct {
+ int *cnt;
+ struct tl_ds_dialog **data;
+ } *dialogs;
+ struct {
+ int *cnt;
+ struct tl_ds_message **data;
+ } *messages;
+ struct {
+ int *cnt;
+ struct tl_ds_chat **data;
+ } *chats;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+ int *count;
+};
+struct tl_ds_messages_message {
+ int : 0;
+};
+struct tl_ds_messages_messages {
+ unsigned magic;
+ struct {
+ int *cnt;
+ struct tl_ds_message **data;
+ } *messages;
+ struct {
+ int *cnt;
+ struct tl_ds_chat **data;
+ } *chats;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+ int *count;
+};
+struct tl_ds_messages_sent_encrypted_message {
+ unsigned magic;
+ int *date;
+ struct tl_ds_encrypted_file *file;
+};
+struct tl_ds_messages_sent_message {
+ unsigned magic;
+ int *id;
+ int *date;
+ struct tl_ds_message_media *media;
+ int *pts;
+ int *pts_count;
+ struct {
+ int *cnt;
+ struct tl_ds_contacts_link **data;
+ } *links;
+ int *seq;
+};
+struct tl_ds_messages_sticker_set {
+ struct tl_ds_sticker_set *set;
+ struct {
+ int *cnt;
+ struct tl_ds_sticker_pack **data;
+ } *packs;
+ struct {
+ int *cnt;
+ struct tl_ds_document **data;
+ } *documents;
+};
+struct tl_ds_messages_stickers {
+ unsigned magic;
+ struct tl_ds_string *hash;
+ struct {
+ int *cnt;
+ struct tl_ds_document **data;
+ } *stickers;
+};
+struct tl_ds_photos_photo {
+ struct tl_ds_photo *photo;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+};
+struct tl_ds_photos_photos {
+ unsigned magic;
+ struct {
+ int *cnt;
+ struct tl_ds_photo **data;
+ } *photos;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+ int *count;
+};
+struct tl_ds_storage_file_type {
+ unsigned magic;
+};
+struct tl_ds_updates_difference {
+ unsigned magic;
+ int *date;
+ int *seq;
+ struct {
+ int *cnt;
+ struct tl_ds_message **data;
+ } *new_messages;
+ struct {
+ int *cnt;
+ struct tl_ds_encrypted_message **data;
+ } *new_encrypted_messages;
+ struct {
+ int *cnt;
+ struct tl_ds_update **data;
+ } *other_updates;
+ struct {
+ int *cnt;
+ struct tl_ds_chat **data;
+ } *chats;
+ struct {
+ int *cnt;
+ struct tl_ds_user **data;
+ } *users;
+ struct tl_ds_updates_state *state;
+ struct tl_ds_updates_state *intermediate_state;
+};
+struct tl_ds_updates_state {
+ int *pts;
+ int *qts;
+ int *date;
+ int *seq;
+ int *unread_count;
+};
+struct tl_ds_upload_file {
+ struct tl_ds_storage_file_type *type;
+ int *mtime;
+ struct tl_ds_string *bytes;
+};
+#endif
diff --git a/libs/tgl/src/auto/constants.h b/libs/tgl/src/auto/constants.h
new file mode 100644
index 0000000000..643496f2d2
--- /dev/null
+++ b/libs/tgl/src/auto/constants.h
@@ -0,0 +1,561 @@
+/*
+ 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_int128 0x7d36c439
+#define CODE_int256 0xf2c798b3
+#define CODE_bool_false 0xbc799737
+#define CODE_bool_true 0x997275b5
+#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 0xf7aff1c0
+#define CODE_input_media_photo 0xe9bfb4f3
+#define CODE_input_media_geo_point 0xf9c44144
+#define CODE_input_media_contact 0xa6e45987
+#define CODE_input_media_uploaded_video 0xe13fd4bc
+#define CODE_input_media_uploaded_thumb_video 0x96fb97dc
+#define CODE_input_media_video 0x936a4ebd
+#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_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 0x2e02a614
+#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 0xc3060325
+#define CODE_message_service 0x1d86f70e
+#define CODE_message_media_empty 0x3ded6320
+#define CODE_message_media_photo 0x3d8ce53d
+#define CODE_message_media_video 0x5bcf1675
+#define CODE_message_media_geo 0x56e0d474
+#define CODE_message_media_contact 0x5e7d2f39
+#define CODE_message_media_unsupported 0x9f84f49e
+#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 0xc1dd804a
+#define CODE_photo_empty 0x2331b22d
+#define CODE_photo 0xc3838076
+#define CODE_photo_l27 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 0xee9f4a4d
+#define CODE_video_l27 0x388fa391
+#define CODE_geo_point_empty 0x1117dd5f
+#define CODE_geo_point 0x2049d70c
+#define CODE_auth_checked_phone 0x811ea28e
+#define CODE_auth_sent_code 0xefed51d9
+#define CODE_auth_authorization 0xff036af1
+#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 0x5a89ac5b
+#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_link 0x3ace484c
+#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_sent_message 0x4c3d47f3
+#define CODE_messages_chats 0x64ff9fd5
+#define CODE_messages_chat_full 0xe5d7d19c
+#define CODE_messages_affected_history 0xb45c69d1
+#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_photo_video_documents 0xd95e73bb
+#define CODE_input_messages_filter_document 0x9eddf188
+#define CODE_input_messages_filter_audio 0xcfc87522
+#define CODE_update_new_message 0x1f2b0afd
+#define CODE_update_message_i_d 0x4e90bfd6
+#define CODE_update_delete_messages 0xa20db0e5
+#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 0x9d2e67c5
+#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 0xed5c2127
+#define CODE_update_short_chat_message 0x52238b3c
+#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_l28 0x2ec2a43c
+#define CODE_dc_option 0x05d8c6cc
+#define CODE_config 0x4e32b894
+#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_sent_message_link 0x35a1a663
+#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_l27 0x92042ff7
+#define CODE_send_message_upload_video_action 0xe9763aec
+#define CODE_send_message_record_audio_action 0xd52f73f7
+#define CODE_send_message_upload_audio_action_l27 0xe6ac8a6f
+#define CODE_send_message_upload_audio_action 0xf351d7ab
+#define CODE_send_message_upload_photo_action 0xd1d34a26
+#define CODE_send_message_upload_document_action_l27 0x8faee98e
+#define CODE_send_message_upload_document_action 0xaa0cd9e4
+#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_document_attribute_image_size 0x6c37c15c
+#define CODE_document_attribute_animated 0x11b58939
+#define CODE_document_attribute_sticker_l28 0x994c9882
+#define CODE_document_attribute_sticker 0x3a556302
+#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 0x5ce352ec
+#define CODE_disabled_feature 0xae636f24
+#define CODE_update_read_history_inbox 0x9961fd5c
+#define CODE_update_read_history_outbox 0x2f2f21bf
+#define CODE_messages_affected_messages 0x84d19185
+#define CODE_contact_link_unknown 0x5f4f9247
+#define CODE_contact_link_none 0xfeedd3ad
+#define CODE_contact_link_has_phone 0x268f3f59
+#define CODE_contact_link_contact 0xd502c2d0
+#define CODE_update_web_page 0x2cc36971
+#define CODE_web_page_empty 0xeb1477e8
+#define CODE_web_page_pending 0xc586da1c
+#define CODE_web_page 0xa31ea0b5
+#define CODE_message_media_web_page 0xa32dd600
+#define CODE_authorization 0x7bf2e6f6
+#define CODE_account_authorizations 0x1250abde
+#define CODE_account_no_password 0x96dabc18
+#define CODE_account_password 0x7c18141c
+#define CODE_account_password_settings 0xb7b72ab3
+#define CODE_account_password_input_settings 0xbcfc532c
+#define CODE_auth_password_recovery 0x137948a5
+#define CODE_input_media_venue 0x2827a81a
+#define CODE_message_media_venue 0x7912b71f
+#define CODE_received_notify_message 0xa384b779
+#define CODE_chat_invite_empty 0x69df3769
+#define CODE_chat_invite_exported 0xfc2e05bc
+#define CODE_chat_invite_already 0x5a686d7c
+#define CODE_chat_invite 0xce917dcd
+#define CODE_message_action_chat_joined_by_link 0xf89cf5e8
+#define CODE_update_read_messages_contents 0x68c13933
+#define CODE_input_sticker_set_empty 0xffb62b95
+#define CODE_input_sticker_set_i_d 0x9de7a269
+#define CODE_input_sticker_set_short_name 0x861cc8a0
+#define CODE_sticker_set 0xa7a43b17
+#define CODE_messages_sticker_set 0xb60a24a6
+#define CODE_user 0x22e49072
+#define CODE_bot_command 0xc27ac8c7
+#define CODE_bot_command_old 0xb79d22ab
+#define CODE_bot_info_empty 0xbb2e37ce
+#define CODE_bot_info 0x09cf585d
+#define CODE_keyboard_button 0xa2fa4880
+#define CODE_keyboard_button_row 0x77608b83
+#define CODE_reply_keyboard_hide 0xa03e5b85
+#define CODE_reply_keyboard_force_reply 0xf4108aa0
+#define CODE_reply_keyboard_markup 0x3502758c
+#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 0xb04f2510
+#define CODE_messages_delete_history 0xf4f8fb61
+#define CODE_messages_delete_messages 0xa5f18925
+#define CODE_messages_received_messages 0x05a954c0
+#define CODE_messages_set_typing 0xa3825e50
+#define CODE_messages_send_message 0xfc55e6b5
+#define CODE_messages_send_media 0xc8f16791
+#define CODE_messages_forward_messages 0x55e1728d
+#define CODE_messages_get_chats 0x3c6aa187
+#define CODE_messages_get_full_chat 0x3b831c66
+#define CODE_messages_edit_chat_title 0xdc452855
+#define CODE_messages_edit_chat_photo 0xca4c79d8
+#define CODE_messages_add_chat_user 0xf9a0aa09
+#define CODE_messages_delete_chat_user 0xe0611f16
+#define CODE_messages_create_chat 0x09cb126e
+#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 0x33963bf9
+#define CODE_messages_send_broadcast 0xbf73f4da
+#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 0x36a73f77
+#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_messages_get_stickers 0xae22e045
+#define CODE_messages_get_all_stickers 0xaa3bc868
+#define CODE_account_update_device_locked 0x38df3532
+#define CODE_auth_import_bot_authorization 0x67a3ff2c
+#define CODE_messages_get_web_page_preview 0x25223e24
+#define CODE_account_get_authorizations 0xe320c158
+#define CODE_account_reset_authorization 0xdf77f3bc
+#define CODE_account_get_password 0x548a30f5
+#define CODE_account_get_password_settings 0xbc8d11bb
+#define CODE_account_update_password_settings 0xfa7c4b86
+#define CODE_auth_check_password 0x0a63011e
+#define CODE_auth_request_password_recovery 0xd897bc66
+#define CODE_auth_recover_password 0x4ea56e92
+#define CODE_invoke_without_updates 0xbf9459b7
+#define CODE_messages_export_chat_invite 0x7d885289
+#define CODE_messages_check_chat_invite 0x3eadb1bb
+#define CODE_messages_import_chat_invite 0x6c50051c
+#define CODE_messages_get_sticker_set 0x2619a90e
+#define CODE_messages_install_sticker_set 0xefbbfae9
+#define CODE_messages_uninstall_sticker_set 0xf96e55de
+#define CODE_messages_start_bot 0x1b3e0ffc
+#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_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 0x204d3878
+#define CODE_decrypted_message_service 0x73164160
+#define CODE_decrypted_message_media_video 0x524a415d
+#define CODE_decrypted_message_media_audio 0x57e0a9cb
+#define CODE_decrypted_message_layer 0x1be31789
+#define CODE_decrypted_message_action_resend 0x511110b0
+#define CODE_decrypted_message_action_notify_layer 0xf3048883
+#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_abort_key 0xdd05ec6b
+#define CODE_decrypted_message_action_commit_key 0xec2e0b9b
+#define CODE_decrypted_message_action_noop 0xa82fdd63
+#define CODE_decrypted_message_media_external_document 0xfa95b0dd
+#define CODE_binlog_encr_key 0x0377168f
+#define CODE_binlog_start 0x3b06de69
+#define CODE_binlog_dc_option 0xf96feb32
+#define CODE_binlog_dc_option_new 0x7c0d22d8
+#define CODE_binlog_auth_key 0x71e8c156
+#define CODE_binlog_default_dc 0x9e83dbdc
+#define CODE_binlog_dc_signed 0x26451bb5
+#define CODE_binlog_our_id 0x68a870e8
+#define CODE_binlog_set_dh_params 0xeaeb7826
+#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_encr_chat_delete 0xee1b38e8
+#define CODE_binlog_encr_chat_new 0x84977251
+#define CODE_binlog_encr_chat_exchange_new 0x9d49488d
+#define CODE_binlog_user_delete 0xac55d447
+#define CODE_binlog_user_new 0x127cf2f9
+#define CODE_binlog_chat_new 0x0a10aa92
+#define CODE_binlog_chat_add_participant 0x535475ea
+#define CODE_binlog_chat_del_participant 0x7dd1a1a2
+#define CODE_binlog_set_msg_id 0x3c873416
+#define CODE_binlog_message_delete 0x847e77b1
+#define CODE_binlog_message_new 0x427cfcdb
+#define CODE_binlog_message_encr_new 0x6cf7cabc
+#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
+#define CODE_update_msg_update 0x03114739
+#define CODE_message_media_photo_l27 0xc8c45a2a
+#define CODE_message_media_video_l27 0xa2d24290
+#endif
diff --git a/libs/tgl/src/auto/scheme.tl b/libs/tgl/src/auto/scheme.tl
new file mode 100644
index 0000000000..e95425f435
--- /dev/null
+++ b/libs/tgl/src/auto/scheme.tl
@@ -0,0 +1,829 @@
+int ?= Int;
+long ?= Long;
+double ?= Double;
+string ?= String;
+
+bytes string = Bytes;
+
+int128 long long = Int128;
+int256 long long long long = Int256;
+
+boolFalse#bc799737 = Bool;
+boolTrue#997275b5 = Bool;
+
+vector#1cb5c415 {t:Type} # [ t ] = Vector t;
+
+error#c4b9f9bb code:int text:string = Error;
+
+null#56730bcc = Null;
+
+inputPeerEmpty#7f3b18ea = InputPeer;
+inputPeerSelf#7da07ec9 = InputPeer;
+inputPeerContact#1023dbe8 user_id:int = InputPeer;
+inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
+inputPeerChat#179be863 chat_id:int = InputPeer;
+
+inputUserEmpty#b98886cf = InputUser;
+inputUserSelf#f7c1b13f = InputUser;
+inputUserContact#86e94f65 user_id:int = InputUser;
+inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
+
+inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
+
+inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
+
+inputMediaEmpty#9664f57f = InputMedia;
+inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia;
+inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia;
+inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
+inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
+inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia;
+inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia;
+inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia;
+
+inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
+inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
+inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
+
+inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
+inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint;
+
+inputPhotoEmpty#1cd7bf0d = InputPhoto;
+inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
+
+inputVideoEmpty#5508ec75 = InputVideo;
+inputVideo#ee579652 id:long access_hash:long = InputVideo;
+
+inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
+inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
+
+inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
+inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
+
+inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
+
+peerUser#9db1bc6d user_id:int = Peer;
+peerChat#bad0e5bb chat_id:int = Peer;
+
+storage.fileUnknown#aa963b05 = storage.FileType;
+storage.fileJpeg#7efe0e = storage.FileType;
+storage.fileGif#cae1aadf = storage.FileType;
+storage.filePng#a4f63c0 = storage.FileType;
+storage.filePdf#ae1e508d = storage.FileType;
+storage.fileMp3#528a0677 = storage.FileType;
+storage.fileMov#4b09ebbc = storage.FileType;
+storage.filePartial#40bc6f52 = storage.FileType;
+storage.fileMp4#b3cea0e4 = storage.FileType;
+storage.fileWebp#1081464c = storage.FileType;
+
+fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
+fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
+
+userEmpty#200250ba id:int = User;
+
+userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
+userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
+
+userStatusEmpty#9d05049 = UserStatus;
+userStatusOnline#edb93949 expires:int = UserStatus;
+userStatusOffline#8c703f was_online:int = UserStatus;
+
+chatEmpty#9ba2d800 id:int = Chat;
+chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
+chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
+
+chatFull#2e02a614 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> = ChatFull;
+
+
+chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
+
+chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
+chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
+
+chatPhotoEmpty#37c1011c = ChatPhoto;
+chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
+
+messageEmpty#83e5de54 id:int = Message;
+message#c3060325 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia reply_markup:flags.6?ReplyMarkup = Message;
+messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
+
+messageMediaEmpty#3ded6320 = MessageMedia;
+messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia;
+messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia;
+messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
+messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
+messageMediaUnsupported#9f84f49e = MessageMedia;
+
+messageActionEmpty#b6aef7b0 = MessageAction;
+messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
+messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
+messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
+messageActionChatDeletePhoto#95e3fbef = MessageAction;
+messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
+messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
+
+dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
+
+photoEmpty#2331b22d id:long = Photo;
+photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+
+photoSizeEmpty#e17e23c type:string = PhotoSize;
+photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
+photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
+
+videoEmpty#c10658a8 id:long = Video;
+video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+
+geoPointEmpty#1117dd5f = GeoPoint;
+geoPoint#2049d70c longitude:double latitude:double = GeoPoint;
+
+auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone;
+
+auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+auth.authorization#ff036af1 user:User = auth.Authorization;
+
+auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
+
+inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
+inputNotifyUsers#193b4417 = InputNotifyPeer;
+inputNotifyChats#4a95e84e = InputNotifyPeer;
+inputNotifyAll#a429b886 = InputNotifyPeer;
+
+inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
+inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
+
+inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
+
+peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
+peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
+
+peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
+peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
+
+wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
+
+userFull#5a89ac5b user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool bot_info:BotInfo = UserFull;
+
+contact#f911c994 user_id:int mutual:Bool = Contact;
+
+importedContact#d0028438 user_id:int client_id:long = ImportedContact;
+
+contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
+
+contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
+
+contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
+
+chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
+
+contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link;
+
+contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
+contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
+
+contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
+
+contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+
+contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
+
+messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+
+messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+
+messages.messageEmpty#3f4e0648 = messages.Message;
+
+messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage;
+
+messages.chats#64ff9fd5 chats:Vector<Chat> = messages.Chats;
+
+messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
+
+messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory;
+
+inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
+inputMessagesFilterPhotos#9609a51c = MessagesFilter;
+inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
+inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
+inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter;
+inputMessagesFilterDocument#9eddf188 = MessagesFilter;
+inputMessagesFilterAudio#cfc87522 = MessagesFilter;
+
+updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;
+updateMessageID#4e90bfd6 id:int random_id:long = Update;
+updateDeleteMessages#a20db0e5 messages:Vector<int> pts:int pts_count:int = Update;
+updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
+updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
+updateChatParticipants#7761198 participants:ChatParticipants = Update;
+updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
+updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update;
+updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
+updateContactRegistered#2575bbb9 user_id:int date:int = Update;
+updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update;
+updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
+
+updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
+
+updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
+updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
+updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
+updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+
+photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
+photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
+
+photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
+
+upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
+
+dcOptionL28#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
+dcOption#5d8c6cc flags:int id:int ip_address:string port:int = DcOption;
+
+config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector<DisabledFeature> = Config;
+
+nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
+
+help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
+help.noAppUpdate#c45a6536 = help.AppUpdate;
+
+help.inviteText#18cb9f78 message:string = help.InviteText;
+
+messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector<contacts.Link> seq:int = messages.SentMessage;
+
+inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
+
+inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer;
+
+geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
+
+geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
+geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
+geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
+
+geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
+
+geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
+
+geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+
+messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
+messageActionGeoChatCheckin#c7d53de = MessageAction;
+
+updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update;
+
+wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
+
+updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update;
+updateEncryptedChatTyping#1710f156 chat_id:int = Update;
+updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update;
+updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
+
+encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
+encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
+encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
+encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
+encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
+
+inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
+
+encryptedFileEmpty#c21f497e = EncryptedFile;
+encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
+
+inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
+inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
+inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
+
+inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
+
+encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
+encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
+
+messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
+messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
+
+messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
+messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
+
+inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
+
+inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
+
+updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
+updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
+updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
+
+inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
+inputMediaAudio#89938781 audio_id:InputAudio = InputMedia;
+inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
+inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
+inputMediaDocument#d184e841 document_id:InputDocument = InputMedia;
+
+messageMediaDocument#2fda2204 document:Document = MessageMedia;
+messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
+
+inputAudioEmpty#d95adc84 = InputAudio;
+inputAudio#77d440ff id:long access_hash:long = InputAudio;
+
+inputDocumentEmpty#72f0eaae = InputDocument;
+inputDocument#18798952 id:long access_hash:long = InputDocument;
+
+inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
+inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
+
+audioEmpty#586988d8 id:long = Audio;
+audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
+
+documentEmpty#36f8c871 id:long = Document;
+document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
+document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
+
+help.support#17c6b5f6 phone_number:string user:User = help.Support;
+
+notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
+notifyUsers#b4c83b4c = NotifyPeer;
+notifyChats#c007cec3 = NotifyPeer;
+notifyAll#74d07c60 = NotifyPeer;
+
+updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
+updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
+
+auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+sendMessageTypingAction#16bf744e = SendMessageAction;
+sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
+sendMessageRecordVideoAction#a187d66f = SendMessageAction;
+sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction;
+sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction;
+sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
+sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction;
+sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction;
+sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction;
+sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction;
+sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction;
+sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
+sendMessageChooseContactAction#628cbc6f = SendMessageAction;
+
+contactFound#ea879f95 user_id:int = ContactFound;
+
+contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
+
+updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update;
+
+userStatusRecently#e26f42f1 = UserStatus;
+userStatusLastWeek#7bf09fc = UserStatus;
+userStatusLastMonth#77ebc742 = UserStatus;
+
+updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
+
+inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
+
+privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
+
+inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
+inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
+inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
+inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
+inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
+inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
+
+privacyValueAllowContacts#fffe1bac = PrivacyRule;
+privacyValueAllowAll#65427b82 = PrivacyRule;
+privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
+privacyValueDisallowContacts#f888fa1a = PrivacyRule;
+privacyValueDisallowAll#8b73e763 = PrivacyRule;
+privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule;
+
+account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
+
+accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
+
+account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
+
+updateUserPhone#12b9417b user_id:int phone:string = Update;
+
+documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
+documentAttributeAnimated#11b58939 = DocumentAttribute;
+documentAttributeStickerL28#994c9882 alt:string = DocumentAttribute;
+documentAttributeSticker#3a556302 alt:string stickerset:InputStickerSet = DocumentAttribute;
+documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
+documentAttributeAudio#51448e5 duration:int = DocumentAttribute;
+documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
+
+messages.stickersNotModified#f1749a22 = messages.Stickers;
+messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
+
+stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
+
+messages.allStickersNotModified#e86602c3 = messages.AllStickers;
+messages.allStickers#5ce352ec hash:string packs:Vector<StickerPack> sets:Vector<StickerSet> documents:Vector<Document> = messages.AllStickers;
+
+disabledFeature#ae636f24 feature:string description:string = DisabledFeature;
+
+updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update;
+updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update;
+
+messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages;
+
+contactLinkUnknown#5f4f9247 = ContactLink;
+contactLinkNone#feedd3ad = ContactLink;
+contactLinkHasPhone#268f3f59 = ContactLink;
+contactLinkContact#d502c2d0 = ContactLink;
+
+updateWebPage#2cc36971 webpage:WebPage = Update;
+
+webPageEmpty#eb1477e8 id:long = WebPage;
+webPagePending#c586da1c id:long date:int = WebPage;
+webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage;
+
+messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia;
+
+authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
+
+account.authorizations#1250abde authorizations:Vector<Authorization> = account.Authorizations;
+
+account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password;
+account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password;
+
+account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings;
+
+account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings;
+
+auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery;
+
+inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia;
+
+messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia;
+
+receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage;
+
+chatInviteEmpty#69df3769 = ExportedChatInvite;
+chatInviteExported#fc2e05bc link:string = ExportedChatInvite;
+
+chatInviteAlready#5a686d7c chat:Chat = ChatInvite;
+chatInvite#ce917dcd title:string = ChatInvite;
+
+messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction;
+
+updateReadMessagesContents#68c13933 messages:Vector<int> pts:int pts_count:int = Update;
+
+inputStickerSetEmpty#ffb62b95 = InputStickerSet;
+inputStickerSetID#9de7a269 id:long access_hash:long = InputStickerSet;
+inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet;
+
+stickerSet#a7a43b17 id:long access_hash:long title:string short_name:string = StickerSet;
+
+messages.stickerSet#b60a24a6 set:StickerSet packs:Vector<StickerPack> documents:Vector<Document> = messages.StickerSet;
+
+user#22e49072 flags:# id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int = User;
+
+botCommand#c27ac8c7 command:string description:string = BotCommand;
+botCommandOld#b79d22ab command:string params:string description:string = BotCommand;
+
+botInfoEmpty#bb2e37ce = BotInfo;
+botInfo#9cf585d user_id:int version:int share_text:string description:string commands:Vector<BotCommand> = BotInfo;
+
+keyboardButton#a2fa4880 text:string = KeyboardButton;
+
+keyboardButtonRow#77608b83 buttons:Vector<KeyboardButton> = KeyboardButtonRow;
+
+replyKeyboardHide#a03e5b85 flags:int = ReplyMarkup;
+replyKeyboardForceReply#f4108aa0 flags:int = ReplyMarkup;
+replyKeyboardMarkup#3502758c flags:int rows:Vector<KeyboardButtonRow> = ReplyMarkup;
+
+---functions---
+
+invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
+
+invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
+
+auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
+auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
+auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
+auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
+auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
+auth.logOut#5717da40 = Bool;
+auth.resetAuthorizations#9fab0d1a = Bool;
+auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
+auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
+auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
+auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
+
+account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
+account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
+account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
+account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
+account.resetNotifySettings#db7e1747 = Bool;
+account.updateProfile#f0888d68 first_name:string last_name:string = User;
+account.updateStatus#6628562c offline:Bool = Bool;
+account.getWallPapers#c04cfac2 = Vector<WallPaper>;
+
+users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
+users.getFullUser#ca30a5b1 id:InputUser = UserFull;
+
+contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
+contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
+contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
+contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
+contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
+contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
+contacts.block#332b49fc id:InputUser = Bool;
+contacts.unblock#e54100bd id:InputUser = Bool;
+contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
+contacts.exportCard#84e53737 = Vector<int>;
+contacts.importCard#4fe196fe export_card:Vector<int> = User;
+
+messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
+messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
+messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
+messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
+messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
+messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
+messages.deleteMessages#a5f18925 id:Vector<int> = messages.AffectedMessages;
+messages.receivedMessages#5a954c0 max_id:int = Vector<ReceivedNotifyMessage>;
+messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
+messages.sendMessage#fc55e6b5 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup = messages.SentMessage;
+messages.sendMedia#c8f16791 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long reply_markup:flags.2?ReplyMarkup = Updates;
+messages.forwardMessages#55e1728d peer:InputPeer id:Vector<int> random_id:Vector<long> = Updates;
+messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
+messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
+messages.editChatTitle#dc452855 chat_id:int title:string = Updates;
+messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates;
+messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates;
+messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates;
+messages.createChat#9cb126e users:Vector<InputUser> title:string = Updates;
+
+updates.getState#edd4882a = updates.State;
+updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
+
+photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
+photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
+photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
+
+upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
+upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
+
+help.getConfig#c4f9186b = Config;
+help.getNearestDc#1fb33026 = NearestDc;
+help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
+help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
+help.getInviteText#a4a95186 lang_code:string = help.InviteText;
+
+photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
+
+messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates;
+messages.sendBroadcast#bf73f4da contacts:Vector<InputUser> random_id:Vector<long> message:string media:InputMedia = Updates;
+
+geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
+geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
+geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
+geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
+geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
+geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
+geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
+geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
+geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
+geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
+geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
+geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
+
+messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
+messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
+messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
+messages.discardEncryption#edd923c5 chat_id:int = Bool;
+messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
+messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
+messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
+messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
+
+upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
+
+initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
+
+help.getSupport#9cdf08cd = help.Support;
+
+auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
+
+messages.readMessageContents#36a73f77 id:Vector<int> = messages.AffectedMessages;
+
+account.checkUsername#2714d86c username:string = Bool;
+account.updateUsername#3e0bdd7c username:string = User;
+
+contacts.search#11f812d8 q:string limit:int = contacts.Found;
+
+account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
+account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
+account.deleteAccount#418d4e0b reason:string = Bool;
+account.getAccountTTL#8fc711d = AccountDaysTTL;
+account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
+
+invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
+
+contacts.resolveUsername#bf0131c username:string = User;
+
+account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode;
+account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
+
+messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
+messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;
+
+account.updateDeviceLocked#38df3532 period:int = Bool;
+
+auth.importBotAuthorization#67a3ff2c flags:int api_id:int api_hash:string bot_auth_token:string = auth.Authorization;
+
+messages.getWebPagePreview#25223e24 message:string = MessageMedia;
+
+account.getAuthorizations#e320c158 = account.Authorizations;
+account.resetAuthorization#df77f3bc hash:long = Bool;
+account.getPassword#548a30f5 = account.Password;
+account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings;
+account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool;
+
+auth.checkPassword#a63011e password_hash:bytes = auth.Authorization;
+auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery;
+auth.recoverPassword#4ea56e92 code:string = auth.Authorization;
+
+invokeWithoutUpdates#bf9459b7 {X:Type} query:!X = X;
+
+messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite;
+messages.checkChatInvite#3eadb1bb hash:string = ChatInvite;
+messages.importChatInvite#6c50051c hash:string = Updates;
+messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet;
+messages.installStickerSet#efbbfae9 stickerset:InputStickerSet = Bool;
+messages.uninstallStickerSet#f96e55de stickerset:InputStickerSet = Bool;
+messages.startBot#1b3e0ffc bot:InputUser chat_id:int random_id:long start_param:string = Updates;
+---types---
+decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia;
+decryptedMessageMediaPhoto#32798a8c str_thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaGeoPoint#35480a59 latitude:double longitude:double = DecryptedMessageMedia;
+decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
+decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction;
+decryptedMessageMediaDocument#b095434b str_thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageActionReadMessages#c4f40be random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionDeleteMessages#65614304 random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction;
+
+decryptedMessage#204d3878 random_id:long ttl:int message:string media:DecryptedMessageMedia = DecryptedMessage;
+decryptedMessageService#73164160 random_id:long action:DecryptedMessageAction = DecryptedMessage;
+decryptedMessageMediaVideo#524a415d str_thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageLayer#1be31789 random_bytes:bytes layer:int in_seq_no:int out_seq_no:int message:DecryptedMessage = DecryptedMessageLayer;
+decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction;
+decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction;
+decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction;
+
+decryptedMessageActionRequestKey#f3c9611b exchange_id:long g_a:bytes = DecryptedMessageAction;
+decryptedMessageActionAcceptKey#6fe1735b exchange_id:long g_b:bytes key_fingerprint:long = DecryptedMessageAction;
+decryptedMessageActionAbortKey#dd05ec6b exchange_id:long = DecryptedMessageAction;
+decryptedMessageActionCommitKey#ec2e0b9b exchange_id:long key_fingerprint:long = DecryptedMessageAction;
+decryptedMessageActionNoop#a82fdd63 = DecryptedMessageAction;
+
+decryptedMessageMediaExternalDocument#fa95b0dd id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = DecryptedMessageMedia;
+---functions---
+---types---
+
+binlog.encrKey key:64*[int] = binlog.EncrKey;
+
+binlog.start = binlog.Update;
+
+binlog.dcOption dc:int name:string ip:string port:int = binlog.Update;
+binlog.dcOptionNew flags:int dc:int name:string ip:string port:int = binlog.Update;
+
+binlog.authKey dc:int key:%binlog.EncrKey = binlog.Update;
+binlog.defaultDc dc:int = binlog.Update;
+binlog.dcSigned dc:int = binlog.Update;
+
+binlog.ourId id:int = binlog.Update;
+
+binlog.setDhParams root:int prime:%binlog.EncrKey version:int = binlog.Update;
+
+binlog.setPts pts:int = binlog.Update;
+binlog.setQts qts:int = binlog.Update;
+binlog.setDate date:int = binlog.Update;
+binlog.setSeq seq:int = binlog.Update;
+
+binlog.encrChatDelete id:int = binlog.Update;
+binlog.encrChatNew#84977251 flags:# id:int
+ access_hash:flags.17?long
+ date:flags.18?int
+ admin:flags.19?int
+ user_id:flags.20?int
+ key:flags.21?%binlog.EncrKey
+ g_key:flags.22?%binlog.EncrKey
+ state:flags.23?int
+ ttl:flags.24?int
+ layer:flags.25?int
+ in_seq_no:flags.26?int last_in_seq_no:flags.26?int out_seq_no:flags.26?int
+ key_fingerprint:flags.27?long
+ = binlog.Update;
+
+binlog.encrChatExchangeNew#9d49488d flags:# id:int
+ exchange_id:flags.17?long
+ key:flags.18?%binlog.EncrKey
+ state:flags.19?int
+ = binlog.Update;
+
+binlog.userDelete id:int = binlog.Update;
+binlog.userNew#127cf2f9 flags:# id:int
+ access_hash:flags.17?long
+ first_name:flags.18?string last_name:flags.18?string
+ phone:flags.19?string
+ username:flags.20?string
+ photo:flags.21?Photo
+ real_first_name:flags.22?string real_last_name:flags.22?string
+ user_photo:flags.23?UserProfilePhoto
+ last_read_in:flags.24?int
+ last_read_out:flags.25?int
+ bot_info:flags.26?BotInfo
+ = binlog.Update;
+
+binlog.chatNew#0a10aa92 flags:# id:int
+ title:flags.17?string
+ user_num:flags.18?int
+ date:flags.19?int
+ version:flags.20?int participants:flags.20?(Vector ChatParticipant)
+ chat_photo:flags.21?ChatPhoto
+ photo:flags.22?Photo
+ admin:flags.23?int
+ last_read_in:flags.24?int
+ last_read_out:flags.25?int
+ = binlog.Update;
+
+binlog.chatAddParticipant id:int version:int user_id:int inviter_id:int date:int = binlog.Update;
+binlog.chatDelParticipant id:int version:int user_id:int = binlog.Update;
+
+binlog.setMsgId old_id:long new_id:int = binlog.Update;
+binlog.messageDelete lid:long = binlog.Update;
+
+binlog.messageNew#427cfcdb flags:# lid:long
+ from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int
+ fwd_from_id:flags.18?int fwd_date:flags.18?int
+ date:flags.19?int
+ message:flags.20?string
+ media:flags.21?MessageMedia
+ action:flags.22?MessageAction
+ reply_id:flags.23?int
+ reply_markup:flags.24?ReplyMarkup
+ = binlog.Update;
+
+binlog.messageEncrNew#6cf7cabc flags:# lid:long
+ from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int
+ //empty 18 bit
+ date:flags.19?int
+ message:flags.20?string
+ encr_media:flags.21?DecryptedMessageMedia
+ encr_action:flags.22?DecryptedMessageAction
+ file:flags.23?EncryptedFile
+ = binlog.Update;
+
+binlog.msgUpdate#6dd4d85f lid:long = binlog.Update;
+
+binlog.resetAuthorization = binlog.Update;
+
+
+---functions---
+---types---
+resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:(Vector long) = ResPQ;
+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;
+
+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;
+client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;
+
+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;
+
+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;
+
+---functions---
+req_pq#60469778 nonce:int128 = ResPQ;
+req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;
+set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
+---types---
+decryptedMessageMediaVideoL12#4cee6ef3 str_thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaAudioL12#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+
+updateMsgUpdate id:int pts:int pts_count:int = Update;
+
+messageMediaPhotoL27#c8c45a2a photo:Photo = MessageMedia;
+messageMediaVideoL27#a2d24290 video:Video = MessageMedia;
+//messageMediaDocumentL27#2fda2204 document:Document = MessageMedia;
+//messageMediaAudioL27#c6b68300 audio:Audio = MessageMedia;
+---functions---
diff --git a/libs/tgl/src/auto/scheme.tlo b/libs/tgl/src/auto/scheme.tlo
new file mode 100644
index 0000000000..02d3ca415e
--- /dev/null
+++ b/libs/tgl/src/auto/scheme.tlo
Binary files differ
diff --git a/libs/tgl/src/auto/scheme2.tl b/libs/tgl/src/auto/scheme2.tl
new file mode 100644
index 0000000000..1867166cb2
--- /dev/null
+++ b/libs/tgl/src/auto/scheme2.tl
@@ -0,0 +1,540 @@
+int#a8509bda ? = Int
+long#22076cba ? = Long
+double#2210c154 ? = Double
+string#b5286e24 ? = String
+bytes#0ee1379f string = Bytes
+int128#7d36c439 long long = Int128
+int256#f2c798b3 long long long long = Int256
+boolFalse#bc799737 = Bool
+boolTrue#997275b5 = Bool
+vector#1cb5c415 t:Type # [ t ] = Vector t
+error#c4b9f9bb code:int text:string = Error
+null#56730bcc = Null
+inputPeerEmpty#7f3b18ea = InputPeer
+inputPeerSelf#7da07ec9 = InputPeer
+inputPeerContact#1023dbe8 user_id:int = InputPeer
+inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer
+inputPeerChat#179be863 chat_id:int = InputPeer
+inputUserEmpty#b98886cf = InputUser
+inputUserSelf#f7c1b13f = InputUser
+inputUserContact#86e94f65 user_id:int = InputUser
+inputUserForeign#655e74ff user_id:int access_hash:long = InputUser
+inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact
+inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile
+inputMediaEmpty#9664f57f = InputMedia
+inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia
+inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia
+inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia
+inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia
+inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia
+inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia
+inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia
+inputChatPhotoEmpty#1ca48f57 = InputChatPhoto
+inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto
+inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto
+inputGeoPointEmpty#e4c123d6 = InputGeoPoint
+inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint
+inputPhotoEmpty#1cd7bf0d = InputPhoto
+inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto
+inputVideoEmpty#5508ec75 = InputVideo
+inputVideo#ee579652 id:long access_hash:long = InputVideo
+inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation
+inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation
+inputPhotoCropAuto#ade6b004 = InputPhotoCrop
+inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop
+inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent
+peerUser#9db1bc6d user_id:int = Peer
+peerChat#bad0e5bb chat_id:int = Peer
+storage.fileUnknown#aa963b05 = storage.FileType
+storage.fileJpeg#007efe0e = storage.FileType
+storage.fileGif#cae1aadf = storage.FileType
+storage.filePng#0a4f63c0 = storage.FileType
+storage.filePdf#ae1e508d = storage.FileType
+storage.fileMp3#528a0677 = storage.FileType
+storage.fileMov#4b09ebbc = storage.FileType
+storage.filePartial#40bc6f52 = storage.FileType
+storage.fileMp4#b3cea0e4 = storage.FileType
+storage.fileWebp#1081464c = storage.FileType
+fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation
+fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation
+userEmpty#200250ba id:int = User
+userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto
+userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto
+userStatusEmpty#09d05049 = UserStatus
+userStatusOnline#edb93949 expires:int = UserStatus
+userStatusOffline#008c703f was_online:int = UserStatus
+chatEmpty#9ba2d800 id:int = Chat
+chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat
+chatForbidden#fb0ccc41 id:int title:string date:int = Chat
+chatFull#2e02a614 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector BotInfo = ChatFull
+chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant
+chatParticipantsForbidden#0fd2bb8a chat_id:int = ChatParticipants
+chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector ChatParticipant version:int = ChatParticipants
+chatPhotoEmpty#37c1011c = ChatPhoto
+chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto
+messageEmpty#83e5de54 id:int = Message
+message#c3060325 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia reply_markup:flags.6?ReplyMarkup = Message
+messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message
+messageMediaEmpty#3ded6320 = MessageMedia
+messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia
+messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia
+messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia
+messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia
+messageMediaUnsupported#9f84f49e = MessageMedia
+messageActionEmpty#b6aef7b0 = MessageAction
+messageActionChatCreate#a6638b9a title:string users:Vector int = MessageAction
+messageActionChatEditTitle#b5a1ce5a title:string = MessageAction
+messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction
+messageActionChatDeletePhoto#95e3fbef = MessageAction
+messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction
+messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction
+dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog
+photoEmpty#2331b22d id:long = Photo
+photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector PhotoSize = Photo
+photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector PhotoSize = Photo
+photoSizeEmpty#0e17e23c type:string = PhotoSize
+photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize
+photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize
+videoEmpty#c10658a8 id:long = Video
+video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video
+videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video
+geoPointEmpty#1117dd5f = GeoPoint
+geoPoint#2049d70c longitude:double latitude:double = GeoPoint
+auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone
+auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode
+auth.authorization#ff036af1 user:User = auth.Authorization
+auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization
+inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer
+inputNotifyUsers#193b4417 = InputNotifyPeer
+inputNotifyChats#4a95e84e = InputNotifyPeer
+inputNotifyAll#a429b886 = InputNotifyPeer
+inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents
+inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents
+inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings
+peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents
+peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents
+peerNotifySettingsEmpty#70a68512 = PeerNotifySettings
+peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings
+wallPaper#ccb03657 id:int title:string sizes:Vector PhotoSize color:int = WallPaper
+userFull#5a89ac5b user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool bot_info:BotInfo = UserFull
+contact#f911c994 user_id:int mutual:Bool = Contact
+importedContact#d0028438 user_id:int client_id:long = ImportedContact
+contactBlocked#561bc879 user_id:int date:int = ContactBlocked
+contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested
+contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus
+chatLocated#3631cf4c chat_id:int distance:int = ChatLocated
+contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link
+contacts.contactsNotModified#b74ba9d2 = contacts.Contacts
+contacts.contacts#6f8b8cb2 contacts:Vector Contact users:Vector User = contacts.Contacts
+contacts.importedContacts#ad524315 imported:Vector ImportedContact retry_contacts:Vector long users:Vector User = contacts.ImportedContacts
+contacts.blocked#1c138d15 blocked:Vector ContactBlocked users:Vector User = contacts.Blocked
+contacts.blockedSlice#900802a1 count:int blocked:Vector ContactBlocked users:Vector User = contacts.Blocked
+contacts.suggested#5649dcc5 results:Vector ContactSuggested users:Vector User = contacts.Suggested
+messages.dialogs#15ba6c40 dialogs:Vector Dialog messages:Vector Message chats:Vector Chat users:Vector User = messages.Dialogs
+messages.dialogsSlice#71e094f3 count:int dialogs:Vector Dialog messages:Vector Message chats:Vector Chat users:Vector User = messages.Dialogs
+messages.messages#8c718e87 messages:Vector Message chats:Vector Chat users:Vector User = messages.Messages
+messages.messagesSlice#0b446ae3 count:int messages:Vector Message chats:Vector Chat users:Vector User = messages.Messages
+messages.messageEmpty#3f4e0648 = messages.Message
+messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage
+messages.chats#64ff9fd5 chats:Vector Chat = messages.Chats
+messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector Chat users:Vector User = messages.ChatFull
+messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory
+inputMessagesFilterEmpty#57e2f66c = MessagesFilter
+inputMessagesFilterPhotos#9609a51c = MessagesFilter
+inputMessagesFilterVideo#9fc00e65 = MessagesFilter
+inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter
+inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter
+inputMessagesFilterDocument#9eddf188 = MessagesFilter
+inputMessagesFilterAudio#cfc87522 = MessagesFilter
+updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update
+updateMessageID#4e90bfd6 id:int random_id:long = Update
+updateDeleteMessages#a20db0e5 messages:Vector int pts:int pts_count:int = Update
+updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update
+updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update
+updateChatParticipants#07761198 participants:ChatParticipants = Update
+updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update
+updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update
+updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update
+updateContactRegistered#2575bbb9 user_id:int date:int = Update
+updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update
+updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update
+updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State
+updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference
+updates.difference#00f49ca0 new_messages:Vector Message new_encrypted_messages:Vector EncryptedMessage other_updates:Vector Update chats:Vector Chat users:Vector User state:updates.State = updates.Difference
+updates.differenceSlice#a8fb1981 new_messages:Vector Message new_encrypted_messages:Vector EncryptedMessage other_updates:Vector Update chats:Vector Chat users:Vector User intermediate_state:updates.State = updates.Difference
+updatesTooLong#e317af7e = Updates
+updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates
+updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates
+updateShort#78d4dec1 update:Update date:int = Updates
+updatesCombined#725b04c3 updates:Vector Update users:Vector User chats:Vector Chat date:int seq_start:int seq:int = Updates
+updates#74ae4240 updates:Vector Update users:Vector User chats:Vector Chat date:int seq:int = Updates
+photos.photos#8dca6aa5 photos:Vector Photo users:Vector User = photos.Photos
+photos.photosSlice#15051f54 count:int photos:Vector Photo users:Vector User = photos.Photos
+photos.photo#20212ca8 photo:Photo users:Vector User = photos.Photo
+upload.file#096a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File
+dcOptionL28#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption
+dcOption#05d8c6cc flags:int id:int ip_address:string port:int = DcOption
+config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector DcOption chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector DisabledFeature = Config
+nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc
+help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate
+help.noAppUpdate#c45a6536 = help.AppUpdate
+help.inviteText#18cb9f78 message:string = help.InviteText
+messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector contacts.Link seq:int = messages.SentMessage
+inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat
+inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer
+geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat
+geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage
+geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage
+geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage
+geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector Chat users:Vector User seq:int = geochats.StatedMessage
+geochats.located#48feb267 results:Vector ChatLocated messages:Vector GeoChatMessage chats:Vector Chat users:Vector User = geochats.Located
+geochats.messages#d1526db1 messages:Vector GeoChatMessage chats:Vector Chat users:Vector User = geochats.Messages
+geochats.messagesSlice#bc5863e8 count:int messages:Vector GeoChatMessage chats:Vector Chat users:Vector User = geochats.Messages
+messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction
+messageActionGeoChatCheckin#0c7d53de = MessageAction
+updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update
+wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper
+updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update
+updateEncryptedChatTyping#1710f156 chat_id:int = Update
+updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update
+updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update
+encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat
+encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat
+encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat
+encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat
+encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat
+inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat
+encryptedFileEmpty#c21f497e = EncryptedFile
+encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile
+inputEncryptedFileEmpty#1837c364 = InputEncryptedFile
+inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile
+inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile
+inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation
+encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage
+encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage
+messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig
+messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig
+messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage
+messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage
+inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile
+inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile
+updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update
+updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update
+updateDcOptions#8e5e9873 dc_options:Vector DcOption = Update
+inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia
+inputMediaAudio#89938781 audio_id:InputAudio = InputMedia
+inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector DocumentAttribute = InputMedia
+inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector DocumentAttribute = InputMedia
+inputMediaDocument#d184e841 document_id:InputDocument = InputMedia
+messageMediaDocument#2fda2204 document:Document = MessageMedia
+messageMediaAudio#c6b68300 audio:Audio = MessageMedia
+inputAudioEmpty#d95adc84 = InputAudio
+inputAudio#77d440ff id:long access_hash:long = InputAudio
+inputDocumentEmpty#72f0eaae = InputDocument
+inputDocument#18798952 id:long access_hash:long = InputDocument
+inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation
+inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation
+audioEmpty#586988d8 id:long = Audio
+audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio
+documentEmpty#36f8c871 id:long = Document
+document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector DocumentAttribute = Document
+document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document
+help.support#17c6b5f6 phone_number:string user:User = help.Support
+notifyPeer#9fd40bd8 peer:Peer = NotifyPeer
+notifyUsers#b4c83b4c = NotifyPeer
+notifyChats#c007cec3 = NotifyPeer
+notifyAll#74d07c60 = NotifyPeer
+updateUserBlocked#80ece81a user_id:int blocked:Bool = Update
+updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update
+auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode
+sendMessageTypingAction#16bf744e = SendMessageAction
+sendMessageCancelAction#fd5ec8f5 = SendMessageAction
+sendMessageRecordVideoAction#a187d66f = SendMessageAction
+sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction
+sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction
+sendMessageRecordAudioAction#d52f73f7 = SendMessageAction
+sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction
+sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction
+sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction
+sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction
+sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction
+sendMessageGeoLocationAction#176f8ba1 = SendMessageAction
+sendMessageChooseContactAction#628cbc6f = SendMessageAction
+contactFound#ea879f95 user_id:int = ContactFound
+contacts.found#0566000e results:Vector ContactFound users:Vector User = contacts.Found
+updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update
+userStatusRecently#e26f42f1 = UserStatus
+userStatusLastWeek#07bf09fc = UserStatus
+userStatusLastMonth#77ebc742 = UserStatus
+updatePrivacy#ee3b272a key:PrivacyKey rules:Vector PrivacyRule = Update
+inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey
+privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey
+inputPrivacyValueAllowContacts#0d09e07b = InputPrivacyRule
+inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule
+inputPrivacyValueAllowUsers#131cc67f users:Vector InputUser = InputPrivacyRule
+inputPrivacyValueDisallowContacts#0ba52007 = InputPrivacyRule
+inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule
+inputPrivacyValueDisallowUsers#90110467 users:Vector InputUser = InputPrivacyRule
+privacyValueAllowContacts#fffe1bac = PrivacyRule
+privacyValueAllowAll#65427b82 = PrivacyRule
+privacyValueAllowUsers#4d5bbe0c users:Vector int = PrivacyRule
+privacyValueDisallowContacts#f888fa1a = PrivacyRule
+privacyValueDisallowAll#8b73e763 = PrivacyRule
+privacyValueDisallowUsers#0c7f49b7 users:Vector int = PrivacyRule
+account.privacyRules#554abb6f rules:Vector PrivacyRule users:Vector User = account.PrivacyRules
+accountDaysTTL#b8d0afdf days:int = AccountDaysTTL
+account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode
+updateUserPhone#12b9417b user_id:int phone:string = Update
+documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute
+documentAttributeAnimated#11b58939 = DocumentAttribute
+documentAttributeStickerL28#994c9882 alt:string = DocumentAttribute
+documentAttributeSticker#3a556302 alt:string stickerset:InputStickerSet = DocumentAttribute
+documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute
+documentAttributeAudio#051448e5 duration:int = DocumentAttribute
+documentAttributeFilename#15590068 file_name:string = DocumentAttribute
+messages.stickersNotModified#f1749a22 = messages.Stickers
+messages.stickers#8a8ecd32 hash:string stickers:Vector Document = messages.Stickers
+stickerPack#12b299d4 emoticon:string documents:Vector long = StickerPack
+messages.allStickersNotModified#e86602c3 = messages.AllStickers
+messages.allStickers#5ce352ec hash:string packs:Vector StickerPack sets:Vector StickerSet documents:Vector Document = messages.AllStickers
+disabledFeature#ae636f24 feature:string description:string = DisabledFeature
+updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update
+updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update
+messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages
+contactLinkUnknown#5f4f9247 = ContactLink
+contactLinkNone#feedd3ad = ContactLink
+contactLinkHasPhone#268f3f59 = ContactLink
+contactLinkContact#d502c2d0 = ContactLink
+updateWebPage#2cc36971 webpage:WebPage = Update
+webPageEmpty#eb1477e8 id:long = WebPage
+webPagePending#c586da1c id:long date:int = WebPage
+webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage
+messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia
+authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization
+account.authorizations#1250abde authorizations:Vector Authorization = account.Authorizations
+account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password
+account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password
+account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings
+account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings
+auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery
+inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia
+messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia
+receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage
+chatInviteEmpty#69df3769 = ExportedChatInvite
+chatInviteExported#fc2e05bc link:string = ExportedChatInvite
+chatInviteAlready#5a686d7c chat:Chat = ChatInvite
+chatInvite#ce917dcd title:string = ChatInvite
+messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction
+updateReadMessagesContents#68c13933 messages:Vector int pts:int pts_count:int = Update
+inputStickerSetEmpty#ffb62b95 = InputStickerSet
+inputStickerSetID#9de7a269 id:long access_hash:long = InputStickerSet
+inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet
+stickerSet#a7a43b17 id:long access_hash:long title:string short_name:string = StickerSet
+messages.stickerSet#b60a24a6 set:StickerSet packs:Vector StickerPack documents:Vector Document = messages.StickerSet
+user#22e49072 flags:# id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int = User
+botCommand#c27ac8c7 command:string description:string = BotCommand
+botCommandOld#b79d22ab command:string params:string description:string = BotCommand
+botInfoEmpty#bb2e37ce = BotInfo
+botInfo#09cf585d user_id:int version:int share_text:string description:string commands:Vector BotCommand = BotInfo
+keyboardButton#a2fa4880 text:string = KeyboardButton
+keyboardButtonRow#77608b83 buttons:Vector KeyboardButton = KeyboardButtonRow
+replyKeyboardHide#a03e5b85 flags:int = ReplyMarkup
+replyKeyboardForceReply#f4108aa0 flags:int = ReplyMarkup
+replyKeyboardMarkup#3502758c flags:int rows:Vector KeyboardButtonRow = ReplyMarkup
+invokeAfterMsg#cb9f372d X:Type msg_id:long query:X = X
+invokeAfterMsgs#3dc4b4f0 X:Type msg_ids:Vector long query:X = X
+auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone
+auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode
+auth.sendCall#03c51564 phone_number:string phone_code_hash:string = Bool
+auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization
+auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization
+auth.logOut#5717da40 = Bool
+auth.resetAuthorizations#9fab0d1a = Bool
+auth.sendInvites#771c1d97 phone_numbers:Vector string message:string = Bool
+auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization
+auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization
+auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool
+account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool
+account.unregisterDevice#65c55b40 token_type:int token:string = Bool
+account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool
+account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings
+account.resetNotifySettings#db7e1747 = Bool
+account.updateProfile#f0888d68 first_name:string last_name:string = User
+account.updateStatus#6628562c offline:Bool = Bool
+account.getWallPapers#c04cfac2 = Vector WallPaper
+users.getUsers#0d91a548 id:Vector InputUser = Vector User
+users.getFullUser#ca30a5b1 id:InputUser = UserFull
+contacts.getStatuses#c4a353ee = Vector ContactStatus
+contacts.getContacts#22c6aa08 hash:string = contacts.Contacts
+contacts.importContacts#da30b32d contacts:Vector InputContact replace:Bool = contacts.ImportedContacts
+contacts.getSuggested#cd773428 limit:int = contacts.Suggested
+contacts.deleteContact#8e953744 id:InputUser = contacts.Link
+contacts.deleteContacts#59ab389e id:Vector InputUser = Bool
+contacts.block#332b49fc id:InputUser = Bool
+contacts.unblock#e54100bd id:InputUser = Bool
+contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked
+contacts.exportCard#84e53737 = Vector int
+contacts.importCard#4fe196fe export_card:Vector int = User
+messages.getMessages#4222fa74 id:Vector int = messages.Messages
+messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs
+messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages
+messages.search#07e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages
+messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory
+messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory
+messages.deleteMessages#a5f18925 id:Vector int = messages.AffectedMessages
+messages.receivedMessages#05a954c0 max_id:int = Vector ReceivedNotifyMessage
+messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool
+messages.sendMessage#fc55e6b5 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup = messages.SentMessage
+messages.sendMedia#c8f16791 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long reply_markup:flags.2?ReplyMarkup = Updates
+messages.forwardMessages#55e1728d peer:InputPeer id:Vector int random_id:Vector long = Updates
+messages.getChats#3c6aa187 id:Vector int = messages.Chats
+messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull
+messages.editChatTitle#dc452855 chat_id:int title:string = Updates
+messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates
+messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates
+messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates
+messages.createChat#09cb126e users:Vector InputUser title:string = Updates
+updates.getState#edd4882a = updates.State
+updates.getDifference#0a041495 pts:int date:int qts:int = updates.Difference
+photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto
+photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo
+photos.deletePhotos#87cf7f2f id:Vector InputPhoto = Vector long
+upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool
+upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File
+help.getConfig#c4f9186b = Config
+help.getNearestDc#1fb33026 = NearestDc
+help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate
+help.saveAppLog#6f02f748 events:Vector InputAppEvent = Bool
+help.getInviteText#a4a95186 lang_code:string = help.InviteText
+photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos
+messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates
+messages.sendBroadcast#bf73f4da contacts:Vector InputUser random_id:Vector long message:string media:InputMedia = Updates
+geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located
+geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages
+geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage
+geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull
+geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage
+geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage
+geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages
+geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages
+geochats.setTyping#08b8a729 peer:InputGeoChat typing:Bool = Bool
+geochats.sendMessage#061b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage
+geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage
+geochats.createGeoChat#0e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage
+messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig
+messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat
+messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat
+messages.discardEncryption#edd923c5 chat_id:int = Bool
+messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool
+messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool
+messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage
+messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage
+messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage
+messages.receivedQueue#55a5bb66 max_qts:int = Vector long
+upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool
+initConnection#69796de9 X:Type api_id:int device_model:string system_version:string app_version:string lang_code:string query:X = X
+help.getSupport#9cdf08cd = help.Support
+auth.sendSms#0da9f3e8 phone_number:string phone_code_hash:string = Bool
+messages.readMessageContents#36a73f77 id:Vector int = messages.AffectedMessages
+account.checkUsername#2714d86c username:string = Bool
+account.updateUsername#3e0bdd7c username:string = User
+contacts.search#11f812d8 q:string limit:int = contacts.Found
+account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules
+account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector InputPrivacyRule = account.PrivacyRules
+account.deleteAccount#418d4e0b reason:string = Bool
+account.getAccountTTL#08fc711d = AccountDaysTTL
+account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool
+invokeWithLayer#da9b0d0d X:Type layer:int query:X = X
+contacts.resolveUsername#0bf0131c username:string = User
+account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode
+account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User
+messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers
+messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers
+account.updateDeviceLocked#38df3532 period:int = Bool
+auth.importBotAuthorization#67a3ff2c flags:int api_id:int api_hash:string bot_auth_token:string = auth.Authorization
+messages.getWebPagePreview#25223e24 message:string = MessageMedia
+account.getAuthorizations#e320c158 = account.Authorizations
+account.resetAuthorization#df77f3bc hash:long = Bool
+account.getPassword#548a30f5 = account.Password
+account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings
+account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool
+auth.checkPassword#0a63011e password_hash:bytes = auth.Authorization
+auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery
+auth.recoverPassword#4ea56e92 code:string = auth.Authorization
+invokeWithoutUpdates#bf9459b7 X:Type query:X = X
+messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite
+messages.checkChatInvite#3eadb1bb hash:string = ChatInvite
+messages.importChatInvite#6c50051c hash:string = Updates
+messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet
+messages.installStickerSet#efbbfae9 stickerset:InputStickerSet = Bool
+messages.uninstallStickerSet#f96e55de stickerset:InputStickerSet = Bool
+messages.startBot#1b3e0ffc bot:InputUser chat_id:int random_id:long start_param:string = Updates
+decryptedMessageMediaEmpty#089f5c4a = DecryptedMessageMedia
+decryptedMessageMediaPhoto#32798a8c str_thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia
+decryptedMessageMediaGeoPoint#35480a59 latitude:double longitude:double = DecryptedMessageMedia
+decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia
+decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction
+decryptedMessageMediaDocument#b095434b str_thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia
+decryptedMessageActionReadMessages#0c4f40be random_ids:Vector long = DecryptedMessageAction
+decryptedMessageActionDeleteMessages#65614304 random_ids:Vector long = DecryptedMessageAction
+decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector long = DecryptedMessageAction
+decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction
+decryptedMessage#204d3878 random_id:long ttl:int message:string media:DecryptedMessageMedia = DecryptedMessage
+decryptedMessageService#73164160 random_id:long action:DecryptedMessageAction = DecryptedMessage
+decryptedMessageMediaVideo#524a415d str_thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia
+decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia
+decryptedMessageLayer#1be31789 random_bytes:bytes layer:int in_seq_no:int out_seq_no:int message:DecryptedMessage = DecryptedMessageLayer
+decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction
+decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction
+decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction
+decryptedMessageActionRequestKey#f3c9611b exchange_id:long g_a:bytes = DecryptedMessageAction
+decryptedMessageActionAcceptKey#6fe1735b exchange_id:long g_b:bytes key_fingerprint:long = DecryptedMessageAction
+decryptedMessageActionAbortKey#dd05ec6b exchange_id:long = DecryptedMessageAction
+decryptedMessageActionCommitKey#ec2e0b9b exchange_id:long key_fingerprint:long = DecryptedMessageAction
+decryptedMessageActionNoop#a82fdd63 = DecryptedMessageAction
+decryptedMessageMediaExternalDocument#fa95b0dd id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector DocumentAttribute = DecryptedMessageMedia
+binlog.encrKey#0377168f key:64*[ int ] = binlog.EncrKey
+binlog.start#3b06de69 = binlog.Update
+binlog.dcOption#f96feb32 dc:int name:string ip:string port:int = binlog.Update
+binlog.dcOptionNew#7c0d22d8 flags:int dc:int name:string ip:string port:int = binlog.Update
+binlog.authKey#71e8c156 dc:int key:%binlog.EncrKey = binlog.Update
+binlog.defaultDc#9e83dbdc dc:int = binlog.Update
+binlog.dcSigned#26451bb5 dc:int = binlog.Update
+binlog.ourId#68a870e8 id:int = binlog.Update
+binlog.setDhParams#eaeb7826 root:int prime:%binlog.EncrKey version:int = binlog.Update
+binlog.setPts#2ca8c939 pts:int = binlog.Update
+binlog.setQts#d95738ac qts:int = binlog.Update
+binlog.setDate#1d0f4b52 date:int = binlog.Update
+binlog.setSeq#6eeb2989 seq:int = binlog.Update
+binlog.encrChatDelete#ee1b38e8 id:int = binlog.Update
+binlog.encrChatNew#84977251 flags:# id:int access_hash:flags.17?long date:flags.18?int admin:flags.19?int user_id:flags.20?int key:flags.21?%binlog.EncrKey g_key:flags.22?%binlog.EncrKey state:flags.23?int ttl:flags.24?int layer:flags.25?int in_seq_no:flags.26?int last_in_seq_no:flags.26?int out_seq_no:flags.26?int key_fingerprint:flags.27?long = binlog.Update
+binlog.encrChatExchangeNew#9d49488d flags:# id:int exchange_id:flags.17?long key:flags.18?%binlog.EncrKey state:flags.19?int = binlog.Update
+binlog.userDelete#ac55d447 id:int = binlog.Update
+binlog.userNew#127cf2f9 flags:# id:int access_hash:flags.17?long first_name:flags.18?string last_name:flags.18?string phone:flags.19?string username:flags.20?string photo:flags.21?Photo real_first_name:flags.22?string real_last_name:flags.22?string user_photo:flags.23?UserProfilePhoto last_read_in:flags.24?int last_read_out:flags.25?int bot_info:flags.26?BotInfo = binlog.Update
+binlog.chatNew#0a10aa92 flags:# id:int title:flags.17?string user_num:flags.18?int date:flags.19?int version:flags.20?int participants:flags.20?Vector ChatParticipant chat_photo:flags.21?ChatPhoto photo:flags.22?Photo admin:flags.23?int last_read_in:flags.24?int last_read_out:flags.25?int = binlog.Update
+binlog.chatAddParticipant#535475ea id:int version:int user_id:int inviter_id:int date:int = binlog.Update
+binlog.chatDelParticipant#7dd1a1a2 id:int version:int user_id:int = binlog.Update
+binlog.setMsgId#3c873416 old_id:long new_id:int = binlog.Update
+binlog.messageDelete#847e77b1 lid:long = binlog.Update
+binlog.messageNew#427cfcdb flags:# lid:long from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int fwd_from_id:flags.18?int fwd_date:flags.18?int date:flags.19?int message:flags.20?string media:flags.21?MessageMedia action:flags.22?MessageAction reply_id:flags.23?int reply_markup:flags.24?ReplyMarkup = binlog.Update
+binlog.messageEncrNew#6cf7cabc flags:# lid:long from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int date:flags.19?int message:flags.20?string encr_media:flags.21?DecryptedMessageMedia encr_action:flags.22?DecryptedMessageAction file:flags.23?EncryptedFile = binlog.Update
+binlog.msgUpdate#6dd4d85f lid:long = binlog.Update
+binlog.resetAuthorization#83327955 = binlog.Update
+resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:Vector long = ResPQ
+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
+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
+client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data
+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
+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
+req_pq#60469778 nonce:int128 = ResPQ
+req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params
+set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer
+decryptedMessageMediaVideoL12#4cee6ef3 str_thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia
+decryptedMessageMediaAudioL12#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia
+updateMsgUpdate#03114739 id:int pts:int pts_count:int = Update
+messageMediaPhotoL27#c8c45a2a photo:Photo = MessageMedia
+messageMediaVideoL27#a2d24290 video:Video = MessageMedia
diff --git a/libs/tgl/src/binlog.c b/libs/tgl/src/binlog.c
new file mode 100644
index 0000000000..74a47b38c2
--- /dev/null
+++ b/libs/tgl/src/binlog.c
@@ -0,0 +1,1830 @@
+/*
+ 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
+
+#if defined(WIN32) || defined(_WIN32)
+#include <stdint.h>
+#include <string.h>
+#include <fcntl.h>
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
+#include <io.h>
+#include <sys/locking.h>
+#else
+#include <unistd.h>
+#include <sys/file.h>
+#endif
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <share.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 "net.h"
+#include "mtproto-client.h"
+#include "mtproto-utils.h"
+
+#include "tgl.h"
+#include "auto.h"
+#include "auto/auto-types.h"
+#include "auto/auto-skip.h"
+#include "auto/auto-store-ds.h"
+#include "auto/auto-fetch-ds.h"
+#include "auto/auto-free-ds.h"
+
+#include "tgl-structures.h"
+#include "tgl-methods-in.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)
+
+char *get_binlog_file_name (void);
+
+static void *alloc_log_event (int l) {
+ return binlog_buffer;
+}
+
+static int mystreq1 (const char *a, const char *b, int l) {
+ if ((int)strlen (a) != l) { return 1; }
+ return memcmp (a, b, l);
+}
+
+static long long binlog_pos;
+
+static int fetch_comb_binlog_start (struct tgl_state *TLS, void *extra) {
+ return 0;
+}
+
+/* {{{ DC option */
+static int fetch_comb_binlog_dc_option (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ vlogprintf (E_NOTICE, "DC%d '%.*s' update: %.*s:%d\n",
+ DS_LVAL (DS_U->dc),
+ DS_RSTR (DS_U->name),
+ DS_RSTR (DS_U->ip),
+ DS_LVAL (DS_U->port)
+ );
+
+ tglmp_alloc_dc (TLS,
+ 0,
+ DS_LVAL (DS_U->dc),
+ DS_STR_DUP (DS_U->ip),
+ DS_LVAL (DS_U->port)
+ );
+ return 0;
+}
+
+static int fetch_comb_binlog_dc_option_new (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ vlogprintf (E_NOTICE, "DC%d '%.*s' update: %.*s:%d\n",
+ DS_LVAL (DS_U->dc),
+ DS_RSTR (DS_U->name),
+ DS_RSTR (DS_U->ip),
+ DS_LVAL (DS_U->port)
+ );
+
+ tglmp_alloc_dc (TLS,
+ DS_LVAL (DS_U->flags),
+ DS_LVAL (DS_U->dc),
+ DS_STR_DUP (DS_U->ip),
+ DS_LVAL (DS_U->port)
+ );
+ return 0;
+}
+/* }}} */
+
+/* {{{ Auth key */
+static int fetch_comb_binlog_auth_key (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ int num = DS_LVAL (DS_U->dc);
+ assert (num > 0 && num <= MAX_DC_ID);
+ assert (TLS->DC_list[num]);
+
+ tglf_fetch_int_tuple ((void *)TLS->DC_list[num]->auth_key, DS_U->key->key, 64);
+
+ static unsigned char sha1_buffer[20];
+ SHA1 ((void *)TLS->DC_list[num]->auth_key, 256, sha1_buffer);
+ TLS->DC_list[num]->auth_key_id = *(long long *)(sha1_buffer + 12);
+
+ TLS->DC_list[num]->flags |= TGLDCF_AUTHORIZED;
+ return 0;
+}
+/* }}} */
+
+/* {{{ Default dc */
+static int fetch_comb_binlog_default_dc (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ int num = DS_LVAL (DS_U->dc);
+ assert (num > 0 && num <= MAX_DC_ID);
+ TLS->DC_working = TLS->DC_list[num];
+ TLS->dc_working_num = num;
+ return 0;
+}
+/* }}} */
+
+/* {{{ DC signed */
+static int fetch_comb_binlog_dc_signed (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ int num = DS_LVAL (DS_U->dc);
+ assert (num > 0 && num <= MAX_DC_ID);
+ assert (TLS->DC_list[num]);
+ TLS->DC_list[num]->flags |= TGLDCF_LOGGED_IN;
+ return 0;
+}
+/* }}} */
+
+/* {{{ our user_id */
+static int fetch_comb_binlog_our_id (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ TLS->our_id = DS_LVAL (DS_U->id);
+ assert (TLS->our_id > 0);
+ if (TLS->callback.our_id) {
+ TLS->callback.our_id (TLS, TLS->our_id);
+ }
+ return 0;
+}
+/* }}} */
+
+/* {{{ Set DH params */
+static int fetch_comb_binlog_set_dh_params (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ if (TLS->encr_prime) { tfree (TLS->encr_prime, 256); BN_free (TLS->encr_prime_bn); }
+
+ TLS->encr_root = DS_LVAL (DS_U->root);
+ TLS->encr_prime = talloc (256);
+ tglf_fetch_int_tuple ((void *)TLS->encr_prime, DS_U->prime->key, 64);
+
+ TLS->encr_prime_bn = BN_new ();
+ BN_bin2bn ((void *)TLS->encr_prime, 256, TLS->encr_prime_bn);
+ TLS->encr_param_version = DS_LVAL (DS_U->version);
+
+ assert (tglmp_check_DH_params (TLS, TLS->encr_prime_bn, TLS->encr_root) >= 0);
+
+ return 0;
+}
+/* }}} */
+
+/* {{{ Set pts, qts, date, seq */
+static int fetch_comb_binlog_set_pts (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ TLS->pts = DS_LVAL (DS_U->pts);
+ return 0;
+}
+
+static int fetch_comb_binlog_set_qts (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ TLS->qts = DS_LVAL (DS_U->qts);
+ return 0;
+}
+
+static int fetch_comb_binlog_set_date (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ TLS->date = DS_LVAL (DS_U->date);
+ return 0;
+}
+
+static int fetch_comb_binlog_set_seq (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ TLS->seq = DS_LVAL (DS_U->seq);
+ return 0;
+}
+/* }}} */
+
+/* {{{ delete user */
+static int fetch_comb_binlog_user_delete (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ tgl_peer_id_t id = TGL_MK_USER (DS_LVAL (DS_U->id));
+ tgl_peer_t *U = tgl_peer_get (TLS, id);
+ assert (U);
+ U->flags |= TGLUF_DELETED;
+
+ if (TLS->callback.user_update) {
+ TLS->callback.user_update (TLS, (void *)U, TGL_UPDATE_DELETED);
+ }
+ return 0;
+}
+/* }}} */
+
+/* {{{ delete secret chat */
+static int fetch_comb_binlog_encr_chat_delete (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ tgl_peer_id_t id = TGL_MK_ENCR_CHAT (DS_LVAL (DS_U->id));
+ 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 |= TGLPF_DELETED;
+ U->state = sc_deleted;
+ 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_user_new (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ tgl_peer_id_t id = TGL_MK_USER (DS_LVAL (DS_U->id));
+ tgl_peer_t *_U = tgl_peer_get (TLS, id);
+
+ int flags = DS_LVAL (DS_U->flags);
+
+ unsigned updates = 0;
+
+ if (flags & TGLPF_CREATE) {
+ if (!_U) {
+ _U = talloc0 (sizeof (*_U));
+ _U->id = id;
+ tglp_insert_encrypted_chat (TLS, _U);
+ } else {
+ assert (!(_U->flags & TGLPF_CREATED));
+ }
+ updates |= TGL_UPDATE_CREATED;
+ } else {
+ assert (_U->flags & TGLPF_CREATED);
+ }
+
+ struct tgl_user *U = (void *)_U;
+
+ if ((flags & 0xff) != (U->flags & 0xff)) {
+ updates |= TGL_UPDATE_FLAGS;
+ }
+ U->flags = flags & 0xffff;
+
+ if (DS_U->access_hash) {
+ U->access_hash = DS_LVAL (DS_U->access_hash);
+ updates |= TGL_UPDATE_ACCESS_HASH;
+ }
+
+ if (DS_U->first_name) {
+ if (U->first_name) {
+ tfree_str (U->first_name);
+ }
+ U->first_name = DS_STR_DUP (DS_U->first_name);
+ if (U->last_name) {
+ tfree_str (U->last_name);
+ }
+ U->last_name = DS_STR_DUP (DS_U->last_name);
+
+ updates |= TGL_UPDATE_NAME;
+
+ if (U->print_name) {
+ tglp_peer_delete_name (TLS, (void *)U);
+ tfree_str (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);
+ }
+
+ if (DS_U->phone) {
+ if (U->phone) {
+ tfree_str (U->phone);
+ }
+ U->phone = DS_STR_DUP (DS_U->phone);
+ updates |= TGL_UPDATE_PHONE;
+ }
+
+ if (DS_U->username) {
+ if (U->username) {
+ tfree_str (U->username);
+ }
+ U->username = DS_STR_DUP (DS_U->username);
+ updates |= TGL_UPDATE_USERNAME;
+ }
+
+ if (DS_U->photo) {
+ if (U->photo) {
+ tgls_free_photo (TLS, U->photo);
+ }
+ U->photo = tglf_fetch_alloc_photo_new (TLS, DS_U->photo);
+ U->flags |= TGLUF_HAS_PHOTO;
+ //updates |= TGL_UPDATE_PHOTO;
+ }
+
+ if (DS_U->user_photo) {
+ U->photo_id = DS_LVAL (DS_U->user_photo->photo_id);
+ tglf_fetch_file_location_new (TLS, &U->photo_big, DS_U->user_photo->photo_big);
+ tglf_fetch_file_location_new (TLS, &U->photo_small, DS_U->user_photo->photo_small);
+ updates |= TGL_UPDATE_PHOTO;
+ }
+
+ if (DS_U->real_first_name) {
+ if (U->real_first_name) {
+ tfree_str (U->real_first_name);
+ }
+ U->real_first_name = DS_STR_DUP (DS_U->real_first_name);
+ if (U->real_last_name) {
+ tfree_str (U->real_last_name);
+ }
+ U->real_last_name = DS_STR_DUP (DS_U->real_last_name);
+
+ updates |= TGL_UPDATE_REAL_NAME;
+ }
+
+ if (DS_U->last_read_in) {
+ U->last_read_in = DS_LVAL (DS_U->last_read_in);
+ tgls_messages_mark_read (TLS, U->last, 0, U->last_read_in);
+ }
+
+ if (DS_U->last_read_out) {
+ U->last_read_out = DS_LVAL (DS_U->last_read_out);
+ tgls_messages_mark_read (TLS, U->last, TGLMF_OUT, U->last_read_out);
+ }
+
+ if (DS_U->bot_info) {
+ if (U->bot_info) {
+ tgls_free_bot_info (TLS, U->bot_info);
+ }
+ U->bot_info = tglf_fetch_alloc_bot_info (TLS, DS_U->bot_info);
+ }
+
+ if (TLS->callback.user_update && updates) {
+ TLS->callback.user_update (TLS, U, updates);
+ }
+
+ return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_new (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ tgl_peer_id_t id = TGL_MK_ENCR_CHAT (DS_LVAL (DS_U->id));
+ tgl_peer_t *_U = tgl_peer_get (TLS, id);
+
+ int flags = DS_LVAL (DS_U->flags);
+
+ unsigned updates = 0;
+
+ if (flags & TGLPF_CREATE) {
+ if (!_U) {
+ _U = talloc0 (sizeof (*_U));
+ _U->id = id;
+ tglp_insert_encrypted_chat (TLS, _U);
+ } else {
+ assert (!(_U->flags & TGLPF_CREATED));
+ }
+ updates |= TGL_UPDATE_CREATED;
+ } else {
+ assert (_U->flags & TGLPF_CREATED);
+ }
+
+ struct tgl_secret_chat *U = (void *)_U;
+
+ if ((flags & 0xff) != (U->flags & 0xff)) {
+ updates |= TGL_UPDATE_FLAGS;
+ }
+ U->flags = flags & 0xffff;
+
+ if (DS_U->access_hash) {
+ U->access_hash = DS_LVAL (DS_U->access_hash);
+ updates |= TGL_UPDATE_ACCESS_HASH;
+ }
+
+ if (DS_U->date) {
+ U->date = DS_LVAL (DS_U->date);
+ }
+
+ if (DS_U->admin) {
+ U->admin_id = DS_LVAL (DS_U->admin);
+ }
+
+ if (DS_U->user_id) {
+ U->user_id = DS_LVAL (DS_U->user_id);
+ }
+
+ if (DS_U->key_fingerprint) {
+ U->key_fingerprint = DS_LVAL (DS_U->key_fingerprint);
+ }
+
+ if (DS_U->in_seq_no) {
+ U->in_seq_no = DS_LVAL (DS_U->in_seq_no);
+ U->out_seq_no = DS_LVAL (DS_U->out_seq_no);
+ U->last_in_seq_no = DS_LVAL (DS_U->last_in_seq_no);
+ }
+
+ tgl_peer_t *Us = tgl_peer_get (TLS, TGL_MK_USER (U->user_id));
+
+ if (!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);
+ }
+
+ if (DS_U->g_key) {
+ if (!U->g_key) {
+ U->g_key = talloc (256);
+ }
+ tglf_fetch_int_tuple ((void *)U->g_key, DS_U->g_key->key, 64);
+ }
+
+ if (DS_U->key) {
+ tglf_fetch_int_tuple (U->key, DS_U->key->key, 64);
+ }
+
+ if (DS_U->state) {
+ if (U->state == sc_waiting && DS_LVAL (DS_U->state) == sc_ok) {
+ tgl_do_create_keys_end (TLS, U);
+ }
+ if ((int)U->state != DS_LVAL (DS_U->state)) {
+ switch (DS_LVAL (DS_U->state)) {
+ case sc_request:
+ updates |= TGL_UPDATE_REQUESTED;
+ break;
+ case sc_ok:
+ updates |= TGL_UPDATE_WORKING;
+ vlogprintf (E_WARNING, "Secret chat in ok state\n");
+ break;
+ default:
+ break;
+ }
+ }
+ U->state = DS_LVAL (DS_U->state);
+ }
+
+ if (TLS->callback.secret_chat_update && updates) {
+ TLS->callback.secret_chat_update (TLS, U, updates);
+ }
+
+ return 0;
+}
+
+static int fetch_comb_binlog_chat_new (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ tgl_peer_id_t id = TGL_MK_CHAT (DS_LVAL (DS_U->id));
+ tgl_peer_t *_U = tgl_peer_get (TLS, id);
+
+ int flags = DS_LVAL (DS_U->flags);
+
+ unsigned updates = 0;
+
+ if (flags & (1 << 16)) {
+ if (!_U) {
+ _U = talloc0 (sizeof (*_U));
+ _U->id = id;
+ tglp_insert_chat (TLS, _U);
+ } else {
+ assert (!(_U->flags & TGLPF_CREATED));
+ }
+ updates |= TGL_UPDATE_CREATED;
+ } else {
+ assert (_U->flags & TGLPF_CREATED);
+ }
+
+ struct tgl_chat *C = &_U->chat;
+
+ if ((flags & 0xff) != (C->flags & 0xff)) {
+ updates |= TGL_UPDATE_FLAGS;
+ }
+ C->flags = flags & 0xffff;
+
+ if (DS_U->title) {
+ if (C->title) {
+ tfree_str (C->title);
+ }
+ C->title = DS_STR_DUP (DS_U->title);
+
+ if (C->print_title) {
+ tglp_peer_delete_name (TLS, (void *)C);
+ tfree_str (C->print_title);
+ }
+ C->print_title = TLS->callback.create_print_name (TLS, C->id, C->title, 0, 0, 0);
+ tglp_peer_insert_name (TLS, (void *)C);
+
+ updates |= TGL_UPDATE_TITLE;
+ }
+
+ if (DS_U->user_num) {
+ C->users_num = DS_LVAL (DS_U->user_num);
+ }
+
+ if (DS_U->date) {
+ C->date = DS_LVAL (DS_U->date);
+ }
+
+ if (DS_U->chat_photo) {
+ tglf_fetch_file_location_new (TLS, &C->photo_big, DS_U->chat_photo->photo_big);
+ tglf_fetch_file_location_new (TLS, &C->photo_small, DS_U->chat_photo->photo_small);
+ updates |= TGL_UPDATE_PHOTO;
+ }
+
+ if (DS_U->photo) {
+ if (C->photo) {
+ tgls_free_photo (TLS, C->photo);
+ }
+ C->photo = tglf_fetch_alloc_photo_new (TLS, DS_U->photo);
+ C->flags |= TGLPF_HAS_PHOTO;
+ updates |= TGL_UPDATE_PHOTO;
+ }
+
+ if (DS_U->admin) {
+ C->admin_id = DS_LVAL (DS_U->admin);
+ updates |= TGL_UPDATE_ADMIN;
+ }
+
+ if (DS_U->version) {
+ C->version = DS_LVAL (DS_U->version);
+
+ if (C->user_list) { tfree (C->user_list, 12 * C->user_list_size); }
+
+ C->user_list_size = DS_LVAL (DS_U->participants->cnt);
+ C->user_list = talloc (12 * C->user_list_size);
+
+ int i;
+ for (i = 0; i < C->user_list_size; i++) {
+ C->user_list[i].user_id = DS_LVAL (DS_U->participants->data[i]->user_id);
+ C->user_list[i].inviter_id = DS_LVAL (DS_U->participants->data[i]->inviter_id);
+ C->user_list[i].date = DS_LVAL (DS_U->participants->data[i]->date);
+ }
+
+ updates |= TGL_UPDATE_MEMBERS;
+ }
+
+ if (DS_U->last_read_in) {
+ C->last_read_in = DS_LVAL (DS_U->last_read_in);
+ tgls_messages_mark_read (TLS, C->last, 0, C->last_read_in);
+ }
+
+ if (DS_U->last_read_out) {
+ C->last_read_out = DS_LVAL (DS_U->last_read_out);
+ tgls_messages_mark_read (TLS, C->last, TGLMF_OUT, C->last_read_out);
+ }
+
+
+ if (TLS->callback.chat_update && updates) {
+ TLS->callback.chat_update (TLS, C, updates);
+ }
+ return 0;
+}
+
+static int fetch_comb_binlog_chat_add_participant (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ tgl_peer_id_t id = TGL_MK_CHAT (DS_LVAL (DS_U->id));
+ tgl_peer_t *_C = tgl_peer_get (TLS, id);
+ assert (_C && (_C->flags & TGLPF_CREATED));
+ struct tgl_chat *C = &_C->chat;
+
+ int version = DS_LVAL (DS_U->version);
+ int user = DS_LVAL (DS_U->user_id);
+ int inviter = DS_LVAL (DS_U->inviter_id);
+ int date = DS_LVAL (DS_U->date);
+
+
+ if (C->user_list_version > version) { return 0; }
+
+ int i;
+ for (i = 0; i < C->user_list_size; i++) {
+ if (C->user_list[i].user_id == user) {
+ return 0;
+ }
+ }
+
+ 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, struct tl_ds_binlog_update *DS_U) {
+ tgl_peer_id_t id = TGL_MK_CHAT (DS_LVAL (DS_U->id));
+ tgl_peer_t *_C = tgl_peer_get (TLS, id);
+ assert (_C && (_C->flags & TGLPF_CREATED));
+ struct tgl_chat *C = &_C->chat;
+
+ int version = DS_LVAL (DS_U->version);
+ int user = DS_LVAL (DS_U->user_id);
+ if (C->user_list_version > version) { return 0; }
+
+ 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;
+ }
+ }
+ if (C->user_list[C->user_list_size - 1].user_id != user) { return 0; }
+
+ 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_message_new (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->lid));
+ int flags = DS_LVAL (DS_U->flags);
+
+ if (flags & (1 << 16)) {
+ if (!M) {
+ M = tglm_message_alloc (TLS, DS_LVAL (DS_U->lid));
+ }
+ assert (!(M->flags & TGLMF_CREATED));
+ } else {
+ assert (M->flags & TGLMF_CREATED);
+ }
+
+ assert (flags & TGLMF_CREATED);
+ assert (!(M->flags & TGLMF_ENCRYPTED));
+ assert (!(flags & TGLMF_ENCRYPTED));
+
+ if ((M->flags & TGLMF_PENDING) && !(flags & TGLMF_PENDING)){
+ tglm_message_remove_unsent (TLS, M);
+ }
+ if (!(M->flags & TGLMF_PENDING) && (flags & TGLMF_PENDING)){
+ tglm_message_insert_unsent (TLS, M);
+ }
+
+ if ((M->flags & TGLMF_UNREAD) && !(flags & TGLMF_UNREAD)) {
+ M->flags = (flags & 0xffff) | TGLMF_UNREAD;
+ } else {
+ M->flags = (flags & 0xffff);
+ }
+
+ if (DS_U->from_id) {
+ M->from_id = TGL_MK_USER (DS_LVAL (DS_U->from_id));
+ }
+ if (DS_U->to_type) {
+ assert (flags & 0x10000);
+ M->to_id = tgl_set_peer_id (DS_LVAL (DS_U->to_type), DS_LVAL (DS_U->to_id));
+ assert (DS_LVAL (DS_U->to_type) != TGL_PEER_ENCR_CHAT);
+ }
+
+ if (DS_U->date) {
+ M->date = DS_LVAL (DS_U->date);
+ }
+
+ if (DS_U->fwd_from_id) {
+ M->fwd_from_id = TGL_MK_USER (DS_LVAL (DS_U->fwd_from_id));
+ M->fwd_date = DS_LVAL (DS_U->fwd_date);
+ }
+
+ if (DS_U->action) {
+ tglf_fetch_message_action_new (TLS, &M->action, DS_U->action);
+ M->flags |= TGLMF_SERVICE;
+ }
+
+ if (DS_U->message) {
+ M->message_len = DS_U->message->len;
+ M->message = DS_STR_DUP (DS_U->message);
+ assert (!(M->flags & TGLMF_SERVICE));
+ }
+
+ if (DS_U->media) {
+ tglf_fetch_message_media_new (TLS, &M->media, DS_U->media);
+ assert (!(M->flags & TGLMF_SERVICE));
+ }
+
+ if (DS_U->reply_id) {
+ M->reply_id = DS_LVAL (DS_U->reply_id);
+ }
+
+ if (flags & 0x10000) {
+ tglm_message_insert (TLS, M);
+ }
+
+ if (!(flags & TGLMF_UNREAD) && (M->flags & TGLMF_UNREAD)) {
+ tgls_messages_mark_read (TLS, M, M->flags & TGLMF_OUT, M->id);
+ }
+
+ if (DS_U->reply_markup) {
+ M->reply_markup = tglf_fetch_alloc_reply_markup (TLS, M->next, DS_U->reply_markup);
+ }
+ return 0;
+}
+
+static int fetch_comb_binlog_message_encr_new (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->lid));
+ int flags = DS_LVAL (DS_U->flags);
+
+ if (flags & (1 << 16)) {
+ if (!M) {
+ M = tglm_message_alloc (TLS, DS_LVAL (DS_U->lid));
+ } else {
+ assert (!(M->flags & TGLMF_CREATED));
+ }
+ assert (!(M->flags & TGLMF_CREATED));
+ } else {
+ assert (M->flags & TGLMF_CREATED);
+ }
+
+ assert (flags & TGLMF_CREATED);
+ assert (flags & TGLMF_ENCRYPTED);
+
+ if ((M->flags & TGLMF_PENDING) && !(flags & TGLMF_PENDING)){
+ tglm_message_remove_unsent (TLS, M);
+ }
+ if (!(M->flags & TGLMF_PENDING) && (flags & TGLMF_PENDING)){
+ tglm_message_insert_unsent (TLS, M);
+ }
+
+ M->flags = flags & 0xffff;
+
+ if (DS_U->from_id) {
+ M->from_id = TGL_MK_USER (DS_LVAL (DS_U->from_id));
+ }
+ if (DS_U->to_type) {
+ assert (flags & 0x10000);
+ M->to_id = tgl_set_peer_id (DS_LVAL (DS_U->to_type), DS_LVAL (DS_U->to_id));
+ }
+
+ if (DS_U->date) {
+ M->date = DS_LVAL (DS_U->date);
+ }
+
+ struct tgl_secret_chat *E = (void *)tgl_peer_get (TLS, M->to_id);
+ assert (E);
+
+ if (DS_U->message) {
+ M->message_len = DS_U->message->len;
+ M->message = DS_STR_DUP (DS_U->message);
+ assert (!(M->flags & TGLMF_SERVICE));
+ }
+
+ if (DS_U->encr_media) {
+ tglf_fetch_message_media_encrypted_new (TLS, &M->media, DS_U->encr_media);
+ assert (!(M->flags & TGLMF_SERVICE));
+ }
+
+ if (DS_U->encr_action) {
+ tglf_fetch_message_action_encrypted_new (TLS, &M->action, DS_U->encr_action);
+ M->flags |= TGLMF_SERVICE;
+ }
+
+ if (DS_U->file) {
+ tglf_fetch_encrypted_message_file_new (TLS, &M->media, DS_U->file);
+ assert (!(M->flags & TGLMF_SERVICE));
+ }
+
+ if (DS_U->encr_action && !(M->flags & TGLMF_OUT) && M->action.type == tgl_message_action_notify_layer) {
+ E->layer = M->action.layer;
+ }
+
+ if ((flags & TGLMF_CREATE) && (flags & TGLMF_OUT)) {
+ E->out_seq_no ++;
+ }
+
+ if (flags & 0x10000) {
+ tglm_message_insert (TLS, M);
+ }
+ return 0;
+}
+
+static int fetch_comb_binlog_set_msg_id (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->old_id));
+ assert (M);
+ if (M->flags & TGLMF_PENDING) {
+ tglm_message_remove_unsent (TLS, M);
+ M->flags &= ~TGLMF_PENDING;
+ }
+
+ tglm_message_remove_tree (TLS, M);
+ tglm_message_del_peer (TLS, M);
+
+ M->id = DS_LVAL (DS_U->new_id);
+ if (tgl_message_get (TLS, M->id)) {
+ tglm_message_del_use (TLS, M);
+ 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_delete (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->lid));
+ assert (M);
+ if (M->flags & TGLMF_PENDING) {
+ tglm_message_remove_unsent (TLS, M);
+ M->flags &= ~TGLMF_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_update (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->lid));
+ if (!M) { return 0; }
+ assert (M);
+
+ if (!(M->flags & TGLMF_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;
+ }
+ TLS->seq = 0;
+ TLS->qts = 0;
+ return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_exchange_new (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) {
+ tgl_peer_t *P = tgl_peer_get (TLS, TGL_MK_ENCR_CHAT (DS_LVAL (DS_U->id)));
+ assert (P);
+ if (DS_U->state) {
+ P->encr_chat.exchange_state = DS_LVAL (DS_U->state);
+ }
+ if (DS_U->exchange_id) {
+ P->encr_chat.exchange_id = DS_LVAL (DS_U->exchange_id);
+ }
+
+ static unsigned char sha_buffer[20];
+ switch (P->encr_chat.exchange_state) {
+ case tgl_sce_requested:
+ tglf_fetch_int_tuple (P->encr_chat.exchange_key, DS_U->key->key, 64);
+ break;
+ case tgl_sce_accepted:
+ tglf_fetch_int_tuple (P->encr_chat.exchange_key, DS_U->key->key, 64);
+
+ SHA1 ((unsigned char *)P->encr_chat.exchange_key, 256, sha_buffer);
+ P->encr_chat.exchange_key_fingerprint = *(long long *)(sha_buffer + 12);
+ break;
+ case tgl_sce_committed:
+ memcpy (P->encr_chat.exchange_key, P->encr_chat.key, 256);
+ P->encr_chat.exchange_key_fingerprint = P->encr_chat.key_fingerprint;
+
+ tglf_fetch_int_tuple (P->encr_chat.key, DS_U->key->key, 64);
+
+ SHA1 ((unsigned char *)P->encr_chat.key, 256, sha_buffer);
+ P->encr_chat.key_fingerprint = *(long long *)(sha_buffer + 12);
+ break;
+ case tgl_sce_confirmed:
+ P->encr_chat.exchange_state = tgl_sce_none;
+ 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;
+ }
+ break;
+ case tgl_sce_aborted:
+ P->encr_chat.exchange_state = tgl_sce_none;
+ 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;
+ }
+ break;
+ default:
+ assert (0);
+ }
+ return 0;
+}
+
+#define FETCH_COMBINATOR_FUNCTION(NAME) \
+ case CODE_ ## NAME:\
+ ok = fetch_comb_ ## NAME (TLS, DS_U); \
+ break; \
+
+
+static void replay_log_event (struct tgl_state *TLS) {
+ assert (rptr < wptr);
+ int op = *rptr;
+
+ vlogprintf (E_DEBUG, "replay_log_event: log_pos=%"_PRINTF_INT64_"d, op=0x%08x\n", binlog_pos, op);
+
+ in_ptr = rptr;
+ in_end = wptr;
+ if (skip_type_any (TYPE_TO_PARAM (binlog_update)) < 0) {
+ vlogprintf (E_ERROR, "Can not replay at %"_PRINTF_INT64_"d (magic = 0x%08x)\n", binlog_pos, *rptr);
+ assert (0);
+ }
+ int *end = in_ptr;
+ in_end = in_ptr;
+ in_ptr = rptr;
+ struct tl_ds_binlog_update *DS_U = fetch_ds_type_binlog_update (TYPE_TO_PARAM (binlog_update));
+ assert (in_ptr == end);
+
+ int ok = -1;
+
+ switch (op) {
+ FETCH_COMBINATOR_FUNCTION (binlog_start)
+ FETCH_COMBINATOR_FUNCTION (binlog_dc_option)
+ FETCH_COMBINATOR_FUNCTION (binlog_dc_option_new)
+ FETCH_COMBINATOR_FUNCTION (binlog_auth_key)
+ FETCH_COMBINATOR_FUNCTION (binlog_default_dc)
+ FETCH_COMBINATOR_FUNCTION (binlog_dc_signed)
+
+ FETCH_COMBINATOR_FUNCTION (binlog_our_id)
+
+ 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_new)
+ FETCH_COMBINATOR_FUNCTION (binlog_user_delete)
+
+ FETCH_COMBINATOR_FUNCTION (binlog_chat_new)
+ //FETCH_COMBINATOR_FUNCTION (binlog_chat_delete)
+
+ FETCH_COMBINATOR_FUNCTION (binlog_encr_chat_new)
+ FETCH_COMBINATOR_FUNCTION (binlog_encr_chat_delete)
+ FETCH_COMBINATOR_FUNCTION (binlog_chat_add_participant)
+ FETCH_COMBINATOR_FUNCTION (binlog_chat_del_participant)
+
+ FETCH_COMBINATOR_FUNCTION (binlog_message_new)
+ FETCH_COMBINATOR_FUNCTION (binlog_message_encr_new)
+ FETCH_COMBINATOR_FUNCTION (binlog_message_delete)
+ FETCH_COMBINATOR_FUNCTION (binlog_set_msg_id)
+
+ FETCH_COMBINATOR_FUNCTION (binlog_encr_chat_exchange_new)
+
+ FETCH_COMBINATOR_FUNCTION (binlog_msg_update)
+ FETCH_COMBINATOR_FUNCTION (binlog_reset_authorization)
+ default:
+ vlogprintf (E_ERROR, "Unknown op 0x%08x\n", op);
+ assert (0);
+ }
+ assert (ok >= 0);
+
+ free_ds_type_binlog_update (DS_U, TYPE_TO_PARAM (binlog_update));
+ assert (in_ptr == end);
+ //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);
+ }
+
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ int fd = 0;
+ if(_sopen_s (&fd, TLS->binlog_name, _O_WRONLY | _O_EXCL | _O_CREAT, _SH_DENYNO, _S_IREAD | _S_IWRITE) != 0 ) {
+#else
+ int fd = open (TLS->binlog_name, O_WRONLY | O_EXCL | O_CREAT, 0600);
+ if (fd < 0) {
+#endif
+ 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 defined(WIN32) || defined(_WIN32)
+ if (INVALID_FILE_ATTRIBUTES == GetFileAttributesA (TLS->binlog_name) && GetLastError () == ERROR_FILE_NOT_FOUND) {
+#else
+ if (access (TLS->binlog_name, F_OK) < 0) {
+#endif
+ printf ("No binlog found. Creating new one\n");
+ create_new_binlog (TLS);
+ }
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ int fd = 0;
+ if (_sopen_s(&fd, TLS->binlog_name, _O_RDONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE) != 0) {
+#elif defined(WIN32) || defined(_WIN32)
+ int fd = open (TLS->binlog_name, O_RDONLY | O_BINARY);
+ if (fd < 0) {
+#else
+ int fd = open (TLS->binlog_name, O_RDONLY);
+ if (fd < 0) {
+#endif
+ 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) {
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ if (_sopen_s (&TLS->binlog_fd, TLS->binlog_name, _O_WRONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE) != 0) {
+#elif defined(WIN32) || defined(_WIN32)
+ TLS->binlog_fd = open (TLS->binlog_name, O_WRONLY | _O_BINARY);
+ if (TLS->binlog_fd < 0) {
+#else
+ TLS->binlog_fd = open (TLS->binlog_name, O_WRONLY);
+ if (TLS->binlog_fd < 0) {
+#endif
+ perror ("binlog open");
+ exit (2);
+ }
+
+ assert (lseek (TLS->binlog_fd, binlog_pos, SEEK_SET) == binlog_pos);
+#if defined(WIN32) || defined(_WIN32)
+ HANDLE h = INVALID_HANDLE_VALUE;
+ DWORD size_lower, size_upper;
+ DWORD err = 0;
+ OVERLAPPED ovlp;
+ int flags = 0;
+
+ h = (HANDLE)_get_osfhandle(TLS->binlog_fd);
+ if (h == INVALID_HANDLE_VALUE) {
+ errno = EBADF;
+ goto error;
+ }
+
+ size_lower = GetFileSize (h, &size_upper);
+ if (size_lower == INVALID_FILE_SIZE) {
+ goto get_err;
+ }
+
+ memset (&ovlp, 0, sizeof ovlp);
+ flags |= LOCKFILE_EXCLUSIVE_LOCK | LOCKFILE_FAIL_IMMEDIATELY;
+
+ if (!LockFileEx (h, flags, 0, size_lower, size_upper, &ovlp)) {
+ goto get_err;
+ }
+ return;
+
+error:
+ perror ("get lock");
+ exit(2);
+
+get_err:
+ err = GetLastError();
+ switch (err)
+ {
+ case ERROR_LOCK_VIOLATION:
+ errno = EAGAIN;
+ break;
+ case ERROR_NOT_ENOUGH_MEMORY:
+ errno = ENOMEM;
+ break;
+ case ERROR_BAD_COMMAND:
+ errno = EINVAL;
+ break;
+ default:
+ errno = err;
+ }
+ goto error;
+#else
+ if (flock (TLS->binlog_fd, LOCK_EX | LOCK_NB) < 0) {
+ perror ("get lock");
+ exit (2);
+ }
+#endif
+}
+
+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));
+ int *ev = talloc (len);
+ memcpy (ev, data, len);
+ rptr = (void *)ev;
+ wptr = rptr + (len / 4);
+ int *in = in_ptr;
+ int *end = in_end;
+ replay_log_event (TLS);
+ if (rptr != wptr) {
+ vlogprintf (E_ERROR, "Unread %"_PRINTF_INT64_"d 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, ev, len) == len);
+ }
+ tfree (ev, len);
+ in_ptr = in;
+ in_end = end;
+}
+
+void bl_do_dc_option_new (struct tgl_state *TLS, int flags, int id, const char *name, int l1, const char *ip, int l2, int port) {
+ struct tgl_dc *DC = TLS->DC_list[id];
+
+ if (DC) {
+ struct tgl_dc_option *O = DC->options[flags & 3];
+ while (O) {
+ if (!strncmp (O->ip, ip, l2)) {
+ return;
+ }
+ O = O->next;
+ }
+ }
+
+ clear_packet ();
+ out_int (CODE_binlog_dc_option_new);
+ out_int (flags);
+ 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_option (struct tgl_state *TLS, int id, const char *name, int l1, const char *ip, int l2, int port) {
+ bl_do_dc_option_new (TLS, 0, id, name, l1, ip, l2, port);
+}
+
+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_dc_signed (struct tgl_state *TLS, int id) {
+ clear_packet ();
+ out_int (CODE_binlog_dc_signed);
+ out_int (id);
+ add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_set_our_id (struct tgl_state *TLS, int id) {
+ if (TLS->our_id) {
+ assert (TLS->our_id == id);
+ return;
+ }
+
+ clear_packet ();
+ out_int (CODE_binlog_our_id);
+ out_int (id);
+ add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_set_dh_params (struct tgl_state *TLS, int root, unsigned char prime[], int version) {
+ clear_packet ();
+ out_int (CODE_binlog_set_dh_params);
+ out_int (root);
+ out_ints ((void *)prime, 64);
+ out_int (version);
+ add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_set_pts (struct tgl_state *TLS, int pts) {
+ if (TLS->locks & TGL_LOCK_DIFF) { return; }
+ if (pts <= TLS->pts) { return; }
+
+ clear_packet ();
+ out_int (CODE_binlog_set_pts);
+ out_int (pts);
+ add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_set_qts (struct tgl_state *TLS, int qts) {
+ if (TLS->locks & TGL_LOCK_DIFF) { return; }
+ if (qts <= TLS->qts) { return; }
+
+ clear_packet ();
+ out_int (CODE_binlog_set_qts);
+ out_int (qts);
+ add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_set_date (struct tgl_state *TLS, int date) {
+ if (TLS->locks & TGL_LOCK_DIFF) { return; }
+ if (date <= TLS->date) { return; }
+
+ clear_packet ();
+ out_int (CODE_binlog_set_date);
+ out_int (date);
+ add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_set_seq (struct tgl_state *TLS, int seq) {
+ if (TLS->locks & TGL_LOCK_DIFF) { return; }
+ if (seq <= TLS->seq) { return; }
+
+ clear_packet ();
+ out_int (CODE_binlog_set_seq);
+ out_int (seq);
+ 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_user_delete (struct tgl_state *TLS, struct tgl_user *U) {
+ if (U->flags & TGLUF_DELETED) { return; }
+
+ clear_packet ();
+ out_int (CODE_binlog_user_delete);
+ out_int (tgl_get_peer_id (U->id));
+ 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 & TGLPF_CREATED) || U->state == sc_deleted || U->state == sc_none) { return; }
+
+ clear_packet ();
+ out_int (CODE_binlog_encr_chat_delete);
+ out_int (tgl_get_peer_id (U->id));
+ add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+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; }
+
+ clear_packet ();
+ out_int (CODE_binlog_chat_add_participant);
+ out_int (tgl_get_peer_id (C->id));
+ out_int (version);
+ out_int (user);
+ out_int (inviter);
+ out_int (date);
+ add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+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; }
+
+ clear_packet ();
+ out_int (CODE_binlog_chat_del_participant);
+ out_int (tgl_get_peer_id (C->id));
+ out_int (version);
+ out_int (user);
+ add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_create_message_new (struct tgl_state *TLS, long long id, int *from_id, int *to_type, int *to_id, int *fwd_from_id, int *fwd_date, int *date, const char *message, int message_len, struct tl_ds_message_media *media, struct tl_ds_message_action *action, int *reply_id, struct tl_ds_reply_markup *reply_markup, int flags) {
+ clear_packet ();
+ assert (!(flags & 0xfffe0000));
+
+ out_int (CODE_binlog_message_new);
+ int *flags_p = packet_ptr;
+ out_int (flags);
+ assert (*flags_p == flags);
+
+ out_long (id);
+
+ if (from_id) {
+ assert (to_type);
+ assert (to_id);
+ (*flags_p) |= (1 << 17);
+ out_int (*from_id);
+ out_int (*to_type);
+ out_int (*to_id);
+ }
+
+ if (fwd_from_id) {
+ assert (fwd_date);
+ (*flags_p) |= (1 << 18);
+ out_int (*fwd_from_id);
+ out_int (*fwd_date);
+ }
+
+ if (date) {
+ (*flags_p) |= (1 << 19);
+ out_int (*date);
+ }
+
+ if (message) {
+ (*flags_p) |= (1 << 20);
+ out_cstring (message, message_len);
+ }
+
+ if (media) {
+ (*flags_p) |= (1 << 21);
+ store_ds_type_message_media (media, TYPE_TO_PARAM (message_media));
+ }
+
+ if (action) {
+ (*flags_p) |= (1 << 22);
+
+ store_ds_type_message_action (action, TYPE_TO_PARAM (message_action));
+ }
+
+ if (reply_id) {
+ (*flags_p) |= (1 << 23);
+ out_int (*reply_id);
+ }
+
+ if (reply_markup) {
+ (*flags_p) |= (1 << 24);
+ store_ds_type_reply_markup (reply_markup, TYPE_TO_PARAM (reply_markup));
+ }
+
+ add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_create_message_encr_new (struct tgl_state *TLS, long long id, int *from_id, int *to_type, int *to_id, int *date, const char *message, int message_len, struct tl_ds_decrypted_message_media *media, struct tl_ds_decrypted_message_action *action, struct tl_ds_encrypted_file *file, int flags) {
+ clear_packet ();
+ assert (!(flags & 0xfffe0000));
+
+ out_int (CODE_binlog_message_encr_new);
+ int *flags_p = packet_ptr;
+ out_int (flags);
+ assert (flags & TGLMF_ENCRYPTED);
+ assert (*flags_p == flags);
+
+ out_long (id);
+
+ if (from_id) {
+ assert (to_id);
+ assert (to_type);
+ (*flags_p) |= (1 << 17);
+ out_int (*from_id);
+ out_int (*to_type);
+ out_int (*to_id);
+ }
+
+ if (date) {
+ (*flags_p) |= (1 << 19);
+ out_int (*date);
+ }
+
+ if (message) {
+ (*flags_p) |= (1 << 20);
+ out_cstring (message, message_len);
+ }
+
+ if (media) {
+ (*flags_p) |= (1 << 21);
+ store_ds_type_decrypted_message_media (media, TYPE_TO_PARAM (decrypted_message_media));
+ }
+
+ if (action) {
+ (*flags_p) |= (1 << 22);
+ store_ds_type_decrypted_message_action (action, TYPE_TO_PARAM (decrypted_message_action));
+ }
+
+ if (file) {
+ (*flags_p) |= (1 << 23);
+ store_ds_type_encrypted_file (file, TYPE_TO_PARAM (encrypted_file));
+ }
+
+ add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_message_delete (struct tgl_state *TLS, struct tgl_message *M) {
+ clear_packet ();
+ out_int (CODE_binlog_message_delete);
+ out_long (M->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_new (struct tgl_state *TLS, struct tgl_secret_chat *E, long long *exchange_id, const void *key, int *state) {
+ clear_packet ();
+
+ out_int (CODE_binlog_encr_chat_exchange_new);
+ out_int (tgl_get_peer_id (E->id));
+
+ int *flags_p = packet_ptr;
+ out_int (0);
+
+ if (exchange_id) {
+ *flags_p |= (1 << 17);
+ out_long (*exchange_id);
+ }
+
+ if (key) {
+ *flags_p |= (1 << 18);
+ out_ints ((void *)key, 64);
+ }
+
+ if (state) {
+ *flags_p |= (1 << 19);
+ out_int (*state);
+ }
+ add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_set_auth_key (struct tgl_state *TLS, int num, unsigned char *buf) {
+ int *ev = alloc_log_event (8 + 8 + 256);
+ ev[0] = CODE_binlog_auth_key;
+ ev[1] = num;
+ //*(long long *)(ev + 2) = fingerprint;
+ memcpy (ev + 2, buf, 256);
+ add_log_event (TLS, ev, 8 + 256);
+}
+
+void bl_do_user_new (struct tgl_state *TLS, int id, long long *access_hash, const char *first_name, int first_name_len, const char *last_name, int last_name_len, const char *phone, int phone_len, const char *username, int username_len, struct tl_ds_photo *photo, const char *real_first_name, int real_first_name_len, const char *real_last_name, int real_last_name_len, struct tl_ds_user_profile_photo *profile_photo, int *last_read_in, int *last_read_out, struct tl_ds_bot_info *bot_info, int flags) {
+ tgl_peer_t *PP = tgl_peer_get (TLS, TGL_MK_USER (id));
+ struct tgl_user *P = &PP->user;
+
+ if (flags == TGL_FLAGS_UNCHANGED) {
+ flags = P->flags & 0xffff;
+ }
+
+ clear_packet ();
+ out_int (CODE_binlog_user_new);
+
+ int *flags_p = packet_ptr;
+
+ assert (!(flags & 0xfffe0000));
+ out_int (flags);
+ out_int (id);
+
+ if (access_hash) {
+ if (!P || P->access_hash != *access_hash) {
+ out_long (*access_hash);
+ (*flags_p) |= (1 << 17);
+ }
+ }
+
+ if (first_name) {
+ if (!P || !P->first_name || !P->last_name || mystreq1 (P->first_name, first_name, first_name_len) || mystreq1 (P->last_name, last_name, last_name_len)) {
+ out_cstring (first_name, first_name_len);
+ out_cstring (last_name, last_name_len);
+
+ (*flags_p) |= (1 << 18);
+ }
+ }
+
+ if (phone) {
+ if (!P || !P->phone || mystreq1 (P->phone, phone, phone_len)) {
+ out_cstring (phone, phone_len);
+ (*flags_p) |= (1 << 19);
+ }
+ }
+
+ if (username) {
+ if (!P || !P->username || mystreq1 (P->username, username, username_len)) {
+ out_cstring (username, username_len);
+ (*flags_p) |= (1 << 20);
+ }
+ }
+
+ if (photo) {
+ if (!P || !P->photo || P->photo->id != DS_LVAL (photo->id)) {
+ store_ds_type_photo (photo, TYPE_TO_PARAM (photo));
+ (*flags_p) |= (1 << 21);
+ }
+ }
+
+ if (real_first_name) {
+ assert (real_last_name);
+ if (!P || !P->real_first_name || !P->real_last_name || mystreq1 (P->real_first_name, real_first_name, real_first_name_len) || mystreq1 (P->real_last_name, real_last_name, real_last_name_len)) {
+ out_cstring (real_first_name, real_first_name_len);
+ out_cstring (real_last_name, real_last_name_len);
+
+ (*flags_p) |= (1 << 22);
+ }
+ }
+
+ if (profile_photo) {
+ if (!P || P->photo_id != DS_LVAL (profile_photo->photo_id)) {
+ store_ds_type_user_profile_photo (profile_photo, TYPE_TO_PARAM (user_profile_photo));
+ (*flags_p) |= (1 << 23);
+ }
+ }
+
+ if (last_read_in) {
+ if (!P || P->last_read_in < *last_read_in) {
+ out_int (*last_read_in);
+ (*flags_p) |= (1 << 24);
+ }
+ }
+
+ if (last_read_out) {
+ if (!P || P->last_read_out < *last_read_out) {
+ out_int (*last_read_out);
+ (*flags_p) |= (1 << 25);
+ }
+ }
+
+ if (bot_info) {
+ if (!P || !P->bot_info || P->bot_info->version != DS_LVAL (bot_info->version)) {
+ store_ds_type_bot_info (bot_info, TYPE_TO_PARAM (bot_info));
+ (*flags_p) |= (1 << 26);
+ }
+ }
+
+ if (((*flags_p) & 0xffff0000) || !P || (P->flags & 0xffff) != flags) {
+ add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+ }
+}
+
+void bl_do_chat_new (struct tgl_state *TLS, int id, const char *title, int title_len, int *user_num, int *date, int *version, struct tl_ds_vector *participants, struct tl_ds_chat_photo *chat_photo, struct tl_ds_photo *photo, int *admin, int *last_read_in, int *last_read_out, int flags) {
+ tgl_peer_t *PP = tgl_peer_get (TLS, TGL_MK_CHAT (id));
+ struct tgl_chat *P = &PP->chat;
+
+ if (flags == TGL_FLAGS_UNCHANGED) {
+ flags = P ? (P->flags & 0xffff) : 0;
+ }
+
+ clear_packet ();
+ out_int (CODE_binlog_chat_new);
+
+ int *flags_p = packet_ptr;
+
+ assert (!(flags & 0xfffe0000));
+ out_int (flags);
+ out_int (id);
+
+ if (title) {
+ if (!P || !P->title || mystreq1 (P->title, title, title_len)) {
+ out_cstring (title, title_len);
+ (*flags_p) |= (1 << 17);
+ }
+ }
+
+ if (user_num) {
+ if (!P || P->users_num != *user_num) {
+ out_int (*user_num);
+ (*flags_p) |= (1 << 18);
+ }
+ }
+
+ if (date) {
+ if (!P || P->date != *date) {
+ out_int (*date);
+ (*flags_p) |= (1 << 19);
+ }
+ }
+
+ if (version) {
+ assert (participants);
+ if (!P || *version != P->version) {
+ out_int (*version);
+ store_ds_type_vector (participants, TYPE_TO_PARAM_1 (vector, TYPE_TO_PARAM (chat_participant)));
+ (*flags_p) |= (1 << 20);
+ }
+ }
+
+ if (chat_photo && chat_photo->photo_big) {
+ if (!P || DS_LVAL (chat_photo->photo_big->secret) != P->photo_big.secret) {
+ store_ds_type_chat_photo (chat_photo, TYPE_TO_PARAM (chat_photo));
+ (*flags_p) |= (1 << 21);
+ }
+ }
+
+ if (photo) {
+ if (!P || !P->photo || P->photo->id != DS_LVAL (photo->id)) {
+ store_ds_type_photo (photo, TYPE_TO_PARAM (photo));
+ (*flags_p) |= (1 << 22);
+ }
+ }
+
+ if (admin) {
+ if (!P || P->admin_id != *admin) {
+ out_int (*admin);
+ (*flags_p) |= (1 << 23);
+ }
+ }
+
+ if (last_read_in) {
+ if (!P || P->last_read_in < *last_read_in) {
+ out_int (*last_read_in);
+ (*flags_p) |= (1 << 24);
+ }
+ }
+
+ if (last_read_out) {
+ if (!P || P->last_read_out < *last_read_out) {
+ out_int (*last_read_out);
+ (*flags_p) |= (1 << 25);
+ }
+ }
+
+ if (((*flags_p) & 0xffff0000) || !P || (P->flags & 0xffff) != flags) {
+ add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+ }
+}
+
+void bl_do_encr_chat_new (struct tgl_state *TLS, int id, long long *access_hash, int *date, int *admin, int *user_id, void *key, void *g_key, void *first_key_id, int *state, int *ttl, int *layer, int *in_seq_no, int *last_in_seq_no, int *out_seq_no, long long *key_fingerprint, int flags) {
+ tgl_peer_t *PP = tgl_peer_get (TLS, TGL_MK_ENCR_CHAT (id));
+ struct tgl_secret_chat *P = PP ? &PP->encr_chat : NULL;
+
+ if (flags == TGL_FLAGS_UNCHANGED) {
+ flags = P->flags & 0xffff;
+ }
+
+ clear_packet ();
+ out_int (CODE_binlog_encr_chat_new);
+
+ int *flags_p = packet_ptr;
+
+ assert (!(flags & 0xfffe0000));
+ out_int (flags);
+ out_int (id);
+
+ if (access_hash) {
+ if (!P || P->access_hash != *access_hash) {
+ out_long (*access_hash);
+ (*flags_p) |= (1 << 17);
+ }
+ }
+
+ if (date) {
+ if (!P || P->date != *date) {
+ out_int (*date);
+ (*flags_p) |= (1 << 18);
+ }
+ }
+
+ if (admin) {
+ if (!P || P->admin_id != *admin) {
+ out_int (*admin);
+ (*flags_p) |= (1 << 19);
+ }
+ }
+
+ if (user_id) {
+ if (!P || P->user_id != *user_id) {
+ out_int (*user_id);
+ (*flags_p) |= (1 << 20);
+ }
+ }
+
+ if (key) {
+ if (!P || memcmp (P->key, key, 256)) {
+ out_ints (key, 64);
+ (*flags_p) |= (1 << 21);
+ }
+ }
+
+ if (g_key) {
+ if (!P || !P->g_key || memcmp (P->g_key, g_key, 256)) {
+ out_ints (g_key, 64);
+ (*flags_p) |= (1 << 22);
+ }
+ }
+
+ if (state) {
+ if (!P || (int)P->state != *state) {
+ out_int (*state);
+ (*flags_p) |= (1 << 23);
+ }
+ }
+
+ if (ttl) {
+ if (!P || P->ttl != *ttl) {
+ out_int (*ttl);
+ (*flags_p) |= (1 << 24);
+ }
+ }
+
+ if (layer) {
+ if (!P || P->layer != *layer) {
+ out_int (*layer);
+ (*flags_p) |= (1 << 25);
+ }
+ }
+
+ if (in_seq_no || last_in_seq_no || out_seq_no) {
+ if (!P || (in_seq_no && P->in_seq_no != *in_seq_no) ||
+ (out_seq_no && P->out_seq_no != *out_seq_no) ||
+ (last_in_seq_no && P->last_in_seq_no != *last_in_seq_no)) {
+
+ out_int (in_seq_no ? *in_seq_no : P ? P->in_seq_no : 0);
+ out_int (last_in_seq_no ? *last_in_seq_no : P ? P->last_in_seq_no : 0);
+ out_int (out_seq_no ? *out_seq_no : P ? P->out_seq_no : 0);
+ (*flags_p) |= (1 << 26);
+ }
+ }
+
+ if (key_fingerprint) {
+ if (!P || P->key_fingerprint != *key_fingerprint) {
+ out_long (*key_fingerprint);
+ (*flags_p) |= (1 << 27);
+ }
+ }
+
+ if (((*flags_p) & 0xffff0000) || !P || (P->flags & 0xffff) != flags) {
+ add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+ }
+}
diff --git a/libs/tgl/src/binlog.tl b/libs/tgl/src/binlog.tl
new file mode 100644
index 0000000000..a0c52424d7
--- /dev/null
+++ b/libs/tgl/src/binlog.tl
@@ -0,0 +1,102 @@
+---types---
+
+binlog.encrKey key:64*[int] = binlog.EncrKey;
+
+binlog.start = binlog.Update;
+
+binlog.dcOption dc:int name:string ip:string port:int = binlog.Update;
+binlog.dcOptionNew flags:int dc:int name:string ip:string port:int = binlog.Update;
+
+binlog.authKey dc:int key:%binlog.EncrKey = binlog.Update;
+binlog.defaultDc dc:int = binlog.Update;
+binlog.dcSigned dc:int = binlog.Update;
+
+binlog.ourId id:int = binlog.Update;
+
+binlog.setDhParams root:int prime:%binlog.EncrKey version:int = binlog.Update;
+
+binlog.setPts pts:int = binlog.Update;
+binlog.setQts qts:int = binlog.Update;
+binlog.setDate date:int = binlog.Update;
+binlog.setSeq seq:int = binlog.Update;
+
+binlog.encrChatDelete id:int = binlog.Update;
+binlog.encrChatNew#84977251 flags:# id:int
+ access_hash:flags.17?long
+ date:flags.18?int
+ admin:flags.19?int
+ user_id:flags.20?int
+ key:flags.21?%binlog.EncrKey
+ g_key:flags.22?%binlog.EncrKey
+ state:flags.23?int
+ ttl:flags.24?int
+ layer:flags.25?int
+ in_seq_no:flags.26?int last_in_seq_no:flags.26?int out_seq_no:flags.26?int
+ key_fingerprint:flags.27?long
+ = binlog.Update;
+
+binlog.encrChatExchangeNew#9d49488d flags:# id:int
+ exchange_id:flags.17?long
+ key:flags.18?%binlog.EncrKey
+ state:flags.19?int
+ = binlog.Update;
+
+binlog.userDelete id:int = binlog.Update;
+binlog.userNew#127cf2f9 flags:# id:int
+ access_hash:flags.17?long
+ first_name:flags.18?string last_name:flags.18?string
+ phone:flags.19?string
+ username:flags.20?string
+ photo:flags.21?Photo
+ real_first_name:flags.22?string real_last_name:flags.22?string
+ user_photo:flags.23?UserProfilePhoto
+ last_read_in:flags.24?int
+ last_read_out:flags.25?int
+ bot_info:flags.26?BotInfo
+ = binlog.Update;
+
+binlog.chatNew#0a10aa92 flags:# id:int
+ title:flags.17?string
+ user_num:flags.18?int
+ date:flags.19?int
+ version:flags.20?int participants:flags.20?(Vector ChatParticipant)
+ chat_photo:flags.21?ChatPhoto
+ photo:flags.22?Photo
+ admin:flags.23?int
+ last_read_in:flags.24?int
+ last_read_out:flags.25?int
+ = binlog.Update;
+
+binlog.chatAddParticipant id:int version:int user_id:int inviter_id:int date:int = binlog.Update;
+binlog.chatDelParticipant id:int version:int user_id:int = binlog.Update;
+
+binlog.setMsgId old_id:long new_id:int = binlog.Update;
+binlog.messageDelete lid:long = binlog.Update;
+
+binlog.messageNew#427cfcdb flags:# lid:long
+ from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int
+ fwd_from_id:flags.18?int fwd_date:flags.18?int
+ date:flags.19?int
+ message:flags.20?string
+ media:flags.21?MessageMedia
+ action:flags.22?MessageAction
+ reply_id:flags.23?int
+ reply_markup:flags.24?ReplyMarkup
+ = binlog.Update;
+
+binlog.messageEncrNew#6cf7cabc flags:# lid:long
+ from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int
+ //empty 18 bit
+ date:flags.19?int
+ message:flags.20?string
+ encr_media:flags.21?DecryptedMessageMedia
+ encr_action:flags.22?DecryptedMessageAction
+ file:flags.23?EncryptedFile
+ = binlog.Update;
+
+binlog.msgUpdate#6dd4d85f lid:long = binlog.Update;
+
+binlog.resetAuthorization = binlog.Update;
+
+
+---functions---
diff --git a/libs/tgl/src/config.h b/libs/tgl/src/config.h
new file mode 100644
index 0000000000..eaca5156db
--- /dev/null
+++ b/libs/tgl/src/config.h
@@ -0,0 +1,162 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* disable extf queries */
+// #undef DISABLE_EXTF
+
+/* Use libevent v1 */
+//#undef EVENT_V1
+
+/* Use libevent v2 */
+#define EVENT_V2 1
+
+/* Define to 1 if you have the `alarm' function. */
+// #undef HAVE_ALARM
+
+/* Define to 1 if you have the <arpa/inet.h> header file. */
+// #undef HAVE_ARPA_INET_H
+
+/* Define to 1 if you have the `endpwent' function. */
+// #undef HAVE_ENDPWENT
+
+/* Define to 1 if you have the <execinfo.h> header file. */
+// #undef HAVE_EXECINFO_H
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `event' library (-levent). */
+// #undef HAVE_LIBEVENT
+
+/* Define to 1 if you have the `m' library (-lm). */
+#define HAVE_LIBM 1
+
+/* Define to 1 if you have `z' library (-lz) */
+#define HAVE_LIBZ 1
+
+/* Define to 1 if you have the <mach/mach.h> header file. */
+// #undef HAVE_MACH_MACH_H
+
+/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
+ to 0 otherwise. */
+#define HAVE_MALLOC 1
+
+/* Define to 1 if you have the <malloc.h> header file. */
+#define HAVE_MALLOC_H 1
+
+/* Define to 1 if you have the `memmove' function. */
+#define HAVE_MEMMOVE 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `memset' function. */
+#define HAVE_MEMSET 1
+
+/* Define to 1 if you have the `mkdir' function. */
+#define HAVE_MKDIR 1
+
+/* Define to 1 if you have the <netdb.h> header file. */
+// #undef HAVE_NETDB_H
+
+/* Define to 1 if you have the <netinet/in.h> header file. */
+// #undef HAVE_NETINET_IN_H
+
+/* Define to 1 if your system has a GNU libc compatible `realloc' function,
+ and to 0 otherwise. */
+#define HAVE_REALLOC 1
+
+/* Define to 1 if you have the `select' function. */
+#define HAVE_SELECT 1
+
+/* Define to 1 if you have the `socket' function. */
+#define HAVE_SOCKET 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strdup' function. */
+#define HAVE_STRDUP 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+// #undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strndup' function. */
+#define HAVE_STRNDUP 1
+
+/* Define to 1 if you have the <sys/file.h> header file. */
+// #undef HAVE_SYS_FILE_H
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+// #undef HAVE_SYS_SOCKET_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <termios.h> header file. */
+// #undef HAVE_TERMIOS_H
+
+/* Define to 1 if you have the `uname' function. */
+// #undef HAVE_UNAME
+
+/* Define to 1 if you have the <unistd.h> header file. */
+// #undef HAVE_UNISTD_H
+
+/* Define to 1 if the system has the `__builtin_bswap32' built-in function */
+// #undef HAVE___BUILTIN_BSWAP32
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "telegram-cli"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "telegram-cli 1.0"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "telegram-cli"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.0"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* fixed for correct valgrind work */
+// #undef VALGRIND_FIXES
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#define gid_t int
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+ calls it, or to nothing if 'inline' is not supported under any name. */
+#ifndef __cplusplus
+#define inline __inline
+#endif
+
+/* Define to rpl_malloc if the replacement function should be used. */
+// #undef malloc
+
+/* Define to rpl_realloc if the replacement function should be used. */
+// #undef realloc
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+// #undef size_t
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#define uid_t int
diff --git a/libs/tgl/src/encrypted_scheme.tl b/libs/tgl/src/encrypted_scheme.tl
new file mode 100644
index 0000000000..6fff5b6a55
--- /dev/null
+++ b/libs/tgl/src/encrypted_scheme.tl
@@ -0,0 +1 @@
+encrypted_scheme23.tl \ No newline at end of file
diff --git a/libs/tgl/src/encrypted_scheme16.tl b/libs/tgl/src/encrypted_scheme16.tl
new file mode 100644
index 0000000000..eb58ed4475
--- /dev/null
+++ b/libs/tgl/src/encrypted_scheme16.tl
@@ -0,0 +1,22 @@
+---types---
+decryptedMessageLayer#99a438cf layer:int message:DecryptedMessage = DecryptedMessageLayer;
+decryptedMessage#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
+decryptedMessageService#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
+decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia;
+decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+//decryptedMessageMediaVideo#4cee6ef3 thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaGeoPoint#35480a59 lat:double long:double = DecryptedMessageMedia;
+decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
+decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction;
+
+decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+//decryptedMessageMediaAudio#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+
+decryptedMessageMediaVideo#524a415d thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageActionReadMessages#c4f40be random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionDeleteMessages#65614304 random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction;
+decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction;
+---functions---
diff --git a/libs/tgl/src/encrypted_scheme17.tl b/libs/tgl/src/encrypted_scheme17.tl
new file mode 100644
index 0000000000..95e661bda5
--- /dev/null
+++ b/libs/tgl/src/encrypted_scheme17.tl
@@ -0,0 +1,31 @@
+---types---
+decryptedMessageLayer#1be31789 layer:int message:DecryptedMessage = DecryptedMessageLayer;
+decryptedMessage_l16#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
+decryptedMessageService_l16#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
+
+decryptedMessage#204d3878 in_seq_no:int out_seq_no:int ttl:int random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
+decryptedMessageService#73164160 in_seq_no:int out_seq_no:int random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
+
+decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia;
+decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+//decryptedMessageMediaVideo#4cee6ef3 thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaGeoPoint#35480a59 lat:double long:double = DecryptedMessageMedia;
+decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
+decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction;
+
+decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+//decryptedMessageMediaAudio#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+
+decryptedMessageMediaVideo#524a415d thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageActionReadMessages#c4f40be random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionDeleteMessages#65614304 random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction;
+decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction;
+
+decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction;
+
+decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction;
+
+---functions---
diff --git a/libs/tgl/src/encrypted_scheme18.tl b/libs/tgl/src/encrypted_scheme18.tl
new file mode 100644
index 0000000000..134f719973
--- /dev/null
+++ b/libs/tgl/src/encrypted_scheme18.tl
@@ -0,0 +1,38 @@
+---types---
+decryptedMessageLayer#1be31789 layer:int message:DecryptedMessage = DecryptedMessageLayer;
+decryptedMessage_l16#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
+decryptedMessageService_l16#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
+
+decryptedMessage#204d3878 in_seq_no:int out_seq_no:int ttl:int random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
+decryptedMessageService#73164160 in_seq_no:int out_seq_no:int random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
+
+decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia;
+decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+//decryptedMessageMediaVideo#4cee6ef3 thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaGeoPoint#35480a59 latitude:double longitude:double = DecryptedMessageMedia;
+decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
+decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction;
+
+decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+//decryptedMessageMediaAudio#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+
+decryptedMessageMediaVideo#524a415d thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageActionReadMessages#c4f40be random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionDeleteMessages#65614304 random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction;
+decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction;
+
+decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction;
+
+decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction;
+
+decryptedMessageActionRequestKey exchange_id:long g_a:string = DecryptedMessageAction;
+decryptedMessageActionAcceptKey exchange_id:long g_b:string key_fingerprint:long = DecryptedMessageAction;
+decryptedMessageActionCommitKey exchange_id:long key_fingerprint:long = DecryptedMessageAction;
+decryptedMessageActionAbortKey exchange_id:long = DecryptedMessageAction;
+decryptedMessageActionNoop = DecryptedMessageAction;
+
+
+---functions---
diff --git a/libs/tgl/src/encrypted_scheme23.tl b/libs/tgl/src/encrypted_scheme23.tl
new file mode 100644
index 0000000000..ae31312de1
--- /dev/null
+++ b/libs/tgl/src/encrypted_scheme23.tl
@@ -0,0 +1,29 @@
+---types---
+decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia;
+decryptedMessageMediaPhoto#32798a8c str_thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaGeoPoint#35480a59 latitude:double longitude:double = DecryptedMessageMedia;
+decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
+decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction;
+decryptedMessageMediaDocument#b095434b str_thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageActionReadMessages#c4f40be random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionDeleteMessages#65614304 random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction;
+
+decryptedMessage#204d3878 random_id:long ttl:int message:string media:DecryptedMessageMedia = DecryptedMessage;
+decryptedMessageService#73164160 random_id:long action:DecryptedMessageAction = DecryptedMessage;
+decryptedMessageMediaVideo#524a415d str_thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageLayer#1be31789 random_bytes:bytes layer:int in_seq_no:int out_seq_no:int message:DecryptedMessage = DecryptedMessageLayer;
+decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction;
+decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction;
+decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction;
+
+decryptedMessageActionRequestKey#f3c9611b exchange_id:long g_a:bytes = DecryptedMessageAction;
+decryptedMessageActionAcceptKey#6fe1735b exchange_id:long g_b:bytes key_fingerprint:long = DecryptedMessageAction;
+decryptedMessageActionAbortKey#dd05ec6b exchange_id:long = DecryptedMessageAction;
+decryptedMessageActionCommitKey#ec2e0b9b exchange_id:long key_fingerprint:long = DecryptedMessageAction;
+decryptedMessageActionNoop#a82fdd63 = DecryptedMessageAction;
+
+decryptedMessageMediaExternalDocument#fa95b0dd id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = DecryptedMessageMedia;
+---functions---
diff --git a/libs/tgl/src/errors b/libs/tgl/src/errors
new file mode 100644
index 0000000000..481a144737
--- /dev/null
+++ b/libs/tgl/src/errors
@@ -0,0 +1,11 @@
+type of errors that tgl can set:
+
+EPROTO: server returned error for query. Some kinds of error (such as FLOOD_WAIT) tgl can handle by itself, but others it can not. In most cases it means bug in tgl or invalid parameter supplied to method (such as message id).
+
+EINVAL: tgl detected invalid argument supplied before sending query to server. For example user instead of chat or bad msg id.
+
+ENOENT: tgl received empty response from server. For example when user tried to get message by id
+
+EBADF: tgl can not open file on disk or file is empty
+
+E2BIG: supplied file is too big
diff --git a/libs/tgl/src/event-old.h b/libs/tgl/src/event-old.h
new file mode 100644
index 0000000000..b920e68f02
--- /dev/null
+++ b/libs/tgl/src/event-old.h
@@ -0,0 +1,48 @@
+#ifndef __EVENT_OLD_H__
+#define __EVENT_OLD_H__
+
+#include <assert.h>
+#include <stdlib.h>
+
+#define BEV_EVENT_READ EVBUFFER_READ
+#define BEV_EVENT_WRITE EVBUFFER_WRITE
+#define BEV_EVENT_EOF EVBUFFER_EOF
+#define BEV_EVENT_ERROR EVBUFFER_ERROR
+#define BEV_EVENT_TIMEOUT EVBUFFER_TIMEOUT
+
+typedef int evutil_socket_t;
+
+static inline struct event *event_new (struct event_base *base, int fd, int what, void(*callback)(int, short, void *), void *arg) __attribute__ ((unused));
+static inline struct event *event_new (struct event_base *base, int fd, int what, void(*callback)(int, short, void *), void *arg) {
+ struct event *ev = malloc (sizeof (*ev));
+ event_set (ev, fd, what, callback, arg);
+ event_base_set (base, ev);
+ return ev;
+}
+
+static inline struct event *evtimer_new (struct event_base *base, void(*callback)(int, short, void *), void *arg) __attribute__ ((unused));
+static inline struct event *evtimer_new (struct event_base *base, void(*callback)(int, short, void *), void *arg) {
+ struct event *ev = malloc (sizeof (*ev));
+ event_set (ev, -1, 0, callback, arg);
+ event_base_set (base, ev);
+ return ev;
+}
+
+static void event_free (struct event *ev) __attribute__ ((unused));
+static void event_free (struct event *ev) {
+ event_del (ev);
+ free (ev);
+}
+
+static struct bufferevent *bufferevent_socket_new (struct event_base *base, int fd, int flags) __attribute__ ((unused));
+static struct bufferevent *bufferevent_socket_new (struct event_base *base, int fd, int flags) {
+ assert (!flags);
+ struct bufferevent *bev = bufferevent_new(fd, 0, 0, 0, 0);
+ bufferevent_base_set (base, bev);
+ return bev;
+}
+
+static inline void *event_get_callback_arg(const struct event *ev) {
+ return ev->ev_arg;
+}
+#endif
diff --git a/libs/tgl/src/generate.c b/libs/tgl/src/generate.c
new file mode 100644
index 0000000000..68bf30272d
--- /dev/null
+++ b/libs/tgl/src/generate.c
@@ -0,0 +1,3219 @@
+/*
+ This file is part of tgl-libary/generate
+
+ Tgl-library/generate 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.
+
+ Tgl-library/generate 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 tgl-library/generate. If not, see <http://www.gnu.org/licenses/>.
+
+ Copyright Vitaly Valtman 2014-2015
+
+ It is derivative work of VK/KittenPHP-DB-Engine (https://github.com/vk-com/kphp-kdb/)
+ Copyright 2012-2013 Vkontakte Ltd
+ 2012-2013 Vitaliy Valtman
+*/
+
+#define _GNU_SOURCE
+
+#include "config.h"
+#include <stdio.h>
+#include <signal.h>
+#ifdef HAVE_EXECINFO_H
+#include <execinfo.h>
+#endif
+#if defined(WIN32) || defined(_WIN32)
+#include <io.h>
+#include <stdint.h>
+#include <string.h>
+#ifndef __MINGW32__
+#include "wingetopt.h"
+#endif
+#else
+#include <unistd.h>
+#endif
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <share.h>
+#include <assert.h>
+#include <string.h>
+
+#include "..\tl-parser\src\tl-tl.h"
+#include "generate.h"
+
+#include "tree.h"
+
+int header;
+
+#if defined(WIN32) || defined(_WIN32)
+char* strndup(const char* str, size_t n) {
+ size_t len = n;
+ const char *end = memchr(str, '\0', n);
+ if (end)
+ len = end - str;
+
+ char* dupstr = malloc(len + 1);
+ if (dupstr != NULL) {
+ memcpy(dupstr, str, len);
+ dupstr[len] = '\0';
+ }
+ return dupstr;
+}
+
+#define lrand48() rand()
+#define _PRINTF_INT64_ "I64"
+#else
+#define _PRINTF_INT64_ "ll"
+#endif
+
+#define tl_type_name_cmp(a,b) (a->name > b->name ? 1 : a->name < b->name ? -1 : 0)
+
+DEFINE_TREE (tl_type, struct tl_type *, tl_type_name_cmp, 0)
+DEFINE_TREE (tl_combinator, struct tl_combinator *, tl_type_name_cmp, 0)
+
+struct tree_tl_type *type_tree;
+struct tree_tl_combinator *function_tree;
+
+void tl_function_insert_by_name (struct tl_combinator *c) {
+ function_tree = tree_insert_tl_combinator (function_tree, c, lrand48 ());
+}
+
+struct tl_type *tl_type_get_by_name (int name) {
+ static struct tl_type t;
+ t.name = name;
+
+ return tree_lookup_tl_type (type_tree, &t);
+}
+
+void tl_type_insert_by_name (struct tl_type *t) {
+ type_tree = tree_insert_tl_type (type_tree, t, lrand48 ());
+}
+
+int is_empty (struct tl_type *t) {
+ if (t->name == NAME_INT || t->name == NAME_LONG || t->name == NAME_DOUBLE || t->name == NAME_STRING) { return 1; }
+ if (t->constructors_num != 1) { return 0; }
+ int count = 0;
+ int i;
+ struct tl_combinator *c = t->constructors[0];
+ for (i = 0; i < c->args_num; i++) {
+ if (!(c->args[i]->flags & FLAG_OPT_VAR)) { count ++; }
+ }
+ return count == 1;
+}
+
+
+static char buf[1 << 20];
+int buf_size;
+int *buf_ptr = (int *)buf;
+int *buf_end;
+#ifndef DISABLE_EXTF
+int skip_only = 0;
+#else
+int skip_only = 1;
+#endif
+
+int verbosity;
+
+int get_int (void) {
+ assert (buf_ptr < buf_end);
+ return *(buf_ptr ++);
+}
+
+long long get_long (void) {
+ assert (buf_ptr + 1 < buf_end);
+ long long r = *(long long *)buf_ptr;
+ buf_ptr += 2;
+ return r;
+}
+
+static void *malloc0 (int size) {
+ void *r = malloc (size);
+ assert (r);
+ memset (r, 0, size);
+ return r;
+}
+
+char *get_string (void) {
+ int l = *(unsigned char *)buf_ptr;
+ assert (l != 0xff);
+
+ char *res;
+ int tlen = 0;
+ if (l == 0xfe) {
+ l = ((unsigned)get_int ()) >> 8;
+ res = (char *)buf_ptr;
+ tlen = l;
+ } else {
+ res = ((char *)buf_ptr) + 1;
+ tlen = 1 + l;
+ }
+
+ int len = l;
+
+ tlen += ((-tlen) & 3);
+ assert (!(tlen & 3));
+
+ buf_ptr += tlen / 4;
+ assert (buf_ptr <= buf_end);
+
+ char *r = strndup (res, len);
+ assert (r);
+ return r;
+}
+
+
+int tn, fn, cn;
+struct tl_type **tps;
+struct tl_combinator **fns;
+
+struct tl_tree *read_tree (int *var_num);
+struct tl_tree *read_nat_expr (int *var_num);
+struct tl_tree *read_type_expr (int *var_num);
+int read_args_list (struct arg **args, int args_num, int *var_num);
+
+#define use_var_nat_full_form(x) 0
+
+void *int_to_var_nat_const_init (long long x) {
+ if (use_var_nat_full_form (x)) {
+ struct tl_tree_nat_const *T = malloc (sizeof (*T));
+ assert (T);
+ T->self.flags = 0;
+ T->self.methods = &tl_pnat_const_full_methods;
+ T->value = x;
+ return T;
+ } else {
+ return (void *)(long)(x * 2 - 0x80000001l);
+ }
+}
+
+long long var_nat_const_to_int (void *x) {
+ if (((long)x) & 1) {
+ return (((long)x) + 0x80000001l) / 2;
+ } else {
+ return ((struct tl_tree_nat_const *)x)->value;
+ }
+}
+
+int tl_tree_type_type (struct tl_tree *x) {
+ return NODE_TYPE_TYPE;
+}
+
+int tl_tree_type_array (struct tl_tree *x) {
+ return NODE_TYPE_ARRAY;
+}
+
+int tl_tree_type_nat_const (struct tl_tree *x) {
+ return NODE_TYPE_NAT_CONST;
+}
+
+int tl_tree_type_var_num (struct tl_tree *x) {
+ return NODE_TYPE_VAR_NUM;
+}
+
+int tl_tree_type_var_type (struct tl_tree *x) {
+ return NODE_TYPE_VAR_TYPE;
+}
+
+struct tl_tree_methods tl_var_num_methods = {
+ .type = tl_tree_type_var_num
+};
+
+struct tl_tree_methods tl_var_type_methods = {
+ .type = tl_tree_type_var_type
+};
+
+struct tl_tree_methods tl_type_methods = {
+ .type = tl_tree_type_type
+};
+
+struct tl_tree_methods tl_nat_const_methods = {
+ .type = tl_tree_type_nat_const
+};
+
+struct tl_tree_methods tl_array_methods = {
+ .type = tl_tree_type_array
+};
+
+struct tl_tree_methods tl_ptype_methods = {
+ .type = tl_tree_type_type
+};
+
+struct tl_tree_methods tl_parray_methods = {
+ .type = tl_tree_type_array
+};
+
+struct tl_tree_methods tl_pvar_num_methods = {
+ .type = tl_tree_type_var_num
+};
+
+struct tl_tree_methods tl_pvar_type_methods = {
+ .type = tl_tree_type_var_type
+};
+
+struct tl_tree_methods tl_nat_const_full_methods = {
+ .type = tl_tree_type_nat_const
+};
+
+struct tl_tree_methods tl_pnat_const_full_methods = {
+ .type = tl_tree_type_nat_const
+};
+
+struct tl_tree *read_num_const (int *var_num) {
+ return (void *)int_to_var_nat_const_init (get_int ());
+}
+
+
+void print_c_type_name (struct tl_tree *t, char *offset, int in) {
+ int x = TL_TREE_METHODS(t)->type (t);
+
+ if (x == NODE_TYPE_VAR_TYPE) {
+ printf ("void *");
+ return;
+ }
+
+ if (x == NODE_TYPE_ARRAY) {
+ struct tl_tree_array *a = (void *)t;
+ assert (a->args_num == 1);
+ print_c_type_name (a->args[0]->type, offset, in);
+ printf ("*");
+ return;
+ }
+
+ struct tl_type *T = ((struct tl_tree_type *)t)->type;
+ if (!strcmp (T->id, "Vector") && in) {
+ printf ("struct {\n");
+ printf ("%s int *cnt;\n", offset);
+ printf ("%s ", offset);
+ print_c_type_name (((struct tl_tree_type *)t)->children[0], offset, in);
+ printf ("*data;\n");
+ printf ("%s} *", offset);
+ return;
+ }
+ if (!strcmp (T->id, "Long")) {
+ printf ("long long *");
+ return;
+ }
+ if (!strcmp (T->id, "#") || !strcmp (T->id, "Int")) {
+ printf ("int *");
+ return;
+ }
+ if (!strcmp (T->id, "Double")) {
+ printf ("double *");
+ return;
+ }
+ if (!strcmp (T->id, "String") || !strcmp (T->id, "Bytes")) {
+ /*printf ("struct {\n");
+ printf ("%s int len;\n", offset);
+ printf ("%s char *data;\n", offset);
+ printf ("%s} *", offset);
+ return;*/
+
+ printf ("struct tl_ds_string *");
+ return;
+ }
+ printf ("struct tl_ds_%s *", T->print_id);
+}
+
+int gen_uni_skip (struct tl_tree *t, char *cur_name, int *vars, int first, int fun) {
+ assert (t);
+ int x = TL_TREE_METHODS (t)->type (t);
+ int l = 0;
+ int i;
+ int j;
+ struct tl_tree_type *t1;
+ struct tl_tree_array *t2;
+ int y;
+ int L = strlen (cur_name);
+ char *fail = fun == 1 ? "return 0;" : fun == -1 ? "return;" : "return -1;";
+ switch (x) {
+ case NODE_TYPE_TYPE:
+ t1 = (void *)t;
+ if (!first) {
+ printf (" if (ODDP(%s) || %s->type->name != 0x%08x) { %s }\n", cur_name, cur_name, t1->type->name, fail);
+ } else {
+ printf (" if (ODDP(%s) || (%s->type->name != 0x%08x && %s->type->name != 0x%08x)) { %s }\n", cur_name, cur_name, t1->type->name, cur_name, ~t1->type->name, fail);
+ }
+ for (i = 0; i < t1->children_num; i++) {
+#if defined(_MSC_VER)
+#pragma warning(disable : 4996)
+#endif
+ sprintf (cur_name + L, "->params[%d]", i);
+#if defined(_MSC_VER)
+#pragma warning(default : 4996)
+#endif
+ gen_uni_skip (t1->children[i], cur_name, vars, 0, fun);
+ cur_name[L] = 0;
+ }
+ return 0;
+ case NODE_TYPE_NAT_CONST:
+ printf (" if (EVENP(%s) || ((long)%s) != %"_PRINTF_INT64_"d) { %s }\n", cur_name, cur_name, var_nat_const_to_int (t) * 2 + 1, fail);
+ return 0;
+ case NODE_TYPE_ARRAY:
+ printf (" if (ODDP(%s) || %s->type->name != TL_TYPE_ARRAY) { %s }\n", cur_name, cur_name, fail);
+ t2 = (void *)t;
+
+#if defined(_MSC_VER)
+#pragma warning(disable : 4996)
+#endif
+ sprintf (cur_name + L, "->params[0]");
+#if defined(_MSC_VER)
+#pragma warning(default : 4996)
+#endif
+ y = gen_uni_skip (t2->multiplicity, cur_name, vars, 0, fun);
+ cur_name[L] = 0;
+
+#if defined(_MSC_VER)
+#pragma warning(disable : 4996)
+#endif
+ sprintf (cur_name + L, "->params[1]");
+#if defined(_MSC_VER)
+#pragma warning(default : 4996)
+#endif
+ y += gen_uni_skip (t2->args[0]->type, cur_name, vars, 0, fun);
+ cur_name[L] = 0;
+ return 0;
+ case NODE_TYPE_VAR_TYPE:
+ printf (" if (ODDP(%s)) { %s }\n", cur_name, fail);
+ i = ((struct tl_tree_var_type *)t)->var_num;
+ if (!vars[i]) {
+ printf (" struct paramed_type *var%d = %s; assert (var%d);\n", i, cur_name, i);
+ vars[i] = 1;
+ } else if (vars[i] == 1) {
+ printf (" if (compare_types (var%d, %s) < 0) { %s }\n", i, cur_name, fail);
+ } else {
+ assert (0);
+ return -1;
+ }
+ return l;
+ case NODE_TYPE_VAR_NUM:
+ printf (" if (EVENP(%s)) { %s }\n", cur_name, fail);
+ i = ((struct tl_tree_var_num *)t)->var_num;
+ j = ((struct tl_tree_var_num *)t)->dif;
+ if (!vars[i]) {
+ printf (" struct paramed_type *var%d = ((void *)%s) + %d; assert (var%d);\n", i, cur_name, 2 * j, i);
+ vars[i] = 2;
+ } else if (vars[i] == 2) {
+ printf (" if (var%d != ((void *)%s) + %d) { %s }\n", i, cur_name, 2 * j, fail);
+ } else {
+ assert (0);
+ return -1;
+ }
+ return 0;
+ default:
+ assert (0);
+ return -1;
+ }
+}
+
+void print_offset (int len) {
+ int i;
+ for (i = 0; i < len; i++) { printf (" "); }
+}
+
+int gen_create (struct tl_tree *t, int *vars, int offset) {
+ int x = TL_TREE_METHODS (t)->type (t);
+ int i;
+ struct tl_tree_type *t1;
+ struct tl_tree_array *t2;
+ switch (x) {
+ case NODE_TYPE_TYPE:
+ print_offset (offset);
+ printf ("&(struct paramed_type){\n");
+ print_offset (offset + 2);
+ t1 = (void *)t;
+ if (t1->self.flags & FLAG_BARE) {
+ printf (".type = &(struct tl_type_descr) {.name = 0x%08x, .id = \"Bare_%s\", .params_num = %d, .params_types = %"_PRINTF_INT64_"d},\n", ~t1->type->name, t1->type->id, t1->type->arity, t1->type->params_types);
+ } else {
+ printf (".type = &(struct tl_type_descr) {.name = 0x%08x, .id = \"%s\", .params_num = %d, .params_types = %"_PRINTF_INT64_"d},\n", t1->type->name, t1->type->id, t1->type->arity, t1->type->params_types);
+ }
+ if (t1->children_num) {
+ print_offset (offset + 2);
+ printf (".params = (struct paramed_type *[]){\n");
+ for (i = 0; i < t1->children_num; i++) {
+ assert (gen_create (t1->children[i], vars, offset + 4) >= 0);
+ printf (",\n");
+ }
+ print_offset (offset + 2);
+ printf ("}\n");
+ } else {
+ print_offset (offset + 2);
+ printf (".params = 0,\n");
+ }
+ print_offset (offset);
+ printf ("}");
+ return 0;
+ case NODE_TYPE_NAT_CONST:
+ print_offset (offset);
+ printf ("INT2PTR (%d)", (int)var_nat_const_to_int (t));
+ return 0;
+ case NODE_TYPE_ARRAY:
+ print_offset (offset);
+ printf ("&(struct paramed_type){\n");
+ print_offset (offset + 2);
+ t2 = (void *)t;
+ printf (".type = &(struct tl_type_descr) {.name = NAME_ARRAY, .id = \"array\", .params_num = 2, .params_types = 1},\n");
+ print_offset (offset + 2);
+ printf (".params = (struct paramed_type **){\n");
+ gen_create (t2->multiplicity, vars, offset + 4);
+ printf (",\n");
+ gen_create (t2->args[0]->type, vars, offset + 4);
+ printf (",\n");
+ print_offset (offset + 2);
+ printf ("}\n");
+ print_offset (offset);
+ printf ("}");
+ return 0;
+ case NODE_TYPE_VAR_TYPE:
+ print_offset (offset);
+ printf ("var%d", ((struct tl_tree_var_type *)t)->var_num);
+ return 0;
+ case NODE_TYPE_VAR_NUM:
+ print_offset (offset);
+ printf ("((void *)var%d) + %d", ((struct tl_tree_var_type *)t)->var_num, 2 * ((struct tl_tree_var_num *)t)->dif);
+ return 0;
+ default:
+ assert (0);
+ return -1;
+ }
+}
+
+int gen_field_skip (struct arg *arg, int *vars, int num) {
+ assert (arg);
+ char *offset = " ";
+ int o = 0;
+ if (arg->exist_var_num >= 0) {
+ printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
+ offset = " ";
+ o = 2;
+ }
+ if (arg->var_num >= 0) {
+ assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
+ int t = ((struct tl_tree_type *)arg->type)->type->name;
+ if (t == NAME_VAR_TYPE) {
+ fprintf (stderr, "Not supported yet\n");
+ assert (0);
+ } else {
+ assert (t == NAME_VAR_NUM);
+ if (vars[arg->var_num] == 0) {
+ printf ("%sif (in_remaining () < 4) { return -1;}\n", offset);
+ printf ("%sstruct paramed_type *var%d = INT2PTR (fetch_int ());\n", offset, arg->var_num);
+ vars[arg->var_num] = 2;
+ } else if (vars[arg->var_num] == 2) {
+ printf ("%sif (in_remaining () < 4) { return -1;}\n", offset);
+ printf ("%sif (vars%d != INT2PTR (fetch_int ())) { return -1; }\n", offset, arg->var_num);
+ } else {
+ assert (0);
+ return -1;
+ }
+ }
+ } else {
+ int t = TL_TREE_METHODS (arg->type)->type (arg->type);
+ if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (arg->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ int bare = arg->flags & FLAG_BARE;
+ if (!bare && t == NODE_TYPE_TYPE) {
+ bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE;
+ }
+ if (!bare) {
+ printf ("%sif (skip_type_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num);
+ } else {
+ printf ("%sif (skip_type_bare_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num);
+ }
+ } else {
+ assert (t == NODE_TYPE_ARRAY);
+ printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
+ printf ("%s);\n", offset);
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num);
+ printf ("%s if (skip_type_%s (field%d) < 0) { return -1;}\n", offset, "any", num);
+ printf ("%s}\n", offset);
+ }
+ }
+ if (arg->exist_var_num >= 0) {
+ printf (" }\n");
+ }
+ return 0;
+}
+
+int gen_field_fetch (struct arg *arg, int *vars, int num, int empty) {
+ assert (arg);
+ char *offset = " ";
+ int o = 0;
+ if (arg->exist_var_num >= 0) {
+ printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
+ offset = " ";
+ o = 2;
+ }
+ if (!empty) {
+ printf("%sif (multiline_output >= 2) { print_offset (); }\n", offset);
+ }
+ if (arg->id && strlen (arg->id) && !empty) {
+ printf ("%sif (!disable_field_names) { eprintf (\" %s :\"); }\n", offset, arg->id);
+ }
+ if (arg->var_num >= 0) {
+ assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
+ int t = ((struct tl_tree_type *)arg->type)->type->name;
+ if (t == NAME_VAR_TYPE) {
+ fprintf (stderr, "Not supported yet\n");
+ assert (0);
+ } else {
+ assert (t == NAME_VAR_NUM);
+ if (vars[arg->var_num] == 0) {
+ printf ("%sif (in_remaining () < 4) { return -1;}\n", offset);
+ printf ("%seprintf (\" %%d\", prefetch_int ());\n", offset);
+ printf ("%sstruct paramed_type *var%d = INT2PTR (fetch_int ());\n", offset, arg->var_num);
+ vars[arg->var_num] = 2;
+ } else if (vars[arg->var_num] == 2) {
+ printf ("%sif (in_remaining () < 4) { return -1;}\n", offset);
+ printf ("%seprintf (\" %%d\", prefetch_int ());\n", offset);
+ printf ("%sif (vars%d != INT2PTR (fetch_int ())) { return -1; }\n", offset, arg->var_num);
+ } else {
+ assert (0);
+ return -1;
+ }
+ }
+ } else {
+ int t = TL_TREE_METHODS (arg->type)->type (arg->type);
+ if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (arg->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ int bare = arg->flags & FLAG_BARE;
+ if (!bare && t == NODE_TYPE_TYPE) {
+ bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE;
+ }
+ if (!bare) {
+ printf ("%sif (fetch_type_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num);
+ } else {
+ printf ("%sif (fetch_type_bare_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num);
+ }
+ } else {
+ assert (t == NODE_TYPE_ARRAY);
+ printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
+ printf ("%s);\n", offset);
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ printf ("%seprintf (\" [\");\n", offset);
+ printf ("%sif (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset);
+ printf ("%sif (multiline_output >= 1) { multiline_offset += multiline_offset_size;}\n", offset);
+ printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num);
+ printf ("%s if (multiline_output >= 1) { print_offset (); }\n", offset);
+ printf ("%s if (fetch_type_%s (field%d) < 0) { return -1;}\n", offset, "any", num);
+ printf ("%s if (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset);
+ printf ("%s}\n", offset);
+ printf ("%sif (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}\n", offset);
+ printf ("%seprintf (\" ]\");\n", offset);
+ }
+ }
+ if (!empty) {
+ printf("%sif (multiline_output >= 2) { eprintf (\"\\n\"); }\n", offset);
+ }
+ if (arg->exist_var_num >= 0) {
+ printf (" }\n");
+ }
+ return 0;
+}
+
+int gen_field_store (struct arg *arg, int *vars, int num, int from_func, int empty) {
+ assert (arg);
+ char *offset = " ";
+ int o = 0;
+ if (arg->exist_var_num >= 0) {
+ printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
+ offset = " ";
+ o = 2;
+ }
+ char *fail = from_func ? "0" : "-1";
+ char *expect = from_func ? "expect_token_ptr" : "expect_token";
+ if (arg->id && strlen (arg->id) > 0 && !empty) {
+ printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id);
+ printf ("%s local_next_token ();\n", offset);
+ printf ("%s %s (\":\", 1);\n", offset, expect);
+ printf ("%s}\n", offset);
+ }
+ if (arg->var_num >= 0) {
+ printf ("%sif (cur_token_len < 0) { return %s; }\n", offset, fail);
+ assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
+ int t = ((struct tl_tree_type *)arg->type)->type->name;
+ if (t == NAME_VAR_TYPE) {
+ fprintf (stderr, "Not supported yet\n");
+ assert (0);
+ } else {
+ assert (t == NAME_VAR_NUM);
+ if (vars[arg->var_num] == 0) {
+ printf ("%sif (!is_int ()) { return %s;}\n", offset, fail);
+ printf ("%sstruct paramed_type *var%d = INT2PTR (get_int ());\n", offset, arg->var_num);
+ printf ("%sout_int (get_int ());\n", offset);
+ printf ("%sassert (var%d);\n", offset, arg->var_num);
+ printf ("%slocal_next_token ();\n", offset);
+ vars[arg->var_num] = 2;
+ } else if (vars[arg->var_num] == 2) {
+ printf ("%sif (!is_int ()) { return %s;}\n", offset, fail);
+ printf ("%sif (vars%d != INT2PTR (get_int ())) { return %s; }\n", offset, arg->var_num, fail);
+ printf ("%sout_int (get_int ());\n", offset);
+ printf ("%slocal_next_token ();\n", offset);
+ } else {
+ assert (0);
+ return -1;
+ }
+ }
+ } else {
+ int t = TL_TREE_METHODS (arg->type)->type (arg->type);
+ if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (arg->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ int bare = arg->flags & FLAG_BARE;
+ if (!bare && t == NODE_TYPE_TYPE) {
+ bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE;
+ }
+ if (!bare) {
+ printf ("%sif (store_type_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail);
+ } else {
+ printf ("%sif (store_type_bare_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail);
+ }
+ } else {
+ printf ("%s%s (\"[\", 1);\n", offset, expect);
+
+ assert (t == NODE_TYPE_ARRAY);
+ printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
+ printf ("%s);\n", offset);
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num);
+ printf ("%s if (store_type_%s (field%d) < 0) { return %s;}\n", offset, "any", num, fail);
+ printf ("%s}\n", offset);
+
+ printf ("%s%s (\"]\", 1);\n", offset, expect);
+ }
+ }
+ if (arg->exist_var_num >= 0) {
+ printf (" }\n");
+ }
+ return 0;
+}
+
+int gen_field_autocomplete (struct arg *arg, int *vars, int num, int from_func, int empty) {
+ assert (arg);
+ char *offset = " ";
+ int o = 0;
+ if (arg->exist_var_num >= 0) {
+ printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
+ offset = " ";
+ o = 2;
+ }
+ char *fail = from_func ? "0" : "-1";
+ char *expect = from_func ? "expect_token_ptr_autocomplete" : "expect_token_autocomplete";
+ if (arg->id && strlen (arg->id) > 0 && !empty) {
+ printf ("%sif (cur_token_len == -3 && cur_token_real_len <= %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_real_len)) {\n", offset, (int)(strlen (arg->id)), arg->id);
+ printf ("%s set_autocomplete_string (\"%s\");\n", offset, arg->id);
+ printf ("%s return %s;\n", offset, fail);
+ printf ("%s}\n", offset);
+
+ printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id);
+ printf ("%s local_next_token ();\n", offset);
+ printf ("%s %s (\":\", 1);\n", offset, expect);
+ printf ("%s}\n", offset);
+ }
+ if (arg->var_num >= 0) {
+ printf ("%sif (cur_token_len < 0) { return %s; }\n", offset, fail);
+ assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
+ int t = ((struct tl_tree_type *)arg->type)->type->name;
+ if (t == NAME_VAR_TYPE) {
+ fprintf (stderr, "Not supported yet\n");
+ assert (0);
+ } else {
+ assert (t == NAME_VAR_NUM);
+ if (vars[arg->var_num] == 0) {
+ printf ("%sif (!is_int ()) { return %s;}\n", offset, fail);
+ printf ("%sstruct paramed_type *var%d = INT2PTR (get_int ());\n", offset, arg->var_num);
+ printf ("%sassert (var%d);\n", offset, arg->var_num);
+ printf ("%slocal_next_token ();\n", offset);
+ vars[arg->var_num] = 2;
+ } else if (vars[arg->var_num] == 2) {
+ printf ("%sif (!is_int ()) { return %s;}\n", offset, fail);
+ printf ("%sif (vars%d != INT2PTR (get_int ())) { return %s; }\n", offset, arg->var_num, fail);
+ printf ("%slocal_next_token ();\n", offset);
+ } else {
+ assert (0);
+ return -1;
+ }
+ }
+ } else {
+ int t = TL_TREE_METHODS (arg->type)->type (arg->type);
+ if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (arg->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ int bare = arg->flags & FLAG_BARE;
+ if (!bare && t == NODE_TYPE_TYPE) {
+ bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE;
+ }
+ if (!bare) {
+ printf ("%sif (autocomplete_type_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail);
+ } else {
+ printf ("%sif (autocomplete_type_bare_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail);
+ }
+ } else {
+ printf ("%s%s (\"[\", 1);\n", offset, expect);
+
+ assert (t == NODE_TYPE_ARRAY);
+ printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
+ printf ("%s);\n", offset);
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num);
+ printf ("%s if (autocomplete_type_%s (field%d) < 0) { return %s;}\n", offset, "any", num, fail);
+ printf ("%s}\n", offset);
+
+ printf ("%s%s (\"]\", 1);\n", offset, expect);
+ }
+ }
+ if (arg->exist_var_num >= 0) {
+ printf (" }\n");
+ }
+ return 0;
+}
+
+int gen_field_fetch_ds (struct arg *arg, int *vars, int num, int empty) {
+ assert (arg);
+ char *offset = " ";
+ int o = 0;
+ if (arg->exist_var_num >= 0) {
+ printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
+ offset = " ";
+ o = 2;
+ }
+ if (arg->var_num >= 0) {
+ assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
+ int t = ((struct tl_tree_type *)arg->type)->type->name;
+ if (t == NAME_VAR_TYPE) {
+ fprintf (stderr, "Not supported yet\n");
+ assert (0);
+ } else {
+ assert (t == NAME_VAR_NUM);
+ printf ("%sassert (in_remaining () >= 4);\n", offset);
+ if (arg->id && strlen (arg->id)) {
+ printf ("%sresult->%s = talloc (4);", offset, arg->id);
+ printf ("%s*result->%s = prefetch_int ();", offset, arg->id);
+ } else {
+ printf ("%sresult->f%d = talloc (4);", offset, num - 1);
+ printf ("%s*result->f%d = prefetch_int ();", offset, num - 1);
+ }
+ if (vars[arg->var_num] == 0) {
+ printf ("%sstruct paramed_type *var%d = INT2PTR (fetch_int ());\n", offset, arg->var_num);
+ vars[arg->var_num] = 2;
+ } else if (vars[arg->var_num] == 2) {
+ printf ("%sassert (vars%d == INT2PTR (fetch_int ()));\n", offset, arg->var_num);
+ } else {
+ assert (0);
+ return -1;
+ }
+ }
+ } else {
+ int t = TL_TREE_METHODS (arg->type)->type (arg->type);
+ if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (arg->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ int bare = arg->flags & FLAG_BARE;
+ if (!bare && t == NODE_TYPE_TYPE) {
+ bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE;
+ }
+ if (arg->id && strlen (arg->id)) {
+ printf ("%sresult->%s = ", offset, arg->id);
+ } else {
+ printf ("%sresult->f%d = ", offset, num - 1);
+ }
+ if (t == NODE_TYPE_TYPE && !strcmp (((struct tl_tree_type *)arg->type)->type->id, "Vector")) {
+ printf ("(void *)");
+ }
+ if (!bare) {
+ printf ("fetch_ds_type_%s (field%d);\n", t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num);
+ } else {
+ printf ("fetch_ds_type_bare_%s (field%d);\n", t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num);
+ }
+ } else {
+ assert (t == NODE_TYPE_ARRAY);
+ printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
+ printf ("%s);\n", offset);
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ if (arg->id && strlen (arg->id)) {
+ printf ("%sresult->%s = ", offset, arg->id);
+ } else {
+ printf ("%sresult->f%d = ", offset, num - 1);
+ }
+ printf ("talloc0 (multiplicity%d * sizeof (void *));\n", num);
+ printf ("%s{\n", offset);
+ printf ("%s int i = 0;\n", offset);
+ printf ("%s while (i < multiplicity%d) {\n", offset, num);
+ if (arg->id && strlen (arg->id)) {
+ printf ("%s result->%s[i ++] =", offset, arg->id);
+ } else {
+ printf ("%s result->f%d[i ++] = ", offset, num - 1);
+ }
+ printf ("fetch_ds_type_%s (field%d);\n", "any", num);
+ printf ("%s }\n", offset);
+ printf ("%s}\n", offset);
+ }
+ }
+ if (arg->exist_var_num >= 0) {
+ printf (" }\n");
+ }
+ return 0;
+}
+
+int gen_field_free_ds (struct arg *arg, int *vars, int num, int empty) {
+ assert (arg);
+ char *offset = " ";
+ int o = 0;
+ if (arg->exist_var_num >= 0) {
+ printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
+ offset = " ";
+ o = 2;
+ }
+ if (arg->var_num >= 0) {
+ assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
+ int t = ((struct tl_tree_type *)arg->type)->type->name;
+ if (t == NAME_VAR_TYPE) {
+ fprintf (stderr, "Not supported yet\n");
+ assert (0);
+ } else {
+ assert (t == NAME_VAR_NUM);
+ if (arg->id && strlen (arg->id)) {
+ if (vars[arg->var_num] == 0) {
+ printf ("%sstruct paramed_type *var%d = INT2PTR (*D->%s);\n", offset, arg->var_num, arg->id);
+ vars[arg->var_num] = 2;
+ } else if (vars[arg->var_num] == 2) {
+ printf ("%sassert (vars%d == INT2PTR (*D->%s));\n", offset, arg->var_num, arg->id);
+ }
+ printf ("%stfree (D->%s, sizeof (*D->%s));\n", offset, arg->id, arg->id);
+ } else {
+ if (vars[arg->var_num] == 0) {
+ printf ("%sstruct paramed_type *var%d = INT2PTR (*D->f%d);\n", offset, arg->var_num, num - 1);
+ vars[arg->var_num] = 2;
+ } else if (vars[arg->var_num] == 2) {
+ printf ("%sassert (vars%d == *D->f%d);\n", offset, arg->var_num, num - 1);
+ }
+ printf ("%stfree (D->f%d, sizeof (*D->f%d));\n", offset, num - 1, num - 1);
+ }
+ }
+ } else {
+ int t = TL_TREE_METHODS (arg->type)->type (arg->type);
+ if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (arg->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ int any = (t == NODE_TYPE_VAR_TYPE) || ((struct tl_tree_type *)arg->type)->type->name == NAME_VECTOR;
+ if (arg->id && strlen (arg->id)) {
+ printf ("%sfree_ds_type_%s (D->%s, field%d);\n", offset, any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, arg->id, num);
+ } else {
+ printf ("%sfree_ds_type_%s (D->f%d, field%d);\n", offset, any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num - 1, num);
+ }
+ } else {
+ assert (t == NODE_TYPE_ARRAY);
+ printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
+ printf ("%s);\n", offset);
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ printf ("%s{\n", offset);
+ printf ("%s int i = 0;\n", offset);
+ printf ("%s while (i < multiplicity%d) {\n", offset, num);
+ if (arg->id && strlen (arg->id)) {
+ printf ("%s free_ds_type_%s (D->%s[i ++], field%d);\n", offset, "any", arg->id, num);
+ } else {
+ printf ("%s free_ds_type_%s (D->f%d[i ++], field%d);\n", offset, "any", num - 1, num);
+ }
+ printf ("%s }\n", offset);
+ printf ("%s}\n", offset);
+ if (arg->id && strlen (arg->id)) {
+ printf ("%stfree (D->%s, sizeof (void *) * multiplicity%d);\n", offset, arg->id, num);
+ } else {
+ printf ("%stfree (D->f%d, sizeof (void *) * multiplicity%d);\n", offset, num - 1, num);
+ }
+ }
+ }
+ if (arg->exist_var_num >= 0) {
+ printf (" }\n");
+ }
+ return 0;
+}
+
+int gen_field_store_ds (struct arg *arg, int *vars, int num, int empty) {
+ assert (arg);
+ char *offset = " ";
+ int o = 0;
+ if (arg->exist_var_num >= 0) {
+ printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
+ offset = " ";
+ o = 2;
+ }
+ if (arg->var_num >= 0) {
+ assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
+ int t = ((struct tl_tree_type *)arg->type)->type->name;
+ if (t == NAME_VAR_TYPE) {
+ fprintf (stderr, "Not supported yet\n");
+ assert (0);
+ } else {
+ assert (t == NAME_VAR_NUM);
+ if (arg->id && strlen (arg->id)) {
+ if (vars[arg->var_num] == 0) {
+ printf ("%sstruct paramed_type *var%d = INT2PTR (*D->%s);\n", offset, arg->var_num, arg->id);
+ vars[arg->var_num] = 2;
+ } else if (vars[arg->var_num] == 2) {
+ printf ("%sassert (vars%d == INT2PTR (*D->%s));\n", offset, arg->var_num, arg->id);
+ }
+ printf ("%sout_int (PTR2INT (var%d));\n", offset, arg->var_num);
+ } else {
+ if (vars[arg->var_num] == 0) {
+ printf ("%sstruct paramed_type *var%d = INT2PTR (*D->f%d);\n", offset, arg->var_num, num - 1);
+ vars[arg->var_num] = 2;
+ } else if (vars[arg->var_num] == 2) {
+ printf ("%sassert (vars%d == *D->f%d);\n", offset, arg->var_num, num - 1);
+ }
+ printf ("%sout_int (PTR2INT (var%d));\n", offset, arg->var_num);
+ }
+ }
+ } else {
+ int t = TL_TREE_METHODS (arg->type)->type (arg->type);
+ if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
+ int bare = arg->flags & FLAG_BARE;
+ if (!bare && t == NODE_TYPE_TYPE) {
+ bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE;
+ }
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (arg->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ int any = (t == NODE_TYPE_VAR_TYPE);
+ int vec = ((struct tl_tree_type *)arg->type)->type->name == NAME_VECTOR;
+ if (arg->id && strlen (arg->id)) {
+ printf ("%sstore_ds_type_%s%s (%sD->%s, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", arg->id, num);
+ } else {
+ printf ("%sstore_ds_type_%s%s (%sD->f%d, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", num - 1, num);
+ }
+ } else {
+ assert (t == NODE_TYPE_ARRAY);
+ printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
+ printf ("%s);\n", offset);
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ printf ("%s{\n", offset);
+ printf ("%s int i = 0;\n", offset);
+ printf ("%s while (i < multiplicity%d) {\n", offset, num);
+ if (arg->id && strlen (arg->id)) {
+ printf ("%s store_ds_type_%s (D->%s[i ++], field%d);\n", offset, "any", arg->id, num);
+ } else {
+ printf ("%s store_ds_type_%s (D->f%d[i ++], field%d);\n", offset, "any", num - 1, num);
+ }
+ printf ("%s }\n", offset);
+ printf ("%s}\n", offset);
+ }
+ }
+ if (arg->exist_var_num >= 0) {
+ printf (" }\n");
+ }
+ return 0;
+}
+
+int gen_field_print_ds (struct arg *arg, int *vars, int num, int empty) {
+ assert (arg);
+ char *offset = " ";
+ int o = 0;
+ if (arg->exist_var_num >= 0) {
+ printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
+ offset = " ";
+ o = 2;
+ }
+ if (!empty) {
+ printf("%sif (multiline_output >= 2) { print_offset (); }\n", offset);
+ }
+ if (arg->id && strlen (arg->id) && !empty) {
+ printf ("%sif (!disable_field_names) { eprintf (\" %s :\"); }\n", offset, arg->id);
+ }
+ if (arg->var_num >= 0) {
+ assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE);
+ int t = ((struct tl_tree_type *)arg->type)->type->name;
+ if (t == NAME_VAR_TYPE) {
+ fprintf (stderr, "Not supported yet\n");
+ assert (0);
+ } else {
+ if (arg->id && strlen (arg->id)) {
+ if (vars[arg->var_num] == 0) {
+ printf ("%sstruct paramed_type *var%d = INT2PTR (*DS->%s);\n", offset, arg->var_num, arg->id);
+ vars[arg->var_num] = 2;
+ } else if (vars[arg->var_num] == 2) {
+ printf ("%sassert (vars%d == INT2PTR (*DS->%s));\n", offset, arg->var_num, arg->id);
+ }
+ } else {
+ if (vars[arg->var_num] == 0) {
+ printf ("%sstruct paramed_type *var%d = INT2PTR (*DS->f%d);\n", offset, arg->var_num, num - 1);
+ vars[arg->var_num] = 2;
+ } else if (vars[arg->var_num] == 2) {
+ printf ("%sassert (vars%d == *DS->f%d);\n", offset, arg->var_num, num - 1);
+ }
+ }
+ printf ("%seprintf (\" %%d\", (int)PTR2INT (var%d));\n", offset, arg->var_num);
+ }
+ } else {
+ int t = TL_TREE_METHODS (arg->type)->type (arg->type);
+ if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) {
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (arg->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ int bare = arg->flags & FLAG_BARE;
+ if (!bare && t == NODE_TYPE_TYPE) {
+ bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE;
+ }
+ int any = (t == NODE_TYPE_VAR_TYPE);
+ int vec = ((struct tl_tree_type *)arg->type)->type->name == NAME_VECTOR;
+ if (arg->id && strlen (arg->id)) {
+ printf ("%sprint_ds_type_%s%s (%sDS->%s, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", arg->id, num);
+ } else {
+ printf ("%sprint_ds_type_%s%s (%sDS->f%d, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", num - 1, num);
+ }
+ } else {
+ assert (t == NODE_TYPE_ARRAY);
+ printf ("%sint multiplicity%d = PTR2INT (\n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0);
+ printf ("%s);\n", offset);
+ printf ("%sstruct paramed_type *field%d = \n", offset, num);
+ assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0);
+ printf (";\n");
+ printf ("%seprintf (\" [\");\n", offset);
+ printf ("%sif (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset);
+ printf ("%sif (multiline_output >= 1) { multiline_offset += multiline_offset_size;}\n", offset);
+ printf ("%s{\n", offset);
+ printf ("%s int i = 0;\n", offset);
+ printf ("%s while (i < multiplicity%d) {\n", offset, num);
+ printf ("%s if (multiline_output >= 1) { print_offset (); }\n", offset);
+ if (arg->id && strlen (arg->id)) {
+ printf ("%s print_ds_type_%s (DS->%s[i ++], field%d);\n", offset, "any", arg->id, num);
+ } else {
+ printf ("%s print_ds_type_%s (DS->f%d[i ++], field%d);\n", offset, "any", num - 1, num);
+ }
+ printf ("%s if (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset);
+ printf ("%s }\n", offset);
+ printf ("%s}\n", offset);
+ printf ("%sif (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}\n", offset);
+ printf ("%seprintf (\" ]\");\n", offset);
+ }
+ }
+ if (!empty) {
+ printf("%sif (multiline_output >= 2) { eprintf (\"\\n\"); }\n", offset);
+ }
+ if (arg->exist_var_num >= 0) {
+ printf (" }\n");
+ }
+ return 0;
+}
+
+int gen_field_autocomplete_excl (struct arg *arg, int *vars, int num, int from_func) {
+ assert (arg);
+ assert (arg->var_num < 0);
+ char *offset = " ";
+ if (arg->exist_var_num >= 0) {
+ printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
+ offset = " ";
+ }
+ char *fail = from_func ? "0" : "-1";
+ char *expect = from_func ? "expect_token_ptr_autocomplete" : "expect_token_autocomplete";
+ if (arg->id && strlen (arg->id) > 0) {
+ printf ("%sif (cur_token_len == -3 && cur_token_real_len <= %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_real_len)) {\n", offset, (int)(strlen (arg->id)), arg->id);
+ printf ("%s set_autocomplete_string (\"%s\");\n", offset, arg->id);
+ printf ("%s return %s;\n", offset, fail);
+ printf ("%s}\n", offset);
+
+ printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id);
+ printf ("%s local_next_token ();\n", offset);
+ printf ("%s %s (\":\", 1);\n", offset, expect);
+ printf ("%s}\n", offset);
+ }
+ int t = TL_TREE_METHODS (arg->type)->type (arg->type);
+ assert (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE);
+ printf ("%sstruct paramed_type *field%d = autocomplete_function_any ();\n", offset, num);
+ printf ("%sif (!field%d) { return 0; }\n", offset, num);
+ printf ("%sadd_var_to_be_freed (field%d);\n", offset, num);
+ static char s[20];
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ sprintf_s (s, 20, "field%d", num);
+#else
+ sprintf (s, "field%d", num);
+#endif
+ gen_uni_skip (arg->type, s, vars, 1, 1);
+ if (arg->exist_var_num >= 0) {
+ printf (" }\n");
+ }
+ return 0;
+}
+
+int gen_field_store_excl (struct arg *arg, int *vars, int num, int from_func) {
+ assert (arg);
+ assert (arg->var_num < 0);
+ char *offset = " ";
+ if (arg->exist_var_num >= 0) {
+ printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit);
+ offset = " ";
+ }
+ char *expect = from_func ? "expect_token_ptr" : "expect_token";
+ if (arg->id && strlen (arg->id) > 0) {
+ printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id);
+ printf ("%s local_next_token ();\n", offset);
+ printf ("%s %s (\":\", 1);\n", offset, expect);
+ printf ("%s}\n", offset);
+ }
+ int t = TL_TREE_METHODS (arg->type)->type (arg->type);
+ assert (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE);
+ printf ("%sstruct paramed_type *field%d = store_function_any ();\n", offset, num);
+ printf ("%sif (!field%d) { return 0; }\n", offset, num);
+ static char s[20];
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ sprintf_s (s, 20, "field%d", num);
+#else
+ sprintf (s, "field%d", num);
+#endif
+ gen_uni_skip (arg->type, s, vars, 1, 1);
+ if (arg->exist_var_num >= 0) {
+ printf (" }\n");
+ }
+ return 0;
+}
+
+void gen_constructor_skip (struct tl_combinator *c) {
+ printf ("int skip_constructor_%s (struct paramed_type *T) {\n", c->print_id);
+ int i;
+ for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
+ printf (" return -1;\n");
+ printf ("}\n");
+ return;
+ }
+ static char s[10000];
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ sprintf_s (s, 10000, "T");
+#else
+ sprintf (s, "T");
+#endif
+
+ int *vars = malloc0 (c->var_num * 4);;
+ gen_uni_skip (c->result, s, vars, 1, 0);
+
+ if (c->name == NAME_INT) {
+ printf (" if (in_remaining () < 4) { return -1;}\n");
+ printf (" fetch_int ();\n");
+ printf (" return 0;\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_LONG) {
+ printf (" if (in_remaining () < 8) { return -1;}\n");
+ printf (" fetch_long ();\n");
+ printf (" return 0;\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_STRING) {
+ printf (" int l = prefetch_strlen ();\n");
+ printf (" if (l < 0) { return -1;}\n");
+ printf (" fetch_str (l);\n");
+ printf (" return 0;\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_DOUBLE) {
+ printf (" if (in_remaining () < 8) { return -1;}\n");
+ printf (" fetch_double ();\n");
+ printf (" return 0;\n");
+ printf ("}\n");
+ return;
+ }
+
+ for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
+ assert (gen_field_skip (c->args[i], vars, i + 1) >= 0);
+ }
+ free (vars);
+ printf (" return 0;\n");
+ printf ("}\n");
+}
+
+void gen_constructor_fetch (struct tl_combinator *c) {
+ printf ("int fetch_constructor_%s (struct paramed_type *T) {\n", c->print_id);
+ int i;
+ for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
+ printf (" return -1;\n");
+ printf ("}\n");
+ return;
+ }
+ static char s[10000];
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ sprintf_s (s, 10000, "T");
+#else
+ sprintf (s, "T");
+#endif
+
+ int *vars = malloc0 (c->var_num * 4);;
+ gen_uni_skip (c->result, s, vars, 1, 0);
+
+ if (c->name == NAME_INT) {
+ printf (" if (in_remaining () < 4) { return -1;}\n");
+ printf (" eprintf (\" %%d\", fetch_int ());\n");
+ printf (" return 0;\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_LONG) {
+ printf (" if (in_remaining () < 8) { return -1;}\n");
+ printf (" eprintf (\" %%"_PRINTF_INT64_"d\", fetch_long ());\n");
+ printf (" return 0;\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_STRING) {
+ printf (" static char buf[1 << 22];\n");
+ printf (" int l = prefetch_strlen ();\n");
+ printf (" if (l < 0 || (l >= (1 << 22) - 2)) { return -1; }\n");
+ printf (" memcpy (buf, fetch_str (l), l);\n");
+ printf (" buf[l] = 0;\n");
+ printf (" print_escaped_string (buf, l);\n");
+ printf (" return 0;\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_DOUBLE) {
+ printf (" if (in_remaining () < 8) { return -1;}\n");
+ printf (" eprintf (\" %%lf\", fetch_double ());\n");
+ printf (" return 0;\n");
+ printf ("}\n");
+ return;
+ }
+
+ assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE);
+ int empty = is_empty (((struct tl_tree_type *)c->result)->type);
+ if (!empty) {
+ printf (" eprintf (\" %s\");\n", c->id);
+ printf (" if (multiline_output >= 2) { eprintf (\"\\n\"); }\n");
+ }
+
+
+ for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
+ assert (gen_field_fetch (c->args[i], vars, i + 1, empty) >= 0);
+ }
+ free (vars);
+ printf (" return 0;\n");
+ printf ("}\n");
+}
+
+void gen_constructor_store (struct tl_combinator *c) {
+ printf ("int store_constructor_%s (struct paramed_type *T) {\n", c->print_id);
+ int i;
+ for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
+ printf (" return -1;\n");
+ printf ("}\n");
+ return;
+ }
+ static char s[10000];
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ sprintf_s (s, 10000, "T");
+#else
+ sprintf (s, "T");
+#endif
+
+ int *vars = malloc0 (c->var_num * 4);;
+ assert (c->var_num <= 10);
+ gen_uni_skip (c->result, s, vars, 1, 0);
+
+ if (c->name == NAME_INT) {
+ printf (" if (is_int ()) {\n");
+ printf (" out_int (get_int ());\n");
+ printf (" local_next_token ();\n");
+ printf (" return 0;\n");
+ printf (" } else {\n");
+ printf (" return -1;\n");
+ printf (" }\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_LONG) {
+ printf (" if (is_int ()) {\n");
+ printf (" out_long (get_int ());\n");
+ printf (" local_next_token ();\n");
+ printf (" return 0;\n");
+ printf (" } else {\n");
+ printf (" return -1;\n");
+ printf (" }\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_STRING) {
+ printf (" if (cur_token_len >= 0) {\n");
+ printf (" out_cstring (cur_token, cur_token_len);\n");
+ printf (" local_next_token ();\n");
+ printf (" return 0;\n");
+ printf (" } else {\n");
+ printf (" return -1;\n");
+ printf (" }\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_DOUBLE) {
+ printf (" if (is_double ()) {\n");
+ printf (" out_double (get_double());\n");
+ printf (" local_next_token ();\n");
+ printf (" return 0;\n");
+ printf (" } else {\n");
+ printf (" return -1;\n");
+ printf (" }\n");
+ printf ("}\n");
+ return;
+ }
+
+ int empty = is_empty (((struct tl_tree_type *)c->result)->type);
+ for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
+ assert (gen_field_store (c->args[i], vars, i + 1, 0, empty) >= 0);
+ }
+
+ free (vars);
+ printf (" return 0;\n");
+ printf ("}\n");
+}
+
+void gen_constructor_autocomplete (struct tl_combinator *c) {
+ printf ("int autocomplete_constructor_%s (struct paramed_type *T) {\n", c->print_id);
+ int i;
+ for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
+ printf (" return -1;\n");
+ printf ("}\n");
+ return;
+ }
+ static char s[10000];
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ sprintf_s (s, 10000, "T");
+#else
+ sprintf (s, "T");
+#endif
+
+ int *vars = malloc0 (c->var_num * 4);;
+ assert (c->var_num <= 10);
+ gen_uni_skip (c->result, s, vars, 1, 0);
+
+ if (c->name == NAME_INT) {
+ printf (" if (is_int ()) {\n");
+ printf (" local_next_token ();\n");
+ printf (" return 0;\n");
+ printf (" } else {\n");
+ printf (" return -1;\n");
+ printf (" }\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_LONG) {
+ printf (" if (is_int ()) {\n");
+ printf (" local_next_token ();\n");
+ printf (" return 0;\n");
+ printf (" } else {\n");
+ printf (" return -1;\n");
+ printf (" }\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_STRING) {
+ printf (" if (cur_token_len >= 0) {\n");
+ printf (" local_next_token ();\n");
+ printf (" return 0;\n");
+ printf (" } else {\n");
+ printf (" return -1;\n");
+ printf (" }\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_DOUBLE) {
+ printf (" if (is_double ()) {\n");
+ printf (" local_next_token ();\n");
+ printf (" return 0;\n");
+ printf (" } else {\n");
+ printf (" return -1;\n");
+ printf (" }\n");
+ printf ("}\n");
+ return;
+ }
+
+ int empty = is_empty (((struct tl_tree_type *)c->result)->type);
+ for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
+ assert (gen_field_autocomplete (c->args[i], vars, i + 1, 0, empty) >= 0);
+ }
+
+ free (vars);
+ printf (" return 0;\n");
+ printf ("}\n");
+}
+
+void gen_constructor_fetch_ds (struct tl_combinator *c) {
+ print_c_type_name (c->result, "", 0);
+ printf ("fetch_ds_constructor_%s (struct paramed_type *T) {\n", c->print_id);
+ int i;
+ for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
+ printf (" assert (0);\n");
+ printf ("}\n");
+ return;
+ }
+ static char s[10000];
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ sprintf_s (s, 10000, "T");
+#else
+ sprintf (s, "T");
+#endif
+
+ int *vars = malloc0 (c->var_num * 4);;
+ gen_uni_skip (c->result, s, vars, 1, 1);
+
+ printf (" ");
+ print_c_type_name (c->result, " ", 0);
+ printf (" result = talloc0 (sizeof (*result));\n");
+
+ struct tl_type *T = ((struct tl_tree_type *)c->result)->type;
+ if (T->constructors_num > 1) {
+ printf (" result->magic = 0x%08x;\n", c->name);
+ }
+
+ if (c->name == NAME_INT) {
+ printf (" assert (in_remaining () >= 4);\n");
+ printf (" *result = fetch_int ();\n");
+ printf (" return result;\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_LONG) {
+ printf (" assert (in_remaining () >= 8);\n");
+ printf (" *result = fetch_long ();\n");
+ printf (" return result;\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_STRING || c->name == NAME_BYTES) {
+ printf (" assert (in_remaining () >= 4);\n");
+ printf (" int l = prefetch_strlen ();\n");
+ printf (" assert (l >= 0);\n");
+ printf (" result->len = l;\n");
+ printf (" result->data = talloc (l + 1);\n");
+ printf (" result->data[l] = 0;\n");
+ printf (" memcpy (result->data, fetch_str (l), l);\n");
+ printf (" return result;\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_DOUBLE) {
+ printf (" assert (in_remaining () >= 8);\n");
+ printf (" *result = fetch_double ();\n");
+ printf (" return result;\n");
+ printf ("}\n");
+ return;
+ }
+
+ assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE);
+ int empty = is_empty (((struct tl_tree_type *)c->result)->type);
+
+ for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
+ assert (gen_field_fetch_ds (c->args[i], vars, i + 1, empty) >= 0);
+ }
+ free (vars);
+ printf (" return result;\n");
+ printf ("}\n");
+}
+
+void gen_constructor_free_ds (struct tl_combinator *c) {
+ printf ("void free_ds_constructor_%s (", c->print_id);
+ print_c_type_name (c->result, "", 0);
+ printf ("D, struct paramed_type *T) {\n");
+ int i;
+ for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
+ printf (" assert (0);\n");
+ printf ("}\n");
+ return;
+ }
+
+ static char s[10000];
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ sprintf_s (s, 10000, "T");
+#else
+ sprintf (s, "T");
+#endif
+
+ int *vars = malloc0 (c->var_num * 4);;
+ gen_uni_skip (c->result, s, vars, 1, -1);
+
+ //printf (" ");
+ //print_c_type_name (c->result, " ", 0);
+ //printf (" result = talloc0 (sizeof (*result));\n");
+
+ //struct tl_type *T = ((struct tl_tree_type *)c->result)->type;
+
+ if (c->name == NAME_INT) {
+ printf (" tfree (D, sizeof (*D));\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_LONG) {
+ printf (" tfree (D, sizeof (*D));\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_STRING || c->name == NAME_BYTES) {
+ printf (" tfree (D->data, D->len + 1);\n");
+ printf (" tfree (D, sizeof (*D));\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_DOUBLE) {
+ printf (" tfree (D, sizeof (*D));\n");
+ printf ("}\n");
+ return;
+ }
+
+ assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE);
+ int empty = is_empty (((struct tl_tree_type *)c->result)->type);
+
+ for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
+ assert (gen_field_free_ds (c->args[i], vars, i + 1, empty) >= 0);
+ }
+ free (vars);
+ printf ("}\n");
+}
+
+void gen_constructor_store_ds (struct tl_combinator *c) {
+ printf ("void store_ds_constructor_%s (", c->print_id);
+ print_c_type_name (c->result, "", 0);
+ printf ("D, struct paramed_type *T) {\n");
+ int i;
+ for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
+ printf (" assert (0);\n");
+ printf ("}\n");
+ return;
+ }
+
+ static char s[10000];
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ sprintf_s (s, 10000, "T");
+#else
+ sprintf (s, "T");
+#endif
+
+ int *vars = malloc0 (c->var_num * 4);;
+ gen_uni_skip (c->result, s, vars, 1, -1);
+
+ //printf (" ");
+ //print_c_type_name (c->result, " ", 0);
+ //printf (" result = talloc0 (sizeof (*result));\n");
+
+ //struct tl_type *T = ((struct tl_tree_type *)c->result)->type;
+
+ if (c->name == NAME_INT) {
+ printf (" out_int (*D);\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_LONG) {
+ printf (" out_long (*D);\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_STRING || c->name == NAME_BYTES) {
+ printf (" out_cstring (D->data, D->len);\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_DOUBLE) {
+ printf (" out_double (*D);\n");
+ printf ("}\n");
+ return;
+ }
+
+ assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE);
+ int empty = is_empty (((struct tl_tree_type *)c->result)->type);
+
+ for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
+ assert (gen_field_store_ds (c->args[i], vars, i + 1, empty) >= 0);
+ }
+ free (vars);
+ printf ("}\n");
+}
+
+void gen_constructor_print_ds (struct tl_combinator *c) {
+ printf ("int print_ds_constructor_%s (", c->print_id);
+ print_c_type_name (c->result, "", 0);
+ printf ("DS, struct paramed_type *T) {\n");
+ int i;
+ for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) {
+ printf (" return -1;\n");
+ printf ("}\n");
+ return;
+ }
+ static char s[10000];
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ sprintf_s (s, 10000, "T");
+#else
+ sprintf (s, "T");
+#endif
+
+ int *vars = malloc0 (c->var_num * 4);;
+ gen_uni_skip (c->result, s, vars, 1, 0);
+
+ if (c->name == NAME_INT) {
+ printf (" eprintf (\" %%d\", *DS);\n");
+ printf (" return 0;\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_LONG) {
+ printf (" eprintf (\" %%"_PRINTF_INT64_"d\", *DS);\n");
+ printf (" return 0;\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_STRING || c->name == NAME_BYTES) {
+ printf (" print_escaped_string (DS->data, DS->len);\n");
+ printf (" return 0;\n");
+ printf ("}\n");
+ return;
+ } else if (c->name == NAME_DOUBLE) {
+ printf (" eprintf (\" %%lf\", *DS);\n");
+ printf (" return 0;\n");
+ printf ("}\n");
+ return;
+ }
+
+ assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE);
+ int empty = is_empty (((struct tl_tree_type *)c->result)->type);
+ if (!empty) {
+ printf (" eprintf (\" %s\");\n", c->id);
+ printf (" if (multiline_output >= 2) { eprintf (\"\\n\"); }\n");
+ }
+
+
+ for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) {
+ assert (gen_field_print_ds (c->args[i], vars, i + 1, empty) >= 0);
+ }
+ free (vars);
+ printf (" return 0;\n");
+ printf ("}\n");
+}
+
+void gen_type_skip (struct tl_type *t) {
+ printf ("int skip_type_%s (struct paramed_type *T) {\n", t->print_id);
+ printf (" if (in_remaining () < 4) { return -1;}\n");
+ printf (" int magic = fetch_int ();\n");
+ printf (" switch (magic) {\n");
+ int i;
+ for (i = 0; i < t->constructors_num; i++) {
+ printf (" case 0x%08x: return skip_constructor_%s (T);\n", t->constructors[i]->name, t->constructors[i]->print_id);
+ }
+ printf (" default: return -1;\n");
+ printf (" }\n");
+ printf ("}\n");
+ printf ("int skip_type_bare_%s (struct paramed_type *T) {\n", t->print_id);
+ if (t->constructors_num > 1) {
+ printf (" int *save_in_ptr = in_ptr;\n");
+ for (i = 0; i < t->constructors_num; i++) {
+ printf (" if (skip_constructor_%s (T) >= 0) { return 0; }\n", t->constructors[i]->print_id);
+ printf (" in_ptr = save_in_ptr;\n");
+ }
+ } else {
+ for (i = 0; i < t->constructors_num; i++) {
+ printf (" if (skip_constructor_%s (T) >= 0) { return 0; }\n", t->constructors[i]->print_id);
+ }
+ }
+ printf (" return -1;\n");
+ printf ("}\n");
+}
+
+void gen_type_fetch (struct tl_type *t) {
+ int empty = is_empty (t);;
+ printf ("int fetch_type_%s (struct paramed_type *T) {\n", t->print_id);
+ printf (" if (in_remaining () < 4) { return -1;}\n");
+ if (!empty) {
+ printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n");
+ printf (" eprintf (\" (\");\n");
+ }
+ printf (" int magic = fetch_int ();\n");
+ printf (" int res = -1;\n");
+ printf (" switch (magic) {\n");
+ int i;
+ for (i = 0; i < t->constructors_num; i++) {
+ printf (" case 0x%08x: res = fetch_constructor_%s (T); break;\n", t->constructors[i]->name, t->constructors[i]->print_id);
+ }
+ printf (" default: return -1;\n");
+ printf (" }\n");
+ if (!empty) {
+ printf (" if (res >= 0) {\n");
+ printf (" if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }\n");
+ printf (" eprintf (\" )\");\n");
+ //printf (" if (multiline_output >= 2) { printf (\"\\n\"); }\n");
+ printf (" }\n");
+ }
+ printf (" return res;\n");
+ printf ("}\n");
+ printf ("int fetch_type_bare_%s (struct paramed_type *T) {\n", t->print_id);
+ if (t->constructors_num > 1) {
+ printf (" int *save_in_ptr = in_ptr;\n");
+
+ if (!empty) {
+ printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n");
+ }
+ for (i = 0; i < t->constructors_num; i++) {
+ printf (" if (skip_constructor_%s (T) >= 0) { in_ptr = save_in_ptr; %sassert (!fetch_constructor_%s (T)); %sreturn 0; }\n", t->constructors[i]->print_id, empty ? "" : "eprintf (\" (\"); ", t->constructors[i]->print_id , empty ? "" : "if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (\" )\");");
+ printf (" in_ptr = save_in_ptr;\n");
+ }
+ } else {
+ for (i = 0; i < t->constructors_num; i++) {
+ if (!empty) {
+ printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n");
+ printf (" eprintf (\" (\");\n");
+ }
+ printf (" if (fetch_constructor_%s (T) >= 0) { %sreturn 0; }\n", t->constructors[i]->print_id, empty ? "" : "if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (\" )\");" );
+ }
+ }
+ printf (" return -1;\n");
+ printf ("}\n");
+}
+
+void gen_type_store (struct tl_type *t) {
+ int empty = is_empty (t);;
+ int k = 0;
+ for (k = 0; k < 2; k++) {
+ printf ("int store_type_%s%s (struct paramed_type *T) {\n", k == 0 ? "" : "bare_", t->print_id);
+ if (empty) {
+ if (!k) {
+ printf (" out_int (0x%08x);\n", t->constructors[0]->name);
+ }
+ printf (" if (store_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id);
+ printf (" return 0;\n");
+ printf ("}\n");
+ } else {
+ printf (" expect_token (\"(\", 1);\n");
+ printf (" if (cur_token_len < 0) { return -1; }\n");
+ printf (" if (cur_token_len < 0) { return -1; }\n");
+ int i;
+ for (i = 0; i < t->constructors_num; i++) {
+ printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (t->constructors[i]->id), t->constructors[i]->id);
+ if (!k) {
+ printf (" out_int (0x%08x);\n", t->constructors[i]->name);
+ }
+ printf (" local_next_token ();\n");
+ printf (" if (store_constructor_%s (T) < 0) { return -1; }\n", t->constructors[i]->print_id);
+ printf (" expect_token (\")\", 1);\n");
+ printf (" return 0;\n");
+ printf (" }\n");
+ }
+ /*if (t->constructors_num == 1) {
+ printf (" if (!force) {\n");
+ if (!k) {
+ printf (" out_int (0x%08x);\n", t->constructors[0]->name);
+ }
+ printf (" if (store_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id);
+ printf (" expect_token (\")\", 1);\n");
+ printf (" return 0;\n");
+ printf (" }\n");
+ }*/
+ printf (" return -1;\n");
+ printf ("}\n");
+ }
+ }
+}
+
+void gen_type_autocomplete (struct tl_type *t) {
+ int empty = is_empty (t);;
+ int k = 0;
+ for (k = 0; k < 2; k++) {
+ printf ("int autocomplete_type_%s%s (struct paramed_type *T) {\n", k == 0 ? "" : "bare_", t->print_id);
+ if (empty) {
+ printf (" if (autocomplete_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id);
+ printf (" return 0;\n");
+ printf ("}\n");
+ } else {
+ printf (" expect_token_autocomplete (\"(\", 1);\n");
+ printf (" if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_%s); return -1; }\n", t->print_id);
+ printf (" if (cur_token_len < 0) { return -1; }\n");
+ int i;
+ for (i = 0; i < t->constructors_num; i++) {
+ printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (t->constructors[i]->id), t->constructors[i]->id);
+ printf (" local_next_token ();\n");
+ printf (" if (autocomplete_constructor_%s (T) < 0) { return -1; }\n", t->constructors[i]->print_id);
+ printf (" expect_token_autocomplete (\")\", 1);\n");
+ printf (" return 0;\n");
+ printf (" }\n");
+ }
+ /*if (t->constructors_num == 1) {
+ printf (" if (!force) {\n");
+ printf (" if (autocomplete_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id);
+ printf (" expect_token_autocomplete (\")\", 1);\n");
+ printf (" return 0;\n");
+ printf (" }\n");
+ }*/
+ printf (" return -1;\n");
+ printf ("}\n");
+ }
+ }
+}
+
+void gen_type_fetch_ds (struct tl_type *t) {
+ //int empty = is_empty (t);;
+ print_c_type_name (t->constructors[0]->result, "", 0);
+
+ printf ("fetch_ds_type_%s (struct paramed_type *T) {\n", t->print_id);
+ printf (" assert (in_remaining () >= 4);\n");
+ printf (" int magic = fetch_int ();\n");
+ printf (" switch (magic) {\n");
+ int i;
+ for (i = 0; i < t->constructors_num; i++) {
+ printf (" case 0x%08x: return fetch_ds_constructor_%s (T); break;\n", t->constructors[i]->name, t->constructors[i]->print_id);
+ }
+ printf (" default: assert (0); return NULL;\n");
+ printf (" }\n");
+ printf ("}\n");
+ print_c_type_name (t->constructors[0]->result, "", 0);
+ printf ("fetch_ds_type_bare_%s (struct paramed_type *T) {\n", t->print_id);
+ if (t->constructors_num > 1) {
+ printf (" int *save_in_ptr = in_ptr;\n");
+
+ for (i = 0; i < t->constructors_num; i++) {
+ printf (" if (skip_constructor_%s (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_%s (T); }\n", t->constructors[i]->print_id, t->constructors[i]->print_id);
+ }
+ } else {
+ printf (" return fetch_ds_constructor_%s (T);\n", t->constructors[0]->print_id);
+ }
+ printf (" assert (0);\n");
+ printf (" return NULL;\n");
+ printf ("}\n");
+}
+
+void gen_type_free_ds (struct tl_type *t) {
+ printf ("void free_ds_type_%s (", t->print_id);
+ print_c_type_name (t->constructors[0]->result, "", 0);
+ printf ("D, struct paramed_type *T) {\n");
+
+ if (t->constructors_num > 1) {
+ printf (" switch (D->magic) {\n");
+ int i;
+ for (i = 0; i < t->constructors_num; i++) {
+ printf (" case 0x%08x: free_ds_constructor_%s (D, T); return; \n", t->constructors[i]->name, t->constructors[i]->print_id);
+ }
+ printf (" default: assert (0);\n");
+ printf (" }\n");
+ } else {
+ printf (" free_ds_constructor_%s (D, T); return; \n", t->constructors[0]->print_id);
+ }
+ printf ("}\n");
+}
+
+void gen_type_store_ds (struct tl_type *t) {
+ int k;
+ for (k = 0; k < 2; k++) {
+ if (k == 0) {
+ printf ("void store_ds_type_%s (", t->print_id);
+ } else {
+ printf ("void store_ds_type_bare_%s (", t->print_id);
+ }
+ print_c_type_name (t->constructors[0]->result, "", 0);
+ printf ("D, struct paramed_type *T) {\n");
+
+ if (t->constructors_num > 1) {
+ if (k == 0) {
+ printf (" out_int (D->magic);\n");
+ }
+ printf (" switch (D->magic) {\n");
+ int i;
+ for (i = 0; i < t->constructors_num; i++) {
+ printf (" case 0x%08x: store_ds_constructor_%s (D, T); return; \n", t->constructors[i]->name, t->constructors[i]->print_id);
+ }
+ printf (" default: assert (0);\n");
+ printf (" }\n");
+ } else {
+ if (k == 0) {
+ printf (" out_int (0x%08x);\n", t->constructors[0]->name);
+ }
+ printf (" store_ds_constructor_%s (D, T); return; \n", t->constructors[0]->print_id);
+ }
+ printf ("}\n");
+ }
+}
+
+void gen_type_print_ds (struct tl_type *t) {
+ int empty = is_empty (t);;
+ int k;
+ for (k = 0; k < 2; k++) {
+ printf ("int print_ds_type_%s%s (", k ? "bare_" : "", t->print_id);
+ print_c_type_name (t->constructors[0]->result, "", 0);
+ printf ("DS, struct paramed_type *T) {\n");
+ printf (" int res;\n");
+ if (!empty) {
+ printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n");
+ printf (" eprintf (\" (\");\n");
+ }
+ if (t->constructors_num > 1) {
+ printf (" switch (DS->magic) {\n");
+ int i;
+ for (i = 0; i < t->constructors_num; i++) {
+ printf (" case 0x%08x: res = print_ds_constructor_%s (DS, T); break;\n", t->constructors[i]->name, t->constructors[i]->print_id);
+ }
+ printf (" default: return -1;\n");
+ printf (" }\n");
+ } else {
+ printf (" res = print_ds_constructor_%s (DS, T);\n", t->constructors[0]->print_id);
+ }
+ if (!empty) {
+ printf (" if (res >= 0) {\n");
+ printf (" if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }\n");
+ printf (" eprintf (\" )\");\n");
+ //printf (" if (multiline_output >= 2) { printf (\"\\n\"); }\n");
+ printf (" }\n");
+ }
+ printf (" return res;\n");
+ printf ("}\n");
+ }
+}
+
+void gen_function_store (struct tl_combinator *f) {
+ printf ("struct paramed_type *store_function_%s (void) {\n", f->print_id);
+ int i;
+
+ int *vars = malloc0 (f->var_num * 4);;
+ assert (f->var_num <= 10);
+
+ for (i = 0; i < f->args_num; i++) if (!(f->args[i]->flags & FLAG_OPT_VAR)) {
+ if (f->args[i]->flags & FLAG_EXCL) {
+ assert (gen_field_store_excl (f->args[i], vars, i + 1, 1) >= 0);
+ } else {
+ assert (gen_field_store (f->args[i], vars, i + 1, 1, 0) >= 0);
+ }
+ }
+
+
+ printf (" struct paramed_type *R = \n");
+ assert (gen_create (f->result, vars, 2) >= 0);
+ printf (";\n");
+
+ free (vars);
+ printf (" return paramed_type_dup (R);\n");
+ printf ("}\n");
+}
+
+void gen_function_autocomplete (struct tl_combinator *f) {
+ printf ("struct paramed_type *autocomplete_function_%s (void) {\n", f->print_id);
+ int i;
+
+ int *vars = malloc0 (f->var_num * 4);;
+ assert (f->var_num <= 10);
+
+ for (i = 0; i < f->args_num; i++) if (!(f->args[i]->flags & FLAG_OPT_VAR)) {
+ if (f->args[i]->flags & FLAG_EXCL) {
+ assert (gen_field_autocomplete_excl (f->args[i], vars, i + 1, 1) >= 0);
+ } else {
+ assert (gen_field_autocomplete (f->args[i], vars, i + 1, 1, 0) >= 0);
+ }
+ }
+
+ printf (" struct paramed_type *R = \n");
+ assert (gen_create (f->result, vars, 2) >= 0);
+ printf (";\n");
+
+ free (vars);
+ printf (" return paramed_type_dup (R);\n");
+ printf ("}\n");
+}
+
+void gen_type_do_autocomplete (struct tl_type *t) {
+ printf ("int do_autocomplete_type_%s (const char *text, int text_len, int index, char **R) {\n", t->print_id);
+ printf (" index ++;\n");
+ int i;
+ for (i = 0; i < t->constructors_num; i++) {
+ printf (" if (index == %d) { if (!strncmp (text, \"%s\", text_len)) { *R = tstrdup (\"%s\"); return index; } else { index ++; }}\n", i, t->constructors[i]->id, t->constructors[i]->id);
+ }
+ printf (" *R = 0;\n");
+ printf (" return 0;\n");
+ printf ("}\n");
+}
+
+struct tl_tree *read_num_var (int *var_num) {
+ struct tl_tree_var_num *T = malloc0 (sizeof (*T));
+ T->self.flags = 0;
+ T->self.methods = &tl_pvar_num_methods;;
+ T->dif = get_int ();
+ T->var_num = get_int ();
+
+ if (T->var_num >= *var_num) {
+ *var_num = T->var_num + 1;
+ }
+ assert (!(T->self.flags & FLAG_NOVAR));
+ return (void *)T;
+}
+
+struct tl_tree *read_type_var (int *var_num) {
+ struct tl_tree_var_type *T = malloc0 (sizeof (*T));
+ T->self.methods = &tl_pvar_type_methods;
+ T->var_num = get_int ();
+ T->self.flags = get_int ();
+ if (T->var_num >= *var_num) {
+ *var_num = T->var_num + 1;
+ }
+ assert (!(T->self.flags & (FLAG_NOVAR | FLAG_BARE)));
+ return (void *)T;
+}
+
+struct tl_tree *read_array (int *var_num) {
+ struct tl_tree_array *T = malloc0 (sizeof (*T));
+ T->self.methods = &tl_parray_methods;
+ T->self.flags = 0;
+ T->multiplicity = read_nat_expr (var_num);
+ assert (T->multiplicity);
+
+ T->args_num = get_int ();
+ assert (T->args_num >= 0 && T->args_num <= 1000);
+ T->args = malloc0 (sizeof (void *) * T->args_num);
+
+ assert (read_args_list (T->args, T->args_num, var_num) >= 0);
+ T->self.flags |= FLAG_NOVAR;
+ int i;
+ for (i = 0; i < T->args_num; i++) {
+ if (!(T->args[i]->flags & FLAG_NOVAR)) {
+ T->self.flags &= ~FLAG_NOVAR;
+ }
+ }
+ return (void *)T;
+}
+
+struct tl_tree *read_type (int *var_num) {
+ struct tl_tree_type *T = malloc0 (sizeof (*T));
+ T->self.methods = &tl_ptype_methods;
+
+ T->type = tl_type_get_by_name (get_int ());
+ assert (T->type);
+ T->self.flags = get_int ();
+ T->children_num = get_int ();
+ assert (T->type->arity == T->children_num);
+ T->children = malloc0 (sizeof (void *) * T->children_num);
+ int i;
+ T->self.flags |= FLAG_NOVAR;
+ for (i = 0; i < T->children_num; i++) {
+ int t = get_int ();
+ if (t == (int)TLS_EXPR_NAT) {
+#ifdef _MSC_VER
+ assert ((T->type->params_types & (1i64 << i)));
+#else
+ assert ((T->type->params_types & (1 << i)));
+#endif
+ T->children[i] = read_nat_expr (var_num);
+ } else if (t == (int)TLS_EXPR_TYPE) {
+#ifdef _MSC_VER
+ assert (!(T->type->params_types & (1i64 << i)));
+#else
+ assert (!(T->type->params_types & (1 << i)));
+#endif
+ T->children[i] = read_type_expr (var_num);
+ } else {
+ assert (0);
+ }
+ if (!TL_IS_NAT_VAR (T->children[i]) && !(T->children[i]->flags & FLAG_NOVAR)) {
+ T->self.flags &= ~FLAG_NOVAR;
+ }
+ }
+ return (void *)T;
+}
+
+struct tl_tree *read_tree (int *var_num) {
+ int x = get_int ();
+ if (verbosity >= 2) {
+ fprintf (stderr, "read_tree: constructor = 0x%08x\n", x);
+ }
+ switch (x) {
+ case TLS_TREE_NAT_CONST:
+ return read_num_const (var_num);
+ case TLS_TREE_NAT_VAR:
+ return read_num_var (var_num);
+ case TLS_TREE_TYPE_VAR:
+ return read_type_var (var_num);
+ case TLS_TREE_TYPE:
+ return read_type (var_num);
+ case TLS_TREE_ARRAY:
+ return read_array (var_num);
+ default:
+ if (verbosity) {
+ fprintf (stderr, "x = %d\n", x);
+ }
+ assert (0);
+ return 0;
+ }
+}
+
+struct tl_tree *read_type_expr (int *var_num) {
+ int x = get_int ();
+ if (verbosity >= 2) {
+ fprintf (stderr, "read_type_expr: constructor = 0x%08x\n", x);
+ }
+ switch (x) {
+ case TLS_TYPE_VAR:
+ return read_type_var (var_num);
+ case TLS_TYPE_EXPR:
+ return read_type (var_num);
+ case TLS_ARRAY:
+ return read_array (var_num);
+ default:
+ if (verbosity) {
+ fprintf (stderr, "x = %d\n", x);
+ }
+ assert (0);
+ return 0;
+ }
+}
+
+struct tl_tree *read_nat_expr (int *var_num) {
+ int x = get_int ();
+ if (verbosity >= 2) {
+ fprintf (stderr, "read_nat_expr: constructor = 0x%08x\n", x);
+ }
+ switch (x) {
+ case TLS_NAT_CONST:
+ return read_num_const (var_num);
+ case TLS_NAT_VAR:
+ return read_num_var (var_num);
+ default:
+ if (verbosity) {
+ fprintf (stderr, "x = %d\n", x);
+ }
+ assert (0);
+ return 0;
+ }
+}
+
+struct tl_tree *read_expr (int *var_num) {
+ int x = get_int ();
+ if (verbosity >= 2) {
+ fprintf (stderr, "read_nat_expr: constructor = 0x%08x\n", x);
+ }
+ switch (x) {
+ case TLS_EXPR_NAT:
+ return read_nat_expr (var_num);
+ case TLS_EXPR_TYPE:
+ return read_type_expr (var_num);
+ default:
+ if (verbosity) {
+ fprintf (stderr, "x = %d\n", x);
+ }
+ assert (0);
+ return 0;
+ }
+}
+
+int read_args_list (struct arg **args, int args_num, int *var_num) {
+ int i;
+ for (i = 0; i < args_num; i++) {
+ args[i] = malloc0 (sizeof (struct arg));
+ args[i]->exist_var_num = -1;
+ args[i]->exist_var_bit = 0;
+ assert (get_int () == TLS_ARG_V2);
+ args[i]->id = get_string ();
+ args[i]->flags = get_int ();
+
+ if (args[i]->flags & 2) {
+ args[i]->flags &= ~2;
+ args[i]->flags |= (1 << 20);
+ }
+ if (args[i]->flags & 4) {
+ args[i]->flags &= ~4;
+ args[i]->var_num = get_int ();
+ } else {
+ args[i]->var_num = -1;
+ }
+
+ int x = args[i]->flags & 6;
+ args[i]->flags &= ~6;
+ if (x & 2) { args[i]->flags |= 4; }
+ if (x & 4) { args[i]->flags |= 2; }
+
+ if (args[i]->var_num >= *var_num) {
+ *var_num = args[i]->var_num + 1;
+ }
+ if (args[i]->flags & FLAG_OPT_FIELD) {
+ args[i]->exist_var_num = get_int ();
+ args[i]->exist_var_bit = get_int ();
+ }
+ args[i]->type = read_type_expr (var_num);
+ assert (args[i]->type);
+
+ if (args[i]->var_num < 0 && args[i]->exist_var_num < 0 && (TL_IS_NAT_VAR(args[i]->type) || (args[i]->type->flags & FLAG_NOVAR))) {
+ args[i]->flags |= FLAG_NOVAR;
+ }
+ }
+ return 1;
+}
+
+int read_combinator_args_list (struct tl_combinator *c) {
+ c->args_num = get_int ();
+ if (verbosity >= 2) {
+ fprintf (stderr, "c->id = %s, c->args_num = %d\n", c->id, c->args_num);
+ }
+ assert (c->args_num >= 0 && c->args_num <= 1000);
+ c->args = malloc0 (sizeof (void *) * c->args_num);
+ c->var_num = 0;
+ return read_args_list (c->args, c->args_num, &c->var_num);
+}
+
+int read_combinator_right (struct tl_combinator *c) {
+ assert (get_int () == TLS_COMBINATOR_RIGHT_V2);
+ c->result = read_type_expr (&c->var_num);
+ assert (c->result);
+ return 1;
+}
+
+int read_combinator_left (struct tl_combinator *c) {
+ int x = get_int ();
+
+ if (x == (int)TLS_COMBINATOR_LEFT_BUILTIN) {
+ c->args_num = 0;
+ c->var_num = 0;
+ c->args = 0;
+ return 1;
+ } else if (x == TLS_COMBINATOR_LEFT) {
+ return read_combinator_args_list (c);
+ } else {
+ assert (0);
+ return -1;
+ }
+}
+
+char *gen_print_id (const char *id) {
+ static char s[1000];
+ char *ptr = s;
+ int first = 1;
+ while (*id) {
+ if (*id == '.') {
+ *(ptr ++) = '_';
+ } else if (*id >= 'A' && *id <= 'Z') {
+ if (!first && *(ptr - 1) != '_') {
+ *(ptr ++) = '_';
+ }
+ *(ptr ++) = *id - 'A' + 'a';
+ } else {
+ *(ptr ++) = *id;
+ }
+ id ++;
+ first = 0;
+ }
+ *ptr = 0;
+ return s;
+}
+
+struct tl_combinator *read_combinators (int v) {
+ struct tl_combinator *c = malloc0 (sizeof (*c));
+ c->name = get_int ();
+ c->id = get_string ();
+ c->print_id = strdup (gen_print_id (c->id));
+ assert (c->print_id);
+ //char *s = c->id;
+ //while (*s) { if (*s == '.') { *s = '_'; } ; s ++;}
+ int x = get_int ();
+ struct tl_type *t = tl_type_get_by_name (x);
+ assert (t || (!x && v == 3));
+
+ if (v == 2) {
+ assert (t->extra < t->constructors_num);
+ t->constructors[t->extra ++] = c;
+ c->is_fun = 0;
+ } else {
+ assert (v == 3);
+ tl_function_insert_by_name (c);
+ c->is_fun = 1;
+ }
+ assert (read_combinator_left (c) >= 0);
+ assert (read_combinator_right (c) >= 0);
+ return c;
+}
+
+struct tl_type *read_types (void) {
+ struct tl_type *t = malloc0 (sizeof (*t));
+ t->name = get_int ();
+ t->id = get_string ();
+ t->print_id = strdup (gen_print_id (t->id));
+ assert (t->print_id);
+
+ t->constructors_num = get_int ();
+ assert (t->constructors_num >= 0 && t->constructors_num <= 1000);
+
+ t->constructors = malloc0 (sizeof (void *) * t->constructors_num);
+ t->flags = get_int ();
+ t->arity = get_int ();
+ t->params_types = get_long (); // params_types
+ t->extra = 0;
+ tl_type_insert_by_name (t);
+ return t;
+}
+
+
+
+char *gen_what[1000];
+int gen_what_cnt;
+
+
+void gen_skip_header (void) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ printf ("int skip_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id);
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ printf ("int skip_type_%s (struct paramed_type *T);\n", tps[i]->print_id);
+ printf ("int skip_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id);
+ }
+ printf ("int skip_type_any (struct paramed_type *T);\n");
+}
+
+void gen_skip_source (void) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#include \"auto-skip.h\"\n");
+ printf ("#include \"..\\auto-static-skip.c\"\n");
+ printf ("#include \"..\\mtproto-common.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+
+ printf ("#include \"auto/auto-skip.h\"\n");
+ printf ("#include \"auto-static-skip.c\"\n");
+ printf ("#include \"mtproto-common.h\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ gen_constructor_skip (tps[i]->constructors[j]);
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ gen_type_skip (tps[i]);
+ }
+ printf ("int skip_type_any (struct paramed_type *T) {\n");
+ printf (" switch (T->type->name) {\n");
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
+ printf (" case 0x%08x: return skip_type_%s (T);\n", tps[i]->name, tps[i]->print_id);
+ printf (" case 0x%08x: return skip_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id);
+ }
+ printf (" default: return -1; }\n");
+ printf ("}\n");
+}
+
+void gen_fetch_header (void) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+ printf ("#include <stdio.h>\n");
+
+ printf ("struct tgl_state;\n");
+ printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n");
+
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ printf ("int fetch_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id);
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ printf ("int fetch_type_%s (struct paramed_type *T);\n", tps[i]->print_id);
+ printf ("int fetch_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id);
+ }
+ printf ("int fetch_type_any (struct paramed_type *T);\n");
+}
+
+void gen_fetch_source (void) {
+ printf ("#ifdef _MSC_VER \n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#include \"auto-fetch.h\"\n");
+ printf ("#include \"auto-skip.h\"\n");
+ printf ("#include \"..\\auto-static-fetch.c\"\n");
+ printf ("#include \"..\\mtproto-common.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+
+ printf ("#include \"auto/auto-fetch.h\"\n");
+ printf ("#include \"auto/auto-skip.h\"\n");
+ printf ("#include \"auto-static-fetch.c\"\n");
+ printf ("#include \"mtproto-common.h\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ gen_constructor_fetch (tps[i]->constructors[j]);
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ gen_type_fetch (tps[i]);
+ }
+ printf ("int fetch_type_any (struct paramed_type *T) {\n");
+ printf (" switch (T->type->name) {\n");
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
+ printf (" case 0x%08x: return fetch_type_%s (T);\n", tps[i]->name, tps[i]->print_id);
+ printf (" case 0x%08x: return fetch_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id);
+ }
+ printf (" default: return -1; }\n");
+ printf ("}\n");
+}
+
+void gen_store_header (void) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+
+
+ printf ("struct paramed_type *tglf_extf_store (struct tgl_state *TLS, const char *data, int data_len);\n");
+ printf ("int tglf_store_type (struct tgl_state *TLS, const char *work, int work_len, struct paramed_type *P);\n");
+
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ printf ("int store_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id);
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ printf ("int store_type_%s (struct paramed_type *T);\n", tps[i]->print_id);
+ printf ("int store_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id);
+ }
+ for (i = 0; i < fn; i++) {
+ printf ("struct paramed_type *store_function_%s (void);\n", fns[i]->print_id);
+ }
+ printf ("int store_type_any (struct paramed_type *T);\n");
+ printf ("struct paramed_type *store_function_any (void);\n");
+}
+
+void gen_store_source (void ) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#include \"..\\mtproto-common.h\"\n");
+ printf ("#include \"auto-store.h\"\n");
+ printf ("#include \"..\\auto-static-store.c\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+
+ printf ("#include \"mtproto-common.h\"\n");
+ printf ("#include \"auto/auto-store.h\"\n");
+ printf ("#include \"auto-static-store.c\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ gen_constructor_store (tps[i]->constructors[j]);
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ gen_type_store (tps[i]);
+ }
+ for (i = 0; i < fn; i++) {
+ gen_function_store (fns[i]);
+ }
+ printf ("int store_type_any (struct paramed_type *T) {\n");
+ printf (" switch (T->type->name) {\n");
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
+ printf (" case 0x%08x: return store_type_%s (T);\n", tps[i]->name, tps[i]->print_id);
+ printf (" case 0x%08x: return store_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id);
+ }
+ printf (" default: return -1; }\n");
+ printf ("}\n");
+ printf ("struct paramed_type *store_function_any (void) {\n");
+ printf (" if (cur_token_len != 1 || *cur_token != '(') { return 0; }\n");
+ printf (" local_next_token ();\n");
+ printf (" if (cur_token_len == 1 || *cur_token == '.') { \n");
+ printf (" local_next_token ();\n");
+ printf (" if (cur_token_len != 1 || *cur_token != '=') { return 0; }\n");
+ printf (" local_next_token ();\n");
+ printf (" };\n");
+ printf (" if (cur_token_len < 0) { return 0; }\n");
+ for (i = 0; i < fn; i++) {
+ printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (fns[i]->id), fns[i]->id);
+ printf (" out_int (0x%08x);\n", fns[i]->name);
+ printf (" local_next_token ();\n");
+ printf (" struct paramed_type *P = store_function_%s ();\n", fns[i]->print_id);
+ printf (" if (!P) { return 0; }\n");
+ printf (" if (cur_token_len != 1 || *cur_token != ')') { return 0; }\n");
+ printf (" local_next_token ();\n");
+ printf (" return P;\n");
+ printf (" }\n");
+ }
+ printf (" return 0;\n");
+ printf ("}\n");
+}
+
+void gen_autocomplete_header (void) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+
+ printf ("int tglf_extf_autocomplete (struct tgl_state *TLS, const char *text, int text_len, int index, char **R, char *data, int data_len);\n");
+
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ printf ("int autocomplete_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id);
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ printf ("int autocomplete_type_%s (struct paramed_type *T);\n", tps[i]->print_id);
+ printf ("int do_autocomplete_type_%s (const char *text, int len, int index, char **R);\n", tps[i]->print_id);
+ printf ("int autocomplete_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id);
+ }
+ printf ("int autocomplete_type_any (struct paramed_type *T);\n");
+ printf ("struct paramed_type *autocomplete_function_any (void);\n");
+}
+
+void gen_autocomplete_source (void) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#include \"..\\mtproto-common.h\"\n");
+ printf ("#include \"auto-autocomplete.h\"\n");
+ printf ("#include \"..\\auto-static-autocomplete.c\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+
+ printf ("#include \"mtproto-common.h\"\n");
+ printf ("#include \"auto/auto-autocomplete.h\"\n");
+ printf ("#include \"auto-static-autocomplete.c\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ gen_constructor_autocomplete (tps[i]->constructors[j]);
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ gen_type_autocomplete (tps[i]);
+ gen_type_do_autocomplete (tps[i]);
+ }
+ for (i = 0; i < fn; i++) {
+ gen_function_autocomplete (fns[i]);
+ }
+ printf ("int autocomplete_type_any (struct paramed_type *T) {\n");
+ printf (" switch (T->type->name) {\n");
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
+ printf (" case 0x%08x: return autocomplete_type_%s (T);\n", tps[i]->name, tps[i]->print_id);
+ printf (" case 0x%08x: return autocomplete_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id);
+ }
+ printf (" default: return -1; }\n");
+ printf ("}\n");
+ printf ("int do_autocomplete_function (const char *text, int text_len, int index, char **R) {\n");
+ printf (" index ++;\n");
+ for (i = 0; i < fn; i++) {
+ printf (" if (index == %d) { if (!strncmp (text, \"%s\", text_len)) { *R = tstrdup (\"%s\"); return index; } else { index ++; }}\n", i, fns[i]->id, fns[i]->id);
+ }
+ printf (" *R = 0;\n");
+ printf (" return 0;\n");
+ printf ("}\n");
+ printf ("struct paramed_type *autocomplete_function_any (void) {\n");
+ printf (" expect_token_ptr_autocomplete (\"(\", 1);\n");
+ printf (" if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_function); }\n");
+ printf (" if (cur_token_len < 0) { return 0; }\n");
+ for (i = 0; i < fn; i++) {
+ printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (fns[i]->id), fns[i]->id);
+ printf (" local_next_token ();\n");
+ printf (" struct paramed_type *P = autocomplete_function_%s ();\n", fns[i]->print_id);
+ printf (" if (!P) { return 0; }\n");
+ printf (" expect_token_ptr_autocomplete (\")\", 1);\n");
+ printf (" return P;\n");
+ printf (" }\n");
+ }
+ printf (" return 0;\n");
+ printf ("}\n");
+}
+
+void gen_types_header (void) {
+ printf ("#ifndef __AUTO_TYPES_H__\n");
+ printf ("#define __AUTO_TYPES_H__\n");
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+ printf ("#endif\n");
+ int i;
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ printf ("extern struct tl_type_descr tl_type_%s;\n", tps[i]->print_id);
+ printf ("extern struct tl_type_descr tl_type_bare_%s;\n", tps[i]->print_id);
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ printf ("struct tl_ds_%s {\n", tps[i]->print_id);
+#if !defined(__STDC__) || __STDC_VERSION__ < 199901L
+ if (tps[i]->constructors_num == 1 && tps[i]->constructors[0]->args_num == 0 &&
+ !(!strcmp (tps[i]->id, "String") || !strcmp (tps[i]->id, "Bytes"))) {
+ printf (" int : 0;\n");
+ printf ("};\n");
+ continue;
+ }
+#endif
+
+ if (!strcmp (tps[i]->id, "String") || !strcmp (tps[i]->id, "Bytes")) {
+ printf (" int len;\n");
+ printf (" char *data;\n");
+ printf ("};\n");
+ continue;
+ }
+ int j;
+ if (tps[i]->constructors_num > 1) {
+ printf (" unsigned magic;\n");
+ }
+ for (j = 0; j < tps[i]->constructors_num; j++) {
+ struct tl_combinator *c = tps[i]->constructors[j];
+ int k;
+ for (k = 0; k < c->args_num; k++) {
+ if ((c->args[k]->flags & FLAG_OPT_VAR)) { continue; }
+ if (c->args[k]->id && strlen (c->args[k]->id) && j > 0) {
+ int l;
+ int ok = 1;
+ for (l = 0; l < j && ok; l++) {
+ int m;
+ struct tl_combinator *d = tps[i]->constructors[l];
+ for (m = 0; m < d->args_num && ok; m++) {
+ if (d->args[m]->id && !strcmp (d->args[m]->id, c->args[k]->id)) {
+ ok = 0;
+ }
+ }
+ }
+ if (!ok) { continue; }
+ }
+
+ printf (" ");
+ print_c_type_name (c->args[k]->type, " ", 1);
+
+ if (!c->args[k]->id || !strlen (c->args[k]->id)) {
+ assert (!j);
+
+ printf ("f%d;\n", k);
+ } else {
+ printf ("%s;\n", c->args[k]->id);
+ }
+ }
+ }
+ printf ("};\n");
+ }
+ printf ("#endif\n");
+}
+
+void gen_types_source (void) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+ printf ("#endif\n");
+ int i;
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ printf ("struct tl_type_descr tl_type_%s = {\n", tps[i]->print_id);
+ printf (" .name = 0x%08x,\n", tps[i]->name);
+ printf (" .id = \"%s\"\n,", tps[i]->id);
+ printf (" .params_num = %d,\n", tps[i]->arity);
+ printf (" .params_types = %"_PRINTF_INT64_"d\n", tps[i]->params_types);
+ printf ("};\n");
+ printf ("struct tl_type_descr tl_type_bare_%s = {\n", tps[i]->print_id);
+ printf (" .name = 0x%08x,\n", ~tps[i]->name);
+ printf (" .id = \"Bare_%s\",\n", tps[i]->id);
+ printf (" .params_num = %d,\n", tps[i]->arity);
+ printf (" .params_types = %"_PRINTF_INT64_"d\n", tps[i]->params_types);
+ printf ("};\n");
+ }
+}
+
+void gen_fetch_ds_source (void) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#include \"auto-fetch-ds.h\"\n");
+ printf ("#include \"auto-skip.h\"\n");
+ printf ("#include \"auto-types.h\"\n");
+ printf ("#include \"..\\auto-static-fetch-ds.c\"\n");
+ printf ("#include \"..\\mtproto-common.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+
+ printf ("#include \"auto/auto-fetch-ds.h\"\n");
+ printf ("#include \"auto/auto-skip.h\"\n");
+ printf ("#include \"auto/auto-types.h\"\n");
+ printf ("#include \"auto-static-fetch-ds.c\"\n");
+ printf ("#include \"mtproto-common.h\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ gen_constructor_fetch_ds (tps[i]->constructors[j]);
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ gen_type_fetch_ds (tps[i]);
+ }
+ printf ("void *fetch_ds_type_any (struct paramed_type *T) {\n");
+ printf (" switch (T->type->name) {\n");
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
+ printf (" case 0x%08x: return fetch_ds_type_%s (T);\n", tps[i]->name, tps[i]->print_id);
+ printf (" case 0x%08x: return fetch_ds_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id);
+ }
+ printf (" default: return NULL; }\n");
+ printf ("}\n");
+}
+
+void gen_fetch_ds_header (void) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+ printf ("#include <stdio.h>\n");
+
+ printf ("struct tgl_state;\n");
+ //printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n");
+
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ print_c_type_name (tps[i]->constructors[j]->result, "", 0);
+ printf ("fetch_ds_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id);
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ print_c_type_name (tps[i]->constructors[0]->result, "", 0);
+ printf ("fetch_ds_type_%s (struct paramed_type *T);\n", tps[i]->print_id);
+ print_c_type_name (tps[i]->constructors[0]->result, "", 0);
+ printf ("fetch_ds_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id);
+ }
+ printf ("void *fetch_ds_type_any (struct paramed_type *T);\n");
+}
+
+void gen_free_ds_source (void) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#include \"auto-free-ds.h\"\n");
+ printf ("#include \"auto-skip.h\"\n");
+ printf ("#include \"auto-types.h\"\n");
+ printf ("#include \"..\\auto-static-free-ds.c\"\n");
+ printf ("#include \"..\\mtproto-common.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+
+ printf ("#include \"auto/auto-free-ds.h\"\n");
+ printf ("#include \"auto/auto-skip.h\"\n");
+ printf ("#include \"auto/auto-types.h\"\n");
+ printf ("#include \"auto-static-free-ds.c\"\n");
+ printf ("#include \"mtproto-common.h\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ gen_constructor_free_ds (tps[i]->constructors[j]);
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ gen_type_free_ds (tps[i]);
+ }
+ printf ("void free_ds_type_any (void *D, struct paramed_type *T) {\n");
+ printf (" switch (T->type->name) {\n");
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
+ printf (" case 0x%08x: free_ds_type_%s (D, T); return;\n", tps[i]->name, tps[i]->print_id);
+ printf (" case 0x%08x: free_ds_type_%s (D, T); return;\n", ~tps[i]->name, tps[i]->print_id);
+ }
+ printf (" default: return; }\n");
+ printf ("}\n");
+}
+
+void gen_free_ds_header (void) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#include \"auto-types.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+ printf ("#include \"auto/auto-types.h\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+ printf ("#include <stdio.h>\n");
+
+ printf ("struct tgl_state;\n");
+ //printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n");
+
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ printf ("void free_ds_constructor_%s (", tps[i]->constructors[j]->print_id);
+ print_c_type_name (tps[i]->constructors[j]->result, "", 0);
+ printf ("D, struct paramed_type *T);\n");
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ printf ("void free_ds_type_%s (", tps[i]->print_id);
+ print_c_type_name (tps[i]->constructors[0]->result, "", 0);
+ printf ("D, struct paramed_type *T);\n");
+ }
+ printf ("void free_ds_type_any (void *D, struct paramed_type *T);\n");
+}
+
+void gen_store_ds_source (void) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#include \"auto-store-ds.h\"\n");
+ printf ("#include \"auto-skip.h\"\n");
+ printf ("#include \"auto-types.h\"\n");
+ printf ("#include \"..\\auto-static-store-ds.c\"\n");
+ printf ("#include \"..\\mtproto-common.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+
+ printf ("#include \"auto/auto-store-ds.h\"\n");
+ printf ("#include \"auto/auto-skip.h\"\n");
+ printf ("#include \"auto/auto-types.h\"\n");
+ printf ("#include \"auto-static-store-ds.c\"\n");
+ printf ("#include \"mtproto-common.h\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ gen_constructor_store_ds (tps[i]->constructors[j]);
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ gen_type_store_ds (tps[i]);
+ }
+ printf ("void store_ds_type_any (void *D, struct paramed_type *T) {\n");
+ printf (" switch (T->type->name) {\n");
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
+ printf (" case 0x%08x: store_ds_type_%s (D, T); return;\n", tps[i]->name, tps[i]->print_id);
+ printf (" case 0x%08x: store_ds_type_bare_%s (D, T); return;\n", ~tps[i]->name, tps[i]->print_id);
+ }
+ printf (" default: return; }\n");
+ printf ("}\n");
+}
+
+void gen_store_ds_header (void) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#include \"auto-types.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+ printf ("#include \"auto/auto-types.h\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+ printf ("#include <stdio.h>\n");
+
+ printf ("struct tgl_state;\n");
+ //printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n");
+
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ printf ("void store_ds_constructor_%s (", tps[i]->constructors[j]->print_id);
+ print_c_type_name (tps[i]->constructors[j]->result, "", 0);
+ printf ("D, struct paramed_type *T);\n");
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ printf ("void store_ds_type_%s (", tps[i]->print_id);
+ print_c_type_name (tps[i]->constructors[0]->result, "", 0);
+ printf ("D, struct paramed_type *T);\n");
+ printf ("void store_ds_type_bare_%s (", tps[i]->print_id);
+ print_c_type_name (tps[i]->constructors[0]->result, "", 0);
+ printf ("D, struct paramed_type *T);\n");
+ }
+ printf ("void store_ds_type_any (void *D, struct paramed_type *T);\n");
+}
+
+void gen_print_ds_header (void) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#include \"auto-types.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+ printf ("#include \"auto-types.h\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+ printf ("#include <stdio.h>\n");
+
+ printf ("struct tgl_state;\n");
+ printf ("char *tglf_extf_print_ds (struct tgl_state *TLS, void *DS, struct paramed_type *T);\n");
+
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ printf ("int print_ds_constructor_%s (", tps[i]->constructors[j]->print_id);
+ print_c_type_name (tps[i]->constructors[j]->result, "", 0);
+ printf ("DS, struct paramed_type *T);\n");
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ printf ("int print_ds_type_%s (", tps[i]->print_id);
+ print_c_type_name (tps[i]->constructors[0]->result, "", 0);
+ printf ("DS, struct paramed_type *T);\n");
+ printf ("int print_ds_type_bare_%s (", tps[i]->print_id);
+ print_c_type_name (tps[i]->constructors[0]->result, "", 0);
+ printf ("DS, struct paramed_type *T);\n");
+ }
+ printf ("int print_ds_type_any (void *DS, struct paramed_type *T);\n");
+}
+
+void gen_print_ds_source (void) {
+ printf ("#ifdef _MSC_VER\n");
+ printf ("#include \"..\\auto.h\"\n");
+ printf ("#include \"auto-print-ds.h\"\n");
+ printf ("#include \"auto-skip.h\"\n");
+ printf ("#include \"..\\auto-static-print-ds.c\"\n");
+ printf ("#include \"..\\mtproto-common.h\"\n");
+ printf ("#else\n");
+ printf ("#include \"auto.h\"\n");
+
+ printf ("#include \"auto/auto-print-ds.h\"\n");
+ printf ("#include \"auto/auto-skip.h\"\n");
+ printf ("#include \"auto-static-print-ds.c\"\n");
+ printf ("#include \"mtproto-common.h\"\n");
+ printf ("#endif\n");
+ printf ("#include <assert.h>\n");
+ int i, j;
+ for (i = 0; i < tn; i++) {
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ gen_constructor_print_ds (tps[i]->constructors[j]);
+ }
+ }
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ gen_type_print_ds (tps[i]);
+ }
+ printf ("int print_ds_type_any (void *DS, struct paramed_type *T) {\n");
+ printf (" switch (T->type->name) {\n");
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) {
+ printf (" case 0x%08x: return print_ds_type_%s (DS, T);\n", tps[i]->name, tps[i]->print_id);
+ printf (" case 0x%08x: return print_ds_type_bare_%s (DS, T);\n", ~tps[i]->name, tps[i]->print_id);
+ }
+ printf (" default: return -1; }\n");
+ printf ("}\n");
+}
+
+int parse_tlo_file (void) {
+ buf_end = buf_ptr + (buf_size / 4);
+ assert (get_int () == TLS_SCHEMA_V2);
+
+ get_int (); // version
+ get_int (); // date
+
+ tn = 0;
+ fn = 0;
+ cn = 0;
+ int i;
+
+ tn = get_int ();
+ assert (tn >= 0 && tn < 10000);
+ tps = malloc0 (sizeof (void *) * tn);
+
+ if (verbosity >= 2) {
+ fprintf (stderr, "Found %d types\n", tn);
+ }
+
+ for (i = 0; i < tn; i++) {
+ assert (get_int () == TLS_TYPE);
+ tps[i] = read_types ();
+ assert (tps[i]);
+ }
+
+ cn = get_int ();
+ assert (cn >= 0);
+
+ if (verbosity >= 2) {
+ fprintf (stderr, "Found %d constructors\n", cn);
+ }
+
+ for (i = 0; i < cn; i++) {
+ assert (get_int () == TLS_COMBINATOR);
+ assert (read_combinators (2));
+ }
+
+ fn = get_int ();
+ assert (fn >= 0 && fn < 10000);
+
+ fns = malloc0 (sizeof (void *) * fn);
+
+ if (verbosity >= 2) {
+ fprintf (stderr, "Found %d functions\n", fn);
+ }
+
+ for (i = 0; i < fn; i++) {
+ assert (get_int () == TLS_COMBINATOR);
+ fns[i] = read_combinators (3);
+ assert (fns[i]);
+ }
+
+ assert (buf_ptr == buf_end);
+
+
+ int j;
+ for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) {
+ tps[i]->name = 0;
+ for (j = 0; j < tps[i]->constructors_num; j ++) {
+ tps[i]->name ^= tps[i]->constructors[j]->name;
+ }
+ }
+
+
+ for (i = 0; i < gen_what_cnt; i++) {
+ if (!strcmp (gen_what[i], "fetch")) {
+ gen_fetch_source ();
+ } else if (!strcmp (gen_what[i], "fetch-header")) {
+ gen_fetch_header ();
+ } else if (!strcmp (gen_what[i], "skip")) {
+ gen_skip_source ();
+ } else if (!strcmp (gen_what[i], "skip-header")) {
+ gen_skip_header ();
+ } else if (!strcmp (gen_what[i], "store")) {
+ gen_store_source ();
+ } else if (!strcmp (gen_what[i], "store-header")) {
+ gen_store_header ();
+ } else if (!strcmp (gen_what[i], "autocomplete")) {
+ gen_autocomplete_source ();
+ } else if (!strcmp (gen_what[i], "autocomplete-header")) {
+ gen_autocomplete_header ();
+ } else if (!strcmp (gen_what[i], "types")) {
+ gen_types_source ();
+ } else if (!strcmp (gen_what[i], "types-header")) {
+ gen_types_header ();
+ } else if (!strcmp (gen_what[i], "fetch-ds")) {
+ gen_fetch_ds_source ();
+ } else if (!strcmp (gen_what[i], "fetch-ds-header")) {
+ gen_fetch_ds_header ();
+ } else if (!strcmp (gen_what[i], "free-ds")) {
+ gen_free_ds_source ();
+ } else if (!strcmp (gen_what[i], "free-ds-header")) {
+ gen_free_ds_header ();
+ } else if (!strcmp (gen_what[i], "store-ds")) {
+ gen_store_ds_source ();
+ } else if (!strcmp (gen_what[i], "store-ds-header")) {
+ gen_store_ds_header ();
+ } else if (!strcmp (gen_what[i], "print-ds")) {
+ gen_print_ds_source ();
+ } else if (!strcmp (gen_what[i], "print-ds-header")) {
+ gen_print_ds_header ();
+ } else {
+ assert (0);
+ }
+ }
+
+
+ return 0;
+}
+
+void usage (void) {
+ printf ("usage: generate [-v] [-h] <tlo-file>\n"
+ );
+ exit (2);
+}
+
+#ifndef _MSC_VER
+void logprintf (const char *format, ...) __attribute__ ((format (printf, 1, 2)));
+void logprintf (const char *format __attribute__ ((unused)), ...) {
+}
+#endif
+/*
+void hexdump (int *in_ptr, int *in_end) {
+ int *ptr = in_ptr;
+ while (ptr < in_end) { printf (" %08x", *(ptr ++)); }
+ printf ("\n");
+}*/
+
+#ifdef HAVE_EXECINFO_H
+void print_backtrace (void) {
+ void *buffer[255];
+ const int calls = backtrace (buffer, sizeof (buffer) / sizeof (void *));
+ backtrace_symbols_fd (buffer, calls, 1);
+}
+#else
+void print_backtrace (void) {
+ if (write (1, "No libexec. Backtrace disabled\n", 32) < 0) {
+ // Sad thing
+ }
+}
+#endif
+
+void sig_segv_handler (int signum __attribute__ ((unused))) {
+ if (write (1, "SIGSEGV received\n", 18) < 0) {
+ // Sad thing
+ }
+ print_backtrace ();
+ exit (EXIT_FAILURE);
+}
+
+void sig_abrt_handler (int signum __attribute__ ((unused))) {
+ if (write (1, "SIGABRT received\n", 18) < 0) {
+ // Sad thing
+ }
+ print_backtrace ();
+ exit (EXIT_FAILURE);
+}
+
+int main (int argc, char **argv) {
+ signal (SIGSEGV, sig_segv_handler);
+ signal (SIGABRT, sig_abrt_handler);
+ int i;
+ while ((i = getopt (argc, argv, "vhHg:")) != -1) {
+ switch (i) {
+ case 'h':
+ usage ();
+ return 2;
+ case 'v':
+ verbosity++;
+ break;
+ case 'H':
+ header ++;
+ break;
+ case 'g':
+ assert (gen_what_cnt < 1000);
+ gen_what[gen_what_cnt ++] = optarg;
+ break;
+ }
+ }
+
+ if (argc != optind + 1) {
+ usage ();
+ }
+
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ int fd = 0;
+ errno_t err = _sopen_s(&fd, argv[optind], _O_RDONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE);
+ if(err != 0) {
+ char errnoStr[256] = { 0 };
+ strerror_s (errnoStr, 256, err);
+ fprintf (stderr, "Can not open file '%s'. Error %s\n", argv[optind], errnoStr);
+#elif defined(WIN32) || defined(_WIN32)
+ int fd = open (argv[optind], O_RDONLY | O_BINARY);
+ if (fd < 0) {
+ fprintf (stderr, "Can not open file '%s'. Error %s\n", argv[optind], strerror (errno));
+#else
+ int fd = open (argv[optind], O_RDONLY);
+ if (fd < 0) {
+ fprintf (stderr, "Can not open file '%s'. Error %m\n", argv[optind]);
+#endif
+ exit (1);
+ }
+ buf_size = read (fd, buf, (1 << 20));
+ if (fd == (1 << 20)) {
+ fprintf (stderr, "Too big tlo file\n");
+ exit (2);
+ }
+ return parse_tlo_file ();
+}
diff --git a/libs/tgl/src/generate.h b/libs/tgl/src/generate.h
new file mode 100644
index 0000000000..5d46a6c4ec
--- /dev/null
+++ b/libs/tgl/src/generate.h
@@ -0,0 +1,173 @@
+/*
+ This file is part of tgl-libary/generate
+
+ Tgl-library/generate 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.
+
+ Tgl-library/generate 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 tgl-library/generate. If not, see <http://www.gnu.org/licenses/>.
+
+ Copyright Vitaly Valtman 2014-2015
+
+ It is derivative work of VK/KittenPHP-DB-Engine (https://github.com/vk-com/kphp-kdb/)
+ Copyright 2012-2013 Vkontakte Ltd
+ 2012-2013 Vitaliy Valtman
+*/
+
+#ifndef __GENERATE_H__
+#define __GENERATE_H__
+
+struct tl_combinator;
+
+struct tl_type {
+// struct tl_type_methods *methods;
+ char *id;
+ char *print_id;
+ unsigned name;
+ int arity;
+ int flags;
+ int constructors_num;
+ struct tl_combinator **constructors;
+ long long params_types;
+ int extra;
+};
+
+#define NODE_TYPE_TYPE 1
+#define NODE_TYPE_NAT_CONST 2
+#define NODE_TYPE_VAR_TYPE 3
+#define NODE_TYPE_VAR_NUM 4
+#define NODE_TYPE_ARRAY 5
+
+#define MAX_COMBINATOR_VARS 64
+
+#define NAME_VAR_NUM 0x70659eff
+#define NAME_VAR_TYPE 0x2cecf817
+#define NAME_INT 0xa8509bda
+#define NAME_LONG 0x22076cba
+#define NAME_DOUBLE 0x2210c154
+#define NAME_STRING 0xb5286e24
+#define NAME_VECTOR 0x1cb5c415
+#define NAME_MAYBE_TRUE 0x3f9c8ef8
+#define NAME_MAYBE_FALSE 0x27930a7b
+#define NAME_BOOL_FALSE 0xbc799737
+#define NAME_BOOL_TRUE 0x997275b5
+#define NAME_BYTES 0x0ee1379f
+
+
+#define FLAG_OPT_VAR (1 << 17)
+#define FLAG_EXCL (1 << 18)
+#define FLAG_OPT_FIELD (1 << 20)
+#define FLAG_NOVAR (1 << 21)
+#define FLAG_BARE 1
+#define FLAGS_MASK ((1 << 16) - 1)
+#define FLAG_DEFAULT_CONSTRUCTOR (1 << 25)
+#define FLAG_NOCONS (1 << 1)
+
+extern struct tl_tree_methods tl_nat_const_methods;
+extern struct tl_tree_methods tl_nat_const_full_methods;
+extern struct tl_tree_methods tl_pnat_const_full_methods;
+extern struct tl_tree_methods tl_array_methods;
+extern struct tl_tree_methods tl_type_methods;
+extern struct tl_tree_methods tl_parray_methods;
+extern struct tl_tree_methods tl_ptype_methods;
+extern struct tl_tree_methods tl_var_num_methods;
+extern struct tl_tree_methods tl_var_type_methods;
+extern struct tl_tree_methods tl_pvar_num_methods;
+extern struct tl_tree_methods tl_pvar_type_methods;
+#define TL_IS_NAT_VAR(x) (((long)x) & 1)
+#define TL_TREE_METHODS(x) (TL_IS_NAT_VAR (x) ? &tl_nat_const_methods : ((struct tl_tree *)(x))->methods)
+
+#define DEC_REF(x) (TL_TREE_METHODS(x)->dec_ref ((void *)x))
+#define INC_REF(x) (TL_TREE_METHODS(x)->inc_ref ((void *)x))
+#define TYPE(x) (TL_TREE_METHODS(x)->type ((void *)x))
+
+typedef unsigned long long tl_tree_hash_t;
+struct tl_tree;
+
+struct tl_tree_methods {
+ int (*type)(struct tl_tree *T);
+ int (*eq)(struct tl_tree *T, struct tl_tree *U);
+ void (*inc_ref)(struct tl_tree *T);
+ void (*dec_ref)(struct tl_tree *T);
+};
+
+struct tl_tree {
+ int ref_cnt;
+ int flags;
+ //tl_tree_hash_t hash;
+ struct tl_tree_methods *methods;
+};
+/*
+struct tl_tree_nat_const {
+ struct tl_tree self;
+ int value;
+};*/
+
+struct tl_tree_type {
+ struct tl_tree self;
+
+ struct tl_type *type;
+ int children_num;
+ struct tl_tree **children;
+};
+
+struct tl_tree_array {
+ struct tl_tree self;
+
+ struct tl_tree *multiplicity;
+ int args_num;
+ struct arg **args;
+};
+
+struct tl_tree_var_type {
+ struct tl_tree self;
+
+ int var_num;
+};
+
+struct tl_tree_var_num {
+ struct tl_tree self;
+
+ int var_num;
+ int dif;
+};
+
+struct tl_tree_nat_const {
+ struct tl_tree self;
+
+ long long value;
+};
+
+struct arg {
+ char *id;
+ int var_num;
+ int flags;
+ int exist_var_num;
+ int exist_var_bit;
+ struct tl_tree *type;
+};
+
+struct tl_combinator {
+ //struct tl_combinator_methods *methods;
+ char *id;
+ char *print_id;
+ unsigned name;
+ int is_fun;
+ int var_num;
+ int args_num;
+ struct arg **args;
+ struct tl_tree *result;
+ void **IP;
+ void **fIP;
+ int IP_len;
+ int fIP_len;
+};
+
+#endif
diff --git a/libs/tgl/src/mime-types.c b/libs/tgl/src/mime-types.c
new file mode 100644
index 0000000000..0110d3fa2e
--- /dev/null
+++ b/libs/tgl/src/mime-types.c
@@ -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/libs/tgl/src/mtproto-client.c b/libs/tgl/src/mtproto-client.c
new file mode 100644
index 0000000000..37530b5afb
--- /dev/null
+++ b/libs/tgl/src/mtproto-client.c
@@ -0,0 +1,1489 @@
+/*
+ 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>
+#if defined(WIN32) || defined(_WIN32)
+#include <io.h>
+#include <stdint.h>
+#include <winsock2.h>
+#include <ws2tcpip.h>
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
+#else
+#include <unistd.h>
+#include <netdb.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+#include <poll.h>
+#endif
+#include <fcntl.h>
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
+#include <sys/endian.h>
+#endif
+#include <sys/types.h>
+#include <openssl/rand.h>
+#include <openssl/rsa.h>
+#include <openssl/pem.h>
+#include <openssl/sha.h>
+
+//#include "telegram.h"
+#include "queries.h"
+//#include "loop.h"
+#include "tgl-structures.h"
+#include "tgl-binlog.h"
+#include "auto.h"
+#include "auto/auto-types.h"
+#include "auto/auto-skip.h"
+#include "tgl.h"
+#include "mtproto-client.h"
+#include "tools.h"
+#include "tree.h"
+#include "updates.h"
+#include "mtproto-utils.h"
+#include "auto.h"
+#include "tgl-methods-in.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)
+//extern int log_level;
+
+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) {
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ FILE * f = NULL;
+ errno_t err = fopen_s(&f, public_key_name, "r");
+ if (err != 0) {
+#else
+ FILE *f = fopen (public_key_name, "r");
+ if (f == NULL) {
+#endif
+ 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;
+}
+/* }}} */
+
+/* {{{ RECV DH */
+// 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 (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 = (int)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) {
+ //if (!DC->server_time_udelta) {
+ // DC->server_time_udelta = get_utime (CLOCK_REALTIME) - get_utime (CLOCK_MONOTONIC);
+ //}
+ 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);
+ 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 = %"_PRINTF_INT64_"d\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 ();
+ //int seqno = fetch_int ();
+ 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 = %"_PRINTF_INT64_"d\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->flags & TGLDCF_LOGGED_IN)) {
+ 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 = %"_PRINTF_INT64_"d\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 %"_PRINTF_INT64_"d\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 = %"_PRINTF_INT64_"d\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 = %"_PRINTF_INT64_"d, 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 = %"_PRINTF_INT64_"d, 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:
+ case CODE_updates:
+ case CODE_update_short_message:
+ case CODE_update_short_chat_message:
+ case CODE_updates_too_long:
+ tglu_work_any_updates (TLS);
+ 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_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 create_session_connect (struct tgl_state *TLS, struct tgl_session *S) {
+ struct tgl_dc *DC = S->dc;
+
+ if (TLS->ipv6_enabled) {
+ S->c = TLS->net_methods->create_connection (TLS, DC->options[1]->ip, DC->options[1]->port, S, DC, &mtproto_methods);
+ } else {
+ S->c = TLS->net_methods->create_connection (TLS, DC->options[0]->ip, DC->options[0]->port, S, DC, &mtproto_methods);
+ }
+}
+
+static void fail_connection (struct tgl_state *TLS, struct connection *c) {
+ struct tgl_session *S = TLS->net_methods->get_session (c);
+ TLS->net_methods->free (c);
+ create_session_connect (TLS, S);
+}
+
+static void fail_session (struct tgl_state *TLS, struct tgl_session *S) {
+ vlogprintf (E_NOTICE, "failing session %"_PRINTF_INT64_"d\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 %"_PRINTF_INT64_"d (perm_auth_key_id %"_PRINTF_INT64_"d temp_auth_key_id %"_PRINTF_INT64_"d). 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 = %"_PRINTF_INT64_"d, session_id = %"_PRINTF_INT64_"d, msg_id = %"_PRINTF_INT64_"d, 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);
+
+ 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(WIN32) || !defined(_WIN32)
+ setsockopt(c->fd, IPPROTO_TCP, TCP_QUICKACK, (int[]) { 0 }, 4);
+#endif
+#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 (DC->flags & 1) { o = st_authorized;}
+ 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);
+ //char byte = 0xef;
+ //assert (TLS->net_methods->write_out (c, &byte, 1) == 1);
+ //TLS->net_methods->flush_out (c);
+
+ 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);
+ DC->state = st_init; // previous connection was reset
+ send_req_pq_packet (TLS, c);
+ break;
+ }
+ 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) {
+ //c_state = 0;
+ if (!DC->sessions[0]) {
+ tglmp_dc_create_session (TLS, DC);
+ }
+ vlogprintf (E_DEBUG, "Starting authorization for DC #%d\n", DC->id);
+ //net_loop (0, auth_ok);
+}
+
+#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 ());
+ }
+}
+
+//extern struct tgl_dc *DC_list[];
+
+
+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 flags, int id, char *ip, int port) {
+ //assert (!TLS->DC_list[id]);
+
+ if (!TLS->DC_list[id]) {
+ struct tgl_dc *DC = talloc0 (sizeof (*DC));
+ DC->id = id;
+ 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);
+ }
+
+ struct tgl_dc *DC = TLS->DC_list[id];
+
+ struct tgl_dc_option *O = DC->options[flags & 3];
+
+ struct tgl_dc_option *O2 = O;
+ while (O2) {
+ if (!strcmp (O2->ip, ip)) {
+ tfree_str (ip);
+ return DC;
+ }
+ O2 = O2->next;
+ }
+
+ struct tgl_dc_option *T = talloc (sizeof (*T));
+ T->ip = ip;
+ T->port = port;
+ T->next = O;
+ DC->options[flags & 3] = T;
+
+
+ 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);
+
+ create_session_connect (TLS, S);
+ 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/libs/tgl/src/mtproto-client.h b/libs/tgl/src/mtproto-client.h
new file mode 100644
index 0000000000..13a98fd406
--- /dev/null
+++ b/libs/tgl/src/mtproto-client.h
@@ -0,0 +1,61 @@
+/*
+ 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 "net.h"
+#include <openssl/bn.h>
+//void on_start (void);
+//..long long encrypt_send_message (struct connection *c, int *msg, int msg_ints, int useful);
+//void dc_authorize (struct tgl_dc *DC);
+//void work_update (struct connection *c, long long msg_id);
+//void work_update_binlog (void);
+//int check_g (unsigned char p[256], BIGNUM *g);
+//int check_g_bn (BIGNUM *p, BIGNUM *g);
+//int check_DH_params (BIGNUM *p, int g);
+//void secure_random (void *s, int l);
+
+#include "tgl.h"
+
+struct connection;
+struct tgl_dc;
+//#include "queries.h"
+#define TG_APP_HASH "844584f2b1fd2daecee726166dcc1ef8"
+#define TG_APP_ID 10534
+
+#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);
+//int tglmp_check_g (struct tgl_state *TLS, unsigned char p[256], BIGNUM *g);
+//int tglmp_check_DH_params (struct tgl_state *TLS, BIGNUM *p, int g);
+struct tgl_dc *tglmp_alloc_dc (struct tgl_state *TLS, int flags, 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);
+void tgl_do_send_ping (struct tgl_state *TLS, struct connection *c);
+#endif
diff --git a/libs/tgl/src/mtproto-common.c b/libs/tgl/src/mtproto-common.c
new file mode 100644
index 0000000000..32a9597639
--- /dev/null
+++ b/libs/tgl/src/mtproto-common.c
@@ -0,0 +1,475 @@
+/*
+ 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>
+#ifdef _MSC_VER
+#include <io.h>
+#include <stdint.h>
+#include <string.h>
+#include <intrin.h>
+#include <process.h>
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
+#include <tlhelp32.h>
+#include <sys/stat.h>
+#include "tgl.h"
+#elif defined(__MINGW32__)
+#include "tgl.h"
++#include <winsock2.h>
+#include <unistd.h>
+#else
+#include <unistd.h>
+#include <netdb.h>
+#endif
+#include <fcntl.h>
+#include <share.h>
+#include <sys/types.h>
+#include <openssl/bn.h>
+#include <openssl/rand.h>
+#include <openssl/pem.h>
+#include <openssl/aes.h>
+#include <openssl/sha.h>
+#include <openssl/rand.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;
+
+//int verbosity;
+
+static int get_random_bytes (struct tgl_state *TLS, unsigned char *buf, int n) {
+#if defined(WIN32) || defined(_WIN32)
+ if (RAND_bytes(buf, n) != 1)
+ return 0;
+
+ vlogprintf(E_DEBUG, "added %d bytes of real entropy to secure random numbers seed\n", n);
+ *(long *)buf ^= lrand48();
+ srand48(*(long *)buf);
+ return n;
+#else
+ 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;
+#endif
+}
+
+
+/* RDTSC */
+#ifdef _MSC_VER
+#define HAVE_RDTSC
+#pragma intrinsic(__rdtsc)
+static __inline unsigned long long rdtsc(void) {
+ return __rdtsc();
+}
+
+inline DWORD getppid() {
+ HANDLE hSnapshot = INVALID_HANDLE_VALUE;
+ PROCESSENTRY32 pe32;
+ DWORD ppid = 0, pid = GetCurrentProcessId();
+
+ hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
+ __try {
+ if (hSnapshot == INVALID_HANDLE_VALUE) __leave;
+ ZeroMemory(&pe32, sizeof(pe32));
+ pe32.dwSize = sizeof(pe32);
+ if (!Process32First(hSnapshot, &pe32)) __leave;
+
+ do {
+ if (pe32.th32ProcessID == pid) {
+ ppid = pe32.th32ParentProcessID;
+ break;
+ }
+ } while (Process32Next(hSnapshot, &pe32));
+
+ }
+ __finally {
+ if (hSnapshot != INVALID_HANDLE_VALUE) CloseHandle(hSnapshot);
+ }
+ return ppid;
+}
+
+#elif 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
+#if defined(_MSC_VER)
+ DWORD p = GetCurrentProcessId ();
+#else
+ unsigned short p = getpid ();
+#endif
+ 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) {
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ int fd = 0;
+ errno_t err = _sopen_s(&fd, password_filename, _O_RDONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE);
+ if (err != 0) {
+ vlogprintf(E_WARNING, "Warning: fail to open password file - \"%s\", %s.\n", password_filename, GetErrnoStr (errno));
+#elif defined(WIN32) || defined(_WIN32)
+ int fd = open(password_filename, O_RDONLY | O_BINARY);
+ if (fd < 0) {
+ vlogprintf (E_WARNING, "Warning: fail to open password file - \"%s\", %s.\n", password_filename, GetErrnoStr (errno));
+#else
+ int fd = open (password_filename, O_RDONLY);
+ if (fd < 0) {
+ vlogprintf (E_WARNING, "Warning: fail to open password file - \"%s\", %m.\n", password_filename);
+#endif
+ } else {
+ unsigned char *a = talloc0 (password_length);
+ int l = read (fd, a, password_length);
+ if (l < 0) {
+#if defined(WIN32) || defined(_WIN32)
+ vlogprintf (E_WARNING, "Warning: fail to read password file - \"%s\", %s.\n", password_filename, GetErrnoStr (errno));
+#else
+ vlogprintf (E_WARNING, "Warning: fail to read password file - \"%s\", %m.\n", password_filename);
+#endif
+ } 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/libs/tgl/src/mtproto-common.h b/libs/tgl/src/mtproto-common.h
new file mode 100644
index 0000000000..afcea1eeb4
--- /dev/null
+++ b/libs/tgl/src/mtproto-common.h
@@ -0,0 +1,385 @@
+/*
+ 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 "interface.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 ((char *)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);
+/*
+static inline void hexdump_in (void) {
+ hexdump (in_ptr, in_end);
+}
+
+static inline void hexdump_out (void) {
+ hexdump (packet_buffer, packet_ptr);
+}*/
+
+#if defined(__MACH__) || defined(WIN32) || defined(_WIN32)
+#define CLOCK_REALTIME 0
+#define CLOCK_MONOTONIC 1
+#endif
+#endif
diff --git a/libs/tgl/src/mtproto-utils.c b/libs/tgl/src/mtproto-utils.c
new file mode 100644
index 0000000000..481bff6371
--- /dev/null
+++ b/libs/tgl/src/mtproto-utils.c
@@ -0,0 +1,178 @@
+#include "config.h"
+#include <openssl/bn.h>
+#include "tgl.h"
+#include "tools.h"
+
+#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
+
+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/libs/tgl/src/mtproto-utils.h b/libs/tgl/src/mtproto-utils.h
new file mode 100644
index 0000000000..e9bb6aeef3
--- /dev/null
+++ b/libs/tgl/src/mtproto-utils.h
@@ -0,0 +1,7 @@
+#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/libs/tgl/src/mtproto.tl b/libs/tgl/src/mtproto.tl
new file mode 100644
index 0000000000..2f02c49ae8
--- /dev/null
+++ b/libs/tgl/src/mtproto.tl
@@ -0,0 +1,19 @@
+---types---
+resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:(Vector long) = ResPQ;
+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;
+
+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;
+client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;
+
+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;
+
+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;
+
+---functions---
+req_pq#60469778 nonce:int128 = ResPQ;
+req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;
+set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
diff --git a/libs/tgl/src/no-preview.h b/libs/tgl/src/no-preview.h
new file mode 100644
index 0000000000..cf2651d9d2
--- /dev/null
+++ b/libs/tgl/src/no-preview.h
@@ -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/libs/tgl/src/queries-encrypted.c b/libs/tgl/src/queries-encrypted.c
new file mode 100644
index 0000000000..cdfea63029
--- /dev/null
+++ b/libs/tgl/src/queries-encrypted.c
@@ -0,0 +1,758 @@
+
+/* {{{ Encrypt decrypted */
+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_action (struct tgl_state *TLS, struct tgl_secret_chat *E, struct tl_ds_decrypted_message_action *A) {
+ long long t;
+ tglt_secure_random (&t, 8);
+ int peer_id = tgl_get_peer_id (E->id);
+ int peer_type = TGL_PEER_ENCR_CHAT;
+ int date = time (0);
+
+ bl_do_create_message_encr_new (TLS, t, &TLS->our_id, &peer_type, &peer_id, &date, NULL, 0, NULL, A, NULL, TGLMF_PENDING | TGLMF_OUT | TGLMF_UNREAD | TGLMF_CREATE | TGLMF_CREATED | TGLMF_ENCRYPTED);
+
+ struct tgl_message *M = tgl_message_get (TLS, t);
+ assert (M);
+ tgl_do_send_msg (TLS, M, 0, 0);
+}
+
+void tgl_do_send_encr_chat_layer (struct tgl_state *TLS, struct tgl_secret_chat *E) {
+ static struct tl_ds_decrypted_message_action A;
+ A.magic = CODE_decrypted_message_action_notify_layer;
+ int layer = TGL_ENCRYPTED_LAYER;
+ A.layer = &layer;
+
+ tgl_do_send_encr_action (TLS, E, &A);
+}
+
+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) {
+ static struct tl_ds_decrypted_message_action A;
+ A.magic = CODE_decrypted_message_action_set_message_t_t_l;
+ A.layer = &ttl;
+
+ tgl_do_send_encr_action (TLS, E, &A);
+}
+
+
+/* {{{ Seng msg (plain text, encrypted) */
+static int msg_send_encr_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tgl_message *M = q->extra;
+ assert (M->flags & TGLMF_ENCRYPTED);
+
+ if (M->flags & TGLMF_PENDING) {
+ bl_do_create_message_encr_new (TLS, M->id, NULL, NULL, NULL,
+ &M->date,
+ NULL, 0, NULL, NULL, NULL, M->flags ^ TGLMF_PENDING);
+
+ 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, const 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_message_delete (TLS, M);
+ }
+ return 0;
+}
+
+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;
+ }
+
+ assert (M->flags & TGLMF_ENCRYPTED);
+ 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 ();
+ 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);
+
+ 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->flags & TGLMF_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;
+ }
+
+ assert (M->flags & TGLMF_ENCRYPTED);
+
+ 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 ();
+ 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);
+ out_int (P->encr_chat.ttl);
+ out_cstring ((void *)M->message, M->message_len);
+ switch (M->media.type) {
+ case tgl_message_media_none:
+ out_int (CODE_decrypted_message_media_empty);
+ break;
+ case tgl_message_media_geo:
+ out_int (CODE_decrypted_message_media_geo_point);
+ out_double (M->media.geo.latitude);
+ out_double (M->media.geo.longitude);
+ 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);
+}
+
+static int mark_read_encr_on_receive (struct tgl_state *TLS, struct query *q, void *D) {
+ 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, const 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_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_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);
+}
+
+static int send_encr_file_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_messages_sent_encrypted_message *DS_MSEM = D;
+ struct tgl_message *M = q->extra;
+
+ if (M->flags & TGLMF_PENDING) {
+ bl_do_create_message_encr_new (TLS, M->id, NULL, NULL, NULL, DS_MSEM->date,
+ NULL, 0, NULL, NULL, DS_MSEM->file, M->flags ^ TGLMF_PENDING);
+ 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 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_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 ();
+ 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);
+ 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 & TGLDF_VIDEO)) {
+ out_int (CODE_decrypted_message_media_video);
+ } else if ((f->flags & TGLDF_AUDIO)) {
+ out_int (CODE_decrypted_message_media_audio);
+ } else {
+ out_int (CODE_decrypted_message_media_document);
+ }
+ if (f->flags == -1 || !(f->flags & TGLDF_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 & TGLDF_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 & TGLDF_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);
+
+ int *save_in_ptr = in_ptr;
+ int *save_in_end = in_end;
+
+ in_ptr = save_ptr;
+ in_end = packet_ptr;
+
+ assert (skip_type_any (TYPE_TO_PARAM(decrypted_message_media)) >= 0);
+ assert (in_ptr == in_end);
+
+ in_ptr = save_ptr;
+ in_end = packet_ptr;
+
+ struct tl_ds_decrypted_message_media *DS_DMM = fetch_ds_type_decrypted_message_media (TYPE_TO_PARAM (decrypted_message_media));
+ in_end = save_in_ptr;
+ in_ptr = save_in_end;
+
+
+ int peer_type = tgl_get_peer_type (f->to_id);
+ int peer_id = tgl_get_peer_id (f->to_id);
+ int date = time (NULL);
+
+
+ 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);
+
+ bl_do_create_message_encr_new (TLS, r, &TLS->our_id, &peer_type, &peer_id, &date, NULL, 0, DS_DMM, NULL, NULL, TGLMF_OUT | TGLMF_UNREAD | TGLMF_ENCRYPTED | TGLMF_CREATE | TGLMF_CREATED);
+
+ free_ds_type_decrypted_message_media (DS_DMM, TYPE_TO_PARAM (decrypted_message_media));
+ 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));
+
+}
+
+void tgl_do_send_location_encr (struct tgl_state *TLS, tgl_peer_id_t id, double latitude, double longitude, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) {
+ struct tl_ds_decrypted_message_media TDSM;
+ TDSM.magic = CODE_decrypted_message_media_geo_point;
+ TDSM.latitude = talloc (sizeof (double));
+ *TDSM.latitude = latitude;
+ TDSM.longitude = talloc (sizeof (double));
+ *TDSM.longitude = longitude;
+
+ int peer_type = tgl_get_peer_type (id);
+ int peer_id = tgl_get_peer_id (id);
+ int date = time (0);
+
+ long long t;
+ tglt_secure_random (&t, 8);
+
+ bl_do_create_message_encr_new (TLS, t, &TLS->our_id, &peer_type, &peer_id, &date, NULL, 0, &TDSM, NULL, NULL, TGLMF_UNREAD | TGLMF_OUT | TGLMF_PENDING | TGLMF_CREATE | TGLMF_CREATED | TGLMF_ENCRYPTED);
+
+ tfree (TDSM.latitude, sizeof (double));
+ tfree (TDSM.longitude, sizeof (double));
+
+ struct tgl_message *M = tgl_message_get (TLS, t);
+
+ tgl_do_send_encr_msg (TLS, M, callback, callback_extra);
+}
+
+/* {{{ Encr accept */
+static int send_encr_accept_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tgl_secret_chat *E = tglf_fetch_alloc_encrypted_chat_new (TLS, D);
+
+ 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, void *D) {
+ struct tgl_secret_chat *E = tglf_fetch_alloc_encrypted_chat_new (TLS, D);
+
+ 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, const 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)));
+ static unsigned char sha_buffer[20];
+ sha1 (kk, 256, sha_buffer);
+
+ long long fingerprint = *(long long *)(sha_buffer + 12);
+
+ //bl_do_encr_chat_set_key (TLS, E, kk, *(long long *)(sha_buffer + 12));
+ //bl_do_encr_chat_set_sha (TLS, E, sha_buffer);
+
+ int state = sc_ok;
+
+ bl_do_encr_chat_new (TLS, tgl_get_peer_id (E->id),
+ NULL, NULL, NULL, NULL,
+ kk, NULL, sha_buffer, &state,
+ NULL, NULL, NULL, NULL, NULL,
+ &fingerprint,
+ TGL_FLAGS_UNCHANGED
+ );
+
+ 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))));
+
+ 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);
+
+ int state = sc_waiting;
+ bl_do_encr_chat_new (TLS, t, NULL, NULL, &TLS->our_id, &user_id, random, NULL, NULL, &state, NULL, NULL, NULL, NULL, NULL, NULL, TGLPF_CREATE | TGLPF_CREATED);
+
+
+ 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, void *D) {
+ struct tl_ds_messages_dh_config *DS_MDC = D;
+
+ if (DS_MDC->magic == CODE_messages_dh_config) {
+ assert (DS_MDC->p->len == 256);
+ bl_do_set_dh_params (TLS, DS_LVAL (DS_MDC->g), (void *)DS_MDC->p->data, DS_LVAL (DS_MDC->version));
+ } else {
+ assert (TLS->encr_param_version);
+ }
+ unsigned char *random = talloc (256);
+ assert (DS_MDC->random->len == 256);
+ memcpy (random, DS_MDC->random->data, 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);
+}
+/* }}} */
diff --git a/libs/tgl/src/queries.c b/libs/tgl/src/queries.c
new file mode 100644
index 0000000000..374f78e1f1
--- /dev/null
+++ b/libs/tgl/src/queries.c
@@ -0,0 +1,4477 @@
+/*
+ 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>
+#if defined(WIN32) || defined(_WIN32)
+#include <io.h>
+#include <stdint.h>
+#include <string.h>
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
+#else
+#include <unistd.h>
+#include <sys/utsname.h>
+#endif
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <share.h>
+
+#include "mtproto-client.h"
+#include "queries.h"
+#include "tree.h"
+#include "mtproto-common.h"
+//#include "telegram.h"
+#include "tgl-structures.h"
+//#include "interface.h"
+//#include "net.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 "auto/auto-types.h"
+#include "auto/auto-skip.h"
+#include "auto/auto-free-ds.h"
+#include "auto/auto-fetch-ds.h"
+#include "auto/auto-print-ds.h"
+#include "tgl.h"
+#include "tg-mime-types.h"
+#include "mtproto-utils.h"
+#include "tgl-methods-in.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);
+static struct query_methods send_msgs_methods;
+
+struct messages_send_extra {
+ int multi;
+ long long id;
+ int count;
+ long long *list;
+};
+#define QUERY_TIMEOUT 6.0
+
+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;
+ int reply;
+ unsigned char *iv;
+ unsigned char *init_iv;
+ unsigned char *key;
+ int w;
+ int h;
+ int duration;
+ char *caption;
+};
+
+#define memcmp8(a,b) memcmp ((a), (b), 8)
+DEFINE_TREE (query, struct query *, memcmp8, 0) ;
+
+static int mystreq1 (const char *a, const char *b, int l) {
+ if ((int)strlen (a) != l) { return 1; }
+ return memcmp (a, b, l);
+}
+
+/* {{{ COMMON */
+
+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 %"_PRINTF_INT64_"d\n", q->msg_id);
+
+ TLS->timer_methods->insert (q->ev, QUERY_TIMEOUT);
+
+ if (q->session && q->session_id && q->DC && q->DC->sessions[0] == q->session && q->session->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 && q->session_id && q->DC && q->DC->sessions[0] == q->session && q->session->session_id == q->session_id)) {
+ q->session_id = 0;
+ } else {
+ if (!(q->session->dc->flags & 4) && !(q->flags & QUERY_FORCE_SEND)) {
+ q->session_id = 0;
+ }
+ }
+ vlogprintf (E_NOTICE, "regen query %"_PRINTF_INT64_"d\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 %"_PRINTF_INT64_"d\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 %d\n", 4 * ints, DC->id);
+ 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 %"_PRINTF_INT64_"d %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, "%"_PRINTF_INT64_"d %"_PRINTF_INT64_"d\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, const 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 --;
+}
+
+static void resend_query_cb (struct tgl_state *TLS, void *_q, int success);
+
+void tglq_free_query (struct query *q, void *extra) {
+ struct tgl_state *TLS = extra;
+ if (!(q->flags & QUERY_ACK_RECEIVED)) {
+ TLS->timer_methods->remove (q->ev);
+ }
+ tfree (q->data, q->data_len * 4);
+ TLS->timer_methods->free (q->ev);
+}
+
+void tglq_query_free_all (struct tgl_state *TLS) {
+ tree_act_ex_query (TLS->queries_tree, tglq_free_query, TLS);
+ TLS->queries_tree = tree_clear_query (TLS->queries_tree);
+}
+
+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 #%"_PRINTF_INT64_"d: #%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 (!mystreq1 ("SESSION_PASSWORD_NEEDED", error, error_len)) {
+ if (!(TLS->locks & TGL_LOCK_PASSWORD)) {
+ TLS->locks |= TGL_LOCK_PASSWORD;
+ tgl_do_check_password (TLS, resend_query_cb, q);
+ }
+ res = 1;
+ 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 = (int)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 #%"_PRINTF_INT64_"d: #%d %.*s (HANDLED)\n", id, error_code, error_len, error);
+ } else {
+ vlogprintf (E_WARNING, "error for query #%"_PRINTF_INT64_"d: #%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 #%"_PRINTF_INT64_"d. 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) {
+ assert (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);
+ vlogprintf (E_ERROR, "0x%08x 0x%08x\n", *(in_ptr - 1), *in_ptr);
+ assert (0);
+ }
+
+ assert (in_ptr == in_end);
+ in_ptr = save;
+
+ void *DS = fetch_ds_type_any (q->type);
+ assert (DS);
+
+ q->methods->on_answer (TLS, q, DS);
+ free_ds_type_any (DS, q->type);
+
+ 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_os_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_os_version) {
+ static char buf[4096];
+#if defined(WIN32) || defined(_WIN32)
+ SYSTEM_INFO sysInfo;
+ char release[256] = { 0 };
+ char version[256] = { 0 };
+ OSVERSIONINFO versionInfo = { sizeof(OSVERSIONINFO), 0, 0, 0, 0,{ '\0' } };
+ char* szSystemName = "Windows";
+#if (WINVER <= _WIN32_WINNT_WIN7)
+ GetVersionEx(&versionInfo);
+#else
+ // GetModuleHandle is not supported in WinRT and linking to it at load time
+ #if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP || WINAPI_FAMILY==WINAPI_FAMILY_APP
+ szSystemName = "Windows RT"
+ MEMORY_BASIC_INFORMATION mbi = { 0, 0, 0, 0, 0, 0, 0 };
+ VirtualQuery((LPCVOID)VirtualQuery, &mbi, sizeof(mbi);
+ HMODULE kernelModule = (HMODULE)mbi.AllocationBase;
+
+ typedef HMODULE(WINAPI *GetModuleHandleFunction)(LPCWSTR);
+ GetModuleHandleFunction pGetModuleHandle = (GetModuleHandleFunction) GetProcAddressA (kernelModule, "GetModuleHandleW");
+ #else
+ #define pGetModuleHandle GetModuleHandleW
+ #endif
+
+ #if !defined(WINCE) || !defined(_WIN32_WCE)
+ #define GetProcAddressA GetProcAddress
+ #endif
+
+ HMODULE ntdll = pGetModuleHandle (L"ntdll.dll");
+ typedef LONG NTSTATUS;
+ typedef NTSTATUS(NTAPI *RtlGetVersionFunction)(LPOSVERSIONINFO);
+
+ RtlGetVersionFunction pRtlGetVersion = (RtlGetVersionFunction) GetProcAddressA (ntdll, "RtlGetVersion");
+ if(pRtlGetVersion)
+ pRtlGetVersion(&versionInfo); // always returns STATUS_SUCCESS
+#endif
+ if(versionInfo.dwBuildNumber > 0)
+ _itoa_s(versionInfo.dwBuildNumber, release, sizeof(char) * 256, 10);
+ if (versionInfo.dwMajorVersion > 0)
+ sprintf_s(version, sizeof(char) * 256, "%i.%i", versionInfo.dwMajorVersion, versionInfo.dwMinorVersion);
+ else
+ strcpy_s(version, sizeof(char) * 256, "Unknown");
+
+ // Get hardware info
+ ZeroMemory(&sysInfo, sizeof(SYSTEM_INFO));
+ GetSystemInfo(&sysInfo);
+
+ switch (sysInfo.wProcessorArchitecture) {
+ case PROCESSOR_ARCHITECTURE_AMD64:
+ out_string("x86_64");
+ break;
+ case PROCESSOR_ARCHITECTURE_IA64:
+ out_string("ia64");
+ break;
+ case PROCESSOR_ARCHITECTURE_INTEL:
+ out_string("x86");
+ break;
+ case PROCESSOR_ARCHITECTURE_ARM:
+ out_string("ARM");
+ break;
+ case PROCESSOR_ARCHITECTURE_PPC:
+ out_string("PowerPC");
+ break;
+ case PROCESSOR_ARCHITECTURE_MIPS:
+ out_string("MIPS");
+ break;
+ case PROCESSOR_ARCHITECTURE_MSIL:
+ out_string("MSIL");
+ break;
+ case PROCESSOR_ARCHITECTURE_SHX:
+ out_string("ShX");
+ break;
+ case PROCESSOR_ARCHITECTURE_UNKNOWN:
+ default:
+ out_string("unknown");
+ }
+ tsnprintf(buf, sizeof(buf) - 1, "%.999s %.999s %.999s", szSystemName, version, release);
+#else
+ struct utsname st;
+ uname (&st);
+ out_string (st.machine);
+ tsnprintf (buf, sizeof (buf) - 1, "%.999s %.999s %.999s", st.sysname, st.release, st.version);
+#endif
+ out_string (buf);
+ tsnprintf (buf, sizeof (buf) - 1, "%s (TGL %s)", TLS->app_version, TGL_VERSION);
+ out_string (buf);
+ out_string ("En");
+ } else {
+#if defined(WIN32) || defined(_WIN32)
+ out_string("x86");
+ out_string("Windows");
+#else
+ out_string ("x86");
+ out_string ("Linux");
+#endif
+ static char buf[4096];
+ tsnprintf (buf, sizeof (buf) - 1, "%s (TGL %s)", TLS->app_version, TGL_VERSION);
+ out_string (buf);
+ out_string ("en");
+ }
+}
+
+void tgl_set_query_error (struct tgl_state *TLS, int error_code, const char *format, ...) __attribute__ ((format (printf, 3, 4)));
+void tgl_set_query_error (struct tgl_state *TLS, int error_code, const char *format, ...) {
+ static char s[1001];
+
+ va_list ap;
+ va_start (ap, format);
+ vsnprintf (s, 1000, format, ap);
+ va_end (ap);
+
+ if (TLS->error) {
+ tfree_str (TLS->error);
+ }
+ TLS->error = tstrdup (s);
+ TLS->error_code = error_code;
+}
+/* }}} */
+
+/* {{{ Default on error */
+
+static int q_void_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) {
+ tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, 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, const char *error) {
+ tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, 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, const char *error) {
+ tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error);
+ if (q->callback) {
+ ((void (*)(struct tgl_state *,void *, int, int, void *))(q->callback))(TLS, q->callback_extra, 0, 0, NULL);
+ }
+ return 0;
+}
+/* }}} */
+
+#include "queries-encrypted.c"
+
+/* {{{ Get config */
+
+static void fetch_dc_option (struct tgl_state *TLS, struct tl_ds_dc_option *DS_DO) {
+ bl_do_dc_option_new (TLS, DS_LVAL (DS_DO->flags), DS_LVAL (DS_DO->id), DS_STR (DS_DO->hostname), DS_STR (DS_DO->ip_address), DS_LVAL (DS_DO->port));
+}
+
+static int help_get_config_on_answer (struct tgl_state *TLS, struct query *q, void *DS) {
+ struct tl_ds_config *DS_C = DS;
+
+ int i;
+ for (i = 0; i < DS_LVAL (DS_C->dc_options->cnt); i++) {
+ fetch_dc_option (TLS, DS_C->dc_options->data[i]);
+ }
+
+ int max_chat_size = DS_LVAL (DS_C->chat_size_max);
+ int max_bcast_size = DS_LVAL (DS_C->broadcast_size_max);
+ 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 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);
+}
+/* }}} */
+
+/* {{{ Send code */
+static int send_code_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_auth_sent_code *DS_ASC = D;
+
+ char *phone_code_hash = DS_STR_DUP (DS_ASC->phone_code_hash);
+ int registered = DS_BVAL (DS_ASC->phone_registered);;
+
+ if (q->callback) {
+ ((void (*)(struct tgl_state *, void *, int, int, const char *))(q->callback)) (TLS, q->callback_extra, 1, registered, phone_code_hash);
+ }
+ tfree_str (phone_code_hash);
+ return 0;
+}
+
+static struct query_methods send_code_methods = {
+ .on_answer = send_code_on_answer,
+ .on_error = q_list_on_error,
+ .type = TYPE_TO_PARAM(auth_sent_code)
+};
+
+void tgl_do_send_code (struct tgl_state *TLS, const char *phone, int phone_len, 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_cstring (phone, phone_len);
+ 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, NULL, callback, callback_extra);
+}
+
+
+static int phone_call_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ 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 *phone, int phone_len, const char *hash, int hash_len, 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_cstring (phone, phone_len);
+ out_cstring (hash, hash_len);
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &phone_call_methods, NULL, callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Sign in / Sign up */
+static int sign_in_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_auth_authorization *DS_AA = D;
+ //vlogprintf (E_DEBUG, "Expires in %d\n", DS_LVAL (DS_AA->expires));
+
+ struct tgl_user *U = tglf_fetch_alloc_user_new (TLS, DS_AA->user);
+
+ 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 error_len, const char *error) {
+ tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, 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 *phone, int phone_len, const char *hash, int hash_len, const char *code, int code_len, 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_cstring (phone, phone_len);
+ out_cstring (hash, hash_len);
+ out_cstring (code, code_len);
+ 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 *phone, int phone_len, const char *hash, int hash_len, const char *code, int code_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_user *Self), void *callback_extra) {
+ clear_packet ();
+ out_int (CODE_auth_sign_up);
+ out_cstring (phone, phone_len);
+ out_cstring (hash, hash_len);
+ out_cstring (code, code_len);
+ out_cstring (first_name, first_name_len);
+ out_cstring (last_name, last_name_len);
+ 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_bot_auth (struct tgl_state *TLS, const char *code, int code_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *Self), void *callback_extra) {
+ clear_packet ();
+ out_int (CODE_auth_import_bot_authorization);
+ out_int (0);
+ out_int (TLS->app_id);
+ out_string (TLS->app_hash);
+ out_cstring (code, code_len);
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &sign_in_methods, 0, callback, callback_extra);
+ return 0;
+}
+/* }}} */
+
+/* {{{ Get contacts */
+static int get_contacts_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_contacts_contacts *DS_CC = D;
+
+ int n = DS_CC->users ? DS_LVAL (DS_CC->users->cnt) : 0;
+
+ int i;
+ struct tgl_user **list = talloc (sizeof (void *) * n);
+ for (i = 0; i < n; i++) {
+ list[i] = tglf_fetch_alloc_user_new (TLS, DS_CC->users->data[i]);
+ }
+ 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, NULL, callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Send msg (plain text) */
+static int msg_send_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_messages_sent_message *DS_MSM = D;
+
+ long long y = *(long long *)q->extra;
+ tfree (q->extra, 8);
+
+ struct tgl_message *M = tgl_message_get (TLS, y);
+ vlogprintf (E_DEBUG, "y = %"_PRINTF_INT64_"d\n", y);
+
+ if (M && M->id != DS_LVAL (DS_MSM->id)) {
+ assert (M->flags & TGLMF_PENDING);
+ bl_do_create_message_new (TLS, M->id, NULL, NULL, NULL, NULL, NULL,
+ DS_MSM->date, NULL, 0, DS_MSM->media, NULL, NULL, NULL, M->flags & 0xffff);
+ }
+
+ struct tl_ds_update *UPD = talloc0 (sizeof (*UPD));
+ UPD->magic = CODE_update_message_i_d;
+ UPD->id = talloc (4);
+ *UPD->id = DS_LVAL (DS_MSM->id);
+ UPD->random_id = talloc (8);
+ *UPD->random_id = y;
+ UPD->pts_count = talloc (4);
+ *UPD->pts_count = DS_LVAL (DS_MSM->pts_count);
+ UPD->pts = talloc (4);
+ *UPD->pts = DS_LVAL (DS_MSM->pts);
+
+ tglu_work_update_new (TLS, 1, UPD);
+ tglu_work_update_new (TLS, 0, UPD);
+
+ *UPD->pts_count = 0;
+ tfree (UPD->random_id, 8);
+ UPD->magic = CODE_update_msg_update;
+
+ tglu_work_update_new (TLS, 1, UPD);
+ tglu_work_update_new (TLS, 0, UPD);
+
+ free_ds_type_update (UPD, TYPE_TO_PARAM (update));
+
+ y = tgls_get_local_by_random (TLS, y);
+ M = tgl_message_get (TLS, y);
+
+ 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, const char *error) {
+ tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, 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_message_delete (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)
+};
+
+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_int (((M->flags & TGLMF_DISABLE_PREVIEW) ? 2 : 0) | (M->reply_id ? 1 : 0) | (M->reply_markup ? 4 : 0));
+ out_peer_id (TLS, M->to_id);
+ if (M->reply_id) {
+ out_int (M->reply_id);
+ }
+ out_cstring (M->message, M->message_len);
+ out_long (M->id);
+ long long *x = talloc (8);
+ *x = M->id;
+
+ if (M->reply_markup) {
+ if (M->reply_markup->rows) {
+ out_int (CODE_reply_keyboard_markup);
+ out_int (M->reply_markup->flags);
+ out_int (CODE_vector);
+ out_int (M->reply_markup->rows);
+ int i;
+ for (i = 0; i < M->reply_markup->rows; i++) {
+ out_int (CODE_keyboard_button_row);
+ out_int (CODE_vector);
+ out_int (M->reply_markup->row_start[i + 1] - M->reply_markup->row_start[i]);
+ int j;
+ for (j = 0; j < M->reply_markup->row_start[i + 1] - M->reply_markup->row_start[i]; j++) {
+ out_int (CODE_keyboard_button);
+ out_string (M->reply_markup->buttons[j + M->reply_markup->row_start[i]]);
+ }
+ }
+ } else {
+ out_int (CODE_reply_keyboard_hide);
+ }
+ }
+
+ 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 *text, int text_len, unsigned long long flags, struct tl_ds_reply_markup *reply_markup, 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) {
+ tgl_set_query_error (TLS, EINVAL, "unknown secret chat");
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0);
+ }
+ return;
+ }
+ if (P->encr_chat.state != sc_ok) {
+ tgl_set_query_error (TLS, EINVAL, "secret chat not in ok state");
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0);
+ }
+ return;
+ }
+ }
+ long long t;
+ tglt_secure_random (&t, 8);
+
+ int peer_type = tgl_get_peer_type (id);
+ int peer_id = tgl_get_peer_id (id);
+ int date = (int)time (0);
+
+ if (tgl_get_peer_type (id) != TGL_PEER_ENCR_CHAT) {
+ int reply = (flags >> 32);
+ int disable_preview = flags & TGL_SEND_MSG_FLAG_DISABLE_PREVIEW;
+ if (!(flags & TGL_SEND_MSG_FLAG_ENABLE_PREVIEW) && TLS->disable_link_preview) {
+ disable_preview = 1;
+ }
+ if (disable_preview) {
+ disable_preview = TGLMF_DISABLE_PREVIEW;
+ }
+ struct tl_ds_message_media TDSM;
+ TDSM.magic = CODE_message_media_empty;
+
+ bl_do_create_message_new (TLS, t, &TLS->our_id, &peer_type, &peer_id, NULL, NULL, &date, text, text_len, &TDSM, NULL, reply ? &reply : NULL, reply_markup, TGLMF_UNREAD | TGLMF_OUT | TGLMF_PENDING | TGLMF_CREATE | TGLMF_CREATED | TGLMF_SESSION_OUTBOUND | disable_preview);
+ } else {
+ struct tl_ds_decrypted_message_media TDSM;
+ TDSM.magic = CODE_decrypted_message_media_empty;
+
+ bl_do_create_message_encr_new (TLS, t, &TLS->our_id, &peer_type, &peer_id, &date, text, text_len, &TDSM, NULL, NULL, TGLMF_UNREAD | TGLMF_OUT | TGLMF_PENDING | TGLMF_CREATE | TGLMF_CREATED | TGLMF_SESSION_OUTBOUND | TGLMF_ENCRYPTED);
+ }
+
+ struct tgl_message *M = tgl_message_get (TLS, t);
+ assert (M);
+ tgl_do_send_msg (TLS, M, callback, callback_extra);
+}
+
+void tgl_do_reply_message (struct tgl_state *TLS, int reply_id, const char *text, int text_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) {
+ struct tgl_message *M = tgl_message_get (TLS, reply_id);
+ if (!M || !(M->flags & TGLMF_CREATED) || (M->flags & TGLMF_ENCRYPTED)) {
+ if (!M || !(M->flags & TGLMF_CREATED)) {
+ tgl_set_query_error (TLS, EINVAL, "unknown message");
+ } else {
+ tgl_set_query_error (TLS, EINVAL, "can not reply on message from secret chat");
+ }
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0);
+ }
+ return;
+ }
+
+ tgl_peer_id_t id = M->to_id;
+ if (tgl_get_peer_type (id) == TGL_PEER_USER && tgl_get_peer_id (id) == TLS->our_id) {
+ id = M->from_id;
+ }
+
+ tgl_do_send_message (TLS, id, text, text_len, flags | TGL_SEND_MSG_FLAG_REPLY (reply_id), NULL, callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Send text file */
+void tgl_do_send_text (struct tgl_state *TLS, tgl_peer_id_t id, const char *file_name, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) {
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ int fd = 0;
+ errno_t err = _sopen_s(&fd, file_name, _O_RDONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE);
+ if(err != 0) {
+ tgl_set_query_error(TLS, EBADF, "Can not open file: %s", GetErrnoStr (errno));
+#elif defined(WIN32) || defined(_WIN32)
+ int fd = open(file_name, O_RDONLY | O_BINARY);
+ if (fd < 0) {
+ tgl_set_query_error (TLS, EBADF, "Can not open file: %s", GetErrnoStr (errno));
+#else
+ int fd = open (file_name, O_RDONLY);
+ if (fd < 0) {
+ tgl_set_query_error (TLS, EBADF, "Can not open file: %m");
+#endif
+ if (callback) {
+ callback (TLS, callback_extra, 0, NULL);
+ }
+ return;
+ }
+ static char buf[(1 << 20) + 1];
+ int x = read (fd, buf, (1 << 20) + 1);
+ if (x < 0) {
+#if defined(WIN32) || defined(_WIN32)
+ tgl_set_query_error (TLS, EBADF, "Can not read from file: %s", GetErrnoStr (errno));
+#else
+ tgl_set_query_error (TLS, EBADF, "Can not read from file: %m");
+#endif
+ close (fd);
+
+ if (callback) {
+ callback (TLS, callback_extra, 0, NULL);
+ }
+ return;
+ }
+
+ assert (x >= 0);
+ close (fd);
+ if (x == (1 << 20) + 1) {
+ tgl_set_query_error (TLS, E2BIG, "text file is too big");
+ if (callback) {
+ callback (TLS, callback_extra, 0, NULL);
+ }
+ } else {
+ tgl_do_send_message (TLS, id, buf, x, flags, NULL, callback, callback_extra);
+ }
+}
+
+void tgl_do_reply_text (struct tgl_state *TLS, int reply_id, const char *file_name, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) {
+ struct tgl_message *M = tgl_message_get (TLS, reply_id);
+ if (!M || !(M->flags & TGLMF_CREATED) || (M->flags & TGLMF_ENCRYPTED)) {
+ if (!M || !(M->flags & TGLMF_CREATED)) {
+ tgl_set_query_error (TLS, EINVAL, "unknown message");
+ } else {
+ tgl_set_query_error (TLS, EINVAL, "can not reply on message from secret chat");
+ }
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0);
+ }
+ return;
+ }
+
+ tgl_peer_id_t id = M->to_id;
+ if (tgl_get_peer_type (id) == TGL_PEER_USER && tgl_get_peer_id (id) == TLS->our_id) {
+ id = M->from_id;
+ }
+
+ tgl_do_send_text (TLS, id, file_name, flags | TGL_SEND_MSG_FLAG_REPLY (reply_id), callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Mark read */
+
+struct mark_read_extra {
+ tgl_peer_id_t id;
+ int max_id;
+};
+
+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, void *D) {
+ struct tl_ds_messages_affected_history *DS_MAH = D;
+
+ int r = tgl_check_pts_diff (TLS, DS_LVAL (DS_MAH->pts), DS_LVAL (DS_MAH->pts_count));
+
+ if (r > 0) {
+ bl_do_set_pts (TLS, DS_LVAL (DS_MAH->pts));
+ }
+
+ int offset = DS_LVAL (DS_MAH->offset);
+
+ struct mark_read_extra *E = q->extra;
+ if (offset > 0) {
+ tgl_do_messages_mark_read (TLS, E->id, E->max_id, offset, q->callback, q->callback_extra);
+ } else {
+ if (tgl_get_peer_type (E->id) == TGL_PEER_USER) {
+ bl_do_user_new (TLS, tgl_get_peer_id (E->id), NULL, NULL, 0, NULL, 0, NULL, 0, NULL, 0, NULL, NULL, 0, NULL, 0, NULL, &E->max_id, NULL, NULL, TGL_FLAGS_UNCHANGED);
+ } else {
+ assert (tgl_get_peer_type (E->id) == TGL_PEER_CHAT);
+ bl_do_chat_new (TLS, tgl_get_peer_id (E->id), NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &E->max_id, NULL, TGL_FLAGS_UNCHANGED);
+ }
+ if (q->callback) {
+ ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+ }
+ }
+ tfree (E, sizeof (*E));
+ return 0;
+}
+
+static int mark_read_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) {
+ tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error);
+
+ struct mark_read_extra *E = q->extra;
+ tfree (E, sizeof (*E));
+ if (q->callback) {
+ ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 0);
+ }
+ 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)
+};
+
+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) {
+ if (TLS->is_bot) { return; }
+ clear_packet ();
+ out_int (CODE_messages_read_history);
+ out_peer_id (TLS, id);
+ out_int (max_id);
+ out_int (offset);
+
+ struct mark_read_extra *E = talloc (sizeof (*E));
+ E->id = id;
+ E->max_id = max_id;
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &mark_read_methods, E, 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) {
+ tgl_set_query_error (TLS, EINVAL, "unknown secret chat");
+ if (callback) {
+ 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, (int)time (0) - 10, callback, callback_extra);
+ }
+}
+/* }}} */
+
+/* {{{ Get history */
+struct get_history_extra {
+ struct tgl_message **ML;
+ int list_offset;
+ int list_size;
+ tgl_peer_id_t id;
+ int limit;
+ int offset;
+ int max_id;
+};
+
+static void _tgl_do_get_history (struct tgl_state *TLS, struct get_history_extra *E, 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, void *D) {
+ struct tl_ds_messages_messages *DS_MM = D;
+
+ struct get_history_extra *E = q->extra;
+
+ int n = DS_LVAL (DS_MM->messages->cnt);
+
+ if (E->list_size - E->list_offset < n) {
+ int new_list_size = 2 * E->list_size;
+ if (new_list_size - E->list_offset < n) {
+ new_list_size = n + E->list_offset;
+ }
+ E->ML = trealloc (E->ML, E->list_size * sizeof (void *), new_list_size * sizeof (void *));
+ assert (E->ML);
+ E->list_size = new_list_size;
+ }
+
+ int i;
+ for (i = 0; i < n; i++) {
+ E->ML[i + E->list_offset] = tglf_fetch_alloc_message_new (TLS, DS_MM->messages->data[i]);
+ }
+ E->list_offset += n;
+ E->offset += n;
+ E->limit -= n;
+
+ int count = DS_LVAL (DS_MM->count);
+ if (count >= 0 && E->limit + E->offset >= count) {
+ E->limit = count - E->offset;
+ if (E->limit < 0) { E->limit = 0; }
+ }
+ assert (E->limit >= 0);
+
+ for (i = 0; i < DS_LVAL (DS_MM->chats->cnt); i++) {
+ tglf_fetch_alloc_chat_new (TLS, DS_MM->chats->data[i]);
+ }
+
+ for (i = 0; i < DS_LVAL (DS_MM->users->cnt); i++) {
+ tglf_fetch_alloc_user_new (TLS, DS_MM->users->data[i]);
+ }
+
+
+ if (E->limit <= 0 || DS_MM->magic == CODE_messages_messages) {
+ if (q->callback) {
+ ((void (*)(struct tgl_state *TLS, void *, int, int, struct tgl_message **))q->callback) (TLS, q->callback_extra, 1, E->list_offset, E->ML);
+ }
+ if (E->list_offset > 0) {
+ tgl_do_messages_mark_read (TLS, E->id, E->ML[0]->id, 0, 0, 0);
+ }
+
+ tfree (E->ML, sizeof (void *) * E->list_size);
+ tfree (E, sizeof (*E));
+ } else {
+ E->offset = 0;
+ E->max_id = E->ML[E->list_offset - 1]->id;
+ _tgl_do_get_history (TLS, E, 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, const char *error) {
+ tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error);
+
+ struct get_history_extra *E = q->extra;
+ tfree (E->ML, sizeof (void *) * E->list_size);
+ tfree (E, sizeof (*E));
+
+ 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 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) {
+ tgl_set_query_error (TLS, EINVAL, "unknown peer");
+ 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);
+}
+
+static void _tgl_do_get_history (struct tgl_state *TLS, struct get_history_extra *E, void (*callback)(struct tgl_state *TLS,void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra) {
+ clear_packet ();
+ out_int (CODE_messages_get_history);
+ out_peer_id (TLS, E->id);
+ out_int (E->offset);
+ out_int (E->max_id);
+ out_int (E->limit);
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_history_methods, E, callback, callback_extra);
+}
+
+void tgl_do_get_history (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, offset, limit, callback, callback_extra);
+ tgl_do_mark_read (TLS, id, 0, 0);
+ return;
+ }
+ struct get_history_extra *E = talloc0 (sizeof (*E));
+ E->id = id;
+ E->limit = limit;
+ E->offset = offset;
+ _tgl_do_get_history (TLS, E, callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Get dialogs */
+struct get_dialogs_extra {
+ tgl_peer_id_t *PL;
+ int *UC;
+ int *LM;
+ int *LRM;
+
+ int list_offset;
+ int list_size;
+ int limit;
+ int offset;
+ int max_id;
+};
+
+static void _tgl_do_get_dialog_list (struct tgl_state *TLS, struct get_dialogs_extra *E, 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);
+
+static int get_dialogs_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_messages_dialogs *DS_MD = D;
+
+ struct get_dialogs_extra *E = q->extra;
+
+ int dl_size = DS_LVAL (DS_MD->dialogs->cnt);
+
+ if (E->list_offset + dl_size > E->list_size) {
+ int new_list_size = E->list_size * 2;
+ if (new_list_size < E->list_offset + dl_size) {
+ new_list_size = E->list_offset + dl_size;
+ }
+
+ E->PL = trealloc (E->PL, E->list_size * sizeof (tgl_peer_id_t), new_list_size * sizeof (tgl_peer_id_t));
+ assert (E->PL);
+ E->UC = trealloc (E->UC, E->list_size * sizeof (int), new_list_size * sizeof (int));
+ assert (E->UC);
+ E->LM = trealloc (E->LM, E->list_size * sizeof (int), new_list_size * sizeof (int));
+ assert (E->LM);
+ E->LRM = trealloc (E->LRM, E->list_size * sizeof (int), new_list_size * sizeof (int));
+ assert (E->LRM);
+
+ E->list_size = new_list_size;
+ }
+
+ int i;
+ for (i = 0; i < dl_size; i++) {
+ struct tl_ds_dialog *DS_D = DS_MD->dialogs->data[i];
+ E->PL[E->list_offset + i] = tglf_fetch_peer_id_new (TLS, DS_D->peer);
+ E->LM[E->list_offset + i] = DS_LVAL (DS_D->top_message);
+ E->UC[E->list_offset + i] = DS_LVAL (DS_D->unread_count);
+ E->LRM[E->list_offset + i] = DS_LVAL (DS_D->read_inbox_max_id);
+ }
+ E->list_offset += dl_size;
+
+ for (i = 0; i < DS_LVAL (DS_MD->messages->cnt); i++) {
+ tglf_fetch_alloc_message_new (TLS, DS_MD->messages->data[i]);
+ }
+
+ for (i = 0; i < DS_LVAL (DS_MD->chats->cnt); i++) {
+ tglf_fetch_alloc_chat_new (TLS, DS_MD->chats->data[i]);
+ }
+
+ for (i = 0; i < DS_LVAL (DS_MD->users->cnt); i++) {
+ tglf_fetch_alloc_user_new (TLS, DS_MD->users->data[i]);
+ }
+
+ vlogprintf (E_DEBUG, "dl_size = %d, total = %d\n", dl_size, E->list_offset);
+ if (dl_size && E->list_offset < E->limit && DS_MD->magic == CODE_messages_dialogs_slice && E->list_offset < DS_LVAL (DS_MD->count)) {
+ E->offset += dl_size;
+ _tgl_do_get_dialog_list (TLS, E, q->callback, q->callback_extra);
+ } else {
+ if (q->callback) {
+ ((void (*)(struct tgl_state *TLS, void *, int, int, tgl_peer_id_t *, int *, int *))q->callback) (TLS, q->callback_extra, 1, E->list_offset, E->PL, E->LM, E->UC);
+ }
+ tfree (E->PL, sizeof (tgl_peer_id_t) * E->list_size);
+ tfree (E->UC, 4 * E->list_size);
+ tfree (E->LM, 4 * E->list_size);
+ tfree (E->LRM, 4 * E->list_size);
+ tfree (E, sizeof (*E));
+ }
+
+ return 0;
+}
+
+static int get_dialogs_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) {
+ tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error);
+
+ struct get_dialogs_extra *E = q->extra;
+ tfree (E->PL, sizeof (tgl_peer_id_t) * E->list_size);
+ tfree (E->UC, 4 * E->list_size);
+ tfree (E->LM, 4 * E->list_size);
+ tfree (E->LRM, 4 * E->list_size);
+ tfree (E, sizeof (*E));
+ 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)
+};
+
+static void _tgl_do_get_dialog_list (struct tgl_state *TLS, struct get_dialogs_extra *E, 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 (E->offset);
+ out_int (0);
+ out_int (E->limit - E->list_offset);
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_dialogs_methods, E, callback, callback_extra);
+}
+
+void tgl_do_get_dialog_list (struct tgl_state *TLS, int limit, int offset, 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) {
+ struct get_dialogs_extra *E = talloc0 (sizeof (*E));
+ E->limit = limit;
+ E->offset = offset;
+ _tgl_do_get_dialog_list (TLS, E, callback, callback_extra);
+}
+/* }}} */
+
+int allow_send_os_version = 1;
+
+/* {{{ Send document file */
+
+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, void *D) {
+ send_part (TLS, q->extra, q->callback, q->callback_extra);
+ return 0;
+}
+
+static int set_photo_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ 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, const char *error) {
+ tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error);
+
+ struct send_file *f = q->extra;
+ tfree_str (f->file_name);
+ tfree_str (f->caption);
+ if (!f->avatar) {
+ if (q->callback) {
+ ((void (*)(struct tgl_state *, void *, int, struct tgl_message *))q->callback) (TLS, q->callback_extra, 0, 0);
+ }
+ } else {
+ if (q->callback) {
+ ((void (*)(struct tgl_state *, void *, int))q->callback) (TLS, q->callback_extra, 0);
+ }
+ }
+ tfree (f, sizeof (*f));
+ 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 set_photo_methods = {
+ .on_answer = set_photo_on_answer,
+ .on_error = q_void_on_error,
+ .type = TYPE_TO_PARAM(photos_photo)
+};
+
+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_msgs_methods, NULL, 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_int ((f->reply ? 1 : 0));
+ out_peer_id (TLS, f->to_id);
+ if (f->reply) {
+ out_int (f->reply);
+ }
+ if (f->flags & TGL_SEND_MSG_FLAG_DOCUMENT_PHOTO) {
+ 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 & TGL_SEND_MSG_FLAG_DOCUMENT_PHOTO)) {
+ out_string (tg_mime_by_filename (f->file_name));
+
+ out_int (CODE_vector);
+ if (f->flags & TGLDF_IMAGE) {
+ if (f->flags & TGLDF_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 (1);
+ out_int (CODE_document_attribute_image_size);
+ out_int (f->w);
+ out_int (f->h);
+ }
+ } else if (f->flags & TGLDF_AUDIO) {
+ out_int (2);
+ out_int (CODE_document_attribute_audio);
+ out_int (f->duration);
+ out_int (CODE_document_attribute_filename);
+ out_string (s + 1);
+ } else if (f->flags & TGLDF_VIDEO) {
+ out_int (2);
+ out_int (CODE_document_attribute_video);
+ out_int (f->duration);
+ out_int (f->w);
+ out_int (f->h);
+ out_int (CODE_document_attribute_filename);
+ out_string (s + 1);
+ } else if (f->flags & TGLDF_STICKER) {
+ out_int (1);
+ out_int (CODE_document_attribute_sticker);
+ } else {
+ out_int (1);
+ out_int (CODE_document_attribute_filename);
+ out_string (s + 1);
+ }
+
+ if (f->thumb_id > 0) {
+ out_int (CODE_input_file);
+ out_long (f->thumb_id);
+ out_int (1);
+ out_string ("thumb.jpg");
+ out_string ("");
+ }
+ } else {
+ out_string (f->caption ? f->caption : "");
+ }
+
+
+ struct messages_send_extra *E = talloc0 (sizeof (*E));
+ tglt_secure_random (&E->id, 8);
+ out_long (E->id);
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, E, callback, callback_extra);
+ tfree_str (f->file_name);
+ tfree_str (f->caption);
+ 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];
+#ifdef _WIN32
+ int x = _read(f->fd, buf, f->part_size);
+#else
+ int x = read (f->fd, buf, f->part_size);
+#endif
+ 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=%"_PRINTF_INT64_"d size=%"_PRINTF_INT64_"d\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, tgl_peer_id_t to_id, const char *file_name, int avatar, int w, int h, int duration, const void *thumb_data, int thumb_len, const char *caption, int caption_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) {
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ int fd = 0;
+ errno_t err = _sopen_s(&fd, file_name, _O_RDONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE);
+ if(err != 0) {
+ tgl_set_query_error (TLS, EBADF, "Can not open file: %s", GetErrnoStr (errno));
+#elif defined(WIN32) || defined(_WIN32)
+ int fd = open(file_name, O_RDONLY | O_BINARY);
+ if (fd < 0) {
+ tgl_set_query_error (TLS, EBADF, "Can not open file: %s", GetErrnoStr (errno));
+#else
+ int fd = open (file_name, O_RDONLY);
+ if (fd < 0) {
+ tgl_set_query_error (TLS, EBADF, "Can not open file: %m");
+#endif
+ if (!avatar) {
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0);
+ }
+ } else {
+ if (callback) {
+ ((void (*)(struct tgl_state *, void *, int))callback) (TLS, callback_extra, 0);
+ }
+ }
+ return;
+ }
+ struct stat buf;
+ fstat (fd, &buf);
+ long long size = buf.st_size;
+ if (size <= 0) {
+ tgl_set_query_error (TLS, EBADF, "File is empty");
+ close (fd);
+ if (!avatar) {
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0);
+ }
+ } else {
+ if (callback) {
+ ((void (*)(struct tgl_state *, void *, int))callback) (TLS, callback_extra, 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;
+ f->reply = flags >> 32;
+ 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);
+ tgl_set_query_error (TLS, E2BIG, "File is too big");
+ tfree (f, sizeof (*f));
+ if (!avatar) {
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0);
+ }
+ } else {
+ if (callback) {
+ ((void (*)(struct tgl_state *, void *, int))callback) (TLS, callback_extra, 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;
+ f->caption = caption ? tstrdup (caption) : tstrdup ("");
+
+ 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 (struct tgl_state *TLS, tgl_peer_id_t to_id, const char *file_name, const char *caption, int caption_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) {
+ if (flags & TGL_SEND_MSG_FLAG_DOCUMENT_AUTO) {
+ char *mime_type = tg_mime_by_filename (file_name);
+ if (strcmp (mime_type, "image/gif") == 0) {
+ flags |= TGL_SEND_MSG_FLAG_DOCUMENT_ANIMATED;
+ } else if (!memcmp (mime_type, "image/", 6)) {
+ flags |= TGL_SEND_MSG_FLAG_DOCUMENT_PHOTO;
+ } else if (!memcmp (mime_type, "video/", 6)) {
+ flags |= TGLDF_VIDEO;
+ } else if (!memcmp (mime_type, "audio/", 6)) {
+ flags |= TGLDF_AUDIO;
+ }
+ }
+ _tgl_do_send_photo (TLS, to_id, file_name, 0, 100, 100, 100, 0, 0, caption, caption_len, flags, callback, callback_extra);
+}
+
+void tgl_do_reply_document (struct tgl_state *TLS, int reply_id, const char *file_name, const char *caption, int caption_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) {
+ struct tgl_message *M = tgl_message_get (TLS, reply_id);
+ if (!M || !(M->flags & TGLMF_CREATED) || (M->flags & TGLMF_ENCRYPTED)) {
+ if (!M || !(M->flags & TGLMF_CREATED)) {
+ tgl_set_query_error (TLS, EINVAL, "unknown message");
+ } else {
+ tgl_set_query_error (TLS, EINVAL, "can not reply on message from secret chat");
+ }
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0);
+ }
+ return;
+ }
+
+ tgl_peer_id_t id = M->to_id;
+ if (tgl_get_peer_type (id) == TGL_PEER_USER && tgl_get_peer_id (id) == TLS->our_id) {
+ id = M->from_id;
+ }
+
+ tgl_do_send_document (TLS, id, file_name, caption, caption_len, flags | TGL_SEND_MSG_FLAG_REPLY (reply_id), callback, callback_extra);
+}
+
+void tgl_do_set_chat_photo (struct tgl_state *TLS, tgl_peer_id_t chat_id, const char *file_name, void (*callback)(struct tgl_state *TLS,void *callback_extra, int success), void *callback_extra) {
+ assert (tgl_get_peer_type (chat_id) == TGL_PEER_CHAT);
+ _tgl_do_send_photo (TLS, chat_id, file_name, tgl_get_peer_id (chat_id), 0, 0, 0, 0, 0, NULL, 0, TGL_SEND_MSG_FLAG_DOCUMENT_PHOTO, (void *)callback, callback_extra);
+}
+
+void tgl_do_set_profile_photo (struct tgl_state *TLS, const char *file_name, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) {
+ _tgl_do_send_photo (TLS, TGL_MK_USER(TLS->our_id), file_name, -1, 0, 0, 0, 0, 0, NULL, 0, TGL_SEND_MSG_FLAG_DOCUMENT_PHOTO, (void *)callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Profile name */
+
+int set_profile_name_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_user *DS_U = D;
+ struct tgl_user *U = tglf_fetch_alloc_user_new (TLS, DS_U);
+ 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, 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_user *U), void *callback_extra) {
+ clear_packet ();
+ out_int (CODE_account_update_profile);
+ out_cstring (first_name, first_name_len);
+ out_cstring (last_name, last_name_len);
+
+ 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, const char *username, int username_len, 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_cstring (username, username_len);
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &set_profile_name_methods, 0, callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Contacts search */
+
+int contact_search_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_user *DS_U = D;
+
+ struct tgl_user *U = tglf_fetch_alloc_user_new (TLS, DS_U);
+
+ 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 contact_search_methods = {
+ .on_answer = contact_search_on_answer,
+ .on_error = q_list_on_error,
+ .type = TYPE_TO_PARAM(user)
+};
+
+void tgl_do_contact_search (struct tgl_state *TLS, const char *name, int name_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra) {
+ clear_packet ();
+ out_int (CODE_contacts_resolve_username);
+ out_cstring (name, name_len);
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &contact_search_methods, 0, callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Forward */
+
+static int send_msgs_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ tglu_work_any_updates_new (TLS, 1, D);
+ tglu_work_any_updates_new (TLS, 0, D);
+
+ struct messages_send_extra *E = q->extra;
+
+ if (!E) {
+ if (q->callback) {
+ ((void (*)(struct tgl_state *, void *, int))q->callback) (TLS, q->callback_extra, 1);
+ }
+ } else if (E->multi) {
+ struct tgl_message **ML = talloc (sizeof (void *) * E->count);
+ int count = E->count;
+ int i;
+ for (i = 0; i < count; i++) {
+ int y = tgls_get_local_by_random (TLS, E->list[i]);
+ ML[i] = tgl_message_get (TLS, y);
+ }
+ tfree (E->list, sizeof (long long) * count);
+ tfree (E, sizeof (*E));
+ if (q->callback) {
+ ((void (*)(struct tgl_state *, void *, int, int, struct tgl_message **))q->callback) (TLS, q->callback_extra, 1, count, ML);
+ }
+ tfree (ML, sizeof (void *) * count);
+ } else {
+ int y = tgls_get_local_by_random (TLS, E->id);
+ struct tgl_message *M = tgl_message_get (TLS, y);
+ tfree (E, sizeof (*E));
+ 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_msgs_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) {
+ tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error);
+ struct messages_send_extra *E = q->extra;
+
+ if (!E) {
+ if (q->callback) {
+ ((void (*)(struct tgl_state *, void *, int))q->callback) (TLS, q->callback_extra, 0);
+ }
+ } else if (E->multi) {
+ int count = E->count;
+ tfree (E->list, sizeof (long long) * count);
+ tfree (E, sizeof (*E));
+ if (q->callback) {
+ ((void (*)(struct tgl_state *, void *, int, int, struct tgl_message **))q->callback) (TLS, q->callback_extra, 0, 0, NULL);
+ }
+ } else {
+ tfree (E, sizeof (*E));
+ if (q->callback) {
+ ((void (*)(struct tgl_state *, void *, int, struct tgl_message *))q->callback) (TLS, q->callback_extra, 0, NULL);
+ }
+ }
+ return 0;
+}
+
+static struct query_methods send_msgs_methods = {
+ .on_answer = send_msgs_on_answer,
+ .on_error = send_msgs_on_error,
+ .type = TYPE_TO_PARAM(updates)
+};
+
+void tgl_do_forward_messages (struct tgl_state *TLS, tgl_peer_id_t id, int n, const int ids[], unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int count, struct tgl_message *ML[]), void *callback_extra) {
+ if (tgl_get_peer_type (id) == TGL_PEER_ENCR_CHAT) {
+ tgl_set_query_error (TLS, EINVAL, "can not forward messages to secret chats");
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0, 0);
+ }
+ return;
+ }
+ clear_packet ();
+ out_int (CODE_messages_forward_messages);
+ out_peer_id (TLS, id);
+ out_int (CODE_vector);
+ out_int (n);
+ int i;
+ for (i = 0; i < n; i++) {
+ out_int (ids[i]);
+ }
+
+ struct messages_send_extra *E = talloc0 (sizeof (*E));
+ E->multi = 1;
+ E->count = n;
+ E->list = talloc (sizeof (long long) * n);
+ out_int (CODE_vector);
+ out_int (n);
+ for (i = 0; i < n; i++) {
+ tglt_secure_random (&E->list[i], 8);
+ out_long (E->list[i]);
+ }
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, E, callback, callback_extra);
+}
+
+void tgl_do_forward_message (struct tgl_state *TLS, tgl_peer_id_t id, int msg_id, unsigned long long flags, 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_set_query_error (TLS, EINVAL, "can not forward messages to secret chats");
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0);
+ }
+ return;
+ }
+ clear_packet ();
+ out_int (CODE_messages_forward_message);
+ out_peer_id (TLS, id);
+ out_int (msg_id);
+
+ struct messages_send_extra *E = talloc0 (sizeof (*E));
+ tglt_secure_random (&E->id, 8);
+ out_long (E->id);
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, E, 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, unsigned long long flags, 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_set_query_error (TLS, EINVAL, "can not send contact to secret chat");
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0);
+ }
+ return;
+ }
+
+ int reply_id = flags >> 32;
+
+ clear_packet ();
+ out_int (CODE_messages_send_media);
+ out_int (reply_id ? 1 : 0);
+ if (reply_id) { out_int (reply_id); }
+ 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);
+
+ struct messages_send_extra *E = talloc0 (sizeof (*E));
+ tglt_secure_random (&E->id, 8);
+ out_long (E->id);
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, E, callback, callback_extra);
+}
+
+
+void tgl_do_reply_contact (struct tgl_state *TLS, int reply_id, const char *phone, int phone_len, const char *first_name, int first_name_len, const char *last_name, int last_name_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) {
+ struct tgl_message *M = tgl_message_get (TLS, reply_id);
+ if (!M || !(M->flags & TGLMF_CREATED) || (M->flags & TGLMF_ENCRYPTED)) {
+ if (!M || !(M->flags & TGLMF_CREATED)) {
+ tgl_set_query_error (TLS, EINVAL, "unknown message");
+ } else {
+ tgl_set_query_error (TLS, EINVAL, "can not reply on message from secret chat");
+ }
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0);
+ }
+ return;
+ }
+
+ tgl_peer_id_t id = M->to_id;
+ if (tgl_get_peer_type (id) == TGL_PEER_USER && tgl_get_peer_id (id) == TLS->our_id) {
+ id = M->from_id;
+ }
+
+ tgl_do_send_contact (TLS, id, phone, phone_len, first_name, first_name_len, last_name, last_name_len, flags | TGL_SEND_MSG_FLAG_REPLY (reply_id), callback, callback_extra);
+}
+
+void tgl_do_forward_media (struct tgl_state *TLS, tgl_peer_id_t id, int n, unsigned long long flags, 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_set_query_error (TLS, EINVAL, "can not forward messages to secret chats");
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0);
+ }
+ return;
+ }
+ struct tgl_message *M = tgl_message_get (TLS, n);
+ if (!M || !(M->flags & TGLMF_CREATED) || (M->flags & TGLMF_ENCRYPTED)) {
+ if (!M || !(M->flags & TGLMF_CREATED)) {
+ tgl_set_query_error (TLS, EINVAL, "unknown message");
+ } else {
+ tgl_set_query_error (TLS, EINVAL, "can not forward message from secret chat");
+ }
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0);
+ }
+ return;
+ }
+ if (M->media.type != tgl_message_media_photo && M->media.type != tgl_message_media_document) {
+ tgl_set_query_error (TLS, EINVAL, "can only forward photo/document");
+ 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:
+ assert (M->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:
+ assert (M->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);
+ }
+
+ struct messages_send_extra *E = talloc0 (sizeof (*E));
+ tglt_secure_random (&E->id, 8);
+ out_long (E->id);
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, E, callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Send location */
+
+void tgl_do_send_location (struct tgl_state *TLS, tgl_peer_id_t id, double latitude, double longitude, unsigned long long flags, 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_do_send_location_encr (TLS, id, latitude, longitude, flags, callback, callback_extra);
+ } else {
+ int reply_id = flags >> 32;
+ clear_packet ();
+ out_int (CODE_messages_send_media);
+ out_int (reply_id ? 1 : 0);
+ if (reply_id) { out_int (reply_id); }
+ out_peer_id (TLS, id);
+ out_int (CODE_input_media_geo_point);
+ out_int (CODE_input_geo_point);
+ out_double (latitude);
+ out_double (longitude);
+
+ struct messages_send_extra *E = talloc0 (sizeof (*E));
+ tglt_secure_random (&E->id, 8);
+ out_long (E->id);
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, E, callback, callback_extra);
+ }
+}
+
+void tgl_do_reply_location (struct tgl_state *TLS, int reply_id, double latitude, double longitude, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) {
+ struct tgl_message *M = tgl_message_get (TLS, reply_id);
+ if (!M || !(M->flags & TGLMF_CREATED) || (M->flags & TGLMF_ENCRYPTED)) {
+ if (!M || !(M->flags & TGLMF_CREATED)) {
+ tgl_set_query_error (TLS, EINVAL, "unknown message");
+ } else {
+ tgl_set_query_error (TLS, EINVAL, "can not forward message from secret chat");
+ }
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0);
+ }
+ return;
+ }
+
+ tgl_peer_id_t id = M->to_id;
+ if (tgl_get_peer_type (id) == TGL_PEER_USER && tgl_get_peer_id (id) == TLS->our_id) {
+ id = M->from_id;
+ }
+
+ tgl_do_send_location (TLS, id, latitude, longitude, flags | TGL_SEND_MSG_FLAG_REPLY (reply_id), callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Rename chat */
+
+void tgl_do_rename_chat (struct tgl_state *TLS, tgl_peer_id_t id, const char *name, int name_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), 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_cstring (name, name_len);
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, 0, callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Chat info */
+
+static int chat_info_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tgl_chat *C = tglf_fetch_alloc_chat_full_new (TLS, D);
+ //print_chat_info (C);
+ 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) {
+ tgl_set_query_error (TLS, EINVAL, "unknown chat id");
+ 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);
+}
+/* }}} */
+
+/* {{{ User info */
+
+static int user_info_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tgl_user *U = tglf_fetch_alloc_user_full_new (TLS, D);
+ 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 (tgl_get_peer_type (id) != TGL_PEER_USER) {
+ tgl_set_query_error (TLS, EINVAL, "id should be user id");
+ if (callback) {
+ callback (TLS, callback_extra, 0, NULL);
+ }
+ return;
+ }
+ if (offline_mode) {
+ tgl_peer_t *C = tgl_peer_get (TLS, id);
+ if (!C) {
+ tgl_set_query_error (TLS, EINVAL, "unknown user id");
+ 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);
+}
+
+static void resend_query_cb (struct tgl_state *TLS, void *_q, int success) {
+ assert (success);
+
+ bl_do_dc_signed (TLS, TLS->DC_working->id);
+
+ struct query *q = _q;
+
+ clear_packet ();
+ out_int (CODE_users_get_full_user);
+ out_int (CODE_input_user_self);
+ tglq_send_query (TLS, q->DC, packet_ptr - packet_buffer, packet_buffer, &user_info_methods, 0, q->callback, q->callback_extra);
+
+ tfree (q->data, 4 * q->data_len);
+ TLS->timer_methods->free (q->ev);
+ tfree (q, sizeof (*q));
+}
+/* }}} */
+
+/* {{{ Load photo/video */
+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;
+
+ if (D->fd >= 0) {
+ 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, void *DD) {
+ struct tl_ds_upload_file *DS_UF = DD;
+
+ struct download *D = q->extra;
+ if (D->fd == -1) {
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ errno_t err = _sopen_s(&D->fd, D->name, O_CREAT | O_WRONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE);
+ if (err != 0) {
+ tgl_set_query_error (TLS, EBADF, "Can not open file for writing: %s", GetErrnoStr (errno));
+#elif defined(WIN32) || defined(_WIN32)
+ D->fd = open(D->name, O_CREAT | O_WRONLY | O_BINARY, 0640);
+ if (D->fd < 0) {
+ tgl_set_query_error (TLS, EBADF, "Can not open file for writing: %s", GetErrnoStr (errno));
+#else
+ D->fd = open (D->name, O_CREAT | O_WRONLY, 0640);
+ if (D->fd < 0) {
+ tgl_set_query_error (TLS, EBADF, "Can not open file for writing: %m");
+#endif
+ 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;
+ }
+ }
+
+ int len = DS_UF->bytes->len;
+ TLS->cur_downloaded_bytes += len;
+ //update_prompt ();
+
+ if (D->iv) {
+ assert (!(len & 15));
+ void *ptr = DS_UF->bytes->data;
+
+ 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, DS_UF->bytes->data, 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, const char *error) {
+ tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, 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_%"_PRINTF_INT64_"d_%d.jpg", TLS->downloads_directory, D->volume, D->local_id);
+ } else {
+ if (D->ext) {
+ l = tsnprintf (buf, sizeof (buf), "%s/download_%"_PRINTF_INT64_"d.%s", TLS->downloads_directory, D->id, D->ext);
+ } else {
+ l = tsnprintf (buf, sizeof (buf), "%s/download_%"_PRINTF_INT64_"d", TLS->downloads_directory, D->id);
+ }
+ }
+ if (l >= (int) sizeof (buf)) {
+ vlogprintf (E_ERROR, "Download filename is too long");
+ assert (0);
+ }
+ 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;
+ //update_prompt ();
+ }
+ 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 (D->size ? (1 << 14) : (1 << 19));
+ tglq_send_query (TLS, TLS->DC_list[D->dc], packet_ptr - packet_buffer, packet_buffer, &download_methods, D, callback, callback_extra);
+ //tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &download_methods, D);
+}
+
+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, const 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_file_location (struct tgl_state *TLS, struct tgl_file_location *P, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra) {
+ if (!P->dc) {
+ tgl_set_query_error (TLS, EINVAL, "Bad file location");
+ 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 = 0;
+ D->volume = P->volume;
+ D->dc = P->dc;
+ D->local_id = P->local_id;
+ D->secret = P->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, const char *filename), void *callback_extra) {
+ if (!photo->sizes_num) {
+ tgl_set_query_error (TLS, EINVAL, "Bad photo (no photo sizes");
+ 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, const char *filename), void *callback_extra) {
+ tgl_do_load_photo_size (TLS, &video->thumb, callback, callback_extra);
+}
+
+static void _tgl_do_load_document (struct tgl_state *TLS, struct tgl_document *V, struct download *D, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra) {
+ assert (V);
+ 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;
+
+ 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_document (struct tgl_state *TLS, struct tgl_document *V, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra) {
+
+ struct download *D = talloc0 (sizeof (*D));
+ D->type = CODE_input_document_file_location;
+
+ _tgl_do_load_document (TLS, V, D, callback, callback_extra);
+}
+
+void tgl_do_load_video (struct tgl_state *TLS, struct tgl_document *V, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra) {
+
+ struct download *D = talloc0 (sizeof (*D));
+ D->type = CODE_input_video_file_location;
+
+ _tgl_do_load_document (TLS, V, D, callback, callback_extra);
+}
+
+void tgl_do_load_audio (struct tgl_state *TLS, struct tgl_document *V, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra) {
+
+ struct download *D = talloc0 (sizeof (*D));
+ D->type = CODE_input_audio_file_location;
+
+ _tgl_do_load_document (TLS, V, 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, const 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))));
+}
+/* }}} */
+
+/* {{{ Export auth */
+
+static int import_auth_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_auth_authorization *DS_U = D;
+ tglf_fetch_alloc_user_new (TLS, DS_U->user);
+
+ 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, void *D) {
+ struct tl_ds_auth_exported_authorization *DS_EA = D;
+
+ bl_do_set_our_id (TLS, DS_LVAL (DS_EA->id));
+
+
+ clear_packet ();
+ tgl_do_insert_header (TLS);
+ out_int (CODE_auth_import_authorization);
+ out_int (TLS->our_id);
+ out_cstring (DS_STR (DS_EA->bytes));
+ tglq_send_query (TLS, q->extra, packet_ptr - packet_buffer, packet_buffer, &import_auth_methods, q->extra, q->callback, q->callback_extra);
+ 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);
+}
+/* }}} */
+
+/* {{{ Add contact */
+static int add_contact_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_contacts_imported_contacts *DS_CIC = D;
+
+ if (DS_LVAL (DS_CIC->imported->cnt) > 0) {
+ vlogprintf (E_DEBUG, "Added successfully");
+ } else {
+ vlogprintf (E_DEBUG, "Not added");
+ }
+
+ int n = DS_LVAL (DS_CIC->users->cnt);
+
+ struct tgl_user **UL = talloc (n * sizeof (void *));
+ int i;
+ for (i = 0; i < n; i++) {
+ UL[i] = tglf_fetch_alloc_user_new (TLS, DS_CIC->users->data[i]);
+ }
+
+ 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);
+}
+/* }}} */
+
+/* {{{ Del contact */
+static int del_contact_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ 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) {
+ tgl_set_query_error (TLS, EINVAL, "id should be user id");
+ 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);
+}
+/* }}} */
+
+/* {{{ Msg search */
+
+struct msg_search_extra {
+ struct tgl_message **ML;
+ int list_offset;
+ int list_size;
+ tgl_peer_id_t id;
+ int limit;
+ int offset;
+ int from;
+ int to;
+ int max_id;
+ char *query;
+};
+
+static void _tgl_do_msg_search (struct tgl_state *TLS, struct msg_search_extra *E, 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, void *D) {
+ struct tl_ds_messages_messages *DS_MM = D;
+
+ struct msg_search_extra *E = q->extra;
+
+ int n = DS_LVAL (DS_MM->messages->cnt);
+
+ if (E->list_size - E->list_offset < n) {
+ int new_list_size = 2 * E->list_size;
+ if (new_list_size - E->list_offset < n) {
+ new_list_size = n + E->list_offset;
+ }
+ E->ML = trealloc (E->ML, E->list_size * sizeof (void *), new_list_size * sizeof (void *));
+ assert (E->ML);
+ E->list_size = new_list_size;
+ }
+
+ int i;
+ for (i = 0; i < n; i++) {
+ E->ML[i + E->list_offset] = tglf_fetch_alloc_message_new (TLS, DS_MM->messages->data[i]);
+ }
+ E->list_offset += n;
+ E->offset += n;
+ E->limit -= n;
+ if (E->limit + E->offset >= DS_LVAL (DS_MM->count)) {
+ E->limit = DS_LVAL (DS_MM->count) - E->offset;
+ if (E->limit < 0) { E->limit = 0; }
+ }
+ assert (E->limit >= 0);
+
+ for (i = 0; i < DS_LVAL (DS_MM->chats->cnt); i++) {
+ tglf_fetch_alloc_chat_new (TLS, DS_MM->chats->data[i]);
+ }
+ for (i = 0; i < DS_LVAL (DS_MM->users->cnt); i++) {
+ tglf_fetch_alloc_user_new (TLS, DS_MM->users->data[i]);
+ }
+
+ if (E->limit <= 0 || DS_MM->magic == CODE_messages_messages) {
+ if (q->callback) {
+ ((void (*)(struct tgl_state *, void *, int, int, struct tgl_message **))q->callback) (TLS, q->callback_extra, 1, E->list_offset, E->ML);
+ }
+
+ tfree_str (E->query);
+ tfree (E->ML, sizeof (void *) * E->list_size);
+ tfree (E, sizeof (*E));
+ } else {
+ E->max_id = E->ML[E->list_offset - 1]->id;
+ E->offset = 0;
+ _tgl_do_msg_search (TLS, E, 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, const char *error) {
+ tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error);
+
+ struct msg_search_extra *E = q->extra;
+ tfree_str (E->query);
+ tfree (E->ML, sizeof (void *) * E->list_size);
+ tfree (E, sizeof (*E));
+ 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)
+};
+
+static void _tgl_do_msg_search (struct tgl_state *TLS, struct msg_search_extra *E, void (*callback)(struct tgl_state *TLS,void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra) {
+ clear_packet ();
+ out_int (CODE_messages_search);
+ if (tgl_get_peer_type (E->id) == TGL_PEER_UNKNOWN) {
+ out_int (CODE_input_peer_empty);
+ } else {
+ out_peer_id (TLS, E->id);
+ }
+
+ out_string (E->query);
+ out_int (CODE_input_messages_filter_empty);
+ out_int (E->from);
+ out_int (E->to);
+ out_int (E->offset); // offset
+ out_int (E->max_id); // max_id
+ out_int (E->limit);
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &msg_search_methods, E, 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 *pattern, int pattern_len, 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) {
+ tgl_set_query_error (TLS, EINVAL, "can not search in secret chats");
+ if (callback) {
+ callback (TLS, callback_extra, 0, 0, 0);
+ }
+ return;
+ }
+ struct msg_search_extra *E = talloc0 (sizeof (*E));
+ E->id = id;
+ E->from = from;
+ E->to = to;
+ E->limit = limit;
+ E->offset = offset;
+ E->query = tstrndup (pattern, pattern_len);
+
+ _tgl_do_msg_search (TLS, E, callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Get difference */
+
+static int get_state_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_updates_state *DS_US = D;
+
+ assert (TLS->locks & TGL_LOCK_DIFF);
+ TLS->locks ^= TGL_LOCK_DIFF;
+
+ bl_do_set_pts (TLS, DS_LVAL (DS_US->pts));
+ bl_do_set_qts (TLS, DS_LVAL (DS_US->qts));
+ bl_do_set_date (TLS, DS_LVAL (DS_US->date));
+ bl_do_set_seq (TLS, DS_LVAL (DS_US->seq));
+
+ 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, void *D) {
+ struct tl_ds_updates_state *DS_US = D;
+ int pts = DS_LVAL (DS_US->pts);
+ int qts = DS_LVAL (DS_US->qts);
+ int seq = DS_LVAL (DS_US->seq);
+
+ if (pts > TLS->pts || qts > TLS->qts || seq > TLS->seq) {
+ tgl_do_get_difference (TLS, 0, 0, 0);
+ }
+ return 0;
+}
+
+
+//int get_difference_active;
+static int get_difference_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_updates_difference *DS_UD = D;
+
+ assert (TLS->locks & TGL_LOCK_DIFF);
+ TLS->locks ^= TGL_LOCK_DIFF;
+
+ if (DS_UD->magic == CODE_updates_difference_empty) {
+ bl_do_set_date (TLS, DS_LVAL (DS_UD->date));
+ bl_do_set_seq (TLS, DS_LVAL (DS_UD->seq));
+
+ 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 {
+ int i;
+
+ for (i = 0; i < DS_LVAL (DS_UD->users->cnt); i++) {
+ tglf_fetch_alloc_user_new (TLS, DS_UD->users->data[i]);
+ }
+ for (i = 0; i < DS_LVAL (DS_UD->chats->cnt); i++) {
+ tglf_fetch_alloc_chat_new (TLS, DS_UD->chats->data[i]);
+ }
+
+ int ml_pos = DS_LVAL (DS_UD->new_messages->cnt);
+ struct tgl_message **ML = talloc (ml_pos * sizeof (void *));
+ for (i = 0; i < ml_pos; i++) {
+ ML[i] = tglf_fetch_alloc_message_new (TLS, DS_UD->new_messages->data[i]);
+ }
+
+ int el_pos = DS_LVAL (DS_UD->new_encrypted_messages->cnt);
+ struct tgl_message **EL = talloc (el_pos * sizeof (void *));
+ for (i = 0; i < el_pos; i++) {
+ EL[i] = tglf_fetch_alloc_encrypted_message_new (TLS, DS_UD->new_encrypted_messages->data[i]);
+ }
+
+ for (i = 0; i < DS_LVAL (DS_UD->other_updates->cnt); i++) {
+ tglu_work_update_new (TLS, 1, DS_UD->other_updates->data[i]);
+ }
+
+ for (i = 0; i < DS_LVAL (DS_UD->other_updates->cnt); i++) {
+ tglu_work_update_new (TLS, -1, DS_UD->other_updates->data[i]);
+ }
+
+ for (i = 0; i < ml_pos; i++) {
+ bl_do_msg_update (TLS, ML[i]->id);
+ }
+ for (i = 0; i < el_pos; i++) {
+ bl_do_msg_update (TLS, EL[i]->id);
+ }
+
+ tfree (ML, ml_pos * sizeof (void *));
+ tfree (EL, el_pos * sizeof (void *));
+
+ if (DS_UD->state) {
+ bl_do_set_pts (TLS, DS_LVAL (DS_UD->state->pts));
+ bl_do_set_qts (TLS, DS_LVAL (DS_UD->state->qts));
+ bl_do_set_date (TLS, DS_LVAL (DS_UD->state->date));
+ bl_do_set_seq (TLS, DS_LVAL (DS_UD->state->seq));
+
+ if (q->callback) {
+ ((void (*)(struct tgl_state *, void *, int))q->callback) (TLS, q->callback_extra, 1);
+ }
+ } else {
+ bl_do_set_pts (TLS, DS_LVAL (DS_UD->intermediate_state->pts));
+ bl_do_set_qts (TLS, DS_LVAL (DS_UD->intermediate_state->qts));
+ bl_do_set_date (TLS, DS_LVAL (DS_UD->intermediate_state->date));
+
+ tgl_do_get_difference (TLS, 0, q->callback, q->callback_extra);
+ }
+ }
+ 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 */
+
+int 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 -1;
+ }
+ memcpy (buf, P->encr_chat.first_key_sha, 16);
+ return 0;
+}
+/* }}} */
+
+/* {{{ Add user to chat */
+
+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), 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, &send_msgs_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), 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, &send_msgs_methods, 0, callback, callback_extra);
+}
+
+/* }}} */
+
+/* {{{ Create secret chat */
+
+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) {
+ tgl_set_query_error (TLS, EINVAL, "Can not create secret chat with unknown user");
+ if (callback) {
+ callback (TLS, callback_extra, 0, NULL);
+ }
+ return;
+ }
+
+ tgl_do_create_encr_chat_request (TLS, tgl_get_peer_id (id), callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Create group chat */
+
+void tgl_do_create_group_chat (struct tgl_state *TLS, int users_num, tgl_peer_id_t ids[], const char *chat_topic, int chat_topic_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), 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) {
+ tgl_set_query_error (TLS, EINVAL, "Can not create chat with unknown user");
+ if (callback) {
+ callback (TLS, callback_extra, 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_cstring (chat_topic, chat_topic_len);
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, 0, callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Delete msg */
+
+static int delete_msg_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_messages_affected_messages *DS_MAM = D;
+
+ struct tgl_message *M = tgl_message_get (TLS, (long)q->extra);
+ if (M) {
+ bl_do_message_delete (TLS, M);
+ }
+
+ int r = tgl_check_pts_diff (TLS, DS_LVAL (DS_MAM->pts), DS_LVAL (DS_MAM->pts_count));
+
+ if (r > 0) {
+ bl_do_set_pts (TLS, DS_LVAL (DS_MAM->pts));
+ }
+
+ 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(messages_affected_messages)
+};
+
+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, (void *)(long)id, callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Export card */
+
+static int export_card_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_vector *DS_V = D;
+
+ int n = DS_LVAL (DS_V->f1);
+
+ int *r = talloc (4 * n);
+ int i;
+ for (i = 0; i < n; i++) {
+ r[i] = *(int *)DS_V->f2[i];
+ }
+
+ if (q->callback) {
+ ((void (*)(struct tgl_state *, void *, int, int, int *))q->callback) (TLS, q->callback_extra, 1, n, r);
+ }
+ tfree (r, 4 * n);
+ 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);
+}
+/* }}} */
+
+/* {{{ Import card */
+
+static int import_card_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tgl_user *U = tglf_fetch_alloc_user_new (TLS, D);
+
+ 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);
+}
+/* }}} */
+
+void tgl_do_start_bot (struct tgl_state *TLS, tgl_peer_id_t bot, tgl_peer_id_t chat, const char *str, int str_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) {
+ clear_packet ();
+ out_int (CODE_messages_start_bot);
+ struct tgl_user *U = (void *)tgl_peer_get (TLS, bot);
+ if (U && U->access_hash) {
+ out_int (CODE_input_user_foreign);
+ out_int (tgl_get_peer_id (bot));
+ out_long (U->access_hash);
+ } else {
+ out_int (CODE_input_user_contact);
+ out_int (tgl_get_peer_id (bot));
+ }
+ out_int (tgl_get_peer_id (chat));
+ long long m;
+ tglt_secure_random (&m, 8);
+ out_long (m);
+ out_cstring (str, str_len);
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, 0, callback, callback_extra);
+}
+
+/* {{{ Send typing */
+static int send_typing_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ 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);
+ }
+ }
+}
+/* }}} */
+
+/* {{{ Extd query */
+#ifndef DISABLE_EXTF
+
+
+char *tglf_extf_print_ds (struct tgl_state *TLS, void *DS, struct paramed_type *T);
+
+static int ext_query_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ if (q->callback) {
+ char *buf = tglf_extf_print_ds (TLS, D, 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, const char *data, int data_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const 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
+/* }}} */
+
+/* {{{ get messages */
+
+static int get_messages_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_messages_messages *DS_MM = D;
+
+ int i;
+ for (i = 0; i < DS_LVAL (DS_MM->users->cnt); i++) {
+ tglf_fetch_alloc_user_new (TLS, DS_MM->users->data[i]);
+ }
+ for (i = 0; i < DS_LVAL (DS_MM->chats->cnt); i++) {
+ tglf_fetch_alloc_chat_new (TLS, DS_MM->chats->data[i]);
+ }
+
+ struct tgl_message **ML;
+ if (q->extra) {
+ ML = talloc0 (sizeof (void *) * DS_LVAL (DS_MM->messages->cnt));
+ } else {
+ static struct tgl_message *M;
+ M = NULL;
+ ML = &M;
+ assert (DS_LVAL (DS_MM->messages->cnt) <= 1);
+ }
+ for (i = 0; i < DS_LVAL (DS_MM->messages->cnt); i++) {
+ ML[i] = tglf_fetch_alloc_message_new (TLS, DS_MM->messages->data[i]);
+ }
+ if (q->callback) {
+ if (q->extra) {
+ ((void (*)(struct tgl_state *, void *, int, int, struct tgl_message **))q->callback)(TLS, q->callback_extra, 1, DS_LVAL (DS_MM->messages->cnt), ML);
+ } else {
+ if (DS_LVAL (DS_MM->messages->cnt) > 0) {
+ ((void (*)(struct tgl_state *, void *, int, struct tgl_message *))q->callback)(TLS, q->callback_extra, 1, *ML);
+ } else {
+ tgl_set_query_error (TLS, ENOENT, "no such message");
+ ((void (*)(struct tgl_state *, void *, int, struct tgl_message *))q->callback)(TLS, q->callback_extra, 0, NULL);
+ }
+ }
+ }
+ if (q->extra) {
+ tfree (ML, sizeof (void *) * DS_LVAL (DS_MM->messages->cnt));
+ }
+ return 0;
+}
+
+static struct query_methods get_messages_methods = {
+ .on_answer = get_messages_on_answer,
+ .on_error = q_ptr_on_error,
+ .type = TYPE_TO_PARAM (messages_messages)
+};
+
+void tgl_do_get_message (struct tgl_state *TLS, long long id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) {
+ struct tgl_message *M = tgl_message_get (TLS, id);
+ if (M) {
+ if (callback) {
+ callback (TLS, callback_extra, 1, M);
+ }
+ return;
+ }
+
+ clear_packet ();
+
+ out_int (CODE_messages_get_messages);
+ out_int (CODE_vector);
+ out_int (1);
+ out_int (id);
+
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_messages_methods, 0, callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ Export/import chat link */
+static int export_chat_link_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_exported_chat_invite *DS_ECI = D;
+
+ char *s = DS_STR_DUP (DS_ECI->link);
+
+ if (q->callback) {
+ ((void (*)(struct tgl_state *, void *, int, const char *))q->callback)(TLS, q->callback_extra, s ? 1 : 0, s);
+ }
+ tfree_str (s);
+ return 0;
+}
+
+
+static struct query_methods export_chat_link_methods = {
+ .on_answer = export_chat_link_on_answer,
+ .on_error = q_ptr_on_error,
+ .type = TYPE_TO_PARAM(exported_chat_invite)
+};
+
+void tgl_do_export_chat_link (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *link), void *callback_extra) {
+ if (tgl_get_peer_type (id) != TGL_PEER_CHAT) {
+ tgl_set_query_error (TLS, EINVAL, "Can only export chat link for chat");
+ if (callback) {
+ callback (TLS, callback_extra, 0, NULL);
+ }
+ return;
+ }
+
+ clear_packet ();
+ out_int (CODE_messages_export_chat_invite);
+ out_int (tgl_get_peer_id (id));
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &export_chat_link_methods, 0, callback, callback_extra);
+}
+
+void tgl_do_import_chat_link (struct tgl_state *TLS, const char *link, int len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) {
+ const char *l = link + len - 1;
+ while (l >= link && *l != '/') {
+ l --;
+ }
+ l ++;
+
+ clear_packet ();
+ out_int (CODE_messages_import_chat_invite);
+ out_cstring (l, len - (l - link));
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, 0, callback, callback_extra);
+}
+
+/* }}} */
+
+/* {{{ set password */
+static int set_password_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ 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 error_len, const 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;
+ }
+ }
+ tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error);
+ 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, const char *current_password, int current_password_len, const char *new_password, int new_password_len, const char *current_salt, int current_salt_len, const char *new_salt, int new_salt_len, const char *hint, int hint_len, 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];
+
+ assert (current_salt_len <= 128);
+ assert (current_password_len <= 128);
+ assert (new_salt_len <= 128);
+ assert (new_password_len <= 128);
+
+ out_int (CODE_account_update_password_settings);
+
+ if (current_password_len && current_salt_len) {
+ memcpy (s, current_salt, current_salt_len);
+ memcpy (s + current_salt_len, current_password, current_password_len);
+ memcpy (s + current_salt_len + current_password_len, current_salt, current_salt_len);
+
+ SHA256 ((void *)s, 2 * current_salt_len + current_password_len, shab);
+ out_cstring ((void *)shab, 32);
+ } else {
+ out_string ("");
+ }
+
+ out_int (CODE_account_password_input_settings);
+ if (new_password_len) {
+ out_int (1);
+
+ static char d[256];
+ memcpy (d, new_salt, new_salt_len);
+
+ int l = new_salt_len;
+ tglt_secure_random (d + l, 16);
+ l += 16;
+ memcpy (s, d, l);
+
+ memcpy (s + l, new_password, new_password_len);
+ memcpy (s + l + new_password_len, d, l);
+
+ SHA256 ((void *)s, 2 * l + new_password_len, shab);
+
+ out_cstring (d, l);
+ out_cstring ((void *)shab, 32);
+ out_cstring (hint, hint_len);
+ } else {
+ out_int (0);
+ }
+
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &set_password_methods, 0, callback, callback_extra);
+}
+
+struct change_password_extra {
+ char *current_password;
+ char *new_password;
+ char *current_salt;
+ char *new_salt;
+ char *hint;
+ int current_password_len;
+ int new_password_len;
+ int current_salt_len;
+ int new_salt_len;
+ int hint_len;
+ void (*callback)(struct tgl_state *, void *, int);
+ void *callback_extra;
+};
+
+void tgl_on_new_pwd (struct tgl_state *TLS, const char *pwd[], void *_T);
+void tgl_on_new2_pwd (struct tgl_state *TLS, const char *pwd, void *_T) {
+ struct change_password_extra *E = _T;
+ if (strlen (pwd) != (size_t)E->new_password_len || memcmp (E->new_password, pwd, E->new_password_len)) {
+ tfree (E->new_password, E->new_password_len);
+ E->new_password = NULL;
+ E->new_password_len = 0;
+ vlogprintf (E_ERROR, "passwords do not match\n");
+ TLS->callback.get_values (TLS, tgl_new_password, "new password: ", 2, tgl_on_new_pwd, E);
+ return;
+ }
+ tgl_do_act_set_password (TLS, E->current_password, E->current_password_len,
+ E->new_password, E->new_password_len,
+ E->current_salt, E->current_salt_len,
+ E->new_salt, E->new_salt_len,
+ E->hint, E->hint_len,
+ E->callback, E->callback_extra);
+
+ tfree (E->current_password, E->current_password_len);
+ tfree (E->new_password, E->new_password_len);
+ tfree (E->current_salt, E->current_salt_len);
+ tfree (E->new_salt, E->new_salt_len);
+ tfree_str (E->hint);
+ tfree (E, sizeof (*E));
+}
+
+void tgl_on_new_pwd (struct tgl_state *TLS, const char *pwd[], void *_T) {
+ struct change_password_extra *E = _T;
+ E->new_password_len = strlen (pwd[0]);
+ E->new_password = tmemdup (pwd[0], E->new_password_len);
+ tgl_on_new2_pwd(TLS, pwd[1], E);
+}
+
+void tgl_on_old_pwd (struct tgl_state *TLS, const char *pwd[], void *_T) {
+ struct change_password_extra *E = _T;
+ E->current_password_len = strlen (pwd[0]);
+ E->current_password = tmemdup (pwd[0], E->current_password_len);
+ tgl_on_new_pwd(TLS, pwd + 1, E);
+}
+
+static int set_get_password_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ struct tl_ds_account_password *DS_AP = D;
+
+ char *new_hint = q->extra;
+
+ struct change_password_extra *E = talloc0 (sizeof (*E));
+
+ if (DS_AP->current_salt) {
+ E->current_salt_len = DS_AP->current_salt->len;
+ E->current_salt = tmemdup (DS_AP->current_salt->data, E->current_salt_len);
+ }
+ if (DS_AP->new_salt) {
+ E->new_salt_len = DS_AP->new_salt->len;
+ E->new_salt = tmemdup (DS_AP->new_salt->data, E->new_salt_len);
+ }
+
+ if (new_hint) {
+ E->hint_len = strlen (new_hint);
+ E->hint = new_hint;
+ }
+
+ E->callback = q->callback;
+ E->callback_extra = q->callback_extra;
+
+ if (DS_AP->magic == CODE_account_no_password) {
+ TLS->callback.get_values (TLS, tgl_new_password, "new password: ", 2, tgl_on_new_pwd, E);
+ } else {
+ static char s[512];
+ snprintf (s, 511, "old password (hint %.*s): ", DS_RSTR (DS_AP->hint));
+ TLS->callback.get_values (TLS, tgl_cur_and_new_password, s, 3, tgl_on_old_pwd, E);
+ }
+ 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, const char *hint, int hint_len, 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 ? tstrndup (hint, hint_len) : NULL, callback, callback_extra);
+}
+
+/* }}} */
+
+/* {{{ check password */
+static int check_password_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const 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;
+ tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error);
+ 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, void *D) {
+ 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)
+};
+
+
+struct check_password_extra {
+ char *current_salt;
+ int current_salt_len;
+ void (*callback)(struct tgl_state *, void *, int);
+ void *callback_extra;
+};
+
+static void tgl_pwd_got (struct tgl_state *TLS, const char *pwd[], void *_T) {
+ struct check_password_extra *E = _T;
+
+ clear_packet ();
+ static char s[512];
+ static unsigned char shab[32];
+
+ assert (E->current_salt_len <= 128);
+ assert (strlen (pwd[0]) <= 128);
+
+ out_int (CODE_auth_check_password);
+
+ if (pwd[0] && E->current_salt_len) {
+ int l = E->current_salt_len;
+ memcpy (s, E->current_salt, l);
+
+ int r = strlen (pwd[0]);
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ strcpy_s (s + l, 512 -l, pwd[0]);
+#else
+ strcpy (s + l, pwd[0]);
+#endif
+
+ memcpy (s + l + r, E->current_salt, l);
+
+ SHA256 ((void *)s, 2 * l + r, shab);
+ out_cstring ((void *)shab, 32);
+ } else {
+ out_string ("");
+ }
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &check_password_methods, 0, E->callback, E->callback_extra);
+
+ tfree (E->current_salt, E->current_salt_len);
+ tfree (E, sizeof (*E));
+}
+
+static int check_get_password_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) {
+ TLS->locks ^= TGL_LOCK_PASSWORD;
+ tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error);
+ 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, void *D) {
+ struct tl_ds_account_password *DS_AP = D;
+
+ if (DS_AP->magic == CODE_account_no_password) {
+ TLS->locks ^= TGL_LOCK_PASSWORD;
+ return 0;
+ }
+ static char s[512];
+ snprintf (s, 511, "type password (hint %.*s): ", DS_RSTR (DS_AP->hint));
+
+ struct check_password_extra *E = talloc0 (sizeof (*E));
+
+ if (DS_AP->current_salt) {
+ E->current_salt_len = DS_AP->current_salt->len;
+ E->current_salt = tmemdup (DS_AP->current_salt->data, E->current_salt_len);
+ }
+
+ E->callback = q->callback;
+ E->callback_extra = q->callback_extra;
+
+ TLS->callback.get_values (TLS, tgl_cur_password, s, 1, tgl_pwd_got, E);
+ 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);
+}
+
+/* }}} */
+
+/* {{{ send broadcast */
+void tgl_do_send_broadcast (struct tgl_state *TLS, int num, tgl_peer_id_t id[], const char *text, int text_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *extra, int success, int num, struct tgl_message *ML[]), void *callback_extra) {
+
+ assert (num <= 1000);
+
+ struct messages_send_extra *E = talloc0 (sizeof (*E));
+ E->multi = 1;
+ E->count = num;
+ E->list = talloc (sizeof (long long) * num);
+
+ int date = (int)time (0);
+ struct tl_ds_message_media TDSM;
+ TDSM.magic = CODE_message_media_empty;
+
+ int i;
+ for (i = 0; i < num; i++) {
+ tglt_secure_random (&E->list[i], 8);
+
+ int peer_type = tgl_get_peer_type (id[i]);
+ int peer_id = tgl_get_peer_id (id[i]);
+ assert (tgl_get_peer_type (id[i]) == TGL_PEER_USER);
+
+ int disable_preview = flags & TGL_SEND_MSG_FLAG_DISABLE_PREVIEW;
+ if (!(flags & TGL_SEND_MSG_FLAG_ENABLE_PREVIEW) && TLS->disable_link_preview) {
+ disable_preview = 1;
+ }
+ if (disable_preview) {
+ disable_preview = TGLMF_DISABLE_PREVIEW;
+ }
+
+ bl_do_create_message_new (TLS, E->list[i], &TLS->our_id, &peer_type, &peer_id, NULL, NULL, &date, text, text_len, &TDSM, NULL, NULL, NULL, TGLMF_UNREAD | TGLMF_OUT | TGLMF_PENDING | TGLMF_CREATE | TGLMF_CREATED | disable_preview);
+ }
+
+ clear_packet ();
+ out_int (CODE_messages_send_broadcast);
+ out_int (CODE_vector);
+ out_int (num);
+ 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_int (CODE_vector);
+ out_int (num);
+ for (i = 0; i < num; i++) {
+ out_long (E->list[i]);
+ }
+ out_cstring (text, text_len);
+
+ out_int (CODE_message_media_empty);
+
+ tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, E, callback, callback_extra);
+}
+/* }}} */
+
+/* {{{ block user */
+static int block_user_on_answer (struct tgl_state *TLS, struct query *q, void *D) {
+ if (q->callback) {
+ ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+ }
+ return 0;
+}
+
+static struct query_methods block_user_methods = {
+ .on_answer = block_user_on_answer,
+ .on_error = q_void_on_error,
+ .type = TYPE_TO_PARAM (bool)
+};
+
+void tgl_do_block_user (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_set_query_error (TLS, EINVAL, "id should be user id");
+ if (callback) {
+ callback (TLS, callback_extra, 0);
+ }
+ return;
+ }
+
+ clear_packet ();
+
+ out_int (CODE_contacts_block);
+ 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, &block_user_methods, 0, callback, callback_extra);
+}
+
+void tgl_do_unblock_user (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_set_query_error (TLS, EINVAL, "id should be user id");
+ if (callback) {
+ callback (TLS, callback_extra, 0);
+ }
+ return;
+ }
+
+ clear_packet ();
+
+ out_int (CODE_contacts_unblock);
+ 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, &block_user_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, void *D) {
+ 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, const 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, void *D) {
+ 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);
+ int rst = tgl_sce_requested;
+ bl_do_encr_chat_exchange_new (TLS, E, &id, NULL, &rst);
+
+ 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, 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);
+ }
+}
+
+struct sign_up_extra {
+ char *phone;
+ char *hash;
+ char *first_name;
+ char *last_name;
+ int phone_len;
+ int hash_len;
+ int first_name_len;
+ int last_name_len;
+};
+
+void tgl_sign_in_code (struct tgl_state *TLS, const char *code[], void *_T);
+void tgl_sign_in_result (struct tgl_state *TLS, void *_T, int success, struct tgl_user *U) {
+ struct sign_up_extra *E = _T;
+ if (success) {
+ tfree (E->phone, E->phone_len);
+ tfree (E->hash, E->hash_len);
+ tfree (E, sizeof (*E));
+ } else {
+ vlogprintf (E_ERROR, "incorrect code\n");
+ TLS->callback.get_values (TLS, tgl_code, "code ('call' for phone call):", 1, tgl_sign_in_code, E);
+ return;
+ }
+ tgl_export_all_auth (TLS);
+}
+
+void tgl_sign_in_code (struct tgl_state *TLS, const char *code[], void *_T) {
+ struct sign_up_extra *E = _T;
+ if (!strcmp (code[0], "call")) {
+ tgl_do_phone_call (TLS, E->phone, E->phone_len, E->hash, E->hash_len, 0, 0);
+ TLS->callback.get_values (TLS, tgl_code, "code ('call' for phone call):", 1, tgl_sign_in_code, E);
+ return;
+ }
+
+ tgl_do_send_code_result (TLS, E->phone, E->phone_len, E->hash, E->hash_len, code[0], strlen (code[0]), tgl_sign_in_result, E);
+}
+
+void tgl_sign_up_code (struct tgl_state *TLS, const char *code[], void *_T);
+void tgl_sign_up_result (struct tgl_state *TLS, void *_T, int success, struct tgl_user *U) {
+ struct sign_up_extra *E = _T;
+ if (success) {
+ tfree (E->phone, E->phone_len);
+ tfree (E->hash, E->hash_len);
+ tfree (E->first_name, E->first_name_len);
+ tfree (E->last_name, E->last_name_len);
+ tfree (E, sizeof (*E));
+ } else {
+ vlogprintf (E_ERROR, "incorrect code\n");
+ TLS->callback.get_values (TLS, tgl_code, "code ('call' for phone call):", 1, tgl_sign_up_code, E);
+ return;
+ }
+ tgl_export_all_auth (TLS);
+}
+
+void tgl_sign_up_code (struct tgl_state *TLS, const char *code[], void *_T) {
+ struct sign_up_extra *E = _T;
+ if (!strcmp (code[0], "call")) {
+ tgl_do_phone_call (TLS, E->phone, E->phone_len, E->hash, E->hash_len, 0, 0);
+ TLS->callback.get_values (TLS, tgl_code, "code ('call' for phone call):", 1, tgl_sign_up_code, E);
+ return;
+ }
+
+ tgl_do_send_code_result_auth (TLS, E->phone, E->phone_len, E->hash, E->hash_len, code[0], strlen (code[0]), E->first_name, E->first_name_len, E->last_name, E->last_name_len, tgl_sign_up_result, E);
+}
+
+
+void tgl_set_last_name (struct tgl_state *TLS, const char *last_name, struct sign_up_extra *E) {
+ E->last_name_len = strlen (last_name);
+ E->last_name = tmemdup (last_name, E->last_name_len);
+}
+
+int tgl_set_first_name (struct tgl_state *TLS, const char *first_name, struct sign_up_extra *E) {
+ if (strlen (first_name) < 1) {
+ return -1;
+ }
+
+ E->first_name_len = strlen (first_name);
+ E->first_name = tmemdup (first_name, E->first_name_len);
+ return 0;
+}
+
+void tgl_register_cb (struct tgl_state *TLS, const char *rinfo[], void *_T) {
+ struct sign_up_extra *E = _T;
+ const char *yn = rinfo[0];
+ if (strlen (yn) > 1) {
+ TLS->callback.get_values (TLS, tgl_register_info, "registration info:", 3, tgl_register_cb, E);
+ } else if (strlen (yn) == 0 || *yn == 'y' || *yn == 'Y') {
+ if (!tgl_set_first_name(TLS, rinfo[1], E)) {
+ tgl_set_last_name(TLS, rinfo[2], E);
+ TLS->callback.get_values (TLS, tgl_code, "code ('call' for phone call):", 1, tgl_sign_up_code, E);
+ }
+ else {
+ TLS->callback.get_values (TLS, tgl_register_info, "registration info:", 3, tgl_register_cb, E);
+ }
+ } else if (*yn == 'n' || *yn == 'N') {
+ vlogprintf (E_ERROR, "stopping registration");
+ tfree (E->phone, E->phone_len);
+ tfree (E->hash, E->hash_len);
+ tfree (E, sizeof (*E));
+ tgl_login (TLS);
+ } else {
+ TLS->callback.get_values (TLS, tgl_register_info, "registration info:", 3, tgl_register_cb, E);
+ }
+}
+
+void tgl_sign_in_phone (struct tgl_state *TLS, const char *phone[], void *arg);
+void tgl_sign_in_phone_cb (struct tgl_state *TLS, void *extra, int success, int registered, const char *mhash) {
+ struct sign_up_extra *E = extra;
+ if (!success) {
+ vlogprintf (E_ERROR, "Incorrect phone number\n");
+
+ tfree (E->phone, E->phone_len);
+ tfree (E, sizeof (*E));
+ TLS->callback.get_values (TLS, tgl_phone_number, "phone number:", 1, tgl_sign_in_phone, NULL);
+ return;
+ }
+
+ E->hash_len = strlen (mhash);
+ E->hash = tmemdup (mhash, E->hash_len);
+
+ if (registered) {
+ TLS->callback.get_values (TLS, tgl_code, "code ('call' for phone call):", 1, tgl_sign_in_code, E);
+ } else {
+ TLS->callback.get_values (TLS, tgl_register_info, "registration info:", 3, tgl_register_cb, E);
+ }
+}
+
+void tgl_sign_in_phone (struct tgl_state *TLS, const char *phone[], void *arg) {
+ struct sign_up_extra *E = talloc0 (sizeof (*E));
+ E->phone_len = strlen (phone[0]);
+ E->phone = tmemdup (phone[0], E->phone_len);
+
+ tgl_do_send_code (TLS, E->phone, E->phone_len, tgl_sign_in_phone_cb, E);
+}
+
+void tgl_bot_hash_cb (struct tgl_state *TLS, const char *code[], void *arg);
+
+void tgl_sign_in_bot_cb (struct tgl_state *TLS, void *_T, int success, struct tgl_user *U) {
+ if (!success) {
+ vlogprintf (E_ERROR, "incorrect bot hash\n");
+ TLS->callback.get_values (TLS, tgl_bot_hash, "bot hash:", 1, tgl_bot_hash_cb, NULL);
+ return;
+ }
+ tgl_export_all_auth (TLS);
+}
+
+void tgl_bot_hash_cb (struct tgl_state *TLS, const char *code[], void *arg) {
+ tgl_do_send_bot_auth (TLS, code[0], strlen (code[0]), tgl_sign_in_bot_cb, NULL);
+}
+
+void tgl_sign_in (struct tgl_state *TLS) {
+ if (!tgl_signed_dc (TLS, TLS->DC_working)) {
+ if (TLS->is_bot) {
+ TLS->callback.get_values (TLS, tgl_bot_hash, "bot hash:", 1, tgl_bot_hash_cb, NULL);
+ } else {
+ TLS->callback.get_values (TLS, tgl_phone_number, "phone number:", 1, 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_signed_dc (TLS, 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_signed_dc (TLS, 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/libs/tgl/src/queries.h b/libs/tgl/src/queries.h
new file mode 100644
index 0000000000..9665667d55
--- /dev/null
+++ b/libs/tgl/src/queries.h
@@ -0,0 +1,84 @@
+/*
+ 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 "net.h"
+#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, void *DS);
+ int (*on_error)(struct tgl_state *TLS, struct query *q, int error_code, int len, const 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 next_timer_in (void);
+//void work_timers (void);
+
+//extern struct query_methods help_get_config_methods;
+
+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);
+void tglq_query_free_all (struct tgl_state *TLS);
+// For binlog
+
+//int get_dh_config_on_answer (struct query *q);
+//void fetch_dc_option (void);
+#endif
diff --git a/libs/tgl/src/scheme.tl b/libs/tgl/src/scheme.tl
new file mode 100644
index 0000000000..a38980aea4
--- /dev/null
+++ b/libs/tgl/src/scheme.tl
@@ -0,0 +1 @@
+scheme31.tl \ No newline at end of file
diff --git a/libs/tgl/src/scheme12.tl b/libs/tgl/src/scheme12.tl
new file mode 100644
index 0000000000..7d37a6fdc5
--- /dev/null
+++ b/libs/tgl/src/scheme12.tl
@@ -0,0 +1,505 @@
+int ?= Int;
+long ?= Long;
+double ?= Double;
+string ?= String;
+
+bytes string = Bytes;
+
+boolFalse#bc799737 = Bool;
+boolTrue#997275b5 = Bool;
+
+vector#1cb5c415 {t:Type} # [ t ] = Vector t;
+
+error#c4b9f9bb code:int text:string = Error;
+
+null#56730bcc = Null;
+
+inputPeerEmpty#7f3b18ea = InputPeer;
+inputPeerSelf#7da07ec9 = InputPeer;
+inputPeerContact#1023dbe8 user_id:int = InputPeer;
+inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
+inputPeerChat#179be863 chat_id:int = InputPeer;
+
+inputUserEmpty#b98886cf = InputUser;
+inputUserSelf#f7c1b13f = InputUser;
+inputUserContact#86e94f65 user_id:int = InputUser;
+inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
+
+inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
+
+inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
+
+inputMediaEmpty#9664f57f = InputMedia;
+inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
+inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia;
+inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
+inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
+inputMediaUploadedVideo#4847d92a file:InputFile duration:int w:int h:int = InputMedia;
+inputMediaUploadedThumbVideo#e628a145 file:InputFile thumb:InputFile duration:int w:int h:int = InputMedia;
+inputMediaVideo#7f023ae6 id:InputVideo = InputMedia;
+
+inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
+inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
+inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
+
+inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
+inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint;
+
+inputPhotoEmpty#1cd7bf0d = InputPhoto;
+inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
+
+inputVideoEmpty#5508ec75 = InputVideo;
+inputVideo#ee579652 id:long access_hash:long = InputVideo;
+
+inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
+inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
+
+inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
+inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
+
+inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
+
+peerUser#9db1bc6d user_id:int = Peer;
+peerChat#bad0e5bb chat_id:int = Peer;
+
+storage.fileUnknown#aa963b05 = storage.FileType;
+storage.fileJpeg#7efe0e = storage.FileType;
+storage.fileGif#cae1aadf = storage.FileType;
+storage.filePng#a4f63c0 = storage.FileType;
+storage.filePdf#ae1e508d = storage.FileType;
+storage.fileMp3#528a0677 = storage.FileType;
+storage.fileMov#4b09ebbc = storage.FileType;
+storage.filePartial#40bc6f52 = storage.FileType;
+storage.fileMp4#b3cea0e4 = storage.FileType;
+storage.fileWebp#1081464c = storage.FileType;
+
+fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
+fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
+
+userEmpty#200250ba id:int = User;
+userSelf#720535ec id:int first_name:string last_name:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
+userContact#f2fb8319 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userRequest#22e8ceb0 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userForeign#5214c89d id:int first_name:string last_name:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
+userDeleted#b29ad7cc id:int first_name:string last_name:string = User;
+
+userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
+userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
+
+userStatusEmpty#9d05049 = UserStatus;
+userStatusOnline#edb93949 expires:int = UserStatus;
+userStatusOffline#8c703f was_online:int = UserStatus;
+
+chatEmpty#9ba2d800 id:int = Chat;
+chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
+chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
+
+chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
+
+chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
+
+chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
+chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
+
+chatPhotoEmpty#37c1011c = ChatPhoto;
+chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
+
+messageEmpty#83e5de54 id:int = Message;
+message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
+messageForwarded#5f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
+messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message;
+
+messageMediaEmpty#3ded6320 = MessageMedia;
+messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
+messageMediaVideo#a2d24290 video:Video = MessageMedia;
+messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
+messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
+messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia;
+
+messageActionEmpty#b6aef7b0 = MessageAction;
+messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
+messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
+messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
+messageActionChatDeletePhoto#95e3fbef = MessageAction;
+messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
+messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
+
+dialog#214a8cdf peer:Peer top_message:int unread_count:int = Dialog;
+
+photoEmpty#2331b22d id:long = Photo;
+photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+
+photoSizeEmpty#e17e23c type:string = PhotoSize;
+photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
+photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
+
+videoEmpty#c10658a8 id:long = Video;
+video#5a04a49f id:long access_hash:long user_id:int date:int caption:string duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+
+geoPointEmpty#1117dd5f = GeoPoint;
+geoPoint#2049d70c long:double lat:double = GeoPoint;
+
+auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone;
+
+auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
+
+auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
+
+inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
+inputNotifyUsers#193b4417 = InputNotifyPeer;
+inputNotifyChats#4a95e84e = InputNotifyPeer;
+inputNotifyAll#a429b886 = InputNotifyPeer;
+
+inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
+inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
+
+inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
+
+peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
+peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
+
+peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
+peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
+
+wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
+
+userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
+
+contact#f911c994 user_id:int mutual:Bool = Contact;
+
+importedContact#d0028438 user_id:int client_id:long = ImportedContact;
+
+contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
+
+contactFound#ea879f95 user_id:int = ContactFound;
+
+contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
+
+contactStatus#aa77b873 user_id:int expires:int = ContactStatus;
+
+chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
+
+contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink;
+contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink;
+contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink;
+
+contacts.myLinkEmpty#d22a1c60 = contacts.MyLink;
+contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink;
+contacts.myLinkContact#c240ebd9 = contacts.MyLink;
+
+contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link;
+
+contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
+contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
+
+contacts.importedContacts#d1cd0a4c imported:Vector<ImportedContact> users:Vector<User> = contacts.ImportedContacts;
+
+contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+
+contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
+
+contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
+
+messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+
+messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+
+messages.messageEmpty#3f4e0648 = messages.Message;
+messages.message#ff90c417 message:Message chats:Vector<Chat> users:Vector<User> = messages.Message;
+
+messages.statedMessages#969478bb messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessages;
+
+messages.statedMessage#d07ae726 message:Message chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessage;
+
+messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage;
+
+messages.chat#40e9002a chat:Chat users:Vector<User> = messages.Chat;
+
+messages.chats#8150cbd8 chats:Vector<Chat> users:Vector<User> = messages.Chats;
+
+messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
+
+messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory;
+
+inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
+inputMessagesFilterPhotos#9609a51c = MessagesFilter;
+inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
+inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
+inputMessagesFilterDocument#9eddf188 = MessagesFilter;
+inputMessagesFilterAudio#cfc87522 = MessagesFilter;
+
+updateNewMessage#13abdb3 message:Message pts:int = Update;
+updateMessageID#4e90bfd6 id:int random_id:long = Update;
+updateReadMessages#c6649e31 messages:Vector<int> pts:int = Update;
+updateDeleteMessages#a92bfe26 messages:Vector<int> pts:int = Update;
+updateRestoreMessages#d15de04d messages:Vector<int> pts:int = Update;
+updateUserTyping#6baa8508 user_id:int = Update;
+updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update;
+updateChatParticipants#7761198 participants:ChatParticipants = Update;
+updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
+updateUserName#da22d9ad user_id:int first_name:string last_name:string = Update;
+updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
+updateContactRegistered#2575bbb9 user_id:int date:int = Update;
+updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update;
+updateActivation#6f690963 user_id:int = Update;
+updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
+
+updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
+
+updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
+updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
+updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates;
+updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+
+photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
+photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
+
+photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
+
+upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
+
+dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
+
+config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
+
+nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
+
+help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
+help.noAppUpdate#c45a6536 = help.AppUpdate;
+
+help.inviteText#18cb9f78 message:string = help.InviteText;
+
+messages.statedMessagesLinks#3e74f5c6 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
+
+messages.statedMessageLink#a9af2881 message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
+
+messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
+
+inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
+
+inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer;
+
+geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
+
+geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
+geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
+geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
+
+geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
+
+geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
+
+geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+
+messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
+messageActionGeoChatCheckin#c7d53de = MessageAction;
+
+updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update;
+
+wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
+
+updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update;
+updateEncryptedChatTyping#1710f156 chat_id:int = Update;
+updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update;
+updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
+
+encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
+encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
+encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
+encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
+encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
+
+inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
+
+encryptedFileEmpty#c21f497e = EncryptedFile;
+encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
+
+inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
+inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
+inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
+
+inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
+
+encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
+encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
+
+decryptedMessageLayer#99a438cf layer:int message:DecryptedMessage = DecryptedMessageLayer;
+
+decryptedMessage#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
+decryptedMessageService#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
+
+decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia;
+decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaVideo#4cee6ef3 thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaGeoPoint#35480a59 lat:double long:double = DecryptedMessageMedia;
+decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
+
+decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction;
+
+messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
+messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
+
+messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
+messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
+
+inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
+
+inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
+
+updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
+updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
+updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
+
+inputMediaUploadedAudio#61a6d436 file:InputFile duration:int = InputMedia;
+inputMediaAudio#89938781 id:InputAudio = InputMedia;
+inputMediaUploadedDocument#34e794bd file:InputFile file_name:string mime_type:string = InputMedia;
+inputMediaUploadedThumbDocument#3e46de5d file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia;
+inputMediaDocument#d184e841 id:InputDocument = InputMedia;
+
+messageMediaDocument#2fda2204 document:Document = MessageMedia;
+messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
+
+inputAudioEmpty#d95adc84 = InputAudio;
+inputAudio#77d440ff id:long access_hash:long = InputAudio;
+
+inputDocumentEmpty#72f0eaae = InputDocument;
+inputDocument#18798952 id:long access_hash:long = InputDocument;
+
+inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
+inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
+
+decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaAudio#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+
+audioEmpty#586988d8 id:long = Audio;
+audio#427425e7 id:long access_hash:long user_id:int date:int duration:int size:int dc_id:int = Audio;
+
+documentEmpty#36f8c871 id:long = Document;
+document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
+
+help.support#17c6b5f6 phone_number:string user:User = help.Support;
+
+---functions---
+
+invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
+
+invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
+
+auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
+auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
+auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
+auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
+auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
+auth.logOut#5717da40 = Bool;
+auth.resetAuthorizations#9fab0d1a = Bool;
+auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
+auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
+auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
+
+account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
+account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
+account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
+account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
+account.resetNotifySettings#db7e1747 = Bool;
+account.updateProfile#f0888d68 first_name:string last_name:string = User;
+account.updateStatus#6628562c offline:Bool = Bool;
+account.getWallPapers#c04cfac2 = Vector<WallPaper>;
+
+users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
+users.getFullUser#ca30a5b1 id:InputUser = UserFull;
+
+contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
+contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
+contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
+contacts.search#11f812d8 q:string limit:int = contacts.Found;
+contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
+contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
+contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
+contacts.block#332b49fc id:InputUser = Bool;
+contacts.unblock#e54100bd id:InputUser = Bool;
+contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
+
+messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
+messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
+messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
+messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
+messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
+messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
+messages.deleteMessages#14f2dd0a id:Vector<int> = Vector<int>;
+messages.restoreMessages#395f9d7e id:Vector<int> = Vector<int>;
+messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
+messages.setTyping#719839e9 peer:InputPeer typing:Bool = Bool;
+messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage;
+messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage;
+messages.forwardMessages#514cd10f peer:InputPeer id:Vector<int> = messages.StatedMessages;
+messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
+messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
+messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage;
+messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage;
+messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage;
+messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage;
+messages.createChat#419d9aee users:Vector<InputUser> title:string = messages.StatedMessage;
+
+updates.getState#edd4882a = updates.State;
+updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
+
+photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
+photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
+
+upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
+upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
+
+help.getConfig#c4f9186b = Config;
+help.getNearestDc#1fb33026 = NearestDc;
+help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
+help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
+help.getInviteText#a4a95186 lang_code:string = help.InviteText;
+
+photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
+
+messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage;
+messages.sendBroadcast#41bb0972 contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
+
+geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
+geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
+geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
+geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
+geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
+geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
+geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
+geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
+geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
+geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
+geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
+geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
+
+messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
+messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
+messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
+messages.discardEncryption#edd923c5 chat_id:int = Bool;
+messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
+messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
+messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
+messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
+
+upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
+
+initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
+
+help.getSupport#9cdf08cd = help.Support;
+
+invokeWithLayer12#dda60d3c {X:Type} query:!X = X;
diff --git a/libs/tgl/src/scheme15.tl b/libs/tgl/src/scheme15.tl
new file mode 100644
index 0000000000..4e18fad21b
--- /dev/null
+++ b/libs/tgl/src/scheme15.tl
@@ -0,0 +1,522 @@
+int ?= Int;
+long ?= Long;
+double ?= Double;
+string ?= String;
+
+bytes string = Bytes;
+
+boolFalse#bc799737 = Bool;
+boolTrue#997275b5 = Bool;
+
+vector#1cb5c415 {t:Type} # [ t ] = Vector t;
+
+error#c4b9f9bb code:int text:string = Error;
+
+null#56730bcc = Null;
+
+inputPeerEmpty#7f3b18ea = InputPeer;
+inputPeerSelf#7da07ec9 = InputPeer;
+inputPeerContact#1023dbe8 user_id:int = InputPeer;
+inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
+inputPeerChat#179be863 chat_id:int = InputPeer;
+
+inputUserEmpty#b98886cf = InputUser;
+inputUserSelf#f7c1b13f = InputUser;
+inputUserContact#86e94f65 user_id:int = InputUser;
+inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
+
+inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
+
+inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
+
+inputMediaEmpty#9664f57f = InputMedia;
+inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
+inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia;
+inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
+inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
+inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaVideo#7f023ae6 id:InputVideo = InputMedia;
+
+inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
+inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
+inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
+
+inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
+inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint;
+
+inputPhotoEmpty#1cd7bf0d = InputPhoto;
+inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
+
+inputVideoEmpty#5508ec75 = InputVideo;
+inputVideo#ee579652 id:long access_hash:long = InputVideo;
+
+inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
+inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
+
+inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
+inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
+
+inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
+
+peerUser#9db1bc6d user_id:int = Peer;
+peerChat#bad0e5bb chat_id:int = Peer;
+
+storage.fileUnknown#aa963b05 = storage.FileType;
+storage.fileJpeg#007efe0e = storage.FileType;
+storage.fileGif#cae1aadf = storage.FileType;
+storage.filePng#0a4f63c0 = storage.FileType;
+storage.filePdf#ae1e508d = storage.FileType;
+storage.fileMp3#528a0677 = storage.FileType;
+storage.fileMov#4b09ebbc = storage.FileType;
+storage.filePartial#40bc6f52 = storage.FileType;
+storage.fileMp4#b3cea0e4 = storage.FileType;
+storage.fileWebp#1081464c = storage.FileType;
+
+fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
+fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
+
+userEmpty#200250ba id:int = User;
+userSelf#720535ec id:int first_name:string last_name:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
+userContact#f2fb8319 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userRequest#22e8ceb0 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userForeign#5214c89d id:int first_name:string last_name:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
+userDeleted#b29ad7cc id:int first_name:string last_name:string = User;
+
+userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
+userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
+
+userStatusEmpty#09d05049 = UserStatus;
+userStatusOnline#edb93949 expires:int = UserStatus;
+userStatusOffline#008c703f was_online:int = UserStatus;
+
+chatEmpty#9ba2d800 id:int = Chat;
+chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
+chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
+
+chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
+
+chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
+
+chatParticipantsForbidden#0fd2bb8a chat_id:int = ChatParticipants;
+chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
+
+chatPhotoEmpty#37c1011c = ChatPhoto;
+chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
+
+messageEmpty#83e5de54 id:int = Message;
+message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
+messageForwarded#05f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
+messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message;
+
+messageMediaEmpty#3ded6320 = MessageMedia;
+messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
+messageMediaVideo#a2d24290 video:Video = MessageMedia;
+messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
+messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
+messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia;
+
+messageActionEmpty#b6aef7b0 = MessageAction;
+messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
+messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
+messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
+messageActionChatDeletePhoto#95e3fbef = MessageAction;
+messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
+messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
+
+dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
+
+photoEmpty#2331b22d id:long = Photo;
+photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+
+photoSizeEmpty#0e17e23c type:string = PhotoSize;
+photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
+photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
+
+videoEmpty#c10658a8 id:long = Video;
+video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+
+geoPointEmpty#1117dd5f = GeoPoint;
+geoPoint#2049d70c long:double lat:double = GeoPoint;
+
+auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone;
+
+auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
+
+auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
+
+inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
+inputNotifyUsers#193b4417 = InputNotifyPeer;
+inputNotifyChats#4a95e84e = InputNotifyPeer;
+inputNotifyAll#a429b886 = InputNotifyPeer;
+
+inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
+inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
+
+inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
+
+peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
+peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
+
+peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
+peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
+
+wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
+
+userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
+
+contact#f911c994 user_id:int mutual:Bool = Contact;
+
+importedContact#d0028438 user_id:int client_id:long = ImportedContact;
+
+contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
+
+contactFound#ea879f95 user_id:int = ContactFound;
+
+contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
+
+contactStatus#aa77b873 user_id:int expires:int = ContactStatus;
+
+chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
+
+contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink;
+contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink;
+contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink;
+
+contacts.myLinkEmpty#d22a1c60 = contacts.MyLink;
+contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink;
+contacts.myLinkContact#c240ebd9 = contacts.MyLink;
+
+contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link;
+
+contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
+contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
+
+contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
+
+contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+
+contacts.found#0566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
+
+contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
+
+messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+
+messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesSlice#0b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+
+messages.messageEmpty#3f4e0648 = messages.Message;
+messages.message#ff90c417 message:Message chats:Vector<Chat> users:Vector<User> = messages.Message;
+
+messages.statedMessages#969478bb messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessages;
+
+messages.statedMessage#d07ae726 message:Message chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessage;
+
+messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage;
+
+messages.chat#40e9002a chat:Chat users:Vector<User> = messages.Chat;
+
+messages.chats#8150cbd8 chats:Vector<Chat> users:Vector<User> = messages.Chats;
+
+messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
+
+messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory;
+
+inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
+inputMessagesFilterPhotos#9609a51c = MessagesFilter;
+inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
+inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
+inputMessagesFilterDocument#9eddf188 = MessagesFilter;
+inputMessagesFilterAudio#cfc87522 = MessagesFilter;
+
+updateNewMessage#013abdb3 message:Message pts:int = Update;
+updateMessageID#4e90bfd6 id:int random_id:long = Update;
+updateReadMessages#c6649e31 messages:Vector<int> pts:int = Update;
+updateDeleteMessages#a92bfe26 messages:Vector<int> pts:int = Update;
+updateRestoreMessages#d15de04d messages:Vector<int> pts:int = Update;
+updateUserTyping#6baa8508 user_id:int = Update;
+updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update;
+updateChatParticipants#07761198 participants:ChatParticipants = Update;
+updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
+updateUserName#da22d9ad user_id:int first_name:string last_name:string = Update;
+updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
+updateContactRegistered#2575bbb9 user_id:int date:int = Update;
+updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update;
+updateActivation#6f690963 user_id:int = Update;
+updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
+
+updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
+
+updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
+updates.difference#00f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
+updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates;
+updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+
+photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
+photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
+
+photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
+
+upload.file#096a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
+
+dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
+
+config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
+
+nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
+
+help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
+help.noAppUpdate#c45a6536 = help.AppUpdate;
+
+help.inviteText#18cb9f78 message:string = help.InviteText;
+
+messages.statedMessagesLinks#3e74f5c6 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
+
+messages.statedMessageLink#a9af2881 message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
+
+messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
+
+inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
+
+inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer;
+
+geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
+
+geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
+geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
+geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
+
+geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
+
+geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
+
+geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+
+messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
+messageActionGeoChatCheckin#0c7d53de = MessageAction;
+
+updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update;
+
+wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
+
+updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update;
+updateEncryptedChatTyping#1710f156 chat_id:int = Update;
+updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update;
+updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
+
+encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
+encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
+encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
+encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
+encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
+
+inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
+
+encryptedFileEmpty#c21f497e = EncryptedFile;
+encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
+
+inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
+inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
+inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
+
+inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
+
+encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
+encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
+
+decryptedMessageLayer#99a438cf layer:int message:DecryptedMessage = DecryptedMessageLayer;
+
+decryptedMessage#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
+decryptedMessageService#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
+
+decryptedMessageMediaEmpty#089f5c4a = DecryptedMessageMedia;
+decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaVideo#524a415d thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaGeoPoint#35480a59 lat:double long:double = DecryptedMessageMedia;
+decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
+
+decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction;
+
+messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
+messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
+
+messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
+messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
+
+inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
+
+inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
+
+updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
+updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
+updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
+
+inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
+inputMediaAudio#89938781 id:InputAudio = InputMedia;
+inputMediaUploadedDocument#34e794bd file:InputFile file_name:string mime_type:string = InputMedia;
+inputMediaUploadedThumbDocument#3e46de5d file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia;
+inputMediaDocument#d184e841 id:InputDocument = InputMedia;
+
+messageMediaDocument#2fda2204 document:Document = MessageMedia;
+messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
+
+inputAudioEmpty#d95adc84 = InputAudio;
+inputAudio#77d440ff id:long access_hash:long = InputAudio;
+
+inputDocumentEmpty#72f0eaae = InputDocument;
+inputDocument#18798952 id:long access_hash:long = InputDocument;
+
+inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
+inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
+
+decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+
+audioEmpty#586988d8 id:long = Audio;
+audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
+
+documentEmpty#36f8c871 id:long = Document;
+document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
+
+help.support#17c6b5f6 phone_number:string user:User = help.Support;
+
+decryptedMessageActionReadMessages#0c4f40be random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionDeleteMessages#65614304 random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction;
+decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction;
+
+notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
+notifyUsers#b4c83b4c = NotifyPeer;
+notifyChats#c007cec3 = NotifyPeer;
+notifyAll#74d07c60 = NotifyPeer;
+
+updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
+updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
+
+za int = Z 0;
+zb {n:#} int %(Vector int) = Z (n + 1);
+
+---functions---
+
+invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
+
+invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
+
+auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
+auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
+auth.sendCall#03c51564 phone_number:string phone_code_hash:string = Bool;
+auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
+auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
+auth.logOut#5717da40 = Bool;
+auth.resetAuthorizations#9fab0d1a = Bool;
+auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
+auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
+auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
+
+account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
+account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
+account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
+account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
+account.resetNotifySettings#db7e1747 = Bool;
+account.updateProfile#f0888d68 first_name:string last_name:string = User;
+account.updateStatus#6628562c offline:Bool = Bool;
+account.getWallPapers#c04cfac2 = Vector<WallPaper>;
+
+users.getUsers#0d91a548 id:Vector<InputUser> = Vector<User>;
+users.getFullUser#ca30a5b1 id:InputUser = UserFull;
+
+contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
+contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
+contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
+contacts.search#11f812d8 q:string limit:int = contacts.Found;
+contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
+contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
+contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
+contacts.block#332b49fc id:InputUser = Bool;
+contacts.unblock#e54100bd id:InputUser = Bool;
+contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
+
+messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
+messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
+messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
+messages.search#07e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
+messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
+messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
+messages.deleteMessages#14f2dd0a id:Vector<int> = Vector<int>;
+messages.restoreMessages#395f9d7e id:Vector<int> = Vector<int>;
+messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
+messages.setTyping#719839e9 peer:InputPeer typing:Bool = Bool;
+messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage;
+messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage;
+messages.forwardMessages#514cd10f peer:InputPeer id:Vector<int> = messages.StatedMessages;
+messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
+messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
+messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage;
+messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage;
+messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage;
+messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage;
+messages.createChat#419d9aee users:Vector<InputUser> title:string = messages.StatedMessage;
+
+updates.getState#edd4882a = updates.State;
+updates.getDifference#0a041495 pts:int date:int qts:int = updates.Difference;
+
+photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
+photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
+
+upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
+upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
+
+help.getConfig#c4f9186b = Config;
+help.getNearestDc#1fb33026 = NearestDc;
+help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
+help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
+help.getInviteText#a4a95186 lang_code:string = help.InviteText;
+
+photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
+
+messages.forwardMessage#03f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage;
+messages.sendBroadcast#41bb0972 contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
+
+geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
+geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
+geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
+geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
+geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
+geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
+geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
+geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
+geochats.setTyping#08b8a729 peer:InputGeoChat typing:Bool = Bool;
+geochats.sendMessage#061b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
+geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
+geochats.createGeoChat#0e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
+
+messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
+messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
+messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
+messages.discardEncryption#edd923c5 chat_id:int = Bool;
+messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
+messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
+messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
+messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
+
+upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
+
+initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
+
+help.getSupport#9cdf08cd = help.Support;
+
+invokeWithLayer15#b4418b64 {X:Type} query:!X = X;
diff --git a/libs/tgl/src/scheme16.tl b/libs/tgl/src/scheme16.tl
new file mode 100644
index 0000000000..b1e1f196d8
--- /dev/null
+++ b/libs/tgl/src/scheme16.tl
@@ -0,0 +1,504 @@
+int ?= Int;
+long ?= Long;
+double ?= Double;
+string ?= String;
+
+bytes string = Bytes;
+
+boolFalse#bc799737 = Bool;
+boolTrue#997275b5 = Bool;
+
+vector#1cb5c415 {t:Type} # [ t ] = Vector t;
+
+error#c4b9f9bb code:int text:string = Error;
+
+null#56730bcc = Null;
+
+inputPeerEmpty#7f3b18ea = InputPeer;
+inputPeerSelf#7da07ec9 = InputPeer;
+inputPeerContact#1023dbe8 user_id:int = InputPeer;
+inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
+inputPeerChat#179be863 chat_id:int = InputPeer;
+
+inputUserEmpty#b98886cf = InputUser;
+inputUserSelf#f7c1b13f = InputUser;
+inputUserContact#86e94f65 user_id:int = InputUser;
+inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
+
+inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
+
+inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
+
+inputMediaEmpty#9664f57f = InputMedia;
+inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
+inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia;
+inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
+inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
+inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaVideo#7f023ae6 id:InputVideo = InputMedia;
+
+inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
+inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
+inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
+
+inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
+inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint;
+
+inputPhotoEmpty#1cd7bf0d = InputPhoto;
+inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
+
+inputVideoEmpty#5508ec75 = InputVideo;
+inputVideo#ee579652 id:long access_hash:long = InputVideo;
+
+inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
+inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
+
+inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
+inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
+
+inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
+
+peerUser#9db1bc6d user_id:int = Peer;
+peerChat#bad0e5bb chat_id:int = Peer;
+
+storage.fileUnknown#aa963b05 = storage.FileType;
+storage.fileJpeg#7efe0e = storage.FileType;
+storage.fileGif#cae1aadf = storage.FileType;
+storage.filePng#a4f63c0 = storage.FileType;
+storage.filePdf#ae1e508d = storage.FileType;
+storage.fileMp3#528a0677 = storage.FileType;
+storage.fileMov#4b09ebbc = storage.FileType;
+storage.filePartial#40bc6f52 = storage.FileType;
+storage.fileMp4#b3cea0e4 = storage.FileType;
+storage.fileWebp#1081464c = storage.FileType;
+
+fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
+fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
+
+userEmpty#200250ba id:int = User;
+userSelf#720535ec id:int first_name:string last_name:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
+userContact#f2fb8319 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userRequest#22e8ceb0 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userForeign#5214c89d id:int first_name:string last_name:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
+userDeleted#b29ad7cc id:int first_name:string last_name:string = User;
+
+userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
+userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
+
+userStatusEmpty#9d05049 = UserStatus;
+userStatusOnline#edb93949 expires:int = UserStatus;
+userStatusOffline#8c703f was_online:int = UserStatus;
+
+chatEmpty#9ba2d800 id:int = Chat;
+chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
+chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
+
+chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
+
+chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
+
+chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
+chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
+
+chatPhotoEmpty#37c1011c = ChatPhoto;
+chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
+
+messageEmpty#83e5de54 id:int = Message;
+message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
+messageForwarded#5f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
+messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message;
+
+messageMediaEmpty#3ded6320 = MessageMedia;
+messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
+messageMediaVideo#a2d24290 video:Video = MessageMedia;
+messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
+messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
+messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia;
+
+messageActionEmpty#b6aef7b0 = MessageAction;
+messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
+messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
+messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
+messageActionChatDeletePhoto#95e3fbef = MessageAction;
+messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
+messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
+
+dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
+
+photoEmpty#2331b22d id:long = Photo;
+photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+
+photoSizeEmpty#e17e23c type:string = PhotoSize;
+photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
+photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
+
+videoEmpty#c10658a8 id:long = Video;
+video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+
+geoPointEmpty#1117dd5f = GeoPoint;
+geoPoint#2049d70c long:double lat:double = GeoPoint;
+
+auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone;
+
+auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
+
+auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
+
+inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
+inputNotifyUsers#193b4417 = InputNotifyPeer;
+inputNotifyChats#4a95e84e = InputNotifyPeer;
+inputNotifyAll#a429b886 = InputNotifyPeer;
+
+inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
+inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
+
+inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
+
+peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
+peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
+
+peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
+peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
+
+wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
+
+userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
+
+contact#f911c994 user_id:int mutual:Bool = Contact;
+
+importedContact#d0028438 user_id:int client_id:long = ImportedContact;
+
+contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
+
+contactFound#ea879f95 user_id:int = ContactFound;
+
+contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
+
+contactStatus#aa77b873 user_id:int expires:int = ContactStatus;
+
+chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
+
+contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink;
+contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink;
+contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink;
+
+contacts.myLinkEmpty#d22a1c60 = contacts.MyLink;
+contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink;
+contacts.myLinkContact#c240ebd9 = contacts.MyLink;
+
+contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link;
+
+contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
+contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
+
+contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
+
+contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+
+contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
+
+contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
+
+messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+
+messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+
+messages.messageEmpty#3f4e0648 = messages.Message;
+messages.message#ff90c417 message:Message chats:Vector<Chat> users:Vector<User> = messages.Message;
+
+messages.statedMessages#969478bb messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessages;
+
+messages.statedMessage#d07ae726 message:Message chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessage;
+
+messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage;
+
+messages.chat#40e9002a chat:Chat users:Vector<User> = messages.Chat;
+
+messages.chats#8150cbd8 chats:Vector<Chat> users:Vector<User> = messages.Chats;
+
+messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
+
+messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory;
+
+inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
+inputMessagesFilterPhotos#9609a51c = MessagesFilter;
+inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
+inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
+inputMessagesFilterDocument#9eddf188 = MessagesFilter;
+inputMessagesFilterAudio#cfc87522 = MessagesFilter;
+
+updateNewMessage#13abdb3 message:Message pts:int = Update;
+updateMessageID#4e90bfd6 id:int random_id:long = Update;
+updateReadMessages#c6649e31 messages:Vector<int> pts:int = Update;
+updateDeleteMessages#a92bfe26 messages:Vector<int> pts:int = Update;
+updateRestoreMessages#d15de04d messages:Vector<int> pts:int = Update;
+updateUserTyping#6baa8508 user_id:int = Update;
+updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update;
+updateChatParticipants#7761198 participants:ChatParticipants = Update;
+updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
+updateUserName#da22d9ad user_id:int first_name:string last_name:string = Update;
+updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
+updateContactRegistered#2575bbb9 user_id:int date:int = Update;
+updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update;
+updateActivation#6f690963 user_id:int = Update;
+updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
+
+updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
+
+updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
+updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
+updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates;
+updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+
+photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
+photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
+
+photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
+
+upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
+
+dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
+
+config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
+
+nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
+
+help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
+help.noAppUpdate#c45a6536 = help.AppUpdate;
+
+help.inviteText#18cb9f78 message:string = help.InviteText;
+
+messages.statedMessagesLinks#3e74f5c6 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
+
+messages.statedMessageLink#a9af2881 message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
+
+messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
+
+inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
+
+inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer;
+
+geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
+
+geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
+geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
+geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
+
+geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
+
+geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
+
+geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+
+messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
+messageActionGeoChatCheckin#c7d53de = MessageAction;
+
+updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update;
+
+wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
+
+updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update;
+updateEncryptedChatTyping#1710f156 chat_id:int = Update;
+updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update;
+updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
+
+encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
+encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
+encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
+encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
+encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
+
+inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
+
+encryptedFileEmpty#c21f497e = EncryptedFile;
+encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
+
+inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
+inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
+inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
+
+inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
+
+encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
+encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
+
+messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
+messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
+
+messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
+messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
+
+inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
+
+inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
+
+updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
+updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
+updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
+
+inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
+inputMediaAudio#89938781 id:InputAudio = InputMedia;
+inputMediaUploadedDocument#34e794bd file:InputFile file_name:string mime_type:string = InputMedia;
+inputMediaUploadedThumbDocument#3e46de5d file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia;
+inputMediaDocument#d184e841 id:InputDocument = InputMedia;
+
+messageMediaDocument#2fda2204 document:Document = MessageMedia;
+messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
+
+inputAudioEmpty#d95adc84 = InputAudio;
+inputAudio#77d440ff id:long access_hash:long = InputAudio;
+
+inputDocumentEmpty#72f0eaae = InputDocument;
+inputDocument#18798952 id:long access_hash:long = InputDocument;
+
+inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
+inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
+
+audioEmpty#586988d8 id:long = Audio;
+audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
+
+documentEmpty#36f8c871 id:long = Document;
+document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
+
+help.support#17c6b5f6 phone_number:string user:User = help.Support;
+
+notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
+notifyUsers#b4c83b4c = NotifyPeer;
+notifyChats#c007cec3 = NotifyPeer;
+notifyAll#74d07c60 = NotifyPeer;
+
+updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
+updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
+
+auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+---functions---
+
+invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
+
+invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
+
+auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
+auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
+auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
+auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
+auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
+auth.logOut#5717da40 = Bool;
+auth.resetAuthorizations#9fab0d1a = Bool;
+auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
+auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
+auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
+auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
+
+account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
+account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
+account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
+account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
+account.resetNotifySettings#db7e1747 = Bool;
+account.updateProfile#f0888d68 first_name:string last_name:string = User;
+account.updateStatus#6628562c offline:Bool = Bool;
+account.getWallPapers#c04cfac2 = Vector<WallPaper>;
+
+users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
+users.getFullUser#ca30a5b1 id:InputUser = UserFull;
+
+contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
+contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
+contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
+contacts.search#11f812d8 q:string limit:int = contacts.Found;
+contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
+contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
+contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
+contacts.block#332b49fc id:InputUser = Bool;
+contacts.unblock#e54100bd id:InputUser = Bool;
+contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
+contacts.exportCard#84e53737 = Vector<int>;
+contacts.importCard#4fe196fe export_card:Vector<int> = User;
+
+messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
+messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
+messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
+messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
+messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
+messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
+messages.deleteMessages#14f2dd0a id:Vector<int> = Vector<int>;
+messages.restoreMessages#395f9d7e id:Vector<int> = Vector<int>;
+messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
+messages.setTyping#719839e9 peer:InputPeer typing:Bool = Bool;
+messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage;
+messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage;
+messages.forwardMessages#514cd10f peer:InputPeer id:Vector<int> = messages.StatedMessages;
+messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
+messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
+messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage;
+messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage;
+messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage;
+messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage;
+messages.createChat#419d9aee users:Vector<InputUser> title:string = messages.StatedMessage;
+
+updates.getState#edd4882a = updates.State;
+updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
+
+photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
+photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
+
+upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
+upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
+
+help.getConfig#c4f9186b = Config;
+help.getNearestDc#1fb33026 = NearestDc;
+help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
+help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
+help.getInviteText#a4a95186 lang_code:string = help.InviteText;
+
+photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
+
+messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage;
+messages.sendBroadcast#41bb0972 contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
+
+geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
+geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
+geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
+geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
+geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
+geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
+geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
+geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
+geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
+geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
+geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
+geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
+
+messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
+messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
+messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
+messages.discardEncryption#edd923c5 chat_id:int = Bool;
+messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
+messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
+messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
+messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
+
+upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
+
+initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
+
+help.getSupport#9cdf08cd = help.Support;
+
+auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
+
+invokeWithLayer16#cf5f0987 {X:Type} query:!X = X;
diff --git a/libs/tgl/src/scheme17.tl b/libs/tgl/src/scheme17.tl
new file mode 100644
index 0000000000..c564155c19
--- /dev/null
+++ b/libs/tgl/src/scheme17.tl
@@ -0,0 +1,528 @@
+int ?= Int;
+long ?= Long;
+double ?= Double;
+string ?= String;
+
+bytes string = Bytes;
+
+boolFalse#bc799737 = Bool;
+boolTrue#997275b5 = Bool;
+
+vector#1cb5c415 {t:Type} # [ t ] = Vector t;
+
+error#c4b9f9bb code:int text:string = Error;
+
+null#56730bcc = Null;
+
+inputPeerEmpty#7f3b18ea = InputPeer;
+inputPeerSelf#7da07ec9 = InputPeer;
+inputPeerContact#1023dbe8 user_id:int = InputPeer;
+inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
+inputPeerChat#179be863 chat_id:int = InputPeer;
+
+inputUserEmpty#b98886cf = InputUser;
+inputUserSelf#f7c1b13f = InputUser;
+inputUserContact#86e94f65 user_id:int = InputUser;
+inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
+
+inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
+
+inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
+
+inputMediaEmpty#9664f57f = InputMedia;
+inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
+inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia;
+inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
+inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
+inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaVideo#7f023ae6 id:InputVideo = InputMedia;
+
+inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
+inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
+inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
+
+inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
+inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint;
+
+inputPhotoEmpty#1cd7bf0d = InputPhoto;
+inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
+
+inputVideoEmpty#5508ec75 = InputVideo;
+inputVideo#ee579652 id:long access_hash:long = InputVideo;
+
+inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
+inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
+
+inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
+inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
+
+inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
+
+peerUser#9db1bc6d user_id:int = Peer;
+peerChat#bad0e5bb chat_id:int = Peer;
+
+storage.fileUnknown#aa963b05 = storage.FileType;
+storage.fileJpeg#7efe0e = storage.FileType;
+storage.fileGif#cae1aadf = storage.FileType;
+storage.filePng#a4f63c0 = storage.FileType;
+storage.filePdf#ae1e508d = storage.FileType;
+storage.fileMp3#528a0677 = storage.FileType;
+storage.fileMov#4b09ebbc = storage.FileType;
+storage.filePartial#40bc6f52 = storage.FileType;
+storage.fileMp4#b3cea0e4 = storage.FileType;
+storage.fileWebp#1081464c = storage.FileType;
+
+fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
+fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
+
+userEmpty#200250ba id:int = User;
+userSelf#720535ec id:int first_name:string last_name:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
+userContact#f2fb8319 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userRequest#22e8ceb0 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userForeign#5214c89d id:int first_name:string last_name:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
+userDeleted#b29ad7cc id:int first_name:string last_name:string = User;
+
+userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
+userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
+
+userStatusEmpty#9d05049 = UserStatus;
+userStatusOnline#edb93949 expires:int = UserStatus;
+userStatusOffline#8c703f was_online:int = UserStatus;
+
+chatEmpty#9ba2d800 id:int = Chat;
+chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
+chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
+
+chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
+
+chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
+
+chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
+chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
+
+chatPhotoEmpty#37c1011c = ChatPhoto;
+chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
+
+messageEmpty#83e5de54 id:int = Message;
+//message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
+//messageForwarded#5f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
+//messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message;
+
+messageMediaEmpty#3ded6320 = MessageMedia;
+messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
+messageMediaVideo#a2d24290 video:Video = MessageMedia;
+messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
+messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
+messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia;
+
+messageActionEmpty#b6aef7b0 = MessageAction;
+messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
+messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
+messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
+messageActionChatDeletePhoto#95e3fbef = MessageAction;
+messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
+messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
+
+dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
+
+photoEmpty#2331b22d id:long = Photo;
+photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+
+photoSizeEmpty#e17e23c type:string = PhotoSize;
+photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
+photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
+
+videoEmpty#c10658a8 id:long = Video;
+video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+
+geoPointEmpty#1117dd5f = GeoPoint;
+geoPoint#2049d70c long:double lat:double = GeoPoint;
+
+auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone;
+
+auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
+
+auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
+
+inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
+inputNotifyUsers#193b4417 = InputNotifyPeer;
+inputNotifyChats#4a95e84e = InputNotifyPeer;
+inputNotifyAll#a429b886 = InputNotifyPeer;
+
+inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
+inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
+
+inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
+
+peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
+peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
+
+peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
+peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
+
+wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
+
+userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
+
+contact#f911c994 user_id:int mutual:Bool = Contact;
+
+importedContact#d0028438 user_id:int client_id:long = ImportedContact;
+
+contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
+
+contactFound#ea879f95 user_id:int = ContactFound;
+
+contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
+
+contactStatus#aa77b873 user_id:int expires:int = ContactStatus;
+
+chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
+
+contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink;
+contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink;
+contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink;
+
+contacts.myLinkEmpty#d22a1c60 = contacts.MyLink;
+contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink;
+contacts.myLinkContact#c240ebd9 = contacts.MyLink;
+
+contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link;
+
+contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
+contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
+
+contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
+
+contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+
+contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
+
+contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
+
+messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+
+messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+
+messages.messageEmpty#3f4e0648 = messages.Message;
+messages.message#ff90c417 message:Message chats:Vector<Chat> users:Vector<User> = messages.Message;
+
+messages.statedMessages#969478bb messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessages;
+
+messages.statedMessage#d07ae726 message:Message chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessage;
+
+messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage;
+
+messages.chat#40e9002a chat:Chat users:Vector<User> = messages.Chat;
+
+messages.chats#8150cbd8 chats:Vector<Chat> users:Vector<User> = messages.Chats;
+
+messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
+
+messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory;
+
+inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
+inputMessagesFilterPhotos#9609a51c = MessagesFilter;
+inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
+inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
+inputMessagesFilterDocument#9eddf188 = MessagesFilter;
+inputMessagesFilterAudio#cfc87522 = MessagesFilter;
+
+updateNewMessage#13abdb3 message:Message pts:int = Update;
+updateMessageID#4e90bfd6 id:int random_id:long = Update;
+updateReadMessages#c6649e31 messages:Vector<int> pts:int = Update;
+updateDeleteMessages#a92bfe26 messages:Vector<int> pts:int = Update;
+updateRestoreMessages#d15de04d messages:Vector<int> pts:int = Update;
+//updateUserTyping#6baa8508 user_id:int = Update;
+//updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update;
+updateChatParticipants#7761198 participants:ChatParticipants = Update;
+updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
+updateUserName#da22d9ad user_id:int first_name:string last_name:string = Update;
+updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
+updateContactRegistered#2575bbb9 user_id:int date:int = Update;
+updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update;
+updateActivation#6f690963 user_id:int = Update;
+updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
+
+updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
+
+updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
+updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
+updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates;
+updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+
+photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
+photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
+
+photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
+
+upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
+
+dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
+
+config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
+
+nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
+
+help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
+help.noAppUpdate#c45a6536 = help.AppUpdate;
+
+help.inviteText#18cb9f78 message:string = help.InviteText;
+
+messages.statedMessagesLinks#3e74f5c6 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
+
+messages.statedMessageLink#a9af2881 message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
+
+messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
+
+inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
+
+inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer;
+
+geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
+
+geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
+geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
+geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
+
+geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
+
+geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
+
+geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+
+messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
+messageActionGeoChatCheckin#c7d53de = MessageAction;
+
+updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update;
+
+wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
+
+updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update;
+updateEncryptedChatTyping#1710f156 chat_id:int = Update;
+updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update;
+updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
+
+encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
+encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
+encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
+encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
+encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
+
+inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
+
+encryptedFileEmpty#c21f497e = EncryptedFile;
+encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
+
+inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
+inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
+inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
+
+inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
+
+encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
+encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
+
+messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
+messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
+
+messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
+messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
+
+inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
+
+inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
+
+updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
+updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
+updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
+
+inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
+inputMediaAudio#89938781 id:InputAudio = InputMedia;
+inputMediaUploadedDocument#34e794bd file:InputFile file_name:string mime_type:string = InputMedia;
+inputMediaUploadedThumbDocument#3e46de5d file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia;
+inputMediaDocument#d184e841 id:InputDocument = InputMedia;
+
+messageMediaDocument#2fda2204 document:Document = MessageMedia;
+messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
+
+inputAudioEmpty#d95adc84 = InputAudio;
+inputAudio#77d440ff id:long access_hash:long = InputAudio;
+
+inputDocumentEmpty#72f0eaae = InputDocument;
+inputDocument#18798952 id:long access_hash:long = InputDocument;
+
+inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
+inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
+
+audioEmpty#586988d8 id:long = Audio;
+audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
+
+documentEmpty#36f8c871 id:long = Document;
+document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
+
+help.support#17c6b5f6 phone_number:string user:User = help.Support;
+
+notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
+notifyUsers#b4c83b4c = NotifyPeer;
+notifyChats#c007cec3 = NotifyPeer;
+notifyAll#74d07c60 = NotifyPeer;
+
+updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
+updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
+
+auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
+updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
+
+
+message#567699b3 flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
+messageForwarded#a367e716 flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
+messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
+
+
+sendMessageTypingAction#16bf744e = SendMessageAction;
+sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
+sendMessageRecordVideoAction#a187d66f = SendMessageAction;
+sendMessageUploadVideoAction#92042ff7 = SendMessageAction;
+sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
+sendMessageUploadAudioAction#e6ac8a6f = SendMessageAction;
+sendMessageUploadPhotoAction#990a3c1a = SendMessageAction;
+sendMessageUploadDocumentAction#8faee98e = SendMessageAction;
+sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
+sendMessageChooseContactAction#628cbc6f = SendMessageAction;
+
+---functions---
+
+invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
+
+invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
+
+auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
+auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
+auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
+auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
+auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
+auth.logOut#5717da40 = Bool;
+auth.resetAuthorizations#9fab0d1a = Bool;
+auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
+auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
+auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
+auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
+
+account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
+account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
+account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
+account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
+account.resetNotifySettings#db7e1747 = Bool;
+account.updateProfile#f0888d68 first_name:string last_name:string = User;
+account.updateStatus#6628562c offline:Bool = Bool;
+account.getWallPapers#c04cfac2 = Vector<WallPaper>;
+
+users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
+users.getFullUser#ca30a5b1 id:InputUser = UserFull;
+
+contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
+contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
+contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
+contacts.search#11f812d8 q:string limit:int = contacts.Found;
+contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
+contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
+contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
+contacts.block#332b49fc id:InputUser = Bool;
+contacts.unblock#e54100bd id:InputUser = Bool;
+contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
+contacts.exportCard#84e53737 = Vector<int>;
+contacts.importCard#4fe196fe export_card:Vector<int> = User;
+
+messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
+messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
+messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
+messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
+messages.readHistory#eed884c6 peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory;
+messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
+messages.deleteMessages#14f2dd0a id:Vector<int> = Vector<int>;
+messages.restoreMessages#395f9d7e id:Vector<int> = Vector<int>;
+messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
+messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
+messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage;
+messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage;
+messages.forwardMessages#514cd10f peer:InputPeer id:Vector<int> = messages.StatedMessages;
+messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
+messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
+messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage;
+messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage;
+messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage;
+messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage;
+messages.createChat#419d9aee users:Vector<InputUser> title:string = messages.StatedMessage;
+
+updates.getState#edd4882a = updates.State;
+updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
+
+photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
+photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
+
+upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
+upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
+
+help.getConfig#c4f9186b = Config;
+help.getNearestDc#1fb33026 = NearestDc;
+help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
+help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
+help.getInviteText#a4a95186 lang_code:string = help.InviteText;
+
+photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
+
+messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage;
+messages.sendBroadcast#41bb0972 contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
+
+geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
+geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
+geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
+geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
+geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
+geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
+geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
+geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
+geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
+geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
+geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
+geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
+
+messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
+messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
+messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
+messages.discardEncryption#edd923c5 chat_id:int = Bool;
+messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
+messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
+messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
+messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
+
+upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
+
+initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
+
+help.getSupport#9cdf08cd = help.Support;
+
+auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
+
+messages.readMessageContents id:Vector<int> = Vector<int>;
+
+
+invokeWithLayer17#50858a19 {X:Type} query:!X = X;
+
diff --git a/libs/tgl/src/scheme18.tl b/libs/tgl/src/scheme18.tl
new file mode 100644
index 0000000000..6b7fdd5fc4
--- /dev/null
+++ b/libs/tgl/src/scheme18.tl
@@ -0,0 +1,535 @@
+int ?= Int;
+long ?= Long;
+double ?= Double;
+string ?= String;
+
+bytes string = Bytes;
+
+boolFalse#bc799737 = Bool;
+boolTrue#997275b5 = Bool;
+
+vector#1cb5c415 {t:Type} # [ t ] = Vector t;
+
+error#c4b9f9bb code:int text:string = Error;
+
+null#56730bcc = Null;
+
+inputPeerEmpty#7f3b18ea = InputPeer;
+inputPeerSelf#7da07ec9 = InputPeer;
+inputPeerContact#1023dbe8 user_id:int = InputPeer;
+inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
+inputPeerChat#179be863 chat_id:int = InputPeer;
+
+inputUserEmpty#b98886cf = InputUser;
+inputUserSelf#f7c1b13f = InputUser;
+inputUserContact#86e94f65 user_id:int = InputUser;
+inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
+
+inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
+
+inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
+
+inputMediaEmpty#9664f57f = InputMedia;
+inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
+inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia;
+inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
+inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
+inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaVideo#7f023ae6 id:InputVideo = InputMedia;
+
+inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
+inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
+inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
+
+inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
+inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint;
+
+inputPhotoEmpty#1cd7bf0d = InputPhoto;
+inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
+
+inputVideoEmpty#5508ec75 = InputVideo;
+inputVideo#ee579652 id:long access_hash:long = InputVideo;
+
+inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
+inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
+
+inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
+inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
+
+inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
+
+peerUser#9db1bc6d user_id:int = Peer;
+peerChat#bad0e5bb chat_id:int = Peer;
+
+storage.fileUnknown#aa963b05 = storage.FileType;
+storage.fileJpeg#7efe0e = storage.FileType;
+storage.fileGif#cae1aadf = storage.FileType;
+storage.filePng#a4f63c0 = storage.FileType;
+storage.filePdf#ae1e508d = storage.FileType;
+storage.fileMp3#528a0677 = storage.FileType;
+storage.fileMov#4b09ebbc = storage.FileType;
+storage.filePartial#40bc6f52 = storage.FileType;
+storage.fileMp4#b3cea0e4 = storage.FileType;
+storage.fileWebp#1081464c = storage.FileType;
+
+fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
+fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
+
+userEmpty#200250ba id:int = User;
+userSelf#7007b451 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
+userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
+userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User;
+
+
+userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
+userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
+
+userStatusEmpty#9d05049 = UserStatus;
+userStatusOnline#edb93949 expires:int = UserStatus;
+userStatusOffline#8c703f was_online:int = UserStatus;
+
+chatEmpty#9ba2d800 id:int = Chat;
+chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
+chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
+
+chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
+
+chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
+
+chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
+chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
+
+chatPhotoEmpty#37c1011c = ChatPhoto;
+chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
+
+messageEmpty#83e5de54 id:int = Message;
+//message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
+//messageForwarded#5f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message;
+//messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message;
+
+messageMediaEmpty#3ded6320 = MessageMedia;
+messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
+messageMediaVideo#a2d24290 video:Video = MessageMedia;
+messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
+messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
+messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia;
+
+messageActionEmpty#b6aef7b0 = MessageAction;
+messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
+messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
+messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
+messageActionChatDeletePhoto#95e3fbef = MessageAction;
+messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
+messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
+
+dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
+
+photoEmpty#2331b22d id:long = Photo;
+photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+
+photoSizeEmpty#e17e23c type:string = PhotoSize;
+photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
+photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
+
+videoEmpty#c10658a8 id:long = Video;
+video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+
+geoPointEmpty#1117dd5f = GeoPoint;
+geoPoint#2049d70c long:double lat:double = GeoPoint;
+
+auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone;
+
+auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
+
+auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
+
+inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
+inputNotifyUsers#193b4417 = InputNotifyPeer;
+inputNotifyChats#4a95e84e = InputNotifyPeer;
+inputNotifyAll#a429b886 = InputNotifyPeer;
+
+inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
+inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
+
+inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
+
+peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
+peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
+
+peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
+peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
+
+wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
+
+userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
+
+contact#f911c994 user_id:int mutual:Bool = Contact;
+
+importedContact#d0028438 user_id:int client_id:long = ImportedContact;
+
+contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
+
+contactFound#ea879f95 user_id:int = ContactFound;
+
+contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
+
+contactStatus#aa77b873 user_id:int expires:int = ContactStatus;
+
+chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
+
+contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink;
+contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink;
+contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink;
+
+contacts.myLinkEmpty#d22a1c60 = contacts.MyLink;
+contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink;
+contacts.myLinkContact#c240ebd9 = contacts.MyLink;
+
+contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link;
+
+contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
+contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
+
+contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
+
+contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+
+contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
+
+contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
+
+messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+
+messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+
+messages.messageEmpty#3f4e0648 = messages.Message;
+messages.message#ff90c417 message:Message chats:Vector<Chat> users:Vector<User> = messages.Message;
+
+messages.statedMessages#969478bb messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessages;
+
+messages.statedMessage#d07ae726 message:Message chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessage;
+
+messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage;
+
+messages.chat#40e9002a chat:Chat users:Vector<User> = messages.Chat;
+
+messages.chats#8150cbd8 chats:Vector<Chat> users:Vector<User> = messages.Chats;
+
+messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
+
+messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory;
+
+inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
+inputMessagesFilterPhotos#9609a51c = MessagesFilter;
+inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
+inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
+inputMessagesFilterDocument#9eddf188 = MessagesFilter;
+inputMessagesFilterAudio#cfc87522 = MessagesFilter;
+
+updateNewMessage#13abdb3 message:Message pts:int = Update;
+updateMessageID#4e90bfd6 id:int random_id:long = Update;
+updateReadMessages#c6649e31 messages:Vector<int> pts:int = Update;
+updateDeleteMessages#a92bfe26 messages:Vector<int> pts:int = Update;
+updateRestoreMessages#d15de04d messages:Vector<int> pts:int = Update;
+//updateUserTyping#6baa8508 user_id:int = Update;
+//updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update;
+updateChatParticipants#7761198 participants:ChatParticipants = Update;
+updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
+updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
+updateContactRegistered#2575bbb9 user_id:int date:int = Update;
+updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update;
+updateActivation#6f690963 user_id:int = Update;
+updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
+
+updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
+
+updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
+updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
+updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates;
+updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+
+photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
+photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
+
+photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
+
+upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
+
+dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
+
+config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
+
+nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
+
+help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
+help.noAppUpdate#c45a6536 = help.AppUpdate;
+
+help.inviteText#18cb9f78 message:string = help.InviteText;
+
+messages.statedMessagesLinks#3e74f5c6 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
+
+messages.statedMessageLink#a9af2881 message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
+
+messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
+
+inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
+
+inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer;
+
+geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
+
+geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
+geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
+geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
+
+geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
+
+geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
+
+geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+
+messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
+messageActionGeoChatCheckin#c7d53de = MessageAction;
+
+updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update;
+
+wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
+
+updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update;
+updateEncryptedChatTyping#1710f156 chat_id:int = Update;
+updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update;
+updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
+
+encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
+encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
+encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
+encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
+encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
+
+inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
+
+encryptedFileEmpty#c21f497e = EncryptedFile;
+encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
+
+inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
+inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
+inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
+
+inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
+
+encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
+encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
+
+messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
+messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
+
+messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
+messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
+
+inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
+
+inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
+
+updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
+updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
+updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
+
+inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
+inputMediaAudio#89938781 id:InputAudio = InputMedia;
+inputMediaUploadedDocument#34e794bd file:InputFile file_name:string mime_type:string = InputMedia;
+inputMediaUploadedThumbDocument#3e46de5d file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia;
+inputMediaDocument#d184e841 id:InputDocument = InputMedia;
+
+messageMediaDocument#2fda2204 document:Document = MessageMedia;
+messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
+
+inputAudioEmpty#d95adc84 = InputAudio;
+inputAudio#77d440ff id:long access_hash:long = InputAudio;
+
+inputDocumentEmpty#72f0eaae = InputDocument;
+inputDocument#18798952 id:long access_hash:long = InputDocument;
+
+inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
+inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
+
+audioEmpty#586988d8 id:long = Audio;
+audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
+
+documentEmpty#36f8c871 id:long = Document;
+document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
+
+help.support#17c6b5f6 phone_number:string user:User = help.Support;
+
+notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
+notifyUsers#b4c83b4c = NotifyPeer;
+notifyChats#c007cec3 = NotifyPeer;
+notifyAll#74d07c60 = NotifyPeer;
+
+updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
+updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
+
+auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
+updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
+
+updateUserName user_id:int first_name:string last_name:string username:string = Update;
+updateServiceNotification type:string message:string media:MessageMedia popup:Bool = Update;
+
+message#567699b3 flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
+messageForwarded#a367e716 flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
+messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
+
+
+sendMessageTypingAction#16bf744e = SendMessageAction;
+sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
+sendMessageRecordVideoAction#a187d66f = SendMessageAction;
+sendMessageUploadVideoAction#92042ff7 = SendMessageAction;
+sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
+sendMessageUploadAudioAction#e6ac8a6f = SendMessageAction;
+sendMessageUploadPhotoAction#990a3c1a = SendMessageAction;
+sendMessageUploadDocumentAction#8faee98e = SendMessageAction;
+sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
+sendMessageChooseContactAction#628cbc6f = SendMessageAction;
+
+---functions---
+
+invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
+
+invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
+
+auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
+auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
+auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
+auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
+auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
+auth.logOut#5717da40 = Bool;
+auth.resetAuthorizations#9fab0d1a = Bool;
+auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
+auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
+auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
+auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
+
+account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
+account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
+account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
+account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
+account.resetNotifySettings#db7e1747 = Bool;
+account.updateProfile#f0888d68 first_name:string last_name:string = User;
+account.updateStatus#6628562c offline:Bool = Bool;
+account.getWallPapers#c04cfac2 = Vector<WallPaper>;
+
+users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
+users.getFullUser#ca30a5b1 id:InputUser = UserFull;
+
+contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
+contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
+contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
+contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
+contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
+contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
+contacts.block#332b49fc id:InputUser = Bool;
+contacts.unblock#e54100bd id:InputUser = Bool;
+contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
+contacts.exportCard#84e53737 = Vector<int>;
+contacts.importCard#4fe196fe export_card:Vector<int> = User;
+
+messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
+messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
+messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
+messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
+messages.readHistory#eed884c6 peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory;
+messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
+messages.deleteMessages#14f2dd0a id:Vector<int> = Vector<int>;
+messages.restoreMessages#395f9d7e id:Vector<int> = Vector<int>;
+messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
+messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
+messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage;
+messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage;
+messages.forwardMessages#514cd10f peer:InputPeer id:Vector<int> = messages.StatedMessages;
+messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
+messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
+messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage;
+messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage;
+messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage;
+messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage;
+messages.createChat#419d9aee users:Vector<InputUser> title:string = messages.StatedMessage;
+
+updates.getState#edd4882a = updates.State;
+updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
+
+photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
+photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
+
+upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
+upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
+
+help.getConfig#c4f9186b = Config;
+help.getNearestDc#1fb33026 = NearestDc;
+help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
+help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
+help.getInviteText#a4a95186 lang_code:string = help.InviteText;
+
+photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
+
+messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage;
+messages.sendBroadcast#41bb0972 contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
+
+geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
+geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
+geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
+geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
+geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
+geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
+geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
+geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
+geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
+geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
+geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
+geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
+
+messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
+messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
+messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
+messages.discardEncryption#edd923c5 chat_id:int = Bool;
+messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
+messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
+messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
+messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
+
+upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
+
+initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
+
+help.getSupport#9cdf08cd = help.Support;
+
+auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
+
+messages.readMessageContents id:Vector<int> = Vector<int>;
+
+
+account.checkUsername username:string = Bool;
+account.updateUsername username:string = User;
+
+contacts.search q:string limit:int = contacts.Found;
+
+//invokeWithLayer18 {X:Type} query:!X = X;
+invokeWithLayer18#1c900537 {X:Type} query:!X = X;
+
diff --git a/libs/tgl/src/scheme19.tl b/libs/tgl/src/scheme19.tl
new file mode 100644
index 0000000000..732093a02a
--- /dev/null
+++ b/libs/tgl/src/scheme19.tl
@@ -0,0 +1,596 @@
+int ?= Int;
+long ?= Long;
+double ?= Double;
+string ?= String;
+
+bytes string = Bytes;
+
+boolFalse#bc799737 = Bool;
+boolTrue#997275b5 = Bool;
+
+int128 long long = Int128;
+int256 long long long long = Int256;
+
+vector#1cb5c415 {t:Type} # [ t ] = Vector t;
+
+error#c4b9f9bb code:int text:string = Error;
+
+null#56730bcc = Null;
+
+inputPeerEmpty#7f3b18ea = InputPeer;
+inputPeerSelf#7da07ec9 = InputPeer;
+inputPeerContact#1023dbe8 user_id:int = InputPeer;
+inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
+inputPeerChat#179be863 chat_id:int = InputPeer;
+
+inputUserEmpty#b98886cf = InputUser;
+inputUserSelf#f7c1b13f = InputUser;
+inputUserContact#86e94f65 user_id:int = InputUser;
+inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
+
+inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
+
+inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
+
+inputMediaEmpty#9664f57f = InputMedia;
+inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
+inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia;
+inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
+inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
+inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaVideo#7f023ae6 id:InputVideo = InputMedia;
+
+inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
+inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
+inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
+
+inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
+inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint;
+
+inputPhotoEmpty#1cd7bf0d = InputPhoto;
+inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
+
+inputVideoEmpty#5508ec75 = InputVideo;
+inputVideo#ee579652 id:long access_hash:long = InputVideo;
+
+inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
+inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
+
+inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
+inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
+
+inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
+
+peerUser#9db1bc6d user_id:int = Peer;
+peerChat#bad0e5bb chat_id:int = Peer;
+
+storage.fileUnknown#aa963b05 = storage.FileType;
+storage.fileJpeg#7efe0e = storage.FileType;
+storage.fileGif#cae1aadf = storage.FileType;
+storage.filePng#a4f63c0 = storage.FileType;
+storage.filePdf#ae1e508d = storage.FileType;
+storage.fileMp3#528a0677 = storage.FileType;
+storage.fileMov#4b09ebbc = storage.FileType;
+storage.filePartial#40bc6f52 = storage.FileType;
+storage.fileMp4#b3cea0e4 = storage.FileType;
+storage.fileWebp#1081464c = storage.FileType;
+
+fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
+fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
+
+userEmpty#200250ba id:int = User;
+userSelf#7007b451 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
+userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
+userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User;
+
+userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
+userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
+
+userStatusEmpty#9d05049 = UserStatus;
+userStatusOnline#edb93949 expires:int = UserStatus;
+userStatusOffline#8c703f was_online:int = UserStatus;
+
+chatEmpty#9ba2d800 id:int = Chat;
+chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
+chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
+
+chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
+
+chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
+
+chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
+chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
+
+chatPhotoEmpty#37c1011c = ChatPhoto;
+chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
+
+messageEmpty#83e5de54 id:int = Message;
+message#567699b3 flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
+messageForwarded#a367e716 flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
+messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
+
+messageMediaEmpty#3ded6320 = MessageMedia;
+messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
+messageMediaVideo#a2d24290 video:Video = MessageMedia;
+messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
+messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
+messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia;
+
+messageActionEmpty#b6aef7b0 = MessageAction;
+messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
+messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
+messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
+messageActionChatDeletePhoto#95e3fbef = MessageAction;
+messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
+messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
+
+dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
+
+photoEmpty#2331b22d id:long = Photo;
+photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+
+photoSizeEmpty#e17e23c type:string = PhotoSize;
+photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
+photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
+
+videoEmpty#c10658a8 id:long = Video;
+video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+
+geoPointEmpty#1117dd5f = GeoPoint;
+geoPoint#2049d70c long:double lat:double = GeoPoint;
+
+auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone;
+
+auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
+
+auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
+
+inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
+inputNotifyUsers#193b4417 = InputNotifyPeer;
+inputNotifyChats#4a95e84e = InputNotifyPeer;
+inputNotifyAll#a429b886 = InputNotifyPeer;
+
+inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
+inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
+
+inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
+
+peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
+peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
+
+peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
+peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
+
+wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
+
+userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
+
+contact#f911c994 user_id:int mutual:Bool = Contact;
+
+importedContact#d0028438 user_id:int client_id:long = ImportedContact;
+
+contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
+
+contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
+
+contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
+
+chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
+
+contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink;
+contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink;
+contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink;
+
+contacts.myLinkEmpty#d22a1c60 = contacts.MyLink;
+contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink;
+contacts.myLinkContact#c240ebd9 = contacts.MyLink;
+
+contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link;
+
+contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
+contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
+
+contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
+
+contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+
+contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
+
+messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+
+messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+
+messages.messageEmpty#3f4e0648 = messages.Message;
+messages.message#ff90c417 message:Message chats:Vector<Chat> users:Vector<User> = messages.Message;
+
+messages.statedMessages#969478bb messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessages;
+
+messages.statedMessage#d07ae726 message:Message chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessage;
+
+messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage;
+
+messages.chat#40e9002a chat:Chat users:Vector<User> = messages.Chat;
+
+messages.chats#8150cbd8 chats:Vector<Chat> users:Vector<User> = messages.Chats;
+
+messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
+
+messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory;
+
+inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
+inputMessagesFilterPhotos#9609a51c = MessagesFilter;
+inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
+inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
+inputMessagesFilterDocument#9eddf188 = MessagesFilter;
+inputMessagesFilterAudio#cfc87522 = MessagesFilter;
+
+updateNewMessage#13abdb3 message:Message pts:int = Update;
+updateMessageID#4e90bfd6 id:int random_id:long = Update;
+updateReadMessages#c6649e31 messages:Vector<int> pts:int = Update;
+updateDeleteMessages#a92bfe26 messages:Vector<int> pts:int = Update;
+updateRestoreMessages#d15de04d messages:Vector<int> pts:int = Update;
+updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
+updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
+updateChatParticipants#7761198 participants:ChatParticipants = Update;
+updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
+updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update;
+updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
+updateContactRegistered#2575bbb9 user_id:int date:int = Update;
+updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update;
+updateActivation#6f690963 user_id:int = Update;
+updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
+
+updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
+
+updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
+updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
+updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates;
+updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+
+photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
+photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
+
+photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
+
+upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
+
+dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
+
+config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
+
+nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
+
+help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
+help.noAppUpdate#c45a6536 = help.AppUpdate;
+
+help.inviteText#18cb9f78 message:string = help.InviteText;
+
+messages.statedMessagesLinks#3e74f5c6 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
+
+messages.statedMessageLink#a9af2881 message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
+
+messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
+
+inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
+
+inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer;
+
+geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
+
+geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
+geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
+geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
+
+geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
+
+geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
+
+geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+
+messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
+messageActionGeoChatCheckin#c7d53de = MessageAction;
+
+updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update;
+
+wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
+
+updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update;
+updateEncryptedChatTyping#1710f156 chat_id:int = Update;
+updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update;
+updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
+
+encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
+encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
+encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
+encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
+encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
+
+inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
+
+encryptedFileEmpty#c21f497e = EncryptedFile;
+encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
+
+inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
+inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
+inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
+
+inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
+
+encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
+encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
+
+messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
+messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
+
+messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
+messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
+
+inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
+
+inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
+
+updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
+updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
+updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
+
+inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
+inputMediaAudio#89938781 id:InputAudio = InputMedia;
+inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
+inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
+inputMediaDocument#d184e841 id:InputDocument = InputMedia;
+
+messageMediaDocument#2fda2204 document:Document = MessageMedia;
+messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
+
+inputAudioEmpty#d95adc84 = InputAudio;
+inputAudio#77d440ff id:long access_hash:long = InputAudio;
+
+inputDocumentEmpty#72f0eaae = InputDocument;
+inputDocument#18798952 id:long access_hash:long = InputDocument;
+
+inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
+inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
+
+audioEmpty#586988d8 id:long = Audio;
+audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
+
+documentEmpty#36f8c871 id:long = Document;
+document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
+document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
+
+help.support#17c6b5f6 phone_number:string user:User = help.Support;
+
+notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
+notifyUsers#b4c83b4c = NotifyPeer;
+notifyChats#c007cec3 = NotifyPeer;
+notifyAll#74d07c60 = NotifyPeer;
+
+updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
+updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
+
+auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+sendMessageTypingAction#16bf744e = SendMessageAction;
+sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
+sendMessageRecordVideoAction#a187d66f = SendMessageAction;
+sendMessageUploadVideoAction#92042ff7 = SendMessageAction;
+sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
+sendMessageUploadAudioAction#e6ac8a6f = SendMessageAction;
+sendMessageUploadPhotoAction#990a3c1a = SendMessageAction;
+sendMessageUploadDocumentAction#8faee98e = SendMessageAction;
+sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
+sendMessageChooseContactAction#628cbc6f = SendMessageAction;
+
+contactFound#ea879f95 user_id:int = ContactFound;
+
+contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
+
+updateServiceNotification#382dd3e4 type:string message:string media:MessageMedia popup:Bool = Update;
+
+userStatusRecently#e26f42f1 = UserStatus;
+userStatusLastWeek#7bf09fc = UserStatus;
+userStatusLastMonth#77ebc742 = UserStatus;
+
+updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
+
+inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
+
+privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
+
+inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
+inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
+inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
+inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
+inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
+inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
+
+privacyValueAllowContacts#fffe1bac = PrivacyRule;
+privacyValueAllowAll#65427b82 = PrivacyRule;
+privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
+privacyValueDisallowContacts#f888fa1a = PrivacyRule;
+privacyValueDisallowAll#8b73e763 = PrivacyRule;
+privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule;
+
+account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
+
+accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
+
+account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
+
+updateUserPhone#12b9417b user_id:int phone:string = Update;
+
+account.noPassword#5770e7a9 new_salt:bytes = account.Password;
+account.password#739e5f72 current_salt:bytes new_salt:bytes hint:string = account.Password;
+
+documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
+documentAttributeAnimated#11b58939 = DocumentAttribute;
+documentAttributeSticker#fb0a5727 = DocumentAttribute;
+documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
+documentAttributeAudio#51448e5 duration:int = DocumentAttribute;
+documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
+
+messages.stickersNotModified#f1749a22 = messages.Stickers;
+messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
+
+stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
+
+messages.allStickersNotModified#e86602c3 = messages.AllStickers;
+messages.allStickers#dcef3102 hash:string packs:Vector<StickerPack> documents:Vector<Document> = messages.AllStickers;
+
+---functions---
+
+invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
+
+invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
+
+auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
+auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
+auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
+auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
+auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
+auth.logOut#5717da40 = Bool;
+auth.resetAuthorizations#9fab0d1a = Bool;
+auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
+auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
+auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
+auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
+
+account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
+account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
+account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
+account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
+account.resetNotifySettings#db7e1747 = Bool;
+account.updateProfile#f0888d68 first_name:string last_name:string = User;
+account.updateStatus#6628562c offline:Bool = Bool;
+account.getWallPapers#c04cfac2 = Vector<WallPaper>;
+
+users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
+users.getFullUser#ca30a5b1 id:InputUser = UserFull;
+
+contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
+contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
+contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
+contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
+contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
+contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
+contacts.block#332b49fc id:InputUser = Bool;
+contacts.unblock#e54100bd id:InputUser = Bool;
+contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
+contacts.exportCard#84e53737 = Vector<int>;
+contacts.importCard#4fe196fe export_card:Vector<int> = User;
+
+messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
+messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
+messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
+messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
+messages.readHistory#eed884c6 peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory;
+messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
+messages.deleteMessages#14f2dd0a id:Vector<int> = Vector<int>;
+messages.restoreMessages#395f9d7e id:Vector<int> = Vector<int>;
+messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
+messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
+messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage;
+messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage;
+messages.forwardMessages#514cd10f peer:InputPeer id:Vector<int> = messages.StatedMessages;
+messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
+messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
+messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage;
+messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage;
+messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage;
+messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage;
+messages.createChat#419d9aee users:Vector<InputUser> title:string = messages.StatedMessage;
+
+updates.getState#edd4882a = updates.State;
+updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
+
+photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
+photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
+photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
+
+upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
+upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
+
+help.getConfig#c4f9186b = Config;
+help.getNearestDc#1fb33026 = NearestDc;
+help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
+help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
+help.getInviteText#a4a95186 lang_code:string = help.InviteText;
+
+photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
+
+messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage;
+messages.sendBroadcast#41bb0972 contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
+
+geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
+geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
+geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
+geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
+geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
+geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
+geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
+geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
+geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
+geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
+geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
+geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
+
+messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
+messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
+messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
+messages.discardEncryption#edd923c5 chat_id:int = Bool;
+messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
+messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
+messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
+messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
+
+upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
+
+initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
+
+help.getSupport#9cdf08cd = help.Support;
+
+auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
+
+messages.readMessageContents#354b5bc2 id:Vector<int> = Vector<int>;
+
+account.checkUsername#2714d86c username:string = Bool;
+account.updateUsername#3e0bdd7c username:string = User;
+
+contacts.search#11f812d8 q:string limit:int = contacts.Found;
+
+account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
+account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
+account.deleteAccount#418d4e0b reason:string = Bool;
+account.getAccountTTL#8fc711d = AccountDaysTTL;
+account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
+
+invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
+
+contacts.resolveUsername#bf0131c username:string = User;
+
+account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode;
+account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
+account.getPassword#548a30f5 = account.Password;
+account.setPassword#dd2a4d8f current_password_hash:bytes new_salt:bytes new_password_hash:bytes hint:string = Bool;
+
+auth.checkPassword#a63011e password_hash:bytes = auth.Authorization;
+
+messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
+messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;
diff --git a/libs/tgl/src/scheme22.tl b/libs/tgl/src/scheme22.tl
new file mode 100644
index 0000000000..1ed65373e0
--- /dev/null
+++ b/libs/tgl/src/scheme22.tl
@@ -0,0 +1,596 @@
+int ?= Int;
+long ?= Long;
+double ?= Double;
+string ?= String;
+
+bytes string = Bytes;
+
+boolFalse#bc799737 = Bool;
+boolTrue#997275b5 = Bool;
+
+int128 long long = Int128;
+int256 long long long long = Int256;
+
+vector#1cb5c415 {t:Type} # [ t ] = Vector t;
+
+error#c4b9f9bb code:int text:string = Error;
+
+null#56730bcc = Null;
+
+inputPeerEmpty#7f3b18ea = InputPeer;
+inputPeerSelf#7da07ec9 = InputPeer;
+inputPeerContact#1023dbe8 user_id:int = InputPeer;
+inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
+inputPeerChat#179be863 chat_id:int = InputPeer;
+
+inputUserEmpty#b98886cf = InputUser;
+inputUserSelf#f7c1b13f = InputUser;
+inputUserContact#86e94f65 user_id:int = InputUser;
+inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
+
+inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
+
+inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
+
+inputMediaEmpty#9664f57f = InputMedia;
+inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
+inputMediaPhoto#8f2ab2ec photo_id:InputPhoto = InputMedia;
+inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
+inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
+inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaVideo#7f023ae6 video_id:InputVideo = InputMedia;
+
+inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
+inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
+inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
+
+inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
+inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint;
+
+inputPhotoEmpty#1cd7bf0d = InputPhoto;
+inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
+
+inputVideoEmpty#5508ec75 = InputVideo;
+inputVideo#ee579652 id:long access_hash:long = InputVideo;
+
+inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
+inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
+
+inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
+inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
+
+inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
+
+peerUser#9db1bc6d user_id:int = Peer;
+peerChat#bad0e5bb chat_id:int = Peer;
+
+storage.fileUnknown#aa963b05 = storage.FileType;
+storage.fileJpeg#7efe0e = storage.FileType;
+storage.fileGif#cae1aadf = storage.FileType;
+storage.filePng#a4f63c0 = storage.FileType;
+storage.filePdf#ae1e508d = storage.FileType;
+storage.fileMp3#528a0677 = storage.FileType;
+storage.fileMov#4b09ebbc = storage.FileType;
+storage.filePartial#40bc6f52 = storage.FileType;
+storage.fileMp4#b3cea0e4 = storage.FileType;
+storage.fileWebp#1081464c = storage.FileType;
+
+fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
+fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
+
+userEmpty#200250ba id:int = User;
+userSelf#7007b451 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
+userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
+userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User;
+
+userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
+userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
+
+userStatusEmpty#9d05049 = UserStatus;
+userStatusOnline#edb93949 expires:int = UserStatus;
+userStatusOffline#8c703f was_online:int = UserStatus;
+
+chatEmpty#9ba2d800 id:int = Chat;
+chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
+chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
+
+chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
+
+chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
+
+chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
+chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
+
+chatPhotoEmpty#37c1011c = ChatPhoto;
+chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
+
+messageEmpty#83e5de54 id:int = Message;
+message#567699b3 flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
+messageForwarded#a367e716 flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
+messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
+
+messageMediaEmpty#3ded6320 = MessageMedia;
+messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
+messageMediaVideo#a2d24290 video:Video = MessageMedia;
+messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
+messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
+messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia;
+
+messageActionEmpty#b6aef7b0 = MessageAction;
+messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
+messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
+messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
+messageActionChatDeletePhoto#95e3fbef = MessageAction;
+messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
+messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
+
+dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
+
+photoEmpty#2331b22d id:long = Photo;
+photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+
+photoSizeEmpty#e17e23c type:string = PhotoSize;
+photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
+photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
+
+videoEmpty#c10658a8 id:long = Video;
+video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+
+geoPointEmpty#1117dd5f = GeoPoint;
+geoPoint#2049d70c longitude:double latitude:double = GeoPoint;
+
+auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone;
+
+auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
+
+auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
+
+inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
+inputNotifyUsers#193b4417 = InputNotifyPeer;
+inputNotifyChats#4a95e84e = InputNotifyPeer;
+inputNotifyAll#a429b886 = InputNotifyPeer;
+
+inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
+inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
+
+inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
+
+peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
+peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
+
+peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
+peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
+
+wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
+
+userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
+
+contact#f911c994 user_id:int mutual:Bool = Contact;
+
+importedContact#d0028438 user_id:int client_id:long = ImportedContact;
+
+contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
+
+contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
+
+contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
+
+chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
+
+contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink;
+contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink;
+contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink;
+
+contacts.myLinkEmpty#d22a1c60 = contacts.MyLink;
+contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink;
+contacts.myLinkContact#c240ebd9 = contacts.MyLink;
+
+contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link;
+
+contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
+contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
+
+contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
+
+contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+
+contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
+
+messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+
+messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+
+messages.messageEmpty#3f4e0648 = messages.Message;
+messages.message#ff90c417 message:Message chats:Vector<Chat> users:Vector<User> = messages.Message;
+
+messages.statedMessages#969478bb messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessages;
+
+messages.statedMessage#d07ae726 message:Message chats:Vector<Chat> users:Vector<User> pts:int seq:int = messages.StatedMessage;
+
+messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage;
+
+messages.chat#40e9002a chat:Chat users:Vector<User> = messages.Chat;
+
+messages.chats#8150cbd8 chats:Vector<Chat> users:Vector<User> = messages.Chats;
+
+messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
+
+messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory;
+
+inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
+inputMessagesFilterPhotos#9609a51c = MessagesFilter;
+inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
+inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
+inputMessagesFilterDocument#9eddf188 = MessagesFilter;
+inputMessagesFilterAudio#cfc87522 = MessagesFilter;
+
+updateNewMessage#13abdb3 message:Message pts:int = Update;
+updateMessageID#4e90bfd6 id:int random_id:long = Update;
+updateReadMessages#c6649e31 messages:Vector<int> pts:int = Update;
+updateDeleteMessages#a92bfe26 messages:Vector<int> pts:int = Update;
+updateRestoreMessages#d15de04d messages:Vector<int> pts:int = Update;
+updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
+updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
+updateChatParticipants#7761198 participants:ChatParticipants = Update;
+updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
+updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update;
+updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
+updateContactRegistered#2575bbb9 user_id:int date:int = Update;
+updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update;
+updateActivation#6f690963 user_id:int = Update;
+updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
+
+updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
+
+updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
+updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
+updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates;
+updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+
+photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
+photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
+
+photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
+
+upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
+
+dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
+
+config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
+
+nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
+
+help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
+help.noAppUpdate#c45a6536 = help.AppUpdate;
+
+help.inviteText#18cb9f78 message:string = help.InviteText;
+
+messages.statedMessagesLinks#3e74f5c6 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
+
+messages.statedMessageLink#a9af2881 message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
+
+messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
+
+inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
+
+inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer;
+
+geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
+
+geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
+geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
+geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
+
+geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
+
+geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
+
+geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+
+messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
+messageActionGeoChatCheckin#c7d53de = MessageAction;
+
+updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update;
+
+wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
+
+updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update;
+updateEncryptedChatTyping#1710f156 chat_id:int = Update;
+updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update;
+updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
+
+encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
+encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
+encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
+encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
+encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
+
+inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
+
+encryptedFileEmpty#c21f497e = EncryptedFile;
+encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
+
+inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
+inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
+inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
+
+inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
+
+encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
+encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
+
+messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
+messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
+
+messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
+messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
+
+inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
+
+inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
+
+updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
+updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
+updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
+
+inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
+inputMediaAudio#89938781 audio_id:InputAudio = InputMedia;
+inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
+inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
+inputMediaDocument#d184e841 document_id:InputDocument = InputMedia;
+
+messageMediaDocument#2fda2204 document:Document = MessageMedia;
+messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
+
+inputAudioEmpty#d95adc84 = InputAudio;
+inputAudio#77d440ff id:long access_hash:long = InputAudio;
+
+inputDocumentEmpty#72f0eaae = InputDocument;
+inputDocument#18798952 id:long access_hash:long = InputDocument;
+
+inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
+inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
+
+audioEmpty#586988d8 id:long = Audio;
+audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
+
+documentEmpty#36f8c871 id:long = Document;
+document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
+document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
+
+help.support#17c6b5f6 phone_number:string user:User = help.Support;
+
+notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
+notifyUsers#b4c83b4c = NotifyPeer;
+notifyChats#c007cec3 = NotifyPeer;
+notifyAll#74d07c60 = NotifyPeer;
+
+updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
+updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
+
+auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+sendMessageTypingAction#16bf744e = SendMessageAction;
+sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
+sendMessageRecordVideoAction#a187d66f = SendMessageAction;
+sendMessageUploadVideoAction#92042ff7 = SendMessageAction;
+sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
+sendMessageUploadAudioAction#e6ac8a6f = SendMessageAction;
+sendMessageUploadPhotoAction#990a3c1a = SendMessageAction;
+sendMessageUploadDocumentAction#8faee98e = SendMessageAction;
+sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
+sendMessageChooseContactAction#628cbc6f = SendMessageAction;
+
+contactFound#ea879f95 user_id:int = ContactFound;
+
+contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
+
+updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update;
+
+userStatusRecently#e26f42f1 = UserStatus;
+userStatusLastWeek#7bf09fc = UserStatus;
+userStatusLastMonth#77ebc742 = UserStatus;
+
+updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
+
+inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
+
+privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
+
+inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
+inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
+inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
+inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
+inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
+inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
+
+privacyValueAllowContacts#fffe1bac = PrivacyRule;
+privacyValueAllowAll#65427b82 = PrivacyRule;
+privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
+privacyValueDisallowContacts#f888fa1a = PrivacyRule;
+privacyValueDisallowAll#8b73e763 = PrivacyRule;
+privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule;
+
+account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
+
+accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
+
+account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
+
+updateUserPhone#12b9417b user_id:int phone:string = Update;
+
+account.noPassword#5770e7a9 new_salt:bytes = account.Password;
+account.password#739e5f72 current_salt:bytes new_salt:bytes hint:string = account.Password;
+
+documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
+documentAttributeAnimated#11b58939 = DocumentAttribute;
+documentAttributeSticker#fb0a5727 = DocumentAttribute;
+documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
+documentAttributeAudio#51448e5 duration:int = DocumentAttribute;
+documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
+
+messages.stickersNotModified#f1749a22 = messages.Stickers;
+messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
+
+stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
+
+messages.allStickersNotModified#e86602c3 = messages.AllStickers;
+messages.allStickers#dcef3102 hash:string packs:Vector<StickerPack> documents:Vector<Document> = messages.AllStickers;
+
+---functions---
+
+invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
+
+invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
+
+auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
+auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
+auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
+auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
+auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
+auth.logOut#5717da40 = Bool;
+auth.resetAuthorizations#9fab0d1a = Bool;
+auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
+auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
+auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
+auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
+
+account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
+account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
+account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
+account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
+account.resetNotifySettings#db7e1747 = Bool;
+account.updateProfile#f0888d68 first_name:string last_name:string = User;
+account.updateStatus#6628562c offline:Bool = Bool;
+account.getWallPapers#c04cfac2 = Vector<WallPaper>;
+
+users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
+users.getFullUser#ca30a5b1 id:InputUser = UserFull;
+
+contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
+contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
+contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
+contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
+contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
+contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
+contacts.block#332b49fc id:InputUser = Bool;
+contacts.unblock#e54100bd id:InputUser = Bool;
+contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
+contacts.exportCard#84e53737 = Vector<int>;
+contacts.importCard#4fe196fe export_card:Vector<int> = User;
+
+messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
+messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
+messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
+messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
+messages.readHistory#eed884c6 peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory;
+messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
+messages.deleteMessages#14f2dd0a id:Vector<int> = Vector<int>;
+messages.restoreMessages#395f9d7e id:Vector<int> = Vector<int>;
+messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
+messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
+messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage;
+messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage;
+messages.forwardMessages#514cd10f peer:InputPeer id:Vector<int> = messages.StatedMessages;
+messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
+messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
+messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage;
+messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage;
+messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage;
+messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage;
+messages.createChat#419d9aee users:Vector<InputUser> title:string = messages.StatedMessage;
+
+updates.getState#edd4882a = updates.State;
+updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
+
+photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
+photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
+photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
+
+upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
+upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
+
+help.getConfig#c4f9186b = Config;
+help.getNearestDc#1fb33026 = NearestDc;
+help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
+help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
+help.getInviteText#a4a95186 lang_code:string = help.InviteText;
+
+photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
+
+messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage;
+messages.sendBroadcast#41bb0972 contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
+
+geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
+geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
+geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
+geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
+geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
+geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
+geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
+geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
+geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
+geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
+geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
+geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
+
+messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
+messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
+messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
+messages.discardEncryption#edd923c5 chat_id:int = Bool;
+messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
+messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
+messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
+messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
+
+upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
+
+initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
+
+help.getSupport#9cdf08cd = help.Support;
+
+auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
+
+messages.readMessageContents#354b5bc2 id:Vector<int> = Vector<int>;
+
+account.checkUsername#2714d86c username:string = Bool;
+account.updateUsername#3e0bdd7c username:string = User;
+
+contacts.search#11f812d8 q:string limit:int = contacts.Found;
+
+account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
+account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
+account.deleteAccount#418d4e0b reason:string = Bool;
+account.getAccountTTL#8fc711d = AccountDaysTTL;
+account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
+
+invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
+
+contacts.resolveUsername#bf0131c username:string = User;
+
+account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode;
+account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
+account.getPassword#548a30f5 = account.Password;
+account.setPassword#dd2a4d8f current_password_hash:bytes new_salt:bytes new_password_hash:bytes hint:string = Bool;
+
+auth.checkPassword#a63011e password_hash:bytes = auth.Authorization;
+
+messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
+messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;
diff --git a/libs/tgl/src/scheme25.tl b/libs/tgl/src/scheme25.tl
new file mode 100644
index 0000000000..89447c4ff2
--- /dev/null
+++ b/libs/tgl/src/scheme25.tl
@@ -0,0 +1,622 @@
+int ?= Int;
+long ?= Long;
+double ?= Double;
+string ?= String;
+
+bytes string = Bytes;
+
+int128 long long = Int128;
+int256 long long long long = Int256;
+
+boolFalse#bc799737 = Bool;
+boolTrue#997275b5 = Bool;
+
+vector#1cb5c415 {t:Type} # [ t ] = Vector t;
+
+error#c4b9f9bb code:int text:string = Error;
+
+null#56730bcc = Null;
+
+inputPeerEmpty#7f3b18ea = InputPeer;
+inputPeerSelf#7da07ec9 = InputPeer;
+inputPeerContact#1023dbe8 user_id:int = InputPeer;
+inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
+inputPeerChat#179be863 chat_id:int = InputPeer;
+
+inputUserEmpty#b98886cf = InputUser;
+inputUserSelf#f7c1b13f = InputUser;
+inputUserContact#86e94f65 user_id:int = InputUser;
+inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
+
+inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
+
+inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
+
+inputMediaEmpty#9664f57f = InputMedia;
+inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia;
+inputMediaPhoto#8f2ab2ec photo_id:InputPhoto = InputMedia;
+inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
+inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
+inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaVideo#7f023ae6 video_id:InputVideo = InputMedia;
+
+inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
+inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
+inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
+
+inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
+inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint;
+
+inputPhotoEmpty#1cd7bf0d = InputPhoto;
+inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
+
+inputVideoEmpty#5508ec75 = InputVideo;
+inputVideo#ee579652 id:long access_hash:long = InputVideo;
+
+inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
+inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
+
+inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
+inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
+
+inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
+
+peerUser#9db1bc6d user_id:int = Peer;
+peerChat#bad0e5bb chat_id:int = Peer;
+
+storage.fileUnknown#aa963b05 = storage.FileType;
+storage.fileJpeg#7efe0e = storage.FileType;
+storage.fileGif#cae1aadf = storage.FileType;
+storage.filePng#a4f63c0 = storage.FileType;
+storage.filePdf#ae1e508d = storage.FileType;
+storage.fileMp3#528a0677 = storage.FileType;
+storage.fileMov#4b09ebbc = storage.FileType;
+storage.filePartial#40bc6f52 = storage.FileType;
+storage.fileMp4#b3cea0e4 = storage.FileType;
+storage.fileWebp#1081464c = storage.FileType;
+
+fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
+fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
+
+userEmpty#200250ba id:int = User;
+userSelf#1c60e608 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus = User;
+userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
+userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User;
+
+userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
+userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
+
+userStatusEmpty#9d05049 = UserStatus;
+userStatusOnline#edb93949 expires:int = UserStatus;
+userStatusOffline#8c703f was_online:int = UserStatus;
+
+chatEmpty#9ba2d800 id:int = Chat;
+chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
+chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
+
+chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
+
+chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
+
+chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
+chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
+
+chatPhotoEmpty#37c1011c = ChatPhoto;
+chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
+
+messageEmpty#83e5de54 id:int = Message;
+message#a7ab1991 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia = Message;
+messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
+
+messageMediaEmpty#3ded6320 = MessageMedia;
+messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia;
+messageMediaVideo#a2d24290 video:Video = MessageMedia;
+messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
+messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
+messageMediaUnsupportedL22#29632a36 bytes:bytes = MessageMedia;
+messageMediaUnsupported#9f84f49e = MessageMedia;
+
+messageActionEmpty#b6aef7b0 = MessageAction;
+messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
+messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
+messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
+messageActionChatDeletePhoto#95e3fbef = MessageAction;
+messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
+messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
+
+dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
+
+photoEmpty#2331b22d id:long = Photo;
+photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+
+photoSizeEmpty#e17e23c type:string = PhotoSize;
+photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
+photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
+
+videoEmpty#c10658a8 id:long = Video;
+video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+
+geoPointEmpty#1117dd5f = GeoPoint;
+geoPoint#2049d70c longitude:double latitude:double = GeoPoint;
+
+auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone;
+
+auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
+
+auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
+
+inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
+inputNotifyUsers#193b4417 = InputNotifyPeer;
+inputNotifyChats#4a95e84e = InputNotifyPeer;
+inputNotifyAll#a429b886 = InputNotifyPeer;
+
+inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
+inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
+
+inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
+
+peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
+peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
+
+peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
+peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
+
+wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
+
+userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
+
+contact#f911c994 user_id:int mutual:Bool = Contact;
+
+importedContact#d0028438 user_id:int client_id:long = ImportedContact;
+
+contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
+
+contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
+
+contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
+
+chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
+
+contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link;
+
+contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
+contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
+
+contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
+
+contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+
+contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
+
+messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+
+messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+
+messages.messageEmpty#3f4e0648 = messages.Message;
+
+messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage;
+
+messages.chats#64ff9fd5 chats:Vector<Chat> = messages.Chats;
+
+messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
+
+messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory;
+
+inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
+inputMessagesFilterPhotos#9609a51c = MessagesFilter;
+inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
+inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
+inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter;
+inputMessagesFilterDocument#9eddf188 = MessagesFilter;
+inputMessagesFilterAudio#cfc87522 = MessagesFilter;
+
+updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;
+updateMessageID#4e90bfd6 id:int random_id:long = Update;
+updateReadMessages#2e5ab668 messages:Vector<int> pts:int pts_count:int = Update;
+updateDeleteMessages#a20db0e5 messages:Vector<int> pts:int pts_count:int = Update;
+updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
+updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
+updateChatParticipants#7761198 participants:ChatParticipants = Update;
+updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
+updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update;
+updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
+updateContactRegistered#2575bbb9 user_id:int date:int = Update;
+updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update;
+updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
+
+updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
+
+updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
+updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
+updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
+updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+
+photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
+photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
+
+photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
+
+upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
+
+dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
+
+config#68bac247 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int disabled_features:Vector<DisabledFeature> = Config;
+
+nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
+
+help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
+help.noAppUpdate#c45a6536 = help.AppUpdate;
+
+help.inviteText#18cb9f78 message:string = help.InviteText;
+
+messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector<contacts.Link> seq:int = messages.SentMessage;
+
+inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
+
+inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer;
+
+geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
+
+geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
+geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
+geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
+
+geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
+
+geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
+
+geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+
+messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
+messageActionGeoChatCheckin#c7d53de = MessageAction;
+
+updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update;
+
+wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
+
+updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update;
+updateEncryptedChatTyping#1710f156 chat_id:int = Update;
+updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update;
+updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
+
+encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
+encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
+encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
+encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
+encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
+
+inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
+
+encryptedFileEmpty#c21f497e = EncryptedFile;
+encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
+
+inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
+inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
+inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
+
+inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
+
+encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
+encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
+
+messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
+messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
+
+messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
+messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
+
+inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
+
+inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
+
+updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
+updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
+updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
+
+inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
+inputMediaAudio#89938781 audio_id:InputAudio = InputMedia;
+inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
+inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
+inputMediaDocument#d184e841 document_id:InputDocument = InputMedia;
+
+messageMediaDocument#2fda2204 document:Document = MessageMedia;
+messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
+
+inputAudioEmpty#d95adc84 = InputAudio;
+inputAudio#77d440ff id:long access_hash:long = InputAudio;
+
+inputDocumentEmpty#72f0eaae = InputDocument;
+inputDocument#18798952 id:long access_hash:long = InputDocument;
+
+inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
+inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
+
+audioEmpty#586988d8 id:long = Audio;
+audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
+
+documentEmpty#36f8c871 id:long = Document;
+document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
+document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
+
+help.support#17c6b5f6 phone_number:string user:User = help.Support;
+
+notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
+notifyUsers#b4c83b4c = NotifyPeer;
+notifyChats#c007cec3 = NotifyPeer;
+notifyAll#74d07c60 = NotifyPeer;
+
+updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
+updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
+
+auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+sendMessageTypingAction#16bf744e = SendMessageAction;
+sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
+sendMessageRecordVideoAction#a187d66f = SendMessageAction;
+sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction;
+sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction;
+sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
+sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction;
+sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction;
+sendMessageUploadPhotoAction#990a3c1a = SendMessageAction;
+sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction;
+sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction;
+sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
+sendMessageChooseContactAction#628cbc6f = SendMessageAction;
+
+contactFound#ea879f95 user_id:int = ContactFound;
+
+contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
+
+updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update;
+
+userStatusRecently#e26f42f1 = UserStatus;
+userStatusLastWeek#7bf09fc = UserStatus;
+userStatusLastMonth#77ebc742 = UserStatus;
+
+updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
+
+inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
+
+privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
+
+inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
+inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
+inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
+inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
+inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
+inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
+
+privacyValueAllowContacts#fffe1bac = PrivacyRule;
+privacyValueAllowAll#65427b82 = PrivacyRule;
+privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
+privacyValueDisallowContacts#f888fa1a = PrivacyRule;
+privacyValueDisallowAll#8b73e763 = PrivacyRule;
+privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule;
+
+account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
+
+accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
+
+account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
+
+updateUserPhone#12b9417b user_id:int phone:string = Update;
+
+documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
+documentAttributeAnimated#11b58939 = DocumentAttribute;
+documentAttributeSticker#994c9882 alt:string = DocumentAttribute;
+documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
+documentAttributeAudio#51448e5 duration:int = DocumentAttribute;
+documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
+
+messages.stickersNotModified#f1749a22 = messages.Stickers;
+messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
+
+stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
+
+messages.allStickersNotModified#e86602c3 = messages.AllStickers;
+messages.allStickers#dcef3102 hash:string packs:Vector<StickerPack> documents:Vector<Document> = messages.AllStickers;
+
+disabledFeature#ae636f24 feature:string description:string = DisabledFeature;
+
+updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update;
+updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update;
+
+messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages;
+
+contactLinkUnknown#5f4f9247 = ContactLink;
+contactLinkNone#feedd3ad = ContactLink;
+contactLinkHasPhone#268f3f59 = ContactLink;
+contactLinkContact#d502c2d0 = ContactLink;
+
+updateWebPage#2cc36971 webpage:WebPage = Update;
+
+webPageEmpty#eb1477e8 id:long = WebPage;
+webPagePending#c586da1c id:long date:int = WebPage;
+webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage;
+
+messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia;
+
+authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
+
+account.authorizations#1250abde authorizations:Vector<Authorization> = account.Authorizations;
+
+account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password;
+account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password;
+
+account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings;
+
+account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings;
+
+auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery;
+
+inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia;
+
+messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia;
+
+---functions---
+
+invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
+
+invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
+
+auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
+auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
+auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
+auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
+auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
+auth.logOut#5717da40 = Bool;
+auth.resetAuthorizations#9fab0d1a = Bool;
+auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
+auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
+auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
+auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
+
+account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
+account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
+account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
+account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
+account.resetNotifySettings#db7e1747 = Bool;
+account.updateProfile#f0888d68 first_name:string last_name:string = User;
+account.updateStatus#6628562c offline:Bool = Bool;
+account.getWallPapers#c04cfac2 = Vector<WallPaper>;
+
+users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
+users.getFullUser#ca30a5b1 id:InputUser = UserFull;
+
+contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
+contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
+contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
+contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
+contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
+contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
+contacts.block#332b49fc id:InputUser = Bool;
+contacts.unblock#e54100bd id:InputUser = Bool;
+contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
+contacts.exportCard#84e53737 = Vector<int>;
+contacts.importCard#4fe196fe export_card:Vector<int> = User;
+
+messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
+messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
+messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
+messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
+messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
+messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
+messages.deleteMessages#a5f18925 id:Vector<int> = messages.AffectedMessages;
+messages.receivedMessages#28abcb68 max_id:int = Vector<int>;
+messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
+messages.sendMessage#9add8f26 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long = messages.SentMessage;
+messages.sendMedia#2d7923b1 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long = Updates;
+messages.forwardMessages#55e1728d peer:InputPeer id:Vector<int> random_id:Vector<long> = Updates;
+messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
+messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
+messages.editChatTitle#dc452855 chat_id:int title:string = Updates;
+messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates;
+messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates;
+messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates;
+messages.createChat#9cb126e users:Vector<InputUser> title:string = Updates;
+
+updates.getState#edd4882a = updates.State;
+updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
+
+photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
+photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
+photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
+
+upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
+upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
+
+help.getConfig#c4f9186b = Config;
+help.getNearestDc#1fb33026 = NearestDc;
+help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
+help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
+help.getInviteText#a4a95186 lang_code:string = help.InviteText;
+
+photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
+
+messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates;
+messages.sendBroadcast#bf73f4da contacts:Vector<InputUser> random_id:Vector<long> message:string media:InputMedia = Updates;
+
+geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
+geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
+geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
+geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
+geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
+geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
+geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
+geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
+geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
+geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
+geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
+geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
+
+messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
+messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
+messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
+messages.discardEncryption#edd923c5 chat_id:int = Bool;
+messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
+messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
+messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
+messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
+
+upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
+
+initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
+
+help.getSupport#9cdf08cd = help.Support;
+
+auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
+
+messages.readMessageContents#36a73f77 id:Vector<int> = messages.AffectedMessages;
+
+account.checkUsername#2714d86c username:string = Bool;
+account.updateUsername#3e0bdd7c username:string = User;
+
+contacts.search#11f812d8 q:string limit:int = contacts.Found;
+
+account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
+account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
+account.deleteAccount#418d4e0b reason:string = Bool;
+account.getAccountTTL#8fc711d = AccountDaysTTL;
+account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
+
+invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
+
+contacts.resolveUsername#bf0131c username:string = User;
+
+account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode;
+account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
+
+messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
+messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;
+
+account.updateDeviceLocked#38df3532 period:int = Bool;
+
+messages.getWebPagePreview#25223e24 message:string = MessageMedia;
+
+account.getAuthorizations#e320c158 = account.Authorizations;
+account.resetAuthorization#df77f3bc hash:long = Bool;
+account.getPassword#548a30f5 = account.Password;
+account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings;
+account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool;
+
+auth.checkPassword#a63011e password_hash:bytes = auth.Authorization;
+auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery;
+auth.recoverPassword#4ea56e92 code:string = auth.Authorization;
diff --git a/libs/tgl/src/scheme28.tl b/libs/tgl/src/scheme28.tl
new file mode 100644
index 0000000000..302731ef77
--- /dev/null
+++ b/libs/tgl/src/scheme28.tl
@@ -0,0 +1,641 @@
+int ?= Int;
+long ?= Long;
+double ?= Double;
+string ?= String;
+
+bytes string = Bytes;
+
+int128 long long = Int128;
+int256 long long long long = Int256;
+
+boolFalse#bc799737 = Bool;
+boolTrue#997275b5 = Bool;
+
+vector#1cb5c415 {t:Type} # [ t ] = Vector t;
+
+error#c4b9f9bb code:int text:string = Error;
+
+null#56730bcc = Null;
+
+inputPeerEmpty#7f3b18ea = InputPeer;
+inputPeerSelf#7da07ec9 = InputPeer;
+inputPeerContact#1023dbe8 user_id:int = InputPeer;
+inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
+inputPeerChat#179be863 chat_id:int = InputPeer;
+
+inputUserEmpty#b98886cf = InputUser;
+inputUserSelf#f7c1b13f = InputUser;
+inputUserContact#86e94f65 user_id:int = InputUser;
+inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
+
+inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
+
+inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
+
+inputMediaEmpty#9664f57f = InputMedia;
+inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia;
+inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia;
+inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
+inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
+inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia;
+inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia;
+inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia;
+
+inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
+inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
+inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
+
+inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
+inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint;
+
+inputPhotoEmpty#1cd7bf0d = InputPhoto;
+inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
+
+inputVideoEmpty#5508ec75 = InputVideo;
+inputVideo#ee579652 id:long access_hash:long = InputVideo;
+
+inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
+inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
+
+inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
+inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
+
+inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
+
+peerUser#9db1bc6d user_id:int = Peer;
+peerChat#bad0e5bb chat_id:int = Peer;
+
+storage.fileUnknown#aa963b05 = storage.FileType;
+storage.fileJpeg#7efe0e = storage.FileType;
+storage.fileGif#cae1aadf = storage.FileType;
+storage.filePng#a4f63c0 = storage.FileType;
+storage.filePdf#ae1e508d = storage.FileType;
+storage.fileMp3#528a0677 = storage.FileType;
+storage.fileMov#4b09ebbc = storage.FileType;
+storage.filePartial#40bc6f52 = storage.FileType;
+storage.fileMp4#b3cea0e4 = storage.FileType;
+storage.fileWebp#1081464c = storage.FileType;
+
+fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
+fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
+
+userEmpty#200250ba id:int = User;
+userSelf#1c60e608 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus = User;
+userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
+userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User;
+
+userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
+userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
+
+userStatusEmpty#9d05049 = UserStatus;
+userStatusOnline#edb93949 expires:int = UserStatus;
+userStatusOffline#8c703f was_online:int = UserStatus;
+
+chatEmpty#9ba2d800 id:int = Chat;
+chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
+chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
+
+chatFullL27#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
+chatFull#cade0791 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite = ChatFull;
+
+chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
+
+chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
+chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
+
+chatPhotoEmpty#37c1011c = ChatPhoto;
+chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
+
+messageEmpty#83e5de54 id:int = Message;
+message#a7ab1991 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia = Message;
+messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
+
+messageMediaEmpty#3ded6320 = MessageMedia;
+messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia;
+messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia;
+messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
+messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
+messageMediaUnsupported#9f84f49e = MessageMedia;
+
+messageActionEmpty#b6aef7b0 = MessageAction;
+messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
+messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
+messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
+messageActionChatDeletePhoto#95e3fbef = MessageAction;
+messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
+messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
+
+dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
+
+photoEmpty#2331b22d id:long = Photo;
+photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+
+photoSizeEmpty#e17e23c type:string = PhotoSize;
+photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
+photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
+
+videoEmpty#c10658a8 id:long = Video;
+video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+
+geoPointEmpty#1117dd5f = GeoPoint;
+geoPoint#2049d70c longitude:double latitude:double = GeoPoint;
+
+auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone;
+
+auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
+
+auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
+
+inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
+inputNotifyUsers#193b4417 = InputNotifyPeer;
+inputNotifyChats#4a95e84e = InputNotifyPeer;
+inputNotifyAll#a429b886 = InputNotifyPeer;
+
+inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
+inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
+
+inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
+
+peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
+peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
+
+peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
+peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
+
+wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
+
+userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
+
+contact#f911c994 user_id:int mutual:Bool = Contact;
+
+importedContact#d0028438 user_id:int client_id:long = ImportedContact;
+
+contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
+
+contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
+
+contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
+
+chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
+
+contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link;
+
+contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
+contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
+
+contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
+
+contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+
+contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
+
+messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+
+messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+
+messages.messageEmpty#3f4e0648 = messages.Message;
+
+messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage;
+
+messages.chats#64ff9fd5 chats:Vector<Chat> = messages.Chats;
+
+messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
+
+messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory;
+
+inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
+inputMessagesFilterPhotos#9609a51c = MessagesFilter;
+inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
+inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
+inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter;
+inputMessagesFilterDocument#9eddf188 = MessagesFilter;
+inputMessagesFilterAudio#cfc87522 = MessagesFilter;
+
+updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;
+updateMessageID#4e90bfd6 id:int random_id:long = Update;
+updateDeleteMessages#a20db0e5 messages:Vector<int> pts:int pts_count:int = Update;
+updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
+updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
+updateChatParticipants#7761198 participants:ChatParticipants = Update;
+updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
+updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update;
+updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
+updateContactRegistered#2575bbb9 user_id:int date:int = Update;
+updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update;
+updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
+
+updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
+
+updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
+updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
+updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
+updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+
+photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
+photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
+
+photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
+
+upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
+
+dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
+
+config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector<DisabledFeature> = Config;
+
+nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
+
+help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
+help.noAppUpdate#c45a6536 = help.AppUpdate;
+
+help.inviteText#18cb9f78 message:string = help.InviteText;
+
+messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector<contacts.Link> seq:int = messages.SentMessage;
+
+inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
+
+inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer;
+
+geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
+
+geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
+geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
+geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
+
+geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
+
+geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
+
+geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+
+messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
+messageActionGeoChatCheckin#c7d53de = MessageAction;
+
+updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update;
+
+wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
+
+updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update;
+updateEncryptedChatTyping#1710f156 chat_id:int = Update;
+updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update;
+updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
+
+encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
+encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
+encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
+encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
+encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
+
+inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
+
+encryptedFileEmpty#c21f497e = EncryptedFile;
+encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
+
+inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
+inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
+inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
+
+inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
+
+encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
+encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
+
+messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
+messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
+
+messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
+messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
+
+inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
+
+inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
+
+updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
+updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
+updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
+
+inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
+inputMediaAudio#89938781 audio_id:InputAudio = InputMedia;
+inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
+inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
+inputMediaDocument#d184e841 document_id:InputDocument = InputMedia;
+
+messageMediaDocument#2fda2204 document:Document = MessageMedia;
+messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
+
+inputAudioEmpty#d95adc84 = InputAudio;
+inputAudio#77d440ff id:long access_hash:long = InputAudio;
+
+inputDocumentEmpty#72f0eaae = InputDocument;
+inputDocument#18798952 id:long access_hash:long = InputDocument;
+
+inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
+inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
+
+audioEmpty#586988d8 id:long = Audio;
+audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
+
+documentEmpty#36f8c871 id:long = Document;
+document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
+document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
+
+help.support#17c6b5f6 phone_number:string user:User = help.Support;
+
+notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
+notifyUsers#b4c83b4c = NotifyPeer;
+notifyChats#c007cec3 = NotifyPeer;
+notifyAll#74d07c60 = NotifyPeer;
+
+updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
+updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
+
+auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+sendMessageTypingAction#16bf744e = SendMessageAction;
+sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
+sendMessageRecordVideoAction#a187d66f = SendMessageAction;
+sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction;
+sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction;
+sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
+sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction;
+sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction;
+sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction;
+sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction;
+sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction;
+sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
+sendMessageChooseContactAction#628cbc6f = SendMessageAction;
+
+contactFound#ea879f95 user_id:int = ContactFound;
+
+contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
+
+updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update;
+
+userStatusRecently#e26f42f1 = UserStatus;
+userStatusLastWeek#7bf09fc = UserStatus;
+userStatusLastMonth#77ebc742 = UserStatus;
+
+updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
+
+inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
+
+privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
+
+inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
+inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
+inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
+inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
+inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
+inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
+
+privacyValueAllowContacts#fffe1bac = PrivacyRule;
+privacyValueAllowAll#65427b82 = PrivacyRule;
+privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
+privacyValueDisallowContacts#f888fa1a = PrivacyRule;
+privacyValueDisallowAll#8b73e763 = PrivacyRule;
+privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule;
+
+account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
+
+accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
+
+account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
+
+updateUserPhone#12b9417b user_id:int phone:string = Update;
+
+documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
+documentAttributeAnimated#11b58939 = DocumentAttribute;
+documentAttributeSticker#994c9882 alt:string = DocumentAttribute;
+documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
+documentAttributeAudio#51448e5 duration:int = DocumentAttribute;
+documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
+
+messages.stickersNotModified#f1749a22 = messages.Stickers;
+messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
+
+stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
+
+messages.allStickersNotModified#e86602c3 = messages.AllStickers;
+messages.allStickers#dcef3102 hash:string packs:Vector<StickerPack> documents:Vector<Document> = messages.AllStickers;
+
+disabledFeature#ae636f24 feature:string description:string = DisabledFeature;
+
+updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update;
+updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update;
+
+messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages;
+
+contactLinkUnknown#5f4f9247 = ContactLink;
+contactLinkNone#feedd3ad = ContactLink;
+contactLinkHasPhone#268f3f59 = ContactLink;
+contactLinkContact#d502c2d0 = ContactLink;
+
+updateWebPage#2cc36971 webpage:WebPage = Update;
+
+webPageEmpty#eb1477e8 id:long = WebPage;
+webPagePending#c586da1c id:long date:int = WebPage;
+webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage;
+
+messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia;
+
+authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
+
+account.authorizations#1250abde authorizations:Vector<Authorization> = account.Authorizations;
+
+account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password;
+account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password;
+
+account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings;
+
+account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings;
+
+auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery;
+
+inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia;
+
+messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia;
+
+receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage;
+
+chatInviteEmpty#69df3769 = ExportedChatInvite;
+chatInviteExported#fc2e05bc link:string = ExportedChatInvite;
+
+chatInviteAlready#5a686d7c chat:Chat = ChatInvite;
+chatInvite#ce917dcd title:string = ChatInvite;
+
+messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction;
+
+updateReadMessagesContents#68c13933 messages:Vector<int> pts:int pts_count:int = Update;
+
+---functions---
+
+invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
+
+invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
+
+auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
+auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
+auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
+auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
+auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
+auth.logOut#5717da40 = Bool;
+auth.resetAuthorizations#9fab0d1a = Bool;
+auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
+auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
+auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
+auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
+
+account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
+account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
+account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
+account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
+account.resetNotifySettings#db7e1747 = Bool;
+account.updateProfile#f0888d68 first_name:string last_name:string = User;
+account.updateStatus#6628562c offline:Bool = Bool;
+account.getWallPapers#c04cfac2 = Vector<WallPaper>;
+
+users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
+users.getFullUser#ca30a5b1 id:InputUser = UserFull;
+
+contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
+contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
+contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
+contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
+contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
+contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
+contacts.block#332b49fc id:InputUser = Bool;
+contacts.unblock#e54100bd id:InputUser = Bool;
+contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
+contacts.exportCard#84e53737 = Vector<int>;
+contacts.importCard#4fe196fe export_card:Vector<int> = User;
+
+messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
+messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
+messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
+messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
+messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
+messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
+messages.deleteMessages#a5f18925 id:Vector<int> = messages.AffectedMessages;
+messages.receivedMessages#5a954c0 max_id:int = Vector<ReceivedNotifyMessage>;
+messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
+messages.sendMessage#9add8f26 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long = messages.SentMessage;
+messages.sendMedia#2d7923b1 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long = Updates;
+messages.forwardMessages#55e1728d peer:InputPeer id:Vector<int> random_id:Vector<long> = Updates;
+messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
+messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
+messages.editChatTitle#dc452855 chat_id:int title:string = Updates;
+messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates;
+messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates;
+messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates;
+messages.createChat#9cb126e users:Vector<InputUser> title:string = Updates;
+
+updates.getState#edd4882a = updates.State;
+updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
+
+photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
+photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
+photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
+
+upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
+upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
+
+help.getConfig#c4f9186b = Config;
+help.getNearestDc#1fb33026 = NearestDc;
+help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
+help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
+help.getInviteText#a4a95186 lang_code:string = help.InviteText;
+
+photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
+
+messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates;
+messages.sendBroadcast#bf73f4da contacts:Vector<InputUser> random_id:Vector<long> message:string media:InputMedia = Updates;
+
+geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
+geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
+geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
+geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
+geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
+geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
+geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
+geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
+geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
+geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
+geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
+geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
+
+messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
+messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
+messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
+messages.discardEncryption#edd923c5 chat_id:int = Bool;
+messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
+messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
+messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
+messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
+
+upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
+
+initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
+
+help.getSupport#9cdf08cd = help.Support;
+
+auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
+
+messages.readMessageContents#36a73f77 id:Vector<int> = messages.AffectedMessages;
+
+account.checkUsername#2714d86c username:string = Bool;
+account.updateUsername#3e0bdd7c username:string = User;
+
+contacts.search#11f812d8 q:string limit:int = contacts.Found;
+
+account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
+account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
+account.deleteAccount#418d4e0b reason:string = Bool;
+account.getAccountTTL#8fc711d = AccountDaysTTL;
+account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
+
+invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
+
+contacts.resolveUsername#bf0131c username:string = User;
+
+account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode;
+account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
+
+messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
+messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;
+
+account.updateDeviceLocked#38df3532 period:int = Bool;
+
+messages.getWebPagePreview#25223e24 message:string = MessageMedia;
+
+account.getAuthorizations#e320c158 = account.Authorizations;
+account.resetAuthorization#df77f3bc hash:long = Bool;
+account.getPassword#548a30f5 = account.Password;
+account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings;
+account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool;
+
+auth.checkPassword#a63011e password_hash:bytes = auth.Authorization;
+auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery;
+auth.recoverPassword#4ea56e92 code:string = auth.Authorization;
+
+invokeWithoutUpdates#bf9459b7 {X:Type} query:!X = X;
+
+messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite;
+messages.checkChatInvite#3eadb1bb hash:string = ChatInvite;
+messages.importChatInvite#6c50051c hash:string = Updates;
diff --git a/libs/tgl/src/scheme30.tl b/libs/tgl/src/scheme30.tl
new file mode 100644
index 0000000000..d6c9b7cf87
--- /dev/null
+++ b/libs/tgl/src/scheme30.tl
@@ -0,0 +1,656 @@
+int ?= Int;
+long ?= Long;
+double ?= Double;
+string ?= String;
+
+bytes string = Bytes;
+
+int128 long long = Int128;
+int256 long long long long = Int256;
+
+boolFalse#bc799737 = Bool;
+boolTrue#997275b5 = Bool;
+
+vector#1cb5c415 {t:Type} # [ t ] = Vector t;
+
+error#c4b9f9bb code:int text:string = Error;
+
+null#56730bcc = Null;
+
+inputPeerEmpty#7f3b18ea = InputPeer;
+inputPeerSelf#7da07ec9 = InputPeer;
+inputPeerContact#1023dbe8 user_id:int = InputPeer;
+inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
+inputPeerChat#179be863 chat_id:int = InputPeer;
+
+inputUserEmpty#b98886cf = InputUser;
+inputUserSelf#f7c1b13f = InputUser;
+inputUserContact#86e94f65 user_id:int = InputUser;
+inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
+
+inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
+
+inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
+
+inputMediaEmpty#9664f57f = InputMedia;
+inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia;
+inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia;
+inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
+inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
+inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia;
+inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia;
+inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia;
+
+inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
+inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
+inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
+
+inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
+inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint;
+
+inputPhotoEmpty#1cd7bf0d = InputPhoto;
+inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
+
+inputVideoEmpty#5508ec75 = InputVideo;
+inputVideo#ee579652 id:long access_hash:long = InputVideo;
+
+inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
+inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
+
+inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
+inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
+
+inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
+
+peerUser#9db1bc6d user_id:int = Peer;
+peerChat#bad0e5bb chat_id:int = Peer;
+
+storage.fileUnknown#aa963b05 = storage.FileType;
+storage.fileJpeg#7efe0e = storage.FileType;
+storage.fileGif#cae1aadf = storage.FileType;
+storage.filePng#a4f63c0 = storage.FileType;
+storage.filePdf#ae1e508d = storage.FileType;
+storage.fileMp3#528a0677 = storage.FileType;
+storage.fileMov#4b09ebbc = storage.FileType;
+storage.filePartial#40bc6f52 = storage.FileType;
+storage.fileMp4#b3cea0e4 = storage.FileType;
+storage.fileWebp#1081464c = storage.FileType;
+
+fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
+fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
+
+userEmpty#200250ba id:int = User;
+userSelf#1c60e608 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus = User;
+userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
+userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User;
+
+userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
+userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
+
+userStatusEmpty#9d05049 = UserStatus;
+userStatusOnline#edb93949 expires:int = UserStatus;
+userStatusOffline#8c703f was_online:int = UserStatus;
+
+chatEmpty#9ba2d800 id:int = Chat;
+chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
+chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
+
+chatFullL27#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull;
+chatFull#cade0791 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite = ChatFull;
+
+chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
+
+chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
+chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
+
+chatPhotoEmpty#37c1011c = ChatPhoto;
+chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
+
+messageEmpty#83e5de54 id:int = Message;
+message#a7ab1991 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia = Message;
+messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
+
+messageMediaEmpty#3ded6320 = MessageMedia;
+messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia;
+messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia;
+messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
+messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
+messageMediaUnsupported#9f84f49e = MessageMedia;
+
+messageActionEmpty#b6aef7b0 = MessageAction;
+messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
+messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
+messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
+messageActionChatDeletePhoto#95e3fbef = MessageAction;
+messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
+messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
+
+dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
+
+photoEmpty#2331b22d id:long = Photo;
+photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+
+photoSizeEmpty#e17e23c type:string = PhotoSize;
+photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
+photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
+
+videoEmpty#c10658a8 id:long = Video;
+video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+
+geoPointEmpty#1117dd5f = GeoPoint;
+geoPoint#2049d70c longitude:double latitude:double = GeoPoint;
+
+auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone;
+
+auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+auth.authorization#f6b673a4 expires:int user:User = auth.Authorization;
+
+auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
+
+inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
+inputNotifyUsers#193b4417 = InputNotifyPeer;
+inputNotifyChats#4a95e84e = InputNotifyPeer;
+inputNotifyAll#a429b886 = InputNotifyPeer;
+
+inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
+inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
+
+inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
+
+peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
+peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
+
+peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
+peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
+
+wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
+
+userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull;
+
+contact#f911c994 user_id:int mutual:Bool = Contact;
+
+importedContact#d0028438 user_id:int client_id:long = ImportedContact;
+
+contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
+
+contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
+
+contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
+
+chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
+
+contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link;
+
+contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
+contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
+
+contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
+
+contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+
+contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
+
+messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+
+messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+
+messages.messageEmpty#3f4e0648 = messages.Message;
+
+messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage;
+
+messages.chats#64ff9fd5 chats:Vector<Chat> = messages.Chats;
+
+messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
+
+messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory;
+
+inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
+inputMessagesFilterPhotos#9609a51c = MessagesFilter;
+inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
+inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
+inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter;
+inputMessagesFilterDocument#9eddf188 = MessagesFilter;
+inputMessagesFilterAudio#cfc87522 = MessagesFilter;
+
+updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;
+updateMessageID#4e90bfd6 id:int random_id:long = Update;
+updateDeleteMessages#a20db0e5 messages:Vector<int> pts:int pts_count:int = Update;
+updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
+updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
+updateChatParticipants#7761198 participants:ChatParticipants = Update;
+updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
+updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update;
+updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
+updateContactRegistered#2575bbb9 user_id:int date:int = Update;
+updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update;
+updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
+
+updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
+
+updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
+updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
+updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
+updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+
+photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
+photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
+
+photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
+
+upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
+
+dcOptionL28#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
+dcOption#5d8c6cc flags:int id:int ip_address:string port:int = DcOption;
+
+config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector<DisabledFeature> = Config;
+
+nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
+
+help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
+help.noAppUpdate#c45a6536 = help.AppUpdate;
+
+help.inviteText#18cb9f78 message:string = help.InviteText;
+
+messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector<contacts.Link> seq:int = messages.SentMessage;
+
+inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
+
+inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer;
+
+geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
+
+geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
+geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
+geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
+
+geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
+
+geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
+
+geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+
+messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
+messageActionGeoChatCheckin#c7d53de = MessageAction;
+
+updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update;
+
+wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
+
+updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update;
+updateEncryptedChatTyping#1710f156 chat_id:int = Update;
+updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update;
+updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
+
+encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
+encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
+encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
+encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
+encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
+
+inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
+
+encryptedFileEmpty#c21f497e = EncryptedFile;
+encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
+
+inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
+inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
+inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
+
+inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
+
+encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
+encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
+
+messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
+messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
+
+messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
+messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
+
+inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
+
+inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
+
+updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
+updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
+updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
+
+inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
+inputMediaAudio#89938781 audio_id:InputAudio = InputMedia;
+inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
+inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
+inputMediaDocument#d184e841 document_id:InputDocument = InputMedia;
+
+messageMediaDocument#2fda2204 document:Document = MessageMedia;
+messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
+
+inputAudioEmpty#d95adc84 = InputAudio;
+inputAudio#77d440ff id:long access_hash:long = InputAudio;
+
+inputDocumentEmpty#72f0eaae = InputDocument;
+inputDocument#18798952 id:long access_hash:long = InputDocument;
+
+inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
+inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
+
+audioEmpty#586988d8 id:long = Audio;
+audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
+
+documentEmpty#36f8c871 id:long = Document;
+document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
+document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
+
+help.support#17c6b5f6 phone_number:string user:User = help.Support;
+
+notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
+notifyUsers#b4c83b4c = NotifyPeer;
+notifyChats#c007cec3 = NotifyPeer;
+notifyAll#74d07c60 = NotifyPeer;
+
+updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
+updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
+
+auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+sendMessageTypingAction#16bf744e = SendMessageAction;
+sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
+sendMessageRecordVideoAction#a187d66f = SendMessageAction;
+sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction;
+sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction;
+sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
+sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction;
+sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction;
+sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction;
+sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction;
+sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction;
+sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
+sendMessageChooseContactAction#628cbc6f = SendMessageAction;
+
+contactFound#ea879f95 user_id:int = ContactFound;
+
+contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
+
+updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update;
+
+userStatusRecently#e26f42f1 = UserStatus;
+userStatusLastWeek#7bf09fc = UserStatus;
+userStatusLastMonth#77ebc742 = UserStatus;
+
+updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
+
+inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
+
+privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
+
+inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
+inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
+inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
+inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
+inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
+inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
+
+privacyValueAllowContacts#fffe1bac = PrivacyRule;
+privacyValueAllowAll#65427b82 = PrivacyRule;
+privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
+privacyValueDisallowContacts#f888fa1a = PrivacyRule;
+privacyValueDisallowAll#8b73e763 = PrivacyRule;
+privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule;
+
+account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
+
+accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
+
+account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
+
+updateUserPhone#12b9417b user_id:int phone:string = Update;
+
+documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
+documentAttributeAnimated#11b58939 = DocumentAttribute;
+documentAttributeStickerL28#994c9882 alt:string = DocumentAttribute;
+documentAttributeSticker#3a556302 alt:string stickerset:InputStickerSet = DocumentAttribute;
+documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
+documentAttributeAudio#51448e5 duration:int = DocumentAttribute;
+documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
+
+messages.stickersNotModified#f1749a22 = messages.Stickers;
+messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
+
+stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
+
+messages.allStickersNotModified#e86602c3 = messages.AllStickers;
+messages.allStickers#5ce352ec hash:string packs:Vector<StickerPack> sets:Vector<StickerSet> documents:Vector<Document> = messages.AllStickers;
+
+disabledFeature#ae636f24 feature:string description:string = DisabledFeature;
+
+updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update;
+updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update;
+
+messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages;
+
+contactLinkUnknown#5f4f9247 = ContactLink;
+contactLinkNone#feedd3ad = ContactLink;
+contactLinkHasPhone#268f3f59 = ContactLink;
+contactLinkContact#d502c2d0 = ContactLink;
+
+updateWebPage#2cc36971 webpage:WebPage = Update;
+
+webPageEmpty#eb1477e8 id:long = WebPage;
+webPagePending#c586da1c id:long date:int = WebPage;
+webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage;
+
+messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia;
+
+authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
+
+account.authorizations#1250abde authorizations:Vector<Authorization> = account.Authorizations;
+
+account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password;
+account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password;
+
+account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings;
+
+account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings;
+
+auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery;
+
+inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia;
+
+messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia;
+
+receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage;
+
+chatInviteEmpty#69df3769 = ExportedChatInvite;
+chatInviteExported#fc2e05bc link:string = ExportedChatInvite;
+
+chatInviteAlready#5a686d7c chat:Chat = ChatInvite;
+chatInvite#ce917dcd title:string = ChatInvite;
+
+messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction;
+
+updateReadMessagesContents#68c13933 messages:Vector<int> pts:int pts_count:int = Update;
+
+inputStickerSetEmpty#ffb62b95 = InputStickerSet;
+inputStickerSetID#9de7a269 id:long access_hash:long = InputStickerSet;
+inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet;
+
+stickerSet#a7a43b17 id:long access_hash:long title:string short_name:string = StickerSet;
+
+messages.stickerSet#b60a24a6 set:StickerSet packs:Vector<StickerPack> documents:Vector<Document> = messages.StickerSet;
+
+---functions---
+
+invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
+
+invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
+
+auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
+auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
+auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
+auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
+auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
+auth.logOut#5717da40 = Bool;
+auth.resetAuthorizations#9fab0d1a = Bool;
+auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
+auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
+auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
+auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
+
+account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
+account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
+account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
+account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
+account.resetNotifySettings#db7e1747 = Bool;
+account.updateProfile#f0888d68 first_name:string last_name:string = User;
+account.updateStatus#6628562c offline:Bool = Bool;
+account.getWallPapers#c04cfac2 = Vector<WallPaper>;
+
+users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
+users.getFullUser#ca30a5b1 id:InputUser = UserFull;
+
+contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
+contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
+contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
+contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
+contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
+contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
+contacts.block#332b49fc id:InputUser = Bool;
+contacts.unblock#e54100bd id:InputUser = Bool;
+contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
+contacts.exportCard#84e53737 = Vector<int>;
+contacts.importCard#4fe196fe export_card:Vector<int> = User;
+
+messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
+messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
+messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
+messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
+messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
+messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
+messages.deleteMessages#a5f18925 id:Vector<int> = messages.AffectedMessages;
+messages.receivedMessages#5a954c0 max_id:int = Vector<ReceivedNotifyMessage>;
+messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
+messages.sendMessage#9add8f26 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long = messages.SentMessage;
+messages.sendMedia#2d7923b1 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long = Updates;
+messages.forwardMessages#55e1728d peer:InputPeer id:Vector<int> random_id:Vector<long> = Updates;
+messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
+messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
+messages.editChatTitle#dc452855 chat_id:int title:string = Updates;
+messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates;
+messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates;
+messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates;
+messages.createChat#9cb126e users:Vector<InputUser> title:string = Updates;
+
+updates.getState#edd4882a = updates.State;
+updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
+
+photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
+photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
+photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
+
+upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
+upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
+
+help.getConfig#c4f9186b = Config;
+help.getNearestDc#1fb33026 = NearestDc;
+help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
+help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
+help.getInviteText#a4a95186 lang_code:string = help.InviteText;
+
+photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
+
+messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates;
+messages.sendBroadcast#bf73f4da contacts:Vector<InputUser> random_id:Vector<long> message:string media:InputMedia = Updates;
+
+geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
+geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
+geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
+geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
+geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
+geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
+geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
+geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
+geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
+geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
+geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
+geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
+
+messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
+messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
+messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
+messages.discardEncryption#edd923c5 chat_id:int = Bool;
+messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
+messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
+messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
+messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
+
+upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
+
+initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
+
+help.getSupport#9cdf08cd = help.Support;
+
+auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
+
+messages.readMessageContents#36a73f77 id:Vector<int> = messages.AffectedMessages;
+
+account.checkUsername#2714d86c username:string = Bool;
+account.updateUsername#3e0bdd7c username:string = User;
+
+contacts.search#11f812d8 q:string limit:int = contacts.Found;
+
+account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
+account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
+account.deleteAccount#418d4e0b reason:string = Bool;
+account.getAccountTTL#8fc711d = AccountDaysTTL;
+account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
+
+invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
+
+contacts.resolveUsername#bf0131c username:string = User;
+
+account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode;
+account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
+
+messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
+messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;
+
+account.updateDeviceLocked#38df3532 period:int = Bool;
+
+auth.importBotAuthorization#67a3ff2c flags:int api_id:int api_hash:string bot_auth_token:string = auth.Authorization;
+
+messages.getWebPagePreview#25223e24 message:string = MessageMedia;
+
+account.getAuthorizations#e320c158 = account.Authorizations;
+account.resetAuthorization#df77f3bc hash:long = Bool;
+account.getPassword#548a30f5 = account.Password;
+account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings;
+account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool;
+
+auth.checkPassword#a63011e password_hash:bytes = auth.Authorization;
+auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery;
+auth.recoverPassword#4ea56e92 code:string = auth.Authorization;
+
+invokeWithoutUpdates#bf9459b7 {X:Type} query:!X = X;
+
+messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite;
+messages.checkChatInvite#3eadb1bb hash:string = ChatInvite;
+messages.importChatInvite#6c50051c hash:string = Updates;
+messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet;
+messages.installStickerSet#efbbfae9 stickerset:InputStickerSet = Bool;
+messages.uninstallStickerSet#f96e55de stickerset:InputStickerSet = Bool;
diff --git a/libs/tgl/src/scheme31.tl b/libs/tgl/src/scheme31.tl
new file mode 100644
index 0000000000..83a2084170
--- /dev/null
+++ b/libs/tgl/src/scheme31.tl
@@ -0,0 +1,668 @@
+int ?= Int;
+long ?= Long;
+double ?= Double;
+string ?= String;
+
+bytes string = Bytes;
+
+int128 long long = Int128;
+int256 long long long long = Int256;
+
+boolFalse#bc799737 = Bool;
+boolTrue#997275b5 = Bool;
+
+vector#1cb5c415 {t:Type} # [ t ] = Vector t;
+
+error#c4b9f9bb code:int text:string = Error;
+
+null#56730bcc = Null;
+
+inputPeerEmpty#7f3b18ea = InputPeer;
+inputPeerSelf#7da07ec9 = InputPeer;
+inputPeerContact#1023dbe8 user_id:int = InputPeer;
+inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer;
+inputPeerChat#179be863 chat_id:int = InputPeer;
+
+inputUserEmpty#b98886cf = InputUser;
+inputUserSelf#f7c1b13f = InputUser;
+inputUserContact#86e94f65 user_id:int = InputUser;
+inputUserForeign#655e74ff user_id:int access_hash:long = InputUser;
+
+inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
+
+inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;
+
+inputMediaEmpty#9664f57f = InputMedia;
+inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia;
+inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia;
+inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;
+inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia;
+inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia;
+inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia;
+inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia;
+
+inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
+inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto;
+inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto;
+
+inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
+inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint;
+
+inputPhotoEmpty#1cd7bf0d = InputPhoto;
+inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto;
+
+inputVideoEmpty#5508ec75 = InputVideo;
+inputVideo#ee579652 id:long access_hash:long = InputVideo;
+
+inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation;
+inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation;
+
+inputPhotoCropAuto#ade6b004 = InputPhotoCrop;
+inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop;
+
+inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent;
+
+peerUser#9db1bc6d user_id:int = Peer;
+peerChat#bad0e5bb chat_id:int = Peer;
+
+storage.fileUnknown#aa963b05 = storage.FileType;
+storage.fileJpeg#7efe0e = storage.FileType;
+storage.fileGif#cae1aadf = storage.FileType;
+storage.filePng#a4f63c0 = storage.FileType;
+storage.filePdf#ae1e508d = storage.FileType;
+storage.fileMp3#528a0677 = storage.FileType;
+storage.fileMov#4b09ebbc = storage.FileType;
+storage.filePartial#40bc6f52 = storage.FileType;
+storage.fileMp4#b3cea0e4 = storage.FileType;
+storage.fileWebp#1081464c = storage.FileType;
+
+fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
+fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
+
+userEmpty#200250ba id:int = User;
+
+userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
+userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
+
+userStatusEmpty#9d05049 = UserStatus;
+userStatusOnline#edb93949 expires:int = UserStatus;
+userStatusOffline#8c703f was_online:int = UserStatus;
+
+chatEmpty#9ba2d800 id:int = Chat;
+chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
+chatForbidden#fb0ccc41 id:int title:string date:int = Chat;
+
+chatFull#2e02a614 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> = ChatFull;
+
+
+chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
+
+chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants;
+chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector<ChatParticipant> version:int = ChatParticipants;
+
+chatPhotoEmpty#37c1011c = ChatPhoto;
+chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto;
+
+messageEmpty#83e5de54 id:int = Message;
+message#c3060325 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia reply_markup:flags.6?ReplyMarkup = Message;
+messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
+
+messageMediaEmpty#3ded6320 = MessageMedia;
+messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia;
+messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia;
+messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
+messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
+messageMediaUnsupported#9f84f49e = MessageMedia;
+
+messageActionEmpty#b6aef7b0 = MessageAction;
+messageActionChatCreate#a6638b9a title:string users:Vector<int> = MessageAction;
+messageActionChatEditTitle#b5a1ce5a title:string = MessageAction;
+messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;
+messageActionChatDeletePhoto#95e3fbef = MessageAction;
+messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction;
+messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction;
+
+dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
+
+photoEmpty#2331b22d id:long = Photo;
+photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector<PhotoSize> = Photo;
+
+photoSizeEmpty#e17e23c type:string = PhotoSize;
+photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
+photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
+
+videoEmpty#c10658a8 id:long = Video;
+video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+
+geoPointEmpty#1117dd5f = GeoPoint;
+geoPoint#2049d70c longitude:double latitude:double = GeoPoint;
+
+auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone;
+
+auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+auth.authorization#ff036af1 user:User = auth.Authorization;
+
+auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
+
+inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;
+inputNotifyUsers#193b4417 = InputNotifyPeer;
+inputNotifyChats#4a95e84e = InputNotifyPeer;
+inputNotifyAll#a429b886 = InputNotifyPeer;
+
+inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents;
+inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents;
+
+inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
+
+peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents;
+peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents;
+
+peerNotifySettingsEmpty#70a68512 = PeerNotifySettings;
+peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
+
+wallPaper#ccb03657 id:int title:string sizes:Vector<PhotoSize> color:int = WallPaper;
+
+userFull#5a89ac5b user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool bot_info:BotInfo = UserFull;
+
+contact#f911c994 user_id:int mutual:Bool = Contact;
+
+importedContact#d0028438 user_id:int client_id:long = ImportedContact;
+
+contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
+
+contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested;
+
+contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
+
+chatLocated#3631cf4c chat_id:int distance:int = ChatLocated;
+
+contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link;
+
+contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
+contacts.contacts#6f8b8cb2 contacts:Vector<Contact> users:Vector<User> = contacts.Contacts;
+
+contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
+
+contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked;
+
+contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested;
+
+messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;
+
+messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesSlice#b446ae3 count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+
+messages.messageEmpty#3f4e0648 = messages.Message;
+
+messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage;
+
+messages.chats#64ff9fd5 chats:Vector<Chat> = messages.Chats;
+
+messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
+
+messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory;
+
+inputMessagesFilterEmpty#57e2f66c = MessagesFilter;
+inputMessagesFilterPhotos#9609a51c = MessagesFilter;
+inputMessagesFilterVideo#9fc00e65 = MessagesFilter;
+inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;
+inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter;
+inputMessagesFilterDocument#9eddf188 = MessagesFilter;
+inputMessagesFilterAudio#cfc87522 = MessagesFilter;
+
+updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;
+updateMessageID#4e90bfd6 id:int random_id:long = Update;
+updateDeleteMessages#a20db0e5 messages:Vector<int> pts:int pts_count:int = Update;
+updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update;
+updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update;
+updateChatParticipants#7761198 participants:ChatParticipants = Update;
+updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
+updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update;
+updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
+updateContactRegistered#2575bbb9 user_id:int date:int = Update;
+updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update;
+updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update;
+
+updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
+
+updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
+updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
+updates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
+updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+
+photos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;
+photos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;
+
+photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
+
+upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
+
+dcOptionL28#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption;
+dcOption#5d8c6cc flags:int id:int ip_address:string port:int = DcOption;
+
+config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector<DisabledFeature> = Config;
+
+nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
+
+help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate;
+help.noAppUpdate#c45a6536 = help.AppUpdate;
+
+help.inviteText#18cb9f78 message:string = help.InviteText;
+
+messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector<contacts.Link> seq:int = messages.SentMessage;
+
+inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat;
+
+inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer;
+
+geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
+
+geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage;
+geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
+geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
+
+geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
+
+geochats.located#48feb267 results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
+
+geochats.messages#d1526db1 messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+geochats.messagesSlice#bc5863e8 count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+
+messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction;
+messageActionGeoChatCheckin#c7d53de = MessageAction;
+
+updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update;
+
+wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper;
+
+updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update;
+updateEncryptedChatTyping#1710f156 chat_id:int = Update;
+updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update;
+updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;
+
+encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;
+encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
+encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
+encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
+encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat;
+
+inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;
+
+encryptedFileEmpty#c21f497e = EncryptedFile;
+encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
+
+inputEncryptedFileEmpty#1837c364 = InputEncryptedFile;
+inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
+inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;
+
+inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;
+
+encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
+encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
+
+messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;
+messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;
+
+messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;
+messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;
+
+inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;
+
+inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;
+
+updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update;
+updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update;
+updateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;
+
+inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia;
+inputMediaAudio#89938781 audio_id:InputAudio = InputMedia;
+inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
+inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
+inputMediaDocument#d184e841 document_id:InputDocument = InputMedia;
+
+messageMediaDocument#2fda2204 document:Document = MessageMedia;
+messageMediaAudio#c6b68300 audio:Audio = MessageMedia;
+
+inputAudioEmpty#d95adc84 = InputAudio;
+inputAudio#77d440ff id:long access_hash:long = InputAudio;
+
+inputDocumentEmpty#72f0eaae = InputDocument;
+inputDocument#18798952 id:long access_hash:long = InputDocument;
+
+inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation;
+inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation;
+
+audioEmpty#586988d8 id:long = Audio;
+audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
+
+documentEmpty#36f8c871 id:long = Document;
+document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
+document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
+
+help.support#17c6b5f6 phone_number:string user:User = help.Support;
+
+notifyPeer#9fd40bd8 peer:Peer = NotifyPeer;
+notifyUsers#b4c83b4c = NotifyPeer;
+notifyChats#c007cec3 = NotifyPeer;
+notifyAll#74d07c60 = NotifyPeer;
+
+updateUserBlocked#80ece81a user_id:int blocked:Bool = Update;
+updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
+
+auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+
+sendMessageTypingAction#16bf744e = SendMessageAction;
+sendMessageCancelAction#fd5ec8f5 = SendMessageAction;
+sendMessageRecordVideoAction#a187d66f = SendMessageAction;
+sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction;
+sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction;
+sendMessageRecordAudioAction#d52f73f7 = SendMessageAction;
+sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction;
+sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction;
+sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction;
+sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction;
+sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction;
+sendMessageGeoLocationAction#176f8ba1 = SendMessageAction;
+sendMessageChooseContactAction#628cbc6f = SendMessageAction;
+
+contactFound#ea879f95 user_id:int = ContactFound;
+
+contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found;
+
+updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update;
+
+userStatusRecently#e26f42f1 = UserStatus;
+userStatusLastWeek#7bf09fc = UserStatus;
+userStatusLastMonth#77ebc742 = UserStatus;
+
+updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
+
+inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
+
+privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
+
+inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
+inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
+inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
+inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
+inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
+inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
+
+privacyValueAllowContacts#fffe1bac = PrivacyRule;
+privacyValueAllowAll#65427b82 = PrivacyRule;
+privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
+privacyValueDisallowContacts#f888fa1a = PrivacyRule;
+privacyValueDisallowAll#8b73e763 = PrivacyRule;
+privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule;
+
+account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
+
+accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
+
+account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
+
+updateUserPhone#12b9417b user_id:int phone:string = Update;
+
+documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
+documentAttributeAnimated#11b58939 = DocumentAttribute;
+documentAttributeStickerL28#994c9882 alt:string = DocumentAttribute;
+documentAttributeSticker#3a556302 alt:string stickerset:InputStickerSet = DocumentAttribute;
+documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
+documentAttributeAudio#51448e5 duration:int = DocumentAttribute;
+documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
+
+messages.stickersNotModified#f1749a22 = messages.Stickers;
+messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
+
+stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
+
+messages.allStickersNotModified#e86602c3 = messages.AllStickers;
+messages.allStickers#5ce352ec hash:string packs:Vector<StickerPack> sets:Vector<StickerSet> documents:Vector<Document> = messages.AllStickers;
+
+disabledFeature#ae636f24 feature:string description:string = DisabledFeature;
+
+updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update;
+updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update;
+
+messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages;
+
+contactLinkUnknown#5f4f9247 = ContactLink;
+contactLinkNone#feedd3ad = ContactLink;
+contactLinkHasPhone#268f3f59 = ContactLink;
+contactLinkContact#d502c2d0 = ContactLink;
+
+updateWebPage#2cc36971 webpage:WebPage = Update;
+
+webPageEmpty#eb1477e8 id:long = WebPage;
+webPagePending#c586da1c id:long date:int = WebPage;
+webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage;
+
+messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia;
+
+authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
+
+account.authorizations#1250abde authorizations:Vector<Authorization> = account.Authorizations;
+
+account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password;
+account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password;
+
+account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings;
+
+account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings;
+
+auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery;
+
+inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia;
+
+messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia;
+
+receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage;
+
+chatInviteEmpty#69df3769 = ExportedChatInvite;
+chatInviteExported#fc2e05bc link:string = ExportedChatInvite;
+
+chatInviteAlready#5a686d7c chat:Chat = ChatInvite;
+chatInvite#ce917dcd title:string = ChatInvite;
+
+messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction;
+
+updateReadMessagesContents#68c13933 messages:Vector<int> pts:int pts_count:int = Update;
+
+inputStickerSetEmpty#ffb62b95 = InputStickerSet;
+inputStickerSetID#9de7a269 id:long access_hash:long = InputStickerSet;
+inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet;
+
+stickerSet#a7a43b17 id:long access_hash:long title:string short_name:string = StickerSet;
+
+messages.stickerSet#b60a24a6 set:StickerSet packs:Vector<StickerPack> documents:Vector<Document> = messages.StickerSet;
+
+user#22e49072 flags:# id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int = User;
+
+botCommand#c27ac8c7 command:string description:string = BotCommand;
+botCommandOld#b79d22ab command:string params:string description:string = BotCommand;
+
+botInfoEmpty#bb2e37ce = BotInfo;
+botInfo#9cf585d user_id:int version:int share_text:string description:string commands:Vector<BotCommand> = BotInfo;
+
+keyboardButton#a2fa4880 text:string = KeyboardButton;
+
+keyboardButtonRow#77608b83 buttons:Vector<KeyboardButton> = KeyboardButtonRow;
+
+replyKeyboardHide#a03e5b85 flags:int = ReplyMarkup;
+replyKeyboardForceReply#f4108aa0 flags:int = ReplyMarkup;
+replyKeyboardMarkup#3502758c flags:int rows:Vector<KeyboardButtonRow> = ReplyMarkup;
+
+---functions---
+
+invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
+
+invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
+
+auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone;
+auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
+auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool;
+auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
+auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
+auth.logOut#5717da40 = Bool;
+auth.resetAuthorizations#9fab0d1a = Bool;
+auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool;
+auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
+auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization;
+auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;
+
+account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
+account.unregisterDevice#65c55b40 token_type:int token:string = Bool;
+account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
+account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
+account.resetNotifySettings#db7e1747 = Bool;
+account.updateProfile#f0888d68 first_name:string last_name:string = User;
+account.updateStatus#6628562c offline:Bool = Bool;
+account.getWallPapers#c04cfac2 = Vector<WallPaper>;
+
+users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
+users.getFullUser#ca30a5b1 id:InputUser = UserFull;
+
+contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
+contacts.getContacts#22c6aa08 hash:string = contacts.Contacts;
+contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
+contacts.getSuggested#cd773428 limit:int = contacts.Suggested;
+contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
+contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
+contacts.block#332b49fc id:InputUser = Bool;
+contacts.unblock#e54100bd id:InputUser = Bool;
+contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
+contacts.exportCard#84e53737 = Vector<int>;
+contacts.importCard#4fe196fe export_card:Vector<int> = User;
+
+messages.getMessages#4222fa74 id:Vector<int> = messages.Messages;
+messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs;
+messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages;
+messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages;
+messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory;
+messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory;
+messages.deleteMessages#a5f18925 id:Vector<int> = messages.AffectedMessages;
+messages.receivedMessages#5a954c0 max_id:int = Vector<ReceivedNotifyMessage>;
+messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
+messages.sendMessage#fc55e6b5 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup = messages.SentMessage;
+messages.sendMedia#c8f16791 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long reply_markup:flags.2?ReplyMarkup = Updates;
+messages.forwardMessages#55e1728d peer:InputPeer id:Vector<int> random_id:Vector<long> = Updates;
+messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
+messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull;
+messages.editChatTitle#dc452855 chat_id:int title:string = Updates;
+messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates;
+messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates;
+messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates;
+messages.createChat#9cb126e users:Vector<InputUser> title:string = Updates;
+
+updates.getState#edd4882a = updates.State;
+updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
+
+photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto;
+photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo;
+photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
+
+upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
+upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
+
+help.getConfig#c4f9186b = Config;
+help.getNearestDc#1fb33026 = NearestDc;
+help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate;
+help.saveAppLog#6f02f748 events:Vector<InputAppEvent> = Bool;
+help.getInviteText#a4a95186 lang_code:string = help.InviteText;
+
+photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
+
+messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates;
+messages.sendBroadcast#bf73f4da contacts:Vector<InputUser> random_id:Vector<long> message:string media:InputMedia = Updates;
+
+geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
+geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages;
+geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage;
+geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull;
+geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage;
+geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
+geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
+geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
+geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool;
+geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
+geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
+geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
+
+messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;
+messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
+messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
+messages.discardEncryption#edd923c5 chat_id:int = Bool;
+messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool;
+messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool;
+messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
+messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.receivedQueue#55a5bb66 max_qts:int = Vector<long>;
+
+upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
+
+initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
+
+help.getSupport#9cdf08cd = help.Support;
+
+auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool;
+
+messages.readMessageContents#36a73f77 id:Vector<int> = messages.AffectedMessages;
+
+account.checkUsername#2714d86c username:string = Bool;
+account.updateUsername#3e0bdd7c username:string = User;
+
+contacts.search#11f812d8 q:string limit:int = contacts.Found;
+
+account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
+account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
+account.deleteAccount#418d4e0b reason:string = Bool;
+account.getAccountTTL#8fc711d = AccountDaysTTL;
+account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
+
+invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
+
+contacts.resolveUsername#bf0131c username:string = User;
+
+account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode;
+account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
+
+messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
+messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;
+
+account.updateDeviceLocked#38df3532 period:int = Bool;
+
+auth.importBotAuthorization#67a3ff2c flags:int api_id:int api_hash:string bot_auth_token:string = auth.Authorization;
+
+messages.getWebPagePreview#25223e24 message:string = MessageMedia;
+
+account.getAuthorizations#e320c158 = account.Authorizations;
+account.resetAuthorization#df77f3bc hash:long = Bool;
+account.getPassword#548a30f5 = account.Password;
+account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings;
+account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool;
+
+auth.checkPassword#a63011e password_hash:bytes = auth.Authorization;
+auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery;
+auth.recoverPassword#4ea56e92 code:string = auth.Authorization;
+
+invokeWithoutUpdates#bf9459b7 {X:Type} query:!X = X;
+
+messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite;
+messages.checkChatInvite#3eadb1bb hash:string = ChatInvite;
+messages.importChatInvite#6c50051c hash:string = Updates;
+messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet;
+messages.installStickerSet#efbbfae9 stickerset:InputStickerSet = Bool;
+messages.uninstallStickerSet#f96e55de stickerset:InputStickerSet = Bool;
+messages.startBot#1b3e0ffc bot:InputUser chat_id:int random_id:long start_param:string = Updates;
diff --git a/libs/tgl/src/structures.c b/libs/tgl/src/structures.c
new file mode 100644
index 0000000000..a680e4c415
--- /dev/null
+++ b/libs/tgl/src/structures.c
@@ -0,0 +1,2311 @@
+/*
+ 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>
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#include "tgl-structures.h"
+#include "mtproto-common.h"
+//#include "telegram.h"
+#include "tree.h"
+#include <openssl/aes.h>
+#include <openssl/bn.h>
+#include <openssl/sha.h>
+#include "queries.h"
+#include "tgl-binlog.h"
+#include "tgl-methods-in.h"
+#include "updates.h"
+#include "mtproto-client.h"
+
+#include "tgl.h"
+#include "auto.h"
+#include "auto/auto-types.h"
+#include "auto/auto-skip.h"
+#include "auto/auto-fetch-ds.h"
+#include "auto/auto-free-ds.h"
+
+#define sha1 SHA1
+#if defined(WIN32) || defined(_WIN32)
+#define bzero(b,len) (memset((b), '\0', (len)) )
+#endif
+
+struct random2local {
+ long long random_id;
+ int local_id;
+};
+
+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))
+
+static int random_id_cmp (struct random2local *L, struct random2local *R) {
+ if (L->random_id < R->random_id) { return -1; }
+ if (L->random_id > R->random_id) { return 1; }
+ return 0;
+}
+
+static int photo_id_cmp (struct tgl_photo *L, struct tgl_photo *R) {
+ if (L->id < R->id) { return -1; }
+ if (L->id > R->id) { return 1; }
+ return 0;
+}
+
+static int document_id_cmp (struct tgl_document *L, struct tgl_document *R) {
+ if (L->id < R->id) { return -1; }
+ if (L->id > R->id) { return 1; }
+ return 0;
+}
+
+static int webpage_id_cmp (struct tgl_webpage *L, struct tgl_webpage *R) {
+ if (L->id < R->id) { return -1; }
+ if (L->id > R->id) { return 1; }
+ return 0;
+}
+
+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)
+DEFINE_TREE(random_id,struct random2local *, random_id_cmp,0)
+DEFINE_TREE(photo,struct tgl_photo *,photo_id_cmp,0)
+DEFINE_TREE(document,struct tgl_document *,document_id_cmp,0)
+DEFINE_TREE(webpage,struct tgl_webpage *,webpage_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_new (struct tl_ds_send_message_action *DS_SMA) {
+ if (!DS_SMA) { return 0; }
+ switch (DS_SMA->magic) {
+ 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;
+ }
+}
+
+enum tgl_typing_status tglf_fetch_typing (void) {
+ struct tl_ds_send_message_action *DS_SMA = fetch_ds_type_send_message_action (TYPE_TO_PARAM (send_message_action));
+ enum tgl_typing_status res = tglf_fetch_typing_new (DS_SMA);
+ free_ds_type_send_message_action (DS_SMA, TYPE_TO_PARAM (send_message_action));
+ return res;
+}
+
+/* {{{ Fetch */
+
+int tglf_fetch_file_location_new (struct tgl_state *TLS, struct tgl_file_location *loc, struct tl_ds_file_location *DS_FL) {
+ if (!DS_FL) { return 0; }
+ loc->dc = DS_LVAL (DS_FL->dc_id);
+ loc->volume = DS_LVAL (DS_FL->volume_id);
+ loc->local_id = DS_LVAL (DS_FL->local_id);
+ loc->secret = DS_LVAL (DS_FL->secret);
+ return 0;
+}
+
+int tglf_fetch_user_status_new (struct tgl_state *TLS, struct tgl_user_status *S, struct tgl_user *U, struct tl_ds_user_status *DS_US) {
+ if (!DS_US) { return 0; }
+ switch (DS_US->magic) {
+ 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:
+ {
+ if (S->online != 1) {
+ S->when = DS_LVAL (DS_US->expires);
+ if (S->online) {
+ tgl_insert_status_update (TLS, U);
+ }
+ tgl_insert_status_expire (TLS, U);
+ S->online = 1;
+ } else {
+ if (DS_LVAL (DS_US->expires) != S->when) {
+ S->when = DS_LVAL (DS_US->expires);
+ tgl_remove_status_expire (TLS, U);
+ tgl_insert_status_expire (TLS, U);
+ }
+ }
+ }
+ break;
+ case CODE_user_status_offline:
+ if (S->online != -1) {
+ if (S->online) {
+ tgl_insert_status_update (TLS, U);
+ }
+ if (S->online == 1) {
+ tgl_remove_status_expire (TLS, U);
+ }
+ }
+ S->online = -1;
+ S->when = DS_LVAL (DS_US->was_online);
+ break;
+ case CODE_user_status_recently:
+ if (S->online != -2) {
+ if (S->online) {
+ 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) {
+ if (S->online) {
+ 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) {
+ if (S->online) {
+ tgl_insert_status_update (TLS, U);
+ }
+ if (S->online == 1) {
+ tgl_remove_status_expire (TLS, U);
+ }
+ }
+ S->online = -4;
+ break;
+ default:
+ assert (0);
+ }
+ return 0;
+}
+
+int tglf_fetch_user_new (struct tgl_state *TLS, struct tgl_user *U, struct tl_ds_user *DS_U) {
+ if (!DS_U) { return 0; }
+ U->id = TGL_MK_USER (DS_LVAL (DS_U->id));
+ if (DS_U->magic == CODE_user_empty) {
+ return 0;
+ }
+
+ int flags = U->flags & 0xffff;
+
+ if (DS_LVAL (DS_U->flags) & (1 << 10)) {
+ bl_do_set_our_id (TLS, tgl_get_peer_id (U->id));
+ flags |= TGLUF_SELF;
+ }
+
+ if (DS_LVAL (DS_U->flags) & (1 << 11)) {
+ flags |= TGLUF_CONTACT;
+ }
+
+ if (DS_LVAL (DS_U->flags) & (1 << 12)) {
+ flags |= TGLUF_MUTUAL_CONTACT;
+ }
+
+
+ if (DS_LVAL (DS_U->flags) & (1 << 14)) {
+ flags |= TGLUF_BOT;
+ }
+ /*
+ if (DS_LVAL (DS_U->flags) & (1 << 15)) {
+ flags |= TGLUF_BOT_FULL_ACCESS;
+ }
+
+ if (DS_LVAL (DS_U->flags) & (1 << 16)) {
+ flags |= TGLUF_BOT_NO_GROUPS;
+ }*/
+
+ if (!(flags & TGLUF_CREATED)) {
+ flags |= TGLUF_CREATE | TGLUF_CREATED;
+ }
+
+ bl_do_user_new (TLS, tgl_get_peer_id (U->id),
+ DS_U->access_hash,
+ DS_STR (DS_U->first_name),
+ DS_STR (DS_U->last_name),
+ DS_STR (DS_U->phone),
+ DS_STR (DS_U->username),
+ NULL,
+ NULL, 0, NULL, 0,
+ DS_U->photo,
+ NULL, NULL,
+ NULL,
+ flags
+ );
+
+ if (DS_U->status) {
+ assert (tglf_fetch_user_status_new (TLS, &U->status, U, DS_U->status) >= 0);
+ }
+
+ if (DS_LVAL (DS_U->flags) & (1 << 13)) {
+ if (!(U->flags & TGLUF_DELETED)) {
+ bl_do_user_delete (TLS, U);
+ }
+ }
+
+ return 0;
+}
+
+void tglf_fetch_user_full_new (struct tgl_state *TLS, struct tgl_user *U, struct tl_ds_user_full *DS_UF) {
+ if (!DS_UF) { return; }
+
+ tglf_fetch_user_new (TLS, U, DS_UF->user);
+
+ int flags = U->flags & 0xffff;
+
+ if (DS_BVAL (DS_UF->blocked)) {
+ flags |= TGLUF_BLOCKED;
+ } else {
+ flags &= ~TGLUF_BLOCKED;
+ }
+
+ bl_do_user_new (TLS, tgl_get_peer_id (U->id),
+ NULL,
+ NULL, 0,
+ NULL, 0,
+ NULL, 0,
+ NULL, 0,
+ DS_UF->profile_photo,
+ //DS_STR (DS_UF->real_first_name), DS_STR (DS_UF->real_last_name),
+ NULL, 0, NULL, 0,
+ NULL,
+ NULL, NULL,
+ DS_UF->bot_info,
+ flags
+ );
+}
+
+void str_to_256 (unsigned char *dst, char *src, int src_len) {
+ if (src_len >= 256) {
+ memcpy (dst, src + src_len - 256, 256);
+ } else {
+ bzero (dst, 256 - src_len);
+ memcpy (dst + 256 - src_len, src, src_len);
+ }
+}
+
+void str_to_32 (unsigned char *dst, char *src, int src_len) {
+ if (src_len >= 32) {
+ memcpy (dst, src + src_len - 32, 32);
+ } else {
+ bzero (dst, 32 - src_len);
+ memcpy (dst + 32 - src_len, src, src_len);
+ }
+}
+
+void tglf_fetch_encrypted_chat_new (struct tgl_state *TLS, struct tgl_secret_chat *U, struct tl_ds_encrypted_chat *DS_EC) {
+ if (!DS_EC) { return; }
+ U->id = TGL_MK_ENCR_CHAT (DS_LVAL (DS_EC->id));
+ if (DS_EC->magic == CODE_encrypted_chat_empty) {
+ return;
+ }
+ int new = !(U->flags & TGLPF_CREATED);
+
+ if (DS_EC->magic == 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 unsigned char g_key[256];
+ if (new) {
+ if (DS_EC->magic != CODE_encrypted_chat_requested) {
+ vlogprintf (E_WARNING, "Unknown chat. May be we forgot something...\n");
+ return;
+ }
+
+ str_to_256 (g_key, DS_STR (DS_EC->g_a));
+
+ int user_id = DS_LVAL (DS_EC->participant_id) + DS_LVAL (DS_EC->admin_id) - TLS->our_id;
+ int r = sc_request;
+ bl_do_encr_chat_new (TLS, tgl_get_peer_id (U->id),
+ DS_EC->access_hash,
+ DS_EC->date,
+ DS_EC->admin_id,
+ &user_id,
+ NULL,
+ (void *)g_key,
+ NULL,
+ &r,
+ NULL, NULL, NULL, NULL, NULL,
+ NULL,
+ TGLECF_CREATE | TGLECF_CREATED
+ );
+ } else {
+ if (DS_EC->magic == CODE_encrypted_chat_waiting) {
+ int r = sc_waiting;
+ bl_do_encr_chat_new (TLS, tgl_get_peer_id (U->id),
+ DS_EC->access_hash,
+ DS_EC->date,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ &r,
+ NULL, NULL, NULL, NULL, NULL,
+ NULL,
+ TGL_FLAGS_UNCHANGED
+ );
+ return; // We needed only access hash from here
+ }
+
+ str_to_256 (g_key, DS_STR (DS_EC->g_a_or_b));
+
+ //write_secret_chat_file ();
+ int r = sc_ok;
+ bl_do_encr_chat_new (TLS, tgl_get_peer_id (U->id),
+ DS_EC->access_hash,
+ DS_EC->date,
+ NULL,
+ NULL,
+ NULL,
+ g_key,
+ NULL,
+ &r,
+ NULL, NULL, NULL, NULL, NULL,
+ DS_EC->key_fingerprint,
+ TGL_FLAGS_UNCHANGED
+ );
+ }
+}
+
+void tglf_fetch_chat_new (struct tgl_state *TLS, struct tgl_chat *C, struct tl_ds_chat *DS_C) {
+ if (!DS_C) { return; }
+
+ C->id = TGL_MK_CHAT (DS_LVAL (DS_C->id));
+ if (DS_C->magic == CODE_chat_empty) {
+ return;
+ }
+
+ int flags = C->flags & 0xffff;
+ if (!(flags & TGLCF_CREATED)) {
+ flags |= TGLCF_CREATE | TGLCF_CREATED;
+ }
+
+ bl_do_chat_new (TLS, tgl_get_peer_id (C->id),
+ DS_STR (DS_C->title),
+ DS_C->participants_count,
+ DS_C->date,
+ NULL,
+ NULL,
+ DS_C->photo,
+ NULL,
+ NULL,
+ NULL, NULL,
+ flags
+ );
+}
+
+void tglf_fetch_chat_full_new (struct tgl_state *TLS, struct tgl_chat *C, struct tl_ds_messages_chat_full *DS_MCF) {
+ if (!DS_MCF) { return; }
+ struct tl_ds_chat_full *DS_CF = DS_MCF->full_chat;
+
+ C->id = TGL_MK_CHAT (DS_LVAL (DS_CF->id));
+
+ bl_do_chat_new (TLS, tgl_get_peer_id (C->id),
+ NULL, 0,
+ NULL,
+ NULL,
+ DS_CF->participants->version,
+ (struct tl_ds_vector *)DS_CF->participants->participants,
+ NULL,
+ DS_CF->chat_photo,
+ DS_CF->participants->admin_id,
+ NULL, NULL,
+ C->flags & 0xffff
+ );
+
+ if (DS_MCF->users) {
+ int i;
+ for (i = 0; i < DS_LVAL (DS_MCF->users->cnt); i++) {
+ tglf_fetch_alloc_user_new (TLS, DS_MCF->users->data[i]);
+ }
+ }
+
+ if (DS_MCF->chats) {
+ int i;
+ for (i = 0; i < DS_LVAL (DS_MCF->chats->cnt); i++) {
+ tglf_fetch_alloc_chat_new (TLS, DS_MCF->chats->data[i]);
+ }
+ }
+
+ if (DS_CF->bot_info) {
+ int n = DS_LVAL (DS_CF->bot_info->cnt);
+ int i;
+ for (i = 0; i < n; i++) {
+ struct tl_ds_bot_info *DS_BI = DS_CF->bot_info->data[i];
+
+ tgl_peer_t *P = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_BI->user_id)));
+ if (P && (P->flags & TGLCF_CREATED)) {
+ bl_do_user_new (TLS, tgl_get_peer_id (P->id),
+ NULL,
+ NULL, 0,
+ NULL, 0,
+ NULL, 0,
+ NULL, 0,
+ NULL,
+ NULL, 0, NULL, 0,
+ NULL,
+ NULL, NULL,
+ DS_BI,
+ TGL_FLAGS_UNCHANGED
+ );
+ }
+ }
+ }
+}
+
+void tglf_fetch_photo_size_new (struct tgl_state *TLS, struct tgl_photo_size *S, struct tl_ds_photo_size *DS_PS) {
+ memset (S, 0, sizeof (*S));
+
+ S->type = DS_STR_DUP (DS_PS->type);
+ S->w = DS_LVAL (DS_PS->w);
+ S->h = DS_LVAL (DS_PS->h);
+ S->size = DS_LVAL (DS_PS->size);
+ if (DS_PS->bytes) {
+ S->size = DS_PS->bytes->len;
+ }
+
+ tglf_fetch_file_location_new (TLS, &S->loc, DS_PS->location);
+}
+
+void tglf_fetch_geo_new (struct tgl_state *TLS, struct tgl_geo *G, struct tl_ds_geo_point *DS_GP) {
+ G->longitude = DS_LVAL (DS_GP->longitude);
+ G->latitude = DS_LVAL (DS_GP->latitude);
+}
+
+struct tgl_photo *tglf_fetch_alloc_photo_new (struct tgl_state *TLS, struct tl_ds_photo *DS_P) {
+ if (!DS_P) { return NULL; }
+ if (DS_P->magic == CODE_photo_empty) { return NULL; }
+
+ struct tgl_photo *P = tgl_photo_get (TLS, DS_LVAL (DS_P->id));
+ if (P) {
+ P->refcnt ++;
+ return P;
+ }
+
+
+ P = talloc0 (sizeof (*P));
+ P->id = DS_LVAL (DS_P->id);
+ P->refcnt = 1;
+
+ tgl_photo_insert (TLS, P);
+
+ P->access_hash = DS_LVAL (DS_P->access_hash);
+ P->user_id = DS_LVAL (DS_P->user_id);
+ P->date = DS_LVAL (DS_P->date);
+ P->caption = NULL;//DS_STR_DUP (DS_P->caption);
+ tglf_fetch_geo_new (TLS, &P->geo, DS_P->geo);
+
+ P->sizes_num = DS_LVAL (DS_P->sizes->cnt);
+ 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_new (TLS, &P->sizes[i], DS_P->sizes->data[i]);
+ }
+
+ return P;
+}
+
+struct tgl_document *tglf_fetch_alloc_video_new (struct tgl_state *TLS, struct tl_ds_video *DS_V) {
+ if (!DS_V) { return NULL; }
+
+ if (DS_V->magic == CODE_video_empty) { return NULL; }
+
+ struct tgl_document *D = tgl_document_get (TLS, DS_LVAL (DS_V->id));
+ if (D) {
+ D->refcnt ++;
+ return D;
+ }
+
+
+ D = talloc0 (sizeof (*D));
+ D->id = DS_LVAL (DS_V->id);
+ D->refcnt = 1;
+
+ tgl_document_insert (TLS, D);
+
+ D->flags = TGLDF_VIDEO;
+
+ D->access_hash = DS_LVAL (DS_V->access_hash);
+ D->user_id = DS_LVAL (DS_V->user_id);
+ D->date = DS_LVAL (DS_V->date);
+ D->caption = NULL;//DS_STR_DUP (DS_V->caption);
+ D->duration = DS_LVAL (DS_V->duration);
+ D->mime_type = tstrdup ("video/");//DS_STR_DUP (DS_V->mime_type);
+ D->size = DS_LVAL (DS_V->size);
+ tglf_fetch_photo_size_new (TLS, &D->thumb, DS_V->thumb);
+
+ D->dc_id = DS_LVAL (DS_V->dc_id);
+ D->w = DS_LVAL (DS_V->w);
+ D->h = DS_LVAL (DS_V->h);
+ return D;
+}
+
+struct tgl_document *tglf_fetch_alloc_audio_new (struct tgl_state *TLS, struct tl_ds_audio *DS_A) {
+ if (!DS_A) { return NULL; }
+
+ if (DS_A->magic == CODE_audio_empty) { return NULL; }
+
+ struct tgl_document *D = tgl_document_get (TLS, DS_LVAL (DS_A->id));
+ if (D) {
+ D->refcnt ++;
+ return D;
+ }
+
+
+ D = talloc0 (sizeof (*D));
+ D->id = DS_LVAL (DS_A->id);
+ D->refcnt = 1;
+
+ tgl_document_insert (TLS, D);
+
+ D->flags = TGLDF_AUDIO;
+
+ D->access_hash = DS_LVAL (DS_A->access_hash);
+ D->user_id = DS_LVAL (DS_A->user_id);
+ D->date = DS_LVAL (DS_A->date);
+ D->duration = DS_LVAL (DS_A->duration);
+ D->mime_type = DS_STR_DUP (DS_A->mime_type);
+ D->size = DS_LVAL (DS_A->size);
+ D->dc_id = DS_LVAL (DS_A->dc_id);
+
+ return D;
+}
+
+void tglf_fetch_document_attribute_new (struct tgl_state *TLS, struct tgl_document *D, struct tl_ds_document_attribute *DS_DA) {
+ switch (DS_DA->magic) {
+ case CODE_document_attribute_image_size:
+ D->flags |= TGLDF_IMAGE;
+ D->w = DS_LVAL (DS_DA->w);
+ D->h = DS_LVAL (DS_DA->h);
+ return;
+ case CODE_document_attribute_animated:
+ D->flags |= TGLDF_ANIMATED;
+ return;
+ case CODE_document_attribute_sticker:
+ case CODE_document_attribute_sticker_l28:
+ D->flags |= TGLDF_STICKER;
+ return;
+ case CODE_document_attribute_video:
+ D->flags |= TGLDF_VIDEO;
+ D->duration = DS_LVAL (DS_DA->duration);
+ D->w = DS_LVAL (DS_DA->w);
+ D->h = DS_LVAL (DS_DA->h);
+ return;
+ case CODE_document_attribute_audio:
+ D->flags |= TGLDF_AUDIO;
+ D->duration = DS_LVAL (DS_DA->duration);
+ return;
+ case CODE_document_attribute_filename:
+ D->caption = DS_STR_DUP (DS_DA->file_name);
+ return;
+ default:
+ assert (0);
+ }
+}
+
+struct tgl_document *tglf_fetch_alloc_document_new (struct tgl_state *TLS, struct tl_ds_document *DS_D) {
+ if (!DS_D) { return NULL; }
+
+ if (DS_D->magic == CODE_document_empty) { return NULL; }
+
+ struct tgl_document *D = tgl_document_get (TLS, DS_LVAL (DS_D->id));
+ if (D) {
+ D->refcnt ++;
+ return D;
+ }
+
+
+ D = talloc0 (sizeof (*D));
+ D->id = DS_LVAL (DS_D->id);
+ D->refcnt = 1;
+
+ tgl_document_insert (TLS, D);
+
+ D->access_hash = DS_LVAL (DS_D->access_hash);
+ D->user_id = DS_LVAL (DS_D->user_id);
+ D->date = DS_LVAL (DS_D->date);
+ D->caption = DS_STR_DUP (DS_D->file_name);
+ D->mime_type = DS_STR_DUP (DS_D->mime_type);
+ D->size = DS_LVAL (DS_D->size);
+ D->dc_id = DS_LVAL (DS_D->dc_id);
+
+ tglf_fetch_photo_size_new (TLS, &D->thumb, DS_D->thumb);
+
+ if (DS_D->attributes) {
+ int i;
+ for (i = 0; i < DS_LVAL (DS_D->attributes->cnt); i++) {
+ tglf_fetch_document_attribute_new (TLS, D, DS_D->attributes->data[i]);
+ }
+ }
+ return D;
+}
+
+struct tgl_webpage *tglf_fetch_alloc_webpage_new (struct tgl_state *TLS, struct tl_ds_web_page *DS_W) {
+ if (!DS_W) { return NULL; }
+
+ struct tgl_webpage *W = tgl_webpage_get (TLS, DS_LVAL (DS_W->id));
+ if (W) {
+ W->refcnt ++;
+ } else {
+ W = talloc0 (sizeof (*W));
+ W->id = DS_LVAL (DS_W->id);
+ W->refcnt = 1;
+
+ tgl_webpage_insert (TLS, W);
+ }
+
+ if (!W->url) {
+ W->url = DS_STR_DUP (DS_W->url);
+ }
+
+ if (!W->display_url) {
+ W->display_url = DS_STR_DUP (DS_W->display_url);
+ }
+
+ if (!W->type) {
+ W->type = DS_STR_DUP (DS_W->type);
+ }
+
+ if (!W->site_name) {
+ W->site_name = DS_STR_DUP (DS_W->site_name);
+ }
+
+ if (!W->title) {
+ W->title = DS_STR_DUP (DS_W->title);
+ }
+
+ if (!W->photo) {
+ W->photo = tglf_fetch_alloc_photo_new (TLS, DS_W->photo);
+ }
+
+ if (!W->description) {
+ W->description = DS_STR_DUP (DS_W->description);
+ }
+
+ if (!W->embed_url) {
+ W->embed_url = DS_STR_DUP (DS_W->embed_url);
+ }
+
+ if (!W->embed_type) {
+ W->embed_type = DS_STR_DUP (DS_W->embed_type);
+ }
+
+ W->embed_width = DS_LVAL (DS_W->embed_width);
+
+ W->embed_height = DS_LVAL (DS_W->embed_height);
+
+ W->duration = DS_LVAL (DS_W->duration);
+
+ if (!W->author) {
+ W->author = DS_STR_DUP (DS_W->author);
+ }
+ return W;
+}
+
+void tglf_fetch_message_action_new (struct tgl_state *TLS, struct tgl_message_action *M, struct tl_ds_message_action *DS_MA) {
+ if (!DS_MA) { return; }
+ memset (M, 0, sizeof (*M));
+
+ switch (DS_MA->magic) {
+ 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;
+ assert (0);
+ }
+ 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 = DS_STR_DUP (DS_MA->title);
+
+ M->user_num = DS_LVAL (DS_MA->users->cnt);
+ M->users = talloc (M->user_num * 4);
+ int i;
+ for (i = 0; i < M->user_num; i++) {
+ M->users[i] = DS_LVAL (DS_MA->users->data[i]);
+ }
+ }
+ break;
+ case CODE_message_action_chat_edit_title:
+ M->type = tgl_message_action_chat_edit_title;
+ M->new_title = DS_STR_DUP (DS_MA->title);
+ break;
+ case CODE_message_action_chat_edit_photo:
+ M->type = tgl_message_action_chat_edit_photo;
+ M->photo = tglf_fetch_alloc_photo_new (TLS, DS_MA->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 = DS_LVAL (DS_MA->user_id);
+ break;
+ case CODE_message_action_chat_delete_user:
+ M->type = tgl_message_action_chat_delete_user;
+ M->user = DS_LVAL (DS_MA->user_id);
+ break;
+ case CODE_message_action_chat_joined_by_link:
+ M->type = tgl_message_action_chat_add_user_by_link;
+ M->user = DS_LVAL (DS_MA->inviter_id);
+ break;
+ default:
+ assert (0);
+ }
+}
+
+void tglf_fetch_message_short_new (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_updates *DS_U) {
+ tgl_peer_t *P = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_U->user_id)));
+ if (!P || !(P->flags & TGLPF_CREATED)) {
+ tgl_do_get_difference (TLS, 0, 0, 0);
+ return;
+ }
+
+ int flags = M->flags & 0xffff;
+
+ if (M->flags & TGLMF_PENDING) {
+ M->flags ^= TGLMF_PENDING;
+ }
+
+ if (!(flags & TGLMF_CREATED)) {
+ flags |= TGLMF_CREATE | TGLMF_CREATED;
+ }
+
+ int f = DS_LVAL (DS_U->flags);
+
+ if (f & 1) {
+ flags |= TGLMF_UNREAD;
+ }
+ if (f & 2) {
+ flags |= TGLMF_OUT;
+ }
+ if (f & 16) {
+ flags |= TGLMF_MENTION;
+ }
+
+ struct tl_ds_message_media A;
+ A.magic = CODE_message_media_empty;
+ int type = TGL_PEER_USER;
+
+ bl_do_create_message_new (TLS, DS_LVAL (DS_U->id),
+ (f & 2) ? &TLS->our_id : DS_U->user_id,
+ &type, (f & 2) ? DS_U->user_id : &TLS->our_id,
+ DS_U->fwd_from_id,
+ DS_U->fwd_date,
+ DS_U->date,
+ DS_STR (DS_U->message),
+ &A,
+ NULL,
+ DS_U->reply_to_msg_id,
+ NULL,
+ flags
+ );
+}
+
+void tglf_fetch_message_short_chat_new (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_updates *DS_U) {
+ tgl_peer_t *P = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_U->from_id)));
+ if (!P || !(P->flags & TGLPF_CREATED)) {
+ tgl_do_get_difference (TLS, 0, 0, 0);
+ return;
+ }
+ P = tgl_peer_get (TLS, TGL_MK_CHAT (DS_LVAL (DS_U->chat_id)));
+ if (!P || !(P->flags & TGLPF_CREATED)) {
+ tgl_do_get_difference (TLS, 0, 0, 0);
+ return;
+ }
+
+ int flags = M->flags & 0xffff;
+
+ if (M->flags & TGLMF_PENDING) {
+ M->flags ^= TGLMF_PENDING;
+ }
+
+ if (!(flags & TGLMF_CREATED)) {
+ flags |= TGLMF_CREATE | TGLMF_CREATED;
+ }
+
+ int f = DS_LVAL (DS_U->flags);
+
+ if (f & 1) {
+ flags |= TGLMF_UNREAD;
+ }
+ if (f & 2) {
+ flags |= TGLMF_OUT;
+ }
+ if (f & 16) {
+ flags |= TGLMF_MENTION;
+ }
+
+ struct tl_ds_message_media A;
+ A.magic = CODE_message_media_empty;
+
+ int type = TGL_PEER_CHAT;
+ bl_do_create_message_new (TLS, DS_LVAL (DS_U->id),
+ DS_U->from_id,
+ &type, DS_U->chat_id,
+ DS_U->fwd_from_id,
+ DS_U->fwd_date,
+ DS_U->date,
+ DS_STR (DS_U->message),
+ &A,
+ NULL,
+ DS_U->reply_to_msg_id,
+ NULL,
+ flags
+ );
+}
+
+
+void tglf_fetch_message_media_new (struct tgl_state *TLS, struct tgl_message_media *M, struct tl_ds_message_media *DS_MM) {
+ if (!DS_MM) { return; }
+ memset (M, 0, sizeof (*M));
+ switch (DS_MM->magic) {
+ case CODE_message_media_empty:
+ M->type = tgl_message_media_none;
+ break;
+ case CODE_message_media_photo:
+ case CODE_message_media_photo_l27:
+ M->type = tgl_message_media_photo;
+ M->photo = tglf_fetch_alloc_photo_new (TLS, DS_MM->photo);
+ M->caption = DS_STR_DUP (DS_MM->caption);
+ break;
+ case CODE_message_media_video:
+ case CODE_message_media_video_l27:
+ M->type = tgl_message_media_video;
+ M->document = tglf_fetch_alloc_video_new (TLS, DS_MM->video);
+ M->caption = DS_STR_DUP (DS_MM->caption);
+ break;
+ case CODE_message_media_audio:
+ M->type = tgl_message_media_audio;
+ M->document = tglf_fetch_alloc_audio_new (TLS, DS_MM->audio);
+ break;
+ case CODE_message_media_document:
+ M->type = tgl_message_media_document;
+ M->document = tglf_fetch_alloc_document_new (TLS, DS_MM->document);
+ break;
+ case CODE_message_media_geo:
+ M->type = tgl_message_media_geo;
+ tglf_fetch_geo_new (TLS, &M->geo, DS_MM->geo);
+ break;
+ case CODE_message_media_contact:
+ M->type = tgl_message_media_contact;
+ M->phone = DS_STR_DUP (DS_MM->phone_number);
+ M->first_name = DS_STR_DUP (DS_MM->first_name);
+ M->last_name = DS_STR_DUP (DS_MM->last_name);
+ M->user_id = DS_LVAL (DS_MM->user_id);
+ break;
+ //case CODE_message_media_unsupported:
+ //case CODE_message_media_unsupported_l22:
+ // M->type = tgl_message_media_unsupported;
+ // break;
+ case CODE_message_media_web_page:
+ M->type = tgl_message_media_webpage;
+ M->webpage = tglf_fetch_alloc_webpage_new (TLS, DS_MM->webpage);
+ break;
+ case CODE_message_media_venue:
+ M->type = tgl_message_media_venue;
+ tglf_fetch_geo_new (TLS, &M->venue.geo, DS_MM->geo);
+ M->venue.title = DS_STR_DUP (DS_MM->title);
+ M->venue.address = DS_STR_DUP (DS_MM->address);
+ M->venue.provider = DS_STR_DUP (DS_MM->provider);
+ M->venue.venue_id = DS_STR_DUP (DS_MM->venue_id);
+ break;
+ default:
+ assert (0);
+ }
+}
+
+void tglf_fetch_message_media_encrypted_new (struct tgl_state *TLS, struct tgl_message_media *M, struct tl_ds_decrypted_message_media *DS_DMM) {
+ if (!DS_DMM) { return; }
+
+ memset (M, 0, sizeof (*M));
+ switch (DS_DMM->magic) {
+ 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:
+ case CODE_decrypted_message_media_video:
+ case CODE_decrypted_message_media_video_l12:
+ case CODE_decrypted_message_media_document:
+ case CODE_decrypted_message_media_audio:
+ //M->type = CODE_decrypted_message_media_video;
+ M->type = tgl_message_media_document_encr;
+
+ M->encr_document = talloc0 (sizeof (*M->encr_document));
+
+ switch (DS_DMM->magic) {
+ case CODE_decrypted_message_media_photo:
+ M->encr_document->flags = TGLDF_IMAGE;
+ break;
+ case CODE_decrypted_message_media_video:
+ case CODE_decrypted_message_media_video_l12:
+ M->encr_document->flags = TGLDF_VIDEO;
+ break;
+ case CODE_decrypted_message_media_document:
+ //M->encr_document->flags = TGLDF_DOCUMENT;
+ break;
+ case CODE_decrypted_message_media_audio:
+ M->encr_document->flags = TGLDF_AUDIO;
+ break;
+ }
+
+ M->encr_document->w = DS_LVAL (DS_DMM->w);
+ M->encr_document->h = DS_LVAL (DS_DMM->h);
+ M->encr_document->size = DS_LVAL (DS_DMM->size);
+ M->encr_document->duration = DS_LVAL (DS_DMM->duration);
+ M->encr_document->mime_type = DS_STR_DUP (DS_DMM->mime_type);
+
+ M->encr_document->key = talloc (32);
+ str_to_32 (M->encr_document->key, DS_STR (DS_DMM->key));
+ M->encr_document->iv = talloc (32);
+ str_to_32 (M->encr_document->iv, DS_STR (DS_DMM->iv));
+ break;
+ case CODE_decrypted_message_media_geo_point:
+ M->type = tgl_message_media_geo;
+ M->geo.latitude = DS_LVAL (DS_DMM->latitude);
+ M->geo.longitude = DS_LVAL (DS_DMM->longitude);
+ break;
+ case CODE_decrypted_message_media_contact:
+ M->type = tgl_message_media_contact;
+ M->phone = DS_STR_DUP (DS_DMM->phone_number);
+ M->first_name = DS_STR_DUP (DS_DMM->first_name);
+ M->last_name = DS_STR_DUP (DS_DMM->last_name);
+ M->user_id = DS_LVAL (DS_DMM->user_id);
+ break;
+ default:
+ assert (0);
+ }
+}
+
+void tglf_fetch_message_action_encrypted_new (struct tgl_state *TLS, struct tgl_message_action *M, struct tl_ds_decrypted_message_action *DS_DMA) {
+ if (!DS_DMA) { return; }
+
+ switch (DS_DMA->magic) {
+ case CODE_decrypted_message_action_set_message_t_t_l:
+ M->type = tgl_message_action_set_message_ttl;
+ M->ttl = DS_LVAL (DS_DMA->ttl_seconds);
+ break;
+ case CODE_decrypted_message_action_read_messages:
+ M->type = tgl_message_action_read_messages;
+ {
+ M->read_cnt = DS_LVAL (DS_DMA->random_ids->cnt);
+
+ int i;
+ for (i = 0; i < M->read_cnt; i++) {
+ struct tgl_message *N = tgl_message_get (TLS, DS_LVAL (DS_DMA->random_ids->data[i]));
+ if (N) {
+ N->flags &= ~TGLMF_UNREAD;
+ }
+ }
+ }
+ break;
+ case CODE_decrypted_message_action_delete_messages:
+ M->type = tgl_message_action_delete_messages;
+ break;
+ case CODE_decrypted_message_action_screenshot_messages:
+ M->type = tgl_message_action_screenshot_messages;
+ {
+ M->screenshot_cnt = DS_LVAL (DS_DMA->random_ids->cnt);
+ }
+ break;
+ case CODE_decrypted_message_action_notify_layer:
+ M->type = tgl_message_action_notify_layer;
+ M->layer = DS_LVAL (DS_DMA->layer);
+ 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_new (DS_DMA->action);
+ break;
+ case CODE_decrypted_message_action_resend:
+ M->type = tgl_message_action_resend;
+ M->start_seq_no = DS_LVAL (DS_DMA->start_seq_no);
+ M->end_seq_no = DS_LVAL (DS_DMA->end_seq_no);
+ 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 = DS_LVAL (DS_DMA->exchange_id);
+ M->g_a = talloc (256);
+ str_to_256 (M->g_a, DS_STR (DS_DMA->g_a));
+ break;
+ case CODE_decrypted_message_action_accept_key:
+ M->type = tgl_message_action_accept_key;
+
+ M->exchange_id = DS_LVAL (DS_DMA->exchange_id);
+ M->g_a = talloc (256);
+ str_to_256 (M->g_a, DS_STR (DS_DMA->g_b));
+ M->key_fingerprint = DS_LVAL (DS_DMA->key_fingerprint);
+ break;
+ case CODE_decrypted_message_action_commit_key:
+ M->type = tgl_message_action_commit_key;
+
+ M->exchange_id = DS_LVAL (DS_DMA->exchange_id);
+ M->key_fingerprint = DS_LVAL (DS_DMA->key_fingerprint);
+ break;
+ case CODE_decrypted_message_action_abort_key:
+ M->type = tgl_message_action_abort_key;
+
+ M->exchange_id = DS_LVAL (DS_DMA->exchange_id);
+ break;
+ default:
+ assert (0);
+ }
+}
+
+tgl_peer_id_t tglf_fetch_peer_id_new (struct tgl_state *TLS, struct tl_ds_peer *DS_P) {
+ if (DS_P->magic == CODE_peer_user) {
+ return TGL_MK_USER (DS_LVAL (DS_P->user_id));
+ } else {
+ return TGL_MK_CHAT (DS_LVAL (DS_P->chat_id));
+ }
+}
+
+void tglf_fetch_message_new (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_message *DS_M) {
+ if (!DS_M || DS_M->magic == CODE_message_empty) { return; }
+
+ assert (M->id == DS_LVAL (DS_M->id));
+
+ tgl_peer_id_t to_id = tglf_fetch_peer_id_new (TLS, DS_M->to_id);
+ {
+ tgl_peer_t *P = tgl_peer_get (TLS, to_id);
+ if (!P || !(P->flags & TGLPF_CREATED)) {
+ tgl_do_get_difference (TLS, 0, 0, 0);
+ return;
+ }
+ P = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_M->from_id)));
+ if (!P || !(P->flags & TGLPF_CREATED)) {
+ tgl_do_get_difference (TLS, 0, 0, 0);
+ return;
+ }
+ }
+
+ int new = !(M->flags & TGLMF_CREATED);
+
+ if (new) {
+ int peer_id = tgl_get_peer_id (to_id);
+ int peer_type = tgl_get_peer_type (to_id);
+
+ int flags = 0;
+ if (DS_LVAL (DS_M->flags) & 1) {
+ flags |= TGLMF_UNREAD;
+ }
+ if (DS_LVAL (DS_M->flags) & 2) {
+ flags |= TGLMF_OUT;
+ }
+ if (DS_LVAL (DS_M->flags) & 16) {
+ flags |= TGLMF_MENTION;
+ }
+
+ bl_do_create_message_new (TLS, DS_LVAL (DS_M->id),
+ DS_M->from_id,
+ &peer_type, &peer_id,
+ DS_M->fwd_from_id, DS_M->fwd_date,
+ DS_M->date,
+ DS_STR (DS_M->message),
+ DS_M->media,
+ DS_M->action,
+ DS_M->reply_to_msg_id,
+ DS_M->reply_markup,
+ flags | TGLMF_CREATE | TGLMF_CREATED
+ );
+ }
+}
+
+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_new (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_encrypted_message *DS_EM) {
+ if (!DS_EM) { return; }
+
+ int new = !(M->flags & TGLMF_CREATED);
+ if (!new) {
+ return;
+ }
+
+ tgl_peer_t *P = tgl_peer_get (TLS, TGL_MK_ENCR_CHAT (DS_LVAL (DS_EM->chat_id)));
+ if (!P || P->encr_chat.state != sc_ok) {
+ vlogprintf (E_WARNING, "Encrypted message to unknown chat. Dropping\n");
+ return;
+ }
+
+ decr_ptr = (void *)DS_EM->bytes->data;
+ decr_end = decr_ptr + (DS_EM->bytes->len / 4);
+
+ 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);
+ return;
+ }
+
+ decr_ptr += 2;
+
+ if (decrypt_encrypted_message (&P->encr_chat) < 0) {
+ vlogprintf (E_WARNING, "can not decrypt message\n");
+ return;
+ }
+
+ int *save_in_ptr = in_ptr;
+ int *save_in_end = in_end;
+
+ in_ptr = decr_ptr;
+ int ll = *in_ptr;
+ in_end = in_ptr + ll / 4 + 1;
+ assert (fetch_int () == ll);
+
+ if (skip_type_decrypted_message_layer (TYPE_TO_PARAM (decrypted_message_layer)) < 0 || in_ptr != in_end) {
+ vlogprintf (E_WARNING, "can not fetch message\n");
+ in_ptr = save_in_ptr;
+ in_end = save_in_end;
+ return;
+ }
+
+ in_ptr = decr_ptr;
+ assert (fetch_int () == ll);
+
+ struct tl_ds_decrypted_message_layer *DS_DML = fetch_ds_type_decrypted_message_layer (TYPE_TO_PARAM (decrypted_message_layer));
+ assert (DS_DML);
+
+ in_ptr = save_in_ptr;
+ in_end = save_in_end;
+
+ //bl_do_encr_chat_set_layer (TLS, (void *)P, DS_LVAL (DS_DML->layer));
+ bl_do_encr_chat_new (TLS, tgl_get_peer_id (P->id),
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, DS_DML->layer, NULL, NULL, NULL, NULL,
+ TGL_FLAGS_UNCHANGED
+ );
+
+ int in_seq_no = DS_LVAL (DS_DML->out_seq_no);
+ int out_seq_no = DS_LVAL (DS_DML->in_seq_no);
+
+ 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);
+ free_ds_type_decrypted_message_layer (DS_DML, TYPE_TO_PARAM(decrypted_message_layer));
+ return;
+ }
+
+ 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");
+ free_ds_type_decrypted_message_layer (DS_DML, TYPE_TO_PARAM(decrypted_message_layer));
+ return;
+ }
+ 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);
+ free_ds_type_decrypted_message_layer (DS_DML, TYPE_TO_PARAM(decrypted_message_layer));
+ return;
+ }
+ 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);
+ free_ds_type_decrypted_message_layer (DS_DML, TYPE_TO_PARAM(decrypted_message_layer));
+ return;
+ }
+
+ struct tl_ds_decrypted_message *DS_DM = DS_DML->message;
+ if (M->id != DS_LVAL (DS_DM->random_id)) {
+ vlogprintf (E_ERROR, "Incorrect message: id = %"_PRINTF_INT64_"d, new_id = %"_PRINTF_INT64_"d\n", M->id, DS_LVAL (DS_DM->random_id));
+ free_ds_type_decrypted_message_layer (DS_DML, TYPE_TO_PARAM(decrypted_message_layer));
+ return;
+ }
+
+ int peer_type = TGL_PEER_ENCR_CHAT;
+ int peer_id = tgl_get_peer_id (P->id);
+
+ bl_do_create_message_encr_new (TLS, M->id, &P->encr_chat.user_id, &peer_type, &peer_id, DS_EM->date, DS_STR (DS_DM->message), DS_DM->media, DS_DM->action, DS_EM->file, TGLMF_CREATE | TGLMF_CREATED | TGLMF_ENCRYPTED);
+
+ 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);
+ in_seq_no = in_seq_no / 2 + 1;
+ out_seq_no = out_seq_no / 2;
+ bl_do_encr_chat_new (TLS, tgl_get_peer_id (P->id),
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, &in_seq_no, &out_seq_no, NULL, NULL,
+ TGL_FLAGS_UNCHANGED
+ );
+ assert (P->encr_chat.in_seq_no == in_seq_no);
+ }
+
+ free_ds_type_decrypted_message_layer (DS_DML, TYPE_TO_PARAM(decrypted_message_layer));
+}
+
+void tglf_fetch_encrypted_message_file_new (struct tgl_state *TLS, struct tgl_message_media *M, struct tl_ds_encrypted_file *DS_EF) {
+ if (DS_EF->magic == CODE_encrypted_file_empty) {
+ assert (M->type != tgl_message_media_document_encr);
+ } else {
+ assert (M->type == tgl_message_media_document_encr);
+ assert (M->encr_document);
+
+ M->encr_document->id = DS_LVAL (DS_EF->id);
+ M->encr_document->access_hash = DS_LVAL (DS_EF->access_hash);
+ if (!M->encr_document->size) {
+ M->encr_document->size = DS_LVAL (DS_EF->size);
+ }
+ M->encr_document->dc_id = DS_LVAL (DS_EF->dc_id);
+ M->encr_document->key_fingerprint = DS_LVAL (DS_EF->key_fingerprint);
+ }
+}
+
+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_new (struct tgl_state *TLS, struct tl_ds_user *DS_U) {
+ tgl_peer_t *U = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_U->id)));
+ if (!U) {
+ TLS->users_allocated ++;
+ U = talloc0 (sizeof (*U));
+ U->id = TGL_MK_USER (DS_LVAL (DS_U->id));
+ TLS->peer_tree = tree_insert_peer (TLS->peer_tree, U, lrand48 ());
+ increase_peer_size (TLS);
+ TLS->Peers[TLS->peer_num ++] = U;
+ }
+ tglf_fetch_user_new (TLS, &U->user, DS_U);
+ return &U->user;
+}
+
+struct tgl_secret_chat *tglf_fetch_alloc_encrypted_chat_new (struct tgl_state *TLS, struct tl_ds_encrypted_chat *DS_EC) {
+ tgl_peer_t *U = tgl_peer_get (TLS, TGL_MK_ENCR_CHAT (DS_LVAL (DS_EC->id)));
+ if (!U) {
+ U = talloc0 (sizeof (*U));
+ U->id = TGL_MK_ENCR_CHAT (DS_LVAL (DS_EC->id));
+ 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_new (TLS, &U->encr_chat, DS_EC);
+ return &U->encr_chat;
+}
+
+struct tgl_user *tglf_fetch_alloc_user_full_new (struct tgl_state *TLS, struct tl_ds_user_full *DS_U) {
+ tgl_peer_t *U = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_U->user->id)));
+ if (U) {
+ tglf_fetch_user_full_new (TLS, &U->user, DS_U);
+ return &U->user;
+ } else {
+ TLS->users_allocated ++;
+ U = talloc0 (sizeof (*U));
+ U->id = TGL_MK_USER (DS_LVAL (DS_U->user->id));
+ TLS->peer_tree = tree_insert_peer (TLS->peer_tree, U, lrand48 ());
+ tglf_fetch_user_full_new (TLS, &U->user, DS_U);
+ increase_peer_size (TLS);
+ TLS->Peers[TLS->peer_num ++] = U;
+ return &U->user;
+ }
+}
+
+struct tgl_message *tglf_fetch_alloc_message_new (struct tgl_state *TLS, struct tl_ds_message *DS_M) {
+ struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_M->id));
+
+ if (!M) {
+ M = tglm_message_alloc (TLS, DS_LVAL (DS_M->id));
+ }
+ tglf_fetch_message_new (TLS, M, DS_M);
+ return M;
+}
+
+struct tgl_message *tglf_fetch_alloc_encrypted_message_new (struct tgl_state *TLS, struct tl_ds_encrypted_message *DS_EM) {
+ struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_EM->random_id));
+
+ if (!M) {
+ M = talloc0 (sizeof (*M));
+ M->id = DS_LVAL (DS_EM->random_id);
+ tglm_message_insert_tree (TLS, M);
+ TLS->messages_allocated ++;
+ assert (tgl_message_get (TLS, M->id) == M);
+ }
+ tglf_fetch_encrypted_message_new (TLS, M, DS_EM);
+
+ if (M->flags & TGLMF_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_new (TLS, tgl_get_peer_id (E->id),
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, &M->action.layer, NULL, NULL, NULL, NULL,
+ TGL_FLAGS_UNCHANGED
+ );
+ }
+ if (M->action.type == tgl_message_action_set_message_ttl) {
+ //bl_do_encr_chat_set_ttl (TLS, E, M->action.ttl);
+ bl_do_encr_chat_new (TLS, tgl_get_peer_id (E->id),
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ &M->action.ttl, NULL, NULL, NULL, NULL, NULL,
+ TGL_FLAGS_UNCHANGED
+ );
+ }
+ }
+ return M;
+}
+
+struct tgl_message *tglf_fetch_alloc_message_short_new (struct tgl_state *TLS, struct tl_ds_updates *DS_U) {
+ int id = DS_LVAL (DS_U->id);
+ struct tgl_message *M = tgl_message_get (TLS, id);
+
+ if (!M) {
+ M = talloc0 (sizeof (*M));
+ M->id = id;
+ tglm_message_insert_tree (TLS, M);
+ TLS->messages_allocated ++;
+ }
+ tglf_fetch_message_short_new (TLS, M, DS_U);
+ return M;
+}
+
+struct tgl_message *tglf_fetch_alloc_message_short_chat_new (struct tgl_state *TLS, struct tl_ds_updates *DS_U) {
+ int id = DS_LVAL (DS_U->id);
+ struct tgl_message *M = tgl_message_get (TLS, id);
+
+ if (!M) {
+ M = talloc0 (sizeof (*M));
+ M->id = id;
+ tglm_message_insert_tree (TLS, M);
+ TLS->messages_allocated ++;
+ }
+ tglf_fetch_message_short_chat_new (TLS, M, DS_U);
+ return M;
+}
+
+struct tgl_chat *tglf_fetch_alloc_chat_new (struct tgl_state *TLS, struct tl_ds_chat *DS_C) {
+ tgl_peer_t *U = tgl_peer_get (TLS, TGL_MK_CHAT (DS_LVAL (DS_C->id)));
+ if (!U) {
+ TLS->chats_allocated ++;
+ U = talloc0 (sizeof (*U));
+ U->id = TGL_MK_CHAT (DS_LVAL (DS_C->id));
+ TLS->peer_tree = tree_insert_peer (TLS->peer_tree, U, lrand48 ());
+ increase_peer_size (TLS);
+ TLS->Peers[TLS->peer_num ++] = U;
+ }
+ tglf_fetch_chat_new (TLS, &U->chat, DS_C);
+ return &U->chat;
+}
+
+struct tgl_chat *tglf_fetch_alloc_chat_full_new (struct tgl_state *TLS, struct tl_ds_messages_chat_full *DS_MCF) {
+ tgl_peer_t *U = tgl_peer_get (TLS, TGL_MK_CHAT (DS_LVAL (DS_MCF->full_chat->id)));
+ if (U) {
+ tglf_fetch_chat_full_new (TLS, &U->chat, DS_MCF);
+ return &U->chat;
+ } else {
+ TLS->chats_allocated ++;
+ U = talloc0 (sizeof (*U));
+ U->id = TGL_MK_CHAT (DS_LVAL (DS_MCF->full_chat->id));
+ TLS->peer_tree = tree_insert_peer (TLS->peer_tree, U, lrand48 ());
+ tglf_fetch_chat_full_new (TLS, &U->chat, DS_MCF);
+ increase_peer_size (TLS);
+ TLS->Peers[TLS->peer_num ++] = U;
+ return &U->chat;
+ }
+}
+
+struct tgl_bot_info *tglf_fetch_alloc_bot_info (struct tgl_state *TLS, struct tl_ds_bot_info *DS_BI) {
+ if (!DS_BI || DS_BI->magic == CODE_bot_info_empty) { return NULL; }
+ struct tgl_bot_info *B = talloc (sizeof (*B));
+ B->version = DS_LVAL (DS_BI->version);
+ B->share_text = DS_STR_DUP (DS_BI->share_text);
+ B->description = DS_STR_DUP (DS_BI->description);
+
+ B->commands_num = DS_LVAL (DS_BI->commands->cnt);
+ B->commands = talloc (sizeof (struct tgl_bot_command) * B->commands_num);
+ int i;
+ for (i = 0; i < B->commands_num; i++) {
+ struct tl_ds_bot_command *BC = DS_BI->commands->data[i];
+ B->commands[i].command = DS_STR_DUP (BC->command);
+ B->commands[i].description = DS_STR_DUP (BC->description);
+ }
+ return B;
+}
+
+struct tgl_message_reply_markup *tglf_fetch_alloc_reply_markup (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_reply_markup *DS_RM) {
+ if (!DS_RM) { return NULL; }
+
+ struct tgl_message_reply_markup *R = talloc0 (sizeof (*R));
+ R->flags = DS_LVAL (DS_RM->flags);
+ R->refcnt = 1;
+
+ R->rows = DS_RM->rows ? DS_LVAL (DS_RM->rows->cnt) : 0;
+
+ int total = 0;
+ R->row_start = talloc ((R->rows + 1) * 4);
+ R->row_start[0] = 0;
+ int i;
+ for (i = 0; i < R->rows; i++) {
+ struct tl_ds_keyboard_button_row *DS_K = DS_RM->rows->data[i];
+ total += DS_LVAL (DS_K->buttons->cnt);
+ R->row_start[i + 1] = total;
+ }
+ R->buttons = talloc (sizeof (void *) * total);
+ int r = 0;
+ for (i = 0; i < R->rows; i++) {
+ struct tl_ds_keyboard_button_row *DS_K = DS_RM->rows->data[i];
+ int j;
+ for (j = 0; j < DS_LVAL (DS_K->buttons->cnt); j++) {
+ struct tl_ds_keyboard_button *DS_KB = DS_K->buttons->data[j];
+ R->buttons[r ++] = DS_STR_DUP (DS_KB->text);
+ }
+ }
+ assert (r == total);
+ return R;
+}
+/* }}} */
+
+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);
+}
+
+/* {{{ Free */
+
+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->refcnt) {
+ assert (P->refcnt > 0);
+ return;
+ }
+ 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);
+ }
+ TLS->photo_tree = tree_delete_photo (TLS->photo_tree, P);
+ tfree (P, sizeof (*P));
+}
+
+void tgls_free_document (struct tgl_state *TLS, struct tgl_document *D) {
+ if (--D->refcnt) {
+ assert (D->refcnt);
+ return;
+ }
+ if (D->mime_type) { tfree_str (D->mime_type);}
+ if (D->caption) {tfree_str (D->caption);}
+ tgls_free_photo_size (TLS, &D->thumb);
+
+ TLS->document_tree = tree_delete_document (TLS->document_tree, D);
+ tfree (D, sizeof (*D));
+}
+
+void tgls_free_webpage (struct tgl_state *TLS, struct tgl_webpage *W) {
+ if (--W->refcnt) {
+ assert (W->refcnt);
+ return;
+ }
+ if (W->url) { tfree_str (W->url); }
+ if (W->display_url) { tfree_str (W->display_url); }
+ if (W->title) { tfree_str (W->title); }
+ if (W->site_name) { tfree_str (W->site_name); }
+ if (W->type) { tfree_str (W->type); }
+ if (W->description) { tfree_str (W->description); }
+ if (W->photo) { tgls_free_photo (TLS, W->photo); }
+ if (W->embed_url) { tfree_str (W->embed_url); }
+ if (W->embed_type) { tfree_str (W->embed_type); }
+ if (W->author) { tfree_str (W->author); }
+
+ TLS->webpage_tree = tree_delete_webpage (TLS->webpage_tree, W);
+ tfree (W, sizeof (*W));
+}
+
+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_photo:
+ tgls_free_photo (TLS, M->photo);
+ M->photo = NULL;
+ 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:
+ case tgl_message_media_video:
+ case tgl_message_media_audio:
+ tgls_free_document (TLS, M->document);
+ return;
+ case tgl_message_media_unsupported:
+ tfree (M->data, M->data_size);
+ return;
+ case tgl_message_media_document_encr:
+ tfree_secure (M->encr_document->key, 32);
+ tfree_secure (M->encr_document->iv, 32);
+ tfree (M->encr_document, sizeof (*M->encr_document));
+ return;
+ case tgl_message_media_webpage:
+ tgls_free_webpage (TLS, M->webpage);
+ return;
+ case tgl_message_media_venue:
+ if (M->venue.title) { tfree_str (M->venue.title); }
+ if (M->venue.address) { tfree_str (M->venue.address); }
+ if (M->venue.provider) { tfree_str (M->venue.provider); }
+ if (M->venue.venue_id) { tfree_str (M->venue.venue_id); }
+ 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);
+ M->photo = NULL;
+ return;
+ case tgl_message_action_chat_delete_photo:
+ case tgl_message_action_chat_add_user:
+ case tgl_message_action_chat_add_user_by_link:
+ 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->flags & TGLMF_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_reply_markup (struct tgl_state *TLS, struct tgl_message_reply_markup *R) {
+ if (!--R->refcnt) {
+ tfree (R->buttons, R->row_start[R->rows] * sizeof (void *));
+ tfree (R->row_start, 4 * (R->rows + 1));
+ tfree (R, sizeof (*R));
+ } else {
+ assert (R->refcnt > 0);
+ }
+}
+
+void tgls_free_message (struct tgl_state *TLS, struct tgl_message *M) {
+ tgls_clear_message (TLS, M);
+ if (M->reply_markup) {
+ tgls_free_reply_markup (TLS, M->reply_markup);
+ }
+ 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);
+ }
+ if (U->photo) { 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); }
+ if (U->photo) { 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); }
+ 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 tgls_free_bot_info (struct tgl_state *TLS, struct tgl_bot_info *B) {
+ if (!B) { return; }
+ int i;
+ for (i = 0; i < B->commands_num; i++) {
+ tfree_str (B->commands[i].command);
+ tfree_str (B->commands[i].description);
+ }
+ tfree (B->commands, sizeof (struct tgl_bot_command) * B->commands_num);
+ tfree_str (B->share_text);
+ tfree_str (B->description);
+ tfree (B, sizeof (*B));
+}
+/* }}} */
+
+/* Messages {{{ */
+
+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_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");
+ //print_message (M);
+
+ if (M->media.type != tgl_message_media_none) {
+ assert (M->flags & TGLMF_ENCRYPTED);
+ bl_do_message_delete (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);
+}
+/* }}} */
+
+struct tgl_photo *tgl_photo_get (struct tgl_state *TLS, long long id) {
+ struct tgl_photo P;
+ P.id = id;
+ return tree_lookup_photo (TLS->photo_tree, &P);
+}
+
+void tgl_photo_insert (struct tgl_state *TLS, struct tgl_photo *P) {
+ TLS->photo_tree = tree_insert_photo (TLS->photo_tree, P, lrand48 ());
+}
+
+struct tgl_document *tgl_document_get (struct tgl_state *TLS, long long id) {
+ struct tgl_document P;
+ P.id = id;
+ return tree_lookup_document (TLS->document_tree, &P);
+}
+
+void tgl_document_insert (struct tgl_state *TLS, struct tgl_document *P) {
+ TLS->document_tree = tree_insert_document (TLS->document_tree, P, lrand48 ());
+}
+
+struct tgl_webpage *tgl_webpage_get (struct tgl_state *TLS, long long id) {
+ struct tgl_webpage P;
+ P.id = id;
+ return tree_lookup_webpage (TLS->webpage_tree, &P);
+}
+
+void tgl_webpage_insert (struct tgl_state *TLS, struct tgl_webpage *P) {
+ TLS->webpage_tree = tree_insert_webpage (TLS->webpage_tree, P, lrand48 ());
+}
+
+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);
+ tglq_query_free_all (TLS);
+
+ 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);
+
+ if (TLS->ev_login) { TLS->timer_methods->free (TLS->ev_login); }
+ if (TLS->online_updates_timer) { TLS->timer_methods->free (TLS->online_updates_timer); }
+}
+
+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
+ );
+}
+
+void tglf_fetch_int_array (int *dst, struct tl_ds_vector *src, int len) {
+ int i;
+ assert (len <= *src->f1);
+ for (i = 0; i < len; i++) {
+ dst[i] = *(int *)src->f2[i];
+ }
+}
+
+void tglf_fetch_int_tuple (int *dst, int **src, int len) {
+ int i;
+ for (i = 0; i < len; i++) {
+ dst[i] = *src[i];
+ }
+}
+
+
+void tgls_messages_mark_read (struct tgl_state *TLS, struct tgl_message *M, int out, int seq) {
+ while (M && M->id > seq) {
+ if ((M->flags & TGLMF_OUT) == out) {
+ if (!(M->flags & TGLMF_UNREAD)) {
+ return;
+ }
+ }
+ M = M->next;
+ }
+ while (M) {
+ if ((M->flags & TGLMF_OUT) == out) {
+ if (M->flags & TGLMF_UNREAD) {
+ M->flags &= ~TGLMF_UNREAD;
+ TLS->callback.marked_read (TLS, 1, &M);
+ } else {
+ return;
+ }
+ }
+ M = M->next;
+ }
+}
+
+void tgls_insert_random2local (struct tgl_state *TLS, long long random_id, int local_id) {
+ struct random2local *X = talloc (sizeof (*X));
+ X->random_id = random_id;
+ X->local_id = local_id;
+
+ struct random2local *R = tree_lookup_random_id (TLS->random_id_tree, X);
+ assert (!R);
+
+ TLS->random_id_tree = tree_insert_random_id (TLS->random_id_tree, X, lrand48 ());
+}
+
+int tgls_get_local_by_random (struct tgl_state *TLS, long long random_id) {
+ struct random2local X;
+ X.random_id = random_id;
+ struct random2local *Y = tree_lookup_random_id (TLS->random_id_tree, &X);
+ if (Y) {
+ TLS->random_id_tree = tree_delete_random_id (TLS->random_id_tree, Y);
+ int y = Y->local_id;
+ tfree (Y, sizeof (*Y));
+ return y;
+ } else {
+ return 0;
+ }
+}
diff --git a/libs/tgl/src/tg-mime-types.c b/libs/tgl/src/tg-mime-types.c
new file mode 100644
index 0000000000..578d8da780
--- /dev/null
+++ b/libs/tgl/src/tg-mime-types.c
@@ -0,0 +1,112 @@
+#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];
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ strcpy_s(s, 11, p);
+#else
+ strcpy (s, p);
+#endif
+ 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/libs/tgl/src/tg-mime-types.h b/libs/tgl/src/tg-mime-types.h
new file mode 100644
index 0000000000..3a3539e56a
--- /dev/null
+++ b/libs/tgl/src/tg-mime-types.h
@@ -0,0 +1,3 @@
+char *tg_mime_by_filename (const char *filename);
+char *tg_extension_by_mime (const char *mime_type);
+
diff --git a/libs/tgl/src/tgl-binlog.h b/libs/tgl/src/tgl-binlog.h
new file mode 100644
index 0000000000..fdd838f70c
--- /dev/null
+++ b/libs/tgl/src/tgl-binlog.h
@@ -0,0 +1,73 @@
+/*
+ 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 "structures.h"
+#include "tgl.h"
+#include "auto/auto-types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void bl_do_dc_option (struct tgl_state *TLS, int id, const char *name, int l1, const char *ip, int l2, int port);
+void bl_do_dc_option_new (struct tgl_state *TLS, int flags, int id, const char *name, int l1, const char *ip, int l2, int port);
+void bl_do_set_working_dc (struct tgl_state *TLS, int num);
+void bl_do_dc_signed (struct tgl_state *TLS, int id);
+void bl_do_set_our_id (struct tgl_state *TLS, int id);
+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_date (struct tgl_state *TLS, int date);
+void bl_do_set_seq (struct tgl_state *TLS, int seq);
+
+void bl_do_set_msg_id (struct tgl_state *TLS, struct tgl_message *M, int id);
+
+void bl_do_user_delete (struct tgl_state *TLS, struct tgl_user *U);
+void bl_do_encr_chat_delete (struct tgl_state *TLS, struct tgl_secret_chat *U);
+
+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_new (struct tgl_state *TLS, long long id, int *from_id, int *to_type, int *to_id, int *fwd_from_id, int *fwd_date, int *date, const char *message, int message_len, struct tl_ds_message_media *media, struct tl_ds_message_action *action, int *reply_id, struct tl_ds_reply_markup *reply_markup, int flags);
+
+void bl_do_create_message_encr_new (struct tgl_state *TLS, long long id, int *from_id, int *to_type, int *to_id, int *date, const char *message, int message_len, struct tl_ds_decrypted_message_media *media, struct tl_ds_decrypted_message_action *action, struct tl_ds_encrypted_file *file, int flags);
+void bl_do_message_delete (struct tgl_state *TLS, struct tgl_message *M);
+
+void bl_do_encr_chat_exchange_new (struct tgl_state *TLS, struct tgl_secret_chat *E, long long *exchange_id, const void *key, int *state);
+
+void bl_do_msg_update (struct tgl_state *TLS, long long id);
+void bl_do_reset_authorization (struct tgl_state *TLS);
+
+void bl_do_user_new (struct tgl_state *TLS, int id, long long *access_hash, const char *first_name, int first_name_len, const char *last_name, int last_name_len, const char *phone, int phone_len, const char *username, int username_len, struct tl_ds_photo *photo, const char *real_first_name, int real_first_name_len, const char *real_last_name, int real_last_name_len, struct tl_ds_user_profile_photo *profile_photo, int *last_read_in, int *last_read_out, struct tl_ds_bot_info *bot_info, int flags);
+
+void bl_do_set_auth_key (struct tgl_state *TLS, int num, unsigned char *buf);
+
+void bl_do_chat_new (struct tgl_state *TLS, int id, const char *title, int title_len, int *user_num, int *date, int *version, struct tl_ds_vector *participants, struct tl_ds_chat_photo *chat_photo, struct tl_ds_photo *photo, int *admin, int *last_read_in, int *last_read_out, int flags);
+
+void bl_do_encr_chat_new (struct tgl_state *TLS, int id, long long *access_hash, int *date, int *admin, int *user_id, void *key, void *g_key, void *first_key_id, int *state, int *ttl, int *layer, int *in_seq_no, int *last_in_seq_no, int *out_seq_no, long long *key_fingerprint, int flags);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/libs/tgl/src/tgl-fetch.h b/libs/tgl/src/tgl-fetch.h
new file mode 100644
index 0000000000..37b2ac5d1d
--- /dev/null
+++ b/libs/tgl/src/tgl-fetch.h
@@ -0,0 +1,59 @@
+/*
+ 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"
+#include "auto/auto-types.h"
+
+struct tgl_user *tglf_fetch_alloc_user_new (struct tgl_state *TLS, struct tl_ds_user *DS_U);
+struct tgl_user *tglf_fetch_alloc_user_full_new (struct tgl_state *TLS, struct tl_ds_user_full *DS_U);
+struct tgl_chat *tglf_fetch_alloc_chat_new (struct tgl_state *TLS, struct tl_ds_chat *DS_C);
+struct tgl_chat *tglf_fetch_alloc_chat_full_new (struct tgl_state *TLS, struct tl_ds_messages_chat_full *DS_MCF);
+struct tgl_secret_chat *tglf_fetch_alloc_encrypted_chat_new (struct tgl_state *TLS, struct tl_ds_encrypted_chat *DS_EC);
+struct tgl_message *tglf_fetch_alloc_message_new (struct tgl_state *TLS, struct tl_ds_message *DS_M);
+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_new (struct tgl_state *TLS, struct tl_ds_encrypted_message *DS_EM);
+tgl_peer_id_t tglf_fetch_peer_id_new (struct tgl_state *TLS, struct tl_ds_peer *DS_P);
+long long tglf_fetch_user_photo_new (struct tgl_state *TLS, struct tgl_user *U, struct tl_ds_user_profile_photo *DS_UPP);
+
+void tglf_fetch_message_media_new (struct tgl_state *TLS, struct tgl_message_media *M, struct tl_ds_message_media *DS_MM);
+void tglf_fetch_message_action_new (struct tgl_state *TLS, struct tgl_message_action *M, struct tl_ds_message_action *DS_MA);
+void tglf_fetch_chat_full (struct tgl_state *TLS, struct tgl_chat *C);
+
+void tglf_fetch_encrypted_message_file_new (struct tgl_state *TLS, struct tgl_message_media *M, struct tl_ds_encrypted_file *DS_EF);
+void tglf_fetch_message_media_encrypted_new (struct tgl_state *TLS, struct tgl_message_media *M, struct tl_ds_decrypted_message_media *DS_DMM);
+void tglf_fetch_message_action_encrypted_new (struct tgl_state *TLS, struct tgl_message_action *M, struct tl_ds_decrypted_message_action *DS_DMA);
+int tglf_fetch_user_status_new (struct tgl_state *TLS, struct tgl_user_status *S, struct tgl_user *U, struct tl_ds_user_status *DS_US);
+enum tgl_typing_status tglf_fetch_typing_new (struct tl_ds_send_message_action *DS_SMA);
+void tglf_fetch_chat_participants_new (struct tgl_state *TLS, struct tgl_chat *C, struct tl_ds_chat_participants *DS_CP);
+void tglf_fetch_int_array (int *dst, struct tl_ds_vector *src, int len);
+void tglf_fetch_int_tuple (int *dst, int **src, int len);
+int tglf_fetch_file_location_new (struct tgl_state *TLS, struct tgl_file_location *loc, struct tl_ds_file_location *DS_FL);
+
+void tglf_fetch_message_short_new (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_updates *DS_U);
+void tglf_fetch_message_short_chat_new (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_updates *DS_U);
+
+struct tgl_message *tglf_fetch_alloc_message_short_new (struct tgl_state *TLS, struct tl_ds_updates *DS_U);
+struct tgl_message *tglf_fetch_alloc_message_short_chat_new (struct tgl_state *TLS, struct tl_ds_updates *DS_U);
+struct tgl_photo *tglf_fetch_alloc_photo_new (struct tgl_state *TLS, struct tl_ds_photo *DS_P);
+struct tgl_bot_info *tglf_fetch_alloc_bot_info (struct tgl_state *TLS, struct tl_ds_bot_info *DS_BI);
+struct tgl_message_reply_markup *tglf_fetch_alloc_reply_markup (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_reply_markup *DS_RM);
+#endif
diff --git a/libs/tgl/src/tgl-inner.h b/libs/tgl/src/tgl-inner.h
new file mode 100644
index 0000000000..2ffa932762
--- /dev/null
+++ b/libs/tgl/src/tgl-inner.h
@@ -0,0 +1,33 @@
+/*
+ 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__
+
+#ifndef vlogprintf
+#define vlogprintf(verbosity_level,...) \
+ do { \
+ if (TLS->verbosity >= verbosity_level) { \
+ TLS->callback.logprintf (__VA_ARGS__); \
+ } \
+ } while (0)
+#endif
+
+#endif
diff --git a/libs/tgl/src/tgl-layout.h b/libs/tgl/src/tgl-layout.h
new file mode 100644
index 0000000000..fee5b2c3d6
--- /dev/null
+++ b/libs/tgl/src/tgl-layout.h
@@ -0,0 +1,539 @@
+/*
+ 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 TGLDF_IMAGE 1
+#define TGLDF_STICKER 2
+#define TGLDF_ANIMATED 4
+#define TGLDF_AUDIO 8
+#define TGLDF_VIDEO 16
+
+#define TGLMF_UNREAD 1
+#define TGLMF_OUT 2
+#define TGLMF_DISABLE_PREVIEW 4
+#define TGLMF_MENTION 16
+#define TGLMF_CREATED (1 << 8)
+#define TGLMF_PENDING (1 << 9)
+#define TGLMF_DELETED (1 << 10)
+#define TGLMF_ENCRYPTED (1 << 11)
+#define TGLMF_EMPTY (1 << 12)
+#define TGLMF_SERVICE (1 << 13)
+#define TGLMF_SESSION_OUTBOUND (1 << 14)
+
+#define TGLMF_CREATE 0x10000
+
+#define TGLPF_CREATED (1 << 8)
+#define TGLPF_CREATE (1 << 16)
+#define TGLPF_HAS_PHOTO (1 << 11)
+#define TGLPF_DELETED (1 << 10)
+
+#define TGLUF_CONTACT 1
+#define TGLUF_MUTUAL_CONTACT 2
+#define TGLUF_BLOCKED 4
+#define TGLUF_SELF 8
+#define TGLUF_CREATED TGLPF_CREATED
+#define TGLUF_DELETED TGLPF_DELETED
+#define TGLUF_HAS_PHOTO TGLPF_HAS_PHOTO
+#define TGLUF_CREATE TGLPF_CREATE
+#define TGLUF_BOT (1 << 12)
+
+#define TGLCF_CREATED TGLPF_CREATED
+#define TGLCF_CREATE TGLPF_CREATE
+#define TGLCF_HAS_PHOTO TGLPF_HAS_PHOTO
+
+#define TGLECF_CREATED TGLPF_CREATED
+#define TGLECF_CREATE TGLPF_CREATE
+#define TGLECF_HAS_PHOTO TGLPF_HAS_PHOTO
+#define TGLECF_DELETED TGLPF_DELETED
+
+#define TGL_FLAGS_UNCHANGED 0xffff
+
+#define TGLDCF_AUTHORIZED 1
+#define TGLDCF_LOGGED_IN 8
+
+#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_option {
+ struct tgl_dc_option *next;
+ char *ip;
+ int port;
+};
+
+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;
+
+ // ipv4, ipv6, ipv4_media, ipv6_media
+ struct tgl_dc_option *options[4];
+};
+
+enum tgl_message_media_type {
+ tgl_message_media_none,
+ tgl_message_media_photo,
+ 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,
+ tgl_message_media_webpage,
+ tgl_message_media_venue,
+ tgl_message_media_video,
+ tgl_message_media_audio
+};
+
+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_add_user_by_link,
+ 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,
+ 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 refcnt;
+ int user_id;
+ int date;
+ char *caption;
+ struct tgl_geo geo;
+ int sizes_num;
+ struct tgl_photo_size *sizes;
+};
+
+struct tgl_encr_document {
+ long long id;
+ long long access_hash;
+ int refcnt;
+
+ 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_user_status {
+ int online;
+ int when;
+ struct tgl_timer *ev;
+};
+
+struct tgl_bot_command {
+ char *command;
+ char *description;
+};
+
+struct tgl_bot_info {
+ int version;
+ char *share_text;
+ char *description;
+ int commands_num;
+ struct tgl_bot_command *commands;
+};
+
+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;
+ int last_read_in;
+ int last_read_out;
+ 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_bot_info *bot_info;
+};
+
+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;
+ int last_read_in;
+ int last_read_out;
+ 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,
+ tgl_sce_confirmed,
+ tgl_sce_aborted
+};
+
+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;
+
+ 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 refcnt;
+ 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_webpage {
+ long long id;
+ int refcnt;
+ char *url;
+ char *display_url;
+ char *type;
+ char *site_name;
+ char *title;
+ char *description;
+ struct tgl_photo *photo;
+ char *embed_url;
+ char *embed_type;
+ int embed_width;
+ int embed_height;
+ int duration;
+ char *author;
+};
+
+struct tgl_message_media {
+ enum tgl_message_media_type type;
+ union {
+ struct {
+ union {
+ struct tgl_photo *photo;
+ struct tgl_document *document;
+ };
+ char *caption;
+ };
+
+ struct tgl_encr_document *encr_document;
+ struct tgl_webpage *webpage;
+
+ struct tgl_geo geo;
+ struct {
+ char *phone;
+ char *first_name;
+ char *last_name;
+ int user_id;
+ };
+
+ struct {
+ void *data;
+ int data_size;
+ };
+ struct {
+ struct tgl_geo geo;
+ char *title;
+ char *address;
+ char *provider;
+ char *venue_id;
+ } venue;
+ };
+};
+
+struct tgl_message_reply_markup {
+ int refcnt;
+ int flags;
+ int rows;
+ int *row_start;
+ char **buttons;
+};
+
+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;
+ int reply_id;
+ tgl_peer_id_t from_id;
+ tgl_peer_id_t to_id;
+ int date;
+ struct tgl_message_reply_markup *reply_markup;
+ union {
+ struct tgl_message_action action;
+ struct {
+ char *message;
+ int message_len;
+ struct tgl_message_media media;
+ };
+ };
+};
+#pragma pack(pop)
+#endif
diff --git a/libs/tgl/src/tgl-methods-in.h b/libs/tgl/src/tgl-methods-in.h
new file mode 100644
index 0000000000..0d149db7d6
--- /dev/null
+++ b/libs/tgl/src/tgl-methods-in.h
@@ -0,0 +1,50 @@
+// normally you should not use these methods
+// use them with caution
+
+
+#ifndef __TGL_METHODS_IN_H__
+#define __TGL_METHODS_IN_H__
+
+/* {{{ AUTHORIZATION METHODS. NORMALLY YOU DON'T NEED THEM */
+
+// send query to updated DCs' ips
+// automatically renews data on update
+void tgl_do_help_get_config (struct tgl_state *TLS, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+
+// requests server to send code to specified phone number
+// if user is logged in elsewhere message will first appear as telegram message
+// and SMS will be sent some time after
+void tgl_do_send_code (struct tgl_state *TLS, const char *phone, int phone_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int registered, const char *hash), void *callback_extra);
+
+// request server to send code via phone call
+void tgl_do_phone_call (struct tgl_state *TLS, const char *phone, int phone_len, const char *hash, int hash_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+
+// sends code from SMS to server. This step should end authorization, unless user have password
+int tgl_do_send_code_result (struct tgl_state *TLS, const char *phone, int phone_len, const char *hash, int hash_len, const char *code, int code_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *Self), void *callback_extra);
+
+
+// sends code from SMS, username and lastname to server. This step should end new user registration
+int tgl_do_send_code_result_auth (struct tgl_state *TLS, const char *phone, int phone_len, const char *hash, int hash_len, const char *code, int code_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_user *Self), 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_check_password (struct tgl_state *TLS, void (*callback)(struct tgl_state *TLS, void *extra, int success), 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_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_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_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_request_exchange (struct tgl_state *TLS, struct tgl_secret_chat *E);
+
+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);
+#endif
diff --git a/libs/tgl/src/tgl-net-inner.h b/libs/tgl/src/tgl-net-inner.h
new file mode 100644
index 0000000000..53b9c10dfe
--- /dev/null
+++ b/libs/tgl/src/tgl-net-inner.h
@@ -0,0 +1,93 @@
+/*
+ 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__
+#if !defined(WIN32) || !defined(_WIN32)
+typedef int SOCKET
+#ifndef SOCKET_ERROR
+#define SOCKET_ERROR -1
+#endif
+#endif
+
+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 {
+ SOCKET 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;
+ struct event *ping_ev;
+ struct event *fail_ev;
+ struct event *read_ev;
+ struct event *write_ev;
+ double last_receive_time;
+};
+
+//extern struct connection *Connections[];
+
+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);
+
+//void tgln_insert_msg_id (struct tgl_session *S, long long id);
+
+extern struct tgl_net_methods tgl_conn_methods;
+
+//void create_all_outbound_connections (void);
+
+//struct connection *create_connection (const char *host, int port, struct tgl_session *session, struct connection_methods *methods);
+//struct tgl_dc *tgln_alloc_dc (int id, char *ip, int port);
+//void tgln_dc_create_session (struct tgl_dc *DC, struct mtproto_methods *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/libs/tgl/src/tgl-net.c b/libs/tgl/src/tgl-net.c
new file mode 100644
index 0000000000..7439ee145d
--- /dev/null
+++ b/libs/tgl/src/tgl-net.c
@@ -0,0 +1,674 @@
+/*
+ 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 <errno.h>
+#include <stdio.h>
+#if defined(WIN32) || defined(_WIN32)
+#include <io.h>
+#include <fcntl.h>
+#include <sys\types.h>
+#include <sys\stat.h>
+#include <stdint.h>
+#include <string.h>
+#include <winsock2.h>
+#include <ws2tcpip.h>
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
+#else
+#include <unistd.h>
+#include <sys/socket.h>
+#include <netdb.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+#include <sys/fcntl.h>
+#include <poll.h>
+#include <arpa/inet.h>
+#include <sys/time.h>
+#endif
+
+#include <openssl/rand.h>
+
+#ifdef EVENT_V2
+#include <event2/event.h>
+#else
+#include <event.h>
+#include "event-old.h"
+#endif
+#include <time.h>
+
+#include "tgl-net-inner.h"
+#include "tgl-net.h"
+#include "tgl.h"
+#include "tgl-inner.h"
+//#include "mtproto-client.h"
+//#include "mtproto-common.h"
+#include "tree.h"
+#include "tools.h"
+#include "mtproto-client.h"
+
+#ifndef POLLRDHUP
+#define POLLRDHUP 0
+#endif
+
+//double get_utime (int clock_id);
+
+//extern struct mtproto_methods auth_methods;
+
+static void fail_connection (struct connection *c);
+
+#define PING_TIMEOUT 10
+
+static void start_ping_timer (struct connection *c);
+static void ping_alarm (evutil_socket_t fd, short what, 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);
+ }
+}
+
+static void stop_ping_timer (struct connection *c) {
+ event_del (c->ping_ev);
+}
+
+static void start_ping_timer (struct connection *c) {
+ static struct timeval ptimeout = { PING_TIMEOUT, 0};
+ event_add (c->ping_ev, &ptimeout);
+}
+
+static void restart_connection (struct connection *c);
+
+static void fail_alarm (evutil_socket_t fd, short what, void *arg) {
+ struct connection *c = arg;
+ c->in_fail_timer = 0;
+ restart_connection (c);
+}
+
+static void start_fail_timer (struct connection *c) {
+ if (c->in_fail_timer) { return; }
+ c->in_fail_timer = 1;
+
+ static struct timeval ptimeout = { 10, 0};
+ event_add (c->fail_ev, &ptimeout);
+}
+
+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) {
+ event_add (c->write_ev, 0);
+ }
+ 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) {
+}
+
+#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 void conn_try_read (evutil_socket_t fd, short what, void *arg) {
+ struct connection *c = arg;
+ struct tgl_state *TLS = c->TLS;
+ vlogprintf (E_DEBUG + 1, "Try read. Fd = %d\n", c->fd);
+ try_read (c);
+}
+static void conn_try_write (evutil_socket_t fd, short what, 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) {
+ event_add (c->write_ev, 0);
+ }
+}
+
+static SOCKET my_connect (struct connection *c, const char *host) {
+ struct tgl_state *TLS = c->TLS;
+ int v6 = TLS->ipv6_enabled;
+ SOCKET fd = socket (v6 ? AF_INET6 : AF_INET, SOCK_STREAM, 0);
+#if defined(WIN32) || defined(_WIN32)
+ if (fd == INVALID_SOCKET) {
+ vlogprintf(E_ERROR, "Can not create socket: %s\n", GetLastErrorStr(WSAGetLastError()));
+#else
+ if (fd < 0) {
+ vlogprintf (E_ERROR, "Can not create socket: %m\n");
+#endif
+ start_fail_timer (c);
+ return SOCKET_ERROR;
+ }
+
+#if defined(WIN32) || defined(_WIN32)
+ assert(++max_connection_fd < MAX_CONNECTIONS);
+#else
+ assert (fd >= 0 && fd < MAX_CONNECTIONS);
+ if (fd > max_connection_fd) {
+ max_connection_fd = fd;
+ }
+#endif
+
+ int flags = -1;
+ setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, (const char *)&flags, sizeof (flags));
+ setsockopt (fd, SOL_SOCKET, SO_KEEPALIVE, (const char *)&flags, sizeof (flags));
+ setsockopt (fd, IPPROTO_TCP, TCP_NODELAY, (const char *)&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);
+#if defined(WIN32) || defined(_WIN32)
+ closesocket (fd);
+ max_connection_fd--;
+#else
+ close (fd);
+#endif
+ return SOCKET_ERROR;
+ }
+ } 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);
+#if defined(WIN32) || defined(_WIN32)
+ closesocket (fd);
+ max_connection_fd--;
+#else
+ close (fd);
+#endif
+ return SOCKET_ERROR;
+ }
+ }
+
+#if defined(WIN32) || defined(_WIN32)
+ unsigned long nonblocking = 1;
+ assert (ioctlsocket (fd, FIONBIO, &nonblocking) != SOCKET_ERROR);
+#else
+ fcntl (fd, F_SETFL, O_NONBLOCK);
+#endif
+
+#if defined(WIN32) || defined(_WIN32)
+ if (connect (fd, (struct sockaddr *) (v6 ? (void *)&addr6 : (void *)&addr), v6 ? sizeof (addr6) : sizeof (addr)) != 0) {
+ if (WSAGetLastError () != WSAEWOULDBLOCK) {
+ closesocket (fd);
+ max_connection_fd--;
+#else
+ if (connect (fd, (struct sockaddr *) (v6 ? (void *)&addr6 : (void *)&addr), v6 ? sizeof (addr6) : sizeof (addr)) == -1) {
+ if (errno != EINPROGRESS) {
+ close (fd);
+#endif
+ return SOCKET_ERROR;
+ }
+ }
+ return fd;
+}
+
+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;
+
+ SOCKET fd = my_connect (c, c->ip);
+ if (fd == SOCKET_ERROR) {
+#if defined(WIN32) || defined(_WIN32)
+ vlogprintf(E_ERROR, "Can not connect to %s:%d %s\n", host, port, GetLastErrorStr (WSAGetLastError ()));
+#else
+ vlogprintf (E_ERROR, "Can not connect to %s:%d %m\n", host, port);
+#endif
+ tfree (c, sizeof (*c));
+ return 0;
+ }
+
+ c->fd = fd;
+ c->state = conn_connecting;
+ c->last_receive_time = tglt_get_double_time ();
+ c->flags = 0;
+ assert (!Connections[fd]);
+ Connections[fd] = c;
+
+ c->ping_ev = evtimer_new (TLS->ev_base, ping_alarm, c);
+ c->fail_ev = evtimer_new (TLS->ev_base, fail_alarm, c);
+ c->write_ev = event_new (TLS->ev_base, c->fd, EV_WRITE, conn_try_write, c);
+
+ struct timeval tv = {5, 0};
+ c->read_ev = event_new (TLS->ev_base, c->fd, EV_READ | EV_PERSIST, conn_try_read, c);
+ event_add (c->read_ev, &tv);
+
+ start_ping_timer (c);
+
+ c->dc = dc;
+ c->session = session;
+ c->methods = methods;
+
+ char byte = 0xef;
+ assert (tgln_write_out (c, &byte, 1) == 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 = (int)time (0);
+ SOCKET fd = my_connect (c, c->ip);
+ if (fd == SOCKET_ERROR) {
+#if defined(WIN32) || defined(_WIN32)
+ vlogprintf(E_ERROR, "Can not connect to %s:%d %s\n", c->ip, c->port, GetLastErrorStr (WSAGetLastError ()));
+#else
+ vlogprintf (E_WARNING, "Can not connect to %s:%d %m\n", c->ip, c->port);
+#endif
+ start_fail_timer (c);
+ return;
+ }
+
+ c->fd = fd;
+ c->state = conn_connecting;
+ c->last_receive_time = tglt_get_double_time ();
+ start_ping_timer (c);
+ Connections[fd] = c;
+
+ c->write_ev = event_new (TLS->ev_base, c->fd, EV_WRITE, conn_try_write, c);
+
+ struct timeval tv = {5, 0};
+ c->read_ev = event_new (TLS->ev_base, c->fd, EV_READ | EV_PERSIST, conn_try_read, c);
+ event_add (c->read_ev, &tv);
+
+ 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);
+ }
+ event_free (c->write_ev);
+ event_free (c->read_ev);
+
+ 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;
+#if defined(WIN32) || defined(_WIN32)
+ closesocket (c->fd);
+ max_connection_fd--;
+#else
+ close (c->fd);
+#endif
+ Connections[c->fd] = 0;
+ vlogprintf (E_NOTICE, "Lost connection to server... %s:%d\n", c->ip, c->port);
+ restart_connection (c);
+}
+
+//extern FILE *log_net_f;
+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) {
+#if defined(WIN32) || defined(_WIN32)
+ int r = send(c->fd, c->out_head->rptr, c->out_head->wptr - c->out_head->rptr, 0);
+ if (r != SOCKET_ERROR) {
+#else
+ int r = write (c->fd, c->out_head->rptr, c->out_head->wptr - c->out_head->rptr);
+ if (r >= 0) {
+#endif
+ 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 defined(WIN32) || defined(_WIN32)
+ if (/*WSAGetLastError() != EAGAIN && */WSAGetLastError() != WSAEWOULDBLOCK) {
+ vlogprintf(E_NOTICE, "fail_connection: write_error %s\n", GetLastErrorStr(WSAGetLastError()));
+#else
+ if (errno != EAGAIN && errno != EWOULDBLOCK) {
+ vlogprintf (E_NOTICE, "fail_connection: write_error %m\n");
+#endif
+ 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);
+ }
+ #ifdef EVENT_V1
+ struct timeval tv = {5, 0};
+ event_add (c->read_ev, &tv);
+ #endif
+ int x = 0;
+ while (1) {
+#if defined(WIN32) || defined(_WIN32)
+ int r = recv(c->fd, c->in_tail->wptr, c->in_tail->end - c->in_tail->wptr, 0);
+ if (r != SOCKET_ERROR) {
+#else
+ int r = read (c->fd, c->in_tail->wptr, c->in_tail->end - c->in_tail->wptr);
+ if (r > 0) {
+#endif
+ 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 defined(WIN32) || defined(_WIN32)
+ if (/*WSAGetLastError() != EAGAIN &&*/ WSAGetLastError() != WSAEWOULDBLOCK) {
+ vlogprintf(E_NOTICE, "fail_connection: read_error %s\n", GetLastErrorStr(WSAGetLastError()));
+#else
+ if (errno != EAGAIN && errno != EWOULDBLOCK) {
+ vlogprintf (E_NOTICE, "fail_connection: read_error %m\n");
+#endif
+ 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); }
+ if (c->ping_ev) { event_free (c->ping_ev); }
+ if (c->fail_ev) { event_free (c->fail_ev); }
+ if (c->read_ev) { event_free (c->read_ev); }
+ if (c->write_ev) { event_free (c->write_ev); }
+
+ 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->fd >= 0) {
+ Connections[c->fd] = 0;
+#if defined(WIN32) || defined(_WIN32)
+ closesocket (c->fd);
+ max_connection_fd--;
+#else
+ close (c->fd);
+#endif
+ }
+ 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/libs/tgl/src/tgl-net.h b/libs/tgl/src/tgl-net.h
new file mode 100644
index 0000000000..6c589a4a38
--- /dev/null
+++ b/libs/tgl/src/tgl-net.h
@@ -0,0 +1,24 @@
+/*
+ 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/libs/tgl/src/tgl-structures.h b/libs/tgl/src/tgl-structures.h
new file mode 100644
index 0000000000..4e3fd9ec32
--- /dev/null
+++ b/libs/tgl/src/tgl-structures.h
@@ -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 __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_free_bot_info (struct tgl_state *TLS, struct tgl_bot_info *B);
+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);
+void tgls_messages_mark_read (struct tgl_state *TLS, struct tgl_message *M, int out, int seq);
+
+void tgls_insert_random2local (struct tgl_state *TLS, long long random_id, int local_id);
+int tgls_get_local_by_random (struct tgl_state *TLS, long long random_id);
+
+
+void tgl_photo_insert (struct tgl_state *TLS, struct tgl_photo *P);
+struct tgl_photo *tgl_photo_get (struct tgl_state *TLS, long long id);
+struct tgl_document *tgl_document_get (struct tgl_state *TLS, long long id);
+void tgl_document_insert (struct tgl_state *TLS, struct tgl_document *P);
+struct tgl_webpage *tgl_webpage_get (struct tgl_state *TLS, long long id);
+void tgl_webpage_insert (struct tgl_state *TLS, struct tgl_webpage *P);
+#endif
diff --git a/libs/tgl/src/tgl-timers.c b/libs/tgl/src/tgl-timers.c
new file mode 100644
index 0000000000..d68f9ac0ec
--- /dev/null
+++ b/libs/tgl/src/tgl-timers.c
@@ -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
+*/
+#include "config.h"
+#ifdef EVENT_V2
+#include <event2/event.h>
+#include <event2/bufferevent.h>
+#include <event2/buffer.h>
+#else
+#include <event.h>
+#include "event-old.h"
+#endif
+
+#include "tgl.h"
+#include <stdlib.h>
+
+static void timer_alarm (evutil_socket_t fd, short what, void *arg) {
+ void **p = arg;
+ ((void (*)(struct tgl_state *, void *))p[1]) (p[0], p[2]);
+}
+
+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;
+ return (void *)evtimer_new (TLS->ev_base, timer_alarm, p);
+}
+
+void tgl_timer_insert (struct tgl_timer *t, double p) {
+ if (p < 0) { p = 0; }
+ double e = p - (int)p;
+ if (e < 0) { e = 0; }
+ struct timeval pv = { (int)p, (int)(e * 1e6)};
+ event_add ((void *)t, &pv);
+}
+
+void tgl_timer_delete (struct tgl_timer *t) {
+ event_del ((void *)t);
+}
+
+void tgl_timer_free (struct tgl_timer *t) {
+ void *arg = event_get_callback_arg ((void *)t);
+ free (arg);
+ event_free ((void *)t);
+}
+
+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/libs/tgl/src/tgl-timers.h b/libs/tgl/src/tgl-timers.h
new file mode 100644
index 0000000000..7f52f3bd15
--- /dev/null
+++ b/libs/tgl/src/tgl-timers.h
@@ -0,0 +1,27 @@
+/*
+ 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/libs/tgl/src/tgl.c b/libs/tgl/src/tgl.c
new file mode 100644
index 0000000000..dd4f2713c9
--- /dev/null
+++ b/libs/tgl/src/tgl.c
@@ -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
+*/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "tgl.h"
+#include "tools.h"
+#include "mtproto-client.h"
+#include "tgl-structures.h"
+//#include "net.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->flags & TGLDCF_LOGGED_IN) != 0;
+}
+
+void tgl_register_app_id (struct tgl_state *TLS, int app_id, const 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_ev_base (struct tgl_state *TLS, void *ev_base) {
+ TLS->ev_base = ev_base;
+}
+
+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;
+}
+
+void tgl_disable_link_preview (struct tgl_state *TLS) {
+ TLS->disable_link_preview = 1;
+}
+
+void tgl_enable_bot (struct tgl_state *TLS) {
+ TLS->is_bot = 1;
+}
diff --git a/libs/tgl/src/tgl.h b/libs/tgl/src/tgl.h
new file mode 100644
index 0000000000..2da8c7a254
--- /dev/null
+++ b/libs/tgl/src/tgl.h
@@ -0,0 +1,659 @@
+/*
+ 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>
+#ifdef _WIN32
+#include "config.h"
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
+#endif
+
+#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 "149.154.175.100"
+#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 "149.154.175.10"
+#define TG_SERVER_TEST_2 "149.154.167.40"
+#define TG_SERVER_TEST_3 "149.154.175.117"
+#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_VERSION "2.0.3"
+
+#define TGL_ENCRYPTED_LAYER 17
+#define TGL_SCHEME_LAYER 31
+
+struct connection;
+struct mtproto_methods;
+struct tgl_session;
+struct tgl_dc;
+
+#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)
+
+#if defined(WIN32) || defined(_WIN32)
+# if !defined(__cplusplus) && ( !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L )
+# if __GNUC__ >= 2 || (defined(_MSC_VER) && _MSC_VER >= 1300)
+# define __func__ __FUNCTION__
+# else
+# define __func__ "<unknown>"
+# endif
+# endif
+# ifdef _MSC_VER
+# define __attribute__(x)
+# endif
+# define _PRINTF_INT64_ "I64"
+# define lrand48() rand()
+# define srand48(x) srand(x)
+ inline const char* GetLastErrorStr(int err)
+ {
+ static char errorText[256] = { 0 };
+ FormatMessageA(
+ FORMAT_MESSAGE_FROM_SYSTEM,
+ NULL,
+ err,
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+ (LPSTR)&errorText,
+ 256,
+ NULL);
+ return (const char*)errorText;
+ }
+
+ inline const char* GetErrnoStr(int err)
+ {
+ static char errnoStr[256] = { 0 };
+ strerror_s(errnoStr, 256, err);
+ return (const char*)errnoStr;
+ }
+#else
+# define _PRINTF_INT64_ "ll"
+#endif
+
+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;
+
+enum tgl_value_type {
+ tgl_phone_number, // user phone number
+ tgl_code, // telegram login code, or 'call' for phone call request
+ tgl_register_info, // "Y/n" register?, first name, last name
+ tgl_new_password, // new pass, confirm new pass
+ tgl_cur_and_new_password, // curr pass, new pass, confirm new pass
+ tgl_cur_password, // current pass
+ tgl_bot_hash
+};
+
+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_values)(struct tgl_state *TLS, enum tgl_value_type type, const char *prompt, int num_values,
+ void (*callback)(struct tgl_state *TLS, const 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, const char *type, const 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 tree_random_id;
+
+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;
+ int disable_link_preview;
+
+ 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;
+ void *ev_base;
+
+ 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;
+ struct tree_photo *photo_tree;
+ struct tree_document *document_tree;
+ struct tree_webpage *webpage_tree;
+ struct tree_encr_document *encr_document_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;
+
+ struct tree_random_id *random_id_tree;
+
+ char *error;
+ int error_code;
+
+ int is_bot;
+};
+#pragma pack(pop)
+//extern struct tgl_state tgl_state;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+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);
+int tgl_do_send_bot_auth (struct tgl_state *TLS, const char *code, int code_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *Self), void *callback_extra);
+
+#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);
+void tgl_set_ev_base (struct tgl_state *TLS, void *ev_base);
+
+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_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);
+
+#define TGL_SEND_MSG_FLAG_DISABLE_PREVIEW 1
+#define TGL_SEND_MSG_FLAG_ENABLE_PREVIEW 2
+
+#define TGL_SEND_MSG_FLAG_DOCUMENT_IMAGE TGLDF_IMAGE
+#define TGL_SEND_MSG_FLAG_DOCUMENT_STICKER TGLDF_STICKER
+#define TGL_SEND_MSG_FLAG_DOCUMENT_ANIMATED TGLDF_ANIMATED
+#define TGL_SEND_MSG_FLAG_DOCUMENT_AUDIO TGLDF_AUDIO
+#define TGL_SEND_MSG_FLAG_DOCUMENT_VIDEO TGLDF_VIDEO
+#define TGL_SEND_MSG_FLAG_DOCUMENT_AUTO 32
+#define TGL_SEND_MSG_FLAG_DOCUMENT_PHOTO 64
+
+#define TGL_SEND_MSG_FLAG_REPLY(x) (((unsigned long long)x) << 32)
+
+typedef tgl_peer_id_t tgl_user_id_t;
+typedef tgl_peer_id_t tgl_chat_id_t;
+typedef tgl_peer_id_t tgl_secret_chat_id_t;
+typedef tgl_peer_id_t tgl_user_or_chat_id_t;
+
+void tgl_insert_empty_user (struct tgl_state *TLS, int id);
+void tgl_insert_empty_chat (struct tgl_state *TLS, int id);
+
+
+void tgl_free_all (struct tgl_state *TLS);
+void tgl_register_app_id (struct tgl_state *TLS, int app_id, const char *app_hash);
+
+void tgl_login (struct tgl_state *TLS);
+void tgl_enable_ipv6 (struct tgl_state *TLS);
+void tgl_enable_bot (struct tgl_state *TLS);
+
+struct tgl_state *tgl_state_alloc (void);
+
+void tgl_disable_link_preview (struct tgl_state *TLS);
+void tgl_do_lookup_state (struct tgl_state *TLS);
+
+/* {{{ WORK WITH ACCOUNT */
+// sets account password
+// user will be requested to type his current password and new password (twice)
+void tgl_do_set_password (struct tgl_state *TLS, const char *hint, int hint_len, void (*callback)(struct tgl_state *TLS, void *extra, int success), void *extra);
+/* }}} */
+
+/* {{{ SENDING MESSAGES */
+
+struct tl_ds_reply_markup;
+
+// send plain text message to peer id
+// flags is combination of TGL_SEND_MSG_FLAG_*
+// reply markup can be NULL
+void tgl_do_send_message (struct tgl_state *TLS, tgl_peer_id_t id, const char *text, int text_len, unsigned long long flags, struct tl_ds_reply_markup *reply_markup, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+
+// sends plain text reply on message *reply_id*
+// message *reply_id* should be cached
+void tgl_do_reply_message (struct tgl_state *TLS, int reply_id, const char *text, int text_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+
+// sends contents of text file *file_name* as plain text message
+void tgl_do_send_text (struct tgl_state *TLS, tgl_peer_id_t id, const char *file_name, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_reply_text (struct tgl_state *TLS, int reply_id, const char *file_name, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+
+// send media from file *file_name* to peer *to_id*
+// if reply > 0 this message is sent as reply to message *reply*
+// *caption* is used only for photos
+void tgl_do_send_document (struct tgl_state *TLS, tgl_peer_id_t to_id, const char *file_name, const char *caption, int caption_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_reply_document (struct tgl_state *TLS, int reply_id, const char *file_name, const char *caption, int caption_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+
+// forward message *msg_id* to peer *id*
+// message can not be encrypted and peer can not be secret chat
+void tgl_do_forward_message (struct tgl_state *TLS, tgl_user_or_chat_id_t id, int msg_id, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+
+// forward messages *ids* to peer *id*
+// messages can not be encrypted and peer can not be secret chat
+void tgl_do_forward_messages (struct tgl_state *TLS, tgl_user_or_chat_id_t id, int size, const int ids[], unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int count, struct tgl_message *ML[]), void *callback_extra);
+
+// sends contact to another user.
+// This contact may be or may not be telegram user
+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, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+
+// reply on message *reply_id* with contact
+void tgl_do_reply_contact (struct tgl_state *TLS, int reply_id, const char *phone, int phone_len, const char *first_name, int first_name_len, const char *last_name, int last_name_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+
+// sends media from message *msg_id* to another dialog
+// a bit different from forwarding message with media
+// secret message media can be forwarded to secret chats
+// and non-secret - to non-secret chats and users
+void tgl_do_forward_media (struct tgl_state *TLS, tgl_peer_id_t id, int msg_id, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+
+// sends location to chat *id*
+void tgl_do_send_location (struct tgl_state *TLS, tgl_peer_id_t id, double latitude, double longitude, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+
+// replies on message *reply_id* with location
+void tgl_do_reply_location (struct tgl_state *TLS, int reply_id, double latitude, double longitude, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+
+// sends broadcast (i.e. message to several users at once)
+// flags are same as in tgl_do_send_message
+void tgl_do_send_broadcast (struct tgl_state *TLS, int num, tgl_user_id_t id[], const char *text, int text_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *extra, int success, int num, struct tgl_message *ML[]), void *callback_extra);
+
+/* }}} */
+
+/* {{{ EDITING SELF PROFILE */
+// sets self profile photo
+// server will cut central square from this photo
+void tgl_do_set_profile_photo (struct tgl_state *TLS, const char *file_name, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+
+// rename self account
+void tgl_do_set_profile_name (struct tgl_state *TLS, 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_user *U), void *callback_extra);
+
+// sets self username
+void tgl_do_set_username (struct tgl_state *TLS, const char *username, int username_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra);
+
+// updates online/offline status
+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);
+
+// exports card. This card can be later be used by another user to add you to dialog list.
+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);
+/* }}} */
+
+/* {{{ WORKING WITH GROUP CHATS */
+
+// sets chat photo
+// server will cut central square from this photo
+void tgl_do_set_chat_photo (struct tgl_state *TLS, tgl_chat_id_t chat_id, const char *file_name, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+
+// sets chat title
+void tgl_do_rename_chat (struct tgl_state *TLS, tgl_chat_id_t id, const char *new_title, int new_title_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+
+// requests full info about chat *id*.
+// if *offline_mode* is set no actual query is sent
+void tgl_do_get_chat_info (struct tgl_state *TLS, tgl_chat_id_t id, int offline_mode, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_chat *C), void *callback_extra);
+
+// adds user *id* to chat *chat_id*
+// sends *limit* last messages from this chat to user
+void tgl_do_add_user_to_chat (struct tgl_state *TLS, tgl_chat_id_t chat_id, tgl_user_id_t id, int limit, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+
+// deleted user *id* from chat *chat_id*
+// you can do it if you are admin (=creator) of chat or if you invited this user or if it is yourself
+void tgl_do_del_user_from_chat (struct tgl_state *TLS, tgl_chat_id_t chat_id, tgl_user_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+
+// creates group chat with users ids
+// there should be at least one user other then you in chat
+void tgl_do_create_group_chat (struct tgl_state *TLS, int users_num, tgl_user_id_t ids[], const char *chat_topic, int chat_topic_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+
+// receives invitation link to this chat
+// only chat admin can create one
+// prevoius link invalidated, if existed
+void tgl_do_export_chat_link (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *link), void *callback_extra);
+
+// joins to secret chat by link (or hash of this link)
+void tgl_do_import_chat_link (struct tgl_state *TLS, const char *link, int link_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+
+/* }}} */
+
+/* {{{ WORKING WITH USERS */
+
+// requests full info about user *id*.
+// if *offline_mode* is set no actual query is sent
+void tgl_do_get_user_info (struct tgl_state *TLS, tgl_user_id_t id, int offline_mode, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra);
+
+// adds contact to contact list by phone number
+// user will be named *first_name* *last_name* in contact list
+// force should be set to 0
+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);
+
+// deletes user *id* from contact list
+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);
+
+// imports card exported by another 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);
+
+// blocks user
+void tgl_do_block_user (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+
+// unblocks blocked user
+void tgl_do_unblock_user (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+/* }}} */
+
+/* {{{ WORKING WITH SECRET CHATS */
+
+// requests creation of secret chat with user *user_id*
+//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);
+
+// accepts secret chat request
+// method can fail if another device will be first to accept it
+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);
+
+// sets ttl of secret chat
+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);
+
+// returns secret chat fingerprint
+int tgl_do_visualize_key (struct tgl_state *TLS, tgl_secret_chat_id_t id, unsigned char buf[16]);
+
+// requests creation of secret chat with user id
+void tgl_do_create_secret_chat (struct tgl_state *TLS, tgl_user_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra);
+/* }}} */
+
+/* {{{ WORKING WITH DIALOG LIST */
+
+// receives all dialogs (except secret chats) from offset=*offset* with limit=*limit*
+// dialogs are sorted by last message received
+// if limit is > 100 there is a (small) chance of one dialog received twice
+void tgl_do_get_dialog_list (struct tgl_state *TLS, int limit, int offset, 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);
+
+// resolves username
+void tgl_do_contact_search (struct tgl_state *TLS, const char *name, int name_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra);
+
+// requests contact list
+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);
+
+/* }}} */
+
+/* {{{ WORKING WITH ONE DIALOG */
+
+// marks all inbound messages from peer id as read
+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);
+
+// requests last *limit* from offset *offset* (offset = 0 means most recent) messages from dialog with peer id
+// if offline_mode=1 then no actual query is sent
+// only locally cached messages returned
+// also marks messages from this chat as read
+void tgl_do_get_history (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);
+
+// sends typing event to chat
+// set status=tgl_typing_typing for default typing event
+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);
+
+/* }}} */
+
+/* {{{ WORKING WITH MEDIA */
+
+// loads photo/document/document_thumb to downloads directory
+// if file is presented it is not redownloaded (but if it is shortened tail will be downloaded)
+// returns file name in callback
+void tgl_do_load_photo (struct tgl_state *TLS, struct tgl_photo *photo, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *file_name), 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, const char *file_name), 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, const char *file_name), 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, const char *file_name), void *callback_extra);
+void tgl_do_load_video (struct tgl_state *TLS, struct tgl_document *V, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra);
+void tgl_do_load_audio (struct tgl_state *TLS, struct tgl_document *V, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra);
+
+
+// loads file by location. Use only for small files!
+void tgl_do_load_file_location (struct tgl_state *TLS, struct tgl_file_location *FL, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *file_name), void *callback_extra);
+
+/* }}} */
+
+
+/* {{{ ANOTHER MESSAGES FUNCTIONS */
+// search messages with ids *from* .. *to* in dialog id
+// id type of id is UNKNOWN uses global search (in all dialogs) instead
+// if *from* or *to* is means *from*=0 and *to*=+INF
+// return up to *limit* entries from offset=*offset*
+void tgl_do_msg_search (struct tgl_state *TLS, tgl_user_or_chat_id_t id, int from, int to, int limit, int offset, const char *query, int query_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra);
+
+// deletes message *id*
+void tgl_do_delete_msg (struct tgl_state *TLS, long long msg_id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+
+// gets message by *id*
+void tgl_do_get_message (struct tgl_state *TLS, long long id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+
+/* }}} */
+
+
+/* {{{ EXTENDED QUERIES USE WITH CAUTION */
+// sends query with extended text syntax
+// use only for debug or when you known what are you doing
+// since answer is not interpretated by library in any way
+void tgl_do_send_extf (struct tgl_state *TLS, const char *data, int data_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *data), void *callback_extra);
+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);
+/* }}} */
+
+/* {{{ BOT */
+void tgl_do_start_bot (struct tgl_state *TLS, tgl_peer_id_t bot, tgl_peer_id_t chat, const char *str, int str_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+/* }}} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/libs/tgl/src/tools.c b/libs/tgl/src/tools.c
new file mode 100644
index 0000000000..e4022c0ca1
--- /dev/null
+++ b/libs/tgl/src/tools.c
@@ -0,0 +1,406 @@
+/*
+ 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\src\zlib.h"
+#include <time.h>
+#if defined(WIN32) || defined(_WIN32)
+#include <sys/timeb.h>
+#include <sys/types.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#else
+#include <sys/time.h>
+#endif // _WIN32
+
+//#include "interface.h"
+#include "tools.h"
+
+#ifdef __MACH__
+#include <mach/clock.h>
+#include <mach/mach.h>
+#endif
+
+#if defined(__MACH__) || defined(WIN32) || defined(_WIN32)
+#define CLOCK_REALTIME 0
+#define CLOCK_MONOTONIC 1
+#endif
+
+#ifdef VALGRIND_FIXES
+#include "valgrind/memcheck.h"
+#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;
+
+#if defined(WIN32) || defined(_WIN32)
+#define exp7 10000000i64 //1E+7 //C-file part
+#define exp9 1000000000i64 //1E+9
+#define w2ux 116444736000000000i64 //1.jan1601 to 1.jan1970
+#define __need_clock_t
+#include <time.h>
+
+int gettimeofday(struct timeval* t, void* timezone) {
+ struct _timeb timebuffer;
+ _ftime_s(&timebuffer);
+ t->tv_sec = (long)timebuffer.time;
+ t->tv_usec = 1000 * timebuffer.millitm;
+ return 0;
+}
+
+
+struct tms {
+ clock_t tms_utime;
+ clock_t tms_stime;
+
+ clock_t tms_cutime;
+ clock_t tms_cstime;
+};
+
+clock_t times(struct tms *__buffer) {
+ __buffer->tms_utime = clock();
+ __buffer->tms_stime = 0;
+ __buffer->tms_cstime = 0;
+ __buffer->tms_cutime = 0;
+ return __buffer->tms_utime;
+}
+
+typedef long long suseconds_t;
+
+int vasprintf(char ** __restrict ret, const char * __restrict format, va_list ap) {
+ int len;
+ /* Get Length */
+ len = _vsnprintf_s(NULL, 0, 0, format, ap);
+ if (len < 0) return -1;
+
+ /* +1 for \0 terminator. */
+ *ret = malloc(len + 1);
+ if (!*ret) return -1;
+
+ _vsnprintf_s(*ret, len + 1, len + 1, format, ap);
+
+ /* Terminate explicitly */
+ (*ret)[len] = '\0';
+ return len;
+}
+#endif // WIN32
+
+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);
+}
+
+//extern int verbosity;
+
+//static long long total_allocated_bytes;
+
+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;
+ (char*)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 *)((char *)ptr + RES_PRE + size) == (int)((size) ^ 0x7bed7bed));
+ assert (*(int *)((char *)ptr + 4) == size);
+ int block_num = *(int *)((char*)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 *)((char *)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) {
+ memset (ptr, 0, 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 *)((char *)p + 4) = size;
+ *(int *)((char *)p + RES_PRE + size) = size ^ 0x7bed7bed;
+ *(int *)((char *)p + RES_AFTER + 4 + size) = used_blocks;
+ blocks[used_blocks ++] = p;
+
+ //tcheck ();
+ return (char *)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);
+#if defined(WIN32) || defined(_WIN32)
+ ZeroMemory(p, l + 1);
+#endif
+ 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;
+}
+
+void *tgl_memdup (const void *s, size_t n) {
+ void *r = talloc (n);
+ memcpy (r, s, n);
+ return r;
+}
+
+
+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 *)((char *)ptr + 4) == size) ||
+ !(*(int *)((char *)ptr + RES_PRE + size) == (size ^ 0x7bed7bed)) ||
+ !(*(int *)((char *)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 *)((char *)ptr + 4 + j)) {
+ hexdump ((char *)ptr + 8, (char *)ptr + 8 + l + ((-l) & 3));
+ logprintf ("Used freed memory size = %d. ptr = %p\n", l + 4 - RES_PRE - RES_AFTER, ptr);
+ assert (0);
+ }
+ }
+ }
+ //logprintf ("ok. Used_blocks = %d. Free blocks = %d\n", used_blocks, free_blocks_cnt);
+}
+
+void tgl_exists_debug (void *ptr, int size) {
+ (char *)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 *)((char *)ptr + RES_PRE + size) == (int)((size) ^ 0x7bed7bed));
+ assert (*(int *)((char *)ptr + 4) == size);
+ int block_num = *(int *)((char *)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) {
+#if defined(WIN32) || defined(_WIN32)
+ static double ticks2nano;
+ static __int64 tps = 0;
+ __int64 tmp, curticks;
+ _Bool real_time = (clock_id == CLOCK_REALTIME);
+
+ QueryPerformanceFrequency((LARGE_INTEGER*)&tmp);
+ if (tps != tmp) {
+ tps = tmp;
+ ticks2nano = (double)exp9 / tps;
+ }
+
+ if (clock_id == CLOCK_REALTIME)
+ {
+ __int64 wintime;
+ GetSystemTimeAsFileTime((FILETIME*)&wintime);
+ wintime -= w2ux;
+ T->tv_sec = wintime / exp7;
+ T->tv_nsec = wintime % exp7 * 100;
+ }
+ else
+ {
+ QueryPerformanceCounter((LARGE_INTEGER*)&curticks);
+ T->tv_sec = (long)(curticks / tps);
+ T->tv_nsec = (long)((double)(curticks % tps) * ticks2nano);
+ }
+
+ if (!(T->tv_nsec < exp9))
+ {
+ T->tv_sec++;
+ T->tv_nsec -= exp9;
+ }
+
+#elif defined( __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");
+ //}
+ } else {
+ #ifdef VALGRIND_FIXES
+ VALGRIND_MAKE_MEM_DEFINED (s, l);
+ VALGRIND_CHECK_MEM_IS_DEFINED (s, l);
+ #endif
+ }
+}
+
+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/libs/tgl/src/tools.h b/libs/tgl/src/tools.h
new file mode 100644
index 0000000000..9484e60bf1
--- /dev/null
+++ b/libs/tgl/src/tools.h
@@ -0,0 +1,142 @@
+/*
+ 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 tmemdup tgl_memdup
+#define tstrndup tgl_strndup
+#define tasprintf tgl_asprintf
+#define tsnprintf tgl_snprintf
+
+struct _timespec32
+{
+ __time32_t tv_sec;
+ long tv_nsec;
+};
+
+struct _timespec64
+{
+ __time64_t tv_sec;
+ long tv_nsec;
+};
+
+#ifndef _CRT_NO_TIME_T
+struct timespec
+{
+ time_t tv_sec; // Seconds - >= 0
+ long tv_nsec; // Nanoseconds - [0, 999999999]
+};
+#endif
+
+extern 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);
+
+void *tgl_memdup (const void *s, size_t n);
+
+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 ((const char *)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;
+ unsigned char *bptr = (unsigned char *)ptr;
+ while (bptr < (unsigned char *)end_ptr) {
+ fprintf (stderr, "%02x", (int)*bptr);
+ bptr ++;
+ total ++;
+ if (total == 16) {
+ fprintf (stderr, "\n");
+ total = 0;
+ }
+ }
+ if (total) { fprintf (stderr, "\n"); }
+}
+
+
+#endif
diff --git a/libs/tgl/src/tree.h b/libs/tgl/src/tree.h
new file mode 100644
index 0000000000..18feb3aed5
--- /dev/null
+++ b/libs/tgl/src/tree.h
@@ -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/libs/tgl/src/updates.c b/libs/tgl/src/updates.c
new file mode 100644
index 0000000000..0f4b209f54
--- /dev/null
+++ b/libs/tgl/src/updates.c
@@ -0,0 +1,668 @@
+/*
+ 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 "auto/auto-types.h"
+#include "auto/auto-skip.h"
+#include "auto/auto-fetch-ds.h"
+#include "auto/auto-free-ds.h"
+#include "tgl-structures.h"
+#include "tgl-methods-in.h"
+#include "tree.h"
+
+#include <assert.h>
+
+static void fetch_dc_option_new (struct tgl_state *TLS, struct tl_ds_dc_option *DS_DO) {
+ vlogprintf (E_DEBUG, "id = %d, name = %.*s ip = %.*s port = %d\n", DS_LVAL (DS_DO->id), DS_RSTR (DS_DO->hostname), DS_RSTR (DS_DO->ip_address), DS_LVAL (DS_DO->port));
+
+ bl_do_dc_option (TLS, DS_LVAL (DS_DO->id), DS_STR (DS_DO->hostname), DS_STR (DS_DO->ip_address), DS_LVAL (DS_DO->port));
+}
+
+int tgl_check_pts_diff (struct tgl_state *TLS, int pts, int pts_count) {
+ vlogprintf (E_DEBUG - 1, "pts = %d, pts_count = %d\n", pts, pts_count);
+ if (!TLS->pts) {
+ return 1;
+ }
+ //assert (TLS->pts);
+ if (pts < TLS->pts + pts_count) {
+ vlogprintf (E_NOTICE, "Duplicate message with pts=%d\n", pts);
+ return -1;
+ }
+ if (pts > TLS->pts + pts_count) {
+ vlogprintf (E_NOTICE, "Hole in pts (pts = %d, count = %d, cur_pts = %d)\n", pts, pts_count, TLS->pts);
+ tgl_do_get_difference (TLS, 0, 0, 0);
+ return -1;
+ }
+ if (TLS->locks & TGL_LOCK_DIFF) {
+ vlogprintf (E_DEBUG, "Update during get_difference. pts = %d\n", pts);
+ return -1;
+ }
+ vlogprintf (E_DEBUG, "Ok update. pts = %d\n", pts);
+ return 1;
+}
+
+int tgl_check_qts_diff (struct tgl_state *TLS, int qts, int qts_count) {
+ vlogprintf (E_ERROR, "qts = %d, qts_count = %d\n", qts, qts_count);
+ if (qts < TLS->qts + qts_count) {
+ vlogprintf (E_NOTICE, "Duplicate message with qts=%d\n", qts);
+ return -1;
+ }
+ if (qts > TLS->qts + qts_count) {
+ vlogprintf (E_NOTICE, "Hole in qts (qts = %d, count = %d, cur_qts = %d)\n", qts, qts_count, TLS->qts);
+ tgl_do_get_difference (TLS, 0, 0, 0);
+ return -1;
+ }
+ if (TLS->locks & TGL_LOCK_DIFF) {
+ vlogprintf (E_DEBUG, "Update during get_difference. qts = %d\n", qts);
+ return -1;
+ }
+ vlogprintf (E_DEBUG, "Ok update. qts = %d\n", qts);
+ return 1;
+}
+
+static int do_skip_seq (struct tgl_state *TLS, int seq) {
+ if (!seq) {
+ vlogprintf (E_DEBUG, "Ok update. seq = %d\n", seq);
+ return 0;
+ }
+ 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_update_new (struct tgl_state *TLS, int check_only, struct tl_ds_update *DS_U) {
+ if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) {
+ vlogprintf (E_DEBUG, "Update during get_difference. DROP\n");
+ return;
+ }
+
+ if (DS_U->pts) {
+ assert (DS_U->pts_count);
+
+ if (!check_only && tgl_check_pts_diff (TLS, DS_LVAL (DS_U->pts), DS_LVAL (DS_U->pts_count)) <= 0) {
+ return;
+ }
+ }
+
+ if (DS_U->qts) {
+ if (!check_only && tgl_check_qts_diff (TLS, DS_LVAL (DS_U->qts), 1) <= 0) {
+ return;
+ }
+ }
+
+ if (check_only > 0 && DS_U->magic != CODE_update_message_i_d) { return; }
+ switch (DS_U->magic) {
+ case CODE_update_new_message:
+ {
+ struct tgl_message *N = tgl_message_get (TLS, DS_LVAL (DS_U->id));
+ int new = (!N || !(N->flags & TGLMF_CREATED));
+ struct tgl_message *M = tglf_fetch_alloc_message_new (TLS, DS_U->message);
+ assert (M);
+ if (new) {
+ bl_do_msg_update (TLS, M->id);
+ }
+ break;
+ };
+ case CODE_update_message_i_d:
+ {
+ struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->random_id));
+ if (M) {
+ tgls_insert_random2local (TLS, DS_LVAL (DS_U->random_id), DS_LVAL (DS_U->id));
+ bl_do_set_msg_id (TLS, M, DS_LVAL (DS_U->id));
+ }
+ }
+ break;
+/* case CODE_update_read_messages:
+ {
+ int n = DS_LVAL (DS_U->messages->cnt);
+
+ int i;
+ for (i = 0; i < n; i++) {
+ struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->messages->data[i]));
+ if (M) {
+ tgl_peer_t *P;
+ if (M->flags & TGLMF_OUT) {
+ P = tgl_peer_get (TLS, M->to_id);
+ if (P && (P->flags & TGLMF_CREATED)) {
+ if (tgl_get_peer_type (P->id) == TGL_PEER_USER) {
+ bl_do_user_new (TLS, tgl_get_peer_id (P->id), NULL, NULL, 0, NULL, 0, NULL, 0, NULL, 0, NULL, NULL, 0, NULL, 0, NULL, NULL, (int *)&M->id, TGL_FLAGS_UNCHANGED);
+ } else {
+ bl_do_chat_new (TLS, tgl_get_peer_id (P->id), NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, (int *)&M->id, TGL_FLAGS_UNCHANGED);
+ }
+ }
+ } else {
+ if (tgl_get_peer_type (M->to_id) == TGL_PEER_USER) {
+ P = tgl_peer_get (TLS, M->from_id);
+ } else {
+ P = tgl_peer_get (TLS, M->to_id);
+ }
+ if (P && (P->flags & TGLMF_CREATED)) {
+ if (tgl_get_peer_type (P->id) == TGL_PEER_USER) {
+ bl_do_user_new (TLS, tgl_get_peer_id (P->id), NULL, NULL, 0, NULL, 0, NULL, 0, NULL, 0, NULL, NULL, 0, NULL, 0, NULL, (int *)&M->id, NULL, TGL_FLAGS_UNCHANGED);
+ } else {
+ bl_do_chat_new (TLS, tgl_get_peer_id (P->id), NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, (int *)&M->id, NULL, TGL_FLAGS_UNCHANGED);
+ }
+ }
+ }
+ }
+ }
+ }
+ break;*/
+ case CODE_update_user_typing:
+ {
+ tgl_peer_id_t id = TGL_MK_USER (DS_LVAL (DS_U->user_id));
+ tgl_peer_t *U = tgl_peer_get (TLS, id);
+ enum tgl_typing_status status = tglf_fetch_typing_new (DS_U->action);
+
+ if (TLS->callback.type_notification && U) {
+ TLS->callback.type_notification (TLS, (void *)U, status);
+ }
+ }
+ break;
+ case CODE_update_chat_user_typing:
+ {
+ tgl_peer_id_t chat_id = TGL_MK_CHAT (DS_LVAL (DS_U->chat_id));
+ tgl_peer_id_t id = TGL_MK_USER (DS_LVAL (DS_U->user_id));
+ 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_new (DS_U->action);
+
+ 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 (DS_LVAL (DS_U->user_id));
+ tgl_peer_t *U = tgl_peer_get (TLS, user_id);
+ if (U) {
+ tglf_fetch_user_status_new (TLS, &U->user.status, &U->user, DS_U->status);
+
+ if (TLS->callback.status_notification) {
+ TLS->callback.status_notification (TLS, (void *)U);
+ }
+ }
+ }
+ break;
+ case CODE_update_user_name:
+ {
+ tgl_peer_id_t user_id = TGL_MK_USER (DS_LVAL (DS_U->user_id));
+ tgl_peer_t *UC = tgl_peer_get (TLS, user_id);
+ if (UC && (UC->flags & TGLPF_CREATED)) {
+ bl_do_user_new (TLS, tgl_get_peer_id (user_id), NULL, NULL, 0, NULL, 0, NULL, 0, DS_STR (DS_U->username), NULL, DS_STR (DS_U->first_name), DS_STR (DS_U->last_name), NULL, NULL, NULL, NULL, TGL_FLAGS_UNCHANGED);
+ }
+ }
+ break;
+ case CODE_update_user_photo:
+ {
+ tgl_peer_id_t user_id = TGL_MK_USER (DS_LVAL (DS_U->user_id));
+ tgl_peer_t *UC = tgl_peer_get (TLS, user_id);
+
+ if (UC && (UC->flags & TGLUF_CREATED)) {
+ bl_do_user_new (TLS, tgl_get_peer_id (user_id), NULL, NULL, 0, NULL, 0, NULL, 0, NULL, 0, NULL, NULL, 0, NULL, 0, DS_U->photo, NULL, NULL, NULL, TGL_FLAGS_UNCHANGED);
+ }
+ }
+ break;
+ case CODE_update_delete_messages:
+ {
+ }
+ break;
+ case CODE_update_chat_participants:
+ {
+ tgl_peer_id_t chat_id = TGL_MK_CHAT (DS_LVAL (DS_U->chat_id));
+ tgl_peer_t *C = tgl_peer_get (TLS, chat_id);
+ if (C && (C->flags & TGLPF_CREATED) && DS_U->participants->magic == CODE_chat_participants) {
+ bl_do_chat_new (TLS, tgl_get_peer_id (chat_id), NULL, 0, NULL, NULL, DS_U->participants->version, (struct tl_ds_vector *)DS_U->participants->participants, NULL, NULL, NULL, NULL, NULL, TGL_FLAGS_UNCHANGED);
+ }
+ }
+ break;
+ case CODE_update_contact_registered:
+ {
+ tgl_peer_id_t user_id = TGL_MK_USER (DS_LVAL (DS_U->user_id));
+ tgl_peer_t *U = tgl_peer_get (TLS, user_id);
+ if (TLS->callback.user_registered && U) {
+ TLS->callback.user_registered (TLS, (void *)U);
+ }
+ }
+ break;
+ case CODE_update_contact_link:
+ {
+ }
+ break;
+ /*case CODE_update_activation:
+ {
+ tgl_peer_id_t user_id = TGL_MK_USER (DS_LVAL (DS_U->user_id));
+ 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:
+ {
+ if (TLS->callback.new_authorization) {
+ TLS->callback.new_authorization (TLS, DS_U->device->data, DS_U->location->data);
+ }
+ }
+ break;
+ case CODE_update_new_geo_chat_message:
+ {
+ }
+ break;
+ case CODE_update_new_encrypted_message:
+ {
+ struct tgl_message *M = tglf_fetch_alloc_encrypted_message_new (TLS, DS_U->encr_message);
+ bl_do_msg_update (TLS, M->id);
+ }
+ break;
+ case CODE_update_encryption:
+ {
+ struct tgl_secret_chat *E = tglf_fetch_alloc_encrypted_chat_new (TLS, DS_U->encr_chat);
+ vlogprintf (E_DEBUG, "Secret chat state = %d\n", E->state);
+ if (E->state == sc_ok) {
+ tgl_do_send_encr_chat_layer (TLS, E);
+ }
+ }
+ break;
+ case CODE_update_encrypted_chat_typing:
+ {
+ tgl_peer_id_t id = TGL_MK_ENCR_CHAT (DS_LVAL (DS_U->chat_id));
+ 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 (DS_LVAL (DS_U->chat_id));
+ tgl_peer_t *P = tgl_peer_get (TLS, id);
+
+ if (P && P->last) {
+ struct tgl_message *M = P->last;
+ while (M && (!(M->flags & TGLMF_OUT) || (M->flags & TGLMF_UNREAD))) {
+ if (M->flags & TGLMF_OUT) {
+ bl_do_create_message_encr_new (TLS, M->id, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, M->flags & ~TGLMF_UNREAD);
+ }
+ M = M->next;
+ }
+ }
+ }
+ break;
+ case CODE_update_chat_participant_add:
+ {
+ tgl_peer_id_t chat_id = TGL_MK_CHAT (DS_LVAL (DS_U->chat_id));
+ tgl_peer_id_t user_id = TGL_MK_USER (DS_LVAL (DS_U->user_id));
+ tgl_peer_id_t inviter_id = TGL_MK_USER (DS_LVAL (DS_U->inviter_id));
+ int version = DS_LVAL (DS_U->version);
+
+ tgl_peer_t *C = tgl_peer_get (TLS, chat_id);
+ if (C && (C->flags & TGLPF_CREATED)) {
+ bl_do_chat_add_user (TLS, &C->chat, version, tgl_get_peer_id (user_id), tgl_get_peer_id (inviter_id), (int)time (0));
+ }
+ }
+ break;
+ case CODE_update_chat_participant_delete:
+ {
+ tgl_peer_id_t chat_id = TGL_MK_CHAT (DS_LVAL (DS_U->chat_id));
+ tgl_peer_id_t user_id = TGL_MK_USER (DS_LVAL (DS_U->user_id));
+ int version = DS_LVAL (DS_U->version);
+
+ tgl_peer_t *C = tgl_peer_get (TLS, chat_id);
+ if (C && (C->flags & TGLPF_CREATED)) {
+ bl_do_chat_del_user (TLS, &C->chat, version, tgl_get_peer_id (user_id));
+ }
+ }
+ break;
+ case CODE_update_dc_options:
+ {
+ int i;
+ for (i = 0; i < DS_LVAL (DS_U->dc_options->cnt); i++) {
+ fetch_dc_option_new (TLS, DS_U->dc_options->data[i]);
+ }
+ }
+ break;
+ case CODE_update_user_blocked:
+ {
+ int blocked = DS_BVAL (DS_U->blocked);
+ tgl_peer_t *P = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_U->user_id)));
+ if (P && (P->flags & TGLPF_CREATED)) {
+ int flags = P->flags & 0xffff;
+ if (blocked) {
+ flags |= TGLUF_BLOCKED;
+ } else {
+ flags &= ~TGLUF_BLOCKED;
+ }
+ bl_do_user_new (TLS, tgl_get_peer_id (P->id), NULL, NULL, 0, NULL, 0, NULL, 0, NULL, 0, NULL, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL, flags);
+ }
+ }
+ break;
+ case CODE_update_notify_settings:
+ {
+ }
+ break;
+ case CODE_update_service_notification:
+ {
+ vlogprintf (E_ERROR, "Notification %.*s: %.*s\n", DS_RSTR (DS_U->type), DS_RSTR (DS_U->message_text));
+ if (TLS->callback.notification) {
+ TLS->callback.notification (TLS, DS_U->type->data, DS_U->message_text->data);
+ }
+ }
+ break;
+ case CODE_update_privacy:
+ vlogprintf (E_NOTICE, "privacy change update\n");
+ break;
+ case CODE_update_user_phone:
+ {
+ tgl_peer_t *U = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_U->user_id)));
+ if (U && (U->flags & TGLPF_CREATED)) {
+ bl_do_user_new (TLS, tgl_get_peer_id (U->id), NULL, NULL, 0, NULL, 0, DS_STR (DS_U->phone), NULL, 0, NULL, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL, TGL_FLAGS_UNCHANGED);
+ }
+ }
+ break;
+ case CODE_update_read_history_inbox:
+ {
+ tgl_peer_id_t id = tglf_fetch_peer_id_new (TLS, DS_U->peer);
+ tgl_peer_t *P = tgl_peer_get (TLS, id);
+ if (P && (P->flags & TGLPF_CREATED)) {
+ if (tgl_get_peer_type (P->id) == TGL_PEER_USER) {
+ bl_do_user_new (TLS, tgl_get_peer_id (P->id), NULL, NULL, 0, NULL, 0, NULL, 0, NULL, 0, NULL, NULL, 0, NULL, 0, NULL, DS_U->max_id, NULL, NULL, TGL_FLAGS_UNCHANGED);
+ } else {
+ bl_do_chat_new (TLS, tgl_get_peer_id (P->id), NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, DS_U->max_id, NULL, TGL_FLAGS_UNCHANGED);
+ }
+ }
+ }
+ break;
+ case CODE_update_read_history_outbox:
+ {
+ tgl_peer_id_t id = tglf_fetch_peer_id_new (TLS, DS_U->peer);
+ tgl_peer_t *P = tgl_peer_get (TLS, id);
+ if (P && (P->flags & TGLPF_CREATED)) {
+ if (tgl_get_peer_type (P->id) == TGL_PEER_USER) {
+ bl_do_user_new (TLS, tgl_get_peer_id (P->id), NULL, NULL, 0, NULL, 0, NULL, 0, NULL, 0, NULL, NULL, 0, NULL, 0, NULL, NULL, DS_U->max_id, NULL, TGL_FLAGS_UNCHANGED);
+ } else {
+ bl_do_chat_new (TLS, tgl_get_peer_id (P->id), NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, DS_U->max_id, TGL_FLAGS_UNCHANGED);
+ }
+ }
+ }
+ break;
+ case CODE_update_web_page:
+ {
+ }
+ break;
+ case CODE_update_msg_update:
+ {
+ struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->id));
+ if (M) {
+ bl_do_msg_update (TLS, M->id);
+ }
+ }
+ break;
+ case CODE_update_read_messages_contents:
+ break;
+ default:
+ assert (0);
+ }
+
+ if (check_only) { return; }
+
+ if (DS_U->pts) {
+ assert (DS_U->pts_count);
+
+ bl_do_set_pts (TLS, DS_LVAL (DS_U->pts));
+ }
+ if (DS_U->qts) {
+ bl_do_set_qts (TLS, DS_LVAL (DS_U->qts));
+ }
+}
+
+void tglu_work_updates_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U) {
+ if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) {
+ return;
+ }
+
+ if (!check_only && do_skip_seq (TLS, DS_LVAL (DS_U->seq)) < 0) {
+ return;
+ }
+ int i;
+ for (i = 0; i < DS_LVAL (DS_U->users->cnt); i++) {
+ tglf_fetch_alloc_user_new (TLS, DS_U->users->data[i]);
+ }
+ for (i = 0; i < DS_LVAL (DS_U->chats->cnt); i++) {
+ tglf_fetch_alloc_chat_new (TLS, DS_U->chats->data[i]);
+ }
+ for (i = 0; i < DS_LVAL (DS_U->updates->cnt); i++) {
+ tglu_work_update_new (TLS, check_only, DS_U->updates->data[i]);
+ }
+
+ if (check_only) { return; }
+ bl_do_set_date (TLS, DS_LVAL (DS_U->date));
+ bl_do_set_seq (TLS, DS_LVAL (DS_U->seq));
+}
+
+void tglu_work_updates_combined_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U) {
+ if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) {
+ return;
+ }
+
+ if (!check_only && do_skip_seq (TLS, DS_LVAL (DS_U->seq_start)) < 0) {
+ return;
+ }
+
+ int i;
+ for (i = 0; i < DS_LVAL (DS_U->users->cnt); i++) {
+ tglf_fetch_alloc_user_new (TLS, DS_U->users->data[i]);
+ }
+ for (i = 0; i < DS_LVAL (DS_U->chats->cnt); i++) {
+ tglf_fetch_alloc_chat_new (TLS, DS_U->chats->data[i]);
+ }
+ for (i = 0; i < DS_LVAL (DS_U->updates->cnt); i++) {
+ tglu_work_update_new (TLS, check_only, DS_U->updates->data[i]);
+ }
+
+ if (check_only) { return; }
+ bl_do_set_date (TLS, DS_LVAL (DS_U->date));
+ bl_do_set_seq (TLS, DS_LVAL (DS_U->seq));
+}
+
+void tglu_work_update_short_message_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U) {
+ if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) {
+ return;
+ }
+
+ if (!check_only && tgl_check_pts_diff (TLS, DS_LVAL (DS_U->pts), DS_LVAL (DS_U->pts_count)) <= 0) {
+ return;
+ }
+
+ if (check_only > 0) { return; }
+
+ struct tgl_message *N = tgl_message_get (TLS, DS_LVAL (DS_U->id));
+ int new = (!N || !(N->flags & TGLMF_CREATED));
+
+ struct tgl_message *M = tglf_fetch_alloc_message_short_new (TLS, DS_U);
+ assert (M);
+
+ if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) {
+ return;
+ }
+
+ if (new) {
+ bl_do_msg_update (TLS, M->id);
+ }
+
+ if (check_only) { return; }
+ bl_do_set_pts (TLS, DS_LVAL (DS_U->pts));
+}
+
+void tglu_work_update_short_chat_message_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U) {
+ if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) {
+ return;
+ }
+
+ if (!check_only && tgl_check_pts_diff (TLS, DS_LVAL (DS_U->pts), DS_LVAL (DS_U->pts_count)) <= 0) {
+ return;
+ }
+
+ if (check_only > 0) { return; }
+
+ struct tgl_message *N = tgl_message_get (TLS, DS_LVAL (DS_U->id));
+ int new = (!N || !(N->flags & TGLMF_CREATED));
+
+ struct tgl_message *M = tglf_fetch_alloc_message_short_chat_new (TLS, DS_U);
+ assert (M);
+
+ if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) {
+ return;
+ }
+
+ if (new) {
+ bl_do_msg_update (TLS, M->id);
+ }
+
+ if (check_only) { return; }
+ bl_do_set_pts (TLS, DS_LVAL (DS_U->pts));
+}
+
+void tglu_work_updates_to_long_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U) {
+ if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) {
+ return;
+ }
+ vlogprintf (E_NOTICE, "updates too long... Getting difference\n");
+ if (check_only) { return; }
+ tgl_do_get_difference (TLS, 0, 0, 0);
+}
+
+void tglu_work_update_short_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U) {
+ if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) {
+ return;
+ }
+ tglu_work_update_new (TLS, check_only, DS_U->update);
+}
+
+void tglu_work_any_updates_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U) {
+ if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) {
+ return;
+ }
+ switch (DS_U->magic) {
+ case CODE_updates_too_long:
+ tglu_work_updates_to_long_new (TLS, check_only, DS_U);
+ return;
+ case CODE_update_short_message:
+ tglu_work_update_short_message_new (TLS, check_only, DS_U);
+ return;
+ case CODE_update_short_chat_message:
+ tglu_work_update_short_chat_message_new (TLS, check_only, DS_U);
+ return;
+ case CODE_update_short:
+ tglu_work_update_short_new (TLS, check_only, DS_U);
+ return;
+ case CODE_updates_combined:
+ tglu_work_updates_combined_new (TLS, check_only, DS_U);
+ return;
+ case CODE_updates:
+ tglu_work_updates_new (TLS, check_only, DS_U);
+ return;
+ default:
+ assert (0);
+ }
+}
+
+void tglu_work_any_updates (struct tgl_state *TLS) {
+ struct tl_ds_updates *DS_U = fetch_ds_type_updates (TYPE_TO_PARAM (updates));
+ assert (DS_U);
+ tglu_work_any_updates_new (TLS, 1, DS_U);
+ tglu_work_any_updates_new (TLS, 0, DS_U);
+ free_ds_type_updates (DS_U, TYPE_TO_PARAM (updates));
+}
+
+#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 = (int)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/libs/tgl/src/updates.h b/libs/tgl/src/updates.h
new file mode 100644
index 0000000000..98f4654544
--- /dev/null
+++ b/libs/tgl/src/updates.h
@@ -0,0 +1,34 @@
+/*
+ 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 tl_ds_updates;
+struct tl_ds_update;
+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);
+
+int tgl_check_pts_diff (struct tgl_state *TLS, int pts, int pts_count);
+void tglu_work_update_new (struct tgl_state *TLS, int check_only, struct tl_ds_update *DS_U);
+void tglu_work_updates_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U);
+void tglu_work_any_updates (struct tgl_state *TLS);
+void tglu_work_any_updates_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U);
+#endif
diff --git a/libs/tgl/src/wingetopt.c b/libs/tgl/src/wingetopt.c
new file mode 100644
index 0000000000..09dac17a4f
--- /dev/null
+++ b/libs/tgl/src/wingetopt.c
@@ -0,0 +1,82 @@
+/*
+POSIX getopt for Windows
+
+AT&T Public License
+
+Code given out at the 1985 UNIFORUM conference in Dallas.
+*/
+
+#ifndef __GNUC__
+
+#include "wingetopt.h"
+#include <stdio.h>
+#include <string.h>
+
+#ifndef NULL
+#define NULL 0
+#endif
+#define EOF (-1)
+#define ERR(s, c) if(opterr){\
+ char errbuf[2];\
+ errbuf[0] = c; errbuf[1] = '\n';\
+ fputs(argv[0], stderr);\
+ fputs(s, stderr);\
+ fputc(c, stderr);}
+//(void) write(2, argv[0], (unsigned)strlen(argv[0]));\
+ //(void) write(2, s, (unsigned)strlen(s));\
+ //(void) write(2, errbuf, 2);}
+
+int opterr = 1;
+int optind = 1;
+int optopt;
+char *optarg;
+
+int
+getopt(argc, argv, opts)
+int argc;
+char **argv, *opts;
+{
+ static int sp = 1;
+ register int c;
+ register char *cp;
+
+ if (sp == 1)
+ if (optind >= argc ||
+ argv[optind][0] != '-' || argv[optind][1] == '\0')
+ return(EOF);
+ else if (strcmp(argv[optind], "--") == (int)NULL) {
+ optind++;
+ return(EOF);
+ }
+ optopt = c = argv[optind][sp];
+ if (c == ':' || (cp = strchr(opts, c)) == NULL) {
+ ERR(": illegal option -- ", c);
+ if (argv[optind][++sp] == '\0') {
+ optind++;
+ sp = 1;
+ }
+ return('?');
+ }
+ if (*++cp == ':') {
+ if (argv[optind][sp + 1] != '\0')
+ optarg = &argv[optind++][sp + 1];
+ else if (++optind >= argc) {
+ ERR(": option requires an argument -- ", c);
+ sp = 1;
+ return('?');
+ }
+ else
+ optarg = argv[optind++];
+ sp = 1;
+ }
+ else {
+ if (argv[optind][++sp] == '\0') {
+ sp = 1;
+ optind++;
+ }
+ optarg = NULL;
+ }
+ return(c);
+}
+
+#endif /* __GNUC__ */ \ No newline at end of file
diff --git a/libs/tgl/src/wingetopt.h b/libs/tgl/src/wingetopt.h
new file mode 100644
index 0000000000..4372c66011
--- /dev/null
+++ b/libs/tgl/src/wingetopt.h
@@ -0,0 +1,32 @@
+/*
+POSIX getopt for Windows
+
+AT&T Public License
+
+Code given out at the 1985 UNIFORUM conference in Dallas.
+*/
+
+#ifdef __GNUC__
+#include <getopt.h>
+#endif
+#ifndef __GNUC__
+
+#ifndef _WINGETOPT_H_
+#define _WINGETOPT_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ extern int opterr;
+ extern int optind;
+ extern int optopt;
+ extern char *optarg;
+ extern int getopt(int argc, char **argv, char *opts);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GETOPT_H_ */
+#endif /* __GNUC__ */ \ No newline at end of file