@thru/thru-sdk 0.1.25 → 0.1.29

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.
@@ -2,7 +2,9 @@ import { messageDesc, fileDesc, serviceDesc } from '@bufbuild/protobuf/codegenv2
2
2
  import { file_google_protobuf_timestamp, file_google_protobuf_descriptor, file_google_protobuf_duration } from '@bufbuild/protobuf/wkt';
3
3
  import { create } from '@bufbuild/protobuf';
4
4
  import { signAsync, getPublicKeyAsync } from '@noble/ed25519';
5
- import { decodeSignature, decodeBase64, decodeAddress, ensureBytes, encodeAddress, isHexString, hexToBytes, encodeSignature } from '@thru/helpers';
5
+ import { decodeAddress, isHexString, decodeSignature, ensureBytes, encodeAddress, hexToBytes, encodeSignature, decodeBase64 } from '@thru/helpers';
6
+ import { createClient } from '@connectrpc/connect';
7
+ import { createGrpcWebTransport } from '@connectrpc/connect-web';
6
8
  import { sha256 } from '@noble/hashes/sha2';
7
9
  import { ThruHDWallet, getWebCrypto } from '@thru/crypto';
8
10
 
@@ -13,9 +15,10 @@ var __export = (target, all) => {
13
15
  };
14
16
  var file_buf_validate_validate = /* @__PURE__ */ fileDesc("ChtidWYvdmFsaWRhdGUvdmFsaWRhdGUucHJvdG8SDGJ1Zi52YWxpZGF0ZSI3CgRSdWxlEgoKAmlkGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEgoKZXhwcmVzc2lvbhgDIAEoCSJuCgxNZXNzYWdlUnVsZXMSHwoDY2VsGAMgAygLMhIuYnVmLnZhbGlkYXRlLlJ1bGUSLQoFb25lb2YYBCADKAsyHi5idWYudmFsaWRhdGUuTWVzc2FnZU9uZW9mUnVsZUoECAEQAlIIZGlzYWJsZWQiNAoQTWVzc2FnZU9uZW9mUnVsZRIOCgZmaWVsZHMYASADKAkSEAoIcmVxdWlyZWQYAiABKAgiHgoKT25lb2ZSdWxlcxIQCghyZXF1aXJlZBgBIAEoCCK/CAoKRmllbGRSdWxlcxIfCgNjZWwYFyADKAsyEi5idWYudmFsaWRhdGUuUnVsZRIQCghyZXF1aXJlZBgZIAEoCBIkCgZpZ25vcmUYGyABKA4yFC5idWYudmFsaWRhdGUuSWdub3JlEikKBWZsb2F0GAEgASgLMhguYnVmLnZhbGlkYXRlLkZsb2F0UnVsZXNIABIrCgZkb3VibGUYAiABKAsyGS5idWYudmFsaWRhdGUuRG91YmxlUnVsZXNIABIpCgVpbnQzMhgDIAEoCzIYLmJ1Zi52YWxpZGF0ZS5JbnQzMlJ1bGVzSAASKQoFaW50NjQYBCABKAsyGC5idWYudmFsaWRhdGUuSW50NjRSdWxlc0gAEisKBnVpbnQzMhgFIAEoCzIZLmJ1Zi52YWxpZGF0ZS5VSW50MzJSdWxlc0gAEisKBnVpbnQ2NBgGIAEoCzIZLmJ1Zi52YWxpZGF0ZS5VSW50NjRSdWxlc0gAEisKBnNpbnQzMhgHIAEoCzIZLmJ1Zi52YWxpZGF0ZS5TSW50MzJSdWxlc0gAEisKBnNpbnQ2NBgIIAEoCzIZLmJ1Zi52YWxpZGF0ZS5TSW50NjRSdWxlc0gAEi0KB2ZpeGVkMzIYCSABKAsyGi5idWYudmFsaWRhdGUuRml4ZWQzMlJ1bGVzSAASLQoHZml4ZWQ2NBgKIAEoCzIaLmJ1Zi52YWxpZGF0ZS5GaXhlZDY0UnVsZXNIABIvCghzZml4ZWQzMhgLIAEoCzIbLmJ1Zi52YWxpZGF0ZS5TRml4ZWQzMlJ1bGVzSAASLwoIc2ZpeGVkNjQYDCABKAsyGy5idWYudmFsaWRhdGUuU0ZpeGVkNjRSdWxlc0gAEicKBGJvb2wYDSABKAsyFy5idWYudmFsaWRhdGUuQm9vbFJ1bGVzSAASKwoGc3RyaW5nGA4gASgLMhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzSAASKQoFYnl0ZXMYDyABKAsyGC5idWYudmFsaWRhdGUuQnl0ZXNSdWxlc0gAEicKBGVudW0YECABKAsyFy5idWYudmFsaWRhdGUuRW51bVJ1bGVzSAASLwoIcmVwZWF0ZWQYEiABKAsyGy5idWYudmFsaWRhdGUuUmVwZWF0ZWRSdWxlc0gAEiUKA21hcBgTIAEoCzIWLmJ1Zi52YWxpZGF0ZS5NYXBSdWxlc0gAEiUKA2FueRgUIAEoCzIWLmJ1Zi52YWxpZGF0ZS5BbnlSdWxlc0gAEi8KCGR1cmF0aW9uGBUgASgLMhsuYnVmLnZhbGlkYXRlLkR1cmF0aW9uUnVsZXNIABIxCgl0aW1lc3RhbXAYFiABKAsyHC5idWYudmFsaWRhdGUuVGltZXN0YW1wUnVsZXNIAEIGCgR0eXBlSgQIGBAZSgQIGhAbUgdza2lwcGVkUgxpZ25vcmVfZW1wdHkiVQoPUHJlZGVmaW5lZFJ1bGVzEh8KA2NlbBgBIAMoCzISLmJ1Zi52YWxpZGF0ZS5SdWxlSgQIGBAZSgQIGhAbUgdza2lwcGVkUgxpZ25vcmVfZW1wdHki2hcKCkZsb2F0UnVsZXMSgwEKBWNvbnN0GAEgASgCQnTCSHEKbwoLZmxvYXQuY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKfAQoCbHQYAiABKAJCkAHCSIwBCokBCghmbG9hdC5sdBp9IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCk/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKvAQoDbHRlGAMgASgCQp8BwkibAQqYAQoJZmxvYXQubHRlGooBIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+IHJ1bGVzLmx0ZSk/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAAS7wcKAmd0GAQgASgCQuAHwkjcBwqNAQoIZmxvYXQuZ3QagAEhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwrDAQoLZmxvYXQuZ3RfbHQaswFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrNAQoVZmxvYXQuZ3RfbHRfZXhjbHVzaXZlGrMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCkpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycK0wEKDGZsb2F0Lmd0X2x0ZRrCAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCt0BChZmbG9hdC5ndF9sdGVfZXhjbHVzaXZlGsIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARK6CAoDZ3RlGAUgASgCQqoIwkimCAqbAQoJZmxvYXQuZ3RlGo0BIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCtIBCgxmbG9hdC5ndGVfbHQawQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtwBChZmbG9hdC5ndGVfbHRfZXhjbHVzaXZlGsEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwriAQoNZmxvYXQuZ3RlX2x0ZRrQAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK7AEKF2Zsb2F0Lmd0ZV9sdGVfZXhjbHVzaXZlGtABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSkpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEn8KAmluGAYgAygCQnPCSHAKbgoIZmxvYXQuaW4aYiEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnYKBm5vdF9pbhgHIAMoAkJmwkhjCmEKDGZsb2F0Lm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEnUKBmZpbml0ZRgIIAEoCEJlwkhiCmAKDGZsb2F0LmZpbml0ZRpQcnVsZXMuZmluaXRlID8gKHRoaXMuaXNOYW4oKSB8fCB0aGlzLmlzSW5mKCkgPyAndmFsdWUgbXVzdCBiZSBmaW5pdGUnIDogJycpIDogJycSKwoHZXhhbXBsZRgJIAMoAkIawkgXChUKDWZsb2F0LmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIu0XCgtEb3VibGVSdWxlcxKEAQoFY29uc3QYASABKAFCdcJIcgpwCgxkb3VibGUuY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKgAQoCbHQYAiABKAFCkQHCSI0BCooBCglkb3VibGUubHQafSFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPj0gcnVsZXMubHQpPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASsAEKA2x0ZRgDIAEoAUKgAcJInAEKmQEKCmRvdWJsZS5sdGUaigEhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlKT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABL0BwoCZ3QYBCABKAFC5QfCSOEHCo4BCglkb3VibGUuZ3QagAEhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwrEAQoMZG91YmxlLmd0X2x0GrMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKzgEKFmRvdWJsZS5ndF9sdF9leGNsdXNpdmUaswFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrUAQoNZG91YmxlLmd0X2x0ZRrCAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCt4BChdkb3VibGUuZ3RfbHRlX2V4Y2x1c2l2ZRrCAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCkpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAESvwgKA2d0ZRgFIAEoAUKvCMJIqwgKnAEKCmRvdWJsZS5ndGUajQEhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycK0wEKDWRvdWJsZS5ndGVfbHQawQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCt0BChdkb3VibGUuZ3RlX2x0X2V4Y2x1c2l2ZRrBAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK4wEKDmRvdWJsZS5ndGVfbHRlGtABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrtAQoYZG91YmxlLmd0ZV9sdGVfZXhjbHVzaXZlGtABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSkpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEoABCgJpbhgGIAMoAUJ0wkhxCm8KCWRvdWJsZS5pbhpiISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycSdwoGbm90X2luGAcgAygBQmfCSGQKYgoNZG91YmxlLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEnYKBmZpbml0ZRgIIAEoCEJmwkhjCmEKDWRvdWJsZS5maW5pdGUaUHJ1bGVzLmZpbml0ZSA/ICh0aGlzLmlzTmFuKCkgfHwgdGhpcy5pc0luZigpID8gJ3ZhbHVlIG11c3QgYmUgZmluaXRlJyA6ICcnKSA6ICcnEiwKB2V4YW1wbGUYCSADKAFCG8JIGAoWCg5kb3VibGUuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4ijBUKCkludDMyUnVsZXMSgwEKBWNvbnN0GAEgASgFQnTCSHEKbwoLaW50MzIuY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKKAQoCbHQYAiABKAVCfMJIeQp3CghpbnQzMi5sdBprIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKcAQoDbHRlGAMgASgFQowBwkiIAQqFAQoJaW50MzIubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKXBwoCZ3QYBCABKAVCiAfCSIQHCnoKCGludDMyLmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqzAQoLaW50MzIuZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrsBChVpbnQzMi5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrDAQoMaW50MzIuZ3RfbHRlGrIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrLAQoWaW50MzIuZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES4wcKA2d0ZRgFIAEoBULTB8JIzwcKiAEKCWludDMyLmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsIBCgxpbnQzMi5ndGVfbHQasQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKygEKFmludDMyLmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtIBCg1pbnQzMi5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtoBChdpbnQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq+AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ/CgJpbhgGIAMoBUJzwkhwCm4KCGludDMyLmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ2CgZub3RfaW4YByADKAVCZsJIYwphCgxpbnQzMi5ub3RfaW4aUXRoaXMgaW4gcnVsZXMubm90X2luID8gJ3ZhbHVlIG11c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxIrCgdleGFtcGxlGAggAygFQhrCSBcKFQoNaW50MzIuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4ijBUKCkludDY0UnVsZXMSgwEKBWNvbnN0GAEgASgDQnTCSHEKbwoLaW50NjQuY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKKAQoCbHQYAiABKANCfMJIeQp3CghpbnQ2NC5sdBprIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKcAQoDbHRlGAMgASgDQowBwkiIAQqFAQoJaW50NjQubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKXBwoCZ3QYBCABKANCiAfCSIQHCnoKCGludDY0Lmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqzAQoLaW50NjQuZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrsBChVpbnQ2NC5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrDAQoMaW50NjQuZ3RfbHRlGrIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrLAQoWaW50NjQuZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES4wcKA2d0ZRgFIAEoA0LTB8JIzwcKiAEKCWludDY0Lmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsIBCgxpbnQ2NC5ndGVfbHQasQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKygEKFmludDY0Lmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtIBCg1pbnQ2NC5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtoBChdpbnQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq+AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ/CgJpbhgGIAMoA0JzwkhwCm4KCGludDY0LmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ2CgZub3RfaW4YByADKANCZsJIYwphCgxpbnQ2NC5ub3RfaW4aUXRoaXMgaW4gcnVsZXMubm90X2luID8gJ3ZhbHVlIG11c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxIrCgdleGFtcGxlGAkgAygDQhrCSBcKFQoNaW50NjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4inhUKC1VJbnQzMlJ1bGVzEoQBCgVjb25zdBgBIAEoDUJ1wkhyCnAKDHVpbnQzMi5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEosBCgJsdBgCIAEoDUJ9wkh6CngKCXVpbnQzMi5sdBprIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKdAQoDbHRlGAMgASgNQo0BwkiJAQqGAQoKdWludDMyLmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASnAcKAmd0GAQgASgNQo0HwkiJBwp7Cgl1aW50MzIuZ3QabiFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrQBCgx1aW50MzIuZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrwBChZ1aW50MzIuZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxAEKDXVpbnQzMi5ndF9sdGUasgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCswBChd1aW50MzIuZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES6AcKA2d0ZRgFIAEoDULYB8JI1AcKiQEKCnVpbnQzMi5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrDAQoNdWludDMyLmd0ZV9sdBqxAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrLAQoXdWludDMyLmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtMBCg51aW50MzIuZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrbAQoYdWludDMyLmd0ZV9sdGVfZXhjbHVzaXZlGr4BaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEoABCgJpbhgGIAMoDUJ0wkhxCm8KCXVpbnQzMi5pbhpiISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycSdwoGbm90X2luGAcgAygNQmfCSGQKYgoNdWludDMyLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEiwKB2V4YW1wbGUYCCADKA1CG8JIGAoWCg51aW50MzIuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4inhUKC1VJbnQ2NFJ1bGVzEoQBCgVjb25zdBgBIAEoBEJ1wkhyCnAKDHVpbnQ2NC5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEosBCgJsdBgCIAEoBEJ9wkh6CngKCXVpbnQ2NC5sdBprIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKdAQoDbHRlGAMgASgEQo0BwkiJAQqGAQoKdWludDY0Lmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASnAcKAmd0GAQgASgEQo0HwkiJBwp7Cgl1aW50NjQuZ3QabiFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrQBCgx1aW50NjQuZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrwBChZ1aW50NjQuZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxAEKDXVpbnQ2NC5ndF9sdGUasgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCswBChd1aW50NjQuZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES6AcKA2d0ZRgFIAEoBELYB8JI1AcKiQEKCnVpbnQ2NC5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrDAQoNdWludDY0Lmd0ZV9sdBqxAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrLAQoXdWludDY0Lmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtMBCg51aW50NjQuZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrbAQoYdWludDY0Lmd0ZV9sdGVfZXhjbHVzaXZlGr4BaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEoABCgJpbhgGIAMoBEJ0wkhxCm8KCXVpbnQ2NC5pbhpiISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycSdwoGbm90X2luGAcgAygEQmfCSGQKYgoNdWludDY0Lm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEiwKB2V4YW1wbGUYCCADKARCG8JIGAoWCg51aW50NjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4inhUKC1NJbnQzMlJ1bGVzEoQBCgVjb25zdBgBIAEoEUJ1wkhyCnAKDHNpbnQzMi5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEosBCgJsdBgCIAEoEUJ9wkh6CngKCXNpbnQzMi5sdBprIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKdAQoDbHRlGAMgASgRQo0BwkiJAQqGAQoKc2ludDMyLmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASnAcKAmd0GAQgASgRQo0HwkiJBwp7CglzaW50MzIuZ3QabiFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrQBCgxzaW50MzIuZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrwBChZzaW50MzIuZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxAEKDXNpbnQzMi5ndF9sdGUasgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCswBChdzaW50MzIuZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES6AcKA2d0ZRgFIAEoEULYB8JI1AcKiQEKCnNpbnQzMi5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrDAQoNc2ludDMyLmd0ZV9sdBqxAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrLAQoXc2ludDMyLmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtMBCg5zaW50MzIuZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrbAQoYc2ludDMyLmd0ZV9sdGVfZXhjbHVzaXZlGr4BaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEoABCgJpbhgGIAMoEUJ0wkhxCm8KCXNpbnQzMi5pbhpiISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycSdwoGbm90X2luGAcgAygRQmfCSGQKYgoNc2ludDMyLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEiwKB2V4YW1wbGUYCCADKBFCG8JIGAoWCg5zaW50MzIuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4inhUKC1NJbnQ2NFJ1bGVzEoQBCgVjb25zdBgBIAEoEkJ1wkhyCnAKDHNpbnQ2NC5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEosBCgJsdBgCIAEoEkJ9wkh6CngKCXNpbnQ2NC5sdBprIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKdAQoDbHRlGAMgASgSQo0BwkiJAQqGAQoKc2ludDY0Lmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASnAcKAmd0GAQgASgSQo0HwkiJBwp7CglzaW50NjQuZ3QabiFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrQBCgxzaW50NjQuZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrwBChZzaW50NjQuZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxAEKDXNpbnQ2NC5ndF9sdGUasgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCswBChdzaW50NjQuZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES6AcKA2d0ZRgFIAEoEkLYB8JI1AcKiQEKCnNpbnQ2NC5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrDAQoNc2ludDY0Lmd0ZV9sdBqxAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrLAQoXc2ludDY0Lmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtMBCg5zaW50NjQuZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrbAQoYc2ludDY0Lmd0ZV9sdGVfZXhjbHVzaXZlGr4BaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEoABCgJpbhgGIAMoEkJ0wkhxCm8KCXNpbnQ2NC5pbhpiISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycSdwoGbm90X2luGAcgAygSQmfCSGQKYgoNc2ludDY0Lm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEiwKB2V4YW1wbGUYCCADKBJCG8JIGAoWCg5zaW50NjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4irxUKDEZpeGVkMzJSdWxlcxKFAQoFY29uc3QYASABKAdCdsJIcwpxCg1maXhlZDMyLmNvbnN0GmB0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSjAEKAmx0GAIgASgHQn7CSHsKeQoKZml4ZWQzMi5sdBprIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKeAQoDbHRlGAMgASgHQo4BwkiKAQqHAQoLZml4ZWQzMi5sdGUaeCFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEqEHCgJndBgEIAEoB0KSB8JIjgcKfAoKZml4ZWQzMi5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKtQEKDWZpeGVkMzIuZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr0BChdmaXhlZDMyLmd0X2x0X2V4Y2x1c2l2ZRqhAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCsUBCg5maXhlZDMyLmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKzQEKGGZpeGVkMzIuZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES7QcKA2d0ZRgFIAEoB0LdB8JI2QcKigEKC2ZpeGVkMzIuZ3RlGnshaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKxAEKDmZpeGVkMzIuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCswBChhmaXhlZDMyLmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtQBCg9maXhlZDMyLmd0ZV9sdGUawAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK3AEKGWZpeGVkMzIuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESgQEKAmluGAYgAygHQnXCSHIKcAoKZml4ZWQzMi5pbhpiISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycSeAoGbm90X2luGAcgAygHQmjCSGUKYwoOZml4ZWQzMi5ub3RfaW4aUXRoaXMgaW4gcnVsZXMubm90X2luID8gJ3ZhbHVlIG11c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxItCgdleGFtcGxlGAggAygHQhzCSBkKFwoPZml4ZWQzMi5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKvFQoMRml4ZWQ2NFJ1bGVzEoUBCgVjb25zdBgBIAEoBkJ2wkhzCnEKDWZpeGVkNjQuY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKMAQoCbHQYAiABKAZCfsJIewp5CgpmaXhlZDY0Lmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEp4BCgNsdGUYAyABKAZCjgHCSIoBCocBCgtmaXhlZDY0Lmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASoQcKAmd0GAQgASgGQpIHwkiOBwp8CgpmaXhlZDY0Lmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq1AQoNZml4ZWQ2NC5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvQEKF2ZpeGVkNjQuZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxQEKDmZpeGVkNjQuZ3RfbHRlGrIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrNAQoYZml4ZWQ2NC5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLtBwoDZ3RlGAUgASgGQt0HwkjZBwqKAQoLZml4ZWQ2NC5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrEAQoOZml4ZWQ2NC5ndGVfbHQasQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzAEKGGZpeGVkNjQuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK1AEKD2ZpeGVkNjQuZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrcAQoZZml4ZWQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq+AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARKBAQoCaW4YBiADKAZCdcJIcgpwCgpmaXhlZDY0LmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ4CgZub3RfaW4YByADKAZCaMJIZQpjCg5maXhlZDY0Lm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEi0KB2V4YW1wbGUYCCADKAZCHMJIGQoXCg9maXhlZDY0LmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIsAVCg1TRml4ZWQzMlJ1bGVzEoYBCgVjb25zdBgBIAEoD0J3wkh0CnIKDnNmaXhlZDMyLmNvbnN0GmB0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSjQEKAmx0GAIgASgPQn/CSHwKegoLc2ZpeGVkMzIubHQaayFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASnwEKA2x0ZRgDIAEoD0KPAcJIiwEKiAEKDHNmaXhlZDMyLmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASpgcKAmd0GAQgASgPQpcHwkiTBwp9CgtzZml4ZWQzMi5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKtgEKDnNmaXhlZDMyLmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq+AQoYc2ZpeGVkMzIuZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxgEKD3NmaXhlZDMyLmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKzgEKGXNmaXhlZDMyLmd0X2x0ZV9leGNsdXNpdmUasAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEvIHCgNndGUYBSABKA9C4gfCSN4HCosBCgxzZml4ZWQzMi5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrFAQoPc2ZpeGVkMzIuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs0BChlzZml4ZWQzMi5ndGVfbHRfZXhjbHVzaXZlGq8BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrVAQoQc2ZpeGVkMzIuZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrdAQoac2ZpeGVkMzIuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESggEKAmluGAYgAygPQnbCSHMKcQoLc2ZpeGVkMzIuaW4aYiEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnkKBm5vdF9pbhgHIAMoD0JpwkhmCmQKD3NmaXhlZDMyLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEi4KB2V4YW1wbGUYCCADKA9CHcJIGgoYChBzZml4ZWQzMi5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiLAFQoNU0ZpeGVkNjRSdWxlcxKGAQoFY29uc3QYASABKBBCd8JIdApyCg5zZml4ZWQ2NC5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEo0BCgJsdBgCIAEoEEJ/wkh8CnoKC3NmaXhlZDY0Lmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEp8BCgNsdGUYAyABKBBCjwHCSIsBCogBCgxzZml4ZWQ2NC5sdGUaeCFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEqYHCgJndBgEIAEoEEKXB8JIkwcKfQoLc2ZpeGVkNjQuZ3QabiFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrYBCg5zZml4ZWQ2NC5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvgEKGHNmaXhlZDY0Lmd0X2x0X2V4Y2x1c2l2ZRqhAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCsYBCg9zZml4ZWQ2NC5ndF9sdGUasgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCs4BChlzZml4ZWQ2NC5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLyBwoDZ3RlGAUgASgQQuIHwkjeBwqLAQoMc2ZpeGVkNjQuZ3RlGnshaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKxQEKD3NmaXhlZDY0Lmd0ZV9sdBqxAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrNAQoZc2ZpeGVkNjQuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK1QEKEHNmaXhlZDY0Lmd0ZV9sdGUawAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK3QEKGnNmaXhlZDY0Lmd0ZV9sdGVfZXhjbHVzaXZlGr4BaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEoIBCgJpbhgGIAMoEEJ2wkhzCnEKC3NmaXhlZDY0LmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ5CgZub3RfaW4YByADKBBCacJIZgpkCg9zZml4ZWQ2NC5ub3RfaW4aUXRoaXMgaW4gcnVsZXMubm90X2luID8gJ3ZhbHVlIG11c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxIuCgdleGFtcGxlGAggAygQQh3CSBoKGAoQc2ZpeGVkNjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4ixwEKCUJvb2xSdWxlcxKCAQoFY29uc3QYASABKAhCc8JIcApuCgpib29sLmNvbnN0GmB0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSKgoHZXhhbXBsZRgCIAMoCEIZwkgWChQKDGJvb2wuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACIpA3CgtTdHJpbmdSdWxlcxKGAQoFY29uc3QYASABKAlCd8JIdApyCgxzdHJpbmcuY29uc3QaYnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgYCVzYCcuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEn4KA2xlbhgTIAEoBEJxwkhuCmwKCnN0cmluZy5sZW4aXnVpbnQodGhpcy5zaXplKCkpICE9IHJ1bGVzLmxlbiA/ICd2YWx1ZSBsZW5ndGggbXVzdCBiZSAlcyBjaGFyYWN0ZXJzJy5mb3JtYXQoW3J1bGVzLmxlbl0pIDogJycSmQEKB21pbl9sZW4YAiABKARChwHCSIMBCoABCg5zdHJpbmcubWluX2xlbhpudWludCh0aGlzLnNpemUoKSkgPCBydWxlcy5taW5fbGVuID8gJ3ZhbHVlIGxlbmd0aCBtdXN0IGJlIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMnLmZvcm1hdChbcnVsZXMubWluX2xlbl0pIDogJycSlwEKB21heF9sZW4YAyABKARChQHCSIEBCn8KDnN0cmluZy5tYXhfbGVuGm11aW50KHRoaXMuc2l6ZSgpKSA+IHJ1bGVzLm1heF9sZW4gPyAndmFsdWUgbGVuZ3RoIG11c3QgYmUgYXQgbW9zdCAlcyBjaGFyYWN0ZXJzJy5mb3JtYXQoW3J1bGVzLm1heF9sZW5dKSA6ICcnEpsBCglsZW5fYnl0ZXMYFCABKARChwHCSIMBCoABChBzdHJpbmcubGVuX2J5dGVzGmx1aW50KGJ5dGVzKHRoaXMpLnNpemUoKSkgIT0gcnVsZXMubGVuX2J5dGVzID8gJ3ZhbHVlIGxlbmd0aCBtdXN0IGJlICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLmxlbl9ieXRlc10pIDogJycSowEKCW1pbl9ieXRlcxgEIAEoBEKPAcJIiwEKiAEKEHN0cmluZy5taW5fYnl0ZXMadHVpbnQoYnl0ZXModGhpcykuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9ieXRlcyA/ICd2YWx1ZSBsZW5ndGggbXVzdCBiZSBhdCBsZWFzdCAlcyBieXRlcycuZm9ybWF0KFtydWxlcy5taW5fYnl0ZXNdKSA6ICcnEqIBCgltYXhfYnl0ZXMYBSABKARCjgHCSIoBCocBChBzdHJpbmcubWF4X2J5dGVzGnN1aW50KGJ5dGVzKHRoaXMpLnNpemUoKSkgPiBydWxlcy5tYXhfYnl0ZXMgPyAndmFsdWUgbGVuZ3RoIG11c3QgYmUgYXQgbW9zdCAlcyBieXRlcycuZm9ybWF0KFtydWxlcy5tYXhfYnl0ZXNdKSA6ICcnEo0BCgdwYXR0ZXJuGAYgASgJQnzCSHkKdwoOc3RyaW5nLnBhdHRlcm4aZSF0aGlzLm1hdGNoZXMocnVsZXMucGF0dGVybikgPyAndmFsdWUgZG9lcyBub3QgbWF0Y2ggcmVnZXggcGF0dGVybiBgJXNgJy5mb3JtYXQoW3J1bGVzLnBhdHRlcm5dKSA6ICcnEoQBCgZwcmVmaXgYByABKAlCdMJIcQpvCg1zdHJpbmcucHJlZml4Gl4hdGhpcy5zdGFydHNXaXRoKHJ1bGVzLnByZWZpeCkgPyAndmFsdWUgZG9lcyBub3QgaGF2ZSBwcmVmaXggYCVzYCcuZm9ybWF0KFtydWxlcy5wcmVmaXhdKSA6ICcnEoIBCgZzdWZmaXgYCCABKAlCcsJIbwptCg1zdHJpbmcuc3VmZml4GlwhdGhpcy5lbmRzV2l0aChydWxlcy5zdWZmaXgpID8gJ3ZhbHVlIGRvZXMgbm90IGhhdmUgc3VmZml4IGAlc2AnLmZvcm1hdChbcnVsZXMuc3VmZml4XSkgOiAnJxKQAQoIY29udGFpbnMYCSABKAlCfsJIewp5Cg9zdHJpbmcuY29udGFpbnMaZiF0aGlzLmNvbnRhaW5zKHJ1bGVzLmNvbnRhaW5zKSA/ICd2YWx1ZSBkb2VzIG5vdCBjb250YWluIHN1YnN0cmluZyBgJXNgJy5mb3JtYXQoW3J1bGVzLmNvbnRhaW5zXSkgOiAnJxKYAQoMbm90X2NvbnRhaW5zGBcgASgJQoEBwkh+CnwKE3N0cmluZy5ub3RfY29udGFpbnMaZXRoaXMuY29udGFpbnMocnVsZXMubm90X2NvbnRhaW5zKSA/ICd2YWx1ZSBjb250YWlucyBzdWJzdHJpbmcgYCVzYCcuZm9ybWF0KFtydWxlcy5ub3RfY29udGFpbnNdKSA6ICcnEoABCgJpbhgKIAMoCUJ0wkhxCm8KCXN0cmluZy5pbhpiISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycSdwoGbm90X2luGAsgAygJQmfCSGQKYgoNc3RyaW5nLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEt8BCgVlbWFpbBgMIAEoCELNAcJIyQEKYQoMc3RyaW5nLmVtYWlsEiN2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgZW1haWwgYWRkcmVzcxosIXJ1bGVzLmVtYWlsIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0VtYWlsKCkKZAoSc3RyaW5nLmVtYWlsX2VtcHR5EjJ2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgZW1haWwgYWRkcmVzcxoaIXJ1bGVzLmVtYWlsIHx8IHRoaXMgIT0gJydIABLnAQoIaG9zdG5hbWUYDSABKAhC0gHCSM4BCmUKD3N0cmluZy5ob3N0bmFtZRIedmFsdWUgbXVzdCBiZSBhIHZhbGlkIGhvc3RuYW1lGjIhcnVsZXMuaG9zdG5hbWUgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSG9zdG5hbWUoKQplChVzdHJpbmcuaG9zdG5hbWVfZW1wdHkSLXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBob3N0bmFtZRodIXJ1bGVzLmhvc3RuYW1lIHx8IHRoaXMgIT0gJydIABLHAQoCaXAYDiABKAhCuAHCSLQBClUKCXN0cmluZy5pcBIgdmFsdWUgbXVzdCBiZSBhIHZhbGlkIElQIGFkZHJlc3MaJiFydWxlcy5pcCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcCgpClsKD3N0cmluZy5pcF9lbXB0eRIvdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIGFkZHJlc3MaFyFydWxlcy5pcCB8fCB0aGlzICE9ICcnSAAS1gEKBGlwdjQYDyABKAhCxQHCSMEBClwKC3N0cmluZy5pcHY0EiJ2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVB2NCBhZGRyZXNzGikhcnVsZXMuaXB2NCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcCg0KQphChFzdHJpbmcuaXB2NF9lbXB0eRIxdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjQgYWRkcmVzcxoZIXJ1bGVzLmlwdjQgfHwgdGhpcyAhPSAnJ0gAEtYBCgRpcHY2GBAgASgIQsUBwkjBAQpcCgtzdHJpbmcuaXB2NhIidmFsdWUgbXVzdCBiZSBhIHZhbGlkIElQdjYgYWRkcmVzcxopIXJ1bGVzLmlwdjYgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXAoNikKYQoRc3RyaW5nLmlwdjZfZW1wdHkSMXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY2IGFkZHJlc3MaGSFydWxlcy5pcHY2IHx8IHRoaXMgIT0gJydIABK/AQoDdXJpGBEgASgIQq8BwkirAQpRCgpzdHJpbmcudXJpEhl2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgVVJJGighcnVsZXMudXJpIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc1VyaSgpClYKEHN0cmluZy51cmlfZW1wdHkSKHZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBVUkkaGCFydWxlcy51cmkgfHwgdGhpcyAhPSAnJ0gAEnAKB3VyaV9yZWYYEiABKAhCXcJIWgpYCg5zdHJpbmcudXJpX3JlZhIjdmFsdWUgbXVzdCBiZSBhIHZhbGlkIFVSSSBSZWZlcmVuY2UaISFydWxlcy51cmlfcmVmIHx8IHRoaXMuaXNVcmlSZWYoKUgAEpACCgdhZGRyZXNzGBUgASgIQvwBwkj4AQqBAQoOc3RyaW5nLmFkZHJlc3MSLXZhbHVlIG11c3QgYmUgYSB2YWxpZCBob3N0bmFtZSwgb3IgaXAgYWRkcmVzcxpAIXJ1bGVzLmFkZHJlc3MgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSG9zdG5hbWUoKSB8fCB0aGlzLmlzSXAoKQpyChRzdHJpbmcuYWRkcmVzc19lbXB0eRI8dmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIGhvc3RuYW1lLCBvciBpcCBhZGRyZXNzGhwhcnVsZXMuYWRkcmVzcyB8fCB0aGlzICE9ICcnSAASmAIKBHV1aWQYFiABKAhChwLCSIMCCqUBCgtzdHJpbmcudXVpZBIadmFsdWUgbXVzdCBiZSBhIHZhbGlkIFVVSUQaeiFydWxlcy51dWlkIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5tYXRjaGVzKCdeWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCcpClkKEXN0cmluZy51dWlkX2VtcHR5Eil2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgVVVJRBoZIXJ1bGVzLnV1aWQgfHwgdGhpcyAhPSAnJ0gAEvABCgV0dXVpZBghIAEoCELeAcJI2gEKcwoMc3RyaW5nLnR1dWlkEiJ2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgdHJpbW1lZCBVVUlEGj8hcnVsZXMudHV1aWQgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLm1hdGNoZXMoJ15bMC05YS1mQS1GXXszMn0kJykKYwoSc3RyaW5nLnR1dWlkX2VtcHR5EjF2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgdHJpbW1lZCBVVUlEGhohcnVsZXMudHV1aWQgfHwgdGhpcyAhPSAnJ0gAEpYCChFpcF93aXRoX3ByZWZpeGxlbhgaIAEoCEL4AcJI9AEKeAoYc3RyaW5nLmlwX3dpdGhfcHJlZml4bGVuEh92YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVAgcHJlZml4GjshcnVsZXMuaXBfd2l0aF9wcmVmaXhsZW4gfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXBQcmVmaXgoKQp4Ch5zdHJpbmcuaXBfd2l0aF9wcmVmaXhsZW5fZW1wdHkSLnZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUCBwcmVmaXgaJiFydWxlcy5pcF93aXRoX3ByZWZpeGxlbiB8fCB0aGlzICE9ICcnSAASzwIKE2lwdjRfd2l0aF9wcmVmaXhsZW4YGyABKAhCrwLCSKsCCpMBChpzdHJpbmcuaXB2NF93aXRoX3ByZWZpeGxlbhI1dmFsdWUgbXVzdCBiZSBhIHZhbGlkIElQdjQgYWRkcmVzcyB3aXRoIHByZWZpeCBsZW5ndGgaPiFydWxlcy5pcHY0X3dpdGhfcHJlZml4bGVuIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0lwUHJlZml4KDQpCpIBCiBzdHJpbmcuaXB2NF93aXRoX3ByZWZpeGxlbl9lbXB0eRJEdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjQgYWRkcmVzcyB3aXRoIHByZWZpeCBsZW5ndGgaKCFydWxlcy5pcHY0X3dpdGhfcHJlZml4bGVuIHx8IHRoaXMgIT0gJydIABLPAgoTaXB2Nl93aXRoX3ByZWZpeGxlbhgcIAEoCEKvAsJIqwIKkwEKGnN0cmluZy5pcHY2X3dpdGhfcHJlZml4bGVuEjV2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVB2NiBhZGRyZXNzIHdpdGggcHJlZml4IGxlbmd0aBo+IXJ1bGVzLmlwdjZfd2l0aF9wcmVmaXhsZW4gfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXBQcmVmaXgoNikKkgEKIHN0cmluZy5pcHY2X3dpdGhfcHJlZml4bGVuX2VtcHR5EkR2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NiBhZGRyZXNzIHdpdGggcHJlZml4IGxlbmd0aBooIXJ1bGVzLmlwdjZfd2l0aF9wcmVmaXhsZW4gfHwgdGhpcyAhPSAnJ0gAEvIBCglpcF9wcmVmaXgYHSABKAhC3AHCSNgBCmwKEHN0cmluZy5pcF9wcmVmaXgSH3ZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUCBwcmVmaXgaNyFydWxlcy5pcF9wcmVmaXggfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXBQcmVmaXgodHJ1ZSkKaAoWc3RyaW5nLmlwX3ByZWZpeF9lbXB0eRIudmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIHByZWZpeBoeIXJ1bGVzLmlwX3ByZWZpeCB8fCB0aGlzICE9ICcnSAASgwIKC2lwdjRfcHJlZml4GB4gASgIQusBwkjnAQp1ChJzdHJpbmcuaXB2NF9wcmVmaXgSIXZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUHY0IHByZWZpeBo8IXJ1bGVzLmlwdjRfcHJlZml4IHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0lwUHJlZml4KDQsIHRydWUpCm4KGHN0cmluZy5pcHY0X3ByZWZpeF9lbXB0eRIwdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjQgcHJlZml4GiAhcnVsZXMuaXB2NF9wcmVmaXggfHwgdGhpcyAhPSAnJ0gAEoMCCgtpcHY2X3ByZWZpeBgfIAEoCELrAcJI5wEKdQoSc3RyaW5nLmlwdjZfcHJlZml4EiF2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVB2NiBwcmVmaXgaPCFydWxlcy5pcHY2X3ByZWZpeCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCg2LCB0cnVlKQpuChhzdHJpbmcuaXB2Nl9wcmVmaXhfZW1wdHkSMHZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY2IHByZWZpeBogIXJ1bGVzLmlwdjZfcHJlZml4IHx8IHRoaXMgIT0gJydIABK1AgoNaG9zdF9hbmRfcG9ydBggIAEoCEKbAsJIlwIKmQEKFHN0cmluZy5ob3N0X2FuZF9wb3J0EkF2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgaG9zdCAoaG9zdG5hbWUgb3IgSVAgYWRkcmVzcykgYW5kIHBvcnQgcGFpcho+IXJ1bGVzLmhvc3RfYW5kX3BvcnQgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSG9zdEFuZFBvcnQodHJ1ZSkKeQoac3RyaW5nLmhvc3RfYW5kX3BvcnRfZW1wdHkSN3ZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBob3N0IGFuZCBwb3J0IHBhaXIaIiFydWxlcy5ob3N0X2FuZF9wb3J0IHx8IHRoaXMgIT0gJydIABKoBQoQd2VsbF9rbm93bl9yZWdleBgYIAEoDjIYLmJ1Zi52YWxpZGF0ZS5Lbm93blJlZ2V4QvEEwkjtBArwAQojc3RyaW5nLndlbGxfa25vd25fcmVnZXguaGVhZGVyX25hbWUSJnZhbHVlIG11c3QgYmUgYSB2YWxpZCBIVFRQIGhlYWRlciBuYW1lGqABcnVsZXMud2VsbF9rbm93bl9yZWdleCAhPSAxIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5tYXRjaGVzKCFoYXMocnVsZXMuc3RyaWN0KSB8fCBydWxlcy5zdHJpY3QgPydeOj9bMC05YS16QS1aISMkJSZcJyorLS5eX3x+XHg2MF0rJCcgOideW15cdTAwMDBcdTAwMEFcdTAwMERdKyQnKQqNAQopc3RyaW5nLndlbGxfa25vd25fcmVnZXguaGVhZGVyX25hbWVfZW1wdHkSNXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBIVFRQIGhlYWRlciBuYW1lGilydWxlcy53ZWxsX2tub3duX3JlZ2V4ICE9IDEgfHwgdGhpcyAhPSAnJwrnAQokc3RyaW5nLndlbGxfa25vd25fcmVnZXguaGVhZGVyX3ZhbHVlEid2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSFRUUCBoZWFkZXIgdmFsdWUalQFydWxlcy53ZWxsX2tub3duX3JlZ2V4ICE9IDIgfHwgdGhpcy5tYXRjaGVzKCFoYXMocnVsZXMuc3RyaWN0KSB8fCBydWxlcy5zdHJpY3QgPydeW15cdTAwMDAtXHUwMDA4XHUwMDBBLVx1MDAxRlx1MDA3Rl0qJCcgOideW15cdTAwMDBcdTAwMEFcdTAwMERdKiQnKUgAEg4KBnN0cmljdBgZIAEoCBIsCgdleGFtcGxlGCIgAygJQhvCSBgKFgoOc3RyaW5nLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkIMCgp3ZWxsX2tub3duIuoQCgpCeXRlc1J1bGVzEoABCgVjb25zdBgBIAEoDEJxwkhuCmwKC2J5dGVzLmNvbnN0Gl10aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGJlICV4Jy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSeAoDbGVuGA0gASgEQmvCSGgKZgoJYnl0ZXMubGVuGll1aW50KHRoaXMuc2l6ZSgpKSAhPSBydWxlcy5sZW4gPyAndmFsdWUgbGVuZ3RoIG11c3QgYmUgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubGVuXSkgOiAnJxKQAQoHbWluX2xlbhgCIAEoBEJ/wkh8CnoKDWJ5dGVzLm1pbl9sZW4aaXVpbnQodGhpcy5zaXplKCkpIDwgcnVsZXMubWluX2xlbiA/ICd2YWx1ZSBsZW5ndGggbXVzdCBiZSBhdCBsZWFzdCAlcyBieXRlcycuZm9ybWF0KFtydWxlcy5taW5fbGVuXSkgOiAnJxKIAQoHbWF4X2xlbhgDIAEoBEJ3wkh0CnIKDWJ5dGVzLm1heF9sZW4aYXVpbnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X2xlbiA/ICd2YWx1ZSBtdXN0IGJlIGF0IG1vc3QgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubWF4X2xlbl0pIDogJycSkAEKB3BhdHRlcm4YBCABKAlCf8JIfAp6Cg1ieXRlcy5wYXR0ZXJuGmkhc3RyaW5nKHRoaXMpLm1hdGNoZXMocnVsZXMucGF0dGVybikgPyAndmFsdWUgbXVzdCBtYXRjaCByZWdleCBwYXR0ZXJuIGAlc2AnLmZvcm1hdChbcnVsZXMucGF0dGVybl0pIDogJycSgQEKBnByZWZpeBgFIAEoDEJxwkhuCmwKDGJ5dGVzLnByZWZpeBpcIXRoaXMuc3RhcnRzV2l0aChydWxlcy5wcmVmaXgpID8gJ3ZhbHVlIGRvZXMgbm90IGhhdmUgcHJlZml4ICV4Jy5mb3JtYXQoW3J1bGVzLnByZWZpeF0pIDogJycSfwoGc3VmZml4GAYgASgMQm/CSGwKagoMYnl0ZXMuc3VmZml4GlohdGhpcy5lbmRzV2l0aChydWxlcy5zdWZmaXgpID8gJ3ZhbHVlIGRvZXMgbm90IGhhdmUgc3VmZml4ICV4Jy5mb3JtYXQoW3J1bGVzLnN1ZmZpeF0pIDogJycSgwEKCGNvbnRhaW5zGAcgASgMQnHCSG4KbAoOYnl0ZXMuY29udGFpbnMaWiF0aGlzLmNvbnRhaW5zKHJ1bGVzLmNvbnRhaW5zKSA/ICd2YWx1ZSBkb2VzIG5vdCBjb250YWluICV4Jy5mb3JtYXQoW3J1bGVzLmNvbnRhaW5zXSkgOiAnJxKnAQoCaW4YCCADKAxCmgHCSJYBCpMBCghieXRlcy5pbhqGAWdldEZpZWxkKHJ1bGVzLCAnaW4nKS5zaXplKCkgPiAwICYmICEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnYKBm5vdF9pbhgJIAMoDEJmwkhjCmEKDGJ5dGVzLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEusBCgJpcBgKIAEoCELcAcJI2AEKdAoIYnl0ZXMuaXASIHZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUCBhZGRyZXNzGkYhcnVsZXMuaXAgfHwgdGhpcy5zaXplKCkgPT0gMCB8fCB0aGlzLnNpemUoKSA9PSA0IHx8IHRoaXMuc2l6ZSgpID09IDE2CmAKDmJ5dGVzLmlwX2VtcHR5Ei92YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVAgYWRkcmVzcxodIXJ1bGVzLmlwIHx8IHRoaXMuc2l6ZSgpICE9IDBIABLkAQoEaXB2NBgLIAEoCELTAcJIzwEKZQoKYnl0ZXMuaXB2NBIidmFsdWUgbXVzdCBiZSBhIHZhbGlkIElQdjQgYWRkcmVzcxozIXJ1bGVzLmlwdjQgfHwgdGhpcy5zaXplKCkgPT0gMCB8fCB0aGlzLnNpemUoKSA9PSA0CmYKEGJ5dGVzLmlwdjRfZW1wdHkSMXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY0IGFkZHJlc3MaHyFydWxlcy5pcHY0IHx8IHRoaXMuc2l6ZSgpICE9IDBIABLlAQoEaXB2NhgMIAEoCELUAcJI0AEKZgoKYnl0ZXMuaXB2NhIidmFsdWUgbXVzdCBiZSBhIHZhbGlkIElQdjYgYWRkcmVzcxo0IXJ1bGVzLmlwdjYgfHwgdGhpcy5zaXplKCkgPT0gMCB8fCB0aGlzLnNpemUoKSA9PSAxNgpmChBieXRlcy5pcHY2X2VtcHR5EjF2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NiBhZGRyZXNzGh8hcnVsZXMuaXB2NiB8fCB0aGlzLnNpemUoKSAhPSAwSAASKwoHZXhhbXBsZRgOIAMoDEIawkgXChUKDWJ5dGVzLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkIMCgp3ZWxsX2tub3duItQDCglFbnVtUnVsZXMSggEKBWNvbnN0GAEgASgFQnPCSHAKbgoKZW51bS5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEhQKDGRlZmluZWRfb25seRgCIAEoCBJ+CgJpbhgDIAMoBUJywkhvCm0KB2VudW0uaW4aYiEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnUKBm5vdF9pbhgEIAMoBUJlwkhiCmAKC2VudW0ubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSKgoHZXhhbXBsZRgFIAMoBUIZwkgWChQKDGVudW0uZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACIvsDCg1SZXBlYXRlZFJ1bGVzEp4BCgltaW5faXRlbXMYASABKARCigHCSIYBCoMBChJyZXBlYXRlZC5taW5faXRlbXMabXVpbnQodGhpcy5zaXplKCkpIDwgcnVsZXMubWluX2l0ZW1zID8gJ3ZhbHVlIG11c3QgY29udGFpbiBhdCBsZWFzdCAlZCBpdGVtKHMpJy5mb3JtYXQoW3J1bGVzLm1pbl9pdGVtc10pIDogJycSogEKCW1heF9pdGVtcxgCIAEoBEKOAcJIigEKhwEKEnJlcGVhdGVkLm1heF9pdGVtcxpxdWludCh0aGlzLnNpemUoKSkgPiBydWxlcy5tYXhfaXRlbXMgPyAndmFsdWUgbXVzdCBjb250YWluIG5vIG1vcmUgdGhhbiAlcyBpdGVtKHMpJy5mb3JtYXQoW3J1bGVzLm1heF9pdGVtc10pIDogJycScAoGdW5pcXVlGAMgASgIQmDCSF0KWwoPcmVwZWF0ZWQudW5pcXVlEihyZXBlYXRlZCB2YWx1ZSBtdXN0IGNvbnRhaW4gdW5pcXVlIGl0ZW1zGh4hcnVsZXMudW5pcXVlIHx8IHRoaXMudW5pcXVlKCkSJwoFaXRlbXMYBCABKAsyGC5idWYudmFsaWRhdGUuRmllbGRSdWxlcyoJCOgHEICAgIACIooDCghNYXBSdWxlcxKPAQoJbWluX3BhaXJzGAEgASgEQnzCSHkKdwoNbWFwLm1pbl9wYWlycxpmdWludCh0aGlzLnNpemUoKSkgPCBydWxlcy5taW5fcGFpcnMgPyAnbWFwIG11c3QgYmUgYXQgbGVhc3QgJWQgZW50cmllcycuZm9ybWF0KFtydWxlcy5taW5fcGFpcnNdKSA6ICcnEo4BCgltYXhfcGFpcnMYAiABKARCe8JIeAp2Cg1tYXAubWF4X3BhaXJzGmV1aW50KHRoaXMuc2l6ZSgpKSA+IHJ1bGVzLm1heF9wYWlycyA/ICdtYXAgbXVzdCBiZSBhdCBtb3N0ICVkIGVudHJpZXMnLmZvcm1hdChbcnVsZXMubWF4X3BhaXJzXSkgOiAnJxImCgRrZXlzGAQgASgLMhguYnVmLnZhbGlkYXRlLkZpZWxkUnVsZXMSKAoGdmFsdWVzGAUgASgLMhguYnVmLnZhbGlkYXRlLkZpZWxkUnVsZXMqCQjoBxCAgICAAiImCghBbnlSdWxlcxIKCgJpbhgCIAMoCRIOCgZub3RfaW4YAyADKAkimRcKDUR1cmF0aW9uUnVsZXMSoQEKBWNvbnN0GAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQnfCSHQKcgoOZHVyYXRpb24uY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKoAQoCbHQYAyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25Cf8JIfAp6CgtkdXJhdGlvbi5sdBprIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABK6AQoDbHRlGAQgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQo8BwkiLAQqIAQoMZHVyYXRpb24ubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABLBBwoCZ3QYBSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25ClwfCSJMHCn0KC2R1cmF0aW9uLmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq2AQoOZHVyYXRpb24uZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr4BChhkdXJhdGlvbi5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrGAQoPZHVyYXRpb24uZ3RfbHRlGrIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrOAQoZZHVyYXRpb24uZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAESjQgKA2d0ZRgGIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkLiB8JI3gcKiwEKDGR1cmF0aW9uLmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsUBCg9kdXJhdGlvbi5ndGVfbHQasQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzQEKGWR1cmF0aW9uLmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtUBChBkdXJhdGlvbi5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCt0BChpkdXJhdGlvbi5ndGVfbHRlX2V4Y2x1c2l2ZRq+AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARKdAQoCaW4YByADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CdsJIcwpxCgtkdXJhdGlvbi5pbhpiISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycSlAEKBm5vdF9pbhgIIAMoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkJpwkhmCmQKD2R1cmF0aW9uLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEkkKB2V4YW1wbGUYCSADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CHcJIGgoYChBkdXJhdGlvbi5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKSGAoOVGltZXN0YW1wUnVsZXMSowEKBWNvbnN0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEJ4wkh1CnMKD3RpbWVzdGFtcC5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEqsBCgJsdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCgAHCSH0KewoMdGltZXN0YW1wLmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAErwBCgNsdGUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQpABwkiMAQqJAQoNdGltZXN0YW1wLmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASbAoGbHRfbm93GAcgASgIQlrCSFcKVQoQdGltZXN0YW1wLmx0X25vdxpBKHJ1bGVzLmx0X25vdyAmJiB0aGlzID4gbm93KSA/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBub3cnIDogJydIABLHBwoCZ3QYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQpwHwkiYBwp+Cgx0aW1lc3RhbXAuZ3QabiFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrcBCg90aW1lc3RhbXAuZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr8BChl0aW1lc3RhbXAuZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxwEKEHRpbWVzdGFtcC5ndF9sdGUasgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCs8BChp0aW1lc3RhbXAuZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAESkwgKA2d0ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBC5wfCSOMHCowBCg10aW1lc3RhbXAuZ3RlGnshaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKxgEKEHRpbWVzdGFtcC5ndGVfbHQasQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzgEKGnRpbWVzdGFtcC5ndGVfbHRfZXhjbHVzaXZlGq8BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrWAQoRdGltZXN0YW1wLmd0ZV9sdGUawAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK3gEKG3RpbWVzdGFtcC5ndGVfbHRlX2V4Y2x1c2l2ZRq+AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJvCgZndF9ub3cYCCABKAhCXcJIWgpYChB0aW1lc3RhbXAuZ3Rfbm93GkQocnVsZXMuZ3Rfbm93ICYmIHRoaXMgPCBub3cpID8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG5vdycgOiAnJ0gBErgBCgZ3aXRoaW4YCSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CjAHCSIgBCoUBChB0aW1lc3RhbXAud2l0aGluGnF0aGlzIDwgbm93LXJ1bGVzLndpdGhpbiB8fCB0aGlzID4gbm93K3J1bGVzLndpdGhpbiA/ICd2YWx1ZSBtdXN0IGJlIHdpdGhpbiAlcyBvZiBub3cnLmZvcm1hdChbcnVsZXMud2l0aGluXSkgOiAnJxJLCgdleGFtcGxlGAogAygLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIewkgbChkKEXRpbWVzdGFtcC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiI5CgpWaW9sYXRpb25zEisKCnZpb2xhdGlvbnMYASADKAsyFy5idWYudmFsaWRhdGUuVmlvbGF0aW9uIp8BCglWaW9sYXRpb24SJgoFZmllbGQYBSABKAsyFy5idWYudmFsaWRhdGUuRmllbGRQYXRoEiUKBHJ1bGUYBiABKAsyFy5idWYudmFsaWRhdGUuRmllbGRQYXRoEg8KB3J1bGVfaWQYAiABKAkSDwoHbWVzc2FnZRgDIAEoCRIPCgdmb3Jfa2V5GAQgASgISgQIARACUgpmaWVsZF9wYXRoIj0KCUZpZWxkUGF0aBIwCghlbGVtZW50cxgBIAMoCzIeLmJ1Zi52YWxpZGF0ZS5GaWVsZFBhdGhFbGVtZW50IukCChBGaWVsZFBhdGhFbGVtZW50EhQKDGZpZWxkX251bWJlchgBIAEoBRISCgpmaWVsZF9uYW1lGAIgASgJEj4KCmZpZWxkX3R5cGUYAyABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZRI8CghrZXlfdHlwZRgEIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlEj4KCnZhbHVlX3R5cGUYBSABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZRIPCgVpbmRleBgGIAEoBEgAEhIKCGJvb2xfa2V5GAcgASgISAASEQoHaW50X2tleRgIIAEoA0gAEhIKCHVpbnRfa2V5GAkgASgESAASFAoKc3RyaW5nX2tleRgKIAEoCUgAQgsKCXN1YnNjcmlwdCqhAQoGSWdub3JlEhYKEklHTk9SRV9VTlNQRUNJRklFRBAAEhgKFElHTk9SRV9JRl9aRVJPX1ZBTFVFEAESEQoNSUdOT1JFX0FMV0FZUxADIgQIAhACKgxJR05PUkVfRU1QVFkqDklHTk9SRV9ERUZBVUxUKhdJR05PUkVfSUZfREVGQVVMVF9WQUxVRSoVSUdOT1JFX0lGX1VOUE9QVUxBVEVEKm4KCktub3duUmVnZXgSGwoXS05PV05fUkVHRVhfVU5TUEVDSUZJRUQQABIgChxLTk9XTl9SRUdFWF9IVFRQX0hFQURFUl9OQU1FEAESIQodS05PV05fUkVHRVhfSFRUUF9IRUFERVJfVkFMVUUQAjpWCgdtZXNzYWdlEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGIcJIAEoCzIaLmJ1Zi52YWxpZGF0ZS5NZXNzYWdlUnVsZXNSB21lc3NhZ2U6TgoFb25lb2YSHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zGIcJIAEoCzIYLmJ1Zi52YWxpZGF0ZS5PbmVvZlJ1bGVzUgVvbmVvZjpOCgVmaWVsZBIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYhwkgASgLMhguYnVmLnZhbGlkYXRlLkZpZWxkUnVsZXNSBWZpZWxkOl0KCnByZWRlZmluZWQSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGIgJIAEoCzIdLmJ1Zi52YWxpZGF0ZS5QcmVkZWZpbmVkUnVsZXNSCnByZWRlZmluZWRCuwEKEGNvbS5idWYudmFsaWRhdGVCDVZhbGlkYXRlUHJvdG9QAVpHYnVmLmJ1aWxkL2dlbi9nby9idWZidWlsZC9wcm90b3ZhbGlkYXRlL3Byb3RvY29sYnVmZmVycy9nby9idWYvdmFsaWRhdGWiAgNCVliqAgxCdWYuVmFsaWRhdGXKAgxCdWZcVmFsaWRhdGXiAhhCdWZcVmFsaWRhdGVcR1BCTWV0YWRhdGHqAg1CdWY6OlZhbGlkYXRl", [file_google_protobuf_descriptor, file_google_protobuf_duration, file_google_protobuf_timestamp]);
