rustdi 0.1.0

Modern WhatsApp Client Library for Rust
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
syntax = "proto2";
package proto;

// Updated for Multi-Device Protocol
message DevicePairing {
    optional string phoneNumber = 1;
    optional bytes ephemeralPrivateKey = 2;
    optional bytes identityKey = 3;
    optional bytes registrationId = 4;
}

message ClientHello {
    optional bytes ephemeralKey = 1;
    optional bytes staticKeyEnc = 2;
    optional bytes identityKeyEnc = 3;
}

message ServerHello {
    optional bytes ephemeralKey = 1;
    optional bytes staticKeyEnc = 2;
    optional bytes identityKeyEnc = 3;
}

message HandshakeMessage {
    optional ClientHello clientHello = 1;
    optional ServerHello serverHello = 2;
}

message SenderKeyDistributionMessage {
    optional string groupId = 1;
    optional bytes axolotlSenderKeyDistributionMessage = 2;
}

message FingerprintData {
    optional string publicKey = 1;
    optional string identifier = 2;
}

message CombinedFingerprint {
    optional uint32 version = 1;
    optional FingerprintData localFingerprint = 2;
    optional FingerprintData remoteFingerprint = 3;
}

message MessageKey {
    optional string remoteJid = 1;
    optional bool fromMe = 2;
    optional string id = 3;
    optional string participant = 4;
    optional uint32 deviceFingerprint = 5;
}

message ImageMessage {
    optional string url = 1;
    optional string mimetype = 2;
    optional string caption = 3;
    optional bytes fileSha256 = 4;
    optional uint64 fileLength = 5;
    optional uint32 height = 6;
    optional uint32 width = 7;
    optional bytes mediaKey = 8;
    optional bytes fileEncSha256 = 9;
    repeated InteractiveAnnotation interactiveAnnotations = 10;
    optional string directPath = 11;
    optional bytes jpegThumbnail = 16;
    optional ContextInfo contextInfo = 17;
    optional bytes firstScanSidecar = 18;
    optional uint32 firstScanLength = 19;
    optional uint32 scanLengths = 20;
    optional bytes secondScanLength = 21;
    optional string firstScanLengthSidecar = 22;
    optional uint32 mediaKeyTimestamp = 23;
    optional bytes placeholderKey = 24;
    optional string gifPlayback = 25;
    optional uint32 avcLength = 26;
    optional bytes initialFrame = 27;
}

message ContactMessage {
    optional string displayName = 1;
    optional string vcard = 16;
    optional ContextInfo contextInfo = 17;
    optional string phoneNumber = 18;
    optional string email = 19;
    optional string address = 20;
}

message LocationMessage {
    optional double degreesLatitude = 1;
    optional double degreesLongitude = 2;
    optional string name = 3;
    optional string address = 4;
    optional string url = 5;
    optional bytes jpegThumbnail = 16;
    optional ContextInfo contextInfo = 17;
    optional string comment = 18;
}

message ExtendedTextMessage {
    optional string text = 1;
    optional string matchedText = 2;
    optional string canonicalUrl = 4;
    optional string description = 5;
    optional string title = 6;
    optional fixed32 textArgb = 7;
    optional fixed32 backgroundArgb = 8;
    enum FONTTYPE {
        SANS_SERIF = 0;
        SERIF = 1;
        NORICAN_REGULAR = 2;
        BRYNDAN_WRITE = 3;
        BEBASNEUE_REGULAR = 4;
        OSWALD_HEAVY = 5;
    }
    optional FONTTYPE font = 9;
    optional bytes jpegThumbnail = 16;
    optional ContextInfo contextInfo = 17;
    optional uint32 clientUrl = 18;
    optional string previewType = 19;
    optional bytes mediaKey = 20;
    optional uint32 mediaKeyTimestamp = 21;
    optional bytes jpegThumbnailEnc = 22;
    optional string inviteLinkGroupType = 23;
    optional string inviteLinkParentGroupSubject = 24;
    optional bool inviteLinkParentGroupJpegThumbnail = 25;
    optional string inviteLinkGrpType = 26;
    optional bytes inviteLinkParentThumb = 27;
    optional uint32 inviteLinkParentEphSetting = 28;
}

message DocumentMessage {
    optional string url = 1;
    optional string mimetype = 2;
    optional string title = 3;
    optional bytes fileSha256 = 4;
    optional uint64 fileLength = 5;
    optional uint32 pageCount = 6;
    optional bytes mediaKey = 7;
    optional string fileName = 8;
    optional bytes fileEncSha256 = 9;
    optional string directPath = 10;
    optional bytes jpegThumbnail = 16;
    optional ContextInfo contextInfo = 17;
    optional uint32 thumbnailDirectPath = 18;
    optional bytes thumbnailSha256 = 19;
    optional bytes thumbnailEncSha256 = 20;
    optional uint32 mediaKeyTimestamp = 21;
    optional string contactVcard = 22;
    optional uint32 thumbnailHeight = 23;
    optional uint32 thumbnailWidth = 24;
}

message AudioMessage {
    optional string url = 1;
    optional string mimetype = 2;
    optional bytes fileSha256 = 3;
    optional uint64 fileLength = 4;
    optional uint32 seconds = 5;
    optional bool ptt = 6;
    optional bytes mediaKey = 7;
    optional bytes fileEncSha256 = 8;
    optional string directPath = 9;
    optional ContextInfo contextInfo = 17;
    optional bytes streamingSidecar = 18;
    optional bool waveform = 19;
    optional uint32 backgroundArgb = 20;
    optional uint32 mediaKeyTimestamp = 21;
}

message VideoMessage {
    optional string url = 1;
    optional string mimetype = 2;
    optional bytes fileSha256 = 3;
    optional uint64 fileLength = 4;
    optional uint32 seconds = 5;
    optional bytes mediaKey = 6;
    optional string caption = 7;
    optional bool gifPlayback = 8;
    optional uint32 height = 9;
    optional uint32 width = 10;
    optional bytes fileEncSha256 = 11;
    repeated InteractiveAnnotation interactiveAnnotations = 12;
    optional string directPath = 13;
    optional bytes jpegThumbnail = 16;
    optional ContextInfo contextInfo = 17;
    optional bytes streamingSidecar = 18;
    enum ATTRIBUTION {
        NONE = 0;
        GIPHY = 1;
        TENOR = 2;
    }
    optional ATTRIBUTION gifAttribution = 19;
    optional uint32 avgBitrate = 20;
    optional string audioQuality = 21;
    optional bytes videoQuality = 22;
    optional uint32 encoding = 23;
    optional bytes thumbnailEncSha256 = 24;
    optional uint32 gifAttributionV2 = 25;
    optional bytes originalHash = 26;
    optional uint32 previewLength = 27;
    optional bytes preview = 28;
}

message Call {
    optional bytes callKey = 1;
    optional string conversionSource = 2;
    optional bytes conversionData = 3;
    optional uint32 conversionDelay = 4;
}

message ProtocolMessage {
    optional MessageKey key = 1;
    enum TYPE {
        REVOKE = 0;
        EPHEMERAL_SETTING = 3;
        EPHEMERAL_SYNC_RESPONSE = 4;
        HISTORY_SYNC_NOTIFICATION = 5;
        APP_STATE_SYNC_KEY_SHARE = 6;
        APP_STATE_SYNC_KEY_REQUEST = 7;
        MSG_FOLD = 8;
        INTERACTIVE_MESSAGE = 9;
        ORDER_MESSAGE = 10;
        EPHEMERAL_SYNC_RESPONSE_V2 = 11;
        PAYMENT_INVITE_MESSAGE = 12;
        CHANGE_EPHEMERAL_SETTING = 13;
        VIEW_ONCE_MESSAGE = 14;
        VIEW_ONCE_MESSAGE_V2 = 18;
        ORDER_DETAILS = 15;
        LIVE_LOCATION = 16;
        REQUEST_PHONE_NUMBER = 17;
    }
    optional TYPE type = 2;
    optional uint32 ephemeralExpiration = 3;
    optional int64 ephemeralDuration = 4;
    optional Message revokeMessage = 5;
    optional AppStateSyncKeyShare appStateSyncKeyShare = 6;
    optional InitialSecurityNotificationSettingSync initialSecurityNotificationSettingSync = 7;
    optional Message ephemeralWrapper = 8;
    optional string label = 9;
    optional HistorySyncNotification historySyncNotification = 10;
    optional Call call = 11;
    optional Message senderKeyDistributionMessage = 12;
    optional uint64 epoch = 13;
}

message ContactsArrayMessage {
    optional string displayName = 1;
    repeated ContactMessage contacts = 2;
    optional ContextInfo contextInfo = 17;
}

message HSMCurrency {
    optional string currencyCode = 1;
    optional int64 amount1000 = 2;
}

message HSMDateTimeComponent {
    enum DAYOFWEEKTYPE {
        MONDAY = 1;
        TUESDAY = 2;
        WEDNESDAY = 3;
        THURSDAY = 4;
        FRIDAY = 5;
        SATURDAY = 6;
        SUNDAY = 7;
    }
    optional DAYOFWEEKTYPE dayOfWeek = 1;
    optional uint32 year = 2;
    optional uint32 month = 3;
    optional uint32 dayOfMonth = 4;
    optional uint32 hour = 5;
    optional uint32 minute = 6;
    enum CALENDARTYPE {
        GREGORIAN = 1;
        SOLAR_HIJRI = 2;
    }
    optional CALENDARTYPE calendar = 7;
}

message HSMDateTimeUnixEpoch {
    optional int64 timestamp = 1;
}

message HSMDateTime {
    oneof datetimeOneof {
        HSMDateTimeComponent component = 1;
        HSMDateTimeUnixEpoch unixEpoch = 2;
    }
}

