@silvana-one/orderbook 1.1.18 → 1.1.20

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.
Files changed (31) hide show
  1. package/dist/node/index.cjs +81 -62
  2. package/dist/node/proto/silvana/news/v1/news_pb.js +1 -1
  3. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.d.ts +196 -26
  4. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js +67 -62
  5. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  6. package/dist/node/proto/silvana/pricing/v1/pricing_pb.js +1 -1
  7. package/dist/node/proto/silvana/settlement/v1/settlement_pb.d.ts +149 -38
  8. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js +12 -2
  9. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  10. package/dist/node/settlement.d.ts +15 -4
  11. package/dist/node/settlement.js +11 -1
  12. package/dist/node/settlement.js.map +1 -1
  13. package/dist/tsconfig.tsbuildinfo +1 -1
  14. package/dist/tsconfig.web.tsbuildinfo +1 -1
  15. package/dist/web/proto/silvana/news/v1/news_pb.js +1 -1
  16. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.d.ts +196 -26
  17. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js +67 -62
  18. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  19. package/dist/web/proto/silvana/pricing/v1/pricing_pb.js +1 -1
  20. package/dist/web/proto/silvana/settlement/v1/settlement_pb.d.ts +149 -38
  21. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js +12 -2
  22. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  23. package/dist/web/settlement.d.ts +15 -4
  24. package/dist/web/settlement.js +11 -1
  25. package/dist/web/settlement.js.map +1 -1
  26. package/package.json +4 -4
  27. package/src/proto/silvana/news/v1/news_pb.ts +1 -1
  28. package/src/proto/silvana/orderbook/v1/orderbook_pb.ts +286 -90
  29. package/src/proto/silvana/pricing/v1/pricing_pb.ts +1 -1
  30. package/src/proto/silvana/settlement/v1/settlement_pb.ts +163 -40
  31. package/src/settlement.ts +22 -3
@@ -1,4 +1,4 @@
1
- // @generated by protoc-gen-es v2.10.1 with parameter "target=ts,js_import_style=module"
1
+ // @generated by protoc-gen-es v2.10.2 with parameter "target=ts,js_import_style=module"
2
2
  // @generated from file proto/silvana/orderbook/v1/orderbook.proto (package silvana.orderbook.v1, syntax proto3)
3
3
  /* eslint-disable */
4
4
 
@@ -12,16 +12,16 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
12
12
  * Describes the file proto/silvana/orderbook/v1/orderbook.proto.
13
13
  */
14
14
  export const file_proto_silvana_orderbook_v1_orderbook: GenFile = /*@__PURE__*/
