@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.
@@ -1628,7 +1628,7 @@ var require_fallback = __commonJS((exports, module) => {
1628
1628
 
1629
1629
  // node_modules/bufferutil/index.js
1630
1630
  var require_bufferutil = __commonJS((exports, module) => {
1631
- var __dirname = "/Users/alexiusbelov/Code/N1/proton/nord/ts/node_modules/bufferutil";
1631
+ var __dirname = "/Users/sheheryar/work/proton.wt0/nord/ts/node_modules/bufferutil";
1632
1632
  try {
1633
1633
  module.exports = require_node_gyp_build2()(__dirname);
1634
1634
  } catch (e2) {
@@ -2040,7 +2040,7 @@ var require_fallback2 = __commonJS((exports, module) => {
2040
2040
 
2041
2041
  // node_modules/utf-8-validate/index.js
2042
2042
  var require_utf_8_validate = __commonJS((exports, module) => {
2043
- var __dirname = "/Users/alexiusbelov/Code/N1/proton/nord/ts/node_modules/utf-8-validate";
2043
+ var __dirname = "/Users/sheheryar/work/proton.wt0/nord/ts/node_modules/utf-8-validate";
2044
2044
  try {
2045
2045
  module.exports = require_node_gyp_build2()(__dirname);
2046
2046
  } catch (e2) {
@@ -49235,7 +49235,7 @@ var require_file_uri_to_path = __commonJS((exports, module) => {
49235
49235
 
49236
49236
  // node_modules/bindings/bindings.js
49237
49237
  var require_bindings = __commonJS((exports, module) => {
49238
- var __filename = "/Users/alexiusbelov/Code/N1/proton/nord/ts/node_modules/bindings/bindings.js";
49238
+ var __filename = "/Users/sheheryar/work/proton.wt0/nord/ts/node_modules/bindings/bindings.js";
49239
49239
  var fs = __require("fs");
49240
49240
  var path = __require("path");
49241
49241
  var fileURLToPath = require_file_uri_to_path();
@@ -53922,6 +53922,7 @@ __export(exports_nord_pb, {
53922
53922
  Receipt_TriggerAddedSchema: () => Receipt_TriggerAddedSchema,
53923
53923
  Receipt_TransferredSchema: () => Receipt_TransferredSchema,
53924
53924
  Receipt_TradeSchema: () => Receipt_TradeSchema,
53925
+ Receipt_TakeAllTakerResultSchema: () => Receipt_TakeAllTakerResultSchema,
53925
53926
  Receipt_TakeAllPositionsResultSchema: () => Receipt_TakeAllPositionsResultSchema,
53926
53927
  Receipt_TakeAllPositionSchema: () => Receipt_TakeAllPositionSchema,
53927
53928
  Receipt_TakeAllOrderUpdatesSchema: () => Receipt_TakeAllOrderUpdatesSchema,
@@ -53953,23 +53954,24 @@ __export(exports_nord_pb, {
53953
53954
  Receipt_InsertTokenResultSchema: () => Receipt_InsertTokenResultSchema,
53954
53955
  Receipt_InsertMarketResultSchema: () => Receipt_InsertMarketResultSchema,
53955
53956
  Receipt_FeeVaultTransferredSchema: () => Receipt_FeeVaultTransferredSchema,
53956
- Receipt_FeeTierUpdatedSchema: () => Receipt_FeeTierUpdatedSchema,
53957
- Receipt_FeeTierAddedSchema: () => Receipt_FeeTierAddedSchema,
53957
+ Receipt_FeeTierTypeUpdatedSchema: () => Receipt_FeeTierTypeUpdatedSchema,
53958
+ Receipt_FeeTierTypeAddedSchema: () => Receipt_FeeTierTypeAddedSchema,
53958
53959
  Receipt_DepositResultSchema: () => Receipt_DepositResultSchema,
53959
53960
  Receipt_CreateSessionResultSchema: () => Receipt_CreateSessionResultSchema,
53960
53961
  Receipt_ClearMarketResultSchema: () => Receipt_ClearMarketResultSchema,
53961
53962
  Receipt_ClearMarketClosedPositionSchema: () => Receipt_ClearMarketClosedPositionSchema,
53962
- Receipt_ClearMarketCancelledOrderSchema: () => Receipt_ClearMarketCancelledOrderSchema,
53963
53963
  Receipt_CancelledTriggerSchema: () => Receipt_CancelledTriggerSchema,
53964
+ Receipt_CancelledOrderSchema: () => Receipt_CancelledOrderSchema,
53964
53965
  Receipt_CancelOrderResultSchema: () => Receipt_CancelOrderResultSchema,
53965
53966
  Receipt_BackstopAccountSetSchema: () => Receipt_BackstopAccountSetSchema,
53966
53967
  Receipt_AtomicSubactionResultKindSchema: () => Receipt_AtomicSubactionResultKindSchema,
53967
53968
  Receipt_AtomicResultSchema: () => Receipt_AtomicResultSchema,
53968
53969
  Receipt_AclUpdatedSchema: () => Receipt_AclUpdatedSchema,
53969
- Receipt_AccountsTierUpdatedSchema: () => Receipt_AccountsTierUpdatedSchema,
53970
+ Receipt_AccountsFeeTierTypeModeUpdatedSchema: () => Receipt_AccountsFeeTierTypeModeUpdatedSchema,
53970
53971
  Receipt_AccountPlacementReceiptSchema: () => Receipt_AccountPlacementReceiptSchema,
53971
53972
  ReceiptSchema: () => ReceiptSchema,
53972
53973
  RFQQtyPlaceSchema: () => RFQQtyPlaceSchema,
53974
+ RFQExecutionSchema: () => RFQExecutionSchema,
53973
53975
  PythLazerTrustedSignerSchema: () => PythLazerTrustedSignerSchema,
53974
53976
  PlacementRoleSchema: () => PlacementRoleSchema,
53975
53977
  PlacementRole: () => PlacementRole,
@@ -53988,6 +53990,7 @@ __export(exports_nord_pb, {
53988
53990
  FillRFQResultSchema: () => FillRFQResultSchema,
53989
53991
  FillModeSchema: () => FillModeSchema,
53990
53992
  FillMode: () => FillMode,
53993
+ FeeTierTypeConfigSchema: () => FeeTierTypeConfigSchema,
53991
53994
  FeeTierConfigSchema: () => FeeTierConfigSchema,
53992
53995
  ErrorSchema: () => ErrorSchema,
53993
53996
  Error: () => Error2,
@@ -53997,14 +54000,11 @@ __export(exports_nord_pb, {
53997
54000
  CreateRfqMarket_MarginsSchema: () => CreateRfqMarket_MarginsSchema,
53998
54001
  CreateRfqMarket_DecimalsSchema: () => CreateRfqMarket_DecimalsSchema,
53999
54002
  CreateRfqMarketSchema: () => CreateRfqMarketSchema,
54000
- AtomicV2Schema: () => AtomicV2Schema,
54001
54003
  AtomicV1Schema: () => AtomicV1Schema,
54002
- AtomicSubactionV2Schema: () => AtomicSubactionV2Schema,
54003
54004
  AtomicSubactionSchema: () => AtomicSubactionSchema,
54004
54005
  AtomicSubactionKindV1Schema: () => AtomicSubactionKindV1Schema,
54005
54006
  AtomicSchema: () => AtomicSchema,
54006
54007
  AtomicRemoveTriggerSchema: () => AtomicRemoveTriggerSchema,
54007
- AtomicPlacementRequestSchema: () => AtomicPlacementRequestSchema,
54008
54008
  AtomicEditTriggerSchema: () => AtomicEditTriggerSchema,
54009
54009
  AtomicCancelOrderByIdSchema: () => AtomicCancelOrderByIdSchema,
54010
54010
  AtomicCancelOrderByClientIdSchema: () => AtomicCancelOrderByClientIdSchema,
@@ -54013,9 +54013,9 @@ __export(exports_nord_pb, {
54013
54013
  Action_WithdrawSchema: () => Action_WithdrawSchema,
54014
54014
  Action_UserSignatureFramingSchema: () => Action_UserSignatureFramingSchema,
54015
54015
  Action_UserSignatureFraming: () => Action_UserSignatureFraming,
54016
- Action_UpdateFeeTierSchema: () => Action_UpdateFeeTierSchema,
54016
+ Action_UpdateFeeTierTypeSchema: () => Action_UpdateFeeTierTypeSchema,
54017
54017
  Action_UpdateAclSchema: () => Action_UpdateAclSchema,
54018
- Action_UpdateAccountsTierSchema: () => Action_UpdateAccountsTierSchema,
54018
+ Action_UpdateAccountsFeeTierTypeModeSchema: () => Action_UpdateAccountsFeeTierTypeModeSchema,
54019
54019
  Action_UnpauseSchema: () => Action_UnpauseSchema,
54020
54020
  Action_UnfreezeMarketSchema: () => Action_UnfreezeMarketSchema,
54021
54021
  Action_TransferSchema: () => Action_TransferSchema,
@@ -54053,7 +54053,7 @@ __export(exports_nord_pb, {
54053
54053
  Action_CancelOrderByIdSchema: () => Action_CancelOrderByIdSchema,
54054
54054
  Action_CancelOrderByClientIdSchema: () => Action_CancelOrderByClientIdSchema,
54055
54055
  Action_AddTriggerSchema: () => Action_AddTriggerSchema,
54056
- Action_AddFeeTierSchema: () => Action_AddFeeTierSchema,
54056
+ Action_AddFeeTierTypeSchema: () => Action_AddFeeTierTypeSchema,
54057
54057
  ActionSchema: () => ActionSchema
54058
54058
  });
54059
54059
 
@@ -57294,7 +57294,7 @@ function fileDesc(b64, imports) {
57294
57294
  }
57295
57295
 
57296
57296
  // src/gen/nord_pb.ts
57297
- var file_nord = /* @__PURE__ */ fileDesc("Cgpub3JkLnByb3RvEgRub3JkIh4KBFUxMjgSCgoCbG8YASABKAQSCgoCaGkYAiABKAQiiAEKCFJmcVRyYWRlEhsKDnRpbWVvdXRfbWlsbGlzGAEgASgNSACIAQESEQoJbWFya2V0X2lkGAIgASgNEhAKCG9yZGVyX2lkGAMgASgEEg0KBXByaWNlGAQgASgEEhgKEHRpbWVzdGFtcF9taWxsaXMYBSABKANCEQoPX3RpbWVvdXRfbWlsbGlzItQBCgxSZnFQbGFjZU9ubHkSEQoJbWFya2V0X2lkGAcgASgNEhsKDnRpbWVvdXRfbWlsbGlzGAEgASgNSACIAQESHAoPY2xpZW50X29yZGVyX2lkGAIgASgESAGIAQESDQoFcHJpY2UYAyABKAQSGAoEc2lkZRgEIAEoDjIKLm5vcmQuU2lkZRIMCgRiYXNlGAUgASgEEhgKEHRpbWVzdGFtcF9taWxsaXMYBiABKANCEQoPX3RpbWVvdXRfbWlsbGlzQhIKEF9jbGllbnRfb3JkZXJfaWQiIwoMU2V0UmZxTWFrZXJzEhMKC2FjY291bnRfaWRzGAEgAygNIiUKEFNldE1hcmtldE1vZGVSRlESEQoJbWFya2V0X2lkGAEgASgNItMCCg9DcmVhdGVSZnFNYXJrZXQSMAoIZGVjaW1hbHMYASABKAsyHi5ub3JkLkNyZWF0ZVJmcU1hcmtldC5EZWNpbWFscxIuCgdtYXJnaW5zGAIgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuTWFyZ2lucxIuCgdzeW1ib2xzGAMgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuU3ltYm9scxo5CghEZWNpbWFscxIVCg1zaXplX2RlY2ltYWxzGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNGjwKB01hcmdpbnMSDwoHaW1mX2JwcxgDIAEoDRIPCgdjbWZfYnBzGAQgASgNEg8KB21tZl9icHMYBSABKA0aNQoHU3ltYm9scxITCgt2aWV3X3N5bWJvbBgHIAEoCRIVCg1vcmFjbGVfc3ltYm9sGAggASgJIpQBCg5SZnFUcmFkZUFjdGlvbhIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIcChRxdW90ZV90aW1lb3V0X21pbGxpcxgEIAEoDRITCgliYXNlX3NpemUYBSABKANIAEIKCghxdWFudGl0eUoECAYQByLbAgoPUmZxVHJhZGVSZWNlaXB0EhAKCG9yZGVyX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoDRIwCgdzdWNjZXNzGAMgASgLMh0ubm9yZC5SZnFUcmFkZVJlY2VpcHQuU3VjY2Vzc0gAEjYKB2ZhaWx1cmUYBCABKA4yIy5ub3JkLlJmcVRyYWRlUmVjZWlwdC5GYWlsdXJlUmVhc29uSAAaggEKB1N1Y2Nlc3MSEAoIcXVvdGVfaWQYASABKAQSGAoEc2lkZRgCIAEoDjIKLm5vcmQuU2lkZRIYChBmaWxsZWRfYmFzZV9zaXplGAMgASgEEiIKDnF1b3RlX25vdGlvbmFsGAQgASgLMgoubm9yZC5VMTI4Eg0KBXByaWNlGAUgASgEIioKDUZhaWx1cmVSZWFzb24SCwoHVElNRU9VVBAAEgwKCFJFSkVDVEVEEAFCCAoGcmVzdWx0IjoKDlBsYWNlUkZRUmVzdWx0EhAKCG9yZGVyX2lkGAEgASgEEhYKDnRpbWVvdXRfbWlsbGlzGAIgASgNIqMBCg1GaWxsUkZRUmVzdWx0EhAKCG9yZGVyX2lkGAEgASgEEhgKEG1ha2VyX2FjY291bnRfaWQYAiABKA0SGAoQdGFrZXJfYWNjb3VudF9pZBgDIAEoDRIYCgtmaWxsZWRfc2l6ZRgEIAEoBEgAiAEBEhUKCHRyYWRlX2lkGAUgASgESAGIAQFCDgoMX2ZpbGxlZF9zaXplQgsKCV90cmFkZV9pZCIjCgxSZnFNYWtlcnNTZXQSEwoLYWNjb3VudF9pZHMYASADKA0iJgoLUkZRUXR5UGxhY2USFwoDcXR5GAEgASgLMgoubm9yZC5VMTI4Ij0KDUZlZVRpZXJDb25maWcSFQoNbWFrZXJfZmVlX3BwbRgBIAEoDRIVCg10YWtlcl9mZWVfcHBtGAIgASgNIvcBCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNEhUKDXNpemVfZGVjaW1hbHMYAyABKA0SFQoNYmFzZV90b2tlbl9pZBgEIAEoDRIlCgttYXJrZXRfdHlwZRgFIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIPCgdpbWZfYnBzGAYgASgNEg8KB2NtZl9icHMYByABKA0SDwoHbW1mX2JwcxgIIAEoDRIlCgttYXJrZXRfbW9kZRgJIAEoDjIQLm5vcmQuTWFya2V0TW9kZRITCgt2aWV3X3N5bWJvbBgKIAEoCSJaCgVUb2tlbhIQCgh0b2tlbl9pZBgBIAEoDRIWCg50b2tlbl9kZWNpbWFscxgCIAEoDRISCgp3ZWlnaHRfYnBzGAQgASgNEhMKC3ZpZXdfc3ltYm9sGAUgASgJIrYBCgtWYXVsdEhlYWx0aBIqChFyYXdfYWNjb3VudF92YWx1ZRgBIAEoCzIKLm5vcmQuVTEyOEgAiAEBEisKEnNhZmVfYWNjb3VudF92YWx1ZRgCIAEoCzIKLm5vcmQuVTEyOEgBiAEBEiEKBnN0YXR1cxgDIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXNCFAoSX3Jhd19hY2NvdW50X3ZhbHVlQhUKE19zYWZlX2FjY291bnRfdmFsdWUisAEKC1ZhdWx0Q29uZmlnEh8KC2RlcG9zaXRfY2FwGAEgASgLMgoubm9yZC5VMTI4EiIKGm9wZW5fcG9zaXRpb25fZGlzY291bnRfYnBzGAIgASgNEh8KF2RyYXdkb3duX3Byb3RlY3Rpb25fYnBzGAMgASgNEhsKE2RyYXdkb3duX2ZyZWV6ZV9icHMYBCABKA0SHgoWZXBvY2hfbWluX2R1cmF0aW9uX3NlYxgFIAEoDSLMAgoQVmF1bHRDb25maWdQYXRjaBIkCgtkZXBvc2l0X2NhcBgBIAEoCzIKLm5vcmQuVTEyOEgAiAEBEicKGm9wZW5fcG9zaXRpb25fZGlzY291bnRfYnBzGAIgASgNSAGIAQESJAoXZHJhd2Rvd25fcHJvdGVjdGlvbl9icHMYAyABKA1IAogBARIgChNkcmF3ZG93bl9mcmVlemVfYnBzGAQgASgNSAOIAQESIwoWZXBvY2hfbWluX2R1cmF0aW9uX3NlYxgFIAEoDUgEiAEBQg4KDF9kZXBvc2l0X2NhcEIdChtfb3Blbl9wb3NpdGlvbl9kaXNjb3VudF9icHNCGgoYX2RyYXdkb3duX3Byb3RlY3Rpb25fYnBzQhYKFF9kcmF3ZG93bl9mcmVlemVfYnBzQhkKF19lcG9jaF9taW5fZHVyYXRpb25fc2VjIkgKC0NyZWF0ZVZhdWx0EhYKDm1hbmFnZXJfcHVia2V5GAEgASgMEiEKBmNvbmZpZxgCIAEoCzIRLm5vcmQuVmF1bHRDb25maWciUwoRVXBkYXRlVmF1bHRDb25maWcSEAoIdmF1bHRfaWQYASABKA0SLAoMY29uZmlnX3BhdGNoGAIgASgLMhYubm9yZC5WYXVsdENvbmZpZ1BhdGNoIjsKD1NldFZhdWx0TWFuYWdlchIQCgh2YXVsdF9pZBgBIAEoDRIWCg5tYW5hZ2VyX3B1YmtleRgCIAEoDCI3Cg9WYXVsdFN5bmNFcG9jaHMSEgoKc2Vzc2lvbl9pZBgBIAEoBBIQCgh2YXVsdF9pZBgCIAEoDSJOChFTdGFnZWRBZG1pbkFjdGlvbhIUCgxhZG1pbl9wdWJrZXkYASABKAwSIwoEa2luZBgCIAEoCzIVLm5vcmQuQWRtaW5BY3Rpb25LaW5kIrMECg9BZG1pbkFjdGlvbktpbmQSKQoMY3JlYXRlX3ZhdWx0GAEgASgLMhEubm9yZC5DcmVhdGVWYXVsdEgAEjYKE3VwZGF0ZV92YXVsdF9jb25maWcYAiABKAsyFy5ub3JkLlVwZGF0ZVZhdWx0Q29uZmlnSAASMgoRc2V0X3ZhdWx0X21hbmFnZXIYAyABKAsyFS5ub3JkLlNldFZhdWx0TWFuYWdlckgAEjIKEWNyZWF0ZV9yZnFfbWFya2V0GAQgASgLMhUubm9yZC5DcmVhdGVSZnFNYXJrZXRIABJWCiFzZXRfbWFya2V0X21vZGVfY2xvYl90cmFkaW5nX29ubHkYBSABKAsyKS5ub3JkLkFjdGlvbi5TZXRNYXJrZXRNb2RlQ0xPQlRyYWRpbmdPbmx5SAASNQoTc2V0X21hcmtldF9tb2RlX3JmcRgGIAEoCzIWLm5vcmQuU2V0TWFya2V0TW9kZVJGUUgAElAKHnNldF9tYXJrZXRfbW9kZV9jbG9iX3Bvc3Rfb25seRgHIAEoCzImLm5vcmQuQWN0aW9uLlNldE1hcmtldE1vZGVDTE9CUG9zdE9ubHlIABI+ChRzZXRfbWFya2V0X21vZGVfY2xvYhgIIAEoCzIeLm5vcmQuQWN0aW9uLlNldE1hcmtldE1vZGVDTE9CSAASLAoOc2V0X3JmcV9tYWtlcnMYCSABKAsyEi5ub3JkLlNldFJmcU1ha2Vyc0gAQgYKBGtpbmQiRAoMVmF1bHREZXBvc2l0EhIKCnNlc3Npb25faWQYASABKAQSEAoIdmF1bHRfaWQYAiABKA0SDgoGYW1vdW50GAMgASgEIvUBCg1WYXVsdFdpdGhkcmF3EhIKCnNlc3Npb25faWQYASABKAQSEAoIdmF1bHRfaWQYAiABKA0SLgoHcmVxdWVzdBgDIAEoCzIbLm5vcmQuVmF1bHRXaXRoZHJhdy5SZXF1ZXN0SAASKgoFY2xhaW0YBCABKAsyGS5ub3JkLlZhdWx0V2l0aGRyYXcuQ2xhaW1IABpRCgdSZXF1ZXN0EhgKDnF1b3RlX25vdGlvbmFsGAEgASgESAASIgoMc2hhcmVfYW1vdW50GAIgASgLMgoubm9yZC5VMTI4SABCCAoGYW1vdW50GgcKBUNsYWltQgYKBGtpbmQingEKEkNyZWF0ZVZhdWx0UmVjZWlwdBIQCgh2YXVsdF9pZBgBIAEoDRIYChB2YXVsdF9hY2NvdW50X2lkGAIgASgNEhYKDm1hbmFnZXJfcHVia2V5GAMgASgMEiEKBnN0YXR1cxgEIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSIQoGY29uZmlnGAUgASgLMhEubm9yZC5WYXVsdENvbmZpZyJyChhVcGRhdGVWYXVsdENvbmZpZ1JlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SIQoGY29uZmlnGAIgASgLMhEubm9yZC5WYXVsdENvbmZpZxIhCgZzdGF0dXMYAyABKA4yES5ub3JkLlZhdWx0U3RhdHVzIkIKFlNldFZhdWx0TWFuYWdlclJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFgoObWFuYWdlcl9wdWJrZXkYAiABKAwi4QEKFlZhdWx0U3luY0Vwb2Noc1JlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFwoPY2xvc2VkX2Vwb2NoX2lkGAIgASgNEhgKEGNsYWltYWJsZV9hbW91bnQYAyABKAQSIQoGc3RhdHVzGAQgASgOMhEubm9yZC5WYXVsdFN0YXR1cxIhCgZlcG9jaHMYBSABKAsyES5ub3JkLlZhdWx0RXBvY2hzEiUKEWxpdmVfc2hhcmVfc3VwcGx5GAYgASgLMgoubm9yZC5VMTI4EhUKDXF1b3RlX2JhbGFuY2UYByABKAMijwIKE1ZhdWx0RGVwb3NpdFJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFwoPZnJvbV9hY2NvdW50X2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBIhCg1zaGFyZXNfaXNzdWVkGAQgASgLMgoubm9yZC5VMTI4Eh8KC3VzZXJfc2hhcmVzGAUgASgLMgoubm9yZC5VMTI4EiUKEWxpdmVfc2hhcmVfc3VwcGx5GAYgASgLMgoubm9yZC5VMTI4EiEKBnN0YXR1cxgHIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSGAoQdmF1bHRfYWNjb3VudF9pZBgIIAEoDRIVCg1xdW90ZV9iYWxhbmNlGAkgASgDIlUKEVdpdGhkcmF3YWxCdWNrZXRzEhUKDWN1cnJlbnRfZXBvY2gYASABKAQSFgoOcHJldmlvdXNfZXBvY2gYAiABKAQSEQoJY2xhaW1hYmxlGAMgASgEIoUBCgtWYXVsdFBwc1JlZhIQCghlcG9jaF9pZBgBIAEoDRIrChJzYWZlX2FjY291bnRfdmFsdWUYAiABKAsyCi5ub3JkLlUxMjhIAIgBARIgCgxzaGFyZV9zdXBwbHkYAyABKAsyCi5ub3JkLlUxMjhCFQoTX3NhZmVfYWNjb3VudF92YWx1ZSKWAgoLVmF1bHRFcG9jaHMSGAoQY3VycmVudF9lcG9jaF9pZBgBIAEoDRIgChhjdXJyZW50X2Vwb2NoX3N0YXJ0ZWRfYXQYAiABKAMSIgoVcGFpZF90aHJvdWdoX2Vwb2NoX2lkGAMgASgNSACIAQESLAoLd2l0aGRyYXdhbHMYBCABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEi8KFGxhdGVzdF9lcG9jaF9wcHNfcmVmGAUgASgLMhEubm9yZC5WYXVsdFBwc1JlZhIuChNwcmlvcl9lcG9jaF9wcHNfcmVmGAYgASgLMhEubm9yZC5WYXVsdFBwc1JlZkIYChZfcGFpZF90aHJvdWdoX2Vwb2NoX2lkIo8BCg5WYXVsdFVzZXJTdGF0ZRIaCgZzaGFyZXMYASABKAsyCi5ub3JkLlUxMjgSLAoLd2l0aGRyYXdhbHMYAiABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEhgKEGN1cnJlbnRfZXBvY2hfaWQYAyABKA0SGQoRcHJldmlvdXNfZXBvY2hfaWQYBCABKA0itgMKFFZhdWx0V2l0aGRyYXdSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhUKDXRvX2FjY291bnRfaWQYAiABKA0SOQoJcmVxdWVzdGVkGAMgASgLMiQubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5SZXF1ZXN0ZWRIABI1CgdjbGFpbWVkGAQgASgLMiIubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5DbGFpbWVkSAASLQoPcG9zdF91c2VyX3N0YXRlGAUgASgLMhQubm9yZC5WYXVsdFVzZXJTdGF0ZRIlChFsaXZlX3NoYXJlX3N1cHBseRgGIAEoCzIKLm5vcmQuVTEyOBIhCgZzdGF0dXMYByABKA4yES5ub3JkLlZhdWx0U3RhdHVzEhgKEHZhdWx0X2FjY291bnRfaWQYCCABKA0SFQoNcXVvdGVfYmFsYW5jZRgJIAEoAxo2CglSZXF1ZXN0ZWQSDQoFcXVvdGUYASABKAQSGgoGYnVybmVkGAIgASgLMgoubm9yZC5VMTI4GhkKB0NsYWltZWQSDgoGYW1vdW50GAEgASgEQgYKBGtpbmQiSQoKT3JkZXJMaW1pdBINCgVwcmljZRgGIAEoBBIMCgRzaXplGAcgASgEEh4KCnF1b3RlX3NpemUYCCABKAsyCi5ub3JkLlUxMjgiuQEKCVBsYWNlVHlwZRIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiEKCWZpbGxfbW9kZRgEIAEoDjIOLm5vcmQuRmlsbE1vZGUSFgoOaXNfcmVkdWNlX29ubHkYBSABKAgSPQoVc2VsZl90cmFkZV9wcmV2ZW50aW9uGAYgASgOMhkubm9yZC5TZWxmVHJhZGVQcmV2ZW50aW9uSACIAQFCGAoWX3NlbGZfdHJhZGVfcHJldmVudGlvbiLJAQoMVHJhZGVPclBsYWNlEhEKCW1hcmtldF9pZBgCIAEoDRIjCgpwbGFjZV90eXBlGAMgASgLMg8ubm9yZC5QbGFjZVR5cGUSHwoFbGltaXQYBiABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoPY2xpZW50X29yZGVyX2lkGCEgASgESACIAQESIQoIcmVmZXJyZXIYIiABKAsyCi5ub3JkLlUxMjhIAYgBAUISChBfY2xpZW50X29yZGVyX2lkQgsKCV9yZWZlcnJlciIpChVBdG9taWNDYW5jZWxPcmRlckJ5SWQSEAoIb3JkZXJfaWQYAiABKAQiNgobQXRvbWljQ2FuY2VsT3JkZXJCeUNsaWVudElkEhcKD2NsaWVudF9vcmRlcl9pZBgCIAEoBCKGAQoQQXRvbWljQWRkVHJpZ2dlchIkCgd0cmlnZ2VyGAEgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhwKBmludGVudBgCIAEoDjIMLm5vcmQuSW50ZW50EiEKCHJlZmVycmVyGAMgASgLMgoubm9yZC5VMTI4SACIAQFCCwoJX3JlZmVycmVyIlEKEUF0b21pY0VkaXRUcmlnZ2VyEhIKCnRyaWdnZXJfaWQYASABKAQSKAoLbmV3X3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQiPAoTQXRvbWljUmVtb3ZlVHJpZ2dlchIRCgltYXJrZXRfaWQYASABKA0SEgoKdHJpZ2dlcl9pZBgCIAEoBCJGChZSZWR1Y2VPcmRlckxpcXVpZGF0aW9uEhkKEXRhcmdldF9hY2NvdW50X2lkGAEgASgNEhEKCW1hcmtldF9pZBgCIAEoDSLPAQoVQXRvbWljU3ViYWN0aW9uS2luZFYxEiwKDnRyYWRlX29yX3BsYWNlGAYgASgLMhIubm9yZC5UcmFkZU9yUGxhY2VIABIzCgxjYW5jZWxfb3JkZXIYByABKAsyGy5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlJZEgAEkYKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYCCABKAsyIS5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlDbGllbnRJZEgAOgIYAUIHCgVpbm5lciKwAQoIQXRvbWljVjESEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCgphY2NvdW50X2lkGAIgASgNSACIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAMgASgESAGIAQESLAoHYWN0aW9ucxgGIAMoCzIbLm5vcmQuQXRvbWljU3ViYWN0aW9uS2luZFYxOgIYAUINCgtfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkIlcKFkF0b21pY1BsYWNlbWVudFJlcXVlc3QSEgoIdmF1bHRfaWQYASABKA1IABIgChZsaXF1aWRhdGlvbl9hY2NvdW50X2lkGAIgASgNSABCBwoFaW5uZXIiqwQKD0F0b21pY1N1YmFjdGlvbhIhChRkZWxlZ2F0b3JfYWNjb3VudF9pZBggIAEoDUgBiAEBEiwKDnRyYWRlX29yX3BsYWNlGAYgASgLMhIubm9yZC5UcmFkZU9yUGxhY2VIABIzCgxjYW5jZWxfb3JkZXIYByABKAsyGy5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlJZEgAEkYKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYCCABKAsyIS5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlDbGllbnRJZEgAEi0KC2FkZF90cmlnZ2VyGAkgASgLMhYubm9yZC5BdG9taWNBZGRUcmlnZ2VySAASLwoMZWRpdF90cmlnZ2VyGAogASgLMhcubm9yZC5BdG9taWNFZGl0VHJpZ2dlckgAEjMKDnJlbW92ZV90cmlnZ2VyGAsgASgLMhkubm9yZC5BdG9taWNSZW1vdmVUcmlnZ2VySAASQAoYcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uGAwgASgLMhwubm9yZC5SZWR1Y2VPcmRlckxpcXVpZGF0aW9uSAASLAoOcmZxX3BsYWNlX29ubHkYDSABKAsyEi5ub3JkLlJmcVBsYWNlT25seUgAEiMKCXJmcV90cmFkZRgOIAEoCzIOLm5vcmQuUmZxVHJhZGVIAEIHCgVpbm5lckIXChVfZGVsZWdhdG9yX2FjY291bnRfaWQigQEKEUF0b21pY1N1YmFjdGlvblYyEjQKCXBsYWNlbWVudBgBIAEoCzIcLm5vcmQuQXRvbWljUGxhY2VtZW50UmVxdWVzdEgAiAEBEigKCXN1YmFjdGlvbhgCIAEoCzIVLm5vcmQuQXRvbWljU3ViYWN0aW9uQgwKCl9wbGFjZW1lbnQipAEKBkF0b21pYxISCgpzZXNzaW9uX2lkGAEgASgEEhcKCmFjY291bnRfaWQYAiABKA1IAIgBARIfChJzZW5kZXJfdHJhY2tpbmdfaWQYAyABKARIAYgBARImCgdhY3Rpb25zGAYgAygLMhUubm9yZC5BdG9taWNTdWJhY3Rpb25CDQoLX2FjY291bnRfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZCKoAQoIQXRvbWljVjISEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCgphY2NvdW50X2lkGAIgASgNSACIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAMgASgESAGIAQESKAoHYWN0aW9ucxgGIAMoCzIXLm5vcmQuQXRvbWljU3ViYWN0aW9uVjJCDQoLX2FjY291bnRfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZCI8ChZQeXRoTGF6ZXJUcnVzdGVkU2lnbmVyEg4KBnB1YmtleRgBIAEoDBISCgpleHBpcmVzX2F0GAIgASgDIpYBCg1UcmlnZ2VyUmVjb3JkEhUKDXRyaWdnZXJfcHJpY2UYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEiAKBmxpbWl0cxgDIAEoCzIQLm5vcmQuT3JkZXJMaW1pdBIfCgRraW5kGAQgASgOMhEubm9yZC5UcmlnZ2VyS2luZBIYCgRzaWRlGAUgASgOMgoubm9yZC5TaWRlIpsBCgdUcmlnZ2VyEhUKDXRyaWdnZXJfcHJpY2UYASABKAQSHwoEa2luZBgCIAEoDjIRLm5vcmQuVHJpZ2dlcktpbmQSGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIgCgZsaW1pdHMYBCABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoGaW50ZW50GAUgASgOMgwubm9yZC5JbnRlbnQi/zMKBkFjdGlvbhIZChFjdXJyZW50X3RpbWVzdGFtcBgBIAEoAxINCgVub25jZRgCIAEoDRI0Cg5jcmVhdGVfc2Vzc2lvbhgEIAEoCzIaLm5vcmQuQWN0aW9uLkNyZWF0ZVNlc3Npb25IABIwCgxjcmVhdGVfdG9rZW4YBSABKAsyGC5ub3JkLkFjdGlvbi5DcmVhdGVUb2tlbkgAEjIKDWNyZWF0ZV9tYXJrZXQYBiABKAsyGS5ub3JkLkFjdGlvbi5DcmVhdGVNYXJrZXRIABIuCgtwbGFjZV9vcmRlchgHIAEoCzIXLm5vcmQuQWN0aW9uLlBsYWNlT3JkZXJIABI6ChJjYW5jZWxfb3JkZXJfYnlfaWQYCCABKAsyHC5ub3JkLkFjdGlvbi5DYW5jZWxPcmRlckJ5SWRIABInCgdkZXBvc2l0GAkgASgLMhQubm9yZC5BY3Rpb24uRGVwb3NpdEgAEikKCHdpdGhkcmF3GAogASgLMhUubm9yZC5BY3Rpb24uV2l0aGRyYXdIABJMChtweXRoX3NldF93b3JtaG9sZV9ndWFyZGlhbnMYCyABKAsyJS5ub3JkLkFjdGlvbi5QeXRoU2V0V29ybWhvbGVHdWFyZGlhbnNIABI+ChRweXRoX3NldF9zeW1ib2xfZmVlZBgMIAEoCzIeLm5vcmQuQWN0aW9uLlB5dGhTZXRTeW1ib2xGZWVkSAASQgoWcHl0aF9wcmljZV9mZWVkX3VwZGF0ZRgNIAEoCzIgLm5vcmQuQWN0aW9uLlB5dGhQcmljZUZlZWRVcGRhdGVIABI0Cg5yZXZva2Vfc2Vzc2lvbhgPIAEoCzIaLm5vcmQuQWN0aW9uLlJldm9rZVNlc3Npb25IABIjCgVwYXVzZRgQIAEoCzISLm5vcmQuQWN0aW9uLlBhdXNlSAASJwoHdW5wYXVzZRgRIAEoCzIULm5vcmQuQWN0aW9uLlVucGF1c2VIABIpCgh0cmFuc2ZlchgSIAEoCzIVLm5vcmQuQWN0aW9uLlRyYW5zZmVySAASLgoLYWRkX3RyaWdnZXIYICABKAsyFy5ub3JkLkFjdGlvbi5BZGRUcmlnZ2VySAASNAoOcmVtb3ZlX3RyaWdnZXIYISABKAsyGi5ub3JkLkFjdGlvbi5SZW1vdmVUcmlnZ2VySAASJwoJYXRvbWljX3YxGCMgASgLMg4ubm9yZC5BdG9taWNWMUICGAFIABIyCg1mcmVlemVfbWFya2V0GCQgASgLMhkubm9yZC5BY3Rpb24uRnJlZXplTWFya2V0SAASNgoPdW5mcmVlemVfbWFya2V0GCUgASgLMhsubm9yZC5BY3Rpb24uVW5mcmVlemVNYXJrZXRIABIvCgxhZGRfZmVlX3RpZXIYJiABKAsyFy5ub3JkLkFjdGlvbi5BZGRGZWVUaWVySAASNQoPdXBkYXRlX2ZlZV90aWVyGCcgASgLMhoubm9yZC5BY3Rpb24uVXBkYXRlRmVlVGllckgAEj8KFHVwZGF0ZV9hY2NvdW50c190aWVyGCggASgLMh8ubm9yZC5BY3Rpb24uVXBkYXRlQWNjb3VudHNUaWVySAASLAoKdXBkYXRlX2FjbBgpIAEoCzIWLm5vcmQuQWN0aW9uLlVwZGF0ZUFjbEgAEjsKEmZlZV92YXVsdF90cmFuc2ZlchgqIAEoCzIdLm5vcmQuQWN0aW9uLkZlZVZhdWx0VHJhbnNmZXJIABI7ChJ0YWtlX2FsbF9wb3NpdGlvbnMYKyABKAsyHS5ub3JkLkFjdGlvbi5UYWtlQWxsUG9zaXRpb25zSAASRwoZY2FuY2VsX29yZGVyX2J5X2NsaWVudF9pZBgsIAEoCzIiLm5vcmQuQWN0aW9uLkNhbmNlbE9yZGVyQnlDbGllbnRJZEgAEjYKD2V4ZWN1dGVfdHJpZ2dlchgtIAEoCzIbLm5vcmQuQWN0aW9uLkV4ZWN1dGVUcmlnZ2VySAASPwoUc2V0X2JhY2tzdG9wX2FjY291bnQYLiABKAsyHy5ub3JkLkFjdGlvbi5TZXRCYWNrc3RvcEFjY291bnRIABIwCgxlZGl0X3RyaWdnZXIYLyABKAsyGC5ub3JkLkFjdGlvbi5FZGl0VHJpZ2dlckgAEh4KBmF0b21pYxgwIAEoCzIMLm5vcmQuQXRvbWljSAASKAoFYWRtaW4YMSABKAsyFy5ub3JkLlN0YWdlZEFkbWluQWN0aW9uSAASMAoMY2xlYXJfbWFya2V0GDIgASgLMhgubm9yZC5BY3Rpb24uQ2xlYXJNYXJrZXRIABIyChF2YXVsdF9zeW5jX2Vwb2Nocxg1IAEoCzIVLm5vcmQuVmF1bHRTeW5jRXBvY2hzSAASKwoNdmF1bHRfZGVwb3NpdBg2IAEoCzISLm5vcmQuVmF1bHREZXBvc2l0SAASLQoOdmF1bHRfd2l0aGRyYXcYNyABKAsyEy5ub3JkLlZhdWx0V2l0aGRyYXdIABIjCglhdG9taWNfdjIYOCABKAsyDi5ub3JkLkF0b21pY1YySAASUQoecHl0aF9sYXplcl9zZXRfdHJ1c3RlZF9zaWduZXJzGDkgASgLMicubm9yZC5BY3Rpb24uUHl0aExhemVyU2V0VHJ1c3RlZFNpZ25lcnNIABJJChpweXRoX2xhemVyX3NldF9mZWVkX3N5bWJvbBg6IAEoCzIjLm5vcmQuQWN0aW9uLlB5dGhMYXplclNldEZlZWRTeW1ib2xIABJNChxweXRoX2xhemVyX3ByaWNlX2ZlZWRfdXBkYXRlGDsgASgLMiUubm9yZC5BY3Rpb24uUHl0aExhemVyUHJpY2VGZWVkVXBkYXRlSAASNgoPcmVmcmVzaF9zZXNzaW9uGDwgASgLMhsubm9yZC5BY3Rpb24uUmVmcmVzaFNlc3Npb25IABI9ChNzZWxmX3Jldm9rZV9zZXNzaW9uGD0gASgLMh4ubm9yZC5BY3Rpb24uU2VsZlJldm9rZVNlc3Npb25IABrjAQoNQ3JlYXRlU2Vzc2lvbhITCgt1c2VyX3B1YmtleRgBIAEoDBIWCg5zZXNzaW9uX3B1YmtleRgCIAEoDBIYChBleHBpcnlfdGltZXN0YW1wGAMgASgDEkEKEXNpZ25hdHVyZV9mcmFtaW5nGAQgASgOMiEubm9yZC5BY3Rpb24uVXNlclNpZ25hdHVyZUZyYW1pbmdIAIgBARIdChByZWZyZXNoX2RlYWRsaW5lGAUgASgDSAGIAQFCFAoSX3NpZ25hdHVyZV9mcmFtaW5nQhMKEV9yZWZyZXNoX2RlYWRsaW5lGosBCgtDcmVhdGVUb2tlbhIWCg50b2tlbl9kZWNpbWFscxgBIAEoDRISCgp3ZWlnaHRfYnBzGAMgASgNEhMKC3ZpZXdfc3ltYm9sGAQgASgJEhUKDW9yYWNsZV9zeW1ib2wYBSABKAkSEAoIc29sX2FkZHIYBiABKAwSEgoKYWNsX3B1YmtleRgHIAEoDBoxChxTZXRNYXJrZXRNb2RlQ0xPQlRyYWRpbmdPbmx5EhEKCW1hcmtldF9pZBgBIAEoDRouChlTZXRNYXJrZXRNb2RlQ0xPQlBvc3RPbmx5EhEKCW1hcmtldF9pZBgBIAEoDRomChFTZXRNYXJrZXRNb2RlQ0xPQhIRCgltYXJrZXRfaWQYASABKA0a7gEKDENyZWF0ZU1hcmtldBIVCg1zaXplX2RlY2ltYWxzGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNEg8KB2ltZl9icHMYAyABKA0SDwoHY21mX2JwcxgEIAEoDRIPCgdtbWZfYnBzGAUgASgNEiUKC21hcmtldF90eXBlGAYgASgOMhAubm9yZC5NYXJrZXRUeXBlEhMKC3ZpZXdfc3ltYm9sGAcgASgJEhUKDW9yYWNsZV9zeW1ib2wYCCABKAkSFQoNYmFzZV90b2tlbl9pZBgJIAEoDRISCgphY2xfcHVia2V5GAogASgMGqoECgpQbGFjZU9yZGVyEhIKCnNlc3Npb25faWQYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEhgKBHNpZGUYAyABKA4yCi5ub3JkLlNpZGUSIQoJZmlsbF9tb2RlGAQgASgOMg4ubm9yZC5GaWxsTW9kZRIWCg5pc19yZWR1Y2Vfb25seRgFIAEoCBINCgVwcmljZRgGIAEoBBIMCgRzaXplGAcgASgEEh4KCnF1b3RlX3NpemUYCCABKAsyCi5ub3JkLlUxMjgSIQoUZGVsZWdhdG9yX2FjY291bnRfaWQYICABKA1IAIgBARIcCg9jbGllbnRfb3JkZXJfaWQYISABKARIAYgBARIeChFzZW5kZXJfYWNjb3VudF9pZBgiIAEoDUgCiAEBEh8KEnNlbmRlcl90cmFja2luZ19pZBgjIAEoBEgDiAEBEj0KFXNlbGZfdHJhZGVfcHJldmVudGlvbhgkIAEoDjIZLm5vcmQuU2VsZlRyYWRlUHJldmVudGlvbkgEiAEBEiEKCHJlZmVycmVyGCUgASgLMgoubm9yZC5VMTI4SAWIAQFCFwoVX2RlbGVnYXRvcl9hY2NvdW50X2lkQhIKEF9jbGllbnRfb3JkZXJfaWRCFAoSX3NlbmRlcl9hY2NvdW50X2lkQhUKE19zZW5kZXJfdHJhY2tpbmdfaWRCGAoWX3NlbGZfdHJhZGVfcHJldmVudGlvbkILCglfcmVmZXJyZXIaqQEKD0NhbmNlbE9yZGVyQnlJZBISCgpzZXNzaW9uX2lkGAEgASgEEhAKCG9yZGVyX2lkGAIgASgEEiEKFGRlbGVnYXRvcl9hY2NvdW50X2lkGCAgASgNSACIAQESHgoRc2VuZGVyX2FjY291bnRfaWQYISABKA1IAYgBAUIXChVfZGVsZWdhdG9yX2FjY291bnRfaWRCFAoSX3NlbmRlcl9hY2NvdW50X2lkGnoKFUNhbmNlbE9yZGVyQnlDbGllbnRJZBISCgpzZXNzaW9uX2lkGAEgASgEEhcKD2NsaWVudF9vcmRlcl9pZBgCIAEoBBIeChFzZW5kZXJfYWNjb3VudF9pZBgDIAEoDUgAiAEBQhQKEl9zZW5kZXJfYWNjb3VudF9pZBpvCgdEZXBvc2l0EhQKDGFjdGlvbl9ub25jZRgBIAEoBBISCgp0b2tlbl9hZGRyGAIgASgMEg4KBmFtb3VudBgDIAEoBBITCgt1c2VyX3B1YmtleRgEIAEoDBIVCg1zZW5kZXJfcHVia2V5GAUgASgMGmoKCFdpdGhkcmF3EhAKCHRva2VuX2lkGAEgASgNEhIKCnNlc3Npb25faWQYAiABKAQSDgoGYW1vdW50GAMgASgEEhgKC2Rlc3RfcHVia2V5GAQgASgMSACIAQFCDgoMX2Rlc3RfcHVia2V5Gl0KGFB5dGhTZXRXb3JtaG9sZUd1YXJkaWFucxIaChJndWFyZGlhbl9zZXRfaW5kZXgYASABKA0SEQoJYWRkcmVzc2VzGAIgAygMEhIKCmFjbF9wdWJrZXkYAyABKAwaVQoRUHl0aFNldFN5bWJvbEZlZWQSFQoNb3JhY2xlX3N5bWJvbBgBIAEoCRIVCg1wcmljZV9mZWVkX2lkGAIgASgMEhIKCmFjbF9wdWJrZXkYAyABKAwaLwoTUHl0aFByaWNlRmVlZFVwZGF0ZRIYChByYXdfcHl0aG5ldF9kYXRhGAEgASgMGlIKGFB5dGhMYXplclByaWNlRmVlZFVwZGF0ZRIPCgdwYXlsb2FkGAEgASgMEhEKCXNpZ25hdHVyZRgCIAEoDBISCgpwdWJsaWNfa2V5GAMgASgMGmcKGlB5dGhMYXplclNldFRydXN0ZWRTaWduZXJzEhIKCmFjbF9wdWJrZXkYASABKAwSNQoPdHJ1c3RlZF9zaWduZXJzGAIgAygLMhwubm9yZC5QeXRoTGF6ZXJUcnVzdGVkU2lnbmVyGqsBChZQeXRoTGF6ZXJTZXRGZWVkU3ltYm9sEhIKCmFjbF9wdWJrZXkYASABKAwSQgoFZmVlZHMYAiADKAsyMy5ub3JkLkFjdGlvbi5QeXRoTGF6ZXJTZXRGZWVkU3ltYm9sLkZlZWRTeW1ib2xJbnB1dBo5Cg9GZWVkU3ltYm9sSW5wdXQSDwoHZmVlZF9pZBgBIAEoDRIVCg1vcmFjbGVfc3ltYm9sGAIgASgJGiMKDVJldm9rZVNlc3Npb24SEgoKc2Vzc2lvbl9pZBgBIAEoBBo0Cg5SZWZyZXNoU2Vzc2lvbhISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxonChFTZWxmUmV2b2tlU2Vzc2lvbhISCgpzZXNzaW9uX2lkGAEgASgEGhsKBVBhdXNlEhIKCmFjbF9wdWJrZXkYASABKAwaHQoHVW5wYXVzZRISCgphY2xfcHVia2V5GAEgASgMGjwKElNldEJhY2tzdG9wQWNjb3VudBISCgphY2xfcHVia2V5GAEgASgMEhIKCmFjY291bnRfaWQYAiABKA0a+QEKCVJlY2lwaWVudBIxCgdzcGVjaWFsGAEgASgLMh4ubm9yZC5BY3Rpb24uUmVjaXBpZW50LlNwZWNpYWxIABItCgVvd25lZBgCIAEoCzIcLm5vcmQuQWN0aW9uLlJlY2lwaWVudC5Pd25lZEgAEjEKB3Vub3duZWQYAyABKAsyHi5ub3JkLkFjdGlvbi5SZWNpcGllbnQuVW5vd25lZEgAGgkKB1NwZWNpYWwaGwoFT3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDRodCgdVbm93bmVkEhIKCmFjY291bnRfaWQYASABKA1CEAoOcmVjaXBpZW50X3R5cGUanwEKCFRyYW5zZmVyEhIKCnNlc3Npb25faWQYASABKAQSFwoPZnJvbV9hY2NvdW50X2lkGAIgASgNEhAKCHRva2VuX2lkGAMgASgNEg4KBmFtb3VudBgEIAEoBBIyCg10b19hY2NvdW50X2lkGAggASgLMhYubm9yZC5BY3Rpb24uUmVjaXBpZW50SACIAQFCEAoOX3RvX2FjY291bnRfaWQaWwoQRmVlVmF1bHRUcmFuc2ZlchISCgphY2xfcHVia2V5GAEgASgMEhEKCXJlY2lwaWVudBgCIAEoDRIQCgh0b2tlbl9pZBgDIAEoDRIOCgZhbW91bnQYBCABKAQavAEKCkFkZFRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIkCgd0cmlnZ2VyGAIgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhwKBmludGVudBgDIAEoDjIMLm5vcmQuSW50ZW50EhcKCmFjY291bnRfaWQYCiABKA1IAIgBARIhCghyZWZlcnJlchgLIAEoCzIKLm5vcmQuVTEyOEgBiAEBQg0KC19hY2NvdW50X2lkQgsKCV9yZWZlcnJlchqHAQoLRWRpdFRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBISCgp0cmlnZ2VyX2lkGAIgASgEEigKC25ld190cmlnZ2VyGAMgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhcKCmFjY291bnRfaWQYCiABKA1IAIgBAUINCgtfYWNjb3VudF9pZBpyCg1SZW1vdmVUcmlnZ2VyEhIKCnNlc3Npb25faWQYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEhIKCnRyaWdnZXJfaWQYAyABKAQSFwoKYWNjb3VudF9pZBgKIAEoDUgAiAEBQg0KC19hY2NvdW50X2lkGkUKCkFkZEZlZVRpZXISEgoKYWNsX3B1YmtleRgBIAEoDBIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaVAoNVXBkYXRlRmVlVGllchIKCgJpZBgBIAEoDRIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcSEgoKYWNsX3B1YmtleRgDIAEoDBpLChJVcGRhdGVBY2NvdW50c1RpZXISDwoHdGllcl9pZBgBIAEoDRIQCghhY2NvdW50cxgCIAMoDRISCgphY2xfcHVia2V5GAMgASgMGl8KCVVwZGF0ZUFjbBISCgphY2xfcHVia2V5GAEgASgMEhUKDXRhcmdldF9wdWJrZXkYAiABKAwSEgoKcm9sZXNfbWFzaxgDIAEoDRITCgtyb2xlc192YWx1ZRgEIAEoDRo1CgxGcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aNwoOVW5mcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aTQoLQ2xlYXJNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0SFwoPY2xlYXJhbmNlX3ByaWNlGAMgASgEGmEKDkV4ZWN1dGVUcmlnZ2VyEhQKDGV4ZWN1dG9yX3NpZBgBIAEoBBISCgphY2NvdW50X2lkGAIgASgNEhEKCW1hcmtldF9pZBgDIAEoDRISCgp0cmlnZ2VyX2lkGAQgASgEGkEKEFRha2VBbGxQb3NpdGlvbnMSEgoKc2Vzc2lvbl9pZBgBIAEoBBIZChF0YXJnZXRfYWNjb3VudF9pZBgCIAEoDSI3ChRVc2VyU2lnbmF0dXJlRnJhbWluZxIHCgNIRVgQABIWChJTT0xBTkFfVFJBTlNBQ1RJT04QAUIGCgRraW5kIstCCgdSZWNlaXB0EhEKCWFjdGlvbl9pZBgBIAEoBBIaCgNlcnIYICABKA4yCy5ub3JkLkVycm9ySAASQgoVY3JlYXRlX3Nlc3Npb25fcmVzdWx0GCEgASgLMiEubm9yZC5SZWNlaXB0LkNyZWF0ZVNlc3Npb25SZXN1bHRIABI4Cg50cmFkZV9vcl9wbGFjZRgiIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASPgoTY2FuY2VsX29yZGVyX3Jlc3VsdBgjIAEoCzIfLm5vcmQuUmVjZWlwdC5DYW5jZWxPcmRlclJlc3VsdEgAEjUKDmRlcG9zaXRfcmVzdWx0GCQgASgLMhsubm9yZC5SZWNlaXB0LkRlcG9zaXRSZXN1bHRIABI+ChNpbnNlcnRfdG9rZW5fcmVzdWx0GCUgASgLMh8ubm9yZC5SZWNlaXB0Lkluc2VydFRva2VuUmVzdWx0SAASQAoUaW5zZXJ0X21hcmtldF9yZXN1bHQYJiABKAsyIC5ub3JkLlJlY2VpcHQuSW5zZXJ0TWFya2V0UmVzdWx0SAASNwoPd2l0aGRyYXdfcmVzdWx0GCcgASgLMhwubm9yZC5SZWNlaXB0LldpdGhkcmF3UmVzdWx0SAASSQoZb3JhY2xlX3N5bWJvbF9mZWVkX3Jlc3VsdBgoIAEoCzIkLm5vcmQuUmVjZWlwdC5PcmFjbGVTeW1ib2xGZWVkUmVzdWx0SAASQAoUb3JhY2xlX3VwZGF0ZV9yZXN1bHQYKSABKAsyIC5ub3JkLlJlY2VpcHQuT3JhY2xlVXBkYXRlUmVzdWx0SAASSwoadXBkYXRlX2d1YXJkaWFuX3NldF9yZXN1bHQYKiABKAsyJS5ub3JkLlJlY2VpcHQuVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHRIABI3Cg9zZXNzaW9uX3Jldm9rZWQYLCABKAsyHC5ub3JkLlJlY2VpcHQuU2Vzc2lvblJldm9rZWRIABImCgZwYXVzZWQYLSABKAsyFC5ub3JkLlJlY2VpcHQuUGF1c2VkSAASKgoIdW5wYXVzZWQYLiABKAsyFi5ub3JkLlJlY2VpcHQuVW5wYXVzZWRIABIwCgt0cmFuc2ZlcnJlZBgvIAEoCzIZLm5vcmQuUmVjZWlwdC5UcmFuc2ZlcnJlZEgAEjMKDXRyaWdnZXJfYWRkZWQYQCABKAsyGi5ub3JkLlJlY2VpcHQuVHJpZ2dlckFkZGVkSAASNwoPdHJpZ2dlcl9yZW1vdmVkGEEgASgLMhwubm9yZC5SZWNlaXB0LlRyaWdnZXJSZW1vdmVkSAASLAoGYXRvbWljGEMgASgLMhoubm9yZC5SZWNlaXB0LkF0b21pY1Jlc3VsdEgAEkIKFW1hcmtldF9mcmVlemVfdXBkYXRlZBhEIAEoCzIhLm5vcmQuUmVjZWlwdC5NYXJrZXRGcmVlemVVcGRhdGVkSAASNAoOZmVlX3RpZXJfYWRkZWQYRSABKAsyGi5ub3JkLlJlY2VpcHQuRmVlVGllckFkZGVkSAASOAoQZmVlX3RpZXJfdXBkYXRlZBhGIAEoCzIcLm5vcmQuUmVjZWlwdC5GZWVUaWVyVXBkYXRlZEgAEkIKFWFjY291bnRzX3RpZXJfdXBkYXRlZBhHIAEoCzIhLm5vcmQuUmVjZWlwdC5BY2NvdW50c1RpZXJVcGRhdGVkSAASLwoLYWNsX3VwZGF0ZWQYSCABKAsyGC5ub3JkLlJlY2VpcHQuQWNsVXBkYXRlZEgAEkIKFWZlZV92YXVsdF90cmFuc2ZlcnJlZBhJIAEoCzIhLm5vcmQuUmVjZWlwdC5GZWVWYXVsdFRyYW5zZmVycmVkSAASOQoQdHJpZ2dlcl9leGVjdXRlZBhKIAEoCzIdLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRXhlY3V0ZWRIABJJChl0YWtlX2FsbF9wb3NpdGlvbnNfcmVzdWx0GEsgASgLMiQubm9yZC5SZWNlaXB0LlRha2VBbGxQb3NpdGlvbnNSZXN1bHRIABJAChRiYWNrc3RvcF9hY2NvdW50X3NldBhMIAEoCzIgLm5vcmQuUmVjZWlwdC5CYWNrc3RvcEFjY291bnRTZXRIABI1Cg50cmlnZ2VyX2VkaXRlZBhNIAEoCzIbLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRWRpdGVkSAASMQoNdmF1bHRfY3JlYXRlZBhOIAEoCzIYLm5vcmQuQ3JlYXRlVmF1bHRSZWNlaXB0SAASPgoUdmF1bHRfY29uZmlnX3VwZGF0ZWQYTyABKAsyHi5ub3JkLlVwZGF0ZVZhdWx0Q29uZmlnUmVjZWlwdEgAEj0KFXZhdWx0X21hbmFnZXJfdXBkYXRlZBhQIAEoCzIcLm5vcmQuU2V0VmF1bHRNYW5hZ2VyUmVjZWlwdEgAEjsKE3ZhdWx0X2Vwb2Noc19zeW5jZWQYUSABKAsyHC5ub3JkLlZhdWx0U3luY0Vwb2Noc1JlY2VpcHRIABI0Cg92YXVsdF9kZXBvc2l0ZWQYUiABKAsyGS5ub3JkLlZhdWx0RGVwb3NpdFJlY2VpcHRIABI1Cg92YXVsdF93aXRoZHJhd24YUyABKAsyGi5ub3JkLlZhdWx0V2l0aGRyYXdSZWNlaXB0SAASPgoTY2xlYXJfbWFya2V0X3Jlc3VsdBhUIAEoCzIfLm5vcmQuUmVjZWlwdC5DbGVhck1hcmtldFJlc3VsdEgAElQKH3B5dGhfbGF6ZXJfb3JhY2xlX3VwZGF0ZV9yZXN1bHQYVSABKAsyKS5ub3JkLlJlY2VpcHQuUHl0aExhemVyT3JhY2xlVXBkYXRlUmVzdWx0SAASXwolcHl0aF9sYXplcl90cnVzdGVkX3NpZ25lcnNfc2V0X3Jlc3VsdBhWIAEoCzIuLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJUcnVzdGVkU2lnbmVyc1NldFJlc3VsdEgAElcKIXB5dGhfbGF6ZXJfZmVlZF9zeW1ib2xfc2V0X3Jlc3VsdBhXIAEoCzIqLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0SAASVQofcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uX3Jlc3VsdBhYIAEoCzIqLm5vcmQuUmVjZWlwdC5SZWR1Y2VPcmRlckxpcXVpZGF0aW9uUmVzdWx0SAASPgoTbWFya2V0X21vZGVfdXBkYXRlZBhZIAEoCzIfLm5vcmQuUmVjZWlwdC5NYXJrZXRNb2RlVXBkYXRlZEgAEiwKDnJmcV9tYWtlcnNfc2V0GFogASgLMhIubm9yZC5SZnFNYWtlcnNTZXRIABI7ChFzZXNzaW9uX3JlZnJlc2hlZBhbIAEoCzIeLm5vcmQuUmVjZWlwdC5TZXNzaW9uUmVmcmVzaGVkSAASQAoUc2VsZl9zZXNzaW9uX3Jldm9rZWQYXCABKAsyIC5ub3JkLlJlY2VpcHQuU2VsZlNlc3Npb25SZXZva2VkSAAaeAoGUG9zdGVkEhgKBHNpZGUYASABKA4yCi5ub3JkLlNpZGUSEQoJbWFya2V0X2lkGAIgASgNEg0KBXByaWNlGAMgASgEEgwKBHNpemUYBCABKAQSEAoIb3JkZXJfaWQYBSABKAQSEgoKYWNjb3VudF9pZBgGIAEoDRpwCgVUcmFkZRIQCghvcmRlcl9pZBgCIAEoBBINCgVwcmljZRgEIAEoBBIMCgRzaXplGAUgASgEEhIKCmFjY291bnRfaWQYBiABKA0SEQoJbWFrZXJfZmVlGAcgASgEEhEKCXRha2VyX2ZlZRgIIAEoBBptChNDcmVhdGVTZXNzaW9uUmVzdWx0EhIKCnNlc3Npb25faWQYASABKAQSDgoGZXhwaXJ5GAIgASgDEh0KEHJlZnJlc2hfZGVhZGxpbmUYAyABKANIAIgBAUITChFfcmVmcmVzaF9kZWFkbGluZRpMChBDYW5jZWxsZWRUcmlnZ2VyEhIKCmFjY291bnRfaWQYASABKA0SJAoHdHJpZ2dlchgCIAEoCzITLm5vcmQuVHJpZ2dlclJlY29yZBraAQoLT3JkZXJVcGRhdGUSMAoGcmVhc29uGAEgASgOMiAubm9yZC5SZWNlaXB0Lk9yZGVyVXBkYXRlLlJlYXNvbhISCgphY2NvdW50X2lkGAIgASgNEhAKCG9yZGVyX2lkGAMgASgEEhYKDnJlbWFpbmluZ19zaXplGAQgASgEEhYKDmNhbmNlbGxlZF9zaXplGAUgASgEEg0KBXByaWNlGAYgASgEIjQKBlJlYXNvbhIPCgtSRURVQ0VfT05MWRAAEhkKFVNFTEZfVFJBREVfUFJFVkVOVElPThABGvcCChBQbGFjZU9yZGVyUmVzdWx0EikKBnBvc3RlZBgBIAEoCzIULm5vcmQuUmVjZWlwdC5Qb3N0ZWRIAIgBARIiCgVmaWxscxgCIAMoCzITLm5vcmQuUmVjZWlwdC5UcmFkZRIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAYgBARIfChJzZW5kZXJfdHJhY2tpbmdfaWQYBCABKARIAogBARI6ChJjYW5jZWxsZWRfdHJpZ2dlcnMYBSADKAsyHi5ub3JkLlJlY2VpcHQuQ2FuY2VsbGVkVHJpZ2dlchIwCg1vcmRlcl91cGRhdGVzGAYgAygLMhkubm9yZC5SZWNlaXB0Lk9yZGVyVXBkYXRlEjEKCXBsYWNlbWVudBgHIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZW1lbnRSZWNlaXB0QgkKB19wb3N0ZWRCEgoQX2NsaWVudF9vcmRlcl9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkGnoKHFJlZHVjZU9yZGVyTGlxdWlkYXRpb25SZXN1bHQSNgoOdHJhZGVfb3JfcGxhY2UYASABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VPcmRlclJlc3VsdBIiCgZhY3Rpb24YAiABKAsyEi5ub3JkLlRyYWRlT3JQbGFjZRqvAQoQUGxhY2VtZW50UmVjZWlwdBIhCgRyb2xlGAEgASgOMhMubm9yZC5QbGFjZW1lbnRSb2xlEjgKB2FjY291bnQYAiABKAsyJS5ub3JkLlJlY2VpcHQuQWNjb3VudFBsYWNlbWVudFJlY2VpcHRIABI0CgV2YXVsdBgDIAEoCzIjLm5vcmQuUmVjZWlwdC5WYXVsdFBsYWNlbWVudFJlY2VpcHRIAEIICgZ0YXJnZXQaGQoXQWNjb3VudFBsYWNlbWVudFJlY2VpcHQaTAoVVmF1bHRQbGFjZW1lbnRSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEiEKBmhlYWx0aBgCIAEoCzIRLm5vcmQuVmF1bHRIZWFsdGga/gEKD1RyaWdnZXJFeGVjdXRlZBITCgtleGVjdXRvcl9pZBgBIAEoDRISCgphY2NvdW50X2lkGAIgASgNEhEKCW1hcmtldF9pZBgDIAEoDRIeCgd0cmlnZ2VyGAQgASgLMg0ubm9yZC5UcmlnZ2VyEhIKCnRyaWdnZXJfaWQYCCABKAQSMQoHc3VjY2VzcxgFIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASKQoHZmFpbHVyZRgGIAEoDjIWLm5vcmQuVHJpZ2dlckV4ZWNFcnJvckgAEhMKCWNhbmNlbGxlZBgHIAEoCEgAQggKBnN0YXR1cxoyCg5UYWtlQWxsQmFsYW5jZRIQCgh0b2tlbl9pZBgBIAEoDRIOCgZhbW91bnQYAiABKAQadwoPVGFrZUFsbFBvc2l0aW9uEhEKCW1hcmtldF9pZBgBIAEoDRIRCgliYXNlX3NpemUYAiABKAMSGAoQc2V0dGxlbWVudF9wcmljZRgDIAEoBBIkChBiYW5rcnVwdGN5X3F1b3RlGAQgASgLMgoubm9yZC5VMTI4GlMKE1Rha2VBbGxPcmRlclVwZGF0ZXMSEQoJbWFya2V0X2lkGAEgASgNEikKBm9yZGVycxgCIAMoCzIZLm5vcmQuUmVjZWlwdC5PcmRlclVwZGF0ZRraAQoWVGFrZUFsbFBvc2l0aW9uc1Jlc3VsdBIYChB0YWtlcl9hY2NvdW50X2lkGAEgASgNEjQKDnRha2VuX2JhbGFuY2VzGAMgAygLMhwubm9yZC5SZWNlaXB0LlRha2VBbGxCYWxhbmNlEjYKD3Rha2VuX3Bvc2l0aW9ucxgEIAMoCzIdLm5vcmQuUmVjZWlwdC5UYWtlQWxsUG9zaXRpb24SOAoNb3JkZXJfdXBkYXRlcxgFIAMoCzIhLm5vcmQuUmVjZWlwdC5UYWtlQWxsT3JkZXJVcGRhdGVzGnMKGUNsZWFyTWFya2V0Q2FuY2VsbGVkT3JkZXISEgoKYWNjb3VudF9pZBgBIAEoDRIQCghvcmRlcl9pZBgCIAEoBBIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAIgBAUISChBfY2xpZW50X29yZGVyX2lkGq0BChlDbGVhck1hcmtldENsb3NlZFBvc2l0aW9uEhIKCmFjY291bnRfaWQYASABKA0SEQoJYmFzZV9zaXplGAIgASgDEhgKEHNldHRsZW1lbnRfcHJpY2UYAyABKAQSGQoFcXVvdGUYBCABKAsyCi5ub3JkLlUxMjgSGQoRdHJhZGluZ19wbmxfZGVsdGEYBSABKAMSGQoRZnVuZGluZ19wbmxfZGVsdGEYBiABKAMaxQEKEUNsZWFyTWFya2V0UmVzdWx0EhEKCW1hcmtldF9pZBgBIAEoDRIXCg9jbGVhcmFuY2VfcHJpY2UYBSABKAQSQQoQY2FuY2VsbGVkX29yZGVycxgDIAMoCzInLm5vcmQuUmVjZWlwdC5DbGVhck1hcmtldENhbmNlbGxlZE9yZGVyEkEKEGNsb3NlZF9wb3NpdGlvbnMYBCADKAsyJy5ub3JkLlJlY2VpcHQuQ2xlYXJNYXJrZXRDbG9zZWRQb3NpdGlvbhqeAQoRQ2FuY2VsT3JkZXJSZXN1bHQSEAoIb3JkZXJfaWQYASABKAQSEgoKYWNjb3VudF9pZBgCIAEoDRIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAIgBARIxCglwbGFjZW1lbnQYBCABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VtZW50UmVjZWlwdEISChBfY2xpZW50X29yZGVyX2lkGnAKDURlcG9zaXRSZXN1bHQSEAoIdG9rZW5faWQYASABKA0SDgoGYW1vdW50GAIgASgEEhIKCmFjY291bnRfaWQYAyABKA0SFAoMdXNlcl9jcmVhdGVkGAQgASgIEhMKC3VzZXJfcHVia2V5GAUgASgMGkMKEUluc2VydFRva2VuUmVzdWx0EhIKCmNoYWluX2FkZHIYASABKAwSGgoFdG9rZW4YAiABKAsyCy5ub3JkLlRva2VuGjIKEkluc2VydE1hcmtldFJlc3VsdBIcCgZtYXJrZXQYASABKAsyDC5ub3JkLk1hcmtldBp5Cg5XaXRoZHJhd1Jlc3VsdBIQCgh0b2tlbl9pZBgBIAEoDRIOCgZhbW91bnQYAiABKAQSDwoHYmFsYW5jZRgDIAEoBBISCgphY2NvdW50X2lkGAQgASgNEgsKA2ZlZRgFIAEoBBITCgt1c2VyX3B1YmtleRgGIAEoDBpAChZPcmFjbGVTeW1ib2xGZWVkUmVzdWx0EhUKDW9yYWNsZV9zeW1ib2wYASABKAkSDwoHZmVlZF9pZBgCIAEoDBonChJPcmFjbGVVcGRhdGVSZXN1bHQSEQoJdGltZXN0YW1wGAEgASgDGjcKG1B5dGhMYXplck9yYWNsZVVwZGF0ZVJlc3VsdBIYChB0aW1lc3RhbXBfbWlsbGlzGAEgASgEGlkKIFB5dGhMYXplclRydXN0ZWRTaWduZXJzU2V0UmVzdWx0EjUKD3RydXN0ZWRfc2lnbmVycxgBIAMoCzIcLm5vcmQuUHl0aExhemVyVHJ1c3RlZFNpZ25lchqaAQocUHl0aExhemVyRmVlZFN5bWJvbFNldFJlc3VsdBJECgVmZWVkcxgBIAMoCzI1Lm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0LkZlZWRTeW1ib2waNAoKRmVlZFN5bWJvbBIPCgdmZWVkX2lkGAEgASgNEhUKDW9yYWNsZV9zeW1ib2wYAiABKAkaSAoXVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHQSGgoSZ3VhcmRpYW5fc2V0X2luZGV4GAEgASgNEhEKCWFkZHJlc3NlcxgCIAMoDBpDCgxQZXJwUG9zaXRpb24SEQoJbWFya2V0X2lkGAEgASgNEhEKCWJhc2Vfc2l6ZRgCIAEoAxINCgVwcmljZRgDIAEoBBoQCg5TZXNzaW9uUmV2b2tlZBoUChJTZWxmU2Vzc2lvblJldm9rZWQaNgoQU2Vzc2lvblJlZnJlc2hlZBISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxoICgZQYXVzZWQaCgoIVW5wYXVzZWQaKAoSQmFja3N0b3BBY2NvdW50U2V0EhIKCmFjY291bnRfaWQYASABKA0a/AEKCVJlY2lwaWVudBIyCgdzcGVjaWFsGAEgASgLMh8ubm9yZC5SZWNlaXB0LlJlY2lwaWVudC5TcGVjaWFsSAASLgoFb3duZWQYAiABKAsyHS5ub3JkLlJlY2VpcHQuUmVjaXBpZW50Lk93bmVkSAASMgoHdW5vd25lZBgDIAEoCzIfLm5vcmQuUmVjZWlwdC5SZWNpcGllbnQuVW5vd25lZEgAGgkKB1NwZWNpYWwaGwoFT3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDRodCgdVbm93bmVkEhIKCmFjY291bnRfaWQYASABKA1CEAoOcmVjaXBpZW50X3R5cGUaowEKC1RyYW5zZmVycmVkEhcKD2Zyb21fYWNjb3VudF9pZBgBIAEoDRIrCgp0b19hY2NvdW50GAIgASgLMhcubm9yZC5SZWNlaXB0LlJlY2lwaWVudBIQCgh0b2tlbl9pZBgDIAEoDRIOCgZhbW91bnQYBCABKAQSFwoPYWNjb3VudF9jcmVhdGVkGAUgASgIEhMKC3VzZXJfcHVia2V5GAYgASgMGkoKE0ZlZVZhdWx0VHJhbnNmZXJyZWQSEQoJcmVjaXBpZW50GAEgASgNEhAKCHRva2VuX2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBp6CgxUcmlnZ2VyQWRkZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQafAoOVHJpZ2dlclJlbW92ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQagAEKDVRyaWdnZXJFZGl0ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEicKEHByZXZpb3VzX3RyaWdnZXIYAyABKAsyDS5ub3JkLlRyaWdnZXISHgoHdHJpZ2dlchgEIAEoCzINLm5vcmQuVHJpZ2dlcho4ChNNYXJrZXRGcmVlemVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIOCgZmcm96ZW4YAiABKAgakAEKEU1hcmtldE1vZGVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIlCgttYXJrZXRfbW9kZRgCIAEoDjIQLm5vcmQuTWFya2V0TW9kZRJBChBjYW5jZWxsZWRfb3JkZXJzGAMgAygLMicubm9yZC5SZWNlaXB0LkNsZWFyTWFya2V0Q2FuY2VsbGVkT3JkZXIaPwoMRmVlVGllckFkZGVkEiMKBmNvbmZpZxgBIAEoCzITLm5vcmQuRmVlVGllckNvbmZpZxIKCgJpZBgCIAEoDRpBCg5GZWVUaWVyVXBkYXRlZBIKCgJpZBgBIAEoDRIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaOAoTQWNjb3VudHNUaWVyVXBkYXRlZBIPCgd0aWVyX2lkGAEgASgNEhAKCGFjY291bnRzGAIgAygNGmAKCkFjbFVwZGF0ZWQSEgoKYWNsX3B1YmtleRgBIAEoDBISCgpyb2xlc19tYXNrGAIgASgEEhUKDXRhcmdldF9wdWJrZXkYAyABKAwSEwoLcm9sZXNfdmFsdWUYBCABKAQa7AMKGUF0b21pY1N1YmFjdGlvblJlc3VsdEtpbmQSPAoScGxhY2Vfb3JkZXJfcmVzdWx0GAEgASgLMh4ubm9yZC5SZWNlaXB0LlBsYWNlT3JkZXJSZXN1bHRIABI3CgxjYW5jZWxfb3JkZXIYAiABKAsyHy5ub3JkLlJlY2VpcHQuQ2FuY2VsT3JkZXJSZXN1bHRIABIzCg10cmlnZ2VyX2FkZGVkGAMgASgLMhoubm9yZC5SZWNlaXB0LlRyaWdnZXJBZGRlZEgAEjcKD3RyaWdnZXJfcmVtb3ZlZBgEIAEoCzIcLm5vcmQuUmVjZWlwdC5UcmlnZ2VyUmVtb3ZlZEgAEjUKDnRyaWdnZXJfZWRpdGVkGAUgASgLMhsubm9yZC5SZWNlaXB0LlRyaWdnZXJFZGl0ZWRIABJOChhyZWR1Y2Vfb3JkZXJfbGlxdWlkYXRpb24YBiABKAsyKi5ub3JkLlJlY2VpcHQuUmVkdWNlT3JkZXJMaXF1aWRhdGlvblJlc3VsdEgAEioKCnJmcV9yZXN1bHQYByABKAsyFC5ub3JkLlBsYWNlUkZRUmVzdWx0SAASLgoPcmZxX2ZpbGxfcmVzdWx0GAggASgLMhMubm9yZC5GaWxsUkZRUmVzdWx0SABCBwoFaW5uZXIaSAoMQXRvbWljUmVzdWx0EjgKB3Jlc3VsdHMYASADKAsyJy5ub3JkLlJlY2VpcHQuQXRvbWljU3ViYWN0aW9uUmVzdWx0S2luZEIGCgRraW5kKhgKBFNpZGUSBwoDQVNLEAASBwoDQklEEAEqHwoKTWFya2V0TW9kZRIICgRDTE9CEAASBwoDUkZREAEqYwoMTWFya2V0UmVnaW1lEhgKFE1BUktFVF9SRUdJTUVfTk9STUFMEAASGwoXTUFSS0VUX1JFR0lNRV9QT1NUX09OTFkQARIcChhNQVJLRVRfUkVHSU1FX1RSQURFX09OTFkQAiotCgtUcmlnZ2VyS2luZBINCglTVE9QX0xPU1MQABIPCgtUQUtFX1BST0ZJVBABKiQKBkludGVudBIMCghERUNSRUFTRRAAEgwKCElOQ1JFQVNFEAEqTwoIRmlsbE1vZGUSCQoFTElNSVQQABINCglQT1NUX09OTFkQARIXChNJTU1FRElBVEVfT1JfQ0FOQ0VMEAISEAoMRklMTF9PUl9LSUxMEAMqrgEKDVBsYWNlbWVudFJvbGUSIAocUExBQ0VNRU5UX1JPTEVfQUNDT1VOVF9PV05FUhAAEiAKHFBMQUNFTUVOVF9ST0xFX1ZBVUxUX01BTkFHRVIQARIeChpQTEFDRU1FTlRfUk9MRV9TVVBFUl9BRE1JThACEhoKFlBMQUNFTUVOVF9ST0xFX1RSSUdHRVIQAxIdChlQTEFDRU1FTlRfUk9MRV9MSVFVSURBVE9SEAQqMQoTU2VsZlRyYWRlUHJldmVudGlvbhIICgROT05FEAASEAoMRVhQSVJFX01BS0VSEAEqJgoKTWFya2V0VHlwZRIICgRTUE9UEAASDgoKUEVSUEVUVUFMUxABKn0KEFRyaWdnZXJFeGVjRXJyb3ISDwoLTk9fUE9TSVRJT04QABITCg9QTEFOTklOR19GQUlMRUQQARIOCgpCQU5LUlVQVENZEAISFQoRUklTS19DSEVDS19GQUlMRUQQAxIcChhSRURVQ0VfT05MWV9DSEVDS19GQUlMRUQQBCofCg5TcGVjaWFsQWNjb3VudBINCglGRUVfVkFVTFQQACpdCgtWYXVsdFN0YXR1cxIXChNWQVVMVF9TVEFUVVNfQUNUSVZFEAASHAoYVkFVTFRfU1RBVFVTX0RFUklTS19PTkxZEAESFwoTVkFVTFRfU1RBVFVTX0ZST1pFThACKugpCgVFcnJvchINCglEVVBMSUNBVEUQABIVChFJTlZBTElEX1NJR05BVFVSRRADEhQKEE1BUktFVF9OT1RfRk9VTkQQBBITCg9UT0tFTl9OT1RfRk9VTkQQBRISCg5VU0VSX05PVF9GT1VORBAGEhUKEVNFU1NJT05fTk9UX0ZPVU5EEAcSEwoPT1JERVJfTk9UX0ZPVU5EEAgSEwoPT1JERVJfU0laRV9aRVJPEAkSDgoKQVJJVEhNRVRJQxALEhcKE0FSSVRITUVUSUNfT1ZFUkZMT1cQDBIYChRBUklUSE1FVElDX1VOREVSRkxPVxANEh8KG0FSSVRITUVUSUNfRElWSVNJT05fQllfWkVSTxAOEhoKFktFWV9BTFJFQURZX1JFR0lTVEVSRUQQDxIcChhVUERBVEVfVElNRVNUQU1QX0lOX1BBU1QQERIYChRUT09fTUFOWV9PUEVOX09SREVSUxASEh0KGVdJVEhEUkFXX0FNT1VOVF9UT09fU01BTEwQFRIpCiVTT1VSQ0VfQU5EX1RBUkdFVF9TSE9VTERfTk9UX0JFX0VRVUFMEBgSEgoOREVDT0RFX0ZBSUxVUkUQIBIgChxERUNPREVfRkFJTFVSRV9MRU5HVEhfUFJFRklYECESFgoSREVDT0RFX0ZBSUxVUkVfUkFXECISGQoVREVDT0RFX0ZBSUxVUkVfRE9NQUlOECMSHwobVVBEQVRFX1BVQkxJU0hfVElNRV9JTl9QQVNUECQSCwoHU0VTU0lPThAwEh8KG1NFU1NJT05fUkVGUkVTSF9OT1RfRU5BQkxFRBAxEioKJlNFU1NJT05fUkVGUkVTSF9ERUFETElORV9CRUZPUkVfRVhQSVJZEDISFwoTUFlUSF9GRUVEX05PVF9BRERFRBBdEhUKEVBZVEhfRkVFRF9NSVNTSU5HEF4SGwoXUFlUSF9GRUVEX0FMUkVBRFlfQURERUQQXxIjCh9QWVRIX0dVQVJESUFOX1NFVF9VTklOSVRJQUxJWkVEEGASHQoZUFlUSF9HVUFSRElBTl9TRVRfSU5WQUxJRBBhEiMKH1BZVEhfRkVFRF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQYhIgChxQWVRIX0ZFRURfUFJJQ0VfT1VUX09GX1JBTkdFEGMSIwofUFlUSF9GRUVEX1ZBUklBTkNFX09VVF9PRl9SQU5HRRBkEjUKMVBZVEhfR1VBUkRJQU5fU0VUX0FORF9QWVRIX1NJR05BVFVSRV9ET19OT1RfTUFUQ0gQZRIcChhJTlZBTElEX1RPS0VOX1BBUkFNRVRFUlMQZhIcChhJTkRFWF9QUklDRV9PVVRfT0ZfUkFOR0UQZxIfChtJTkRFWF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQaBIZChVJTlZBTElEX1NUQVRFX1ZFUlNJT04QaRITCg9JTlZBTElEX01BUkdJTlMQbBIhCh1NQVJLRVRfREVDSU1BTFNfRVhDRUVEX0xJTUlUUxBtEhMKD1RPT19NQU5ZX1RPS0VOUxBuEggKBFRJRVIQcxIZChVUSUVSX0ZFRV9PVVRfT0ZfUkFOR0UQdBIYChRUSUVSX0lEX09VVF9PRl9SQU5HRRB1EhIKDlRJRVJfTk9UX0ZPVU5EEHYSFAoQRlVORElOR19PVkVSRkxPVxB7EjcKM0NBTl9SRURVQ0VfUE9TSVRJT05fT05MWV9JRl9BTExfT1JERVJTX0FSRV9DQU5DRUxFRBB8EhcKE1VORVhQRUNURURfVE9LRU5fSUQQfxIWChFSRVBFQVRFRF9PUkRFUl9JRBCAARIeChlDTElFTlRfT1JERVJfSURfVE9PX0xBUkdFEIEBEhQKD1RPS0VOX05PVF9SRUFEWRCCARIdChhUT0tFTl9BTFJFQURZX1JFR0lTVEVSRUQQgwESIQocSU1NRURJQVRFX09SREVSX0dPVF9OT19GSUxMUxCFARIZChRGQUlMRURfVE9fRklMTF9MSU1JVBCGARIwCitQT1NUX09OTFlfTVVTVF9OT1RfRklMTF9BTllfT1BQT1NJVEVfT1JERVJTEIcBEgwKB0lOVkFMSUQQiAESEAoLTUFJTlRFTkFOQ0UQiQESGgoVTUlOSU1VTV9TSVpFX0RFQ0lNQUxTEIoBEjIKLVBBUkFNRVRFUlNfV0lMTF9DUkVBVEVfTk9OX09QRVJBVElPTkFMX01BUktFVBCLARIiCh1PTkxZX0lNTUVESUFURV9PUkRFUlNfQUxMT1dFRBCMARIbChZUT09fTUFOWV9VU0VSX0FDQ09VTlRTEI0BEhYKEUFDQ09VTlRfTk9UX0ZPVU5EEI4BEhoKFUFDQ09VTlRfSU5WQUxJRF9PV05FUhCPARIbChZTVUJBQ1RJT05fT1VUX09GX1JBTkdFEJABEhEKDERVU1RfQUNDT1VOVBCRARIMCgdCQUxBTkNFEKABEh0KGEJBTEFOQ0VfREVQT1NJVF9PVkVSRkxPVxChARIcChdCQUxBTkNFX0NIQU5HRV9PVkVSRkxPVxCiARIiCh1CQUxBTkNFX0NIQU5HRV9MSU1JVF9FWENFRURFRBCjARIZChRCQUxBTkNFX0lOU1VGRklDSUVOVBCkARIeChlVTkFVVEhFTlRJQ0FURURfTDFfQUNUSU9OEKUBEh0KGEVOQ09ERURfQUNUSU9OX1RPT19MQVJHRRCmARIMCgdUUklHR0VSEKgBEhoKFVRSSUdHRVJfSU5WQUxJRF9QUklDRRCpARIWChFUUklHR0VSX05PVF9GT1VORBCqARIrCiZUUklHR0VSX09OTFlfREVDUkVBU0VfT1JERVJTX1NVUFBPUlRFRBCrARIoCiNUUklHR0VSX01BWF9TSVpFX1BMQUNFTUVOVF9FWENFRURFRBCsARIYChNUUklHR0VSX05PVF9DSEFOR0VEEK0BEg4KCVRJTUVTVEFNUBCwARIfChpUSU1FU1RBTVBfT1VUX09GX1RIUkVTSE9MRBCxARIUCg9USU1FU1RBTVBfU1RBTEUQsgESHAoYRVhQSVJZX1RJTUVTVEFNUF9JTl9QQVNUEBASJQogQkFOS1JVUFRDWV9JTlNVRkZJQ0lFTlRfQ09WRVJBR0UQuQESGQoUQkFOS1JVUFRDWV9OT1RfRk9VTkQQugESGwoWQkFOS1JVUFRDWV9OT1RfQUxMT1dFRBC7ARIVChBNQVJLRVRfTk9UX1JFQURZEMABEhIKDU1BUktFVF9GUk9aRU4QwQESEQoMTUFSS0VUX0VNUFRZEMIBEjAKK01BUktFVF9NT0RFX0RPRVNfTk9UX1NVUFBPUlRfVEhJU19PUEVSQVRJT04QwwESDQoIUE9TSVRJT04QyAESFwoSUE9TSVRJT05fTk9UX0ZPVU5EEMkBEhkKFFBPU0lUSU9OX1NUQVRFX09SREVSEMoBEh8KGlBPU0lUSU9OX1NUQVRFX09SREVSX1BSSUNFEMsBEh4KGVBPU0lUSU9OX1NUQVRFX09SREVSX1NJWkUQzAESHgoZUE9TSVRJT05fU1RBVEVfT1JERVJfU0lERRDNARIYChNQT1NJVElPTl9TSVpFX0xJTUlUEM4BEhgKE1BPU0lUSU9OX1NUQVRFX1BFUlAQzwESJAofUE9TSVRJT05fU1RBVEVfT1JERVJfREVMRUdBVElPThDQARIKCgVQUklDRRDRARIbChZTSUdOQVRVUkVfVkVSSUZJQ0FUSU9OENkBEjAKK1NJR05BVFVSRV9WRVJJRklDQVRJT05fTUFMRk9STUVEX1BVQkxJQ19LRVkQ2gESKgolU0lHTkFUVVJFX1ZFUklGSUNBVElPTl9JTlZBTElEX0xFTkdUSBDbARIJCgRSSVNLEOABEjQKL1JJU0tfREVMRUdBVElPTl9NRl9UT19CRV9MRVNTX1RIQU5fT1JfRVFVQUxfTU1GEOEBEiQKH1JJU0tfT01GX0xFU1NfVEhBTl9PUl9FUVVBTF9JTUYQ4gESJAofUklTS19PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDjARI1CjBSSVNLX1VOSEVBTFRIWV9NRl9BTkRfUE9OX0FGVEVSX0JFVFRFUl9PRl9CRUZPUkUQ5AESKgolUklTS19UUkFERV9PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDlARIUCg9SSVNLX05PVF9FTk9VR0gQ5gESFAoPT1JERVJfRVhFQ1VUSU9OEPABEhoKFU9SREVSX0VYRUNVVElPTl9FTVBUWRDxARIhChxPUkRFUl9FWEVDVVRJT05fRklMTF9PUl9LSUxMEPIBEiMKHk9SREVSX0VYRUNVVElPTl9NSVNTSU5HX0xJTUlUUxDzARIiCh1PUkRFUl9FWEVDVVRJT05fTUlTU0lOR19QUklDRRD0ARIfChpPUkRFUl9FWEVDVVRJT05fU0laRV9MSU1JVBD1ARIgChtPUkRFUl9FWEVDVVRJT05fTElNSVRfUFJJQ0UQ9gESHgoZT1JERVJfUkVEVUNFX0lTX1BPU1RfT05MWRD3ARIfChpPUkRFUl9FWEVDVVRJT05fU0VMTF9QUklDRRD4ARIlCiBPUkRFUl9TSVpFX0VYQ0VFRFNfUE9TSVRJT05fU0laRRD5ARIMCgdBVE9NSUNTEIACEigKI0FUT01JQ1NfVFJBREVTX0NBTk5PVF9GT0xMT1dfUExBQ0VTEIECEjAKK0FUT01JQ1NfQ0FOQ0VMU19DQU5OT1RfRk9MTE9XX1RSQURFU19QTEFDRVMQggISHQoYQVRPTUlDU19EVVBMSUNBVEVfQ0FOQ0VMEIMCEhgKE1JGUV9PUkRFUl9USU1FT1VURUQQ+gESJgohQUNUSU9OX1BPU0lUSU9OX1NIT1VMRF9CRV9DT1ZFUkVEEJECEhkKFEFDVElPTl9JTlZBTElEX05PTkNFEJICEikKJEFDVElPTl9QUk9QT1NFRF9QUklDRV9NVVNUX0JFX0hJR0hFUhCTAhIcChdBRE1JTl9ST0xFX0lOU1VGRklDSUVOVBCUAhIUCg9BRE1JTl9OT1RfRk9VTkQQlQISKQokVU5JUVVFX1NVUEVSX0FETUlOX0NBTk5PVF9CRV9SRU1PVkVEEJYCEh8KGlNVUEVSX0FETUlOX0FMUkVBRFlfRVhJU1RTEJcCEhUKEFRSSUdHRVJfQ09ORkxJQ1QQmAISGgoVVFJJR0dFUl9FRElUX0NPTkZMSUNUEJkCEhwKF1RSSUdHRVJfUkVNT1ZFX0NPTkZMSUNUEJoCEg0KCFRSQU5TRkVSEKACEi4KKVRSQU5TRkVSX1RPX1VOT1dORURfQUNDT1VOVF9JU19QUk9ISUJJVEVEEKECEiwKJ1RSQU5TRkVSX1RPX09XTkVEX0FDQ09VTlRfV0FTX1JFUVVFU1RFRBCiAhIKCgVWQVVMVBCoAhIUCg9WQVVMVF9OT1RfRk9VTkQQqQISHQoYVkFVTFRfQUNUSU9OX05PVF9BTExPV0VEEKoCEhkKFFZBVUxUX1NUQVRVU19JTlZBTElEEKsCEiUKIFZBVUxUX1JFRFVDRV9PTkxZX09SREVSX1JFUVVJUkVEEKwCEiYKIVZBVUxUX0FDVElPTl9XT1VMRF9ERUdSQURFX1NUQVRVUxCtAhIZChRWQVVMVF9VU0VSX05PVF9GT1VORBCuAhIdChhWQVVMVF9VU0VSX0hBU19OT19TSEFSRVMQrwISHAoXVkFVTFRfUEVSTUlTU0lPTl9ERU5JRUQQtgISEgoNVkFVTFRfREVQT1NJVBCwAhIxCixWQVVMVF9ERVBPU0lUX0JPT1RTVFJBUF9SRVFVSVJFU19FTVBUWV9WQVVMVBCxAhIfChpWQVVMVF9ERVBPU0lUX0NBUF9FWENFRURFRBCyAhIpCiRWQVVMVF9ERVBPU0lUX1JFUVVJUkVTX0FDVElWRV9TVEFUVVMQswISLwoqVkFVTFRfREVQT1NJVF9DQVBfQkVMT1dfQ1VSUkVOVF9SQVdfRVFVSVRZELQCEhwKF1ZBVUxUX0RFUE9TSVRfVE9PX1NNQUxMELUCEhMKDlZBVUxUX1dJVEhEUkFXELgCEh4KGVZBVUxUX0lOU1VGRklDSUVOVF9TSEFSRVMQuQISLgopVkFVTFRfV0lUSERSQVdfUkVRVUlSRVNfTk9OX0ZST1pFTl9TVEFUVVMQugISIgodVkFVTFRfTk9fQ0xBSU1BQkxFX1dJVEhEUkFXQUwQuwISJQogVkFVTFRfV0lUSERSQVdfUVVPVEVfVU5BVkFJTEFCTEUQvAISLQooVkFVTFRfRFVTVF9FWElUX1JFUVVJUkVTX0ZVTExfU0hBUkVfRVhJVBC9AhI1CjBWQVVMVF9MQVNUX1NIQVJFX1dJVEhEUkFXX1JFUVVJUkVTX0VNUFRZX0FDQ09VTlQQvgISKAojVkFVTFRfV0lUSERSQVdfUkVRVUlSRVNfTElWRV9TSEFSRVMQvwISEgoNVkFVTFRfQ09OVFJPTBDAAhIdChhWQVVMVF9FUE9DSF9OT1RfRUxJR0lCTEUQwQISMQosVkFVTFRfUFJFVklPVVNfRVBPQ0hfV0lUSERSQVdBTFNfTk9UX1BBWUFCTEUQwgISMgotVkFVTFRfRlJFRVpFX1RIUkVTSE9MRF9NVVNUX0VYQ0VFRF9QUk9URUNUSU9OEMMCEh0KGFZBVUxUX0NPTkZJR19QQVRDSF9FTVBUWRDEAhIoCiNWQVVMVF9OT19TVEFUVVNfVFJBTlNJVElPTl9SRVFVSVJFRBDFAhItCihWQVVMVF9GUk9aRU5fU1RBVFVTX1JFUVVJUkVTX1NVUEVSX0FETUlOEMYCEioKJVZBVUxUX05FV19DT05GSUdfV09VTERfREVHUkFERV9TVEFUVVMQxwISDgoJUkZRX0VSUk9SEMgCEhAKC1JGUV9USU1FT1VUEMkCEhQKD05PVF9JTVBMRU1FTlRFRBD0AxIXChJBQ1RJT05fTk9UX0FMTE9XRUQQ9QMSGAoTTk9UX1NVUFBPUlRFRF9JTlBVVBD2AxIMCgdEUk9QUEVEEOcHYgZwcm90bzM");
57297
+ var file_nord = /* @__PURE__ */ fileDesc("Cgpub3JkLnByb3RvEgRub3JkIh4KBFUxMjgSCgoCbG8YASABKAQSCgoCaGkYAiABKAQikAIKCFJmcVRyYWRlEhsKDnRpbWVvdXRfbWlsbGlzGAEgASgNSACIAQESEQoJbWFya2V0X2lkGAIgASgNEhAKCG9yZGVyX2lkGAMgASgEEg0KBXByaWNlGAQgASgEEhgKEHRpbWVzdGFtcF9taWxsaXMYBSABKAMSGwoOaXNfcmVkdWNlX29ubHkYBiABKAhIAYgBARIZCgxtaW5pbXVtX3NpemUYByABKARIAogBARIZCgxtYXhpbXVtX3NpemUYCCABKARIA4gBAUIRCg9fdGltZW91dF9taWxsaXNCEQoPX2lzX3JlZHVjZV9vbmx5Qg8KDV9taW5pbXVtX3NpemVCDwoNX21heGltdW1fc2l6ZSKwAgoMUmZxUGxhY2VPbmx5EhEKCW1hcmtldF9pZBgHIAEoDRIbCg50aW1lb3V0X21pbGxpcxgBIAEoDUgAiAEBEhwKD2NsaWVudF9vcmRlcl9pZBgCIAEoBEgBiAEBEg0KBXByaWNlGAMgASgEEhgKBHNpZGUYBCABKA4yCi5ub3JkLlNpZGUSGAoQdGltZXN0YW1wX21pbGxpcxgGIAEoAxIMCgRzaXplGAggASgEEhkKDG1pbmltYWxfZmlsbBgJIAEoBEgCiAEBEhsKDmlzX3JlZHVjZV9vbmx5GAogASgISAOIAQFCEQoPX3RpbWVvdXRfbWlsbGlzQhIKEF9jbGllbnRfb3JkZXJfaWRCDwoNX21pbmltYWxfZmlsbEIRCg9faXNfcmVkdWNlX29ubHkiIwoMU2V0UmZxTWFrZXJzEhMKC2FjY291bnRfaWRzGAEgAygNIiUKEFNldE1hcmtldE1vZGVSRlESEQoJbWFya2V0X2lkGAEgASgNItMCCg9DcmVhdGVSZnFNYXJrZXQSMAoIZGVjaW1hbHMYASABKAsyHi5ub3JkLkNyZWF0ZVJmcU1hcmtldC5EZWNpbWFscxIuCgdtYXJnaW5zGAIgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuTWFyZ2lucxIuCgdzeW1ib2xzGAMgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuU3ltYm9scxo5CghEZWNpbWFscxIVCg1zaXplX2RlY2ltYWxzGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNGjwKB01hcmdpbnMSDwoHaW1mX2JwcxgDIAEoDRIPCgdjbWZfYnBzGAQgASgNEg8KB21tZl9icHMYBSABKA0aNQoHU3ltYm9scxITCgt2aWV3X3N5bWJvbBgHIAEoCRIVCg1vcmFjbGVfc3ltYm9sGAggASgJIpQBCg5SZnFUcmFkZUFjdGlvbhIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIcChRxdW90ZV90aW1lb3V0X21pbGxpcxgEIAEoDRITCgliYXNlX3NpemUYBSABKANIAEIKCghxdWFudGl0eUoECAYQByLbAgoPUmZxVHJhZGVSZWNlaXB0EhAKCG9yZGVyX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoDRIwCgdzdWNjZXNzGAMgASgLMh0ubm9yZC5SZnFUcmFkZVJlY2VpcHQuU3VjY2Vzc0gAEjYKB2ZhaWx1cmUYBCABKA4yIy5ub3JkLlJmcVRyYWRlUmVjZWlwdC5GYWlsdXJlUmVhc29uSAAaggEKB1N1Y2Nlc3MSEAoIcXVvdGVfaWQYASABKAQSGAoEc2lkZRgCIAEoDjIKLm5vcmQuU2lkZRIYChBmaWxsZWRfYmFzZV9zaXplGAMgASgEEiIKDnF1b3RlX25vdGlvbmFsGAQgASgLMgoubm9yZC5VMTI4Eg0KBXByaWNlGAUgASgEIioKDUZhaWx1cmVSZWFzb24SCwoHVElNRU9VVBAAEgwKCFJFSkVDVEVEEAFCCAoGcmVzdWx0IjoKDlBsYWNlUkZRUmVzdWx0EhAKCG9yZGVyX2lkGAEgASgEEhYKDnRpbWVvdXRfbWlsbGlzGAIgASgNIk4KDFJGUUV4ZWN1dGlvbhITCgtmaWxsZWRfc2l6ZRgBIAEoBBIQCgh0cmFkZV9pZBgCIAEoBBIXCg9leGVjdXRpb25fcHJpY2UYAyABKAQifAoNRmlsbFJGUVJlc3VsdBIQCghvcmRlcl9pZBgBIAEoBBIYChBtYWtlcl9hY2NvdW50X2lkGAIgASgNEhgKEHRha2VyX2FjY291bnRfaWQYAyABKA0SJQoJZXhlY3V0aW9uGAQgASgLMhIubm9yZC5SRlFFeGVjdXRpb24iIwoMUmZxTWFrZXJzU2V0EhMKC2FjY291bnRfaWRzGAEgAygNIiYKC1JGUVF0eVBsYWNlEhcKA3F0eRgBIAEoCzIKLm5vcmQuVTEyOCI9Cg1GZWVUaWVyQ29uZmlnEhUKDW1ha2VyX2ZlZV9wcG0YASABKA0SFQoNdGFrZXJfZmVlX3BwbRgCIAEoDSKBAQoRRmVlVGllclR5cGVDb25maWcSGgoSY2xvYl9tYWtlcl9mZWVfcHBtGAEgASgNEhoKEmNsb2JfdGFrZXJfZmVlX3BwbRgCIAEoDRIZChFyZnFfbWFrZXJfZmVlX3BwbRgDIAEoDRIZChFyZnFfdGFrZXJfZmVlX3BwbRgEIAEoDSL3AQoGTWFya2V0EhEKCW1hcmtldF9pZBgBIAEoDRIWCg5wcmljZV9kZWNpbWFscxgCIAEoDRIVCg1zaXplX2RlY2ltYWxzGAMgASgNEhUKDWJhc2VfdG9rZW5faWQYBCABKA0SJQoLbWFya2V0X3R5cGUYBSABKA4yEC5ub3JkLk1hcmtldFR5cGUSDwoHaW1mX2JwcxgGIAEoDRIPCgdjbWZfYnBzGAcgASgNEg8KB21tZl9icHMYCCABKA0SJQoLbWFya2V0X21vZGUYCSABKA4yEC5ub3JkLk1hcmtldE1vZGUSEwoLdmlld19zeW1ib2wYCiABKAkiWgoFVG9rZW4SEAoIdG9rZW5faWQYASABKA0SFgoOdG9rZW5fZGVjaW1hbHMYAiABKA0SEgoKd2VpZ2h0X2JwcxgEIAEoDRITCgt2aWV3X3N5bWJvbBgFIAEoCSK2AQoLVmF1bHRIZWFsdGgSKgoRcmF3X2FjY291bnRfdmFsdWUYASABKAsyCi5ub3JkLlUxMjhIAIgBARIrChJzYWZlX2FjY291bnRfdmFsdWUYAiABKAsyCi5ub3JkLlUxMjhIAYgBARIhCgZzdGF0dXMYAyABKA4yES5ub3JkLlZhdWx0U3RhdHVzQhQKEl9yYXdfYWNjb3VudF92YWx1ZUIVChNfc2FmZV9hY2NvdW50X3ZhbHVlIrABCgtWYXVsdENvbmZpZxIfCgtkZXBvc2l0X2NhcBgBIAEoCzIKLm5vcmQuVTEyOBIiChpvcGVuX3Bvc2l0aW9uX2Rpc2NvdW50X2JwcxgCIAEoDRIfChdkcmF3ZG93bl9wcm90ZWN0aW9uX2JwcxgDIAEoDRIbChNkcmF3ZG93bl9mcmVlemVfYnBzGAQgASgNEh4KFmVwb2NoX21pbl9kdXJhdGlvbl9zZWMYBSABKA0izAIKEFZhdWx0Q29uZmlnUGF0Y2gSJAoLZGVwb3NpdF9jYXAYASABKAsyCi5ub3JkLlUxMjhIAIgBARInChpvcGVuX3Bvc2l0aW9uX2Rpc2NvdW50X2JwcxgCIAEoDUgBiAEBEiQKF2RyYXdkb3duX3Byb3RlY3Rpb25fYnBzGAMgASgNSAKIAQESIAoTZHJhd2Rvd25fZnJlZXplX2JwcxgEIAEoDUgDiAEBEiMKFmVwb2NoX21pbl9kdXJhdGlvbl9zZWMYBSABKA1IBIgBAUIOCgxfZGVwb3NpdF9jYXBCHQobX29wZW5fcG9zaXRpb25fZGlzY291bnRfYnBzQhoKGF9kcmF3ZG93bl9wcm90ZWN0aW9uX2Jwc0IWChRfZHJhd2Rvd25fZnJlZXplX2Jwc0IZChdfZXBvY2hfbWluX2R1cmF0aW9uX3NlYyJICgtDcmVhdGVWYXVsdBIWCg5tYW5hZ2VyX3B1YmtleRgBIAEoDBIhCgZjb25maWcYAiABKAsyES5ub3JkLlZhdWx0Q29uZmlnIlMKEVVwZGF0ZVZhdWx0Q29uZmlnEhAKCHZhdWx0X2lkGAEgASgNEiwKDGNvbmZpZ19wYXRjaBgCIAEoCzIWLm5vcmQuVmF1bHRDb25maWdQYXRjaCI7Cg9TZXRWYXVsdE1hbmFnZXISEAoIdmF1bHRfaWQYASABKA0SFgoObWFuYWdlcl9wdWJrZXkYAiABKAwiNwoPVmF1bHRTeW5jRXBvY2hzEhIKCnNlc3Npb25faWQYASABKAQSEAoIdmF1bHRfaWQYAiABKA0iTgoRU3RhZ2VkQWRtaW5BY3Rpb24SFAoMYWRtaW5fcHVia2V5GAEgASgMEiMKBGtpbmQYAiABKAsyFS5ub3JkLkFkbWluQWN0aW9uS2luZCKzBAoPQWRtaW5BY3Rpb25LaW5kEikKDGNyZWF0ZV92YXVsdBgBIAEoCzIRLm5vcmQuQ3JlYXRlVmF1bHRIABI2ChN1cGRhdGVfdmF1bHRfY29uZmlnGAIgASgLMhcubm9yZC5VcGRhdGVWYXVsdENvbmZpZ0gAEjIKEXNldF92YXVsdF9tYW5hZ2VyGAMgASgLMhUubm9yZC5TZXRWYXVsdE1hbmFnZXJIABIyChFjcmVhdGVfcmZxX21hcmtldBgEIAEoCzIVLm5vcmQuQ3JlYXRlUmZxTWFya2V0SAASVgohc2V0X21hcmtldF9tb2RlX2Nsb2JfdHJhZGluZ19vbmx5GAUgASgLMikubm9yZC5BY3Rpb24uU2V0TWFya2V0TW9kZUNMT0JUcmFkaW5nT25seUgAEjUKE3NldF9tYXJrZXRfbW9kZV9yZnEYBiABKAsyFi5ub3JkLlNldE1hcmtldE1vZGVSRlFIABJQCh5zZXRfbWFya2V0X21vZGVfY2xvYl9wb3N0X29ubHkYByABKAsyJi5ub3JkLkFjdGlvbi5TZXRNYXJrZXRNb2RlQ0xPQlBvc3RPbmx5SAASPgoUc2V0X21hcmtldF9tb2RlX2Nsb2IYCCABKAsyHi5ub3JkLkFjdGlvbi5TZXRNYXJrZXRNb2RlQ0xPQkgAEiwKDnNldF9yZnFfbWFrZXJzGAkgASgLMhIubm9yZC5TZXRSZnFNYWtlcnNIAEIGCgRraW5kIkQKDFZhdWx0RGVwb3NpdBISCgpzZXNzaW9uX2lkGAEgASgEEhAKCHZhdWx0X2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBCL1AQoNVmF1bHRXaXRoZHJhdxISCgpzZXNzaW9uX2lkGAEgASgEEhAKCHZhdWx0X2lkGAIgASgNEi4KB3JlcXVlc3QYAyABKAsyGy5ub3JkLlZhdWx0V2l0aGRyYXcuUmVxdWVzdEgAEioKBWNsYWltGAQgASgLMhkubm9yZC5WYXVsdFdpdGhkcmF3LkNsYWltSAAaUQoHUmVxdWVzdBIYCg5xdW90ZV9ub3Rpb25hbBgBIAEoBEgAEiIKDHNoYXJlX2Ftb3VudBgCIAEoCzIKLm5vcmQuVTEyOEgAQggKBmFtb3VudBoHCgVDbGFpbUIGCgRraW5kIp4BChJDcmVhdGVWYXVsdFJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SGAoQdmF1bHRfYWNjb3VudF9pZBgCIAEoDRIWCg5tYW5hZ2VyX3B1YmtleRgDIAEoDBIhCgZzdGF0dXMYBCABKA4yES5ub3JkLlZhdWx0U3RhdHVzEiEKBmNvbmZpZxgFIAEoCzIRLm5vcmQuVmF1bHRDb25maWcicgoYVXBkYXRlVmF1bHRDb25maWdSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEiEKBmNvbmZpZxgCIAEoCzIRLm5vcmQuVmF1bHRDb25maWcSIQoGc3RhdHVzGAMgASgOMhEubm9yZC5WYXVsdFN0YXR1cyJCChZTZXRWYXVsdE1hbmFnZXJSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhYKDm1hbmFnZXJfcHVia2V5GAIgASgMIvsBChZWYXVsdFN5bmNFcG9jaHNSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhcKD2Nsb3NlZF9lcG9jaF9pZBgCIAEoDRIYChBjbGFpbWFibGVfYW1vdW50GAMgASgEEiEKBnN0YXR1cxgEIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSIQoGZXBvY2hzGAUgASgLMhEubm9yZC5WYXVsdEVwb2NocxIlChFsaXZlX3NoYXJlX3N1cHBseRgGIAEoCzIKLm5vcmQuVTEyOBIVCg1xdW90ZV9iYWxhbmNlGAcgASgDEhgKEHZhdWx0X2FjY291bnRfaWQYCCABKA0ijwIKE1ZhdWx0RGVwb3NpdFJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFwoPZnJvbV9hY2NvdW50X2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBIhCg1zaGFyZXNfaXNzdWVkGAQgASgLMgoubm9yZC5VMTI4Eh8KC3VzZXJfc2hhcmVzGAUgASgLMgoubm9yZC5VMTI4EiUKEWxpdmVfc2hhcmVfc3VwcGx5GAYgASgLMgoubm9yZC5VMTI4EiEKBnN0YXR1cxgHIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSGAoQdmF1bHRfYWNjb3VudF9pZBgIIAEoDRIVCg1xdW90ZV9iYWxhbmNlGAkgASgDIlUKEVdpdGhkcmF3YWxCdWNrZXRzEhUKDWN1cnJlbnRfZXBvY2gYASABKAQSFgoOcHJldmlvdXNfZXBvY2gYAiABKAQSEQoJY2xhaW1hYmxlGAMgASgEIoUBCgtWYXVsdFBwc1JlZhIQCghlcG9jaF9pZBgBIAEoDRIrChJzYWZlX2FjY291bnRfdmFsdWUYAiABKAsyCi5ub3JkLlUxMjhIAIgBARIgCgxzaGFyZV9zdXBwbHkYAyABKAsyCi5ub3JkLlUxMjhCFQoTX3NhZmVfYWNjb3VudF92YWx1ZSKWAgoLVmF1bHRFcG9jaHMSGAoQY3VycmVudF9lcG9jaF9pZBgBIAEoDRIgChhjdXJyZW50X2Vwb2NoX3N0YXJ0ZWRfYXQYAiABKAMSIgoVcGFpZF90aHJvdWdoX2Vwb2NoX2lkGAMgASgNSACIAQESLAoLd2l0aGRyYXdhbHMYBCABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEi8KFGxhdGVzdF9lcG9jaF9wcHNfcmVmGAUgASgLMhEubm9yZC5WYXVsdFBwc1JlZhIuChNwcmlvcl9lcG9jaF9wcHNfcmVmGAYgASgLMhEubm9yZC5WYXVsdFBwc1JlZkIYChZfcGFpZF90aHJvdWdoX2Vwb2NoX2lkIo8BCg5WYXVsdFVzZXJTdGF0ZRIaCgZzaGFyZXMYASABKAsyCi5ub3JkLlUxMjgSLAoLd2l0aGRyYXdhbHMYAiABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEhgKEGN1cnJlbnRfZXBvY2hfaWQYAyABKA0SGQoRcHJldmlvdXNfZXBvY2hfaWQYBCABKA0itgMKFFZhdWx0V2l0aGRyYXdSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhUKDXRvX2FjY291bnRfaWQYAiABKA0SOQoJcmVxdWVzdGVkGAMgASgLMiQubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5SZXF1ZXN0ZWRIABI1CgdjbGFpbWVkGAQgASgLMiIubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5DbGFpbWVkSAASLQoPcG9zdF91c2VyX3N0YXRlGAUgASgLMhQubm9yZC5WYXVsdFVzZXJTdGF0ZRIlChFsaXZlX3NoYXJlX3N1cHBseRgGIAEoCzIKLm5vcmQuVTEyOBIhCgZzdGF0dXMYByABKA4yES5ub3JkLlZhdWx0U3RhdHVzEhgKEHZhdWx0X2FjY291bnRfaWQYCCABKA0SFQoNcXVvdGVfYmFsYW5jZRgJIAEoAxo2CglSZXF1ZXN0ZWQSDQoFcXVvdGUYASABKAQSGgoGYnVybmVkGAIgASgLMgoubm9yZC5VMTI4GhkKB0NsYWltZWQSDgoGYW1vdW50GAEgASgEQgYKBGtpbmQiSQoKT3JkZXJMaW1pdBINCgVwcmljZRgGIAEoBBIMCgRzaXplGAcgASgEEh4KCnF1b3RlX3NpemUYCCABKAsyCi5ub3JkLlUxMjgiuQEKCVBsYWNlVHlwZRIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiEKCWZpbGxfbW9kZRgEIAEoDjIOLm5vcmQuRmlsbE1vZGUSFgoOaXNfcmVkdWNlX29ubHkYBSABKAgSPQoVc2VsZl90cmFkZV9wcmV2ZW50aW9uGAYgASgOMhkubm9yZC5TZWxmVHJhZGVQcmV2ZW50aW9uSACIAQFCGAoWX3NlbGZfdHJhZGVfcHJldmVudGlvbiLJAQoMVHJhZGVPclBsYWNlEhEKCW1hcmtldF9pZBgCIAEoDRIjCgpwbGFjZV90eXBlGAMgASgLMg8ubm9yZC5QbGFjZVR5cGUSHwoFbGltaXQYBiABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoPY2xpZW50X29yZGVyX2lkGCEgASgESACIAQESIQoIcmVmZXJyZXIYIiABKAsyCi5ub3JkLlUxMjhIAYgBAUISChBfY2xpZW50X29yZGVyX2lkQgsKCV9yZWZlcnJlciIpChVBdG9taWNDYW5jZWxPcmRlckJ5SWQSEAoIb3JkZXJfaWQYAiABKAQiNgobQXRvbWljQ2FuY2VsT3JkZXJCeUNsaWVudElkEhcKD2NsaWVudF9vcmRlcl9pZBgCIAEoBCKGAQoQQXRvbWljQWRkVHJpZ2dlchIkCgd0cmlnZ2VyGAEgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhwKBmludGVudBgCIAEoDjIMLm5vcmQuSW50ZW50EiEKCHJlZmVycmVyGAMgASgLMgoubm9yZC5VMTI4SACIAQFCCwoJX3JlZmVycmVyIlEKEUF0b21pY0VkaXRUcmlnZ2VyEhIKCnRyaWdnZXJfaWQYASABKAQSKAoLbmV3X3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQiPAoTQXRvbWljUmVtb3ZlVHJpZ2dlchIRCgltYXJrZXRfaWQYASABKA0SEgoKdHJpZ2dlcl9pZBgCIAEoBCIrChZSZWR1Y2VPcmRlckxpcXVpZGF0aW9uEhEKCW1hcmtldF9pZBgCIAEoDSLPAQoVQXRvbWljU3ViYWN0aW9uS2luZFYxEiwKDnRyYWRlX29yX3BsYWNlGAYgASgLMhIubm9yZC5UcmFkZU9yUGxhY2VIABIzCgxjYW5jZWxfb3JkZXIYByABKAsyGy5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlJZEgAEkYKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYCCABKAsyIS5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlDbGllbnRJZEgAOgIYAUIHCgVpbm5lciKwAQoIQXRvbWljVjESEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCgphY2NvdW50X2lkGAIgASgNSACIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAMgASgESAGIAQESLAoHYWN0aW9ucxgGIAMoCzIbLm5vcmQuQXRvbWljU3ViYWN0aW9uS2luZFYxOgIYAUINCgtfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkIscECg9BdG9taWNTdWJhY3Rpb24SFAoHdXNlX2tleRgBIAEoCEgBiAEBEh4KEXRhcmdldF9hY2NvdW50X2lkGCAgASgNSAKIAQESLAoOdHJhZGVfb3JfcGxhY2UYBiABKAsyEi5ub3JkLlRyYWRlT3JQbGFjZUgAEjMKDGNhbmNlbF9vcmRlchgHIAEoCzIbLm5vcmQuQXRvbWljQ2FuY2VsT3JkZXJCeUlkSAASRgoZY2FuY2VsX29yZGVyX2J5X2NsaWVudF9pZBgIIAEoCzIhLm5vcmQuQXRvbWljQ2FuY2VsT3JkZXJCeUNsaWVudElkSAASLQoLYWRkX3RyaWdnZXIYCSABKAsyFi5ub3JkLkF0b21pY0FkZFRyaWdnZXJIABIvCgxlZGl0X3RyaWdnZXIYCiABKAsyFy5ub3JkLkF0b21pY0VkaXRUcmlnZ2VySAASMwoOcmVtb3ZlX3RyaWdnZXIYCyABKAsyGS5ub3JkLkF0b21pY1JlbW92ZVRyaWdnZXJIABJAChhyZWR1Y2Vfb3JkZXJfbGlxdWlkYXRpb24YDCABKAsyHC5ub3JkLlJlZHVjZU9yZGVyTGlxdWlkYXRpb25IABIsCg5yZnFfcGxhY2Vfb25seRgNIAEoCzISLm5vcmQuUmZxUGxhY2VPbmx5SAASIwoJcmZxX3RyYWRlGA4gASgLMg4ubm9yZC5SZnFUcmFkZUgAQgcKBWlubmVyQgoKCF91c2Vfa2V5QhQKEl90YXJnZXRfYWNjb3VudF9pZCKkAQoGQXRvbWljEhIKCnNlc3Npb25faWQYASABKAQSFwoKYWNjb3VudF9pZBgCIAEoDUgAiAEBEh8KEnNlbmRlcl90cmFja2luZ19pZBgDIAEoBEgBiAEBEiYKB2FjdGlvbnMYBiADKAsyFS5ub3JkLkF0b21pY1N1YmFjdGlvbkINCgtfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkIjwKFlB5dGhMYXplclRydXN0ZWRTaWduZXISDgoGcHVia2V5GAEgASgMEhIKCmV4cGlyZXNfYXQYAiABKAMilgEKDVRyaWdnZXJSZWNvcmQSFQoNdHJpZ2dlcl9wcmljZRgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SIAoGbGltaXRzGAMgASgLMhAubm9yZC5PcmRlckxpbWl0Eh8KBGtpbmQYBCABKA4yES5ub3JkLlRyaWdnZXJLaW5kEhgKBHNpZGUYBSABKA4yCi5ub3JkLlNpZGUimwEKB1RyaWdnZXISFQoNdHJpZ2dlcl9wcmljZRgBIAEoBBIfCgRraW5kGAIgASgOMhEubm9yZC5UcmlnZ2VyS2luZBIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiAKBmxpbWl0cxgEIAEoCzIQLm5vcmQuT3JkZXJMaW1pdBIcCgZpbnRlbnQYBSABKA4yDC5ub3JkLkludGVudCK9NQoGQWN0aW9uEhkKEWN1cnJlbnRfdGltZXN0YW1wGAEgASgDEg0KBW5vbmNlGAIgASgNEjQKDmNyZWF0ZV9zZXNzaW9uGAQgASgLMhoubm9yZC5BY3Rpb24uQ3JlYXRlU2Vzc2lvbkgAEjAKDGNyZWF0ZV90b2tlbhgFIAEoCzIYLm5vcmQuQWN0aW9uLkNyZWF0ZVRva2VuSAASMgoNY3JlYXRlX21hcmtldBgGIAEoCzIZLm5vcmQuQWN0aW9uLkNyZWF0ZU1hcmtldEgAEi4KC3BsYWNlX29yZGVyGAcgASgLMhcubm9yZC5BY3Rpb24uUGxhY2VPcmRlckgAEjoKEmNhbmNlbF9vcmRlcl9ieV9pZBgIIAEoCzIcLm5vcmQuQWN0aW9uLkNhbmNlbE9yZGVyQnlJZEgAEicKB2RlcG9zaXQYCSABKAsyFC5ub3JkLkFjdGlvbi5EZXBvc2l0SAASKQoId2l0aGRyYXcYCiABKAsyFS5ub3JkLkFjdGlvbi5XaXRoZHJhd0gAEkwKG3B5dGhfc2V0X3dvcm1ob2xlX2d1YXJkaWFucxgLIAEoCzIlLm5vcmQuQWN0aW9uLlB5dGhTZXRXb3JtaG9sZUd1YXJkaWFuc0gAEj4KFHB5dGhfc2V0X3N5bWJvbF9mZWVkGAwgASgLMh4ubm9yZC5BY3Rpb24uUHl0aFNldFN5bWJvbEZlZWRIABJCChZweXRoX3ByaWNlX2ZlZWRfdXBkYXRlGA0gASgLMiAubm9yZC5BY3Rpb24uUHl0aFByaWNlRmVlZFVwZGF0ZUgAEjQKDnJldm9rZV9zZXNzaW9uGA8gASgLMhoubm9yZC5BY3Rpb24uUmV2b2tlU2Vzc2lvbkgAEiMKBXBhdXNlGBAgASgLMhIubm9yZC5BY3Rpb24uUGF1c2VIABInCgd1bnBhdXNlGBEgASgLMhQubm9yZC5BY3Rpb24uVW5wYXVzZUgAEikKCHRyYW5zZmVyGBIgASgLMhUubm9yZC5BY3Rpb24uVHJhbnNmZXJIABIuCgthZGRfdHJpZ2dlchggIAEoCzIXLm5vcmQuQWN0aW9uLkFkZFRyaWdnZXJIABI0Cg5yZW1vdmVfdHJpZ2dlchghIAEoCzIaLm5vcmQuQWN0aW9uLlJlbW92ZVRyaWdnZXJIABInCglhdG9taWNfdjEYIyABKAsyDi5ub3JkLkF0b21pY1YxQgIYAUgAEjIKDWZyZWV6ZV9tYXJrZXQYJCABKAsyGS5ub3JkLkFjdGlvbi5GcmVlemVNYXJrZXRIABI2Cg91bmZyZWV6ZV9tYXJrZXQYJSABKAsyGy5ub3JkLkFjdGlvbi5VbmZyZWV6ZU1hcmtldEgAEiwKCnVwZGF0ZV9hY2wYKSABKAsyFi5ub3JkLkFjdGlvbi5VcGRhdGVBY2xIABI7ChJmZWVfdmF1bHRfdHJhbnNmZXIYKiABKAsyHS5ub3JkLkFjdGlvbi5GZWVWYXVsdFRyYW5zZmVySAASOwoSdGFrZV9hbGxfcG9zaXRpb25zGCsgASgLMh0ubm9yZC5BY3Rpb24uVGFrZUFsbFBvc2l0aW9uc0gAEkcKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYLCABKAsyIi5ub3JkLkFjdGlvbi5DYW5jZWxPcmRlckJ5Q2xpZW50SWRIABI2Cg9leGVjdXRlX3RyaWdnZXIYLSABKAsyGy5ub3JkLkFjdGlvbi5FeGVjdXRlVHJpZ2dlckgAEj8KFHNldF9iYWNrc3RvcF9hY2NvdW50GC4gASgLMh8ubm9yZC5BY3Rpb24uU2V0QmFja3N0b3BBY2NvdW50SAASMAoMZWRpdF90cmlnZ2VyGC8gASgLMhgubm9yZC5BY3Rpb24uRWRpdFRyaWdnZXJIABIeCgZhdG9taWMYMCABKAsyDC5ub3JkLkF0b21pY0gAEigKBWFkbWluGDEgASgLMhcubm9yZC5TdGFnZWRBZG1pbkFjdGlvbkgAEjAKDGNsZWFyX21hcmtldBgyIAEoCzIYLm5vcmQuQWN0aW9uLkNsZWFyTWFya2V0SAASMgoRdmF1bHRfc3luY19lcG9jaHMYNSABKAsyFS5ub3JkLlZhdWx0U3luY0Vwb2Noc0gAEisKDXZhdWx0X2RlcG9zaXQYNiABKAsyEi5ub3JkLlZhdWx0RGVwb3NpdEgAEi0KDnZhdWx0X3dpdGhkcmF3GDcgASgLMhMubm9yZC5WYXVsdFdpdGhkcmF3SAASUQoecHl0aF9sYXplcl9zZXRfdHJ1c3RlZF9zaWduZXJzGDkgASgLMicubm9yZC5BY3Rpb24uUHl0aExhemVyU2V0VHJ1c3RlZFNpZ25lcnNIABJJChpweXRoX2xhemVyX3NldF9mZWVkX3N5bWJvbBg6IAEoCzIjLm5vcmQuQWN0aW9uLlB5dGhMYXplclNldEZlZWRTeW1ib2xIABJNChxweXRoX2xhemVyX3ByaWNlX2ZlZWRfdXBkYXRlGDsgASgLMiUubm9yZC5BY3Rpb24uUHl0aExhemVyUHJpY2VGZWVkVXBkYXRlSAASNgoPcmVmcmVzaF9zZXNzaW9uGDwgASgLMhsubm9yZC5BY3Rpb24uUmVmcmVzaFNlc3Npb25IABI9ChNzZWxmX3Jldm9rZV9zZXNzaW9uGD0gASgLMh4ubm9yZC5BY3Rpb24uU2VsZlJldm9rZVNlc3Npb25IABI4ChFhZGRfZmVlX3RpZXJfdHlwZRg+IAEoCzIbLm5vcmQuQWN0aW9uLkFkZEZlZVRpZXJUeXBlSAASPgoUdXBkYXRlX2ZlZV90aWVyX3R5cGUYPyABKAsyHi5ub3JkLkFjdGlvbi5VcGRhdGVGZWVUaWVyVHlwZUgAElgKInVwZGF0ZV9hY2NvdW50c19mZWVfdGllcl90eXBlX21vZGUYQCABKAsyKi5ub3JkLkFjdGlvbi5VcGRhdGVBY2NvdW50c0ZlZVRpZXJUeXBlTW9kZUgAGuMBCg1DcmVhdGVTZXNzaW9uEhMKC3VzZXJfcHVia2V5GAEgASgMEhYKDnNlc3Npb25fcHVia2V5GAIgASgMEhgKEGV4cGlyeV90aW1lc3RhbXAYAyABKAMSQQoRc2lnbmF0dXJlX2ZyYW1pbmcYBCABKA4yIS5ub3JkLkFjdGlvbi5Vc2VyU2lnbmF0dXJlRnJhbWluZ0gAiAEBEh0KEHJlZnJlc2hfZGVhZGxpbmUYBSABKANIAYgBAUIUChJfc2lnbmF0dXJlX2ZyYW1pbmdCEwoRX3JlZnJlc2hfZGVhZGxpbmUaiwEKC0NyZWF0ZVRva2VuEhYKDnRva2VuX2RlY2ltYWxzGAEgASgNEhIKCndlaWdodF9icHMYAyABKA0SEwoLdmlld19zeW1ib2wYBCABKAkSFQoNb3JhY2xlX3N5bWJvbBgFIAEoCRIQCghzb2xfYWRkchgGIAEoDBISCgphY2xfcHVia2V5GAcgASgMGjEKHFNldE1hcmtldE1vZGVDTE9CVHJhZGluZ09ubHkSEQoJbWFya2V0X2lkGAEgASgNGi4KGVNldE1hcmtldE1vZGVDTE9CUG9zdE9ubHkSEQoJbWFya2V0X2lkGAEgASgNGiYKEVNldE1hcmtldE1vZGVDTE9CEhEKCW1hcmtldF9pZBgBIAEoDRruAQoMQ3JlYXRlTWFya2V0EhUKDXNpemVfZGVjaW1hbHMYASABKA0SFgoOcHJpY2VfZGVjaW1hbHMYAiABKA0SDwoHaW1mX2JwcxgDIAEoDRIPCgdjbWZfYnBzGAQgASgNEg8KB21tZl9icHMYBSABKA0SJQoLbWFya2V0X3R5cGUYBiABKA4yEC5ub3JkLk1hcmtldFR5cGUSEwoLdmlld19zeW1ib2wYByABKAkSFQoNb3JhY2xlX3N5bWJvbBgIIAEoCRIVCg1iYXNlX3Rva2VuX2lkGAkgASgNEhIKCmFjbF9wdWJrZXkYCiABKAwaqgQKClBsYWNlT3JkZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIhCglmaWxsX21vZGUYBCABKA4yDi5ub3JkLkZpbGxNb2RlEhYKDmlzX3JlZHVjZV9vbmx5GAUgASgIEg0KBXByaWNlGAYgASgEEgwKBHNpemUYByABKAQSHgoKcXVvdGVfc2l6ZRgIIAEoCzIKLm5vcmQuVTEyOBIhChRkZWxlZ2F0b3JfYWNjb3VudF9pZBggIAEoDUgAiAEBEhwKD2NsaWVudF9vcmRlcl9pZBghIAEoBEgBiAEBEh4KEXNlbmRlcl9hY2NvdW50X2lkGCIgASgNSAKIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGCMgASgESAOIAQESPQoVc2VsZl90cmFkZV9wcmV2ZW50aW9uGCQgASgOMhkubm9yZC5TZWxmVHJhZGVQcmV2ZW50aW9uSASIAQESIQoIcmVmZXJyZXIYJSABKAsyCi5ub3JkLlUxMjhIBYgBAUIXChVfZGVsZWdhdG9yX2FjY291bnRfaWRCEgoQX2NsaWVudF9vcmRlcl9pZEIUChJfc2VuZGVyX2FjY291bnRfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZEIYChZfc2VsZl90cmFkZV9wcmV2ZW50aW9uQgsKCV9yZWZlcnJlchqpAQoPQ2FuY2VsT3JkZXJCeUlkEhIKCnNlc3Npb25faWQYASABKAQSEAoIb3JkZXJfaWQYAiABKAQSIQoUZGVsZWdhdG9yX2FjY291bnRfaWQYICABKA1IAIgBARIeChFzZW5kZXJfYWNjb3VudF9pZBghIAEoDUgBiAEBQhcKFV9kZWxlZ2F0b3JfYWNjb3VudF9pZEIUChJfc2VuZGVyX2FjY291bnRfaWQaegoVQ2FuY2VsT3JkZXJCeUNsaWVudElkEhIKCnNlc3Npb25faWQYASABKAQSFwoPY2xpZW50X29yZGVyX2lkGAIgASgEEh4KEXNlbmRlcl9hY2NvdW50X2lkGAMgASgNSACIAQFCFAoSX3NlbmRlcl9hY2NvdW50X2lkGm8KB0RlcG9zaXQSFAoMYWN0aW9uX25vbmNlGAEgASgEEhIKCnRva2VuX2FkZHIYAiABKAwSDgoGYW1vdW50GAMgASgEEhMKC3VzZXJfcHVia2V5GAQgASgMEhUKDXNlbmRlcl9wdWJrZXkYBSABKAwaagoIV2l0aGRyYXcSEAoIdG9rZW5faWQYASABKA0SEgoKc2Vzc2lvbl9pZBgCIAEoBBIOCgZhbW91bnQYAyABKAQSGAoLZGVzdF9wdWJrZXkYBCABKAxIAIgBAUIOCgxfZGVzdF9wdWJrZXkaXQoYUHl0aFNldFdvcm1ob2xlR3VhcmRpYW5zEhoKEmd1YXJkaWFuX3NldF9pbmRleBgBIAEoDRIRCglhZGRyZXNzZXMYAiADKAwSEgoKYWNsX3B1YmtleRgDIAEoDBpVChFQeXRoU2V0U3ltYm9sRmVlZBIVCg1vcmFjbGVfc3ltYm9sGAEgASgJEhUKDXByaWNlX2ZlZWRfaWQYAiABKAwSEgoKYWNsX3B1YmtleRgDIAEoDBovChNQeXRoUHJpY2VGZWVkVXBkYXRlEhgKEHJhd19weXRobmV0X2RhdGEYASABKAwaUgoYUHl0aExhemVyUHJpY2VGZWVkVXBkYXRlEg8KB3BheWxvYWQYASABKAwSEQoJc2lnbmF0dXJlGAIgASgMEhIKCnB1YmxpY19rZXkYAyABKAwaZwoaUHl0aExhemVyU2V0VHJ1c3RlZFNpZ25lcnMSEgoKYWNsX3B1YmtleRgBIAEoDBI1Cg90cnVzdGVkX3NpZ25lcnMYAiADKAsyHC5ub3JkLlB5dGhMYXplclRydXN0ZWRTaWduZXIaqwEKFlB5dGhMYXplclNldEZlZWRTeW1ib2wSEgoKYWNsX3B1YmtleRgBIAEoDBJCCgVmZWVkcxgCIAMoCzIzLm5vcmQuQWN0aW9uLlB5dGhMYXplclNldEZlZWRTeW1ib2wuRmVlZFN5bWJvbElucHV0GjkKD0ZlZWRTeW1ib2xJbnB1dBIPCgdmZWVkX2lkGAEgASgNEhUKDW9yYWNsZV9zeW1ib2wYAiABKAkaIwoNUmV2b2tlU2Vzc2lvbhISCgpzZXNzaW9uX2lkGAEgASgEGjQKDlJlZnJlc2hTZXNzaW9uEhIKCnNlc3Npb25faWQYASABKAQSDgoGZXhwaXJ5GAIgASgDGicKEVNlbGZSZXZva2VTZXNzaW9uEhIKCnNlc3Npb25faWQYASABKAQaGwoFUGF1c2USEgoKYWNsX3B1YmtleRgBIAEoDBodCgdVbnBhdXNlEhIKCmFjbF9wdWJrZXkYASABKAwaYwoSU2V0QmFja3N0b3BBY2NvdW50EhIKCmFjbF9wdWJrZXkYASABKAwSEgoKYWNjb3VudF9pZBgCIAEoDRIlCgttYXJrZXRfbW9kZRgDIAEoDjIQLm5vcmQuTWFya2V0TW9kZRr5AQoJUmVjaXBpZW50EjEKB3NwZWNpYWwYASABKAsyHi5ub3JkLkFjdGlvbi5SZWNpcGllbnQuU3BlY2lhbEgAEi0KBW93bmVkGAIgASgLMhwubm9yZC5BY3Rpb24uUmVjaXBpZW50Lk93bmVkSAASMQoHdW5vd25lZBgDIAEoCzIeLm5vcmQuQWN0aW9uLlJlY2lwaWVudC5Vbm93bmVkSAAaCQoHU3BlY2lhbBobCgVPd25lZBISCgphY2NvdW50X2lkGAEgASgNGh0KB1Vub3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDUIQCg5yZWNpcGllbnRfdHlwZRqfAQoIVHJhbnNmZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCg9mcm9tX2FjY291bnRfaWQYAiABKA0SEAoIdG9rZW5faWQYAyABKA0SDgoGYW1vdW50GAQgASgEEjIKDXRvX2FjY291bnRfaWQYCCABKAsyFi5ub3JkLkFjdGlvbi5SZWNpcGllbnRIAIgBAUIQCg5fdG9fYWNjb3VudF9pZBpbChBGZWVWYXVsdFRyYW5zZmVyEhIKCmFjbF9wdWJrZXkYASABKAwSEQoJcmVjaXBpZW50GAIgASgNEhAKCHRva2VuX2lkGAMgASgNEg4KBmFtb3VudBgEIAEoBBq8AQoKQWRkVHJpZ2dlchISCgpzZXNzaW9uX2lkGAEgASgEEiQKB3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAMgASgOMgwubm9yZC5JbnRlbnQSFwoKYWNjb3VudF9pZBgKIAEoDUgAiAEBEiEKCHJlZmVycmVyGAsgASgLMgoubm9yZC5VMTI4SAGIAQFCDQoLX2FjY291bnRfaWRCCwoJX3JlZmVycmVyGocBCgtFZGl0VHJpZ2dlchISCgpzZXNzaW9uX2lkGAEgASgEEhIKCnRyaWdnZXJfaWQYAiABKAQSKAoLbmV3X3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSFwoKYWNjb3VudF9pZBgKIAEoDUgAiAEBQg0KC19hY2NvdW50X2lkGnIKDVJlbW92ZVRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SEgoKdHJpZ2dlcl9pZBgDIAEoBBIXCgphY2NvdW50X2lkGAogASgNSACIAQFCDQoLX2FjY291bnRfaWQadAoOQWRkRmVlVGllclR5cGUSEgoKYWNsX3B1YmtleRgBIAEoDBIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRInCgZjb25maWcYAyABKAsyFy5ub3JkLkZlZVRpZXJUeXBlQ29uZmlnGoMBChFVcGRhdGVGZWVUaWVyVHlwZRIKCgJpZBgBIAEoDRIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRInCgZjb25maWcYAyABKAsyFy5ub3JkLkZlZVRpZXJUeXBlQ29uZmlnEhIKCmFjbF9wdWJrZXkYBCABKAwafQodVXBkYXRlQWNjb3VudHNGZWVUaWVyVHlwZU1vZGUSDwoHdGllcl9pZBgBIAEoDRIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIQCghhY2NvdW50cxgDIAMoDRISCgphY2xfcHVia2V5GAQgASgMGl8KCVVwZGF0ZUFjbBISCgphY2xfcHVia2V5GAEgASgMEhUKDXRhcmdldF9wdWJrZXkYAiABKAwSEgoKcm9sZXNfbWFzaxgDIAEoDRITCgtyb2xlc192YWx1ZRgEIAEoDRo1CgxGcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aNwoOVW5mcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aTQoLQ2xlYXJNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0SFwoPY2xlYXJhbmNlX3ByaWNlGAMgASgEGmEKDkV4ZWN1dGVUcmlnZ2VyEhQKDGV4ZWN1dG9yX3NpZBgBIAEoBBISCgphY2NvdW50X2lkGAIgASgNEhEKCW1hcmtldF9pZBgDIAEoDRISCgp0cmlnZ2VyX2lkGAQgASgEGkEKEFRha2VBbGxQb3NpdGlvbnMSEgoKc2Vzc2lvbl9pZBgBIAEoBBIZChF0YXJnZXRfYWNjb3VudF9pZBgCIAEoDSI3ChRVc2VyU2lnbmF0dXJlRnJhbWluZxIHCgNIRVgQABIWChJTT0xBTkFfVFJBTlNBQ1RJT04QAUIGCgRraW5kItRECgdSZWNlaXB0EhEKCWFjdGlvbl9pZBgBIAEoBBIaCgNlcnIYICABKA4yCy5ub3JkLkVycm9ySAASQgoVY3JlYXRlX3Nlc3Npb25fcmVzdWx0GCEgASgLMiEubm9yZC5SZWNlaXB0LkNyZWF0ZVNlc3Npb25SZXN1bHRIABI4Cg50cmFkZV9vcl9wbGFjZRgiIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASPgoTY2FuY2VsX29yZGVyX3Jlc3VsdBgjIAEoCzIfLm5vcmQuUmVjZWlwdC5DYW5jZWxPcmRlclJlc3VsdEgAEjUKDmRlcG9zaXRfcmVzdWx0GCQgASgLMhsubm9yZC5SZWNlaXB0LkRlcG9zaXRSZXN1bHRIABI+ChNpbnNlcnRfdG9rZW5fcmVzdWx0GCUgASgLMh8ubm9yZC5SZWNlaXB0Lkluc2VydFRva2VuUmVzdWx0SAASQAoUaW5zZXJ0X21hcmtldF9yZXN1bHQYJiABKAsyIC5ub3JkLlJlY2VpcHQuSW5zZXJ0TWFya2V0UmVzdWx0SAASNwoPd2l0aGRyYXdfcmVzdWx0GCcgASgLMhwubm9yZC5SZWNlaXB0LldpdGhkcmF3UmVzdWx0SAASSQoZb3JhY2xlX3N5bWJvbF9mZWVkX3Jlc3VsdBgoIAEoCzIkLm5vcmQuUmVjZWlwdC5PcmFjbGVTeW1ib2xGZWVkUmVzdWx0SAASQAoUb3JhY2xlX3VwZGF0ZV9yZXN1bHQYKSABKAsyIC5ub3JkLlJlY2VpcHQuT3JhY2xlVXBkYXRlUmVzdWx0SAASSwoadXBkYXRlX2d1YXJkaWFuX3NldF9yZXN1bHQYKiABKAsyJS5ub3JkLlJlY2VpcHQuVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHRIABI3Cg9zZXNzaW9uX3Jldm9rZWQYLCABKAsyHC5ub3JkLlJlY2VpcHQuU2Vzc2lvblJldm9rZWRIABImCgZwYXVzZWQYLSABKAsyFC5ub3JkLlJlY2VpcHQuUGF1c2VkSAASKgoIdW5wYXVzZWQYLiABKAsyFi5ub3JkLlJlY2VpcHQuVW5wYXVzZWRIABIwCgt0cmFuc2ZlcnJlZBgvIAEoCzIZLm5vcmQuUmVjZWlwdC5UcmFuc2ZlcnJlZEgAEjMKDXRyaWdnZXJfYWRkZWQYQCABKAsyGi5ub3JkLlJlY2VpcHQuVHJpZ2dlckFkZGVkSAASNwoPdHJpZ2dlcl9yZW1vdmVkGEEgASgLMhwubm9yZC5SZWNlaXB0LlRyaWdnZXJSZW1vdmVkSAASLAoGYXRvbWljGEMgASgLMhoubm9yZC5SZWNlaXB0LkF0b21pY1Jlc3VsdEgAEkIKFW1hcmtldF9mcmVlemVfdXBkYXRlZBhEIAEoCzIhLm5vcmQuUmVjZWlwdC5NYXJrZXRGcmVlemVVcGRhdGVkSAASLwoLYWNsX3VwZGF0ZWQYSCABKAsyGC5ub3JkLlJlY2VpcHQuQWNsVXBkYXRlZEgAEkIKFWZlZV92YXVsdF90cmFuc2ZlcnJlZBhJIAEoCzIhLm5vcmQuUmVjZWlwdC5GZWVWYXVsdFRyYW5zZmVycmVkSAASOQoQdHJpZ2dlcl9leGVjdXRlZBhKIAEoCzIdLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRXhlY3V0ZWRIABJJChl0YWtlX2FsbF9wb3NpdGlvbnNfcmVzdWx0GEsgASgLMiQubm9yZC5SZWNlaXB0LlRha2VBbGxQb3NpdGlvbnNSZXN1bHRIABJAChRiYWNrc3RvcF9hY2NvdW50X3NldBhMIAEoCzIgLm5vcmQuUmVjZWlwdC5CYWNrc3RvcEFjY291bnRTZXRIABI1Cg50cmlnZ2VyX2VkaXRlZBhNIAEoCzIbLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRWRpdGVkSAASMQoNdmF1bHRfY3JlYXRlZBhOIAEoCzIYLm5vcmQuQ3JlYXRlVmF1bHRSZWNlaXB0SAASPgoUdmF1bHRfY29uZmlnX3VwZGF0ZWQYTyABKAsyHi5ub3JkLlVwZGF0ZVZhdWx0Q29uZmlnUmVjZWlwdEgAEj0KFXZhdWx0X21hbmFnZXJfdXBkYXRlZBhQIAEoCzIcLm5vcmQuU2V0VmF1bHRNYW5hZ2VyUmVjZWlwdEgAEjsKE3ZhdWx0X2Vwb2Noc19zeW5jZWQYUSABKAsyHC5ub3JkLlZhdWx0U3luY0Vwb2Noc1JlY2VpcHRIABI0Cg92YXVsdF9kZXBvc2l0ZWQYUiABKAsyGS5ub3JkLlZhdWx0RGVwb3NpdFJlY2VpcHRIABI1Cg92YXVsdF93aXRoZHJhd24YUyABKAsyGi5ub3JkLlZhdWx0V2l0aGRyYXdSZWNlaXB0SAASPgoTY2xlYXJfbWFya2V0X3Jlc3VsdBhUIAEoCzIfLm5vcmQuUmVjZWlwdC5DbGVhck1hcmtldFJlc3VsdEgAElQKH3B5dGhfbGF6ZXJfb3JhY2xlX3VwZGF0ZV9yZXN1bHQYVSABKAsyKS5ub3JkLlJlY2VpcHQuUHl0aExhemVyT3JhY2xlVXBkYXRlUmVzdWx0SAASXwolcHl0aF9sYXplcl90cnVzdGVkX3NpZ25lcnNfc2V0X3Jlc3VsdBhWIAEoCzIuLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJUcnVzdGVkU2lnbmVyc1NldFJlc3VsdEgAElcKIXB5dGhfbGF6ZXJfZmVlZF9zeW1ib2xfc2V0X3Jlc3VsdBhXIAEoCzIqLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0SAASVQofcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uX3Jlc3VsdBhYIAEoCzIqLm5vcmQuUmVjZWlwdC5SZWR1Y2VPcmRlckxpcXVpZGF0aW9uUmVzdWx0SAASPgoTbWFya2V0X21vZGVfdXBkYXRlZBhZIAEoCzIfLm5vcmQuUmVjZWlwdC5NYXJrZXRNb2RlVXBkYXRlZEgAEiwKDnJmcV9tYWtlcnNfc2V0GFogASgLMhIubm9yZC5SZnFNYWtlcnNTZXRIABI7ChFzZXNzaW9uX3JlZnJlc2hlZBhbIAEoCzIeLm5vcmQuUmVjZWlwdC5TZXNzaW9uUmVmcmVzaGVkSAASQAoUc2VsZl9zZXNzaW9uX3Jldm9rZWQYXCABKAsyIC5ub3JkLlJlY2VpcHQuU2VsZlNlc3Npb25SZXZva2VkSAASPQoTZmVlX3RpZXJfdHlwZV9hZGRlZBhdIAEoCzIeLm5vcmQuUmVjZWlwdC5GZWVUaWVyVHlwZUFkZGVkSAASQQoVZmVlX3RpZXJfdHlwZV91cGRhdGVkGF4gASgLMiAubm9yZC5SZWNlaXB0LkZlZVRpZXJUeXBlVXBkYXRlZEgAElsKI2FjY291bnRzX2ZlZV90aWVyX3R5cGVfbW9kZV91cGRhdGVkGF8gASgLMiwubm9yZC5SZWNlaXB0LkFjY291bnRzRmVlVGllclR5cGVNb2RlVXBkYXRlZEgAGngKBlBvc3RlZBIYCgRzaWRlGAEgASgOMgoubm9yZC5TaWRlEhEKCW1hcmtldF9pZBgCIAEoDRINCgVwcmljZRgDIAEoBBIMCgRzaXplGAQgASgEEhAKCG9yZGVyX2lkGAUgASgEEhIKCmFjY291bnRfaWQYBiABKA0acAoFVHJhZGUSEAoIb3JkZXJfaWQYAiABKAQSDQoFcHJpY2UYBCABKAQSDAoEc2l6ZRgFIAEoBBISCgphY2NvdW50X2lkGAYgASgNEhEKCW1ha2VyX2ZlZRgHIAEoBBIRCgl0YWtlcl9mZWUYCCABKAQabQoTQ3JlYXRlU2Vzc2lvblJlc3VsdBISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxIdChByZWZyZXNoX2RlYWRsaW5lGAMgASgDSACIAQFCEwoRX3JlZnJlc2hfZGVhZGxpbmUaTAoQQ2FuY2VsbGVkVHJpZ2dlchISCgphY2NvdW50X2lkGAEgASgNEiQKB3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQa2gEKC09yZGVyVXBkYXRlEjAKBnJlYXNvbhgBIAEoDjIgLm5vcmQuUmVjZWlwdC5PcmRlclVwZGF0ZS5SZWFzb24SEgoKYWNjb3VudF9pZBgCIAEoDRIQCghvcmRlcl9pZBgDIAEoBBIWCg5yZW1haW5pbmdfc2l6ZRgEIAEoBBIWCg5jYW5jZWxsZWRfc2l6ZRgFIAEoBBINCgVwcmljZRgGIAEoBCI0CgZSZWFzb24SDwoLUkVEVUNFX09OTFkQABIZChVTRUxGX1RSQURFX1BSRVZFTlRJT04QARr3AgoQUGxhY2VPcmRlclJlc3VsdBIpCgZwb3N0ZWQYASABKAsyFC5ub3JkLlJlY2VpcHQuUG9zdGVkSACIAQESIgoFZmlsbHMYAiADKAsyEy5ub3JkLlJlY2VpcHQuVHJhZGUSHAoPY2xpZW50X29yZGVyX2lkGAMgASgESAGIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAQgASgESAKIAQESOgoSY2FuY2VsbGVkX3RyaWdnZXJzGAUgAygLMh4ubm9yZC5SZWNlaXB0LkNhbmNlbGxlZFRyaWdnZXISMAoNb3JkZXJfdXBkYXRlcxgGIAMoCzIZLm5vcmQuUmVjZWlwdC5PcmRlclVwZGF0ZRIxCglwbGFjZW1lbnQYByABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VtZW50UmVjZWlwdEIJCgdfcG9zdGVkQhIKEF9jbGllbnRfb3JkZXJfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZBp6ChxSZWR1Y2VPcmRlckxpcXVpZGF0aW9uUmVzdWx0EjYKDnRyYWRlX29yX3BsYWNlGAEgASgLMh4ubm9yZC5SZWNlaXB0LlBsYWNlT3JkZXJSZXN1bHQSIgoGYWN0aW9uGAIgASgLMhIubm9yZC5UcmFkZU9yUGxhY2UarwEKEFBsYWNlbWVudFJlY2VpcHQSIQoEcm9sZRgBIAEoDjITLm5vcmQuUGxhY2VtZW50Um9sZRI4CgdhY2NvdW50GAIgASgLMiUubm9yZC5SZWNlaXB0LkFjY291bnRQbGFjZW1lbnRSZWNlaXB0SAASNAoFdmF1bHQYAyABKAsyIy5ub3JkLlJlY2VpcHQuVmF1bHRQbGFjZW1lbnRSZWNlaXB0SABCCAoGdGFyZ2V0GhkKF0FjY291bnRQbGFjZW1lbnRSZWNlaXB0GkwKFVZhdWx0UGxhY2VtZW50UmVjZWlwdBIQCgh2YXVsdF9pZBgBIAEoDRIhCgZoZWFsdGgYAiABKAsyES5ub3JkLlZhdWx0SGVhbHRoGv4BCg9UcmlnZ2VyRXhlY3V0ZWQSEwoLZXhlY3V0b3JfaWQYASABKA0SEgoKYWNjb3VudF9pZBgCIAEoDRIRCgltYXJrZXRfaWQYAyABKA0SHgoHdHJpZ2dlchgEIAEoCzINLm5vcmQuVHJpZ2dlchISCgp0cmlnZ2VyX2lkGAggASgEEjEKB3N1Y2Nlc3MYBSABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VPcmRlclJlc3VsdEgAEikKB2ZhaWx1cmUYBiABKA4yFi5ub3JkLlRyaWdnZXJFeGVjRXJyb3JIABITCgljYW5jZWxsZWQYByABKAhIAEIICgZzdGF0dXMaMgoOVGFrZUFsbEJhbGFuY2USEAoIdG9rZW5faWQYASABKA0SDgoGYW1vdW50GAIgASgEGncKD1Rha2VBbGxQb3NpdGlvbhIRCgltYXJrZXRfaWQYASABKA0SEQoJYmFzZV9zaXplGAIgASgDEhgKEHNldHRsZW1lbnRfcHJpY2UYAyABKAQSJAoQYmFua3J1cHRjeV9xdW90ZRgEIAEoCzIKLm5vcmQuVTEyOBpTChNUYWtlQWxsT3JkZXJVcGRhdGVzEhEKCW1hcmtldF9pZBgBIAEoDRIpCgZvcmRlcnMYAiADKAsyGS5ub3JkLlJlY2VpcHQuT3JkZXJVcGRhdGUa1gEKElRha2VBbGxUYWtlclJlc3VsdBIYChB0YWtlcl9hY2NvdW50X2lkGAEgASgNEjQKDnRha2VuX2JhbGFuY2VzGAIgAygLMhwubm9yZC5SZWNlaXB0LlRha2VBbGxCYWxhbmNlEjYKD3Rha2VuX3Bvc2l0aW9ucxgDIAMoCzIdLm5vcmQuUmVjZWlwdC5UYWtlQWxsUG9zaXRpb24SOAoNb3JkZXJfdXBkYXRlcxgEIAMoCzIhLm5vcmQuUmVjZWlwdC5UYWtlQWxsT3JkZXJVcGRhdGVzGkoKFlRha2VBbGxQb3NpdGlvbnNSZXN1bHQSMAoGdGFrZXJzGAYgAygLMiAubm9yZC5SZWNlaXB0LlRha2VBbGxUYWtlclJlc3VsdBpoCg5DYW5jZWxsZWRPcmRlchISCgphY2NvdW50X2lkGAEgASgNEhAKCG9yZGVyX2lkGAIgASgEEhwKD2NsaWVudF9vcmRlcl9pZBgDIAEoBEgAiAEBQhIKEF9jbGllbnRfb3JkZXJfaWQarQEKGUNsZWFyTWFya2V0Q2xvc2VkUG9zaXRpb24SEgoKYWNjb3VudF9pZBgBIAEoDRIRCgliYXNlX3NpemUYAiABKAMSGAoQc2V0dGxlbWVudF9wcmljZRgDIAEoBBIZCgVxdW90ZRgEIAEoCzIKLm5vcmQuVTEyOBIZChF0cmFkaW5nX3BubF9kZWx0YRgFIAEoAxIZChFmdW5kaW5nX3BubF9kZWx0YRgGIAEoAxq6AQoRQ2xlYXJNYXJrZXRSZXN1bHQSEQoJbWFya2V0X2lkGAEgASgNEhcKD2NsZWFyYW5jZV9wcmljZRgFIAEoBBI2ChBjYW5jZWxsZWRfb3JkZXJzGAMgAygLMhwubm9yZC5SZWNlaXB0LkNhbmNlbGxlZE9yZGVyEkEKEGNsb3NlZF9wb3NpdGlvbnMYBCADKAsyJy5ub3JkLlJlY2VpcHQuQ2xlYXJNYXJrZXRDbG9zZWRQb3NpdGlvbhqeAQoRQ2FuY2VsT3JkZXJSZXN1bHQSEAoIb3JkZXJfaWQYASABKAQSEgoKYWNjb3VudF9pZBgCIAEoDRIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAIgBARIxCglwbGFjZW1lbnQYBCABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VtZW50UmVjZWlwdEISChBfY2xpZW50X29yZGVyX2lkGnAKDURlcG9zaXRSZXN1bHQSEAoIdG9rZW5faWQYASABKA0SDgoGYW1vdW50GAIgASgEEhIKCmFjY291bnRfaWQYAyABKA0SFAoMdXNlcl9jcmVhdGVkGAQgASgIEhMKC3VzZXJfcHVia2V5GAUgASgMGkMKEUluc2VydFRva2VuUmVzdWx0EhIKCmNoYWluX2FkZHIYASABKAwSGgoFdG9rZW4YAiABKAsyCy5ub3JkLlRva2VuGjIKEkluc2VydE1hcmtldFJlc3VsdBIcCgZtYXJrZXQYASABKAsyDC5ub3JkLk1hcmtldBp5Cg5XaXRoZHJhd1Jlc3VsdBIQCgh0b2tlbl9pZBgBIAEoDRIOCgZhbW91bnQYAiABKAQSDwoHYmFsYW5jZRgDIAEoBBISCgphY2NvdW50X2lkGAQgASgNEgsKA2ZlZRgFIAEoBBITCgt1c2VyX3B1YmtleRgGIAEoDBpAChZPcmFjbGVTeW1ib2xGZWVkUmVzdWx0EhUKDW9yYWNsZV9zeW1ib2wYASABKAkSDwoHZmVlZF9pZBgCIAEoDBonChJPcmFjbGVVcGRhdGVSZXN1bHQSEQoJdGltZXN0YW1wGAEgASgDGjcKG1B5dGhMYXplck9yYWNsZVVwZGF0ZVJlc3VsdBIYChB0aW1lc3RhbXBfbWlsbGlzGAEgASgEGlkKIFB5dGhMYXplclRydXN0ZWRTaWduZXJzU2V0UmVzdWx0EjUKD3RydXN0ZWRfc2lnbmVycxgBIAMoCzIcLm5vcmQuUHl0aExhemVyVHJ1c3RlZFNpZ25lchqaAQocUHl0aExhemVyRmVlZFN5bWJvbFNldFJlc3VsdBJECgVmZWVkcxgBIAMoCzI1Lm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0LkZlZWRTeW1ib2waNAoKRmVlZFN5bWJvbBIPCgdmZWVkX2lkGAEgASgNEhUKDW9yYWNsZV9zeW1ib2wYAiABKAkaSAoXVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHQSGgoSZ3VhcmRpYW5fc2V0X2luZGV4GAEgASgNEhEKCWFkZHJlc3NlcxgCIAMoDBpDCgxQZXJwUG9zaXRpb24SEQoJbWFya2V0X2lkGAEgASgNEhEKCWJhc2Vfc2l6ZRgCIAEoAxINCgVwcmljZRgDIAEoBBoQCg5TZXNzaW9uUmV2b2tlZBoUChJTZWxmU2Vzc2lvblJldm9rZWQaNgoQU2Vzc2lvblJlZnJlc2hlZBISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxoICgZQYXVzZWQaCgoIVW5wYXVzZWQaTwoSQmFja3N0b3BBY2NvdW50U2V0EhIKCmFjY291bnRfaWQYASABKA0SJQoLbWFya2V0X21vZGUYAiABKA4yEC5ub3JkLk1hcmtldE1vZGUa/AEKCVJlY2lwaWVudBIyCgdzcGVjaWFsGAEgASgLMh8ubm9yZC5SZWNlaXB0LlJlY2lwaWVudC5TcGVjaWFsSAASLgoFb3duZWQYAiABKAsyHS5ub3JkLlJlY2VpcHQuUmVjaXBpZW50Lk93bmVkSAASMgoHdW5vd25lZBgDIAEoCzIfLm5vcmQuUmVjZWlwdC5SZWNpcGllbnQuVW5vd25lZEgAGgkKB1NwZWNpYWwaGwoFT3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDRodCgdVbm93bmVkEhIKCmFjY291bnRfaWQYASABKA1CEAoOcmVjaXBpZW50X3R5cGUaowEKC1RyYW5zZmVycmVkEhcKD2Zyb21fYWNjb3VudF9pZBgBIAEoDRIrCgp0b19hY2NvdW50GAIgASgLMhcubm9yZC5SZWNlaXB0LlJlY2lwaWVudBIQCgh0b2tlbl9pZBgDIAEoDRIOCgZhbW91bnQYBCABKAQSFwoPYWNjb3VudF9jcmVhdGVkGAUgASgIEhMKC3VzZXJfcHVia2V5GAYgASgMGkoKE0ZlZVZhdWx0VHJhbnNmZXJyZWQSEQoJcmVjaXBpZW50GAEgASgNEhAKCHRva2VuX2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBp6CgxUcmlnZ2VyQWRkZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQafAoOVHJpZ2dlclJlbW92ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQagAEKDVRyaWdnZXJFZGl0ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEicKEHByZXZpb3VzX3RyaWdnZXIYAyABKAsyDS5ub3JkLlRyaWdnZXISHgoHdHJpZ2dlchgEIAEoCzINLm5vcmQuVHJpZ2dlcho4ChNNYXJrZXRGcmVlemVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIOCgZmcm96ZW4YAiABKAgahQEKEU1hcmtldE1vZGVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIlCgttYXJrZXRfbW9kZRgCIAEoDjIQLm5vcmQuTWFya2V0TW9kZRI2ChBjYW5jZWxsZWRfb3JkZXJzGAMgAygLMhwubm9yZC5SZWNlaXB0LkNhbmNlbGxlZE9yZGVyGm4KEEZlZVRpZXJUeXBlQWRkZWQSCgoCaWQYASABKA0SJQoLbWFya2V0X3R5cGUYAiABKA4yEC5ub3JkLk1hcmtldFR5cGUSJwoGY29uZmlnGAMgASgLMhcubm9yZC5GZWVUaWVyVHlwZUNvbmZpZxpwChJGZWVUaWVyVHlwZVVwZGF0ZWQSCgoCaWQYASABKA0SJQoLbWFya2V0X3R5cGUYAiABKA4yEC5ub3JkLk1hcmtldFR5cGUSJwoGY29uZmlnGAMgASgLMhcubm9yZC5GZWVUaWVyVHlwZUNvbmZpZxpqCh5BY2NvdW50c0ZlZVRpZXJUeXBlTW9kZVVwZGF0ZWQSDwoHdGllcl9pZBgBIAEoDRIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIQCghhY2NvdW50cxgDIAMoDRpgCgpBY2xVcGRhdGVkEhIKCmFjbF9wdWJrZXkYASABKAwSEgoKcm9sZXNfbWFzaxgCIAEoBBIVCg10YXJnZXRfcHVia2V5GAMgASgMEhMKC3JvbGVzX3ZhbHVlGAQgASgEGuwDChlBdG9taWNTdWJhY3Rpb25SZXN1bHRLaW5kEjwKEnBsYWNlX29yZGVyX3Jlc3VsdBgBIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASNwoMY2FuY2VsX29yZGVyGAIgASgLMh8ubm9yZC5SZWNlaXB0LkNhbmNlbE9yZGVyUmVzdWx0SAASMwoNdHJpZ2dlcl9hZGRlZBgDIAEoCzIaLm5vcmQuUmVjZWlwdC5UcmlnZ2VyQWRkZWRIABI3Cg90cmlnZ2VyX3JlbW92ZWQYBCABKAsyHC5ub3JkLlJlY2VpcHQuVHJpZ2dlclJlbW92ZWRIABI1Cg50cmlnZ2VyX2VkaXRlZBgFIAEoCzIbLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRWRpdGVkSAASTgoYcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uGAYgASgLMioubm9yZC5SZWNlaXB0LlJlZHVjZU9yZGVyTGlxdWlkYXRpb25SZXN1bHRIABIqCgpyZnFfcmVzdWx0GAcgASgLMhQubm9yZC5QbGFjZVJGUVJlc3VsdEgAEi4KD3JmcV9maWxsX3Jlc3VsdBgIIAEoCzITLm5vcmQuRmlsbFJGUVJlc3VsdEgAQgcKBWlubmVyGkgKDEF0b21pY1Jlc3VsdBI4CgdyZXN1bHRzGAEgAygLMicubm9yZC5SZWNlaXB0LkF0b21pY1N1YmFjdGlvblJlc3VsdEtpbmRCBgoEa2luZCoYCgRTaWRlEgcKA0FTSxAAEgcKA0JJRBABKh8KCk1hcmtldE1vZGUSCAoEQ0xPQhAAEgcKA1JGURABKmMKDE1hcmtldFJlZ2ltZRIYChRNQVJLRVRfUkVHSU1FX05PUk1BTBAAEhsKF01BUktFVF9SRUdJTUVfUE9TVF9PTkxZEAESHAoYTUFSS0VUX1JFR0lNRV9UUkFERV9PTkxZEAIqLQoLVHJpZ2dlcktpbmQSDQoJU1RPUF9MT1NTEAASDwoLVEFLRV9QUk9GSVQQASokCgZJbnRlbnQSDAoIREVDUkVBU0UQABIMCghJTkNSRUFTRRABKk8KCEZpbGxNb2RlEgkKBUxJTUlUEAASDQoJUE9TVF9PTkxZEAESFwoTSU1NRURJQVRFX09SX0NBTkNFTBACEhAKDEZJTExfT1JfS0lMTBADKq4BCg1QbGFjZW1lbnRSb2xlEiAKHFBMQUNFTUVOVF9ST0xFX0FDQ09VTlRfT1dORVIQABIgChxQTEFDRU1FTlRfUk9MRV9WQVVMVF9NQU5BR0VSEAESHgoaUExBQ0VNRU5UX1JPTEVfU1VQRVJfQURNSU4QAhIaChZQTEFDRU1FTlRfUk9MRV9UUklHR0VSEAMSHQoZUExBQ0VNRU5UX1JPTEVfTElRVUlEQVRPUhAEKjEKE1NlbGZUcmFkZVByZXZlbnRpb24SCAoETk9ORRAAEhAKDEVYUElSRV9NQUtFUhABKiYKCk1hcmtldFR5cGUSCAoEU1BPVBAAEg4KClBFUlBFVFVBTFMQASp9ChBUcmlnZ2VyRXhlY0Vycm9yEg8KC05PX1BPU0lUSU9OEAASEwoPUExBTk5JTkdfRkFJTEVEEAESDgoKQkFOS1JVUFRDWRACEhUKEVJJU0tfQ0hFQ0tfRkFJTEVEEAMSHAoYUkVEVUNFX09OTFlfQ0hFQ0tfRkFJTEVEEAQqMAoOU3BlY2lhbEFjY291bnQSDQoJRkVFX1ZBVUxUEAASDwoLQ0xBSU1fVkFVTFQQASpdCgtWYXVsdFN0YXR1cxIXChNWQVVMVF9TVEFUVVNfQUNUSVZFEAASHAoYVkFVTFRfU1RBVFVTX0RFUklTS19PTkxZEAESFwoTVkFVTFRfU1RBVFVTX0ZST1pFThACKu4pCgVFcnJvchINCglEVVBMSUNBVEUQABIVChFJTlZBTElEX1NJR05BVFVSRRADEhQKEE1BUktFVF9OT1RfRk9VTkQQBBITCg9UT0tFTl9OT1RfRk9VTkQQBRISCg5VU0VSX05PVF9GT1VORBAGEhUKEVNFU1NJT05fTk9UX0ZPVU5EEAcSEwoPT1JERVJfTk9UX0ZPVU5EEAgSEwoPT1JERVJfU0laRV9aRVJPEAkSDgoKQVJJVEhNRVRJQxALEhcKE0FSSVRITUVUSUNfT1ZFUkZMT1cQDBIYChRBUklUSE1FVElDX1VOREVSRkxPVxANEh8KG0FSSVRITUVUSUNfRElWSVNJT05fQllfWkVSTxAOEhoKFktFWV9BTFJFQURZX1JFR0lTVEVSRUQQDxIcChhVUERBVEVfVElNRVNUQU1QX0lOX1BBU1QQERIYChRUT09fTUFOWV9PUEVOX09SREVSUxASEh0KGVdJVEhEUkFXX0FNT1VOVF9UT09fU01BTEwQFRIpCiVTT1VSQ0VfQU5EX1RBUkdFVF9TSE9VTERfTk9UX0JFX0VRVUFMEBgSEgoOREVDT0RFX0ZBSUxVUkUQIBIgChxERUNPREVfRkFJTFVSRV9MRU5HVEhfUFJFRklYECESFgoSREVDT0RFX0ZBSUxVUkVfUkFXECISGQoVREVDT0RFX0ZBSUxVUkVfRE9NQUlOECMSHwobVVBEQVRFX1BVQkxJU0hfVElNRV9JTl9QQVNUECQSCwoHU0VTU0lPThAwEh8KG1NFU1NJT05fUkVGUkVTSF9OT1RfRU5BQkxFRBAxEioKJlNFU1NJT05fUkVGUkVTSF9ERUFETElORV9CRUZPUkVfRVhQSVJZEDISFwoTUFlUSF9GRUVEX05PVF9BRERFRBBdEhUKEVBZVEhfRkVFRF9NSVNTSU5HEF4SGwoXUFlUSF9GRUVEX0FMUkVBRFlfQURERUQQXxIjCh9QWVRIX0dVQVJESUFOX1NFVF9VTklOSVRJQUxJWkVEEGASHQoZUFlUSF9HVUFSRElBTl9TRVRfSU5WQUxJRBBhEiMKH1BZVEhfRkVFRF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQYhIgChxQWVRIX0ZFRURfUFJJQ0VfT1VUX09GX1JBTkdFEGMSIwofUFlUSF9GRUVEX1ZBUklBTkNFX09VVF9PRl9SQU5HRRBkEjUKMVBZVEhfR1VBUkRJQU5fU0VUX0FORF9QWVRIX1NJR05BVFVSRV9ET19OT1RfTUFUQ0gQZRIcChhJTlZBTElEX1RPS0VOX1BBUkFNRVRFUlMQZhIcChhJTkRFWF9QUklDRV9PVVRfT0ZfUkFOR0UQZxIfChtJTkRFWF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQaBIZChVJTlZBTElEX1NUQVRFX1ZFUlNJT04QaRITCg9JTlZBTElEX01BUkdJTlMQbBIhCh1NQVJLRVRfREVDSU1BTFNfRVhDRUVEX0xJTUlUUxBtEhMKD1RPT19NQU5ZX1RPS0VOUxBuEggKBFRJRVIQcxIZChVUSUVSX0ZFRV9PVVRfT0ZfUkFOR0UQdBIYChRUSUVSX0lEX09VVF9PRl9SQU5HRRB1EhIKDlRJRVJfTk9UX0ZPVU5EEHYSFAoQRlVORElOR19PVkVSRkxPVxB7EjcKM0NBTl9SRURVQ0VfUE9TSVRJT05fT05MWV9JRl9BTExfT1JERVJTX0FSRV9DQU5DRUxFRBB8EhcKE1VORVhQRUNURURfVE9LRU5fSUQQfxIWChFSRVBFQVRFRF9PUkRFUl9JRBCAARIeChlDTElFTlRfT1JERVJfSURfVE9PX0xBUkdFEIEBEhQKD1RPS0VOX05PVF9SRUFEWRCCARIdChhUT0tFTl9BTFJFQURZX1JFR0lTVEVSRUQQgwESIQocSU1NRURJQVRFX09SREVSX0dPVF9OT19GSUxMUxCFARIZChRGQUlMRURfVE9fRklMTF9MSU1JVBCGARIwCitQT1NUX09OTFlfTVVTVF9OT1RfRklMTF9BTllfT1BQT1NJVEVfT1JERVJTEIcBEgwKB0lOVkFMSUQQiAESEAoLTUFJTlRFTkFOQ0UQiQESGgoVTUlOSU1VTV9TSVpFX0RFQ0lNQUxTEIoBEjIKLVBBUkFNRVRFUlNfV0lMTF9DUkVBVEVfTk9OX09QRVJBVElPTkFMX01BUktFVBCLARIiCh1PTkxZX0lNTUVESUFURV9PUkRFUlNfQUxMT1dFRBCMARIbChZUT09fTUFOWV9VU0VSX0FDQ09VTlRTEI0BEhYKEUFDQ09VTlRfTk9UX0ZPVU5EEI4BEhoKFUFDQ09VTlRfSU5WQUxJRF9PV05FUhCPARIbChZTVUJBQ1RJT05fT1VUX09GX1JBTkdFEJABEhEKDERVU1RfQUNDT1VOVBCRARIMCgdCQUxBTkNFEKABEh0KGEJBTEFOQ0VfREVQT1NJVF9PVkVSRkxPVxChARIcChdCQUxBTkNFX0NIQU5HRV9PVkVSRkxPVxCiARIiCh1CQUxBTkNFX0NIQU5HRV9MSU1JVF9FWENFRURFRBCjARIZChRCQUxBTkNFX0lOU1VGRklDSUVOVBCkARIeChlVTkFVVEhFTlRJQ0FURURfTDFfQUNUSU9OEKUBEh0KGEVOQ09ERURfQUNUSU9OX1RPT19MQVJHRRCmARIMCgdUUklHR0VSEKgBEhoKFVRSSUdHRVJfSU5WQUxJRF9QUklDRRCpARIWChFUUklHR0VSX05PVF9GT1VORBCqARIrCiZUUklHR0VSX09OTFlfREVDUkVBU0VfT1JERVJTX1NVUFBPUlRFRBCrARIoCiNUUklHR0VSX01BWF9TSVpFX1BMQUNFTUVOVF9FWENFRURFRBCsARIYChNUUklHR0VSX05PVF9DSEFOR0VEEK0BEg4KCVRJTUVTVEFNUBCwARIfChpUSU1FU1RBTVBfT1VUX09GX1RIUkVTSE9MRBCxARIUCg9USU1FU1RBTVBfU1RBTEUQsgESHAoYRVhQSVJZX1RJTUVTVEFNUF9JTl9QQVNUEBASJQogQkFOS1JVUFRDWV9JTlNVRkZJQ0lFTlRfQ09WRVJBR0UQuQESGQoUQkFOS1JVUFRDWV9OT1RfRk9VTkQQugESGwoWQkFOS1JVUFRDWV9OT1RfQUxMT1dFRBC7ARIVChBNQVJLRVRfTk9UX1JFQURZEMABEhIKDU1BUktFVF9GUk9aRU4QwQESEQoMTUFSS0VUX0VNUFRZEMIBEjAKK01BUktFVF9NT0RFX0RPRVNfTk9UX1NVUFBPUlRfVEhJU19PUEVSQVRJT04QwwESDQoIUE9TSVRJT04QyAESFwoSUE9TSVRJT05fTk9UX0ZPVU5EEMkBEhkKFFBPU0lUSU9OX1NUQVRFX09SREVSEMoBEh8KGlBPU0lUSU9OX1NUQVRFX09SREVSX1BSSUNFEMsBEh4KGVBPU0lUSU9OX1NUQVRFX09SREVSX1NJWkUQzAESHgoZUE9TSVRJT05fU1RBVEVfT1JERVJfU0lERRDNARIYChNQT1NJVElPTl9TSVpFX0xJTUlUEM4BEhgKE1BPU0lUSU9OX1NUQVRFX1BFUlAQzwESJAofUE9TSVRJT05fU1RBVEVfT1JERVJfREVMRUdBVElPThDQARIKCgVQUklDRRDRARIbChZTSUdOQVRVUkVfVkVSSUZJQ0FUSU9OENkBEjAKK1NJR05BVFVSRV9WRVJJRklDQVRJT05fTUFMRk9STUVEX1BVQkxJQ19LRVkQ2gESKgolU0lHTkFUVVJFX1ZFUklGSUNBVElPTl9JTlZBTElEX0xFTkdUSBDbARIJCgRSSVNLEOABEjQKL1JJU0tfREVMRUdBVElPTl9NRl9UT19CRV9MRVNTX1RIQU5fT1JfRVFVQUxfTU1GEOEBEiQKH1JJU0tfT01GX0xFU1NfVEhBTl9PUl9FUVVBTF9JTUYQ4gESJAofUklTS19PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDjARI1CjBSSVNLX1VOSEVBTFRIWV9NRl9BTkRfUE9OX0FGVEVSX0JFVFRFUl9PRl9CRUZPUkUQ5AESKgolUklTS19UUkFERV9PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDlARIUCg9SSVNLX05PVF9FTk9VR0gQ5gESFAoPT1JERVJfRVhFQ1VUSU9OEPABEhoKFU9SREVSX0VYRUNVVElPTl9FTVBUWRDxARIhChxPUkRFUl9FWEVDVVRJT05fRklMTF9PUl9LSUxMEPIBEiMKHk9SREVSX0VYRUNVVElPTl9NSVNTSU5HX0xJTUlUUxDzARIiCh1PUkRFUl9FWEVDVVRJT05fTUlTU0lOR19QUklDRRD0ARIfChpPUkRFUl9FWEVDVVRJT05fU0laRV9MSU1JVBD1ARIgChtPUkRFUl9FWEVDVVRJT05fTElNSVRfUFJJQ0UQ9gESHgoZT1JERVJfUkVEVUNFX0lTX1BPU1RfT05MWRD3ARIfChpPUkRFUl9FWEVDVVRJT05fU0VMTF9QUklDRRD4ARIlCiBPUkRFUl9TSVpFX0VYQ0VFRFNfUE9TSVRJT05fU0laRRD5ARIMCgdBVE9NSUNTEIACEigKI0FUT01JQ1NfVFJBREVTX0NBTk5PVF9GT0xMT1dfUExBQ0VTEIECEjAKK0FUT01JQ1NfQ0FOQ0VMU19DQU5OT1RfRk9MTE9XX1RSQURFU19QTEFDRVMQggISHQoYQVRPTUlDU19EVVBMSUNBVEVfQ0FOQ0VMEIMCEhgKE1JGUV9PUkRFUl9USU1FT1VURUQQ+gESJgohQUNUSU9OX1BPU0lUSU9OX1NIT1VMRF9CRV9DT1ZFUkVEEJECEhkKFEFDVElPTl9JTlZBTElEX05PTkNFEJICEikKJEFDVElPTl9QUk9QT1NFRF9QUklDRV9NVVNUX0JFX0hJR0hFUhCTAhIcChdBRE1JTl9ST0xFX0lOU1VGRklDSUVOVBCUAhIUCg9BRE1JTl9OT1RfRk9VTkQQlQISKQokVU5JUVVFX1NVUEVSX0FETUlOX0NBTk5PVF9CRV9SRU1PVkVEEJYCEh8KGlNVUEVSX0FETUlOX0FMUkVBRFlfRVhJU1RTEJcCEhUKEFRSSUdHRVJfQ09ORkxJQ1QQmAISGgoVVFJJR0dFUl9FRElUX0NPTkZMSUNUEJkCEhwKF1RSSUdHRVJfUkVNT1ZFX0NPTkZMSUNUEJoCEg0KCFRSQU5TRkVSEKACEi4KKVRSQU5TRkVSX1RPX1VOT1dORURfQUNDT1VOVF9JU19QUk9ISUJJVEVEEKECEiwKJ1RSQU5TRkVSX1RPX09XTkVEX0FDQ09VTlRfV0FTX1JFUVVFU1RFRBCiAhIqCiVUUkFOU0ZFUl9UT19DTEFJTV9WQVVMVF9JU19QUk9ISUJJVEVEEKMCEgoKBVZBVUxUEKgCEhQKD1ZBVUxUX05PVF9GT1VORBCpAhIdChhWQVVMVF9BQ1RJT05fTk9UX0FMTE9XRUQQqgISGQoUVkFVTFRfU1RBVFVTX0lOVkFMSUQQqwISJQogVkFVTFRfUkVEVUNFX09OTFlfT1JERVJfUkVRVUlSRUQQrAISJgohVkFVTFRfQUNUSU9OX1dPVUxEX0RFR1JBREVfU1RBVFVTEK0CEhkKFFZBVUxUX1VTRVJfTk9UX0ZPVU5EEK4CEh0KGFZBVUxUX1VTRVJfSEFTX05PX1NIQVJFUxCvAhIcChdWQVVMVF9QRVJNSVNTSU9OX0RFTklFRBC2AhISCg1WQVVMVF9ERVBPU0lUELACEjEKLFZBVUxUX0RFUE9TSVRfQk9PVFNUUkFQX1JFUVVJUkVTX0VNUFRZX1ZBVUxUELECEh8KGlZBVUxUX0RFUE9TSVRfQ0FQX0VYQ0VFREVEELICEikKJFZBVUxUX0RFUE9TSVRfUkVRVUlSRVNfQUNUSVZFX1NUQVRVUxCzAhIvCipWQVVMVF9ERVBPU0lUX0NBUF9CRUxPV19DVVJSRU5UX1JBV19FUVVJVFkQtAISHAoXVkFVTFRfREVQT1NJVF9UT09fU01BTEwQtQISEwoOVkFVTFRfV0lUSERSQVcQuAISHgoZVkFVTFRfSU5TVUZGSUNJRU5UX1NIQVJFUxC5AhIuCilWQVVMVF9XSVRIRFJBV19SRVFVSVJFU19OT05fRlJPWkVOX1NUQVRVUxC6AhIiCh1WQVVMVF9OT19DTEFJTUFCTEVfV0lUSERSQVdBTBC7AhIlCiBWQVVMVF9XSVRIRFJBV19RVU9URV9VTkFWQUlMQUJMRRC8AhItCihWQVVMVF9EVVNUX0VYSVRfUkVRVUlSRVNfRlVMTF9TSEFSRV9FWElUEL0CEjUKMFZBVUxUX0xBU1RfU0hBUkVfV0lUSERSQVdfUkVRVUlSRVNfRU1QVFlfQUNDT1VOVBC+AhIoCiNWQVVMVF9XSVRIRFJBV19SRVFVSVJFU19MSVZFX1NIQVJFUxC/AhISCg1WQVVMVF9DT05UUk9MEMACEh0KGFZBVUxUX0VQT0NIX05PVF9FTElHSUJMRRDBAhIyCi1WQVVMVF9GUkVFWkVfVEhSRVNIT0xEX01VU1RfRVhDRUVEX1BST1RFQ1RJT04QwwISHQoYVkFVTFRfQ09ORklHX1BBVENIX0VNUFRZEMQCEigKI1ZBVUxUX05PX1NUQVRVU19UUkFOU0lUSU9OX1JFUVVJUkVEEMUCEi0KKFZBVUxUX0ZST1pFTl9TVEFUVVNfUkVRVUlSRVNfU1VQRVJfQURNSU4QxgISKgolVkFVTFRfTkVXX0NPTkZJR19XT1VMRF9ERUdSQURFX1NUQVRVUxDHAhIOCglSRlFfRVJST1IQyAISEAoLUkZRX1RJTUVPVVQQyQISCwoGQ09ORklHEMoCEhQKD05PVF9JTVBMRU1FTlRFRBD0AxIXChJBQ1RJT05fTk9UX0FMTE9XRUQQ9QMSGAoTTk9UX1NVUFBPUlRFRF9JTlBVVBD2AxIMCgdEUk9QUEVEEOcHYgZwcm90bzM");
57298
57298
  var U128Schema = /* @__PURE__ */ messageDesc(file_nord, 0);
57299
57299
  var RfqTradeSchema = /* @__PURE__ */ messageDesc(file_nord, 1);
57300
57300
  var RfqPlaceOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 2);
@@ -57314,166 +57314,166 @@ var RfqTradeReceipt_FailureReason;
57314
57314
  })(RfqTradeReceipt_FailureReason ||= {});
57315
57315
  var RfqTradeReceipt_FailureReasonSchema = /* @__PURE__ */ enumDesc(file_nord, 7, 0);
57316
57316
  var PlaceRFQResultSchema = /* @__PURE__ */ messageDesc(file_nord, 8);
57317
- var FillRFQResultSchema = /* @__PURE__ */ messageDesc(file_nord, 9);
57318
- var RfqMakersSetSchema = /* @__PURE__ */ messageDesc(file_nord, 10);
57319
- var RFQQtyPlaceSchema = /* @__PURE__ */ messageDesc(file_nord, 11);
57320
- var FeeTierConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 12);
57321
- var MarketSchema = /* @__PURE__ */ messageDesc(file_nord, 13);
57322
- var TokenSchema = /* @__PURE__ */ messageDesc(file_nord, 14);
57323
- var VaultHealthSchema = /* @__PURE__ */ messageDesc(file_nord, 15);
57324
- var VaultConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 16);
57325
- var VaultConfigPatchSchema = /* @__PURE__ */ messageDesc(file_nord, 17);
57326
- var CreateVaultSchema = /* @__PURE__ */ messageDesc(file_nord, 18);
57327
- var UpdateVaultConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 19);
57328
- var SetVaultManagerSchema = /* @__PURE__ */ messageDesc(file_nord, 20);
57329
- var VaultSyncEpochsSchema = /* @__PURE__ */ messageDesc(file_nord, 21);
57330
- var StagedAdminActionSchema = /* @__PURE__ */ messageDesc(file_nord, 22);
57331
- var AdminActionKindSchema = /* @__PURE__ */ messageDesc(file_nord, 23);
57332
- var VaultDepositSchema = /* @__PURE__ */ messageDesc(file_nord, 24);
57333
- var VaultWithdrawSchema = /* @__PURE__ */ messageDesc(file_nord, 25);
57334
- var VaultWithdraw_RequestSchema = /* @__PURE__ */ messageDesc(file_nord, 25, 0);
57335
- var VaultWithdraw_ClaimSchema = /* @__PURE__ */ messageDesc(file_nord, 25, 1);
57336
- var CreateVaultReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 26);
57337
- var UpdateVaultConfigReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 27);
57338
- var SetVaultManagerReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 28);
57339
- var VaultSyncEpochsReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 29);
57340
- var VaultDepositReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 30);
57341
- var WithdrawalBucketsSchema = /* @__PURE__ */ messageDesc(file_nord, 31);
57342
- var VaultPpsRefSchema = /* @__PURE__ */ messageDesc(file_nord, 32);
57343
- var VaultEpochsSchema = /* @__PURE__ */ messageDesc(file_nord, 33);
57344
- var VaultUserStateSchema = /* @__PURE__ */ messageDesc(file_nord, 34);
57345
- var VaultWithdrawReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 35);
57346
- var VaultWithdrawReceipt_RequestedSchema = /* @__PURE__ */ messageDesc(file_nord, 35, 0);
57347
- var VaultWithdrawReceipt_ClaimedSchema = /* @__PURE__ */ messageDesc(file_nord, 35, 1);
57348
- var OrderLimitSchema = /* @__PURE__ */ messageDesc(file_nord, 36);
57349
- var PlaceTypeSchema = /* @__PURE__ */ messageDesc(file_nord, 37);
57350
- var TradeOrPlaceSchema = /* @__PURE__ */ messageDesc(file_nord, 38);
57351
- var AtomicCancelOrderByIdSchema = /* @__PURE__ */ messageDesc(file_nord, 39);
57352
- var AtomicCancelOrderByClientIdSchema = /* @__PURE__ */ messageDesc(file_nord, 40);
57353
- var AtomicAddTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 41);
57354
- var AtomicEditTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 42);
57355
- var AtomicRemoveTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 43);
57356
- var ReduceOrderLiquidationSchema = /* @__PURE__ */ messageDesc(file_nord, 44);
57357
- var AtomicSubactionKindV1Schema = /* @__PURE__ */ messageDesc(file_nord, 45);
57358
- var AtomicV1Schema = /* @__PURE__ */ messageDesc(file_nord, 46);
57359
- var AtomicPlacementRequestSchema = /* @__PURE__ */ messageDesc(file_nord, 47);
57360
- var AtomicSubactionSchema = /* @__PURE__ */ messageDesc(file_nord, 48);
57361
- var AtomicSubactionV2Schema = /* @__PURE__ */ messageDesc(file_nord, 49);
57317
+ var RFQExecutionSchema = /* @__PURE__ */ messageDesc(file_nord, 9);
57318
+ var FillRFQResultSchema = /* @__PURE__ */ messageDesc(file_nord, 10);
57319
+ var RfqMakersSetSchema = /* @__PURE__ */ messageDesc(file_nord, 11);
57320
+ var RFQQtyPlaceSchema = /* @__PURE__ */ messageDesc(file_nord, 12);
57321
+ var FeeTierConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 13);
57322
+ var FeeTierTypeConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 14);
57323
+ var MarketSchema = /* @__PURE__ */ messageDesc(file_nord, 15);
57324
+ var TokenSchema = /* @__PURE__ */ messageDesc(file_nord, 16);
57325
+ var VaultHealthSchema = /* @__PURE__ */ messageDesc(file_nord, 17);
57326
+ var VaultConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 18);
57327
+ var VaultConfigPatchSchema = /* @__PURE__ */ messageDesc(file_nord, 19);
57328
+ var CreateVaultSchema = /* @__PURE__ */ messageDesc(file_nord, 20);
57329
+ var UpdateVaultConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 21);
57330
+ var SetVaultManagerSchema = /* @__PURE__ */ messageDesc(file_nord, 22);
57331
+ var VaultSyncEpochsSchema = /* @__PURE__ */ messageDesc(file_nord, 23);
57332
+ var StagedAdminActionSchema = /* @__PURE__ */ messageDesc(file_nord, 24);
57333
+ var AdminActionKindSchema = /* @__PURE__ */ messageDesc(file_nord, 25);
57334
+ var VaultDepositSchema = /* @__PURE__ */ messageDesc(file_nord, 26);
57335
+ var VaultWithdrawSchema = /* @__PURE__ */ messageDesc(file_nord, 27);
57336
+ var VaultWithdraw_RequestSchema = /* @__PURE__ */ messageDesc(file_nord, 27, 0);
57337
+ var VaultWithdraw_ClaimSchema = /* @__PURE__ */ messageDesc(file_nord, 27, 1);
57338
+ var CreateVaultReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 28);
57339
+ var UpdateVaultConfigReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 29);
57340
+ var SetVaultManagerReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 30);
57341
+ var VaultSyncEpochsReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 31);
57342
+ var VaultDepositReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 32);
57343
+ var WithdrawalBucketsSchema = /* @__PURE__ */ messageDesc(file_nord, 33);
57344
+ var VaultPpsRefSchema = /* @__PURE__ */ messageDesc(file_nord, 34);
57345
+ var VaultEpochsSchema = /* @__PURE__ */ messageDesc(file_nord, 35);
57346
+ var VaultUserStateSchema = /* @__PURE__ */ messageDesc(file_nord, 36);
57347
+ var VaultWithdrawReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 37);
57348
+ var VaultWithdrawReceipt_RequestedSchema = /* @__PURE__ */ messageDesc(file_nord, 37, 0);
57349
+ var VaultWithdrawReceipt_ClaimedSchema = /* @__PURE__ */ messageDesc(file_nord, 37, 1);
57350
+ var OrderLimitSchema = /* @__PURE__ */ messageDesc(file_nord, 38);
57351
+ var PlaceTypeSchema = /* @__PURE__ */ messageDesc(file_nord, 39);
57352
+ var TradeOrPlaceSchema = /* @__PURE__ */ messageDesc(file_nord, 40);
57353
+ var AtomicCancelOrderByIdSchema = /* @__PURE__ */ messageDesc(file_nord, 41);
57354
+ var AtomicCancelOrderByClientIdSchema = /* @__PURE__ */ messageDesc(file_nord, 42);
57355
+ var AtomicAddTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 43);
57356
+ var AtomicEditTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 44);
57357
+ var AtomicRemoveTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 45);
57358
+ var ReduceOrderLiquidationSchema = /* @__PURE__ */ messageDesc(file_nord, 46);
57359
+ var AtomicSubactionKindV1Schema = /* @__PURE__ */ messageDesc(file_nord, 47);
57360
+ var AtomicV1Schema = /* @__PURE__ */ messageDesc(file_nord, 48);
57361
+ var AtomicSubactionSchema = /* @__PURE__ */ messageDesc(file_nord, 49);
57362
57362
  var AtomicSchema = /* @__PURE__ */ messageDesc(file_nord, 50);