15
17
  var file_google_api_field_behavior = /* @__PURE__ */ fileDesc("Ch9nb29nbGUvYXBpL2ZpZWxkX2JlaGF2aW9yLnByb3RvEgpnb29nbGUuYXBpKrYBCg1GaWVsZEJlaGF2aW9yEh4KGkZJRUxEX0JFSEFWSU9SX1VOU1BFQ0lGSUVEEAASDAoIT1BUSU9OQUwQARIMCghSRVFVSVJFRBACEg8KC09VVFBVVF9PTkxZEAMSDgoKSU5QVVRfT05MWRAEEg0KCUlNTVVUQUJMRRAFEhIKDlVOT1JERVJFRF9MSVNUEAYSFQoRTk9OX0VNUFRZX0RFRkFVTFQQBxIOCgpJREVOVElGSUVSEAg6ZAoOZmllbGRfYmVoYXZpb3ISHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGJwIIAMoDjIZLmdvb2dsZS5hcGkuRmllbGRCZWhhdmlvckICEABSDWZpZWxkQmVoYXZpb3JCsAEKDmNvbS5nb29nbGUuYXBpQhJGaWVsZEJlaGF2aW9yUHJvdG9QAVpBZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkvYW5ub3RhdGlvbnM7YW5ub3RhdGlvbnOiAgNHQViqAgpHb29nbGUuQXBpygIKR29vZ2xlXEFwaeICFkdvb2dsZVxBcGlcR1BCTWV0YWRhdGHqAgtHb29nbGU6OkFwaWIGcHJvdG8z", [file_google_protobuf_descriptor]);