15
- fileDesc("Cipwcm90by9zaWx2YW5hL29yZGVyYm9vay92MS9vcmRlcmJvb2sucHJvdG8SFHNpbHZhbmEub3JkZXJib29rLnYxIhgKB0pXVEF1dGgSDQoFdG9rZW4YASABKAki+gIKCkluc3RydW1lbnQSFQoNaW5zdHJ1bWVudF9pZBgBIAEoCRIXCg9pbnN0cnVtZW50X3R5cGUYAiABKAkSDAoEbmFtZRgDIAEoCRIOCgZzeW1ib2wYBCABKAkSGAoLZGVzY3JpcHRpb24YBSABKAlIAIgBARITCgZpc3N1ZXIYBiABKAlIAYgBARIVCghyZWdpc3RyeRgHIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC25ld3Nfc3ltYm9sGAsgASgJQg4KDF9kZXNjcmlwdGlvbkIJCgdfaXNzdWVyQgsKCV9yZWdpc3RyeUILCglfbWV0YWRhdGEi3AUKBk1hcmtldBIRCgltYXJrZXRfaWQYASABKAkSNQoLbWFya2V0X3R5cGUYAiABKA4yIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXRUeXBlEhcKD2Jhc2VfaW5zdHJ1bWVudBgDIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAQgASgJEhMKC3BhaXJfc3ltYm9sGAUgASgJEhEKCWlzX2FjdGl2ZRgGIAEoCBIWCg5taW5fb3JkZXJfc2l6ZRgHIAEoCRIbCg5tYXhfb3JkZXJfc2l6ZRgIIAEoCUgAiAEBEhEKCXRpY2tfc2l6ZRgJIAEoCRIRCgltYWtlcl9mZWUYCiABKAkSEQoJdGFrZXJfZmVlGAsgASgJEi4KCG1ldGFkYXRhGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEi4KCmNyZWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKC3ByaWNlX2ZlZWRzGA8gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEhoKDWN1cnJlbnRfcHJpY2UYECABKAFIA4gBARIXCgpjaGFuZ2VfMjRoGBEgASgBSASIAQESFwoKdm9sdW1lXzI0aBgSIAEoAUgFiAEBEjkKEHByaWNlX3VwZGF0ZWRfYXQYEyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAaIAQFCEQoPX21heF9vcmRlcl9zaXplQgsKCV9tZXRhZGF0YUIOCgxfcHJpY2VfZmVlZHNCEAoOX2N1cnJlbnRfcHJpY2VCDQoLX2NoYW5nZV8yNGhCDQoLX3ZvbHVtZV8yNGhCEwoRX3ByaWNlX3VwZGF0ZWRfYXQi9wYKBU9yZGVyEhAKCG9yZGVyX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoCRIzCgpvcmRlcl90eXBlGAMgASgOMh8uc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJUeXBlEg4KBnRyYWRlchgEIAEoCRIdChB0cmFkZXJfb3JkZXJfcmVmGAUgASgJSACIAQESFwoPYmFzZV9pbnN0cnVtZW50GAYgASgJEhgKEHF1b3RlX2luc3RydW1lbnQYByABKAkSDQoFcHJpY2UYCCABKAkSEAoIcXVhbnRpdHkYCSABKAkSFwoPZmlsbGVkX3F1YW50aXR5GAogASgJEhgKEHBlbmRpbmdfcXVhbnRpdHkYCyABKAkSGgoScmVtYWluaW5nX3F1YW50aXR5GAwgASgJEjEKBnN0YXR1cxgNIAEoDjIhLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyU3RhdHVzEjgKDXRpbWVfaW5fZm9yY2UYDiABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5UaW1lSW5Gb3JjZRIzCgpleHBpcmVzX2F0GA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEg8KB3ZlcnNpb24YECABKAQSMQoLY3JlZGVudGlhbHMYESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESMgoMcmVxdWlyZW1lbnRzGBIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCG1ldGFkYXRhGBMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEi4KCmNyZWF0ZWRfYXQYFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYFSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDGNhbmNlbGxlZF9hdBgWIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBAUITChFfdHJhZGVyX29yZGVyX3JlZkINCgtfZXhwaXJlc19hdEIOCgxfY3JlZGVudGlhbHNCDwoNX3JlcXVpcmVtZW50c0ILCglfbWV0YWRhdGFCDwoNX2NhbmNlbGxlZF9hdCKCAQoOT3JkZXJib29rTGV2ZWwSDQoFcHJpY2UYASABKAkSFgoOdG90YWxfcXVhbnRpdHkYAiABKAkSEwoLb3JkZXJfY291bnQYAyABKA0SNAoQZmlyc3Rfb3JkZXJfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi1QEKDk9yZGVyYm9va0RlcHRoEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIyCgRiaWRzGAMgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSNAoGb2ZmZXJzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSMQoNc25hcHNob3RfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAipREKElNldHRsZW1lbnRQcm9wb3NhbBITCgtwcm9wb3NhbF9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKAkSDQoFYnV5ZXIYAyABKAkSDgoGc2VsbGVyGAQgASgJEhUKDWJhc2VfcXVhbnRpdHkYBSABKAkSFgoOcXVvdGVfcXVhbnRpdHkYBiABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgHIAEoCRI2CgZzdGF0dXMYCCABKA4yJi5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50U3RhdHVzEg8KB3ZlcnNpb24YCSABKAQSPQoXcHJlY29uZmlybWF0aW9uX3JlcXVlc3QYCiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESSAofcHJlY29uZmlybWF0aW9uX3JlcXVlc3Rfc2VudF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI7ChVidXllcl9wcmVjb25maXJtYXRpb24YDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESSgohYnV5ZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjwKFnNlbGxlcl9wcmVjb25maXJtYXRpb24YDiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESSwoic2VsbGVyX3ByZWNvbmZpcm1hdGlvbl9yZWNlaXZlZF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIdChBkdnBfcHJvcG9zYWxfY2lkGBAgASgJSAaIAQESIwoWZHZwX3Byb3Bvc2FsX3VwZGF0ZV9pZBgRIAEoCUgHiAEBEhQKB2R2cF9jaWQYEiABKAlICIgBARIaCg1kdnBfdXBkYXRlX2lkGBMgASgJSAmIAQESHgoRZHZwX3NldHRsZW1lbnRfaWQYFCABKAlICogBARIhChRhbGxvY2F0aW9uX2J1eWVyX2NpZBgVIAEoCUgLiAEBEicKGmFsbG9jYXRpb25fYnV5ZXJfdXBkYXRlX2lkGBYgASgJSAyIAQESIgoVYWxsb2NhdGlvbl9zZWxsZXJfY2lkGBcgASgJSA2IAQESKAobYWxsb2NhdGlvbl9zZWxsZXJfdXBkYXRlX2lkGBggASgJSA6IAQESHAoPc2V0dGxlZF9kdnBfY2lkGBkgASgJSA+IAQESIQoUc2V0dGxlbWVudF91cGRhdGVfaWQYGiABKAlIEIgBARIpChxzZXR0bGVtZW50X2NvbXBsZXRpb25fb2Zmc2V0GBsgASgJSBGIAQESLgoKY3JlYXRlZF9hdBgcIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOAoPcHJlY29uZmlybWVkX2F0GB0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgSiAEBEjcKDmR2cF9jcmVhdGVkX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgTiAEBEjgKD2R2cF9hY2NlcHRlZF9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFIgBARI1CgxhbGxvY2F0ZWRfYXQYICABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBWIAQESMwoKc2V0dGxlZF9hdBghIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFogBARI1CgxjYW5jZWxsZWRfYXQYIiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBeIAQESMgoJZmFpbGVkX2F0GCMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgYiAEBEhoKDWVycm9yX21lc3NhZ2UYJCABKAlIGYgBARIuCghtZXRhZGF0YRglIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIGogBAUIaChhfcHJlY29uZmlybWF0aW9uX3JlcXVlc3RCIgogX3ByZWNvbmZpcm1hdGlvbl9yZXF1ZXN0X3NlbnRfYXRCGAoWX2J1eWVyX3ByZWNvbmZpcm1hdGlvbkIkCiJfYnV5ZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0QhkKF19zZWxsZXJfcHJlY29uZmlybWF0aW9uQiUKI19zZWxsZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0QhMKEV9kdnBfcHJvcG9zYWxfY2lkQhkKF19kdnBfcHJvcG9zYWxfdXBkYXRlX2lkQgoKCF9kdnBfY2lkQhAKDl9kdnBfdXBkYXRlX2lkQhQKEl9kdnBfc2V0dGxlbWVudF9pZEIXChVfYWxsb2NhdGlvbl9idXllcl9jaWRCHQobX2FsbG9jYXRpb25fYnV5ZXJfdXBkYXRlX2lkQhgKFl9hbGxvY2F0aW9uX3NlbGxlcl9jaWRCHgocX2FsbG9jYXRpb25fc2VsbGVyX3VwZGF0ZV9pZEISChBfc2V0dGxlZF9kdnBfY2lkQhcKFV9zZXR0bGVtZW50X3VwZGF0ZV9pZEIfCh1fc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldEISChBfcHJlY29uZmlybWVkX2F0QhEKD19kdnBfY3JlYXRlZF9hdEISChBfZHZwX2FjY2VwdGVkX2F0Qg8KDV9hbGxvY2F0ZWRfYXRCDQoLX3NldHRsZWRfYXRCDwoNX2NhbmNlbGxlZF9hdEIMCgpfZmFpbGVkX2F0QhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YSLNAQoKT3JkZXJNYXRjaBIQCghtYXRjaF9pZBgBIAEoBBIeChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAIgASgEEhQKDGJpZF9vcmRlcl9pZBgDIAEoBBIWCg5vZmZlcl9vcmRlcl9pZBgEIAEoBBIYChBtYXRjaGVkX3F1YW50aXR5GAUgASgJEhUKDW1hdGNoZWRfcHJpY2UYBiABKAkSLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAihwMKClNldHRsZW1lbnQSFQoNc2V0dGxlbWVudF9pZBgBIAEoBBITCgtwcm9wb3NhbF9pZBgCIAEoBBIRCgltYXJrZXRfaWQYAyABKAkSDQoFYnV5ZXIYBCABKAkSDgoGc2VsbGVyGAUgASgJEhUKDWJhc2VfcXVhbnRpdHkYBiABKAkSFgoOcXVvdGVfcXVhbnRpdHkYByABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgIIAEoCRIXCg9zZXR0bGVkX2R2cF9jaWQYCSABKAkSHAoUc2V0dGxlbWVudF91cGRhdGVfaWQYCiABKAkSLgoKc2V0dGxlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKY3JlYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoIbWV0YWRhdGEYDSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCwoJX21ldGFkYXRhIpUCCgpNYXJrZXREYXRhEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIVCghiZXN0X2JpZBgDIAEoCUgAiAEBEhcKCmJlc3Rfb2ZmZXIYBCABKAlIAYgBARIXCgpsYXN0X3ByaWNlGAUgASgJSAKIAQESEgoKdm9sdW1lXzI0aBgGIAEoCRISCgp0cmFkZXNfMjRoGAcgASgNEhMKC29wZW5fb3JkZXJzGAggASgNEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgsKCV9iZXN0X2JpZEINCgtfYmVzdF9vZmZlckINCgtfbGFzdF9wcmljZSKvAgoQR2V0T3JkZXJzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARI2CgZzdGF0dXMYAyABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1c0gBiAEBEjgKCm9yZGVyX3R5cGUYBCABKA4yHy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclR5cGVIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBQgwKCl9tYXJrZXRfaWRCCQoHX3N0YXR1c0INCgtfb3JkZXJfdHlwZUIICgZfbGltaXRCCQoHX29mZnNldCJxChFHZXRPcmRlcnNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKwoGb3JkZXJzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISDQoFdG90YWwYBCABKA0ieAoYR2V0T3JkZXJib29rRGVwdGhSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRISCgVkZXB0aBgDIAEoDUgAiAEBQggKBl9kZXB0aCJ2ChlHZXRPcmRlcmJvb2tEZXB0aFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI3CglvcmRlcmJvb2sYAyABKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tEZXB0aCL4AQodR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESOwoGc3RhdHVzGAMgASgOMiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFN0YXR1c0gBiAEBEhIKBWxpbWl0GAQgASgNSAKIAQESEwoGb2Zmc2V0GAUgASgNSAOIAQFCDAoKX21hcmtldF9pZEIJCgdfc3RhdHVzQggKBl9saW1pdEIJCgdfb2Zmc2V0Io4BCh5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjsKCXByb3Bvc2FscxgDIAMoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRQcm9wb3NhbBINCgV0b3RhbBgEIAEoDSJgChxHZXRTZXR0bGVtZW50UHJvcG9zYWxSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhMKC3Byb3Bvc2FsX2lkGAIgASgEIo8BCh1HZXRTZXR0bGVtZW50UHJvcG9zYWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSPwoIcHJvcG9zYWwYAyABKAsyKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50UHJvcG9zYWxIAIgBAUILCglfcHJvcG9zYWwitAEKFUdldEluc3RydW1lbnRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIcCg9pbnN0cnVtZW50X3R5cGUYAiABKAlIAIgBARISCgVsaW1pdBgDIAEoDUgBiAEBEhMKBm9mZnNldBgEIAEoDUgCiAEBQhIKEF9pbnN0cnVtZW50X3R5cGVCCAoGX2xpbWl0QgkKB19vZmZzZXQigAEKFkdldEluc3RydW1lbnRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjUKC2luc3RydW1lbnRzGAMgAygLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuSW5zdHJ1bWVudBINCgV0b3RhbBgEIAEoDSLaAgoRR2V0TWFya2V0c1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSOgoLbWFya2V0X3R5cGUYAiABKA4yIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXRUeXBlSACIAQESHAoPYmFzZV9pbnN0cnVtZW50GAMgASgJSAGIAQESHQoQcXVvdGVfaW5zdHJ1bWVudBgEIAEoCUgCiAEBEhgKC2FjdGl2ZV9vbmx5GAUgASgISAOIAQESEgoFbGltaXQYBiABKA1IBIgBARITCgZvZmZzZXQYByABKA1IBYgBAUIOCgxfbWFya2V0X3R5cGVCEgoQX2Jhc2VfaW5zdHJ1bWVudEITChFfcXVvdGVfaW5zdHJ1bWVudEIOCgxfYWN0aXZlX29ubHlCCAoGX2xpbWl0QgkKB19vZmZzZXQidAoSR2V0TWFya2V0c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRItCgdtYXJrZXRzGAMgAygLMhwuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0Eg0KBXRvdGFsGAQgASgNIqkCChZHZXRPcmRlckhpc3RvcnlSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEjIKCWZyb21fdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIwCgd0b190aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhIKBWxpbWl0GAUgASgNSAOIAQESEwoGb2Zmc2V0GAYgASgNSASIAQFCDAoKX21hcmtldF9pZEIMCgpfZnJvbV90aW1lQgoKCF90b190aW1lQggKBl9saW1pdEIJCgdfb2Zmc2V0IncKF0dldE9yZGVySGlzdG9yeVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIrCgZvcmRlcnMYAyADKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlchINCgV0b3RhbBgEIAEoDSJXChRHZXRNYXJrZXREYXRhUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBISCgptYXJrZXRfaWRzGAIgAygJInAKFUdldE1hcmtldERhdGFSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNQoLbWFya2V0X2RhdGEYAyADKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXREYXRhIqgCChVHZXRTZXR0bGVtZW50c1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESMgoJZnJvbV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjAKB3RvX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESEgoFbGltaXQYBSABKA1IA4gBARITCgZvZmZzZXQYBiABKA1IBIgBAUIMCgpfbWFya2V0X2lkQgwKCl9mcm9tX3RpbWVCCgoIX3RvX3RpbWVCCAoGX2xpbWl0QgkKB19vZmZzZXQigAEKFkdldFNldHRsZW1lbnRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjUKC3NldHRsZW1lbnRzGAMgAygLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudBINCgV0b3RhbBgEIAEoDSJ5ChlTdWJzY3JpYmVPcmRlcmJvb2tSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRISCgVkZXB0aBgDIAEoDUgAiAEBQggKBl9kZXB0aCKHAwoPT3JkZXJib29rVXBkYXRlEhEKCW1hcmtldF9pZBgBIAEoCRJFCgt1cGRhdGVfdHlwZRgCIAEoDjIwLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va1VwZGF0ZS5VcGRhdGVUeXBlEjkKC2JpZF91cGRhdGVzGAMgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSOwoNb2ZmZXJfdXBkYXRlcxgEIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEi0KCXRpbWVzdGFtcBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoPc2VxdWVuY2VfbnVtYmVyGAYgASgEIloKClVwZGF0ZVR5cGUSGwoXVVBEQVRFX1RZUEVfVU5TUEVDSUZJRUQQABIYChRVUERBVEVfVFlQRV9TTkFQU0hPVBABEhUKEVVQREFURV9UWVBFX0RFTFRBEAIiawoWU3Vic2NyaWJlT3JkZXJzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBAUIMCgpfbWFya2V0X2lkIq0DCgtPcmRlclVwZGF0ZRI/CgpldmVudF90eXBlGAEgASgOMisuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJVcGRhdGUuRXZlbnRUeXBlEioKBW9yZGVyGAIgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISNAoFbWF0Y2gYAyABKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlck1hdGNoSACIAQESLQoJdGltZXN0YW1wGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLBAQoJRXZlbnRUeXBlEhoKFkVWRU5UX1RZUEVfVU5TUEVDSUZJRUQQABIWChJFVkVOVF9UWVBFX0NSRUFURUQQARIWChJFVkVOVF9UWVBFX1VQREFURUQQAhIVChFFVkVOVF9UWVBFX0ZJTExFRBADEh8KG0VWRU5UX1RZUEVfUEFSVElBTExZX0ZJTExFRBAEEhgKFEVWRU5UX1RZUEVfQ0FOQ0VMTEVEEAUSFgoSRVZFTlRfVFlQRV9FWFBJUkVEEAZCCAoGX21hdGNoInAKG1N1YnNjcmliZVNldHRsZW1lbnRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBAUIMCgpfbWFya2V0X2lkIokEChBTZXR0bGVtZW50VXBkYXRlEkQKCmV2ZW50X3R5cGUYASABKA4yMC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50VXBkYXRlLkV2ZW50VHlwZRI6Cghwcm9wb3NhbBgCIAEoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRQcm9wb3NhbBItCgl0aW1lc3RhbXAYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIsMCCglFdmVudFR5cGUSGgoWRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEh8KG0VWRU5UX1RZUEVfUFJPUE9TQUxfQ1JFQVRFRBABEigKJEVWRU5UX1RZUEVfUFJFQ09ORklSTUFUSU9OX1JFUVVFU1RFRBACEhsKF0VWRU5UX1RZUEVfUFJFQ09ORklSTUVEEAMSGgoWRVZFTlRfVFlQRV9EVlBfQ1JFQVRFRBAEEhsKF0VWRU5UX1RZUEVfRFZQX0FDQ0VQVEVEEAUSGAoURVZFTlRfVFlQRV9BTExPQ0FURUQQBhIWChJFVkVOVF9UWVBFX1NFVFRMRUQQBxIVChFFVkVOVF9UWVBFX0ZBSUxFRBAIEhgKFEVWRU5UX1RZUEVfQ0FOQ0VMTEVEEAkSFgoSRVZFTlRfVFlQRV9VUERBVEVEEAoioQQKElN1Ym1pdE9yZGVyUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIRCgltYXJrZXRfaWQYAiABKAkSMwoKb3JkZXJfdHlwZRgDIAEoDjIfLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVHlwZRINCgVwcmljZRgEIAEoCRIQCghxdWFudGl0eRgFIAEoCRI4Cg10aW1lX2luX2ZvcmNlGAYgASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuVGltZUluRm9yY2USMwoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIdChB0cmFkZXJfb3JkZXJfcmVmGAggASgJSAGIAQESMQoLY3JlZGVudGlhbHMYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESMgoMcmVxdWlyZW1lbnRzGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBQg0KC19leHBpcmVzX2F0QhMKEV90cmFkZXJfb3JkZXJfcmVmQg4KDF9jcmVkZW50aWFsc0IPCg1fcmVxdWlyZW1lbnRzQgsKCV9tZXRhZGF0YSJyChNTdWJtaXRPcmRlclJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIvCgVvcmRlchgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVySACIAQFCCAoGX29yZGVyIlMKEkNhbmNlbE9yZGVyUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghvcmRlcl9pZBgCIAEoBCJyChNDYW5jZWxPcmRlclJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIvCgVvcmRlchgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVySACIAQFCCAoGX29yZGVyIpYDChJDcmVhdGVQYXJ0eVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEAoIcGFydHlfaWQYAiABKAkSEgoKcGFydHlfbmFtZRgDIAEoCRISCgpwYXJ0eV90eXBlGAQgASgJEh0KEHVzZXJfc2VydmljZV9jaWQYBSABKAlIAIgBARIgChNvcGVyYXRvcl9jb25maWdfY2lkGAYgASgJSAGIAQESLgoIbWV0YWRhdGEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESJQoYdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkGAggASgJSAOIAQESKgoJdXNlcl9kYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEITChFfdXNlcl9zZXJ2aWNlX2NpZEIWChRfb3BlcmF0b3JfY29uZmlnX2NpZEILCglfbWV0YWRhdGFCGwoZX3VzZXJfc2VydmljZV9yZXF1ZXN0X2NpZCJjChNDcmVhdGVQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5IvEDChJVcGRhdGVQYXJ0eVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEAoIcGFydHlfaWQYAiABKAkSGAoQZXhwZWN0ZWRfdmVyc2lvbhgDIAEoBBIXCgpwYXJ0eV9uYW1lGAQgASgJSACIAQESHQoQdXNlcl9zZXJ2aWNlX2NpZBgFIAEoCUgBiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBiABKAlIAogBARIlChh1c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWQYByABKAlIA4gBARIvCgl1c2VyX2RhdGEYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESLgoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQESGgoNY2hhbmdlX3JlYXNvbhgKIAEoCUgGiAEBQg0KC19wYXJ0eV9uYW1lQhMKEV91c2VyX3NlcnZpY2VfY2lkQhYKFF9vcGVyYXRvcl9jb25maWdfY2lkQhsKGV91c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWRCDAoKX3VzZXJfZGF0YUILCglfbWV0YWRhdGFCEAoOX2NoYW5nZV9yZWFzb24iYwoTVXBkYXRlUGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSKIAQoWRGVhY3RpdmF0ZVBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRIYChBleHBlY3RlZF92ZXJzaW9uGAMgASgEEhUKDWNoYW5nZV9yZWFzb24YBCABKAkiZwoXRGVhY3RpdmF0ZVBhcnR5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEioKBXBhcnR5GAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHkilQEKFkdldFBhcnR5SGlzdG9yeVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEAoIcGFydHlfaWQYAiABKAkSEgoFbGltaXQYAyABKA1IAIgBARITCgZvZmZzZXQYBCABKA1IAYgBAUIICgZfbGltaXRCCQoHX29mZnNldCKBAgoRUGFydHlIaXN0b3J5RW50cnkSEgoKaGlzdG9yeV9pZBgBIAEoBBIQCghwYXJ0eV9pZBgCIAEoCRIOCgZhY3Rpb24YAyABKAkSEgoKY2hhbmdlZF9ieRgEIAEoCRIaCg1jaGFuZ2VfcmVhc29uGAUgASgJSACIAQESDwoHdmVyc2lvbhgGIAEoBBIzCg5wYXJ0eV9zbmFwc2hvdBgHIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5Ei4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhAKDl9jaGFuZ2VfcmVhc29uIoQBChdHZXRQYXJ0eUhpc3RvcnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSOAoHaGlzdG9yeRgDIAMoCzInLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5SGlzdG9yeUVudHJ5Eg0KBXRvdGFsGAQgASgNIlAKD0dldFBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCSJgChBHZXRQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5ItABChFHZXRQYXJ0aWVzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIXCgpwYXJ0eV90eXBlGAIgASgJSACIAQESGAoLYWN0aXZlX29ubHkYAyABKAhIAYgBARISCgVsaW1pdBgEIAEoDUgCiAEBEhMKBm9mZnNldBgFIAEoDUgDiAEBQg0KC19wYXJ0eV90eXBlQg4KDF9hY3RpdmVfb25seUIICgZfbGltaXRCCQoHX29mZnNldCJzChJHZXRQYXJ0aWVzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKB3BhcnRpZXMYAyADKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eRINCgV0b3RhbBgEIAEoDSLgAwoFUGFydHkSEAoIcGFydHlfaWQYASABKAkSEgoKcGFydHlfbmFtZRgCIAEoCRISCgpwYXJ0eV90eXBlGAMgASgJEh0KEHVzZXJfc2VydmljZV9jaWQYBCABKAlIAIgBARIgChNvcGVyYXRvcl9jb25maWdfY2lkGAUgASgJSAGIAQESEQoJaXNfYWN0aXZlGAYgASgIEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKGHVzZXJfc2VydmljZV9yZXF1ZXN0X2NpZBgKIAEoCUgDiAEBEioKCXVzZXJfZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDwoHdmVyc2lvbhgMIAEoBEITChFfdXNlcl9zZXJ2aWNlX2NpZEIWChRfb3BlcmF0b3JfY29uZmlnX2NpZEILCglfbWV0YWRhdGFCGwoZX3VzZXJfc2VydmljZV9yZXF1ZXN0X2NpZCLUAgoXQ3JlYXRlSW5zdHJ1bWVudFJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFQoNaW5zdHJ1bWVudF9pZBgCIAEoCRIXCg9pbnN0cnVtZW50X3R5cGUYAyABKAkSDAoEbmFtZRgEIAEoCRIOCgZzeW1ib2wYBSABKAkSGAoLZGVzY3JpcHRpb24YBiABKAlIAIgBARITCgZpc3N1ZXIYByABKAlIAYgBARIVCghyZWdpc3RyeRgIIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhMKC25ld3Nfc3ltYm9sGAogASgJQg4KDF9kZXNjcmlwdGlvbkIJCgdfaXNzdWVyQgsKCV9yZWdpc3RyeUILCglfbWV0YWRhdGEicgoYQ3JlYXRlSW5zdHJ1bWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI0CgppbnN0cnVtZW50GAMgASgLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuSW5zdHJ1bWVudCLzAwoTQ3JlYXRlTWFya2V0UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIRCgltYXJrZXRfaWQYAiABKAkSNQoLbWFya2V0X3R5cGUYAyABKA4yIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXRUeXBlEhwKD2Jhc2VfaW5zdHJ1bWVudBgEIAEoCUgAiAEBEh0KEHF1b3RlX2luc3RydW1lbnQYBSABKAlIAYgBARIWCg5taW5fb3JkZXJfc2l6ZRgGIAEoCRIbCg5tYXhfb3JkZXJfc2l6ZRgHIAEoCUgCiAEBEhEKCXRpY2tfc2l6ZRgIIAEoCRIRCgltYWtlcl9mZWUYCSABKAkSEQoJdGFrZXJfZmVlGAogASgJEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEjEKC3ByaWNlX2ZlZWRzGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBQhIKEF9iYXNlX2luc3RydW1lbnRCEwoRX3F1b3RlX2luc3RydW1lbnRCEQoPX21heF9vcmRlcl9zaXplQgsKCV9tZXRhZGF0YUIOCgxfcHJpY2VfZmVlZHMiZgoUQ3JlYXRlTWFya2V0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKBm1hcmtldBgDIAEoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldCKNAQodVXBkYXRlTWFya2V0UHJpY2VGZWVkc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEQoJbWFya2V0X2lkGAIgASgJEiwKC3ByaWNlX2ZlZWRzGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJwCh5VcGRhdGVNYXJrZXRQcmljZUZlZWRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKBm1hcmtldBgDIAEoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldCpRCglPcmRlclR5cGUSGgoWT1JERVJfVFlQRV9VTlNQRUNJRklFRBAAEhIKDk9SREVSX1RZUEVfQklEEAESFAoQT1JERVJfVFlQRV9PRkZFUhACKq0BCgtPcmRlclN0YXR1cxIcChhPUkRFUl9TVEFUVVNfVU5TUEVDSUZJRUQQABIXChNPUkRFUl9TVEFUVVNfQUNUSVZFEAESGAoUT1JERVJfU1RBVFVTX1BBUlRJQUwQAhIXChNPUkRFUl9TVEFUVVNfRklMTEVEEAMSGgoWT1JERVJfU1RBVFVTX0NBTkNFTExFRBAEEhgKFE9SREVSX1NUQVRVU19FWFBJUkVEEAUqiAEKC1RpbWVJbkZvcmNlEh0KGVRJTUVfSU5fRk9SQ0VfVU5TUEVDSUZJRUQQABIVChFUSU1FX0lOX0ZPUkNFX0dUQxABEhUKEVRJTUVfSU5fRk9SQ0VfSU9DEAISFQoRVElNRV9JTl9GT1JDRV9GT0sQAxIVChFUSU1FX0lOX0ZPUkNFX0dURBAEKtoCChBTZXR0bGVtZW50U3RhdHVzEiEKHVNFVFRMRU1FTlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHQoZU0VUVExFTUVOVF9TVEFUVVNfQ1JFQVRFRBABEiIKHlNFVFRMRU1FTlRfU1RBVFVTX1BSRUNPTkZJUk1FRBACEikKJVNFVFRMRU1FTlRfU1RBVFVTX0RWUF9SRVFVRVNUX0NSRUFURUQQAxIqCiZTRVRUTEVNRU5UX1NUQVRVU19EVlBfUkVRVUVTVF9BQ0NFUFRFRBAEEisKJ1NFVFRMRU1FTlRfU1RBVFVTX0lOU1RSVU1FTlRTX0FMTE9DQVRFRBAFEh0KGVNFVFRMRU1FTlRfU1RBVFVTX1NFVFRMRUQQBhIfChtTRVRUTEVNRU5UX1NUQVRVU19DQU5DRUxMRUQQBxIcChhTRVRUTEVNRU5UX1NUQVRVU19GQUlMRUQQCCp2CgpNYXJrZXRUeXBlEhsKF01BUktFVF9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTTUFSS0VUX1RZUEVfR0VORVJBTBABEh0KGU1BUktFVF9UWVBFX0lOU1RJVFVUSU9OQUwQAhITCg9NQVJLRVRfVFlQRV9PVEMQAzLbEwoQT3JkZXJib29rU2VydmljZRJcCglHZXRPcmRlcnMSJi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcnNSZXF1ZXN0Gicuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJzUmVzcG9uc2USdAoRR2V0T3JkZXJib29rRGVwdGgSLi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcmJvb2tEZXB0aFJlcXVlc3QaLy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcmJvb2tEZXB0aFJlc3BvbnNlEoMBChZHZXRTZXR0bGVtZW50UHJvcG9zYWxzEjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1JlcXVlc3QaNC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVzcG9uc2USgAEKFUdldFNldHRsZW1lbnRQcm9wb3NhbBIyLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbFJlcXVlc3QaMy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxSZXNwb25zZRJrCg5HZXRJbnN0cnVtZW50cxIrLnNpbHZhbmEub3JkZXJib29rLnYxLkdldEluc3RydW1lbnRzUmVxdWVzdBosLnNpbHZhbmEub3JkZXJib29rLnYxLkdldEluc3RydW1lbnRzUmVzcG9uc2USXwoKR2V0TWFya2V0cxInLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldHNSZXF1ZXN0Giguc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0c1Jlc3BvbnNlEm4KD0dldE9yZGVySGlzdG9yeRIsLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVySGlzdG9yeVJlcXVlc3QaLS5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlckhpc3RvcnlSZXNwb25zZRJoCg1HZXRNYXJrZXREYXRhEiouc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0RGF0YVJlcXVlc3QaKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXREYXRhUmVzcG9uc2USawoOR2V0U2V0dGxlbWVudHMSKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50c1JlcXVlc3QaLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50c1Jlc3BvbnNlEmIKC1N1Ym1pdE9yZGVyEiguc2lsdmFuYS5vcmRlcmJvb2sudjEuU3VibWl0T3JkZXJSZXF1ZXN0Gikuc2lsdmFuYS5vcmRlcmJvb2sudjEuU3VibWl0T3JkZXJSZXNwb25zZRJiCgtDYW5jZWxPcmRlchIoLnNpbHZhbmEub3JkZXJib29rLnYxLkNhbmNlbE9yZGVyUmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLkNhbmNlbE9yZGVyUmVzcG9uc2USWQoIR2V0UGFydHkSJS5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eVJlcXVlc3QaJi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eVJlc3BvbnNlEl8KCkdldFBhcnRpZXMSJy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0aWVzUmVxdWVzdBooLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnRpZXNSZXNwb25zZRJiCgtDcmVhdGVQYXJ0eRIoLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZVBhcnR5UmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZVBhcnR5UmVzcG9uc2USYgoLVXBkYXRlUGFydHkSKC5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVQYXJ0eVJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVQYXJ0eVJlc3BvbnNlEm4KD0RlYWN0aXZhdGVQYXJ0eRIsLnNpbHZhbmEub3JkZXJib29rLnYxLkRlYWN0aXZhdGVQYXJ0eVJlcXVlc3QaLS5zaWx2YW5hLm9yZGVyYm9vay52MS5EZWFjdGl2YXRlUGFydHlSZXNwb25zZRJuCg9HZXRQYXJ0eUhpc3RvcnkSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eUhpc3RvcnlSZXF1ZXN0Gi0uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlIaXN0b3J5UmVzcG9uc2UScQoQQ3JlYXRlSW5zdHJ1bWVudBItLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZUluc3RydW1lbnRSZXF1ZXN0Gi4uc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlSW5zdHJ1bWVudFJlc3BvbnNlEmUKDENyZWF0ZU1hcmtldBIpLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZU1hcmtldFJlcXVlc3QaKi5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVNYXJrZXRSZXNwb25zZRKDAQoWVXBkYXRlTWFya2V0UHJpY2VGZWVkcxIzLnNpbHZhbmEub3JkZXJib29rLnYxLlVwZGF0ZU1hcmtldFByaWNlRmVlZHNSZXF1ZXN0GjQuc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlTWFya2V0UHJpY2VGZWVkc1Jlc3BvbnNlEm4KElN1YnNjcmliZU9yZGVyYm9vaxIvLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZU9yZGVyYm9va1JlcXVlc3QaJS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tVcGRhdGUwARJkCg9TdWJzY3JpYmVPcmRlcnMSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJzY3JpYmVPcmRlcnNSZXF1ZXN0GiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJVcGRhdGUwARJzChRTdWJzY3JpYmVTZXR0bGVtZW50cxIxLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZVNldHRsZW1lbnRzUmVxdWVzdBomLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRVcGRhdGUwAUI0WjJnaXRodWIuY29tL1NpbHZhbmFPbmUvY2FudG9uLWFnZW50L3Byb3RvO29yZGVyYm9va2IGcHJvdG8z", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
15
+ fileDesc("Cipwcm90by9zaWx2YW5hL29yZGVyYm9vay92MS9vcmRlcmJvb2sucHJvdG8SFHNpbHZhbmEub3JkZXJib29rLnYxIhgKB0pXVEF1dGgSDQoFdG9rZW4YASABKAkiQQoMRXh0ZXJuYWxBdXRoEgsKA2p3dBgBIAEoCRIQCghwYXJ0eV9pZBgCIAEoCRISCgpwdWJsaWNfa2V5GAMgASgJIvoCCgpJbnN0cnVtZW50EhUKDWluc3RydW1lbnRfaWQYASABKAkSFwoPaW5zdHJ1bWVudF90eXBlGAIgASgJEgwKBG5hbWUYAyABKAkSDgoGc3ltYm9sGAQgASgJEhgKC2Rlc2NyaXB0aW9uGAUgASgJSACIAQESEwoGaXNzdWVyGAYgASgJSAGIAQESFQoIcmVnaXN0cnkYByABKAlIAogBARIuCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtuZXdzX3N5bWJvbBgLIAEoCUIOCgxfZGVzY3JpcHRpb25CCQoHX2lzc3VlckILCglfcmVnaXN0cnlCCwoJX21ldGFkYXRhItwFCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgJEjUKC21hcmtldF90eXBlGAIgASgOMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0VHlwZRIXCg9iYXNlX2luc3RydW1lbnQYAyABKAkSGAoQcXVvdGVfaW5zdHJ1bWVudBgEIAEoCRITCgtwYWlyX3N5bWJvbBgFIAEoCRIRCglpc19hY3RpdmUYBiABKAgSFgoObWluX29yZGVyX3NpemUYByABKAkSGwoObWF4X29yZGVyX3NpemUYCCABKAlIAIgBARIRCgl0aWNrX3NpemUYCSABKAkSEQoJbWFrZXJfZmVlGAogASgJEhEKCXRha2VyX2ZlZRgLIAEoCRIuCghtZXRhZGF0YRgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIuCgpjcmVhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCgtwcmljZV9mZWVkcxgPIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIaCg1jdXJyZW50X3ByaWNlGBAgASgBSAOIAQESFwoKY2hhbmdlXzI0aBgRIAEoAUgEiAEBEhcKCnZvbHVtZV8yNGgYEiABKAFIBYgBARI5ChBwcmljZV91cGRhdGVkX2F0GBMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBQhEKD19tYXhfb3JkZXJfc2l6ZUILCglfbWV0YWRhdGFCDgoMX3ByaWNlX2ZlZWRzQhAKDl9jdXJyZW50X3ByaWNlQg0KC19jaGFuZ2VfMjRoQg0KC192b2x1bWVfMjRoQhMKEV9wcmljZV91cGRhdGVkX2F0IvcGCgVPcmRlchIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKAkSMwoKb3JkZXJfdHlwZRgDIAEoDjIfLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVHlwZRIOCgZ0cmFkZXIYBCABKAkSHQoQdHJhZGVyX29yZGVyX3JlZhgFIAEoCUgAiAEBEhcKD2Jhc2VfaW5zdHJ1bWVudBgGIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAcgASgJEg0KBXByaWNlGAggASgJEhAKCHF1YW50aXR5GAkgASgJEhcKD2ZpbGxlZF9xdWFudGl0eRgKIAEoCRIYChBwZW5kaW5nX3F1YW50aXR5GAsgASgJEhoKEnJlbWFpbmluZ19xdWFudGl0eRgMIAEoCRIxCgZzdGF0dXMYDSABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1cxI4Cg10aW1lX2luX2ZvcmNlGA4gASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuVGltZUluRm9yY2USMwoKZXhwaXJlc19hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIPCgd2ZXJzaW9uGBAgASgEEjEKC2NyZWRlbnRpYWxzGBEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEjIKDHJlcXVpcmVtZW50cxgSIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCghtZXRhZGF0YRgTIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIuCgpjcmVhdGVkX2F0GBQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1CgxjYW5jZWxsZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQFCEwoRX3RyYWRlcl9vcmRlcl9yZWZCDQoLX2V4cGlyZXNfYXRCDgoMX2NyZWRlbnRpYWxzQg8KDV9yZXF1aXJlbWVudHNCCwoJX21ldGFkYXRhQg8KDV9jYW5jZWxsZWRfYXQiggEKDk9yZGVyYm9va0xldmVsEg0KBXByaWNlGAEgASgJEhYKDnRvdGFsX3F1YW50aXR5GAIgASgJEhMKC29yZGVyX2NvdW50GAMgASgNEjQKEGZpcnN0X29yZGVyX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItUBCg5PcmRlcmJvb2tEZXB0aBIRCgltYXJrZXRfaWQYASABKAkSEwoLcGFpcl9zeW1ib2wYAiABKAkSMgoEYmlkcxgDIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEjQKBm9mZmVycxgEIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEjEKDXNuYXBzaG90X3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIu8QChJTZXR0bGVtZW50UHJvcG9zYWwSEwoLcHJvcG9zYWxfaWQYASABKAkSEQoJbWFya2V0X2lkGAIgASgJEg0KBWJ1eWVyGAMgASgJEg4KBnNlbGxlchgEIAEoCRIVCg1iYXNlX3F1YW50aXR5GAUgASgJEhYKDnF1b3RlX3F1YW50aXR5GAYgASgJEhgKEHNldHRsZW1lbnRfcHJpY2UYByABKAkSNgoGc3RhdHVzGAggASgOMiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFN0YXR1cxIPCgd2ZXJzaW9uGAkgASgEEj0KF3ByZWNvbmZpcm1hdGlvbl9yZXF1ZXN0GAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEkgKH3ByZWNvbmZpcm1hdGlvbl9yZXF1ZXN0X3NlbnRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESOwoVYnV5ZXJfcHJlY29uZmlybWF0aW9uGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEkoKIWJ1eWVyX3ByZWNvbmZpcm1hdGlvbl9yZWNlaXZlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBARI8ChZzZWxsZXJfcHJlY29uZmlybWF0aW9uGA4gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEksKInNlbGxlcl9wcmVjb25maXJtYXRpb25fcmVjZWl2ZWRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESHQoQZHZwX3Byb3Bvc2FsX2NpZBgQIAEoCUgGiAEBEiMKFmR2cF9wcm9wb3NhbF91cGRhdGVfaWQYESABKAlIB4gBARIUCgdkdnBfY2lkGBIgASgJSAiIAQESGgoNZHZwX3VwZGF0ZV9pZBgTIAEoCUgJiAEBEiEKFGFsbG9jYXRpb25fYnV5ZXJfY2lkGBUgASgJSAqIAQESJwoaYWxsb2NhdGlvbl9idXllcl91cGRhdGVfaWQYFiABKAlIC4gBARIiChVhbGxvY2F0aW9uX3NlbGxlcl9jaWQYFyABKAlIDIgBARIoChthbGxvY2F0aW9uX3NlbGxlcl91cGRhdGVfaWQYGCABKAlIDYgBARIcCg9zZXR0bGVkX2R2cF9jaWQYGSABKAlIDogBARIhChRzZXR0bGVtZW50X3VwZGF0ZV9pZBgaIAEoCUgPiAEBEikKHHNldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXQYGyABKAlIEIgBARIuCgpjcmVhdGVkX2F0GBwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI4Cg9wcmVjb25maXJtZWRfYXQYHSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBGIAQESNwoOZHZwX2NyZWF0ZWRfYXQYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBKIAQESOAoPZHZwX2FjY2VwdGVkX2F0GB8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgTiAEBEjUKDGFsbG9jYXRlZF9hdBggIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFIgBARIzCgpzZXR0bGVkX2F0GCEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgViAEBEjUKDGNhbmNlbGxlZF9hdBgiIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFogBARIyCglmYWlsZWRfYXQYIyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBeIAQESGgoNZXJyb3JfbWVzc2FnZRgkIAEoCUgYiAEBEi4KCG1ldGFkYXRhGCUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgZiAEBQhoKGF9wcmVjb25maXJtYXRpb25fcmVxdWVzdEIiCiBfcHJlY29uZmlybWF0aW9uX3JlcXVlc3Rfc2VudF9hdEIYChZfYnV5ZXJfcHJlY29uZmlybWF0aW9uQiQKIl9idXllcl9wcmVjb25maXJtYXRpb25fcmVjZWl2ZWRfYXRCGQoXX3NlbGxlcl9wcmVjb25maXJtYXRpb25CJQojX3NlbGxlcl9wcmVjb25maXJtYXRpb25fcmVjZWl2ZWRfYXRCEwoRX2R2cF9wcm9wb3NhbF9jaWRCGQoXX2R2cF9wcm9wb3NhbF91cGRhdGVfaWRCCgoIX2R2cF9jaWRCEAoOX2R2cF91cGRhdGVfaWRCFwoVX2FsbG9jYXRpb25fYnV5ZXJfY2lkQh0KG19hbGxvY2F0aW9uX2J1eWVyX3VwZGF0ZV9pZEIYChZfYWxsb2NhdGlvbl9zZWxsZXJfY2lkQh4KHF9hbGxvY2F0aW9uX3NlbGxlcl91cGRhdGVfaWRCEgoQX3NldHRsZWRfZHZwX2NpZEIXChVfc2V0dGxlbWVudF91cGRhdGVfaWRCHwodX3NldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXRCEgoQX3ByZWNvbmZpcm1lZF9hdEIRCg9fZHZwX2NyZWF0ZWRfYXRCEgoQX2R2cF9hY2NlcHRlZF9hdEIPCg1fYWxsb2NhdGVkX2F0Qg0KC19zZXR0bGVkX2F0Qg8KDV9jYW5jZWxsZWRfYXRCDAoKX2ZhaWxlZF9hdEIQCg5fZXJyb3JfbWVzc2FnZUILCglfbWV0YWRhdGEiuwEKCk9yZGVyTWF0Y2gSHgoWc2V0dGxlbWVudF9wcm9wb3NhbF9pZBgBIAEoCRIUCgxiaWRfb3JkZXJfaWQYAiABKAQSFgoOb2ZmZXJfb3JkZXJfaWQYAyABKAQSGAoQbWF0Y2hlZF9xdWFudGl0eRgEIAEoCRIVCg1tYXRjaGVkX3ByaWNlGAUgASgJEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIocDCgpTZXR0bGVtZW50EhUKDXNldHRsZW1lbnRfaWQYASABKAQSEwoLcHJvcG9zYWxfaWQYAiABKAkSEQoJbWFya2V0X2lkGAMgASgJEg0KBWJ1eWVyGAQgASgJEg4KBnNlbGxlchgFIAEoCRIVCg1iYXNlX3F1YW50aXR5GAYgASgJEhYKDnF1b3RlX3F1YW50aXR5GAcgASgJEhgKEHNldHRsZW1lbnRfcHJpY2UYCCABKAkSFwoPc2V0dGxlZF9kdnBfY2lkGAkgASgJEhwKFHNldHRsZW1lbnRfdXBkYXRlX2lkGAogASgJEi4KCnNldHRsZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCG1ldGFkYXRhGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgsKCV9tZXRhZGF0YSKVAgoKTWFya2V0RGF0YRIRCgltYXJrZXRfaWQYASABKAkSEwoLcGFpcl9zeW1ib2wYAiABKAkSFQoIYmVzdF9iaWQYAyABKAlIAIgBARIXCgpiZXN0X29mZmVyGAQgASgJSAGIAQESFwoKbGFzdF9wcmljZRgFIAEoCUgCiAEBEhIKCnZvbHVtZV8yNGgYBiABKAkSEgoKdHJhZGVzXzI0aBgHIAEoDRITCgtvcGVuX29yZGVycxgIIAEoDRIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEILCglfYmVzdF9iaWRCDQoLX2Jlc3Rfb2ZmZXJCDQoLX2xhc3RfcHJpY2UigQMKEEdldE9yZGVyc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESNgoGc3RhdHVzGAMgASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJTdGF0dXNIAYgBARI4CgpvcmRlcl90eXBlGAQgASgOMh8uc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJUeXBlSAKIAQESEgoFbGltaXQYBSABKA1IA4gBARITCgZvZmZzZXQYBiABKA1IBIgBARI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSAWIAQFCDAoKX21hcmtldF9pZEIJCgdfc3RhdHVzQg0KC19vcmRlcl90eXBlQggKBl9saW1pdEIJCgdfb2Zmc2V0QhAKDl9leHRlcm5hbF9hdXRoInEKEUdldE9yZGVyc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIrCgZvcmRlcnMYAyADKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlchINCgV0b3RhbBgEIAEoDSLKAQoYR2V0T3JkZXJib29rRGVwdGhSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRISCgVkZXB0aBgDIAEoDUgAiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIAYgBAUIICgZfZGVwdGhCEAoOX2V4dGVybmFsX2F1dGgidgoZR2V0T3JkZXJib29rRGVwdGhSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNwoJb3JkZXJib29rGAMgASgLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rRGVwdGgiygIKHUdldFNldHRsZW1lbnRQcm9wb3NhbHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEjsKBnN0YXR1cxgDIAEoDjImLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRTdGF0dXNIAYgBARISCgVsaW1pdBgEIAEoDUgCiAEBEhMKBm9mZnNldBgFIAEoDUgDiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIBIgBAUIMCgpfbWFya2V0X2lkQgkKB19zdGF0dXNCCAoGX2xpbWl0QgkKB19vZmZzZXRCEAoOX2V4dGVybmFsX2F1dGgijgEKHkdldFNldHRsZW1lbnRQcm9wb3NhbHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSOwoJcHJvcG9zYWxzGAMgAygLMiguc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFByb3Bvc2FsEg0KBXRvdGFsGAQgASgNIrIBChxHZXRTZXR0bGVtZW50UHJvcG9zYWxSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhMKC3Byb3Bvc2FsX2lkGAIgASgJEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIAIgBAUIQCg5fZXh0ZXJuYWxfYXV0aCKPAQodR2V0U2V0dGxlbWVudFByb3Bvc2FsUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEj8KCHByb3Bvc2FsGAMgASgLMiguc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFByb3Bvc2FsSACIAQFCCwoJX3Byb3Bvc2FsIoYCChVHZXRJbnN0cnVtZW50c1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSHAoPaW5zdHJ1bWVudF90eXBlGAIgASgJSACIAQESEgoFbGltaXQYAyABKA1IAYgBARITCgZvZmZzZXQYBCABKA1IAogBARI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSAOIAQFCEgoQX2luc3RydW1lbnRfdHlwZUIICgZfbGltaXRCCQoHX29mZnNldEIQCg5fZXh0ZXJuYWxfYXV0aCKAAQoWR2V0SW5zdHJ1bWVudHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNQoLaW5zdHJ1bWVudHMYAyADKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnN0cnVtZW50Eg0KBXRvdGFsGAQgASgNIqwDChFHZXRNYXJrZXRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBI6CgttYXJrZXRfdHlwZRgCIAEoDjIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldFR5cGVIAIgBARIcCg9iYXNlX2luc3RydW1lbnQYAyABKAlIAYgBARIdChBxdW90ZV9pbnN0cnVtZW50GAQgASgJSAKIAQESGAoLYWN0aXZlX29ubHkYBSABKAhIA4gBARISCgVsaW1pdBgGIAEoDUgEiAEBEhMKBm9mZnNldBgHIAEoDUgFiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIBogBAUIOCgxfbWFya2V0X3R5cGVCEgoQX2Jhc2VfaW5zdHJ1bWVudEITChFfcXVvdGVfaW5zdHJ1bWVudEIOCgxfYWN0aXZlX29ubHlCCAoGX2xpbWl0QgkKB19vZmZzZXRCEAoOX2V4dGVybmFsX2F1dGgidAoSR2V0TWFya2V0c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRItCgdtYXJrZXRzGAMgAygLMhwuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0Eg0KBXRvdGFsGAQgASgNIvsCChZHZXRPcmRlckhpc3RvcnlSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEjIKCWZyb21fdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIwCgd0b190aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhIKBWxpbWl0GAUgASgNSAOIAQESEwoGb2Zmc2V0GAYgASgNSASIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgFiAEBQgwKCl9tYXJrZXRfaWRCDAoKX2Zyb21fdGltZUIKCghfdG9fdGltZUIICgZfbGltaXRCCQoHX29mZnNldEIQCg5fZXh0ZXJuYWxfYXV0aCJ3ChdHZXRPcmRlckhpc3RvcnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKwoGb3JkZXJzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISDQoFdG90YWwYBCABKA0iqQEKFEdldE1hcmtldERhdGFSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhIKCm1hcmtldF9pZHMYAiADKAkSPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgAiAEBQhAKDl9leHRlcm5hbF9hdXRoInAKFUdldE1hcmtldERhdGFSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNQoLbWFya2V0X2RhdGEYAyADKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXREYXRhIvoCChVHZXRTZXR0bGVtZW50c1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESMgoJZnJvbV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjAKB3RvX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESEgoFbGltaXQYBSABKA1IA4gBARITCgZvZmZzZXQYBiABKA1IBIgBARI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSAWIAQFCDAoKX21hcmtldF9pZEIMCgpfZnJvbV90aW1lQgoKCF90b190aW1lQggKBl9saW1pdEIJCgdfb2Zmc2V0QhAKDl9leHRlcm5hbF9hdXRoIoABChZHZXRTZXR0bGVtZW50c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI1CgtzZXR0bGVtZW50cxgDIAMoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnQSDQoFdG90YWwYBCABKA0iywEKGVN1YnNjcmliZU9yZGVyYm9va1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEQoJbWFya2V0X2lkGAIgASgJEhIKBWRlcHRoGAMgASgNSACIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgBiAEBQggKBl9kZXB0aEIQCg5fZXh0ZXJuYWxfYXV0aCKHAwoPT3JkZXJib29rVXBkYXRlEhEKCW1hcmtldF9pZBgBIAEoCRJFCgt1cGRhdGVfdHlwZRgCIAEoDjIwLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va1VwZGF0ZS5VcGRhdGVUeXBlEjkKC2JpZF91cGRhdGVzGAMgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSOwoNb2ZmZXJfdXBkYXRlcxgEIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEi0KCXRpbWVzdGFtcBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoPc2VxdWVuY2VfbnVtYmVyGAYgASgEIloKClVwZGF0ZVR5cGUSGwoXVVBEQVRFX1RZUEVfVU5TUEVDSUZJRUQQABIYChRVUERBVEVfVFlQRV9TTkFQU0hPVBABEhUKEVVQREFURV9UWVBFX0RFTFRBEAIivQEKFlN1YnNjcmliZU9yZGVyc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgBiAEBQgwKCl9tYXJrZXRfaWRCEAoOX2V4dGVybmFsX2F1dGgirQMKC09yZGVyVXBkYXRlEj8KCmV2ZW50X3R5cGUYASABKA4yKy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclVwZGF0ZS5FdmVudFR5cGUSKgoFb3JkZXIYAiABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlchI0CgVtYXRjaBgDIAEoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyTWF0Y2hIAIgBARItCgl0aW1lc3RhbXAYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIsEBCglFdmVudFR5cGUSGgoWRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEhYKEkVWRU5UX1RZUEVfQ1JFQVRFRBABEhYKEkVWRU5UX1RZUEVfVVBEQVRFRBACEhUKEUVWRU5UX1RZUEVfRklMTEVEEAMSHwobRVZFTlRfVFlQRV9QQVJUSUFMTFlfRklMTEVEEAQSGAoURVZFTlRfVFlQRV9DQU5DRUxMRUQQBRIWChJFVkVOVF9UWVBFX0VYUElSRUQQBkIICgZfbWF0Y2giwgEKG1N1YnNjcmliZVNldHRsZW1lbnRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSAGIAQFCDAoKX21hcmtldF9pZEIQCg5fZXh0ZXJuYWxfYXV0aCKJBAoQU2V0dGxlbWVudFVwZGF0ZRJECgpldmVudF90eXBlGAEgASgOMjAuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFVwZGF0ZS5FdmVudFR5cGUSOgoIcHJvcG9zYWwYAiABKAsyKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50UHJvcG9zYWwSLQoJdGltZXN0YW1wGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLDAgoJRXZlbnRUeXBlEhoKFkVWRU5UX1RZUEVfVU5TUEVDSUZJRUQQABIfChtFVkVOVF9UWVBFX1BST1BPU0FMX0NSRUFURUQQARIoCiRFVkVOVF9UWVBFX1BSRUNPTkZJUk1BVElPTl9SRVFVRVNURUQQAhIbChdFVkVOVF9UWVBFX1BSRUNPTkZJUk1FRBADEhoKFkVWRU5UX1RZUEVfRFZQX0NSRUFURUQQBBIbChdFVkVOVF9UWVBFX0RWUF9BQ0NFUFRFRBAFEhgKFEVWRU5UX1RZUEVfQUxMT0NBVEVEEAYSFgoSRVZFTlRfVFlQRV9TRVRUTEVEEAcSFQoRRVZFTlRfVFlQRV9GQUlMRUQQCBIYChRFVkVOVF9UWVBFX0NBTkNFTExFRBAJEhYKEkVWRU5UX1RZUEVfVVBEQVRFRBAKIvMEChJTdWJtaXRPcmRlclJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEQoJbWFya2V0X2lkGAIgASgJEjMKCm9yZGVyX3R5cGUYAyABKA4yHy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclR5cGUSDQoFcHJpY2UYBCABKAkSEAoIcXVhbnRpdHkYBSABKAkSOAoNdGltZV9pbl9mb3JjZRgGIAEoDjIhLnNpbHZhbmEub3JkZXJib29rLnYxLlRpbWVJbkZvcmNlEjMKCmV4cGlyZXNfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESHQoQdHJhZGVyX29yZGVyX3JlZhgIIAEoCUgBiAEBEjEKC2NyZWRlbnRpYWxzGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEjIKDHJlcXVpcmVtZW50cxgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCghtZXRhZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARI+Cg1leHRlcm5hbF9hdXRoGA8gASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSAWIAQFCDQoLX2V4cGlyZXNfYXRCEwoRX3RyYWRlcl9vcmRlcl9yZWZCDgoMX2NyZWRlbnRpYWxzQg8KDV9yZXF1aXJlbWVudHNCCwoJX21ldGFkYXRhQhAKDl9leHRlcm5hbF9hdXRoInIKE1N1Ym1pdE9yZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi8KBW9yZGVyGAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJIAIgBAUIICgZfb3JkZXIipQEKEkNhbmNlbE9yZGVyUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghvcmRlcl9pZBgCIAEoBBI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSACIAQFCEAoOX2V4dGVybmFsX2F1dGgicgoTQ2FuY2VsT3JkZXJSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLwoFb3JkZXIYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlckgAiAEBQggKBl9vcmRlciLoAwoSQ3JlYXRlUGFydHlSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhAKCHBhcnR5X2lkGAIgASgJEhIKCnBhcnR5X25hbWUYAyABKAkSEgoKcGFydHlfdHlwZRgEIAEoCRIdChB1c2VyX3NlcnZpY2VfY2lkGAUgASgJSACIAQESIAoTb3BlcmF0b3JfY29uZmlnX2NpZBgGIAEoCUgBiAEBEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEiUKGHVzZXJfc2VydmljZV9yZXF1ZXN0X2NpZBgIIAEoCUgDiAEBEioKCXVzZXJfZGF0YRgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSPgoNZXh0ZXJuYWxfYXV0aBgPIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgEiAEBQhMKEV91c2VyX3NlcnZpY2VfY2lkQhYKFF9vcGVyYXRvcl9jb25maWdfY2lkQgsKCV9tZXRhZGF0YUIbChlfdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkQhAKDl9leHRlcm5hbF9hdXRoImMKE0NyZWF0ZVBhcnR5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEioKBXBhcnR5GAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHkiwwQKElVwZGF0ZVBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRIYChBleHBlY3RlZF92ZXJzaW9uGAMgASgEEhcKCnBhcnR5X25hbWUYBCABKAlIAIgBARIdChB1c2VyX3NlcnZpY2VfY2lkGAUgASgJSAGIAQESIAoTb3BlcmF0b3JfY29uZmlnX2NpZBgGIAEoCUgCiAEBEiUKGHVzZXJfc2VydmljZV9yZXF1ZXN0X2NpZBgHIAEoCUgDiAEBEi8KCXVzZXJfZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIuCghtZXRhZGF0YRgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIaCg1jaGFuZ2VfcmVhc29uGAogASgJSAaIAQESPgoNZXh0ZXJuYWxfYXV0aBgPIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgHiAEBQg0KC19wYXJ0eV9uYW1lQhMKEV91c2VyX3NlcnZpY2VfY2lkQhYKFF9vcGVyYXRvcl9jb25maWdfY2lkQhsKGV91c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWRCDAoKX3VzZXJfZGF0YUILCglfbWV0YWRhdGFCEAoOX2NoYW5nZV9yZWFzb25CEAoOX2V4dGVybmFsX2F1dGgiYwoTVXBkYXRlUGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSLaAQoWRGVhY3RpdmF0ZVBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRIYChBleHBlY3RlZF92ZXJzaW9uGAMgASgEEhUKDWNoYW5nZV9yZWFzb24YBCABKAkSPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgAiAEBQhAKDl9leHRlcm5hbF9hdXRoImcKF0RlYWN0aXZhdGVQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5IucBChZHZXRQYXJ0eUhpc3RvcnlSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhAKCHBhcnR5X2lkGAIgASgJEhIKBWxpbWl0GAMgASgNSACIAQESEwoGb2Zmc2V0GAQgASgNSAGIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgCiAEBQggKBl9saW1pdEIJCgdfb2Zmc2V0QhAKDl9leHRlcm5hbF9hdXRoIoECChFQYXJ0eUhpc3RvcnlFbnRyeRISCgpoaXN0b3J5X2lkGAEgASgEEhAKCHBhcnR5X2lkGAIgASgJEg4KBmFjdGlvbhgDIAEoCRISCgpjaGFuZ2VkX2J5GAQgASgJEhoKDWNoYW5nZV9yZWFzb24YBSABKAlIAIgBARIPCgd2ZXJzaW9uGAYgASgEEjMKDnBhcnR5X3NuYXBzaG90GAcgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHkSLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX2NoYW5nZV9yZWFzb24ihAEKF0dldFBhcnR5SGlzdG9yeVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI4CgdoaXN0b3J5GAMgAygLMicuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHlIaXN0b3J5RW50cnkSDQoFdG90YWwYBCABKA0iogEKD0dldFBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSACIAQFCEAoOX2V4dGVybmFsX2F1dGgiYAoQR2V0UGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSKiAgoRR2V0UGFydGllc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFwoKcGFydHlfdHlwZRgCIAEoCUgAiAEBEhgKC2FjdGl2ZV9vbmx5GAMgASgISAGIAQESEgoFbGltaXQYBCABKA1IAogBARITCgZvZmZzZXQYBSABKA1IA4gBARI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSASIAQFCDQoLX3BhcnR5X3R5cGVCDgoMX2FjdGl2ZV9vbmx5QggKBl9saW1pdEIJCgdfb2Zmc2V0QhAKDl9leHRlcm5hbF9hdXRoInMKEkdldFBhcnRpZXNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLAoHcGFydGllcxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5Eg0KBXRvdGFsGAQgASgNIuADCgVQYXJ0eRIQCghwYXJ0eV9pZBgBIAEoCRISCgpwYXJ0eV9uYW1lGAIgASgJEhIKCnBhcnR5X3R5cGUYAyABKAkSHQoQdXNlcl9zZXJ2aWNlX2NpZBgEIAEoCUgAiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBSABKAlIAYgBARIRCglpc19hY3RpdmUYBiABKAgSLgoIbWV0YWRhdGEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJQoYdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkGAogASgJSAOIAQESKgoJdXNlcl9kYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIPCgd2ZXJzaW9uGAwgASgEQhMKEV91c2VyX3NlcnZpY2VfY2lkQhYKFF9vcGVyYXRvcl9jb25maWdfY2lkQgsKCV9tZXRhZGF0YUIbChlfdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkIqYDChdDcmVhdGVJbnN0cnVtZW50UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIVCg1pbnN0cnVtZW50X2lkGAIgASgJEhcKD2luc3RydW1lbnRfdHlwZRgDIAEoCRIMCgRuYW1lGAQgASgJEg4KBnN5bWJvbBgFIAEoCRIYCgtkZXNjcmlwdGlvbhgGIAEoCUgAiAEBEhMKBmlzc3VlchgHIAEoCUgBiAEBEhUKCHJlZ2lzdHJ5GAggASgJSAKIAQESLgoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESEwoLbmV3c19zeW1ib2wYCiABKAkSPgoNZXh0ZXJuYWxfYXV0aBgPIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgEiAEBQg4KDF9kZXNjcmlwdGlvbkIJCgdfaXNzdWVyQgsKCV9yZWdpc3RyeUILCglfbWV0YWRhdGFCEAoOX2V4dGVybmFsX2F1dGgicgoYQ3JlYXRlSW5zdHJ1bWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI0CgppbnN0cnVtZW50GAMgASgLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuSW5zdHJ1bWVudCLFBAoTQ3JlYXRlTWFya2V0UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIRCgltYXJrZXRfaWQYAiABKAkSNQoLbWFya2V0X3R5cGUYAyABKA4yIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXRUeXBlEhwKD2Jhc2VfaW5zdHJ1bWVudBgEIAEoCUgAiAEBEh0KEHF1b3RlX2luc3RydW1lbnQYBSABKAlIAYgBARIWCg5taW5fb3JkZXJfc2l6ZRgGIAEoCRIbCg5tYXhfb3JkZXJfc2l6ZRgHIAEoCUgCiAEBEhEKCXRpY2tfc2l6ZRgIIAEoCRIRCgltYWtlcl9mZWUYCSABKAkSEQoJdGFrZXJfZmVlGAogASgJEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEjEKC3ByaWNlX2ZlZWRzGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEj4KDWV4dGVybmFsX2F1dGgYDyABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIBYgBAUISChBfYmFzZV9pbnN0cnVtZW50QhMKEV9xdW90ZV9pbnN0cnVtZW50QhEKD19tYXhfb3JkZXJfc2l6ZUILCglfbWV0YWRhdGFCDgoMX3ByaWNlX2ZlZWRzQhAKDl9leHRlcm5hbF9hdXRoImYKFENyZWF0ZU1hcmtldFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIsCgZtYXJrZXQYAyABKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXQi3wEKHVVwZGF0ZU1hcmtldFByaWNlRmVlZHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRIsCgtwcmljZV9mZWVkcxgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgAiAEBQhAKDl9leHRlcm5hbF9hdXRoInAKHlVwZGF0ZU1hcmtldFByaWNlRmVlZHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLAoGbWFya2V0GAMgASgLMhwuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0KlEKCU9yZGVyVHlwZRIaChZPUkRFUl9UWVBFX1VOU1BFQ0lGSUVEEAASEgoOT1JERVJfVFlQRV9CSUQQARIUChBPUkRFUl9UWVBFX09GRkVSEAIqrQEKC09yZGVyU3RhdHVzEhwKGE9SREVSX1NUQVRVU19VTlNQRUNJRklFRBAAEhcKE09SREVSX1NUQVRVU19BQ1RJVkUQARIYChRPUkRFUl9TVEFUVVNfUEFSVElBTBACEhcKE09SREVSX1NUQVRVU19GSUxMRUQQAxIaChZPUkRFUl9TVEFUVVNfQ0FOQ0VMTEVEEAQSGAoUT1JERVJfU1RBVFVTX0VYUElSRUQQBSqIAQoLVGltZUluRm9yY2USHQoZVElNRV9JTl9GT1JDRV9VTlNQRUNJRklFRBAAEhUKEVRJTUVfSU5fRk9SQ0VfR1RDEAESFQoRVElNRV9JTl9GT1JDRV9JT0MQAhIVChFUSU1FX0lOX0ZPUkNFX0ZPSxADEhUKEVRJTUVfSU5fRk9SQ0VfR1REEAQq2gIKEFNldHRsZW1lbnRTdGF0dXMSIQodU0VUVExFTUVOVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIdChlTRVRUTEVNRU5UX1NUQVRVU19DUkVBVEVEEAESIgoeU0VUVExFTUVOVF9TVEFUVVNfUFJFQ09ORklSTUVEEAISKQolU0VUVExFTUVOVF9TVEFUVVNfRFZQX1JFUVVFU1RfQ1JFQVRFRBADEioKJlNFVFRMRU1FTlRfU1RBVFVTX0RWUF9SRVFVRVNUX0FDQ0VQVEVEEAQSKwonU0VUVExFTUVOVF9TVEFUVVNfSU5TVFJVTUVOVFNfQUxMT0NBVEVEEAUSHQoZU0VUVExFTUVOVF9TVEFUVVNfU0VUVExFRBAGEh8KG1NFVFRMRU1FTlRfU1RBVFVTX0NBTkNFTExFRBAHEhwKGFNFVFRMRU1FTlRfU1RBVFVTX0ZBSUxFRBAIKnYKCk1hcmtldFR5cGUSGwoXTUFSS0VUX1RZUEVfVU5TUEVDSUZJRUQQABIXChNNQVJLRVRfVFlQRV9HRU5FUkFMEAESHQoZTUFSS0VUX1RZUEVfSU5TVElUVVRJT05BTBACEhMKD01BUktFVF9UWVBFX09UQxADMtsTChBPcmRlcmJvb2tTZXJ2aWNlElwKCUdldE9yZGVycxImLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyc1JlcXVlc3QaJy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcnNSZXNwb25zZRJ0ChFHZXRPcmRlcmJvb2tEZXB0aBIuLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyYm9va0RlcHRoUmVxdWVzdBovLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyYm9va0RlcHRoUmVzcG9uc2USgwEKFkdldFNldHRsZW1lbnRQcm9wb3NhbHMSMy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVxdWVzdBo0LnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbHNSZXNwb25zZRKAAQoVR2V0U2V0dGxlbWVudFByb3Bvc2FsEjIuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2FsUmVxdWVzdBozLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbFJlc3BvbnNlEmsKDkdldEluc3RydW1lbnRzEisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0SW5zdHJ1bWVudHNSZXF1ZXN0Giwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0SW5zdHJ1bWVudHNSZXNwb25zZRJfCgpHZXRNYXJrZXRzEicuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0c1JlcXVlc3QaKC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXRzUmVzcG9uc2USbgoPR2V0T3JkZXJIaXN0b3J5Eiwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJIaXN0b3J5UmVxdWVzdBotLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVySGlzdG9yeVJlc3BvbnNlEmgKDUdldE1hcmtldERhdGESKi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXREYXRhUmVxdWVzdBorLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldERhdGFSZXNwb25zZRJrCg5HZXRTZXR0bGVtZW50cxIrLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRzUmVxdWVzdBosLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRzUmVzcG9uc2USYgoLU3VibWl0T3JkZXISKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJtaXRPcmRlclJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJtaXRPcmRlclJlc3BvbnNlEmIKC0NhbmNlbE9yZGVyEiguc2lsdmFuYS5vcmRlcmJvb2sudjEuQ2FuY2VsT3JkZXJSZXF1ZXN0Gikuc2lsdmFuYS5vcmRlcmJvb2sudjEuQ2FuY2VsT3JkZXJSZXNwb25zZRJZCghHZXRQYXJ0eRIlLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnR5UmVxdWVzdBomLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnR5UmVzcG9uc2USXwoKR2V0UGFydGllcxInLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnRpZXNSZXF1ZXN0Giguc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydGllc1Jlc3BvbnNlEmIKC0NyZWF0ZVBhcnR5Eiguc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlUGFydHlSZXF1ZXN0Gikuc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlUGFydHlSZXNwb25zZRJiCgtVcGRhdGVQYXJ0eRIoLnNpbHZhbmEub3JkZXJib29rLnYxLlVwZGF0ZVBhcnR5UmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLlVwZGF0ZVBhcnR5UmVzcG9uc2USbgoPRGVhY3RpdmF0ZVBhcnR5Eiwuc2lsdmFuYS5vcmRlcmJvb2sudjEuRGVhY3RpdmF0ZVBhcnR5UmVxdWVzdBotLnNpbHZhbmEub3JkZXJib29rLnYxLkRlYWN0aXZhdGVQYXJ0eVJlc3BvbnNlEm4KD0dldFBhcnR5SGlzdG9yeRIsLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnR5SGlzdG9yeVJlcXVlc3QaLS5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eUhpc3RvcnlSZXNwb25zZRJxChBDcmVhdGVJbnN0cnVtZW50Ei0uc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlSW5zdHJ1bWVudFJlcXVlc3QaLi5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVJbnN0cnVtZW50UmVzcG9uc2USZQoMQ3JlYXRlTWFya2V0Eikuc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlTWFya2V0UmVxdWVzdBoqLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZU1hcmtldFJlc3BvbnNlEoMBChZVcGRhdGVNYXJrZXRQcmljZUZlZWRzEjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlTWFya2V0UHJpY2VGZWVkc1JlcXVlc3QaNC5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVNYXJrZXRQcmljZUZlZWRzUmVzcG9uc2USbgoSU3Vic2NyaWJlT3JkZXJib29rEi8uc2lsdmFuYS5vcmRlcmJvb2sudjEuU3Vic2NyaWJlT3JkZXJib29rUmVxdWVzdBolLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va1VwZGF0ZTABEmQKD1N1YnNjcmliZU9yZGVycxIsLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZU9yZGVyc1JlcXVlc3QaIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclVwZGF0ZTABEnMKFFN1YnNjcmliZVNldHRsZW1lbnRzEjEuc2lsdmFuYS5vcmRlcmJvb2sudjEuU3Vic2NyaWJlU2V0dGxlbWVudHNSZXF1ZXN0GiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFVwZGF0ZTABQjRaMmdpdGh1Yi5jb20vU2lsdmFuYU9uZS9jYW50b24tYWdlbnQvcHJvdG87b3JkZXJib29rYgZwcm90bzM", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
16
16
 
17
17
  /**
18
- * JWT authentication token
18
+ * JWT authentication token (for server-signed tokens using JWT_PRIVATE_KEY)
19
19
  *
20
20
  * @generated from message silvana.orderbook.v1.JWTAuth
21
21
  */
22
22
  export type JWTAuth = Message<"silvana.orderbook.v1.JWTAuth"> & {
23
23
  /**
24
- * JWT signed with Ed25519 private key
24
+ * JWT signed with server's Ed25519 private key (JWT_PRIVATE_KEY)
25
25
  *
26
26
  * @generated from field: string token = 1;
27
27
  */
@@ -35,6 +35,45 @@ export type JWTAuth = Message<"silvana.orderbook.v1.JWTAuth"> & {
35
35
  export const JWTAuthSchema: GenMessage<JWTAuth> = /*@__PURE__*/
36
36
  messageDesc(file_proto_silvana_orderbook_v1_orderbook, 0);
37
37
 
38
+ /**
39
+ * External account authentication
40
+ * JWT is signed by the external account's Ed25519 private key
41
+ * The public_key is verified against the party_id fingerprint:
42
+ * fingerprint = SHA256(0x0000000C || public_key_bytes)
43
+ * party_id format: "identifier::1220{fingerprint}"
44
+ *
45
+ * @generated from message silvana.orderbook.v1.ExternalAuth
46
+ */
47
+ export type ExternalAuth = Message<"silvana.orderbook.v1.ExternalAuth"> & {
48
+ /**
49
+ * JWT signed with external account's Ed25519 private key
50
+ *
51
+ * @generated from field: string jwt = 1;
52
+ */
53
+ jwt: string;
54
+
55
+ /**
56
+ * Canton party ID of the external account
57
+ *
58
+ * @generated from field: string party_id = 2;
59
+ */
60
+ partyId: string;
61
+
62
+ /**
63
+ * Ed25519 public key (hex) - verified against party_id fingerprint
64
+ *
65
+ * @generated from field: string public_key = 3;
66
+ */
67
+ publicKey: string;
68
+ };
69
+
70
+ /**
71
+ * Describes the message silvana.orderbook.v1.ExternalAuth.
72
+ * Use `create(ExternalAuthSchema)` to create a new message.
73
+ */
74
+ export const ExternalAuthSchema: GenMessage<ExternalAuth> = /*@__PURE__*/
75
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 1);
76
+
38
77
  /**
39
78
  * Instrument message
40
79
  *
@@ -104,7 +143,7 @@ export type Instrument = Message<"silvana.orderbook.v1.Instrument"> & {
104
143
  * Use `create(InstrumentSchema)` to create a new message.
105
144
  */
106
145
  export const InstrumentSchema: GenMessage<Instrument> = /*@__PURE__*/
107
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 1);
146
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 2);
108
147
 
109
148
  /**
110
149
  * Market message
@@ -229,7 +268,7 @@ export type Market = Message<"silvana.orderbook.v1.Market"> & {
229
268
  * Use `create(MarketSchema)` to create a new message.
230
269
  */
231
270
  export const MarketSchema: GenMessage<Market> = /*@__PURE__*/
232
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 2);
271
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 3);
233
272
 