57363
- var AtomicV2Schema = /* @__PURE__ */ messageDesc(file_nord, 51);
57364
- var PythLazerTrustedSignerSchema = /* @__PURE__ */ messageDesc(file_nord, 52);
57365
- var TriggerRecordSchema = /* @__PURE__ */ messageDesc(file_nord, 53);
57366
- var TriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54);
57367
- var ActionSchema = /* @__PURE__ */ messageDesc(file_nord, 55);
57368
- var Action_CreateSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 0);
57369
- var Action_CreateTokenSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 1);
57370
- var Action_SetMarketModeCLOBTradingOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 55, 2);
57371
- var Action_SetMarketModeCLOBPostOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 55, 3);
57372
- var Action_SetMarketModeCLOBSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 4);
57373
- var Action_CreateMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 5);
57374
- var Action_PlaceOrderSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 6);
57375
- var Action_CancelOrderByIdSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 7);
57376
- var Action_CancelOrderByClientIdSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 8);
57377
- var Action_DepositSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 9);
57378
- var Action_WithdrawSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 10);
57379
- var Action_PythSetWormholeGuardiansSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 11);
57380
- var Action_PythSetSymbolFeedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 12);
57381
- var Action_PythPriceFeedUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 13);
57382
- var Action_PythLazerPriceFeedUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 14);
57383
- var Action_PythLazerSetTrustedSignersSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 15);
57384
- var Action_PythLazerSetFeedSymbolSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 16);
57385
- var Action_PythLazerSetFeedSymbol_FeedSymbolInputSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 16, 0);
57386
- var Action_RevokeSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 17);
57387
- var Action_RefreshSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 18);
57388
- var Action_SelfRevokeSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 19);
57389
- var Action_PauseSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 20);
57390
- var Action_UnpauseSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 21);
57391
- var Action_SetBackstopAccountSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 22);
57392
- var Action_RecipientSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 23);
57393
- var Action_Recipient_SpecialSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 23, 0);
57394
- var Action_Recipient_OwnedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 23, 1);
57395
- var Action_Recipient_UnownedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 23, 2);
57396
- var Action_TransferSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 24);
57397
- var Action_FeeVaultTransferSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 25);
57398
- var Action_AddTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 26);
57399
- var Action_EditTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 27);
57400
- var Action_RemoveTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 28);
57401
- var Action_AddFeeTierSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 29);
57402
- var Action_UpdateFeeTierSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 30);
57403
- var Action_UpdateAccountsTierSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 31);
57404
- var Action_UpdateAclSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 32);
57405
- var Action_FreezeMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 33);
57406
- var Action_UnfreezeMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 34);
57407
- var Action_ClearMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 35);
57408
- var Action_ExecuteTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 36);
57409
- var Action_TakeAllPositionsSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37);
57363
+ var PythLazerTrustedSignerSchema = /* @__PURE__ */ messageDesc(file_nord, 51);
57364
+ var TriggerRecordSchema = /* @__PURE__ */ messageDesc(file_nord, 52);
57365
+ var TriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 53);
57366
+ var ActionSchema = /* @__PURE__ */ messageDesc(file_nord, 54);
57367
+ var Action_CreateSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 0);
57368
+ var Action_CreateTokenSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 1);
57369
+ var Action_SetMarketModeCLOBTradingOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 54, 2);
57370
+ var Action_SetMarketModeCLOBPostOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 54, 3);
57371
+ var Action_SetMarketModeCLOBSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 4);
57372
+ var Action_CreateMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 5);
57373
+ var Action_PlaceOrderSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 6);
57374
+ var Action_CancelOrderByIdSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 7);
57375
+ var Action_CancelOrderByClientIdSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 8);
57376
+ var Action_DepositSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 9);
57377
+ var Action_WithdrawSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 10);
57378
+ var Action_PythSetWormholeGuardiansSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 11);
57379
+ var Action_PythSetSymbolFeedSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 12);
57380
+ var Action_PythPriceFeedUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 13);
57381
+ var Action_PythLazerPriceFeedUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 14);
57382
+ var Action_PythLazerSetTrustedSignersSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 15);
57383
+ var Action_PythLazerSetFeedSymbolSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 16);
57384
+ var Action_PythLazerSetFeedSymbol_FeedSymbolInputSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 16, 0);
57385
+ var Action_RevokeSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 17);
57386
+ var Action_RefreshSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 18);
57387
+ var Action_SelfRevokeSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 19);
57388
+ var Action_PauseSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 20);
57389
+ var Action_UnpauseSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 21);
57390
+ var Action_SetBackstopAccountSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 22);
57391
+ var Action_RecipientSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23);
57392
+ var Action_Recipient_SpecialSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23, 0);
57393
+ var Action_Recipient_OwnedSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23, 1);
57394
+ var Action_Recipient_UnownedSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23, 2);
57395
+ var Action_TransferSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 24);
57396
+ var Action_FeeVaultTransferSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 25);
57397
+ var Action_AddTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 26);
57398
+ var Action_EditTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 27);
57399
+ var Action_RemoveTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 28);
57400
+ var Action_AddFeeTierTypeSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 29);
57401
+ var Action_UpdateFeeTierTypeSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 30);
57402
+ var Action_UpdateAccountsFeeTierTypeModeSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 31);
57403
+ var Action_UpdateAclSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 32);
57404
+ var Action_FreezeMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 33);
57405
+ var Action_UnfreezeMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 34);
57406
+ var Action_ClearMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 35);
57407
+ var Action_ExecuteTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 36);
57408
+ var Action_TakeAllPositionsSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 37);
57410
57409
  var Action_UserSignatureFraming;