message HSMLocalizableParameter {
    optional string default = 1;
    oneof paramOneof {
        HSMCurrency currency = 2;
        HSMDateTime dateTime = 3;
    }
}

message HighlyStructuredMessage {
    optional string namespace = 1;
    optional string elementName = 2;
    repeated string params = 3;
    optional string fallbackLg = 4;
    optional string fallbackLc = 5;
    repeated HSMLocalizableParameter localizableParams = 6;
    optional string deterministicLg = 7;
    optional string deterministicLc = 8;
    optional ContextInfo contextInfo = 9;
}

message SendPaymentMessage {
    optional Message noteMessage = 2;
    optional string requestMessageId = 3;
}

message RequestPaymentMessage {
    optional string currencyCodeIso4217 = 1;
    optional uint64 amount1000 = 2;
    optional string requestFrom = 3;
    optional Message noteMessage = 4;
    optional int64 expiryTimestamp = 5;
    optional Attachment attachment = 6;
}

message LiveLocationMessage {
    optional double degreesLatitude = 1;
    optional double degreesLongitude = 2;
    optional uint32 accuracyInMeters = 3;
    optional float speedInMps = 4;
    optional uint32 degreesClockwiseFromMagneticNorth = 5;
    optional string caption = 6;
    optional int64 sequenceNumber = 7;
    optional uint32 timeOffset = 8;
    optional bytes jpegThumbnail = 16;
    optional ContextInfo contextInfo = 17;
    optional uint32 pin = 18;
    optional bytes participant = 19;
    optional int64 ephemeralStartTimestamp = 20;
    optional uint32 ephemeralDuration = 21;
}

message StickerMessage {
    optional string url = 1;
    optional bytes fileSha256 = 2;
    optional bytes fileEncSha256 = 3;
    optional bytes mediaKey = 4;
    optional string mimetype = 5;
    optional uint32 height = 6;
    optional uint32 width = 7;
    optional string directPath = 8;
    optional uint64 fileLength = 9;
    optional bytes pngThumbnail = 16;
    optional ContextInfo contextInfo = 17;
    optional uint32 isAnimated = 18;
    optional bytes pngThumbnailEnc = 19;
    optional uint32 mediaKeyTimestamp = 20;
}

message Message {
    optional string conversation = 1;
    optional SenderKeyDistributionMessage senderKeyDistributionMessage = 2;
    optional ImageMessage imageMessage = 3;
    optional ContactMessage contactMessage = 4;
    optional LocationMessage locationMessage = 5;
    optional ExtendedTextMessage extendedTextMessage = 6;
    optional DocumentMessage documentMessage = 7;
    optional AudioMessage audioMessage = 8;
    optional VideoMessage videoMessage = 9;
    optional Call call = 10;
    optional Chat chat = 11;
    optional ProtocolMessage protocolMessage = 12;
    optional ContactsArrayMessage contactsArrayMessage = 13;
    optional HighlyStructuredMessage highlyStructuredMessage = 14;
    optional SenderKeyDistributionMessage fastRatchetKeySenderKeyDistributionMessage = 15;
    optional SendPaymentMessage sendPaymentMessage = 16;
    optional RequestPaymentMessage requestPaymentMessage = 17;
    optional LiveLocationMessage liveLocationMessage = 18;
    optional StickerMessage stickerMessage = 20;
    optional GroupInviteMessage groupInviteMessage = 21;
    optional TemplateMessage templateMessage = 22;
    optional StickerSyncRmrMessage stickerSyncRmrMessage = 23;
    optional InteractiveMessage interactiveMessage = 24;
    optional OrderMessage orderMessage = 25;
    optional ListMessage listMessage = 26;
    optional FutureProofMessage futureProofMessage = 27;
    optional MessageContextInfo messageContextInfo = 28;
    optional ListResponseMessage listResponseMessage = 29;
    optional DownloadableMessage downloadableMessage = 30;
    optional ReactionMessage reactionMessage = 31;
    optional MultiDeviceSyncMessage multiDeviceSyncMessage = 32;
    optional BackgroundBackground backgroundBackground = 33;
    optional PushToTalkMessage pushToTalkMessage = 34;
    optional UnsendRequestMessage unsendRequestMessage = 35;
}

message ContextInfo {
    optional string stanzaId = 1;
    optional string participant = 2;
    repeated Message quotedMessage = 3;
    optional string remoteJid = 4;
    repeated string mentionedJid = 15;
    optional string conversionSource = 18;
    optional bytes conversionData = 19;
    optional uint32 conversionDelaySeconds = 20;
    optional bool isForwarded = 22;
    optional uint32 quotedMessageId = 23;
    optional FutureproofMessageList disappearingTimeoutMessage = 24;
    optional uint32 deviceListMetadataVersion = 25;
    optional bytes deviceListMetadata = 26;
    reserved 16, 17;
}

message InteractiveAnnotation {
    repeated Point polygonVertices = 1;
    oneof action {
        Location location = 2;
    }
}

message Point {
    optional double x = 3;
    optional double y = 4;
}

message Location {
    optional double degreesLatitude = 1;
    optional double degreesLongitude = 2;
    optional string name = 3;
}

message WebMessageInfo {
    required MessageKey key = 1;
    optional Message message = 2;
    optional uint64 messageTimestamp = 3;
    enum STATUS {
        ERROR = 0;
        PENDING = 1;
        SERVER_ACK = 2;
        DELIVERY_ACK = 3;
        READ = 4;
        PLAYED = 5;
    }
    optional STATUS status = 4 [default=PENDING];
    optional string participant = 5;
    optional uint64 messageC2STimestamp = 6;
    optional bool ignore = 16;
    optional bool starred = 17;
    optional bool broadcast = 18;
    optional string pushName = 19;
    optional bytes mediaCiphertextSha256 = 20;
    optional bool multicast = 21;
    optional bool urlText = 22;
    optional bool urlNumber = 23;
    enum STUBTYPE {
        UNKNOWN = 0;
        REVOKE = 1;
        CIPHERTEXT = 2;
        FUTUREPROOF = 3;
        NON_VERIFIED_TRANSITION = 4;
        UNVERIFIED_TRANSITION = 5;
        VERIFIED_TRANSITION = 6;
        VERIFIED_LOW_UNKNOWN = 7;
        VERIFIED_HIGH = 8;
        VERIFIED_INITIAL_UNKNOWN = 9;
        VERIFIED_INITIAL_LOW = 10;
        VERIFIED_INITIAL_HIGH = 11;
        VERIFIED_TRANSITION_ANY_TO_NONE = 12;
        VERIFIED_TRANSITION_ANY_TO_HIGH = 13;
        VERIFIED_TRANSITION_HIGH_TO_LOW = 14;
        VERIFIED_TRANSITION_HIGH_TO_UNKNOWN = 15;
        VERIFIED_TRANSITION_UNKNOWN_TO_LOW = 16;
        VERIFIED_TRANSITION_LOW_TO_UNKNOWN = 17;
        VERIFIED_TRANSITION_NONE_TO_LOW = 18;
        VERIFIED_TRANSITION_NONE_TO_UNKNOWN = 19;
        GROUP_CREATE = 20;
        GROUP_CHANGE_SUBJECT = 21;
        GROUP_CHANGE_ICON = 22;
        GROUP_CHANGE_INVITE_LINK = 23;
        GROUP_CHANGE_DESCRIPTION = 24;
        GROUP_CHANGE_RESTRICT = 25;
        GROUP_CHANGE_ANNOUNCE = 26;
        GROUP_PARTICIPANT_ADD = 27;
        GROUP_PARTICIPANT_REMOVE = 28;
        GROUP_PARTICIPANT_PROMOTE = 29;
        GROUP_PARTICIPANT_DEMOTE = 30;
        GROUP_PARTICIPANT_INVITE = 31;
        GROUP_PARTICIPANT_LEAVE = 32;
        GROUP_PARTICIPANT_CHANGE_NUMBER = 33;
        BROADCAST_CREATE = 34;
        BROADCAST_ADD = 35;
        BROADCAST_REMOVE = 36;
        GENERIC_NOTIFICATION = 37;
        E2E_IDENTITY_CHANGED = 38;
        E2E_ENCRYPTED = 39;
        CALL_MISSED_VOICE = 40;
        CALL_MISSED_VIDEO = 41;
        INDIVIDUAL_CHANGE_NUMBER = 42;
        GROUP_DELETE = 43;
        PMDELETE = 44;
        GPDELETE = 45;
        BROADCAST_DELETE = 46;
        VCADD = 47;
        VCREMOVE = 48;
        VCMUTE = 49;
        VCUNMUTE = 50;
        VCPROMOTE = 51;
        VCDEMOTE = 52;
        VCWELCOME = 53;
        VCTOGGLE = 54;
        VCMEMBERLEFT = 55;
        VCMEMBERJOINED = 56;
        NEXTTODO = 57;
        BIZ_PRIVACY_MODE = 58;
        E2E_DEVICE_CHANGED = 59;
        OVERSIZED = 60;
        BIZ_VERIFIED_TRANSITION = 61;
        BIZ_CHAT_MODIFY = 62;
        BIZ_INTRO = 63;
        BIZ_NAME = 64;
        ORGANIZATION_ADD = 65;
        ORGANIZATION_CREATE = 66;
        ORGANIZATION_INVITE = 67;
        ORGANIZATION_REMOVE = 68;
        ORGANIZATION_LEAVE = 69;
        ORGANIZATION_CHANGE_ROLE = 70;
        ORGANIZATION_CHANGE_SUBJECT = 71;
        ORGANIZATION_CHANGE_DESC = 72;
        ORGANIZATION_CHANGE_RESTRIC = 73;
        ORGANIZATION_CHANGE_ANNOUNCE = 74;
        ORGANIZATION_CHANGE_INVITE = 75;
        ORGANIZATION_MEMBER_JOIN_REQ = 76;
        ORGANIZATION_MEMBER_JOIN_REQ_NOTIFY = 77;
        GROUP_PARTICIPANT_PARENT_GROUP_CHANGED = 78;
        COMMUNITY_INVITE = 79;
        COMMUNITY_PROMOTE = 80;
        COMMUNITY_DEMOTE = 81;
        COMMUNITY_SPONSOR_ADD = 82;
        COMMUNITY_SPONSOR_REMOVE = 83;
        GROUP ANNOUNCE_MODE_SUB = 84;
        BIZ_MOVE_TO_REGULAR = 85;
        BIZ_CATALOG_VISIBLE = 86;
        BIZ_MOVE_TO_REGULAR_FAILED = 87;
        BIZ_QUICK_REPLY = 88;
        BIZ_AUTO_REPLY = 89;
    }
    optional STUBTYPE messageStubType = 24;
    optional bool clearMedia = 25;
    repeated string messageStubParameters = 26;
    optional uint32 duration = 27;
    repeated string labels = 28;
    optional PaymentInfo paymentInfo = 29;
    optional enums_pb.DeviceSentMethodFlags finalLiveLocation = 30;
    optional uint64 quotedPaymentInfo = 31;
    optional string footer = 32;
    optional string title = 33;
    optional bytes thumbnailDirectPath = 34;
    optional bytes thumbnailSha256 = 35;
    optional bytes thumbnailEncSha256 = 36;
    optional string mediaKey = 37;
    optional bytes jpegThumbnail = 38;
    optional uint32 samePeerGroup = 39;
    optional uint64 sendBeginMs = 40;
    optional uint64 sendEndMs = 41;
    optional uint64 firstEpoch = 42;
    optional bytes ephemeralMasterKey = 43;
    optional uint64 ephemeralSenderKeyTimestamp = 44;
    optional string backgroundMediaOffset = 45;
    optional bytes backgroundMediaOffsetV2 = 46;
    optional uint64 backgroundMediaOffsetV3 = 47;
    optional uint32 backgroundType = 48;
    optional uint32 backgroundId = 49;
    optional uint32 backgroundPalette = 50;
    optional uint32 backgroundArgb = 51;
    optional uint32 backgroundPaletteV2 = 52;
    optional uint32 backgroundArgbV2 = 53;
    optional uint32 backgroundArgbPalette = 54;
    optional uint32 backgroundArgbPaletteV2 = 55;
    optional uint32 backgroundArgbPaletteV3 = 56;
    optional uint32 backgroundArgbPaletteV4 = 57;
    optional uint32 backgroundArgbPaletteV5 = 58;
    optional uint32 backgroundArgbPaletteV6 = 59;
    optional uint32 backgroundArgbPaletteV7 = 60;
}

