@n1xyz/nord-ts 0.7.2 → 0.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions.d.ts +31 -20
- package/dist/client/Nord.d.ts +20 -3
- package/dist/client/NordAdmin.d.ts +16 -21
- package/dist/client/NordUser.d.ts +24 -24
- package/dist/gen/nord_pb.d.ts +474 -355
- package/dist/gen/openapi.d.ts +182 -83
- package/dist/index.browser.js +331 -305
- package/dist/index.common.js +334 -308
- package/dist/types.d.ts +10 -8
- package/package.json +1 -1
- package/dist/gen/core_pb.d.ts +0 -120
- package/dist/gen/src/components/rfq/rfq_pb.d.ts +0 -791
package/dist/index.browser.js
CHANGED
|
@@ -25369,6 +25369,7 @@ __export(exports_nord_pb, {
|
|
|
25369
25369
|
Receipt_TriggerAddedSchema: () => Receipt_TriggerAddedSchema,
|
|
25370
25370
|
Receipt_TransferredSchema: () => Receipt_TransferredSchema,
|
|
25371
25371
|
Receipt_TradeSchema: () => Receipt_TradeSchema,
|
|
25372
|
+
Receipt_TakeAllTakerResultSchema: () => Receipt_TakeAllTakerResultSchema,
|
|
25372
25373
|
Receipt_TakeAllPositionsResultSchema: () => Receipt_TakeAllPositionsResultSchema,
|
|
25373
25374
|
Receipt_TakeAllPositionSchema: () => Receipt_TakeAllPositionSchema,
|
|
25374
25375
|
Receipt_TakeAllOrderUpdatesSchema: () => Receipt_TakeAllOrderUpdatesSchema,
|
|
@@ -25400,23 +25401,24 @@ __export(exports_nord_pb, {
|
|
|
25400
25401
|
Receipt_InsertTokenResultSchema: () => Receipt_InsertTokenResultSchema,
|
|
25401
25402
|
Receipt_InsertMarketResultSchema: () => Receipt_InsertMarketResultSchema,
|
|
25402
25403
|
Receipt_FeeVaultTransferredSchema: () => Receipt_FeeVaultTransferredSchema,
|
|
25403
|
-
|
|
25404
|
-
|
|
25404
|
+
Receipt_FeeTierTypeUpdatedSchema: () => Receipt_FeeTierTypeUpdatedSchema,
|
|
25405
|
+
Receipt_FeeTierTypeAddedSchema: () => Receipt_FeeTierTypeAddedSchema,
|
|
25405
25406
|
Receipt_DepositResultSchema: () => Receipt_DepositResultSchema,
|
|
25406
25407
|
Receipt_CreateSessionResultSchema: () => Receipt_CreateSessionResultSchema,
|
|
25407
25408
|
Receipt_ClearMarketResultSchema: () => Receipt_ClearMarketResultSchema,
|
|
25408
25409
|
Receipt_ClearMarketClosedPositionSchema: () => Receipt_ClearMarketClosedPositionSchema,
|
|
25409
|
-
Receipt_ClearMarketCancelledOrderSchema: () => Receipt_ClearMarketCancelledOrderSchema,
|
|
25410
25410
|
Receipt_CancelledTriggerSchema: () => Receipt_CancelledTriggerSchema,
|
|
25411
|
+
Receipt_CancelledOrderSchema: () => Receipt_CancelledOrderSchema,
|
|
25411
25412
|
Receipt_CancelOrderResultSchema: () => Receipt_CancelOrderResultSchema,
|
|
25412
25413
|
Receipt_BackstopAccountSetSchema: () => Receipt_BackstopAccountSetSchema,
|
|
25413
25414
|
Receipt_AtomicSubactionResultKindSchema: () => Receipt_AtomicSubactionResultKindSchema,
|
|
25414
25415
|
Receipt_AtomicResultSchema: () => Receipt_AtomicResultSchema,
|
|
25415
25416
|
Receipt_AclUpdatedSchema: () => Receipt_AclUpdatedSchema,
|
|
25416
|
-
|
|
25417
|
+
Receipt_AccountsFeeTierTypeModeUpdatedSchema: () => Receipt_AccountsFeeTierTypeModeUpdatedSchema,
|
|
25417
25418
|
Receipt_AccountPlacementReceiptSchema: () => Receipt_AccountPlacementReceiptSchema,
|
|
25418
25419
|
ReceiptSchema: () => ReceiptSchema,
|
|
25419
25420
|
RFQQtyPlaceSchema: () => RFQQtyPlaceSchema,
|
|
25421
|
+
RFQExecutionSchema: () => RFQExecutionSchema,
|
|
25420
25422
|
PythLazerTrustedSignerSchema: () => PythLazerTrustedSignerSchema,
|
|
25421
25423
|
PlacementRoleSchema: () => PlacementRoleSchema,
|
|
25422
25424
|
PlacementRole: () => PlacementRole,
|
|
@@ -25435,6 +25437,7 @@ __export(exports_nord_pb, {
|
|
|
25435
25437
|
FillRFQResultSchema: () => FillRFQResultSchema,
|
|
25436
25438
|
FillModeSchema: () => FillModeSchema,
|
|
25437
25439
|
FillMode: () => FillMode,
|
|
25440
|
+
FeeTierTypeConfigSchema: () => FeeTierTypeConfigSchema,
|
|
25438
25441
|
FeeTierConfigSchema: () => FeeTierConfigSchema,
|
|
25439
25442
|
ErrorSchema: () => ErrorSchema,
|
|
25440
25443
|
Error: () => Error2,
|
|
@@ -25444,14 +25447,11 @@ __export(exports_nord_pb, {
|
|
|
25444
25447
|
CreateRfqMarket_MarginsSchema: () => CreateRfqMarket_MarginsSchema,
|
|
25445
25448
|
CreateRfqMarket_DecimalsSchema: () => CreateRfqMarket_DecimalsSchema,
|
|
25446
25449
|
CreateRfqMarketSchema: () => CreateRfqMarketSchema,
|
|
25447
|
-
AtomicV2Schema: () => AtomicV2Schema,
|
|
25448
25450
|
AtomicV1Schema: () => AtomicV1Schema,
|
|
25449
|
-
AtomicSubactionV2Schema: () => AtomicSubactionV2Schema,
|
|
25450
25451
|
AtomicSubactionSchema: () => AtomicSubactionSchema,
|
|
25451
25452
|
AtomicSubactionKindV1Schema: () => AtomicSubactionKindV1Schema,
|
|
25452
25453
|
AtomicSchema: () => AtomicSchema,
|
|
25453
25454
|
AtomicRemoveTriggerSchema: () => AtomicRemoveTriggerSchema,
|
|
25454
|
-
AtomicPlacementRequestSchema: () => AtomicPlacementRequestSchema,
|
|
25455
25455
|
AtomicEditTriggerSchema: () => AtomicEditTriggerSchema,
|
|
25456
25456
|
AtomicCancelOrderByIdSchema: () => AtomicCancelOrderByIdSchema,
|
|
25457
25457
|
AtomicCancelOrderByClientIdSchema: () => AtomicCancelOrderByClientIdSchema,
|
|
@@ -25460,9 +25460,9 @@ __export(exports_nord_pb, {
|
|
|
25460
25460
|
Action_WithdrawSchema: () => Action_WithdrawSchema,
|
|
25461
25461
|
Action_UserSignatureFramingSchema: () => Action_UserSignatureFramingSchema,
|
|
25462
25462
|
Action_UserSignatureFraming: () => Action_UserSignatureFraming,
|
|
25463
|
-
|
|
25463
|
+
Action_UpdateFeeTierTypeSchema: () => Action_UpdateFeeTierTypeSchema,
|
|
25464
25464
|
Action_UpdateAclSchema: () => Action_UpdateAclSchema,
|
|
25465
|
-
|
|
25465
|
+
Action_UpdateAccountsFeeTierTypeModeSchema: () => Action_UpdateAccountsFeeTierTypeModeSchema,
|
|
25466
25466
|
Action_UnpauseSchema: () => Action_UnpauseSchema,
|
|
25467
25467
|
Action_UnfreezeMarketSchema: () => Action_UnfreezeMarketSchema,
|
|
25468
25468
|
Action_TransferSchema: () => Action_TransferSchema,
|
|
@@ -25500,7 +25500,7 @@ __export(exports_nord_pb, {
|
|
|
25500
25500
|
Action_CancelOrderByIdSchema: () => Action_CancelOrderByIdSchema,
|
|
25501
25501
|
Action_CancelOrderByClientIdSchema: () => Action_CancelOrderByClientIdSchema,
|
|
25502
25502
|
Action_AddTriggerSchema: () => Action_AddTriggerSchema,
|
|
25503
|
-
|
|
25503
|
+
Action_AddFeeTierTypeSchema: () => Action_AddFeeTierTypeSchema,
|
|
25504
25504
|
ActionSchema: () => ActionSchema
|
|
25505
25505
|
});
|
|
25506
25506
|
|
|
@@ -28741,7 +28741,7 @@ function fileDesc(b64, imports) {
|
|
|
28741
28741
|
}
|
|
28742
28742
|
|
|
28743
28743
|
// src/gen/nord_pb.ts
|
|
28744
|
-
var file_nord = /* @__PURE__ */ fileDesc("Cgpub3JkLnByb3RvEgRub3JkIh4KBFUxMjgSCgoCbG8YASABKAQSCgoCaGkYAiABKAQiiAEKCFJmcVRyYWRlEhsKDnRpbWVvdXRfbWlsbGlzGAEgASgNSACIAQESEQoJbWFya2V0X2lkGAIgASgNEhAKCG9yZGVyX2lkGAMgASgEEg0KBXByaWNlGAQgASgEEhgKEHRpbWVzdGFtcF9taWxsaXMYBSABKANCEQoPX3RpbWVvdXRfbWlsbGlzItQBCgxSZnFQbGFjZU9ubHkSEQoJbWFya2V0X2lkGAcgASgNEhsKDnRpbWVvdXRfbWlsbGlzGAEgASgNSACIAQESHAoPY2xpZW50X29yZGVyX2lkGAIgASgESAGIAQESDQoFcHJpY2UYAyABKAQSGAoEc2lkZRgEIAEoDjIKLm5vcmQuU2lkZRIMCgRiYXNlGAUgASgEEhgKEHRpbWVzdGFtcF9taWxsaXMYBiABKANCEQoPX3RpbWVvdXRfbWlsbGlzQhIKEF9jbGllbnRfb3JkZXJfaWQiIwoMU2V0UmZxTWFrZXJzEhMKC2FjY291bnRfaWRzGAEgAygNIiUKEFNldE1hcmtldE1vZGVSRlESEQoJbWFya2V0X2lkGAEgASgNItMCCg9DcmVhdGVSZnFNYXJrZXQSMAoIZGVjaW1hbHMYASABKAsyHi5ub3JkLkNyZWF0ZVJmcU1hcmtldC5EZWNpbWFscxIuCgdtYXJnaW5zGAIgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuTWFyZ2lucxIuCgdzeW1ib2xzGAMgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuU3ltYm9scxo5CghEZWNpbWFscxIVCg1zaXplX2RlY2ltYWxzGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNGjwKB01hcmdpbnMSDwoHaW1mX2JwcxgDIAEoDRIPCgdjbWZfYnBzGAQgASgNEg8KB21tZl9icHMYBSABKA0aNQoHU3ltYm9scxITCgt2aWV3X3N5bWJvbBgHIAEoCRIVCg1vcmFjbGVfc3ltYm9sGAggASgJIpQBCg5SZnFUcmFkZUFjdGlvbhIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIcChRxdW90ZV90aW1lb3V0X21pbGxpcxgEIAEoDRITCgliYXNlX3NpemUYBSABKANIAEIKCghxdWFudGl0eUoECAYQByLbAgoPUmZxVHJhZGVSZWNlaXB0EhAKCG9yZGVyX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoDRIwCgdzdWNjZXNzGAMgASgLMh0ubm9yZC5SZnFUcmFkZVJlY2VpcHQuU3VjY2Vzc0gAEjYKB2ZhaWx1cmUYBCABKA4yIy5ub3JkLlJmcVRyYWRlUmVjZWlwdC5GYWlsdXJlUmVhc29uSAAaggEKB1N1Y2Nlc3MSEAoIcXVvdGVfaWQYASABKAQSGAoEc2lkZRgCIAEoDjIKLm5vcmQuU2lkZRIYChBmaWxsZWRfYmFzZV9zaXplGAMgASgEEiIKDnF1b3RlX25vdGlvbmFsGAQgASgLMgoubm9yZC5VMTI4Eg0KBXByaWNlGAUgASgEIioKDUZhaWx1cmVSZWFzb24SCwoHVElNRU9VVBAAEgwKCFJFSkVDVEVEEAFCCAoGcmVzdWx0IjoKDlBsYWNlUkZRUmVzdWx0EhAKCG9yZGVyX2lkGAEgASgEEhYKDnRpbWVvdXRfbWlsbGlzGAIgASgNIqMBCg1GaWxsUkZRUmVzdWx0EhAKCG9yZGVyX2lkGAEgASgEEhgKEG1ha2VyX2FjY291bnRfaWQYAiABKA0SGAoQdGFrZXJfYWNjb3VudF9pZBgDIAEoDRIYCgtmaWxsZWRfc2l6ZRgEIAEoBEgAiAEBEhUKCHRyYWRlX2lkGAUgASgESAGIAQFCDgoMX2ZpbGxlZF9zaXplQgsKCV90cmFkZV9pZCIjCgxSZnFNYWtlcnNTZXQSEwoLYWNjb3VudF9pZHMYASADKA0iJgoLUkZRUXR5UGxhY2USFwoDcXR5GAEgASgLMgoubm9yZC5VMTI4Ij0KDUZlZVRpZXJDb25maWcSFQoNbWFrZXJfZmVlX3BwbRgBIAEoDRIVCg10YWtlcl9mZWVfcHBtGAIgASgNIvcBCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNEhUKDXNpemVfZGVjaW1hbHMYAyABKA0SFQoNYmFzZV90b2tlbl9pZBgEIAEoDRIlCgttYXJrZXRfdHlwZRgFIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIPCgdpbWZfYnBzGAYgASgNEg8KB2NtZl9icHMYByABKA0SDwoHbW1mX2JwcxgIIAEoDRIlCgttYXJrZXRfbW9kZRgJIAEoDjIQLm5vcmQuTWFya2V0TW9kZRITCgt2aWV3X3N5bWJvbBgKIAEoCSJaCgVUb2tlbhIQCgh0b2tlbl9pZBgBIAEoDRIWCg50b2tlbl9kZWNpbWFscxgCIAEoDRISCgp3ZWlnaHRfYnBzGAQgASgNEhMKC3ZpZXdfc3ltYm9sGAUgASgJIrYBCgtWYXVsdEhlYWx0aBIqChFyYXdfYWNjb3VudF92YWx1ZRgBIAEoCzIKLm5vcmQuVTEyOEgAiAEBEisKEnNhZmVfYWNjb3VudF92YWx1ZRgCIAEoCzIKLm5vcmQuVTEyOEgBiAEBEiEKBnN0YXR1cxgDIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXNCFAoSX3Jhd19hY2NvdW50X3ZhbHVlQhUKE19zYWZlX2FjY291bnRfdmFsdWUisAEKC1ZhdWx0Q29uZmlnEh8KC2RlcG9zaXRfY2FwGAEgASgLMgoubm9yZC5VMTI4EiIKGm9wZW5fcG9zaXRpb25fZGlzY291bnRfYnBzGAIgASgNEh8KF2RyYXdkb3duX3Byb3RlY3Rpb25fYnBzGAMgASgNEhsKE2RyYXdkb3duX2ZyZWV6ZV9icHMYBCABKA0SHgoWZXBvY2hfbWluX2R1cmF0aW9uX3NlYxgFIAEoDSLMAgoQVmF1bHRDb25maWdQYXRjaBIkCgtkZXBvc2l0X2NhcBgBIAEoCzIKLm5vcmQuVTEyOEgAiAEBEicKGm9wZW5fcG9zaXRpb25fZGlzY291bnRfYnBzGAIgASgNSAGIAQESJAoXZHJhd2Rvd25fcHJvdGVjdGlvbl9icHMYAyABKA1IAogBARIgChNkcmF3ZG93bl9mcmVlemVfYnBzGAQgASgNSAOIAQESIwoWZXBvY2hfbWluX2R1cmF0aW9uX3NlYxgFIAEoDUgEiAEBQg4KDF9kZXBvc2l0X2NhcEIdChtfb3Blbl9wb3NpdGlvbl9kaXNjb3VudF9icHNCGgoYX2RyYXdkb3duX3Byb3RlY3Rpb25fYnBzQhYKFF9kcmF3ZG93bl9mcmVlemVfYnBzQhkKF19lcG9jaF9taW5fZHVyYXRpb25fc2VjIkgKC0NyZWF0ZVZhdWx0EhYKDm1hbmFnZXJfcHVia2V5GAEgASgMEiEKBmNvbmZpZxgCIAEoCzIRLm5vcmQuVmF1bHRDb25maWciUwoRVXBkYXRlVmF1bHRDb25maWcSEAoIdmF1bHRfaWQYASABKA0SLAoMY29uZmlnX3BhdGNoGAIgASgLMhYubm9yZC5WYXVsdENvbmZpZ1BhdGNoIjsKD1NldFZhdWx0TWFuYWdlchIQCgh2YXVsdF9pZBgBIAEoDRIWCg5tYW5hZ2VyX3B1YmtleRgCIAEoDCI3Cg9WYXVsdFN5bmNFcG9jaHMSEgoKc2Vzc2lvbl9pZBgBIAEoBBIQCgh2YXVsdF9pZBgCIAEoDSJOChFTdGFnZWRBZG1pbkFjdGlvbhIUCgxhZG1pbl9wdWJrZXkYASABKAwSIwoEa2luZBgCIAEoCzIVLm5vcmQuQWRtaW5BY3Rpb25LaW5kIrMECg9BZG1pbkFjdGlvbktpbmQSKQoMY3JlYXRlX3ZhdWx0GAEgASgLMhEubm9yZC5DcmVhdGVWYXVsdEgAEjYKE3VwZGF0ZV92YXVsdF9jb25maWcYAiABKAsyFy5ub3JkLlVwZGF0ZVZhdWx0Q29uZmlnSAASMgoRc2V0X3ZhdWx0X21hbmFnZXIYAyABKAsyFS5ub3JkLlNldFZhdWx0TWFuYWdlckgAEjIKEWNyZWF0ZV9yZnFfbWFya2V0GAQgASgLMhUubm9yZC5DcmVhdGVSZnFNYXJrZXRIABJWCiFzZXRfbWFya2V0X21vZGVfY2xvYl90cmFkaW5nX29ubHkYBSABKAsyKS5ub3JkLkFjdGlvbi5TZXRNYXJrZXRNb2RlQ0xPQlRyYWRpbmdPbmx5SAASNQoTc2V0X21hcmtldF9tb2RlX3JmcRgGIAEoCzIWLm5vcmQuU2V0TWFya2V0TW9kZVJGUUgAElAKHnNldF9tYXJrZXRfbW9kZV9jbG9iX3Bvc3Rfb25seRgHIAEoCzImLm5vcmQuQWN0aW9uLlNldE1hcmtldE1vZGVDTE9CUG9zdE9ubHlIABI+ChRzZXRfbWFya2V0X21vZGVfY2xvYhgIIAEoCzIeLm5vcmQuQWN0aW9uLlNldE1hcmtldE1vZGVDTE9CSAASLAoOc2V0X3JmcV9tYWtlcnMYCSABKAsyEi5ub3JkLlNldFJmcU1ha2Vyc0gAQgYKBGtpbmQiRAoMVmF1bHREZXBvc2l0EhIKCnNlc3Npb25faWQYASABKAQSEAoIdmF1bHRfaWQYAiABKA0SDgoGYW1vdW50GAMgASgEIvUBCg1WYXVsdFdpdGhkcmF3EhIKCnNlc3Npb25faWQYASABKAQSEAoIdmF1bHRfaWQYAiABKA0SLgoHcmVxdWVzdBgDIAEoCzIbLm5vcmQuVmF1bHRXaXRoZHJhdy5SZXF1ZXN0SAASKgoFY2xhaW0YBCABKAsyGS5ub3JkLlZhdWx0V2l0aGRyYXcuQ2xhaW1IABpRCgdSZXF1ZXN0EhgKDnF1b3RlX25vdGlvbmFsGAEgASgESAASIgoMc2hhcmVfYW1vdW50GAIgASgLMgoubm9yZC5VMTI4SABCCAoGYW1vdW50GgcKBUNsYWltQgYKBGtpbmQingEKEkNyZWF0ZVZhdWx0UmVjZWlwdBIQCgh2YXVsdF9pZBgBIAEoDRIYChB2YXVsdF9hY2NvdW50X2lkGAIgASgNEhYKDm1hbmFnZXJfcHVia2V5GAMgASgMEiEKBnN0YXR1cxgEIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSIQoGY29uZmlnGAUgASgLMhEubm9yZC5WYXVsdENvbmZpZyJyChhVcGRhdGVWYXVsdENvbmZpZ1JlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SIQoGY29uZmlnGAIgASgLMhEubm9yZC5WYXVsdENvbmZpZxIhCgZzdGF0dXMYAyABKA4yES5ub3JkLlZhdWx0U3RhdHVzIkIKFlNldFZhdWx0TWFuYWdlclJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFgoObWFuYWdlcl9wdWJrZXkYAiABKAwi4QEKFlZhdWx0U3luY0Vwb2Noc1JlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFwoPY2xvc2VkX2Vwb2NoX2lkGAIgASgNEhgKEGNsYWltYWJsZV9hbW91bnQYAyABKAQSIQoGc3RhdHVzGAQgASgOMhEubm9yZC5WYXVsdFN0YXR1cxIhCgZlcG9jaHMYBSABKAsyES5ub3JkLlZhdWx0RXBvY2hzEiUKEWxpdmVfc2hhcmVfc3VwcGx5GAYgASgLMgoubm9yZC5VMTI4EhUKDXF1b3RlX2JhbGFuY2UYByABKAMijwIKE1ZhdWx0RGVwb3NpdFJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFwoPZnJvbV9hY2NvdW50X2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBIhCg1zaGFyZXNfaXNzdWVkGAQgASgLMgoubm9yZC5VMTI4Eh8KC3VzZXJfc2hhcmVzGAUgASgLMgoubm9yZC5VMTI4EiUKEWxpdmVfc2hhcmVfc3VwcGx5GAYgASgLMgoubm9yZC5VMTI4EiEKBnN0YXR1cxgHIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSGAoQdmF1bHRfYWNjb3VudF9pZBgIIAEoDRIVCg1xdW90ZV9iYWxhbmNlGAkgASgDIlUKEVdpdGhkcmF3YWxCdWNrZXRzEhUKDWN1cnJlbnRfZXBvY2gYASABKAQSFgoOcHJldmlvdXNfZXBvY2gYAiABKAQSEQoJY2xhaW1hYmxlGAMgASgEIoUBCgtWYXVsdFBwc1JlZhIQCghlcG9jaF9pZBgBIAEoDRIrChJzYWZlX2FjY291bnRfdmFsdWUYAiABKAsyCi5ub3JkLlUxMjhIAIgBARIgCgxzaGFyZV9zdXBwbHkYAyABKAsyCi5ub3JkLlUxMjhCFQoTX3NhZmVfYWNjb3VudF92YWx1ZSKWAgoLVmF1bHRFcG9jaHMSGAoQY3VycmVudF9lcG9jaF9pZBgBIAEoDRIgChhjdXJyZW50X2Vwb2NoX3N0YXJ0ZWRfYXQYAiABKAMSIgoVcGFpZF90aHJvdWdoX2Vwb2NoX2lkGAMgASgNSACIAQESLAoLd2l0aGRyYXdhbHMYBCABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEi8KFGxhdGVzdF9lcG9jaF9wcHNfcmVmGAUgASgLMhEubm9yZC5WYXVsdFBwc1JlZhIuChNwcmlvcl9lcG9jaF9wcHNfcmVmGAYgASgLMhEubm9yZC5WYXVsdFBwc1JlZkIYChZfcGFpZF90aHJvdWdoX2Vwb2NoX2lkIo8BCg5WYXVsdFVzZXJTdGF0ZRIaCgZzaGFyZXMYASABKAsyCi5ub3JkLlUxMjgSLAoLd2l0aGRyYXdhbHMYAiABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEhgKEGN1cnJlbnRfZXBvY2hfaWQYAyABKA0SGQoRcHJldmlvdXNfZXBvY2hfaWQYBCABKA0itgMKFFZhdWx0V2l0aGRyYXdSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhUKDXRvX2FjY291bnRfaWQYAiABKA0SOQoJcmVxdWVzdGVkGAMgASgLMiQubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5SZXF1ZXN0ZWRIABI1CgdjbGFpbWVkGAQgASgLMiIubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5DbGFpbWVkSAASLQoPcG9zdF91c2VyX3N0YXRlGAUgASgLMhQubm9yZC5WYXVsdFVzZXJTdGF0ZRIlChFsaXZlX3NoYXJlX3N1cHBseRgGIAEoCzIKLm5vcmQuVTEyOBIhCgZzdGF0dXMYByABKA4yES5ub3JkLlZhdWx0U3RhdHVzEhgKEHZhdWx0X2FjY291bnRfaWQYCCABKA0SFQoNcXVvdGVfYmFsYW5jZRgJIAEoAxo2CglSZXF1ZXN0ZWQSDQoFcXVvdGUYASABKAQSGgoGYnVybmVkGAIgASgLMgoubm9yZC5VMTI4GhkKB0NsYWltZWQSDgoGYW1vdW50GAEgASgEQgYKBGtpbmQiSQoKT3JkZXJMaW1pdBINCgVwcmljZRgGIAEoBBIMCgRzaXplGAcgASgEEh4KCnF1b3RlX3NpemUYCCABKAsyCi5ub3JkLlUxMjgiuQEKCVBsYWNlVHlwZRIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiEKCWZpbGxfbW9kZRgEIAEoDjIOLm5vcmQuRmlsbE1vZGUSFgoOaXNfcmVkdWNlX29ubHkYBSABKAgSPQoVc2VsZl90cmFkZV9wcmV2ZW50aW9uGAYgASgOMhkubm9yZC5TZWxmVHJhZGVQcmV2ZW50aW9uSACIAQFCGAoWX3NlbGZfdHJhZGVfcHJldmVudGlvbiLJAQoMVHJhZGVPclBsYWNlEhEKCW1hcmtldF9pZBgCIAEoDRIjCgpwbGFjZV90eXBlGAMgASgLMg8ubm9yZC5QbGFjZVR5cGUSHwoFbGltaXQYBiABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoPY2xpZW50X29yZGVyX2lkGCEgASgESACIAQESIQoIcmVmZXJyZXIYIiABKAsyCi5ub3JkLlUxMjhIAYgBAUISChBfY2xpZW50X29yZGVyX2lkQgsKCV9yZWZlcnJlciIpChVBdG9taWNDYW5jZWxPcmRlckJ5SWQSEAoIb3JkZXJfaWQYAiABKAQiNgobQXRvbWljQ2FuY2VsT3JkZXJCeUNsaWVudElkEhcKD2NsaWVudF9vcmRlcl9pZBgCIAEoBCKGAQoQQXRvbWljQWRkVHJpZ2dlchIkCgd0cmlnZ2VyGAEgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhwKBmludGVudBgCIAEoDjIMLm5vcmQuSW50ZW50EiEKCHJlZmVycmVyGAMgASgLMgoubm9yZC5VMTI4SACIAQFCCwoJX3JlZmVycmVyIlEKEUF0b21pY0VkaXRUcmlnZ2VyEhIKCnRyaWdnZXJfaWQYASABKAQSKAoLbmV3X3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQiPAoTQXRvbWljUmVtb3ZlVHJpZ2dlchIRCgltYXJrZXRfaWQYASABKA0SEgoKdHJpZ2dlcl9pZBgCIAEoBCJGChZSZWR1Y2VPcmRlckxpcXVpZGF0aW9uEhkKEXRhcmdldF9hY2NvdW50X2lkGAEgASgNEhEKCW1hcmtldF9pZBgCIAEoDSLPAQoVQXRvbWljU3ViYWN0aW9uS2luZFYxEiwKDnRyYWRlX29yX3BsYWNlGAYgASgLMhIubm9yZC5UcmFkZU9yUGxhY2VIABIzCgxjYW5jZWxfb3JkZXIYByABKAsyGy5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlJZEgAEkYKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYCCABKAsyIS5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlDbGllbnRJZEgAOgIYAUIHCgVpbm5lciKwAQoIQXRvbWljVjESEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCgphY2NvdW50X2lkGAIgASgNSACIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAMgASgESAGIAQESLAoHYWN0aW9ucxgGIAMoCzIbLm5vcmQuQXRvbWljU3ViYWN0aW9uS2luZFYxOgIYAUINCgtfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkIlcKFkF0b21pY1BsYWNlbWVudFJlcXVlc3QSEgoIdmF1bHRfaWQYASABKA1IABIgChZsaXF1aWRhdGlvbl9hY2NvdW50X2lkGAIgASgNSABCBwoFaW5uZXIiqwQKD0F0b21pY1N1YmFjdGlvbhIhChRkZWxlZ2F0b3JfYWNjb3VudF9pZBggIAEoDUgBiAEBEiwKDnRyYWRlX29yX3BsYWNlGAYgASgLMhIubm9yZC5UcmFkZU9yUGxhY2VIABIzCgxjYW5jZWxfb3JkZXIYByABKAsyGy5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlJZEgAEkYKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYCCABKAsyIS5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlDbGllbnRJZEgAEi0KC2FkZF90cmlnZ2VyGAkgASgLMhYubm9yZC5BdG9taWNBZGRUcmlnZ2VySAASLwoMZWRpdF90cmlnZ2VyGAogASgLMhcubm9yZC5BdG9taWNFZGl0VHJpZ2dlckgAEjMKDnJlbW92ZV90cmlnZ2VyGAsgASgLMhkubm9yZC5BdG9taWNSZW1vdmVUcmlnZ2VySAASQAoYcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uGAwgASgLMhwubm9yZC5SZWR1Y2VPcmRlckxpcXVpZGF0aW9uSAASLAoOcmZxX3BsYWNlX29ubHkYDSABKAsyEi5ub3JkLlJmcVBsYWNlT25seUgAEiMKCXJmcV90cmFkZRgOIAEoCzIOLm5vcmQuUmZxVHJhZGVIAEIHCgVpbm5lckIXChVfZGVsZWdhdG9yX2FjY291bnRfaWQigQEKEUF0b21pY1N1YmFjdGlvblYyEjQKCXBsYWNlbWVudBgBIAEoCzIcLm5vcmQuQXRvbWljUGxhY2VtZW50UmVxdWVzdEgAiAEBEigKCXN1YmFjdGlvbhgCIAEoCzIVLm5vcmQuQXRvbWljU3ViYWN0aW9uQgwKCl9wbGFjZW1lbnQipAEKBkF0b21pYxISCgpzZXNzaW9uX2lkGAEgASgEEhcKCmFjY291bnRfaWQYAiABKA1IAIgBARIfChJzZW5kZXJfdHJhY2tpbmdfaWQYAyABKARIAYgBARImCgdhY3Rpb25zGAYgAygLMhUubm9yZC5BdG9taWNTdWJhY3Rpb25CDQoLX2FjY291bnRfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZCKoAQoIQXRvbWljVjISEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCgphY2NvdW50X2lkGAIgASgNSACIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAMgASgESAGIAQESKAoHYWN0aW9ucxgGIAMoCzIXLm5vcmQuQXRvbWljU3ViYWN0aW9uVjJCDQoLX2FjY291bnRfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZCI8ChZQeXRoTGF6ZXJUcnVzdGVkU2lnbmVyEg4KBnB1YmtleRgBIAEoDBISCgpleHBpcmVzX2F0GAIgASgDIpYBCg1UcmlnZ2VyUmVjb3JkEhUKDXRyaWdnZXJfcHJpY2UYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEiAKBmxpbWl0cxgDIAEoCzIQLm5vcmQuT3JkZXJMaW1pdBIfCgRraW5kGAQgASgOMhEubm9yZC5UcmlnZ2VyS2luZBIYCgRzaWRlGAUgASgOMgoubm9yZC5TaWRlIpsBCgdUcmlnZ2VyEhUKDXRyaWdnZXJfcHJpY2UYASABKAQSHwoEa2luZBgCIAEoDjIRLm5vcmQuVHJpZ2dlcktpbmQSGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIgCgZsaW1pdHMYBCABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoGaW50ZW50GAUgASgOMgwubm9yZC5JbnRlbnQi/zMKBkFjdGlvbhIZChFjdXJyZW50X3RpbWVzdGFtcBgBIAEoAxINCgVub25jZRgCIAEoDRI0Cg5jcmVhdGVfc2Vzc2lvbhgEIAEoCzIaLm5vcmQuQWN0aW9uLkNyZWF0ZVNlc3Npb25IABIwCgxjcmVhdGVfdG9rZW4YBSABKAsyGC5ub3JkLkFjdGlvbi5DcmVhdGVUb2tlbkgAEjIKDWNyZWF0ZV9tYXJrZXQYBiABKAsyGS5ub3JkLkFjdGlvbi5DcmVhdGVNYXJrZXRIABIuCgtwbGFjZV9vcmRlchgHIAEoCzIXLm5vcmQuQWN0aW9uLlBsYWNlT3JkZXJIABI6ChJjYW5jZWxfb3JkZXJfYnlfaWQYCCABKAsyHC5ub3JkLkFjdGlvbi5DYW5jZWxPcmRlckJ5SWRIABInCgdkZXBvc2l0GAkgASgLMhQubm9yZC5BY3Rpb24uRGVwb3NpdEgAEikKCHdpdGhkcmF3GAogASgLMhUubm9yZC5BY3Rpb24uV2l0aGRyYXdIABJMChtweXRoX3NldF93b3JtaG9sZV9ndWFyZGlhbnMYCyABKAsyJS5ub3JkLkFjdGlvbi5QeXRoU2V0V29ybWhvbGVHdWFyZGlhbnNIABI+ChRweXRoX3NldF9zeW1ib2xfZmVlZBgMIAEoCzIeLm5vcmQuQWN0aW9uLlB5dGhTZXRTeW1ib2xGZWVkSAASQgoWcHl0aF9wcmljZV9mZWVkX3VwZGF0ZRgNIAEoCzIgLm5vcmQuQWN0aW9uLlB5dGhQcmljZUZlZWRVcGRhdGVIABI0Cg5yZXZva2Vfc2Vzc2lvbhgPIAEoCzIaLm5vcmQuQWN0aW9uLlJldm9rZVNlc3Npb25IABIjCgVwYXVzZRgQIAEoCzISLm5vcmQuQWN0aW9uLlBhdXNlSAASJwoHdW5wYXVzZRgRIAEoCzIULm5vcmQuQWN0aW9uLlVucGF1c2VIABIpCgh0cmFuc2ZlchgSIAEoCzIVLm5vcmQuQWN0aW9uLlRyYW5zZmVySAASLgoLYWRkX3RyaWdnZXIYICABKAsyFy5ub3JkLkFjdGlvbi5BZGRUcmlnZ2VySAASNAoOcmVtb3ZlX3RyaWdnZXIYISABKAsyGi5ub3JkLkFjdGlvbi5SZW1vdmVUcmlnZ2VySAASJwoJYXRvbWljX3YxGCMgASgLMg4ubm9yZC5BdG9taWNWMUICGAFIABIyCg1mcmVlemVfbWFya2V0GCQgASgLMhkubm9yZC5BY3Rpb24uRnJlZXplTWFya2V0SAASNgoPdW5mcmVlemVfbWFya2V0GCUgASgLMhsubm9yZC5BY3Rpb24uVW5mcmVlemVNYXJrZXRIABIvCgxhZGRfZmVlX3RpZXIYJiABKAsyFy5ub3JkLkFjdGlvbi5BZGRGZWVUaWVySAASNQoPdXBkYXRlX2ZlZV90aWVyGCcgASgLMhoubm9yZC5BY3Rpb24uVXBkYXRlRmVlVGllckgAEj8KFHVwZGF0ZV9hY2NvdW50c190aWVyGCggASgLMh8ubm9yZC5BY3Rpb24uVXBkYXRlQWNjb3VudHNUaWVySAASLAoKdXBkYXRlX2FjbBgpIAEoCzIWLm5vcmQuQWN0aW9uLlVwZGF0ZUFjbEgAEjsKEmZlZV92YXVsdF90cmFuc2ZlchgqIAEoCzIdLm5vcmQuQWN0aW9uLkZlZVZhdWx0VHJhbnNmZXJIABI7ChJ0YWtlX2FsbF9wb3NpdGlvbnMYKyABKAsyHS5ub3JkLkFjdGlvbi5UYWtlQWxsUG9zaXRpb25zSAASRwoZY2FuY2VsX29yZGVyX2J5X2NsaWVudF9pZBgsIAEoCzIiLm5vcmQuQWN0aW9uLkNhbmNlbE9yZGVyQnlDbGllbnRJZEgAEjYKD2V4ZWN1dGVfdHJpZ2dlchgtIAEoCzIbLm5vcmQuQWN0aW9uLkV4ZWN1dGVUcmlnZ2VySAASPwoUc2V0X2JhY2tzdG9wX2FjY291bnQYLiABKAsyHy5ub3JkLkFjdGlvbi5TZXRCYWNrc3RvcEFjY291bnRIABIwCgxlZGl0X3RyaWdnZXIYLyABKAsyGC5ub3JkLkFjdGlvbi5FZGl0VHJpZ2dlckgAEh4KBmF0b21pYxgwIAEoCzIMLm5vcmQuQXRvbWljSAASKAoFYWRtaW4YMSABKAsyFy5ub3JkLlN0YWdlZEFkbWluQWN0aW9uSAASMAoMY2xlYXJfbWFya2V0GDIgASgLMhgubm9yZC5BY3Rpb24uQ2xlYXJNYXJrZXRIABIyChF2YXVsdF9zeW5jX2Vwb2Nocxg1IAEoCzIVLm5vcmQuVmF1bHRTeW5jRXBvY2hzSAASKwoNdmF1bHRfZGVwb3NpdBg2IAEoCzISLm5vcmQuVmF1bHREZXBvc2l0SAASLQoOdmF1bHRfd2l0aGRyYXcYNyABKAsyEy5ub3JkLlZhdWx0V2l0aGRyYXdIABIjCglhdG9taWNfdjIYOCABKAsyDi5ub3JkLkF0b21pY1YySAASUQoecHl0aF9sYXplcl9zZXRfdHJ1c3RlZF9zaWduZXJzGDkgASgLMicubm9yZC5BY3Rpb24uUHl0aExhemVyU2V0VHJ1c3RlZFNpZ25lcnNIABJJChpweXRoX2xhemVyX3NldF9mZWVkX3N5bWJvbBg6IAEoCzIjLm5vcmQuQWN0aW9uLlB5dGhMYXplclNldEZlZWRTeW1ib2xIABJNChxweXRoX2xhemVyX3ByaWNlX2ZlZWRfdXBkYXRlGDsgASgLMiUubm9yZC5BY3Rpb24uUHl0aExhemVyUHJpY2VGZWVkVXBkYXRlSAASNgoPcmVmcmVzaF9zZXNzaW9uGDwgASgLMhsubm9yZC5BY3Rpb24uUmVmcmVzaFNlc3Npb25IABI9ChNzZWxmX3Jldm9rZV9zZXNzaW9uGD0gASgLMh4ubm9yZC5BY3Rpb24uU2VsZlJldm9rZVNlc3Npb25IABrjAQoNQ3JlYXRlU2Vzc2lvbhITCgt1c2VyX3B1YmtleRgBIAEoDBIWCg5zZXNzaW9uX3B1YmtleRgCIAEoDBIYChBleHBpcnlfdGltZXN0YW1wGAMgASgDEkEKEXNpZ25hdHVyZV9mcmFtaW5nGAQgASgOMiEubm9yZC5BY3Rpb24uVXNlclNpZ25hdHVyZUZyYW1pbmdIAIgBARIdChByZWZyZXNoX2RlYWRsaW5lGAUgASgDSAGIAQFCFAoSX3NpZ25hdHVyZV9mcmFtaW5nQhMKEV9yZWZyZXNoX2RlYWRsaW5lGosBCgtDcmVhdGVUb2tlbhIWCg50b2tlbl9kZWNpbWFscxgBIAEoDRISCgp3ZWlnaHRfYnBzGAMgASgNEhMKC3ZpZXdfc3ltYm9sGAQgASgJEhUKDW9yYWNsZV9zeW1ib2wYBSABKAkSEAoIc29sX2FkZHIYBiABKAwSEgoKYWNsX3B1YmtleRgHIAEoDBoxChxTZXRNYXJrZXRNb2RlQ0xPQlRyYWRpbmdPbmx5EhEKCW1hcmtldF9pZBgBIAEoDRouChlTZXRNYXJrZXRNb2RlQ0xPQlBvc3RPbmx5EhEKCW1hcmtldF9pZBgBIAEoDRomChFTZXRNYXJrZXRNb2RlQ0xPQhIRCgltYXJrZXRfaWQYASABKA0a7gEKDENyZWF0ZU1hcmtldBIVCg1zaXplX2RlY2ltYWxzGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNEg8KB2ltZl9icHMYAyABKA0SDwoHY21mX2JwcxgEIAEoDRIPCgdtbWZfYnBzGAUgASgNEiUKC21hcmtldF90eXBlGAYgASgOMhAubm9yZC5NYXJrZXRUeXBlEhMKC3ZpZXdfc3ltYm9sGAcgASgJEhUKDW9yYWNsZV9zeW1ib2wYCCABKAkSFQoNYmFzZV90b2tlbl9pZBgJIAEoDRISCgphY2xfcHVia2V5GAogASgMGqoECgpQbGFjZU9yZGVyEhIKCnNlc3Npb25faWQYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEhgKBHNpZGUYAyABKA4yCi5ub3JkLlNpZGUSIQoJZmlsbF9tb2RlGAQgASgOMg4ubm9yZC5GaWxsTW9kZRIWCg5pc19yZWR1Y2Vfb25seRgFIAEoCBINCgVwcmljZRgGIAEoBBIMCgRzaXplGAcgASgEEh4KCnF1b3RlX3NpemUYCCABKAsyCi5ub3JkLlUxMjgSIQoUZGVsZWdhdG9yX2FjY291bnRfaWQYICABKA1IAIgBARIcCg9jbGllbnRfb3JkZXJfaWQYISABKARIAYgBARIeChFzZW5kZXJfYWNjb3VudF9pZBgiIAEoDUgCiAEBEh8KEnNlbmRlcl90cmFja2luZ19pZBgjIAEoBEgDiAEBEj0KFXNlbGZfdHJhZGVfcHJldmVudGlvbhgkIAEoDjIZLm5vcmQuU2VsZlRyYWRlUHJldmVudGlvbkgEiAEBEiEKCHJlZmVycmVyGCUgASgLMgoubm9yZC5VMTI4SAWIAQFCFwoVX2RlbGVnYXRvcl9hY2NvdW50X2lkQhIKEF9jbGllbnRfb3JkZXJfaWRCFAoSX3NlbmRlcl9hY2NvdW50X2lkQhUKE19zZW5kZXJfdHJhY2tpbmdfaWRCGAoWX3NlbGZfdHJhZGVfcHJldmVudGlvbkILCglfcmVmZXJyZXIaqQEKD0NhbmNlbE9yZGVyQnlJZBISCgpzZXNzaW9uX2lkGAEgASgEEhAKCG9yZGVyX2lkGAIgASgEEiEKFGRlbGVnYXRvcl9hY2NvdW50X2lkGCAgASgNSACIAQESHgoRc2VuZGVyX2FjY291bnRfaWQYISABKA1IAYgBAUIXChVfZGVsZWdhdG9yX2FjY291bnRfaWRCFAoSX3NlbmRlcl9hY2NvdW50X2lkGnoKFUNhbmNlbE9yZGVyQnlDbGllbnRJZBISCgpzZXNzaW9uX2lkGAEgASgEEhcKD2NsaWVudF9vcmRlcl9pZBgCIAEoBBIeChFzZW5kZXJfYWNjb3VudF9pZBgDIAEoDUgAiAEBQhQKEl9zZW5kZXJfYWNjb3VudF9pZBpvCgdEZXBvc2l0EhQKDGFjdGlvbl9ub25jZRgBIAEoBBISCgp0b2tlbl9hZGRyGAIgASgMEg4KBmFtb3VudBgDIAEoBBITCgt1c2VyX3B1YmtleRgEIAEoDBIVCg1zZW5kZXJfcHVia2V5GAUgASgMGmoKCFdpdGhkcmF3EhAKCHRva2VuX2lkGAEgASgNEhIKCnNlc3Npb25faWQYAiABKAQSDgoGYW1vdW50GAMgASgEEhgKC2Rlc3RfcHVia2V5GAQgASgMSACIAQFCDgoMX2Rlc3RfcHVia2V5Gl0KGFB5dGhTZXRXb3JtaG9sZUd1YXJkaWFucxIaChJndWFyZGlhbl9zZXRfaW5kZXgYASABKA0SEQoJYWRkcmVzc2VzGAIgAygMEhIKCmFjbF9wdWJrZXkYAyABKAwaVQoRUHl0aFNldFN5bWJvbEZlZWQSFQoNb3JhY2xlX3N5bWJvbBgBIAEoCRIVCg1wcmljZV9mZWVkX2lkGAIgASgMEhIKCmFjbF9wdWJrZXkYAyABKAwaLwoTUHl0aFByaWNlRmVlZFVwZGF0ZRIYChByYXdfcHl0aG5ldF9kYXRhGAEgASgMGlIKGFB5dGhMYXplclByaWNlRmVlZFVwZGF0ZRIPCgdwYXlsb2FkGAEgASgMEhEKCXNpZ25hdHVyZRgCIAEoDBISCgpwdWJsaWNfa2V5GAMgASgMGmcKGlB5dGhMYXplclNldFRydXN0ZWRTaWduZXJzEhIKCmFjbF9wdWJrZXkYASABKAwSNQoPdHJ1c3RlZF9zaWduZXJzGAIgAygLMhwubm9yZC5QeXRoTGF6ZXJUcnVzdGVkU2lnbmVyGqsBChZQeXRoTGF6ZXJTZXRGZWVkU3ltYm9sEhIKCmFjbF9wdWJrZXkYASABKAwSQgoFZmVlZHMYAiADKAsyMy5ub3JkLkFjdGlvbi5QeXRoTGF6ZXJTZXRGZWVkU3ltYm9sLkZlZWRTeW1ib2xJbnB1dBo5Cg9GZWVkU3ltYm9sSW5wdXQSDwoHZmVlZF9pZBgBIAEoDRIVCg1vcmFjbGVfc3ltYm9sGAIgASgJGiMKDVJldm9rZVNlc3Npb24SEgoKc2Vzc2lvbl9pZBgBIAEoBBo0Cg5SZWZyZXNoU2Vzc2lvbhISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxonChFTZWxmUmV2b2tlU2Vzc2lvbhISCgpzZXNzaW9uX2lkGAEgASgEGhsKBVBhdXNlEhIKCmFjbF9wdWJrZXkYASABKAwaHQoHVW5wYXVzZRISCgphY2xfcHVia2V5GAEgASgMGjwKElNldEJhY2tzdG9wQWNjb3VudBISCgphY2xfcHVia2V5GAEgASgMEhIKCmFjY291bnRfaWQYAiABKA0a+QEKCVJlY2lwaWVudBIxCgdzcGVjaWFsGAEgASgLMh4ubm9yZC5BY3Rpb24uUmVjaXBpZW50LlNwZWNpYWxIABItCgVvd25lZBgCIAEoCzIcLm5vcmQuQWN0aW9uLlJlY2lwaWVudC5Pd25lZEgAEjEKB3Vub3duZWQYAyABKAsyHi5ub3JkLkFjdGlvbi5SZWNpcGllbnQuVW5vd25lZEgAGgkKB1NwZWNpYWwaGwoFT3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDRodCgdVbm93bmVkEhIKCmFjY291bnRfaWQYASABKA1CEAoOcmVjaXBpZW50X3R5cGUanwEKCFRyYW5zZmVyEhIKCnNlc3Npb25faWQYASABKAQSFwoPZnJvbV9hY2NvdW50X2lkGAIgASgNEhAKCHRva2VuX2lkGAMgASgNEg4KBmFtb3VudBgEIAEoBBIyCg10b19hY2NvdW50X2lkGAggASgLMhYubm9yZC5BY3Rpb24uUmVjaXBpZW50SACIAQFCEAoOX3RvX2FjY291bnRfaWQaWwoQRmVlVmF1bHRUcmFuc2ZlchISCgphY2xfcHVia2V5GAEgASgMEhEKCXJlY2lwaWVudBgCIAEoDRIQCgh0b2tlbl9pZBgDIAEoDRIOCgZhbW91bnQYBCABKAQavAEKCkFkZFRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIkCgd0cmlnZ2VyGAIgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhwKBmludGVudBgDIAEoDjIMLm5vcmQuSW50ZW50EhcKCmFjY291bnRfaWQYCiABKA1IAIgBARIhCghyZWZlcnJlchgLIAEoCzIKLm5vcmQuVTEyOEgBiAEBQg0KC19hY2NvdW50X2lkQgsKCV9yZWZlcnJlchqHAQoLRWRpdFRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBISCgp0cmlnZ2VyX2lkGAIgASgEEigKC25ld190cmlnZ2VyGAMgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhcKCmFjY291bnRfaWQYCiABKA1IAIgBAUINCgtfYWNjb3VudF9pZBpyCg1SZW1vdmVUcmlnZ2VyEhIKCnNlc3Npb25faWQYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEhIKCnRyaWdnZXJfaWQYAyABKAQSFwoKYWNjb3VudF9pZBgKIAEoDUgAiAEBQg0KC19hY2NvdW50X2lkGkUKCkFkZEZlZVRpZXISEgoKYWNsX3B1YmtleRgBIAEoDBIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaVAoNVXBkYXRlRmVlVGllchIKCgJpZBgBIAEoDRIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcSEgoKYWNsX3B1YmtleRgDIAEoDBpLChJVcGRhdGVBY2NvdW50c1RpZXISDwoHdGllcl9pZBgBIAEoDRIQCghhY2NvdW50cxgCIAMoDRISCgphY2xfcHVia2V5GAMgASgMGl8KCVVwZGF0ZUFjbBISCgphY2xfcHVia2V5GAEgASgMEhUKDXRhcmdldF9wdWJrZXkYAiABKAwSEgoKcm9sZXNfbWFzaxgDIAEoDRITCgtyb2xlc192YWx1ZRgEIAEoDRo1CgxGcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aNwoOVW5mcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aTQoLQ2xlYXJNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0SFwoPY2xlYXJhbmNlX3ByaWNlGAMgASgEGmEKDkV4ZWN1dGVUcmlnZ2VyEhQKDGV4ZWN1dG9yX3NpZBgBIAEoBBISCgphY2NvdW50X2lkGAIgASgNEhEKCW1hcmtldF9pZBgDIAEoDRISCgp0cmlnZ2VyX2lkGAQgASgEGkEKEFRha2VBbGxQb3NpdGlvbnMSEgoKc2Vzc2lvbl9pZBgBIAEoBBIZChF0YXJnZXRfYWNjb3VudF9pZBgCIAEoDSI3ChRVc2VyU2lnbmF0dXJlRnJhbWluZxIHCgNIRVgQABIWChJTT0xBTkFfVFJBTlNBQ1RJT04QAUIGCgRraW5kIstCCgdSZWNlaXB0EhEKCWFjdGlvbl9pZBgBIAEoBBIaCgNlcnIYICABKA4yCy5ub3JkLkVycm9ySAASQgoVY3JlYXRlX3Nlc3Npb25fcmVzdWx0GCEgASgLMiEubm9yZC5SZWNlaXB0LkNyZWF0ZVNlc3Npb25SZXN1bHRIABI4Cg50cmFkZV9vcl9wbGFjZRgiIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASPgoTY2FuY2VsX29yZGVyX3Jlc3VsdBgjIAEoCzIfLm5vcmQuUmVjZWlwdC5DYW5jZWxPcmRlclJlc3VsdEgAEjUKDmRlcG9zaXRfcmVzdWx0GCQgASgLMhsubm9yZC5SZWNlaXB0LkRlcG9zaXRSZXN1bHRIABI+ChNpbnNlcnRfdG9rZW5fcmVzdWx0GCUgASgLMh8ubm9yZC5SZWNlaXB0Lkluc2VydFRva2VuUmVzdWx0SAASQAoUaW5zZXJ0X21hcmtldF9yZXN1bHQYJiABKAsyIC5ub3JkLlJlY2VpcHQuSW5zZXJ0TWFya2V0UmVzdWx0SAASNwoPd2l0aGRyYXdfcmVzdWx0GCcgASgLMhwubm9yZC5SZWNlaXB0LldpdGhkcmF3UmVzdWx0SAASSQoZb3JhY2xlX3N5bWJvbF9mZWVkX3Jlc3VsdBgoIAEoCzIkLm5vcmQuUmVjZWlwdC5PcmFjbGVTeW1ib2xGZWVkUmVzdWx0SAASQAoUb3JhY2xlX3VwZGF0ZV9yZXN1bHQYKSABKAsyIC5ub3JkLlJlY2VpcHQuT3JhY2xlVXBkYXRlUmVzdWx0SAASSwoadXBkYXRlX2d1YXJkaWFuX3NldF9yZXN1bHQYKiABKAsyJS5ub3JkLlJlY2VpcHQuVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHRIABI3Cg9zZXNzaW9uX3Jldm9rZWQYLCABKAsyHC5ub3JkLlJlY2VpcHQuU2Vzc2lvblJldm9rZWRIABImCgZwYXVzZWQYLSABKAsyFC5ub3JkLlJlY2VpcHQuUGF1c2VkSAASKgoIdW5wYXVzZWQYLiABKAsyFi5ub3JkLlJlY2VpcHQuVW5wYXVzZWRIABIwCgt0cmFuc2ZlcnJlZBgvIAEoCzIZLm5vcmQuUmVjZWlwdC5UcmFuc2ZlcnJlZEgAEjMKDXRyaWdnZXJfYWRkZWQYQCABKAsyGi5ub3JkLlJlY2VpcHQuVHJpZ2dlckFkZGVkSAASNwoPdHJpZ2dlcl9yZW1vdmVkGEEgASgLMhwubm9yZC5SZWNlaXB0LlRyaWdnZXJSZW1vdmVkSAASLAoGYXRvbWljGEMgASgLMhoubm9yZC5SZWNlaXB0LkF0b21pY1Jlc3VsdEgAEkIKFW1hcmtldF9mcmVlemVfdXBkYXRlZBhEIAEoCzIhLm5vcmQuUmVjZWlwdC5NYXJrZXRGcmVlemVVcGRhdGVkSAASNAoOZmVlX3RpZXJfYWRkZWQYRSABKAsyGi5ub3JkLlJlY2VpcHQuRmVlVGllckFkZGVkSAASOAoQZmVlX3RpZXJfdXBkYXRlZBhGIAEoCzIcLm5vcmQuUmVjZWlwdC5GZWVUaWVyVXBkYXRlZEgAEkIKFWFjY291bnRzX3RpZXJfdXBkYXRlZBhHIAEoCzIhLm5vcmQuUmVjZWlwdC5BY2NvdW50c1RpZXJVcGRhdGVkSAASLwoLYWNsX3VwZGF0ZWQYSCABKAsyGC5ub3JkLlJlY2VpcHQuQWNsVXBkYXRlZEgAEkIKFWZlZV92YXVsdF90cmFuc2ZlcnJlZBhJIAEoCzIhLm5vcmQuUmVjZWlwdC5GZWVWYXVsdFRyYW5zZmVycmVkSAASOQoQdHJpZ2dlcl9leGVjdXRlZBhKIAEoCzIdLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRXhlY3V0ZWRIABJJChl0YWtlX2FsbF9wb3NpdGlvbnNfcmVzdWx0GEsgASgLMiQubm9yZC5SZWNlaXB0LlRha2VBbGxQb3NpdGlvbnNSZXN1bHRIABJAChRiYWNrc3RvcF9hY2NvdW50X3NldBhMIAEoCzIgLm5vcmQuUmVjZWlwdC5CYWNrc3RvcEFjY291bnRTZXRIABI1Cg50cmlnZ2VyX2VkaXRlZBhNIAEoCzIbLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRWRpdGVkSAASMQoNdmF1bHRfY3JlYXRlZBhOIAEoCzIYLm5vcmQuQ3JlYXRlVmF1bHRSZWNlaXB0SAASPgoUdmF1bHRfY29uZmlnX3VwZGF0ZWQYTyABKAsyHi5ub3JkLlVwZGF0ZVZhdWx0Q29uZmlnUmVjZWlwdEgAEj0KFXZhdWx0X21hbmFnZXJfdXBkYXRlZBhQIAEoCzIcLm5vcmQuU2V0VmF1bHRNYW5hZ2VyUmVjZWlwdEgAEjsKE3ZhdWx0X2Vwb2Noc19zeW5jZWQYUSABKAsyHC5ub3JkLlZhdWx0U3luY0Vwb2Noc1JlY2VpcHRIABI0Cg92YXVsdF9kZXBvc2l0ZWQYUiABKAsyGS5ub3JkLlZhdWx0RGVwb3NpdFJlY2VpcHRIABI1Cg92YXVsdF93aXRoZHJhd24YUyABKAsyGi5ub3JkLlZhdWx0V2l0aGRyYXdSZWNlaXB0SAASPgoTY2xlYXJfbWFya2V0X3Jlc3VsdBhUIAEoCzIfLm5vcmQuUmVjZWlwdC5DbGVhck1hcmtldFJlc3VsdEgAElQKH3B5dGhfbGF6ZXJfb3JhY2xlX3VwZGF0ZV9yZXN1bHQYVSABKAsyKS5ub3JkLlJlY2VpcHQuUHl0aExhemVyT3JhY2xlVXBkYXRlUmVzdWx0SAASXwolcHl0aF9sYXplcl90cnVzdGVkX3NpZ25lcnNfc2V0X3Jlc3VsdBhWIAEoCzIuLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJUcnVzdGVkU2lnbmVyc1NldFJlc3VsdEgAElcKIXB5dGhfbGF6ZXJfZmVlZF9zeW1ib2xfc2V0X3Jlc3VsdBhXIAEoCzIqLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0SAASVQofcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uX3Jlc3VsdBhYIAEoCzIqLm5vcmQuUmVjZWlwdC5SZWR1Y2VPcmRlckxpcXVpZGF0aW9uUmVzdWx0SAASPgoTbWFya2V0X21vZGVfdXBkYXRlZBhZIAEoCzIfLm5vcmQuUmVjZWlwdC5NYXJrZXRNb2RlVXBkYXRlZEgAEiwKDnJmcV9tYWtlcnNfc2V0GFogASgLMhIubm9yZC5SZnFNYWtlcnNTZXRIABI7ChFzZXNzaW9uX3JlZnJlc2hlZBhbIAEoCzIeLm5vcmQuUmVjZWlwdC5TZXNzaW9uUmVmcmVzaGVkSAASQAoUc2VsZl9zZXNzaW9uX3Jldm9rZWQYXCABKAsyIC5ub3JkLlJlY2VpcHQuU2VsZlNlc3Npb25SZXZva2VkSAAaeAoGUG9zdGVkEhgKBHNpZGUYASABKA4yCi5ub3JkLlNpZGUSEQoJbWFya2V0X2lkGAIgASgNEg0KBXByaWNlGAMgASgEEgwKBHNpemUYBCABKAQSEAoIb3JkZXJfaWQYBSABKAQSEgoKYWNjb3VudF9pZBgGIAEoDRpwCgVUcmFkZRIQCghvcmRlcl9pZBgCIAEoBBINCgVwcmljZRgEIAEoBBIMCgRzaXplGAUgASgEEhIKCmFjY291bnRfaWQYBiABKA0SEQoJbWFrZXJfZmVlGAcgASgEEhEKCXRha2VyX2ZlZRgIIAEoBBptChNDcmVhdGVTZXNzaW9uUmVzdWx0EhIKCnNlc3Npb25faWQYASABKAQSDgoGZXhwaXJ5GAIgASgDEh0KEHJlZnJlc2hfZGVhZGxpbmUYAyABKANIAIgBAUITChFfcmVmcmVzaF9kZWFkbGluZRpMChBDYW5jZWxsZWRUcmlnZ2VyEhIKCmFjY291bnRfaWQYASABKA0SJAoHdHJpZ2dlchgCIAEoCzITLm5vcmQuVHJpZ2dlclJlY29yZBraAQoLT3JkZXJVcGRhdGUSMAoGcmVhc29uGAEgASgOMiAubm9yZC5SZWNlaXB0Lk9yZGVyVXBkYXRlLlJlYXNvbhISCgphY2NvdW50X2lkGAIgASgNEhAKCG9yZGVyX2lkGAMgASgEEhYKDnJlbWFpbmluZ19zaXplGAQgASgEEhYKDmNhbmNlbGxlZF9zaXplGAUgASgEEg0KBXByaWNlGAYgASgEIjQKBlJlYXNvbhIPCgtSRURVQ0VfT05MWRAAEhkKFVNFTEZfVFJBREVfUFJFVkVOVElPThABGvcCChBQbGFjZU9yZGVyUmVzdWx0EikKBnBvc3RlZBgBIAEoCzIULm5vcmQuUmVjZWlwdC5Qb3N0ZWRIAIgBARIiCgVmaWxscxgCIAMoCzITLm5vcmQuUmVjZWlwdC5UcmFkZRIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAYgBARIfChJzZW5kZXJfdHJhY2tpbmdfaWQYBCABKARIAogBARI6ChJjYW5jZWxsZWRfdHJpZ2dlcnMYBSADKAsyHi5ub3JkLlJlY2VpcHQuQ2FuY2VsbGVkVHJpZ2dlchIwCg1vcmRlcl91cGRhdGVzGAYgAygLMhkubm9yZC5SZWNlaXB0Lk9yZGVyVXBkYXRlEjEKCXBsYWNlbWVudBgHIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZW1lbnRSZWNlaXB0QgkKB19wb3N0ZWRCEgoQX2NsaWVudF9vcmRlcl9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkGnoKHFJlZHVjZU9yZGVyTGlxdWlkYXRpb25SZXN1bHQSNgoOdHJhZGVfb3JfcGxhY2UYASABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VPcmRlclJlc3VsdBIiCgZhY3Rpb24YAiABKAsyEi5ub3JkLlRyYWRlT3JQbGFjZRqvAQoQUGxhY2VtZW50UmVjZWlwdBIhCgRyb2xlGAEgASgOMhMubm9yZC5QbGFjZW1lbnRSb2xlEjgKB2FjY291bnQYAiABKAsyJS5ub3JkLlJlY2VpcHQuQWNjb3VudFBsYWNlbWVudFJlY2VpcHRIABI0CgV2YXVsdBgDIAEoCzIjLm5vcmQuUmVjZWlwdC5WYXVsdFBsYWNlbWVudFJlY2VpcHRIAEIICgZ0YXJnZXQaGQoXQWNjb3VudFBsYWNlbWVudFJlY2VpcHQaTAoVVmF1bHRQbGFjZW1lbnRSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEiEKBmhlYWx0aBgCIAEoCzIRLm5vcmQuVmF1bHRIZWFsdGga/gEKD1RyaWdnZXJFeGVjdXRlZBITCgtleGVjdXRvcl9pZBgBIAEoDRISCgphY2NvdW50X2lkGAIgASgNEhEKCW1hcmtldF9pZBgDIAEoDRIeCgd0cmlnZ2VyGAQgASgLMg0ubm9yZC5UcmlnZ2VyEhIKCnRyaWdnZXJfaWQYCCABKAQSMQoHc3VjY2VzcxgFIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASKQoHZmFpbHVyZRgGIAEoDjIWLm5vcmQuVHJpZ2dlckV4ZWNFcnJvckgAEhMKCWNhbmNlbGxlZBgHIAEoCEgAQggKBnN0YXR1cxoyCg5UYWtlQWxsQmFsYW5jZRIQCgh0b2tlbl9pZBgBIAEoDRIOCgZhbW91bnQYAiABKAQadwoPVGFrZUFsbFBvc2l0aW9uEhEKCW1hcmtldF9pZBgBIAEoDRIRCgliYXNlX3NpemUYAiABKAMSGAoQc2V0dGxlbWVudF9wcmljZRgDIAEoBBIkChBiYW5rcnVwdGN5X3F1b3RlGAQgASgLMgoubm9yZC5VMTI4GlMKE1Rha2VBbGxPcmRlclVwZGF0ZXMSEQoJbWFya2V0X2lkGAEgASgNEikKBm9yZGVycxgCIAMoCzIZLm5vcmQuUmVjZWlwdC5PcmRlclVwZGF0ZRraAQoWVGFrZUFsbFBvc2l0aW9uc1Jlc3VsdBIYChB0YWtlcl9hY2NvdW50X2lkGAEgASgNEjQKDnRha2VuX2JhbGFuY2VzGAMgAygLMhwubm9yZC5SZWNlaXB0LlRha2VBbGxCYWxhbmNlEjYKD3Rha2VuX3Bvc2l0aW9ucxgEIAMoCzIdLm5vcmQuUmVjZWlwdC5UYWtlQWxsUG9zaXRpb24SOAoNb3JkZXJfdXBkYXRlcxgFIAMoCzIhLm5vcmQuUmVjZWlwdC5UYWtlQWxsT3JkZXJVcGRhdGVzGnMKGUNsZWFyTWFya2V0Q2FuY2VsbGVkT3JkZXISEgoKYWNjb3VudF9pZBgBIAEoDRIQCghvcmRlcl9pZBgCIAEoBBIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAIgBAUISChBfY2xpZW50X29yZGVyX2lkGq0BChlDbGVhck1hcmtldENsb3NlZFBvc2l0aW9uEhIKCmFjY291bnRfaWQYASABKA0SEQoJYmFzZV9zaXplGAIgASgDEhgKEHNldHRsZW1lbnRfcHJpY2UYAyABKAQSGQoFcXVvdGUYBCABKAsyCi5ub3JkLlUxMjgSGQoRdHJhZGluZ19wbmxfZGVsdGEYBSABKAMSGQoRZnVuZGluZ19wbmxfZGVsdGEYBiABKAMaxQEKEUNsZWFyTWFya2V0UmVzdWx0EhEKCW1hcmtldF9pZBgBIAEoDRIXCg9jbGVhcmFuY2VfcHJpY2UYBSABKAQSQQoQY2FuY2VsbGVkX29yZGVycxgDIAMoCzInLm5vcmQuUmVjZWlwdC5DbGVhck1hcmtldENhbmNlbGxlZE9yZGVyEkEKEGNsb3NlZF9wb3NpdGlvbnMYBCADKAsyJy5ub3JkLlJlY2VpcHQuQ2xlYXJNYXJrZXRDbG9zZWRQb3NpdGlvbhqeAQoRQ2FuY2VsT3JkZXJSZXN1bHQSEAoIb3JkZXJfaWQYASABKAQSEgoKYWNjb3VudF9pZBgCIAEoDRIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAIgBARIxCglwbGFjZW1lbnQYBCABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VtZW50UmVjZWlwdEISChBfY2xpZW50X29yZGVyX2lkGnAKDURlcG9zaXRSZXN1bHQSEAoIdG9rZW5faWQYASABKA0SDgoGYW1vdW50GAIgASgEEhIKCmFjY291bnRfaWQYAyABKA0SFAoMdXNlcl9jcmVhdGVkGAQgASgIEhMKC3VzZXJfcHVia2V5GAUgASgMGkMKEUluc2VydFRva2VuUmVzdWx0EhIKCmNoYWluX2FkZHIYASABKAwSGgoFdG9rZW4YAiABKAsyCy5ub3JkLlRva2VuGjIKEkluc2VydE1hcmtldFJlc3VsdBIcCgZtYXJrZXQYASABKAsyDC5ub3JkLk1hcmtldBp5Cg5XaXRoZHJhd1Jlc3VsdBIQCgh0b2tlbl9pZBgBIAEoDRIOCgZhbW91bnQYAiABKAQSDwoHYmFsYW5jZRgDIAEoBBISCgphY2NvdW50X2lkGAQgASgNEgsKA2ZlZRgFIAEoBBITCgt1c2VyX3B1YmtleRgGIAEoDBpAChZPcmFjbGVTeW1ib2xGZWVkUmVzdWx0EhUKDW9yYWNsZV9zeW1ib2wYASABKAkSDwoHZmVlZF9pZBgCIAEoDBonChJPcmFjbGVVcGRhdGVSZXN1bHQSEQoJdGltZXN0YW1wGAEgASgDGjcKG1B5dGhMYXplck9yYWNsZVVwZGF0ZVJlc3VsdBIYChB0aW1lc3RhbXBfbWlsbGlzGAEgASgEGlkKIFB5dGhMYXplclRydXN0ZWRTaWduZXJzU2V0UmVzdWx0EjUKD3RydXN0ZWRfc2lnbmVycxgBIAMoCzIcLm5vcmQuUHl0aExhemVyVHJ1c3RlZFNpZ25lchqaAQocUHl0aExhemVyRmVlZFN5bWJvbFNldFJlc3VsdBJECgVmZWVkcxgBIAMoCzI1Lm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0LkZlZWRTeW1ib2waNAoKRmVlZFN5bWJvbBIPCgdmZWVkX2lkGAEgASgNEhUKDW9yYWNsZV9zeW1ib2wYAiABKAkaSAoXVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHQSGgoSZ3VhcmRpYW5fc2V0X2luZGV4GAEgASgNEhEKCWFkZHJlc3NlcxgCIAMoDBpDCgxQZXJwUG9zaXRpb24SEQoJbWFya2V0X2lkGAEgASgNEhEKCWJhc2Vfc2l6ZRgCIAEoAxINCgVwcmljZRgDIAEoBBoQCg5TZXNzaW9uUmV2b2tlZBoUChJTZWxmU2Vzc2lvblJldm9rZWQaNgoQU2Vzc2lvblJlZnJlc2hlZBISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxoICgZQYXVzZWQaCgoIVW5wYXVzZWQaKAoSQmFja3N0b3BBY2NvdW50U2V0EhIKCmFjY291bnRfaWQYASABKA0a/AEKCVJlY2lwaWVudBIyCgdzcGVjaWFsGAEgASgLMh8ubm9yZC5SZWNlaXB0LlJlY2lwaWVudC5TcGVjaWFsSAASLgoFb3duZWQYAiABKAsyHS5ub3JkLlJlY2VpcHQuUmVjaXBpZW50Lk93bmVkSAASMgoHdW5vd25lZBgDIAEoCzIfLm5vcmQuUmVjZWlwdC5SZWNpcGllbnQuVW5vd25lZEgAGgkKB1NwZWNpYWwaGwoFT3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDRodCgdVbm93bmVkEhIKCmFjY291bnRfaWQYASABKA1CEAoOcmVjaXBpZW50X3R5cGUaowEKC1RyYW5zZmVycmVkEhcKD2Zyb21fYWNjb3VudF9pZBgBIAEoDRIrCgp0b19hY2NvdW50GAIgASgLMhcubm9yZC5SZWNlaXB0LlJlY2lwaWVudBIQCgh0b2tlbl9pZBgDIAEoDRIOCgZhbW91bnQYBCABKAQSFwoPYWNjb3VudF9jcmVhdGVkGAUgASgIEhMKC3VzZXJfcHVia2V5GAYgASgMGkoKE0ZlZVZhdWx0VHJhbnNmZXJyZWQSEQoJcmVjaXBpZW50GAEgASgNEhAKCHRva2VuX2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBp6CgxUcmlnZ2VyQWRkZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQafAoOVHJpZ2dlclJlbW92ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQagAEKDVRyaWdnZXJFZGl0ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEicKEHByZXZpb3VzX3RyaWdnZXIYAyABKAsyDS5ub3JkLlRyaWdnZXISHgoHdHJpZ2dlchgEIAEoCzINLm5vcmQuVHJpZ2dlcho4ChNNYXJrZXRGcmVlemVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIOCgZmcm96ZW4YAiABKAgakAEKEU1hcmtldE1vZGVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIlCgttYXJrZXRfbW9kZRgCIAEoDjIQLm5vcmQuTWFya2V0TW9kZRJBChBjYW5jZWxsZWRfb3JkZXJzGAMgAygLMicubm9yZC5SZWNlaXB0LkNsZWFyTWFya2V0Q2FuY2VsbGVkT3JkZXIaPwoMRmVlVGllckFkZGVkEiMKBmNvbmZpZxgBIAEoCzITLm5vcmQuRmVlVGllckNvbmZpZxIKCgJpZBgCIAEoDRpBCg5GZWVUaWVyVXBkYXRlZBIKCgJpZBgBIAEoDRIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaOAoTQWNjb3VudHNUaWVyVXBkYXRlZBIPCgd0aWVyX2lkGAEgASgNEhAKCGFjY291bnRzGAIgAygNGmAKCkFjbFVwZGF0ZWQSEgoKYWNsX3B1YmtleRgBIAEoDBISCgpyb2xlc19tYXNrGAIgASgEEhUKDXRhcmdldF9wdWJrZXkYAyABKAwSEwoLcm9sZXNfdmFsdWUYBCABKAQa7AMKGUF0b21pY1N1YmFjdGlvblJlc3VsdEtpbmQSPAoScGxhY2Vfb3JkZXJfcmVzdWx0GAEgASgLMh4ubm9yZC5SZWNlaXB0LlBsYWNlT3JkZXJSZXN1bHRIABI3CgxjYW5jZWxfb3JkZXIYAiABKAsyHy5ub3JkLlJlY2VpcHQuQ2FuY2VsT3JkZXJSZXN1bHRIABIzCg10cmlnZ2VyX2FkZGVkGAMgASgLMhoubm9yZC5SZWNlaXB0LlRyaWdnZXJBZGRlZEgAEjcKD3RyaWdnZXJfcmVtb3ZlZBgEIAEoCzIcLm5vcmQuUmVjZWlwdC5UcmlnZ2VyUmVtb3ZlZEgAEjUKDnRyaWdnZXJfZWRpdGVkGAUgASgLMhsubm9yZC5SZWNlaXB0LlRyaWdnZXJFZGl0ZWRIABJOChhyZWR1Y2Vfb3JkZXJfbGlxdWlkYXRpb24YBiABKAsyKi5ub3JkLlJlY2VpcHQuUmVkdWNlT3JkZXJMaXF1aWRhdGlvblJlc3VsdEgAEioKCnJmcV9yZXN1bHQYByABKAsyFC5ub3JkLlBsYWNlUkZRUmVzdWx0SAASLgoPcmZxX2ZpbGxfcmVzdWx0GAggASgLMhMubm9yZC5GaWxsUkZRUmVzdWx0SABCBwoFaW5uZXIaSAoMQXRvbWljUmVzdWx0EjgKB3Jlc3VsdHMYASADKAsyJy5ub3JkLlJlY2VpcHQuQXRvbWljU3ViYWN0aW9uUmVzdWx0S2luZEIGCgRraW5kKhgKBFNpZGUSBwoDQVNLEAASBwoDQklEEAEqHwoKTWFya2V0TW9kZRIICgRDTE9CEAASBwoDUkZREAEqYwoMTWFya2V0UmVnaW1lEhgKFE1BUktFVF9SRUdJTUVfTk9STUFMEAASGwoXTUFSS0VUX1JFR0lNRV9QT1NUX09OTFkQARIcChhNQVJLRVRfUkVHSU1FX1RSQURFX09OTFkQAiotCgtUcmlnZ2VyS2luZBINCglTVE9QX0xPU1MQABIPCgtUQUtFX1BST0ZJVBABKiQKBkludGVudBIMCghERUNSRUFTRRAAEgwKCElOQ1JFQVNFEAEqTwoIRmlsbE1vZGUSCQoFTElNSVQQABINCglQT1NUX09OTFkQARIXChNJTU1FRElBVEVfT1JfQ0FOQ0VMEAISEAoMRklMTF9PUl9LSUxMEAMqrgEKDVBsYWNlbWVudFJvbGUSIAocUExBQ0VNRU5UX1JPTEVfQUNDT1VOVF9PV05FUhAAEiAKHFBMQUNFTUVOVF9ST0xFX1ZBVUxUX01BTkFHRVIQARIeChpQTEFDRU1FTlRfUk9MRV9TVVBFUl9BRE1JThACEhoKFlBMQUNFTUVOVF9ST0xFX1RSSUdHRVIQAxIdChlQTEFDRU1FTlRfUk9MRV9MSVFVSURBVE9SEAQqMQoTU2VsZlRyYWRlUHJldmVudGlvbhIICgROT05FEAASEAoMRVhQSVJFX01BS0VSEAEqJgoKTWFya2V0VHlwZRIICgRTUE9UEAASDgoKUEVSUEVUVUFMUxABKn0KEFRyaWdnZXJFeGVjRXJyb3ISDwoLTk9fUE9TSVRJT04QABITCg9QTEFOTklOR19GQUlMRUQQARIOCgpCQU5LUlVQVENZEAISFQoRUklTS19DSEVDS19GQUlMRUQQAxIcChhSRURVQ0VfT05MWV9DSEVDS19GQUlMRUQQBCofCg5TcGVjaWFsQWNjb3VudBINCglGRUVfVkFVTFQQACpdCgtWYXVsdFN0YXR1cxIXChNWQVVMVF9TVEFUVVNfQUNUSVZFEAASHAoYVkFVTFRfU1RBVFVTX0RFUklTS19PTkxZEAESFwoTVkFVTFRfU1RBVFVTX0ZST1pFThACKugpCgVFcnJvchINCglEVVBMSUNBVEUQABIVChFJTlZBTElEX1NJR05BVFVSRRADEhQKEE1BUktFVF9OT1RfRk9VTkQQBBITCg9UT0tFTl9OT1RfRk9VTkQQBRISCg5VU0VSX05PVF9GT1VORBAGEhUKEVNFU1NJT05fTk9UX0ZPVU5EEAcSEwoPT1JERVJfTk9UX0ZPVU5EEAgSEwoPT1JERVJfU0laRV9aRVJPEAkSDgoKQVJJVEhNRVRJQxALEhcKE0FSSVRITUVUSUNfT1ZFUkZMT1cQDBIYChRBUklUSE1FVElDX1VOREVSRkxPVxANEh8KG0FSSVRITUVUSUNfRElWSVNJT05fQllfWkVSTxAOEhoKFktFWV9BTFJFQURZX1JFR0lTVEVSRUQQDxIcChhVUERBVEVfVElNRVNUQU1QX0lOX1BBU1QQERIYChRUT09fTUFOWV9PUEVOX09SREVSUxASEh0KGVdJVEhEUkFXX0FNT1VOVF9UT09fU01BTEwQFRIpCiVTT1VSQ0VfQU5EX1RBUkdFVF9TSE9VTERfTk9UX0JFX0VRVUFMEBgSEgoOREVDT0RFX0ZBSUxVUkUQIBIgChxERUNPREVfRkFJTFVSRV9MRU5HVEhfUFJFRklYECESFgoSREVDT0RFX0ZBSUxVUkVfUkFXECISGQoVREVDT0RFX0ZBSUxVUkVfRE9NQUlOECMSHwobVVBEQVRFX1BVQkxJU0hfVElNRV9JTl9QQVNUECQSCwoHU0VTU0lPThAwEh8KG1NFU1NJT05fUkVGUkVTSF9OT1RfRU5BQkxFRBAxEioKJlNFU1NJT05fUkVGUkVTSF9ERUFETElORV9CRUZPUkVfRVhQSVJZEDISFwoTUFlUSF9GRUVEX05PVF9BRERFRBBdEhUKEVBZVEhfRkVFRF9NSVNTSU5HEF4SGwoXUFlUSF9GRUVEX0FMUkVBRFlfQURERUQQXxIjCh9QWVRIX0dVQVJESUFOX1NFVF9VTklOSVRJQUxJWkVEEGASHQoZUFlUSF9HVUFSRElBTl9TRVRfSU5WQUxJRBBhEiMKH1BZVEhfRkVFRF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQYhIgChxQWVRIX0ZFRURfUFJJQ0VfT1VUX09GX1JBTkdFEGMSIwofUFlUSF9GRUVEX1ZBUklBTkNFX09VVF9PRl9SQU5HRRBkEjUKMVBZVEhfR1VBUkRJQU5fU0VUX0FORF9QWVRIX1NJR05BVFVSRV9ET19OT1RfTUFUQ0gQZRIcChhJTlZBTElEX1RPS0VOX1BBUkFNRVRFUlMQZhIcChhJTkRFWF9QUklDRV9PVVRfT0ZfUkFOR0UQZxIfChtJTkRFWF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQaBIZChVJTlZBTElEX1NUQVRFX1ZFUlNJT04QaRITCg9JTlZBTElEX01BUkdJTlMQbBIhCh1NQVJLRVRfREVDSU1BTFNfRVhDRUVEX0xJTUlUUxBtEhMKD1RPT19NQU5ZX1RPS0VOUxBuEggKBFRJRVIQcxIZChVUSUVSX0ZFRV9PVVRfT0ZfUkFOR0UQdBIYChRUSUVSX0lEX09VVF9PRl9SQU5HRRB1EhIKDlRJRVJfTk9UX0ZPVU5EEHYSFAoQRlVORElOR19PVkVSRkxPVxB7EjcKM0NBTl9SRURVQ0VfUE9TSVRJT05fT05MWV9JRl9BTExfT1JERVJTX0FSRV9DQU5DRUxFRBB8EhcKE1VORVhQRUNURURfVE9LRU5fSUQQfxIWChFSRVBFQVRFRF9PUkRFUl9JRBCAARIeChlDTElFTlRfT1JERVJfSURfVE9PX0xBUkdFEIEBEhQKD1RPS0VOX05PVF9SRUFEWRCCARIdChhUT0tFTl9BTFJFQURZX1JFR0lTVEVSRUQQgwESIQocSU1NRURJQVRFX09SREVSX0dPVF9OT19GSUxMUxCFARIZChRGQUlMRURfVE9fRklMTF9MSU1JVBCGARIwCitQT1NUX09OTFlfTVVTVF9OT1RfRklMTF9BTllfT1BQT1NJVEVfT1JERVJTEIcBEgwKB0lOVkFMSUQQiAESEAoLTUFJTlRFTkFOQ0UQiQESGgoVTUlOSU1VTV9TSVpFX0RFQ0lNQUxTEIoBEjIKLVBBUkFNRVRFUlNfV0lMTF9DUkVBVEVfTk9OX09QRVJBVElPTkFMX01BUktFVBCLARIiCh1PTkxZX0lNTUVESUFURV9PUkRFUlNfQUxMT1dFRBCMARIbChZUT09fTUFOWV9VU0VSX0FDQ09VTlRTEI0BEhYKEUFDQ09VTlRfTk9UX0ZPVU5EEI4BEhoKFUFDQ09VTlRfSU5WQUxJRF9PV05FUhCPARIbChZTVUJBQ1RJT05fT1VUX09GX1JBTkdFEJABEhEKDERVU1RfQUNDT1VOVBCRARIMCgdCQUxBTkNFEKABEh0KGEJBTEFOQ0VfREVQT1NJVF9PVkVSRkxPVxChARIcChdCQUxBTkNFX0NIQU5HRV9PVkVSRkxPVxCiARIiCh1CQUxBTkNFX0NIQU5HRV9MSU1JVF9FWENFRURFRBCjARIZChRCQUxBTkNFX0lOU1VGRklDSUVOVBCkARIeChlVTkFVVEhFTlRJQ0FURURfTDFfQUNUSU9OEKUBEh0KGEVOQ09ERURfQUNUSU9OX1RPT19MQVJHRRCmARIMCgdUUklHR0VSEKgBEhoKFVRSSUdHRVJfSU5WQUxJRF9QUklDRRCpARIWChFUUklHR0VSX05PVF9GT1VORBCqARIrCiZUUklHR0VSX09OTFlfREVDUkVBU0VfT1JERVJTX1NVUFBPUlRFRBCrARIoCiNUUklHR0VSX01BWF9TSVpFX1BMQUNFTUVOVF9FWENFRURFRBCsARIYChNUUklHR0VSX05PVF9DSEFOR0VEEK0BEg4KCVRJTUVTVEFNUBCwARIfChpUSU1FU1RBTVBfT1VUX09GX1RIUkVTSE9MRBCxARIUCg9USU1FU1RBTVBfU1RBTEUQsgESHAoYRVhQSVJZX1RJTUVTVEFNUF9JTl9QQVNUEBASJQogQkFOS1JVUFRDWV9JTlNVRkZJQ0lFTlRfQ09WRVJBR0UQuQESGQoUQkFOS1JVUFRDWV9OT1RfRk9VTkQQugESGwoWQkFOS1JVUFRDWV9OT1RfQUxMT1dFRBC7ARIVChBNQVJLRVRfTk9UX1JFQURZEMABEhIKDU1BUktFVF9GUk9aRU4QwQESEQoMTUFSS0VUX0VNUFRZEMIBEjAKK01BUktFVF9NT0RFX0RPRVNfTk9UX1NVUFBPUlRfVEhJU19PUEVSQVRJT04QwwESDQoIUE9TSVRJT04QyAESFwoSUE9TSVRJT05fTk9UX0ZPVU5EEMkBEhkKFFBPU0lUSU9OX1NUQVRFX09SREVSEMoBEh8KGlBPU0lUSU9OX1NUQVRFX09SREVSX1BSSUNFEMsBEh4KGVBPU0lUSU9OX1NUQVRFX09SREVSX1NJWkUQzAESHgoZUE9TSVRJT05fU1RBVEVfT1JERVJfU0lERRDNARIYChNQT1NJVElPTl9TSVpFX0xJTUlUEM4BEhgKE1BPU0lUSU9OX1NUQVRFX1BFUlAQzwESJAofUE9TSVRJT05fU1RBVEVfT1JERVJfREVMRUdBVElPThDQARIKCgVQUklDRRDRARIbChZTSUdOQVRVUkVfVkVSSUZJQ0FUSU9OENkBEjAKK1NJR05BVFVSRV9WRVJJRklDQVRJT05fTUFMRk9STUVEX1BVQkxJQ19LRVkQ2gESKgolU0lHTkFUVVJFX1ZFUklGSUNBVElPTl9JTlZBTElEX0xFTkdUSBDbARIJCgRSSVNLEOABEjQKL1JJU0tfREVMRUdBVElPTl9NRl9UT19CRV9MRVNTX1RIQU5fT1JfRVFVQUxfTU1GEOEBEiQKH1JJU0tfT01GX0xFU1NfVEhBTl9PUl9FUVVBTF9JTUYQ4gESJAofUklTS19PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDjARI1CjBSSVNLX1VOSEVBTFRIWV9NRl9BTkRfUE9OX0FGVEVSX0JFVFRFUl9PRl9CRUZPUkUQ5AESKgolUklTS19UUkFERV9PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDlARIUCg9SSVNLX05PVF9FTk9VR0gQ5gESFAoPT1JERVJfRVhFQ1VUSU9OEPABEhoKFU9SREVSX0VYRUNVVElPTl9FTVBUWRDxARIhChxPUkRFUl9FWEVDVVRJT05fRklMTF9PUl9LSUxMEPIBEiMKHk9SREVSX0VYRUNVVElPTl9NSVNTSU5HX0xJTUlUUxDzARIiCh1PUkRFUl9FWEVDVVRJT05fTUlTU0lOR19QUklDRRD0ARIfChpPUkRFUl9FWEVDVVRJT05fU0laRV9MSU1JVBD1ARIgChtPUkRFUl9FWEVDVVRJT05fTElNSVRfUFJJQ0UQ9gESHgoZT1JERVJfUkVEVUNFX0lTX1BPU1RfT05MWRD3ARIfChpPUkRFUl9FWEVDVVRJT05fU0VMTF9QUklDRRD4ARIlCiBPUkRFUl9TSVpFX0VYQ0VFRFNfUE9TSVRJT05fU0laRRD5ARIMCgdBVE9NSUNTEIACEigKI0FUT01JQ1NfVFJBREVTX0NBTk5PVF9GT0xMT1dfUExBQ0VTEIECEjAKK0FUT01JQ1NfQ0FOQ0VMU19DQU5OT1RfRk9MTE9XX1RSQURFU19QTEFDRVMQggISHQoYQVRPTUlDU19EVVBMSUNBVEVfQ0FOQ0VMEIMCEhgKE1JGUV9PUkRFUl9USU1FT1VURUQQ+gESJgohQUNUSU9OX1BPU0lUSU9OX1NIT1VMRF9CRV9DT1ZFUkVEEJECEhkKFEFDVElPTl9JTlZBTElEX05PTkNFEJICEikKJEFDVElPTl9QUk9QT1NFRF9QUklDRV9NVVNUX0JFX0hJR0hFUhCTAhIcChdBRE1JTl9ST0xFX0lOU1VGRklDSUVOVBCUAhIUCg9BRE1JTl9OT1RfRk9VTkQQlQISKQokVU5JUVVFX1NVUEVSX0FETUlOX0NBTk5PVF9CRV9SRU1PVkVEEJYCEh8KGlNVUEVSX0FETUlOX0FMUkVBRFlfRVhJU1RTEJcCEhUKEFRSSUdHRVJfQ09ORkxJQ1QQmAISGgoVVFJJR0dFUl9FRElUX0NPTkZMSUNUEJkCEhwKF1RSSUdHRVJfUkVNT1ZFX0NPTkZMSUNUEJoCEg0KCFRSQU5TRkVSEKACEi4KKVRSQU5TRkVSX1RPX1VOT1dORURfQUNDT1VOVF9JU19QUk9ISUJJVEVEEKECEiwKJ1RSQU5TRkVSX1RPX09XTkVEX0FDQ09VTlRfV0FTX1JFUVVFU1RFRBCiAhIKCgVWQVVMVBCoAhIUCg9WQVVMVF9OT1RfRk9VTkQQqQISHQoYVkFVTFRfQUNUSU9OX05PVF9BTExPV0VEEKoCEhkKFFZBVUxUX1NUQVRVU19JTlZBTElEEKsCEiUKIFZBVUxUX1JFRFVDRV9PTkxZX09SREVSX1JFUVVJUkVEEKwCEiYKIVZBVUxUX0FDVElPTl9XT1VMRF9ERUdSQURFX1NUQVRVUxCtAhIZChRWQVVMVF9VU0VSX05PVF9GT1VORBCuAhIdChhWQVVMVF9VU0VSX0hBU19OT19TSEFSRVMQrwISHAoXVkFVTFRfUEVSTUlTU0lPTl9ERU5JRUQQtgISEgoNVkFVTFRfREVQT1NJVBCwAhIxCixWQVVMVF9ERVBPU0lUX0JPT1RTVFJBUF9SRVFVSVJFU19FTVBUWV9WQVVMVBCxAhIfChpWQVVMVF9ERVBPU0lUX0NBUF9FWENFRURFRBCyAhIpCiRWQVVMVF9ERVBPU0lUX1JFUVVJUkVTX0FDVElWRV9TVEFUVVMQswISLwoqVkFVTFRfREVQT1NJVF9DQVBfQkVMT1dfQ1VSUkVOVF9SQVdfRVFVSVRZELQCEhwKF1ZBVUxUX0RFUE9TSVRfVE9PX1NNQUxMELUCEhMKDlZBVUxUX1dJVEhEUkFXELgCEh4KGVZBVUxUX0lOU1VGRklDSUVOVF9TSEFSRVMQuQISLgopVkFVTFRfV0lUSERSQVdfUkVRVUlSRVNfTk9OX0ZST1pFTl9TVEFUVVMQugISIgodVkFVTFRfTk9fQ0xBSU1BQkxFX1dJVEhEUkFXQUwQuwISJQogVkFVTFRfV0lUSERSQVdfUVVPVEVfVU5BVkFJTEFCTEUQvAISLQooVkFVTFRfRFVTVF9FWElUX1JFUVVJUkVTX0ZVTExfU0hBUkVfRVhJVBC9AhI1CjBWQVVMVF9MQVNUX1NIQVJFX1dJVEhEUkFXX1JFUVVJUkVTX0VNUFRZX0FDQ09VTlQQvgISKAojVkFVTFRfV0lUSERSQVdfUkVRVUlSRVNfTElWRV9TSEFSRVMQvwISEgoNVkFVTFRfQ09OVFJPTBDAAhIdChhWQVVMVF9FUE9DSF9OT1RfRUxJR0lCTEUQwQISMQosVkFVTFRfUFJFVklPVVNfRVBPQ0hfV0lUSERSQVdBTFNfTk9UX1BBWUFCTEUQwgISMgotVkFVTFRfRlJFRVpFX1RIUkVTSE9MRF9NVVNUX0VYQ0VFRF9QUk9URUNUSU9OEMMCEh0KGFZBVUxUX0NPTkZJR19QQVRDSF9FTVBUWRDEAhIoCiNWQVVMVF9OT19TVEFUVVNfVFJBTlNJVElPTl9SRVFVSVJFRBDFAhItCihWQVVMVF9GUk9aRU5fU1RBVFVTX1JFUVVJUkVTX1NVUEVSX0FETUlOEMYCEioKJVZBVUxUX05FV19DT05GSUdfV09VTERfREVHUkFERV9TVEFUVVMQxwISDgoJUkZRX0VSUk9SEMgCEhAKC1JGUV9USU1FT1VUEMkCEhQKD05PVF9JTVBMRU1FTlRFRBD0AxIXChJBQ1RJT05fTk9UX0FMTE9XRUQQ9QMSGAoTTk9UX1NVUFBPUlRFRF9JTlBVVBD2AxIMCgdEUk9QUEVEEOcHYgZwcm90bzM");
|
|
28744
|
+
var file_nord = /* @__PURE__ */ fileDesc("Cgpub3JkLnByb3RvEgRub3JkIh4KBFUxMjgSCgoCbG8YASABKAQSCgoCaGkYAiABKAQikAIKCFJmcVRyYWRlEhsKDnRpbWVvdXRfbWlsbGlzGAEgASgNSACIAQESEQoJbWFya2V0X2lkGAIgASgNEhAKCG9yZGVyX2lkGAMgASgEEg0KBXByaWNlGAQgASgEEhgKEHRpbWVzdGFtcF9taWxsaXMYBSABKAMSGwoOaXNfcmVkdWNlX29ubHkYBiABKAhIAYgBARIZCgxtaW5pbXVtX3NpemUYByABKARIAogBARIZCgxtYXhpbXVtX3NpemUYCCABKARIA4gBAUIRCg9fdGltZW91dF9taWxsaXNCEQoPX2lzX3JlZHVjZV9vbmx5Qg8KDV9taW5pbXVtX3NpemVCDwoNX21heGltdW1fc2l6ZSKwAgoMUmZxUGxhY2VPbmx5EhEKCW1hcmtldF9pZBgHIAEoDRIbCg50aW1lb3V0X21pbGxpcxgBIAEoDUgAiAEBEhwKD2NsaWVudF9vcmRlcl9pZBgCIAEoBEgBiAEBEg0KBXByaWNlGAMgASgEEhgKBHNpZGUYBCABKA4yCi5ub3JkLlNpZGUSGAoQdGltZXN0YW1wX21pbGxpcxgGIAEoAxIMCgRzaXplGAggASgEEhkKDG1pbmltYWxfZmlsbBgJIAEoBEgCiAEBEhsKDmlzX3JlZHVjZV9vbmx5GAogASgISAOIAQFCEQoPX3RpbWVvdXRfbWlsbGlzQhIKEF9jbGllbnRfb3JkZXJfaWRCDwoNX21pbmltYWxfZmlsbEIRCg9faXNfcmVkdWNlX29ubHkiIwoMU2V0UmZxTWFrZXJzEhMKC2FjY291bnRfaWRzGAEgAygNIiUKEFNldE1hcmtldE1vZGVSRlESEQoJbWFya2V0X2lkGAEgASgNItMCCg9DcmVhdGVSZnFNYXJrZXQSMAoIZGVjaW1hbHMYASABKAsyHi5ub3JkLkNyZWF0ZVJmcU1hcmtldC5EZWNpbWFscxIuCgdtYXJnaW5zGAIgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuTWFyZ2lucxIuCgdzeW1ib2xzGAMgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuU3ltYm9scxo5CghEZWNpbWFscxIVCg1zaXplX2RlY2ltYWxzGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNGjwKB01hcmdpbnMSDwoHaW1mX2JwcxgDIAEoDRIPCgdjbWZfYnBzGAQgASgNEg8KB21tZl9icHMYBSABKA0aNQoHU3ltYm9scxITCgt2aWV3X3N5bWJvbBgHIAEoCRIVCg1vcmFjbGVfc3ltYm9sGAggASgJIpQBCg5SZnFUcmFkZUFjdGlvbhIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIcChRxdW90ZV90aW1lb3V0X21pbGxpcxgEIAEoDRITCgliYXNlX3NpemUYBSABKANIAEIKCghxdWFudGl0eUoECAYQByLbAgoPUmZxVHJhZGVSZWNlaXB0EhAKCG9yZGVyX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoDRIwCgdzdWNjZXNzGAMgASgLMh0ubm9yZC5SZnFUcmFkZVJlY2VpcHQuU3VjY2Vzc0gAEjYKB2ZhaWx1cmUYBCABKA4yIy5ub3JkLlJmcVRyYWRlUmVjZWlwdC5GYWlsdXJlUmVhc29uSAAaggEKB1N1Y2Nlc3MSEAoIcXVvdGVfaWQYASABKAQSGAoEc2lkZRgCIAEoDjIKLm5vcmQuU2lkZRIYChBmaWxsZWRfYmFzZV9zaXplGAMgASgEEiIKDnF1b3RlX25vdGlvbmFsGAQgASgLMgoubm9yZC5VMTI4Eg0KBXByaWNlGAUgASgEIioKDUZhaWx1cmVSZWFzb24SCwoHVElNRU9VVBAAEgwKCFJFSkVDVEVEEAFCCAoGcmVzdWx0IjoKDlBsYWNlUkZRUmVzdWx0EhAKCG9yZGVyX2lkGAEgASgEEhYKDnRpbWVvdXRfbWlsbGlzGAIgASgNIk4KDFJGUUV4ZWN1dGlvbhITCgtmaWxsZWRfc2l6ZRgBIAEoBBIQCgh0cmFkZV9pZBgCIAEoBBIXCg9leGVjdXRpb25fcHJpY2UYAyABKAQifAoNRmlsbFJGUVJlc3VsdBIQCghvcmRlcl9pZBgBIAEoBBIYChBtYWtlcl9hY2NvdW50X2lkGAIgASgNEhgKEHRha2VyX2FjY291bnRfaWQYAyABKA0SJQoJZXhlY3V0aW9uGAQgASgLMhIubm9yZC5SRlFFeGVjdXRpb24iIwoMUmZxTWFrZXJzU2V0EhMKC2FjY291bnRfaWRzGAEgAygNIiYKC1JGUVF0eVBsYWNlEhcKA3F0eRgBIAEoCzIKLm5vcmQuVTEyOCI9Cg1GZWVUaWVyQ29uZmlnEhUKDW1ha2VyX2ZlZV9wcG0YASABKA0SFQoNdGFrZXJfZmVlX3BwbRgCIAEoDSKBAQoRRmVlVGllclR5cGVDb25maWcSGgoSY2xvYl9tYWtlcl9mZWVfcHBtGAEgASgNEhoKEmNsb2JfdGFrZXJfZmVlX3BwbRgCIAEoDRIZChFyZnFfbWFrZXJfZmVlX3BwbRgDIAEoDRIZChFyZnFfdGFrZXJfZmVlX3BwbRgEIAEoDSL3AQoGTWFya2V0EhEKCW1hcmtldF9pZBgBIAEoDRIWCg5wcmljZV9kZWNpbWFscxgCIAEoDRIVCg1zaXplX2RlY2ltYWxzGAMgASgNEhUKDWJhc2VfdG9rZW5faWQYBCABKA0SJQoLbWFya2V0X3R5cGUYBSABKA4yEC5ub3JkLk1hcmtldFR5cGUSDwoHaW1mX2JwcxgGIAEoDRIPCgdjbWZfYnBzGAcgASgNEg8KB21tZl9icHMYCCABKA0SJQoLbWFya2V0X21vZGUYCSABKA4yEC5ub3JkLk1hcmtldE1vZGUSEwoLdmlld19zeW1ib2wYCiABKAkiWgoFVG9rZW4SEAoIdG9rZW5faWQYASABKA0SFgoOdG9rZW5fZGVjaW1hbHMYAiABKA0SEgoKd2VpZ2h0X2JwcxgEIAEoDRITCgt2aWV3X3N5bWJvbBgFIAEoCSK2AQoLVmF1bHRIZWFsdGgSKgoRcmF3X2FjY291bnRfdmFsdWUYASABKAsyCi5ub3JkLlUxMjhIAIgBARIrChJzYWZlX2FjY291bnRfdmFsdWUYAiABKAsyCi5ub3JkLlUxMjhIAYgBARIhCgZzdGF0dXMYAyABKA4yES5ub3JkLlZhdWx0U3RhdHVzQhQKEl9yYXdfYWNjb3VudF92YWx1ZUIVChNfc2FmZV9hY2NvdW50X3ZhbHVlIrABCgtWYXVsdENvbmZpZxIfCgtkZXBvc2l0X2NhcBgBIAEoCzIKLm5vcmQuVTEyOBIiChpvcGVuX3Bvc2l0aW9uX2Rpc2NvdW50X2JwcxgCIAEoDRIfChdkcmF3ZG93bl9wcm90ZWN0aW9uX2JwcxgDIAEoDRIbChNkcmF3ZG93bl9mcmVlemVfYnBzGAQgASgNEh4KFmVwb2NoX21pbl9kdXJhdGlvbl9zZWMYBSABKA0izAIKEFZhdWx0Q29uZmlnUGF0Y2gSJAoLZGVwb3NpdF9jYXAYASABKAsyCi5ub3JkLlUxMjhIAIgBARInChpvcGVuX3Bvc2l0aW9uX2Rpc2NvdW50X2JwcxgCIAEoDUgBiAEBEiQKF2RyYXdkb3duX3Byb3RlY3Rpb25fYnBzGAMgASgNSAKIAQESIAoTZHJhd2Rvd25fZnJlZXplX2JwcxgEIAEoDUgDiAEBEiMKFmVwb2NoX21pbl9kdXJhdGlvbl9zZWMYBSABKA1IBIgBAUIOCgxfZGVwb3NpdF9jYXBCHQobX29wZW5fcG9zaXRpb25fZGlzY291bnRfYnBzQhoKGF9kcmF3ZG93bl9wcm90ZWN0aW9uX2Jwc0IWChRfZHJhd2Rvd25fZnJlZXplX2Jwc0IZChdfZXBvY2hfbWluX2R1cmF0aW9uX3NlYyJICgtDcmVhdGVWYXVsdBIWCg5tYW5hZ2VyX3B1YmtleRgBIAEoDBIhCgZjb25maWcYAiABKAsyES5ub3JkLlZhdWx0Q29uZmlnIlMKEVVwZGF0ZVZhdWx0Q29uZmlnEhAKCHZhdWx0X2lkGAEgASgNEiwKDGNvbmZpZ19wYXRjaBgCIAEoCzIWLm5vcmQuVmF1bHRDb25maWdQYXRjaCI7Cg9TZXRWYXVsdE1hbmFnZXISEAoIdmF1bHRfaWQYASABKA0SFgoObWFuYWdlcl9wdWJrZXkYAiABKAwiNwoPVmF1bHRTeW5jRXBvY2hzEhIKCnNlc3Npb25faWQYASABKAQSEAoIdmF1bHRfaWQYAiABKA0iTgoRU3RhZ2VkQWRtaW5BY3Rpb24SFAoMYWRtaW5fcHVia2V5GAEgASgMEiMKBGtpbmQYAiABKAsyFS5ub3JkLkFkbWluQWN0aW9uS2luZCKzBAoPQWRtaW5BY3Rpb25LaW5kEikKDGNyZWF0ZV92YXVsdBgBIAEoCzIRLm5vcmQuQ3JlYXRlVmF1bHRIABI2ChN1cGRhdGVfdmF1bHRfY29uZmlnGAIgASgLMhcubm9yZC5VcGRhdGVWYXVsdENvbmZpZ0gAEjIKEXNldF92YXVsdF9tYW5hZ2VyGAMgASgLMhUubm9yZC5TZXRWYXVsdE1hbmFnZXJIABIyChFjcmVhdGVfcmZxX21hcmtldBgEIAEoCzIVLm5vcmQuQ3JlYXRlUmZxTWFya2V0SAASVgohc2V0X21hcmtldF9tb2RlX2Nsb2JfdHJhZGluZ19vbmx5GAUgASgLMikubm9yZC5BY3Rpb24uU2V0TWFya2V0TW9kZUNMT0JUcmFkaW5nT25seUgAEjUKE3NldF9tYXJrZXRfbW9kZV9yZnEYBiABKAsyFi5ub3JkLlNldE1hcmtldE1vZGVSRlFIABJQCh5zZXRfbWFya2V0X21vZGVfY2xvYl9wb3N0X29ubHkYByABKAsyJi5ub3JkLkFjdGlvbi5TZXRNYXJrZXRNb2RlQ0xPQlBvc3RPbmx5SAASPgoUc2V0X21hcmtldF9tb2RlX2Nsb2IYCCABKAsyHi5ub3JkLkFjdGlvbi5TZXRNYXJrZXRNb2RlQ0xPQkgAEiwKDnNldF9yZnFfbWFrZXJzGAkgASgLMhIubm9yZC5TZXRSZnFNYWtlcnNIAEIGCgRraW5kIkQKDFZhdWx0RGVwb3NpdBISCgpzZXNzaW9uX2lkGAEgASgEEhAKCHZhdWx0X2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBCL1AQoNVmF1bHRXaXRoZHJhdxISCgpzZXNzaW9uX2lkGAEgASgEEhAKCHZhdWx0X2lkGAIgASgNEi4KB3JlcXVlc3QYAyABKAsyGy5ub3JkLlZhdWx0V2l0aGRyYXcuUmVxdWVzdEgAEioKBWNsYWltGAQgASgLMhkubm9yZC5WYXVsdFdpdGhkcmF3LkNsYWltSAAaUQoHUmVxdWVzdBIYCg5xdW90ZV9ub3Rpb25hbBgBIAEoBEgAEiIKDHNoYXJlX2Ftb3VudBgCIAEoCzIKLm5vcmQuVTEyOEgAQggKBmFtb3VudBoHCgVDbGFpbUIGCgRraW5kIp4BChJDcmVhdGVWYXVsdFJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SGAoQdmF1bHRfYWNjb3VudF9pZBgCIAEoDRIWCg5tYW5hZ2VyX3B1YmtleRgDIAEoDBIhCgZzdGF0dXMYBCABKA4yES5ub3JkLlZhdWx0U3RhdHVzEiEKBmNvbmZpZxgFIAEoCzIRLm5vcmQuVmF1bHRDb25maWcicgoYVXBkYXRlVmF1bHRDb25maWdSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEiEKBmNvbmZpZxgCIAEoCzIRLm5vcmQuVmF1bHRDb25maWcSIQoGc3RhdHVzGAMgASgOMhEubm9yZC5WYXVsdFN0YXR1cyJCChZTZXRWYXVsdE1hbmFnZXJSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhYKDm1hbmFnZXJfcHVia2V5GAIgASgMIvsBChZWYXVsdFN5bmNFcG9jaHNSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhcKD2Nsb3NlZF9lcG9jaF9pZBgCIAEoDRIYChBjbGFpbWFibGVfYW1vdW50GAMgASgEEiEKBnN0YXR1cxgEIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSIQoGZXBvY2hzGAUgASgLMhEubm9yZC5WYXVsdEVwb2NocxIlChFsaXZlX3NoYXJlX3N1cHBseRgGIAEoCzIKLm5vcmQuVTEyOBIVCg1xdW90ZV9iYWxhbmNlGAcgASgDEhgKEHZhdWx0X2FjY291bnRfaWQYCCABKA0ijwIKE1ZhdWx0RGVwb3NpdFJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFwoPZnJvbV9hY2NvdW50X2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBIhCg1zaGFyZXNfaXNzdWVkGAQgASgLMgoubm9yZC5VMTI4Eh8KC3VzZXJfc2hhcmVzGAUgASgLMgoubm9yZC5VMTI4EiUKEWxpdmVfc2hhcmVfc3VwcGx5GAYgASgLMgoubm9yZC5VMTI4EiEKBnN0YXR1cxgHIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSGAoQdmF1bHRfYWNjb3VudF9pZBgIIAEoDRIVCg1xdW90ZV9iYWxhbmNlGAkgASgDIlUKEVdpdGhkcmF3YWxCdWNrZXRzEhUKDWN1cnJlbnRfZXBvY2gYASABKAQSFgoOcHJldmlvdXNfZXBvY2gYAiABKAQSEQoJY2xhaW1hYmxlGAMgASgEIoUBCgtWYXVsdFBwc1JlZhIQCghlcG9jaF9pZBgBIAEoDRIrChJzYWZlX2FjY291bnRfdmFsdWUYAiABKAsyCi5ub3JkLlUxMjhIAIgBARIgCgxzaGFyZV9zdXBwbHkYAyABKAsyCi5ub3JkLlUxMjhCFQoTX3NhZmVfYWNjb3VudF92YWx1ZSKWAgoLVmF1bHRFcG9jaHMSGAoQY3VycmVudF9lcG9jaF9pZBgBIAEoDRIgChhjdXJyZW50X2Vwb2NoX3N0YXJ0ZWRfYXQYAiABKAMSIgoVcGFpZF90aHJvdWdoX2Vwb2NoX2lkGAMgASgNSACIAQESLAoLd2l0aGRyYXdhbHMYBCABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEi8KFGxhdGVzdF9lcG9jaF9wcHNfcmVmGAUgASgLMhEubm9yZC5WYXVsdFBwc1JlZhIuChNwcmlvcl9lcG9jaF9wcHNfcmVmGAYgASgLMhEubm9yZC5WYXVsdFBwc1JlZkIYChZfcGFpZF90aHJvdWdoX2Vwb2NoX2lkIo8BCg5WYXVsdFVzZXJTdGF0ZRIaCgZzaGFyZXMYASABKAsyCi5ub3JkLlUxMjgSLAoLd2l0aGRyYXdhbHMYAiABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEhgKEGN1cnJlbnRfZXBvY2hfaWQYAyABKA0SGQoRcHJldmlvdXNfZXBvY2hfaWQYBCABKA0itgMKFFZhdWx0V2l0aGRyYXdSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhUKDXRvX2FjY291bnRfaWQYAiABKA0SOQoJcmVxdWVzdGVkGAMgASgLMiQubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5SZXF1ZXN0ZWRIABI1CgdjbGFpbWVkGAQgASgLMiIubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5DbGFpbWVkSAASLQoPcG9zdF91c2VyX3N0YXRlGAUgASgLMhQubm9yZC5WYXVsdFVzZXJTdGF0ZRIlChFsaXZlX3NoYXJlX3N1cHBseRgGIAEoCzIKLm5vcmQuVTEyOBIhCgZzdGF0dXMYByABKA4yES5ub3JkLlZhdWx0U3RhdHVzEhgKEHZhdWx0X2FjY291bnRfaWQYCCABKA0SFQoNcXVvdGVfYmFsYW5jZRgJIAEoAxo2CglSZXF1ZXN0ZWQSDQoFcXVvdGUYASABKAQSGgoGYnVybmVkGAIgASgLMgoubm9yZC5VMTI4GhkKB0NsYWltZWQSDgoGYW1vdW50GAEgASgEQgYKBGtpbmQiSQoKT3JkZXJMaW1pdBINCgVwcmljZRgGIAEoBBIMCgRzaXplGAcgASgEEh4KCnF1b3RlX3NpemUYCCABKAsyCi5ub3JkLlUxMjgiuQEKCVBsYWNlVHlwZRIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiEKCWZpbGxfbW9kZRgEIAEoDjIOLm5vcmQuRmlsbE1vZGUSFgoOaXNfcmVkdWNlX29ubHkYBSABKAgSPQoVc2VsZl90cmFkZV9wcmV2ZW50aW9uGAYgASgOMhkubm9yZC5TZWxmVHJhZGVQcmV2ZW50aW9uSACIAQFCGAoWX3NlbGZfdHJhZGVfcHJldmVudGlvbiLJAQoMVHJhZGVPclBsYWNlEhEKCW1hcmtldF9pZBgCIAEoDRIjCgpwbGFjZV90eXBlGAMgASgLMg8ubm9yZC5QbGFjZVR5cGUSHwoFbGltaXQYBiABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoPY2xpZW50X29yZGVyX2lkGCEgASgESACIAQESIQoIcmVmZXJyZXIYIiABKAsyCi5ub3JkLlUxMjhIAYgBAUISChBfY2xpZW50X29yZGVyX2lkQgsKCV9yZWZlcnJlciIpChVBdG9taWNDYW5jZWxPcmRlckJ5SWQSEAoIb3JkZXJfaWQYAiABKAQiNgobQXRvbWljQ2FuY2VsT3JkZXJCeUNsaWVudElkEhcKD2NsaWVudF9vcmRlcl9pZBgCIAEoBCKGAQoQQXRvbWljQWRkVHJpZ2dlchIkCgd0cmlnZ2VyGAEgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhwKBmludGVudBgCIAEoDjIMLm5vcmQuSW50ZW50EiEKCHJlZmVycmVyGAMgASgLMgoubm9yZC5VMTI4SACIAQFCCwoJX3JlZmVycmVyIlEKEUF0b21pY0VkaXRUcmlnZ2VyEhIKCnRyaWdnZXJfaWQYASABKAQSKAoLbmV3X3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQiPAoTQXRvbWljUmVtb3ZlVHJpZ2dlchIRCgltYXJrZXRfaWQYASABKA0SEgoKdHJpZ2dlcl9pZBgCIAEoBCIrChZSZWR1Y2VPcmRlckxpcXVpZGF0aW9uEhEKCW1hcmtldF9pZBgCIAEoDSLPAQoVQXRvbWljU3ViYWN0aW9uS2luZFYxEiwKDnRyYWRlX29yX3BsYWNlGAYgASgLMhIubm9yZC5UcmFkZU9yUGxhY2VIABIzCgxjYW5jZWxfb3JkZXIYByABKAsyGy5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlJZEgAEkYKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYCCABKAsyIS5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlDbGllbnRJZEgAOgIYAUIHCgVpbm5lciKwAQoIQXRvbWljVjESEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCgphY2NvdW50X2lkGAIgASgNSACIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAMgASgESAGIAQESLAoHYWN0aW9ucxgGIAMoCzIbLm5vcmQuQXRvbWljU3ViYWN0aW9uS2luZFYxOgIYAUINCgtfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkIscECg9BdG9taWNTdWJhY3Rpb24SFAoHdXNlX2tleRgBIAEoCEgBiAEBEh4KEXRhcmdldF9hY2NvdW50X2lkGCAgASgNSAKIAQESLAoOdHJhZGVfb3JfcGxhY2UYBiABKAsyEi5ub3JkLlRyYWRlT3JQbGFjZUgAEjMKDGNhbmNlbF9vcmRlchgHIAEoCzIbLm5vcmQuQXRvbWljQ2FuY2VsT3JkZXJCeUlkSAASRgoZY2FuY2VsX29yZGVyX2J5X2NsaWVudF9pZBgIIAEoCzIhLm5vcmQuQXRvbWljQ2FuY2VsT3JkZXJCeUNsaWVudElkSAASLQoLYWRkX3RyaWdnZXIYCSABKAsyFi5ub3JkLkF0b21pY0FkZFRyaWdnZXJIABIvCgxlZGl0X3RyaWdnZXIYCiABKAsyFy5ub3JkLkF0b21pY0VkaXRUcmlnZ2VySAASMwoOcmVtb3ZlX3RyaWdnZXIYCyABKAsyGS5ub3JkLkF0b21pY1JlbW92ZVRyaWdnZXJIABJAChhyZWR1Y2Vfb3JkZXJfbGlxdWlkYXRpb24YDCABKAsyHC5ub3JkLlJlZHVjZU9yZGVyTGlxdWlkYXRpb25IABIsCg5yZnFfcGxhY2Vfb25seRgNIAEoCzISLm5vcmQuUmZxUGxhY2VPbmx5SAASIwoJcmZxX3RyYWRlGA4gASgLMg4ubm9yZC5SZnFUcmFkZUgAQgcKBWlubmVyQgoKCF91c2Vfa2V5QhQKEl90YXJnZXRfYWNjb3VudF9pZCKkAQoGQXRvbWljEhIKCnNlc3Npb25faWQYASABKAQSFwoKYWNjb3VudF9pZBgCIAEoDUgAiAEBEh8KEnNlbmRlcl90cmFja2luZ19pZBgDIAEoBEgBiAEBEiYKB2FjdGlvbnMYBiADKAsyFS5ub3JkLkF0b21pY1N1YmFjdGlvbkINCgtfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkIjwKFlB5dGhMYXplclRydXN0ZWRTaWduZXISDgoGcHVia2V5GAEgASgMEhIKCmV4cGlyZXNfYXQYAiABKAMilgEKDVRyaWdnZXJSZWNvcmQSFQoNdHJpZ2dlcl9wcmljZRgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SIAoGbGltaXRzGAMgASgLMhAubm9yZC5PcmRlckxpbWl0Eh8KBGtpbmQYBCABKA4yES5ub3JkLlRyaWdnZXJLaW5kEhgKBHNpZGUYBSABKA4yCi5ub3JkLlNpZGUimwEKB1RyaWdnZXISFQoNdHJpZ2dlcl9wcmljZRgBIAEoBBIfCgRraW5kGAIgASgOMhEubm9yZC5UcmlnZ2VyS2luZBIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiAKBmxpbWl0cxgEIAEoCzIQLm5vcmQuT3JkZXJMaW1pdBIcCgZpbnRlbnQYBSABKA4yDC5ub3JkLkludGVudCK9NQoGQWN0aW9uEhkKEWN1cnJlbnRfdGltZXN0YW1wGAEgASgDEg0KBW5vbmNlGAIgASgNEjQKDmNyZWF0ZV9zZXNzaW9uGAQgASgLMhoubm9yZC5BY3Rpb24uQ3JlYXRlU2Vzc2lvbkgAEjAKDGNyZWF0ZV90b2tlbhgFIAEoCzIYLm5vcmQuQWN0aW9uLkNyZWF0ZVRva2VuSAASMgoNY3JlYXRlX21hcmtldBgGIAEoCzIZLm5vcmQuQWN0aW9uLkNyZWF0ZU1hcmtldEgAEi4KC3BsYWNlX29yZGVyGAcgASgLMhcubm9yZC5BY3Rpb24uUGxhY2VPcmRlckgAEjoKEmNhbmNlbF9vcmRlcl9ieV9pZBgIIAEoCzIcLm5vcmQuQWN0aW9uLkNhbmNlbE9yZGVyQnlJZEgAEicKB2RlcG9zaXQYCSABKAsyFC5ub3JkLkFjdGlvbi5EZXBvc2l0SAASKQoId2l0aGRyYXcYCiABKAsyFS5ub3JkLkFjdGlvbi5XaXRoZHJhd0gAEkwKG3B5dGhfc2V0X3dvcm1ob2xlX2d1YXJkaWFucxgLIAEoCzIlLm5vcmQuQWN0aW9uLlB5dGhTZXRXb3JtaG9sZUd1YXJkaWFuc0gAEj4KFHB5dGhfc2V0X3N5bWJvbF9mZWVkGAwgASgLMh4ubm9yZC5BY3Rpb24uUHl0aFNldFN5bWJvbEZlZWRIABJCChZweXRoX3ByaWNlX2ZlZWRfdXBkYXRlGA0gASgLMiAubm9yZC5BY3Rpb24uUHl0aFByaWNlRmVlZFVwZGF0ZUgAEjQKDnJldm9rZV9zZXNzaW9uGA8gASgLMhoubm9yZC5BY3Rpb24uUmV2b2tlU2Vzc2lvbkgAEiMKBXBhdXNlGBAgASgLMhIubm9yZC5BY3Rpb24uUGF1c2VIABInCgd1bnBhdXNlGBEgASgLMhQubm9yZC5BY3Rpb24uVW5wYXVzZUgAEikKCHRyYW5zZmVyGBIgASgLMhUubm9yZC5BY3Rpb24uVHJhbnNmZXJIABIuCgthZGRfdHJpZ2dlchggIAEoCzIXLm5vcmQuQWN0aW9uLkFkZFRyaWdnZXJIABI0Cg5yZW1vdmVfdHJpZ2dlchghIAEoCzIaLm5vcmQuQWN0aW9uLlJlbW92ZVRyaWdnZXJIABInCglhdG9taWNfdjEYIyABKAsyDi5ub3JkLkF0b21pY1YxQgIYAUgAEjIKDWZyZWV6ZV9tYXJrZXQYJCABKAsyGS5ub3JkLkFjdGlvbi5GcmVlemVNYXJrZXRIABI2Cg91bmZyZWV6ZV9tYXJrZXQYJSABKAsyGy5ub3JkLkFjdGlvbi5VbmZyZWV6ZU1hcmtldEgAEiwKCnVwZGF0ZV9hY2wYKSABKAsyFi5ub3JkLkFjdGlvbi5VcGRhdGVBY2xIABI7ChJmZWVfdmF1bHRfdHJhbnNmZXIYKiABKAsyHS5ub3JkLkFjdGlvbi5GZWVWYXVsdFRyYW5zZmVySAASOwoSdGFrZV9hbGxfcG9zaXRpb25zGCsgASgLMh0ubm9yZC5BY3Rpb24uVGFrZUFsbFBvc2l0aW9uc0gAEkcKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYLCABKAsyIi5ub3JkLkFjdGlvbi5DYW5jZWxPcmRlckJ5Q2xpZW50SWRIABI2Cg9leGVjdXRlX3RyaWdnZXIYLSABKAsyGy5ub3JkLkFjdGlvbi5FeGVjdXRlVHJpZ2dlckgAEj8KFHNldF9iYWNrc3RvcF9hY2NvdW50GC4gASgLMh8ubm9yZC5BY3Rpb24uU2V0QmFja3N0b3BBY2NvdW50SAASMAoMZWRpdF90cmlnZ2VyGC8gASgLMhgubm9yZC5BY3Rpb24uRWRpdFRyaWdnZXJIABIeCgZhdG9taWMYMCABKAsyDC5ub3JkLkF0b21pY0gAEigKBWFkbWluGDEgASgLMhcubm9yZC5TdGFnZWRBZG1pbkFjdGlvbkgAEjAKDGNsZWFyX21hcmtldBgyIAEoCzIYLm5vcmQuQWN0aW9uLkNsZWFyTWFya2V0SAASMgoRdmF1bHRfc3luY19lcG9jaHMYNSABKAsyFS5ub3JkLlZhdWx0U3luY0Vwb2Noc0gAEisKDXZhdWx0X2RlcG9zaXQYNiABKAsyEi5ub3JkLlZhdWx0RGVwb3NpdEgAEi0KDnZhdWx0X3dpdGhkcmF3GDcgASgLMhMubm9yZC5WYXVsdFdpdGhkcmF3SAASUQoecHl0aF9sYXplcl9zZXRfdHJ1c3RlZF9zaWduZXJzGDkgASgLMicubm9yZC5BY3Rpb24uUHl0aExhemVyU2V0VHJ1c3RlZFNpZ25lcnNIABJJChpweXRoX2xhemVyX3NldF9mZWVkX3N5bWJvbBg6IAEoCzIjLm5vcmQuQWN0aW9uLlB5dGhMYXplclNldEZlZWRTeW1ib2xIABJNChxweXRoX2xhemVyX3ByaWNlX2ZlZWRfdXBkYXRlGDsgASgLMiUubm9yZC5BY3Rpb24uUHl0aExhemVyUHJpY2VGZWVkVXBkYXRlSAASNgoPcmVmcmVzaF9zZXNzaW9uGDwgASgLMhsubm9yZC5BY3Rpb24uUmVmcmVzaFNlc3Npb25IABI9ChNzZWxmX3Jldm9rZV9zZXNzaW9uGD0gASgLMh4ubm9yZC5BY3Rpb24uU2VsZlJldm9rZVNlc3Npb25IABI4ChFhZGRfZmVlX3RpZXJfdHlwZRg+IAEoCzIbLm5vcmQuQWN0aW9uLkFkZEZlZVRpZXJUeXBlSAASPgoUdXBkYXRlX2ZlZV90aWVyX3R5cGUYPyABKAsyHi5ub3JkLkFjdGlvbi5VcGRhdGVGZWVUaWVyVHlwZUgAElgKInVwZGF0ZV9hY2NvdW50c19mZWVfdGllcl90eXBlX21vZGUYQCABKAsyKi5ub3JkLkFjdGlvbi5VcGRhdGVBY2NvdW50c0ZlZVRpZXJUeXBlTW9kZUgAGuMBCg1DcmVhdGVTZXNzaW9uEhMKC3VzZXJfcHVia2V5GAEgASgMEhYKDnNlc3Npb25fcHVia2V5GAIgASgMEhgKEGV4cGlyeV90aW1lc3RhbXAYAyABKAMSQQoRc2lnbmF0dXJlX2ZyYW1pbmcYBCABKA4yIS5ub3JkLkFjdGlvbi5Vc2VyU2lnbmF0dXJlRnJhbWluZ0gAiAEBEh0KEHJlZnJlc2hfZGVhZGxpbmUYBSABKANIAYgBAUIUChJfc2lnbmF0dXJlX2ZyYW1pbmdCEwoRX3JlZnJlc2hfZGVhZGxpbmUaiwEKC0NyZWF0ZVRva2VuEhYKDnRva2VuX2RlY2ltYWxzGAEgASgNEhIKCndlaWdodF9icHMYAyABKA0SEwoLdmlld19zeW1ib2wYBCABKAkSFQoNb3JhY2xlX3N5bWJvbBgFIAEoCRIQCghzb2xfYWRkchgGIAEoDBISCgphY2xfcHVia2V5GAcgASgMGjEKHFNldE1hcmtldE1vZGVDTE9CVHJhZGluZ09ubHkSEQoJbWFya2V0X2lkGAEgASgNGi4KGVNldE1hcmtldE1vZGVDTE9CUG9zdE9ubHkSEQoJbWFya2V0X2lkGAEgASgNGiYKEVNldE1hcmtldE1vZGVDTE9CEhEKCW1hcmtldF9pZBgBIAEoDRruAQoMQ3JlYXRlTWFya2V0EhUKDXNpemVfZGVjaW1hbHMYASABKA0SFgoOcHJpY2VfZGVjaW1hbHMYAiABKA0SDwoHaW1mX2JwcxgDIAEoDRIPCgdjbWZfYnBzGAQgASgNEg8KB21tZl9icHMYBSABKA0SJQoLbWFya2V0X3R5cGUYBiABKA4yEC5ub3JkLk1hcmtldFR5cGUSEwoLdmlld19zeW1ib2wYByABKAkSFQoNb3JhY2xlX3N5bWJvbBgIIAEoCRIVCg1iYXNlX3Rva2VuX2lkGAkgASgNEhIKCmFjbF9wdWJrZXkYCiABKAwaqgQKClBsYWNlT3JkZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIhCglmaWxsX21vZGUYBCABKA4yDi5ub3JkLkZpbGxNb2RlEhYKDmlzX3JlZHVjZV9vbmx5GAUgASgIEg0KBXByaWNlGAYgASgEEgwKBHNpemUYByABKAQSHgoKcXVvdGVfc2l6ZRgIIAEoCzIKLm5vcmQuVTEyOBIhChRkZWxlZ2F0b3JfYWNjb3VudF9pZBggIAEoDUgAiAEBEhwKD2NsaWVudF9vcmRlcl9pZBghIAEoBEgBiAEBEh4KEXNlbmRlcl9hY2NvdW50X2lkGCIgASgNSAKIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGCMgASgESAOIAQESPQoVc2VsZl90cmFkZV9wcmV2ZW50aW9uGCQgASgOMhkubm9yZC5TZWxmVHJhZGVQcmV2ZW50aW9uSASIAQESIQoIcmVmZXJyZXIYJSABKAsyCi5ub3JkLlUxMjhIBYgBAUIXChVfZGVsZWdhdG9yX2FjY291bnRfaWRCEgoQX2NsaWVudF9vcmRlcl9pZEIUChJfc2VuZGVyX2FjY291bnRfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZEIYChZfc2VsZl90cmFkZV9wcmV2ZW50aW9uQgsKCV9yZWZlcnJlchqpAQoPQ2FuY2VsT3JkZXJCeUlkEhIKCnNlc3Npb25faWQYASABKAQSEAoIb3JkZXJfaWQYAiABKAQSIQoUZGVsZWdhdG9yX2FjY291bnRfaWQYICABKA1IAIgBARIeChFzZW5kZXJfYWNjb3VudF9pZBghIAEoDUgBiAEBQhcKFV9kZWxlZ2F0b3JfYWNjb3VudF9pZEIUChJfc2VuZGVyX2FjY291bnRfaWQaegoVQ2FuY2VsT3JkZXJCeUNsaWVudElkEhIKCnNlc3Npb25faWQYASABKAQSFwoPY2xpZW50X29yZGVyX2lkGAIgASgEEh4KEXNlbmRlcl9hY2NvdW50X2lkGAMgASgNSACIAQFCFAoSX3NlbmRlcl9hY2NvdW50X2lkGm8KB0RlcG9zaXQSFAoMYWN0aW9uX25vbmNlGAEgASgEEhIKCnRva2VuX2FkZHIYAiABKAwSDgoGYW1vdW50GAMgASgEEhMKC3VzZXJfcHVia2V5GAQgASgMEhUKDXNlbmRlcl9wdWJrZXkYBSABKAwaagoIV2l0aGRyYXcSEAoIdG9rZW5faWQYASABKA0SEgoKc2Vzc2lvbl9pZBgCIAEoBBIOCgZhbW91bnQYAyABKAQSGAoLZGVzdF9wdWJrZXkYBCABKAxIAIgBAUIOCgxfZGVzdF9wdWJrZXkaXQoYUHl0aFNldFdvcm1ob2xlR3VhcmRpYW5zEhoKEmd1YXJkaWFuX3NldF9pbmRleBgBIAEoDRIRCglhZGRyZXNzZXMYAiADKAwSEgoKYWNsX3B1YmtleRgDIAEoDBpVChFQeXRoU2V0U3ltYm9sRmVlZBIVCg1vcmFjbGVfc3ltYm9sGAEgASgJEhUKDXByaWNlX2ZlZWRfaWQYAiABKAwSEgoKYWNsX3B1YmtleRgDIAEoDBovChNQeXRoUHJpY2VGZWVkVXBkYXRlEhgKEHJhd19weXRobmV0X2RhdGEYASABKAwaUgoYUHl0aExhemVyUHJpY2VGZWVkVXBkYXRlEg8KB3BheWxvYWQYASABKAwSEQoJc2lnbmF0dXJlGAIgASgMEhIKCnB1YmxpY19rZXkYAyABKAwaZwoaUHl0aExhemVyU2V0VHJ1c3RlZFNpZ25lcnMSEgoKYWNsX3B1YmtleRgBIAEoDBI1Cg90cnVzdGVkX3NpZ25lcnMYAiADKAsyHC5ub3JkLlB5dGhMYXplclRydXN0ZWRTaWduZXIaqwEKFlB5dGhMYXplclNldEZlZWRTeW1ib2wSEgoKYWNsX3B1YmtleRgBIAEoDBJCCgVmZWVkcxgCIAMoCzIzLm5vcmQuQWN0aW9uLlB5dGhMYXplclNldEZlZWRTeW1ib2wuRmVlZFN5bWJvbElucHV0GjkKD0ZlZWRTeW1ib2xJbnB1dBIPCgdmZWVkX2lkGAEgASgNEhUKDW9yYWNsZV9zeW1ib2wYAiABKAkaIwoNUmV2b2tlU2Vzc2lvbhISCgpzZXNzaW9uX2lkGAEgASgEGjQKDlJlZnJlc2hTZXNzaW9uEhIKCnNlc3Npb25faWQYASABKAQSDgoGZXhwaXJ5GAIgASgDGicKEVNlbGZSZXZva2VTZXNzaW9uEhIKCnNlc3Npb25faWQYASABKAQaGwoFUGF1c2USEgoKYWNsX3B1YmtleRgBIAEoDBodCgdVbnBhdXNlEhIKCmFjbF9wdWJrZXkYASABKAwaYwoSU2V0QmFja3N0b3BBY2NvdW50EhIKCmFjbF9wdWJrZXkYASABKAwSEgoKYWNjb3VudF9pZBgCIAEoDRIlCgttYXJrZXRfbW9kZRgDIAEoDjIQLm5vcmQuTWFya2V0TW9kZRr5AQoJUmVjaXBpZW50EjEKB3NwZWNpYWwYASABKAsyHi5ub3JkLkFjdGlvbi5SZWNpcGllbnQuU3BlY2lhbEgAEi0KBW93bmVkGAIgASgLMhwubm9yZC5BY3Rpb24uUmVjaXBpZW50Lk93bmVkSAASMQoHdW5vd25lZBgDIAEoCzIeLm5vcmQuQWN0aW9uLlJlY2lwaWVudC5Vbm93bmVkSAAaCQoHU3BlY2lhbBobCgVPd25lZBISCgphY2NvdW50X2lkGAEgASgNGh0KB1Vub3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDUIQCg5yZWNpcGllbnRfdHlwZRqfAQoIVHJhbnNmZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCg9mcm9tX2FjY291bnRfaWQYAiABKA0SEAoIdG9rZW5faWQYAyABKA0SDgoGYW1vdW50GAQgASgEEjIKDXRvX2FjY291bnRfaWQYCCABKAsyFi5ub3JkLkFjdGlvbi5SZWNpcGllbnRIAIgBAUIQCg5fdG9fYWNjb3VudF9pZBpbChBGZWVWYXVsdFRyYW5zZmVyEhIKCmFjbF9wdWJrZXkYASABKAwSEQoJcmVjaXBpZW50GAIgASgNEhAKCHRva2VuX2lkGAMgASgNEg4KBmFtb3VudBgEIAEoBBq8AQoKQWRkVHJpZ2dlchISCgpzZXNzaW9uX2lkGAEgASgEEiQKB3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAMgASgOMgwubm9yZC5JbnRlbnQSFwoKYWNjb3VudF9pZBgKIAEoDUgAiAEBEiEKCHJlZmVycmVyGAsgASgLMgoubm9yZC5VMTI4SAGIAQFCDQoLX2FjY291bnRfaWRCCwoJX3JlZmVycmVyGocBCgtFZGl0VHJpZ2dlchISCgpzZXNzaW9uX2lkGAEgASgEEhIKCnRyaWdnZXJfaWQYAiABKAQSKAoLbmV3X3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSFwoKYWNjb3VudF9pZBgKIAEoDUgAiAEBQg0KC19hY2NvdW50X2lkGnIKDVJlbW92ZVRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SEgoKdHJpZ2dlcl9pZBgDIAEoBBIXCgphY2NvdW50X2lkGAogASgNSACIAQFCDQoLX2FjY291bnRfaWQadAoOQWRkRmVlVGllclR5cGUSEgoKYWNsX3B1YmtleRgBIAEoDBIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRInCgZjb25maWcYAyABKAsyFy5ub3JkLkZlZVRpZXJUeXBlQ29uZmlnGoMBChFVcGRhdGVGZWVUaWVyVHlwZRIKCgJpZBgBIAEoDRIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRInCgZjb25maWcYAyABKAsyFy5ub3JkLkZlZVRpZXJUeXBlQ29uZmlnEhIKCmFjbF9wdWJrZXkYBCABKAwafQodVXBkYXRlQWNjb3VudHNGZWVUaWVyVHlwZU1vZGUSDwoHdGllcl9pZBgBIAEoDRIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIQCghhY2NvdW50cxgDIAMoDRISCgphY2xfcHVia2V5GAQgASgMGl8KCVVwZGF0ZUFjbBISCgphY2xfcHVia2V5GAEgASgMEhUKDXRhcmdldF9wdWJrZXkYAiABKAwSEgoKcm9sZXNfbWFzaxgDIAEoDRITCgtyb2xlc192YWx1ZRgEIAEoDRo1CgxGcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aNwoOVW5mcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aTQoLQ2xlYXJNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0SFwoPY2xlYXJhbmNlX3ByaWNlGAMgASgEGmEKDkV4ZWN1dGVUcmlnZ2VyEhQKDGV4ZWN1dG9yX3NpZBgBIAEoBBISCgphY2NvdW50X2lkGAIgASgNEhEKCW1hcmtldF9pZBgDIAEoDRISCgp0cmlnZ2VyX2lkGAQgASgEGkEKEFRha2VBbGxQb3NpdGlvbnMSEgoKc2Vzc2lvbl9pZBgBIAEoBBIZChF0YXJnZXRfYWNjb3VudF9pZBgCIAEoDSI3ChRVc2VyU2lnbmF0dXJlRnJhbWluZxIHCgNIRVgQABIWChJTT0xBTkFfVFJBTlNBQ1RJT04QAUIGCgRraW5kItRECgdSZWNlaXB0EhEKCWFjdGlvbl9pZBgBIAEoBBIaCgNlcnIYICABKA4yCy5ub3JkLkVycm9ySAASQgoVY3JlYXRlX3Nlc3Npb25fcmVzdWx0GCEgASgLMiEubm9yZC5SZWNlaXB0LkNyZWF0ZVNlc3Npb25SZXN1bHRIABI4Cg50cmFkZV9vcl9wbGFjZRgiIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASPgoTY2FuY2VsX29yZGVyX3Jlc3VsdBgjIAEoCzIfLm5vcmQuUmVjZWlwdC5DYW5jZWxPcmRlclJlc3VsdEgAEjUKDmRlcG9zaXRfcmVzdWx0GCQgASgLMhsubm9yZC5SZWNlaXB0LkRlcG9zaXRSZXN1bHRIABI+ChNpbnNlcnRfdG9rZW5fcmVzdWx0GCUgASgLMh8ubm9yZC5SZWNlaXB0Lkluc2VydFRva2VuUmVzdWx0SAASQAoUaW5zZXJ0X21hcmtldF9yZXN1bHQYJiABKAsyIC5ub3JkLlJlY2VpcHQuSW5zZXJ0TWFya2V0UmVzdWx0SAASNwoPd2l0aGRyYXdfcmVzdWx0GCcgASgLMhwubm9yZC5SZWNlaXB0LldpdGhkcmF3UmVzdWx0SAASSQoZb3JhY2xlX3N5bWJvbF9mZWVkX3Jlc3VsdBgoIAEoCzIkLm5vcmQuUmVjZWlwdC5PcmFjbGVTeW1ib2xGZWVkUmVzdWx0SAASQAoUb3JhY2xlX3VwZGF0ZV9yZXN1bHQYKSABKAsyIC5ub3JkLlJlY2VpcHQuT3JhY2xlVXBkYXRlUmVzdWx0SAASSwoadXBkYXRlX2d1YXJkaWFuX3NldF9yZXN1bHQYKiABKAsyJS5ub3JkLlJlY2VpcHQuVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHRIABI3Cg9zZXNzaW9uX3Jldm9rZWQYLCABKAsyHC5ub3JkLlJlY2VpcHQuU2Vzc2lvblJldm9rZWRIABImCgZwYXVzZWQYLSABKAsyFC5ub3JkLlJlY2VpcHQuUGF1c2VkSAASKgoIdW5wYXVzZWQYLiABKAsyFi5ub3JkLlJlY2VpcHQuVW5wYXVzZWRIABIwCgt0cmFuc2ZlcnJlZBgvIAEoCzIZLm5vcmQuUmVjZWlwdC5UcmFuc2ZlcnJlZEgAEjMKDXRyaWdnZXJfYWRkZWQYQCABKAsyGi5ub3JkLlJlY2VpcHQuVHJpZ2dlckFkZGVkSAASNwoPdHJpZ2dlcl9yZW1vdmVkGEEgASgLMhwubm9yZC5SZWNlaXB0LlRyaWdnZXJSZW1vdmVkSAASLAoGYXRvbWljGEMgASgLMhoubm9yZC5SZWNlaXB0LkF0b21pY1Jlc3VsdEgAEkIKFW1hcmtldF9mcmVlemVfdXBkYXRlZBhEIAEoCzIhLm5vcmQuUmVjZWlwdC5NYXJrZXRGcmVlemVVcGRhdGVkSAASLwoLYWNsX3VwZGF0ZWQYSCABKAsyGC5ub3JkLlJlY2VpcHQuQWNsVXBkYXRlZEgAEkIKFWZlZV92YXVsdF90cmFuc2ZlcnJlZBhJIAEoCzIhLm5vcmQuUmVjZWlwdC5GZWVWYXVsdFRyYW5zZmVycmVkSAASOQoQdHJpZ2dlcl9leGVjdXRlZBhKIAEoCzIdLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRXhlY3V0ZWRIABJJChl0YWtlX2FsbF9wb3NpdGlvbnNfcmVzdWx0GEsgASgLMiQubm9yZC5SZWNlaXB0LlRha2VBbGxQb3NpdGlvbnNSZXN1bHRIABJAChRiYWNrc3RvcF9hY2NvdW50X3NldBhMIAEoCzIgLm5vcmQuUmVjZWlwdC5CYWNrc3RvcEFjY291bnRTZXRIABI1Cg50cmlnZ2VyX2VkaXRlZBhNIAEoCzIbLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRWRpdGVkSAASMQoNdmF1bHRfY3JlYXRlZBhOIAEoCzIYLm5vcmQuQ3JlYXRlVmF1bHRSZWNlaXB0SAASPgoUdmF1bHRfY29uZmlnX3VwZGF0ZWQYTyABKAsyHi5ub3JkLlVwZGF0ZVZhdWx0Q29uZmlnUmVjZWlwdEgAEj0KFXZhdWx0X21hbmFnZXJfdXBkYXRlZBhQIAEoCzIcLm5vcmQuU2V0VmF1bHRNYW5hZ2VyUmVjZWlwdEgAEjsKE3ZhdWx0X2Vwb2Noc19zeW5jZWQYUSABKAsyHC5ub3JkLlZhdWx0U3luY0Vwb2Noc1JlY2VpcHRIABI0Cg92YXVsdF9kZXBvc2l0ZWQYUiABKAsyGS5ub3JkLlZhdWx0RGVwb3NpdFJlY2VpcHRIABI1Cg92YXVsdF93aXRoZHJhd24YUyABKAsyGi5ub3JkLlZhdWx0V2l0aGRyYXdSZWNlaXB0SAASPgoTY2xlYXJfbWFya2V0X3Jlc3VsdBhUIAEoCzIfLm5vcmQuUmVjZWlwdC5DbGVhck1hcmtldFJlc3VsdEgAElQKH3B5dGhfbGF6ZXJfb3JhY2xlX3VwZGF0ZV9yZXN1bHQYVSABKAsyKS5ub3JkLlJlY2VpcHQuUHl0aExhemVyT3JhY2xlVXBkYXRlUmVzdWx0SAASXwolcHl0aF9sYXplcl90cnVzdGVkX3NpZ25lcnNfc2V0X3Jlc3VsdBhWIAEoCzIuLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJUcnVzdGVkU2lnbmVyc1NldFJlc3VsdEgAElcKIXB5dGhfbGF6ZXJfZmVlZF9zeW1ib2xfc2V0X3Jlc3VsdBhXIAEoCzIqLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0SAASVQofcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uX3Jlc3VsdBhYIAEoCzIqLm5vcmQuUmVjZWlwdC5SZWR1Y2VPcmRlckxpcXVpZGF0aW9uUmVzdWx0SAASPgoTbWFya2V0X21vZGVfdXBkYXRlZBhZIAEoCzIfLm5vcmQuUmVjZWlwdC5NYXJrZXRNb2RlVXBkYXRlZEgAEiwKDnJmcV9tYWtlcnNfc2V0GFogASgLMhIubm9yZC5SZnFNYWtlcnNTZXRIABI7ChFzZXNzaW9uX3JlZnJlc2hlZBhbIAEoCzIeLm5vcmQuUmVjZWlwdC5TZXNzaW9uUmVmcmVzaGVkSAASQAoUc2VsZl9zZXNzaW9uX3Jldm9rZWQYXCABKAsyIC5ub3JkLlJlY2VpcHQuU2VsZlNlc3Npb25SZXZva2VkSAASPQoTZmVlX3RpZXJfdHlwZV9hZGRlZBhdIAEoCzIeLm5vcmQuUmVjZWlwdC5GZWVUaWVyVHlwZUFkZGVkSAASQQoVZmVlX3RpZXJfdHlwZV91cGRhdGVkGF4gASgLMiAubm9yZC5SZWNlaXB0LkZlZVRpZXJUeXBlVXBkYXRlZEgAElsKI2FjY291bnRzX2ZlZV90aWVyX3R5cGVfbW9kZV91cGRhdGVkGF8gASgLMiwubm9yZC5SZWNlaXB0LkFjY291bnRzRmVlVGllclR5cGVNb2RlVXBkYXRlZEgAGngKBlBvc3RlZBIYCgRzaWRlGAEgASgOMgoubm9yZC5TaWRlEhEKCW1hcmtldF9pZBgCIAEoDRINCgVwcmljZRgDIAEoBBIMCgRzaXplGAQgASgEEhAKCG9yZGVyX2lkGAUgASgEEhIKCmFjY291bnRfaWQYBiABKA0acAoFVHJhZGUSEAoIb3JkZXJfaWQYAiABKAQSDQoFcHJpY2UYBCABKAQSDAoEc2l6ZRgFIAEoBBISCgphY2NvdW50X2lkGAYgASgNEhEKCW1ha2VyX2ZlZRgHIAEoBBIRCgl0YWtlcl9mZWUYCCABKAQabQoTQ3JlYXRlU2Vzc2lvblJlc3VsdBISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxIdChByZWZyZXNoX2RlYWRsaW5lGAMgASgDSACIAQFCEwoRX3JlZnJlc2hfZGVhZGxpbmUaTAoQQ2FuY2VsbGVkVHJpZ2dlchISCgphY2NvdW50X2lkGAEgASgNEiQKB3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQa2gEKC09yZGVyVXBkYXRlEjAKBnJlYXNvbhgBIAEoDjIgLm5vcmQuUmVjZWlwdC5PcmRlclVwZGF0ZS5SZWFzb24SEgoKYWNjb3VudF9pZBgCIAEoDRIQCghvcmRlcl9pZBgDIAEoBBIWCg5yZW1haW5pbmdfc2l6ZRgEIAEoBBIWCg5jYW5jZWxsZWRfc2l6ZRgFIAEoBBINCgVwcmljZRgGIAEoBCI0CgZSZWFzb24SDwoLUkVEVUNFX09OTFkQABIZChVTRUxGX1RSQURFX1BSRVZFTlRJT04QARr3AgoQUGxhY2VPcmRlclJlc3VsdBIpCgZwb3N0ZWQYASABKAsyFC5ub3JkLlJlY2VpcHQuUG9zdGVkSACIAQESIgoFZmlsbHMYAiADKAsyEy5ub3JkLlJlY2VpcHQuVHJhZGUSHAoPY2xpZW50X29yZGVyX2lkGAMgASgESAGIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAQgASgESAKIAQESOgoSY2FuY2VsbGVkX3RyaWdnZXJzGAUgAygLMh4ubm9yZC5SZWNlaXB0LkNhbmNlbGxlZFRyaWdnZXISMAoNb3JkZXJfdXBkYXRlcxgGIAMoCzIZLm5vcmQuUmVjZWlwdC5PcmRlclVwZGF0ZRIxCglwbGFjZW1lbnQYByABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VtZW50UmVjZWlwdEIJCgdfcG9zdGVkQhIKEF9jbGllbnRfb3JkZXJfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZBp6ChxSZWR1Y2VPcmRlckxpcXVpZGF0aW9uUmVzdWx0EjYKDnRyYWRlX29yX3BsYWNlGAEgASgLMh4ubm9yZC5SZWNlaXB0LlBsYWNlT3JkZXJSZXN1bHQSIgoGYWN0aW9uGAIgASgLMhIubm9yZC5UcmFkZU9yUGxhY2UarwEKEFBsYWNlbWVudFJlY2VpcHQSIQoEcm9sZRgBIAEoDjITLm5vcmQuUGxhY2VtZW50Um9sZRI4CgdhY2NvdW50GAIgASgLMiUubm9yZC5SZWNlaXB0LkFjY291bnRQbGFjZW1lbnRSZWNlaXB0SAASNAoFdmF1bHQYAyABKAsyIy5ub3JkLlJlY2VpcHQuVmF1bHRQbGFjZW1lbnRSZWNlaXB0SABCCAoGdGFyZ2V0GhkKF0FjY291bnRQbGFjZW1lbnRSZWNlaXB0GkwKFVZhdWx0UGxhY2VtZW50UmVjZWlwdBIQCgh2YXVsdF9pZBgBIAEoDRIhCgZoZWFsdGgYAiABKAsyES5ub3JkLlZhdWx0SGVhbHRoGv4BCg9UcmlnZ2VyRXhlY3V0ZWQSEwoLZXhlY3V0b3JfaWQYASABKA0SEgoKYWNjb3VudF9pZBgCIAEoDRIRCgltYXJrZXRfaWQYAyABKA0SHgoHdHJpZ2dlchgEIAEoCzINLm5vcmQuVHJpZ2dlchISCgp0cmlnZ2VyX2lkGAggASgEEjEKB3N1Y2Nlc3MYBSABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VPcmRlclJlc3VsdEgAEikKB2ZhaWx1cmUYBiABKA4yFi5ub3JkLlRyaWdnZXJFeGVjRXJyb3JIABITCgljYW5jZWxsZWQYByABKAhIAEIICgZzdGF0dXMaMgoOVGFrZUFsbEJhbGFuY2USEAoIdG9rZW5faWQYASABKA0SDgoGYW1vdW50GAIgASgEGncKD1Rha2VBbGxQb3NpdGlvbhIRCgltYXJrZXRfaWQYASABKA0SEQoJYmFzZV9zaXplGAIgASgDEhgKEHNldHRsZW1lbnRfcHJpY2UYAyABKAQSJAoQYmFua3J1cHRjeV9xdW90ZRgEIAEoCzIKLm5vcmQuVTEyOBpTChNUYWtlQWxsT3JkZXJVcGRhdGVzEhEKCW1hcmtldF9pZBgBIAEoDRIpCgZvcmRlcnMYAiADKAsyGS5ub3JkLlJlY2VpcHQuT3JkZXJVcGRhdGUa1gEKElRha2VBbGxUYWtlclJlc3VsdBIYChB0YWtlcl9hY2NvdW50X2lkGAEgASgNEjQKDnRha2VuX2JhbGFuY2VzGAIgAygLMhwubm9yZC5SZWNlaXB0LlRha2VBbGxCYWxhbmNlEjYKD3Rha2VuX3Bvc2l0aW9ucxgDIAMoCzIdLm5vcmQuUmVjZWlwdC5UYWtlQWxsUG9zaXRpb24SOAoNb3JkZXJfdXBkYXRlcxgEIAMoCzIhLm5vcmQuUmVjZWlwdC5UYWtlQWxsT3JkZXJVcGRhdGVzGkoKFlRha2VBbGxQb3NpdGlvbnNSZXN1bHQSMAoGdGFrZXJzGAYgAygLMiAubm9yZC5SZWNlaXB0LlRha2VBbGxUYWtlclJlc3VsdBpoCg5DYW5jZWxsZWRPcmRlchISCgphY2NvdW50X2lkGAEgASgNEhAKCG9yZGVyX2lkGAIgASgEEhwKD2NsaWVudF9vcmRlcl9pZBgDIAEoBEgAiAEBQhIKEF9jbGllbnRfb3JkZXJfaWQarQEKGUNsZWFyTWFya2V0Q2xvc2VkUG9zaXRpb24SEgoKYWNjb3VudF9pZBgBIAEoDRIRCgliYXNlX3NpemUYAiABKAMSGAoQc2V0dGxlbWVudF9wcmljZRgDIAEoBBIZCgVxdW90ZRgEIAEoCzIKLm5vcmQuVTEyOBIZChF0cmFkaW5nX3BubF9kZWx0YRgFIAEoAxIZChFmdW5kaW5nX3BubF9kZWx0YRgGIAEoAxq6AQoRQ2xlYXJNYXJrZXRSZXN1bHQSEQoJbWFya2V0X2lkGAEgASgNEhcKD2NsZWFyYW5jZV9wcmljZRgFIAEoBBI2ChBjYW5jZWxsZWRfb3JkZXJzGAMgAygLMhwubm9yZC5SZWNlaXB0LkNhbmNlbGxlZE9yZGVyEkEKEGNsb3NlZF9wb3NpdGlvbnMYBCADKAsyJy5ub3JkLlJlY2VpcHQuQ2xlYXJNYXJrZXRDbG9zZWRQb3NpdGlvbhqeAQoRQ2FuY2VsT3JkZXJSZXN1bHQSEAoIb3JkZXJfaWQYASABKAQSEgoKYWNjb3VudF9pZBgCIAEoDRIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAIgBARIxCglwbGFjZW1lbnQYBCABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VtZW50UmVjZWlwdEISChBfY2xpZW50X29yZGVyX2lkGnAKDURlcG9zaXRSZXN1bHQSEAoIdG9rZW5faWQYASABKA0SDgoGYW1vdW50GAIgASgEEhIKCmFjY291bnRfaWQYAyABKA0SFAoMdXNlcl9jcmVhdGVkGAQgASgIEhMKC3VzZXJfcHVia2V5GAUgASgMGkMKEUluc2VydFRva2VuUmVzdWx0EhIKCmNoYWluX2FkZHIYASABKAwSGgoFdG9rZW4YAiABKAsyCy5ub3JkLlRva2VuGjIKEkluc2VydE1hcmtldFJlc3VsdBIcCgZtYXJrZXQYASABKAsyDC5ub3JkLk1hcmtldBp5Cg5XaXRoZHJhd1Jlc3VsdBIQCgh0b2tlbl9pZBgBIAEoDRIOCgZhbW91bnQYAiABKAQSDwoHYmFsYW5jZRgDIAEoBBISCgphY2NvdW50X2lkGAQgASgNEgsKA2ZlZRgFIAEoBBITCgt1c2VyX3B1YmtleRgGIAEoDBpAChZPcmFjbGVTeW1ib2xGZWVkUmVzdWx0EhUKDW9yYWNsZV9zeW1ib2wYASABKAkSDwoHZmVlZF9pZBgCIAEoDBonChJPcmFjbGVVcGRhdGVSZXN1bHQSEQoJdGltZXN0YW1wGAEgASgDGjcKG1B5dGhMYXplck9yYWNsZVVwZGF0ZVJlc3VsdBIYChB0aW1lc3RhbXBfbWlsbGlzGAEgASgEGlkKIFB5dGhMYXplclRydXN0ZWRTaWduZXJzU2V0UmVzdWx0EjUKD3RydXN0ZWRfc2lnbmVycxgBIAMoCzIcLm5vcmQuUHl0aExhemVyVHJ1c3RlZFNpZ25lchqaAQocUHl0aExhemVyRmVlZFN5bWJvbFNldFJlc3VsdBJECgVmZWVkcxgBIAMoCzI1Lm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0LkZlZWRTeW1ib2waNAoKRmVlZFN5bWJvbBIPCgdmZWVkX2lkGAEgASgNEhUKDW9yYWNsZV9zeW1ib2wYAiABKAkaSAoXVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHQSGgoSZ3VhcmRpYW5fc2V0X2luZGV4GAEgASgNEhEKCWFkZHJlc3NlcxgCIAMoDBpDCgxQZXJwUG9zaXRpb24SEQoJbWFya2V0X2lkGAEgASgNEhEKCWJhc2Vfc2l6ZRgCIAEoAxINCgVwcmljZRgDIAEoBBoQCg5TZXNzaW9uUmV2b2tlZBoUChJTZWxmU2Vzc2lvblJldm9rZWQaNgoQU2Vzc2lvblJlZnJlc2hlZBISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxoICgZQYXVzZWQaCgoIVW5wYXVzZWQaTwoSQmFja3N0b3BBY2NvdW50U2V0EhIKCmFjY291bnRfaWQYASABKA0SJQoLbWFya2V0X21vZGUYAiABKA4yEC5ub3JkLk1hcmtldE1vZGUa/AEKCVJlY2lwaWVudBIyCgdzcGVjaWFsGAEgASgLMh8ubm9yZC5SZWNlaXB0LlJlY2lwaWVudC5TcGVjaWFsSAASLgoFb3duZWQYAiABKAsyHS5ub3JkLlJlY2VpcHQuUmVjaXBpZW50Lk93bmVkSAASMgoHdW5vd25lZBgDIAEoCzIfLm5vcmQuUmVjZWlwdC5SZWNpcGllbnQuVW5vd25lZEgAGgkKB1NwZWNpYWwaGwoFT3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDRodCgdVbm93bmVkEhIKCmFjY291bnRfaWQYASABKA1CEAoOcmVjaXBpZW50X3R5cGUaowEKC1RyYW5zZmVycmVkEhcKD2Zyb21fYWNjb3VudF9pZBgBIAEoDRIrCgp0b19hY2NvdW50GAIgASgLMhcubm9yZC5SZWNlaXB0LlJlY2lwaWVudBIQCgh0b2tlbl9pZBgDIAEoDRIOCgZhbW91bnQYBCABKAQSFwoPYWNjb3VudF9jcmVhdGVkGAUgASgIEhMKC3VzZXJfcHVia2V5GAYgASgMGkoKE0ZlZVZhdWx0VHJhbnNmZXJyZWQSEQoJcmVjaXBpZW50GAEgASgNEhAKCHRva2VuX2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBp6CgxUcmlnZ2VyQWRkZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQafAoOVHJpZ2dlclJlbW92ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQagAEKDVRyaWdnZXJFZGl0ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEicKEHByZXZpb3VzX3RyaWdnZXIYAyABKAsyDS5ub3JkLlRyaWdnZXISHgoHdHJpZ2dlchgEIAEoCzINLm5vcmQuVHJpZ2dlcho4ChNNYXJrZXRGcmVlemVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIOCgZmcm96ZW4YAiABKAgahQEKEU1hcmtldE1vZGVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIlCgttYXJrZXRfbW9kZRgCIAEoDjIQLm5vcmQuTWFya2V0TW9kZRI2ChBjYW5jZWxsZWRfb3JkZXJzGAMgAygLMhwubm9yZC5SZWNlaXB0LkNhbmNlbGxlZE9yZGVyGm4KEEZlZVRpZXJUeXBlQWRkZWQSCgoCaWQYASABKA0SJQoLbWFya2V0X3R5cGUYAiABKA4yEC5ub3JkLk1hcmtldFR5cGUSJwoGY29uZmlnGAMgASgLMhcubm9yZC5GZWVUaWVyVHlwZUNvbmZpZxpwChJGZWVUaWVyVHlwZVVwZGF0ZWQSCgoCaWQYASABKA0SJQoLbWFya2V0X3R5cGUYAiABKA4yEC5ub3JkLk1hcmtldFR5cGUSJwoGY29uZmlnGAMgASgLMhcubm9yZC5GZWVUaWVyVHlwZUNvbmZpZxpqCh5BY2NvdW50c0ZlZVRpZXJUeXBlTW9kZVVwZGF0ZWQSDwoHdGllcl9pZBgBIAEoDRIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIQCghhY2NvdW50cxgDIAMoDRpgCgpBY2xVcGRhdGVkEhIKCmFjbF9wdWJrZXkYASABKAwSEgoKcm9sZXNfbWFzaxgCIAEoBBIVCg10YXJnZXRfcHVia2V5GAMgASgMEhMKC3JvbGVzX3ZhbHVlGAQgASgEGuwDChlBdG9taWNTdWJhY3Rpb25SZXN1bHRLaW5kEjwKEnBsYWNlX29yZGVyX3Jlc3VsdBgBIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASNwoMY2FuY2VsX29yZGVyGAIgASgLMh8ubm9yZC5SZWNlaXB0LkNhbmNlbE9yZGVyUmVzdWx0SAASMwoNdHJpZ2dlcl9hZGRlZBgDIAEoCzIaLm5vcmQuUmVjZWlwdC5UcmlnZ2VyQWRkZWRIABI3Cg90cmlnZ2VyX3JlbW92ZWQYBCABKAsyHC5ub3JkLlJlY2VpcHQuVHJpZ2dlclJlbW92ZWRIABI1Cg50cmlnZ2VyX2VkaXRlZBgFIAEoCzIbLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRWRpdGVkSAASTgoYcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uGAYgASgLMioubm9yZC5SZWNlaXB0LlJlZHVjZU9yZGVyTGlxdWlkYXRpb25SZXN1bHRIABIqCgpyZnFfcmVzdWx0GAcgASgLMhQubm9yZC5QbGFjZVJGUVJlc3VsdEgAEi4KD3JmcV9maWxsX3Jlc3VsdBgIIAEoCzITLm5vcmQuRmlsbFJGUVJlc3VsdEgAQgcKBWlubmVyGkgKDEF0b21pY1Jlc3VsdBI4CgdyZXN1bHRzGAEgAygLMicubm9yZC5SZWNlaXB0LkF0b21pY1N1YmFjdGlvblJlc3VsdEtpbmRCBgoEa2luZCoYCgRTaWRlEgcKA0FTSxAAEgcKA0JJRBABKh8KCk1hcmtldE1vZGUSCAoEQ0xPQhAAEgcKA1JGURABKmMKDE1hcmtldFJlZ2ltZRIYChRNQVJLRVRfUkVHSU1FX05PUk1BTBAAEhsKF01BUktFVF9SRUdJTUVfUE9TVF9PTkxZEAESHAoYTUFSS0VUX1JFR0lNRV9UUkFERV9PTkxZEAIqLQoLVHJpZ2dlcktpbmQSDQoJU1RPUF9MT1NTEAASDwoLVEFLRV9QUk9GSVQQASokCgZJbnRlbnQSDAoIREVDUkVBU0UQABIMCghJTkNSRUFTRRABKk8KCEZpbGxNb2RlEgkKBUxJTUlUEAASDQoJUE9TVF9PTkxZEAESFwoTSU1NRURJQVRFX09SX0NBTkNFTBACEhAKDEZJTExfT1JfS0lMTBADKq4BCg1QbGFjZW1lbnRSb2xlEiAKHFBMQUNFTUVOVF9ST0xFX0FDQ09VTlRfT1dORVIQABIgChxQTEFDRU1FTlRfUk9MRV9WQVVMVF9NQU5BR0VSEAESHgoaUExBQ0VNRU5UX1JPTEVfU1VQRVJfQURNSU4QAhIaChZQTEFDRU1FTlRfUk9MRV9UUklHR0VSEAMSHQoZUExBQ0VNRU5UX1JPTEVfTElRVUlEQVRPUhAEKjEKE1NlbGZUcmFkZVByZXZlbnRpb24SCAoETk9ORRAAEhAKDEVYUElSRV9NQUtFUhABKiYKCk1hcmtldFR5cGUSCAoEU1BPVBAAEg4KClBFUlBFVFVBTFMQASp9ChBUcmlnZ2VyRXhlY0Vycm9yEg8KC05PX1BPU0lUSU9OEAASEwoPUExBTk5JTkdfRkFJTEVEEAESDgoKQkFOS1JVUFRDWRACEhUKEVJJU0tfQ0hFQ0tfRkFJTEVEEAMSHAoYUkVEVUNFX09OTFlfQ0hFQ0tfRkFJTEVEEAQqMAoOU3BlY2lhbEFjY291bnQSDQoJRkVFX1ZBVUxUEAASDwoLQ0xBSU1fVkFVTFQQASpdCgtWYXVsdFN0YXR1cxIXChNWQVVMVF9TVEFUVVNfQUNUSVZFEAASHAoYVkFVTFRfU1RBVFVTX0RFUklTS19PTkxZEAESFwoTVkFVTFRfU1RBVFVTX0ZST1pFThACKu4pCgVFcnJvchINCglEVVBMSUNBVEUQABIVChFJTlZBTElEX1NJR05BVFVSRRADEhQKEE1BUktFVF9OT1RfRk9VTkQQBBITCg9UT0tFTl9OT1RfRk9VTkQQBRISCg5VU0VSX05PVF9GT1VORBAGEhUKEVNFU1NJT05fTk9UX0ZPVU5EEAcSEwoPT1JERVJfTk9UX0ZPVU5EEAgSEwoPT1JERVJfU0laRV9aRVJPEAkSDgoKQVJJVEhNRVRJQxALEhcKE0FSSVRITUVUSUNfT1ZFUkZMT1cQDBIYChRBUklUSE1FVElDX1VOREVSRkxPVxANEh8KG0FSSVRITUVUSUNfRElWSVNJT05fQllfWkVSTxAOEhoKFktFWV9BTFJFQURZX1JFR0lTVEVSRUQQDxIcChhVUERBVEVfVElNRVNUQU1QX0lOX1BBU1QQERIYChRUT09fTUFOWV9PUEVOX09SREVSUxASEh0KGVdJVEhEUkFXX0FNT1VOVF9UT09fU01BTEwQFRIpCiVTT1VSQ0VfQU5EX1RBUkdFVF9TSE9VTERfTk9UX0JFX0VRVUFMEBgSEgoOREVDT0RFX0ZBSUxVUkUQIBIgChxERUNPREVfRkFJTFVSRV9MRU5HVEhfUFJFRklYECESFgoSREVDT0RFX0ZBSUxVUkVfUkFXECISGQoVREVDT0RFX0ZBSUxVUkVfRE9NQUlOECMSHwobVVBEQVRFX1BVQkxJU0hfVElNRV9JTl9QQVNUECQSCwoHU0VTU0lPThAwEh8KG1NFU1NJT05fUkVGUkVTSF9OT1RfRU5BQkxFRBAxEioKJlNFU1NJT05fUkVGUkVTSF9ERUFETElORV9CRUZPUkVfRVhQSVJZEDISFwoTUFlUSF9GRUVEX05PVF9BRERFRBBdEhUKEVBZVEhfRkVFRF9NSVNTSU5HEF4SGwoXUFlUSF9GRUVEX0FMUkVBRFlfQURERUQQXxIjCh9QWVRIX0dVQVJESUFOX1NFVF9VTklOSVRJQUxJWkVEEGASHQoZUFlUSF9HVUFSRElBTl9TRVRfSU5WQUxJRBBhEiMKH1BZVEhfRkVFRF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQYhIgChxQWVRIX0ZFRURfUFJJQ0VfT1VUX09GX1JBTkdFEGMSIwofUFlUSF9GRUVEX1ZBUklBTkNFX09VVF9PRl9SQU5HRRBkEjUKMVBZVEhfR1VBUkRJQU5fU0VUX0FORF9QWVRIX1NJR05BVFVSRV9ET19OT1RfTUFUQ0gQZRIcChhJTlZBTElEX1RPS0VOX1BBUkFNRVRFUlMQZhIcChhJTkRFWF9QUklDRV9PVVRfT0ZfUkFOR0UQZxIfChtJTkRFWF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQaBIZChVJTlZBTElEX1NUQVRFX1ZFUlNJT04QaRITCg9JTlZBTElEX01BUkdJTlMQbBIhCh1NQVJLRVRfREVDSU1BTFNfRVhDRUVEX0xJTUlUUxBtEhMKD1RPT19NQU5ZX1RPS0VOUxBuEggKBFRJRVIQcxIZChVUSUVSX0ZFRV9PVVRfT0ZfUkFOR0UQdBIYChRUSUVSX0lEX09VVF9PRl9SQU5HRRB1EhIKDlRJRVJfTk9UX0ZPVU5EEHYSFAoQRlVORElOR19PVkVSRkxPVxB7EjcKM0NBTl9SRURVQ0VfUE9TSVRJT05fT05MWV9JRl9BTExfT1JERVJTX0FSRV9DQU5DRUxFRBB8EhcKE1VORVhQRUNURURfVE9LRU5fSUQQfxIWChFSRVBFQVRFRF9PUkRFUl9JRBCAARIeChlDTElFTlRfT1JERVJfSURfVE9PX0xBUkdFEIEBEhQKD1RPS0VOX05PVF9SRUFEWRCCARIdChhUT0tFTl9BTFJFQURZX1JFR0lTVEVSRUQQgwESIQocSU1NRURJQVRFX09SREVSX0dPVF9OT19GSUxMUxCFARIZChRGQUlMRURfVE9fRklMTF9MSU1JVBCGARIwCitQT1NUX09OTFlfTVVTVF9OT1RfRklMTF9BTllfT1BQT1NJVEVfT1JERVJTEIcBEgwKB0lOVkFMSUQQiAESEAoLTUFJTlRFTkFOQ0UQiQESGgoVTUlOSU1VTV9TSVpFX0RFQ0lNQUxTEIoBEjIKLVBBUkFNRVRFUlNfV0lMTF9DUkVBVEVfTk9OX09QRVJBVElPTkFMX01BUktFVBCLARIiCh1PTkxZX0lNTUVESUFURV9PUkRFUlNfQUxMT1dFRBCMARIbChZUT09fTUFOWV9VU0VSX0FDQ09VTlRTEI0BEhYKEUFDQ09VTlRfTk9UX0ZPVU5EEI4BEhoKFUFDQ09VTlRfSU5WQUxJRF9PV05FUhCPARIbChZTVUJBQ1RJT05fT1VUX09GX1JBTkdFEJABEhEKDERVU1RfQUNDT1VOVBCRARIMCgdCQUxBTkNFEKABEh0KGEJBTEFOQ0VfREVQT1NJVF9PVkVSRkxPVxChARIcChdCQUxBTkNFX0NIQU5HRV9PVkVSRkxPVxCiARIiCh1CQUxBTkNFX0NIQU5HRV9MSU1JVF9FWENFRURFRBCjARIZChRCQUxBTkNFX0lOU1VGRklDSUVOVBCkARIeChlVTkFVVEhFTlRJQ0FURURfTDFfQUNUSU9OEKUBEh0KGEVOQ09ERURfQUNUSU9OX1RPT19MQVJHRRCmARIMCgdUUklHR0VSEKgBEhoKFVRSSUdHRVJfSU5WQUxJRF9QUklDRRCpARIWChFUUklHR0VSX05PVF9GT1VORBCqARIrCiZUUklHR0VSX09OTFlfREVDUkVBU0VfT1JERVJTX1NVUFBPUlRFRBCrARIoCiNUUklHR0VSX01BWF9TSVpFX1BMQUNFTUVOVF9FWENFRURFRBCsARIYChNUUklHR0VSX05PVF9DSEFOR0VEEK0BEg4KCVRJTUVTVEFNUBCwARIfChpUSU1FU1RBTVBfT1VUX09GX1RIUkVTSE9MRBCxARIUCg9USU1FU1RBTVBfU1RBTEUQsgESHAoYRVhQSVJZX1RJTUVTVEFNUF9JTl9QQVNUEBASJQogQkFOS1JVUFRDWV9JTlNVRkZJQ0lFTlRfQ09WRVJBR0UQuQESGQoUQkFOS1JVUFRDWV9OT1RfRk9VTkQQugESGwoWQkFOS1JVUFRDWV9OT1RfQUxMT1dFRBC7ARIVChBNQVJLRVRfTk9UX1JFQURZEMABEhIKDU1BUktFVF9GUk9aRU4QwQESEQoMTUFSS0VUX0VNUFRZEMIBEjAKK01BUktFVF9NT0RFX0RPRVNfTk9UX1NVUFBPUlRfVEhJU19PUEVSQVRJT04QwwESDQoIUE9TSVRJT04QyAESFwoSUE9TSVRJT05fTk9UX0ZPVU5EEMkBEhkKFFBPU0lUSU9OX1NUQVRFX09SREVSEMoBEh8KGlBPU0lUSU9OX1NUQVRFX09SREVSX1BSSUNFEMsBEh4KGVBPU0lUSU9OX1NUQVRFX09SREVSX1NJWkUQzAESHgoZUE9TSVRJT05fU1RBVEVfT1JERVJfU0lERRDNARIYChNQT1NJVElPTl9TSVpFX0xJTUlUEM4BEhgKE1BPU0lUSU9OX1NUQVRFX1BFUlAQzwESJAofUE9TSVRJT05fU1RBVEVfT1JERVJfREVMRUdBVElPThDQARIKCgVQUklDRRDRARIbChZTSUdOQVRVUkVfVkVSSUZJQ0FUSU9OENkBEjAKK1NJR05BVFVSRV9WRVJJRklDQVRJT05fTUFMRk9STUVEX1BVQkxJQ19LRVkQ2gESKgolU0lHTkFUVVJFX1ZFUklGSUNBVElPTl9JTlZBTElEX0xFTkdUSBDbARIJCgRSSVNLEOABEjQKL1JJU0tfREVMRUdBVElPTl9NRl9UT19CRV9MRVNTX1RIQU5fT1JfRVFVQUxfTU1GEOEBEiQKH1JJU0tfT01GX0xFU1NfVEhBTl9PUl9FUVVBTF9JTUYQ4gESJAofUklTS19PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDjARI1CjBSSVNLX1VOSEVBTFRIWV9NRl9BTkRfUE9OX0FGVEVSX0JFVFRFUl9PRl9CRUZPUkUQ5AESKgolUklTS19UUkFERV9PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDlARIUCg9SSVNLX05PVF9FTk9VR0gQ5gESFAoPT1JERVJfRVhFQ1VUSU9OEPABEhoKFU9SREVSX0VYRUNVVElPTl9FTVBUWRDxARIhChxPUkRFUl9FWEVDVVRJT05fRklMTF9PUl9LSUxMEPIBEiMKHk9SREVSX0VYRUNVVElPTl9NSVNTSU5HX0xJTUlUUxDzARIiCh1PUkRFUl9FWEVDVVRJT05fTUlTU0lOR19QUklDRRD0ARIfChpPUkRFUl9FWEVDVVRJT05fU0laRV9MSU1JVBD1ARIgChtPUkRFUl9FWEVDVVRJT05fTElNSVRfUFJJQ0UQ9gESHgoZT1JERVJfUkVEVUNFX0lTX1BPU1RfT05MWRD3ARIfChpPUkRFUl9FWEVDVVRJT05fU0VMTF9QUklDRRD4ARIlCiBPUkRFUl9TSVpFX0VYQ0VFRFNfUE9TSVRJT05fU0laRRD5ARIMCgdBVE9NSUNTEIACEigKI0FUT01JQ1NfVFJBREVTX0NBTk5PVF9GT0xMT1dfUExBQ0VTEIECEjAKK0FUT01JQ1NfQ0FOQ0VMU19DQU5OT1RfRk9MTE9XX1RSQURFU19QTEFDRVMQggISHQoYQVRPTUlDU19EVVBMSUNBVEVfQ0FOQ0VMEIMCEhgKE1JGUV9PUkRFUl9USU1FT1VURUQQ+gESJgohQUNUSU9OX1BPU0lUSU9OX1NIT1VMRF9CRV9DT1ZFUkVEEJECEhkKFEFDVElPTl9JTlZBTElEX05PTkNFEJICEikKJEFDVElPTl9QUk9QT1NFRF9QUklDRV9NVVNUX0JFX0hJR0hFUhCTAhIcChdBRE1JTl9ST0xFX0lOU1VGRklDSUVOVBCUAhIUCg9BRE1JTl9OT1RfRk9VTkQQlQISKQokVU5JUVVFX1NVUEVSX0FETUlOX0NBTk5PVF9CRV9SRU1PVkVEEJYCEh8KGlNVUEVSX0FETUlOX0FMUkVBRFlfRVhJU1RTEJcCEhUKEFRSSUdHRVJfQ09ORkxJQ1QQmAISGgoVVFJJR0dFUl9FRElUX0NPTkZMSUNUEJkCEhwKF1RSSUdHRVJfUkVNT1ZFX0NPTkZMSUNUEJoCEg0KCFRSQU5TRkVSEKACEi4KKVRSQU5TRkVSX1RPX1VOT1dORURfQUNDT1VOVF9JU19QUk9ISUJJVEVEEKECEiwKJ1RSQU5TRkVSX1RPX09XTkVEX0FDQ09VTlRfV0FTX1JFUVVFU1RFRBCiAhIqCiVUUkFOU0ZFUl9UT19DTEFJTV9WQVVMVF9JU19QUk9ISUJJVEVEEKMCEgoKBVZBVUxUEKgCEhQKD1ZBVUxUX05PVF9GT1VORBCpAhIdChhWQVVMVF9BQ1RJT05fTk9UX0FMTE9XRUQQqgISGQoUVkFVTFRfU1RBVFVTX0lOVkFMSUQQqwISJQogVkFVTFRfUkVEVUNFX09OTFlfT1JERVJfUkVRVUlSRUQQrAISJgohVkFVTFRfQUNUSU9OX1dPVUxEX0RFR1JBREVfU1RBVFVTEK0CEhkKFFZBVUxUX1VTRVJfTk9UX0ZPVU5EEK4CEh0KGFZBVUxUX1VTRVJfSEFTX05PX1NIQVJFUxCvAhIcChdWQVVMVF9QRVJNSVNTSU9OX0RFTklFRBC2AhISCg1WQVVMVF9ERVBPU0lUELACEjEKLFZBVUxUX0RFUE9TSVRfQk9PVFNUUkFQX1JFUVVJUkVTX0VNUFRZX1ZBVUxUELECEh8KGlZBVUxUX0RFUE9TSVRfQ0FQX0VYQ0VFREVEELICEikKJFZBVUxUX0RFUE9TSVRfUkVRVUlSRVNfQUNUSVZFX1NUQVRVUxCzAhIvCipWQVVMVF9ERVBPU0lUX0NBUF9CRUxPV19DVVJSRU5UX1JBV19FUVVJVFkQtAISHAoXVkFVTFRfREVQT1NJVF9UT09fU01BTEwQtQISEwoOVkFVTFRfV0lUSERSQVcQuAISHgoZVkFVTFRfSU5TVUZGSUNJRU5UX1NIQVJFUxC5AhIuCilWQVVMVF9XSVRIRFJBV19SRVFVSVJFU19OT05fRlJPWkVOX1NUQVRVUxC6AhIiCh1WQVVMVF9OT19DTEFJTUFCTEVfV0lUSERSQVdBTBC7AhIlCiBWQVVMVF9XSVRIRFJBV19RVU9URV9VTkFWQUlMQUJMRRC8AhItCihWQVVMVF9EVVNUX0VYSVRfUkVRVUlSRVNfRlVMTF9TSEFSRV9FWElUEL0CEjUKMFZBVUxUX0xBU1RfU0hBUkVfV0lUSERSQVdfUkVRVUlSRVNfRU1QVFlfQUNDT1VOVBC+AhIoCiNWQVVMVF9XSVRIRFJBV19SRVFVSVJFU19MSVZFX1NIQVJFUxC/AhISCg1WQVVMVF9DT05UUk9MEMACEh0KGFZBVUxUX0VQT0NIX05PVF9FTElHSUJMRRDBAhIyCi1WQVVMVF9GUkVFWkVfVEhSRVNIT0xEX01VU1RfRVhDRUVEX1BST1RFQ1RJT04QwwISHQoYVkFVTFRfQ09ORklHX1BBVENIX0VNUFRZEMQCEigKI1ZBVUxUX05PX1NUQVRVU19UUkFOU0lUSU9OX1JFUVVJUkVEEMUCEi0KKFZBVUxUX0ZST1pFTl9TVEFUVVNfUkVRVUlSRVNfU1VQRVJfQURNSU4QxgISKgolVkFVTFRfTkVXX0NPTkZJR19XT1VMRF9ERUdSQURFX1NUQVRVUxDHAhIOCglSRlFfRVJST1IQyAISEAoLUkZRX1RJTUVPVVQQyQISCwoGQ09ORklHEMoCEhQKD05PVF9JTVBMRU1FTlRFRBD0AxIXChJBQ1RJT05fTk9UX0FMTE9XRUQQ9QMSGAoTTk9UX1NVUFBPUlRFRF9JTlBVVBD2AxIMCgdEUk9QUEVEEOcHYgZwcm90bzM");
|
|
28745
28745
|
var U128Schema = /* @__PURE__ */ messageDesc(file_nord, 0);
|
|
28746
28746
|
var RfqTradeSchema = /* @__PURE__ */ messageDesc(file_nord, 1);
|
|
28747
28747
|
var RfqPlaceOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 2);
|
|
@@ -28761,166 +28761,166 @@ var RfqTradeReceipt_FailureReason;
|
|
|
28761
28761
|
})(RfqTradeReceipt_FailureReason ||= {});
|
|
28762
28762
|
var RfqTradeReceipt_FailureReasonSchema = /* @__PURE__ */ enumDesc(file_nord, 7, 0);
|
|
28763
28763
|
var PlaceRFQResultSchema = /* @__PURE__ */ messageDesc(file_nord, 8);
|
|
28764
|
-
var
|
|
28765
|
-
var
|
|
28766
|
-
var
|
|
28767
|
-
var
|
|
28768
|
-
var
|
|
28769
|
-
var
|
|
28770
|
-
var
|
|
28771
|
-
var
|
|
28772
|
-
var
|
|
28773
|
-
var
|
|
28774
|
-
var
|
|
28775
|
-
var
|
|
28776
|
-
var
|
|
28777
|
-
var
|
|
28778
|
-
var
|
|
28779
|
-
var
|
|
28780
|
-
var
|
|
28781
|
-
var
|
|
28782
|
-
var
|
|
28783
|
-
var
|
|
28784
|
-
var
|
|
28785
|
-
var
|
|
28786
|
-
var
|
|
28787
|
-
var
|
|
28788
|
-
var
|
|
28789
|
-
var
|
|
28790
|
-
var
|
|
28791
|
-
var
|
|
28792
|
-
var
|
|
28793
|
-
var
|
|
28794
|
-
var
|
|
28795
|
-
var
|
|
28796
|
-
var
|
|
28797
|
-
var
|
|
28798
|
-
var
|
|
28799
|
-
var
|
|
28800
|
-
var
|
|
28801
|
-
var
|
|
28802
|
-
var
|
|
28803
|
-
var
|
|
28804
|
-
var
|
|
28805
|
-
var
|
|
28806
|
-
var
|
|
28807
|
-
var
|
|
28808
|
-
var
|
|
28764
|
+
var RFQExecutionSchema = /* @__PURE__ */ messageDesc(file_nord, 9);
|
|
28765
|
+
var FillRFQResultSchema = /* @__PURE__ */ messageDesc(file_nord, 10);
|
|
28766
|
+
var RfqMakersSetSchema = /* @__PURE__ */ messageDesc(file_nord, 11);
|
|
28767
|
+
var RFQQtyPlaceSchema = /* @__PURE__ */ messageDesc(file_nord, 12);
|
|
28768
|
+
var FeeTierConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 13);
|
|
28769
|
+
var FeeTierTypeConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 14);
|
|
28770
|
+
var MarketSchema = /* @__PURE__ */ messageDesc(file_nord, 15);
|
|
28771
|
+
var TokenSchema = /* @__PURE__ */ messageDesc(file_nord, 16);
|
|
28772
|
+
var VaultHealthSchema = /* @__PURE__ */ messageDesc(file_nord, 17);
|
|
28773
|
+
var VaultConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 18);
|
|
28774
|
+
var VaultConfigPatchSchema = /* @__PURE__ */ messageDesc(file_nord, 19);
|
|
28775
|
+
var CreateVaultSchema = /* @__PURE__ */ messageDesc(file_nord, 20);
|
|
28776
|
+
var UpdateVaultConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 21);
|
|
28777
|
+
var SetVaultManagerSchema = /* @__PURE__ */ messageDesc(file_nord, 22);
|
|
28778
|
+
var VaultSyncEpochsSchema = /* @__PURE__ */ messageDesc(file_nord, 23);
|
|
28779
|
+
var StagedAdminActionSchema = /* @__PURE__ */ messageDesc(file_nord, 24);
|
|
28780
|
+
var AdminActionKindSchema = /* @__PURE__ */ messageDesc(file_nord, 25);
|
|
28781
|
+
var VaultDepositSchema = /* @__PURE__ */ messageDesc(file_nord, 26);
|
|
28782
|
+
var VaultWithdrawSchema = /* @__PURE__ */ messageDesc(file_nord, 27);
|
|
28783
|
+
var VaultWithdraw_RequestSchema = /* @__PURE__ */ messageDesc(file_nord, 27, 0);
|
|
28784
|
+
var VaultWithdraw_ClaimSchema = /* @__PURE__ */ messageDesc(file_nord, 27, 1);
|
|
28785
|
+
var CreateVaultReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 28);
|
|
28786
|
+
var UpdateVaultConfigReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 29);
|
|
28787
|
+
var SetVaultManagerReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 30);
|
|
28788
|
+
var VaultSyncEpochsReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 31);
|
|
28789
|
+
var VaultDepositReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 32);
|
|
28790
|
+
var WithdrawalBucketsSchema = /* @__PURE__ */ messageDesc(file_nord, 33);
|
|
28791
|
+
var VaultPpsRefSchema = /* @__PURE__ */ messageDesc(file_nord, 34);
|
|
28792
|
+
var VaultEpochsSchema = /* @__PURE__ */ messageDesc(file_nord, 35);
|
|
28793
|
+
var VaultUserStateSchema = /* @__PURE__ */ messageDesc(file_nord, 36);
|
|
28794
|
+
var VaultWithdrawReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 37);
|
|
28795
|
+
var VaultWithdrawReceipt_RequestedSchema = /* @__PURE__ */ messageDesc(file_nord, 37, 0);
|
|
28796
|
+
var VaultWithdrawReceipt_ClaimedSchema = /* @__PURE__ */ messageDesc(file_nord, 37, 1);
|
|
28797
|
+
var OrderLimitSchema = /* @__PURE__ */ messageDesc(file_nord, 38);
|
|
28798
|
+
var PlaceTypeSchema = /* @__PURE__ */ messageDesc(file_nord, 39);
|
|
28799
|
+
var TradeOrPlaceSchema = /* @__PURE__ */ messageDesc(file_nord, 40);
|
|
28800
|
+
var AtomicCancelOrderByIdSchema = /* @__PURE__ */ messageDesc(file_nord, 41);
|
|
28801
|
+
var AtomicCancelOrderByClientIdSchema = /* @__PURE__ */ messageDesc(file_nord, 42);
|
|
28802
|
+
var AtomicAddTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 43);
|
|
28803
|
+
var AtomicEditTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 44);
|
|
28804
|
+
var AtomicRemoveTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 45);
|
|
28805
|
+
var ReduceOrderLiquidationSchema = /* @__PURE__ */ messageDesc(file_nord, 46);
|
|
28806
|
+
var AtomicSubactionKindV1Schema = /* @__PURE__ */ messageDesc(file_nord, 47);
|
|
28807
|
+
var AtomicV1Schema = /* @__PURE__ */ messageDesc(file_nord, 48);
|
|
28808
|
+
var AtomicSubactionSchema = /* @__PURE__ */ messageDesc(file_nord, 49);
|
|
28809
28809
|
var AtomicSchema = /* @__PURE__ */ messageDesc(file_nord, 50);
|
|
28810
|
-
var
|
|
28811
|
-
var
|
|
28812
|
-
var
|
|
28813
|
-
var
|
|
28814
|
-
var
|
|
28815
|
-
var
|
|
28816
|
-
var
|
|
28817
|
-
var
|
|
28818
|
-
var
|
|
28819
|
-
var
|
|
28820
|
-
var
|
|
28821
|
-
var
|
|
28822
|
-
var
|
|
28823
|
-
var
|
|
28824
|
-
var
|
|
28825
|
-
var
|
|
28826
|
-
var
|
|
28827
|
-
var
|
|
28828
|
-
var
|
|
28829
|
-
var
|
|
28830
|
-
var
|
|
28831
|
-
var
|
|
28832
|
-
var
|
|
28833
|
-
var
|
|
28834
|
-
var
|
|
28835
|
-
var
|
|
28836
|
-
var
|
|
28837
|
-
var
|
|
28838
|
-
var
|
|
28839
|
-
var
|
|
28840
|
-
var
|
|
28841
|
-
var
|
|
28842
|
-
var
|
|
28843
|
-
var
|
|
28844
|
-
var
|
|
28845
|
-
var
|
|
28846
|
-
var
|
|
28847
|
-
var
|
|
28848
|
-
var
|
|
28849
|
-
var
|
|
28850
|
-
var
|
|
28851
|
-
var
|
|
28852
|
-
var
|
|
28853
|
-
var
|
|
28854
|
-
var
|
|
28855
|
-
var
|
|
28856
|
-
var Action_TakeAllPositionsSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37);
|
|
28810
|
+
var PythLazerTrustedSignerSchema = /* @__PURE__ */ messageDesc(file_nord, 51);
|
|
28811
|
+
var TriggerRecordSchema = /* @__PURE__ */ messageDesc(file_nord, 52);
|
|
28812
|
+
var TriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 53);
|
|
28813
|
+
var ActionSchema = /* @__PURE__ */ messageDesc(file_nord, 54);
|
|
28814
|
+
var Action_CreateSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 0);
|
|
28815
|
+
var Action_CreateTokenSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 1);
|
|
28816
|
+
var Action_SetMarketModeCLOBTradingOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 54, 2);
|
|
28817
|
+
var Action_SetMarketModeCLOBPostOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 54, 3);
|
|
28818
|
+
var Action_SetMarketModeCLOBSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 4);
|
|
28819
|
+
var Action_CreateMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 5);
|
|
28820
|
+
var Action_PlaceOrderSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 6);
|
|
28821
|
+
var Action_CancelOrderByIdSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 7);
|
|
28822
|
+
var Action_CancelOrderByClientIdSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 8);
|
|
28823
|
+
var Action_DepositSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 9);
|
|
28824
|
+
var Action_WithdrawSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 10);
|
|
28825
|
+
var Action_PythSetWormholeGuardiansSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 11);
|
|
28826
|
+
var Action_PythSetSymbolFeedSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 12);
|
|
28827
|
+
var Action_PythPriceFeedUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 13);
|
|
28828
|
+
var Action_PythLazerPriceFeedUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 14);
|
|
28829
|
+
var Action_PythLazerSetTrustedSignersSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 15);
|
|
28830
|
+
var Action_PythLazerSetFeedSymbolSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 16);
|
|
28831
|
+
var Action_PythLazerSetFeedSymbol_FeedSymbolInputSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 16, 0);
|
|
28832
|
+
var Action_RevokeSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 17);
|
|
28833
|
+
var Action_RefreshSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 18);
|
|
28834
|
+
var Action_SelfRevokeSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 19);
|
|
28835
|
+
var Action_PauseSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 20);
|
|
28836
|
+
var Action_UnpauseSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 21);
|
|
28837
|
+
var Action_SetBackstopAccountSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 22);
|
|
28838
|
+
var Action_RecipientSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23);
|
|
28839
|
+
var Action_Recipient_SpecialSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23, 0);
|
|
28840
|
+
var Action_Recipient_OwnedSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23, 1);
|
|
28841
|
+
var Action_Recipient_UnownedSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23, 2);
|
|
28842
|
+
var Action_TransferSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 24);
|
|
28843
|
+
var Action_FeeVaultTransferSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 25);
|
|
28844
|
+
var Action_AddTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 26);
|
|
28845
|
+
var Action_EditTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 27);
|
|
28846
|
+
var Action_RemoveTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 28);
|
|
28847
|
+
var Action_AddFeeTierTypeSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 29);
|
|
28848
|
+
var Action_UpdateFeeTierTypeSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 30);
|
|
28849
|
+
var Action_UpdateAccountsFeeTierTypeModeSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 31);
|
|
28850
|
+
var Action_UpdateAclSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 32);
|
|
28851
|
+
var Action_FreezeMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 33);
|
|
28852
|
+
var Action_UnfreezeMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 34);
|
|
28853
|
+
var Action_ClearMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 35);
|
|
28854
|
+
var Action_ExecuteTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 36);
|
|
28855
|
+
var Action_TakeAllPositionsSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 37);
|
|
28857
28856
|
var Action_UserSignatureFraming;
|
|
28858
28857
|
((Action_UserSignatureFraming2) => {
|
|
28859
28858
|
Action_UserSignatureFraming2[Action_UserSignatureFraming2["HEX"] = 0] = "HEX";
|
|
28860
28859
|
Action_UserSignatureFraming2[Action_UserSignatureFraming2["SOLANA_TRANSACTION"] = 1] = "SOLANA_TRANSACTION";
|
|
28861
28860
|
})(Action_UserSignatureFraming ||= {});
|
|
28862
|
-
var Action_UserSignatureFramingSchema = /* @__PURE__ */ enumDesc(file_nord,
|
|
28863
|
-
var ReceiptSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
28864
|
-
var Receipt_PostedSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
28865
|
-
var Receipt_TradeSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
28866
|
-
var Receipt_CreateSessionResultSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
28867
|
-
var Receipt_CancelledTriggerSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
28868
|
-
var Receipt_OrderUpdateSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
28861
|
+
var Action_UserSignatureFramingSchema = /* @__PURE__ */ enumDesc(file_nord, 54, 0);
|
|
28862
|
+
var ReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55);
|
|
28863
|
+
var Receipt_PostedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 0);
|
|
28864
|
+
var Receipt_TradeSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 1);
|
|
28865
|
+
var Receipt_CreateSessionResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 2);
|
|
28866
|
+
var Receipt_CancelledTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 3);
|
|
28867
|
+
var Receipt_OrderUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 4);
|
|
28869
28868
|
var Receipt_OrderUpdate_Reason;
|
|
28870
28869
|
((Receipt_OrderUpdate_Reason2) => {
|
|
28871
28870
|
Receipt_OrderUpdate_Reason2[Receipt_OrderUpdate_Reason2["REDUCE_ONLY"] = 0] = "REDUCE_ONLY";
|
|
28872
28871
|
Receipt_OrderUpdate_Reason2[Receipt_OrderUpdate_Reason2["SELF_TRADE_PREVENTION"] = 1] = "SELF_TRADE_PREVENTION";
|
|
28873
28872
|
})(Receipt_OrderUpdate_Reason ||= {});
|
|
28874
|
-
var Receipt_OrderUpdate_ReasonSchema = /* @__PURE__ */ enumDesc(file_nord,
|
|
28875
|
-
var Receipt_PlaceOrderResultSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
28876
|
-
var Receipt_ReduceOrderLiquidationResultSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
28877
|
-
var Receipt_PlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
28878
|
-
var Receipt_AccountPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
28879
|
-
var Receipt_VaultPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
28880
|
-
var Receipt_TriggerExecutedSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
28881
|
-
var Receipt_TakeAllBalanceSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
28882
|
-
var Receipt_TakeAllPositionSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
28883
|
-
var Receipt_TakeAllOrderUpdatesSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
28884
|
-
var
|
|
28885
|
-
var
|
|
28886
|
-
var
|
|
28887
|
-
var
|
|
28888
|
-
var
|
|
28889
|
-
var
|
|
28890
|
-
var
|
|
28891
|
-
var
|
|
28892
|
-
var
|
|
28893
|
-
var
|
|
28894
|
-
var
|
|
28895
|
-
var
|
|
28896
|
-
var
|
|
28897
|
-
var
|
|
28898
|
-
var
|
|
28899
|
-
var
|
|
28900
|
-
var
|
|
28901
|
-
var
|
|
28902
|
-
var
|
|
28903
|
-
var
|
|
28904
|
-
var
|
|
28905
|
-
var
|
|
28906
|
-
var
|
|
28907
|
-
var
|
|
28908
|
-
var
|
|
28909
|
-
var
|
|
28910
|
-
var
|
|
28911
|
-
var
|
|
28912
|
-
var
|
|
28913
|
-
var
|
|
28914
|
-
var
|
|
28915
|
-
var
|
|
28916
|
-
var
|
|
28917
|
-
var
|
|
28918
|
-
var
|
|
28919
|
-
var
|
|
28920
|
-
var
|
|
28921
|
-
var
|
|
28922
|
-
var
|
|
28923
|
-
var
|
|
28873
|
+
var Receipt_OrderUpdate_ReasonSchema = /* @__PURE__ */ enumDesc(file_nord, 55, 4, 0);
|
|
28874
|
+
var Receipt_PlaceOrderResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 5);
|
|
28875
|
+
var Receipt_ReduceOrderLiquidationResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 6);
|
|
28876
|
+
var Receipt_PlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 7);
|
|
28877
|
+
var Receipt_AccountPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 8);
|
|
28878
|
+
var Receipt_VaultPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 9);
|
|
28879
|
+
var Receipt_TriggerExecutedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 10);
|
|
28880
|
+
var Receipt_TakeAllBalanceSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 11);
|
|
28881
|
+
var Receipt_TakeAllPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 12);
|
|
28882
|
+
var Receipt_TakeAllOrderUpdatesSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 13);
|
|
28883
|
+
var Receipt_TakeAllTakerResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 14);
|
|
28884
|
+
var Receipt_TakeAllPositionsResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 15);
|
|
28885
|
+
var Receipt_CancelledOrderSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 16);
|
|
28886
|
+
var Receipt_ClearMarketClosedPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 17);
|
|
28887
|
+
var Receipt_ClearMarketResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 18);
|
|
28888
|
+
var Receipt_CancelOrderResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 19);
|
|
28889
|
+
var Receipt_DepositResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 20);
|
|
28890
|
+
var Receipt_InsertTokenResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 21);
|
|
28891
|
+
var Receipt_InsertMarketResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 22);
|
|
28892
|
+
var Receipt_WithdrawResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 23);
|
|
28893
|
+
var Receipt_OracleSymbolFeedResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 24);
|
|
28894
|
+
var Receipt_OracleUpdateResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 25);
|
|
28895
|
+
var Receipt_PythLazerOracleUpdateResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 26);
|
|
28896
|
+
var Receipt_PythLazerTrustedSignersSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 27);
|
|
28897
|
+
var Receipt_PythLazerFeedSymbolSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 28);
|
|
28898
|
+
var Receipt_PythLazerFeedSymbolSetResult_FeedSymbolSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 28, 0);
|
|
28899
|
+
var Receipt_UpdateGuardianSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 29);
|
|
28900
|
+
var Receipt_PerpPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 30);
|
|
28901
|
+
var Receipt_SessionRevokedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 31);
|
|
28902
|
+
var Receipt_SelfSessionRevokedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 32);
|
|
28903
|
+
var Receipt_SessionRefreshedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 33);
|
|
28904
|
+
var Receipt_PausedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 34);
|
|
28905
|
+
var Receipt_UnpausedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 35);
|
|
28906
|
+
var Receipt_BackstopAccountSetSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 36);
|
|
28907
|
+
var Receipt_RecipientSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37);
|
|
28908
|
+
var Receipt_Recipient_SpecialSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37, 0);
|
|
28909
|
+
var Receipt_Recipient_OwnedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37, 1);
|
|
28910
|
+
var Receipt_Recipient_UnownedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37, 2);
|
|
28911
|
+
var Receipt_TransferredSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 38);
|
|
28912
|
+
var Receipt_FeeVaultTransferredSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 39);
|
|
28913
|
+
var Receipt_TriggerAddedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 40);
|
|
28914
|
+
var Receipt_TriggerRemovedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 41);
|
|
28915
|
+
var Receipt_TriggerEditedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 42);
|
|
28916
|
+
var Receipt_MarketFreezeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 43);
|
|
28917
|
+
var Receipt_MarketModeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 44);
|
|
28918
|
+
var Receipt_FeeTierTypeAddedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 45);
|
|
28919
|
+
var Receipt_FeeTierTypeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 46);
|
|
28920
|
+
var Receipt_AccountsFeeTierTypeModeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 47);
|
|
28921
|
+
var Receipt_AclUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 48);
|
|
28922
|
+
var Receipt_AtomicSubactionResultKindSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 49);
|
|
28923
|
+
var Receipt_AtomicResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 50);
|
|
28924
28924
|
var Side;
|
|
28925
28925
|
((Side2) => {
|
|
28926
28926
|
Side2[Side2["ASK"] = 0] = "ASK";
|
|
@@ -28993,6 +28993,7 @@ var TriggerExecErrorSchema = /* @__PURE__ */ enumDesc(file_nord, 9);
|
|
|
28993
28993
|
var SpecialAccount;
|
|
28994
28994
|
((SpecialAccount2) => {
|
|
28995
28995
|
SpecialAccount2[SpecialAccount2["FEE_VAULT"] = 0] = "FEE_VAULT";
|
|
28996
|
+
SpecialAccount2[SpecialAccount2["CLAIM_VAULT"] = 1] = "CLAIM_VAULT";
|
|
28996
28997
|
})(SpecialAccount ||= {});
|
|
28997
28998
|
var SpecialAccountSchema = /* @__PURE__ */ enumDesc(file_nord, 10);
|
|
28998
28999
|
var VaultStatus;
|
|
@@ -29141,6 +29142,7 @@ var Error2;
|
|
|
29141
29142
|
Error3[Error3["TRANSFER"] = 288] = "TRANSFER";
|
|
29142
29143
|
Error3[Error3["TRANSFER_TO_UNOWNED_ACCOUNT_IS_PROHIBITED"] = 289] = "TRANSFER_TO_UNOWNED_ACCOUNT_IS_PROHIBITED";
|
|
29143
29144
|
Error3[Error3["TRANSFER_TO_OWNED_ACCOUNT_WAS_REQUESTED"] = 290] = "TRANSFER_TO_OWNED_ACCOUNT_WAS_REQUESTED";
|
|
29145
|
+
Error3[Error3["TRANSFER_TO_CLAIM_VAULT_IS_PROHIBITED"] = 291] = "TRANSFER_TO_CLAIM_VAULT_IS_PROHIBITED";
|
|
29144
29146
|
Error3[Error3["VAULT"] = 296] = "VAULT";
|
|
29145
29147
|
Error3[Error3["VAULT_NOT_FOUND"] = 297] = "VAULT_NOT_FOUND";
|
|
29146
29148
|
Error3[Error3["VAULT_ACTION_NOT_ALLOWED"] = 298] = "VAULT_ACTION_NOT_ALLOWED";
|
|
@@ -29166,7 +29168,6 @@ var Error2;
|
|
|
29166
29168
|
Error3[Error3["VAULT_WITHDRAW_REQUIRES_LIVE_SHARES"] = 319] = "VAULT_WITHDRAW_REQUIRES_LIVE_SHARES";
|
|
29167
29169
|
Error3[Error3["VAULT_CONTROL"] = 320] = "VAULT_CONTROL";
|
|
29168
29170
|
Error3[Error3["VAULT_EPOCH_NOT_ELIGIBLE"] = 321] = "VAULT_EPOCH_NOT_ELIGIBLE";
|
|
29169
|
-
Error3[Error3["VAULT_PREVIOUS_EPOCH_WITHDRAWALS_NOT_PAYABLE"] = 322] = "VAULT_PREVIOUS_EPOCH_WITHDRAWALS_NOT_PAYABLE";
|
|
29170
29171
|
Error3[Error3["VAULT_FREEZE_THRESHOLD_MUST_EXCEED_PROTECTION"] = 323] = "VAULT_FREEZE_THRESHOLD_MUST_EXCEED_PROTECTION";
|
|
29171
29172
|
Error3[Error3["VAULT_CONFIG_PATCH_EMPTY"] = 324] = "VAULT_CONFIG_PATCH_EMPTY";
|
|
29172
29173
|
Error3[Error3["VAULT_NO_STATUS_TRANSITION_REQUIRED"] = 325] = "VAULT_NO_STATUS_TRANSITION_REQUIRED";
|
|
@@ -29174,6 +29175,7 @@ var Error2;
|
|
|
29174
29175
|
Error3[Error3["VAULT_NEW_CONFIG_WOULD_DEGRADE_STATUS"] = 327] = "VAULT_NEW_CONFIG_WOULD_DEGRADE_STATUS";
|
|
29175
29176
|
Error3[Error3["RFQ_ERROR"] = 328] = "RFQ_ERROR";
|
|
29176
29177
|
Error3[Error3["RFQ_TIMEOUT"] = 329] = "RFQ_TIMEOUT";
|
|
29178
|
+
Error3[Error3["CONFIG"] = 330] = "CONFIG";
|
|
29177
29179
|
Error3[Error3["NOT_IMPLEMENTED"] = 500] = "NOT_IMPLEMENTED";
|
|
29178
29180
|
Error3[Error3["ACTION_NOT_ALLOWED"] = 501] = "ACTION_NOT_ALLOWED";
|
|
29179
29181
|
Error3[Error3["NOT_SUPPORTED_INPUT"] = 502] = "NOT_SUPPORTED_INPUT";
|
|
@@ -81727,18 +81729,34 @@ class Nord {
|
|
|
81727
81729
|
markets = [];
|
|
81728
81730
|
tokens = [];
|
|
81729
81731
|
symbolToMarketId = new Map;
|
|
81730
|
-
|
|
81732
|
+
protonConfig;
|
|
81733
|
+
protonClientPromise;
|
|
81731
81734
|
httpClient;
|
|
81732
81735
|
constructor({
|
|
81733
81736
|
solanaConnection,
|
|
81734
81737
|
webServerUrl,
|
|
81735
|
-
|
|
81738
|
+
protonConfig
|
|
81736
81739
|
}) {
|
|
81737
81740
|
this.webServerUrl = webServerUrl;
|
|
81738
81741
|
this.solanaConnection = solanaConnection;
|
|
81739
|
-
this.
|
|
81742
|
+
this.protonConfig = protonConfig;
|
|
81740
81743
|
this.httpClient = createClient({ baseUrl: webServerUrl });
|
|
81741
81744
|
}
|
|
81745
|
+
getProtonClient() {
|
|
81746
|
+
if (this.protonClientPromise === undefined) {
|
|
81747
|
+
const initialization = ProtonClient.init({
|
|
81748
|
+
...this.protonConfig,
|
|
81749
|
+
solConn: this.solanaConnection
|
|
81750
|
+
});
|
|
81751
|
+
this.protonClientPromise = initialization;
|
|
81752
|
+
initialization.catch(() => {
|
|
81753
|
+
if (this.protonClientPromise === initialization) {
|
|
81754
|
+
this.protonClientPromise = undefined;
|
|
81755
|
+
}
|
|
81756
|
+
});
|
|
81757
|
+
}
|
|
81758
|
+
return this.protonClientPromise;
|
|
81759
|
+
}
|
|
81742
81760
|
createWebSocketClient({
|
|
81743
81761
|
trades,
|
|
81744
81762
|
deltas,
|
|
@@ -81865,15 +81883,13 @@ class Nord {
|
|
|
81865
81883
|
webServerUrl,
|
|
81866
81884
|
protonUrl
|
|
81867
81885
|
}) {
|
|
81868
|
-
const protonClient = await ProtonClient.init({
|
|
81869
|
-
protonUrl: protonUrl ?? webServerUrl,
|
|
81870
|
-
app: new PublicKey(app),
|
|
81871
|
-
solConn: solanaConnection
|
|
81872
|
-
});
|
|
81873
81886
|
const nord = new Nord({
|
|
81874
|
-
protonClient,
|
|
81875
81887
|
solanaConnection,
|
|
81876
|
-
webServerUrl
|
|
81888
|
+
webServerUrl,
|
|
81889
|
+
protonConfig: {
|
|
81890
|
+
protonUrl: protonUrl ?? webServerUrl,
|
|
81891
|
+
app: new PublicKey(app)
|
|
81892
|
+
}
|
|
81877
81893
|
});
|
|
81878
81894
|
await nord.init();
|
|
81879
81895
|
return nord;
|
|
@@ -82199,6 +82215,14 @@ class Nord {
|
|
|
82199
82215
|
}
|
|
82200
82216
|
});
|
|
82201
82217
|
}
|
|
82218
|
+
async getAccountPositionSummary(accountId, { marketId } = {}) {
|
|
82219
|
+
return await this.GET("/account/{account_id}/position/summary", {
|
|
82220
|
+
params: {
|
|
82221
|
+
path: { account_id: accountId },
|
|
82222
|
+
query: { marketId: marketId ?? undefined }
|
|
82223
|
+
}
|
|
82224
|
+
});
|
|
82225
|
+
}
|
|
82202
82226
|
async getMarketsLive() {
|
|
82203
82227
|
return await this.GET("/markets/live", {});
|
|
82204
82228
|
}
|
|
@@ -82996,7 +83020,11 @@ function normalizeAtomicReceipt(resp, actionCount) {
|
|
|
82996
83020
|
}
|
|
82997
83021
|
return;
|
|
82998
83022
|
}
|
|
82999
|
-
function atomicSubactionToProto(currentTimestamp, a2
|
|
83023
|
+
function atomicSubactionToProto(currentTimestamp, a2) {
|
|
83024
|
+
const target = {
|
|
83025
|
+
targetAccountId: a2.targetAccountId,
|
|
83026
|
+
useKey: a2.useKey
|
|
83027
|
+
};
|
|
83000
83028
|
if (a2.kind === "place") {
|
|
83001
83029
|
const price = toScaledU64(a2.price ?? 0, a2.priceDecimals);
|
|
83002
83030
|
const size = toScaledU64(a2.size ?? 0, a2.sizeDecimals);
|
|
@@ -83018,16 +83046,16 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
83018
83046
|
referrer: a2.referrer === undefined ? undefined : toProtoU128(a2.referrer)
|
|
83019
83047
|
});
|
|
83020
83048
|
return create(AtomicSubactionSchema, {
|
|
83021
|
-
|
|
83049
|
+
...target,
|
|
83022
83050
|
inner: { case: "tradeOrPlace", value: tradeOrPlace }
|
|
83023
83051
|
});
|
|
83024
83052
|
}
|
|
83025
83053
|
if (a2.kind === "reduceOrderLiquidation") {
|
|
83026
83054
|
return create(AtomicSubactionSchema, {
|
|
83055
|
+
...target,
|
|
83027
83056
|
inner: {
|
|
83028
83057
|
case: "reduceOrderLiquidation",
|
|
83029
83058
|
value: create(ReduceOrderLiquidationSchema, {
|
|
83030
|
-
targetAccountId: a2.targetAccountId,
|
|
83031
83059
|
marketId: a2.marketId
|
|
83032
83060
|
})
|
|
83033
83061
|
}
|
|
@@ -83036,9 +83064,13 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
83036
83064
|
if (a2.kind === "rfq") {
|
|
83037
83065
|
const price = toScaledU64(a2.price, a2.priceDecimals);
|
|
83038
83066
|
const size = toScaledU64(a2.size, a2.sizeDecimals);
|
|
83067
|
+
const minimalFill = a2.minimalFill !== undefined ? toScaledU64(a2.minimalFill, a2.sizeDecimals) : undefined;
|
|
83068
|
+
if (minimalFill !== undefined) {
|
|
83069
|
+
assert4(minimalFill > 0n, "minimalFill must be greater than 0");
|
|
83070
|
+
}
|
|
83039
83071
|
const timestampMillis = currentTimestamp * 1000n;
|
|
83040
83072
|
return create(AtomicSubactionSchema, {
|
|
83041
|
-
|
|
83073
|
+
...target,
|
|
83042
83074
|
inner: {
|
|
83043
83075
|
case: "rfqPlaceOnly",
|
|
83044
83076
|
value: create(RfqPlaceOnlySchema, {
|
|
@@ -83047,17 +83079,21 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
83047
83079
|
clientOrderId: a2.clientOrderId === undefined ? undefined : BigInt(a2.clientOrderId),
|
|
83048
83080
|
price,
|
|
83049
83081
|
side: a2.side === "bid" /* Bid */ ? 1 /* BID */ : 0 /* ASK */,
|
|
83050
|
-
|
|
83051
|
-
|
|
83082
|
+
timestampMillis,
|
|
83083
|
+
size,
|
|
83084
|
+
minimalFill,
|
|
83085
|
+
isReduceOnly: a2.isReduceOnly
|
|
83052
83086
|
})
|
|
83053
83087
|
}
|
|
83054
83088
|
});
|
|
83055
83089
|
}
|
|
83056
83090
|
if (a2.kind === "rfqFill") {
|
|
83057
83091
|
const price = toScaledU64(a2.price, a2.priceDecimals);
|
|
83092
|
+
const minimumSize = a2.minimumSize !== undefined ? toScaledU64(a2.minimumSize, a2.sizeDecimals) : undefined;
|
|
83093
|
+
const maximumSize = a2.maximumSize !== undefined ? toScaledU64(a2.maximumSize, a2.sizeDecimals) : undefined;
|
|
83058
83094
|
const timestampMillis = currentTimestamp * 1000n;
|
|
83059
83095
|
return create(AtomicSubactionSchema, {
|
|
83060
|
-
|
|
83096
|
+
...target,
|
|
83061
83097
|
inner: {
|
|
83062
83098
|
case: "rfqTrade",
|
|
83063
83099
|
value: create(RfqTradeSchema, {
|
|
@@ -83065,14 +83101,17 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
83065
83101
|
marketId: a2.marketId,
|
|
83066
83102
|
orderId: BigInt(a2.orderId),
|
|
83067
83103
|
price,
|
|
83068
|
-
timestampMillis
|
|
83104
|
+
timestampMillis,
|
|
83105
|
+
minimumSize,
|
|
83106
|
+
maximumSize,
|
|
83107
|
+
isReduceOnly: a2.isReduceOnly
|
|
83069
83108
|
})
|
|
83070
83109
|
}
|
|
83071
83110
|
});
|
|
83072
83111
|
}
|
|
83073
83112
|
if (a2.kind === "cancelByClientId") {
|
|
83074
83113
|
return create(AtomicSubactionSchema, {
|
|
83075
|
-
|
|
83114
|
+
...target,
|
|
83076
83115
|
inner: {
|
|
83077
83116
|
case: "cancelOrderByClientId",
|
|
83078
83117
|
value: create(AtomicCancelOrderByClientIdSchema, {
|
|
@@ -83086,6 +83125,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
83086
83125
|
assert4(triggerPrice > 0n, "Trigger price must be positive");
|
|
83087
83126
|
const limits = buildLimits(a2.priceDecimals, a2.sizeDecimals, a2.limitPrice, a2.limitBaseSize, a2.limitQuoteSize);
|
|
83088
83127
|
return create(AtomicSubactionSchema, {
|
|
83128
|
+
...target,
|
|
83089
83129
|
inner: {
|
|
83090
83130
|
case: "addTrigger",
|
|
83091
83131
|
value: create(AtomicAddTriggerSchema, {
|
|
@@ -83107,6 +83147,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
83107
83147
|
assert4(triggerPrice > 0n, "Trigger price must be positive");
|
|
83108
83148
|
const limits = buildLimits(a2.priceDecimals, a2.sizeDecimals, a2.limitPrice, a2.limitBaseSize, a2.limitQuoteSize);
|
|
83109
83149
|
return create(AtomicSubactionSchema, {
|
|
83150
|
+
...target,
|
|
83110
83151
|
inner: {
|
|
83111
83152
|
case: "editTrigger",
|
|
83112
83153
|
value: create(AtomicEditTriggerSchema, {
|
|
@@ -83124,6 +83165,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
83124
83165
|
}
|
|
83125
83166
|
if (a2.kind === "removeTrigger") {
|
|
83126
83167
|
return create(AtomicSubactionSchema, {
|
|
83168
|
+
...target,
|
|
83127
83169
|
inner: {
|
|
83128
83170
|
case: "removeTrigger",
|
|
83129
83171
|
value: create(AtomicRemoveTriggerSchema, {
|
|
@@ -83134,7 +83176,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
83134
83176
|
});
|
|
83135
83177
|
}
|
|
83136
83178
|
return create(AtomicSubactionSchema, {
|
|
83137
|
-
|
|
83179
|
+
...target,
|
|
83138
83180
|
inner: {
|
|
83139
83181
|
case: "cancelOrder",
|
|
83140
83182
|
value: create(AtomicCancelOrderByIdSchema, {
|
|
@@ -83143,53 +83185,10 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
83143
83185
|
}
|
|
83144
83186
|
});
|
|
83145
83187
|
}
|
|
83146
|
-
function
|
|
83147
|
-
return "placement" in a2 ? a2.placement : undefined;
|
|
83148
|
-
}
|
|
83149
|
-
async function atomic(client2, signFn, currentTimestamp, nonce, params) {
|
|
83188
|
+
function createAtomicAction(currentTimestamp, nonce, params) {
|
|
83150
83189
|
assert4(params.actions.length > 0 && params.actions.length <= 10, "Atomic action must contain between 1 and 10 sub-actions");
|
|
83151
|
-
const
|
|
83152
|
-
|
|
83153
|
-
const action = createAction(currentTimestamp, nonce, useAtomicV2 ? {
|
|
83154
|
-
case: "atomicV2",
|
|
83155
|
-
value: create(AtomicV2Schema, {
|
|
83156
|
-
sessionId: BigInt(params.sessionId),
|
|
83157
|
-
accountId: params.accountId,
|
|
83158
|
-
actions: params.actions.map((a2, index) => {
|
|
83159
|
-
const subaction = subactions[index];
|
|
83160
|
-
assert4(subaction !== undefined, "Atomic subaction missing");
|
|
83161
|
-
let placement;
|
|
83162
|
-
const placementRequest = atomicPlacement(a2);
|
|
83163
|
-
if (placementRequest === undefined) {
|
|
83164
|
-
if ("delegatorAccountId" in a2 && a2.delegatorAccountId !== undefined) {
|
|
83165
|
-
placement = create(AtomicPlacementRequestSchema, {
|
|
83166
|
-
inner: {
|
|
83167
|
-
case: "liquidationAccountId",
|
|
83168
|
-
value: a2.delegatorAccountId
|
|
83169
|
-
}
|
|
83170
|
-
});
|
|
83171
|
-
}
|
|
83172
|
-
} else if (placementRequest !== "accountOwner") {
|
|
83173
|
-
if ("vault" in placementRequest) {
|
|
83174
|
-
placement = create(AtomicPlacementRequestSchema, {
|
|
83175
|
-
inner: { case: "vaultId", value: placementRequest.vault }
|
|
83176
|
-
});
|
|
83177
|
-
} else {
|
|
83178
|
-
placement = create(AtomicPlacementRequestSchema, {
|
|
83179
|
-
inner: {
|
|
83180
|
-
case: "liquidationAccountId",
|
|
83181
|
-
value: placementRequest.liquidation
|
|
83182
|
-
}
|
|
83183
|
-
});
|
|
83184
|
-
}
|
|
83185
|
-
}
|
|
83186
|
-
return create(AtomicSubactionV2Schema, {
|
|
83187
|
-
placement,
|
|
83188
|
-
subaction
|
|
83189
|
-
});
|
|
83190
|
-
})
|
|
83191
|
-
})
|
|
83192
|
-
} : {
|
|
83190
|
+
const subactions = params.actions.map((a2) => atomicSubactionToProto(currentTimestamp, a2));
|
|
83191
|
+
return createAction(currentTimestamp, nonce, {
|
|
83193
83192
|
case: "atomic",
|
|
83194
83193
|
value: create(AtomicSchema, {
|
|
83195
83194
|
sessionId: BigInt(params.sessionId),
|
|
@@ -83197,6 +83196,9 @@ async function atomic(client2, signFn, currentTimestamp, nonce, params) {
|
|
|
83197
83196
|
actions: subactions
|
|
83198
83197
|
})
|
|
83199
83198
|
});
|
|
83199
|
+
}
|
|
83200
|
+
async function atomic(client2, signFn, currentTimestamp, nonce, params) {
|
|
83201
|
+
const action = createAtomicAction(currentTimestamp, nonce, params);
|
|
83200
83202
|
const resp = await sendAction(client2, (m2) => sessionSign(signFn, m2), action);
|
|
83201
83203
|
const results = normalizeAtomicReceipt(resp, params.actions.length);
|
|
83202
83204
|
if (results !== undefined) {
|
|
@@ -83209,17 +83211,25 @@ async function atomic(client2, signFn, currentTimestamp, nonce, params) {
|
|
|
83209
83211
|
}
|
|
83210
83212
|
|
|
83211
83213
|
// src/client/NordUser.ts
|
|
83214
|
+
function withAtomicTarget(target, action) {
|
|
83215
|
+
const targetFields = target.targetAccountId === undefined ? {} : target.useKey === true ? { targetAccountId: target.targetAccountId, useKey: true } : { targetAccountId: target.targetAccountId };
|
|
83216
|
+
return { ...targetFields, ...action };
|
|
83217
|
+
}
|
|
83212
83218
|
function decodeRfqFillResult(actionId, result) {
|
|
83213
83219
|
if (result?.case !== "rfqFillResult") {
|
|
83214
83220
|
throw new NordError("RFQ fill did not return an RFQ fill result");
|
|
83215
83221
|
}
|
|
83222
|
+
const execution = result.value.execution;
|
|
83216
83223
|
return {
|
|
83217
83224
|
actionId,
|
|
83218
83225
|
orderId: result.value.orderId,
|
|
83219
83226
|
makerAccountId: result.value.makerAccountId,
|
|
83220
83227
|
takerAccountId: result.value.takerAccountId,
|
|
83221
|
-
|
|
83222
|
-
|
|
83228
|
+
execution: execution === undefined ? null : {
|
|
83229
|
+
filledSize: execution.filledSize,
|
|
83230
|
+
tradeId: execution.tradeId,
|
|
83231
|
+
executionPrice: execution.executionPrice
|
|
83232
|
+
}
|
|
83223
83233
|
};
|
|
83224
83234
|
}
|
|
83225
83235
|
|
|
@@ -83344,7 +83354,8 @@ class NordUser {
|
|
|
83344
83354
|
const mint = new PublicKey(tokenInfo.mint);
|
|
83345
83355
|
const fromAccount = await this.getAssociatedTokenAccount(mint);
|
|
83346
83356
|
const payer = this.publicKey;
|
|
83347
|
-
const
|
|
83357
|
+
const protonClient = await this.nord.getProtonClient();
|
|
83358
|
+
const { ix, extraSigner } = await protonClient.buildDepositIx({
|
|
83348
83359
|
payer,
|
|
83349
83360
|
recipient: recipient ?? payer,
|
|
83350
83361
|
quantAmount: floatToScaledBigIntLossy(amount, tokenInfo.precision),
|
|
@@ -83744,7 +83755,9 @@ class NordUser {
|
|
|
83744
83755
|
price,
|
|
83745
83756
|
timeout,
|
|
83746
83757
|
accountId,
|
|
83747
|
-
clientOrderId
|
|
83758
|
+
clientOrderId,
|
|
83759
|
+
minimalFill,
|
|
83760
|
+
isReduceOnly
|
|
83748
83761
|
}) {
|
|
83749
83762
|
try {
|
|
83750
83763
|
const result = await this.atomic([
|
|
@@ -83755,7 +83768,9 @@ class NordUser {
|
|
|
83755
83768
|
size,
|
|
83756
83769
|
price,
|
|
83757
83770
|
timeout,
|
|
83758
|
-
clientOrderId
|
|
83771
|
+
clientOrderId,
|
|
83772
|
+
minimalFill,
|
|
83773
|
+
isReduceOnly
|
|
83759
83774
|
}
|
|
83760
83775
|
], accountId);
|
|
83761
83776
|
const rfqResult = result.results[0]?.inner;
|
|
@@ -83775,7 +83790,10 @@ class NordUser {
|
|
|
83775
83790
|
orderId,
|
|
83776
83791
|
price,
|
|
83777
83792
|
timeout,
|
|
83778
|
-
accountId
|
|
83793
|
+
accountId,
|
|
83794
|
+
minimumSize,
|
|
83795
|
+
maximumSize,
|
|
83796
|
+
isReduceOnly
|
|
83779
83797
|
}) {
|
|
83780
83798
|
try {
|
|
83781
83799
|
const result = await this.atomic([
|
|
@@ -83784,7 +83802,10 @@ class NordUser {
|
|
|
83784
83802
|
marketId,
|
|
83785
83803
|
orderId,
|
|
83786
83804
|
price,
|
|
83787
|
-
timeout
|
|
83805
|
+
timeout,
|
|
83806
|
+
minimumSize,
|
|
83807
|
+
maximumSize,
|
|
83808
|
+
isReduceOnly
|
|
83788
83809
|
}
|
|
83789
83810
|
], accountId);
|
|
83790
83811
|
return decodeRfqFillResult(result.actionId, result.results[0]?.inner);
|
|
@@ -83828,24 +83849,26 @@ class NordUser {
|
|
|
83828
83849
|
});
|
|
83829
83850
|
return {
|
|
83830
83851
|
actionId: receipt.actionId,
|
|
83831
|
-
|
|
83832
|
-
|
|
83833
|
-
|
|
83834
|
-
|
|
83835
|
-
|
|
83836
|
-
|
|
83837
|
-
|
|
83838
|
-
|
|
83839
|
-
|
|
83840
|
-
|
|
83841
|
-
|
|
83842
|
-
|
|
83843
|
-
|
|
83844
|
-
|
|
83845
|
-
|
|
83846
|
-
|
|
83847
|
-
|
|
83848
|
-
|
|
83852
|
+
takers: receipt.takers.map((taker) => ({
|
|
83853
|
+
takerAccountId: taker.takerAccountId,
|
|
83854
|
+
takenBalances: taker.takenBalances.map((balance) => {
|
|
83855
|
+
const token = findToken(this.nord.tokens, balance.tokenId);
|
|
83856
|
+
return {
|
|
83857
|
+
tokenId: balance.tokenId,
|
|
83858
|
+
amount: fromScaledBigInt(balance.amount, token.decimals)
|
|
83859
|
+
};
|
|
83860
|
+
}),
|
|
83861
|
+
takenPositions: taker.takenPositions.map((position) => {
|
|
83862
|
+
const market = findMarket(this.nord.markets, position.marketId);
|
|
83863
|
+
const baseSize = fromScaledBigInt(position.baseSize, market.sizeDecimals);
|
|
83864
|
+
return {
|
|
83865
|
+
marketId: position.marketId,
|
|
83866
|
+
baseSize,
|
|
83867
|
+
settlementPrice: fromScaledBigInt(position.settlementPrice, market.priceDecimals),
|
|
83868
|
+
bankruptcyPrice: qtyDivSize(fromU128Parts(optExpect(position.bankruptcyQuote, "Missing TakeAll bankruptcy quote")), position.baseSize, market.priceDecimals, market.sizeDecimals)
|
|
83869
|
+
};
|
|
83870
|
+
})
|
|
83871
|
+
}))
|
|
83849
83872
|
};
|
|
83850
83873
|
} catch (error) {
|
|
83851
83874
|
throw new NordError("Failed to take positions", { cause: error });
|
|
@@ -84114,7 +84137,7 @@ class NordUser {
|
|
|
84114
84137
|
if (!market) {
|
|
84115
84138
|
throw new NordError(`Market ${act.marketId} not found`);
|
|
84116
84139
|
}
|
|
84117
|
-
return {
|
|
84140
|
+
return withAtomicTarget(act, {
|
|
84118
84141
|
kind: "place",
|
|
84119
84142
|
marketId: act.marketId,
|
|
84120
84143
|
side: act.side,
|
|
@@ -84126,34 +84149,27 @@ class NordUser {
|
|
|
84126
84149
|
price: act.price,
|
|
84127
84150
|
quoteSize: act.quoteSize,
|
|
84128
84151
|
clientOrderId: act.clientOrderId,
|
|
84129
|
-
delegatorAccountId: act.delegatorAccountId,
|
|
84130
|
-
placement: act.placement,
|
|
84131
84152
|
referrer: act.referrer
|
|
84132
|
-
};
|
|
84153
|
+
});
|
|
84133
84154
|
}
|
|
84134
84155
|
if (act.kind === "cancel") {
|
|
84135
|
-
return {
|
|
84156
|
+
return withAtomicTarget(act, {
|
|
84136
84157
|
kind: "cancel",
|
|
84137
|
-
orderId: act.orderId
|
|
84138
|
-
|
|
84139
|
-
placement: act.placement
|
|
84140
|
-
};
|
|
84158
|
+
orderId: act.orderId
|
|
84159
|
+
});
|
|
84141
84160
|
}
|
|
84142
84161
|
if (act.kind === "reduceOrderLiquidation") {
|
|
84143
|
-
return {
|
|
84162
|
+
return withAtomicTarget(act, {
|
|
84144
84163
|
kind: "reduceOrderLiquidation",
|
|
84145
|
-
|
|
84146
|
-
|
|
84147
|
-
delegatorAccountId: act.delegatorAccountId,
|
|
84148
|
-
placement: act.placement
|
|
84149
|
-
};
|
|
84164
|
+
marketId: act.marketId
|
|
84165
|
+
});
|
|
84150
84166
|
}
|
|
84151
84167
|
if (act.kind === "rfq") {
|
|
84152
84168
|
const market = findMarket(this.nord.markets, act.marketId);
|
|
84153
84169
|
if (!market) {
|
|
84154
84170
|
throw new NordError(`Market ${act.marketId} not found`);
|
|
84155
84171
|
}
|
|
84156
|
-
return {
|
|
84172
|
+
return withAtomicTarget(act, {
|
|
84157
84173
|
kind: "rfq",
|
|
84158
84174
|
marketId: act.marketId,
|
|
84159
84175
|
side: act.side,
|
|
@@ -84163,30 +84179,34 @@ class NordUser {
|
|
|
84163
84179
|
size: act.size,
|
|
84164
84180
|
timeout: act.timeout,
|
|
84165
84181
|
clientOrderId: act.clientOrderId,
|
|
84166
|
-
|
|
84167
|
-
|
|
84182
|
+
minimalFill: act.minimalFill,
|
|
84183
|
+
isReduceOnly: act.isReduceOnly
|
|
84184
|
+
});
|
|
84168
84185
|
}
|
|
84169
84186
|
if (act.kind === "rfqFill") {
|
|
84170
84187
|
const market = findMarket(this.nord.markets, act.marketId);
|
|
84171
84188
|
if (!market) {
|
|
84172
84189
|
throw new NordError(`Market ${act.marketId} not found`);
|
|
84173
84190
|
}
|
|
84174
|
-
return {
|
|
84191
|
+
return withAtomicTarget(act, {
|
|
84175
84192
|
kind: "rfqFill",
|
|
84176
84193
|
marketId: act.marketId,
|
|
84177
84194
|
orderId: act.orderId,
|
|
84178
84195
|
priceDecimals: market.priceDecimals,
|
|
84196
|
+
sizeDecimals: market.sizeDecimals,
|
|
84179
84197
|
price: act.price,
|
|
84180
84198
|
timeout: act.timeout,
|
|
84181
|
-
|
|
84182
|
-
|
|
84199
|
+
minimumSize: act.minimumSize,
|
|
84200
|
+
maximumSize: act.maximumSize,
|
|
84201
|
+
isReduceOnly: act.isReduceOnly
|
|
84202
|
+
});
|
|
84183
84203
|
}
|
|
84184
84204
|
if (act.kind === "addTrigger") {
|
|
84185
84205
|
const market = findMarket(this.nord.markets, act.marketId);
|
|
84186
84206
|
if (!market) {
|
|
84187
84207
|
throw new NordError(`Market ${act.marketId} not found`);
|
|
84188
84208
|
}
|
|
84189
|
-
return {
|
|
84209
|
+
return withAtomicTarget(act, {
|
|
84190
84210
|
kind: "addTrigger",
|
|
84191
84211
|
marketId: act.marketId,
|
|
84192
84212
|
side: act.side,
|
|
@@ -84197,16 +84217,15 @@ class NordUser {
|
|
|
84197
84217
|
limitPrice: act.limitPrice,
|
|
84198
84218
|
limitBaseSize: act.limitBaseSize,
|
|
84199
84219
|
limitQuoteSize: act.limitQuoteSize,
|
|
84200
|
-
placement: act.placement,
|
|
84201
84220
|
referrer: act.referrer
|
|
84202
|
-
};
|
|
84221
|
+
});
|
|
84203
84222
|
}
|
|
84204
84223
|
if (act.kind === "editTrigger") {
|
|
84205
84224
|
const market = findMarket(this.nord.markets, act.marketId);
|
|
84206
84225
|
if (!market) {
|
|
84207
84226
|
throw new NordError(`Market ${act.marketId} not found`);
|
|
84208
84227
|
}
|
|
84209
|
-
return {
|
|
84228
|
+
return withAtomicTarget(act, {
|
|
84210
84229
|
kind: "editTrigger",
|
|
84211
84230
|
triggerId: act.triggerId,
|
|
84212
84231
|
marketId: act.marketId,
|
|
@@ -84217,24 +84236,20 @@ class NordUser {
|
|
|
84217
84236
|
sizeDecimals: market.sizeDecimals,
|
|
84218
84237
|
limitPrice: act.limitPrice,
|
|
84219
84238
|
limitBaseSize: act.limitBaseSize,
|
|
84220
|
-
limitQuoteSize: act.limitQuoteSize
|
|
84221
|
-
|
|
84222
|
-
};
|
|
84239
|
+
limitQuoteSize: act.limitQuoteSize
|
|
84240
|
+
});
|
|
84223
84241
|
}
|
|
84224
84242
|
if (act.kind === "removeTrigger") {
|
|
84225
|
-
return {
|
|
84243
|
+
return withAtomicTarget(act, {
|
|
84226
84244
|
kind: "removeTrigger",
|
|
84227
84245
|
marketId: act.marketId,
|
|
84228
|
-
triggerId: act.triggerId
|
|
84229
|
-
|
|
84230
|
-
};
|
|
84246
|
+
triggerId: act.triggerId
|
|
84247
|
+
});
|
|
84231
84248
|
}
|
|
84232
|
-
return {
|
|
84249
|
+
return withAtomicTarget(act, {
|
|
84233
84250
|
kind: "cancelByClientId",
|
|
84234
|
-
clientOrderId: act.clientOrderId
|
|
84235
|
-
|
|
84236
|
-
placement: act.placement
|
|
84237
|
-
};
|
|
84251
|
+
clientOrderId: act.clientOrderId
|
|
84252
|
+
});
|
|
84238
84253
|
});
|
|
84239
84254
|
const result = await atomic(this.nord.httpClient, this.signSessionMessage, await this.nord.getTimestamp(), this.getNonce(), {
|
|
84240
84255
|
sessionId: optExpect(this.sessionId, "No session"),
|
|
@@ -84720,13 +84735,15 @@ class NordAdmin {
|
|
|
84720
84735
|
return { actionId: receipt.actionId };
|
|
84721
84736
|
}
|
|
84722
84737
|
async setBackstopAccount({
|
|
84723
|
-
accountId
|
|
84738
|
+
accountId,
|
|
84739
|
+
marketMode
|
|
84724
84740
|
}) {
|
|
84725
84741
|
const receipt = await this.submitAction({
|
|
84726
84742
|
case: "setBackstopAccount",
|
|
84727
84743
|
value: create(Action_SetBackstopAccountSchema, {
|
|
84728
84744
|
aclPubkey: this.admin.toBytes(),
|
|
84729
|
-
accountId
|
|
84745
|
+
accountId,
|
|
84746
|
+
marketMode: marketMode ?? 0 /* CLOB */
|
|
84730
84747
|
})
|
|
84731
84748
|
});
|
|
84732
84749
|
expectReceiptKind(receipt, "backstopAccountSet", "set backstop account");
|
|
@@ -84840,46 +84857,55 @@ class NordAdmin {
|
|
|
84840
84857
|
return { actionId: receipt.actionId, ...receipt.kind.value };
|
|
84841
84858
|
}
|
|
84842
84859
|
async addFeeTier({
|
|
84860
|
+
marketType = 1 /* PERPETUALS */,
|
|
84843
84861
|
config: config2
|
|
84844
84862
|
}) {
|
|
84845
84863
|
const receipt = await this.submitAction({
|
|
84846
|
-
case: "
|
|
84847
|
-
value: create(
|
|
84864
|
+
case: "addFeeTierType",
|
|
84865
|
+
value: create(Action_AddFeeTierTypeSchema, {
|
|
84848
84866
|
aclPubkey: this.admin.toBytes(),
|
|
84849
|
-
|
|
84867
|
+
marketType,
|
|
84868
|
+
config: create(FeeTierTypeConfigSchema, config2)
|
|
84850
84869
|
})
|
|
84851
84870
|
});
|
|
84852
|
-
expectReceiptKind(receipt, "
|
|
84871
|
+
expectReceiptKind(receipt, "feeTierTypeAdded", "add fee tier type");
|
|
84853
84872
|
return { actionId: receipt.actionId, ...receipt.kind.value };
|
|
84854
84873
|
}
|
|
84855
84874
|
async updateFeeTier({
|
|
84856
84875
|
tierId,
|
|
84876
|
+
marketType = 1 /* PERPETUALS */,
|
|
84857
84877
|
config: config2
|
|
84858
84878
|
}) {
|
|
84859
84879
|
const receipt = await this.submitAction({
|
|
84860
|
-
case: "
|
|
84861
|
-
value: create(
|
|
84880
|
+
case: "updateFeeTierType",
|
|
84881
|
+
value: create(Action_UpdateFeeTierTypeSchema, {
|
|
84862
84882
|
aclPubkey: this.admin.toBytes(),
|
|
84863
84883
|
id: tierId,
|
|
84864
|
-
|
|
84884
|
+
marketType,
|
|
84885
|
+
config: create(FeeTierTypeConfigSchema, config2)
|
|
84865
84886
|
})
|
|
84866
84887
|
});
|
|
84867
|
-
expectReceiptKind(receipt, "
|
|
84888
|
+
expectReceiptKind(receipt, "feeTierTypeUpdated", "update fee tier type");
|
|
84868
84889
|
return { actionId: receipt.actionId, ...receipt.kind.value };
|
|
84869
84890
|
}
|
|
84870
|
-
async updateAccountsTier(
|
|
84891
|
+
async updateAccountsTier({
|
|
84892
|
+
accounts,
|
|
84893
|
+
tierId,
|
|
84894
|
+
marketType = 1 /* PERPETUALS */
|
|
84895
|
+
}) {
|
|
84871
84896
|
if (accounts.length !== new Set(accounts).size) {
|
|
84872
|
-
throw new NordError("duplicate
|
|
84897
|
+
throw new NordError("duplicate accupdateFeeTierTypeount ids in updateAccountsFeeTierTypeMode; must be unique");
|
|
84873
84898
|
}
|
|
84874
84899
|
const receipt = await this.submitAction({
|
|
84875
|
-
case: "
|
|
84876
|
-
value: create(
|
|
84900
|
+
case: "updateAccountsFeeTierTypeMode",
|
|
84901
|
+
value: create(Action_UpdateAccountsFeeTierTypeModeSchema, {
|
|
84877
84902
|
aclPubkey: this.admin.toBytes(),
|
|
84878
84903
|
accounts,
|
|
84879
|
-
tierId
|
|
84904
|
+
tierId,
|
|
84905
|
+
marketType
|
|
84880
84906
|
})
|
|
84881
84907
|
});
|
|
84882
|
-
expectReceiptKind(receipt, "
|
|
84908
|
+
expectReceiptKind(receipt, "accountsFeeTierTypeModeUpdated", "update accounts fee tier type mode");
|
|
84883
84909
|
return { actionId: receipt.actionId, ...receipt.kind.value };
|
|
84884
84910
|
}
|
|
84885
84911
|
async feeVaultTransfer({
|