234
273
  /**
235
274
  * Order message
@@ -369,7 +408,7 @@ export type Order = Message<"silvana.orderbook.v1.Order"> & {
369
408
  * Use `create(OrderSchema)` to create a new message.
370
409
  */
371
410
  export const OrderSchema: GenMessage<Order> = /*@__PURE__*/
372
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 3);
411
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 4);
373
412
 
374
413
  /**
375
414
  * Orderbook depth level (aggregated view without user details)
@@ -407,7 +446,7 @@ export type OrderbookLevel = Message<"silvana.orderbook.v1.OrderbookLevel"> & {
407
446
  * Use `create(OrderbookLevelSchema)` to create a new message.
408
447
  */
409
448
  export const OrderbookLevelSchema: GenMessage<OrderbookLevel> = /*@__PURE__*/
410
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 4);
449
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 5);
411
450
 
412
451
  /**
413
452
  * Orderbook depth for a market
@@ -450,7 +489,7 @@ export type OrderbookDepth = Message<"silvana.orderbook.v1.OrderbookDepth"> & {
450
489
  * Use `create(OrderbookDepthSchema)` to create a new message.
451
490
  */
452
491
  export const OrderbookDepthSchema: GenMessage<OrderbookDepth> = /*@__PURE__*/
453
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 5);
492
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 6);
454
493
 