57411
57410
  ((Action_UserSignatureFraming2) => {
57412
57411
  Action_UserSignatureFraming2[Action_UserSignatureFraming2["HEX"] = 0] = "HEX";
57413
57412
  Action_UserSignatureFraming2[Action_UserSignatureFraming2["SOLANA_TRANSACTION"] = 1] = "SOLANA_TRANSACTION";
57414
57413
  })(Action_UserSignatureFraming ||= {});
57415
- var Action_UserSignatureFramingSchema = /* @__PURE__ */ enumDesc(file_nord, 55, 0);
57416
- var ReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 56);
57417
- var Receipt_PostedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 0);
57418
- var Receipt_TradeSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 1);
57419
- var Receipt_CreateSessionResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 2);
57420
- var Receipt_CancelledTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 3);
57421
- var Receipt_OrderUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 4);
57414
+ var Action_UserSignatureFramingSchema = /* @__PURE__ */ enumDesc(file_nord, 54, 0);
57415
+ var ReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55);
57416
+ var Receipt_PostedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 0);
57417
+ var Receipt_TradeSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 1);
57418
+ var Receipt_CreateSessionResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 2);
57419
+ var Receipt_CancelledTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 3);
57420
+ var Receipt_OrderUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 4);
57422
57421
  var Receipt_OrderUpdate_Reason;