16
- var file_thru_common_v1_consensus = /* @__PURE__ */ fileDesc("Ch50aHJ1L2NvbW1vbi92MS9jb25zZW5zdXMucHJvdG8SDnRocnUuY29tbW9uLnYxIoIDCg5WZXJzaW9uQ29udGV4dBI2CgdjdXJyZW50GAEgASgLMh4udGhydS5jb21tb24udjEuQ3VycmVudFZlcnNpb25CA+BBAUgAEk4KE2N1cnJlbnRPckhpc3RvcmljYWwYAiABKAsyKi50aHJ1LmNvbW1vbi52MS5DdXJyZW50T3JIaXN0b3JpY2FsVmVyc2lvbkID4EEBSAASEwoEc2xvdBgDIAEoBEID4EEBSAASNAoJdGltZXN0YW1wGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EEBSAA6kQG6SI0BGooBChx2ZXJzaW9uX2NvbnRleHRfaGFzX3NlbGVjdG9yEi5vbmUgb2YgY3VycmVudCwgc2xvdCwgb3IgdGltZXN0YW1wIG11c3QgYmUgc2V0GjpoYXModGhpcy5jdXJyZW50KSB8fCBoYXModGhpcy5zbG90KSB8fCBoYXModGhpcy50aW1lc3RhbXApQgkKB3ZlcnNpb24iEAoOQ3VycmVudFZlcnNpb24iHAoaQ3VycmVudE9ySGlzdG9yaWNhbFZlcnNpb24q3wEKD0NvbnNlbnN1c1N0YXR1cxIgChxDT05TRU5TVVNfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHQoZQ09OU0VOU1VTX1NUQVRVU19PQlNFUlZFRBABEh0KGUNPTlNFTlNVU19TVEFUVVNfSU5DTFVERUQQAhIeChpDT05TRU5TVVNfU1RBVFVTX0ZJTkFMSVpFRBADEiUKIUNPTlNFTlNVU19TVEFUVVNfTE9DQUxMWV9FWEVDVVRFRBAEEiUKIUNPTlNFTlNVU19TVEFUVVNfQ0xVU1RFUl9FWEVDVVRFRBAFQsoBChJjb20udGhydS5jb21tb24udjFCDkNvbnNlbnN1c1Byb3RvUAFaRGdpdGh1Yi5jb20vVW50by1MYWJzL3RocnUtbmV0L2dycGMvcGtnL3Byb3RvL3RocnUvY29tbW9uL3YxO2NvbW1vbnYxogIDVENYqgIOVGhydS5Db21tb24uVjG6AgNUSFXKAg5UaHJ1XENvbW1vblxWMeICGlRocnVcQ29tbW9uXFYxXEdQQk1ldGFkYXRh6gIQVGhydTo6Q29tbW9uOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_api_field_behavior, file_google_protobuf_timestamp]);
18
+ var file_thru_common_v1_consensus = /* @__PURE__ */ fileDesc("Ch50aHJ1L2NvbW1vbi92MS9jb25zZW5zdXMucHJvdG8SDnRocnUuY29tbW9uLnYxIpYDCg5WZXJzaW9uQ29udGV4dBI2CgdjdXJyZW50GAEgASgLMh4udGhydS5jb21tb24udjEuQ3VycmVudFZlcnNpb25CA+BBAUgAEk4KE2N1cnJlbnRPckhpc3RvcmljYWwYAiABKAsyKi50aHJ1LmNvbW1vbi52MS5DdXJyZW50T3JIaXN0b3JpY2FsVmVyc2lvbkID4EEBSAASEwoEc2xvdBgDIAEoBEID4EEBSAASNAoJdGltZXN0YW1wGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EEBSAASEgoDc2VxGAUgASgEQgPgQQFIADqRAbpIjQEaigEKHHZlcnNpb25fY29udGV4dF9oYXNfc2VsZWN0b3ISLm9uZSBvZiBjdXJyZW50LCBzbG90LCBvciB0aW1lc3RhbXAgbXVzdCBiZSBzZXQaOmhhcyh0aGlzLmN1cnJlbnQpIHx8IGhhcyh0aGlzLnNsb3QpIHx8IGhhcyh0aGlzLnRpbWVzdGFtcClCCQoHdmVyc2lvbiIQCg5DdXJyZW50VmVyc2lvbiIcChpDdXJyZW50T3JIaXN0b3JpY2FsVmVyc2lvbirfAQoPQ29uc2Vuc3VzU3RhdHVzEiAKHENPTlNFTlNVU19TVEFUVVNfVU5TUEVDSUZJRUQQABIdChlDT05TRU5TVVNfU1RBVFVTX09CU0VSVkVEEAESHQoZQ09OU0VOU1VTX1NUQVRVU19JTkNMVURFRBACEh4KGkNPTlNFTlNVU19TVEFUVVNfRklOQUxJWkVEEAMSJQohQ09OU0VOU1VTX1NUQVRVU19MT0NBTExZX0VYRUNVVEVEEAQSJQohQ09OU0VOU1VTX1NUQVRVU19DTFVTVEVSX0VYRUNVVEVEEAVCygEKEmNvbS50aHJ1LmNvbW1vbi52MUIOQ29uc2Vuc3VzUHJvdG9QAVpEZ2l0aHViLmNvbS9VbnRvLUxhYnMvdGhydS1uZXQvZ3JwYy9wa2cvcHJvdG8vdGhydS9jb21tb24vdjE7Y29tbW9udjGiAgNUQ1iqAg5UaHJ1LkNvbW1vbi5WMboCA1RIVcoCDlRocnVcQ29tbW9uXFYx4gIaVGhydVxDb21tb25cVjFcR1BCTWV0YWRhdGHqAhBUaHJ1OjpDb21tb246OlYxYgZwcm90bzM", [file_buf_validate_validate, file_google_api_field_behavior, file_google_protobuf_timestamp]);
17
19
  var VersionContextSchema = /* @__PURE__ */ messageDesc(file_thru_common_v1_consensus, 0);
18
20
  var CurrentVersionSchema = /* @__PURE__ */ messageDesc(file_thru_common_v1_consensus, 1);
21
+ var CurrentOrHistoricalVersionSchema = /* @__PURE__ */ messageDesc(file_thru_common_v1_consensus, 2);
19
22
  var ConsensusStatus = /* @__PURE__ */ ((ConsensusStatus2) => {
20
23
  ConsensusStatus2[ConsensusStatus2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
21
24
  ConsensusStatus2[ConsensusStatus2["OBSERVED"] = 1] = "OBSERVED";
@@ -25,15 +28,58 @@ var ConsensusStatus = /* @__PURE__ */ ((ConsensusStatus2) => {
25
28
  ConsensusStatus2[ConsensusStatus2["CLUSTER_EXECUTED"] = 5] = "CLUSTER_EXECUTED";
26
29
  return ConsensusStatus2;
27
30
  })(ConsensusStatus || {});
28
- var file_thru_core_v1_types = /* @__PURE__ */ fileDesc("Chh0aHJ1L2NvcmUvdjEvdHlwZXMucHJvdG8SDHRocnUuY29yZS52MSIjCgZQdWJrZXkSGQoFdmFsdWUYASABKAxCCuBBArpIBHoCaCAiIQoESGFzaBIZCgV2YWx1ZRgBIAEoDEIK4EECukgEegJoICImCglCbG9ja0hhc2gSGQoFdmFsdWUYASABKAxCCuBBArpIBHoCaEAiJgoJU2lnbmF0dXJlEhkKBXZhbHVlGAEgASgMQgrgQQK6SAR6AmhAQrkBChBjb20udGhydS5jb3JlLnYxQgpUeXBlc1Byb3RvUAFaQGdpdGh1Yi5jb20vVW50by1MYWJzL3RocnUtbmV0L2dycGMvcGtnL3Byb3RvL3RocnUvY29yZS92MTtjb3JldjGiAgNUQ1iqAgxUaHJ1LkNvcmUuVjG6AgRUSFVDygIMVGhydVxDb3JlXFYx4gIYVGhydVxDb3JlXFYxXEdQQk1ldGFkYXRh6gIOVGhydTo6Q29yZTo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_api_field_behavior]);
29
- var PubkeySchema = /* @__PURE__ */ messageDesc(file_thru_core_v1_types, 0);
30
- var BlockHashSchema = /* @__PURE__ */ messageDesc(file_thru_core_v1_types, 2);
31
- var SignatureSchema = /* @__PURE__ */ messageDesc(file_thru_core_v1_types, 3);
31
+ var file_thru_common_v1_primitives = /* @__PURE__ */ fileDesc("Ch90aHJ1L2NvbW1vbi92MS9wcmltaXRpdmVzLnByb3RvEg50aHJ1LmNvbW1vbi52MSIjCgZQdWJrZXkSGQoFdmFsdWUYASABKAxCCuBBArpIBHoCaCAiJgoJU2lnbmF0dXJlEhkKBXZhbHVlGAEgASgMQgrgQQK6SAR6AmhAIiYKCFRhUHVia2V5EhoKBXZhbHVlGAEgASgJQgvgQQK6SAVyA5gBLiIpCgtUc1NpZ25hdHVyZRIaCgV2YWx1ZRgBIAEoCUIL4EECukgFcgOYAVpCywEKEmNvbS50aHJ1LmNvbW1vbi52MUIPUHJpbWl0aXZlc1Byb3RvUAFaRGdpdGh1Yi5jb20vVW50by1MYWJzL3RocnUtbmV0L2dycGMvcGtnL3Byb3RvL3RocnUvY29tbW9uL3YxO2NvbW1vbnYxogIDVENYqgIOVGhydS5Db21tb24uVjG6AgNUSFXKAg5UaHJ1XENvbW1vblxWMeICGlRocnVcQ29tbW9uXFYxXEdQQk1ldGFkYXRh6gIQVGhydTo6Q29tbW9uOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_api_field_behavior]);
32
+ var PubkeySchema = /* @__PURE__ */ messageDesc(file_thru_common_v1_primitives, 0);
33
+ var SignatureSchema = /* @__PURE__ */ messageDesc(file_thru_common_v1_primitives, 1);
34
+ var TaPubkeySchema = /* @__PURE__ */ messageDesc(file_thru_common_v1_primitives, 2);
35
+ var TsSignatureSchema = /* @__PURE__ */ messageDesc(file_thru_common_v1_primitives, 3);
36
+
37
+ // thru-ts-client-sdk/proto/thru/core/v1/types_pb.ts
38
+ var file_thru_core_v1_types = /* @__PURE__ */ fileDesc("Chh0aHJ1L2NvcmUvdjEvdHlwZXMucHJvdG8SDHRocnUuY29yZS52MSIhCgRIYXNoEhkKBXZhbHVlGAEgASgMQgrgQQK6SAR6AmggIiYKCUJsb2NrSGFzaBIZCgV2YWx1ZRgBIAEoDEIK4EECukgEegJoQEK5AQoQY29tLnRocnUuY29yZS52MUIKVHlwZXNQcm90b1ABWkBnaXRodWIuY29tL1VudG8tTGFicy90aHJ1LW5ldC9ncnBjL3BrZy9wcm90by90aHJ1L2NvcmUvdjE7Y29yZXYxogIDVENYqgIMVGhydS5Db3JlLlYxugIEVEhVQ8oCDFRocnVcQ29yZVxWMeICGFRocnVcQ29yZVxWMVxHUEJNZXRhZGF0YeoCDlRocnU6OkNvcmU6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_google_api_field_behavior, file_thru_common_v1_primitives]);
39
+ var BlockHashSchema = /* @__PURE__ */ messageDesc(file_thru_core_v1_types, 1);
32
40
 
33
41
  // thru-ts-client-sdk/proto/thru/core/v1/transaction_pb.ts
34
- var file_thru_core_v1_transaction = /* @__PURE__ */ fileDesc("Ch50aHJ1L2NvcmUvdjEvdHJhbnNhY3Rpb24ucHJvdG8SDHRocnUuY29yZS52MSKaBAoRVHJhbnNhY3Rpb25IZWFkZXISOQoTZmVlX3BheWVyX3NpZ25hdHVyZRgBIAEoCzIXLnRocnUuY29yZS52MS5TaWduYXR1cmVCA+BBAhIUCgd2ZXJzaW9uGAIgASgNQgPgQQISEgoFZmxhZ3MYAyABKA1CA+BBAhIlChhyZWFkd3JpdGVfYWNjb3VudHNfY291bnQYBCABKA1CA+BBAhIkChdyZWFkb25seV9hY2NvdW50c19jb3VudBgFIAEoDUID4EECEiIKFWluc3RydWN0aW9uX2RhdGFfc2l6ZRgGIAEoDUID4EECEiQKF3JlcXVlc3RlZF9jb21wdXRlX3VuaXRzGAcgASgNQgPgQQISIgoVcmVxdWVzdGVkX3N0YXRlX3VuaXRzGAggASgNQgPgQQISIwoWcmVxdWVzdGVkX21lbW9yeV91bml0cxgJIAEoDUID4EECEhkKDGV4cGlyeV9hZnRlchgKIAEoDUID4EECEhAKA2ZlZRgLIAEoBEID4EECEhIKBW5vbmNlGAwgASgEQgPgQQISFwoKc3RhcnRfc2xvdBgNIAEoBEID4EECEjMKEGZlZV9wYXllcl9wdWJrZXkYDiABKAsyFC50aHJ1LmNvcmUudjEuUHVia2V5QgPgQQISMQoOcHJvZ3JhbV9wdWJrZXkYDyABKAsyFC50aHJ1LmNvcmUudjEuUHVia2V5QgPgQQIi7gMKGlRyYW5zYWN0aW9uRXhlY3V0aW9uUmVzdWx0EiMKFmNvbnN1bWVkX2NvbXB1dGVfdW5pdHMYASABKA1CA+BBAhIiChVjb25zdW1lZF9tZW1vcnlfdW5pdHMYAiABKA1CA+BBAhIhChRjb25zdW1lZF9zdGF0ZV91bml0cxgDIAEoDUID4EECEhwKD3VzZXJfZXJyb3JfY29kZRgEIAEoBEID4EECEjcKCHZtX2Vycm9yGAUgASgOMiAudGhydS5jb3JlLnYxLlRyYW5zYWN0aW9uVm1FcnJvckID4EECEh0KEGV4ZWN1dGlvbl9yZXN1bHQYBiABKARCA+BBAhIXCgpwYWdlc191c2VkGAcgASgNQgPgQQISGQoMZXZlbnRzX2NvdW50GAggASgNQgPgQQISGAoLZXZlbnRzX3NpemUYCSABKA1CA+BBAhI1ChJyZWFkd3JpdGVfYWNjb3VudHMYCiADKAsyFC50aHJ1LmNvcmUudjEuUHVia2V5QgPgQQESNAoRcmVhZG9ubHlfYWNjb3VudHMYCyADKAsyFC50aHJ1LmNvcmUudjEuUHVia2V5QgPgQQESMwoGZXZlbnRzGAwgAygLMh4udGhydS5jb3JlLnYxLlRyYW5zYWN0aW9uRXZlbnRCA+BBASKcAQoQVHJhbnNhY3Rpb25FdmVudBIVCghldmVudF9pZBgBIAEoCUID4EECEhUKCGNhbGxfaWR4GAIgASgNQgPgQQISGAoLcHJvZ3JhbV9pZHgYAyABKA1CA+BBAhIqCgdwcm9ncmFtGAQgASgLMhQudGhydS5jb3JlLnYxLlB1YmtleUID4EECEhQKB3BheWxvYWQYBSABKAxCA+BBAiLUAgoLVHJhbnNhY3Rpb24SLwoJc2lnbmF0dXJlGAEgASgLMhcudGhydS5jb3JlLnYxLlNpZ25hdHVyZUID4EECEjQKBmhlYWRlchgCIAEoCzIfLnRocnUuY29yZS52MS5UcmFuc2FjdGlvbkhlYWRlckID4EECEiAKBGJvZHkYAyABKAxCDeBBAbpIB3oFGICAgAhIAIgBARJMChBleGVjdXRpb25fcmVzdWx0GAQgASgLMigudGhydS5jb3JlLnYxLlRyYW5zYWN0aW9uRXhlY3V0aW9uUmVzdWx0QgPgQQFIAYgBARIWCgRzbG90GAUgASgEQgPgQQFIAogBARIeCgxibG9ja19vZmZzZXQYBiABKA1CA+BBAUgDiAEBQgcKBV9ib2R5QhMKEV9leGVjdXRpb25fcmVzdWx0QgcKBV9zbG90Qg8KDV9ibG9ja19vZmZzZXQiaQoOUmF3VHJhbnNhY3Rpb24SLwoJc2lnbmF0dXJlGAEgASgLMhcudGhydS5jb3JlLnYxLlNpZ25hdHVyZUID4EECEiYKD3Jhd190cmFuc2FjdGlvbhgCIAEoDEIN4EECukgHegUYgICACCq7AQoPVHJhbnNhY3Rpb25WaWV3EiAKHFRSQU5TQUNUSU9OX1ZJRVdfVU5TUEVDSUZJRUQQABIjCh9UUkFOU0FDVElPTl9WSUVXX1NJR05BVFVSRV9PTkxZEAESIAocVFJBTlNBQ1RJT05fVklFV19IRUFERVJfT05MWRACEiQKIFRSQU5TQUNUSU9OX1ZJRVdfSEVBREVSX0FORF9CT0RZEAMSGQoVVFJBTlNBQ1RJT05fVklFV19GVUxMEAQqmAwKElRyYW5zYWN0aW9uVm1FcnJvchIiCh5UUkFOU0FDVElPTl9WTV9FWEVDVVRFX1NVQ0NFU1MQABIwCiNUUkFOU0FDVElPTl9WTV9FUlJPUl9JTlZBTElEX0ZPUk1BVBCB/v////////8BEjEKJFRSQU5TQUNUSU9OX1ZNX0VSUk9SX0lOVkFMSURfVkVSU0lPThCC/v////////8BEi8KIlRSQU5TQUNUSU9OX1ZNX0VSUk9SX0lOVkFMSURfRkxBR1MQg/7/////////ARIzCiZUUkFOU0FDVElPTl9WTV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRRCE/v////////8BEjMKJlRSQU5TQUNUSU9OX1ZNX0VSUk9SX0RVUExJQ0FURV9BQ0NPVU5UEIX+/////////wESMwomVFJBTlNBQ1RJT05fVk1fRVJST1JfVU5TT1JURURfQUNDT1VOVFMQhv7/////////ARI9CjBUUkFOU0FDVElPTl9WTV9FUlJPUl9VTlNPUlRFRF9SRUFEV1JJVEVfQUNDT1VOVFMQh/7/////////ARI8Ci9UUkFOU0FDVElPTl9WTV9FUlJPUl9VTlNPUlRFRF9SRUFET05MWV9BQ0NPVU5UUxCI/v////////8BEj4KMVRSQU5TQUNUSU9OX1ZNX0VSUk9SX0FDQ09VTlRfQ09VTlRfTElNSVRfRVhDRUVERUQQif7/////////ARIvCiJUUkFOU0FDVElPTl9WTV9FUlJPUl9OT05DRV9UT09fTE9XEIH8/////////wESMAojVFJBTlNBQ1RJT05fVk1fRVJST1JfTk9OQ0VfVE9PX0hJR0gQgvz/////////ARJACjNUUkFOU0FDVElPTl9WTV9FUlJPUl9JTlNVRkZJQ0lFTlRfRkVFX1BBWUVSX0JBTEFOQ0UQg/z/////////ARJCCjVUUkFOU0FDVElPTl9WTV9FUlJPUl9GRUVfUEFZRVJfQUNDT1VOVF9ET0VTX05PVF9FWElTVBCE/P////////8BEi4KIVRSQU5TQUNUSU9OX1ZNX0VSUk9SX05PVF9MSVZFX1lFVBCF/P////////8BEikKHFRSQU5TQUNUSU9OX1ZNX0VSUk9SX0VYUElSRUQQhvz/////////ARI/CjJUUkFOU0FDVElPTl9WTV9FUlJPUl9JTlZBTElEX0ZFRV9QQVlFUl9TVEFURV9QUk9PRhCH/P////////8BEkQKN1RSQU5TQUNUSU9OX1ZNX0VSUk9SX0lOVkFMSURfRkVFX1BBWUVSX1NUQVRFX1BST09GX1RZUEUQiPz/////////ARJECjdUUkFOU0FDVElPTl9WTV9FUlJPUl9JTlZBTElEX0ZFRV9QQVlFUl9TVEFURV9QUk9PRl9TTE9UEIn8/////////wESQQo0VFJBTlNBQ1RJT05fVk1fRVJST1JfSU5WQUxJRF9GRUVfUEFZRVJfQUNDT1VOVF9PV05FUhCK/P////////8BEk0KQFRSQU5TQUNUSU9OX1ZNX0VSUk9SX0lOVkFMSURfRkVFX1BBWUVSX1NUQVRFX1BST09GX0FDQ09VTlRfT1dORVIQi/z/////////ARJUCkdUUkFOU0FDVElPTl9WTV9FUlJPUl9JTlZBTElEX0ZFRV9QQVlFUl9TVEFURV9QUk9PRl9BQ0NPVU5UX01FVEFfREFUQV9TWhCM/P////////8BEisKHlRSQU5TQUNUSU9OX1ZNX0VSUk9SX1ZNX0ZBSUxFRBCB+v////////8BEjkKLFRSQU5TQUNUSU9OX1ZNX0VSUk9SX0lOVkFMSURfUFJPR1JBTV9BQ0NPVU5UEIL6/////////wESKwoeVFJBTlNBQ1RJT05fVk1fRVJST1JfVk1fUkVWRVJUEIP6/////////wESLgohVFJBTlNBQ1RJT05fVk1fRVJST1JfQ1VfRVhIQVVTVEVEEIT6/////////wESLgohVFJBTlNBQ1RJT05fVk1fRVJST1JfU1VfRVhIQVVTVEVEEIX6/////////wFCvwEKEGNvbS50aHJ1LmNvcmUudjFCEFRyYW5zYWN0aW9uUHJvdG9QAVpAZ2l0aHViLmNvbS9VbnRvLUxhYnMvdGhydS1uZXQvZ3JwYy9wa2cvcHJvdG8vdGhydS9jb3JlL3YxO2NvcmV2MaICA1RDWKoCDFRocnUuQ29yZS5WMboCBFRIVUPKAgxUaHJ1XENvcmVcVjHiAhhUaHJ1XENvcmVcVjFcR1BCTWV0YWRhdGHqAg5UaHJ1OjpDb3JlOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_api_field_behavior, file_thru_core_v1_types]);
42
+ var file_thru_core_v1_transaction = /* @__PURE__ */ fileDesc("Ch50aHJ1L2NvcmUvdjEvdHJhbnNhY3Rpb24ucHJvdG8SDHRocnUuY29yZS52MSKgBAoRVHJhbnNhY3Rpb25IZWFkZXISOwoTZmVlX3BheWVyX3NpZ25hdHVyZRgBIAEoCzIZLnRocnUuY29tbW9uLnYxLlNpZ25hdHVyZUID4EECEhQKB3ZlcnNpb24YAiABKA1CA+BBAhISCgVmbGFncxgDIAEoDUID4EECEiUKGHJlYWR3cml0ZV9hY2NvdW50c19jb3VudBgEIAEoDUID4EECEiQKF3JlYWRvbmx5X2FjY291bnRzX2NvdW50GAUgASgNQgPgQQISIgoVaW5zdHJ1Y3Rpb25fZGF0YV9zaXplGAYgASgNQgPgQQISJAoXcmVxdWVzdGVkX2NvbXB1dGVfdW5pdHMYByABKA1CA+BBAhIiChVyZXF1ZXN0ZWRfc3RhdGVfdW5pdHMYCCABKA1CA+BBAhIjChZyZXF1ZXN0ZWRfbWVtb3J5X3VuaXRzGAkgASgNQgPgQQISGQoMZXhwaXJ5X2FmdGVyGAogASgNQgPgQQISEAoDZmVlGAsgASgEQgPgQQISEgoFbm9uY2UYDCABKARCA+BBAhIXCgpzdGFydF9zbG90GA0gASgEQgPgQQISNQoQZmVlX3BheWVyX3B1YmtleRgOIAEoCzIWLnRocnUuY29tbW9uLnYxLlB1YmtleUID4EECEjMKDnByb2dyYW1fcHVia2V5GA8gASgLMhYudGhydS5jb21tb24udjEuUHVia2V5QgPgQQIi8gMKGlRyYW5zYWN0aW9uRXhlY3V0aW9uUmVzdWx0EiMKFmNvbnN1bWVkX2NvbXB1dGVfdW5pdHMYASABKA1CA+BBAhIiChVjb25zdW1lZF9tZW1vcnlfdW5pdHMYAiABKA1CA+BBAhIhChRjb25zdW1lZF9zdGF0ZV91bml0cxgDIAEoDUID4EECEhwKD3VzZXJfZXJyb3JfY29kZRgEIAEoBEID4EECEjcKCHZtX2Vycm9yGAUgASgOMiAudGhydS5jb3JlLnYxLlRyYW5zYWN0aW9uVm1FcnJvckID4EECEh0KEGV4ZWN1dGlvbl9yZXN1bHQYBiABKARCA+BBAhIXCgpwYWdlc191c2VkGAcgASgNQgPgQQISGQoMZXZlbnRzX2NvdW50GAggASgNQgPgQQISGAoLZXZlbnRzX3NpemUYCSABKA1CA+BBAhI3ChJyZWFkd3JpdGVfYWNjb3VudHMYCiADKAsyFi50aHJ1LmNvbW1vbi52MS5QdWJrZXlCA+BBARI2ChFyZWFkb25seV9hY2NvdW50cxgLIAMoCzIWLnRocnUuY29tbW9uLnYxLlB1YmtleUID4EEBEjMKBmV2ZW50cxgMIAMoCzIeLnRocnUuY29yZS52MS5UcmFuc2FjdGlvbkV2ZW50QgPgQQEingEKEFRyYW5zYWN0aW9uRXZlbnQSFQoIZXZlbnRfaWQYASABKAlCA+BBAhIVCghjYWxsX2lkeBgCIAEoDUID4EECEhgKC3Byb2dyYW1faWR4GAMgASgNQgPgQQISLAoHcHJvZ3JhbRgEIAEoCzIWLnRocnUuY29tbW9uLnYxLlB1YmtleUID4EECEhQKB3BheWxvYWQYBSABKAxCA+BBAiLWAgoLVHJhbnNhY3Rpb24SMQoJc2lnbmF0dXJlGAEgASgLMhkudGhydS5jb21tb24udjEuU2lnbmF0dXJlQgPgQQISNAoGaGVhZGVyGAIgASgLMh8udGhydS5jb3JlLnYxLlRyYW5zYWN0aW9uSGVhZGVyQgPgQQISIAoEYm9keRgDIAEoDEIN4EEBukgHegUYgICACEgAiAEBEkwKEGV4ZWN1dGlvbl9yZXN1bHQYBCABKAsyKC50aHJ1LmNvcmUudjEuVHJhbnNhY3Rpb25FeGVjdXRpb25SZXN1bHRCA+BBAUgBiAEBEhYKBHNsb3QYBSABKARCA+BBAUgCiAEBEh4KDGJsb2NrX29mZnNldBgGIAEoDUID4EEBSAOIAQFCBwoFX2JvZHlCEwoRX2V4ZWN1dGlvbl9yZXN1bHRCBwoFX3Nsb3RCDwoNX2Jsb2NrX29mZnNldCJrCg5SYXdUcmFuc2FjdGlvbhIxCglzaWduYXR1cmUYASABKAsyGS50aHJ1LmNvbW1vbi52MS5TaWduYXR1cmVCA+BBAhImCg9yYXdfdHJhbnNhY3Rpb24YAiABKAxCDeBBArpIB3oFGICAgAgquwEKD1RyYW5zYWN0aW9uVmlldxIgChxUUkFOU0FDVElPTl9WSUVXX1VOU1BFQ0lGSUVEEAASIwofVFJBTlNBQ1RJT05fVklFV19TSUdOQVRVUkVfT05MWRABEiAKHFRSQU5TQUNUSU9OX1ZJRVdfSEVBREVSX09OTFkQAhIkCiBUUkFOU0FDVElPTl9WSUVXX0hFQURFUl9BTkRfQk9EWRADEhkKFVRSQU5TQUNUSU9OX1ZJRVdfRlVMTBAEKpgMChJUcmFuc2FjdGlvblZtRXJyb3ISIgoeVFJBTlNBQ1RJT05fVk1fRVhFQ1VURV9TVUNDRVNTEAASMAojVFJBTlNBQ1RJT05fVk1fRVJST1JfSU5WQUxJRF9GT1JNQVQQgf7/////////ARIxCiRUUkFOU0FDVElPTl9WTV9FUlJPUl9JTlZBTElEX1ZFUlNJT04Qgv7/////////ARIvCiJUUkFOU0FDVElPTl9WTV9FUlJPUl9JTlZBTElEX0ZMQUdTEIP+/////////wESMwomVFJBTlNBQ1RJT05fVk1fRVJST1JfSU5WQUxJRF9TSUdOQVRVUkUQhP7/////////ARIzCiZUUkFOU0FDVElPTl9WTV9FUlJPUl9EVVBMSUNBVEVfQUNDT1VOVBCF/v////////8BEjMKJlRSQU5TQUNUSU9OX1ZNX0VSUk9SX1VOU09SVEVEX0FDQ09VTlRTEIb+/////////wESPQowVFJBTlNBQ1RJT05fVk1fRVJST1JfVU5TT1JURURfUkVBRFdSSVRFX0FDQ09VTlRTEIf+/////////wESPAovVFJBTlNBQ1RJT05fVk1fRVJST1JfVU5TT1JURURfUkVBRE9OTFlfQUNDT1VOVFMQiP7/////////ARI+CjFUUkFOU0FDVElPTl9WTV9FUlJPUl9BQ0NPVU5UX0NPVU5UX0xJTUlUX0VYQ0VFREVEEIn+/////////wESLwoiVFJBTlNBQ1RJT05fVk1fRVJST1JfTk9OQ0VfVE9PX0xPVxCB/P////////8BEjAKI1RSQU5TQUNUSU9OX1ZNX0VSUk9SX05PTkNFX1RPT19ISUdIEIL8/////////wESQAozVFJBTlNBQ1RJT05fVk1fRVJST1JfSU5TVUZGSUNJRU5UX0ZFRV9QQVlFUl9CQUxBTkNFEIP8/////////wESQgo1VFJBTlNBQ1RJT05fVk1fRVJST1JfRkVFX1BBWUVSX0FDQ09VTlRfRE9FU19OT1RfRVhJU1QQhPz/////////ARIuCiFUUkFOU0FDVElPTl9WTV9FUlJPUl9OT1RfTElWRV9ZRVQQhfz/////////ARIpChxUUkFOU0FDVElPTl9WTV9FUlJPUl9FWFBJUkVEEIb8/////////wESPwoyVFJBTlNBQ1RJT05fVk1fRVJST1JfSU5WQUxJRF9GRUVfUEFZRVJfU1RBVEVfUFJPT0YQh/z/////////ARJECjdUUkFOU0FDVElPTl9WTV9FUlJPUl9JTlZBTElEX0ZFRV9QQVlFUl9TVEFURV9QUk9PRl9UWVBFEIj8/////////wESRAo3VFJBTlNBQ1RJT05fVk1fRVJST1JfSU5WQUxJRF9GRUVfUEFZRVJfU1RBVEVfUFJPT0ZfU0xPVBCJ/P////////8BEkEKNFRSQU5TQUNUSU9OX1ZNX0VSUk9SX0lOVkFMSURfRkVFX1BBWUVSX0FDQ09VTlRfT1dORVIQivz/////////ARJNCkBUUkFOU0FDVElPTl9WTV9FUlJPUl9JTlZBTElEX0ZFRV9QQVlFUl9TVEFURV9QUk9PRl9BQ0NPVU5UX09XTkVSEIv8/////////wESVApHVFJBTlNBQ1RJT05fVk1fRVJST1JfSU5WQUxJRF9GRUVfUEFZRVJfU1RBVEVfUFJPT0ZfQUNDT1VOVF9NRVRBX0RBVEFfU1oQjPz/////////ARIrCh5UUkFOU0FDVElPTl9WTV9FUlJPUl9WTV9GQUlMRUQQgfr/////////ARI5CixUUkFOU0FDVElPTl9WTV9FUlJPUl9JTlZBTElEX1BST0dSQU1fQUNDT1VOVBCC+v////////8BEisKHlRSQU5TQUNUSU9OX1ZNX0VSUk9SX1ZNX1JFVkVSVBCD+v////////8BEi4KIVRSQU5TQUNUSU9OX1ZNX0VSUk9SX0NVX0VYSEFVU1RFRBCE+v////////8BEi4KIVRSQU5TQUNUSU9OX1ZNX0VSUk9SX1NVX0VYSEFVU1RFRBCF+v////////8BQr8BChBjb20udGhydS5jb3JlLnYxQhBUcmFuc2FjdGlvblByb3RvUAFaQGdpdGh1Yi5jb20vVW50by1MYWJzL3RocnUtbmV0L2dycGMvcGtnL3Byb3RvL3RocnUvY29yZS92MTtjb3JldjGiAgNUQ1iqAgxUaHJ1LkNvcmUuVjG6AgRUSFVDygIMVGhydVxDb3JlXFYx4gIYVGhydVxDb3JlXFYxXEdQQk1ldGFkYXRh6gIOVGhydTo6Q29yZTo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_api_field_behavior, file_thru_core_v1_types, file_thru_common_v1_primitives]);
35
43
  var TransactionExecutionResultSchema = /* @__PURE__ */ messageDesc(file_thru_core_v1_transaction, 1);
36
44
  var TransactionEventSchema = /* @__PURE__ */ messageDesc(file_thru_core_v1_transaction, 2);
45
+ var TransactionView = /* @__PURE__ */ ((TransactionView2) => {
46
+ TransactionView2[TransactionView2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
47
+ TransactionView2[TransactionView2["SIGNATURE_ONLY"] = 1] = "SIGNATURE_ONLY";
48
+ TransactionView2[TransactionView2["HEADER_ONLY"] = 2] = "HEADER_ONLY";
49
+ TransactionView2[TransactionView2["HEADER_AND_BODY"] = 3] = "HEADER_AND_BODY";
50
+ TransactionView2[TransactionView2["FULL"] = 4] = "FULL";
51
+ return TransactionView2;
52
+ })(TransactionView || {});
53
+ var TransactionVmError = /* @__PURE__ */ ((TransactionVmError2) => {
54
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_EXECUTE_SUCCESS"] = 0] = "TRANSACTION_VM_EXECUTE_SUCCESS";
55
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_INVALID_FORMAT"] = -255] = "TRANSACTION_VM_ERROR_INVALID_FORMAT";
56
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_INVALID_VERSION"] = -254] = "TRANSACTION_VM_ERROR_INVALID_VERSION";
57
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_INVALID_FLAGS"] = -253] = "TRANSACTION_VM_ERROR_INVALID_FLAGS";
58
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_INVALID_SIGNATURE"] = -252] = "TRANSACTION_VM_ERROR_INVALID_SIGNATURE";
59
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_DUPLICATE_ACCOUNT"] = -251] = "TRANSACTION_VM_ERROR_DUPLICATE_ACCOUNT";
60
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_UNSORTED_ACCOUNTS"] = -250] = "TRANSACTION_VM_ERROR_UNSORTED_ACCOUNTS";
61
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_UNSORTED_READWRITE_ACCOUNTS"] = -249] = "TRANSACTION_VM_ERROR_UNSORTED_READWRITE_ACCOUNTS";
62
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_UNSORTED_READONLY_ACCOUNTS"] = -248] = "TRANSACTION_VM_ERROR_UNSORTED_READONLY_ACCOUNTS";
63
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_ACCOUNT_COUNT_LIMIT_EXCEEDED"] = -247] = "TRANSACTION_VM_ERROR_ACCOUNT_COUNT_LIMIT_EXCEEDED";
64
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_NONCE_TOO_LOW"] = -511] = "TRANSACTION_VM_ERROR_NONCE_TOO_LOW";
65
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_NONCE_TOO_HIGH"] = -510] = "TRANSACTION_VM_ERROR_NONCE_TOO_HIGH";
66
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_INSUFFICIENT_FEE_PAYER_BALANCE"] = -509] = "TRANSACTION_VM_ERROR_INSUFFICIENT_FEE_PAYER_BALANCE";
67
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_FEE_PAYER_ACCOUNT_DOES_NOT_EXIST"] = -508] = "TRANSACTION_VM_ERROR_FEE_PAYER_ACCOUNT_DOES_NOT_EXIST";
68
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_NOT_LIVE_YET"] = -507] = "TRANSACTION_VM_ERROR_NOT_LIVE_YET";
69
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_EXPIRED"] = -506] = "TRANSACTION_VM_ERROR_EXPIRED";
70
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_STATE_PROOF"] = -505] = "TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_STATE_PROOF";
71
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_STATE_PROOF_TYPE"] = -504] = "TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_STATE_PROOF_TYPE";
72
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_STATE_PROOF_SLOT"] = -503] = "TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_STATE_PROOF_SLOT";
73
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_ACCOUNT_OWNER"] = -502] = "TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_ACCOUNT_OWNER";
74
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_STATE_PROOF_ACCOUNT_OWNER"] = -501] = "TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_STATE_PROOF_ACCOUNT_OWNER";
75
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_STATE_PROOF_ACCOUNT_META_DATA_SZ"] = -500] = "TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_STATE_PROOF_ACCOUNT_META_DATA_SZ";
76
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_VM_FAILED"] = -767] = "TRANSACTION_VM_ERROR_VM_FAILED";
77
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_INVALID_PROGRAM_ACCOUNT"] = -766] = "TRANSACTION_VM_ERROR_INVALID_PROGRAM_ACCOUNT";
78
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_VM_REVERT"] = -765] = "TRANSACTION_VM_ERROR_VM_REVERT";
79
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_CU_EXHAUSTED"] = -764] = "TRANSACTION_VM_ERROR_CU_EXHAUSTED";
80
+ TransactionVmError2[TransactionVmError2["TRANSACTION_VM_ERROR_SU_EXHAUSTED"] = -763] = "TRANSACTION_VM_ERROR_SU_EXHAUSTED";
81
+ return TransactionVmError2;
82
+ })(TransactionVmError || {});
37
83
 
38
84
  // thru-ts-client-sdk/wire-format.ts
39
85
  var SIGNATURE_SIZE = 64;
@@ -51,8 +97,147 @@ var TXN_FLAG_HAS_FEE_PAYER_PROOF = 1 << 0;
51
97
  var STATE_PROOF_TYPE_EXISTING = 0;
52
98
  var STATE_PROOF_TYPE_UPDATING = 1;
53
99
  var STATE_PROOF_TYPE_CREATION = 2;
100
+ var PUBKEY_LENGTH = 32;
101
+ var SIGNATURE_LENGTH = 64;
102
+ var TA_ADDRESS_LENGTH = 46;
103
+ var TS_SIGNATURE_LENGTH = 90;
104
+ function copyBytes(source) {
105
+ const bytes = new Uint8Array(source.length);
106
+ bytes.set(source);
107
+ return bytes;
108
+ }
109
+ function isTaAddress(value) {
110
+ return value.startsWith("ta") && value.length === TA_ADDRESS_LENGTH;
111
+ }
112
+ function isTsSignature(value) {
113
+ return value.startsWith("ts") && value.length === TS_SIGNATURE_LENGTH;
114
+ }
115
+ function ensureExactLength(bytes, expected, field) {
116
+ if (bytes.length !== expected) {
117
+ throw new Error(`${field} must contain ${expected} bytes`);
118
+ }
119
+ return copyBytes(bytes);
120
+ }
121
+ function decodeBase64String(value, message) {
122
+ try {
123
+ return decodeBase64(value);
124
+ } catch {
125
+ throw new Error(message);
126
+ }
127
+ }
128
+ function decodeHex(value, message) {
129
+ try {
130
+ return hexToBytes(value);
131
+ } catch {
132
+ throw new Error(message);
133
+ }
134
+ }
135
+ function pubkeyBytesFromInput(value, field = "pubkey") {
136
+ if (value instanceof Uint8Array) {
137
+ return ensureExactLength(value, PUBKEY_LENGTH, field);
138
+ }
139
+ if (typeof value === "string") {
140
+ if (isTaAddress(value)) {
141
+ return ensureExactLength(decodeAddress(value), PUBKEY_LENGTH, field);
142
+ }
143
+ if (isHexString(value)) {
144
+ return ensureExactLength(
145
+ decodeHex(value, `${field} hex string must decode to 32 bytes`),
146
+ PUBKEY_LENGTH,
147
+ field
148
+ );
149
+ }
150
+ return ensureExactLength(
151
+ decodeBase64String(value, `${field} must be a 32-byte value, ta-address, hex string, or base64 string`),
152
+ PUBKEY_LENGTH,
153
+ field
154
+ );
155
+ }
156
+ throw new Error(`${field} must be a 32-byte value, ta-address, hex string, or base64 string`);
157
+ }
158
+ function signatureBytesFromInput(value, field = "signature") {
159
+ if (value instanceof Uint8Array) {
160
+ return ensureExactLength(value, SIGNATURE_LENGTH, field);
161
+ }
162
+ if (typeof value === "string") {
163
+ if (isTsSignature(value)) {
164
+ return ensureExactLength(decodeSignature(value), SIGNATURE_LENGTH, field);
165
+ }
166
+ if (isHexString(value)) {
167
+ return ensureExactLength(
168
+ decodeHex(value, `${field} hex string must decode to 64 bytes`),
169
+ SIGNATURE_LENGTH,
170
+ field
171
+ );
172
+ }
173
+ return ensureExactLength(
174
+ decodeBase64String(
175
+ value,
176
+ `${field} must be provided as Uint8Array, ts-encoded string, hex string, or base64 string`
177
+ ),
178
+ SIGNATURE_LENGTH,
179
+ field
180
+ );
181
+ }
182
+ throw new Error(`${field} must be provided as Uint8Array, ts-encoded string, hex string, or base64 string`);
183
+ }
184
+ function taAddressStringFromInput(value, field = "taPubkey") {
185
+ if (typeof value === "string") {
186
+ if (!isTaAddress(value)) {
187
+ throw new Error(`${field} must be a ta-encoded address`);
188
+ }
189
+ return value;
190
+ }
191
+ if (value instanceof Uint8Array) {
192
+ return encodeAddress(ensureExactLength(value, PUBKEY_LENGTH, field));
193
+ }
194
+ throw new Error(`${field} must be provided as a ta-encoded string or 32-byte public key`);
195
+ }
196
+ function tsSignatureStringFromInput(value, field = "tsSignature") {
197
+ if (typeof value === "string") {
198
+ if (!isTsSignature(value)) {
199
+ throw new Error(`${field} must be a ts-encoded signature`);
200
+ }
201
+ return value;
202
+ }
203
+ if (value instanceof Uint8Array) {
204
+ return encodeSignature(ensureExactLength(value, SIGNATURE_LENGTH, field));
205
+ }
206
+ throw new Error(`${field} must be provided as a ts-encoded string or 64-byte signature`);
207
+ }
208
+ function toPubkeyProto(value, field = "pubkey") {
209
+ return create(PubkeySchema, { value: pubkeyBytesFromInput(value, field) });
210
+ }
211
+ function toSignatureProto(value, field = "signature") {
212
+ return create(SignatureSchema, { value: signatureBytesFromInput(value, field) });
213
+ }
214
+ function toTaPubkeyProto(value, field = "taPubkey") {
215
+ return create(TaPubkeySchema, { value: taAddressStringFromInput(value, field) });
216
+ }
217
+ function toTsSignatureProto(value, field = "tsSignature") {
218
+ return create(TsSignatureSchema, { value: tsSignatureStringFromInput(value, field) });
219
+ }
220
+ function protoPubkeyToBytes(pubkey) {
221
+ if (!pubkey?.value || pubkey.value.length !== PUBKEY_LENGTH) {
222
+ return new Uint8Array(PUBKEY_LENGTH);
223
+ }
224
+ return copyBytes(pubkey.value);
225
+ }
226
+ function protoSignatureToBytes(signature) {
227
+ if (!signature?.value || signature.value.length !== SIGNATURE_LENGTH) {
228
+ return void 0;
229
+ }
230
+ return copyBytes(signature.value);
231
+ }
232
+ function protoTaPubkeyToString(value) {
233
+ return value?.value;
234
+ }
235
+ function protoTsSignatureToString(value) {
236
+ return value?.value;
237
+ }
238
+
239
+ // thru-ts-client-sdk/domain/transactions/utils.ts
54
240
  var ACCOUNT_LIMIT = 1024;
55
- var ACCOUNT_ADDRESS_LENGTH = 32;
56
241
  function normalizeAccountList(accounts) {
57
242
  if (accounts.length === 0) {
58
243
  return [];
@@ -93,59 +278,10 @@ function toHex(bytes) {
93
278
  return result;
94
279
  }
95
280
  function resolveProgramIdentifier(identifier) {
96
- if (identifier instanceof Uint8Array) {
97
- if (identifier.length !== 32) {
98
- throw new Error("Program public key must contain 32 bytes");
99
- }
100
- return copyAccount(identifier);
101
- }
102
- if (typeof identifier === "string") {
103
- const parsed = parseProgramString(identifier);
104
- if (parsed) {
105
- return parsed;
106
- }
107
- }
108
- throw new Error("Unsupported program identifier format");
109
- }
110
- function parseProgramString(value) {
111
- if (value.startsWith("ta") && value.length === 46) {
112
- return copyAccount(decodeAddress(value));
113
- }
114
- if (isHexString(value)) {
115
- const bytes = hexToBytes(value);
116
- if (bytes.length !== 32) {
117
- throw new Error("Hex-encoded program key must contain 32 bytes");
118
- }
119
- return bytes;
120
- }
121
- return void 0;
122
- }
123
- function copyAccount(value) {
124
- if (value.length !== ACCOUNT_ADDRESS_LENGTH) {
125
- throw new Error("Program public key must contain 32 bytes");
126
- }
127
- return new Uint8Array(value);
281
+ return pubkeyBytesFromInput(identifier, "program");
128
282
  }
129
283
  function parseAccountIdentifier(value, field) {
130
- if (value instanceof Uint8Array) {
131
- if (value.length !== ACCOUNT_ADDRESS_LENGTH) {
132
- throw new Error(`${field} must contain 32 bytes`);
133
- }
134
- return new Uint8Array(value);
135
- }
136
- if (typeof value === "string") {
137
- if (value.startsWith("ta") && value.length === 46) {
138
- return copyAccount(decodeAddress(value));
139
- }
140
- if (isHexString(value)) {
141
- const bytes = hexToBytes(value);
142
- if (bytes.length !== ACCOUNT_ADDRESS_LENGTH) {
143
- throw new Error(`${field} hex string must decode to 32 bytes`);
144
- }
145
- return bytes;
146
- }
147
- }
148
- throw new Error(`${field} must be a 32-byte value, ta-address, or 64-character hex string`);
284
+ return pubkeyBytesFromInput(value, field);
149
285
  }
150
286
  function parseInstructionData(value) {
151
287
  if (value === void 0) {
@@ -165,10 +301,7 @@ function parseInstructionData(value) {
165
301
  throw new Error("Instruction data must be provided as hex string or Uint8Array");
166
302
  }
167
303
  function protoPubkeyToAccountAddress(pubkey) {
168
- if (!pubkey?.value || pubkey.value.length !== ACCOUNT_ADDRESS_LENGTH) {
169
- return new Uint8Array(ACCOUNT_ADDRESS_LENGTH);
170
- }
171
- return new Uint8Array(pubkey.value);
304
+ return protoPubkeyToBytes(pubkey);
172
305
  }
173
306
 
174
307
  // thru-ts-client-sdk/domain/transactions/Transaction.ts
@@ -203,6 +336,7 @@ var Transaction = class _Transaction {
203
336
  if (this.instructionData && this.instructionData.length > MAX_INSTRUCTION_DATA_LENGTH) {
204
337
  throw new Error(`Instruction data exceeds maximum length (${MAX_INSTRUCTION_DATA_LENGTH} bytes)`);
205
338
  }
339
+ this.instructionDataSize = params.instructionDataSize;
206
340
  this.feePayerStateProof = params.proofs?.feePayerStateProof ? new Uint8Array(params.proofs.feePayerStateProof) : void 0;
207
341
  this.feePayerAccountMetaRaw = params.proofs?.feePayerAccountMetaRaw ? new Uint8Array(params.proofs.feePayerAccountMetaRaw) : void 0;
208
342
  }
@@ -321,6 +455,7 @@ var Transaction = class _Transaction {
321
455
  readOnlyAccounts
322
456
  },
323
457
  instructionData,
458
+ instructionDataSize,
324
459
  proofs: feePayerStateProof || feePayerAccountMetaRaw ? {
325
460
  feePayerStateProof,
326
461
  feePayerAccountMetaRaw
@@ -399,6 +534,7 @@ var Transaction = class _Transaction {
399
534
  readOnlyAccounts: parsed.readOnlyAccounts
400
535
  },
401
536
  instructionData: parsed.instructionData,
537
+ instructionDataSize: header.instructionDataSize,
402
538
  proofs: parsed.feePayerStateProof || parsed.feePayerAccountMetaRaw ? {
403
539
  feePayerStateProof: parsed.feePayerStateProof,
404
540
  feePayerAccountMetaRaw: parsed.feePayerAccountMetaRaw
@@ -717,15 +853,6 @@ var TransactionBuilder = class {
717
853
  proofs: params.proofs
718
854
  });
719
855
  }
720
- async buildAndSign(params) {
721
- if (!params.feePayer.privateKey) {
722
- throw new Error("Fee payer private key is required to sign the transaction");
723
- }
724
- const transaction = this.build(params);
725
- const signature = await transaction.sign(params.feePayer.privateKey);
726
- const rawTransaction = transaction.toWire();
727
- return { transaction, signature, rawTransaction };
728
- }
729
856
  normalizeAccounts(accounts) {
730
857
  if (!accounts) {
731
858
  return void 0;
@@ -735,6 +862,15 @@ var TransactionBuilder = class {
735
862
  readOnlyAccounts: normalizeAccountList(accounts.readOnlyAccounts ?? [])
736
863
  };
737
864
  }
865
+ async buildAndSign(params) {
866
+ if (!params.feePayer.privateKey) {
867
+ throw new Error("Fee payer private key is required to sign the transaction");
868
+ }
869
+ const transaction = this.build(params);
870
+ const signature = await transaction.sign(params.feePayer.privateKey);
871
+ const rawTransaction = transaction.toWire();
872
+ return { transaction, signature, rawTransaction };
873
+ }
738
874
  };
739
875
 
740
876
  // thru-ts-client-sdk/utils/utils.ts
@@ -774,7 +910,7 @@ function consensusStatusToString(status) {
774
910
  // thru-ts-client-sdk/domain/transactions/TransactionStatusSnapshot.ts
775
911
  var TransactionStatusSnapshot = class _TransactionStatusSnapshot {
776
912
  constructor(params) {
777
- this.signature = copyBytes(params.signature);
913
+ this.signature = copyBytes2(params.signature);
778
914
  this.statusCode = params.consensusStatus;
779
915
  this.status = params.consensusStatus != null ? consensusStatusToString(params.consensusStatus) : void 0;
780
916
  this.executionResult = params.executionResult;
@@ -790,11 +926,167 @@ var TransactionStatusSnapshot = class _TransactionStatusSnapshot {
790
926
  });
791
927
  }
792
928
  };
793
- function copyBytes(bytes) {
929
+ function copyBytes2(bytes) {
794
930
  const copy = new Uint8Array(bytes.length);
795
931
  copy.set(bytes);
796
932
  return copy;
797
933
  }
934
+ var file_thru_core_v1_account = /* @__PURE__ */ fileDesc("Chp0aHJ1L2NvcmUvdjEvYWNjb3VudC5wcm90bxIMdGhydS5jb3JlLnYxIsgBCgxBY2NvdW50RmxhZ3MSFwoKaXNfcHJvZ3JhbRgBIAEoCEID4EECEhoKDWlzX3ByaXZpbGVnZWQYAiABKAhCA+BBAhIeChFpc191bmNvbXByZXNzYWJsZRgDIAEoCEID4EECEhkKDGlzX2VwaGVtZXJhbBgEIAEoCEID4EECEhcKCmlzX2RlbGV0ZWQYBSABKAhCA+BBAhITCgZpc19uZXcYBiABKAhCA+BBAhIaCg1pc19jb21wcmVzc2VkGAcgASgIQgPgQQIi2gEKC0FjY291bnRNZXRhEhsKB3ZlcnNpb24YASABKA1CCuBBArpIBCoCKAESLgoFZmxhZ3MYAiABKAsyGi50aHJ1LmNvcmUudjEuQWNjb3VudEZsYWdzQgPgQQISFgoJZGF0YV9zaXplGAMgASgNQgPgQQISEAoDc2VxGAQgASgEQgPgQQISKgoFb3duZXIYBSABKAsyFi50aHJ1LmNvbW1vbi52MS5QdWJrZXlCA+BBAhIUCgdiYWxhbmNlGAYgASgEQgPgQQISEgoFbm9uY2UYByABKARCA+BBAiKvAQoLQWNjb3VudERhdGESIAoEZGF0YRgBIAEoDEIN4EEBukgHegUYgICACEgAiAEBEhwKCmNvbXByZXNzZWQYAiABKAhCA+BBAUgBiAEBEi4KFWNvbXByZXNzaW9uX2FsZ29yaXRobRgDIAEoCUIK4EEBukgEcgIYQEgCiAEBQgcKBV9kYXRhQg0KC19jb21wcmVzc2VkQhgKFl9jb21wcmVzc2lvbl9hbGdvcml0aG0iSQoJRGF0YVNsaWNlEh0KBm9mZnNldBgBIAEoDUIN4EECukgHMgUYgICACBIdCgZsZW5ndGgYAiABKA1CDeBBArpIBzIFGICAgAgi2wEKC0FjY291bnRQYWdlEhUKCHBhZ2VfaWR4GAEgASgNQgPgQQISHgoJcGFnZV9zaXplGAIgASgNQgvgQQK6SAUqAxiAIBIeCglwYWdlX2RhdGEYAyABKAxCC+BBArpIBXoDGIAgEhwKCmNvbXByZXNzZWQYBCABKAhCA+BBAUgAiAEBEi4KFWNvbXByZXNzaW9uX2FsZ29yaXRobRgFIAEoCUIK4EEBukgEcgIYQEgBiAEBQg0KC19jb21wcmVzc2VkQhgKFl9jb21wcmVzc2lvbl9hbGdvcml0aG0ijAEKFlZlcnNpb25Db250ZXh0TWV0YWRhdGESFgoEc2xvdBgBIAEoBEID4EEBSACIAQESPQoPYmxvY2tfdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EEBSAGIAQFCBwoFX3Nsb3RCEgoQX2Jsb2NrX3RpbWVzdGFtcCLmAgoHQWNjb3VudBIsCgdhZGRyZXNzGAEgASgLMhYudGhydS5jb21tb24udjEuUHVia2V5QgPgQQISMQoEbWV0YRgCIAEoCzIZLnRocnUuY29yZS52MS5BY2NvdW50TWV0YUID4EEBSACIAQESMQoEZGF0YRgDIAEoCzIZLnRocnUuY29yZS52MS5BY2NvdW50RGF0YUID4EEBSAGIAQESRwoPdmVyc2lvbl9jb250ZXh0GAQgASgLMiQudGhydS5jb3JlLnYxLlZlcnNpb25Db250ZXh0TWV0YWRhdGFCA+BBAUgCiAEBEkMKEGNvbnNlbnN1c19zdGF0dXMYBSABKA4yHy50aHJ1LmNvbW1vbi52MS5Db25zZW5zdXNTdGF0dXNCA+BBAUgDiAEBQgcKBV9tZXRhQgcKBV9kYXRhQhIKEF92ZXJzaW9uX2NvbnRleHRCEwoRX2NvbnNlbnN1c19zdGF0dXMi6QEKClJhd0FjY291bnQSLAoHYWRkcmVzcxgBIAEoCzIWLnRocnUuY29tbW9uLnYxLlB1YmtleUID4EECEh0KCHJhd19tZXRhGAIgASgMQgvgQQK6SAV6AxiAIBIkCghyYXdfZGF0YRgDIAEoDEIN4EEBukgHegUYgICACEgAiAEBEkcKD3ZlcnNpb25fY29udGV4dBgEIAEoCzIkLnRocnUuY29yZS52MS5WZXJzaW9uQ29udGV4dE1ldGFkYXRhQgPgQQFIAYgBAUILCglfcmF3X2RhdGFCEgoQX3ZlcnNpb25fY29udGV4dCqYAQoLQWNjb3VudFZpZXcSHAoYQUNDT1VOVF9WSUVXX1VOU1BFQ0lGSUVEEAASHAoYQUNDT1VOVF9WSUVXX1BVQktFWV9PTkxZEAESGgoWQUNDT1VOVF9WSUVXX01FVEFfT05MWRACEhoKFkFDQ09VTlRfVklFV19EQVRBX09OTFkQAxIVChFBQ0NPVU5UX1ZJRVdfRlVMTBAEQrsBChBjb20udGhydS5jb3JlLnYxQgxBY2NvdW50UHJvdG9QAVpAZ2l0aHViLmNvbS9VbnRvLUxhYnMvdGhydS1uZXQvZ3JwYy9wa2cvcHJvdG8vdGhydS9jb3JlL3YxO2NvcmV2MaICA1RDWKoCDFRocnUuQ29yZS5WMboCBFRIVUPKAgxUaHJ1XENvcmVcVjHiAhhUaHJ1XENvcmVcVjFcR1BCTWV0YWRhdGHqAg5UaHJ1OjpDb3JlOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_api_field_behavior, file_google_protobuf_timestamp, file_thru_common_v1_consensus, file_thru_common_v1_primitives, file_thru_core_v1_types]);
935
+ var AccountView = /* @__PURE__ */ ((AccountView2) => {
936
+ AccountView2[AccountView2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
937
+ AccountView2[AccountView2["PUBKEY_ONLY"] = 1] = "PUBKEY_ONLY";
938
+ AccountView2[AccountView2["META_ONLY"] = 2] = "META_ONLY";
939
+ AccountView2[AccountView2["DATA_ONLY"] = 3] = "DATA_ONLY";
940
+ AccountView2[AccountView2["FULL"] = 4] = "FULL";
941
+ return AccountView2;
942
+ })(AccountView || {});
943
+ var file_thru_core_v1_block = /* @__PURE__ */ fileDesc("Chh0aHJ1L2NvcmUvdjEvYmxvY2sucHJvdG8SDHRocnUuY29yZS52MSLkAwoLQmxvY2tIZWFkZXISEQoEc2xvdBgBIAEoBEID4EECEjAKCmJsb2NrX2hhc2gYAiABKAsyFy50aHJ1LmNvcmUudjEuQmxvY2tIYXNoQgPgQQISOAoQaGVhZGVyX3NpZ25hdHVyZRgDIAEoCzIZLnRocnUuY29tbW9uLnYxLlNpZ25hdHVyZUID4EECEhQKB3ZlcnNpb24YBCABKA1CA+BBAhItCghwcm9kdWNlchgFIAEoCzIWLnRocnUuY29tbW9uLnYxLlB1YmtleUID4EECEjkKEGV4cGlyeV90aW1lc3RhbXAYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgPgQQISFwoKc3RhcnRfc2xvdBgHIAEoBEID4EECEhkKDGV4cGlyeV9hZnRlchgIIAEoDUID4EECEhsKDm1heF9ibG9ja19zaXplGAkgASgNQgPgQQISHgoRbWF4X2NvbXB1dGVfdW5pdHMYCiABKARCA+BBAhIcCg9tYXhfc3RhdGVfdW5pdHMYCyABKA1CA+BBAhISCgVwcmljZRgMIAEoBEID4EECEjMKCmJsb2NrX3RpbWUYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgPgQQIivAEKC0Jsb2NrRm9vdGVyEjEKCXNpZ25hdHVyZRgBIAEoCzIZLnRocnUuY29tbW9uLnYxLlNpZ25hdHVyZUID4EECEjIKBnN0YXR1cxgCIAEoDjIdLnRocnUuY29yZS52MS5FeGVjdXRpb25TdGF0dXNCA+BBAhIjChZjb25zdW1lZF9jb21wdXRlX3VuaXRzGAMgASgEQgPgQQISIQoUY29uc3VtZWRfc3RhdGVfdW5pdHMYBCABKA1CA+BBAiL8AQoFQmxvY2sSLgoGaGVhZGVyGAEgASgLMhkudGhydS5jb3JlLnYxLkJsb2NrSGVhZGVyQgPgQQISMwoGZm9vdGVyGAIgASgLMhkudGhydS5jb3JlLnYxLkJsb2NrRm9vdGVyQgPgQQFIAIgBARIgCgRib2R5GAMgASgMQg3gQQG6SAd6BRiAgIAQSAGIAQESQwoQY29uc2Vuc3VzX3N0YXR1cxgEIAEoDjIfLnRocnUuY29tbW9uLnYxLkNvbnNlbnN1c1N0YXR1c0ID4EEBSAKIAQFCCQoHX2Zvb3RlckIHCgVfYm9keUITChFfY29uc2Vuc3VzX3N0YXR1cyI/CghSYXdCbG9jaxIRCgRzbG90GAEgASgEQgPgQQISIAoJcmF3X2Jsb2NrGAIgASgMQg3gQQK6SAd6BRiAgIAQKpQBCglCbG9ja1ZpZXcSGgoWQkxPQ0tfVklFV19VTlNQRUNJRklFRBAAEhoKFkJMT0NLX1ZJRVdfSEVBREVSX09OTFkQARIgChxCTE9DS19WSUVXX0hFQURFUl9BTkRfRk9PVEVSEAISGAoUQkxPQ0tfVklFV19CT0RZX09OTFkQAxITCg9CTE9DS19WSUVXX0ZVTEwQBCqNAQoPRXhlY3V0aW9uU3RhdHVzEiAKHEVYRUNVVElPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIcChhFWEVDVVRJT05fU1RBVFVTX1BFTkRJTkcQARIdChlFWEVDVVRJT05fU1RBVFVTX0VYRUNVVEVEEAISGwoXRVhFQ1VUSU9OX1NUQVRVU19GQUlMRUQQA0K5AQoQY29tLnRocnUuY29yZS52MUIKQmxvY2tQcm90b1ABWkBnaXRodWIuY29tL1VudG8tTGFicy90aHJ1LW5ldC9ncnBjL3BrZy9wcm90by90aHJ1L2NvcmUvdjE7Y29yZXYxogIDVENYqgIMVGhydS5Db3JlLlYxugIEVEhVQ8oCDFRocnVcQ29yZVxWMeICGFRocnVcQ29yZVxWMVxHUEJNZXRhZGF0YeoCDlRocnU6OkNvcmU6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_google_api_field_behavior, file_google_protobuf_timestamp, file_thru_common_v1_primitives, file_thru_common_v1_consensus, file_thru_core_v1_types]);
944
+ var BlockView = /* @__PURE__ */ ((BlockView2) => {
945
+ BlockView2[BlockView2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
946
+ BlockView2[BlockView2["HEADER_ONLY"] = 1] = "HEADER_ONLY";
947
+ BlockView2[BlockView2["HEADER_AND_FOOTER"] = 2] = "HEADER_AND_FOOTER";
948
+ BlockView2[BlockView2["BODY_ONLY"] = 3] = "BODY_ONLY";
949
+ BlockView2[BlockView2["FULL"] = 4] = "FULL";
950
+ return BlockView2;
951
+ })(BlockView || {});
952
+ var ExecutionStatus = /* @__PURE__ */ ((ExecutionStatus2) => {
953
+ ExecutionStatus2[ExecutionStatus2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
954
+ ExecutionStatus2[ExecutionStatus2["PENDING"] = 1] = "PENDING";
955
+ ExecutionStatus2[ExecutionStatus2["EXECUTED"] = 2] = "EXECUTED";
956
+ ExecutionStatus2[ExecutionStatus2["FAILED"] = 3] = "FAILED";
957
+ return ExecutionStatus2;
958
+ })(ExecutionStatus || {});
959
+ var file_thru_common_v1_filters = /* @__PURE__ */ fileDesc("Chx0aHJ1L2NvbW1vbi92MS9maWx0ZXJzLnByb3RvEg50aHJ1LmNvbW1vbi52MSLHAQoGRmlsdGVyEiQKCmV4cHJlc3Npb24YASABKAlCC+BBAbpIBXIDGIAgSACIAQESNwoGcGFyYW1zGAIgAygLMiIudGhydS5jb21tb24udjEuRmlsdGVyLlBhcmFtc0VudHJ5QgPgQQEaTwoLUGFyYW1zRW50cnkSCwoDa2V5GAEgASgJEi8KBXZhbHVlGAIgASgLMiAudGhydS5jb21tb24udjEuRmlsdGVyUGFyYW1WYWx1ZToCOAFCDQoLX2V4cHJlc3Npb24iqgMKEEZpbHRlclBhcmFtVmFsdWUSGwoMc3RyaW5nX3ZhbHVlGAEgASgJQgPgQQFIABIaCgtieXRlc192YWx1ZRgCIAEoDEID4EEBSAASGQoKYm9vbF92YWx1ZRgDIAEoCEID4EEBSAASGAoJaW50X3ZhbHVlGAQgASgSQgPgQQFIABIZCgp1aW50X3ZhbHVlGAUgASgEQgPgQQFIABIbCgxkb3VibGVfdmFsdWUYBiABKAFCA+BBAUgAEjMKDHB1YmtleV92YWx1ZRgHIAEoCzIWLnRocnUuY29tbW9uLnYxLlB1YmtleUID4EEBSAASOQoPc2lnbmF0dXJlX3ZhbHVlGAggASgLMhkudGhydS5jb21tb24udjEuU2lnbmF0dXJlQgPgQQFIABI4Cg90YV9wdWJrZXlfdmFsdWUYCSABKAsyGC50aHJ1LmNvbW1vbi52MS5UYVB1YmtleUID4EEBSAASPgoSdHNfc2lnbmF0dXJlX3ZhbHVlGAogASgLMhsudGhydS5jb21tb24udjEuVHNTaWduYXR1cmVCA+BBAUgAQgYKBGtpbmQioQEKE0NlbEZpbHRlclZhbGlkYXRpb24SJwoRYWxsb3dlZF9mdW5jdGlvbnMYASADKAlCDOBBAbpIBpIBAxCAARIkCg5hbGxvd2VkX2ZpZWxkcxgCIAMoCUIM4EEBukgGkgEDEIACEigKDm1heF9jb21wbGV4aXR5GAMgASgNQgvgQQG6SAUqAxjoB0gAiAEBQhEKD19tYXhfY29tcGxleGl0eULIAQoSY29tLnRocnUuY29tbW9uLnYxQgxGaWx0ZXJzUHJvdG9QAVpEZ2l0aHViLmNvbS9VbnRvLUxhYnMvdGhydS1uZXQvZ3JwYy9wa2cvcHJvdG8vdGhydS9jb21tb24vdjE7Y29tbW9udjGiAgNUQ1iqAg5UaHJ1LkNvbW1vbi5WMboCA1RIVcoCDlRocnVcQ29tbW9uXFYx4gIaVGhydVxDb21tb25cVjFcR1BCTWV0YWRhdGHqAhBUaHJ1OjpDb21tb246OlYxYgZwcm90bzM", [file_buf_validate_validate, file_google_api_field_behavior, file_thru_common_v1_primitives]);
960
+ var FilterSchema = /* @__PURE__ */ messageDesc(file_thru_common_v1_filters, 0);
961
+ var FilterParamValueSchema = /* @__PURE__ */ messageDesc(file_thru_common_v1_filters, 1);
962
+ var DEFAULT_HOST = "https://grpc-web.alphanet.thruput.org";
963
+ var DEFAULT_ACCOUNT_VIEW = 4 /* FULL */;
964
+ var DEFAULT_BLOCK_VIEW = 4 /* FULL */;
965
+ var DEFAULT_TRANSACTION_VIEW = 4 /* FULL */;
966
+ var DEFAULT_MIN_CONSENSUS = 0 /* UNSPECIFIED */;
967
+ var DEFAULT_VERSION_CONTEXT = create(VersionContextSchema, {
968
+ version: {
969
+ case: "current",
970
+ value: create(CurrentVersionSchema, {})
971
+ }
972
+ });
973
+ var DEFAULT_FEE = 1n;
974
+ var DEFAULT_COMPUTE_UNITS = 3e8;
975
+ var DEFAULT_STATE_UNITS = 1e4;
976
+ var DEFAULT_MEMORY_UNITS = 1e4;
977
+ var DEFAULT_EXPIRY_AFTER = 100;
978
+ var file_google_api_http = /* @__PURE__ */ fileDesc("ChVnb29nbGUvYXBpL2h0dHAucHJvdG8SCmdvb2dsZS5hcGkiVAoESHR0cBIjCgVydWxlcxgBIAMoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGUSJwofZnVsbHlfZGVjb2RlX3Jlc2VydmVkX2V4cGFuc2lvbhgCIAEoCCKBAgoISHR0cFJ1bGUSEAoIc2VsZWN0b3IYASABKAkSDQoDZ2V0GAIgASgJSAASDQoDcHV0GAMgASgJSAASDgoEcG9zdBgEIAEoCUgAEhAKBmRlbGV0ZRgFIAEoCUgAEg8KBXBhdGNoGAYgASgJSAASLwoGY3VzdG9tGAggASgLMh0uZ29vZ2xlLmFwaS5DdXN0b21IdHRwUGF0dGVybkgAEgwKBGJvZHkYByABKAkSFQoNcmVzcG9uc2VfYm9keRgMIAEoCRIxChNhZGRpdGlvbmFsX2JpbmRpbmdzGAsgAygLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZUIJCgdwYXR0ZXJuIi8KEUN1c3RvbUh0dHBQYXR0ZXJuEgwKBGtpbmQYASABKAkSDAoEcGF0aBgCIAEoCUKnAQoOY29tLmdvb2dsZS5hcGlCCUh0dHBQcm90b1ABWkFnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2FwaS9hbm5vdGF0aW9uczthbm5vdGF0aW9uc6ICA0dBWKoCCkdvb2dsZS5BcGnKAgpHb29nbGVcQXBp4gIWR29vZ2xlXEFwaVxHUEJNZXRhZGF0YeoCC0dvb2dsZTo6QXBpYgZwcm90bzM");
979
+ var file_google_api_annotations = /* @__PURE__ */ fileDesc("Chxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvEgpnb29nbGUuYXBpOksKBGh0dHASHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxiwyrwiIAEoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGVSBGh0dHBCrgEKDmNvbS5nb29nbGUuYXBpQhBBbm5vdGF0aW9uc1Byb3RvUAFaQWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYXBpL2Fubm90YXRpb25zO2Fubm90YXRpb25zogIDR0FYqgIKR29vZ2xlLkFwacoCCkdvb2dsZVxBcGniAhZHb29nbGVcQXBpXEdQQk1ldGFkYXRh6gILR29vZ2xlOjpBcGliBnByb3RvMw", [file_google_api_http, file_google_protobuf_descriptor]);
980
+ var file_google_api_launch_stage = /* @__PURE__ */ fileDesc("Ch1nb29nbGUvYXBpL2xhdW5jaF9zdGFnZS5wcm90bxIKZ29vZ2xlLmFwaSqMAQoLTGF1bmNoU3RhZ2USHAoYTEFVTkNIX1NUQUdFX1VOU1BFQ0lGSUVEEAASEQoNVU5JTVBMRU1FTlRFRBAGEg0KCVBSRUxBVU5DSBAHEhAKDEVBUkxZX0FDQ0VTUxABEgkKBUFMUEhBEAISCAoEQkVUQRADEgYKAkdBEAQSDgoKREVQUkVDQVRFRBAFQpoBCg5jb20uZ29vZ2xlLmFwaUIQTGF1bmNoU3RhZ2VQcm90b1ABWi1nb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2FwaTthcGmiAgNHQViqAgpHb29nbGUuQXBpygIKR29vZ2xlXEFwaeICFkdvb2dsZVxBcGlcR1BCTWV0YWRhdGHqAgtHb29nbGU6OkFwaWIGcHJvdG8z");
981
+ var file_google_api_client = /* @__PURE__ */ fileDesc("Chdnb29nbGUvYXBpL2NsaWVudC5wcm90bxIKZ29vZ2xlLmFwaSK+AQoWQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncxIeChJyZWZlcmVuY2VfZG9jc191cmkYASABKAlCAhgBEjoKDGRlc3RpbmF0aW9ucxgCIAMoDjIkLmdvb2dsZS5hcGkuQ2xpZW50TGlicmFyeURlc3RpbmF0aW9uEkgKGnNlbGVjdGl2ZV9nYXBpY19nZW5lcmF0aW9uGAMgASgLMiQuZ29vZ2xlLmFwaS5TZWxlY3RpdmVHYXBpY0dlbmVyYXRpb24i+wMKFUNsaWVudExpYnJhcnlTZXR0aW5ncxIPCgd2ZXJzaW9uGAEgASgJEi0KDGxhdW5jaF9zdGFnZRgCIAEoDjIXLmdvb2dsZS5hcGkuTGF1bmNoU3RhZ2USGgoScmVzdF9udW1lcmljX2VudW1zGAMgASgIEi8KDWphdmFfc2V0dGluZ3MYFSABKAsyGC5nb29nbGUuYXBpLkphdmFTZXR0aW5ncxItCgxjcHBfc2V0dGluZ3MYFiABKAsyFy5nb29nbGUuYXBpLkNwcFNldHRpbmdzEi0KDHBocF9zZXR0aW5ncxgXIAEoCzIXLmdvb2dsZS5hcGkuUGhwU2V0dGluZ3MSMwoPcHl0aG9uX3NldHRpbmdzGBggASgLMhouZ29vZ2xlLmFwaS5QeXRob25TZXR0aW5ncxIvCg1ub2RlX3NldHRpbmdzGBkgASgLMhguZ29vZ2xlLmFwaS5Ob2RlU2V0dGluZ3MSMwoPZG90bmV0X3NldHRpbmdzGBogASgLMhouZ29vZ2xlLmFwaS5Eb3RuZXRTZXR0aW5ncxIvCg1ydWJ5X3NldHRpbmdzGBsgASgLMhguZ29vZ2xlLmFwaS5SdWJ5U2V0dGluZ3MSKwoLZ29fc2V0dGluZ3MYHCABKAsyFi5nb29nbGUuYXBpLkdvU2V0dGluZ3MiqAMKClB1Ymxpc2hpbmcSMwoPbWV0aG9kX3NldHRpbmdzGAIgAygLMhouZ29vZ2xlLmFwaS5NZXRob2RTZXR0aW5ncxIVCg1uZXdfaXNzdWVfdXJpGGUgASgJEhkKEWRvY3VtZW50YXRpb25fdXJpGGYgASgJEhYKDmFwaV9zaG9ydF9uYW1lGGcgASgJEhQKDGdpdGh1Yl9sYWJlbBhoIAEoCRIeChZjb2Rlb3duZXJfZ2l0aHViX3RlYW1zGGkgAygJEhYKDmRvY190YWdfcHJlZml4GGogASgJEjsKDG9yZ2FuaXphdGlvbhhrIAEoDjIlLmdvb2dsZS5hcGkuQ2xpZW50TGlicmFyeU9yZ2FuaXphdGlvbhI7ChBsaWJyYXJ5X3NldHRpbmdzGG0gAygLMiEuZ29vZ2xlLmFwaS5DbGllbnRMaWJyYXJ5U2V0dGluZ3MSKQohcHJvdG9fcmVmZXJlbmNlX2RvY3VtZW50YXRpb25fdXJpGG4gASgJEigKIHJlc3RfcmVmZXJlbmNlX2RvY3VtZW50YXRpb25fdXJpGG8gASgJIuMBCgxKYXZhU2V0dGluZ3MSFwoPbGlicmFyeV9wYWNrYWdlGAEgASgJEkwKE3NlcnZpY2VfY2xhc3NfbmFtZXMYAiADKAsyLy5nb29nbGUuYXBpLkphdmFTZXR0aW5ncy5TZXJ2aWNlQ2xhc3NOYW1lc0VudHJ5EjIKBmNvbW1vbhgDIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncxo4ChZTZXJ2aWNlQ2xhc3NOYW1lc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiQQoLQ3BwU2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzIkEKC1BocFNldHRpbmdzEjIKBmNvbW1vbhgBIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncyKbAgoOUHl0aG9uU2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzEk4KFWV4cGVyaW1lbnRhbF9mZWF0dXJlcxgCIAEoCzIvLmdvb2dsZS5hcGkuUHl0aG9uU2V0dGluZ3MuRXhwZXJpbWVudGFsRmVhdHVyZXMahAEKFEV4cGVyaW1lbnRhbEZlYXR1cmVzEh0KFXJlc3RfYXN5bmNfaW9fZW5hYmxlZBgBIAEoCBInCh9wcm90b2J1Zl9weXRob25pY190eXBlc19lbmFibGVkGAIgASgIEiQKHHVudmVyc2lvbmVkX3BhY2thZ2VfZGlzYWJsZWQYAyABKAgiQgoMTm9kZVNldHRpbmdzEjIKBmNvbW1vbhgBIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncyKqAwoORG90bmV0U2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzEkkKEHJlbmFtZWRfc2VydmljZXMYAiADKAsyLy5nb29nbGUuYXBpLkRvdG5ldFNldHRpbmdzLlJlbmFtZWRTZXJ2aWNlc0VudHJ5EksKEXJlbmFtZWRfcmVzb3VyY2VzGAMgAygLMjAuZ29vZ2xlLmFwaS5Eb3RuZXRTZXR0aW5ncy5SZW5hbWVkUmVzb3VyY2VzRW50cnkSGQoRaWdub3JlZF9yZXNvdXJjZXMYBCADKAkSIAoYZm9yY2VkX25hbWVzcGFjZV9hbGlhc2VzGAUgAygJEh4KFmhhbmR3cml0dGVuX3NpZ25hdHVyZXMYBiADKAkaNgoUUmVuYW1lZFNlcnZpY2VzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo3ChVSZW5hbWVkUmVzb3VyY2VzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJCCgxSdWJ5U2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzIr8BCgpHb1NldHRpbmdzEjIKBmNvbW1vbhgBIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncxJFChByZW5hbWVkX3NlcnZpY2VzGAIgAygLMisuZ29vZ2xlLmFwaS5Hb1NldHRpbmdzLlJlbmFtZWRTZXJ2aWNlc0VudHJ5GjYKFFJlbmFtZWRTZXJ2aWNlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEizwIKDk1ldGhvZFNldHRpbmdzEhAKCHNlbGVjdG9yGAEgASgJEjwKDGxvbmdfcnVubmluZxgCIAEoCzImLmdvb2dsZS5hcGkuTWV0aG9kU2V0dGluZ3MuTG9uZ1J1bm5pbmcSHQoVYXV0b19wb3B1bGF0ZWRfZmllbGRzGAMgAygJGs0BCgtMb25nUnVubmluZxI1ChJpbml0aWFsX3BvbGxfZGVsYXkYASABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SHQoVcG9sbF9kZWxheV9tdWx0aXBsaWVyGAIgASgCEjEKDm1heF9wb2xsX2RlbGF5GAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEjUKEnRvdGFsX3BvbGxfdGltZW91dBgEIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbiJRChhTZWxlY3RpdmVHYXBpY0dlbmVyYXRpb24SDwoHbWV0aG9kcxgBIAMoCRIkChxnZW5lcmF0ZV9vbWl0dGVkX2FzX2ludGVybmFsGAIgASgIKqMBChlDbGllbnRMaWJyYXJ5T3JnYW5pemF0aW9uEisKJ0NMSUVOVF9MSUJSQVJZX09SR0FOSVpBVElPTl9VTlNQRUNJRklFRBAAEgkKBUNMT1VEEAESBwoDQURTEAISCgoGUEhPVE9TEAMSDwoLU1RSRUVUX1ZJRVcQBBIMCghTSE9QUElORxAFEgcKA0dFTxAGEhEKDUdFTkVSQVRJVkVfQUkQBypnChhDbGllbnRMaWJyYXJ5RGVzdGluYXRpb24SKgomQ0xJRU5UX0xJQlJBUllfREVTVElOQVRJT05fVU5TUEVDSUZJRUQQABIKCgZHSVRIVUIQChITCg9QQUNLQUdFX01BTkFHRVIQFDpKChBtZXRob2Rfc2lnbmF0dXJlEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYmwggAygJUg9tZXRob2RTaWduYXR1cmU6QwoMZGVmYXVsdF9ob3N0Eh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGJkIIAEoCVILZGVmYXVsdEhvc3Q6QwoMb2F1dGhfc2NvcGVzEh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGJoIIAEoCVILb2F1dGhTY29wZXM6RAoLYXBpX3ZlcnNpb24SHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMYwbqr+gEgASgJUgphcGlWZXJzaW9uQqkBCg5jb20uZ29vZ2xlLmFwaUILQ2xpZW50UHJvdG9QAVpBZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkvYW5ub3RhdGlvbnM7YW5ub3RhdGlvbnOiAgNHQViqAgpHb29nbGUuQXBpygIKR29vZ2xlXEFwaeICFkdvb2dsZVxBcGlcR1BCTWV0YWRhdGHqAgtHb29nbGU6OkFwaWIGcHJvdG8z", [file_google_api_launch_stage, file_google_protobuf_descriptor, file_google_protobuf_duration]);
982
+ var file_thru_services_v1_command_service = /* @__PURE__ */ fileDesc("CiZ0aHJ1L3NlcnZpY2VzL3YxL2NvbW1hbmRfc2VydmljZS5wcm90bxIQdGhydS5zZXJ2aWNlcy52MSI2ChZTZW5kVHJhbnNhY3Rpb25SZXF1ZXN0EhwKD3Jhd190cmFuc2FjdGlvbhgBIAEoDEID4EECIkwKF1NlbmRUcmFuc2FjdGlvblJlc3BvbnNlEjEKCXNpZ25hdHVyZRgBIAEoCzIZLnRocnUuY29tbW9uLnYxLlNpZ25hdHVyZUID4EECIlIKHEJhdGNoU2VuZFRyYW5zYWN0aW9uc1JlcXVlc3QSHQoQcmF3X3RyYW5zYWN0aW9ucxgBIAMoDEID4EECEhMKC251bV9yZXRyaWVzGAIgASgFImoKHUJhdGNoU2VuZFRyYW5zYWN0aW9uc1Jlc3BvbnNlEjIKCnNpZ25hdHVyZXMYASADKAsyGS50aHJ1LmNvbW1vbi52MS5TaWduYXR1cmVCA+BBAhIVCghhY2NlcHRlZBgCIAMoCEID4EECIl4KFlNlbmRBbmRUcmFja1R4blJlcXVlc3QSGAoLdHJhbnNhY3Rpb24YASABKAxCA+BBAhIqCgd0aW1lb3V0GAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIv8BChdTZW5kQW5kVHJhY2tUeG5SZXNwb25zZRI3CgZzdGF0dXMYASABKA4yIi50aHJ1LnNlcnZpY2VzLnYxLlN1Ym1pc3Npb25TdGF0dXNCA+BBAhIsCglzaWduYXR1cmUYAiABKAsyGS50aHJ1LmNvbW1vbi52MS5TaWduYXR1cmUSOQoQY29uc2Vuc3VzX3N0YXR1cxgDIAEoDjIfLnRocnUuY29tbW9uLnYxLkNvbnNlbnN1c1N0YXR1cxJCChBleGVjdXRpb25fcmVzdWx0GAQgASgLMigudGhydS5jb3JlLnYxLlRyYW5zYWN0aW9uRXhlY3V0aW9uUmVzdWx0KnUKEFN1Ym1pc3Npb25TdGF0dXMSIQodU1VCTUlTU0lPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIeChpTVUJNSVNTSU9OX1NUQVRVU19SRUNFSVZFRBABEh4KGlNVQk1JU1NJT05fU1RBVFVTX0FDQ0VQVEVEEAIy1wMKDkNvbW1hbmRTZXJ2aWNlEoMBCg9TZW5kVHJhbnNhY3Rpb24SKC50aHJ1LnNlcnZpY2VzLnYxLlNlbmRUcmFuc2FjdGlvblJlcXVlc3QaKS50aHJ1LnNlcnZpY2VzLnYxLlNlbmRUcmFuc2FjdGlvblJlc3BvbnNlIhuC0+STAhU6ASoiEC92MS90cmFuc2FjdGlvbnMSmwEKFUJhdGNoU2VuZFRyYW5zYWN0aW9ucxIuLnRocnUuc2VydmljZXMudjEuQmF0Y2hTZW5kVHJhbnNhY3Rpb25zUmVxdWVzdBovLnRocnUuc2VydmljZXMudjEuQmF0Y2hTZW5kVHJhbnNhY3Rpb25zUmVzcG9uc2UiIYLT5JMCGzoBKiIWL3YxL3RyYW5zYWN0aW9ucy9iYXRjaBKLAQoPU2VuZEFuZFRyYWNrVHhuEigudGhydS5zZXJ2aWNlcy52MS5TZW5kQW5kVHJhY2tUeG5SZXF1ZXN0GikudGhydS5zZXJ2aWNlcy52MS5TZW5kQW5kVHJhY2tUeG5SZXNwb25zZSIhgtPkkwIbOgEqIhYvdjEvdHJhbnNhY3Rpb25zL3RyYWNrMAEaE8pBEGFwaS50aHJ1Lm5ldHdvcmtC3gEKFGNvbS50aHJ1LnNlcnZpY2VzLnYxQhNDb21tYW5kU2VydmljZVByb3RvUAFaSGdpdGh1Yi5jb20vVW50by1MYWJzL3RocnUtbmV0L2dycGMvcGtnL3Byb3RvL3RocnUvc2VydmljZXMvdjE7c2VydmljZXN2MaICA1RTWKoCEFRocnUuU2VydmljZXMuVjG6AgRUSFVTygIQVGhydVxTZXJ2aWNlc1xWMeICHFRocnVcU2VydmljZXNcVjFcR1BCTWV0YWRhdGHqAhJUaHJ1OjpTZXJ2aWNlczo6VjFiBnByb3RvMw", [file_google_api_annotations, file_google_api_client, file_thru_common_v1_primitives, file_thru_common_v1_consensus, file_google_api_field_behavior, file_thru_core_v1_transaction, file_thru_core_v1_types, file_google_protobuf_duration]);
983
+ var SendTransactionRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_command_service, 0);
984
+ var BatchSendTransactionsRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_command_service, 2);
985
+ var CommandService = /* @__PURE__ */ serviceDesc(file_thru_services_v1_command_service, 0);
986
+ var file_thru_common_v1_pagination = /* @__PURE__ */ fileDesc("Ch90aHJ1L2NvbW1vbi92MS9wYWdpbmF0aW9uLnByb3RvEg50aHJ1LmNvbW1vbi52MSKoAQoLUGFnZVJlcXVlc3QSJQoJcGFnZV9zaXplGAEgASgNQg3gQQG6SAcqBRjoBygBSACIAQESJAoKcGFnZV90b2tlbhgCIAEoCUIL4EEBukgFcgMYgARIAYgBARIiCghvcmRlcl9ieRgDIAEoCUIL4EEBukgFcgMYgAJIAogBAUIMCgpfcGFnZV9zaXplQg0KC19wYWdlX3Rva2VuQgsKCV9vcmRlcl9ieSJyCgxQYWdlUmVzcG9uc2USIQoPbmV4dF9wYWdlX3Rva2VuGAEgASgJQgPgQQFIAIgBARIcCgp0b3RhbF9zaXplGAIgASgEQgPgQQFIAYgBAUISChBfbmV4dF9wYWdlX3Rva2VuQg0KC190b3RhbF9zaXplQssBChJjb20udGhydS5jb21tb24udjFCD1BhZ2luYXRpb25Qcm90b1ABWkRnaXRodWIuY29tL1VudG8tTGFicy90aHJ1LW5ldC9ncnBjL3BrZy9wcm90by90aHJ1L2NvbW1vbi92MTtjb21tb252MaICA1RDWKoCDlRocnUuQ29tbW9uLlYxugIDVEhVygIOVGhydVxDb21tb25cVjHiAhpUaHJ1XENvbW1vblxWMVxHUEJNZXRhZGF0YeoCEFRocnU6OkNvbW1vbjo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_api_field_behavior]);
987
+ var PageRequestSchema = /* @__PURE__ */ messageDesc(file_thru_common_v1_pagination, 0);
988
+ var PageResponseSchema = /* @__PURE__ */ messageDesc(file_thru_common_v1_pagination, 1);
989
+ var file_thru_core_v1_state = /* @__PURE__ */ fileDesc("Chh0aHJ1L2NvcmUvdjEvc3RhdGUucHJvdG8SDHRocnUuY29yZS52MSKnAQoRU3RhdGVQcm9vZlJlcXVlc3QSLAoHYWRkcmVzcxgBIAEoCzIWLnRocnUuY29tbW9uLnYxLlB1YmtleUID4EECEjUKCnByb29mX3R5cGUYAiABKA4yHC50aHJ1LmNvcmUudjEuU3RhdGVQcm9vZlR5cGVCA+BBAhIdCgt0YXJnZXRfc2xvdBgDIAEoBEID4EEBSACIAQFCDgoMX3RhcmdldF9zbG90IjMKClN0YXRlUHJvb2YSEgoFcHJvb2YYASABKAxCA+BBAhIRCgRzbG90GAIgASgEQgPgQQIqjwEKDlN0YXRlUHJvb2ZUeXBlEiAKHFNUQVRFX1BST09GX1RZUEVfVU5TUEVDSUZJRUQQABIdChlTVEFURV9QUk9PRl9UWVBFX0NSRUFUSU5HEAESHQoZU1RBVEVfUFJPT0ZfVFlQRV9VUERBVElORxACEh0KGVNUQVRFX1BST09GX1RZUEVfRVhJU1RJTkcQA0K5AQoQY29tLnRocnUuY29yZS52MUIKU3RhdGVQcm90b1ABWkBnaXRodWIuY29tL1VudG8tTGFicy90aHJ1LW5ldC9ncnBjL3BrZy9wcm90by90aHJ1L2NvcmUvdjE7Y29yZXYxogIDVENYqgIMVGhydS5Db3JlLlYxugIEVEhVQ8oCDFRocnVcQ29yZVxWMeICGFRocnVcQ29yZVxWMVxHUEJNZXRhZGF0YeoCDlRocnU6OkNvcmU6OlYxYgZwcm90bzM", [file_google_api_field_behavior, file_thru_core_v1_types, file_thru_common_v1_primitives]);
990
+ var StateProofRequestSchema = /* @__PURE__ */ messageDesc(file_thru_core_v1_state, 0);
991
+
992
+ // thru-ts-client-sdk/proto/thru/services/v1/query_service_pb.ts
993
+ var file_thru_services_v1_query_service = /* @__PURE__ */ fileDesc("CiR0aHJ1L3NlcnZpY2VzL3YxL3F1ZXJ5X3NlcnZpY2UucHJvdG8SEHRocnUuc2VydmljZXMudjEi1QIKEUdldEFjY291bnRSZXF1ZXN0EiwKB2FkZHJlc3MYASABKAsyFi50aHJ1LmNvbW1vbi52MS5QdWJrZXlCA+BBAhIxCgR2aWV3GAIgASgOMhkudGhydS5jb3JlLnYxLkFjY291bnRWaWV3QgPgQQFIAIgBARI8Cg92ZXJzaW9uX2NvbnRleHQYAyABKAsyHi50aHJ1LmNvbW1vbi52MS5WZXJzaW9uQ29udGV4dEID4EECEkAKDW1pbl9jb25zZW5zdXMYBCABKA4yHy50aHJ1LmNvbW1vbi52MS5Db25zZW5zdXNTdGF0dXNCA+BBAUgBiAEBEjUKCmRhdGFfc2xpY2UYBSABKAsyFy50aHJ1LmNvcmUudjEuRGF0YVNsaWNlQgPgQQFIAogBAUIHCgVfdmlld0IQCg5fbWluX2NvbnNlbnN1c0INCgtfZGF0YV9zbGljZSKSAgoUR2V0UmF3QWNjb3VudFJlcXVlc3QSLAoHYWRkcmVzcxgBIAEoCzIWLnRocnUuY29tbW9uLnYxLlB1YmtleUID4EECEjEKBHZpZXcYAiABKA4yGS50aHJ1LmNvcmUudjEuQWNjb3VudFZpZXdCA+BBAUgAiAEBEjwKD3ZlcnNpb25fY29udGV4dBgDIAEoCzIeLnRocnUuY29tbW9uLnYxLlZlcnNpb25Db250ZXh0QgPgQQISQAoNbWluX2NvbnNlbnN1cxgEIAEoDjIfLnRocnUuY29tbW9uLnYxLkNvbnNlbnN1c1N0YXR1c0ID4EEBSAGIAQFCBwoFX3ZpZXdCEAoOX21pbl9jb25zZW5zdXMinAIKFUdldFRyYW5zYWN0aW9uUmVxdWVzdBIxCglzaWduYXR1cmUYASABKAsyGS50aHJ1LmNvbW1vbi52MS5TaWduYXR1cmVCA+BBAhI1CgR2aWV3GAIgASgOMh0udGhydS5jb3JlLnYxLlRyYW5zYWN0aW9uVmlld0ID4EEBSACIAQESPAoPdmVyc2lvbl9jb250ZXh0GAMgASgLMh4udGhydS5jb21tb24udjEuVmVyc2lvbkNvbnRleHRCA+BBAhJACg1taW5fY29uc2Vuc3VzGAQgASgOMh8udGhydS5jb21tb24udjEuQ29uc2Vuc3VzU3RhdHVzQgPgQQFIAYgBAUIHCgVfdmlld0IQCg5fbWluX2NvbnNlbnN1cyLfAQoYR2V0UmF3VHJhbnNhY3Rpb25SZXF1ZXN0EjEKCXNpZ25hdHVyZRgBIAEoCzIZLnRocnUuY29tbW9uLnYxLlNpZ25hdHVyZUID4EECEjwKD3ZlcnNpb25fY29udGV4dBgCIAEoCzIeLnRocnUuY29tbW9uLnYxLlZlcnNpb25Db250ZXh0QgPgQQISQAoNbWluX2NvbnNlbnN1cxgDIAEoDjIfLnRocnUuY29tbW9uLnYxLkNvbnNlbnN1c1N0YXR1c0ID4EEBSACIAQFCEAoOX21pbl9jb25zZW5zdXMiUgoZR2VuZXJhdGVTdGF0ZVByb29mUmVxdWVzdBI1CgdyZXF1ZXN0GAEgASgLMh8udGhydS5jb3JlLnYxLlN0YXRlUHJvb2ZSZXF1ZXN0QgPgQQIiSgoaR2VuZXJhdGVTdGF0ZVByb29mUmVzcG9uc2USLAoFcHJvb2YYASABKAsyGC50aHJ1LmNvcmUudjEuU3RhdGVQcm9vZkID4EECIt4CCg9HZXRCbG9ja1JlcXVlc3QSEwoEc2xvdBgBIAEoBEID4EEBSAASMgoKYmxvY2tfaGFzaBgCIAEoCzIXLnRocnUuY29yZS52MS5CbG9ja0hhc2hCA+BBAUgAEi8KBHZpZXcYAyABKA4yFy50aHJ1LmNvcmUudjEuQmxvY2tWaWV3QgPgQQFIAYgBARJACg1taW5fY29uc2Vuc3VzGAQgASgOMh8udGhydS5jb21tb24udjEuQ29uc2Vuc3VzU3RhdHVzQgPgQQFIAogBATpoukhlGmMKEmJsb2NrX3NlbGVjdG9yX3NldBIlZWl0aGVyIHNsb3Qgb3IgYmxvY2tfaGFzaCBtdXN0IGJlIHNldBomaGFzKHRoaXMuc2xvdCkgfHwgaGFzKHRoaXMuYmxvY2tfaGFzaClCCgoIc2VsZWN0b3JCBwoFX3ZpZXdCEAoOX21pbl9jb25zZW5zdXMiqwIKEkdldFJhd0Jsb2NrUmVxdWVzdBITCgRzbG90GAEgASgEQgPgQQFIABIyCgpibG9ja19oYXNoGAIgASgLMhcudGhydS5jb3JlLnYxLkJsb2NrSGFzaEID4EEBSAASQAoNbWluX2NvbnNlbnN1cxgDIAEoDjIfLnRocnUuY29tbW9uLnYxLkNvbnNlbnN1c1N0YXR1c0ID4EEBSAGIAQE6bLpIaRpnChZyYXdfYmxvY2tfc2VsZWN0b3Jfc2V0EiVlaXRoZXIgc2xvdCBvciBibG9ja19oYXNoIG11c3QgYmUgc2V0GiZoYXModGhpcy5zbG90KSB8fCBoYXModGhpcy5ibG9ja19oYXNoKUIKCghzZWxlY3RvckIQCg5fbWluX2NvbnNlbnN1cyL3AgoTTGlzdEFjY291bnRzUmVxdWVzdBIxCgR2aWV3GAEgASgOMhkudGhydS5jb3JlLnYxLkFjY291bnRWaWV3QgPgQQFIAIgBARJBCg92ZXJzaW9uX2NvbnRleHQYAiABKAsyHi50aHJ1LmNvbW1vbi52MS5WZXJzaW9uQ29udGV4dEID4EEBSAGIAQESMAoGZmlsdGVyGAMgASgLMhYudGhydS5jb21tb24udjEuRmlsdGVyQgPgQQFIAogBARIzCgRwYWdlGAQgASgLMhsudGhydS5jb21tb24udjEuUGFnZVJlcXVlc3RCA+BBAUgDiAEBEkAKDW1pbl9jb25zZW5zdXMYBSABKA4yHy50aHJ1LmNvbW1vbi52MS5Db25zZW5zdXNTdGF0dXNCA+BBAUgEiAEBQgcKBV92aWV3QhIKEF92ZXJzaW9uX2NvbnRleHRCCQoHX2ZpbHRlckIHCgVfcGFnZUIQCg5fbWluX2NvbnNlbnN1cyKDAQoUTGlzdEFjY291bnRzUmVzcG9uc2USLAoIYWNjb3VudHMYASADKAsyFS50aHJ1LmNvcmUudjEuQWNjb3VudEID4EEBEjQKBHBhZ2UYAiABKAsyHC50aHJ1LmNvbW1vbi52MS5QYWdlUmVzcG9uc2VCA+BBAUgAiAEBQgcKBV9wYWdlIpwCChFMaXN0QmxvY2tzUmVxdWVzdBIwCgZmaWx0ZXIYASABKAsyFi50aHJ1LmNvbW1vbi52MS5GaWx0ZXJCA+BBAUgAiAEBEjMKBHBhZ2UYAiABKAsyGy50aHJ1LmNvbW1vbi52MS5QYWdlUmVxdWVzdEID4EEBSAGIAQESLwoEdmlldxgDIAEoDjIXLnRocnUuY29yZS52MS5CbG9ja1ZpZXdCA+BBAUgCiAEBEkAKDW1pbl9jb25zZW5zdXMYBCABKA4yHy50aHJ1LmNvbW1vbi52MS5Db25zZW5zdXNTdGF0dXNCA+BBAUgDiAEBQgkKB19maWx0ZXJCBwoFX3BhZ2VCBwoFX3ZpZXdCEAoOX21pbl9jb25zZW5zdXMifQoSTGlzdEJsb2Nrc1Jlc3BvbnNlEigKBmJsb2NrcxgBIAMoCzITLnRocnUuY29yZS52MS5CbG9ja0ID4EEBEjQKBHBhZ2UYAiABKAsyHC50aHJ1LmNvbW1vbi52MS5QYWdlUmVzcG9uc2VCA+BBAUgAiAEBQgcKBV9wYWdlIswBCiFMaXN0VHJhbnNhY3Rpb25zRm9yQWNjb3VudFJlcXVlc3QSLAoHYWNjb3VudBgBIAEoCzIWLnRocnUuY29tbW9uLnYxLlB1YmtleUID4EECEjMKBHBhZ2UYAiABKAsyGy50aHJ1LmNvbW1vbi52MS5QYWdlUmVxdWVzdEID4EEBSACIAQESMAoGZmlsdGVyGAMgASgLMhYudGhydS5jb21tb24udjEuRmlsdGVyQgPgQQFIAYgBAUIHCgVfcGFnZUIJCgdfZmlsdGVyIs0BCiJMaXN0VHJhbnNhY3Rpb25zRm9yQWNjb3VudFJlc3BvbnNlEjIKCnNpZ25hdHVyZXMYASADKAsyGS50aHJ1LmNvbW1vbi52MS5TaWduYXR1cmVCA+BBARI0CgRwYWdlGAIgASgLMhwudGhydS5jb21tb24udjEuUGFnZVJlc3BvbnNlQgPgQQFIAIgBARI0Cgx0cmFuc2FjdGlvbnMYAyADKAsyGS50aHJ1LmNvcmUudjEuVHJhbnNhY3Rpb25CA+BBAUIHCgVfcGFnZSITChFHZXRWZXJzaW9uUmVxdWVzdCKQAQoSR2V0VmVyc2lvblJlc3BvbnNlEkkKCHZlcnNpb25zGAEgAygLMjIudGhydS5zZXJ2aWNlcy52MS5HZXRWZXJzaW9uUmVzcG9uc2UuVmVyc2lvbnNFbnRyeUID4EECGi8KDVZlcnNpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKHAQoPR2V0RXZlbnRSZXF1ZXN0Eh0KCGV2ZW50X2lkGAEgASgJQgvgQQK6SAVyAxiAARJBCg92ZXJzaW9uX2NvbnRleHQYAiABKAsyHi50aHJ1LmNvbW1vbi52MS5WZXJzaW9uQ29udGV4dEID4EEBSACIAQFCEgoQX3ZlcnNpb25fY29udGV4dCLlAwoFRXZlbnQSFQoIZXZlbnRfaWQYASABKAlCA+BBAhI9ChV0cmFuc2FjdGlvbl9zaWduYXR1cmUYAiABKAsyGS50aHJ1LmNvbW1vbi52MS5TaWduYXR1cmVCA+BBAhIxCgdwcm9ncmFtGAMgASgLMhYudGhydS5jb21tb24udjEuUHVia2V5QgPgQQFIAIgBARIZCgdwYXlsb2FkGAQgASgMQgPgQQFIAYgBARIWCgRzbG90GAUgASgEQgPgQQFIAogBARIaCghjYWxsX2lkeBgGIAEoDUID4EEBSAOIAQESHQoLcHJvZ3JhbV9pZHgYByABKA1CA+BBAUgEiAEBEh4KDHBheWxvYWRfc2l6ZRgIIAEoDUID4EEBSAWIAQESHgoMYmxvY2tfb2Zmc2V0GAkgASgNQgPgQQFIBogBARI3Cgl0aW1lc3RhbXAYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgPgQQFIB4gBAUIKCghfcHJvZ3JhbUIKCghfcGF5bG9hZEIHCgVfc2xvdEILCglfY2FsbF9pZHhCDgoMX3Byb2dyYW1faWR4Qg8KDV9wYXlsb2FkX3NpemVCDwoNX2Jsb2NrX29mZnNldEIMCgpfdGltZXN0YW1wIrkCChFMaXN0RXZlbnRzUmVxdWVzdBIwCgZmaWx0ZXIYASABKAsyFi50aHJ1LmNvbW1vbi52MS5GaWx0ZXJCA+BBAUgAiAEBEjMKBHBhZ2UYAiABKAsyGy50aHJ1LmNvbW1vbi52MS5QYWdlUmVxdWVzdEID4EEBSAGIAQESQQoPdmVyc2lvbl9jb250ZXh0GAMgASgLMh4udGhydS5jb21tb24udjEuVmVyc2lvbkNvbnRleHRCA+BBAUgCiAEBEkAKDW1pbl9jb25zZW5zdXMYBCABKA4yHy50aHJ1LmNvbW1vbi52MS5Db25zZW5zdXNTdGF0dXNCA+BBAUgDiAEBQgkKB19maWx0ZXJCBwoFX3BhZ2VCEgoQX3ZlcnNpb25fY29udGV4dEIQCg5fbWluX2NvbnNlbnN1cyKBAQoSTGlzdEV2ZW50c1Jlc3BvbnNlEiwKBmV2ZW50cxgBIAMoCzIXLnRocnUuc2VydmljZXMudjEuRXZlbnRCA+BBARI0CgRwYWdlGAIgASgLMhwudGhydS5jb21tb24udjEuUGFnZVJlc3BvbnNlQgPgQQFIAIgBAUIHCgVfcGFnZSLyAgoXTGlzdFRyYW5zYWN0aW9uc1JlcXVlc3QSMAoGZmlsdGVyGAEgASgLMhYudGhydS5jb21tb24udjEuRmlsdGVyQgPgQQFIAIgBARIzCgRwYWdlGAIgASgLMhsudGhydS5jb21tb24udjEuUGFnZVJlcXVlc3RCA+BBAUgBiAEBEh8KDXJldHVybl9ldmVudHMYAyABKAhCA+BBAUgCiAEBEkEKD3ZlcnNpb25fY29udGV4dBgEIAEoCzIeLnRocnUuY29tbW9uLnYxLlZlcnNpb25Db250ZXh0QgPgQQFIA4gBARJACg1taW5fY29uc2Vuc3VzGAUgASgOMh8udGhydS5jb21tb24udjEuQ29uc2Vuc3VzU3RhdHVzQgPgQQFIBIgBAUIJCgdfZmlsdGVyQgcKBV9wYWdlQhAKDl9yZXR1cm5fZXZlbnRzQhIKEF92ZXJzaW9uX2NvbnRleHRCEAoOX21pbl9jb25zZW5zdXMijwEKGExpc3RUcmFuc2FjdGlvbnNSZXNwb25zZRI0Cgx0cmFuc2FjdGlvbnMYASADKAsyGS50aHJ1LmNvcmUudjEuVHJhbnNhY3Rpb25CA+BBARI0CgRwYWdlGAIgASgLMhwudGhydS5jb21tb24udjEuUGFnZVJlc3BvbnNlQgPgQQFIAIgBAUIHCgVfcGFnZSJQChtHZXRUcmFuc2FjdGlvblN0YXR1c1JlcXVlc3QSMQoJc2lnbmF0dXJlGAEgASgLMhkudGhydS5jb21tb24udjEuU2lnbmF0dXJlQgPgQQIigwIKEVRyYW5zYWN0aW9uU3RhdHVzEjEKCXNpZ25hdHVyZRgBIAEoCzIZLnRocnUuY29tbW9uLnYxLlNpZ25hdHVyZUID4EECEkMKEGNvbnNlbnN1c19zdGF0dXMYAiABKA4yHy50aHJ1LmNvbW1vbi52MS5Db25zZW5zdXNTdGF0dXNCA+BBAUgAiAEBEkwKEGV4ZWN1dGlvbl9yZXN1bHQYAyABKAsyKC50aHJ1LmNvcmUudjEuVHJhbnNhY3Rpb25FeGVjdXRpb25SZXN1bHRCA+BBAUgBiAEBQhMKEV9jb25zZW5zdXNfc3RhdHVzQhMKEV9leGVjdXRpb25fcmVzdWx0IhIKEEdldEhlaWdodFJlcXVlc3QiaQoRR2V0SGVpZ2h0UmVzcG9uc2USFgoJZmluYWxpemVkGAEgASgEQgPgQQISHQoQbG9jYWxseV9leGVjdXRlZBgCIAEoBEID4EECEh0KEGNsdXN0ZXJfZXhlY3V0ZWQYAyABKARCA+BBAjKcEQoMUXVlcnlTZXJ2aWNlEmgKCUdldEhlaWdodBIiLnRocnUuc2VydmljZXMudjEuR2V0SGVpZ2h0UmVxdWVzdBojLnRocnUuc2VydmljZXMudjEuR2V0SGVpZ2h0UmVzcG9uc2UiEoLT5JMCDBIKL3YxL2hlaWdodBJ4CgpHZXRBY2NvdW50EiMudGhydS5zZXJ2aWNlcy52MS5HZXRBY2NvdW50UmVxdWVzdBoVLnRocnUuY29yZS52MS5BY2NvdW50Ii7aQQdhZGRyZXNzgtPkkwIeEhwvdjEvYWNjb3VudHMve2FkZHJlc3MudmFsdWV9EoUBCg1HZXRSYXdBY2NvdW50EiYudGhydS5zZXJ2aWNlcy52MS5HZXRSYXdBY2NvdW50UmVxdWVzdBoYLnRocnUuY29yZS52MS5SYXdBY2NvdW50IjLaQQdhZGRyZXNzgtPkkwIiEiAvdjEvYWNjb3VudHMve2FkZHJlc3MudmFsdWV9OnJhdxKMAQoOR2V0VHJhbnNhY3Rpb24SJy50aHJ1LnNlcnZpY2VzLnYxLkdldFRyYW5zYWN0aW9uUmVxdWVzdBoZLnRocnUuY29yZS52MS5UcmFuc2FjdGlvbiI22kEJc2lnbmF0dXJlgtPkkwIkEiIvdjEvdHJhbnNhY3Rpb25zL3tzaWduYXR1cmUudmFsdWV9EpkBChFHZXRSYXdUcmFuc2FjdGlvbhIqLnRocnUuc2VydmljZXMudjEuR2V0UmF3VHJhbnNhY3Rpb25SZXF1ZXN0GhwudGhydS5jb3JlLnYxLlJhd1RyYW5zYWN0aW9uIjraQQlzaWduYXR1cmWC0+STAigSJi92MS90cmFuc2FjdGlvbnMve3NpZ25hdHVyZS52YWx1ZX06cmF3EoYBCghHZXRCbG9jaxIhLnRocnUuc2VydmljZXMudjEuR2V0QmxvY2tSZXF1ZXN0GhMudGhydS5jb3JlLnYxLkJsb2NrIkKC0+STAjxaJxIlL3YxL2Jsb2Nrcy9ieS1oYXNoL3tibG9ja19oYXNoLnZhbHVlfRIRL3YxL2Jsb2Nrcy97c2xvdH0SlwEKC0dldFJhd0Jsb2NrEiQudGhydS5zZXJ2aWNlcy52MS5HZXRSYXdCbG9ja1JlcXVlc3QaFi50aHJ1LmNvcmUudjEuUmF3QmxvY2siSoLT5JMCRForEikvdjEvYmxvY2tzL2J5LWhhc2gve2Jsb2NrX2hhc2gudmFsdWV9OnJhdxIVL3YxL2Jsb2Nrcy97c2xvdH06cmF3EnMKDExpc3RBY2NvdW50cxIlLnRocnUuc2VydmljZXMudjEuTGlzdEFjY291bnRzUmVxdWVzdBomLnRocnUuc2VydmljZXMudjEuTGlzdEFjY291bnRzUmVzcG9uc2UiFILT5JMCDhIML3YxL2FjY291bnRzEmsKCkxpc3RCbG9ja3MSIy50aHJ1LnNlcnZpY2VzLnYxLkxpc3RCbG9ja3NSZXF1ZXN0GiQudGhydS5zZXJ2aWNlcy52MS5MaXN0QmxvY2tzUmVzcG9uc2UiEoLT5JMCDBIKL3YxL2Jsb2NrcxLEAQoaTGlzdFRyYW5zYWN0aW9uc0ZvckFjY291bnQSMy50aHJ1LnNlcnZpY2VzLnYxLkxpc3RUcmFuc2FjdGlvbnNGb3JBY2NvdW50UmVxdWVzdBo0LnRocnUuc2VydmljZXMudjEuTGlzdFRyYW5zYWN0aW9uc0ZvckFjY291bnRSZXNwb25zZSI72kEHYWNjb3VudILT5JMCKxIpL3YxL2FjY291bnRzL3thY2NvdW50LnZhbHVlfS90cmFuc2FjdGlvbnMScAoIR2V0RXZlbnQSIS50aHJ1LnNlcnZpY2VzLnYxLkdldEV2ZW50UmVxdWVzdBoXLnRocnUuc2VydmljZXMudjEuRXZlbnQiKNpBCGV2ZW50X2lkgtPkkwIXEhUvdjEvZXZlbnRzL3tldmVudF9pZH0SawoKTGlzdEV2ZW50cxIjLnRocnUuc2VydmljZXMudjEuTGlzdEV2ZW50c1JlcXVlc3QaJC50aHJ1LnNlcnZpY2VzLnYxLkxpc3RFdmVudHNSZXNwb25zZSISgtPkkwIMEgovdjEvZXZlbnRzEoMBChBMaXN0VHJhbnNhY3Rpb25zEikudGhydS5zZXJ2aWNlcy52MS5MaXN0VHJhbnNhY3Rpb25zUmVxdWVzdBoqLnRocnUuc2VydmljZXMudjEuTGlzdFRyYW5zYWN0aW9uc1Jlc3BvbnNlIhiC0+STAhISEC92MS90cmFuc2FjdGlvbnMSqQEKFEdldFRyYW5zYWN0aW9uU3RhdHVzEi0udGhydS5zZXJ2aWNlcy52MS5HZXRUcmFuc2FjdGlvblN0YXR1c1JlcXVlc3QaIy50aHJ1LnNlcnZpY2VzLnYxLlRyYW5zYWN0aW9uU3RhdHVzIj3aQQlzaWduYXR1cmWC0+STAisSKS92MS90cmFuc2FjdGlvbnMve3NpZ25hdHVyZS52YWx1ZX06c3RhdHVzEpQBChJHZW5lcmF0ZVN0YXRlUHJvb2YSKy50aHJ1LnNlcnZpY2VzLnYxLkdlbmVyYXRlU3RhdGVQcm9vZlJlcXVlc3QaLC50aHJ1LnNlcnZpY2VzLnYxLkdlbmVyYXRlU3RhdGVQcm9vZlJlc3BvbnNlIiOC0+STAh06ASoiGC92MS9zdGF0ZXByb29mczpnZW5lcmF0ZRJsCgpHZXRWZXJzaW9uEiMudGhydS5zZXJ2aWNlcy52MS5HZXRWZXJzaW9uUmVxdWVzdBokLnRocnUuc2VydmljZXMudjEuR2V0VmVyc2lvblJlc3BvbnNlIhOC0+STAg0SCy92MS92ZXJzaW9uGhPKQRBhcGkudGhydS5uZXR3b3JrQtwBChRjb20udGhydS5zZXJ2aWNlcy52MUIRUXVlcnlTZXJ2aWNlUHJvdG9QAVpIZ2l0aHViLmNvbS9VbnRvLUxhYnMvdGhydS1uZXQvZ3JwYy9wa2cvcHJvdG8vdGhydS9zZXJ2aWNlcy92MTtzZXJ2aWNlc3YxogIDVFNYqgIQVGhydS5TZXJ2aWNlcy5WMboCBFRIVVPKAhBUaHJ1XFNlcnZpY2VzXFYx4gIcVGhydVxTZXJ2aWNlc1xWMVxHUEJNZXRhZGF0YeoCElRocnU6OlNlcnZpY2VzOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_api_annotations, file_google_api_client, file_google_api_field_behavior, file_google_protobuf_timestamp, file_thru_common_v1_consensus, file_thru_common_v1_filters, file_thru_common_v1_pagination, file_thru_common_v1_primitives, file_thru_core_v1_account, file_thru_core_v1_block, file_thru_core_v1_state, file_thru_core_v1_transaction, file_thru_core_v1_types]);
994
+ var GetAccountRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 0);
995
+ var GetRawAccountRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 1);
996
+ var GetTransactionRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 2);
997
+ var GetRawTransactionRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 3);
998
+ var GenerateStateProofRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 4);
999
+ var GetBlockRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 6);
1000
+ var GetRawBlockRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 7);
1001
+ var ListAccountsRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 8);
1002
+ var ListBlocksRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 10);
1003
+ var ListTransactionsForAccountRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 12);
1004
+ var GetVersionRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 14);
1005
+ var GetEventRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 16);
1006
+ var GetTransactionStatusRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 22);
1007
+ var GetHeightRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 24);
1008
+ var QueryService = /* @__PURE__ */ serviceDesc(file_thru_services_v1_query_service, 0);
1009
+ var file_thru_services_v1_streaming_service = /* @__PURE__ */ fileDesc("Cih0aHJ1L3NlcnZpY2VzL3YxL3N0cmVhbWluZ19zZXJ2aWNlLnByb3RvEhB0aHJ1LnNlcnZpY2VzLnYxIo0CChNTdHJlYW1CbG9ja3NSZXF1ZXN0EhwKCnN0YXJ0X3Nsb3QYASABKARCA+BBAUgAiAEBEjAKBmZpbHRlchgCIAEoCzIWLnRocnUuY29tbW9uLnYxLkZpbHRlckID4EEBSAGIAQESLwoEdmlldxgDIAEoDjIXLnRocnUuY29yZS52MS5CbG9ja1ZpZXdCA+BBAUgCiAEBEkAKDW1pbl9jb25zZW5zdXMYBCABKA4yHy50aHJ1LmNvbW1vbi52MS5Db25zZW5zdXNTdGF0dXNCA+BBAUgDiAEBQg0KC19zdGFydF9zbG90QgkKB19maWx0ZXJCBwoFX3ZpZXdCEAoOX21pbl9jb25zZW5zdXMiPwoUU3RyZWFtQmxvY2tzUmVzcG9uc2USJwoFYmxvY2sYASABKAsyEy50aHJ1LmNvcmUudjEuQmxvY2tCA+BBAiLEAQobU3RyZWFtQWNjb3VudFVwZGF0ZXNSZXF1ZXN0EiwKB2FkZHJlc3MYASABKAsyFi50aHJ1LmNvbW1vbi52MS5QdWJrZXlCA+BBAhIxCgR2aWV3GAIgASgOMhkudGhydS5jb3JlLnYxLkFjY291bnRWaWV3QgPgQQFIAIgBARIwCgZmaWx0ZXIYBCABKAsyFi50aHJ1LmNvbW1vbi52MS5GaWx0ZXJCA+BBAUgBiAEBQgcKBV92aWV3QgkKB19maWx0ZXIivwEKDUFjY291bnRVcGRhdGUSEQoEc2xvdBgBIAEoBEID4EECEjEKBHBhZ2UYAiABKAsyGS50aHJ1LmNvcmUudjEuQWNjb3VudFBhZ2VCA+BBAUgAiAEBEjEKBG1ldGEYAyABKAsyGS50aHJ1LmNvcmUudjEuQWNjb3VudE1ldGFCA+BBAUgBiAEBEhgKBmRlbGV0ZRgEIAEoCEID4EEBSAKIAQFCBwoFX3BhZ2VCBwoFX21ldGFCCQoHX2RlbGV0ZSIiCg1CbG9ja0ZpbmlzaGVkEhEKBHNsb3QYASABKARCA+BBAiK8AQocU3RyZWFtQWNjb3VudFVwZGF0ZXNSZXNwb25zZRIpCghzbmFwc2hvdBgBIAEoCzIVLnRocnUuY29yZS52MS5BY2NvdW50SAASMQoGdXBkYXRlGAIgASgLMh8udGhydS5zZXJ2aWNlcy52MS5BY2NvdW50VXBkYXRlSAASMwoIZmluaXNoZWQYAyABKAsyHy50aHJ1LnNlcnZpY2VzLnYxLkJsb2NrRmluaXNoZWRIAEIJCgdtZXNzYWdlIqwBChlTdHJlYW1UcmFuc2FjdGlvbnNSZXF1ZXN0EjAKBmZpbHRlchgBIAEoCzIWLnRocnUuY29tbW9uLnYxLkZpbHRlckID4EEBSACIAQESQAoNbWluX2NvbnNlbnN1cxgCIAEoDjIfLnRocnUuY29tbW9uLnYxLkNvbnNlbnN1c1N0YXR1c0ID4EEBSAGIAQFCCQoHX2ZpbHRlckIQCg5fbWluX2NvbnNlbnN1cyJRChpTdHJlYW1UcmFuc2FjdGlvbnNSZXNwb25zZRIzCgt0cmFuc2FjdGlvbhgBIAEoCzIZLnRocnUuY29yZS52MS5UcmFuc2FjdGlvbkID4EECIlIKE1N0cmVhbUV2ZW50c1JlcXVlc3QSMAoGZmlsdGVyGAEgASgLMhYudGhydS5jb21tb24udjEuRmlsdGVyQgPgQQFIAIgBAUIJCgdfZmlsdGVyIqYCChRTdHJlYW1FdmVudHNSZXNwb25zZRIVCghldmVudF9pZBgBIAEoCUID4EECEhkKB3BheWxvYWQYAiABKAxCA+BBAUgAiAEBEjcKCXRpbWVzdGFtcBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCA+BBAUgBiAEBEiwKB3Byb2dyYW0YBCABKAsyFi50aHJ1LmNvbW1vbi52MS5QdWJrZXlCA+BBAhIVCghjYWxsX2lkeBgFIAEoDUID4EECEjEKCXNpZ25hdHVyZRgGIAEoCzIZLnRocnUuY29tbW9uLnYxLlNpZ25hdHVyZUID4EECEhEKBHNsb3QYByABKARCA+BBAkIKCghfcGF5bG9hZEIMCgpfdGltZXN0YW1wIo4BChdUcmFja1RyYW5zYWN0aW9uUmVxdWVzdBIxCglzaWduYXR1cmUYASABKAsyGS50aHJ1LmNvbW1vbi52MS5TaWduYXR1cmVCA+BBAhI0Cgd0aW1lb3V0GAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQgPgQQFIAIgBAUIKCghfdGltZW91dCLWAQoYVHJhY2tUcmFuc2FjdGlvblJlc3BvbnNlEjEKCXNpZ25hdHVyZRgBIAEoCzIZLnRocnUuY29tbW9uLnYxLlNpZ25hdHVyZUID4EECEj4KEGNvbnNlbnN1c19zdGF0dXMYAiABKA4yHy50aHJ1LmNvbW1vbi52MS5Db25zZW5zdXNTdGF0dXNCA+BBARJHChBleGVjdXRpb25fcmVzdWx0GAMgASgLMigudGhydS5jb3JlLnYxLlRyYW5zYWN0aW9uRXhlY3V0aW9uUmVzdWx0QgPgQQEiFQoTU3RyZWFtSGVpZ2h0UmVxdWVzdCJsChRTdHJlYW1IZWlnaHRSZXNwb25zZRIWCglmaW5hbGl6ZWQYASABKARCA+BBAhIdChBsb2NhbGx5X2V4ZWN1dGVkGAIgASgEQgPgQQISHQoQY2x1c3Rlcl9leGVjdXRlZBgDIAEoBEID4EECMo4FChBTdHJlYW1pbmdTZXJ2aWNlEl8KDFN0cmVhbUJsb2NrcxIlLnRocnUuc2VydmljZXMudjEuU3RyZWFtQmxvY2tzUmVxdWVzdBomLnRocnUuc2VydmljZXMudjEuU3RyZWFtQmxvY2tzUmVzcG9uc2UwARJ3ChRTdHJlYW1BY2NvdW50VXBkYXRlcxItLnRocnUuc2VydmljZXMudjEuU3RyZWFtQWNjb3VudFVwZGF0ZXNSZXF1ZXN0Gi4udGhydS5zZXJ2aWNlcy52MS5TdHJlYW1BY2NvdW50VXBkYXRlc1Jlc3BvbnNlMAEScQoSU3RyZWFtVHJhbnNhY3Rpb25zEisudGhydS5zZXJ2aWNlcy52MS5TdHJlYW1UcmFuc2FjdGlvbnNSZXF1ZXN0GiwudGhydS5zZXJ2aWNlcy52MS5TdHJlYW1UcmFuc2FjdGlvbnNSZXNwb25zZTABEl8KDFN0cmVhbUV2ZW50cxIlLnRocnUuc2VydmljZXMudjEuU3RyZWFtRXZlbnRzUmVxdWVzdBomLnRocnUuc2VydmljZXMudjEuU3RyZWFtRXZlbnRzUmVzcG9uc2UwARJrChBUcmFja1RyYW5zYWN0aW9uEikudGhydS5zZXJ2aWNlcy52MS5UcmFja1RyYW5zYWN0aW9uUmVxdWVzdBoqLnRocnUuc2VydmljZXMudjEuVHJhY2tUcmFuc2FjdGlvblJlc3BvbnNlMAESXwoMU3RyZWFtSGVpZ2h0EiUudGhydS5zZXJ2aWNlcy52MS5TdHJlYW1IZWlnaHRSZXF1ZXN0GiYudGhydS5zZXJ2aWNlcy52MS5TdHJlYW1IZWlnaHRSZXNwb25zZTABQuABChRjb20udGhydS5zZXJ2aWNlcy52MUIVU3RyZWFtaW5nU2VydmljZVByb3RvUAFaSGdpdGh1Yi5jb20vVW50by1MYWJzL3RocnUtbmV0L2dycGMvcGtnL3Byb3RvL3RocnUvc2VydmljZXMvdjE7c2VydmljZXN2MaICA1RTWKoCEFRocnUuU2VydmljZXMuVjG6AgRUSFVTygIQVGhydVxTZXJ2aWNlc1xWMeICHFRocnVcU2VydmljZXNcVjFcR1BCTWV0YWRhdGHqAhJUaHJ1OjpTZXJ2aWNlczo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_api_field_behavior, file_thru_common_v1_primitives, file_google_protobuf_duration, file_google_protobuf_timestamp, file_thru_common_v1_consensus, file_thru_common_v1_filters, file_thru_core_v1_account, file_thru_core_v1_block, file_thru_core_v1_transaction, file_thru_core_v1_types]);
1010
+ var StreamBlocksRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_streaming_service, 0);
1011
+ var StreamAccountUpdatesRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_streaming_service, 2);
1012
+ var StreamTransactionsRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_streaming_service, 6);
1013
+ var StreamEventsRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_streaming_service, 8);
1014
+ var TrackTransactionRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_streaming_service, 10);
1015
+ var StreamingService = /* @__PURE__ */ serviceDesc(file_thru_services_v1_streaming_service, 0);
1016
+
1017
+ // thru-ts-client-sdk/core/client.ts
1018
+ function createThruClientContext(config = {}) {
1019
+ const transportOptions = config.transportOptions ?? {};
1020
+ const { baseUrl: optionsBaseUrl, interceptors: optionInterceptors, ...restTransportOptions } = transportOptions;
1021
+ const baseUrl = config.baseUrl ?? optionsBaseUrl ?? DEFAULT_HOST;
1022
+ const mergedInterceptors = [
1023
+ ...optionInterceptors ?? [],
1024
+ ...config.interceptors ?? []
1025
+ ];
1026
+ const transport = config.transport ?? createGrpcWebTransport({
1027
+ baseUrl,
1028
+ ...restTransportOptions,
1029
+ interceptors: mergedInterceptors.length > 0 ? mergedInterceptors : void 0
1030
+ });
1031
+ return {
1032
+ baseUrl,
1033
+ transport,
1034
+ query: createClient(QueryService, transport),
1035
+ command: createClient(CommandService, transport),
1036
+ streaming: createClient(StreamingService, transport),
1037
+ callOptions: config.callOptions
1038
+ };
1039
+ }
1040
+ function withCallOptions(ctx, overrides) {
1041
+ return mergeCallOptions(ctx.callOptions, overrides);
1042
+ }
1043
+ function mergeCallOptions(defaults, overrides) {
1044
+ if (!defaults) {
1045
+ return overrides;
1046
+ }
1047
+ if (!overrides) {
1048
+ return defaults;
1049
+ }
1050
+ return {
1051
+ ...defaults,
1052
+ ...overrides,
1053
+ headers: mergeHeaders(defaults.headers, overrides.headers),
1054
+ contextValues: overrides.contextValues ?? defaults.contextValues,
1055
+ onHeader: overrides.onHeader ?? defaults.onHeader,
1056
+ onTrailer: overrides.onTrailer ?? defaults.onTrailer
1057
+ };
1058
+ }
1059
+ function mergeHeaders(a, b) {
1060
+ const entries = [];
1061
+ const add = (init) => {
1062
+ if (!init) {
1063
+ return;
1064
+ }
1065
+ if (init instanceof Headers) {
1066
+ init.forEach((value, key) => {
1067
+ entries.push([key, value]);
1068
+ });
1069
+ return;
1070
+ }
1071
+ if (Array.isArray(init)) {
1072
+ for (const [key, value] of init) {
1073
+ entries.push([key, value]);
1074
+ }
1075
+ return;
1076
+ }
1077
+ for (const [key, value] of Object.entries(init)) {
1078
+ if (value !== void 0) {
1079
+ entries.push([key, String(value)]);
1080
+ }
1081
+ }
1082
+ };
1083
+ add(a);
1084
+ add(b);
1085
+ if (entries.length === 0) {
1086
+ return void 0;
1087
+ }
1088
+ return entries;
1089
+ }
798
1090
 
799
1091
  // thru-ts-client-sdk/domain/accounts/Account.ts
800
1092
  var AccountFlags = class _AccountFlags {
@@ -936,11 +1228,6 @@ function fromProtoPage(page) {
936
1228
  compressionAlgorithm: page.compressionAlgorithm
937
1229
  };
938
1230
  }
939
- var file_thru_common_v1_pagination = /* @__PURE__ */ fileDesc("Ch90aHJ1L2NvbW1vbi92MS9wYWdpbmF0aW9uLnByb3RvEg50aHJ1LmNvbW1vbi52MSKoAQoLUGFnZVJlcXVlc3QSJQoJcGFnZV9zaXplGAEgASgNQg3gQQG6SAcqBRjoBygBSACIAQESJAoKcGFnZV90b2tlbhgCIAEoCUIL4EEBukgFcgMYgARIAYgBARIiCghvcmRlcl9ieRgDIAEoCUIL4EEBukgFcgMYgAJIAogBAUIMCgpfcGFnZV9zaXplQg0KC19wYWdlX3Rva2VuQgsKCV9vcmRlcl9ieSJyCgxQYWdlUmVzcG9uc2USIQoPbmV4dF9wYWdlX3Rva2VuGAEgASgJQgPgQQFIAIgBARIcCgp0b3RhbF9zaXplGAIgASgEQgPgQQFIAYgBAUISChBfbmV4dF9wYWdlX3Rva2VuQg0KC190b3RhbF9zaXplQssBChJjb20udGhydS5jb21tb24udjFCD1BhZ2luYXRpb25Qcm90b1ABWkRnaXRodWIuY29tL1VudG8tTGFicy90aHJ1LW5ldC9ncnBjL3BrZy9wcm90by90aHJ1L2NvbW1vbi92MTtjb21tb252MaICA1RDWKoCDlRocnUuQ29tbW9uLlYxugIDVEhVygIOVGhydVxDb21tb25cVjHiAhpUaHJ1XENvbW1vblxWMVxHUEJNZXRhZGF0YeoCEFRocnU6OkNvbW1vbjo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_api_field_behavior]);
940
- var PageRequestSchema = /* @__PURE__ */ messageDesc(file_thru_common_v1_pagination, 0);
941
- var PageResponseSchema = /* @__PURE__ */ messageDesc(file_thru_common_v1_pagination, 1);
942
-
943
- // thru-ts-client-sdk/domain/pagination/Page.ts
944
1231
  var PageRequest = class _PageRequest {
945
1232
  constructor(params = {}) {
946
1233
  if (params.pageSize !== void 0) {
@@ -1001,9 +1288,6 @@ var PageResponse = class _PageResponse {
1001
1288
  return !!this.nextPageToken;
1002
1289
  }
1003
1290
  };
1004
- var file_thru_common_v1_filters = /* @__PURE__ */ fileDesc("Chx0aHJ1L2NvbW1vbi92MS9maWx0ZXJzLnByb3RvEg50aHJ1LmNvbW1vbi52MSLHAQoGRmlsdGVyEiQKCmV4cHJlc3Npb24YASABKAlCC+BBAbpIBXIDGIAgSACIAQESNwoGcGFyYW1zGAIgAygLMiIudGhydS5jb21tb24udjEuRmlsdGVyLlBhcmFtc0VudHJ5QgPgQQEaTwoLUGFyYW1zRW50cnkSCwoDa2V5GAEgASgJEi8KBXZhbHVlGAIgASgLMiAudGhydS5jb21tb24udjEuRmlsdGVyUGFyYW1WYWx1ZToCOAFCDQoLX2V4cHJlc3Npb24ipQEKEEZpbHRlclBhcmFtVmFsdWUSGwoMc3RyaW5nX3ZhbHVlGAEgASgJQgPgQQFIABIaCgtieXRlc192YWx1ZRgCIAEoDEID4EEBSAASGQoKYm9vbF92YWx1ZRgDIAEoCEID4EEBSAASGAoJaW50X3ZhbHVlGAQgASgSQgPgQQFIABIbCgxkb3VibGVfdmFsdWUYBSABKAFCA+BBAUgAQgYKBGtpbmQioQEKE0NlbEZpbHRlclZhbGlkYXRpb24SJwoRYWxsb3dlZF9mdW5jdGlvbnMYASADKAlCDOBBAbpIBpIBAxCAARIkCg5hbGxvd2VkX2ZpZWxkcxgCIAMoCUIM4EEBukgGkgEDEIACEigKDm1heF9jb21wbGV4aXR5GAMgASgNQgvgQQG6SAUqAxjoB0gAiAEBQhEKD19tYXhfY29tcGxleGl0eULIAQoSY29tLnRocnUuY29tbW9uLnYxQgxGaWx0ZXJzUHJvdG9QAVpEZ2l0aHViLmNvbS9VbnRvLUxhYnMvdGhydS1uZXQvZ3JwYy9wa2cvcHJvdG8vdGhydS9jb21tb24vdjE7Y29tbW9udjGiAgNUQ1iqAg5UaHJ1LkNvbW1vbi5WMboCA1RIVcoCDlRocnVcQ29tbW9uXFYx4gIaVGhydVxDb21tb25cVjFcR1BCTWV0YWRhdGHqAhBUaHJ1OjpDb21tb246OlYxYgZwcm90bzM", [file_buf_validate_validate, file_google_api_field_behavior]);
1005
- var FilterSchema = /* @__PURE__ */ messageDesc(file_thru_common_v1_filters, 0);
1006
- var FilterParamValueSchema = /* @__PURE__ */ messageDesc(file_thru_common_v1_filters, 1);
1007
1291
 
1008
1292
  // thru-ts-client-sdk/domain/height/HeightSnapshot.ts
1009
1293
  var HeightSnapshot = class _HeightSnapshot {
@@ -1033,68 +1317,33 @@ var height_exports = {};
1033
1317
  __export(height_exports, {
1034
1318
  getBlockHeight: () => getBlockHeight
1035
1319
  });
1036
- var file_google_api_http = /* @__PURE__ */ fileDesc("ChVnb29nbGUvYXBpL2h0dHAucHJvdG8SCmdvb2dsZS5hcGkiVAoESHR0cBIjCgVydWxlcxgBIAMoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGUSJwofZnVsbHlfZGVjb2RlX3Jlc2VydmVkX2V4cGFuc2lvbhgCIAEoCCKBAgoISHR0cFJ1bGUSEAoIc2VsZWN0b3IYASABKAkSDQoDZ2V0GAIgASgJSAASDQoDcHV0GAMgASgJSAASDgoEcG9zdBgEIAEoCUgAEhAKBmRlbGV0ZRgFIAEoCUgAEg8KBXBhdGNoGAYgASgJSAASLwoGY3VzdG9tGAggASgLMh0uZ29vZ2xlLmFwaS5DdXN0b21IdHRwUGF0dGVybkgAEgwKBGJvZHkYByABKAkSFQoNcmVzcG9uc2VfYm9keRgMIAEoCRIxChNhZGRpdGlvbmFsX2JpbmRpbmdzGAsgAygLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZUIJCgdwYXR0ZXJuIi8KEUN1c3RvbUh0dHBQYXR0ZXJuEgwKBGtpbmQYASABKAkSDAoEcGF0aBgCIAEoCUKnAQoOY29tLmdvb2dsZS5hcGlCCUh0dHBQcm90b1ABWkFnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2FwaS9hbm5vdGF0aW9uczthbm5vdGF0aW9uc6ICA0dBWKoCCkdvb2dsZS5BcGnKAgpHb29nbGVcQXBp4gIWR29vZ2xlXEFwaVxHUEJNZXRhZGF0YeoCC0dvb2dsZTo6QXBpYgZwcm90bzM");
1037
- var file_google_api_annotations = /* @__PURE__ */ fileDesc("Chxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvEgpnb29nbGUuYXBpOksKBGh0dHASHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxiwyrwiIAEoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGVSBGh0dHBCrgEKDmNvbS5nb29nbGUuYXBpQhBBbm5vdGF0aW9uc1Byb3RvUAFaQWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYXBpL2Fubm90YXRpb25zO2Fubm90YXRpb25zogIDR0FYqgIKR29vZ2xlLkFwacoCCkdvb2dsZVxBcGniAhZHb29nbGVcQXBpXEdQQk1ldGFkYXRh6gILR29vZ2xlOjpBcGliBnByb3RvMw", [file_google_api_http, file_google_protobuf_descriptor]);
1038
- var file_google_api_launch_stage = /* @__PURE__ */ fileDesc("Ch1nb29nbGUvYXBpL2xhdW5jaF9zdGFnZS5wcm90bxIKZ29vZ2xlLmFwaSqMAQoLTGF1bmNoU3RhZ2USHAoYTEFVTkNIX1NUQUdFX1VOU1BFQ0lGSUVEEAASEQoNVU5JTVBMRU1FTlRFRBAGEg0KCVBSRUxBVU5DSBAHEhAKDEVBUkxZX0FDQ0VTUxABEgkKBUFMUEhBEAISCAoEQkVUQRADEgYKAkdBEAQSDgoKREVQUkVDQVRFRBAFQpoBCg5jb20uZ29vZ2xlLmFwaUIQTGF1bmNoU3RhZ2VQcm90b1ABWi1nb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2FwaTthcGmiAgNHQViqAgpHb29nbGUuQXBpygIKR29vZ2xlXEFwaeICFkdvb2dsZVxBcGlcR1BCTWV0YWRhdGHqAgtHb29nbGU6OkFwaWIGcHJvdG8z");
1039
- var file_google_api_client = /* @__PURE__ */ fileDesc("Chdnb29nbGUvYXBpL2NsaWVudC5wcm90bxIKZ29vZ2xlLmFwaSK+AQoWQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncxIeChJyZWZlcmVuY2VfZG9jc191cmkYASABKAlCAhgBEjoKDGRlc3RpbmF0aW9ucxgCIAMoDjIkLmdvb2dsZS5hcGkuQ2xpZW50TGlicmFyeURlc3RpbmF0aW9uEkgKGnNlbGVjdGl2ZV9nYXBpY19nZW5lcmF0aW9uGAMgASgLMiQuZ29vZ2xlLmFwaS5TZWxlY3RpdmVHYXBpY0dlbmVyYXRpb24i+wMKFUNsaWVudExpYnJhcnlTZXR0aW5ncxIPCgd2ZXJzaW9uGAEgASgJEi0KDGxhdW5jaF9zdGFnZRgCIAEoDjIXLmdvb2dsZS5hcGkuTGF1bmNoU3RhZ2USGgoScmVzdF9udW1lcmljX2VudW1zGAMgASgIEi8KDWphdmFfc2V0dGluZ3MYFSABKAsyGC5nb29nbGUuYXBpLkphdmFTZXR0aW5ncxItCgxjcHBfc2V0dGluZ3MYFiABKAsyFy5nb29nbGUuYXBpLkNwcFNldHRpbmdzEi0KDHBocF9zZXR0aW5ncxgXIAEoCzIXLmdvb2dsZS5hcGkuUGhwU2V0dGluZ3MSMwoPcHl0aG9uX3NldHRpbmdzGBggASgLMhouZ29vZ2xlLmFwaS5QeXRob25TZXR0aW5ncxIvCg1ub2RlX3NldHRpbmdzGBkgASgLMhguZ29vZ2xlLmFwaS5Ob2RlU2V0dGluZ3MSMwoPZG90bmV0X3NldHRpbmdzGBogASgLMhouZ29vZ2xlLmFwaS5Eb3RuZXRTZXR0aW5ncxIvCg1ydWJ5X3NldHRpbmdzGBsgASgLMhguZ29vZ2xlLmFwaS5SdWJ5U2V0dGluZ3MSKwoLZ29fc2V0dGluZ3MYHCABKAsyFi5nb29nbGUuYXBpLkdvU2V0dGluZ3MiqAMKClB1Ymxpc2hpbmcSMwoPbWV0aG9kX3NldHRpbmdzGAIgAygLMhouZ29vZ2xlLmFwaS5NZXRob2RTZXR0aW5ncxIVCg1uZXdfaXNzdWVfdXJpGGUgASgJEhkKEWRvY3VtZW50YXRpb25fdXJpGGYgASgJEhYKDmFwaV9zaG9ydF9uYW1lGGcgASgJEhQKDGdpdGh1Yl9sYWJlbBhoIAEoCRIeChZjb2Rlb3duZXJfZ2l0aHViX3RlYW1zGGkgAygJEhYKDmRvY190YWdfcHJlZml4GGogASgJEjsKDG9yZ2FuaXphdGlvbhhrIAEoDjIlLmdvb2dsZS5hcGkuQ2xpZW50TGlicmFyeU9yZ2FuaXphdGlvbhI7ChBsaWJyYXJ5X3NldHRpbmdzGG0gAygLMiEuZ29vZ2xlLmFwaS5DbGllbnRMaWJyYXJ5U2V0dGluZ3MSKQohcHJvdG9fcmVmZXJlbmNlX2RvY3VtZW50YXRpb25fdXJpGG4gASgJEigKIHJlc3RfcmVmZXJlbmNlX2RvY3VtZW50YXRpb25fdXJpGG8gASgJIuMBCgxKYXZhU2V0dGluZ3MSFwoPbGlicmFyeV9wYWNrYWdlGAEgASgJEkwKE3NlcnZpY2VfY2xhc3NfbmFtZXMYAiADKAsyLy5nb29nbGUuYXBpLkphdmFTZXR0aW5ncy5TZXJ2aWNlQ2xhc3NOYW1lc0VudHJ5EjIKBmNvbW1vbhgDIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncxo4ChZTZXJ2aWNlQ2xhc3NOYW1lc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiQQoLQ3BwU2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzIkEKC1BocFNldHRpbmdzEjIKBmNvbW1vbhgBIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncyKbAgoOUHl0aG9uU2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzEk4KFWV4cGVyaW1lbnRhbF9mZWF0dXJlcxgCIAEoCzIvLmdvb2dsZS5hcGkuUHl0aG9uU2V0dGluZ3MuRXhwZXJpbWVudGFsRmVhdHVyZXMahAEKFEV4cGVyaW1lbnRhbEZlYXR1cmVzEh0KFXJlc3RfYXN5bmNfaW9fZW5hYmxlZBgBIAEoCBInCh9wcm90b2J1Zl9weXRob25pY190eXBlc19lbmFibGVkGAIgASgIEiQKHHVudmVyc2lvbmVkX3BhY2thZ2VfZGlzYWJsZWQYAyABKAgiQgoMTm9kZVNldHRpbmdzEjIKBmNvbW1vbhgBIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncyKqAwoORG90bmV0U2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzEkkKEHJlbmFtZWRfc2VydmljZXMYAiADKAsyLy5nb29nbGUuYXBpLkRvdG5ldFNldHRpbmdzLlJlbmFtZWRTZXJ2aWNlc0VudHJ5EksKEXJlbmFtZWRfcmVzb3VyY2VzGAMgAygLMjAuZ29vZ2xlLmFwaS5Eb3RuZXRTZXR0aW5ncy5SZW5hbWVkUmVzb3VyY2VzRW50cnkSGQoRaWdub3JlZF9yZXNvdXJjZXMYBCADKAkSIAoYZm9yY2VkX25hbWVzcGFjZV9hbGlhc2VzGAUgAygJEh4KFmhhbmR3cml0dGVuX3NpZ25hdHVyZXMYBiADKAkaNgoUUmVuYW1lZFNlcnZpY2VzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo3ChVSZW5hbWVkUmVzb3VyY2VzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJCCgxSdWJ5U2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzIr8BCgpHb1NldHRpbmdzEjIKBmNvbW1vbhgBIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncxJFChByZW5hbWVkX3NlcnZpY2VzGAIgAygLMisuZ29vZ2xlLmFwaS5Hb1NldHRpbmdzLlJlbmFtZWRTZXJ2aWNlc0VudHJ5GjYKFFJlbmFtZWRTZXJ2aWNlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEizwIKDk1ldGhvZFNldHRpbmdzEhAKCHNlbGVjdG9yGAEgASgJEjwKDGxvbmdfcnVubmluZxgCIAEoCzImLmdvb2dsZS5hcGkuTWV0aG9kU2V0dGluZ3MuTG9uZ1J1bm5pbmcSHQoVYXV0b19wb3B1bGF0ZWRfZmllbGRzGAMgAygJGs0BCgtMb25nUnVubmluZxI1ChJpbml0aWFsX3BvbGxfZGVsYXkYASABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SHQoVcG9sbF9kZWxheV9tdWx0aXBsaWVyGAIgASgCEjEKDm1heF9wb2xsX2RlbGF5GAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEjUKEnRvdGFsX3BvbGxfdGltZW91dBgEIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbiJRChhTZWxlY3RpdmVHYXBpY0dlbmVyYXRpb24SDwoHbWV0aG9kcxgBIAMoCRIkChxnZW5lcmF0ZV9vbWl0dGVkX2FzX2ludGVybmFsGAIgASgIKqMBChlDbGllbnRMaWJyYXJ5T3JnYW5pemF0aW9uEisKJ0NMSUVOVF9MSUJSQVJZX09SR0FOSVpBVElPTl9VTlNQRUNJRklFRBAAEgkKBUNMT1VEEAESBwoDQURTEAISCgoGUEhPVE9TEAMSDwoLU1RSRUVUX1ZJRVcQBBIMCghTSE9QUElORxAFEgcKA0dFTxAGEhEKDUdFTkVSQVRJVkVfQUkQBypnChhDbGllbnRMaWJyYXJ5RGVzdGluYXRpb24SKgomQ0xJRU5UX0xJQlJBUllfREVTVElOQVRJT05fVU5TUEVDSUZJRUQQABIKCgZHSVRIVUIQChITCg9QQUNLQUdFX01BTkFHRVIQFDpKChBtZXRob2Rfc2lnbmF0dXJlEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYmwggAygJUg9tZXRob2RTaWduYXR1cmU6QwoMZGVmYXVsdF9ob3N0Eh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGJkIIAEoCVILZGVmYXVsdEhvc3Q6QwoMb2F1dGhfc2NvcGVzEh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGJoIIAEoCVILb2F1dGhTY29wZXM6RAoLYXBpX3ZlcnNpb24SHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMYwbqr+gEgASgJUgphcGlWZXJzaW9uQqkBCg5jb20uZ29vZ2xlLmFwaUILQ2xpZW50UHJvdG9QAVpBZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkvYW5ub3RhdGlvbnM7YW5ub3RhdGlvbnOiAgNHQViqAgpHb29nbGUuQXBpygIKR29vZ2xlXEFwaeICFkdvb2dsZVxBcGlcR1BCTWV0YWRhdGHqAgtHb29nbGU6OkFwaWIGcHJvdG8z", [file_google_api_launch_stage, file_google_protobuf_descriptor, file_google_protobuf_duration]);
1040
- var file_thru_core_v1_account = /* @__PURE__ */ fileDesc("Chp0aHJ1L2NvcmUvdjEvYWNjb3VudC5wcm90bxIMdGhydS5jb3JlLnYxIsgBCgxBY2NvdW50RmxhZ3MSFwoKaXNfcHJvZ3JhbRgBIAEoCEID4EECEhoKDWlzX3ByaXZpbGVnZWQYAiABKAhCA+BBAhIeChFpc191bmNvbXByZXNzYWJsZRgDIAEoCEID4EECEhkKDGlzX2VwaGVtZXJhbBgEIAEoCEID4EECEhcKCmlzX2RlbGV0ZWQYBSABKAhCA+BBAhITCgZpc19uZXcYBiABKAhCA+BBAhIaCg1pc19jb21wcmVzc2VkGAcgASgIQgPgQQIi2AEKC0FjY291bnRNZXRhEhsKB3ZlcnNpb24YASABKA1CCuBBArpIBCoCKAESLgoFZmxhZ3MYAiABKAsyGi50aHJ1LmNvcmUudjEuQWNjb3VudEZsYWdzQgPgQQISFgoJZGF0YV9zaXplGAMgASgNQgPgQQISEAoDc2VxGAQgASgEQgPgQQISKAoFb3duZXIYBSABKAsyFC50aHJ1LmNvcmUudjEuUHVia2V5QgPgQQISFAoHYmFsYW5jZRgGIAEoBEID4EECEhIKBW5vbmNlGAcgASgEQgPgQQIirwEKC0FjY291bnREYXRhEiAKBGRhdGEYASABKAxCDeBBAbpIB3oFGICAgAhIAIgBARIcCgpjb21wcmVzc2VkGAIgASgIQgPgQQFIAYgBARIuChVjb21wcmVzc2lvbl9hbGdvcml0aG0YAyABKAlCCuBBAbpIBHICGEBIAogBAUIHCgVfZGF0YUINCgtfY29tcHJlc3NlZEIYChZfY29tcHJlc3Npb25fYWxnb3JpdGhtIkkKCURhdGFTbGljZRIdCgZvZmZzZXQYASABKA1CDeBBArpIBzIFGICAgAgSHQoGbGVuZ3RoGAIgASgNQg3gQQK6SAcyBRiAgIAIItsBCgtBY2NvdW50UGFnZRIVCghwYWdlX2lkeBgBIAEoDUID4EECEh4KCXBhZ2Vfc2l6ZRgCIAEoDUIL4EECukgFKgMYgCASHgoJcGFnZV9kYXRhGAMgASgMQgvgQQK6SAV6AxiAIBIcCgpjb21wcmVzc2VkGAQgASgIQgPgQQFIAIgBARIuChVjb21wcmVzc2lvbl9hbGdvcml0aG0YBSABKAlCCuBBAbpIBHICGEBIAYgBAUINCgtfY29tcHJlc3NlZEIYChZfY29tcHJlc3Npb25fYWxnb3JpdGhtIowBChZWZXJzaW9uQ29udGV4dE1ldGFkYXRhEhYKBHNsb3QYASABKARCA+BBAUgAiAEBEj0KD2Jsb2NrX3RpbWVzdGFtcBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCA+BBAUgBiAEBQgcKBV9zbG90QhIKEF9ibG9ja190aW1lc3RhbXAi5AIKB0FjY291bnQSKgoHYWRkcmVzcxgBIAEoCzIULnRocnUuY29yZS52MS5QdWJrZXlCA+BBAhIxCgRtZXRhGAIgASgLMhkudGhydS5jb3JlLnYxLkFjY291bnRNZXRhQgPgQQFIAIgBARIxCgRkYXRhGAMgASgLMhkudGhydS5jb3JlLnYxLkFjY291bnREYXRhQgPgQQFIAYgBARJHCg92ZXJzaW9uX2NvbnRleHQYBCABKAsyJC50aHJ1LmNvcmUudjEuVmVyc2lvbkNvbnRleHRNZXRhZGF0YUID4EEBSAKIAQESQwoQY29uc2Vuc3VzX3N0YXR1cxgFIAEoDjIfLnRocnUuY29tbW9uLnYxLkNvbnNlbnN1c1N0YXR1c0ID4EEBSAOIAQFCBwoFX21ldGFCBwoFX2RhdGFCEgoQX3ZlcnNpb25fY29udGV4dEITChFfY29uc2Vuc3VzX3N0YXR1cyLnAQoKUmF3QWNjb3VudBIqCgdhZGRyZXNzGAEgASgLMhQudGhydS5jb3JlLnYxLlB1YmtleUID4EECEh0KCHJhd19tZXRhGAIgASgMQgvgQQK6SAV6AxiAIBIkCghyYXdfZGF0YRgDIAEoDEIN4EEBukgHegUYgICACEgAiAEBEkcKD3ZlcnNpb25fY29udGV4dBgEIAEoCzIkLnRocnUuY29yZS52MS5WZXJzaW9uQ29udGV4dE1ldGFkYXRhQgPgQQFIAYgBAUILCglfcmF3X2RhdGFCEgoQX3ZlcnNpb25fY29udGV4dCqYAQoLQWNjb3VudFZpZXcSHAoYQUNDT1VOVF9WSUVXX1VOU1BFQ0lGSUVEEAASHAoYQUNDT1VOVF9WSUVXX1BVQktFWV9PTkxZEAESGgoWQUNDT1VOVF9WSUVXX01FVEFfT05MWRACEhoKFkFDQ09VTlRfVklFV19EQVRBX09OTFkQAxIVChFBQ0NPVU5UX1ZJRVdfRlVMTBAEQrsBChBjb20udGhydS5jb3JlLnYxQgxBY2NvdW50UHJvdG9QAVpAZ2l0aHViLmNvbS9VbnRvLUxhYnMvdGhydS1uZXQvZ3JwYy9wa2cvcHJvdG8vdGhydS9jb3JlL3YxO2NvcmV2MaICA1RDWKoCDFRocnUuQ29yZS5WMboCBFRIVUPKAgxUaHJ1XENvcmVcVjHiAhhUaHJ1XENvcmVcVjFcR1BCTWV0YWRhdGHqAg5UaHJ1OjpDb3JlOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_api_field_behavior, file_google_protobuf_timestamp, file_thru_common_v1_consensus, file_thru_core_v1_types]);
1041
- var file_thru_core_v1_block = /* @__PURE__ */ fileDesc("Chh0aHJ1L2NvcmUvdjEvYmxvY2sucHJvdG8SDHRocnUuY29yZS52MSKrAwoLQmxvY2tIZWFkZXISEQoEc2xvdBgBIAEoBEID4EECEjAKCmJsb2NrX2hhc2gYAiABKAsyFy50aHJ1LmNvcmUudjEuQmxvY2tIYXNoQgPgQQISNgoQaGVhZGVyX3NpZ25hdHVyZRgDIAEoCzIXLnRocnUuY29yZS52MS5TaWduYXR1cmVCA+BBAhIUCgd2ZXJzaW9uGAQgASgNQgPgQQISKwoIcHJvZHVjZXIYBSABKAsyFC50aHJ1LmNvcmUudjEuUHVia2V5QgPgQQISOQoQZXhwaXJ5X3RpbWVzdGFtcBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCA+BBAhIXCgpzdGFydF9zbG90GAcgASgEQgPgQQISGQoMZXhwaXJ5X2FmdGVyGAggASgNQgPgQQISGwoObWF4X2Jsb2NrX3NpemUYCSABKA1CA+BBAhIeChFtYXhfY29tcHV0ZV91bml0cxgKIAEoBEID4EECEhwKD21heF9zdGF0ZV91bml0cxgLIAEoDUID4EECEhIKBXByaWNlGAwgASgEQgPgQQIiugEKC0Jsb2NrRm9vdGVyEi8KCXNpZ25hdHVyZRgBIAEoCzIXLnRocnUuY29yZS52MS5TaWduYXR1cmVCA+BBAhIyCgZzdGF0dXMYAiABKA4yHS50aHJ1LmNvcmUudjEuRXhlY3V0aW9uU3RhdHVzQgPgQQISIwoWY29uc3VtZWRfY29tcHV0ZV91bml0cxgDIAEoBEID4EECEiEKFGNvbnN1bWVkX3N0YXRlX3VuaXRzGAQgASgNQgPgQQIi/AEKBUJsb2NrEi4KBmhlYWRlchgBIAEoCzIZLnRocnUuY29yZS52MS5CbG9ja0hlYWRlckID4EECEjMKBmZvb3RlchgCIAEoCzIZLnRocnUuY29yZS52MS5CbG9ja0Zvb3RlckID4EEBSACIAQESIAoEYm9keRgDIAEoDEIN4EEBukgHegUYgICAEEgBiAEBEkMKEGNvbnNlbnN1c19zdGF0dXMYBCABKA4yHy50aHJ1LmNvbW1vbi52MS5Db25zZW5zdXNTdGF0dXNCA+BBAUgCiAEBQgkKB19mb290ZXJCBwoFX2JvZHlCEwoRX2NvbnNlbnN1c19zdGF0dXMiPwoIUmF3QmxvY2sSEQoEc2xvdBgBIAEoBEID4EECEiAKCXJhd19ibG9jaxgCIAEoDEIN4EECukgHegUYgICAECqUAQoJQmxvY2tWaWV3EhoKFkJMT0NLX1ZJRVdfVU5TUEVDSUZJRUQQABIaChZCTE9DS19WSUVXX0hFQURFUl9PTkxZEAESIAocQkxPQ0tfVklFV19IRUFERVJfQU5EX0ZPT1RFUhACEhgKFEJMT0NLX1ZJRVdfQk9EWV9PTkxZEAMSEwoPQkxPQ0tfVklFV19GVUxMEAQqjQEKD0V4ZWN1dGlvblN0YXR1cxIgChxFWEVDVVRJT05fU1RBVFVTX1VOU1BFQ0lGSUVEEAASHAoYRVhFQ1VUSU9OX1NUQVRVU19QRU5ESU5HEAESHQoZRVhFQ1VUSU9OX1NUQVRVU19FWEVDVVRFRBACEhsKF0VYRUNVVElPTl9TVEFUVVNfRkFJTEVEEANCuQEKEGNvbS50aHJ1LmNvcmUudjFCCkJsb2NrUHJvdG9QAVpAZ2l0aHViLmNvbS9VbnRvLUxhYnMvdGhydS1uZXQvZ3JwYy9wa2cvcHJvdG8vdGhydS9jb3JlL3YxO2NvcmV2MaICA1RDWKoCDFRocnUuQ29yZS5WMboCBFRIVUPKAgxUaHJ1XENvcmVcVjHiAhhUaHJ1XENvcmVcVjFcR1BCTWV0YWRhdGHqAg5UaHJ1OjpDb3JlOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_api_field_behavior, file_google_protobuf_timestamp, file_thru_common_v1_consensus, file_thru_core_v1_types]);
1042
- var file_thru_core_v1_state = /* @__PURE__ */ fileDesc("Chh0aHJ1L2NvcmUvdjEvc3RhdGUucHJvdG8SDHRocnUuY29yZS52MSKlAQoRU3RhdGVQcm9vZlJlcXVlc3QSKgoHYWRkcmVzcxgBIAEoCzIULnRocnUuY29yZS52MS5QdWJrZXlCA+BBAhI1Cgpwcm9vZl90eXBlGAIgASgOMhwudGhydS5jb3JlLnYxLlN0YXRlUHJvb2ZUeXBlQgPgQQISHQoLdGFyZ2V0X3Nsb3QYAyABKARCA+BBAUgAiAEBQg4KDF90YXJnZXRfc2xvdCIzCgpTdGF0ZVByb29mEhIKBXByb29mGAEgASgMQgPgQQISEQoEc2xvdBgCIAEoBEID4EECKo8BCg5TdGF0ZVByb29mVHlwZRIgChxTVEFURV9QUk9PRl9UWVBFX1VOU1BFQ0lGSUVEEAASHQoZU1RBVEVfUFJPT0ZfVFlQRV9DUkVBVElORxABEh0KGVNUQVRFX1BST09GX1RZUEVfVVBEQVRJTkcQAhIdChlTVEFURV9QUk9PRl9UWVBFX0VYSVNUSU5HEANCuQEKEGNvbS50aHJ1LmNvcmUudjFCClN0YXRlUHJvdG9QAVpAZ2l0aHViLmNvbS9VbnRvLUxhYnMvdGhydS1uZXQvZ3JwYy9wa2cvcHJvdG8vdGhydS9jb3JlL3YxO2NvcmV2MaICA1RDWKoCDFRocnUuQ29yZS5WMboCBFRIVUPKAgxUaHJ1XENvcmVcVjHiAhhUaHJ1XENvcmVcVjFcR1BCTWV0YWRhdGHqAg5UaHJ1OjpDb3JlOjpWMWIGcHJvdG8z", [file_google_api_field_behavior, file_thru_core_v1_types]);
1043
- var StateProofRequestSchema = /* @__PURE__ */ messageDesc(file_thru_core_v1_state, 0);
1044
-
1045
- // thru-ts-client-sdk/proto/thru/services/v1/query_service_pb.ts
1046
- var file_thru_services_v1_query_service = /* @__PURE__ */ fileDesc("CiR0aHJ1L3NlcnZpY2VzL3YxL3F1ZXJ5X3NlcnZpY2UucHJvdG8SEHRocnUuc2VydmljZXMudjEi0wIKEUdldEFjY291bnRSZXF1ZXN0EioKB2FkZHJlc3MYASABKAsyFC50aHJ1LmNvcmUudjEuUHVia2V5QgPgQQISMQoEdmlldxgCIAEoDjIZLnRocnUuY29yZS52MS5BY2NvdW50Vmlld0ID4EEBSACIAQESPAoPdmVyc2lvbl9jb250ZXh0GAMgASgLMh4udGhydS5jb21tb24udjEuVmVyc2lvbkNvbnRleHRCA+BBAhJACg1taW5fY29uc2Vuc3VzGAQgASgOMh8udGhydS5jb21tb24udjEuQ29uc2Vuc3VzU3RhdHVzQgPgQQFIAYgBARI1CgpkYXRhX3NsaWNlGAUgASgLMhcudGhydS5jb3JlLnYxLkRhdGFTbGljZUID4EEBSAKIAQFCBwoFX3ZpZXdCEAoOX21pbl9jb25zZW5zdXNCDQoLX2RhdGFfc2xpY2UikAIKFEdldFJhd0FjY291bnRSZXF1ZXN0EioKB2FkZHJlc3MYASABKAsyFC50aHJ1LmNvcmUudjEuUHVia2V5QgPgQQISMQoEdmlldxgCIAEoDjIZLnRocnUuY29yZS52MS5BY2NvdW50Vmlld0ID4EEBSACIAQESPAoPdmVyc2lvbl9jb250ZXh0GAMgASgLMh4udGhydS5jb21tb24udjEuVmVyc2lvbkNvbnRleHRCA+BBAhJACg1taW5fY29uc2Vuc3VzGAQgASgOMh8udGhydS5jb21tb24udjEuQ29uc2Vuc3VzU3RhdHVzQgPgQQFIAYgBAUIHCgVfdmlld0IQCg5fbWluX2NvbnNlbnN1cyKaAgoVR2V0VHJhbnNhY3Rpb25SZXF1ZXN0Ei8KCXNpZ25hdHVyZRgBIAEoCzIXLnRocnUuY29yZS52MS5TaWduYXR1cmVCA+BBAhI1CgR2aWV3GAIgASgOMh0udGhydS5jb3JlLnYxLlRyYW5zYWN0aW9uVmlld0ID4EEBSACIAQESPAoPdmVyc2lvbl9jb250ZXh0GAMgASgLMh4udGhydS5jb21tb24udjEuVmVyc2lvbkNvbnRleHRCA+BBAhJACg1taW5fY29uc2Vuc3VzGAQgASgOMh8udGhydS5jb21tb24udjEuQ29uc2Vuc3VzU3RhdHVzQgPgQQFIAYgBAUIHCgVfdmlld0IQCg5fbWluX2NvbnNlbnN1cyLdAQoYR2V0UmF3VHJhbnNhY3Rpb25SZXF1ZXN0Ei8KCXNpZ25hdHVyZRgBIAEoCzIXLnRocnUuY29yZS52MS5TaWduYXR1cmVCA+BBAhI8Cg92ZXJzaW9uX2NvbnRleHQYAiABKAsyHi50aHJ1LmNvbW1vbi52MS5WZXJzaW9uQ29udGV4dEID4EECEkAKDW1pbl9jb25zZW5zdXMYAyABKA4yHy50aHJ1LmNvbW1vbi52MS5Db25zZW5zdXNTdGF0dXNCA+BBAUgAiAEBQhAKDl9taW5fY29uc2Vuc3VzIlIKGUdlbmVyYXRlU3RhdGVQcm9vZlJlcXVlc3QSNQoHcmVxdWVzdBgBIAEoCzIfLnRocnUuY29yZS52MS5TdGF0ZVByb29mUmVxdWVzdEID4EECIkoKGkdlbmVyYXRlU3RhdGVQcm9vZlJlc3BvbnNlEiwKBXByb29mGAEgASgLMhgudGhydS5jb3JlLnYxLlN0YXRlUHJvb2ZCA+BBAiLeAgoPR2V0QmxvY2tSZXF1ZXN0EhMKBHNsb3QYASABKARCA+BBAUgAEjIKCmJsb2NrX2hhc2gYAiABKAsyFy50aHJ1LmNvcmUudjEuQmxvY2tIYXNoQgPgQQFIABIvCgR2aWV3GAMgASgOMhcudGhydS5jb3JlLnYxLkJsb2NrVmlld0ID4EEBSAGIAQESQAoNbWluX2NvbnNlbnN1cxgEIAEoDjIfLnRocnUuY29tbW9uLnYxLkNvbnNlbnN1c1N0YXR1c0ID4EEBSAKIAQE6aLpIZRpjChJibG9ja19zZWxlY3Rvcl9zZXQSJWVpdGhlciBzbG90IG9yIGJsb2NrX2hhc2ggbXVzdCBiZSBzZXQaJmhhcyh0aGlzLnNsb3QpIHx8IGhhcyh0aGlzLmJsb2NrX2hhc2gpQgoKCHNlbGVjdG9yQgcKBV92aWV3QhAKDl9taW5fY29uc2Vuc3VzIqsCChJHZXRSYXdCbG9ja1JlcXVlc3QSEwoEc2xvdBgBIAEoBEID4EEBSAASMgoKYmxvY2tfaGFzaBgCIAEoCzIXLnRocnUuY29yZS52MS5CbG9ja0hhc2hCA+BBAUgAEkAKDW1pbl9jb25zZW5zdXMYAyABKA4yHy50aHJ1LmNvbW1vbi52MS5Db25zZW5zdXNTdGF0dXNCA+BBAUgBiAEBOmy6SGkaZwoWcmF3X2Jsb2NrX3NlbGVjdG9yX3NldBIlZWl0aGVyIHNsb3Qgb3IgYmxvY2tfaGFzaCBtdXN0IGJlIHNldBomaGFzKHRoaXMuc2xvdCkgfHwgaGFzKHRoaXMuYmxvY2tfaGFzaClCCgoIc2VsZWN0b3JCEAoOX21pbl9jb25zZW5zdXMi9wIKE0xpc3RBY2NvdW50c1JlcXVlc3QSMQoEdmlldxgBIAEoDjIZLnRocnUuY29yZS52MS5BY2NvdW50Vmlld0ID4EEBSACIAQESQQoPdmVyc2lvbl9jb250ZXh0GAIgASgLMh4udGhydS5jb21tb24udjEuVmVyc2lvbkNvbnRleHRCA+BBAUgBiAEBEjAKBmZpbHRlchgDIAEoCzIWLnRocnUuY29tbW9uLnYxLkZpbHRlckID4EEBSAKIAQESMwoEcGFnZRgEIAEoCzIbLnRocnUuY29tbW9uLnYxLlBhZ2VSZXF1ZXN0QgPgQQFIA4gBARJACg1taW5fY29uc2Vuc3VzGAUgASgOMh8udGhydS5jb21tb24udjEuQ29uc2Vuc3VzU3RhdHVzQgPgQQFIBIgBAUIHCgVfdmlld0ISChBfdmVyc2lvbl9jb250ZXh0QgkKB19maWx0ZXJCBwoFX3BhZ2VCEAoOX21pbl9jb25zZW5zdXMigwEKFExpc3RBY2NvdW50c1Jlc3BvbnNlEiwKCGFjY291bnRzGAEgAygLMhUudGhydS5jb3JlLnYxLkFjY291bnRCA+BBARI0CgRwYWdlGAIgASgLMhwudGhydS5jb21tb24udjEuUGFnZVJlc3BvbnNlQgPgQQFIAIgBAUIHCgVfcGFnZSKcAgoRTGlzdEJsb2Nrc1JlcXVlc3QSMAoGZmlsdGVyGAEgASgLMhYudGhydS5jb21tb24udjEuRmlsdGVyQgPgQQFIAIgBARIzCgRwYWdlGAIgASgLMhsudGhydS5jb21tb24udjEuUGFnZVJlcXVlc3RCA+BBAUgBiAEBEi8KBHZpZXcYAyABKA4yFy50aHJ1LmNvcmUudjEuQmxvY2tWaWV3QgPgQQFIAogBARJACg1taW5fY29uc2Vuc3VzGAQgASgOMh8udGhydS5jb21tb24udjEuQ29uc2Vuc3VzU3RhdHVzQgPgQQFIA4gBAUIJCgdfZmlsdGVyQgcKBV9wYWdlQgcKBV92aWV3QhAKDl9taW5fY29uc2Vuc3VzIn0KEkxpc3RCbG9ja3NSZXNwb25zZRIoCgZibG9ja3MYASADKAsyEy50aHJ1LmNvcmUudjEuQmxvY2tCA+BBARI0CgRwYWdlGAIgASgLMhwudGhydS5jb21tb24udjEuUGFnZVJlc3BvbnNlQgPgQQFIAIgBAUIHCgVfcGFnZSLKAQohTGlzdFRyYW5zYWN0aW9uc0ZvckFjY291bnRSZXF1ZXN0EioKB2FjY291bnQYASABKAsyFC50aHJ1LmNvcmUudjEuUHVia2V5QgPgQQISMwoEcGFnZRgCIAEoCzIbLnRocnUuY29tbW9uLnYxLlBhZ2VSZXF1ZXN0QgPgQQFIAIgBARIwCgZmaWx0ZXIYAyABKAsyFi50aHJ1LmNvbW1vbi52MS5GaWx0ZXJCA+BBAUgBiAEBQgcKBV9wYWdlQgkKB19maWx0ZXIilQEKIkxpc3RUcmFuc2FjdGlvbnNGb3JBY2NvdW50UmVzcG9uc2USMAoKc2lnbmF0dXJlcxgBIAMoCzIXLnRocnUuY29yZS52MS5TaWduYXR1cmVCA+BBARI0CgRwYWdlGAIgASgLMhwudGhydS5jb21tb24udjEuUGFnZVJlc3BvbnNlQgPgQQFIAIgBAUIHCgVfcGFnZSITChFHZXRWZXJzaW9uUmVxdWVzdCKQAQoSR2V0VmVyc2lvblJlc3BvbnNlEkkKCHZlcnNpb25zGAEgAygLMjIudGhydS5zZXJ2aWNlcy52MS5HZXRWZXJzaW9uUmVzcG9uc2UuVmVyc2lvbnNFbnRyeUID4EECGi8KDVZlcnNpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKHAQoPR2V0RXZlbnRSZXF1ZXN0Eh0KCGV2ZW50X2lkGAEgASgJQgvgQQK6SAVyAxiAARJBCg92ZXJzaW9uX2NvbnRleHQYAiABKAsyHi50aHJ1LmNvbW1vbi52MS5WZXJzaW9uQ29udGV4dEID4EEBSACIAQFCEgoQX3ZlcnNpb25fY29udGV4dCLpAgoFRXZlbnQSFQoIZXZlbnRfaWQYASABKAlCA+BBAhI7ChV0cmFuc2FjdGlvbl9zaWduYXR1cmUYAiABKAsyFy50aHJ1LmNvcmUudjEuU2lnbmF0dXJlQgPgQQISLwoHcHJvZ3JhbRgDIAEoCzIULnRocnUuY29yZS52MS5QdWJrZXlCA+BBAUgAiAEBEhkKB3BheWxvYWQYBCABKAxCA+BBAUgBiAEBEhYKBHNsb3QYBSABKARCA+BBAUgCiAEBEhoKCGNhbGxfaWR4GAYgASgNQgPgQQFIA4gBARIdCgtwcm9ncmFtX2lkeBgHIAEoDUID4EEBSASIAQESHgoMcGF5bG9hZF9zaXplGAggASgNQgPgQQFIBYgBAUIKCghfcHJvZ3JhbUIKCghfcGF5bG9hZEIHCgVfc2xvdEILCglfY2FsbF9pZHhCDgoMX3Byb2dyYW1faWR4Qg8KDV9wYXlsb2FkX3NpemUiTgobR2V0VHJhbnNhY3Rpb25TdGF0dXNSZXF1ZXN0Ei8KCXNpZ25hdHVyZRgBIAEoCzIXLnRocnUuY29yZS52MS5TaWduYXR1cmVCA+BBAiKBAgoRVHJhbnNhY3Rpb25TdGF0dXMSLwoJc2lnbmF0dXJlGAEgASgLMhcudGhydS5jb3JlLnYxLlNpZ25hdHVyZUID4EECEkMKEGNvbnNlbnN1c19zdGF0dXMYAiABKA4yHy50aHJ1LmNvbW1vbi52MS5Db25zZW5zdXNTdGF0dXNCA+BBAUgAiAEBEkwKEGV4ZWN1dGlvbl9yZXN1bHQYAyABKAsyKC50aHJ1LmNvcmUudjEuVHJhbnNhY3Rpb25FeGVjdXRpb25SZXN1bHRCA+BBAUgBiAEBQhMKEV9jb25zZW5zdXNfc3RhdHVzQhMKEV9leGVjdXRpb25fcmVzdWx0IhIKEEdldEhlaWdodFJlcXVlc3QiaQoRR2V0SGVpZ2h0UmVzcG9uc2USFgoJZmluYWxpemVkGAEgASgEQgPgQQISHQoQbG9jYWxseV9leGVjdXRlZBgCIAEoBEID4EECEh0KEGNsdXN0ZXJfZXhlY3V0ZWQYAyABKARCA+BBAjKpDwoMUXVlcnlTZXJ2aWNlEmgKCUdldEhlaWdodBIiLnRocnUuc2VydmljZXMudjEuR2V0SGVpZ2h0UmVxdWVzdBojLnRocnUuc2VydmljZXMudjEuR2V0SGVpZ2h0UmVzcG9uc2UiEoLT5JMCDBIKL3YxL2hlaWdodBJ4CgpHZXRBY2NvdW50EiMudGhydS5zZXJ2aWNlcy52MS5HZXRBY2NvdW50UmVxdWVzdBoVLnRocnUuY29yZS52MS5BY2NvdW50Ii7aQQdhZGRyZXNzgtPkkwIeEhwvdjEvYWNjb3VudHMve2FkZHJlc3MudmFsdWV9EoUBCg1HZXRSYXdBY2NvdW50EiYudGhydS5zZXJ2aWNlcy52MS5HZXRSYXdBY2NvdW50UmVxdWVzdBoYLnRocnUuY29yZS52MS5SYXdBY2NvdW50IjLaQQdhZGRyZXNzgtPkkwIiEiAvdjEvYWNjb3VudHMve2FkZHJlc3MudmFsdWV9OnJhdxKMAQoOR2V0VHJhbnNhY3Rpb24SJy50aHJ1LnNlcnZpY2VzLnYxLkdldFRyYW5zYWN0aW9uUmVxdWVzdBoZLnRocnUuY29yZS52MS5UcmFuc2FjdGlvbiI22kEJc2lnbmF0dXJlgtPkkwIkEiIvdjEvdHJhbnNhY3Rpb25zL3tzaWduYXR1cmUudmFsdWV9EpkBChFHZXRSYXdUcmFuc2FjdGlvbhIqLnRocnUuc2VydmljZXMudjEuR2V0UmF3VHJhbnNhY3Rpb25SZXF1ZXN0GhwudGhydS5jb3JlLnYxLlJhd1RyYW5zYWN0aW9uIjraQQlzaWduYXR1cmWC0+STAigSJi92MS90cmFuc2FjdGlvbnMve3NpZ25hdHVyZS52YWx1ZX06cmF3EoYBCghHZXRCbG9jaxIhLnRocnUuc2VydmljZXMudjEuR2V0QmxvY2tSZXF1ZXN0GhMudGhydS5jb3JlLnYxLkJsb2NrIkKC0+STAjxaJxIlL3YxL2Jsb2Nrcy9ieS1oYXNoL3tibG9ja19oYXNoLnZhbHVlfRIRL3YxL2Jsb2Nrcy97c2xvdH0SlwEKC0dldFJhd0Jsb2NrEiQudGhydS5zZXJ2aWNlcy52MS5HZXRSYXdCbG9ja1JlcXVlc3QaFi50aHJ1LmNvcmUudjEuUmF3QmxvY2siSoLT5JMCRForEikvdjEvYmxvY2tzL2J5LWhhc2gve2Jsb2NrX2hhc2gudmFsdWV9OnJhdxIVL3YxL2Jsb2Nrcy97c2xvdH06cmF3EnMKDExpc3RBY2NvdW50cxIlLnRocnUuc2VydmljZXMudjEuTGlzdEFjY291bnRzUmVxdWVzdBomLnRocnUuc2VydmljZXMudjEuTGlzdEFjY291bnRzUmVzcG9uc2UiFILT5JMCDhIML3YxL2FjY291bnRzEmsKCkxpc3RCbG9ja3MSIy50aHJ1LnNlcnZpY2VzLnYxLkxpc3RCbG9ja3NSZXF1ZXN0GiQudGhydS5zZXJ2aWNlcy52MS5MaXN0QmxvY2tzUmVzcG9uc2UiEoLT5JMCDBIKL3YxL2Jsb2NrcxLEAQoaTGlzdFRyYW5zYWN0aW9uc0ZvckFjY291bnQSMy50aHJ1LnNlcnZpY2VzLnYxLkxpc3RUcmFuc2FjdGlvbnNGb3JBY2NvdW50UmVxdWVzdBo0LnRocnUuc2VydmljZXMudjEuTGlzdFRyYW5zYWN0aW9uc0ZvckFjY291bnRSZXNwb25zZSI72kEHYWNjb3VudILT5JMCKxIpL3YxL2FjY291bnRzL3thY2NvdW50LnZhbHVlfS90cmFuc2FjdGlvbnMScAoIR2V0RXZlbnQSIS50aHJ1LnNlcnZpY2VzLnYxLkdldEV2ZW50UmVxdWVzdBoXLnRocnUuc2VydmljZXMudjEuRXZlbnQiKNpBCGV2ZW50X2lkgtPkkwIXEhUvdjEvZXZlbnRzL3tldmVudF9pZH0SqQEKFEdldFRyYW5zYWN0aW9uU3RhdHVzEi0udGhydS5zZXJ2aWNlcy52MS5HZXRUcmFuc2FjdGlvblN0YXR1c1JlcXVlc3QaIy50aHJ1LnNlcnZpY2VzLnYxLlRyYW5zYWN0aW9uU3RhdHVzIj3aQQlzaWduYXR1cmWC0+STAisSKS92MS90cmFuc2FjdGlvbnMve3NpZ25hdHVyZS52YWx1ZX06c3RhdHVzEpQBChJHZW5lcmF0ZVN0YXRlUHJvb2YSKy50aHJ1LnNlcnZpY2VzLnYxLkdlbmVyYXRlU3RhdGVQcm9vZlJlcXVlc3QaLC50aHJ1LnNlcnZpY2VzLnYxLkdlbmVyYXRlU3RhdGVQcm9vZlJlc3BvbnNlIiOC0+STAh06ASoiGC92MS9zdGF0ZXByb29mczpnZW5lcmF0ZRJsCgpHZXRWZXJzaW9uEiMudGhydS5zZXJ2aWNlcy52MS5HZXRWZXJzaW9uUmVxdWVzdBokLnRocnUuc2VydmljZXMudjEuR2V0VmVyc2lvblJlc3BvbnNlIhOC0+STAg0SCy92MS92ZXJzaW9uGhPKQRBhcGkudGhydS5uZXR3b3JrQtwBChRjb20udGhydS5zZXJ2aWNlcy52MUIRUXVlcnlTZXJ2aWNlUHJvdG9QAVpIZ2l0aHViLmNvbS9VbnRvLUxhYnMvdGhydS1uZXQvZ3JwYy9wa2cvcHJvdG8vdGhydS9zZXJ2aWNlcy92MTtzZXJ2aWNlc3YxogIDVFNYqgIQVGhydS5TZXJ2aWNlcy5WMboCBFRIVVPKAhBUaHJ1XFNlcnZpY2VzXFYx4gIcVGhydVxTZXJ2aWNlc1xWMVxHUEJNZXRhZGF0YeoCElRocnU6OlNlcnZpY2VzOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_api_annotations, file_google_api_client, file_google_api_field_behavior, file_thru_common_v1_consensus, file_thru_common_v1_filters, file_thru_common_v1_pagination, file_thru_core_v1_account, file_thru_core_v1_block, file_thru_core_v1_state, file_thru_core_v1_transaction, file_thru_core_v1_types]);
1047
- var GetAccountRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 0);
1048
- var GetRawAccountRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 1);
1049
- var GetTransactionRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 2);
1050
- var GetRawTransactionRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 3);
1051
- var GenerateStateProofRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 4);
1052
- var GetBlockRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 6);
1053
- var GetRawBlockRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 7);
1054
- var ListAccountsRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 8);
1055
- var ListBlocksRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 10);
1056
- var ListTransactionsForAccountRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 12);
1057
- var GetVersionRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 14);
1058
- var GetEventRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 16);
1059
- var GetTransactionStatusRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 18);
1060
- var GetHeightRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_query_service, 20);
1061
- var QueryService = /* @__PURE__ */ serviceDesc(file_thru_services_v1_query_service, 0);
1062
-
1063
- // thru-ts-client-sdk/modules/height.ts
1064
1320
  function getBlockHeight(ctx) {
1065
1321
  const request = create(GetHeightRequestSchema);
1066
- return ctx.query.getHeight(request).then((proto) => HeightSnapshot.fromProto(proto));
1322
+ return ctx.query.getHeight(request, withCallOptions(ctx)).then((proto) => HeightSnapshot.fromProto(proto));
1067
1323
  }