455
494
  /**
456
495
  * Settlement proposal message
@@ -459,11 +498,11 @@ export const OrderbookDepthSchema: GenMessage<OrderbookDepth> = /*@__PURE__*/
459
498
  */
460
499
  export type SettlementProposal = Message<"silvana.orderbook.v1.SettlementProposal"> & {
461
500
  /**
462
- * BIGINT UNSIGNED AUTO_INCREMENT
501
+ * UUID v7 - single ID used everywhere
463
502
  *
464
- * @generated from field: uint64 proposal_id = 1;
503
+ * @generated from field: string proposal_id = 1;
465
504
  */
466
- proposalId: bigint;
505
+ proposalId: string;
467
506
 
468
507
  /**
469
508
  * @generated from field: string market_id = 2;
@@ -568,11 +607,8 @@ export type SettlementProposal = Message<"silvana.orderbook.v1.SettlementProposa
568
607
  dvpUpdateId?: string;
569
608
 
570
609
  /**
571
- * @generated from field: optional string dvp_settlement_id = 20;
572
- */
573
- dvpSettlementId?: string;
574
-
575
- /**
610
+ * Field 20 removed (was dvp_settlement_id - now using proposal_id as settlement ID)
611
+ *
576
612
  * @generated from field: optional string allocation_buyer_cid = 21;
577
613
  */
578
614
  allocationBuyerCid?: string;
@@ -665,7 +701,7 @@ export type SettlementProposal = Message<"silvana.orderbook.v1.SettlementProposa
665
701
  * Use `create(SettlementProposalSchema)` to create a new message.
666
702
  */
667
703
  export const SettlementProposalSchema: GenMessage<SettlementProposal> = /*@__PURE__*/
668
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 6);
704
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 7);
669
705
 