57423
57422
  ((Receipt_OrderUpdate_Reason2) => {
57424
57423
  Receipt_OrderUpdate_Reason2[Receipt_OrderUpdate_Reason2["REDUCE_ONLY"] = 0] = "REDUCE_ONLY";
57425
57424
  Receipt_OrderUpdate_Reason2[Receipt_OrderUpdate_Reason2["SELF_TRADE_PREVENTION"] = 1] = "SELF_TRADE_PREVENTION";
57426
57425
  })(Receipt_OrderUpdate_Reason ||= {});
57427
- var Receipt_OrderUpdate_ReasonSchema = /* @__PURE__ */ enumDesc(file_nord, 56, 4, 0);
57428
- var Receipt_PlaceOrderResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 5);
57429
- var Receipt_ReduceOrderLiquidationResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 6);
57430
- var Receipt_PlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 7);
57431
- var Receipt_AccountPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 8);
57432
- var Receipt_VaultPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 9);
57433
- var Receipt_TriggerExecutedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 10);
57434
- var Receipt_TakeAllBalanceSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 11);
57435
- var Receipt_TakeAllPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 12);
57436
- var Receipt_TakeAllOrderUpdatesSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 13);
57437
- var Receipt_TakeAllPositionsResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 14);
57438
- var Receipt_ClearMarketCancelledOrderSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 15);
57439
- var Receipt_ClearMarketClosedPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 16);
57440
- var Receipt_ClearMarketResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 17);
57441
- var Receipt_CancelOrderResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 18);
57442
- var Receipt_DepositResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 19);
57443
- var Receipt_InsertTokenResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 20);
57444
- var Receipt_InsertMarketResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 21);
57445
- var Receipt_WithdrawResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 22);
57446
- var Receipt_OracleSymbolFeedResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 23);
57447
- var Receipt_OracleUpdateResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 24);
57448
- var Receipt_PythLazerOracleUpdateResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 25);
57449
- var Receipt_PythLazerTrustedSignersSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 26);
57450
- var Receipt_PythLazerFeedSymbolSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 27);
57451
- var Receipt_PythLazerFeedSymbolSetResult_FeedSymbolSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 27, 0);
57452
- var Receipt_UpdateGuardianSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 28);
57453
- var Receipt_PerpPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 29);
57454
- var Receipt_SessionRevokedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 30);
57455
- var Receipt_SelfSessionRevokedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 31);
57456
- var Receipt_SessionRefreshedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 32);
57457
- var Receipt_PausedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 33);
57458
- var Receipt_UnpausedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 34);
57459
- var Receipt_BackstopAccountSetSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 35);
57460
- var Receipt_RecipientSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 36);
57461
- var Receipt_Recipient_SpecialSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 36, 0);
57462
- var Receipt_Recipient_OwnedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 36, 1);
57463
- var Receipt_Recipient_UnownedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 36, 2);
57464
- var Receipt_TransferredSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 37);
57465
- var Receipt_FeeVaultTransferredSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 38);
57466
- var Receipt_TriggerAddedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 39);
57467
- var Receipt_TriggerRemovedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 40);
57468
- var Receipt_TriggerEditedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 41);
57469
- var Receipt_MarketFreezeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 42);
57470
- var Receipt_MarketModeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 43);
57471
- var Receipt_FeeTierAddedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 44);
57472
- var Receipt_FeeTierUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 45);
57473
- var Receipt_AccountsTierUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 46);
57474
- var Receipt_AclUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 47);
57475
- var Receipt_AtomicSubactionResultKindSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 48);
57476
- var Receipt_AtomicResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 49);
57426
+ var Receipt_OrderUpdate_ReasonSchema = /* @__PURE__ */ enumDesc(file_nord, 55, 4, 0);
57427
+ var Receipt_PlaceOrderResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 5);
57428
+ var Receipt_ReduceOrderLiquidationResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 6);
57429
+ var Receipt_PlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 7);
57430
+ var Receipt_AccountPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 8);
57431
+ var Receipt_VaultPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 9);
57432
+ var Receipt_TriggerExecutedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 10);
57433
+ var Receipt_TakeAllBalanceSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 11);
57434
+ var Receipt_TakeAllPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 12);
57435
+ var Receipt_TakeAllOrderUpdatesSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 13);
57436
+ var Receipt_TakeAllTakerResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 14);
57437
+ var Receipt_TakeAllPositionsResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 15);
57438
+ var Receipt_CancelledOrderSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 16);
57439
+ var Receipt_ClearMarketClosedPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 17);
57440
+ var Receipt_ClearMarketResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 18);
57441
+ var Receipt_CancelOrderResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 19);
57442
+ var Receipt_DepositResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 20);
57443
+ var Receipt_InsertTokenResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 21);
57444
+ var Receipt_InsertMarketResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 22);
57445
+ var Receipt_WithdrawResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 23);
57446
+ var Receipt_OracleSymbolFeedResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 24);
57447
+ var Receipt_OracleUpdateResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 25);
57448
+ var Receipt_PythLazerOracleUpdateResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 26);
57449
+ var Receipt_PythLazerTrustedSignersSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 27);
57450
+ var Receipt_PythLazerFeedSymbolSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 28);
57451
+ var Receipt_PythLazerFeedSymbolSetResult_FeedSymbolSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 28, 0);
57452
+ var Receipt_UpdateGuardianSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 29);
57453
+ var Receipt_PerpPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 30);
57454
+ var Receipt_SessionRevokedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 31);
57455
+ var Receipt_SelfSessionRevokedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 32);
57456
+ var Receipt_SessionRefreshedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 33);
57457
+ var Receipt_PausedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 34);
57458
+ var Receipt_UnpausedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 35);
57459
+ var Receipt_BackstopAccountSetSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 36);
57460
+ var Receipt_RecipientSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37);
57461
+ var Receipt_Recipient_SpecialSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37, 0);
57462
+ var Receipt_Recipient_OwnedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37, 1);
57463
+ var Receipt_Recipient_UnownedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37, 2);
57464
+ var Receipt_TransferredSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 38);
57465
+ var Receipt_FeeVaultTransferredSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 39);
57466
+ var Receipt_TriggerAddedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 40);
57467
+ var Receipt_TriggerRemovedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 41);
57468
+ var Receipt_TriggerEditedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 42);
57469
+ var Receipt_MarketFreezeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 43);
57470
+ var Receipt_MarketModeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 44);
57471
+ var Receipt_FeeTierTypeAddedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 45);
57472
+ var Receipt_FeeTierTypeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 46);
57473
+ var Receipt_AccountsFeeTierTypeModeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 47);
57474
+ var Receipt_AclUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 48);
57475
+ var Receipt_AtomicSubactionResultKindSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 49);
57476
+ var Receipt_AtomicResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 50);
57477
57477
  var Side;