1068
1324
  function toSignature(value) {
1069
- let bytes;
1070
- if (value instanceof Uint8Array) {
1071
- if (value.length !== 64) {
1072
- throw new Error("signature must contain 64 bytes");
1073
- }
1074
- bytes = value;
1075
- } else if (typeof value === "string") {
1076
- bytes = value.startsWith("ts") ? decodeSignature(value) : decodeBase64(value);
1077
- } else {
1078
- throw new Error("signature is required");
1079
- }
1080
- if (bytes.length !== 64) {
1081
- throw new Error("signature must contain 64 bytes");
1325
+ return toSignatureProto(value);
1326
+ }
1327
+ function toSignatureBytes(value) {
1328
+ return signatureBytesFromInput(value);
1329
+ }
1330
+ function toTsSignature(value, field = "tsSignature") {
1331
+ if (typeof value === "string" && value.startsWith("ts")) {
1332
+ return toTsSignatureProto(value, field);
1082
1333
  }
1083
- return create(SignatureSchema, { value: bytes });
1334
+ return toTsSignatureProto(signatureBytesFromInput(value, field), field);
1084
1335
  }
1085
1336
  function toPubkey(value, field) {
1086
- let bytes;
1087
- if (value instanceof Uint8Array) {
1088
- bytes = value;
1089
- } else if (typeof value === "string") {
1090
- bytes = value.startsWith("ta") ? decodeAddress(value) : decodeBase64(value);
1091
- } else {
1092
- throw new Error(`${field} is required`);
1093
- }
1094
- if (bytes.length !== 32) {
1095
- throw new Error(`${field} must contain 32 bytes`);
1337
+ return toPubkeyProto(value, field);
1338
+ }
1339
+ function toPubkeyBytes(value, field) {
1340
+ return pubkeyBytesFromInput(value, field);
1341
+ }
1342
+ function toTaPubkey(value, field = "taPubkey") {
1343
+ if (typeof value === "string" && value.startsWith("ta")) {
1344
+ return toTaPubkeyProto(value, field);
1096
1345
  }
1097
- return create(PubkeySchema, { value: bytes });
1346
+ return toTaPubkeyProto(pubkeyBytesFromInput(value, field), field);
1098
1347
  }
1099
1348
  function toBlockHash(value) {
1100
1349
  return create(BlockHashSchema, { value: ensureBytes(value, "blockHash") });
@@ -1115,25 +1364,7 @@ function deriveProgramAddress(options) {
1115
1364
  };
1116
1365
  }
1117
1366
  function normalizeProgramAddress(value) {
1118
- if (value instanceof Uint8Array) {
1119
- if (value.length !== 32) {
1120
- throw new Error("Program address must contain 32 bytes");
1121
- }
1122
- return new Uint8Array(value);
1123
- }
1124
- if (typeof value === "string") {
1125
- if (value.startsWith("ta") && value.length === 46) {
1126
- return decodeAddress(value);
1127
- }
1128
- if (isHexString(value)) {
1129
- const bytes = hexToBytes(value);
1130
- if (bytes.length !== 32) {
1131
- throw new Error("Program address hex string must decode to 32 bytes");
1132
- }
1133
- return bytes;
1134
- }
1135
- }
1136
- throw new Error("Program address must be a 32-byte value, ta-address, or 64-character hex string");
1367
+ return pubkeyBytesFromInput(value, "Program address");
1137
1368
  }
1138
1369
  function normalizeSeed(value) {
1139
1370
  if (value instanceof Uint8Array) {
@@ -1173,7 +1404,7 @@ function normalizeSeed(value) {
1173
1404
  // thru-ts-client-sdk/domain/proofs/StateProof.ts
1174
1405
  var StateProof = class _StateProof {
1175
1406
  constructor(params) {
1176
- this.proof = copyBytes2(params.proof);
1407
+ this.proof = copyBytes3(params.proof);
1177
1408
  this.slot = params.slot;
1178
1409
  }
1179
1410
  static fromProto(proto) {
@@ -1183,7 +1414,7 @@ var StateProof = class _StateProof {
1183
1414
  });
1184
1415
  }
1185
1416
  };
1186
- function copyBytes2(bytes) {
1417
+ function copyBytes3(bytes) {
1187
1418
  const copy = new Uint8Array(bytes.length);
1188
1419
  copy.set(bytes);
1189
1420
  return copy;
@@ -1194,19 +1425,26 @@ var proofs_exports = {};
1194
1425
  __export(proofs_exports, {
1195
1426
  generateStateProof: () => generateStateProof
1196
1427
  });
1197
- function generateStateProof(ctx, options) {
1428
+ async function generateStateProof(ctx, options) {
1429
+ let targetSlot = options.targetSlot;
1430
+ if (targetSlot === void 0) {
1431
+ const height = await getBlockHeight(ctx);
1432
+ targetSlot = height.finalized;
1433
+ }
1198
1434
  const request = create(StateProofRequestSchema, {
1199
1435
  address: options.address ? toPubkey(options.address, "address") : void 0,
1200
1436
  proofType: options.proofType,
1201
- targetSlot: options.targetSlot
1437
+ targetSlot
1202
1438
  });
1203
1439
  const schemaRequest = create(GenerateStateProofRequestSchema, { request });
1204
- return ctx.query.generateStateProof(schemaRequest).then((response) => {
1205
- if (!response.proof) {
1206
- throw new Error("State proof response missing proof");
1207
- }
1208
- return StateProof.fromProto(response.proof);
1209
- });
1440
+ const response = await ctx.query.generateStateProof(
1441
+ schemaRequest,
1442
+ withCallOptions(ctx)
1443
+ );
1444
+ if (!response.proof) {
1445
+ throw new Error("State proof response missing proof");
1446
+ }
1447
+ return StateProof.fromProto(response.proof);
1210
1448
  }
1211
1449
 
1212
1450
  // thru-ts-client-sdk/modules/accounts.ts
@@ -1217,24 +1455,6 @@ __export(accounts_exports, {
1217
1455
  getRawAccount: () => getRawAccount,
1218
1456
  listAccounts: () => listAccounts
1219
1457
  });
1220
- var DEFAULT_HOST = "https://grpc-web.alphanet.thruput.org";
1221
- var DEFAULT_ACCOUNT_VIEW = 4 /* FULL */;
1222
- var DEFAULT_BLOCK_VIEW = 4 /* FULL */;
1223
- var DEFAULT_TRANSACTION_VIEW = 4 /* FULL */;
1224
- var DEFAULT_MIN_CONSENSUS = 0 /* UNSPECIFIED */;
1225
- var DEFAULT_VERSION_CONTEXT = create(VersionContextSchema, {
1226
- version: {
1227
- case: "current",
1228
- value: create(CurrentVersionSchema, {})
1229
- }
1230
- });
1231
- var DEFAULT_FEE = 1n;
1232
- var DEFAULT_COMPUTE_UNITS = 3e8;
1233
- var DEFAULT_STATE_UNITS = 1e4;
1234
- var DEFAULT_MEMORY_UNITS = 1e4;
1235
- var DEFAULT_EXPIRY_AFTER = 100;
1236
-
1237
- // thru-ts-client-sdk/modules/accounts.ts
1238
1458
  function getAccount(ctx, address, options = {}) {
1239
1459
  const request = create(GetAccountRequestSchema, {
1240
1460
  address: toPubkey(address, "address"),
@@ -1243,7 +1463,7 @@ function getAccount(ctx, address, options = {}) {
1243
1463
  minConsensus: options.minConsensus ?? DEFAULT_MIN_CONSENSUS,
1244
1464
  dataSlice: options.dataSlice
1245
1465
  });
1246
- return ctx.query.getAccount(request).then(Account.fromProto);
1466
+ return ctx.query.getAccount(request, withCallOptions(ctx)).then(Account.fromProto);
1247
1467
  }
1248
1468
  function getRawAccount(ctx, address, options = {}) {
1249
1469
  const request = create(GetRawAccountRequestSchema, {
@@ -1252,7 +1472,7 @@ function getRawAccount(ctx, address, options = {}) {
1252
1472
  versionContext: options.versionContext ?? DEFAULT_VERSION_CONTEXT,
1253
1473
  minConsensus: options.minConsensus ?? DEFAULT_MIN_CONSENSUS
1254
1474
  });
1255
- return ctx.query.getRawAccount(request);
1475
+ return ctx.query.getRawAccount(request, withCallOptions(ctx));
1256
1476
  }
1257
1477
  function listAccounts(ctx, options) {
1258
1478
  const request = create(ListAccountsRequestSchema, {
@@ -1262,7 +1482,7 @@ function listAccounts(ctx, options) {
1262
1482
  page: options.page?.toProto(),
1263
1483
  minConsensus: options.minConsensus ?? DEFAULT_MIN_CONSENSUS
1264
1484
  });
1265
- return ctx.query.listAccounts(request).then((response) => ({
1485
+ return ctx.query.listAccounts(request, withCallOptions(ctx)).then((response) => ({
1266
1486
  accounts: response.accounts.map((proto) => Account.fromProto(proto)),
1267
1487
  page: PageResponse.fromProto(response.page)
1268
1488
  }));
@@ -1303,6 +1523,22 @@ async function createAccount(ctx, options) {
1303
1523
  }
1304
1524
 
1305
1525
  // thru-ts-client-sdk/domain/transactions/streaming.ts
1526
+ function toStreamTransactionUpdate(proto) {
1527
+ const signatureBytes = proto.signature?.value ? new Uint8Array(proto.signature.value) : new Uint8Array();
1528
+ const executionResult = proto.executionResult ? Transaction.executionResultFromProto(proto.executionResult) : void 0;
1529
+ if (!proto.header) {
1530
+ return {
1531
+ kind: "partial",
1532
+ signature: signatureBytes,
1533
+ slot: proto.slot,
1534
+ executionResult
1535
+ };
1536
+ }
1537
+ return {
1538
+ kind: "full",
1539
+ transaction: Transaction.fromProto(proto)
1540
+ };
1541
+ }
1306
1542
  function toTrackTransactionUpdate(response) {
1307
1543
  const signatureBytes = response.signature?.value ? new Uint8Array(response.signature.value) : void 0;
1308
1544
  const executionResult = response.executionResult ? Transaction.executionResultFromProto(response.executionResult) : void 0;
@@ -1318,7 +1554,7 @@ function toTrackTransactionUpdate(response) {
1318
1554
  // thru-ts-client-sdk/domain/blocks/BlockFooter.ts
1319
1555
  var BlockFooter = class _BlockFooter {
1320
1556
  constructor(params) {
1321
- this.signature = copyBytes3(params.signature);
1557
+ this.signature = copyBytes4(params.signature);
1322
1558
  this.status = params.status;
1323
1559
  this.consumedComputeUnits = params.consumedComputeUnits;
1324
1560
  this.consumedStateUnits = params.consumedStateUnits;
@@ -1332,7 +1568,7 @@ var BlockFooter = class _BlockFooter {
1332
1568
  });
1333
1569
  }
1334
1570
  };
1335
- function copyBytes3(bytes) {
1571
+ function copyBytes4(bytes) {
1336
1572
  if (!bytes) return void 0;
1337
1573
  const out = new Uint8Array(bytes.length);
1338
1574
  out.set(bytes);
@@ -1344,8 +1580,8 @@ var BlockHeader = class _BlockHeader {
1344
1580
  constructor(params) {
1345
1581
  this.slot = params.slot;
1346
1582
  this.version = params.version;
1347
- this.headerSignature = copyBytes4(params.headerSignature);
1348
- this.producer = copyBytes4(params.producer);
1583
+ this.headerSignature = copyBytes5(params.headerSignature);
1584
+ this.producer = copyBytes5(params.producer);
1349
1585
  this.expiryTimestamp = params.expiryTimestamp;
1350
1586
  this.startSlot = params.startSlot;
1351
1587
  this.expiryAfter = params.expiryAfter;
@@ -1353,7 +1589,7 @@ var BlockHeader = class _BlockHeader {
1353
1589
  this.maxComputeUnits = params.maxComputeUnits;
1354
1590
  this.maxStateUnits = params.maxStateUnits;
1355
1591
  this.price = params.price;
1356
- this.blockHash = copyBytes4(params.blockHash);
1592
+ this.blockHash = copyBytes5(params.blockHash);
1357
1593
  }
1358
1594
  static fromProto(proto) {
1359
1595
  return new _BlockHeader({
@@ -1388,7 +1624,7 @@ var BlockHeader = class _BlockHeader {
1388
1624
  });
1389
1625
  }
1390
1626
  };
1391
- function copyBytes4(bytes) {
1627
+ function copyBytes5(bytes) {
1392
1628
  if (!bytes) return void 0;
1393
1629
  const out = new Uint8Array(bytes.length);
1394
1630
  out.set(bytes);
@@ -1418,7 +1654,6 @@ var Block = class _Block {
1418
1654
  body: transactionBody,
1419
1655
  consensusStatus: proto.consensusStatus
1420
1656
  });
1421
- block.blockTimeNs = timestampToNanoseconds(block.header.expiryTimestamp);
1422
1657
  block.attestorPayment = block.footer?.consumedComputeUnits ?? 0n;
1423
1658
  return block;
1424
1659
  }
@@ -1516,7 +1751,7 @@ var Block = class _Block {
1516
1751
  offset += 4;
1517
1752
  bytes.fill(0, offset, offset + 4);
1518
1753
  offset += 4;
1519
- const blockTimeNs = this.blockTimeNs ?? expiryTimestampNs;
1754
+ const blockTimeNs = this.blockTimeNs ?? 0n;
1520
1755
  view.setBigUint64(offset, blockTimeNs, true);
1521
1756
  return bytes;
1522
1757
  }
@@ -1627,7 +1862,7 @@ async function getBlock(ctx, selector, options = {}) {
1627
1862
  view: options.view ?? DEFAULT_BLOCK_VIEW,
1628
1863
  minConsensus: options.minConsensus ?? DEFAULT_MIN_CONSENSUS
1629
1864
  });
1630
- const proto = await ctx.query.getBlock(request);
1865
+ const proto = await ctx.query.getBlock(request, withCallOptions(ctx));
1631
1866
  const protoBlock = Block.fromProto(proto);
1632
1867
  try {
1633
1868
  const rawBlock = await getRawBlock(ctx, selector);
@@ -1651,7 +1886,7 @@ function getRawBlock(ctx, selector, options = {}) {
1651
1886
  selector: isSlotSelector(selector) ? { case: "slot", value: typeof selector.slot === "bigint" ? selector.slot : BigInt(selector.slot) } : { case: "blockHash", value: toBlockHash(selector.blockHash) },
1652
1887
  minConsensus: options.minConsensus ?? DEFAULT_MIN_CONSENSUS
1653
1888
  });
1654
- return ctx.query.getRawBlock(request);
1889
+ return ctx.query.getRawBlock(request, withCallOptions(ctx));
1655
1890
  }
1656
1891
  async function listBlocks(ctx, options = {}) {
1657
1892
  const request = create(ListBlocksRequestSchema, {
@@ -1660,13 +1895,109 @@ async function listBlocks(ctx, options = {}) {
1660
1895
  view: options.view ?? DEFAULT_BLOCK_VIEW,
1661
1896
  minConsensus: options.minConsensus ?? DEFAULT_MIN_CONSENSUS
1662
1897
  });
1663
- const response = await ctx.query.listBlocks(request);
1898
+ const response = await ctx.query.listBlocks(request, withCallOptions(ctx));
1664
1899
  return {
1665
1900
  blocks: response.blocks.map((proto) => Block.fromProto(proto)),
1666
1901
  page: PageResponse.fromProto(response.page)
1667
1902
  };
1668
1903
  }
1669
1904
 
1905
+ // thru-ts-client-sdk/modules/consensus.ts
1906
+ var consensus_exports = {};
1907
+ __export(consensus_exports, {
1908
+ consensusStatusToString: () => consensusStatusToString,
1909
+ currentOrHistoricalVersionContext: () => currentOrHistoricalVersionContext,
1910
+ currentVersionContext: () => currentVersionContext,
1911
+ seqVersionContext: () => seqVersionContext,
1912
+ slotVersionContext: () => slotVersionContext,
1913
+ timestampVersionContext: () => timestampVersionContext,
1914
+ versionContext: () => versionContext
1915
+ });
1916
+ function currentVersionContext() {
1917
+ return create(VersionContextSchema, {
1918
+ version: { case: "current", value: create(CurrentVersionSchema) }
1919
+ });
1920
+ }
1921
+ function currentOrHistoricalVersionContext() {
1922
+ return create(VersionContextSchema, {
1923
+ version: { case: "currentOrHistorical", value: create(CurrentOrHistoricalVersionSchema) }
1924
+ });
1925
+ }
1926
+ function slotVersionContext(slot) {
1927
+ return create(VersionContextSchema, {
1928
+ version: { case: "slot", value: toUint64(slot, "slot") }
1929
+ });
1930
+ }
1931
+ function timestampVersionContext(value) {
1932
+ return create(VersionContextSchema, {
1933
+ version: { case: "timestamp", value: normalizeTimestamp(value) }
1934
+ });
1935
+ }
1936
+ function seqVersionContext(seq) {
1937
+ return create(VersionContextSchema, {
1938
+ version: { case: "seq", value: toUint64(seq, "seq") }
1939
+ });
1940
+ }
1941
+ function versionContext(input) {
1942
+ if (!input) {
1943
+ return currentVersionContext();
1944
+ }
1945
+ if ("version" in input) {
1946
+ return input;
1947
+ }
1948
+ if ("current" in input) {
1949
+ return currentVersionContext();
1950
+ }
1951
+ if ("currentOrHistorical" in input) {
1952
+ return currentOrHistoricalVersionContext();
1953
+ }
1954
+ if ("slot" in input) {
1955
+ return slotVersionContext(input.slot);
1956
+ }
1957
+ if ("timestamp" in input) {
1958
+ return timestampVersionContext(input.timestamp);
1959
+ }
1960
+ if ("seq" in input) {
1961
+ return seqVersionContext(input.seq);
1962
+ }
1963
+ throw new Error("Version context input must specify current, slot, timestamp, or seq");
1964
+ }
1965
+ function toUint64(value, field) {
1966
+ if (typeof value === "bigint") {
1967
+ if (value < 0n) {
1968
+ throw new Error(`${field} must be non-negative`);
1969
+ }
1970
+ return value;
1971
+ }
1972
+ if (!Number.isFinite(value) || !Number.isInteger(value) || value < 0) {
1973
+ throw new Error(`${field} must be a non-negative integer`);
1974
+ }
1975
+ return BigInt(value);
1976
+ }
1977
+ function normalizeTimestamp(value) {
1978
+ if (value instanceof Date) {
1979
+ const ms = value.getTime();
1980
+ return {
1981
+ seconds: BigInt(Math.floor(ms / 1e3)),
1982
+ nanos: ms % 1e3 * 1e6
1983
+ };
1984
+ }
1985
+ if (typeof value === "number") {
1986
+ if (!Number.isFinite(value)) {
1987
+ throw new Error("timestamp must be a finite number");
1988
+ }
1989
+ const ms = Math.trunc(value);
1990
+ return {
1991
+ seconds: BigInt(Math.floor(ms / 1e3)),
1992
+ nanos: ms % 1e3 * 1e6
1993
+ };
1994
+ }
1995
+ if (typeof value === "object" && value !== null) {
1996
+ return value;
1997
+ }
1998
+ throw new Error("timestamp must be a Date, number, or protobuf Timestamp");
1999
+ }
2000
+
1670
2001
  // thru-ts-client-sdk/domain/events/ChainEvent.ts
1671
2002
  var ChainEvent = class _ChainEvent {
1672
2003
  constructor(params) {
@@ -1674,9 +2005,9 @@ var ChainEvent = class _ChainEvent {
1674
2005
  throw new Error("ChainEvent id is required");
1675
2006
  }
1676
2007
  this.id = params.id;
1677
- this.transactionSignature = copyBytes5(params.transactionSignature);
1678
- this.program = copyBytes5(params.program);
1679
- this.payload = copyBytes5(params.payload);
2008
+ this.transactionSignature = copyBytes6(params.transactionSignature);
2009
+ this.program = copyBytes6(params.program);
2010
+ this.payload = copyBytes6(params.payload);
1680
2011
  this.slot = params.slot;
1681
2012
  this.callIndex = params.callIndex;
1682
2013
  this.programIndex = params.programIndex;
@@ -1708,7 +2039,7 @@ var ChainEvent = class _ChainEvent {
1708
2039
  });
1709
2040
  }
1710
2041
  };
1711
- function copyBytes5(input) {
2042
+ function copyBytes6(input) {
1712
2043
  if (!input) {
1713
2044
  return void 0;
1714
2045
  }
@@ -1737,7 +2068,7 @@ function getEvent(ctx, eventId, options = {}) {
1737
2068
  eventId,
1738
2069
  versionContext: options.versionContext ?? DEFAULT_VERSION_CONTEXT
1739
2070
  });
1740
- return ctx.query.getEvent(request).then((proto) => ChainEvent.fromQuery(proto));
2071
+ return ctx.query.getEvent(request, withCallOptions(ctx)).then((proto) => ChainEvent.fromQuery(proto));
1741
2072
  }
1742
2073
 
1743
2074
  // thru-ts-client-sdk/modules/keys.ts
@@ -1769,21 +2100,15 @@ function generateSeed() {
1769
2100
  // thru-ts-client-sdk/modules/streaming.ts
1770
2101
  var streaming_exports = {};
1771
2102
  __export(streaming_exports, {
2103
+ collectStream: () => collectStream,
2104
+ firstStreamValue: () => firstStreamValue,
2105
+ forEachStreamValue: () => forEachStreamValue,
1772
2106
  streamAccountUpdates: () => streamAccountUpdates,
1773
2107
  streamBlocks: () => streamBlocks,
1774
2108
  streamEvents: () => streamEvents,
1775
2109
  streamTransactions: () => streamTransactions,
1776
2110
  trackTransaction: () => trackTransaction
1777
2111
  });
1778
- var file_thru_services_v1_streaming_service = /* @__PURE__ */ fileDesc("Cih0aHJ1L3NlcnZpY2VzL3YxL3N0cmVhbWluZ19zZXJ2aWNlLnByb3RvEhB0aHJ1LnNlcnZpY2VzLnYxIo0CChNTdHJlYW1CbG9ja3NSZXF1ZXN0EhwKCnN0YXJ0X3Nsb3QYASABKARCA+BBAUgAiAEBEjAKBmZpbHRlchgCIAEoCzIWLnRocnUuY29tbW9uLnYxLkZpbHRlckID4EEBSAGIAQESLwoEdmlldxgDIAEoDjIXLnRocnUuY29yZS52MS5CbG9ja1ZpZXdCA+BBAUgCiAEBEkAKDW1pbl9jb25zZW5zdXMYBCABKA4yHy50aHJ1LmNvbW1vbi52MS5Db25zZW5zdXNTdGF0dXNCA+BBAUgDiAEBQg0KC19zdGFydF9zbG90QgkKB19maWx0ZXJCBwoFX3ZpZXdCEAoOX21pbl9jb25zZW5zdXMiPwoUU3RyZWFtQmxvY2tzUmVzcG9uc2USJwoFYmxvY2sYASABKAsyEy50aHJ1LmNvcmUudjEuQmxvY2tCA+BBAiLCAQobU3RyZWFtQWNjb3VudFVwZGF0ZXNSZXF1ZXN0EioKB2FkZHJlc3MYASABKAsyFC50aHJ1LmNvcmUudjEuUHVia2V5QgPgQQISMQoEdmlldxgCIAEoDjIZLnRocnUuY29yZS52MS5BY2NvdW50Vmlld0ID4EEBSACIAQESMAoGZmlsdGVyGAQgASgLMhYudGhydS5jb21tb24udjEuRmlsdGVyQgPgQQFIAYgBAUIHCgVfdmlld0IJCgdfZmlsdGVyIr8BCg1BY2NvdW50VXBkYXRlEhEKBHNsb3QYASABKARCA+BBAhIxCgRwYWdlGAIgASgLMhkudGhydS5jb3JlLnYxLkFjY291bnRQYWdlQgPgQQFIAIgBARIxCgRtZXRhGAMgASgLMhkudGhydS5jb3JlLnYxLkFjY291bnRNZXRhQgPgQQFIAYgBARIYCgZkZWxldGUYBCABKAhCA+BBAUgCiAEBQgcKBV9wYWdlQgcKBV9tZXRhQgkKB19kZWxldGUihwEKHFN0cmVhbUFjY291bnRVcGRhdGVzUmVzcG9uc2USKQoIc25hcHNob3QYASABKAsyFS50aHJ1LmNvcmUudjEuQWNjb3VudEgAEjEKBnVwZGF0ZRgCIAEoCzIfLnRocnUuc2VydmljZXMudjEuQWNjb3VudFVwZGF0ZUgAQgkKB21lc3NhZ2UirAEKGVN0cmVhbVRyYW5zYWN0aW9uc1JlcXVlc3QSMAoGZmlsdGVyGAEgASgLMhYudGhydS5jb21tb24udjEuRmlsdGVyQgPgQQFIAIgBARJACg1taW5fY29uc2Vuc3VzGAIgASgOMh8udGhydS5jb21tb24udjEuQ29uc2Vuc3VzU3RhdHVzQgPgQQFIAYgBAUIJCgdfZmlsdGVyQhAKDl9taW5fY29uc2Vuc3VzIlEKGlN0cmVhbVRyYW5zYWN0aW9uc1Jlc3BvbnNlEjMKC3RyYW5zYWN0aW9uGAEgASgLMhkudGhydS5jb3JlLnYxLlRyYW5zYWN0aW9uQgPgQQIiUgoTU3RyZWFtRXZlbnRzUmVxdWVzdBIwCgZmaWx0ZXIYASABKAsyFi50aHJ1LmNvbW1vbi52MS5GaWx0ZXJCA+BBAUgAiAEBQgkKB19maWx0ZXIiogIKFFN0cmVhbUV2ZW50c1Jlc3BvbnNlEhUKCGV2ZW50X2lkGAEgASgJQgPgQQISGQoHcGF5bG9hZBgCIAEoDEID4EEBSACIAQESNwoJdGltZXN0YW1wGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EEBSAGIAQESKgoHcHJvZ3JhbRgEIAEoCzIULnRocnUuY29yZS52MS5QdWJrZXlCA+BBAhIVCghjYWxsX2lkeBgFIAEoDUID4EECEi8KCXNpZ25hdHVyZRgGIAEoCzIXLnRocnUuY29yZS52MS5TaWduYXR1cmVCA+BBAhIRCgRzbG90GAcgASgEQgPgQQJCCgoIX3BheWxvYWRCDAoKX3RpbWVzdGFtcCKMAQoXVHJhY2tUcmFuc2FjdGlvblJlcXVlc3QSLwoJc2lnbmF0dXJlGAEgASgLMhcudGhydS5jb3JlLnYxLlNpZ25hdHVyZUID4EECEjQKB3RpbWVvdXQYAiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CA+BBAUgAiAEBQgoKCF90aW1lb3V0ItQBChhUcmFja1RyYW5zYWN0aW9uUmVzcG9uc2USLwoJc2lnbmF0dXJlGAEgASgLMhcudGhydS5jb3JlLnYxLlNpZ25hdHVyZUID4EECEj4KEGNvbnNlbnN1c19zdGF0dXMYAiABKA4yHy50aHJ1LmNvbW1vbi52MS5Db25zZW5zdXNTdGF0dXNCA+BBARJHChBleGVjdXRpb25fcmVzdWx0GAMgASgLMigudGhydS5jb3JlLnYxLlRyYW5zYWN0aW9uRXhlY3V0aW9uUmVzdWx0QgPgQQEyrQQKEFN0cmVhbWluZ1NlcnZpY2USXwoMU3RyZWFtQmxvY2tzEiUudGhydS5zZXJ2aWNlcy52MS5TdHJlYW1CbG9ja3NSZXF1ZXN0GiYudGhydS5zZXJ2aWNlcy52MS5TdHJlYW1CbG9ja3NSZXNwb25zZTABEncKFFN0cmVhbUFjY291bnRVcGRhdGVzEi0udGhydS5zZXJ2aWNlcy52MS5TdHJlYW1BY2NvdW50VXBkYXRlc1JlcXVlc3QaLi50aHJ1LnNlcnZpY2VzLnYxLlN0cmVhbUFjY291bnRVcGRhdGVzUmVzcG9uc2UwARJxChJTdHJlYW1UcmFuc2FjdGlvbnMSKy50aHJ1LnNlcnZpY2VzLnYxLlN0cmVhbVRyYW5zYWN0aW9uc1JlcXVlc3QaLC50aHJ1LnNlcnZpY2VzLnYxLlN0cmVhbVRyYW5zYWN0aW9uc1Jlc3BvbnNlMAESXwoMU3RyZWFtRXZlbnRzEiUudGhydS5zZXJ2aWNlcy52MS5TdHJlYW1FdmVudHNSZXF1ZXN0GiYudGhydS5zZXJ2aWNlcy52MS5TdHJlYW1FdmVudHNSZXNwb25zZTABEmsKEFRyYWNrVHJhbnNhY3Rpb24SKS50aHJ1LnNlcnZpY2VzLnYxLlRyYWNrVHJhbnNhY3Rpb25SZXF1ZXN0GioudGhydS5zZXJ2aWNlcy52MS5UcmFja1RyYW5zYWN0aW9uUmVzcG9uc2UwAULgAQoUY29tLnRocnUuc2VydmljZXMudjFCFVN0cmVhbWluZ1NlcnZpY2VQcm90b1ABWkhnaXRodWIuY29tL1VudG8tTGFicy90aHJ1LW5ldC9ncnBjL3BrZy9wcm90by90aHJ1L3NlcnZpY2VzL3YxO3NlcnZpY2VzdjGiAgNUU1iqAhBUaHJ1LlNlcnZpY2VzLlYxugIEVEhVU8oCEFRocnVcU2VydmljZXNcVjHiAhxUaHJ1XFNlcnZpY2VzXFYxXEdQQk1ldGFkYXRh6gISVGhydTo6U2VydmljZXM6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_google_api_field_behavior, file_google_protobuf_duration, file_google_protobuf_timestamp, file_thru_common_v1_consensus, file_thru_common_v1_filters, file_thru_core_v1_account, file_thru_core_v1_block, file_thru_core_v1_transaction, file_thru_core_v1_types]);
1779
- var StreamBlocksRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_streaming_service, 0);
1780
- var StreamAccountUpdatesRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_streaming_service, 2);
1781
- var StreamTransactionsRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_streaming_service, 5);
1782
- var StreamEventsRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_streaming_service, 7);
1783
- var TrackTransactionRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_streaming_service, 9);
1784
- var StreamingService = /* @__PURE__ */ serviceDesc(file_thru_services_v1_streaming_service, 0);
1785
-
1786
- // thru-ts-client-sdk/modules/streaming.ts
1787
2112
  function streamBlocks(ctx, options = {}) {
1788
2113
  const request = create(StreamBlocksRequestSchema, {
1789
2114
  startSlot: options.startSlot,
@@ -1791,9 +2116,7 @@ function streamBlocks(ctx, options = {}) {
1791
2116
  view: options.view ?? DEFAULT_BLOCK_VIEW,
1792
2117
  minConsensus: options.minConsensus ?? DEFAULT_MIN_CONSENSUS
1793
2118
  });
1794
- const iterable = ctx.streaming.streamBlocks(request, {
1795
- signal: options.signal
1796
- });
2119
+ const iterable = ctx.streaming.streamBlocks(request, withCallOptions(ctx, { signal: options.signal }));
1797
2120
  async function* mapper() {
1798
2121
  for await (const response of iterable) {
1799
2122
  if (!response.block) {
@@ -1810,9 +2133,7 @@ function streamAccountUpdates(ctx, address, options = {}) {
1810
2133
  view: options.view ?? DEFAULT_ACCOUNT_VIEW,
1811
2134
  filter: options.filter?.toProto()
1812
2135
  });
1813
- const iterable = ctx.streaming.streamAccountUpdates(request, {
1814
- signal: options.signal
1815
- });
2136
+ const iterable = ctx.streaming.streamAccountUpdates(request, withCallOptions(ctx, { signal: options.signal }));
1816
2137
  async function* mapper() {
1817
2138
  for await (const response of iterable) {
1818
2139
  const update = toStreamAccountUpdate(response);
@@ -1829,15 +2150,17 @@ function streamTransactions(ctx, options = {}) {
1829
2150
  filter: options.filter?.toProto(),
1830
2151
  minConsensus: options.minConsensus ?? DEFAULT_MIN_CONSENSUS
1831
2152
  });
1832
- const iterable = ctx.streaming.streamTransactions(request, {
1833
- signal: options.signal
1834
- });
2153
+ const iterable = ctx.streaming.streamTransactions(request, withCallOptions(ctx, { signal: options.signal }));
1835
2154
  async function* mapper() {
1836
2155
  for await (const response of iterable) {
1837
2156
  if (!response.transaction) {
1838
2157
  continue;
1839
2158
  }
1840
- yield { transaction: Transaction.fromProto(response.transaction) };
2159
+ try {
2160
+ yield toStreamTransactionUpdate(response.transaction);
2161
+ } catch (err) {
2162
+ console.error("streamTransactions: failed to decode transaction update", err);
2163
+ }
1841
2164
  }
1842
2165
  }
1843
2166
  return mapper();
@@ -1846,9 +2169,7 @@ function streamEvents(ctx, options = {}) {
1846
2169
  const request = create(StreamEventsRequestSchema, {
1847
2170
  filter: options.filter?.toProto()
1848
2171
  });
1849
- const iterable = ctx.streaming.streamEvents(request, {
1850
- signal: options.signal
1851
- });
2172
+ const iterable = ctx.streaming.streamEvents(request, withCallOptions(ctx, { signal: options.signal }));
1852
2173
  async function* mapper() {
1853
2174
  for await (const response of iterable) {
1854
2175
  yield { event: ChainEvent.fromStream(response) };
@@ -1865,9 +2186,7 @@ function trackTransaction(ctx, signature, options = {}) {
1865
2186
  nanos: timeoutMs % 1e3 * 1e6
1866
2187
  } : void 0
1867
2188
  });
1868
- const iterable = ctx.streaming.trackTransaction(request, {
1869
- signal: options.signal
1870
- });
2189
+ const iterable = ctx.streaming.trackTransaction(request, withCallOptions(ctx, { signal: options.signal }));
1871
2190
  async function* mapper() {
1872
2191
  for await (const response of iterable) {
1873
2192
  yield toTrackTransactionUpdate(response);
@@ -1875,6 +2194,50 @@ function trackTransaction(ctx, signature, options = {}) {
1875
2194
  }
1876
2195
  return mapper();
1877
2196
  }
2197
+ async function collectStream(iterable, options = {}) {
2198
+ const { limit, signal } = options;
2199
+ throwIfAborted(signal);
2200
+ if (limit != null && limit <= 0) {
2201
+ return [];
2202
+ }
2203
+ const results = [];
2204
+ let count = 0;
2205
+ for await (const value of iterable) {
2206
+ throwIfAborted(signal);
2207
+ results.push(value);
2208
+ count += 1;
2209
+ if (limit != null && count >= limit) {
2210
+ break;
2211
+ }
2212
+ }
2213
+ return results;
2214
+ }
2215
+ async function firstStreamValue(iterable, options = {}) {
2216
+ const values = await collectStream(iterable, { ...options, limit: 1 });
2217
+ return values[0];
2218
+ }
2219
+ async function forEachStreamValue(iterable, handler, options = {}) {
2220
+ let index = 0;
2221
+ for await (const value of iterable) {
2222
+ throwIfAborted(options.signal);
2223
+ await handler(value, index++);
2224
+ }
2225
+ }
2226
+ function throwIfAborted(signal) {
2227
+ if (!signal) {
2228
+ return;
2229
+ }
2230
+ if (signal.aborted) {
2231
+ const reason = signal.reason;
2232
+ if (reason instanceof Error) {
2233
+ throw reason;
2234
+ }
2235
+ if (reason !== void 0) {
2236
+ throw new Error(String(reason));
2237
+ }
2238
+ throw new DOMException("The operation was aborted.", "AbortError");
2239
+ }
2240
+ }
1878
2241
 
1879
2242
  // thru-ts-client-sdk/modules/transactions.ts
1880
2243
  var transactions_exports = {};
@@ -1888,10 +2251,6 @@ __export(transactions_exports, {
1888
2251
  listTransactionsForAccount: () => listTransactionsForAccount,
1889
2252
  sendTransaction: () => sendTransaction
1890
2253
  });
1891
- var file_thru_services_v1_command_service = /* @__PURE__ */ fileDesc("CiZ0aHJ1L3NlcnZpY2VzL3YxL2NvbW1hbmRfc2VydmljZS5wcm90bxIQdGhydS5zZXJ2aWNlcy52MSI2ChZTZW5kVHJhbnNhY3Rpb25SZXF1ZXN0EhwKD3Jhd190cmFuc2FjdGlvbhgBIAEoDEID4EECIkoKF1NlbmRUcmFuc2FjdGlvblJlc3BvbnNlEi8KCXNpZ25hdHVyZRgBIAEoCzIXLnRocnUuY29yZS52MS5TaWduYXR1cmVCA+BBAiJSChxCYXRjaFNlbmRUcmFuc2FjdGlvbnNSZXF1ZXN0Eh0KEHJhd190cmFuc2FjdGlvbnMYASADKAxCA+BBAhITCgtudW1fcmV0cmllcxgCIAEoBSJoCh1CYXRjaFNlbmRUcmFuc2FjdGlvbnNSZXNwb25zZRIwCgpzaWduYXR1cmVzGAEgAygLMhcudGhydS5jb3JlLnYxLlNpZ25hdHVyZUID4EECEhUKCGFjY2VwdGVkGAIgAygIQgPgQQIyyQIKDkNvbW1hbmRTZXJ2aWNlEoMBCg9TZW5kVHJhbnNhY3Rpb24SKC50aHJ1LnNlcnZpY2VzLnYxLlNlbmRUcmFuc2FjdGlvblJlcXVlc3QaKS50aHJ1LnNlcnZpY2VzLnYxLlNlbmRUcmFuc2FjdGlvblJlc3BvbnNlIhuC0+STAhU6ASoiEC92MS90cmFuc2FjdGlvbnMSmwEKFUJhdGNoU2VuZFRyYW5zYWN0aW9ucxIuLnRocnUuc2VydmljZXMudjEuQmF0Y2hTZW5kVHJhbnNhY3Rpb25zUmVxdWVzdBovLnRocnUuc2VydmljZXMudjEuQmF0Y2hTZW5kVHJhbnNhY3Rpb25zUmVzcG9uc2UiIYLT5JMCGzoBKiIWL3YxL3RyYW5zYWN0aW9ucy9iYXRjaBoTykEQYXBpLnRocnUubmV0d29ya0LeAQoUY29tLnRocnUuc2VydmljZXMudjFCE0NvbW1hbmRTZXJ2aWNlUHJvdG9QAVpIZ2l0aHViLmNvbS9VbnRvLUxhYnMvdGhydS1uZXQvZ3JwYy9wa2cvcHJvdG8vdGhydS9zZXJ2aWNlcy92MTtzZXJ2aWNlc3YxogIDVFNYqgIQVGhydS5TZXJ2aWNlcy5WMboCBFRIVVPKAhBUaHJ1XFNlcnZpY2VzXFYx4gIcVGhydVxTZXJ2aWNlc1xWMVxHUEJNZXRhZGF0YeoCElRocnU6OlNlcnZpY2VzOjpWMWIGcHJvdG8z", [file_google_api_annotations, file_google_api_client, file_google_api_field_behavior, file_thru_core_v1_transaction, file_thru_core_v1_types]);
1892
- var SendTransactionRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_command_service, 0);
1893
- var BatchSendTransactionsRequestSchema = /* @__PURE__ */ messageDesc(file_thru_services_v1_command_service, 2);
1894
- var CommandService = /* @__PURE__ */ serviceDesc(file_thru_services_v1_command_service, 0);
1895
2254
  async function getTransaction(ctx, signature, options = {}) {
1896
2255
  const request = create(GetTransactionRequestSchema, {
1897
2256
  signature: toSignature(signature),
@@ -1899,7 +2258,7 @@ async function getTransaction(ctx, signature, options = {}) {
1899
2258
  versionContext: options.versionContext ?? DEFAULT_VERSION_CONTEXT,
1900
2259
  minConsensus: options.minConsensus ?? DEFAULT_MIN_CONSENSUS
1901
2260
  });
1902
- const proto = await ctx.query.getTransaction(request);
2261
+ const proto = await ctx.query.getTransaction(request, withCallOptions(ctx));
1903
2262
  return Transaction.fromProto(proto);
1904
2263
  }
1905
2264
  async function getRawTransaction(ctx, signature, options = {}) {
@@ -1908,13 +2267,13 @@ async function getRawTransaction(ctx, signature, options = {}) {
1908
2267
  versionContext: options.versionContext ?? DEFAULT_VERSION_CONTEXT,
1909
2268
  minConsensus: options.minConsensus ?? DEFAULT_MIN_CONSENSUS
1910
2269
  });
1911
- return ctx.query.getRawTransaction(request);
2270
+ return ctx.query.getRawTransaction(request, withCallOptions(ctx));
1912
2271
  }
1913
2272
  async function getTransactionStatus(ctx, signature) {
1914
2273
  const request = create(GetTransactionStatusRequestSchema, {
1915
2274
  signature: toSignature(signature)
1916
2275
  });
1917
- const proto = await ctx.query.getTransactionStatus(request);
2276
+ const proto = await ctx.query.getTransactionStatus(request, withCallOptions(ctx));
1918
2277
  return TransactionStatusSnapshot.fromProto(proto);
1919
2278
  }
1920
2279
  async function listTransactionsForAccount(ctx, account, options = {}) {
@@ -1923,7 +2282,10 @@ async function listTransactionsForAccount(ctx, account, options = {}) {
1923
2282
  filter: options.filter?.toProto(),
1924
2283
  page: options.page?.toProto()
1925
2284
  });
1926
- const response = await ctx.query.listTransactionsForAccount(request);
2285
+ const response = await ctx.query.listTransactionsForAccount(
2286
+ request,
2287
+ withCallOptions(ctx)
2288
+ );
1927
2289
  const transactions = await Promise.all(
1928
2290
  response.signatures.map((signatureMessage) => {
1929
2291
  if (!signatureMessage.value) {
@@ -1962,11 +2324,11 @@ async function batchSendTransactions(ctx, transactions, options = {}) {
1962
2324
  rawTransactions,
1963
2325
  numRetries: options.numRetries ?? 0
1964
2326
  });
1965
- return ctx.command.batchSendTransactions(request);
2327
+ return ctx.command.batchSendTransactions(request, withCallOptions(ctx));
1966
2328
  }
1967
2329
  async function sendRawTransaction(ctx, rawTransaction) {
1968
2330
  const request = create(SendTransactionRequestSchema, { rawTransaction });
1969
- const response = await ctx.command.sendTransaction(request);
2331
+ const response = await ctx.command.sendTransaction(request, withCallOptions(ctx));
1970
2332
  if (!response.signature?.value) {
1971
2333
  throw new Error("No signature returned from sendTransaction");
1972
2334
  }
@@ -2021,10 +2383,10 @@ function parseAccounts(accounts) {
2021
2383
  );
2022
2384
  const result = {};
2023
2385
  if (readWrite && readWrite.length > 0) {
2024
- result.readWriteAccounts = readWrite;
2386
+ result.readWriteAccounts = normalizeAccountList(readWrite);
2025
2387
  }
2026
2388
  if (readOnly && readOnly.length > 0) {
2027
- result.readOnlyAccounts = readOnly;
2389
+ result.readOnlyAccounts = normalizeAccountList(readOnly);
2028
2390
  }
2029
2391
  if (!result.readWriteAccounts && !result.readOnlyAccounts) {
2030
2392
  return void 0;
@@ -2108,6 +2470,6 @@ var VersionInfo = class _VersionInfo {
2108
2470
  }
2109
2471
  };
2110
2472
 
2111
- export { Account, Block, ChainEvent, CommandService, ConsensusStatus, DEFAULT_HOST, FilterParamValueSchema, FilterSchema, GetVersionRequestSchema, HeightSnapshot, PageRequest, PageResponse, QueryService, StateProof, StreamingService, Transaction, TransactionBuilder, TransactionStatusSnapshot, VersionInfo, accounts_exports, batchSendTransactions, blocks_exports, buildAndSignTransaction, buildTransaction, createAccount, deriveProgramAddress, events_exports, fromPrivateKey, generateKeyPair, generateStateProof, getAccount, getBlock, getBlockHeight, getEvent, getRawAccount, getRawBlock, getRawTransaction, getTransaction, getTransactionStatus, height_exports, keys_exports, listAccounts, listBlocks, listTransactionsForAccount, proofs_exports, sendTransaction, streamAccountUpdates, streamBlocks, streamEvents, streamTransactions, streaming_exports, toBlockHash, toPubkey, toSignature, trackTransaction, transactions_exports };
2112
- //# sourceMappingURL=chunk-M3N53HZF.js.map
2113
- //# sourceMappingURL=chunk-M3N53HZF.js.map
2473
+ export { Account, AccountView, Block, BlockView, ChainEvent, ConsensusStatus, ExecutionStatus, FilterParamValueSchema, FilterSchema, GetVersionRequestSchema, HeightSnapshot, PageRequest, PageResponse, StateProof, Transaction, TransactionBuilder, TransactionStatusSnapshot, TransactionView, TransactionVmError, VersionInfo, accounts_exports, batchSendTransactions, blocks_exports, buildAndSignTransaction, buildTransaction, collectStream, consensusStatusToString, consensus_exports, createAccount, createThruClientContext, currentOrHistoricalVersionContext, currentVersionContext, deriveProgramAddress, events_exports, firstStreamValue, forEachStreamValue, fromPrivateKey, generateKeyPair, generateStateProof, getAccount, getBlock, getBlockHeight, getEvent, getRawAccount, getRawBlock, getRawTransaction, getTransaction, getTransactionStatus, height_exports, keys_exports, listAccounts, listBlocks, listTransactionsForAccount, proofs_exports, protoPubkeyToBytes, protoSignatureToBytes, protoTaPubkeyToString, protoTsSignatureToString, pubkeyBytesFromInput, sendTransaction, seqVersionContext, signatureBytesFromInput, slotVersionContext, streamAccountUpdates, streamBlocks, streamEvents, streamTransactions, streaming_exports, timestampVersionContext, toBlockHash, toPubkey, toPubkeyBytes, toPubkeyProto, toSignature, toSignatureBytes, toSignatureProto, toTaPubkey, toTaPubkeyProto, toTsSignature, toTsSignatureProto, trackTransaction, transactions_exports, versionContext, withCallOptions };
2474
+ //# sourceMappingURL=chunk-QJACP7VX.js.map
2475
+ //# sourceMappingURL=chunk-QJACP7VX.js.map