670
706
  /**
671
707
  * Order match message
@@ -674,43 +710,38 @@ export const SettlementProposalSchema: GenMessage<SettlementProposal> = /*@__PUR
674
710
  */
675
711
  export type OrderMatch = Message<"silvana.orderbook.v1.OrderMatch"> & {
676
712
  /**
677
- * BIGINT UNSIGNED AUTO_INCREMENT
713
+ * UUID v7 - primary key (same as proposal_id)
678
714
  *
679
- * @generated from field: uint64 match_id = 1;
715
+ * @generated from field: string settlement_proposal_id = 1;
680
716
  */
681
- matchId: bigint;
717
+ settlementProposalId: string;
682
718
 
683
719
  /**
684
- * @generated from field: uint64 settlement_proposal_id = 2;
685
- */
686
- settlementProposalId: bigint;
687
-
688
- /**
689
- * @generated from field: uint64 bid_order_id = 3;
720
+ * @generated from field: uint64 bid_order_id = 2;
690
721
  */
691
722
  bidOrderId: bigint;
692
723
 
693
724
  /**
694
- * @generated from field: uint64 offer_order_id = 4;
725
+ * @generated from field: uint64 offer_order_id = 3;
695
726
  */
696
727
  offerOrderId: bigint;
697
728
 
698
729
  /**
699
730
  * DECIMAL(38,10) as string
700
731
  *
701
- * @generated from field: string matched_quantity = 5;
732
+ * @generated from field: string matched_quantity = 4;
702
733
  */
703
734
  matchedQuantity: string;
704
735
 
705
736
  /**
706
737
  * DECIMAL(38,10) as string
707
738
  *
708
- * @generated from field: string matched_price = 6;
739
+ * @generated from field: string matched_price = 5;
709
740
  */
710
741
  matchedPrice: string;
711
742
 
712
743
  /**
713
- * @generated from field: google.protobuf.Timestamp created_at = 7;
744
+ * @generated from field: google.protobuf.Timestamp created_at = 6;
714
745
  */
715
746
  createdAt?: Timestamp;
716
747
  };