57478
57478
  ((Side2) => {
57479
57479
  Side2[Side2["ASK"] = 0] = "ASK";
@@ -57546,6 +57546,7 @@ var TriggerExecErrorSchema = /* @__PURE__ */ enumDesc(file_nord, 9);
57546
57546
  var SpecialAccount;
57547
57547
  ((SpecialAccount2) => {
57548
57548
  SpecialAccount2[SpecialAccount2["FEE_VAULT"] = 0] = "FEE_VAULT";
57549
+ SpecialAccount2[SpecialAccount2["CLAIM_VAULT"] = 1] = "CLAIM_VAULT";
57549
57550
  })(SpecialAccount ||= {});
57550
57551
  var SpecialAccountSchema = /* @__PURE__ */ enumDesc(file_nord, 10);
57551
57552
  var VaultStatus;
@@ -57694,6 +57695,7 @@ var Error2;
57694
57695
  Error3[Error3["TRANSFER"] = 288] = "TRANSFER";
57695
57696
  Error3[Error3["TRANSFER_TO_UNOWNED_ACCOUNT_IS_PROHIBITED"] = 289] = "TRANSFER_TO_UNOWNED_ACCOUNT_IS_PROHIBITED";
57696
57697
  Error3[Error3["TRANSFER_TO_OWNED_ACCOUNT_WAS_REQUESTED"] = 290] = "TRANSFER_TO_OWNED_ACCOUNT_WAS_REQUESTED";
57698
+ Error3[Error3["TRANSFER_TO_CLAIM_VAULT_IS_PROHIBITED"] = 291] = "TRANSFER_TO_CLAIM_VAULT_IS_PROHIBITED";
57697
57699
  Error3[Error3["VAULT"] = 296] = "VAULT";
57698
57700
  Error3[Error3["VAULT_NOT_FOUND"] = 297] = "VAULT_NOT_FOUND";
57699
57701
  Error3[Error3["VAULT_ACTION_NOT_ALLOWED"] = 298] = "VAULT_ACTION_NOT_ALLOWED";
@@ -57719,7 +57721,6 @@ var Error2;
57719
57721
  Error3[Error3["VAULT_WITHDRAW_REQUIRES_LIVE_SHARES"] = 319] = "VAULT_WITHDRAW_REQUIRES_LIVE_SHARES";
57720
57722
  Error3[Error3["VAULT_CONTROL"] = 320] = "VAULT_CONTROL";
57721
57723
  Error3[Error3["VAULT_EPOCH_NOT_ELIGIBLE"] = 321] = "VAULT_EPOCH_NOT_ELIGIBLE";
57722
- Error3[Error3["VAULT_PREVIOUS_EPOCH_WITHDRAWALS_NOT_PAYABLE"] = 322] = "VAULT_PREVIOUS_EPOCH_WITHDRAWALS_NOT_PAYABLE";
57723
57724
  Error3[Error3["VAULT_FREEZE_THRESHOLD_MUST_EXCEED_PROTECTION"] = 323] = "VAULT_FREEZE_THRESHOLD_MUST_EXCEED_PROTECTION";
57724
57725
  Error3[Error3["VAULT_CONFIG_PATCH_EMPTY"] = 324] = "VAULT_CONFIG_PATCH_EMPTY";
57725
57726
  Error3[Error3["VAULT_NO_STATUS_TRANSITION_REQUIRED"] = 325] = "VAULT_NO_STATUS_TRANSITION_REQUIRED";
@@ -57727,6 +57728,7 @@ var Error2;
57727
57728
  Error3[Error3["VAULT_NEW_CONFIG_WOULD_DEGRADE_STATUS"] = 327] = "VAULT_NEW_CONFIG_WOULD_DEGRADE_STATUS";
57728
57729
  Error3[Error3["RFQ_ERROR"] = 328] = "RFQ_ERROR";
57729
57730
  Error3[Error3["RFQ_TIMEOUT"] = 329] = "RFQ_TIMEOUT";
57731
+ Error3[Error3["CONFIG"] = 330] = "CONFIG";
57730
57732
  Error3[Error3["NOT_IMPLEMENTED"] = 500] = "NOT_IMPLEMENTED";
57731
57733
  Error3[Error3["ACTION_NOT_ALLOWED"] = 501] = "ACTION_NOT_ALLOWED";
57732
57734
  Error3[Error3["NOT_SUPPORTED_INPUT"] = 502] = "NOT_SUPPORTED_INPUT";
@@ -92458,18 +92460,34 @@ class Nord {
92458
92460
  markets = [];
92459
92461
  tokens = [];
92460
92462
  symbolToMarketId = new Map;
92461
- protonClient;
92463
+ protonConfig;
92464
+ protonClientPromise;
92462
92465
  httpClient;
92463
92466
  constructor({
92464
92467
  solanaConnection,
92465
92468
  webServerUrl,
92466
- protonClient
92469
+ protonConfig
92467
92470
  }) {
92468
92471
  this.webServerUrl = webServerUrl;
92469
92472
  this.solanaConnection = solanaConnection;
92470
- this.protonClient = protonClient;
92473
+ this.protonConfig = protonConfig;
92471
92474
  this.httpClient = createClient({ baseUrl: webServerUrl });
92472
92475
  }
92476
+ getProtonClient() {
92477
+ if (this.protonClientPromise === undefined) {
92478
+ const initialization = ProtonClient.init({
92479
+ ...this.protonConfig,
92480
+ solConn: this.solanaConnection
92481
+ });
92482
+ this.protonClientPromise = initialization;
92483
+ initialization.catch(() => {
92484
+ if (this.protonClientPromise === initialization) {
92485
+ this.protonClientPromise = undefined;
92486
+ }
92487
+ });
92488
+ }
92489
+ return this.protonClientPromise;
92490
+ }
92473
92491
  createWebSocketClient({
92474
92492
  trades,
92475
92493
  deltas,
@@ -92596,15 +92614,13 @@ class Nord {
92596
92614
  webServerUrl,
92597
92615
  protonUrl
92598
92616
  }) {
92599
- const protonClient = await ProtonClient.init({
92600
- protonUrl: protonUrl ?? webServerUrl,
92601
- app: new import_web39.PublicKey(app),
92602
- solConn: solanaConnection
92603
- });
92604
92617
  const nord = new Nord({
92605
- protonClient,
92606
92618
  solanaConnection,
92607
- webServerUrl
92619
+ webServerUrl,
92620
+ protonConfig: {
92621
+ protonUrl: protonUrl ?? webServerUrl,
92622
+ app: new import_web39.PublicKey(app)
92623
+ }
92608
92624
  });
92609
92625
  await nord.init();
92610
92626
  return nord;
@@ -92930,6 +92946,14 @@ class Nord {
92930
92946
  }
92931
92947
  });
92932
92948
  }
92949
+ async getAccountPositionSummary(accountId, { marketId } = {}) {
92950
+ return await this.GET("/account/{account_id}/position/summary", {
92951
+ params: {
92952
+ path: { account_id: accountId },
92953
+ query: { marketId: marketId ?? undefined }
92954
+ }
92955
+ });
92956
+ }
92933
92957
  async getMarketsLive() {
92934
92958
  return await this.GET("/markets/live", {});
92935
92959
  }
@@ -93730,7 +93754,11 @@ function normalizeAtomicReceipt(resp, actionCount) {
93730
93754
  }
93731
93755
  return;
93732
93756
  }
93733
- function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = false) {
93757
+ function atomicSubactionToProto(currentTimestamp, a2) {
93758
+ const target = {
93759
+ targetAccountId: a2.targetAccountId,
93760
+ useKey: a2.useKey
93761
+ };
93734
93762
  if (a2.kind === "place") {
93735
93763
  const price = toScaledU64(a2.price ?? 0, a2.priceDecimals);
93736
93764
  const size = toScaledU64(a2.size ?? 0, a2.sizeDecimals);
@@ -93752,16 +93780,16 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
93752
93780
  referrer: a2.referrer === undefined ? undefined : toProtoU128(a2.referrer)
93753
93781
  });
93754
93782
  return create(AtomicSubactionSchema, {
93755
- delegatorAccountId: omitDelegatorAccountId ? undefined : a2.delegatorAccountId,
93783
+ ...target,
93756
93784
  inner: { case: "tradeOrPlace", value: tradeOrPlace }
93757
93785
  });
93758
93786
  }