message WebNotificationsInfo {
    optional uint64 timestamp = 2;
    optional uint32 unreadChats = 3;
    optional uint32 notifyMessageCount = 4;
    repeated Message notifyMessages = 5;
}

message NotificationMessageInfo {
    optional MessageKey key = 1;
    optional Message message = 2;
    optional uint64 messageTimestamp = 3;
    optional string participant = 4;
}

message TabletNotificationsInfo {
    optional uint64 timestamp = 2;
    optional uint32 unreadChats = 3;
    optional uint32 notifyMessageCount = 4;
    repeated Message notifyMessage = 5;
}

message WebFeatures {
    enum FLAG {
        NOT_IMPLEMENTED = 0;
        IMPLEMENTED = 1;
        OPTIONAL = 2;
    }
    optional FLAG labelsDisplay = 1;
    optional FLAG voipIndividualOutgoing = 2;
    optional FLAG groupsV3 = 3;
    optional FLAG groupsV3Create = 4;
    optional FLAG changeNumberV2 = 5;
    optional FLAG queryStatusV3Thumbnail = 6;
    optional FLAG liveLocations = 7;
    optional FLAG queryVname = 8;
    optional FLAG voipIndividualIncoming = 9;
    optional FLAG quickRepliesQuery = 10;
    optional FLAG e2ENotificationSync = 11;
    optional FLAG recentStickers = 12;
    optional FLAG catalog = 13;
    optional FLAG starredStickers = 14;
    optional FLAG pmNew = 15;
    optional FLAG e2EGroupNew = 16;
    optional FLAG whatsAppBusinessAccount = 17;
    optional FLAG whatsAppBusinessMsgNew = 18;
    optional FLAG callNew = 19;
    optional FLAG broadcastNew = 20;
    optional FLAG mediaUploadNew = 21;
    optional FLAG mediaUploadRetryNew = 22;
    optional FLAG quickRepliesNew = 23;
    optional FLAG stickersNew = 24;
    optional FLAG labelsNew = 25;
    optional FLAG effectiveTypeFromServer = 26;
    optional FLAG videoPlaybackUrlNew = 27;
    optional FLAG statusNew = 28;
    optional FLAG voipIndividualOutgoingNew = 29;
    optional FLAG voipIndividualIncomingNew = 30;
    optional FLAG voipIndividualCallDurationNew = 31;
    optional FLAG voipGroupIncomingNew = 32;
    optional FLAG voipGroupCallDurationNew = 33;
    optional FLAG voipVideoIncomingNew = 34;
    optional FLAG groupSizeSetting = 35;
    optional FLAG privacySetting = 36;
    optional FLAG recentStickersNew = 37;
    optional FLAG userNoticeNew = 38;
    optional FLAG templateMessageNew = 39;
    optional FLAG templateMessageInteractivityNew = 40;
    optional FLAG ephemeralNew = 41;
    optional FLAG e2EImplicitPinNew = 42;
    optional FLAG recentStickersV2New = 43;
    optional FLAG recentStickersV3New = 44;
    optional FLAG userNoticeV2New = 45;
    optional FLAG userNoticeV3New = 46;
    optional FLAG templateMessageInteractivityV2New = 47;
    optional FLAG templateMessageInteractivityV3New = 48;
    optional FLAG templateMessageFlowNew = 49;
    optional FLAG groupUiiCleanupNew = 50;
    optional FLAG groupSizeSettingRemove = 51;
    optional FLAG webClientNoStatus = 52;
    optional FLAG callLogNew = 53;
    optional FLAG supportNew = 54;
    optional FLAG groupUiiCleanupNewFixes = 55;
    optional FLAG privacyModeNew = 56;
    optional FLAG webNoStatus = 57;
    optional FLAG webPrivacy = 58;
    optional FLAG webGroupsNew = 59;
    optional FLAG webAddSecondsNew = 60;
    optional FLAG webVideoPlaybackUrlNew = 61;
    optional FLAG webCatalogNew = 62;
    optional FLAG webStatusNew = 63;
    optional FLAG webE2ENotificationSync = 64;
    optional FLAG webPrivacyModeNew = 65;
    optional FLAG webDisappearingMessagesNew = 66;
    optional FLAG mediaUploadNewJpeg = 67;
    optional FLAG mediaUploadRetryNewJpeg = 68;
    optional FLAG webPrivacyModeNewJpeg = 69;
    optional FLAG webPrivacyNewJpeg = 70;
    optional FLAG webContactsNewJpeg = 71;
    optional FLAG webChatsNewJpeg = 72;
    optional FLAG webMessagesNewJpeg = 73;
    optional FLAG webPresenceNewJpeg = 74;
    optional FLAG webGroupsNewJpeg = 75;
    optional FLAG webLocationNewJpeg = 76;
    optional FLAG webStatusNewJpeg = 77;
    optional FLAG webQrNewJpeg = 78;
    optional FLAG webContactsNew = 79;
    optional FLAG webChatsNew = 80;
    optional FLAG webMessagesNew = 81;
    optional FLAG webPresenceNew = 82;
    optional FLAG webLocationNew = 83;
    optional FLAG webQrNew = 84;
    optional FLAG webNotificationsNew = 85;
    optional FLAG webNew = 86;
    optional FLAG webFreezeMessageCount = 87;
    optional FLAG webStatusNewJpeg2 = 88;
    optional FLAG webProfileNewJpeg = 89;
    optional FLAG webProfileNew = 90;
    optional FLAG webStickersNew = 91;
    optional FLAG webStickersNewJpeg = 92;
    optional FLAG webStickersNewJpeg2 = 93;
    optional FLAG webStickersNewJpeg3 = 94;
    optional FLAG webStickersNewJpeg4 = 95;
    optional FLAG webStickersNewJpeg5 = 96;
    optional FLAG webStickersNewJpeg6 = 97;
    optional FLAG webStickersNewJpeg7 = 98;
    optional FLAG webStickersNewJpeg8 = 99;
    optional FLAG webStickersNewJpeg9 = 100;
    optional FLAG webStickersNewJpeg10 = 101;
    optional FLAG webStickersNewJpeg11 = 102;
    optional FLAG webStickersNewJpeg12 = 103;
    optional FLAG webStickersNewJpeg13 = 104;
    optional FLAG webStickersNewJpeg14 = 105;
    optional FLAG webStickersNewJpeg15 = 106;
    optional FLAG webStickersNewJpeg16 = 107;
    optional FLAG webStickersNewJpeg17 = 108;
    optional FLAG webStickersNewJpeg18 = 109;
    optional FLAG webStickersNewJpeg19 = 110;
    optional FLAG webStickersNewJpeg20 = 111;
    optional FLAG webStickersNewJpeg21 = 112;
    optional FLAG webStickersNewJpeg22 = 113;
    optional FLAG webStickersNewJpeg23 = 114;
    optional FLAG webStickersNewJpeg24 = 115;
    optional FLAG webStickersNewJpeg25 = 116;
    optional FLAG webStickersNewJpeg26 = 117;
    optional FLAG webStickersNewJpeg27 = 118;
    optional FLAG webStickersNewJpeg28 = 119;
    optional FLAG webStickersNewJpeg29 = 120;
    optional FLAG webStickersNewJpeg30 = 121;
    optional FLAG webStickersNewJpeg31 = 122;
    optional FLAG webStickersNewJpeg32 = 123;
    optional FLAG webStickersNewJpeg33 = 124;
    optional FLAG webStickersNewJpeg34 = 125;
    optional FLAG webStickersNewJpeg35 = 126;
    optional FLAG webStickersNewJpeg36 = 127;
    optional FLAG webStickersNewJpeg37 = 128;
    optional FLAG webStickersNewJpeg38 = 129;
    optional FLAG webStickersNewJpeg39 = 130;
    optional FLAG webStickersNewJpeg40 = 131;
    optional FLAG webStickersNewJpeg41 = 132;
    optional FLAG webStickersNewJpeg42 = 133;
    optional FLAG webStickersNewJpeg43 = 134;
    optional FLAG webStickersNewJpeg44 = 135;
    optional FLAG webStickersNewJpeg45 = 136;
    optional FLAG webStickersNewJpeg46 = 137;
    optional FLAG webStickersNewJpeg47 = 138;
    optional FLAG webStickersNewJpeg48 = 139;
    optional FLAG webStickersNewJpeg49 = 140;
    optional FLAG webStickersNewJpeg50 = 141;
    optional FLAG webStickersNewJpeg51 = 142;
    optional FLAG webStickersNewJpeg52 = 143;
    optional FLAG webStickersNewJpeg53 = 144;
    optional FLAG webStickersNewJpeg54 = 145;
    optional FLAG webStickersNewJpeg55 = 146;
    optional FLAG webStickersNewJpeg56 = 147;
    optional FLAG webStickersNewJpeg57 = 148;
    optional FLAG webStickersNewJpeg58 = 149;
    optional FLAG webStickersNewJpeg59 = 150;
    optional FLAG webStickersNewJpeg60 = 151;
    optional FLAG webStickersNewJpeg61 = 152;
    optional FLAG webStickersNewJpeg62 = 153;
    optional FLAG webStickersNewJpeg63 = 154;
    optional FLAG webStickersNewJpeg64 = 155;
    optional FLAG webStickersNewJpeg65 = 156;
    optional FLAG webStickersNewJpeg66 = 157;
    optional FLAG webStickersNewJpeg67 = 158;
    optional FLAG webStickersNewJpeg68 = 159;
    optional FLAG webStickersNewJpeg69 = 160;
    optional FLAG webStickersNewJpeg70 = 161;
    optional FLAG webStickersNewJpeg71 = 162;
    optional FLAG webStickersNewJpeg72 = 163;
    optional FLAG webStickersNewJpeg73 = 164;
    optional FLAG webStickersNewJpeg74 = 165;
    optional FLAG webStickersNewJpeg75 = 166;
    optional FLAG webStickersNewJpeg76 = 167;
    optional FLAG webStickersNewJpeg77 = 168;
    optional FLAG webStickersNewJpeg78 = 169;
    optional FLAG webStickersNewJpeg79 = 170;
    optional FLAG webStickersNewJpeg80 = 171;
    optional FLAG webStickersNewJpeg81 = 172;
    optional FLAG webStickersNewJpeg82 = 173;
    optional FLAG webStickersNewJpeg83 = 174;
    optional FLAG webStickersNewJpeg84 = 175;
    optional FLAG webStickersNewJpeg85 = 176;
    optional FLAG webStickersNewJpeg86 = 177;
    optional FLAG webStickersNewJpeg87 = 178;
    optional FLAG webStickersNewJpeg88 = 179;
    optional FLAG webStickersNewJpeg89 = 180;
    optional FLAG webStickersNewJpeg90 = 181;
    optional FLAG webStickersNewJpeg91 = 182;
    optional FLAG webStickersNewJpeg92 = 183;
    optional FLAG webStickersNewJpeg93 = 184;
    optional FLAG webStickersNewJpeg94 = 185;
    optional FLAG webStickersNewJpeg95 = 186;
    optional FLAG webStickersNewJpeg96 = 187;
    optional FLAG webStickersNewJpeg97 = 188;
    optional FLAG webStickersNewJpeg98 = 189;
    optional FLAG webStickersNewJpeg99 = 190;
    optional FLAG webStickersNewJpeg100 = 191;
    optional FLAG disappearingModeSetting = 192;
    optional FLAG webDisappearingModeSetting = 193;
    optional FLAG webPrivacyModeSetting = 194;
    optional FLAG webBlockContactNew = 195;
    optional FLAG webBlockContactNewJpeg = 196;
    optional FLAG webBlockContactNewJpeg2 = 197;
    optional FLAG webBlockContactNewJpeg3 = 198;
    optional FLAG webBlockContactNewJpeg4 = 199;
    optional FLAG webBlockContactNewJpeg5 = 200;
    optional FLAG webBlockContactNewJpeg6 = 201;
    optional FLAG webBlockContactNewJpeg7 = 202;
    optional FLAG webBlockContactNewJpeg8 = 203;
    optional FLAG webBlockContactNewJpeg9 = 204;
    optional FLAG webBlockContactNewJpeg10 = 205;
    optional FLAG webBlockContactNewJpeg11 = 206;
    optional FLAG webBlockContactNewJpeg12 = 207;
    optional FLAG webBlockContactNewJpeg13 = 208;
    optional FLAG webBlockContactNewJpeg14 = 209;
    optional FLAG webBlockContactNewJpeg15 = 210;
    optional FLAG webBlockContactNewJpeg16 = 211;
    optional FLAG webBlockContactNewJpeg17 = 212;
    optional FLAG webBlockContactNewJpeg18 = 213;
    optional FLAG webBlockContactNewJpeg19 = 214;
    optional FLAG webBlockContactNewJpeg20 = 215;
    optional FLAG webBlockContactNewJpeg21 = 216;
    optional FLAG webBlockContactNewJpeg22 = 217;
    optional FLAG webBlockContactNewJpeg23 = 218;
    optional FLAG webBlockContactNewJpeg24 = 219;
    optional FLAG webBlockContactNewJpeg25 = 220;
    optional FLAG webBlockContactNewJpeg26 = 221;
    optional FLAG webBlockContactNewJpeg27 = 222;
    optional FLAG webBlockContactNewJpeg28 = 223;
    optional FLAG webBlockContactNewJpeg29 = 224;
    optional FLAG webBlockContactNewJpeg30 = 225;
    optional FLAG webBlockContactNewJpeg31 = 226;
    optional FLAG webBlockContactNewJpeg32 = 227;
    optional FLAG webBlockContactNewJpeg33 = 228;
    optional FLAG webBlockContactNewJpeg34 = 229;
    optional FLAG webBlockContactNewJpeg35 = 230;
    optional FLAG webBlockContactNewJpeg36 = 231;
    optional FLAG webBlockContactNewJpeg37 = 232;
    optional FLAG webBlockContactNewJpeg38 = 233;
    optional FLAG webBlockContactNewJpeg39 = 234;
    optional FLAG webBlockContactNewJpeg40 = 235;
    optional FLAG webBlockContactNewJpeg41 = 236;
    optional FLAG webBlockContactNewJpeg42 = 237;
    optional FLAG webBlockContactNewJpeg43 = 238;
    optional FLAG webBlockContactNewJpeg44 = 239;
    optional FLAG webBlockContactNewJpeg45 = 240;
    optional FLAG webBlockContactNewJpeg46 = 241;
    optional FLAG webBlockContactNewJpeg47 = 242;
    optional FLAG webBlockContactNewJpeg48 = 243;
    optional FLAG webBlockContactNewJpeg49 = 244;
    optional FLAG webBlockContactNewJpeg50 = 245;
    optional FLAG webBlockContactNewJpeg51 = 246;
    optional FLAG webBlockContactNewJpeg52 = 247;
    optional FLAG webBlockContactNewJpeg53 = 248;
    optional FLAG webBlockContactNewJpeg54 = 249;
    optional FLAG webBlockContactNewJpeg55 = 250;
    optional FLAG webBlockContactNewJpeg56 = 251;
    optional FLAG webBlockContactNewJpeg57 = 252;
    optional FLAG webBlockContactNewJpeg58 = 253;
    optional FLAG webBlockContactNewJpeg59 = 254;
    optional FLAG webBlockContactNewJpeg60 = 255;
    optional FLAG webBlockContactNewJpeg61 = 256;
    optional FLAG webBlockContactNewJpeg62 = 257;
    optional FLAG webBlockContactNewJpeg63 = 258;
    optional FLAG webBlockContactNewJpeg64 = 259;
    optional FLAG webBlockContactNewJpeg65 = 260;
    optional FLAG webBlockContactNewJpeg66 = 261;
    optional FLAG webBlockContactNewJpeg67 = 262;
    optional FLAG webBlockContactNewJpeg68 = 263;
    optional FLAG webBlockContactNewJpeg69 = 264;
    optional FLAG webBlockContactNewJpeg70 = 265;
    optional FLAG webBlockContactNewJpeg71 = 266;
    optional FLAG webBlockContactNewJpeg72 = 267;
    optional FLAG webBlockContactNewJpeg73 = 268;
    optional FLAG webBlockContactNewJpeg74 = 269;
    optional FLAG webBlockContactNewJpeg75 = 270;
    optional FLAG webBlockContactNewJpeg76 = 271;
    optional FLAG webBlockContactNewJpeg77 = 272;
    optional FLAG webBlockContactNewJpeg78 = 273;
    optional FLAG webBlockContactNewJpeg79 = 274;
    optional FLAG webBlockContactNewJpeg80 = 275;
    optional FLAG webBlockContactNewJpeg81 = 276;
    optional FLAG webBlockContactNewJpeg82 = 277;
    optional FLAG webBlockContactNewJpeg83 = 278;
    optional FLAG webBlockContactNewJpeg84 = 279;
    optional FLAG webBlockContactNewJpeg85 = 280;
    optional FLAG webBlockContactNewJpeg86 = 281;
    optional FLAG webBlockContactNewJpeg87 = 282;
    optional FLAG webBlockContactNewJpeg88 = 283;
    optional FLAG webBlockContactNewJpeg89 = 284;
    optional FLAG webBlockContactNewJpeg90 = 285;
    optional FLAG webBlockContactNewJpeg91 = 286;
    optional FLAG webBlockContactNewJpeg92 = 287;
    optional FLAG webBlockContactNewJpeg93 = 288;
    optional FLAG webBlockContactNewJpeg94 = 289;
    optional FLAG webBlockContactNewJpeg95 = 290;
    optional FLAG webBlockContactNewJpeg96 = 291;
    optional FLAG webBlockContactNewJpeg97 = 292;
    optional FLAG webBlockContactNewJpeg98 = 293;
    optional FLAG webBlockContactNewJpeg99 = 294;
    optional FLAG webBlockContactNewJpeg100 = 295;
    optional FLAG webBlockContactNewJpeg101 = 296;
    optional FLAG webBlockContactNewJpeg102 = 297;
    optional FLAG webBlockContactNewJpeg103 = 298;
    optional FLAG webBlockContactNewJpeg104 = 299;
    optional FLAG webBlockContactNewJpeg105 = 300;
    optional FLAG webBlockContactNewJpeg106 = 301;
    optional FLAG webBlockContactNewJpeg107 = 302;
    optional FLAG webBlockContactNewJpeg108 = 303;
    optional FLAG webBlockContactNewJpeg109 = 304;
    optional FLAG webBlockContactNewJpeg110 = 305;
    optional FLAG webBlockContactNewJpeg111 = 306;
    optional FLAG webBlockContactNewJpeg112 = 307;
    optional FLAG webBlockContactNewJpeg113 = 308;
    optional FLAG webBlockContactNewJpeg114 = 309;
    optional FLAG webBlockContactNewJpeg115 = 310;
    optional FLAG webBlockContactNewJpeg116 = 311;
    optional FLAG webBlockContactNewJpeg117 = 312;
    optional FLAG webBlockContactNewJpeg118 = 313;
    optional FLAG webBlockContactNewJpeg119 = 314;
    optional FLAG webBlockContactNewJpeg120 = 315;
    optional FLAG webBlockContactNewJpeg121 = 316;
    optional FLAG webBlockContactNewJpeg122 = 317;
    optional FLAG webBlockContactNewJpeg123 = 318;
    optional FLAG webBlockContactNewJpeg124 = 319;
    optional FLAG webBlockContactNewJpeg125 = 320;
    optional FLAG webBlockContactNewJpeg126 = 321;
    optional FLAG webBlockContactNewJpeg127 = 322;
    optional FLAG webBlockContactNewJpeg128 = 323;
    optional FLAG webBlockContactNewJpeg129 = 324;
    optional FLAG webBlockContactNewJpeg130 = 325;
    optional FLAG webBlockContactNewJpeg131 = 326;
    optional FLAG webBlockContactNewJpeg132 = 327;
    optional FLAG webBlockContactNewJpeg133 = 328;
    optional FLAG webBlockContactNewJpeg134 = 329;
    optional FLAG webBlockContactNewJpeg135 = 330;
    optional FLAG webBlockContactNewJpeg136 = 331;
    optional FLAG webBlockContactNewJpeg137 = 332;
    optional FLAG webBlockContactNewJpeg138 = 333;
    optional FLAG webBlockContactNewJpeg139 = 334;
    optional FLAG webBlockContactNewJpeg140 = 335;
    optional FLAG webBlockContactNewJpeg141 = 336;
    optional FLAG webBlockContactNewJpeg142 = 337;
    optional FLAG webBlockContactNewJpeg143 = 338;
    optional FLAG webBlockContactNewJpeg144 = 339;
    optional FLAG webBlockContactNewJpeg145 = 340;
    optional FLAG webBlockContactNewJpeg146 = 341;
    optional FLAG webBlockContactNewJpeg147 = 342;
    optional FLAG webBlockContactNewJpeg148 = 343;
    optional FLAG webBlockContactNewJpeg149 = 344;
    optional FLAG webBlockContactNewJpeg150 = 345;
    optional FLAG webBlockContactNewJpeg151 = 346;
    optional FLAG webBlockContactNewJpeg152 = 347;
    optional FLAG webBlockContactNewJpeg153 = 348;
    optional FLAG webBlockContactNewJpeg154 = 349;
    optional FLAG webBlockContactNewJpeg155 = 350;
    optional FLAG webBlockContactNewJpeg156 = 351;
    optional FLAG webBlockContactNewJpeg157 = 352;
    optional FLAG webBlockContactNewJpeg158 = 353;
    optional FLAG webBlockContactNewJpeg159 = 354;
    optional FLAG webBlockContactNewJpeg160 = 355;
    optional FLAG webBlockContactNewJpeg161 = 356;
    optional FLAG webBlockContactNewJpeg162 = 357;
    optional FLAG webBlockContactNewJpeg163 = 358;
    optional FLAG webBlockContactNewJpeg164 = 359;
    optional FLAG webBlockContactNewJpeg165 = 360;
    optional FLAG webBlockContactNewJpeg166 = 361;
    optional FLAG webBlockContactNewJpeg167 = 362;
    optional FLAG webBlockContactNewJpeg168 = 363;
    optional FLAG webBlockContactNewJpeg169 = 364;
    optional FLAG webBlockContactNewJpeg170 = 365;
    optional FLAG webBlockContactNewJpeg171 = 366;
    optional FLAG webBlockContactNewJpeg172 = 367;
    optional FLAG webBlockContactNewJpeg173 = 368;
    optional FLAG webBlockContactNewJpeg174 = 369;
    optional FLAG webBlockContactNewJpeg175 = 370;
    optional FLAG webBlockContactNewJpeg176 = 371;
    optional FLAG webBlockContactNewJpeg177 = 372;
    optional FLAG webBlockContactNewJpeg178 = 373;
    optional FLAG webBlockContactNewJpeg179 = 374;
    optional FLAG webBlockContactNewJpeg180 = 375;
    optional FLAG webBlockContactNewJpeg181 = 376;
    optional FLAG webBlockContactNewJpeg182 = 377;
    optional FLAG webBlockContactNewJpeg183 = 378;
    optional FLAG webBlockContactNewJpeg184 = 379;
    optional FLAG webBlockContactNewJpeg185 = 380;
    optional FLAG webBlockContactNewJpeg186 = 381;
    optional FLAG webBlockContactNewJpeg187 = 382;
    optional FLAG webBlockContactNewJpeg188 = 383;
    optional FLAG webBlockContactNewJpeg189 = 384;
    optional FLAG webBlockContactNewJpeg190 = 385;
    optional FLAG webBlockContactNewJpeg191 = 386;
    optional FLAG webBlockContactNewJpeg192 = 387;
    optional FLAG webBlockContactNewJpeg193 = 388;
    optional FLAG webBlockContactNewJpeg194 = 389;
    optional FLAG webBlockContactNewJpeg195 = 390;
    optional FLAG webBlockContactNewJpeg196 = 391;
    optional FLAG webBlockContactNewJpeg197 = 392;
    optional FLAG webBlockContactNewJpeg198 = 393;
    optional FLAG webBlockContactNewJpeg199 = 394;
    optional FLAG webBlockContactNewJpeg200 = 395;
    optional FLAG webBlockContactNewJpeg201 = 396;
    optional FLAG webBlockContactNewJpeg202 = 397;
    optional FLAG webBlockContactNewJpeg203 = 398;
    optional FLAG webBlockContactNewJpeg204 = 399;
    optional FLAG webBlockContactNewJpeg205 = 400;
    optional FLAG webBlockContactNewJpeg206 = 401;
    optional FLAG webBlockContactNewJpeg207 = 402;
    optional FLAG webBlockContactNewJpeg208 = 403;
    optional FLAG webBlockContactNewJpeg209 = 404;
    optional FLAG webBlockContactNewJpeg210 = 405;
    optional FLAG webBlockContactNewJpeg211 = 406;
    optional FLAG webBlockContactNewJpeg212 = 407;
    optional FLAG webBlockContactNewJpeg213 = 408;
    optional FLAG webBlockContactNewJpeg214 = 409;
    optional FLAG webBlockContactNewJpeg215 = 410;
    optional FLAG webBlockContactNewJpeg216 = 411;
    optional FLAG webBlockContactNewJpeg217 = 412;
    optional FLAG webBlockContactNewJpeg218 = 413;
    optional FLAG webBlockContactNewJpeg219 = 414;
    optional FLAG webBlockContactNewJpeg220 = 415;
    optional FLAG webBlockContactNewJpeg221 = 416;
    optional FLAG webBlockContactNewJpeg222 = 417;
    optional FLAG webBlockContactNewJpeg223 = 418;
    optional FLAG webBlockContactNewJpeg224 = 419;
    optional FLAG webBlockContactNewJpeg225 = 420;
    optional FLAG webBlockContactNewJpeg226 = 421;
    optional FLAG webBlockContactNewJpeg227 = 422;
    optional FLAG webBlockContactNewJpeg228 = 423;
    optional FLAG webBlockContactNewJpeg229 = 424;
    optional FLAG webBlockContactNewJpeg230 = 425;
    optional FLAG webBlockContactNewJpeg231 = 426;
    optional FLAG webBlockContactNewJpeg232 = 427;
    optional FLAG webBlockContactNewJpeg233 = 428;
    optional FLAG webBlockContactNewJpeg234 = 429;
    optional FLAG webBlockContactNewJpeg235 = 430;
    optional FLAG webBlockContactNewJpeg236 = 431;
    optional FLAG webBlockContactNewJpeg237 = 432;
    optional FLAG webBlockContactNewJpeg238 = 433;
    optional FLAG webBlockContactNewJpeg239 = 434;
    optional FLAG webBlockContactNewJpeg240 = 435;
    optional FLAG webBlockContactNewJpeg241 = 436;
    optional FLAG webBlockContactNewJpeg242 = 437;
    optional FLAG webBlockContactNewJpeg243 = 438;
    optional FLAG webBlockContactNewJpeg244 = 439;
    optional FLAG webBlockContactNewJpeg245 = 440;
    optional FLAG webBlockContactNewJpeg246 = 441;
    optional FLAG webBlockContactNewJpeg247 = 442;
    optional FLAG webBlockContactNewJpeg248 = 443;
    optional FLAG webBlockContactNewJpeg249 = 444;
    optional FLAG webBlockContactNewJpeg250 = 445;
    optional FLAG webBlockContactNewJpeg251 = 446;
    optional FLAG webBlockContactNewJpeg252 = 447;
    optional FLAG webBlockContactNewJpeg253 = 448;
    optional FLAG webBlockContactNewJpeg254 = 449;
    optional FLAG webBlockContactNewJpeg255 = 450;
    optional FLAG webBlockContactNewJpeg256 = 451;
    optional FLAG webBlockContactNewJpeg257 = 452;
    optional FLAG webBlockContactNewJpeg258 = 453;
    optional FLAG webBlockContactNewJpeg259 = 454;
    optional FLAG webBlockContactNewJpeg260 = 455;
    optional FLAG webBlockContactNewJpeg261 = 456;
    optional FLAG webBlockContactNewJpeg262 = 457;
    optional FLAG webBlockContactNewJpeg263 = 458;
    optional FLAG webBlockContactNewJpeg264 = 459;
    optional FLAG webBlockContactNewJpeg265 = 460;
    optional FLAG webBlockContactNewJpeg266 = 461;
    optional FLAG webBlockContactNewJpeg267 = 462;
    optional FLAG webBlockContactNewJpeg268 = 463;
    optional FLAG webBlockContactNewJpeg269 = 464;
    optional FLAG webBlockContactNewJpeg270 = 465;
    optional FLAG webBlockContactNewJpeg271 = 466;
    optional FLAG webBlockContactNewJpeg272 = 467;
    optional FLAG webBlockContactNewJpeg273 = 468;
    optional FLAG webBlockContactNewJpeg274 = 469;
    optional FLAG webBlockContactNewJpeg275 = 470;
    optional FLAG webBlockContactNewJpeg276 = 471;
    optional FLAG webBlockContactNewJpeg277 = 472;
    optional FLAG webBlockContactNewJpeg278 = 473;
    optional FLAG webBlockContactNewJpeg279 = 474;
    optional FLAG webBlockContactNewJpeg280 = 475;
    optional FLAG webBlockContactNewJpeg281 = 476;
    optional FLAG webBlockContactNewJpeg282 = 477;
    optional FLAG webBlockContactNewJpeg283 = 478;
    optional FLAG webBlockContactNewJpeg284 = 479;
    optional FLAG webBlockContactNewJpeg285 = 480;
    optional FLAG webBlockContactNewJpeg286 = 481;
    optional FLAG webBlockContactNewJpeg287 = 482;
    optional FLAG webBlockContactNewJpeg288 = 483;
    optional FLAG webBlockContactNewJpeg289 = 484;
    optional FLAG webBlockContactNewJpeg290 = 485;
    optional FLAG webBlockContactNewJpeg291 = 486;
    optional FLAG webBlockContactNewJpeg292 = 487;
    optional FLAG webBlockContactNewJpeg293 = 488;
    optional FLAG webBlockContactNewJpeg294 = 489;
    optional FLAG webBlockContactNewJpeg295 = 490;
    optional FLAG webBlockContactNewJpeg296 = 491;
    optional FLAG webBlockContactNewJpeg297 = 492;
    optional FLAG webBlockContactNewJpeg298 = 493;
    optional FLAG webBlockContactNewJpeg299 = 494;
    optional FLAG webBlockContactNewJpeg300 = 495;
    optional FLAG webBlockContactNewJpeg301 = 496;
    optional FLAG webBlockContactNewJpeg302 = 497;
    optional FLAG webBlockContactNewJpeg303 = 498;
    optional FLAG webBlockContactNewJpeg304 = 499;
    optional FLAG webBlockContactNewJpeg305 = 500;
    optional FLAG webBlockContactNewJpeg306 = 501;
    optional FLAG webBlockContactNewJpeg307 = 502;
    optional FLAG webBlockContactNewJpeg308 = 503;
    optional FLAG webBlockContactNewJpeg309 = 504;
    optional FLAG webBlockContactNewJpeg310 = 505;
    optional FLAG webBlockContactNewJpeg311 = 506;
    optional FLAG webBlockContactNewJpeg312 = 507;
    optional FLAG webBlockContactNewJpeg313 = 508;
    optional FLAG webBlockContactNewJpeg314 = 509;
    optional FLAG webBlockContactNewJpeg315 = 510;
    optional FLAG webBlockContactNewJpeg316 = 511;
    optional FLAG webBlockContactNewJpeg317 = 512;
    optional FLAG webBlockContactNewJpeg318 = 513;
    optional FLAG webBlockContactNewJpeg319 = 514;
    optional FLAG webBlockContactNewJpeg320 = 515;
    optional FLAG webBlockContactNewJpeg321 = 516;
    optional FLAG webBlockContactNewJpeg322 = 517;
    optional FLAG webBlockContactNewJpeg323 = 518;
    optional FLAG webBlockContactNewJpeg324 = 519;
    optional FLAG webBlockContactNewJpeg325 = 520;
    optional FLAG webBlockContactNewJpeg326 = 521;
    optional FLAG webBlockContactNewJpeg327 = 522;
    optional FLAG webBlockContactNewJpeg328 = 523;
    optional FLAG webBlockContactNewJpeg329 = 524;
    optional FLAG webBlockContactNewJpeg330 = 525;
    optional FLAG webBlockContactNewJpeg331 = 526;
    optional FLAG webBlockContactNewJpeg332 = 527;
    optional FLAG webBlockContactNewJpeg333 = 528;
    optional FLAG webBlockContactNewJpeg334 = 529;
    optional FLAG webBlockContactNewJpeg335 = 530;
    optional FLAG webBlockContactNewJpeg336 = 531;
    optional FLAG webBlockContactNewJpeg337 = 532;
    optional FLAG webBlockContactNewJpeg338 = 533;
    optional FLAG webBlockContactNewJpeg339 = 534;
    optional FLAG webBlockContactNewJpeg340 = 535;
    optional FLAG webBlockContactNewJpeg341 = 536;
    optional FLAG webBlockContactNewJpeg342 = 537;
    optional FLAG webBlockContactNewJpeg343 = 538;
    optional FLAG webBlockContactNewJpeg344 = 539;
    optional FLAG webBlockContactNewJpeg345 = 540;
    optional FLAG webBlockContactNewJpeg346 = 541;
    optional FLAG webBlockContactNewJpeg347 = 542;
    optional FLAG webBlockContactNewJpeg348 = 543;
    optional FLAG webBlockContactNewJpeg349 = 544;
    optional FLAG webBlockContactNewJpeg350 = 545;
    optional FLAG webBlockContactNewJpeg351 = 546;
    optional FLAG webBlockContactNewJpeg352 = 547;
    optional FLAG webBlockContactNewJpeg353 = 548;
    optional FLAG webBlockContactNewJpeg354 = 549;
    optional FLAG webBlockContactNewJpeg355 = 550;
    optional FLAG webBlockContactNewJpeg356 = 551;
    optional FLAG webBlockContactNewJpeg357 = 552;
    optional FLAG webBlockContactNewJpeg358 = 553;
    optional FLAG webBlockContactNewJpeg359 = 554;
    optional FLAG webBlockContactNewJpeg360 = 555;
    optional FLAG webBlockContactNewJpeg361 = 556;
    optional FLAG webBlockContactNewJpeg362 = 557;
    optional FLAG webBlockContactNewJpeg363 = 558;
    optional FLAG webBlockContactNewJpeg364 = 559;
    optional FLAG webBlockContactNewJpeg365 = 560;
    optional FLAG webBlockContactNewJpeg366 = 561;
    optional FLAG webBlockContactNewJpeg367 = 562;
    optional FLAG webBlockContactNewJpeg368 = 563;
    optional FLAG webBlockContactNewJpeg369 = 564;
    optional FLAG webBlockContactNewJpeg370 = 565;
    optional FLAG webBlockContactNewJpeg371 = 566;
    optional FLAG webBlockContactNewJpeg372 = 567;
    optional FLAG webBlockContactNewJpeg373 = 568;
    optional FLAG webBlockContactNewJpeg374 = 569;
    optional FLAG webBlockContactNewJpeg375 = 570;
    optional FLAG webBlockContactNewJpeg376 = 571;
    optional FLAG webBlockContactNewJpeg377 = 572;
    optional FLAG webBlockContactNewJpeg378 = 573;
    optional FLAG webBlockContactNewJpeg379 = 574;
    optional FLAG webBlockContactNewJpeg380 = 575;
    optional FLAG webBlockContactNewJpeg381 = 576;
    optional FLAG webBlockContactNewJpeg382 = 577;
    optional FLAG webBlockContactNewJpeg383 = 578;
    optional FLAG webBlockContactNewJpeg384 = 579;
    optional FLAG webBlockContactNewJpeg385 = 580;
    optional FLAG webBlockContactNewJpeg386 = 581;
    optional FLAG webBlockContactNewJpeg387 = 582;
    optional FLAG webBlockContactNewJpeg388 = 583;
    optional FLAG webBlockContactNewJpeg389 = 584;
    optional FLAG webBlockContactNewJpeg390 = 585;
    optional FLAG webBlockContactNewJpeg391 = 586;
    optional FLAG webBlockContactNewJpeg392 = 587;
    optional FLAG webBlockContactNewJpeg393 = 588;
    optional FLAG webBlockContactNewJpeg394 = 589;
    optional FLAG webBlockContactNewJpeg395 = 590;
    optional FLAG webBlockContactNewJpeg396 = 591;
    optional FLAG webBlockContactNewJpeg397 = 592;
    optional FLAG webBlockContactNewJpeg398 = 593;
    optional FLAG webBlockContactNewJpeg399 = 594;
    optional FLAG webBlockContactNewJpeg400 = 595;
    optional FLAG webBlockContactNewJpeg401 = 596;
    optional FLAG webBlockContactNewJpeg402 = 597;
    optional FLAG webBlockContactNewJpeg403 = 598;
    optional FLAG webBlockContactNewJpeg404 = 599;
    optional FLAG webBlockContactNewJpeg405 = 600;
    optional FLAG webBlockContactNewJpeg406 = 601;
    optional FLAG webBlockContactNewJpeg407 = 602;
    optional FLAG webBlockContactNewJpeg408 = 603;
    optional FLAG webBlockContactNewJpeg409 = 604;
    optional FLAG webBlockContactNewJpeg410 = 605;
    optional FLAG webBlockContactNewJpeg411 = 606;
    optional FLAG webBlockContactNewJpeg412 = 607;
    optional FLAG webBlockContactNewJpeg413 = 608;
    optional FLAG webBlockContactNewJpeg414 = 609;
    optional FLAG webBlockContactNewJpeg415 = 610;
    optional FLAG webBlockContactNewJpeg416 = 611;
    optional FLAG webBlockContactNewJpeg417 = 612;
    optional FLAG webBlockContactNewJpeg418 = 613;
    optional FLAG webBlockContactNewJpeg419 = 614;
    optional FLAG webBlockContactNewJpeg420 = 615;
    optional FLAG webBlockContactNewJpeg421 = 616;
    optional FLAG webBlockContactNewJpeg422 = 617;
    optional FLAG webBlockContactNewJpeg423 = 618;
    optional FLAG webBlockContactNewJpeg424 = 619;
    optional FLAG webBlockContactNewJpeg425 = 620;
    optional FLAG webBlockContactNewJpeg426 = 621;
    optional FLAG webBlockContactNewJpeg427 = 622;
    optional FLAG webBlockContactNewJpeg428 = 623;
    optional FLAG webBlockContactNewJpeg429 = 624;
    optional FLAG webBlockContactNewJpeg430 = 625;
    optional FLAG webBlockContactNewJpeg431 = 626;
    optional FLAG webBlockContactNewJpeg432 = 627;
    optional FLAG webBlockContactNewJpeg433 = 628;
    optional FLAG webBlockContactNewJpeg434 = 629;
    optional FLAG webBlockContactNewJpeg435 = 630;
    optional FLAG webBlockContactNewJpeg436 = 631;
    optional FLAG webBlockContactNewJpeg437 = 632;
    optional FLAG webBlockContactNewJpeg438 = 633;
    optional FLAG webBlockContactNewJpeg439 = 634;
    optional FLAG webBlockContactNewJpeg440 = 635;
    optional FLAG webBlockContactNewJpeg441 = 636;
    optional FLAG webBlockContactNewJpeg442 = 637;
    optional FLAG webBlockContactNewJpeg443 = 638;
    optional FLAG webBlockContactNewJpeg444 = 639;
    optional FLAG webBlockContactNewJpeg445 = 640;
    optional FLAG webBlockContactNewJpeg446 = 641;
    optional FLAG webBlockContactNewJpeg447 = 642;
    optional FLAG webBlockContactNewJpeg448 = 643;
    optional FLAG webBlockContactNewJpeg449 = 644;
    optional FLAG webBlockContactNewJpeg450 = 645;
    optional FLAG webBlockContactNewJpeg451 = 646;
    optional FLAG webBlockContactNewJpeg452 = 647;
    optional FLAG webBlockContactNewJpeg453 = 648;
    optional FLAG webBlockContactNewJpeg454 = 649;
    optional FLAG webBlockContactNewJpeg455 = 650;
    optional FLAG webBlockContactNewJpeg456 = 651;
    optional FLAG webBlockContactNewJpeg457 = 652;
    optional FLAG webBlockContactNewJpeg458 = 653;
    optional FLAG webBlockContactNewJpeg459 = 654;
    optional FLAG webBlockContactNewJpeg460 = 655;
    optional FLAG webBlockContactNewJpeg461 = 656;
    optional FLAG webBlockContactNewJpeg462 = 657;
    optional FLAG webBlockContactNewJpeg463 = 658;
    optional FLAG webBlockContactNewJpeg464 = 659;
    optional FLAG webBlockContactNewJpeg465 = 660;
    optional FLAG webBlockContactNewJpeg466 = 661;
    optional FLAG webBlockContactNewJpeg467 = 662;
    optional FLAG webBlockContactNewJpeg468 = 663;
    optional FLAG webBlockContactNewJpeg469 = 664;
    optional FLAG webBlockContactNewJpeg470 = 665;
    optional FLAG webBlockContactNewJpeg471 = 666;
    optional FLAG webBlockContactNewJpeg472 = 667;
    optional FLAG webBlockContactNewJpeg473 = 668;
    optional FLAG webBlockContactNewJpeg474 = 669;
    optional FLAG webBlockContactNewJpeg475 = 670;
    optional FLAG webBlockContactNewJpeg476 = 671;
    optional FLAG webBlockContactNewJpeg477 = 672;
    optional FLAG webBlockContactNewJpeg478 = 673;
    optional FLAG webBlockContactNewJpeg479 = 674;
    optional FLAG webBlockContactNewJpeg480 = 675;
    optional FLAG webBlockContactNewJpeg481 = 676;
    optional FLAG webBlockContactNewJpeg482 = 677;
    optional FLAG webBlockContactNewJpeg483 = 678;
    optional FLAG webBlockContactNewJpeg484 = 679;
    optional FLAG webBlockContactNewJpeg485 = 680;
    optional FLAG webBlockContactNewJpeg486 = 681;
    optional FLAG webBlockContactNewJpeg487 = 682;
    optional FLAG webBlockContactNewJpeg488 = 683;
    optional FLAG webBlockContactNewJpeg489 = 684;
    optional FLAG webBlockContactNewJpeg490 = 685;
    optional FLAG webBlockContactNewJpeg491 = 686;
    optional FLAG webBlockContactNewJpeg492 = 687;
    optional FLAG webBlockContactNewJpeg493 = 688;
    optional FLAG webBlockContactNewJpeg494 = 689;
    optional FLAG webBlockContactNewJpeg495 = 690;
    optional FLAG webBlockContactNewJpeg496 = 691;
    optional FLAG webBlockContactNewJpeg497 = 692;
    optional FLAG webBlockContactNewJpeg498 = 693;
    optional FLAG webBlockContactNewJpeg499 = 694;
    optional FLAG webBlockContactNewJpeg500 = 695;
    optional FLAG disappearingMode = 696;
    optional FLAG webDisappearingMode = 697;
    optional FLAG webPrivacyMode = 698;
    optional FLAG webBlockContactNewJpeg501 = 699;
    optional FLAG webBlockContactNewJpeg502 = 700;
    optional FLAG webBlockContactNewJpeg503 = 701;
    optional FLAG webBlockContactNewJpeg504 = 702;
    optional FLAG webBlockContactNewJpeg505 = 703;
    optional FLAG webBlockContactNewJpeg506 = 704;
    optional FLAG webBlockContactNewJpeg507 = 705;
    optional FLAG webBlockContactNewJpeg508 = 706;
    optional FLAG webBlockContactNewJpeg509 = 707;
    optional FLAG webBlockContactNewJpeg510 = 708;
    optional FLAG webBlockContactNewJpeg511 = 709;
    optional FLAG webBlockContactNewJpeg512 = 710;
    optional FLAG webBlockContactNewJpeg513 = 711;
    optional FLAG webBlockContactNewJpeg514 = 712;
    optional FLAG webBlockContactNewJpeg515 = 713;
    optional FLAG webBlockContactNewJpeg516 = 714;
    optional FLAG webBlockContactNewJpeg517 = 715;
    optional FLAG webBlockContactNewJpeg518 = 716;
    optional FLAG webBlockContactNewJpeg519 = 717;
    optional FLAG webBlockContactNewJpeg520 = 718;
    optional FLAG webBlockContactNewJpeg521 = 719;
    optional FLAG webBlockContactNewJpeg522 = 720;
    optional FLAG webBlockContactNewJpeg523 = 721;
    optional FLAG webBlockContactNewJpeg524 = 722;
    optional FLAG webBlockContactNewJpeg525 = 723;
    optional FLAG webBlockContactNewJpeg526 = 724;
    optional FLAG webBlockContactNewJpeg527 = 725;
    optional FLAG webBlockContactNewJpeg528 = 726;
    optional FLAG webBlockContactNewJpeg529 = 727;
    optional FLAG webBlockContactNewJpeg530 = 728;
    optional FLAG webBlockContactNewJpeg531 = 729;
    optional FLAG webBlockContactNewJpeg532 = 730;
    optional FLAG webBlockContactNewJpeg533 = 731;
    optional FLAG webBlockContactNewJpeg534 = 732;
    optional FLAG webBlockContactNewJpeg535 = 733;
    optional FLAG webBlockContactNewJpeg536 = 734;
    optional FLAG webBlockContactNewJpeg537 = 735;
    optional FLAG webBlockContactNewJpeg538 = 736;
    optional FLAG webBlockContactNewJpeg539 = 737;
    optional FLAG webBlockContactNewJpeg540 = 738;
    optional FLAG webBlockContactNewJpeg541 = 739;
    optional FLAG webBlockContactNewJpeg542 = 740;
    optional FLAG webBlockContactNewJpeg543 = 741;
    optional FLAG webBlockContactNewJpeg544 = 742;
    optional FLAG webBlockContactNewJpeg545 = 743;
    optional FLAG webBlockContactNewJpeg546 = 744;
    optional FLAG webBlockContactNewJpeg547 = 745;
    optional FLAG webBlockContactNewJpeg548 = 746;
    optional FLAG webBlockContactNewJpeg549 = 747;
    optional FLAG webBlockContactNewJpeg550 = 748;
    optional FLAG webBlockContactNewJpeg551 = 749;
    optional FLAG webBlockContactNewJpeg552 = 750;
    optional FLAG webBlockContactNewJpeg553 = 751;
    optional FLAG webBlockContactNewJpeg554 = 752;
    optional FLAG webBlockContactNewJpeg555 = 753;
    optional FLAG webBlockContactNewJpeg556 = 754;
    optional FLAG webBlockContactNewJpeg557 = 755;
    optional FLAG webBlockContactNewJpeg558 = 756;
    optional FLAG webBlockContactNewJpeg559 = 757;
    optional FLAG webBlockContactNewJpeg560 = 758;
    optional FLAG webBlockContactNewJpeg561 = 759;
    optional FLAG webBlockContactNewJpeg562 = 760;
    optional FLAG webBlockContactNewJpeg563 = 761;
    optional FLAG webBlockContactNewJpeg564 = 762;
    optional FLAG webBlockContactNewJpeg565 = 763;
    optional FLAG webBlockContactNewJpeg566 = 764;
    optional FLAG webBlockContactNewJpeg567 = 765;
    optional FLAG webBlockContactNewJpeg568 = 766;
    optional FLAG webBlockContactNewJpeg569 = 767;
    optional FLAG webBlockContactNewJpeg570 = 768;
    optional FLAG webBlockContactNewJpeg571 = 769;
    optional FLAG webBlockContactNewJpeg572 = 770;
    optional FLAG webBlockContactNewJpeg573 = 771;
    optional FLAG webBlockContactNewJpeg574 = 772;
    optional FLAG webBlockContactNewJpeg575 = 773;
    optional FLAG webBlockContactNewJpeg576 = 774;
    optional FLAG webBlockContactNewJpeg577 = 775;
    optional FLAG webBlockContactNewJpeg578 = 776;
    optional FLAG webBlockContactNewJpeg579 = 777;
    optional FLAG webBlockContactNewJpeg580 = 778;
    optional FLAG webBlockContactNewJpeg581 = 779;
    optional FLAG webBlockContactNewJpeg582 = 780;
    optional FLAG webBlockContactNewJpeg583 = 781;
    optional FLAG webBlockContactNewJpeg584 = 782;
    optional FLAG webBlockContactNewJpeg585 = 783;
    optional FLAG webBlockContactNewJpeg586 = 784;
    optional FLAG webBlockContactNewJpeg587 = 785;
    optional FLAG webBlockContactNewJpeg588 = 786;
    optional FLAG webBlockContactNewJpeg589 = 787;
    optional FLAG webBlockContactNewJpeg590 = 788;
    optional FLAG webBlockContactNewJpeg591 = 789;
    optional FLAG webBlockContactNewJpeg592 = 790;
    optional FLAG webBlockContactNewJpeg593 = 791;
    optional FLAG webBlockContactNewJpeg594 = 792;
    optional FLAG webBlockContactNewJpeg595 = 793;
    optional FLAG webBlockContactNewJpeg596 = 794;
    optional FLAG webBlockContactNewJpeg597 = 795;
    optional FLAG webBlockContactNewJpeg598 = 796;
    optional FLAG webBlockContactNewJpeg599 = 797;
    optional FLAG webBlockContactNewJpeg600 = 798;
    optional FLAG disappearingModeV2 = 799;
    optional FLAG webDisappearingModeV2 = 800;
    optional FLAG webPrivacyModeV2 = 801;
    optional FLAG webBlockContactNewJpeg601 = 802;
    optional FLAG webBlockContactNewJpeg602 = 803;
    optional FLAG webBlockContactNewJpeg603 = 804;
    optional FLAG webBlockContactNewJpeg604 = 805;
    optional FLAG webBlockContactNewJpeg605 = 806;
    optional FLAG webBlockContactNewJpeg606 = 807;
    optional FLAG webBlockContactNewJpeg607 = 808;
    optional FLAG webBlockContactNewJpeg608 = 809;
    optional FLAG webBlockContactNewJpeg609 = 810;
    optional FLAG webBlockContactNewJpeg610 = 811;
    optional FLAG webBlockContactNewJpeg611 = 812;
    optional FLAG webBlockContactNewJpeg612 = 813;
    optional FLAG webBlockContactNewJpeg613 = 814;
    optional FLAG webBlockContactNewJpeg614 = 815;
    optional FLAG webBlockContactNewJpeg615 = 816;
    optional FLAG webBlockContactNewJpeg616 = 817;
    optional FLAG webBlockContactNewJpeg617 = 818;
    optional FLAG webBlockContactNewJpeg618 = 819;
    optional FLAG webBlockContactNewJpeg619 = 820;
    optional FLAG webBlockContactNewJpeg620 = 821;
    optional FLAG webBlockContactNewJpeg621 = 822;
    optional FLAG webBlockContactNewJpeg622 = 823;
    optional FLAG webBlockContactNewJpeg623 = 824;
    optional FLAG webBlockContactNewJpeg624 = 825;
    optional FLAG webBlockContactNewJpeg625 = 826;
    optional FLAG webBlockContactNewJpeg626 = 827;
    optional FLAG webBlockContactNewJpeg627 = 828;
    optional FLAG webBlockContactNewJpeg628 = 829;
    optional FLAG webBlockContactNewJpeg629 = 830;
    optional FLAG webBlockContactNewJpeg630 = 831;
    optional FLAG webBlockContactNewJpeg631 = 832;
    optional FLAG webBlockContactNewJpeg632 = 833;
    optional FLAG webBlockContactNewJpeg633 = 834;
    optional FLAG webBlockContactNewJpeg634 = 835;
    optional FLAG webBlockContactNewJpeg635 = 836;
    optional FLAG webBlockContactNewJpeg636 = 837;
    optional FLAG webBlockContactNewJpeg637 = 838;
    optional FLAG webBlockContactNewJpeg638 = 839;
    optional FLAG webBlockContactNewJpeg640 = 840;
    optional FLAG webBlockContactNewJpeg641 = 841;
    optional FLAG webBlockContactNewJpeg642 = 842;
    optional FLAG webBlockContactNewJpeg643 = 843;
    optional FLAG webBlockContactNewJpeg644 = 844;
    optional FLAG webBlockContactNewJpeg645 = 845;
    optional FLAG webBlockContactNewJpeg646 = 846;
    optional FLAG webBlockContactNewJpeg647 = 847;
    optional FLAG webBlockContactNewJpeg648 = 848;
    optional FLAG webBlockContactNewJpeg649 = 849;
    optional FLAG webBlockContactNewJpeg650 = 850;
    optional FLAG disappearingModeV3 = 851;
    optional FLAG webDisappearingModeV3 = 852;
    optional FLAG webPrivacyModeV3 = 853;
    optional FLAG disappearingModeV4 = 854;
    optional FLAG webDisappearingModeV4 = 855;
    optional FLAG webPrivacyModeV4 = 856;
    optional FLAG disappearingModeV5 = 857;
    optional FLAG webDisappearingModeV5 = 858;
    optional FLAG webPrivacyModeV5 = 859;
    optional FLAG disappearingModeV6 = 860;
    optional FLAG webDisappearingModeV6 = 861;
    optional FLAG webPrivacyModeV6 = 862;
    optional FLAG disappearingModeV7 = 863;
    optional FLAG webDisappearingModeV7 = 864;
    optional FLAG webPrivacyModeV7 = 865;
    optional FLAG disappearingModeV8 = 866;
    optional FLAG webDisappearingModeV8 = 867;
    optional FLAG webPrivacyModeV8 = 868;
    optional FLAG disappearingModeV9 = 869;
    optional FLAG webDisappearingModeV9 = 870;
    optional FLAG webPrivacyModeV9 = 871;
    optional FLAG disappearingModeV10 = 872;
    optional FLAG webDisappearingModeV10 = 873;
    optional FLAG webPrivacyModeV10 = 874;
    optional FLAG disappearingModeV11 = 875;
    optional FLAG webDisappearingModeV11 = 876;
    optional FLAG webPrivacyModeV11 = 877;
    optional FLAG disappearingModeV12 = 878;
    optional FLAG webDisappearingModeV12 = 879;
    optional FLAG webPrivacyModeV12 = 880;
}