@@ -720,7 +751,7 @@ export type OrderMatch = Message<"silvana.orderbook.v1.OrderMatch"> & {
720
751
  * Use `create(OrderMatchSchema)` to create a new message.
721
752
  */
722
753
  export const OrderMatchSchema: GenMessage<OrderMatch> = /*@__PURE__*/
723
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 7);
754
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 8);
724
755
 
725
756
  /**
726
757
  * Settlement (completed) message
@@ -729,16 +760,18 @@ export const OrderMatchSchema: GenMessage<OrderMatch> = /*@__PURE__*/
729
760
  */
730
761
  export type Settlement = Message<"silvana.orderbook.v1.Settlement"> & {
731
762
  /**
732
- * BIGINT UNSIGNED AUTO_INCREMENT
763
+ * BIGINT UNSIGNED AUTO_INCREMENT (internal DB key)
733
764
  *
734
765
  * @generated from field: uint64 settlement_id = 1;
735
766
  */
736
767
  settlementId: bigint;
737
768
 
738
769
  /**
739
- * @generated from field: uint64 proposal_id = 2;
770
+ * UUID v7 - reference to settlement proposal
771
+ *
772
+ * @generated from field: string proposal_id = 2;
740
773
  */
741
- proposalId: bigint;
774
+ proposalId: string;
742
775
 
743
776
  /**
744
777
  * @generated from field: string market_id = 3;
@@ -807,7 +840,7 @@ export type Settlement = Message<"silvana.orderbook.v1.Settlement"> & {
807
840
  * Use `create(SettlementSchema)` to create a new message.
808
841
  */
809
842
  export const SettlementSchema: GenMessage<Settlement> = /*@__PURE__*/
810
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 8);
843
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 9);
811
844
 
812
845
  /**
813
846
  * Market data message
@@ -874,7 +907,7 @@ export type MarketData = Message<"silvana.orderbook.v1.MarketData"> & {
874
907
  * Use `create(MarketDataSchema)` to create a new message.
875
908
  */
876
909
  export const MarketDataSchema: GenMessage<MarketData> = /*@__PURE__*/
877
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 9);
910
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 10);
878
911
 
879
912
  /**
880
913
  * Get user's orders
@@ -911,6 +944,13 @@ export type GetOrdersRequest = Message<"silvana.orderbook.v1.GetOrdersRequest">
911
944
  * @generated from field: optional uint32 offset = 6;
912
945
  */
913
946
  offset?: number;
947
+
948
+ /**
949
+ * Alternative auth for external accounts
950
+ *
951
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
952
+ */
953
+ externalAuth?: ExternalAuth;
914
954
  };
915
955
 
916
956
  /**
@@ -918,7 +958,7 @@ export type GetOrdersRequest = Message<"silvana.orderbook.v1.GetOrdersRequest">
918
958
  * Use `create(GetOrdersRequestSchema)` to create a new message.
919
959
  */
920
960
  export const GetOrdersRequestSchema: GenMessage<GetOrdersRequest> = /*@__PURE__*/
921
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 10);
961
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 11);
922
962
 
923
963
  /**
924
964
  * @generated from message silvana.orderbook.v1.GetOrdersResponse
@@ -950,7 +990,7 @@ export type GetOrdersResponse = Message<"silvana.orderbook.v1.GetOrdersResponse"
950
990
  * Use `create(GetOrdersResponseSchema)` to create a new message.
951
991
  */
952
992
  export const GetOrdersResponseSchema: GenMessage<GetOrdersResponse> = /*@__PURE__*/
953
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 11);
993
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 12);
954
994
 
955
995
  /**
956
996
  * Get orderbook depth (aggregated, no user details)
@@ -974,6 +1014,13 @@ export type GetOrderbookDepthRequest = Message<"silvana.orderbook.v1.GetOrderboo
974
1014
  * @generated from field: optional uint32 depth = 3;
975
1015
  */
976
1016
  depth?: number;
1017
+
1018
+ /**
1019
+ * Alternative auth for external accounts
1020
+ *
1021
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1022
+ */
1023
+ externalAuth?: ExternalAuth;
977
1024
  };
978
1025
 
979
1026
  /**
@@ -981,7 +1028,7 @@ export type GetOrderbookDepthRequest = Message<"silvana.orderbook.v1.GetOrderboo
981
1028
  * Use `create(GetOrderbookDepthRequestSchema)` to create a new message.
982
1029
  */
983
1030
  export const GetOrderbookDepthRequestSchema: GenMessage<GetOrderbookDepthRequest> = /*@__PURE__*/
984
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 12);
1031
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 13);
985
1032
 
986
1033
  /**
987
1034
  * @generated from message silvana.orderbook.v1.GetOrderbookDepthResponse
@@ -1008,7 +1055,7 @@ export type GetOrderbookDepthResponse = Message<"silvana.orderbook.v1.GetOrderbo
1008
1055
  * Use `create(GetOrderbookDepthResponseSchema)` to create a new message.
1009
1056
  */
1010
1057
  export const GetOrderbookDepthResponseSchema: GenMessage<GetOrderbookDepthResponse> = /*@__PURE__*/
1011
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 13);
1058
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 14);
1012
1059
 
1013
1060
  /**
1014
1061
  * Get user's settlement proposals
@@ -1040,6 +1087,13 @@ export type GetSettlementProposalsRequest = Message<"silvana.orderbook.v1.GetSet
1040
1087
  * @generated from field: optional uint32 offset = 5;
1041
1088
  */
1042
1089
  offset?: number;
1090
+
1091
+ /**
1092
+ * Alternative auth for external accounts
1093
+ *
1094
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1095
+ */
1096
+ externalAuth?: ExternalAuth;
1043
1097
  };
1044
1098
 
1045
1099
  /**
@@ -1047,7 +1101,7 @@ export type GetSettlementProposalsRequest = Message<"silvana.orderbook.v1.GetSet
1047
1101
  * Use `create(GetSettlementProposalsRequestSchema)` to create a new message.
1048
1102
  */
1049
1103
  export const GetSettlementProposalsRequestSchema: GenMessage<GetSettlementProposalsRequest> = /*@__PURE__*/
1050
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 14);
1104
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 15);
1051
1105
 
1052
1106
  /**
1053
1107
  * @generated from message silvana.orderbook.v1.GetSettlementProposalsResponse
@@ -1079,7 +1133,7 @@ export type GetSettlementProposalsResponse = Message<"silvana.orderbook.v1.GetSe
1079
1133
  * Use `create(GetSettlementProposalsResponseSchema)` to create a new message.
1080
1134
  */
1081
1135
  export const GetSettlementProposalsResponseSchema: GenMessage<GetSettlementProposalsResponse> = /*@__PURE__*/
1082
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 15);
1136
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 16);
1083
1137
 
1084
1138
  /**
1085
1139
  * Get a single settlement proposal by ID
@@ -1093,9 +1147,18 @@ export type GetSettlementProposalRequest = Message<"silvana.orderbook.v1.GetSett
1093
1147
  auth?: JWTAuth;
1094
1148
 
1095
1149
  /**
1096
- * @generated from field: uint64 proposal_id = 2;
1150
+ * UUID v7
1151
+ *
1152
+ * @generated from field: string proposal_id = 2;
1153
+ */
1154
+ proposalId: string;
1155
+
1156
+ /**
1157
+ * Alternative auth for external accounts
1158
+ *
1159
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1097
1160
  */
1098
- proposalId: bigint;
1161
+ externalAuth?: ExternalAuth;
1099
1162
  };
1100
1163
 
1101
1164
  /**
@@ -1103,7 +1166,7 @@ export type GetSettlementProposalRequest = Message<"silvana.orderbook.v1.GetSett
1103
1166
  * Use `create(GetSettlementProposalRequestSchema)` to create a new message.
1104
1167
  */
1105
1168
  export const GetSettlementProposalRequestSchema: GenMessage<GetSettlementProposalRequest> = /*@__PURE__*/
1106
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 16);
1169
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 17);
1107
1170
 
1108
1171
  /**
1109
1172
  * @generated from message silvana.orderbook.v1.GetSettlementProposalResponse
@@ -1130,7 +1193,7 @@ export type GetSettlementProposalResponse = Message<"silvana.orderbook.v1.GetSet
1130
1193
  * Use `create(GetSettlementProposalResponseSchema)` to create a new message.
1131
1194
  */
1132
1195
  export const GetSettlementProposalResponseSchema: GenMessage<GetSettlementProposalResponse> = /*@__PURE__*/
1133
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 17);
1196
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 18);
1134
1197
 
1135
1198
  /**
1136
1199
  * Get available instruments (filtered by JWT permissions)
@@ -1157,6 +1220,13 @@ export type GetInstrumentsRequest = Message<"silvana.orderbook.v1.GetInstruments
1157
1220
  * @generated from field: optional uint32 offset = 4;
1158
1221
  */
1159
1222
  offset?: number;
1223
+
1224
+ /**
1225
+ * Alternative auth for external accounts
1226
+ *
1227
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1228
+ */
1229
+ externalAuth?: ExternalAuth;
1160
1230
  };
1161
1231
 
1162
1232
  /**
@@ -1164,7 +1234,7 @@ export type GetInstrumentsRequest = Message<"silvana.orderbook.v1.GetInstruments
1164
1234
  * Use `create(GetInstrumentsRequestSchema)` to create a new message.
1165
1235
  */
1166
1236
  export const GetInstrumentsRequestSchema: GenMessage<GetInstrumentsRequest> = /*@__PURE__*/
1167
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 18);
1237
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 19);
1168
1238
 
1169
1239
  /**
1170
1240
  * @generated from message silvana.orderbook.v1.GetInstrumentsResponse
@@ -1196,7 +1266,7 @@ export type GetInstrumentsResponse = Message<"silvana.orderbook.v1.GetInstrument
1196
1266
  * Use `create(GetInstrumentsResponseSchema)` to create a new message.
1197
1267
  */