93759
93787
  if (a2.kind === "reduceOrderLiquidation") {
93760
93788
  return create(AtomicSubactionSchema, {
93789
+ ...target,
93761
93790
  inner: {
93762
93791
  case: "reduceOrderLiquidation",
93763
93792
  value: create(ReduceOrderLiquidationSchema, {
93764
- targetAccountId: a2.targetAccountId,
93765
93793
  marketId: a2.marketId
93766
93794
  })
93767
93795
  }
@@ -93770,9 +93798,13 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
93770
93798
  if (a2.kind === "rfq") {
93771
93799
  const price = toScaledU64(a2.price, a2.priceDecimals);
93772
93800
  const size = toScaledU64(a2.size, a2.sizeDecimals);
93801
+ const minimalFill = a2.minimalFill !== undefined ? toScaledU64(a2.minimalFill, a2.sizeDecimals) : undefined;
93802
+ if (minimalFill !== undefined) {
93803
+ assert3(minimalFill > 0n, "minimalFill must be greater than 0");
93804
+ }
93773
93805
  const timestampMillis = currentTimestamp * 1000n;
93774
93806
  return create(AtomicSubactionSchema, {
93775
- delegatorAccountId: omitDelegatorAccountId ? undefined : a2.delegatorAccountId,
93807
+ ...target,
93776
93808
  inner: {
93777
93809
  case: "rfqPlaceOnly",
93778
93810
  value: create(RfqPlaceOnlySchema, {
@@ -93781,17 +93813,21 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
93781
93813
  clientOrderId: a2.clientOrderId === undefined ? undefined : BigInt(a2.clientOrderId),
93782
93814
  price,
93783
93815
  side: a2.side === "bid" /* Bid */ ? 1 /* BID */ : 0 /* ASK */,
93784
- base: size,
93785
- timestampMillis
93816
+ timestampMillis,
93817
+ size,
93818
+ minimalFill,
93819
+ isReduceOnly: a2.isReduceOnly
93786
93820
  })
93787
93821
  }
93788
93822
  });
93789
93823
  }
93790
93824
  if (a2.kind === "rfqFill") {
93791
93825
  const price = toScaledU64(a2.price, a2.priceDecimals);
93826
+ const minimumSize = a2.minimumSize !== undefined ? toScaledU64(a2.minimumSize, a2.sizeDecimals) : undefined;
93827
+ const maximumSize = a2.maximumSize !== undefined ? toScaledU64(a2.maximumSize, a2.sizeDecimals) : undefined;
93792
93828
  const timestampMillis = currentTimestamp * 1000n;
93793
93829
  return create(AtomicSubactionSchema, {
93794
- delegatorAccountId: omitDelegatorAccountId ? undefined : a2.delegatorAccountId,
93830
+ ...target,
93795
93831
  inner: {
93796
93832
  case: "rfqTrade",
93797
93833
  value: create(RfqTradeSchema, {
@@ -93799,14 +93835,17 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
93799
93835
  marketId: a2.marketId,
93800
93836
  orderId: BigInt(a2.orderId),
93801
93837
  price,
93802
- timestampMillis
93838
+ timestampMillis,
93839
+ minimumSize,
93840
+ maximumSize,
93841
+ isReduceOnly: a2.isReduceOnly
93803
93842
  })
93804
93843
  }
93805
93844
  });
93806
93845
  }
93807
93846
  if (a2.kind === "cancelByClientId") {
93808
93847
  return create(AtomicSubactionSchema, {
93809
- delegatorAccountId: omitDelegatorAccountId ? undefined : a2.delegatorAccountId,
93848
+ ...target,
93810
93849
  inner: {
93811
93850
  case: "cancelOrderByClientId",
93812
93851
  value: create(AtomicCancelOrderByClientIdSchema, {
@@ -93820,6 +93859,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
93820
93859
  assert3(triggerPrice > 0n, "Trigger price must be positive");
93821
93860
  const limits = buildLimits(a2.priceDecimals, a2.sizeDecimals, a2.limitPrice, a2.limitBaseSize, a2.limitQuoteSize);
93822
93861
  return create(AtomicSubactionSchema, {
93862
+ ...target,
93823
93863
  inner: {
93824
93864
  case: "addTrigger",
93825
93865
  value: create(AtomicAddTriggerSchema, {
@@ -93841,6 +93881,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
93841
93881
  assert3(triggerPrice > 0n, "Trigger price must be positive");
93842
93882
  const limits = buildLimits(a2.priceDecimals, a2.sizeDecimals, a2.limitPrice, a2.limitBaseSize, a2.limitQuoteSize);
93843
93883
  return create(AtomicSubactionSchema, {
93884
+ ...target,
93844
93885
  inner: {
93845
93886
  case: "editTrigger",
93846
93887
  value: create(AtomicEditTriggerSchema, {
@@ -93858,6 +93899,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
93858
93899
  }
93859
93900
  if (a2.kind === "removeTrigger") {
93860
93901
  return create(AtomicSubactionSchema, {
93902
+ ...target,
93861
93903
  inner: {
93862
93904
  case: "removeTrigger",
93863
93905
  value: create(AtomicRemoveTriggerSchema, {
@@ -93868,7 +93910,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
93868
93910
  });
93869
93911
  }
93870
93912
  return create(AtomicSubactionSchema, {
93871
- delegatorAccountId: omitDelegatorAccountId ? undefined : a2.delegatorAccountId,
93913
+ ...target,
93872
93914
  inner: {
93873
93915
  case: "cancelOrder",
93874
93916
  value: create(AtomicCancelOrderByIdSchema, {
@@ -93877,53 +93919,10 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
93877
93919
  }
93878
93920
  });
93879
93921
  }
93880
- function atomicPlacement(a2) {
93881
- return "placement" in a2 ? a2.placement : undefined;
93882
- }
93883
- async function atomic(client2, signFn, currentTimestamp, nonce, params) {
93922
+ function createAtomicAction(currentTimestamp, nonce, params) {
93884
93923
  assert3(params.actions.length > 0 && params.actions.length <= 10, "Atomic action must contain between 1 and 10 sub-actions");
93885
- const useAtomicV2 = params.actions.some((a2) => a2.kind === "reduceOrderLiquidation" || atomicPlacement(a2) !== undefined);
93886
- const subactions = params.actions.map((a2) => atomicSubactionToProto(currentTimestamp, a2, useAtomicV2));
93887
- const action = createAction(currentTimestamp, nonce, useAtomicV2 ? {
93888
- case: "atomicV2",
93889
- value: create(AtomicV2Schema, {
93890
- sessionId: BigInt(params.sessionId),
93891
- accountId: params.accountId,
93892
- actions: params.actions.map((a2, index) => {
93893
- const subaction = subactions[index];
93894
- assert3(subaction !== undefined, "Atomic subaction missing");
93895
- let placement;
93896
- const placementRequest = atomicPlacement(a2);
93897
- if (placementRequest === undefined) {
93898
- if ("delegatorAccountId" in a2 && a2.delegatorAccountId !== undefined) {
93899
- placement = create(AtomicPlacementRequestSchema, {
93900
- inner: {
93901
- case: "liquidationAccountId",
93902
- value: a2.delegatorAccountId
93903
- }
93904
- });
93905
- }
93906
- } else if (placementRequest !== "accountOwner") {
93907
- if ("vault" in placementRequest) {
93908
- placement = create(AtomicPlacementRequestSchema, {
93909
- inner: { case: "vaultId", value: placementRequest.vault }
93910
- });
93911
- } else {
93912
- placement = create(AtomicPlacementRequestSchema, {
93913
- inner: {
93914
- case: "liquidationAccountId",
93915
- value: placementRequest.liquidation
93916
- }
93917
- });
93918
- }
93919
- }
93920
- return create(AtomicSubactionV2Schema, {
93921
- placement,
93922
- subaction
93923
- });
93924
- })
93925
- })
93926
- } : {
93924
+ const subactions = params.actions.map((a2) => atomicSubactionToProto(currentTimestamp, a2));
93925
+ return createAction(currentTimestamp, nonce, {
93927
93926
  case: "atomic",
93928
93927
  value: create(AtomicSchema, {
93929
93928
  sessionId: BigInt(params.sessionId),
@@ -93931,6 +93930,9 @@ async function atomic(client2, signFn, currentTimestamp, nonce, params) {
93931
93930
  actions: subactions
93932
93931
  })
93933
93932
  });
93933
+ }
93934
+ async function atomic(client2, signFn, currentTimestamp, nonce, params) {
93935
+ const action = createAtomicAction(currentTimestamp, nonce, params);
93934
93936
  const resp = await sendAction(client2, (m2) => sessionSign(signFn, m2), action);
93935
93937
  const results = normalizeAtomicReceipt(resp, params.actions.length);
93936
93938
  if (results !== undefined) {
@@ -93943,17 +93945,25 @@ async function atomic(client2, signFn, currentTimestamp, nonce, params) {
93943
93945
  }
93944
93946
 
93945
93947
  // src/client/NordUser.ts
93948
+ function withAtomicTarget(target, action) {
93949
+ const targetFields = target.targetAccountId === undefined ? {} : target.useKey === true ? { targetAccountId: target.targetAccountId, useKey: true } : { targetAccountId: target.targetAccountId };
93950
+ return { ...targetFields, ...action };
93951
+ }
93946
93952
  function decodeRfqFillResult(actionId, result) {
93947
93953
  if (result?.case !== "rfqFillResult") {
93948
93954
  throw new NordError("RFQ fill did not return an RFQ fill result");
93949
93955
  }
93956
+ const execution = result.value.execution;
93950
93957
  return {
93951
93958
  actionId,
93952
93959
  orderId: result.value.orderId,
93953
93960
  makerAccountId: result.value.makerAccountId,
93954
93961
  takerAccountId: result.value.takerAccountId,
93955
- filledSize: result.value.filledSize ?? null,
93956
- tradeId: result.value.tradeId ?? null
93962
+ execution: execution === undefined ? null : {
93963
+ filledSize: execution.filledSize,
93964
+ tradeId: execution.tradeId,
93965
+ executionPrice: execution.executionPrice
93966
+ }
93957
93967
  };
93958
93968
  }
93959
93969
 
@@ -94078,7 +94088,8 @@ class NordUser {
94078
94088
  const mint = new import_web310.PublicKey(tokenInfo.mint);
94079
94089
  const fromAccount = await this.getAssociatedTokenAccount(mint);
94080
94090
  const payer = this.publicKey;
94081
- const { ix, extraSigner } = await this.nord.protonClient.buildDepositIx({
94091
+ const protonClient = await this.nord.getProtonClient();
94092
+ const { ix, extraSigner } = await protonClient.buildDepositIx({
94082
94093
  payer,
94083
94094
  recipient: recipient ?? payer,
94084
94095
  quantAmount: floatToScaledBigIntLossy(amount, tokenInfo.precision),
@@ -94478,7 +94489,9 @@ class NordUser {
94478
94489
  price,
94479
94490
  timeout,
94480
94491
  accountId,
94481
- clientOrderId
94492
+ clientOrderId,
94493
+ minimalFill,
94494
+ isReduceOnly
94482
94495
  }) {
94483
94496
  try {
94484
94497
  const result = await this.atomic([
@@ -94489,7 +94502,9 @@ class NordUser {
94489
94502
  size,
94490
94503
  price,
94491
94504
  timeout,
94492
- clientOrderId
94505
+ clientOrderId,
94506
+ minimalFill,
94507
+ isReduceOnly
94493
94508
  }
94494
94509
  ], accountId);
94495
94510
  const rfqResult = result.results[0]?.inner;
@@ -94509,7 +94524,10 @@ class NordUser {
94509
94524
  orderId,
94510
94525
  price,
94511
94526
  timeout,
94512
- accountId
94527
+ accountId,
94528
+ minimumSize,
94529
+ maximumSize,
94530
+ isReduceOnly
94513
94531
  }) {
94514
94532
  try {
94515
94533
  const result = await this.atomic([
@@ -94518,7 +94536,10 @@ class NordUser {
94518
94536
  marketId,
94519
94537
  orderId,
94520
94538
  price,
94521
- timeout
94539
+ timeout,
94540
+ minimumSize,
94541
+ maximumSize,
94542
+ isReduceOnly
94522
94543
  }
94523
94544
  ], accountId);
94524
94545
  return decodeRfqFillResult(result.actionId, result.results[0]?.inner);
@@ -94562,24 +94583,26 @@ class NordUser {
94562
94583
  });
94563
94584
  return {
94564
94585
  actionId: receipt.actionId,
94565
- takerAccountId: receipt.takerAccountId,
94566
- takenBalances: receipt.takenBalances.map((balance) => {
94567
- const token = findToken(this.nord.tokens, balance.tokenId);
94568
- return {
94569
- tokenId: balance.tokenId,
94570
- amount: fromScaledBigInt(balance.amount, token.decimals)
94571
- };
94572
- }),
94573
- takenPositions: receipt.takenPositions.map((position) => {
94574
- const market = findMarket(this.nord.markets, position.marketId);
94575
- const baseSize = fromScaledBigInt(position.baseSize, market.sizeDecimals);
94576
- return {
94577
- marketId: position.marketId,
94578
- baseSize,
94579
- settlementPrice: fromScaledBigInt(position.settlementPrice, market.priceDecimals),
94580
- bankruptcyPrice: qtyDivSize(fromU128Parts(optExpect(position.bankruptcyQuote, "Missing TakeAll bankruptcy quote")), position.baseSize, market.priceDecimals, market.sizeDecimals)
94581
- };
94582
- })
94586
+ takers: receipt.takers.map((taker) => ({
94587
+ takerAccountId: taker.takerAccountId,
94588
+ takenBalances: taker.takenBalances.map((balance) => {
94589
+ const token = findToken(this.nord.tokens, balance.tokenId);
94590
+ return {
94591
+ tokenId: balance.tokenId,
94592
+ amount: fromScaledBigInt(balance.amount, token.decimals)
94593
+ };
94594
+ }),
94595
+ takenPositions: taker.takenPositions.map((position) => {
94596
+ const market = findMarket(this.nord.markets, position.marketId);
94597
+ const baseSize = fromScaledBigInt(position.baseSize, market.sizeDecimals);
94598
+ return {
94599
+ marketId: position.marketId,
94600
+ baseSize,
94601
+ settlementPrice: fromScaledBigInt(position.settlementPrice, market.priceDecimals),
94602
+ bankruptcyPrice: qtyDivSize(fromU128Parts(optExpect(position.bankruptcyQuote, "Missing TakeAll bankruptcy quote")), position.baseSize, market.priceDecimals, market.sizeDecimals)
94603
+ };
94604
+ })
94605
+ }))
94583
94606
  };
94584
94607
  } catch (error) {
94585
94608
  throw new NordError("Failed to take positions", { cause: error });
@@ -94848,7 +94871,7 @@ class NordUser {
94848
94871
  if (!market) {
94849
94872
  throw new NordError(`Market ${act.marketId} not found`);
94850
94873
  }
94851
- return {
94874
+ return withAtomicTarget(act, {
94852
94875
  kind: "place",
94853
94876
  marketId: act.marketId,
94854
94877
  side: act.side,
@@ -94860,34 +94883,27 @@ class NordUser {
94860
94883
  price: act.price,
94861
94884
  quoteSize: act.quoteSize,
94862
94885
  clientOrderId: act.clientOrderId,
94863
- delegatorAccountId: act.delegatorAccountId,
94864
- placement: act.placement,
94865
94886
  referrer: act.referrer
94866
- };
94887
+ });
94867
94888
  }
94868
94889
  if (act.kind === "cancel") {
94869
- return {
94890
+ return withAtomicTarget(act, {
94870
94891
  kind: "cancel",
94871
- orderId: act.orderId,
94872
- delegatorAccountId: act.delegatorAccountId,
94873
- placement: act.placement
94874
- };
94892
+ orderId: act.orderId
94893
+ });
94875
94894
  }
94876
94895
  if (act.kind === "reduceOrderLiquidation") {
94877
- return {
94896
+ return withAtomicTarget(act, {
94878
94897
  kind: "reduceOrderLiquidation",
94879
- targetAccountId: act.targetAccountId,
94880
- marketId: act.marketId,
94881
- delegatorAccountId: act.delegatorAccountId,
94882
- placement: act.placement
94883
- };
94898
+ marketId: act.marketId
94899
+ });
94884
94900
  }
94885
94901
  if (act.kind === "rfq") {
94886
94902
  const market = findMarket(this.nord.markets, act.marketId);
94887
94903
  if (!market) {
94888
94904
  throw new NordError(`Market ${act.marketId} not found`);
94889
94905
  }
94890
- return {
94906
+ return withAtomicTarget(act, {
94891
94907
  kind: "rfq",
94892
94908
  marketId: act.marketId,
94893
94909
  side: act.side,
@@ -94897,30 +94913,34 @@ class NordUser {
94897
94913
  size: act.size,
94898
94914
  timeout: act.timeout,
94899
94915
  clientOrderId: act.clientOrderId,
94900
- delegatorAccountId: act.delegatorAccountId
94901
- };
94916
+ minimalFill: act.minimalFill,
94917
+ isReduceOnly: act.isReduceOnly
94918
+ });
94902
94919
  }
94903
94920
  if (act.kind === "rfqFill") {
94904
94921
  const market = findMarket(this.nord.markets, act.marketId);
94905
94922
  if (!market) {
94906
94923
  throw new NordError(`Market ${act.marketId} not found`);
94907
94924
  }
94908
- return {
94925
+ return withAtomicTarget(act, {
94909
94926
  kind: "rfqFill",
94910
94927
  marketId: act.marketId,
94911
94928
  orderId: act.orderId,
94912
94929
  priceDecimals: market.priceDecimals,
94930
+ sizeDecimals: market.sizeDecimals,
94913
94931
  price: act.price,
94914
94932
  timeout: act.timeout,
94915
- delegatorAccountId: act.delegatorAccountId
94916
- };
94933
+ minimumSize: act.minimumSize,
94934
+ maximumSize: act.maximumSize,
94935
+ isReduceOnly: act.isReduceOnly
94936
+ });
94917
94937
  }
94918
94938
  if (act.kind === "addTrigger") {
94919
94939
  const market = findMarket(this.nord.markets, act.marketId);
94920
94940
  if (!market) {
94921
94941
  throw new NordError(`Market ${act.marketId} not found`);
94922
94942
  }
94923
- return {
94943
+ return withAtomicTarget(act, {
94924
94944
  kind: "addTrigger",
94925
94945
  marketId: act.marketId,
94926
94946
  side: act.side,
@@ -94931,16 +94951,15 @@ class NordUser {
94931
94951
  limitPrice: act.limitPrice,
94932
94952
  limitBaseSize: act.limitBaseSize,
94933
94953
  limitQuoteSize: act.limitQuoteSize,
94934
- placement: act.placement,
94935
94954
  referrer: act.referrer
94936
- };
94955
+ });
94937
94956
  }
94938
94957
  if (act.kind === "editTrigger") {
94939
94958
  const market = findMarket(this.nord.markets, act.marketId);
94940
94959
  if (!market) {
94941
94960
  throw new NordError(`Market ${act.marketId} not found`);
94942
94961
  }
94943
- return {
94962
+ return withAtomicTarget(act, {
94944
94963
  kind: "editTrigger",
94945
94964
  triggerId: act.triggerId,
94946
94965
  marketId: act.marketId,
@@ -94951,24 +94970,20 @@ class NordUser {
94951
94970
  sizeDecimals: market.sizeDecimals,
94952
94971
  limitPrice: act.limitPrice,
94953
94972
  limitBaseSize: act.limitBaseSize,
94954
- limitQuoteSize: act.limitQuoteSize,
94955
- placement: act.placement
94956
- };
94973
+ limitQuoteSize: act.limitQuoteSize
94974
+ });
94957
94975
  }
94958
94976
  if (act.kind === "removeTrigger") {
94959
- return {
94977
+ return withAtomicTarget(act, {
94960
94978
  kind: "removeTrigger",
94961
94979
  marketId: act.marketId,
94962
- triggerId: act.triggerId,
94963
- placement: act.placement
94964
- };
94980
+ triggerId: act.triggerId
94981
+ });
94965
94982
  }
94966
- return {
94983
+ return withAtomicTarget(act, {
94967
94984
  kind: "cancelByClientId",
94968
- clientOrderId: act.clientOrderId,
94969
- delegatorAccountId: act.delegatorAccountId,
94970
- placement: act.placement
94971
- };
94985
+ clientOrderId: act.clientOrderId
94986
+ });
94972
94987
  });
94973
94988
  const result = await atomic(this.nord.httpClient, this.signSessionMessage, await this.nord.getTimestamp(), this.getNonce(), {
94974
94989
  sessionId: optExpect(this.sessionId, "No session"),
@@ -95455,13 +95470,15 @@ class NordAdmin {
95455
95470
  return { actionId: receipt.actionId };
95456
95471
  }
95457
95472
  async setBackstopAccount({
95458
- accountId
95473
+ accountId,
95474
+ marketMode
95459
95475
  }) {
95460
95476
  const receipt = await this.submitAction({
95461
95477
  case: "setBackstopAccount",
95462
95478
  value: create(Action_SetBackstopAccountSchema, {
95463
95479
  aclPubkey: this.admin.toBytes(),
95464
- accountId
95480
+ accountId,
95481
+ marketMode: marketMode ?? 0 /* CLOB */
95465
95482
  })
95466
95483
  });
95467
95484
  expectReceiptKind(receipt, "backstopAccountSet", "set backstop account");
@@ -95575,46 +95592,55 @@ class NordAdmin {
95575
95592
  return { actionId: receipt.actionId, ...receipt.kind.value };
95576
95593
  }
95577
95594
  async addFeeTier({
95595
+ marketType = 1 /* PERPETUALS */,
95578
95596
  config: config2
95579
95597
  }) {
95580
95598
  const receipt = await this.submitAction({
95581
- case: "addFeeTier",
95582
- value: create(Action_AddFeeTierSchema, {
95599
+ case: "addFeeTierType",
95600
+ value: create(Action_AddFeeTierTypeSchema, {
95583
95601
  aclPubkey: this.admin.toBytes(),
95584
- config: create(FeeTierConfigSchema, config2)
95602
+ marketType,
95603
+ config: create(FeeTierTypeConfigSchema, config2)
95585
95604
  })
95586
95605
  });
95587
- expectReceiptKind(receipt, "feeTierAdded", "add fee tier");
95606
+ expectReceiptKind(receipt, "feeTierTypeAdded", "add fee tier type");
95588
95607
  return { actionId: receipt.actionId, ...receipt.kind.value };
95589
95608
  }
95590
95609
  async updateFeeTier({
95591
95610
  tierId,
95611
+ marketType = 1 /* PERPETUALS */,
95592
95612
  config: config2
95593
95613
  }) {
95594
95614
  const receipt = await this.submitAction({
95595
- case: "updateFeeTier",
95596
- value: create(Action_UpdateFeeTierSchema, {
95615
+ case: "updateFeeTierType",
95616
+ value: create(Action_UpdateFeeTierTypeSchema, {
95597
95617
  aclPubkey: this.admin.toBytes(),
95598
95618
  id: tierId,
95599
- config: create(FeeTierConfigSchema, config2)
95619
+ marketType,
95620
+ config: create(FeeTierTypeConfigSchema, config2)
95600
95621
  })
95601
95622
  });
95602
- expectReceiptKind(receipt, "feeTierUpdated", "update fee tier");
95623
+ expectReceiptKind(receipt, "feeTierTypeUpdated", "update fee tier type");
95603
95624
  return { actionId: receipt.actionId, ...receipt.kind.value };
95604
95625
  }
95605
- async updateAccountsTier(accounts, tierId) {
95626
+ async updateAccountsTier({
95627
+ accounts,
95628
+ tierId,
95629
+ marketType = 1 /* PERPETUALS */
95630
+ }) {
95606
95631
  if (accounts.length !== new Set(accounts).size) {
95607
- throw new NordError("duplicate account ids in updateAccountsTier; must be unique");
95632
+ throw new NordError("duplicate accupdateFeeTierTypeount ids in updateAccountsFeeTierTypeMode; must be unique");
95608
95633
  }
95609
95634
  const receipt = await this.submitAction({
95610
- case: "updateAccountsTier",
95611
- value: create(Action_UpdateAccountsTierSchema, {
95635
+ case: "updateAccountsFeeTierTypeMode",
95636
+ value: create(Action_UpdateAccountsFeeTierTypeModeSchema, {
95612
95637
  aclPubkey: this.admin.toBytes(),
95613
95638
  accounts,
95614
- tierId
95639
+ tierId,
95640
+ marketType
95615
95641
  })
95616
95642
  });
95617
- expectReceiptKind(receipt, "accountsTierUpdated", "update accounts tier");
95643
+ expectReceiptKind(receipt, "accountsFeeTierTypeModeUpdated", "update accounts fee tier type mode");
95618
95644
  return { actionId: receipt.actionId, ...receipt.kind.value };
95619
95645
  }
95620
95646
  async feeVaultTransfer({