1198
1268
  export const GetInstrumentsResponseSchema: GenMessage<GetInstrumentsResponse> = /*@__PURE__*/
1199
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 19);
1269
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 20);
1200
1270
 
1201
1271
  /**
1202
1272
  * Get available markets (filtered by JWT permissions)
@@ -1238,6 +1308,13 @@ export type GetMarketsRequest = Message<"silvana.orderbook.v1.GetMarketsRequest"
1238
1308
  * @generated from field: optional uint32 offset = 7;
1239
1309
  */
1240
1310
  offset?: number;
1311
+
1312
+ /**
1313
+ * Alternative auth for external accounts
1314
+ *
1315
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1316
+ */
1317
+ externalAuth?: ExternalAuth;
1241
1318
  };
1242
1319
 
1243
1320
  /**
@@ -1245,7 +1322,7 @@ export type GetMarketsRequest = Message<"silvana.orderbook.v1.GetMarketsRequest"
1245
1322
  * Use `create(GetMarketsRequestSchema)` to create a new message.
1246
1323
  */
1247
1324
  export const GetMarketsRequestSchema: GenMessage<GetMarketsRequest> = /*@__PURE__*/
1248
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 20);
1325
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 21);
1249
1326
 
1250
1327
  /**
1251
1328
  * @generated from message silvana.orderbook.v1.GetMarketsResponse
@@ -1277,7 +1354,7 @@ export type GetMarketsResponse = Message<"silvana.orderbook.v1.GetMarketsRespons
1277
1354
  * Use `create(GetMarketsResponseSchema)` to create a new message.
1278
1355
  */
1279
1356
  export const GetMarketsResponseSchema: GenMessage<GetMarketsResponse> = /*@__PURE__*/
1280
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 21);
1357
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 22);
1281
1358
 
1282
1359
  /**
1283
1360
  * Get user's order history
@@ -1314,6 +1391,13 @@ export type GetOrderHistoryRequest = Message<"silvana.orderbook.v1.GetOrderHisto
1314
1391
  * @generated from field: optional uint32 offset = 6;
1315
1392
  */
1316
1393
  offset?: number;
1394
+
1395
+ /**
1396
+ * Alternative auth for external accounts
1397
+ *
1398
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1399
+ */
1400
+ externalAuth?: ExternalAuth;
1317
1401
  };
1318
1402
 
1319
1403
  /**
@@ -1321,7 +1405,7 @@ export type GetOrderHistoryRequest = Message<"silvana.orderbook.v1.GetOrderHisto
1321
1405
  * Use `create(GetOrderHistoryRequestSchema)` to create a new message.
1322
1406
  */
1323
1407
  export const GetOrderHistoryRequestSchema: GenMessage<GetOrderHistoryRequest> = /*@__PURE__*/
1324
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 22);
1408
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 23);
1325
1409
 
1326
1410
  /**
1327
1411
  * @generated from message silvana.orderbook.v1.GetOrderHistoryResponse
@@ -1353,7 +1437,7 @@ export type GetOrderHistoryResponse = Message<"silvana.orderbook.v1.GetOrderHist
1353
1437
  * Use `create(GetOrderHistoryResponseSchema)` to create a new message.
1354
1438
  */
1355
1439
  export const GetOrderHistoryResponseSchema: GenMessage<GetOrderHistoryResponse> = /*@__PURE__*/
1356
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 23);
1440
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 24);
1357
1441
 
1358
1442
  /**
1359
1443
  * Get market data (filtered by JWT permissions)
@@ -1372,6 +1456,13 @@ export type GetMarketDataRequest = Message<"silvana.orderbook.v1.GetMarketDataRe
1372
1456
  * @generated from field: repeated string market_ids = 2;
1373
1457
  */
1374
1458
  marketIds: string[];
1459
+
1460
+ /**
1461
+ * Alternative auth for external accounts
1462
+ *
1463
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1464
+ */
1465
+ externalAuth?: ExternalAuth;
1375
1466
  };
1376
1467
 
1377
1468
  /**
@@ -1379,7 +1470,7 @@ export type GetMarketDataRequest = Message<"silvana.orderbook.v1.GetMarketDataRe
1379
1470
  * Use `create(GetMarketDataRequestSchema)` to create a new message.
1380
1471
  */
1381
1472
  export const GetMarketDataRequestSchema: GenMessage<GetMarketDataRequest> = /*@__PURE__*/
1382
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 24);
1473
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 25);
1383
1474
 
1384
1475
  /**
1385
1476
  * @generated from message silvana.orderbook.v1.GetMarketDataResponse
@@ -1406,7 +1497,7 @@ export type GetMarketDataResponse = Message<"silvana.orderbook.v1.GetMarketDataR
1406
1497
  * Use `create(GetMarketDataResponseSchema)` to create a new message.
1407
1498
  */
1408
1499
  export const GetMarketDataResponseSchema: GenMessage<GetMarketDataResponse> = /*@__PURE__*/
1409
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 25);
1500
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 26);
1410
1501
 
1411
1502
  /**
1412
1503
  * Get user's settlements (completed)
@@ -1443,6 +1534,13 @@ export type GetSettlementsRequest = Message<"silvana.orderbook.v1.GetSettlements
1443
1534
  * @generated from field: optional uint32 offset = 6;
1444
1535
  */
1445
1536
  offset?: number;
1537
+
1538
+ /**
1539
+ * Alternative auth for external accounts
1540
+ *
1541
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1542
+ */
1543
+ externalAuth?: ExternalAuth;
1446
1544
  };
1447
1545
 
1448
1546
  /**
@@ -1450,7 +1548,7 @@ export type GetSettlementsRequest = Message<"silvana.orderbook.v1.GetSettlements
1450
1548
  * Use `create(GetSettlementsRequestSchema)` to create a new message.
1451
1549
  */
1452
1550
  export const GetSettlementsRequestSchema: GenMessage<GetSettlementsRequest> = /*@__PURE__*/
1453
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 26);
1551
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 27);
1454
1552
 
1455
1553
  /**
1456
1554
  * @generated from message silvana.orderbook.v1.GetSettlementsResponse
@@ -1482,7 +1580,7 @@ export type GetSettlementsResponse = Message<"silvana.orderbook.v1.GetSettlement
1482
1580
  * Use `create(GetSettlementsResponseSchema)` to create a new message.
1483
1581
  */
1484
1582
  export const GetSettlementsResponseSchema: GenMessage<GetSettlementsResponse> = /*@__PURE__*/
1485
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 27);
1583
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 28);
1486
1584
 
1487
1585
  /**
1488
1586
  * Subscribe to orderbook updates (streaming)
@@ -1506,6 +1604,13 @@ export type SubscribeOrderbookRequest = Message<"silvana.orderbook.v1.SubscribeO
1506
1604
  * @generated from field: optional uint32 depth = 3;
1507
1605
  */
1508
1606
  depth?: number;
1607
+
1608
+ /**
1609
+ * Alternative auth for external accounts
1610
+ *
1611
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1612
+ */
1613
+ externalAuth?: ExternalAuth;
1509
1614
  };
1510
1615
 
1511
1616
  /**
@@ -1513,7 +1618,7 @@ export type SubscribeOrderbookRequest = Message<"silvana.orderbook.v1.SubscribeO
1513
1618
  * Use `create(SubscribeOrderbookRequestSchema)` to create a new message.
1514
1619
  */
1515
1620
  export const SubscribeOrderbookRequestSchema: GenMessage<SubscribeOrderbookRequest> = /*@__PURE__*/
1516
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 28);
1621
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 29);
1517
1622
 
1518
1623
  /**
1519
1624
  * Orderbook update event
@@ -1559,7 +1664,7 @@ export type OrderbookUpdate = Message<"silvana.orderbook.v1.OrderbookUpdate"> &
1559
1664
  * Use `create(OrderbookUpdateSchema)` to create a new message.
1560
1665
  */
1561
1666
  export const OrderbookUpdateSchema: GenMessage<OrderbookUpdate> = /*@__PURE__*/
1562
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 29);
1667
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 30);
1563
1668
 
1564
1669
  /**
1565
1670
  * @generated from enum silvana.orderbook.v1.OrderbookUpdate.UpdateType
@@ -1585,7 +1690,7 @@ export enum OrderbookUpdate_UpdateType {
1585
1690
  * Describes the enum silvana.orderbook.v1.OrderbookUpdate.UpdateType.
1586
1691
  */
1587
1692
  export const OrderbookUpdate_UpdateTypeSchema: GenEnum<OrderbookUpdate_UpdateType> = /*@__PURE__*/
1588
- enumDesc(file_proto_silvana_orderbook_v1_orderbook, 29, 0);
1693
+ enumDesc(file_proto_silvana_orderbook_v1_orderbook, 30, 0);
1589
1694
 
1590
1695
  /**
1591
1696
  * Subscribe to user's order updates (streaming)
@@ -1602,6 +1707,13 @@ export type SubscribeOrdersRequest = Message<"silvana.orderbook.v1.SubscribeOrde
1602
1707
  * @generated from field: optional string market_id = 2;
1603
1708
  */
1604
1709
  marketId?: string;
1710
+
1711
+ /**
1712
+ * Alternative auth for external accounts
1713
+ *
1714
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1715
+ */
1716
+ externalAuth?: ExternalAuth;
1605
1717
  };
1606
1718
 
1607
1719
  /**
@@ -1609,7 +1721,7 @@ export type SubscribeOrdersRequest = Message<"silvana.orderbook.v1.SubscribeOrde
1609
1721
  * Use `create(SubscribeOrdersRequestSchema)` to create a new message.
1610
1722
  */
1611
1723
  export const SubscribeOrdersRequestSchema: GenMessage<SubscribeOrdersRequest> = /*@__PURE__*/
1612
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 30);
1724
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 31);
1613
1725
 
1614
1726
  /**
1615
1727
  * Order update event
@@ -1645,7 +1757,7 @@ export type OrderUpdate = Message<"silvana.orderbook.v1.OrderUpdate"> & {
1645
1757
  * Use `create(OrderUpdateSchema)` to create a new message.
1646
1758
  */
1647
1759
  export const OrderUpdateSchema: GenMessage<OrderUpdate> = /*@__PURE__*/
1648
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 31);
1760
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 32);
1649
1761
 
1650
1762
  /**
1651
1763
  * @generated from enum silvana.orderbook.v1.OrderUpdate.EventType
@@ -1691,7 +1803,7 @@ export enum OrderUpdate_EventType {
1691
1803
  * Describes the enum silvana.orderbook.v1.OrderUpdate.EventType.
1692
1804
  */
1693
1805
  export const OrderUpdate_EventTypeSchema: GenEnum<OrderUpdate_EventType> = /*@__PURE__*/
1694
- enumDesc(file_proto_silvana_orderbook_v1_orderbook, 31, 0);
1806
+ enumDesc(file_proto_silvana_orderbook_v1_orderbook, 32, 0);
1695
1807
 
1696
1808
  /**
1697
1809
  * Subscribe to user's settlement updates (streaming)
@@ -1708,6 +1820,13 @@ export type SubscribeSettlementsRequest = Message<"silvana.orderbook.v1.Subscrib
1708
1820
  * @generated from field: optional string market_id = 2;
1709
1821
  */
1710
1822
  marketId?: string;
1823
+
1824
+ /**
1825
+ * Alternative auth for external accounts
1826
+ *
1827
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1828
+ */
1829
+ externalAuth?: ExternalAuth;
1711
1830
  };
1712
1831
 
1713
1832
  /**
@@ -1715,7 +1834,7 @@ export type SubscribeSettlementsRequest = Message<"silvana.orderbook.v1.Subscrib
1715
1834
  * Use `create(SubscribeSettlementsRequestSchema)` to create a new message.
1716
1835
  */
1717
1836
  export const SubscribeSettlementsRequestSchema: GenMessage<SubscribeSettlementsRequest> = /*@__PURE__*/
1718
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 32);
1837
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 33);
1719
1838
 
1720
1839
  /**
1721
1840
  * Settlement update event
@@ -1744,7 +1863,7 @@ export type SettlementUpdate = Message<"silvana.orderbook.v1.SettlementUpdate">
1744
1863
  * Use `create(SettlementUpdateSchema)` to create a new message.
1745
1864
  */
1746
1865
  export const SettlementUpdateSchema: GenMessage<SettlementUpdate> = /*@__PURE__*/
1747
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 33);
1866
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 34);
1748
1867
 
1749
1868
  /**
1750
1869
  * @generated from enum silvana.orderbook.v1.SettlementUpdate.EventType
@@ -1812,7 +1931,7 @@ export enum SettlementUpdate_EventType {
1812
1931
  * Describes the enum silvana.orderbook.v1.SettlementUpdate.EventType.
1813
1932
  */
1814
1933
  export const SettlementUpdate_EventTypeSchema: GenEnum<SettlementUpdate_EventType> = /*@__PURE__*/
1815
- enumDesc(file_proto_silvana_orderbook_v1_orderbook, 33, 0);
1934
+ enumDesc(file_proto_silvana_orderbook_v1_orderbook, 34, 0);
1816
1935
 
1817
1936
  /**
1818
1937
  * Submit a new order
@@ -1878,6 +1997,13 @@ export type SubmitOrderRequest = Message<"silvana.orderbook.v1.SubmitOrderReques
1878
1997
  * @generated from field: optional google.protobuf.Struct metadata = 11;
1879
1998
  */
1880
1999
  metadata?: JsonObject;
2000
+
2001
+ /**
2002
+ * Alternative auth for external accounts
2003
+ *
2004
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 15;
2005
+ */
2006
+ externalAuth?: ExternalAuth;
1881
2007
  };
1882
2008
 
1883
2009
  /**
@@ -1885,7 +2011,7 @@ export type SubmitOrderRequest = Message<"silvana.orderbook.v1.SubmitOrderReques
1885
2011
  * Use `create(SubmitOrderRequestSchema)` to create a new message.
1886
2012
  */
1887
2013
  export const SubmitOrderRequestSchema: GenMessage<SubmitOrderRequest> = /*@__PURE__*/
1888
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 34);
2014
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 35);
1889
2015
 
1890
2016
  /**
1891
2017
  * @generated from message silvana.orderbook.v1.SubmitOrderResponse
@@ -1912,7 +2038,7 @@ export type SubmitOrderResponse = Message<"silvana.orderbook.v1.SubmitOrderRespo
1912
2038
  * Use `create(SubmitOrderResponseSchema)` to create a new message.
1913
2039
  */
1914
2040
  export const SubmitOrderResponseSchema: GenMessage<SubmitOrderResponse> = /*@__PURE__*/
1915
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 35);
2041
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 36);
1916
2042
 
1917
2043
  /**
1918
2044
  * Cancel an existing order
@@ -1929,6 +2055,13 @@ export type CancelOrderRequest = Message<"silvana.orderbook.v1.CancelOrderReques
1929
2055
  * @generated from field: uint64 order_id = 2;
1930
2056
  */
1931
2057
  orderId: bigint;
2058
+
2059
+ /**
2060
+ * Alternative auth for external accounts
2061
+ *
2062
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
2063
+ */
2064
+ externalAuth?: ExternalAuth;
1932
2065
  };
1933
2066
 
1934
2067
  /**
@@ -1936,7 +2069,7 @@ export type CancelOrderRequest = Message<"silvana.orderbook.v1.CancelOrderReques
1936
2069
  * Use `create(CancelOrderRequestSchema)` to create a new message.
1937
2070
  */
1938
2071
  export const CancelOrderRequestSchema: GenMessage<CancelOrderRequest> = /*@__PURE__*/
1939
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 36);
2072
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 37);
1940
2073
 
1941
2074
  /**
1942
2075
  * @generated from message silvana.orderbook.v1.CancelOrderResponse
@@ -1963,7 +2096,7 @@ export type CancelOrderResponse = Message<"silvana.orderbook.v1.CancelOrderRespo
1963
2096
  * Use `create(CancelOrderResponseSchema)` to create a new message.
1964
2097
  */
1965
2098
  export const CancelOrderResponseSchema: GenMessage<CancelOrderResponse> = /*@__PURE__*/
1966
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 37);
2099
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 38);
1967
2100
 
1968
2101
  /**
1969
2102
  * Create a new party (operator, registry, or trader)
@@ -2025,6 +2158,13 @@ export type CreatePartyRequest = Message<"silvana.orderbook.v1.CreatePartyReques
2025
2158
  * @generated from field: google.protobuf.Struct user_data = 9;
2026
2159
  */
2027
2160
  userData?: JsonObject;
2161
+
2162
+ /**
2163
+ * Alternative auth for external accounts
2164
+ *
2165
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 15;
2166
+ */
2167
+ externalAuth?: ExternalAuth;
2028
2168
  };
2029
2169
 
2030
2170
  /**
@@ -2032,7 +2172,7 @@ export type CreatePartyRequest = Message<"silvana.orderbook.v1.CreatePartyReques
2032
2172
  * Use `create(CreatePartyRequestSchema)` to create a new message.
2033
2173
  */
2034
2174
  export const CreatePartyRequestSchema: GenMessage<CreatePartyRequest> = /*@__PURE__*/
2035
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 38);
2175
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 39);
2036
2176
 
2037
2177
  /**
2038
2178
  * @generated from message silvana.orderbook.v1.CreatePartyResponse
@@ -2059,7 +2199,7 @@ export type CreatePartyResponse = Message<"silvana.orderbook.v1.CreatePartyRespo
2059
2199
  * Use `create(CreatePartyResponseSchema)` to create a new message.
2060
2200
  */
2061
2201
  export const CreatePartyResponseSchema: GenMessage<CreatePartyResponse> = /*@__PURE__*/
2062
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 39);
2202
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 40);
2063
2203
 
2064
2204
  /**
2065
2205
  * Update an existing party (admin operation)
@@ -2122,6 +2262,13 @@ export type UpdatePartyRequest = Message<"silvana.orderbook.v1.UpdatePartyReques
2122
2262
  * @generated from field: optional string change_reason = 10;
2123
2263
  */
2124
2264
  changeReason?: string;
2265
+
2266
+ /**
2267
+ * Alternative auth for external accounts
2268
+ *
2269
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 15;
2270
+ */
2271
+ externalAuth?: ExternalAuth;
2125
2272
  };
2126
2273
 
2127
2274
  /**
@@ -2129,7 +2276,7 @@ export type UpdatePartyRequest = Message<"silvana.orderbook.v1.UpdatePartyReques
2129
2276
  * Use `create(UpdatePartyRequestSchema)` to create a new message.
2130
2277
  */
2131
2278
  export const UpdatePartyRequestSchema: GenMessage<UpdatePartyRequest> = /*@__PURE__*/
2132
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 40);
2279
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 41);
2133
2280
 
2134
2281
  /**
2135
2282
  * @generated from message silvana.orderbook.v1.UpdatePartyResponse
@@ -2156,7 +2303,7 @@ export type UpdatePartyResponse = Message<"silvana.orderbook.v1.UpdatePartyRespo
2156
2303
  * Use `create(UpdatePartyResponseSchema)` to create a new message.
2157
2304
  */
2158
2305
  export const UpdatePartyResponseSchema: GenMessage<UpdatePartyResponse> = /*@__PURE__*/
2159
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 41);
2306
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 42);
2160
2307
 
2161
2308
  /**
2162
2309
  * Deactivate a party (soft delete - admin operation)
@@ -2185,6 +2332,13 @@ export type DeactivatePartyRequest = Message<"silvana.orderbook.v1.DeactivatePar
2185
2332
  * @generated from field: string change_reason = 4;
2186
2333
  */
2187
2334
  changeReason: string;
2335
+
2336
+ /**
2337
+ * Alternative auth for external accounts
2338
+ *
2339
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
2340
+ */
2341
+ externalAuth?: ExternalAuth;
2188
2342
  };
2189
2343
 
2190
2344
  /**
@@ -2192,7 +2346,7 @@ export type DeactivatePartyRequest = Message<"silvana.orderbook.v1.DeactivatePar
2192
2346
  * Use `create(DeactivatePartyRequestSchema)` to create a new message.
2193
2347
  */
2194
2348
  export const DeactivatePartyRequestSchema: GenMessage<DeactivatePartyRequest> = /*@__PURE__*/
2195
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 42);
2349
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 43);
2196
2350
 
2197
2351
  /**
2198
2352
  * @generated from message silvana.orderbook.v1.DeactivatePartyResponse
@@ -2219,7 +2373,7 @@ export type DeactivatePartyResponse = Message<"silvana.orderbook.v1.DeactivatePa
2219
2373
  * Use `create(DeactivatePartyResponseSchema)` to create a new message.
2220
2374
  */
2221
2375
  export const DeactivatePartyResponseSchema: GenMessage<DeactivatePartyResponse> = /*@__PURE__*/
2222
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 43);
2376
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 44);
2223
2377
 
2224
2378
  /**
2225
2379
  * Get party change history (audit trail)
@@ -2246,6 +2400,13 @@ export type GetPartyHistoryRequest = Message<"silvana.orderbook.v1.GetPartyHisto
2246
2400
  * @generated from field: optional uint32 offset = 4;
2247
2401
  */
2248
2402
  offset?: number;
2403
+
2404
+ /**
2405
+ * Alternative auth for external accounts
2406
+ *
2407
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
2408
+ */
2409
+ externalAuth?: ExternalAuth;
2249
2410
  };
2250
2411
 
2251
2412
  /**
@@ -2253,7 +2414,7 @@ export type GetPartyHistoryRequest = Message<"silvana.orderbook.v1.GetPartyHisto
2253
2414
  * Use `create(GetPartyHistoryRequestSchema)` to create a new message.
2254
2415
  */
2255
2416
  export const GetPartyHistoryRequestSchema: GenMessage<GetPartyHistoryRequest> = /*@__PURE__*/
2256
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 44);
2417
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 45);
2257
2418
 
2258
2419
  /**
2259
2420
  * Single entry in party history
@@ -2311,7 +2472,7 @@ export type PartyHistoryEntry = Message<"silvana.orderbook.v1.PartyHistoryEntry"
2311
2472
  * Use `create(PartyHistoryEntrySchema)` to create a new message.
2312
2473
  */
2313
2474
  export const PartyHistoryEntrySchema: GenMessage<PartyHistoryEntry> = /*@__PURE__*/
2314
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 45);
2475
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 46);
2315
2476
 
2316
2477
  /**
2317
2478
  * @generated from message silvana.orderbook.v1.GetPartyHistoryResponse
@@ -2343,7 +2504,7 @@ export type GetPartyHistoryResponse = Message<"silvana.orderbook.v1.GetPartyHist
2343
2504
  * Use `create(GetPartyHistoryResponseSchema)` to create a new message.
2344
2505
  */
2345
2506
  export const GetPartyHistoryResponseSchema: GenMessage<GetPartyHistoryResponse> = /*@__PURE__*/
2346
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 46);
2507
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 47);
2347
2508
 
2348
2509
  /**
2349
2510
  * Get a single party by ID
@@ -2360,6 +2521,13 @@ export type GetPartyRequest = Message<"silvana.orderbook.v1.GetPartyRequest"> &
2360
2521
  * @generated from field: string party_id = 2;
2361
2522
  */
2362
2523
  partyId: string;
2524
+
2525
+ /**
2526
+ * Alternative auth for external accounts
2527
+ *
2528
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
2529
+ */
2530
+ externalAuth?: ExternalAuth;
2363
2531
  };
2364
2532
 
2365
2533
  /**
@@ -2367,7 +2535,7 @@ export type GetPartyRequest = Message<"silvana.orderbook.v1.GetPartyRequest"> &
2367
2535
  * Use `create(GetPartyRequestSchema)` to create a new message.
2368
2536
  */
2369
2537
  export const GetPartyRequestSchema: GenMessage<GetPartyRequest> = /*@__PURE__*/
2370
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 47);
2538
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 48);
2371
2539
 
2372
2540
  /**
2373
2541
  * @generated from message silvana.orderbook.v1.GetPartyResponse
@@ -2394,7 +2562,7 @@ export type GetPartyResponse = Message<"silvana.orderbook.v1.GetPartyResponse">
2394
2562
  * Use `create(GetPartyResponseSchema)` to create a new message.
2395
2563
  */
2396
2564
  export const GetPartyResponseSchema: GenMessage<GetPartyResponse> = /*@__PURE__*/
2397
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 48);
2565
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 49);
2398
2566
 
2399
2567
  /**
2400
2568
  * List parties with filters and pagination
@@ -2434,6 +2602,13 @@ export type GetPartiesRequest = Message<"silvana.orderbook.v1.GetPartiesRequest"
2434
2602
  * @generated from field: optional uint32 offset = 5;
2435
2603
  */
2436
2604
  offset?: number;
2605
+
2606
+ /**
2607
+ * Alternative auth for external accounts
2608
+ *
2609
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
2610
+ */
2611
+ externalAuth?: ExternalAuth;
2437
2612
  };
2438
2613
 
2439
2614
  /**
@@ -2441,7 +2616,7 @@ export type GetPartiesRequest = Message<"silvana.orderbook.v1.GetPartiesRequest"
2441
2616
  * Use `create(GetPartiesRequestSchema)` to create a new message.
2442
2617
  */
2443
2618
  export const GetPartiesRequestSchema: GenMessage<GetPartiesRequest> = /*@__PURE__*/
2444
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 49);
2619
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 50);
2445
2620
 
2446
2621
  /**
2447
2622
  * @generated from message silvana.orderbook.v1.GetPartiesResponse
@@ -2473,7 +2648,7 @@ export type GetPartiesResponse = Message<"silvana.orderbook.v1.GetPartiesRespons
2473
2648
  * Use `create(GetPartiesResponseSchema)` to create a new message.
2474
2649
  */
2475
2650
  export const GetPartiesResponseSchema: GenMessage<GetPartiesResponse> = /*@__PURE__*/
2476
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 50);
2651
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 51);
2477
2652
 
2478
2653
  /**
2479
2654
  * Party information
@@ -2553,7 +2728,7 @@ export type Party = Message<"silvana.orderbook.v1.Party"> & {
2553
2728
  * Use `create(PartySchema)` to create a new message.
2554
2729
  */
2555
2730
  export const PartySchema: GenMessage<Party> = /*@__PURE__*/
2556
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 51);
2731
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 52);
2557
2732
 
2558
2733
  /**
2559
2734
  * Create a new instrument
@@ -2618,6 +2793,13 @@ export type CreateInstrumentRequest = Message<"silvana.orderbook.v1.CreateInstru
2618
2793
  * @generated from field: string news_symbol = 10;
2619
2794
  */
2620
2795
  newsSymbol: string;
2796
+
2797
+ /**
2798
+ * Alternative auth for external accounts
2799
+ *
2800
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 15;
2801
+ */
2802
+ externalAuth?: ExternalAuth;
2621
2803
  };
2622
2804
 
2623
2805
  /**
@@ -2625,7 +2807,7 @@ export type CreateInstrumentRequest = Message<"silvana.orderbook.v1.CreateInstru
2625
2807
  * Use `create(CreateInstrumentRequestSchema)` to create a new message.
2626
2808
  */
2627
2809
  export const CreateInstrumentRequestSchema: GenMessage<CreateInstrumentRequest> = /*@__PURE__*/
2628
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 52);
2810
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 53);
2629
2811
 
2630
2812
  /**
2631
2813
  * @generated from message silvana.orderbook.v1.CreateInstrumentResponse
@@ -2652,7 +2834,7 @@ export type CreateInstrumentResponse = Message<"silvana.orderbook.v1.CreateInstr
2652
2834
  * Use `create(CreateInstrumentResponseSchema)` to create a new message.
2653
2835
  */
2654
2836
  export const CreateInstrumentResponseSchema: GenMessage<CreateInstrumentResponse> = /*@__PURE__*/
2655
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 53);
2837
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 54);
2656
2838
 
2657
2839
  /**
2658
2840
  * Create a new market
@@ -2735,6 +2917,13 @@ export type CreateMarketRequest = Message<"silvana.orderbook.v1.CreateMarketRequ
2735
2917
  * @generated from field: optional google.protobuf.Struct price_feeds = 12;
2736
2918
  */
2737
2919
  priceFeeds?: JsonObject;
2920
+
2921
+ /**
2922
+ * Alternative auth for external accounts
2923
+ *
2924
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 15;
2925
+ */
2926
+ externalAuth?: ExternalAuth;
2738
2927
  };
2739
2928
 
2740
2929
  /**
@@ -2742,7 +2931,7 @@ export type CreateMarketRequest = Message<"silvana.orderbook.v1.CreateMarketRequ
2742
2931
  * Use `create(CreateMarketRequestSchema)` to create a new message.
2743
2932
  */
2744
2933
  export const CreateMarketRequestSchema: GenMessage<CreateMarketRequest> = /*@__PURE__*/
2745
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 54);
2934
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 55);
2746
2935
 
2747
2936
  /**
2748
2937
  * @generated from message silvana.orderbook.v1.CreateMarketResponse
@@ -2769,7 +2958,7 @@ export type CreateMarketResponse = Message<"silvana.orderbook.v1.CreateMarketRes
2769
2958
  * Use `create(CreateMarketResponseSchema)` to create a new message.
2770
2959
  */
2771
2960
  export const CreateMarketResponseSchema: GenMessage<CreateMarketResponse> = /*@__PURE__*/
2772
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 55);
2961
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 56);
2773
2962
 
2774
2963
  /**
2775
2964
  * Update price feeds for an existing market
@@ -2793,6 +2982,13 @@ export type UpdateMarketPriceFeedsRequest = Message<"silvana.orderbook.v1.Update
2793
2982
  * @generated from field: google.protobuf.Struct price_feeds = 3;
2794
2983
  */
2795
2984
  priceFeeds?: JsonObject;
2985
+
2986
+ /**
2987
+ * Alternative auth for external accounts
2988
+ *
2989
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
2990
+ */
2991
+ externalAuth?: ExternalAuth;
2796
2992
  };
2797
2993
 
2798
2994
  /**
@@ -2800,7 +2996,7 @@ export type UpdateMarketPriceFeedsRequest = Message<"silvana.orderbook.v1.Update
2800
2996
  * Use `create(UpdateMarketPriceFeedsRequestSchema)` to create a new message.
2801
2997
  */
2802
2998
  export const UpdateMarketPriceFeedsRequestSchema: GenMessage<UpdateMarketPriceFeedsRequest> = /*@__PURE__*/
2803
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 56);
2999
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 57);
2804
3000
 
2805
3001
  /**
2806
3002
  * @generated from message silvana.orderbook.v1.UpdateMarketPriceFeedsResponse
@@ -2829,7 +3025,7 @@ export type UpdateMarketPriceFeedsResponse = Message<"silvana.orderbook.v1.Updat
2829
3025
  * Use `create(UpdateMarketPriceFeedsResponseSchema)` to create a new message.
2830
3026
  */
2831
3027
  export const UpdateMarketPriceFeedsResponseSchema: GenMessage<UpdateMarketPriceFeedsResponse> = /*@__PURE__*/
2832
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 57);
3028
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 58);
2833
3029
 
2834
3030
  /**
2835
3031
  * Order type enumeration