@buildonspark/spark-sdk 0.2.11 → 0.2.13

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 (102) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/bare/index.cjs +761 -243
  3. package/dist/bare/index.d.cts +70 -11
  4. package/dist/bare/index.d.ts +70 -11
  5. package/dist/bare/index.js +684 -170
  6. package/dist/{chunk-A5M55UR3.js → chunk-5VWGOHED.js} +499 -8
  7. package/dist/{chunk-3WBPICWC.js → chunk-CKHJFQUA.js} +1 -1
  8. package/dist/{chunk-QNYJGFPD.js → chunk-LX45BCZW.js} +207 -160
  9. package/dist/{chunk-76SYPHOC.js → chunk-TB7DG5CU.js} +2 -2
  10. package/dist/{chunk-6CMNEDBK.js → chunk-XXTWWW6L.js} +1 -1
  11. package/dist/{client-Dd3QnxQu.d.ts → client-D7KDa4Ih.d.ts} +1 -1
  12. package/dist/{client-B9CAWKWz.d.cts → client-DVuA5-7M.d.cts} +1 -1
  13. package/dist/debug.cjs +761 -243
  14. package/dist/debug.d.cts +4 -4
  15. package/dist/debug.d.ts +4 -4
  16. package/dist/debug.js +4 -4
  17. package/dist/graphql/objects/index.d.cts +3 -3
  18. package/dist/graphql/objects/index.d.ts +3 -3
  19. package/dist/index.cjs +783 -265
  20. package/dist/index.d.cts +6 -6
  21. package/dist/index.d.ts +6 -6
  22. package/dist/index.js +5 -5
  23. package/dist/index.node.cjs +783 -265
  24. package/dist/index.node.d.cts +6 -6
  25. package/dist/index.node.d.ts +6 -6
  26. package/dist/index.node.js +4 -4
  27. package/dist/{logging-BOAzMqpM.d.cts → logging-BfTyKwqb.d.cts} +3 -3
  28. package/dist/{logging-Bt_WdZbu.d.ts → logging-CaNpBgiE.d.ts} +3 -3
  29. package/dist/native/index.cjs +782 -264
  30. package/dist/native/index.d.cts +70 -11
  31. package/dist/native/index.d.ts +70 -11
  32. package/dist/native/index.js +686 -172
  33. package/dist/proto/spark.cjs +499 -8
  34. package/dist/proto/spark.d.cts +1 -1
  35. package/dist/proto/spark.d.ts +1 -1
  36. package/dist/proto/spark.js +17 -1
  37. package/dist/proto/spark_token.d.cts +1 -1
  38. package/dist/proto/spark_token.d.ts +1 -1
  39. package/dist/proto/spark_token.js +2 -2
  40. package/dist/{spark-CtGJPkx4.d.cts → spark-C7OG9mGJ.d.cts} +79 -2
  41. package/dist/{spark-CtGJPkx4.d.ts → spark-C7OG9mGJ.d.ts} +79 -2
  42. package/dist/{spark-wallet-Cp3yv6cK.d.ts → spark-wallet-D0Df_P_x.d.ts} +26 -13
  43. package/dist/{spark-wallet-yc2KhsVY.d.cts → spark-wallet-Dvh1BLP6.d.cts} +26 -13
  44. package/dist/{spark-wallet.node-D0Qw5Wb4.d.cts → spark-wallet.node-B3V8_fgw.d.cts} +1 -1
  45. package/dist/{spark-wallet.node-D4IovOHu.d.ts → spark-wallet.node-bGmy8-T8.d.ts} +1 -1
  46. package/dist/tests/test-utils.cjs +573 -66
  47. package/dist/tests/test-utils.d.cts +4 -4
  48. package/dist/tests/test-utils.d.ts +4 -4
  49. package/dist/tests/test-utils.js +5 -5
  50. package/dist/{token-transactions-CwhlOgIP.d.cts → token-transactions-D1ta-sHH.d.cts} +2 -2
  51. package/dist/{token-transactions-0nmR9mQO.d.ts → token-transactions-DINiKBzd.d.ts} +2 -2
  52. package/dist/types/index.cjs +492 -9
  53. package/dist/types/index.d.cts +2 -2
  54. package/dist/types/index.d.ts +2 -2
  55. package/dist/types/index.js +2 -2
  56. package/package.json +3 -3
  57. package/src/proto/common.ts +1 -1
  58. package/src/proto/google/protobuf/descriptor.ts +4 -10
  59. package/src/proto/google/protobuf/duration.ts +1 -1
  60. package/src/proto/google/protobuf/empty.ts +1 -1
  61. package/src/proto/google/protobuf/timestamp.ts +1 -1
  62. package/src/proto/mock.ts +1 -1
  63. package/src/proto/spark.ts +593 -3
  64. package/src/proto/spark_authn.ts +1 -1
  65. package/src/proto/spark_token.ts +1 -1
  66. package/src/proto/validate/validate.ts +27 -79
  67. package/src/services/deposit.ts +55 -3
  68. package/src/services/lightning.ts +2 -2
  69. package/src/services/signing.ts +1 -1
  70. package/src/services/token-transactions.ts +2 -5
  71. package/src/services/transfer.ts +2 -28
  72. package/src/signer/signer.ts +2 -2
  73. package/src/spark-wallet/proto-descriptors.ts +22 -0
  74. package/src/spark-wallet/proto-hash.ts +743 -0
  75. package/src/spark-wallet/proto-reflection.ts +193 -0
  76. package/src/spark-wallet/spark-wallet.ts +95 -57
  77. package/src/spark_descriptors.pb +0 -0
  78. package/src/tests/address.test.ts +10 -10
  79. package/src/tests/bitcoin.test.ts +2 -2
  80. package/src/tests/bufbuild-reflection.test.ts +151 -0
  81. package/src/tests/cross-language-hash.test.ts +79 -0
  82. package/src/tests/integration/address.test.ts +3 -12
  83. package/src/tests/integration/coop-exit.test.ts +1 -1
  84. package/src/tests/integration/lightning.test.ts +1 -1
  85. package/src/tests/integration/ssp/static_deposit.test.ts +128 -1
  86. package/src/tests/integration/static_deposit.test.ts +26 -0
  87. package/src/tests/integration/swap.test.ts +1 -1
  88. package/src/tests/integration/transfer.test.ts +1 -129
  89. package/src/tests/integration/wallet.test.ts +7 -7
  90. package/src/tests/integration/watchtower.test.ts +1 -1
  91. package/src/tests/token-hashing.test.ts +3 -6
  92. package/src/tests/token-outputs.test.ts +3 -3
  93. package/src/tests/utils/test-faucet.ts +2 -2
  94. package/src/types/sdk-types.ts +1 -1
  95. package/src/utils/adaptor-signature.ts +1 -1
  96. package/src/utils/address.ts +1 -1
  97. package/src/utils/bitcoin.ts +1 -5
  98. package/src/utils/keys.ts +1 -1
  99. package/src/utils/secret-sharing.ts +1 -1
  100. package/src/utils/token-transactions.ts +1 -2
  101. package/src/utils/transfer_package.ts +1 -1
  102. package/src/utils/unilateral-exit.ts +1 -1
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Auto-generated protobuf descriptors
3
+ * Generated from spark_descriptors.pb
4
+ *
5
+ * This file contains the binary protobuf descriptors encoded as base64
6
+ * for runtime field number extraction and reflection.
7
+ */
8
+
9
+ // Base64-encoded FileDescriptorSet
10
+ export const SPARK_DESCRIPTORS_BASE64 =
11
+ "Cv8BCh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiOwoJVGltZXN0YW1wEhgKB3NlY29uZHMYASABKANSB3NlY29uZHMSFAoFbmFub3MYAiABKAVSBW5hbm9zQoUBChNjb20uZ29vZ2xlLnByb3RvYnVmQg5UaW1lc3RhbXBQcm90b1ABWjJnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi90aW1lc3RhbXBwYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc2IGcHJvdG8zCr4BChtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIHCgVFbXB0eUJ9ChNjb20uZ29vZ2xlLnByb3RvYnVmQgpFbXB0eVByb3RvUAFaLmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2VtcHR5cGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNiBnByb3RvMwqIYAogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiJbChFGaWxlRGVzY3JpcHRvclNldBI4CgRmaWxlGAEgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkZpbGVEZXNjcmlwdG9yUHJvdG9SBGZpbGUqDAiA7Mr/ARCB7Mr/ASKYBQoTRmlsZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3BhY2thZ2UYAiABKAlSB3BhY2thZ2USHgoKZGVwZW5kZW5jeRgDIAMoCVIKZGVwZW5kZW5jeRIrChFwdWJsaWNfZGVwZW5kZW5jeRgKIAMoBVIQcHVibGljRGVwZW5kZW5jeRInCg93ZWFrX2RlcGVuZGVuY3kYCyADKAVSDndlYWtEZXBlbmRlbmN5EkMKDG1lc3NhZ2VfdHlwZRgEIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SC21lc3NhZ2VUeXBlEkEKCWVudW1fdHlwZRgFIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvUghlbnVtVHlwZRJBCgdzZXJ2aWNlGAYgAygLMicuZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VEZXNjcmlwdG9yUHJvdG9SB3NlcnZpY2USQwoJZXh0ZW5zaW9uGAcgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUglleHRlbnNpb24SNgoHb3B0aW9ucxgIIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9uc1IHb3B0aW9ucxJJChBzb3VyY2VfY29kZV9pbmZvGAkgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvUg5zb3VyY2VDb2RlSW5mbxIWCgZzeW50YXgYDCABKAlSBnN5bnRheBIyCgdlZGl0aW9uGA4gASgOMhguZ29vZ2xlLnByb3RvYnVmLkVkaXRpb25SB2VkaXRpb24iuQYKD0Rlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjsKBWZpZWxkGAIgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUgVmaWVsZBJDCglleHRlbnNpb24YBiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SCWV4dGVuc2lvbhJBCgtuZXN0ZWRfdHlwZRgDIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SCm5lc3RlZFR5cGUSQQoJZW51bV90eXBlGAQgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG9SCGVudW1UeXBlElgKD2V4dGVuc2lvbl9yYW5nZRgFIAMoCzIvLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8uRXh0ZW5zaW9uUmFuZ2VSDmV4dGVuc2lvblJhbmdlEkQKCm9uZW9mX2RlY2wYCCADKAsyJS5nb29nbGUucHJvdG9idWYuT25lb2ZEZXNjcmlwdG9yUHJvdG9SCW9uZW9mRGVjbBI5CgdvcHRpb25zGAcgASgLMh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zUgdvcHRpb25zElUKDnJlc2VydmVkX3JhbmdlGAkgAygLMi4uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5SZXNlcnZlZFJhbmdlUg1yZXNlcnZlZFJhbmdlEiMKDXJlc2VydmVkX25hbWUYCiADKAlSDHJlc2VydmVkTmFtZRp6Cg5FeHRlbnNpb25SYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQSQAoHb3B0aW9ucxgDIAEoCzImLmdvb2dsZS5wcm90b2J1Zi5FeHRlbnNpb25SYW5nZU9wdGlvbnNSB29wdGlvbnMaNwoNUmVzZXJ2ZWRSYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQizAQKFUV4dGVuc2lvblJhbmdlT3B0aW9ucxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbhJZCgtkZWNsYXJhdGlvbhgCIAMoCzIyLmdvb2dsZS5wcm90b2J1Zi5FeHRlbnNpb25SYW5nZU9wdGlvbnMuRGVjbGFyYXRpb25CA4gBAlILZGVjbGFyYXRpb24SNwoIZmVhdHVyZXMYMiABKAsyGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldFIIZmVhdHVyZXMSbQoMdmVyaWZpY2F0aW9uGAMgASgOMjguZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9ucy5WZXJpZmljYXRpb25TdGF0ZToKVU5WRVJJRklFREIDiAECUgx2ZXJpZmljYXRpb24alAEKC0RlY2xhcmF0aW9uEhYKBm51bWJlchgBIAEoBVIGbnVtYmVyEhsKCWZ1bGxfbmFtZRgCIAEoCVIIZnVsbE5hbWUSEgoEdHlwZRgDIAEoCVIEdHlwZRIaCghyZXNlcnZlZBgFIAEoCFIIcmVzZXJ2ZWQSGgoIcmVwZWF0ZWQYBiABKAhSCHJlcGVhdGVkSgQIBBAFIjQKEVZlcmlmaWNhdGlvblN0YXRlEg8KC0RFQ0xBUkFUSU9OEAASDgoKVU5WRVJJRklFRBABKgkI6AcQgICAgAIiwQYKFEZpZWxkRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAMgASgFUgZudW1iZXISQQoFbGFiZWwYBCABKA4yKy5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uTGFiZWxSBWxhYmVsEj4KBHR5cGUYBSABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZVIEdHlwZRIbCgl0eXBlX25hbWUYBiABKAlSCHR5cGVOYW1lEhoKCGV4dGVuZGVlGAIgASgJUghleHRlbmRlZRIjCg1kZWZhdWx0X3ZhbHVlGAcgASgJUgxkZWZhdWx0VmFsdWUSHwoLb25lb2ZfaW5kZXgYCSABKAVSCm9uZW9mSW5kZXgSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRI3CgdvcHRpb25zGAggASgLMh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9uc1IHb3B0aW9ucxInCg9wcm90bzNfb3B0aW9uYWwYESABKAhSDnByb3RvM09wdGlvbmFsIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxBQkVMX1JFUEVBVEVEEAMSEgoOTEFCRUxfUkVRVUlSRUQQAiJjChRPbmVvZkRlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjcKB29wdGlvbnMYAiABKAsyHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zUgdvcHRpb25zIuMCChNFbnVtRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPwoFdmFsdWUYAiADKAsyKS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvUgV2YWx1ZRI2CgdvcHRpb25zGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zUgdvcHRpb25zEl0KDnJlc2VydmVkX3JhbmdlGAQgAygLMjYuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG8uRW51bVJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgFIAMoCVIMcmVzZXJ2ZWROYW1lGjsKEUVudW1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCKDAQoYRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISOwoHb3B0aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zUgdvcHRpb25zIqcBChZTZXJ2aWNlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPgoGbWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZERlc2NyaXB0b3JQcm90b1IGbWV0aG9kEjkKB29wdGlvbnMYAyABKAsyHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnNSB29wdGlvbnMiiQIKFU1ldGhvZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEh0KCmlucHV0X3R5cGUYAiABKAlSCWlucHV0VHlwZRIfCgtvdXRwdXRfdHlwZRgDIAEoCVIKb3V0cHV0VHlwZRI4CgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnNSB29wdGlvbnMSMAoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoFZmFsc2VSD2NsaWVudFN0cmVhbWluZxIwChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxzZVIPc2VydmVyU3RyZWFtaW5nIq0JCgtGaWxlT3B0aW9ucxIhCgxqYXZhX3BhY2thZ2UYASABKAlSC2phdmFQYWNrYWdlEjAKFGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJUhJqYXZhT3V0ZXJDbGFzc25hbWUSNQoTamF2YV9tdWx0aXBsZV9maWxlcxgKIAEoCDoFZmFsc2VSEWphdmFNdWx0aXBsZUZpbGVzEkQKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9oYXNoGBQgASgIQgIYAVIZamF2YUdlbmVyYXRlRXF1YWxzQW5kSGFzaBI6ChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsgASgIOgVmYWxzZVITamF2YVN0cmluZ0NoZWNrVXRmOBJTCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRFILb3B0aW1pemVGb3ISHQoKZ29fcGFja2FnZRgLIAEoCVIJZ29QYWNrYWdlEjUKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlUhFjY0dlbmVyaWNTZXJ2aWNlcxI5ChVqYXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlUhNqYXZhR2VuZXJpY1NlcnZpY2VzEjUKE3B5X2dlbmVyaWNfc2VydmljZXMYEiABKAg6BWZhbHNlUhFweUdlbmVyaWNTZXJ2aWNlcxIlCgpkZXByZWNhdGVkGBcgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIuChBjY19lbmFibGVfYXJlbmFzGB8gASgIOgR0cnVlUg5jY0VuYWJsZUFyZW5hcxIqChFvYmpjX2NsYXNzX3ByZWZpeBgkIAEoCVIPb2JqY0NsYXNzUHJlZml4EikKEGNzaGFycF9uYW1lc3BhY2UYJSABKAlSD2NzaGFycE5hbWVzcGFjZRIhCgxzd2lmdF9wcmVmaXgYJyABKAlSC3N3aWZ0UHJlZml4EigKEHBocF9jbGFzc19wcmVmaXgYKCABKAlSDnBocENsYXNzUHJlZml4EiMKDXBocF9uYW1lc3BhY2UYKSABKAlSDHBocE5hbWVzcGFjZRI0ChZwaHBfbWV0YWRhdGFfbmFtZXNwYWNlGCwgASgJUhRwaHBNZXRhZGF0YU5hbWVzcGFjZRIhCgxydWJ5X3BhY2thZ2UYLSABKAlSC3J1YnlQYWNrYWdlEjcKCGZlYXR1cmVzGDIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIjoKDE9wdGltaXplTW9kZRIJCgVTUEVFRBABEg0KCUNPREVfU0laRRACEhAKDExJVEVfUlVOVElNRRADKgkI6AcQgICAgAJKBAgqECtKBAgmECdSFHBocF9nZW5lcmljX3NlcnZpY2VzIvQDCg5NZXNzYWdlT3B0aW9ucxI8ChdtZXNzYWdlX3NldF93aXJlX2Zvcm1hdBgBIAEoCDoFZmFsc2VSFG1lc3NhZ2VTZXRXaXJlRm9ybWF0EkwKH25vX3N0YW5kYXJkX2Rlc2NyaXB0b3JfYWNjZXNzb3IYAiABKAg6BWZhbHNlUhxub1N0YW5kYXJkRGVzY3JpcHRvckFjY2Vzc29yEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhsKCW1hcF9lbnRyeRgHIAEoCFIIbWFwRW50cnkSVgomZGVwcmVjYXRlZF9sZWdhY3lfanNvbl9maWVsZF9jb25mbGljdHMYCyABKAhCAhgBUiJkZXByZWNhdGVkTGVnYWN5SnNvbkZpZWxkQ29uZmxpY3RzEjcKCGZlYXR1cmVzGAwgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgEEAVKBAgFEAZKBAgGEAdKBAgIEAlKBAgJEAoinQ0KDEZpZWxkT3B0aW9ucxJBCgVjdHlwZRgBIAEoDjIjLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuQ1R5cGU6BlNUUklOR1IFY3R5cGUSFgoGcGFja2VkGAIgASgIUgZwYWNrZWQSRwoGanN0eXBlGAYgASgOMiQuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5KU1R5cGU6CUpTX05PUk1BTFIGanN0eXBlEhkKBGxhenkYBSABKAg6BWZhbHNlUgRsYXp5Ei4KD3VudmVyaWZpZWRfbGF6eRgPIAEoCDoFZmFsc2VSDnVudmVyaWZpZWRMYXp5EiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhkKBHdlYWsYCiABKAg6BWZhbHNlUgR3ZWFrEigKDGRlYnVnX3JlZGFjdBgQIAEoCDoFZmFsc2VSC2RlYnVnUmVkYWN0EksKCXJldGVudGlvbhgRIAEoDjItLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuT3B0aW9uUmV0ZW50aW9uUglyZXRlbnRpb24SSAoHdGFyZ2V0cxgTIAMoDjIuLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuT3B0aW9uVGFyZ2V0VHlwZVIHdGFyZ2V0cxJXChBlZGl0aW9uX2RlZmF1bHRzGBQgAygLMiwuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5FZGl0aW9uRGVmYXVsdFIPZWRpdGlvbkRlZmF1bHRzEjcKCGZlYXR1cmVzGBUgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzElUKD2ZlYXR1cmVfc3VwcG9ydBgWIAEoCzIsLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuRmVhdHVyZVN1cHBvcnRSDmZlYXR1cmVTdXBwb3J0ElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uGloKDkVkaXRpb25EZWZhdWx0EjIKB2VkaXRpb24YAyABKA4yGC5nb29nbGUucHJvdG9idWYuRWRpdGlvblIHZWRpdGlvbhIUCgV2YWx1ZRgCIAEoCVIFdmFsdWUalgIKDkZlYXR1cmVTdXBwb3J0EkcKEmVkaXRpb25faW50cm9kdWNlZBgBIAEoDjIYLmdvb2dsZS5wcm90b2J1Zi5FZGl0aW9uUhFlZGl0aW9uSW50cm9kdWNlZBJHChJlZGl0aW9uX2RlcHJlY2F0ZWQYAiABKA4yGC5nb29nbGUucHJvdG9idWYuRWRpdGlvblIRZWRpdGlvbkRlcHJlY2F0ZWQSLwoTZGVwcmVjYXRpb25fd2FybmluZxgDIAEoCVISZGVwcmVjYXRpb25XYXJuaW5nEkEKD2VkaXRpb25fcmVtb3ZlZBgEIAEoDjIYLmdvb2dsZS5wcm90b2J1Zi5FZGl0aW9uUg5lZGl0aW9uUmVtb3ZlZCIvCgVDVHlwZRIKCgZTVFJJTkcQABIICgRDT1JEEAESEAoMU1RSSU5HX1BJRUNFEAIiNQoGSlNUeXBlEg0KCUpTX05PUk1BTBAAEg0KCUpTX1NUUklORxABEg0KCUpTX05VTUJFUhACIlUKD09wdGlvblJldGVudGlvbhIVChFSRVRFTlRJT05fVU5LTk9XThAAEhUKEVJFVEVOVElPTl9SVU5USU1FEAESFAoQUkVURU5USU9OX1NPVVJDRRACIowCChBPcHRpb25UYXJnZXRUeXBlEhcKE1RBUkdFVF9UWVBFX1VOS05PV04QABIUChBUQVJHRVRfVFlQRV9GSUxFEAESHwobVEFSR0VUX1RZUEVfRVhURU5TSU9OX1JBTkdFEAISFwoTVEFSR0VUX1RZUEVfTUVTU0FHRRADEhUKEVRBUkdFVF9UWVBFX0ZJRUxEEAQSFQoRVEFSR0VUX1RZUEVfT05FT0YQBRIUChBUQVJHRVRfVFlQRV9FTlVNEAYSGgoWVEFSR0VUX1RZUEVfRU5VTV9FTlRSWRAHEhcKE1RBUkdFVF9UWVBFX1NFUlZJQ0UQCBIWChJUQVJHRVRfVFlQRV9NRVRIT0QQCSoJCOgHEICAgIACSgQIBBAFSgQIEhATIqwBCgxPbmVvZk9wdGlvbnMSNwoIZmVhdHVyZXMYASABKAsyGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldFIIZmVhdHVyZXMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLRAgoLRW51bU9wdGlvbnMSHwoLYWxsb3dfYWxpYXMYAiABKAhSCmFsbG93QWxpYXMSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSVgomZGVwcmVjYXRlZF9sZWdhY3lfanNvbl9maWVsZF9jb25mbGljdHMYBiABKAhCAhgBUiJkZXByZWNhdGVkTGVnYWN5SnNvbkZpZWxkQ29uZmxpY3RzEjcKCGZlYXR1cmVzGAcgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgFEAYi2AIKEEVudW1WYWx1ZU9wdGlvbnMSJQoKZGVwcmVjYXRlZBgBIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSNwoIZmVhdHVyZXMYAiABKAsyGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldFIIZmVhdHVyZXMSKAoMZGVidWdfcmVkYWN0GAMgASgIOgVmYWxzZVILZGVidWdSZWRhY3QSVQoPZmVhdHVyZV9zdXBwb3J0GAQgASgLMiwuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5GZWF0dXJlU3VwcG9ydFIOZmVhdHVyZVN1cHBvcnQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLVAQoOU2VydmljZU9wdGlvbnMSNwoIZmVhdHVyZXMYIiABKAsyGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldFIIZmVhdHVyZXMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKZAwoNTWV0aG9kT3B0aW9ucxIlCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJxChFpZGVtcG90ZW5jeV9sZXZlbBgiIAEoDjIvLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zLklkZW1wb3RlbmN5TGV2ZWw6E0lERU1QT1RFTkNZX1VOS05PV05SEGlkZW1wb3RlbmN5TGV2ZWwSNwoIZmVhdHVyZXMYIyABKAsyGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldFIIZmVhdHVyZXMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iUAoQSWRlbXBvdGVuY3lMZXZlbBIXChNJREVNUE9URU5DWV9VTktOT1dOEAASEwoPTk9fU0lERV9FRkZFQ1RTEAESDgoKSURFTVBPVEVOVBACKgkI6AcQgICAgAIimgMKE1VuaW50ZXJwcmV0ZWRPcHRpb24SQQoEbmFtZRgCIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uLk5hbWVQYXJ0UgRuYW1lEikKEGlkZW50aWZpZXJfdmFsdWUYAyABKAlSD2lkZW50aWZpZXJWYWx1ZRIsChJwb3NpdGl2ZV9pbnRfdmFsdWUYBCABKARSEHBvc2l0aXZlSW50VmFsdWUSLAoSbmVnYXRpdmVfaW50X3ZhbHVlGAUgASgDUhBuZWdhdGl2ZUludFZhbHVlEiEKDGRvdWJsZV92YWx1ZRgGIAEoAVILZG91YmxlVmFsdWUSIQoMc3RyaW5nX3ZhbHVlGAcgASgMUgtzdHJpbmdWYWx1ZRInCg9hZ2dyZWdhdGVfdmFsdWUYCCABKAlSDmFnZ3JlZ2F0ZVZhbHVlGkoKCE5hbWVQYXJ0EhsKCW5hbWVfcGFydBgBIAIoCVIIbmFtZVBhcnQSIQoMaXNfZXh0ZW5zaW9uGAIgAigIUgtpc0V4dGVuc2lvbiKnCgoKRmVhdHVyZVNldBKRAQoOZmllbGRfcHJlc2VuY2UYASABKA4yKS5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldC5GaWVsZFByZXNlbmNlQj+IAQGYAQSYAQGiAQ0SCEVYUExJQ0lUGIQHogENEghJTVBMSUNJVBjnB6IBDRIIRVhQTElDSVQY6AeyAQMI6AdSDWZpZWxkUHJlc2VuY2USbAoJZW51bV90eXBlGAIgASgOMiQuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXQuRW51bVR5cGVCKYgBAZgBBpgBAaIBCxIGQ0xPU0VEGIQHogEJEgRPUEVOGOcHsgEDCOgHUghlbnVtVHlwZRKYAQoXcmVwZWF0ZWRfZmllbGRfZW5jb2RpbmcYAyABKA4yMS5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldC5SZXBlYXRlZEZpZWxkRW5jb2RpbmdCLYgBAZgBBJgBAaIBDRIIRVhQQU5ERUQYhAeiAQsSBlBBQ0tFRBjnB7IBAwjoB1IVcmVwZWF0ZWRGaWVsZEVuY29kaW5nEn4KD3V0ZjhfdmFsaWRhdGlvbhgEIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0LlV0ZjhWYWxpZGF0aW9uQimIAQGYAQSYAQGiAQkSBE5PTkUYhAeiAQsSBlZFUklGWRjnB7IBAwjoB1IOdXRmOFZhbGlkYXRpb24SfgoQbWVzc2FnZV9lbmNvZGluZxgFIAEoDjIrLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0Lk1lc3NhZ2VFbmNvZGluZ0ImiAEBmAEEmAEBogEUEg9MRU5HVEhfUFJFRklYRUQYhAeyAQMI6AdSD21lc3NhZ2VFbmNvZGluZxKCAQoLanNvbl9mb3JtYXQYBiABKA4yJi5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldC5Kc29uRm9ybWF0QjmIAQGYAQOYAQaYAQGiARcSEkxFR0FDWV9CRVNUX0VGRk9SVBiEB6IBChIFQUxMT1cY5weyAQMI6AdSCmpzb25Gb3JtYXQiXAoNRmllbGRQcmVzZW5jZRIaChZGSUVMRF9QUkVTRU5DRV9VTktOT1dOEAASDAoIRVhQTElDSVQQARIMCghJTVBMSUNJVBACEhMKD0xFR0FDWV9SRVFVSVJFRBADIjcKCEVudW1UeXBlEhUKEUVOVU1fVFlQRV9VTktOT1dOEAASCAoET1BFThABEgoKBkNMT1NFRBACIlYKFVJlcGVhdGVkRmllbGRFbmNvZGluZxIjCh9SRVBFQVRFRF9GSUVMRF9FTkNPRElOR19VTktOT1dOEAASCgoGUEFDS0VEEAESDAoIRVhQQU5ERUQQAiJJCg5VdGY4VmFsaWRhdGlvbhIbChdVVEY4X1ZBTElEQVRJT05fVU5LTk9XThAAEgoKBlZFUklGWRACEggKBE5PTkUQAyIECAEQASJTCg9NZXNzYWdlRW5jb2RpbmcSHAoYTUVTU0FHRV9FTkNPRElOR19VTktOT1dOEAASEwoPTEVOR1RIX1BSRUZJWEVEEAESDQoJREVMSU1JVEVEEAIiSAoKSnNvbkZvcm1hdBIXChNKU09OX0ZPUk1BVF9VTktOT1dOEAASCQoFQUxMT1cQARIWChJMRUdBQ1lfQkVTVF9FRkZPUlQQAioGCOgHEItOKgYIi04QkE4qBgiQThCRTkoGCOcHEOgHIu8DChJGZWF0dXJlU2V0RGVmYXVsdHMSWAoIZGVmYXVsdHMYASADKAsyPC5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldERlZmF1bHRzLkZlYXR1cmVTZXRFZGl0aW9uRGVmYXVsdFIIZGVmYXVsdHMSQQoPbWluaW11bV9lZGl0aW9uGAQgASgOMhguZ29vZ2xlLnByb3RvYnVmLkVkaXRpb25SDm1pbmltdW1FZGl0aW9uEkEKD21heGltdW1fZWRpdGlvbhgFIAEoDjIYLmdvb2dsZS5wcm90b2J1Zi5FZGl0aW9uUg5tYXhpbXVtRWRpdGlvbhr4AQoYRmVhdHVyZVNldEVkaXRpb25EZWZhdWx0EjIKB2VkaXRpb24YAyABKA4yGC5nb29nbGUucHJvdG9idWYuRWRpdGlvblIHZWRpdGlvbhJOChRvdmVycmlkYWJsZV9mZWF0dXJlcxgEIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0UhNvdmVycmlkYWJsZUZlYXR1cmVzEkIKDmZpeGVkX2ZlYXR1cmVzGAUgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSDWZpeGVkRmVhdHVyZXNKBAgBEAJKBAgCEANSCGZlYXR1cmVzIrUCCg5Tb3VyY2VDb2RlSW5mbxJECghsb2NhdGlvbhgBIAMoCzIoLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mby5Mb2NhdGlvblIIbG9jYXRpb24azgEKCExvY2F0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEhYKBHNwYW4YAiADKAVCAhABUgRzcGFuEikKEGxlYWRpbmdfY29tbWVudHMYAyABKAlSD2xlYWRpbmdDb21tZW50cxIrChF0cmFpbGluZ19jb21tZW50cxgEIAEoCVIQdHJhaWxpbmdDb21tZW50cxI6ChlsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzGAYgAygJUhdsZWFkaW5nRGV0YWNoZWRDb21tZW50cyoMCIDsyv8BEIHsyv8BItACChFHZW5lcmF0ZWRDb2RlSW5mbxJNCgphbm5vdGF0aW9uGAEgAygLMi0uZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb25SCmFubm90YXRpb24a6wEKCkFubm90YXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSHwoLc291cmNlX2ZpbGUYAiABKAlSCnNvdXJjZUZpbGUSFAoFYmVnaW4YAyABKAVSBWJlZ2luEhAKA2VuZBgEIAEoBVIDZW5kElIKCHNlbWFudGljGAUgASgOMjYuZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb24uU2VtYW50aWNSCHNlbWFudGljIigKCFNlbWFudGljEggKBE5PTkUQABIHCgNTRVQQARIJCgVBTElBUxACKqcCCgdFZGl0aW9uEhMKD0VESVRJT05fVU5LTk9XThAAEhMKDkVESVRJT05fTEVHQUNZEIQHEhMKDkVESVRJT05fUFJPVE8yEOYHEhMKDkVESVRJT05fUFJPVE8zEOcHEhEKDEVESVRJT05fMjAyMxDoBxIRCgxFRElUSU9OXzIwMjQQ6QcSFwoTRURJVElPTl8xX1RFU1RfT05MWRABEhcKE0VESVRJT05fMl9URVNUX09OTFkQAhIdChdFRElUSU9OXzk5OTk3X1RFU1RfT05MWRCdjQYSHQoXRURJVElPTl85OTk5OF9URVNUX09OTFkQno0GEh0KF0VESVRJT05fOTk5OTlfVEVTVF9PTkxZEJ+NBhITCgtFRElUSU9OX01BWBD/////B0J+ChNjb20uZ29vZ2xlLnByb3RvYnVmQhBEZXNjcmlwdG9yUHJvdG9zSAFaLWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2Rlc2NyaXB0b3JwYvgBAaICA0dQQqoCGkdvb2dsZS5Qcm90b2J1Zi5SZWZsZWN0aW9uCvsBCh5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiI6CghEdXJhdGlvbhIYCgdzZWNvbmRzGAEgASgDUgdzZWNvbmRzEhQKBW5hbm9zGAIgASgFUgVuYW5vc0KDAQoTY29tLmdvb2dsZS5wcm90b2J1ZkINRHVyYXRpb25Qcm90b1ABWjFnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9kdXJhdGlvbnBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzMKrzEKF3ZhbGlkYXRlL3ZhbGlkYXRlLnByb3RvEgh2YWxpZGF0ZRogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8aHmdvb2dsZS9wcm90b2J1Zi9kdXJhdGlvbi5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90byLICAoKRmllbGRSdWxlcxIwCgdtZXNzYWdlGBEgASgLMhYudmFsaWRhdGUuTWVzc2FnZVJ1bGVzUgdtZXNzYWdlEiwKBWZsb2F0GAEgASgLMhQudmFsaWRhdGUuRmxvYXRSdWxlc0gAUgVmbG9hdBIvCgZkb3VibGUYAiABKAsyFS52YWxpZGF0ZS5Eb3VibGVSdWxlc0gAUgZkb3VibGUSLAoFaW50MzIYAyABKAsyFC52YWxpZGF0ZS5JbnQzMlJ1bGVzSABSBWludDMyEiwKBWludDY0GAQgASgLMhQudmFsaWRhdGUuSW50NjRSdWxlc0gAUgVpbnQ2NBIvCgZ1aW50MzIYBSABKAsyFS52YWxpZGF0ZS5VSW50MzJSdWxlc0gAUgZ1aW50MzISLwoGdWludDY0GAYgASgLMhUudmFsaWRhdGUuVUludDY0UnVsZXNIAFIGdWludDY0Ei8KBnNpbnQzMhgHIAEoCzIVLnZhbGlkYXRlLlNJbnQzMlJ1bGVzSABSBnNpbnQzMhIvCgZzaW50NjQYCCABKAsyFS52YWxpZGF0ZS5TSW50NjRSdWxlc0gAUgZzaW50NjQSMgoHZml4ZWQzMhgJIAEoCzIWLnZhbGlkYXRlLkZpeGVkMzJSdWxlc0gAUgdmaXhlZDMyEjIKB2ZpeGVkNjQYCiABKAsyFi52YWxpZGF0ZS5GaXhlZDY0UnVsZXNIAFIHZml4ZWQ2NBI1CghzZml4ZWQzMhgLIAEoCzIXLnZhbGlkYXRlLlNGaXhlZDMyUnVsZXNIAFIIc2ZpeGVkMzISNQoIc2ZpeGVkNjQYDCABKAsyFy52YWxpZGF0ZS5TRml4ZWQ2NFJ1bGVzSABSCHNmaXhlZDY0EikKBGJvb2wYDSABKAsyEy52YWxpZGF0ZS5Cb29sUnVsZXNIAFIEYm9vbBIvCgZzdHJpbmcYDiABKAsyFS52YWxpZGF0ZS5TdHJpbmdSdWxlc0gAUgZzdHJpbmcSLAoFYnl0ZXMYDyABKAsyFC52YWxpZGF0ZS5CeXRlc1J1bGVzSABSBWJ5dGVzEikKBGVudW0YECABKAsyEy52YWxpZGF0ZS5FbnVtUnVsZXNIAFIEZW51bRI1CghyZXBlYXRlZBgSIAEoCzIXLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXNIAFIIcmVwZWF0ZWQSJgoDbWFwGBMgASgLMhIudmFsaWRhdGUuTWFwUnVsZXNIAFIDbWFwEiYKA2FueRgUIAEoCzISLnZhbGlkYXRlLkFueVJ1bGVzSABSA2FueRI1CghkdXJhdGlvbhgVIAEoCzIXLnZhbGlkYXRlLkR1cmF0aW9uUnVsZXNIAFIIZHVyYXRpb24SOAoJdGltZXN0YW1wGBYgASgLMhgudmFsaWRhdGUuVGltZXN0YW1wUnVsZXNIAFIJdGltZXN0YW1wQgYKBHR5cGUisAEKCkZsb2F0UnVsZXMSFAoFY29uc3QYASABKAJSBWNvbnN0Eg4KAmx0GAIgASgCUgJsdBIQCgNsdGUYAyABKAJSA2x0ZRIOCgJndBgEIAEoAlICZ3QSEAoDZ3RlGAUgASgCUgNndGUSDgoCaW4YBiADKAJSAmluEhUKBm5vdF9pbhgHIAMoAlIFbm90SW4SIQoMaWdub3JlX2VtcHR5GAggASgIUgtpZ25vcmVFbXB0eSKxAQoLRG91YmxlUnVsZXMSFAoFY29uc3QYASABKAFSBWNvbnN0Eg4KAmx0GAIgASgBUgJsdBIQCgNsdGUYAyABKAFSA2x0ZRIOCgJndBgEIAEoAVICZ3QSEAoDZ3RlGAUgASgBUgNndGUSDgoCaW4YBiADKAFSAmluEhUKBm5vdF9pbhgHIAMoAVIFbm90SW4SIQoMaWdub3JlX2VtcHR5GAggASgIUgtpZ25vcmVFbXB0eSKwAQoKSW50MzJSdWxlcxIUCgVjb25zdBgBIAEoBVIFY29uc3QSDgoCbHQYAiABKAVSAmx0EhAKA2x0ZRgDIAEoBVIDbHRlEg4KAmd0GAQgASgFUgJndBIQCgNndGUYBSABKAVSA2d0ZRIOCgJpbhgGIAMoBVICaW4SFQoGbm90X2luGAcgAygFUgVub3RJbhIhCgxpZ25vcmVfZW1wdHkYCCABKAhSC2lnbm9yZUVtcHR5IrABCgpJbnQ2NFJ1bGVzEhQKBWNvbnN0GAEgASgDUgVjb25zdBIOCgJsdBgCIAEoA1ICbHQSEAoDbHRlGAMgASgDUgNsdGUSDgoCZ3QYBCABKANSAmd0EhAKA2d0ZRgFIAEoA1IDZ3RlEg4KAmluGAYgAygDUgJpbhIVCgZub3RfaW4YByADKANSBW5vdEluEiEKDGlnbm9yZV9lbXB0eRgIIAEoCFILaWdub3JlRW1wdHkisQEKC1VJbnQzMlJ1bGVzEhQKBWNvbnN0GAEgASgNUgVjb25zdBIOCgJsdBgCIAEoDVICbHQSEAoDbHRlGAMgASgNUgNsdGUSDgoCZ3QYBCABKA1SAmd0EhAKA2d0ZRgFIAEoDVIDZ3RlEg4KAmluGAYgAygNUgJpbhIVCgZub3RfaW4YByADKA1SBW5vdEluEiEKDGlnbm9yZV9lbXB0eRgIIAEoCFILaWdub3JlRW1wdHkisQEKC1VJbnQ2NFJ1bGVzEhQKBWNvbnN0GAEgASgEUgVjb25zdBIOCgJsdBgCIAEoBFICbHQSEAoDbHRlGAMgASgEUgNsdGUSDgoCZ3QYBCABKARSAmd0EhAKA2d0ZRgFIAEoBFIDZ3RlEg4KAmluGAYgAygEUgJpbhIVCgZub3RfaW4YByADKARSBW5vdEluEiEKDGlnbm9yZV9lbXB0eRgIIAEoCFILaWdub3JlRW1wdHkisQEKC1NJbnQzMlJ1bGVzEhQKBWNvbnN0GAEgASgRUgVjb25zdBIOCgJsdBgCIAEoEVICbHQSEAoDbHRlGAMgASgRUgNsdGUSDgoCZ3QYBCABKBFSAmd0EhAKA2d0ZRgFIAEoEVIDZ3RlEg4KAmluGAYgAygRUgJpbhIVCgZub3RfaW4YByADKBFSBW5vdEluEiEKDGlnbm9yZV9lbXB0eRgIIAEoCFILaWdub3JlRW1wdHkisQEKC1NJbnQ2NFJ1bGVzEhQKBWNvbnN0GAEgASgSUgVjb25zdBIOCgJsdBgCIAEoElICbHQSEAoDbHRlGAMgASgSUgNsdGUSDgoCZ3QYBCABKBJSAmd0EhAKA2d0ZRgFIAEoElIDZ3RlEg4KAmluGAYgAygSUgJpbhIVCgZub3RfaW4YByADKBJSBW5vdEluEiEKDGlnbm9yZV9lbXB0eRgIIAEoCFILaWdub3JlRW1wdHkisgEKDEZpeGVkMzJSdWxlcxIUCgVjb25zdBgBIAEoB1IFY29uc3QSDgoCbHQYAiABKAdSAmx0EhAKA2x0ZRgDIAEoB1IDbHRlEg4KAmd0GAQgASgHUgJndBIQCgNndGUYBSABKAdSA2d0ZRIOCgJpbhgGIAMoB1ICaW4SFQoGbm90X2luGAcgAygHUgVub3RJbhIhCgxpZ25vcmVfZW1wdHkYCCABKAhSC2lnbm9yZUVtcHR5IrIBCgxGaXhlZDY0UnVsZXMSFAoFY29uc3QYASABKAZSBWNvbnN0Eg4KAmx0GAIgASgGUgJsdBIQCgNsdGUYAyABKAZSA2x0ZRIOCgJndBgEIAEoBlICZ3QSEAoDZ3RlGAUgASgGUgNndGUSDgoCaW4YBiADKAZSAmluEhUKBm5vdF9pbhgHIAMoBlIFbm90SW4SIQoMaWdub3JlX2VtcHR5GAggASgIUgtpZ25vcmVFbXB0eSKzAQoNU0ZpeGVkMzJSdWxlcxIUCgVjb25zdBgBIAEoD1IFY29uc3QSDgoCbHQYAiABKA9SAmx0EhAKA2x0ZRgDIAEoD1IDbHRlEg4KAmd0GAQgASgPUgJndBIQCgNndGUYBSABKA9SA2d0ZRIOCgJpbhgGIAMoD1ICaW4SFQoGbm90X2luGAcgAygPUgVub3RJbhIhCgxpZ25vcmVfZW1wdHkYCCABKAhSC2lnbm9yZUVtcHR5IrMBCg1TRml4ZWQ2NFJ1bGVzEhQKBWNvbnN0GAEgASgQUgVjb25zdBIOCgJsdBgCIAEoEFICbHQSEAoDbHRlGAMgASgQUgNsdGUSDgoCZ3QYBCABKBBSAmd0EhAKA2d0ZRgFIAEoEFIDZ3RlEg4KAmluGAYgAygQUgJpbhIVCgZub3RfaW4YByADKBBSBW5vdEluEiEKDGlnbm9yZV9lbXB0eRgIIAEoCFILaWdub3JlRW1wdHkiIQoJQm9vbFJ1bGVzEhQKBWNvbnN0GAEgASgIUgVjb25zdCLUBQoLU3RyaW5nUnVsZXMSFAoFY29uc3QYASABKAlSBWNvbnN0EhAKA2xlbhgTIAEoBFIDbGVuEhcKB21pbl9sZW4YAiABKARSBm1pbkxlbhIXCgdtYXhfbGVuGAMgASgEUgZtYXhMZW4SGwoJbGVuX2J5dGVzGBQgASgEUghsZW5CeXRlcxIbCgltaW5fYnl0ZXMYBCABKARSCG1pbkJ5dGVzEhsKCW1heF9ieXRlcxgFIAEoBFIIbWF4Qnl0ZXMSGAoHcGF0dGVybhgGIAEoCVIHcGF0dGVybhIWCgZwcmVmaXgYByABKAlSBnByZWZpeBIWCgZzdWZmaXgYCCABKAlSBnN1ZmZpeBIaCghjb250YWlucxgJIAEoCVIIY29udGFpbnMSIQoMbm90X2NvbnRhaW5zGBcgASgJUgtub3RDb250YWlucxIOCgJpbhgKIAMoCVICaW4SFQoGbm90X2luGAsgAygJUgVub3RJbhIWCgVlbWFpbBgMIAEoCEgAUgVlbWFpbBIcCghob3N0bmFtZRgNIAEoCEgAUghob3N0bmFtZRIQCgJpcBgOIAEoCEgAUgJpcBIUCgRpcHY0GA8gASgISABSBGlwdjQSFAoEaXB2NhgQIAEoCEgAUgRpcHY2EhIKA3VyaRgRIAEoCEgAUgN1cmkSGQoHdXJpX3JlZhgSIAEoCEgAUgZ1cmlSZWYSGgoHYWRkcmVzcxgVIAEoCEgAUgdhZGRyZXNzEhQKBHV1aWQYFiABKAhIAFIEdXVpZBJAChB3ZWxsX2tub3duX3JlZ2V4GBggASgOMhQudmFsaWRhdGUuS25vd25SZWdleEgAUg53ZWxsS25vd25SZWdleBIcCgZzdHJpY3QYGSABKAg6BHRydWVSBnN0cmljdBIhCgxpZ25vcmVfZW1wdHkYGiABKAhSC2lnbm9yZUVtcHR5QgwKCndlbGxfa25vd24i4gIKCkJ5dGVzUnVsZXMSFAoFY29uc3QYASABKAxSBWNvbnN0EhAKA2xlbhgNIAEoBFIDbGVuEhcKB21pbl9sZW4YAiABKARSBm1pbkxlbhIXCgdtYXhfbGVuGAMgASgEUgZtYXhMZW4SGAoHcGF0dGVybhgEIAEoCVIHcGF0dGVybhIWCgZwcmVmaXgYBSABKAxSBnByZWZpeBIWCgZzdWZmaXgYBiABKAxSBnN1ZmZpeBIaCghjb250YWlucxgHIAEoDFIIY29udGFpbnMSDgoCaW4YCCADKAxSAmluEhUKBm5vdF9pbhgJIAMoDFIFbm90SW4SEAoCaXAYCiABKAhIAFICaXASFAoEaXB2NBgLIAEoCEgAUgRpcHY0EhQKBGlwdjYYDCABKAhIAFIEaXB2NhIhCgxpZ25vcmVfZW1wdHkYDiABKAhSC2lnbm9yZUVtcHR5QgwKCndlbGxfa25vd24iawoJRW51bVJ1bGVzEhQKBWNvbnN0GAEgASgFUgVjb25zdBIhCgxkZWZpbmVkX29ubHkYAiABKAhSC2RlZmluZWRPbmx5Eg4KAmluGAMgAygFUgJpbhIVCgZub3RfaW4YBCADKAVSBW5vdEluIj4KDE1lc3NhZ2VSdWxlcxISCgRza2lwGAEgASgIUgRza2lwEhoKCHJlcXVpcmVkGAIgASgIUghyZXF1aXJlZCKwAQoNUmVwZWF0ZWRSdWxlcxIbCgltaW5faXRlbXMYASABKARSCG1pbkl0ZW1zEhsKCW1heF9pdGVtcxgCIAEoBFIIbWF4SXRlbXMSFgoGdW5pcXVlGAMgASgIUgZ1bmlxdWUSKgoFaXRlbXMYBCABKAsyFC52YWxpZGF0ZS5GaWVsZFJ1bGVzUgVpdGVtcxIhCgxpZ25vcmVfZW1wdHkYBSABKAhSC2lnbm9yZUVtcHR5ItwBCghNYXBSdWxlcxIbCgltaW5fcGFpcnMYASABKARSCG1pblBhaXJzEhsKCW1heF9wYWlycxgCIAEoBFIIbWF4UGFpcnMSGwoJbm9fc3BhcnNlGAMgASgIUghub1NwYXJzZRIoCgRrZXlzGAQgASgLMhQudmFsaWRhdGUuRmllbGRSdWxlc1IEa2V5cxIsCgZ2YWx1ZXMYBSABKAsyFC52YWxpZGF0ZS5GaWVsZFJ1bGVzUgZ2YWx1ZXMSIQoMaWdub3JlX2VtcHR5GAYgASgIUgtpZ25vcmVFbXB0eSJNCghBbnlSdWxlcxIaCghyZXF1aXJlZBgBIAEoCFIIcmVxdWlyZWQSDgoCaW4YAiADKAlSAmluEhUKBm5vdF9pbhgDIAMoCVIFbm90SW4i6QIKDUR1cmF0aW9uUnVsZXMSGgoIcmVxdWlyZWQYASABKAhSCHJlcXVpcmVkEi8KBWNvbnN0GAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUgVjb25zdBIpCgJsdBgDIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblICbHQSKwoDbHRlGAQgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUgNsdGUSKQoCZ3QYBSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SAmd0EisKA2d0ZRgGIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIDZ3RlEikKAmluGAcgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUgJpbhIwCgZub3RfaW4YCCADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SBW5vdEluIvMCCg5UaW1lc3RhbXBSdWxlcxIaCghyZXF1aXJlZBgBIAEoCFIIcmVxdWlyZWQSMAoFY29uc3QYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgVjb25zdBIqCgJsdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSAmx0EiwKA2x0ZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSA2x0ZRIqCgJndBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSAmd0EiwKA2d0ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSA2d0ZRIVCgZsdF9ub3cYByABKAhSBWx0Tm93EhUKBmd0X25vdxgIIAEoCFIFZ3ROb3cSMQoGd2l0aGluGAkgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUgZ3aXRoaW4qRgoKS25vd25SZWdleBILCgdVTktOT1dOEAASFAoQSFRUUF9IRUFERVJfTkFNRRABEhUKEUhUVFBfSEVBREVSX1ZBTFVFEAI6PAoIZGlzYWJsZWQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYrwggASgIUghkaXNhYmxlZDo6CgdpZ25vcmVkEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGLAIIAEoCFIHaWdub3JlZDo6CghyZXF1aXJlZBIdLmdvb2dsZS5wcm90b2J1Zi5PbmVvZk9wdGlvbnMYrwggASgIUghyZXF1aXJlZDpKCgVydWxlcxIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYrwggASgLMhQudmFsaWRhdGUuRmllbGRSdWxlc1IFcnVsZXNCUAoaaW8uZW52b3lwcm94eS5wZ3YudmFsaWRhdGVaMmdpdGh1Yi5jb20vZW52b3lwcm94eS9wcm90b2MtZ2VuLXZhbGlkYXRlL3ZhbGlkYXRlCq8DCgxjb21tb24ucHJvdG8SBmNvbW1vbiKHAQoKUGFja2FnZU1hcBI8CghwYWNrYWdlcxgBIAMoCzIgLmNvbW1vbi5QYWNrYWdlTWFwLlBhY2thZ2VzRW50cnlSCHBhY2thZ2VzGjsKDVBhY2thZ2VzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ASJFChFTaWduaW5nQ29tbWl0bWVudBIWCgZoaWRpbmcYASABKAxSBmhpZGluZxIYCgdiaW5kaW5nGAIgASgMUgdiaW5kaW5nIjgKDVNpZ25pbmdSZXN1bHQSJwoPc2lnbmF0dXJlX3NoYXJlGAEgASgMUg5zaWduYXR1cmVTaGFyZSpVCg9TaWduYXR1cmVJbnRlbnQSDAoIQ1JFQVRJT04QABIMCghUUkFOU0ZFUhABEg0KCUFHR1JFR0FURRACEgsKB1JFRlJFU0gQAxIKCgZFWFRFTkQQBEItWitnaXRodWIuY29tL2xpZ2h0c3BhcmtkZXYvc3BhcmsvcHJvdG8vY29tbW9uYgZwcm90bzMK4p4CCgtzcGFyay5wcm90bxIFc3BhcmsaH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxoXdmFsaWRhdGUvdmFsaWRhdGUucHJvdG8aDGNvbW1vbi5wcm90byJKChhTdWJzY3JpYmVUb0V2ZW50c1JlcXVlc3QSLgoTaWRlbnRpdHlfcHVibGljX2tleRgKIAEoDFIRaWRlbnRpdHlQdWJsaWNLZXkiwAEKGVN1YnNjcmliZVRvRXZlbnRzUmVzcG9uc2USMgoIdHJhbnNmZXIYASABKAsyFC5zcGFyay5UcmFuc2ZlckV2ZW50SABSCHRyYW5zZmVyEi8KB2RlcG9zaXQYAiABKAsyEy5zcGFyay5EZXBvc2l0RXZlbnRIAFIHZGVwb3NpdBI1Cgljb25uZWN0ZWQYAyABKAsyFS5zcGFyay5Db25uZWN0ZWRFdmVudEgAUgljb25uZWN0ZWRCBwoFZXZlbnQiEAoOQ29ubmVjdGVkRXZlbnQiPAoNVHJhbnNmZXJFdmVudBIrCgh0cmFuc2ZlchgKIAEoCzIPLnNwYXJrLlRyYW5zZmVyUgh0cmFuc2ZlciI5CgxEZXBvc2l0RXZlbnQSKQoHZGVwb3NpdBgKIAEoCzIPLnNwYXJrLlRyZWVOb2RlUgdkZXBvc2l0IoACChNEZXBvc2l0QWRkcmVzc1Byb29mEmAKEmFkZHJlc3Nfc2lnbmF0dXJlcxgBIAMoCzIxLnNwYXJrLkRlcG9zaXRBZGRyZXNzUHJvb2YuQWRkcmVzc1NpZ25hdHVyZXNFbnRyeVIRYWRkcmVzc1NpZ25hdHVyZXMSQQodcHJvb2Zfb2ZfcG9zc2Vzc2lvbl9zaWduYXR1cmUYAiABKAxSGnByb29mT2ZQb3NzZXNzaW9uU2lnbmF0dXJlGkQKFkFkZHJlc3NTaWduYXR1cmVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ASKVAgodR2VuZXJhdGVEZXBvc2l0QWRkcmVzc1JlcXVlc3QSLAoSc2lnbmluZ19wdWJsaWNfa2V5GAEgASgMUhBzaWduaW5nUHVibGljS2V5Ei4KE2lkZW50aXR5X3B1YmxpY19rZXkYAiABKAxSEWlkZW50aXR5UHVibGljS2V5EjIKB25ldHdvcmsYAyABKA4yDi5zcGFyay5OZXR3b3JrQgj6QgWCAQIgAFIHbmV0d29yaxImCgdsZWFmX2lkGAQgASgJQgj6QgVyA7ABAUgAUgZsZWFmSWSIAQESIAoJaXNfc3RhdGljGAUgASgISAFSCGlzU3RhdGljiAEBQgoKCF9sZWFmX2lkQgwKCl9pc19zdGF0aWMitQEKB0FkZHJlc3MSGAoHYWRkcmVzcxgBIAEoCVIHYWRkcmVzcxIjCg12ZXJpZnlpbmdfa2V5GAIgASgMUgx2ZXJpZnlpbmdLZXkSTgoVZGVwb3NpdF9hZGRyZXNzX3Byb29mGAMgASgLMhouc3BhcmsuRGVwb3NpdEFkZHJlc3NQcm9vZlITZGVwb3NpdEFkZHJlc3NQcm9vZhIbCglpc19zdGF0aWMYBSABKAhSCGlzU3RhdGljIlkKHkdlbmVyYXRlRGVwb3NpdEFkZHJlc3NSZXNwb25zZRI3Cg9kZXBvc2l0X2FkZHJlc3MYASABKAsyDi5zcGFyay5BZGRyZXNzUg5kZXBvc2l0QWRkcmVzcyJ5CgRVVFhPEhUKBnJhd190eBgBIAEoDFIFcmF3VHgSEgoEdm91dBgCIAEoDVIEdm91dBIyCgduZXR3b3JrGAMgASgOMg4uc3BhcmsuTmV0d29ya0II+kIFggECIABSB25ldHdvcmsSEgoEdHhpZBgEIAEoDFIEdHhpZCI5CgpOb2RlT3V0cHV0EhcKB25vZGVfaWQYASABKAlSBm5vZGVJZBISCgR2b3V0GAIgASgNUgR2b3V0IqYBCgpTaWduaW5nSm9iEiwKEnNpZ25pbmdfcHVibGljX2tleRgBIAEoDFIQc2lnbmluZ1B1YmxpY0tleRIVCgZyYXdfdHgYAiABKAxSBXJhd1R4ElMKGHNpZ25pbmdfbm9uY2VfY29tbWl0bWVudBgDIAEoCzIZLmNvbW1vbi5TaWduaW5nQ29tbWl0bWVudFIWc2lnbmluZ05vbmNlQ29tbWl0bWVudCLKAgoPU2lnbmluZ0tleXNoYXJlEisKEW93bmVyX2lkZW50aWZpZXJzGAEgAygJUhBvd25lcklkZW50aWZpZXJzEhwKCXRocmVzaG9sZBgCIAEoDVIJdGhyZXNob2xkEh0KCnB1YmxpY19rZXkYAyABKAxSCXB1YmxpY0tleRJNCg1wdWJsaWNfc2hhcmVzGAQgAygLMiguc3BhcmsuU2lnbmluZ0tleXNoYXJlLlB1YmxpY1NoYXJlc0VudHJ5UgxwdWJsaWNTaGFyZXMSPQoMdXBkYXRlZF90aW1lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFILdXBkYXRlZFRpbWUaPwoRUHVibGljU2hhcmVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ASLIBAoNU2lnbmluZ1Jlc3VsdBJFCgtwdWJsaWNfa2V5cxgBIAMoCzIkLnNwYXJrLlNpZ25pbmdSZXN1bHQuUHVibGljS2V5c0VudHJ5UgpwdWJsaWNLZXlzEm0KGXNpZ25pbmdfbm9uY2VfY29tbWl0bWVudHMYAiADKAsyMS5zcGFyay5TaWduaW5nUmVzdWx0LlNpZ25pbmdOb25jZUNvbW1pdG1lbnRzRW50cnlSF3NpZ25pbmdOb25jZUNvbW1pdG1lbnRzElQKEHNpZ25hdHVyZV9zaGFyZXMYAyADKAsyKS5zcGFyay5TaWduaW5nUmVzdWx0LlNpZ25hdHVyZVNoYXJlc0VudHJ5Ug9zaWduYXR1cmVTaGFyZXMSQQoQc2lnbmluZ19rZXlzaGFyZRgEIAEoCzIWLnNwYXJrLlNpZ25pbmdLZXlzaGFyZVIPc2lnbmluZ0tleXNoYXJlGj0KD1B1YmxpY0tleXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoDFIFdmFsdWU6AjgBGmUKHFNpZ25pbmdOb25jZUNvbW1pdG1lbnRzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSLwoFdmFsdWUYAiABKAsyGS5jb21tb24uU2lnbmluZ0NvbW1pdG1lbnRSBXZhbHVlOgI4ARpCChRTaWduYXR1cmVTaGFyZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoDFIFdmFsdWU6AjgBIo8EChNOb2RlU2lnbmF0dXJlU2hhcmVzEhcKB25vZGVfaWQYASABKAlSBm5vZGVJZBJJChZub2RlX3R4X3NpZ25pbmdfcmVzdWx0GAIgASgLMhQuc3BhcmsuU2lnbmluZ1Jlc3VsdFITbm9kZVR4U2lnbmluZ1Jlc3VsdBJNChhyZWZ1bmRfdHhfc2lnbmluZ19yZXN1bHQYAyABKAsyFC5zcGFyay5TaWduaW5nUmVzdWx0UhVyZWZ1bmRUeFNpZ25pbmdSZXN1bHQSIwoNdmVyaWZ5aW5nX2tleRgEIAEoDFIMdmVyaWZ5aW5nS2V5ElYKHWRpcmVjdF9ub2RlX3R4X3NpZ25pbmdfcmVzdWx0GAUgASgLMhQuc3BhcmsuU2lnbmluZ1Jlc3VsdFIZZGlyZWN0Tm9kZVR4U2lnbmluZ1Jlc3VsdBJaCh9kaXJlY3RfcmVmdW5kX3R4X3NpZ25pbmdfcmVzdWx0GAYgASgLMhQuc3BhcmsuU2lnbmluZ1Jlc3VsdFIbZGlyZWN0UmVmdW5kVHhTaWduaW5nUmVzdWx0EmwKKWRpcmVjdF9mcm9tX2NwZnBfcmVmdW5kX3R4X3NpZ25pbmdfcmVzdWx0GAcgASgLMhQuc3BhcmsuU2lnbmluZ1Jlc3VsdFIjZGlyZWN0RnJvbUNwZnBSZWZ1bmRUeFNpZ25pbmdSZXN1bHQiygIKDk5vZGVTaWduYXR1cmVzEhcKB25vZGVfaWQYASABKAlSBm5vZGVJZBIqChFub2RlX3R4X3NpZ25hdHVyZRgCIAEoDFIPbm9kZVR4U2lnbmF0dXJlEi4KE3JlZnVuZF90eF9zaWduYXR1cmUYAyABKAxSEXJlZnVuZFR4U2lnbmF0dXJlEjcKGGRpcmVjdF9ub2RlX3R4X3NpZ25hdHVyZRgEIAEoDFIVZGlyZWN0Tm9kZVR4U2lnbmF0dXJlEjsKGmRpcmVjdF9yZWZ1bmRfdHhfc2lnbmF0dXJlGAUgASgMUhdkaXJlY3RSZWZ1bmRUeFNpZ25hdHVyZRJNCiRkaXJlY3RfZnJvbV9jcGZwX3JlZnVuZF90eF9zaWduYXR1cmUYBiABKAxSH2RpcmVjdEZyb21DcGZwUmVmdW5kVHhTaWduYXR1cmUiigQKGFN0YXJ0VHJlZUNyZWF0aW9uUmVxdWVzdBIuChNpZGVudGl0eV9wdWJsaWNfa2V5GAEgASgMUhFpZGVudGl0eVB1YmxpY0tleRIvCg1vbl9jaGFpbl91dHhvGAIgASgLMgsuc3BhcmsuVVRYT1ILb25DaGFpblV0eG8SQAoTcm9vdF90eF9zaWduaW5nX2pvYhgDIAEoCzIRLnNwYXJrLlNpZ25pbmdKb2JSEHJvb3RUeFNpZ25pbmdKb2ISRAoVcmVmdW5kX3R4X3NpZ25pbmdfam9iGAQgASgLMhEuc3BhcmsuU2lnbmluZ0pvYlIScmVmdW5kVHhTaWduaW5nSm9iEk0KGmRpcmVjdF9yb290X3R4X3NpZ25pbmdfam9iGAUgASgLMhEuc3BhcmsuU2lnbmluZ0pvYlIWZGlyZWN0Um9vdFR4U2lnbmluZ0pvYhJRChxkaXJlY3RfcmVmdW5kX3R4X3NpZ25pbmdfam9iGAYgASgLMhEuc3BhcmsuU2lnbmluZ0pvYlIYZGlyZWN0UmVmdW5kVHhTaWduaW5nSm9iEmMKJmRpcmVjdF9mcm9tX2NwZnBfcmVmdW5kX3R4X3NpZ25pbmdfam9iGAcgASgLMhEuc3BhcmsuU2lnbmluZ0pvYlIgZGlyZWN0RnJvbUNwZnBSZWZ1bmRUeFNpZ25pbmdKb2IijQEKGVN0YXJ0VHJlZUNyZWF0aW9uUmVzcG9uc2USFwoHdHJlZV9pZBgBIAEoCVIGdHJlZUlkElcKGnJvb3Rfbm9kZV9zaWduYXR1cmVfc2hhcmVzGAIgASgLMhouc3BhcmsuTm9kZVNpZ25hdHVyZVNoYXJlc1IXcm9vdE5vZGVTaWduYXR1cmVTaGFyZXMikQQKH1N0YXJ0RGVwb3NpdFRyZWVDcmVhdGlvblJlcXVlc3QSLgoTaWRlbnRpdHlfcHVibGljX2tleRgBIAEoDFIRaWRlbnRpdHlQdWJsaWNLZXkSLwoNb25fY2hhaW5fdXR4bxgCIAEoCzILLnNwYXJrLlVUWE9SC29uQ2hhaW5VdHhvEkAKE3Jvb3RfdHhfc2lnbmluZ19qb2IYAyABKAsyES5zcGFyay5TaWduaW5nSm9iUhByb290VHhTaWduaW5nSm9iEkQKFXJlZnVuZF90eF9zaWduaW5nX2pvYhgEIAEoCzIRLnNwYXJrLlNpZ25pbmdKb2JSEnJlZnVuZFR4U2lnbmluZ0pvYhJNChpkaXJlY3Rfcm9vdF90eF9zaWduaW5nX2pvYhgFIAEoCzIRLnNwYXJrLlNpZ25pbmdKb2JSFmRpcmVjdFJvb3RUeFNpZ25pbmdKb2ISUQocZGlyZWN0X3JlZnVuZF90eF9zaWduaW5nX2pvYhgGIAEoCzIRLnNwYXJrLlNpZ25pbmdKb2JSGGRpcmVjdFJlZnVuZFR4U2lnbmluZ0pvYhJjCiZkaXJlY3RfZnJvbV9jcGZwX3JlZnVuZF90eF9zaWduaW5nX2pvYhgHIAEoCzIRLnNwYXJrLlNpZ25pbmdKb2JSIGRpcmVjdEZyb21DcGZwUmVmdW5kVHhTaWduaW5nSm9iIpQBCiBTdGFydERlcG9zaXRUcmVlQ3JlYXRpb25SZXNwb25zZRIXCgd0cmVlX2lkGAEgASgJUgZ0cmVlSWQSVwoacm9vdF9ub2RlX3NpZ25hdHVyZV9zaGFyZXMYAiABKAsyGi5zcGFyay5Ob2RlU2lnbmF0dXJlU2hhcmVzUhdyb290Tm9kZVNpZ25hdHVyZVNoYXJlcyKbAQoSVG9rZW5PdXRwdXRUb1NwZW5kEkYKG3ByZXZfdG9rZW5fdHJhbnNhY3Rpb25faGFzaBgBIAEoDEIH+kIEegJoIFIYcHJldlRva2VuVHJhbnNhY3Rpb25IYXNoEj0KG3ByZXZfdG9rZW5fdHJhbnNhY3Rpb25fdm91dBgCIAEoDVIYcHJldlRva2VuVHJhbnNhY3Rpb25Wb3V0IlkKElRva2VuVHJhbnNmZXJJbnB1dBJDChBvdXRwdXRzX3RvX3NwZW5kGAEgAygLMhkuc3BhcmsuVG9rZW5PdXRwdXRUb1NwZW5kUg5vdXRwdXRzVG9TcGVuZCLPAQoOVG9rZW5NaW50SW5wdXQSMwoRaXNzdWVyX3B1YmxpY19rZXkYASABKAxCB/pCBHoCaCFSD2lzc3VlclB1YmxpY0tleRI6Chlpc3N1ZXJfcHJvdmlkZWRfdGltZXN0YW1wGAIgASgEUhdpc3N1ZXJQcm92aWRlZFRpbWVzdGFtcBI3ChB0b2tlbl9pZGVudGlmaWVyGAMgASgMQgf6QgR6AmggSABSD3Rva2VuSWRlbnRpZmllcogBAUITChFfdG9rZW5faWRlbnRpZmllciL2AgoQVG9rZW5DcmVhdGVJbnB1dBIzChFpc3N1ZXJfcHVibGljX2tleRgBIAEoDEIH+kIEegJoIVIPaXNzdWVyUHVibGljS2V5EiYKCnRva2VuX25hbWUYAiABKAlCB/pCBHICGBRSCXRva2VuTmFtZRIqCgx0b2tlbl90aWNrZXIYAyABKAlCB/pCBHICGAZSC3Rva2VuVGlja2VyEiQKCGRlY2ltYWxzGAQgASgNQgj6QgUqAxj/AVIIZGVjaW1hbHMSJgoKbWF4X3N1cHBseRgFIAEoDEIH+kIEegJoEFIJbWF4U3VwcGx5EiEKDGlzX2ZyZWV6YWJsZRgGIAEoCFILaXNGcmVlemFibGUSSQoaY3JlYXRpb25fZW50aXR5X3B1YmxpY19rZXkYByABKAxCB/pCBHoCaCFIAFIXY3JlYXRpb25FbnRpdHlQdWJsaWNLZXmIAQFCHQobX2NyZWF0aW9uX2VudGl0eV9wdWJsaWNfa2V5IscECgtUb2tlbk91dHB1dBIdCgJpZBgBIAEoCUII+kIFcgOwAQFIAFICaWSIAQESMQoQb3duZXJfcHVibGljX2tleRgCIAEoDEIH+kIEegJoIVIOb3duZXJQdWJsaWNLZXkSQQoVcmV2b2NhdGlvbl9jb21taXRtZW50GAMgASgMQgf6QgR6AmghSAFSFHJldm9jYXRpb25Db21taXRtZW50iAEBEjEKEndpdGhkcmF3X2JvbmRfc2F0cxgEIAEoBEgCUhB3aXRoZHJhd0JvbmRTYXRziAEBEkwKIHdpdGhkcmF3X3JlbGF0aXZlX2Jsb2NrX2xvY2t0aW1lGAUgASgESANSHXdpdGhkcmF3UmVsYXRpdmVCbG9ja0xvY2t0aW1liAEBEjYKEHRva2VuX3B1YmxpY19rZXkYBiABKAxCB/pCBHoCaCFIBFIOdG9rZW5QdWJsaWNLZXmIAQESNwoQdG9rZW5faWRlbnRpZmllchgIIAEoDEIH+kIEegJoIEgFUg90b2tlbklkZW50aWZpZXKIAQESKgoMdG9rZW5fYW1vdW50GAcgASgMQgf6QgR6AmgQUgt0b2tlbkFtb3VudEIFCgNfaWRCGAoWX3Jldm9jYXRpb25fY29tbWl0bWVudEIVChNfd2l0aGRyYXdfYm9uZF9zYXRzQiMKIV93aXRoZHJhd19yZWxhdGl2ZV9ibG9ja19sb2NrdGltZUITChFfdG9rZW5fcHVibGljX2tleUITChFfdG9rZW5faWRlbnRpZmllciKlAwoQVG9rZW5UcmFuc2FjdGlvbhI2CgptaW50X2lucHV0GAEgASgLMhUuc3BhcmsuVG9rZW5NaW50SW5wdXRIAFIJbWludElucHV0EkIKDnRyYW5zZmVyX2lucHV0GAIgASgLMhkuc3BhcmsuVG9rZW5UcmFuc2ZlcklucHV0SABSDXRyYW5zZmVySW5wdXQSPAoMY3JlYXRlX2lucHV0GAUgASgLMhcuc3BhcmsuVG9rZW5DcmVhdGVJbnB1dEgAUgtjcmVhdGVJbnB1dBI3Cg10b2tlbl9vdXRwdXRzGAMgAygLMhIuc3BhcmsuVG9rZW5PdXRwdXRSDHRva2VuT3V0cHV0cxJaCiNzcGFya19vcGVyYXRvcl9pZGVudGl0eV9wdWJsaWNfa2V5cxgEIAMoDEIM+kIJkgEGIgR6AmghUh9zcGFya09wZXJhdG9ySWRlbnRpdHlQdWJsaWNLZXlzEjIKB25ldHdvcmsYCiABKA4yDi5zcGFyay5OZXR3b3JrQgj6QgWCAQIgAFIHbmV0d29ya0IOCgx0b2tlbl9pbnB1dHMiZAoYU3BlbnRUb2tlbk91dHB1dE1ldGFkYXRhEhsKCW91dHB1dF9pZBgBIAEoCVIIb3V0cHV0SWQSKwoRcmV2b2NhdGlvbl9zZWNyZXQYAiABKAxSEHJldm9jYXRpb25TZWNyZXQiiAEKJFRva2VuVHJhbnNhY3Rpb25Db25maXJtYXRpb25NZXRhZGF0YRJgChxzcGVudF90b2tlbl9vdXRwdXRzX21ldGFkYXRhGAEgAygLMh8uc3BhcmsuU3BlbnRUb2tlbk91dHB1dE1ldGFkYXRhUhlzcGVudFRva2VuT3V0cHV0c01ldGFkYXRhIroCChpUb2tlblRyYW5zYWN0aW9uV2l0aFN0YXR1cxJEChF0b2tlbl90cmFuc2FjdGlvbhgBIAEoCzIXLnNwYXJrLlRva2VuVHJhbnNhY3Rpb25SEHRva2VuVHJhbnNhY3Rpb24SNQoGc3RhdHVzGAIgASgOMh0uc3BhcmsuVG9rZW5UcmFuc2FjdGlvblN0YXR1c1IGc3RhdHVzEmAKFWNvbmZpcm1hdGlvbl9tZXRhZGF0YRgDIAEoCzIrLnNwYXJrLlRva2VuVHJhbnNhY3Rpb25Db25maXJtYXRpb25NZXRhZGF0YVIUY29uZmlybWF0aW9uTWV0YWRhdGESPQoWdG9rZW5fdHJhbnNhY3Rpb25faGFzaBgEIAEoDEIH+kIEegJoIFIUdG9rZW5UcmFuc2FjdGlvbkhhc2giXgoSU2lnbmF0dXJlV2l0aEluZGV4EicKCXNpZ25hdHVyZRgBIAEoDEIJ+kIGegQQQBhJUglzaWduYXR1cmUSHwoLaW5wdXRfaW5kZXgYAiABKA1SCmlucHV0SW5kZXgiYgoaVG9rZW5UcmFuc2FjdGlvblNpZ25hdHVyZXMSRAoQb3duZXJfc2lnbmF0dXJlcxgBIAMoCzIZLnNwYXJrLlNpZ25hdHVyZVdpdGhJbmRleFIPb3duZXJTaWduYXR1cmVzIsMCChxTdGFydFRva2VuVHJhbnNhY3Rpb25SZXF1ZXN0EjcKE2lkZW50aXR5X3B1YmxpY19rZXkYASABKAxCB/pCBHoCaCFSEWlkZW50aXR5UHVibGljS2V5ElMKGXBhcnRpYWxfdG9rZW5fdHJhbnNhY3Rpb24YAiABKAsyFy5zcGFyay5Ub2tlblRyYW5zYWN0aW9uUhdwYXJ0aWFsVG9rZW5UcmFuc2FjdGlvbhJjChx0b2tlbl90cmFuc2FjdGlvbl9zaWduYXR1cmVzGAMgASgLMiEuc3BhcmsuVG9rZW5UcmFuc2FjdGlvblNpZ25hdHVyZXNSGnRva2VuVHJhbnNhY3Rpb25TaWduYXR1cmVzEjAKFHNwYXJrX3BheW1lbnRfaW50ZW50GAQgASgJUhJzcGFya1BheW1lbnRJbnRlbnQirQEKHVN0YXJ0VG9rZW5UcmFuc2FjdGlvblJlc3BvbnNlEk8KF2ZpbmFsX3Rva2VuX3RyYW5zYWN0aW9uGAEgASgLMhcuc3BhcmsuVG9rZW5UcmFuc2FjdGlvblIVZmluYWxUb2tlblRyYW5zYWN0aW9uEjsKDWtleXNoYXJlX2luZm8YAiABKAsyFi5zcGFyay5TaWduaW5nS2V5c2hhcmVSDGtleXNoYXJlSW5mbyLFAQovT3BlcmF0b3JTcGVjaWZpY1Rva2VuVHJhbnNhY3Rpb25TaWduYWJsZVBheWxvYWQSSAocZmluYWxfdG9rZW5fdHJhbnNhY3Rpb25faGFzaBgBIAEoDEIH+kIEegJoIFIZZmluYWxUb2tlblRyYW5zYWN0aW9uSGFzaBJIChxvcGVyYXRvcl9pZGVudGl0eV9wdWJsaWNfa2V5GAIgASgMQgf6QgR6AmghUhlvcGVyYXRvcklkZW50aXR5UHVibGljS2V5IrYBCh5PcGVyYXRvclNwZWNpZmljT3duZXJTaWduYXR1cmUSQgoPb3duZXJfc2lnbmF0dXJlGAEgASgLMhkuc3BhcmsuU2lnbmF0dXJlV2l0aEluZGV4Ug5vd25lclNpZ25hdHVyZRJQCgdwYXlsb2FkGAIgASgLMjYuc3BhcmsuT3BlcmF0b3JTcGVjaWZpY1Rva2VuVHJhbnNhY3Rpb25TaWduYWJsZVBheWxvYWRSB3BheWxvYWQikAIKG1NpZ25Ub2tlblRyYW5zYWN0aW9uUmVxdWVzdBJPChdmaW5hbF90b2tlbl90cmFuc2FjdGlvbhgBIAEoCzIXLnNwYXJrLlRva2VuVHJhbnNhY3Rpb25SFWZpbmFsVG9rZW5UcmFuc2FjdGlvbhJnChxvcGVyYXRvcl9zcGVjaWZpY19zaWduYXR1cmVzGAIgAygLMiUuc3BhcmsuT3BlcmF0b3JTcGVjaWZpY093bmVyU2lnbmF0dXJlUhpvcGVyYXRvclNwZWNpZmljU2lnbmF0dXJlcxI3ChNpZGVudGl0eV9wdWJsaWNfa2V5GAMgASgMQgf6QgR6AmghUhFpZGVudGl0eVB1YmxpY0tleSJZChFLZXlzaGFyZVdpdGhJbmRleBIfCgtpbnB1dF9pbmRleBgBIAEoDVIKaW5wdXRJbmRleBIjCghrZXlzaGFyZRgCIAEoDEIH+kIEegJoIFIIa2V5c2hhcmUisAEKHFNpZ25Ub2tlblRyYW5zYWN0aW9uUmVzcG9uc2USQwoYc3Bhcmtfb3BlcmF0b3Jfc2lnbmF0dXJlGAEgASgMQgn6QgZ6BBBAGElSFnNwYXJrT3BlcmF0b3JTaWduYXR1cmUSSwoUcmV2b2NhdGlvbl9rZXlzaGFyZXMYAiADKAsyGC5zcGFyay5LZXlzaGFyZVdpdGhJbmRleFITcmV2b2NhdGlvbktleXNoYXJlcyJyChlSZXZvY2F0aW9uU2VjcmV0V2l0aEluZGV4Eh8KC2lucHV0X2luZGV4GAEgASgNUgppbnB1dEluZGV4EjQKEXJldm9jYXRpb25fc2VjcmV0GAIgASgMQgf6QgR6AmggUhByZXZvY2F0aW9uU2VjcmV0Iq4CCh9GaW5hbGl6ZVRva2VuVHJhbnNhY3Rpb25SZXF1ZXN0Ek8KF2ZpbmFsX3Rva2VuX3RyYW5zYWN0aW9uGAEgASgLMhcuc3BhcmsuVG9rZW5UcmFuc2FjdGlvblIVZmluYWxUb2tlblRyYW5zYWN0aW9uEk8KEnJldm9jYXRpb25fc2VjcmV0cxgCIAMoCzIgLnNwYXJrLlJldm9jYXRpb25TZWNyZXRXaXRoSW5kZXhSEXJldm9jYXRpb25TZWNyZXRzEjcKE2lkZW50aXR5X3B1YmxpY19rZXkYAyABKAxCB/pCBHoCaCFSEWlkZW50aXR5UHVibGljS2V5EjAKFHNwYXJrX3BheW1lbnRfaW50ZW50GAQgASgJUhJzcGFya1BheW1lbnRJbnRlbnQi+AIKE0ZyZWV6ZVRva2Vuc1BheWxvYWQSMQoQb3duZXJfcHVibGljX2tleRgBIAEoDEIH+kIEegJoIVIOb3duZXJQdWJsaWNLZXkSMQoQdG9rZW5fcHVibGljX2tleRgCIAEoDEIH+kIEegJoIVIOdG9rZW5QdWJsaWNLZXkSOgoZaXNzdWVyX3Byb3ZpZGVkX3RpbWVzdGFtcBgDIAEoBFIXaXNzdWVyUHJvdmlkZWRUaW1lc3RhbXASSAocb3BlcmF0b3JfaWRlbnRpdHlfcHVibGljX2tleRgEIAEoDEIH+kIEegJoIVIZb3BlcmF0b3JJZGVudGl0eVB1YmxpY0tleRInCg9zaG91bGRfdW5mcmVlemUYBSABKAhSDnNob3VsZFVuZnJlZXplEjcKEHRva2VuX2lkZW50aWZpZXIYBiABKAxCB/pCBHoCaCBIAFIPdG9rZW5JZGVudGlmaWVyiAEBQhMKEV90b2tlbl9pZGVudGlmaWVyIpsBChNGcmVlemVUb2tlbnNSZXF1ZXN0Ek4KFWZyZWV6ZV90b2tlbnNfcGF5bG9hZBgBIAEoCzIaLnNwYXJrLkZyZWV6ZVRva2Vuc1BheWxvYWRSE2ZyZWV6ZVRva2Vuc1BheWxvYWQSNAoQaXNzdWVyX3NpZ25hdHVyZRgCIAEoDEIJ+kIGegQQQBhJUg9pc3N1ZXJTaWduYXR1cmUiiQEKFEZyZWV6ZVRva2Vuc1Jlc3BvbnNlEj0KE2ltcGFjdGVkX291dHB1dF9pZHMYASADKAlCDfpCCpIBByIFcgOwAQFSEWltcGFjdGVkT3V0cHV0SWRzEjIKFWltcGFjdGVkX3Rva2VuX2Ftb3VudBgCIAEoDFITaW1wYWN0ZWRUb2tlbkFtb3VudCLzAQoYUXVlcnlUb2tlbk91dHB1dHNSZXF1ZXN0EjgKEW93bmVyX3B1YmxpY19rZXlzGAEgAygMQgz6QgmSAQYiBHoCaCFSD293bmVyUHVibGljS2V5cxI4ChF0b2tlbl9wdWJsaWNfa2V5cxgCIAMoDEIM+kIJkgEGIgR6AmghUg90b2tlblB1YmxpY0tleXMSOQoRdG9rZW5faWRlbnRpZmllcnMYBCADKAxCDPpCCZIBBiIEegJoIFIQdG9rZW5JZGVudGlmaWVycxIoCgduZXR3b3JrGAMgASgOMg4uc3BhcmsuTmV0d29ya1IHbmV0d29yayLyAgodUXVlcnlUb2tlblRyYW5zYWN0aW9uc1JlcXVlc3QSLAoKb3V0cHV0X2lkcxgBIAMoCUIN+kIKkgEHIgVyA7ABAVIJb3V0cHV0SWRzEjgKEW93bmVyX3B1YmxpY19rZXlzGAIgAygMQgz6QgmSAQYiBHoCaCFSD293bmVyUHVibGljS2V5cxI4ChF0b2tlbl9wdWJsaWNfa2V5cxgDIAMoDEIM+kIJkgEGIgR6AmghUg90b2tlblB1YmxpY0tleXMSOQoRdG9rZW5faWRlbnRpZmllcnMYByADKAxCDPpCCZIBBiIEegJoIFIQdG9rZW5JZGVudGlmaWVycxJGChh0b2tlbl90cmFuc2FjdGlvbl9oYXNoZXMYBCADKAxCDPpCCZIBBiIEegJoIFIWdG9rZW5UcmFuc2FjdGlvbkhhc2hlcxIUCgVsaW1pdBgFIAEoA1IFbGltaXQSFgoGb2Zmc2V0GAYgASgDUgZvZmZzZXQioAEKHlF1ZXJ5VG9rZW5UcmFuc2FjdGlvbnNSZXNwb25zZRJmCh50b2tlbl90cmFuc2FjdGlvbnNfd2l0aF9zdGF0dXMYASADKAsyIS5zcGFyay5Ub2tlblRyYW5zYWN0aW9uV2l0aFN0YXR1c1IbdG9rZW5UcmFuc2FjdGlvbnNXaXRoU3RhdHVzEhYKBm9mZnNldBgCIAEoA1IGb2Zmc2V0ItABCiFPdXRwdXRXaXRoUHJldmlvdXNUcmFuc2FjdGlvbkRhdGESKgoGb3V0cHV0GAEgASgLMhIuc3BhcmsuVG9rZW5PdXRwdXRSBm91dHB1dBJDChlwcmV2aW91c190cmFuc2FjdGlvbl9oYXNoGAIgASgMQgf6QgR6AmggUhdwcmV2aW91c1RyYW5zYWN0aW9uSGFzaBI6ChlwcmV2aW91c190cmFuc2FjdGlvbl92b3V0GAMgASgNUhdwcmV2aW91c1RyYW5zYWN0aW9uVm91dCKZAQoZUXVlcnlUb2tlbk91dHB1dHNSZXNwb25zZRJ8CiZvdXRwdXRzX3dpdGhfcHJldmlvdXNfdHJhbnNhY3Rpb25fZGF0YRgBIAMoCzIoLnNwYXJrLk91dHB1dFdpdGhQcmV2aW91c1RyYW5zYWN0aW9uRGF0YVIib3V0cHV0c1dpdGhQcmV2aW91c1RyYW5zYWN0aW9uRGF0YSL9BQoIVHJlZU5vZGUSDgoCaWQYASABKAlSAmlkEhcKB3RyZWVfaWQYAiABKAlSBnRyZWVJZBIUCgV2YWx1ZRgDIAEoBFIFdmFsdWUSKQoOcGFyZW50X25vZGVfaWQYBCABKAlIAFIMcGFyZW50Tm9kZUlkiAEBEhcKB25vZGVfdHgYBSABKAxSBm5vZGVUeBIbCglyZWZ1bmRfdHgYBiABKAxSCHJlZnVuZFR4EhIKBHZvdXQYByABKA1SBHZvdXQSMAoUdmVyaWZ5aW5nX3B1YmxpY19rZXkYCCABKAxSEnZlcmlmeWluZ1B1YmxpY0tleRI5Chlvd25lcl9pZGVudGl0eV9wdWJsaWNfa2V5GAkgASgMUhZvd25lcklkZW50aXR5UHVibGljS2V5EkEKEHNpZ25pbmdfa2V5c2hhcmUYCiABKAsyFi5zcGFyay5TaWduaW5nS2V5c2hhcmVSD3NpZ25pbmdLZXlzaGFyZRIWCgZzdGF0dXMYCyABKAlSBnN0YXR1cxIoCgduZXR3b3JrGAwgASgOMg4uc3BhcmsuTmV0d29ya1IHbmV0d29yaxI9CgxjcmVhdGVkX3RpbWUYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgtjcmVhdGVkVGltZRI9Cgx1cGRhdGVkX3RpbWUYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgt1cGRhdGVkVGltZRI3Chhvd25lcl9zaWduaW5nX3B1YmxpY19rZXkYDyABKAxSFW93bmVyU2lnbmluZ1B1YmxpY0tleRIbCglkaXJlY3RfdHgYECABKAxSCGRpcmVjdFR4EigKEGRpcmVjdF9yZWZ1bmRfdHgYESABKAxSDmRpcmVjdFJlZnVuZFR4EjoKGmRpcmVjdF9mcm9tX2NwZnBfcmVmdW5kX3R4GBIgASgMUhZkaXJlY3RGcm9tQ3BmcFJlZnVuZFR4QhEKD19wYXJlbnRfbm9kZV9pZCKQAQodRmluYWxpemVOb2RlU2lnbmF0dXJlc1JlcXVlc3QSLwoGaW50ZW50GAEgASgOMhcuY29tbW9uLlNpZ25hdHVyZUludGVudFIGaW50ZW50Ej4KD25vZGVfc2lnbmF0dXJlcxgCIAMoCzIVLnNwYXJrLk5vZGVTaWduYXR1cmVzUg5ub2RlU2lnbmF0dXJlcyJHCh5GaW5hbGl6ZU5vZGVTaWduYXR1cmVzUmVzcG9uc2USJQoFbm9kZXMYASADKAsyDy5zcGFyay5UcmVlTm9kZVIFbm9kZXMiSAoLU2VjcmV0U2hhcmUSIQoMc2VjcmV0X3NoYXJlGAEgASgMUgtzZWNyZXRTaGFyZRIWCgZwcm9vZnMYAiADKAxSBnByb29mcyIlCgtTZWNyZXRQcm9vZhIWCgZwcm9vZnMYASADKAxSBnByb29mcyKvAgoWTGVhZlJlZnVuZFR4U2lnbmluZ0pvYhIXCgdsZWFmX2lkGAEgASgJUgZsZWFmSWQSRAoVcmVmdW5kX3R4X3NpZ25pbmdfam9iGAIgASgLMhEuc3BhcmsuU2lnbmluZ0pvYlIScmVmdW5kVHhTaWduaW5nSm9iElEKHGRpcmVjdF9yZWZ1bmRfdHhfc2lnbmluZ19qb2IYAyABKAsyES5zcGFyay5TaWduaW5nSm9iUhhkaXJlY3RSZWZ1bmRUeFNpZ25pbmdKb2ISYwomZGlyZWN0X2Zyb21fY3BmcF9yZWZ1bmRfdHhfc2lnbmluZ19qb2IYBCABKAsyES5zcGFyay5TaWduaW5nSm9iUiBkaXJlY3RGcm9tQ3BmcFJlZnVuZFR4U2lnbmluZ0pvYiK+AgoWVXNlclNpZ25lZFR4U2lnbmluZ0pvYhIXCgdsZWFmX2lkGAEgASgJUgZsZWFmSWQSLAoSc2lnbmluZ19wdWJsaWNfa2V5GAIgASgMUhBzaWduaW5nUHVibGljS2V5EhUKBnJhd190eBgDIAEoDFIFcmF3VHgSUwoYc2lnbmluZ19ub25jZV9jb21taXRtZW50GAQgASgLMhkuY29tbW9uLlNpZ25pbmdDb21taXRtZW50UhZzaWduaW5nTm9uY2VDb21taXRtZW50EiUKDnVzZXJfc2lnbmF0dXJlGAUgASgMUg11c2VyU2lnbmF0dXJlEkoKE3NpZ25pbmdfY29tbWl0bWVudHMYBiABKAsyGS5zcGFyay5TaWduaW5nQ29tbWl0bWVudHNSEnNpZ25pbmdDb21taXRtZW50cyLyAgoZTGVhZlJlZnVuZFR4U2lnbmluZ1Jlc3VsdBIXCgdsZWFmX2lkGAEgASgJUgZsZWFmSWQSTQoYcmVmdW5kX3R4X3NpZ25pbmdfcmVzdWx0GAIgASgLMhQuc3BhcmsuU2lnbmluZ1Jlc3VsdFIVcmVmdW5kVHhTaWduaW5nUmVzdWx0EiMKDXZlcmlmeWluZ19rZXkYAyABKAxSDHZlcmlmeWluZ0tleRJaCh9kaXJlY3RfcmVmdW5kX3R4X3NpZ25pbmdfcmVzdWx0GAQgASgLMhQuc3BhcmsuU2lnbmluZ1Jlc3VsdFIbZGlyZWN0UmVmdW5kVHhTaWduaW5nUmVzdWx0EmwKKWRpcmVjdF9mcm9tX2NwZnBfcmVmdW5kX3R4X3NpZ25pbmdfcmVzdWx0GAUgASgLMhQuc3BhcmsuU2lnbmluZ1Jlc3VsdFIjZGlyZWN0RnJvbUNwZnBSZWZ1bmRUeFNpZ25pbmdSZXN1bHQi9QMKHlN0YXJ0VXNlclNpZ25lZFRyYW5zZmVyUmVxdWVzdBIfCgt0cmFuc2Zlcl9pZBgBIAEoCVIKdHJhbnNmZXJJZBI5Chlvd25lcl9pZGVudGl0eV9wdWJsaWNfa2V5GAIgASgMUhZvd25lcklkZW50aXR5UHVibGljS2V5EkMKDmxlYXZlc190b19zZW5kGAMgAygLMh0uc3BhcmsuVXNlclNpZ25lZFR4U2lnbmluZ0pvYlIMbGVhdmVzVG9TZW5kEj8KHHJlY2VpdmVyX2lkZW50aXR5X3B1YmxpY19rZXkYBCABKAxSGXJlY2VpdmVySWRlbnRpdHlQdWJsaWNLZXkSOwoLZXhwaXJ5X3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgpleHBpcnlUaW1lElAKFWRpcmVjdF9sZWF2ZXNfdG9fc2VuZBgGIAMoCzIdLnNwYXJrLlVzZXJTaWduZWRUeFNpZ25pbmdKb2JSEmRpcmVjdExlYXZlc1RvU2VuZBJiCh9kaXJlY3RfZnJvbV9jcGZwX2xlYXZlc190b19zZW5kGAcgAygLMh0uc3BhcmsuVXNlclNpZ25lZFR4U2lnbmluZ0pvYlIaZGlyZWN0RnJvbUNwZnBMZWF2ZXNUb1NlbmQitAMKFFN0YXJ0VHJhbnNmZXJSZXF1ZXN0Eh8KC3RyYW5zZmVyX2lkGAEgASgJUgp0cmFuc2ZlcklkEjkKGW93bmVyX2lkZW50aXR5X3B1YmxpY19rZXkYAiABKAxSFm93bmVySWRlbnRpdHlQdWJsaWNLZXkSRwoObGVhdmVzX3RvX3NlbmQYAyADKAsyHS5zcGFyay5MZWFmUmVmdW5kVHhTaWduaW5nSm9iQgIYAVIMbGVhdmVzVG9TZW5kEj8KHHJlY2VpdmVyX2lkZW50aXR5X3B1YmxpY19rZXkYBCABKAxSGXJlY2VpdmVySWRlbnRpdHlQdWJsaWNLZXkSOwoLZXhwaXJ5X3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgpleHBpcnlUaW1lEkEKEHRyYW5zZmVyX3BhY2thZ2UYByABKAsyFi5zcGFyay5UcmFuc2ZlclBhY2thZ2VSD3RyYW5zZmVyUGFja2FnZRIwChRzcGFya19wYXltZW50X2ludGVudBgJIAEoCVISc3BhcmtQYXltZW50SW50ZW50SgQIBhAHIo8BChVTdGFydFRyYW5zZmVyUmVzcG9uc2USKwoIdHJhbnNmZXIYASABKAsyDy5zcGFyay5UcmFuc2ZlclIIdHJhbnNmZXISSQoPc2lnbmluZ19yZXN1bHRzGAIgAygLMiAuc3BhcmsuTGVhZlJlZnVuZFR4U2lnbmluZ1Jlc3VsdFIOc2lnbmluZ1Jlc3VsdHMi0AMKD1RyYW5zZmVyUGFja2FnZRJDCg5sZWF2ZXNfdG9fc2VuZBgBIAMoCzIdLnNwYXJrLlVzZXJTaWduZWRUeFNpZ25pbmdKb2JSDGxlYXZlc1RvU2VuZBJXChFrZXlfdHdlYWtfcGFja2FnZRgCIAMoCzIrLnNwYXJrLlRyYW5zZmVyUGFja2FnZS5LZXlUd2Vha1BhY2thZ2VFbnRyeVIPa2V5VHdlYWtQYWNrYWdlEiUKDnVzZXJfc2lnbmF0dXJlGAMgASgMUg11c2VyU2lnbmF0dXJlElAKFWRpcmVjdF9sZWF2ZXNfdG9fc2VuZBgEIAMoCzIdLnNwYXJrLlVzZXJTaWduZWRUeFNpZ25pbmdKb2JSEmRpcmVjdExlYXZlc1RvU2VuZBJiCh9kaXJlY3RfZnJvbV9jcGZwX2xlYXZlc190b19zZW5kGAUgAygLMh0uc3BhcmsuVXNlclNpZ25lZFR4U2lnbmluZ0pvYlIaZGlyZWN0RnJvbUNwZnBMZWF2ZXNUb1NlbmQaQgoUS2V5VHdlYWtQYWNrYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ASJSChFTZW5kTGVhZktleVR3ZWFrcxI9Cg5sZWF2ZXNfdG9fc2VuZBgBIAMoCzIXLnNwYXJrLlNlbmRMZWFmS2V5VHdlYWtSDGxlYXZlc1RvU2VuZCKDBAoQU2VuZExlYWZLZXlUd2VhaxIXCgdsZWFmX2lkGAEgASgJUgZsZWFmSWQSQAoSc2VjcmV0X3NoYXJlX3R3ZWFrGAIgASgLMhIuc3BhcmsuU2VjcmV0U2hhcmVSEHNlY3JldFNoYXJlVHdlYWsSXgoTcHVia2V5X3NoYXJlc190d2VhaxgDIAMoCzIuLnNwYXJrLlNlbmRMZWFmS2V5VHdlYWsuUHVia2V5U2hhcmVzVHdlYWtFbnRyeVIRcHVia2V5U2hhcmVzVHdlYWsSIwoNc2VjcmV0X2NpcGhlchgEIAEoDFIMc2VjcmV0Q2lwaGVyEhwKCXNpZ25hdHVyZRgFIAEoDFIJc2lnbmF0dXJlEikKEHJlZnVuZF9zaWduYXR1cmUYBiABKAxSD3JlZnVuZFNpZ25hdHVyZRI2ChdkaXJlY3RfcmVmdW5kX3NpZ25hdHVyZRgHIAEoDFIVZGlyZWN0UmVmdW5kU2lnbmF0dXJlEkgKIWRpcmVjdF9mcm9tX2NwZnBfcmVmdW5kX3NpZ25hdHVyZRgIIAEoDFIdZGlyZWN0RnJvbUNwZnBSZWZ1bmRTaWduYXR1cmUaRAoWUHVia2V5U2hhcmVzVHdlYWtFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoDFIFdmFsdWU6AjgBIuYBChdGaW5hbGl6ZVRyYW5zZmVyUmVxdWVzdBIfCgt0cmFuc2Zlcl9pZBgBIAEoCVIKdHJhbnNmZXJJZBI5Chlvd25lcl9pZGVudGl0eV9wdWJsaWNfa2V5GAIgASgMUhZvd25lcklkZW50aXR5UHVibGljS2V5Ej0KDmxlYXZlc190b19zZW5kGAMgAygLMhcuc3BhcmsuU2VuZExlYWZLZXlUd2Vha1IMbGVhdmVzVG9TZW5kEjAKFHNwYXJrX3BheW1lbnRfaW50ZW50GAQgASgJUhJzcGFya1BheW1lbnRJbnRlbnQiywEKKkZpbmFsaXplVHJhbnNmZXJXaXRoVHJhbnNmZXJQYWNrYWdlUmVxdWVzdBIfCgt0cmFuc2Zlcl9pZBgBIAEoCVIKdHJhbnNmZXJJZBI5Chlvd25lcl9pZGVudGl0eV9wdWJsaWNfa2V5GAIgASgMUhZvd25lcklkZW50aXR5UHVibGljS2V5EkEKEHRyYW5zZmVyX3BhY2thZ2UYAyABKAsyFi5zcGFyay5UcmFuc2ZlclBhY2thZ2VSD3RyYW5zZmVyUGFja2FnZSJHChhGaW5hbGl6ZVRyYW5zZmVyUmVzcG9uc2USKwoIdHJhbnNmZXIYASABKAsyDy5zcGFyay5UcmFuc2ZlclIIdHJhbnNmZXIi+QMKCFRyYW5zZmVyEg4KAmlkGAEgASgJUgJpZBI7ChpzZW5kZXJfaWRlbnRpdHlfcHVibGljX2tleRgCIAEoDFIXc2VuZGVySWRlbnRpdHlQdWJsaWNLZXkSPwoccmVjZWl2ZXJfaWRlbnRpdHlfcHVibGljX2tleRgDIAEoDFIZcmVjZWl2ZXJJZGVudGl0eVB1YmxpY0tleRItCgZzdGF0dXMYBCABKA4yFS5zcGFyay5UcmFuc2ZlclN0YXR1c1IGc3RhdHVzEh8KC3RvdGFsX3ZhbHVlGAUgASgEUgp0b3RhbFZhbHVlEjsKC2V4cGlyeV90aW1lGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIKZXhwaXJ5VGltZRIrCgZsZWF2ZXMYByADKAsyEy5zcGFyay5UcmFuc2ZlckxlYWZSBmxlYXZlcxI9CgxjcmVhdGVkX3RpbWUYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgtjcmVhdGVkVGltZRI9Cgx1cGRhdGVkX3RpbWUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgt1cGRhdGVkVGltZRInCgR0eXBlGAogASgOMhMuc3BhcmsuVHJhbnNmZXJUeXBlUgR0eXBlIsQCCgxUcmFuc2ZlckxlYWYSIwoEbGVhZhgBIAEoCzIPLnNwYXJrLlRyZWVOb2RlUgRsZWFmEiMKDXNlY3JldF9jaXBoZXIYAiABKAxSDHNlY3JldENpcGhlchIcCglzaWduYXR1cmUYAyABKAxSCXNpZ25hdHVyZRI0ChZpbnRlcm1lZGlhdGVfcmVmdW5kX3R4GAQgASgMUhRpbnRlcm1lZGlhdGVSZWZ1bmRUeBJBCh1pbnRlcm1lZGlhdGVfZGlyZWN0X3JlZnVuZF90eBgFIAEoDFIaaW50ZXJtZWRpYXRlRGlyZWN0UmVmdW5kVHgSUwonaW50ZXJtZWRpYXRlX2RpcmVjdF9mcm9tX2NwZnBfcmVmdW5kX3R4GAYgASgMUiJpbnRlcm1lZGlhdGVEaXJlY3RGcm9tQ3BmcFJlZnVuZFR4IvMDCg5UcmFuc2ZlckZpbHRlchJBChxyZWNlaXZlcl9pZGVudGl0eV9wdWJsaWNfa2V5GAEgASgMSABSGXJlY2VpdmVySWRlbnRpdHlQdWJsaWNLZXkSPQoac2VuZGVyX2lkZW50aXR5X3B1YmxpY19rZXkYAiABKAxIAFIXc2VuZGVySWRlbnRpdHlQdWJsaWNLZXkSUwomc2VuZGVyX29yX3JlY2VpdmVyX2lkZW50aXR5X3B1YmxpY19rZXkYPCABKAxIAFIhc2VuZGVyT3JSZWNlaXZlcklkZW50aXR5UHVibGljS2V5EiEKDHRyYW5zZmVyX2lkcxgDIAMoCVILdHJhbnNmZXJJZHMSFAoFbGltaXQYKCABKANSBWxpbWl0EhYKBm9mZnNldBgyIAEoA1IGb2Zmc2V0EikKBXR5cGVzGEYgAygOMhMuc3BhcmsuVHJhbnNmZXJUeXBlUgV0eXBlcxIoCgduZXR3b3JrGAQgASgOMg4uc3BhcmsuTmV0d29ya1IHbmV0d29yaxIxCghzdGF0dXNlcxhQIAMoDjIVLnNwYXJrLlRyYW5zZmVyU3RhdHVzUghzdGF0dXNlcxIiCgVvcmRlchgFIAEoDjIMLnNwYXJrLk9yZGVyUgVvcmRlckINCgtwYXJ0aWNpcGFudCJfChZRdWVyeVRyYW5zZmVyc1Jlc3BvbnNlEi0KCXRyYW5zZmVycxgBIAMoCzIPLnNwYXJrLlRyYW5zZmVyUgl0cmFuc2ZlcnMSFgoGb2Zmc2V0GAIgASgDUgZvZmZzZXQilQIKEUNsYWltTGVhZktleVR3ZWFrEhcKB2xlYWZfaWQYASABKAlSBmxlYWZJZBJAChJzZWNyZXRfc2hhcmVfdHdlYWsYAiABKAsyEi5zcGFyay5TZWNyZXRTaGFyZVIQc2VjcmV0U2hhcmVUd2VhaxJfChNwdWJrZXlfc2hhcmVzX3R3ZWFrGAMgAygLMi8uc3BhcmsuQ2xhaW1MZWFmS2V5VHdlYWsuUHVia2V5U2hhcmVzVHdlYWtFbnRyeVIRcHVia2V5U2hhcmVzVHdlYWsaRAoWUHVia2V5U2hhcmVzVHdlYWtFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoDFIFdmFsdWU6AjgBIsEBCh1DbGFpbVRyYW5zZmVyVHdlYWtLZXlzUmVxdWVzdBIfCgt0cmFuc2Zlcl9pZBgBIAEoCVIKdHJhbnNmZXJJZBI5Chlvd25lcl9pZGVudGl0eV9wdWJsaWNfa2V5GAIgASgMUhZvd25lcklkZW50aXR5UHVibGljS2V5EkQKEWxlYXZlc190b19yZWNlaXZlGAMgAygLMhguc3BhcmsuQ2xhaW1MZWFmS2V5VHdlYWtSD2xlYXZlc1RvUmVjZWl2ZSLFAQofQ2xhaW1UcmFuc2ZlclNpZ25SZWZ1bmRzUmVxdWVzdBIfCgt0cmFuc2Zlcl9pZBgBIAEoCVIKdHJhbnNmZXJJZBI5Chlvd25lcl9pZGVudGl0eV9wdWJsaWNfa2V5GAIgASgMUhZvd25lcklkZW50aXR5UHVibGljS2V5EkAKDHNpZ25pbmdfam9icxgDIAMoCzIdLnNwYXJrLkxlYWZSZWZ1bmRUeFNpZ25pbmdKb2JSC3NpZ25pbmdKb2JzSgQIBBAFIm0KIENsYWltVHJhbnNmZXJTaWduUmVmdW5kc1Jlc3BvbnNlEkkKD3NpZ25pbmdfcmVzdWx0cxgBIAMoCzIgLnNwYXJrLkxlYWZSZWZ1bmRUeFNpZ25pbmdSZXN1bHRSDnNpZ25pbmdSZXN1bHRzIvcBChlTdG9yZVByZWltYWdlU2hhcmVSZXF1ZXN0EiEKDHBheW1lbnRfaGFzaBgBIAEoDFILcGF5bWVudEhhc2gSOQoOcHJlaW1hZ2Vfc2hhcmUYAiABKAsyEi5zcGFyay5TZWNyZXRTaGFyZVINcHJlaW1hZ2VTaGFyZRIcCgl0aHJlc2hvbGQYAyABKA1SCXRocmVzaG9sZBIlCg5pbnZvaWNlX3N0cmluZxgEIAEoCVINaW52b2ljZVN0cmluZxI3Chh1c2VyX2lkZW50aXR5X3B1YmxpY19rZXkYBSABKAxSFXVzZXJJZGVudGl0eVB1YmxpY0tleSKBAgobUmVxdWVzdGVkU2lnbmluZ0NvbW1pdG1lbnRzEnsKGXNpZ25pbmdfbm9uY2VfY29tbWl0bWVudHMYASADKAsyPy5zcGFyay5SZXF1ZXN0ZWRTaWduaW5nQ29tbWl0bWVudHMuU2lnbmluZ05vbmNlQ29tbWl0bWVudHNFbnRyeVIXc2lnbmluZ05vbmNlQ29tbWl0bWVudHMaZQocU2lnbmluZ05vbmNlQ29tbWl0bWVudHNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIvCgV2YWx1ZRgCIAEoCzIZLmNvbW1vbi5TaWduaW5nQ29tbWl0bWVudFIFdmFsdWU6AjgBIk8KHEdldFNpZ25pbmdDb21taXRtZW50c1JlcXVlc3QSGQoIbm9kZV9pZHMYASADKAlSB25vZGVJZHMSFAoFY291bnQYAiABKA1SBWNvdW50InQKHUdldFNpZ25pbmdDb21taXRtZW50c1Jlc3BvbnNlElMKE3NpZ25pbmdfY29tbWl0bWVudHMYASADKAsyIi5zcGFyay5SZXF1ZXN0ZWRTaWduaW5nQ29tbWl0bWVudHNSEnNpZ25pbmdDb21taXRtZW50cyLaAQoSU2lnbmluZ0NvbW1pdG1lbnRzEmIKE3NpZ25pbmdfY29tbWl0bWVudHMYASADKAsyMS5zcGFyay5TaWduaW5nQ29tbWl0bWVudHMuU2lnbmluZ0NvbW1pdG1lbnRzRW50cnlSEnNpZ25pbmdDb21taXRtZW50cxpgChdTaWduaW5nQ29tbWl0bWVudHNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIvCgV2YWx1ZRgCIAEoCzIZLmNvbW1vbi5TaWduaW5nQ29tbWl0bWVudFIFdmFsdWU6AjgBIsYCChBVc2VyU2lnbmVkUmVmdW5kEhcKB25vZGVfaWQYASABKAlSBm5vZGVJZBIbCglyZWZ1bmRfdHgYAiABKAxSCHJlZnVuZFR4EiUKDnVzZXJfc2lnbmF0dXJlGAMgASgMUg11c2VyU2lnbmF0dXJlEkoKE3NpZ25pbmdfY29tbWl0bWVudHMYBCABKAsyGS5zcGFyay5TaWduaW5nQ29tbWl0bWVudHNSEnNpZ25pbmdDb21taXRtZW50cxJVChl1c2VyX3NpZ25hdHVyZV9jb21taXRtZW50GAUgASgLMhkuY29tbW9uLlNpZ25pbmdDb21taXRtZW50Uhd1c2VyU2lnbmF0dXJlQ29tbWl0bWVudBIyCgduZXR3b3JrGAYgASgOMg4uc3BhcmsuTmV0d29ya0II+kIFggECIABSB25ldHdvcmsiOwoSSW52b2ljZUFtb3VudFByb29mEiUKDmJvbHQxMV9pbnZvaWNlGAEgASgJUg1ib2x0MTFJbnZvaWNlInsKDUludm9pY2VBbW91bnQSHQoKdmFsdWVfc2F0cxgBIAEoBFIJdmFsdWVTYXRzEksKFGludm9pY2VfYW1vdW50X3Byb29mGAIgASgLMhkuc3BhcmsuSW52b2ljZUFtb3VudFByb29mUhJpbnZvaWNlQW1vdW50UHJvb2YijgMKG0luaXRpYXRlUHJlaW1hZ2VTd2FwUmVxdWVzdBIhCgxwYXltZW50X2hhc2gYASABKAxSC3BheW1lbnRIYXNoEjsKDmludm9pY2VfYW1vdW50GAIgASgLMhQuc3BhcmsuSW52b2ljZUFtb3VudFINaW52b2ljZUFtb3VudBJBCgZyZWFzb24YAyABKA4yKS5zcGFyay5Jbml0aWF0ZVByZWltYWdlU3dhcFJlcXVlc3QuUmVhc29uUgZyZWFzb24SQQoIdHJhbnNmZXIYBCABKAsyJS5zcGFyay5TdGFydFVzZXJTaWduZWRUcmFuc2ZlclJlcXVlc3RSCHRyYW5zZmVyEj8KHHJlY2VpdmVyX2lkZW50aXR5X3B1YmxpY19rZXkYBSABKAxSGXJlY2VpdmVySWRlbnRpdHlQdWJsaWNLZXkSGQoIZmVlX3NhdHMYBiABKARSB2ZlZVNhdHMiLQoGUmVhc29uEg8KC1JFQVNPTl9TRU5EEAASEgoOUkVBU09OX1JFQ0VJVkUQASJnChxJbml0aWF0ZVByZWltYWdlU3dhcFJlc3BvbnNlEhoKCHByZWltYWdlGAEgASgMUghwcmVpbWFnZRIrCgh0cmFuc2ZlchgCIAEoCzIPLnNwYXJrLlRyYW5zZmVyUgh0cmFuc2ZlciIyCghPdXRQb2ludBISCgR0eGlkGAEgASgMUgR0eGlkEhIKBHZvdXQYAiABKA1SBHZvdXQihwEKFkNvb3BlcmF0aXZlRXhpdFJlcXVlc3QSNwoIdHJhbnNmZXIYASABKAsyGy5zcGFyay5TdGFydFRyYW5zZmVyUmVxdWVzdFIIdHJhbnNmZXISFwoHZXhpdF9pZBgCIAEoCVIGZXhpdElkEhsKCWV4aXRfdHhpZBgDIAEoDFIIZXhpdFR4aWQikQEKF0Nvb3BlcmF0aXZlRXhpdFJlc3BvbnNlEisKCHRyYW5zZmVyGAEgASgLMg8uc3BhcmsuVHJhbnNmZXJSCHRyYW5zZmVyEkkKD3NpZ25pbmdfcmVzdWx0cxgCIAMoCzIgLnNwYXJrLkxlYWZSZWZ1bmRUeFNpZ25pbmdSZXN1bHRSDnNpZ25pbmdSZXN1bHRzIqACChZDb3VudGVyTGVhZlN3YXBSZXF1ZXN0EjcKCHRyYW5zZmVyGAEgASgLMhsuc3BhcmsuU3RhcnRUcmFuc2ZlclJlcXVlc3RSCHRyYW5zZmVyEhcKB3N3YXBfaWQYAiABKAlSBnN3YXBJZBIsChJhZGFwdG9yX3B1YmxpY19rZXkYAyABKAxSEGFkYXB0b3JQdWJsaWNLZXkSOQoZZGlyZWN0X2FkYXB0b3JfcHVibGljX2tleRgEIAEoDFIWZGlyZWN0QWRhcHRvclB1YmxpY0tleRJLCiNkaXJlY3RfZnJvbV9jcGZwX2FkYXB0b3JfcHVibGljX2tleRgFIAEoDFIeZGlyZWN0RnJvbUNwZnBBZGFwdG9yUHVibGljS2V5IpEBChdDb3VudGVyTGVhZlN3YXBSZXNwb25zZRIrCgh0cmFuc2ZlchgBIAEoCzIPLnNwYXJrLlRyYW5zZmVyUgh0cmFuc2ZlchJJCg9zaWduaW5nX3Jlc3VsdHMYAiADKAsyIC5zcGFyay5MZWFmUmVmdW5kVHhTaWduaW5nUmVzdWx0Ug5zaWduaW5nUmVzdWx0cyKiAQoWUmVmcmVzaFRpbWVsb2NrUmVxdWVzdBIXCgdsZWFmX2lkGAEgASgJUgZsZWFmSWQSOQoZb3duZXJfaWRlbnRpdHlfcHVibGljX2tleRgCIAEoDFIWb3duZXJJZGVudGl0eVB1YmxpY0tleRI0CgxzaWduaW5nX2pvYnMYAyADKAsyES5zcGFyay5TaWduaW5nSm9iUgtzaWduaW5nSm9icyKAAQocUmVmcmVzaFRpbWVsb2NrU2lnbmluZ1Jlc3VsdBI7Cg5zaWduaW5nX3Jlc3VsdBgBIAEoCzIULnNwYXJrLlNpZ25pbmdSZXN1bHRSDXNpZ25pbmdSZXN1bHQSIwoNdmVyaWZ5aW5nX2tleRgCIAEoDFIMdmVyaWZ5aW5nS2V5ImcKF1JlZnJlc2hUaW1lbG9ja1Jlc3BvbnNlEkwKD3NpZ25pbmdfcmVzdWx0cxgBIAMoCzIjLnNwYXJrLlJlZnJlc2hUaW1lbG9ja1NpZ25pbmdSZXN1bHRSDnNpZ25pbmdSZXN1bHRzIvYDChFFeHRlbmRMZWFmUmVxdWVzdBIXCgdsZWFmX2lkGAEgASgJUgZsZWFmSWQSOQoZb3duZXJfaWRlbnRpdHlfcHVibGljX2tleRgCIAEoDFIWb3duZXJJZGVudGl0eVB1YmxpY0tleRJAChNub2RlX3R4X3NpZ25pbmdfam9iGAMgASgLMhEuc3BhcmsuU2lnbmluZ0pvYlIQbm9kZVR4U2lnbmluZ0pvYhJEChVyZWZ1bmRfdHhfc2lnbmluZ19qb2IYBCABKAsyES5zcGFyay5TaWduaW5nSm9iUhJyZWZ1bmRUeFNpZ25pbmdKb2ISTQoaZGlyZWN0X25vZGVfdHhfc2lnbmluZ19qb2IYBSABKAsyES5zcGFyay5TaWduaW5nSm9iUhZkaXJlY3ROb2RlVHhTaWduaW5nSm9iElEKHGRpcmVjdF9yZWZ1bmRfdHhfc2lnbmluZ19qb2IYBiABKAsyES5zcGFyay5TaWduaW5nSm9iUhhkaXJlY3RSZWZ1bmRUeFNpZ25pbmdKb2ISYwomZGlyZWN0X2Zyb21fY3BmcF9yZWZ1bmRfdHhfc2lnbmluZ19qb2IYByABKAsyES5zcGFyay5TaWduaW5nSm9iUiBkaXJlY3RGcm9tQ3BmcFJlZnVuZFR4U2lnbmluZ0pvYiJ7ChdFeHRlbmRMZWFmU2lnbmluZ1Jlc3VsdBI7Cg5zaWduaW5nX3Jlc3VsdBgBIAEoCzIULnNwYXJrLlNpZ25pbmdSZXN1bHRSDXNpZ25pbmdSZXN1bHQSIwoNdmVyaWZ5aW5nX2tleRgCIAEoDFIMdmVyaWZ5aW5nS2V5IpsEChJFeHRlbmRMZWFmUmVzcG9uc2USFwoHbGVhZl9pZBgBIAEoCVIGbGVhZklkElMKFm5vZGVfdHhfc2lnbmluZ19yZXN1bHQYAiABKAsyHi5zcGFyay5FeHRlbmRMZWFmU2lnbmluZ1Jlc3VsdFITbm9kZVR4U2lnbmluZ1Jlc3VsdBJXChhyZWZ1bmRfdHhfc2lnbmluZ19yZXN1bHQYAyABKAsyHi5zcGFyay5FeHRlbmRMZWFmU2lnbmluZ1Jlc3VsdFIVcmVmdW5kVHhTaWduaW5nUmVzdWx0EmAKHWRpcmVjdF9ub2RlX3R4X3NpZ25pbmdfcmVzdWx0GAQgASgLMh4uc3BhcmsuRXh0ZW5kTGVhZlNpZ25pbmdSZXN1bHRSGWRpcmVjdE5vZGVUeFNpZ25pbmdSZXN1bHQSZAofZGlyZWN0X3JlZnVuZF90eF9zaWduaW5nX3Jlc3VsdBgFIAEoCzIeLnNwYXJrLkV4dGVuZExlYWZTaWduaW5nUmVzdWx0UhtkaXJlY3RSZWZ1bmRUeFNpZ25pbmdSZXN1bHQSdgopZGlyZWN0X2Zyb21fY3BmcF9yZWZ1bmRfdHhfc2lnbmluZ19yZXN1bHQYBiABKAsyHi5zcGFyay5FeHRlbmRMZWFmU2lnbmluZ1Jlc3VsdFIjZGlyZWN0RnJvbUNwZnBSZWZ1bmRUeFNpZ25pbmdSZXN1bHQicwoSQWRkcmVzc1JlcXVlc3ROb2RlEiYKD3VzZXJfcHVibGljX2tleRgBIAEoDFINdXNlclB1YmxpY0tleRI1CghjaGlsZHJlbhgCIAMoCzIZLnNwYXJrLkFkZHJlc3NSZXF1ZXN0Tm9kZVIIY2hpbGRyZW4igwIKGVByZXBhcmVUcmVlQWRkcmVzc1JlcXVlc3QSQQoScGFyZW50X25vZGVfb3V0cHV0GAEgASgLMhEuc3BhcmsuTm9kZU91dHB1dEgAUhBwYXJlbnROb2RlT3V0cHV0EjEKDW9uX2NoYWluX3V0eG8YAiABKAsyCy5zcGFyay5VVFhPSABSC29uQ2hhaW5VdHhvEi0KBG5vZGUYAyABKAsyGS5zcGFyay5BZGRyZXNzUmVxdWVzdE5vZGVSBG5vZGUSNwoYdXNlcl9pZGVudGl0eV9wdWJsaWNfa2V5GAQgASgMUhV1c2VySWRlbnRpdHlQdWJsaWNLZXlCCAoGc291cmNlImcKC0FkZHJlc3NOb2RlEigKB2FkZHJlc3MYASABKAsyDi5zcGFyay5BZGRyZXNzUgdhZGRyZXNzEi4KCGNoaWxkcmVuGAIgAygLMhIuc3BhcmsuQWRkcmVzc05vZGVSCGNoaWxkcmVuIkQKGlByZXBhcmVUcmVlQWRkcmVzc1Jlc3BvbnNlEiYKBG5vZGUYASABKAsyEi5zcGFyay5BZGRyZXNzTm9kZVIEbm9kZSLOAwoMQ3JlYXRpb25Ob2RlEkAKE25vZGVfdHhfc2lnbmluZ19qb2IYASABKAsyES5zcGFyay5TaWduaW5nSm9iUhBub2RlVHhTaWduaW5nSm9iEkQKFXJlZnVuZF90eF9zaWduaW5nX2pvYhgCIAEoCzIRLnNwYXJrLlNpZ25pbmdKb2JSEnJlZnVuZFR4U2lnbmluZ0pvYhIvCghjaGlsZHJlbhgDIAMoCzITLnNwYXJrLkNyZWF0aW9uTm9kZVIIY2hpbGRyZW4STQoaZGlyZWN0X25vZGVfdHhfc2lnbmluZ19qb2IYBCABKAsyES5zcGFyay5TaWduaW5nSm9iUhZkaXJlY3ROb2RlVHhTaWduaW5nSm9iElEKHGRpcmVjdF9yZWZ1bmRfdHhfc2lnbmluZ19qb2IYBSABKAsyES5zcGFyay5TaWduaW5nSm9iUhhkaXJlY3RSZWZ1bmRUeFNpZ25pbmdKb2ISYwomZGlyZWN0X2Zyb21fY3BmcF9yZWZ1bmRfdHhfc2lnbmluZ19qb2IYBiABKAsyES5zcGFyay5TaWduaW5nSm9iUiBkaXJlY3RGcm9tQ3BmcFJlZnVuZFR4U2lnbmluZ0pvYiL1AQoRQ3JlYXRlVHJlZVJlcXVlc3QSQQoScGFyZW50X25vZGVfb3V0cHV0GAEgASgLMhEuc3BhcmsuTm9kZU91dHB1dEgAUhBwYXJlbnROb2RlT3V0cHV0EjEKDW9uX2NoYWluX3V0eG8YAiABKAsyCy5zcGFyay5VVFhPSABSC29uQ2hhaW5VdHhvEicKBG5vZGUYAyABKAsyEy5zcGFyay5DcmVhdGlvbk5vZGVSBG5vZGUSNwoYdXNlcl9pZGVudGl0eV9wdWJsaWNfa2V5GAQgASgMUhV1c2VySWRlbnRpdHlQdWJsaWNLZXlCCAoGc291cmNlIqQEChRDcmVhdGlvblJlc3BvbnNlTm9kZRIXCgdub2RlX2lkGAEgASgJUgZub2RlSWQSSQoWbm9kZV90eF9zaWduaW5nX3Jlc3VsdBgCIAEoCzIULnNwYXJrLlNpZ25pbmdSZXN1bHRSE25vZGVUeFNpZ25pbmdSZXN1bHQSTQoYcmVmdW5kX3R4X3NpZ25pbmdfcmVzdWx0GAMgASgLMhQuc3BhcmsuU2lnbmluZ1Jlc3VsdFIVcmVmdW5kVHhTaWduaW5nUmVzdWx0EjcKCGNoaWxkcmVuGAQgAygLMhsuc3BhcmsuQ3JlYXRpb25SZXNwb25zZU5vZGVSCGNoaWxkcmVuElYKHWRpcmVjdF9ub2RlX3R4X3NpZ25pbmdfcmVzdWx0GAUgASgLMhQuc3BhcmsuU2lnbmluZ1Jlc3VsdFIZZGlyZWN0Tm9kZVR4U2lnbmluZ1Jlc3VsdBJaCh9kaXJlY3RfcmVmdW5kX3R4X3NpZ25pbmdfcmVzdWx0GAYgASgLMhQuc3BhcmsuU2lnbmluZ1Jlc3VsdFIbZGlyZWN0UmVmdW5kVHhTaWduaW5nUmVzdWx0EmwKKWRpcmVjdF9mcm9tX2NwZnBfcmVmdW5kX3R4X3NpZ25pbmdfcmVzdWx0GAcgASgLMhQuc3BhcmsuU2lnbmluZ1Jlc3VsdFIjZGlyZWN0RnJvbUNwZnBSZWZ1bmRUeFNpZ25pbmdSZXN1bHQiRQoSQ3JlYXRlVHJlZVJlc3BvbnNlEi8KBG5vZGUYASABKAsyGy5zcGFyay5DcmVhdGlvblJlc3BvbnNlTm9kZVIEbm9kZSKEAQoTU2lnbmluZ09wZXJhdG9ySW5mbxIUCgVpbmRleBgBIAEoBFIFaW5kZXgSHgoKaWRlbnRpZmllchgCIAEoCVIKaWRlbnRpZmllchIdCgpwdWJsaWNfa2V5GAMgASgMUglwdWJsaWNLZXkSGAoHYWRkcmVzcxgEIAEoCVIHYWRkcmVzcyLrAQoeR2V0U2lnbmluZ09wZXJhdG9yTGlzdFJlc3BvbnNlEmgKEXNpZ25pbmdfb3BlcmF0b3JzGAEgAygLMjsuc3BhcmsuR2V0U2lnbmluZ09wZXJhdG9yTGlzdFJlc3BvbnNlLlNpZ25pbmdPcGVyYXRvcnNFbnRyeVIQc2lnbmluZ09wZXJhdG9ycxpfChVTaWduaW5nT3BlcmF0b3JzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSMAoFdmFsdWUYAiABKAsyGi5zcGFyay5TaWduaW5nT3BlcmF0b3JJbmZvUgV2YWx1ZToCOAEicgodUXVlcnlVc2VyU2lnbmVkUmVmdW5kc1JlcXVlc3QSIQoMcGF5bWVudF9oYXNoGAEgASgMUgtwYXltZW50SGFzaBIuChNpZGVudGl0eV9wdWJsaWNfa2V5GAIgASgMUhFpZGVudGl0eVB1YmxpY0tleSJpCh5RdWVyeVVzZXJTaWduZWRSZWZ1bmRzUmVzcG9uc2USRwoTdXNlcl9zaWduZWRfcmVmdW5kcxgBIAMoCzIXLnNwYXJrLlVzZXJTaWduZWRSZWZ1bmRSEXVzZXJTaWduZWRSZWZ1bmRzIocBChZQcm92aWRlUHJlaW1hZ2VSZXF1ZXN0EiEKDHBheW1lbnRfaGFzaBgBIAEoDFILcGF5bWVudEhhc2gSGgoIcHJlaW1hZ2UYAiABKAxSCHByZWltYWdlEi4KE2lkZW50aXR5X3B1YmxpY19rZXkYAyABKAxSEWlkZW50aXR5UHVibGljS2V5IkYKF1Byb3ZpZGVQcmVpbWFnZVJlc3BvbnNlEisKCHRyYW5zZmVyGAEgASgLMg8uc3BhcmsuVHJhbnNmZXJSCHRyYW5zZmVyInsKHVJldHVybkxpZ2h0bmluZ1BheW1lbnRSZXF1ZXN0EiEKDHBheW1lbnRfaGFzaBgBIAEoDFILcGF5bWVudEhhc2gSNwoYdXNlcl9pZGVudGl0eV9wdWJsaWNfa2V5GAIgASgMUhV1c2VySWRlbnRpdHlQdWJsaWNLZXkiKAoLVHJlZU5vZGVJZHMSGQoIbm9kZV9pZHMYASADKAlSB25vZGVJZHMihQIKEVF1ZXJ5Tm9kZXNSZXF1ZXN0EjQKFW93bmVyX2lkZW50aXR5X3B1YmtleRgBIAEoDEgAUhNvd25lcklkZW50aXR5UHVia2V5Ei8KCG5vZGVfaWRzGAIgASgLMhIuc3BhcmsuVHJlZU5vZGVJZHNIAFIHbm9kZUlkcxInCg9pbmNsdWRlX3BhcmVudHMYAyABKAhSDmluY2x1ZGVQYXJlbnRzEhQKBWxpbWl0GAQgASgDUgVsaW1pdBIWCgZvZmZzZXQYBSABKANSBm9mZnNldBIoCgduZXR3b3JrGAYgASgOMg4uc3BhcmsuTmV0d29ya1IHbmV0d29ya0IICgZzb3VyY2UiswEKElF1ZXJ5Tm9kZXNSZXNwb25zZRI6CgVub2RlcxgBIAMoCzIkLnNwYXJrLlF1ZXJ5Tm9kZXNSZXNwb25zZS5Ob2Rlc0VudHJ5UgVub2RlcxIWCgZvZmZzZXQYAiABKANSBm9mZnNldBpJCgpOb2Rlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EiUKBXZhbHVlGAIgASgLMg8uc3BhcmsuVHJlZU5vZGVSBXZhbHVlOgI4ASJ1ChVDYW5jZWxUcmFuc2ZlclJlcXVlc3QSHwoLdHJhbnNmZXJfaWQYASABKAlSCnRyYW5zZmVySWQSOwoac2VuZGVyX2lkZW50aXR5X3B1YmxpY19rZXkYAiABKAxSF3NlbmRlcklkZW50aXR5UHVibGljS2V5IkUKFkNhbmNlbFRyYW5zZmVyUmVzcG9uc2USKwoIdHJhbnNmZXIYASABKAsyDy5zcGFyay5UcmFuc2ZlclIIdHJhbnNmZXIirAEKIlF1ZXJ5VW51c2VkRGVwb3NpdEFkZHJlc3Nlc1JlcXVlc3QSLgoTaWRlbnRpdHlfcHVibGljX2tleRgBIAEoDFIRaWRlbnRpdHlQdWJsaWNLZXkSKAoHbmV0d29yaxgCIAEoDjIOLnNwYXJrLk5ldHdvcmtSB25ldHdvcmsSFAoFbGltaXQYAyABKANSBWxpbWl0EhYKBm9mZnNldBgEIAEoA1IGb2Zmc2V0Iu4BCiJRdWVyeVN0YXRpY0RlcG9zaXRBZGRyZXNzZXNSZXF1ZXN0Ei4KE2lkZW50aXR5X3B1YmxpY19rZXkYASABKAxSEWlkZW50aXR5UHVibGljS2V5EigKB25ldHdvcmsYAiABKA4yDi5zcGFyay5OZXR3b3JrUgduZXR3b3JrEhQKBWxpbWl0GAQgASgDUgVsaW1pdBIWCgZvZmZzZXQYBSABKANSBm9mZnNldBIsCg9kZXBvc2l0X2FkZHJlc3MYBiABKAlIAFIOZGVwb3NpdEFkZHJlc3OIAQFCEgoQX2RlcG9zaXRfYWRkcmVzcyLhAQoZRGVwb3NpdEFkZHJlc3NRdWVyeVJlc3VsdBInCg9kZXBvc2l0X2FkZHJlc3MYASABKAlSDmRlcG9zaXRBZGRyZXNzEjUKF3VzZXJfc2lnbmluZ19wdWJsaWNfa2V5GAIgASgMUhR1c2VyU2lnbmluZ1B1YmxpY0tleRIwChR2ZXJpZnlpbmdfcHVibGljX2tleRgDIAEoDFISdmVyaWZ5aW5nUHVibGljS2V5EiYKB2xlYWZfaWQYBCABKAlCCPpCBXIDsAEBSABSBmxlYWZJZIgBAUIKCghfbGVhZl9pZCKMAQojUXVlcnlVbnVzZWREZXBvc2l0QWRkcmVzc2VzUmVzcG9uc2USTQoRZGVwb3NpdF9hZGRyZXNzZXMYASADKAsyIC5zcGFyay5EZXBvc2l0QWRkcmVzc1F1ZXJ5UmVzdWx0UhBkZXBvc2l0QWRkcmVzc2VzEhYKBm9mZnNldBgCIAEoA1IGb2Zmc2V0InQKI1F1ZXJ5U3RhdGljRGVwb3NpdEFkZHJlc3Nlc1Jlc3BvbnNlEk0KEWRlcG9zaXRfYWRkcmVzc2VzGAEgAygLMiAuc3BhcmsuRGVwb3NpdEFkZHJlc3NRdWVyeVJlc3VsdFIQZGVwb3NpdEFkZHJlc3NlcyJvChNRdWVyeUJhbGFuY2VSZXF1ZXN0Ei4KE2lkZW50aXR5X3B1YmxpY19rZXkYASABKAxSEWlkZW50aXR5UHVibGljS2V5EigKB25ldHdvcmsYAiABKA4yDi5zcGFyay5OZXR3b3JrUgduZXR3b3JrIsUBChRRdWVyeUJhbGFuY2VSZXNwb25zZRIYCgdiYWxhbmNlGAEgASgEUgdiYWxhbmNlElIKDW5vZGVfYmFsYW5jZXMYAiADKAsyLS5zcGFyay5RdWVyeUJhbGFuY2VSZXNwb25zZS5Ob2RlQmFsYW5jZXNFbnRyeVIMbm9kZUJhbGFuY2VzGj8KEU5vZGVCYWxhbmNlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgEUgV2YWx1ZToCOAEixQEKDFNwYXJrQWRkcmVzcxIuChNpZGVudGl0eV9wdWJsaWNfa2V5GAEgASgMUhFpZGVudGl0eVB1YmxpY0tleRJLChRzcGFya19pbnZvaWNlX2ZpZWxkcxgCIAEoCzIZLnNwYXJrLlNwYXJrSW52b2ljZUZpZWxkc1ISc3BhcmtJbnZvaWNlRmllbGRzEioKCXNpZ25hdHVyZRgDIAEoDEIH+kIEegJoQEgAUglzaWduYXR1cmWIAQFCDAoKX3NpZ25hdHVyZSKcAwoSU3BhcmtJbnZvaWNlRmllbGRzEhgKB3ZlcnNpb24YASABKA1SB3ZlcnNpb24SFwoCaWQYAiABKAxCB/pCBHoCaBBSAmlkEj0KDnRva2Vuc19wYXltZW50GAMgASgLMhQuc3BhcmsuVG9rZW5zUGF5bWVudEgAUg10b2tlbnNQYXltZW50EjcKDHNhdHNfcGF5bWVudBgEIAEoCzISLnNwYXJrLlNhdHNQYXltZW50SABSC3NhdHNQYXltZW50EiAKBG1lbW8YBSABKAlCB/pCBHICKHhIAVIEbWVtb4gBARI4ChFzZW5kZXJfcHVibGljX2tleRgGIAEoDEIH+kIEegJoIUgCUg9zZW5kZXJQdWJsaWNLZXmIAQESQAoLZXhwaXJ5X3RpbWUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSANSCmV4cGlyeVRpbWWIAQFCDgoMcGF5bWVudF90eXBlQgcKBV9tZW1vQhQKEl9zZW5kZXJfcHVibGljX2tleUIOCgxfZXhwaXJ5X3RpbWUiNQoLU2F0c1BheW1lbnQSGwoGYW1vdW50GAEgASgESABSBmFtb3VudIgBAUIJCgdfYW1vdW50Io4BCg1Ub2tlbnNQYXltZW50EjcKEHRva2VuX2lkZW50aWZpZXIYASABKAxCB/pCBHoCaCBIAFIPdG9rZW5JZGVudGlmaWVyiAEBEiQKBmFtb3VudBgCIAEoDEIH+kIEegIYEEgBUgZhbW91bnSIAQFCEwoRX3Rva2VuX2lkZW50aWZpZXJCCQoHX2Ftb3VudCLGAQomSW5pdGlhdGVTdGF0aWNEZXBvc2l0VXR4b1JlZnVuZFJlcXVlc3QSLwoNb25fY2hhaW5fdXR4bxgBIAEoCzILLnNwYXJrLlVUWE9SC29uQ2hhaW5VdHhvEkQKFXJlZnVuZF90eF9zaWduaW5nX2pvYhgDIAEoCzIRLnNwYXJrLlNpZ25pbmdKb2JSEnJlZnVuZFR4U2lnbmluZ0pvYhIlCg51c2VyX3NpZ25hdHVyZRgEIAEoDFINdXNlclNpZ25hdHVyZSLDAQonSW5pdGlhdGVTdGF0aWNEZXBvc2l0VXR4b1JlZnVuZFJlc3BvbnNlEk0KGHJlZnVuZF90eF9zaWduaW5nX3Jlc3VsdBgBIAEoCzIULnNwYXJrLlNpZ25pbmdSZXN1bHRSFXJlZnVuZFR4U2lnbmluZ1Jlc3VsdBJJCg9kZXBvc2l0X2FkZHJlc3MYAiABKAsyIC5zcGFyay5EZXBvc2l0QWRkcmVzc1F1ZXJ5UmVzdWx0Ug5kZXBvc2l0QWRkcmVzcyKwAwoXSW5pdGlhdGVVdHhvU3dhcFJlcXVlc3QSLwoNb25fY2hhaW5fdXR4bxgBIAEoCzILLnNwYXJrLlVUWE9SC29uQ2hhaW5VdHhvEj0KDHJlcXVlc3RfdHlwZRgCIAEoDjIaLnNwYXJrLlV0eG9Td2FwUmVxdWVzdFR5cGVSC3JlcXVlc3RUeXBlEi4KEmNyZWRpdF9hbW91bnRfc2F0cxgDIAEoBEgAUhBjcmVkaXRBbW91bnRTYXRzEiIKDG1heF9mZWVfc2F0cxgEIAEoBEgAUgptYXhGZWVTYXRzEiMKDXNzcF9zaWduYXR1cmUYBSABKAxSDHNzcFNpZ25hdHVyZRIlCg51c2VyX3NpZ25hdHVyZRgGIAEoDFINdXNlclNpZ25hdHVyZRI3Cgh0cmFuc2ZlchgHIAEoCzIbLnNwYXJrLlN0YXJ0VHJhbnNmZXJSZXF1ZXN0Ugh0cmFuc2ZlchJCChRzcGVuZF90eF9zaWduaW5nX2pvYhgIIAEoCzIRLnNwYXJrLlNpZ25pbmdKb2JSEXNwZW5kVHhTaWduaW5nSm9iQggKBmFtb3VudCLfAQoYSW5pdGlhdGVVdHhvU3dhcFJlc3BvbnNlEksKF3NwZW5kX3R4X3NpZ25pbmdfcmVzdWx0GAEgASgLMhQuc3BhcmsuU2lnbmluZ1Jlc3VsdFIUc3BlbmRUeFNpZ25pbmdSZXN1bHQSKwoIdHJhbnNmZXIYAiABKAsyDy5zcGFyay5UcmFuc2ZlclIIdHJhbnNmZXISSQoPZGVwb3NpdF9hZGRyZXNzGAMgASgLMiAuc3BhcmsuRGVwb3NpdEFkZHJlc3NRdWVyeVJlc3VsdFIOZGVwb3NpdEFkZHJlc3MiiwEKC0V4aXRpbmdUcmVlEhcKB3RyZWVfaWQYASABKAlSBnRyZWVJZBJRChd1c2VyX3NpZ25pbmdfY29tbWl0bWVudBgCIAEoCzIZLmNvbW1vbi5TaWduaW5nQ29tbWl0bWVudFIVdXNlclNpZ25pbmdDb21taXRtZW50EhAKA3ZpbhgDIAEoDVIDdmluIpwBCh9FeGl0U2luZ2xlTm9kZVRyZWVTaWduaW5nUmVzdWx0EhcKB3RyZWVfaWQYASABKAlSBnRyZWVJZBI7Cg5zaWduaW5nX3Jlc3VsdBgCIAEoCzIULnNwYXJrLlNpZ25pbmdSZXN1bHRSDXNpZ25pbmdSZXN1bHQSIwoNdmVyaWZ5aW5nX2tleRgDIAEoDFIMdmVyaWZ5aW5nS2V5Ik0KGEJpdGNvaW5UcmFuc2FjdGlvbk91dHB1dBIUCgV2YWx1ZRgBIAEoA1IFdmFsdWUSGwoJcGtfc2NyaXB0GAIgASgMUghwa1NjcmlwdCLzAQoaRXhpdFNpbmdsZU5vZGVUcmVlc1JlcXVlc3QSOQoZb3duZXJfaWRlbnRpdHlfcHVibGljX2tleRgBIAEoDFIWb3duZXJJZGVudGl0eVB1YmxpY0tleRI3Cg1leGl0aW5nX3RyZWVzGAIgAygLMhIuc3BhcmsuRXhpdGluZ1RyZWVSDGV4aXRpbmdUcmVlcxIVCgZyYXdfdHgYAyABKAxSBXJhd1R4EkoKEHByZXZpb3VzX291dHB1dHMYBCADKAsyHy5zcGFyay5CaXRjb2luVHJhbnNhY3Rpb25PdXRwdXRSD3ByZXZpb3VzT3V0cHV0cyJuChtFeGl0U2luZ2xlTm9kZVRyZWVzUmVzcG9uc2USTwoPc2lnbmluZ19yZXN1bHRzGAEgAygLMiYuc3BhcmsuRXhpdFNpbmdsZU5vZGVUcmVlU2lnbmluZ1Jlc3VsdFIOc2lnbmluZ1Jlc3VsdHMikQEKGEludmVzdGlnYXRlTGVhdmVzUmVxdWVzdBIZCghsZWFmX2lkcxgBIAMoCVIHbGVhZklkcxI5Chlvd25lcl9pZGVudGl0eV9wdWJsaWNfa2V5GAIgASgMUhZvd25lcklkZW50aXR5UHVibGljS2V5Eh8KC3RyYW5zZmVyX2lkGAMgASgJUgp0cmFuc2ZlcklkIloKHVF1ZXJ5Tm9kZXNEaXN0cmlidXRpb25SZXF1ZXN0EjkKGW93bmVyX2lkZW50aXR5X3B1YmxpY19rZXkYASABKAxSFm93bmVySWRlbnRpdHlQdWJsaWNLZXkizwEKHlF1ZXJ5Tm9kZXNEaXN0cmlidXRpb25SZXNwb25zZRJoChFub2RlX2Rpc3RyaWJ1dGlvbhgBIAMoCzI7LnNwYXJrLlF1ZXJ5Tm9kZXNEaXN0cmlidXRpb25SZXNwb25zZS5Ob2RlRGlzdHJpYnV0aW9uRW50cnlSEG5vZGVEaXN0cmlidXRpb24aQwoVTm9kZURpc3RyaWJ1dGlvbkVudHJ5EhAKA2tleRgBIAEoBFIDa2V5EhQKBXZhbHVlGAIgASgEUgV2YWx1ZToCOAEimQEKGFF1ZXJ5Tm9kZXNCeVZhbHVlUmVxdWVzdBI5Chlvd25lcl9pZGVudGl0eV9wdWJsaWNfa2V5GAEgASgMUhZvd25lcklkZW50aXR5UHVibGljS2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZRIWCgZvZmZzZXQYAyABKANSBm9mZnNldBIUCgVsaW1pdBgEIAEoA1IFbGltaXQiwQEKGVF1ZXJ5Tm9kZXNCeVZhbHVlUmVzcG9uc2USQQoFbm9kZXMYASADKAsyKy5zcGFyay5RdWVyeU5vZGVzQnlWYWx1ZVJlc3BvbnNlLk5vZGVzRW50cnlSBW5vZGVzEhYKBm9mZnNldBgCIAEoA1IGb2Zmc2V0GkkKCk5vZGVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSJQoFdmFsdWUYAiABKAsyDy5zcGFyay5UcmVlTm9kZVIFdmFsdWU6AjgBIo0BChlHZXRVdHhvc0ZvckFkZHJlc3NSZXF1ZXN0EhgKB2FkZHJlc3MYASABKAlSB2FkZHJlc3MSFgoGb2Zmc2V0GAIgASgEUgZvZmZzZXQSFAoFbGltaXQYAyABKARSBWxpbWl0EigKB25ldHdvcmsYBCABKA4yDi5zcGFyay5OZXR3b3JrUgduZXR3b3JrIlcKGkdldFV0eG9zRm9yQWRkcmVzc1Jlc3BvbnNlEiEKBXV0eG9zGAEgAygLMgsuc3BhcmsuVVRYT1IFdXR4b3MSFgoGb2Zmc2V0GAIgASgEUgZvZmZzZXQqTQoHTmV0d29yaxIPCgtVTlNQRUNJRklFRBAAEgsKB01BSU5ORVQQARILCgdSRUdURVNUEAISCwoHVEVTVE5FVBADEgoKBlNJR05FVBAEKoYCChZUb2tlblRyYW5zYWN0aW9uU3RhdHVzEh0KGVRPS0VOX1RSQU5TQUNUSU9OX1NUQVJURUQQABIcChhUT0tFTl9UUkFOU0FDVElPTl9TSUdORUQQARIeChpUT0tFTl9UUkFOU0FDVElPTl9SRVZFQUxFRBAFEh8KG1RPS0VOX1RSQU5TQUNUSU9OX0ZJTkFMSVpFRBACEicKI1RPS0VOX1RSQU5TQUNUSU9OX1NUQVJURURfQ0FOQ0VMTEVEEAMSJgoiVE9LRU5fVFJBTlNBQ1RJT05fU0lHTkVEX0NBTkNFTExFRBAEEh0KGVRPS0VOX1RSQU5TQUNUSU9OX1VOS05PV04QCirNAwoOVHJhbnNmZXJTdGF0dXMSJAogVFJBTlNGRVJfU1RBVFVTX1NFTkRFUl9JTklUSUFURUQQABIsCihUUkFOU0ZFUl9TVEFUVVNfU0VOREVSX0tFWV9UV0VBS19QRU5ESU5HEAESJgoiVFJBTlNGRVJfU1RBVFVTX1NFTkRFUl9LRVlfVFdFQUtFRBACEigKJFRSQU5TRkVSX1NUQVRVU19SRUNFSVZFUl9LRVlfVFdFQUtFRBADEioKJlRSQU5TRkVSX1NUQVRVU19SRUNFSVZFUl9SRUZVTkRfU0lHTkVEEAQSHQoZVFJBTlNGRVJfU1RBVFVTX0NPTVBMRVRFRBAFEhsKF1RSQU5TRkVSX1NUQVRVU19FWFBJUkVEEAYSHAoYVFJBTlNGRVJfU1RBVFVTX1JFVFVSTkVEEAcSMAosVFJBTlNGRVJfU1RBVFVTX1NFTkRFUl9JTklUSUFURURfQ09PUkRJTkFUT1IQCBItCilUUkFOU0ZFUl9TVEFUVVNfUkVDRUlWRVJfS0VZX1RXRUFLX0xPQ0tFRBAJEi4KKlRSQU5TRkVSX1NUQVRVU19SRUNFSVZFUl9LRVlfVFdFQUtfQVBQTElFRBAKKnAKDFRyYW5zZmVyVHlwZRIRCg1QUkVJTUFHRV9TV0FQEAASFAoQQ09PUEVSQVRJVkVfRVhJVBABEgwKCFRSQU5TRkVSEAISDQoJVVRYT19TV0FQEAMSCAoEU1dBUBAeEhAKDENPVU5URVJfU1dBUBAoKiYKBU9yZGVyEg4KCkRFU0NFTkRJTkcQABINCglBU0NFTkRJTkcQASo4ChNVdHhvU3dhcFJlcXVlc3RUeXBlEgkKBUZpeGVkEAASCgoGTWF4RmVlEAESCgoGUmVmdW5kEAIy/iUKDFNwYXJrU2VydmljZRJpChhnZW5lcmF0ZV9kZXBvc2l0X2FkZHJlc3MSJC5zcGFyay5HZW5lcmF0ZURlcG9zaXRBZGRyZXNzUmVxdWVzdBolLnNwYXJrLkdlbmVyYXRlRGVwb3NpdEFkZHJlc3NSZXNwb25zZSIAEnAKG3N0YXJ0X2RlcG9zaXRfdHJlZV9jcmVhdGlvbhImLnNwYXJrLlN0YXJ0RGVwb3NpdFRyZWVDcmVhdGlvblJlcXVlc3QaJy5zcGFyay5TdGFydERlcG9zaXRUcmVlQ3JlYXRpb25SZXNwb25zZSIAEl0KE3N0YXJ0X3RyZWVfY3JlYXRpb24SHy5zcGFyay5TdGFydFRyZWVDcmVhdGlvblJlcXVlc3QaIC5zcGFyay5TdGFydFRyZWVDcmVhdGlvblJlc3BvbnNlIgOIAgESaQoYZmluYWxpemVfbm9kZV9zaWduYXR1cmVzEiQuc3BhcmsuRmluYWxpemVOb2RlU2lnbmF0dXJlc1JlcXVlc3QaJS5zcGFyay5GaW5hbGl6ZU5vZGVTaWduYXR1cmVzUmVzcG9uc2UiABJNCg5zdGFydF90cmFuc2ZlchIbLnNwYXJrLlN0YXJ0VHJhbnNmZXJSZXF1ZXN0Ghwuc3BhcmsuU3RhcnRUcmFuc2ZlclJlc3BvbnNlIgASWQoRZmluYWxpemVfdHJhbnNmZXISHi5zcGFyay5GaW5hbGl6ZVRyYW5zZmVyUmVxdWVzdBofLnNwYXJrLkZpbmFsaXplVHJhbnNmZXJSZXNwb25zZSIDiAIBEn8KJ2ZpbmFsaXplX3RyYW5zZmVyX3dpdGhfdHJhbnNmZXJfcGFja2FnZRIxLnNwYXJrLkZpbmFsaXplVHJhbnNmZXJXaXRoVHJhbnNmZXJQYWNrYWdlUmVxdWVzdBofLnNwYXJrLkZpbmFsaXplVHJhbnNmZXJSZXNwb25zZSIAElAKD2NhbmNlbF90cmFuc2ZlchIcLnNwYXJrLkNhbmNlbFRyYW5zZmVyUmVxdWVzdBodLnNwYXJrLkNhbmNlbFRyYW5zZmVyUmVzcG9uc2UiABJRChdxdWVyeV9wZW5kaW5nX3RyYW5zZmVycxIVLnNwYXJrLlRyYW5zZmVyRmlsdGVyGh0uc3BhcmsuUXVlcnlUcmFuc2ZlcnNSZXNwb25zZSIAEk0KE3F1ZXJ5X2FsbF90cmFuc2ZlcnMSFS5zcGFyay5UcmFuc2ZlckZpbHRlchodLnNwYXJrLlF1ZXJ5VHJhbnNmZXJzUmVzcG9uc2UiABJbChljbGFpbV90cmFuc2Zlcl90d2Vha19rZXlzEiQuc3BhcmsuQ2xhaW1UcmFuc2ZlclR3ZWFrS2V5c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiABJwChtjbGFpbV90cmFuc2Zlcl9zaWduX3JlZnVuZHMSJi5zcGFyay5DbGFpbVRyYW5zZmVyU2lnblJlZnVuZHNSZXF1ZXN0Gicuc3BhcmsuQ2xhaW1UcmFuc2ZlclNpZ25SZWZ1bmRzUmVzcG9uc2UiABJSChRzdG9yZV9wcmVpbWFnZV9zaGFyZRIgLnNwYXJrLlN0b3JlUHJlaW1hZ2VTaGFyZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiABJmChdnZXRfc2lnbmluZ19jb21taXRtZW50cxIjLnNwYXJrLkdldFNpZ25pbmdDb21taXRtZW50c1JlcXVlc3QaJC5zcGFyay5HZXRTaWduaW5nQ29tbWl0bWVudHNSZXNwb25zZSIAElMKEGNvb3BlcmF0aXZlX2V4aXQSHS5zcGFyay5Db29wZXJhdGl2ZUV4aXRSZXF1ZXN0Gh4uc3BhcmsuQ29vcGVyYXRpdmVFeGl0UmVzcG9uc2UiABJjChZpbml0aWF0ZV9wcmVpbWFnZV9zd2FwEiIuc3BhcmsuSW5pdGlhdGVQcmVpbWFnZVN3YXBSZXF1ZXN0GiMuc3BhcmsuSW5pdGlhdGVQcmVpbWFnZVN3YXBSZXNwb25zZSIAElMKEHByb3ZpZGVfcHJlaW1hZ2USHS5zcGFyay5Qcm92aWRlUHJlaW1hZ2VSZXF1ZXN0Gh4uc3BhcmsuUHJvdmlkZVByZWltYWdlUmVzcG9uc2UiABJOCg9zdGFydF9sZWFmX3N3YXASGy5zcGFyay5TdGFydFRyYW5zZmVyUmVxdWVzdBocLnNwYXJrLlN0YXJ0VHJhbnNmZXJSZXNwb25zZSIAEk8KCWxlYWZfc3dhcBIdLnNwYXJrLkNvdW50ZXJMZWFmU3dhcFJlcXVlc3QaHi5zcGFyay5Db3VudGVyTGVhZlN3YXBSZXNwb25zZSIDiAIBElQKEWNvdW50ZXJfbGVhZl9zd2FwEh0uc3BhcmsuQ291bnRlckxlYWZTd2FwUmVxdWVzdBoeLnNwYXJrLkNvdW50ZXJMZWFmU3dhcFJlc3BvbnNlIgASUwoQcmVmcmVzaF90aW1lbG9jaxIdLnNwYXJrLlJlZnJlc2hUaW1lbG9ja1JlcXVlc3QaHi5zcGFyay5SZWZyZXNoVGltZWxvY2tSZXNwb25zZSIAEkQKC2V4dGVuZF9sZWFmEhguc3BhcmsuRXh0ZW5kTGVhZlJlcXVlc3QaGS5zcGFyay5FeHRlbmRMZWFmUmVzcG9uc2UiABJcChlnZXRfc2lnbmluZ19vcGVyYXRvcl9saXN0EhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GiUuc3BhcmsuR2V0U2lnbmluZ09wZXJhdG9yTGlzdFJlc3BvbnNlIgASRAoLcXVlcnlfbm9kZXMSGC5zcGFyay5RdWVyeU5vZGVzUmVxdWVzdBoZLnNwYXJrLlF1ZXJ5Tm9kZXNSZXNwb25zZSIAEmkKGHF1ZXJ5X25vZGVzX2Rpc3RyaWJ1dGlvbhIkLnNwYXJrLlF1ZXJ5Tm9kZXNEaXN0cmlidXRpb25SZXF1ZXN0GiUuc3BhcmsuUXVlcnlOb2Rlc0Rpc3RyaWJ1dGlvblJlc3BvbnNlIgASWwoUcXVlcnlfbm9kZXNfYnlfdmFsdWUSHy5zcGFyay5RdWVyeU5vZGVzQnlWYWx1ZVJlcXVlc3QaIC5zcGFyay5RdWVyeU5vZGVzQnlWYWx1ZVJlc3BvbnNlIgASSgoNcXVlcnlfYmFsYW5jZRIaLnNwYXJrLlF1ZXJ5QmFsYW5jZVJlcXVlc3QaGy5zcGFyay5RdWVyeUJhbGFuY2VSZXNwb25zZSIAEmoKGXF1ZXJ5X3VzZXJfc2lnbmVkX3JlZnVuZHMSJC5zcGFyay5RdWVyeVVzZXJTaWduZWRSZWZ1bmRzUmVxdWVzdBolLnNwYXJrLlF1ZXJ5VXNlclNpZ25lZFJlZnVuZHNSZXNwb25zZSIAEmYKF3N0YXJ0X3Rva2VuX3RyYW5zYWN0aW9uEiMuc3BhcmsuU3RhcnRUb2tlblRyYW5zYWN0aW9uUmVxdWVzdBokLnNwYXJrLlN0YXJ0VG9rZW5UcmFuc2FjdGlvblJlc3BvbnNlIgASYwoWc2lnbl90b2tlbl90cmFuc2FjdGlvbhIiLnNwYXJrLlNpZ25Ub2tlblRyYW5zYWN0aW9uUmVxdWVzdBojLnNwYXJrLlNpZ25Ub2tlblRyYW5zYWN0aW9uUmVzcG9uc2UiABJeChpmaW5hbGl6ZV90b2tlbl90cmFuc2FjdGlvbhImLnNwYXJrLkZpbmFsaXplVG9rZW5UcmFuc2FjdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiABJKCg1mcmVlemVfdG9rZW5zEhouc3BhcmsuRnJlZXplVG9rZW5zUmVxdWVzdBobLnNwYXJrLkZyZWV6ZVRva2Vuc1Jlc3BvbnNlIgASWgoTcXVlcnlfdG9rZW5fb3V0cHV0cxIfLnNwYXJrLlF1ZXJ5VG9rZW5PdXRwdXRzUmVxdWVzdBogLnNwYXJrLlF1ZXJ5VG9rZW5PdXRwdXRzUmVzcG9uc2UiABJpChhxdWVyeV90b2tlbl90cmFuc2FjdGlvbnMSJC5zcGFyay5RdWVyeVRva2VuVHJhbnNhY3Rpb25zUmVxdWVzdBolLnNwYXJrLlF1ZXJ5VG9rZW5UcmFuc2FjdGlvbnNSZXNwb25zZSIAEloKGHJldHVybl9saWdodG5pbmdfcGF5bWVudBIkLnNwYXJrLlJldHVybkxpZ2h0bmluZ1BheW1lbnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IgASeQoecXVlcnlfdW51c2VkX2RlcG9zaXRfYWRkcmVzc2VzEikuc3BhcmsuUXVlcnlVbnVzZWREZXBvc2l0QWRkcmVzc2VzUmVxdWVzdBoqLnNwYXJrLlF1ZXJ5VW51c2VkRGVwb3NpdEFkZHJlc3Nlc1Jlc3BvbnNlIgASeQoecXVlcnlfc3RhdGljX2RlcG9zaXRfYWRkcmVzc2VzEikuc3BhcmsuUXVlcnlTdGF0aWNEZXBvc2l0QWRkcmVzc2VzUmVxdWVzdBoqLnNwYXJrLlF1ZXJ5U3RhdGljRGVwb3NpdEFkZHJlc3Nlc1Jlc3BvbnNlIgASXAoTc3Vic2NyaWJlX3RvX2V2ZW50cxIfLnNwYXJrLlN1YnNjcmliZVRvRXZlbnRzUmVxdWVzdBogLnNwYXJrLlN1YnNjcmliZVRvRXZlbnRzUmVzcG9uc2UiADABEoYBCiNpbml0aWF0ZV9zdGF0aWNfZGVwb3NpdF91dHhvX3JlZnVuZBItLnNwYXJrLkluaXRpYXRlU3RhdGljRGVwb3NpdFV0eG9SZWZ1bmRSZXF1ZXN0Gi4uc3BhcmsuSW5pdGlhdGVTdGF0aWNEZXBvc2l0VXR4b1JlZnVuZFJlc3BvbnNlIgASWgoSaW5pdGlhdGVfdXR4b19zd2FwEh4uc3BhcmsuSW5pdGlhdGVVdHhvU3dhcFJlcXVlc3QaHy5zcGFyay5Jbml0aWF0ZVV0eG9Td2FwUmVzcG9uc2UiA4gCARJhChZleGl0X3NpbmdsZV9ub2RlX3RyZWVzEiEuc3BhcmsuRXhpdFNpbmdsZU5vZGVUcmVlc1JlcXVlc3QaIi5zcGFyay5FeGl0U2luZ2xlTm9kZVRyZWVzUmVzcG9uc2UiABJWChNjb29wZXJhdGl2ZV9leGl0X3YyEh0uc3BhcmsuQ29vcGVyYXRpdmVFeGl0UmVxdWVzdBoeLnNwYXJrLkNvb3BlcmF0aXZlRXhpdFJlc3BvbnNlIgASRwoOZXh0ZW5kX2xlYWZfdjISGC5zcGFyay5FeHRlbmRMZWFmUmVxdWVzdBoZLnNwYXJrLkV4dGVuZExlYWZSZXNwb25zZSIAEnMKHmNsYWltX3RyYW5zZmVyX3NpZ25fcmVmdW5kc192MhImLnNwYXJrLkNsYWltVHJhbnNmZXJTaWduUmVmdW5kc1JlcXVlc3QaJy5zcGFyay5DbGFpbVRyYW5zZmVyU2lnblJlZnVuZHNSZXNwb25zZSIAEmwKG2ZpbmFsaXplX25vZGVfc2lnbmF0dXJlc192MhIkLnNwYXJrLkZpbmFsaXplTm9kZVNpZ25hdHVyZXNSZXF1ZXN0GiUuc3BhcmsuRmluYWxpemVOb2RlU2lnbmF0dXJlc1Jlc3BvbnNlIgASZgoZaW5pdGlhdGVfcHJlaW1hZ2Vfc3dhcF92MhIiLnNwYXJrLkluaXRpYXRlUHJlaW1hZ2VTd2FwUmVxdWVzdBojLnNwYXJrLkluaXRpYXRlUHJlaW1hZ2VTd2FwUmVzcG9uc2UiABJRChJzdGFydF9sZWFmX3N3YXBfdjISGy5zcGFyay5TdGFydFRyYW5zZmVyUmVxdWVzdBocLnNwYXJrLlN0YXJ0VHJhbnNmZXJSZXNwb25zZSIAElcKFGNvdW50ZXJfbGVhZl9zd2FwX3YyEh0uc3BhcmsuQ291bnRlckxlYWZTd2FwUmVxdWVzdBoeLnNwYXJrLkNvdW50ZXJMZWFmU3dhcFJlc3BvbnNlIgASUAoRc3RhcnRfdHJhbnNmZXJfdjISGy5zcGFyay5TdGFydFRyYW5zZmVyUmVxdWVzdBocLnNwYXJrLlN0YXJ0VHJhbnNmZXJSZXNwb25zZSIAElYKE3JlZnJlc2hfdGltZWxvY2tfdjISHS5zcGFyay5SZWZyZXNoVGltZWxvY2tSZXF1ZXN0Gh4uc3BhcmsuUmVmcmVzaFRpbWVsb2NrUmVzcG9uc2UiABJeChVnZXRfdXR4b3NfZm9yX2FkZHJlc3MSIC5zcGFyay5HZXRVdHhvc0ZvckFkZHJlc3NSZXF1ZXN0GiEuc3BhcmsuR2V0VXR4b3NGb3JBZGRyZXNzUmVzcG9uc2UiAEIsWipnaXRodWIuY29tL2xpZ2h0c3BhcmtkZXYvc3BhcmsvcHJvdG8vc3BhcmtiBnByb3RvMwrpPgoRc3BhcmtfdG9rZW4ucHJvdG8SC3NwYXJrX3Rva2VuGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvGgtzcGFyay5wcm90bxoXdmFsaWRhdGUvdmFsaWRhdGUucHJvdG8imwEKElRva2VuT3V0cHV0VG9TcGVuZBJGChtwcmV2X3Rva2VuX3RyYW5zYWN0aW9uX2hhc2gYASABKAxCB/pCBHoCaCBSGHByZXZUb2tlblRyYW5zYWN0aW9uSGFzaBI9ChtwcmV2X3Rva2VuX3RyYW5zYWN0aW9uX3ZvdXQYAiABKA1SGHByZXZUb2tlblRyYW5zYWN0aW9uVm91dCJfChJUb2tlblRyYW5zZmVySW5wdXQSSQoQb3V0cHV0c190b19zcGVuZBgBIAMoCzIfLnNwYXJrX3Rva2VuLlRva2VuT3V0cHV0VG9TcGVuZFIOb3V0cHV0c1RvU3BlbmQikwEKDlRva2VuTWludElucHV0EjMKEWlzc3Vlcl9wdWJsaWNfa2V5GAEgASgMQgf6QgR6AmghUg9pc3N1ZXJQdWJsaWNLZXkSNwoQdG9rZW5faWRlbnRpZmllchgCIAEoDEIH+kIEegJoIEgAUg90b2tlbklkZW50aWZpZXKIAQFCEwoRX3Rva2VuX2lkZW50aWZpZXIi9gIKEFRva2VuQ3JlYXRlSW5wdXQSMwoRaXNzdWVyX3B1YmxpY19rZXkYASABKAxCB/pCBHoCaCFSD2lzc3VlclB1YmxpY0tleRImCgp0b2tlbl9uYW1lGAIgASgJQgf6QgRyAhgUUgl0b2tlbk5hbWUSKgoMdG9rZW5fdGlja2VyGAMgASgJQgf6QgRyAhgGUgt0b2tlblRpY2tlchIkCghkZWNpbWFscxgEIAEoDUII+kIFKgMY/wFSCGRlY2ltYWxzEiYKCm1heF9zdXBwbHkYBSABKAxCB/pCBHoCaBBSCW1heFN1cHBseRIhCgxpc19mcmVlemFibGUYBiABKAhSC2lzRnJlZXphYmxlEkkKGmNyZWF0aW9uX2VudGl0eV9wdWJsaWNfa2V5GAcgASgMQgf6QgR6AmghSABSF2NyZWF0aW9uRW50aXR5UHVibGljS2V5iAEBQh0KG19jcmVhdGlvbl9lbnRpdHlfcHVibGljX2tleSLHBAoLVG9rZW5PdXRwdXQSHQoCaWQYASABKAlCCPpCBXIDsAEBSABSAmlkiAEBEjEKEG93bmVyX3B1YmxpY19rZXkYAiABKAxCB/pCBHoCaCFSDm93bmVyUHVibGljS2V5EkEKFXJldm9jYXRpb25fY29tbWl0bWVudBgDIAEoDEIH+kIEegJoIUgBUhRyZXZvY2F0aW9uQ29tbWl0bWVudIgBARIxChJ3aXRoZHJhd19ib25kX3NhdHMYBCABKARIAlIQd2l0aGRyYXdCb25kU2F0c4gBARJMCiB3aXRoZHJhd19yZWxhdGl2ZV9ibG9ja19sb2NrdGltZRgFIAEoBEgDUh13aXRoZHJhd1JlbGF0aXZlQmxvY2tMb2NrdGltZYgBARI2ChB0b2tlbl9wdWJsaWNfa2V5GAYgASgMQgf6QgR6AmghSARSDnRva2VuUHVibGljS2V5iAEBEjcKEHRva2VuX2lkZW50aWZpZXIYCCABKAxCB/pCBHoCaCBIBVIPdG9rZW5JZGVudGlmaWVyiAEBEioKDHRva2VuX2Ftb3VudBgHIAEoDEIH+kIEegJoEFILdG9rZW5BbW91bnRCBQoDX2lkQhgKFl9yZXZvY2F0aW9uX2NvbW1pdG1lbnRCFQoTX3dpdGhkcmF3X2JvbmRfc2F0c0IjCiFfd2l0aGRyYXdfcmVsYXRpdmVfYmxvY2tfbG9ja3RpbWVCEwoRX3Rva2VuX3B1YmxpY19rZXlCEwoRX3Rva2VuX2lkZW50aWZpZXIi6gQKEFRva2VuVHJhbnNhY3Rpb24SGAoHdmVyc2lvbhgBIAEoDVIHdmVyc2lvbhI8CgptaW50X2lucHV0GAIgASgLMhsuc3BhcmtfdG9rZW4uVG9rZW5NaW50SW5wdXRIAFIJbWludElucHV0EkgKDnRyYW5zZmVyX2lucHV0GAMgASgLMh8uc3BhcmtfdG9rZW4uVG9rZW5UcmFuc2ZlcklucHV0SABSDXRyYW5zZmVySW5wdXQSQgoMY3JlYXRlX2lucHV0GAggASgLMh0uc3BhcmtfdG9rZW4uVG9rZW5DcmVhdGVJbnB1dEgAUgtjcmVhdGVJbnB1dBI9Cg10b2tlbl9vdXRwdXRzGAQgAygLMhguc3BhcmtfdG9rZW4uVG9rZW5PdXRwdXRSDHRva2VuT3V0cHV0cxJaCiNzcGFya19vcGVyYXRvcl9pZGVudGl0eV9wdWJsaWNfa2V5cxgFIAMoDEIM+kIJkgEGIgR6AmghUh9zcGFya09wZXJhdG9ySWRlbnRpdHlQdWJsaWNLZXlzEjsKC2V4cGlyeV90aW1lGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIKZXhwaXJ5VGltZRIyCgduZXR3b3JrGAcgASgOMg4uc3BhcmsuTmV0d29ya0II+kIFggECIABSB25ldHdvcmsSVAoYY2xpZW50X2NyZWF0ZWRfdGltZXN0YW1wGAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIWY2xpZW50Q3JlYXRlZFRpbWVzdGFtcEIOCgx0b2tlbl9pbnB1dHMiXgoSU2lnbmF0dXJlV2l0aEluZGV4EicKCXNpZ25hdHVyZRgBIAEoDEIJ+kIGegQQQBhJUglzaWduYXR1cmUSHwoLaW5wdXRfaW5kZXgYAiABKA1SCmlucHV0SW5kZXgitAEKHklucHV0VHR4b1NpZ25hdHVyZXNQZXJPcGVyYXRvchJICg90dHhvX3NpZ25hdHVyZXMYASADKAsyHy5zcGFya190b2tlbi5TaWduYXR1cmVXaXRoSW5kZXhSDnR0eG9TaWduYXR1cmVzEkgKHG9wZXJhdG9yX2lkZW50aXR5X3B1YmxpY19rZXkYAiABKAxCB/pCBHoCaCFSGW9wZXJhdG9ySWRlbnRpdHlQdWJsaWNLZXki8gIKF1N0YXJ0VHJhbnNhY3Rpb25SZXF1ZXN0EjcKE2lkZW50aXR5X3B1YmxpY19rZXkYASABKAxCB/pCBHoCaCFSEWlkZW50aXR5UHVibGljS2V5ElkKGXBhcnRpYWxfdG9rZW5fdHJhbnNhY3Rpb24YAiABKAsyHS5zcGFya190b2tlbi5Ub2tlblRyYW5zYWN0aW9uUhdwYXJ0aWFsVG9rZW5UcmFuc2FjdGlvbhJ7CipwYXJ0aWFsX3Rva2VuX3RyYW5zYWN0aW9uX293bmVyX3NpZ25hdHVyZXMYAyADKAsyHy5zcGFya190b2tlbi5TaWduYXR1cmVXaXRoSW5kZXhSJnBhcnRpYWxUb2tlblRyYW5zYWN0aW9uT3duZXJTaWduYXR1cmVzEkYKGXZhbGlkaXR5X2R1cmF0aW9uX3NlY29uZHMYBCABKARCCvpCBzIFGKwCKAFSF3ZhbGlkaXR5RHVyYXRpb25TZWNvbmRzIq4BChhTdGFydFRyYW5zYWN0aW9uUmVzcG9uc2USVQoXZmluYWxfdG9rZW5fdHJhbnNhY3Rpb24YASABKAsyHS5zcGFya190b2tlbi5Ub2tlblRyYW5zYWN0aW9uUhVmaW5hbFRva2VuVHJhbnNhY3Rpb24SOwoNa2V5c2hhcmVfaW5mbxgCIAEoCzIWLnNwYXJrLlNpZ25pbmdLZXlzaGFyZVIMa2V5c2hhcmVJbmZvIvgCChhDb21taXRUcmFuc2FjdGlvblJlcXVlc3QSVQoXZmluYWxfdG9rZW5fdHJhbnNhY3Rpb24YASABKAsyHS5zcGFya190b2tlbi5Ub2tlblRyYW5zYWN0aW9uUhVmaW5hbFRva2VuVHJhbnNhY3Rpb24SSAocZmluYWxfdG9rZW5fdHJhbnNhY3Rpb25faGFzaBgCIAEoDEIH+kIEegJoIFIZZmluYWxUb2tlblRyYW5zYWN0aW9uSGFzaBJ3CiJpbnB1dF90dHhvX3NpZ25hdHVyZXNfcGVyX29wZXJhdG9yGAMgAygLMisuc3BhcmtfdG9rZW4uSW5wdXRUdHhvU2lnbmF0dXJlc1Blck9wZXJhdG9yUh5pbnB1dFR0eG9TaWduYXR1cmVzUGVyT3BlcmF0b3ISQgoZb3duZXJfaWRlbnRpdHlfcHVibGljX2tleRgEIAEoDEIH+kIEegJoIVIWb3duZXJJZGVudGl0eVB1YmxpY0tleSK6AQoOQ29tbWl0UHJvZ3Jlc3MSUQoeY29tbWl0dGVkX29wZXJhdG9yX3B1YmxpY19rZXlzGAEgAygMQgz6QgmSAQYiBHoCaCFSG2NvbW1pdHRlZE9wZXJhdG9yUHVibGljS2V5cxJVCiB1bmNvbW1pdHRlZF9vcGVyYXRvcl9wdWJsaWNfa2V5cxgCIAMoDEIM+kIJkgEGIgR6AmghUh11bmNvbW1pdHRlZE9wZXJhdG9yUHVibGljS2V5cyKhAQoZQ29tbWl0VHJhbnNhY3Rpb25SZXNwb25zZRI+Cg1jb21taXRfc3RhdHVzGAEgASgOMhkuc3BhcmtfdG9rZW4uQ29tbWl0U3RhdHVzUgxjb21taXRTdGF0dXMSRAoPY29tbWl0X3Byb2dyZXNzGAIgASgLMhsuc3BhcmtfdG9rZW4uQ29tbWl0UHJvZ3Jlc3NSDmNvbW1pdFByb2dyZXNzIpIBChlRdWVyeVRva2VuTWV0YWRhdGFSZXF1ZXN0EjkKEXRva2VuX2lkZW50aWZpZXJzGAEgAygMQgz6QgmSAQYiBHoCaCBSEHRva2VuSWRlbnRpZmllcnMSOgoSaXNzdWVyX3B1YmxpY19rZXlzGAIgAygMQgz6QgmSAQYiBHoCaCFSEGlzc3VlclB1YmxpY0tleXMiqwMKDVRva2VuTWV0YWRhdGESMwoRaXNzdWVyX3B1YmxpY19rZXkYASABKAxCB/pCBHoCaCFSD2lzc3VlclB1YmxpY0tleRIoCgp0b2tlbl9uYW1lGAIgASgJQgn6QgZyBBADGBRSCXRva2VuTmFtZRIsCgx0b2tlbl90aWNrZXIYAyABKAlCCfpCBnIEEAMYBlILdG9rZW5UaWNrZXISJAoIZGVjaW1hbHMYBCABKA1CCPpCBSoDGP8BUghkZWNpbWFscxImCgptYXhfc3VwcGx5GAUgASgMQgf6QgR6AmgQUgltYXhTdXBwbHkSIQoMaXNfZnJlZXphYmxlGAYgASgIUgtpc0ZyZWV6YWJsZRJJChpjcmVhdGlvbl9lbnRpdHlfcHVibGljX2tleRgHIAEoDEIH+kIEegJoIUgAUhdjcmVhdGlvbkVudGl0eVB1YmxpY0tleYgBARIyChB0b2tlbl9pZGVudGlmaWVyGAggASgMQgf6QgR6AmggUg90b2tlbklkZW50aWZpZXJCHQobX2NyZWF0aW9uX2VudGl0eV9wdWJsaWNfa2V5Il8KGlF1ZXJ5VG9rZW5NZXRhZGF0YVJlc3BvbnNlEkEKDnRva2VuX21ldGFkYXRhGAEgAygLMhouc3BhcmtfdG9rZW4uVG9rZW5NZXRhZGF0YVINdG9rZW5NZXRhZGF0YSL1AQoYUXVlcnlUb2tlbk91dHB1dHNSZXF1ZXN0EjgKEW93bmVyX3B1YmxpY19rZXlzGAEgAygMQgz6QgmSAQYiBHoCaCFSD293bmVyUHVibGljS2V5cxI6ChJpc3N1ZXJfcHVibGljX2tleXMYAiADKAxCDPpCCZIBBiIEegJoIVIQaXNzdWVyUHVibGljS2V5cxI5ChF0b2tlbl9pZGVudGlmaWVycxgEIAMoDEIM+kIJkgEGIgR6AmggUhB0b2tlbklkZW50aWZpZXJzEigKB25ldHdvcmsYAyABKA4yDi5zcGFyay5OZXR3b3JrUgduZXR3b3JrIvQCCh1RdWVyeVRva2VuVHJhbnNhY3Rpb25zUmVxdWVzdBIsCgpvdXRwdXRfaWRzGAEgAygJQg36QgqSAQciBXIDsAEBUglvdXRwdXRJZHMSOAoRb3duZXJfcHVibGljX2tleXMYAiADKAxCDPpCCZIBBiIEegJoIVIPb3duZXJQdWJsaWNLZXlzEjoKEmlzc3Vlcl9wdWJsaWNfa2V5cxgDIAMoDEIM+kIJkgEGIgR6AmghUhBpc3N1ZXJQdWJsaWNLZXlzEjkKEXRva2VuX2lkZW50aWZpZXJzGAcgAygMQgz6QgmSAQYiBHoCaCBSEHRva2VuSWRlbnRpZmllcnMSRgoYdG9rZW5fdHJhbnNhY3Rpb25faGFzaGVzGAQgAygMQgz6QgmSAQYiBHoCaCBSFnRva2VuVHJhbnNhY3Rpb25IYXNoZXMSFAoFbGltaXQYBSABKANSBWxpbWl0EhYKBm9mZnNldBgGIAEoA1IGb2Zmc2V0IqYBCh5RdWVyeVRva2VuVHJhbnNhY3Rpb25zUmVzcG9uc2USbAoedG9rZW5fdHJhbnNhY3Rpb25zX3dpdGhfc3RhdHVzGAEgAygLMicuc3BhcmtfdG9rZW4uVG9rZW5UcmFuc2FjdGlvbldpdGhTdGF0dXNSG3Rva2VuVHJhbnNhY3Rpb25zV2l0aFN0YXR1cxIWCgZvZmZzZXQYAiABKANSBm9mZnNldCLWAQohT3V0cHV0V2l0aFByZXZpb3VzVHJhbnNhY3Rpb25EYXRhEjAKBm91dHB1dBgBIAEoCzIYLnNwYXJrX3Rva2VuLlRva2VuT3V0cHV0UgZvdXRwdXQSQwoZcHJldmlvdXNfdHJhbnNhY3Rpb25faGFzaBgCIAEoDEIH+kIEegJoIFIXcHJldmlvdXNUcmFuc2FjdGlvbkhhc2gSOgoZcHJldmlvdXNfdHJhbnNhY3Rpb25fdm91dBgDIAEoDVIXcHJldmlvdXNUcmFuc2FjdGlvblZvdXQioAEKGVF1ZXJ5VG9rZW5PdXRwdXRzUmVzcG9uc2USggEKJm91dHB1dHNfd2l0aF9wcmV2aW91c190cmFuc2FjdGlvbl9kYXRhGAEgAygLMi4uc3BhcmtfdG9rZW4uT3V0cHV0V2l0aFByZXZpb3VzVHJhbnNhY3Rpb25EYXRhUiJvdXRwdXRzV2l0aFByZXZpb3VzVHJhbnNhY3Rpb25EYXRhImQKGFNwZW50VG9rZW5PdXRwdXRNZXRhZGF0YRIbCglvdXRwdXRfaWQYASABKAlSCG91dHB1dElkEisKEXJldm9jYXRpb25fc2VjcmV0GAIgASgMUhByZXZvY2F0aW9uU2VjcmV0Io4BCiRUb2tlblRyYW5zYWN0aW9uQ29uZmlybWF0aW9uTWV0YWRhdGESZgocc3BlbnRfdG9rZW5fb3V0cHV0c19tZXRhZGF0YRgBIAMoCzIlLnNwYXJrX3Rva2VuLlNwZW50VG9rZW5PdXRwdXRNZXRhZGF0YVIZc3BlbnRUb2tlbk91dHB1dHNNZXRhZGF0YSLMAgoaVG9rZW5UcmFuc2FjdGlvbldpdGhTdGF0dXMSSgoRdG9rZW5fdHJhbnNhY3Rpb24YASABKAsyHS5zcGFya190b2tlbi5Ub2tlblRyYW5zYWN0aW9uUhB0b2tlblRyYW5zYWN0aW9uEjsKBnN0YXR1cxgCIAEoDjIjLnNwYXJrX3Rva2VuLlRva2VuVHJhbnNhY3Rpb25TdGF0dXNSBnN0YXR1cxJmChVjb25maXJtYXRpb25fbWV0YWRhdGEYAyABKAsyMS5zcGFya190b2tlbi5Ub2tlblRyYW5zYWN0aW9uQ29uZmlybWF0aW9uTWV0YWRhdGFSFGNvbmZpcm1hdGlvbk1ldGFkYXRhEj0KFnRva2VuX3RyYW5zYWN0aW9uX2hhc2gYBCABKAxCB/pCBHoCaCBSFHRva2VuVHJhbnNhY3Rpb25IYXNoIqwDChNGcmVlemVUb2tlbnNQYXlsb2FkEhgKB3ZlcnNpb24YASABKA1SB3ZlcnNpb24SMQoQb3duZXJfcHVibGljX2tleRgCIAEoDEIH+kIEegJoIVIOb3duZXJQdWJsaWNLZXkSNgoQdG9rZW5fcHVibGljX2tleRgDIAEoDEIH+kIEegJoIUgAUg50b2tlblB1YmxpY0tleYgBARI3ChB0b2tlbl9pZGVudGlmaWVyGAQgASgMQgf6QgR6AmggSAFSD3Rva2VuSWRlbnRpZmllcogBARI6Chlpc3N1ZXJfcHJvdmlkZWRfdGltZXN0YW1wGAUgASgEUhdpc3N1ZXJQcm92aWRlZFRpbWVzdGFtcBJIChxvcGVyYXRvcl9pZGVudGl0eV9wdWJsaWNfa2V5GAYgASgMQgf6QgR6AmghUhlvcGVyYXRvcklkZW50aXR5UHVibGljS2V5EicKD3Nob3VsZF91bmZyZWV6ZRgHIAEoCFIOc2hvdWxkVW5mcmVlemVCEwoRX3Rva2VuX3B1YmxpY19rZXlCEwoRX3Rva2VuX2lkZW50aWZpZXIioQEKE0ZyZWV6ZVRva2Vuc1JlcXVlc3QSVAoVZnJlZXplX3Rva2Vuc19wYXlsb2FkGAEgASgLMiAuc3BhcmtfdG9rZW4uRnJlZXplVG9rZW5zUGF5bG9hZFITZnJlZXplVG9rZW5zUGF5bG9hZBI0ChBpc3N1ZXJfc2lnbmF0dXJlGAIgASgMQgn6QgZ6BBBAGElSD2lzc3VlclNpZ25hdHVyZSKJAQoURnJlZXplVG9rZW5zUmVzcG9uc2USPQoTaW1wYWN0ZWRfb3V0cHV0X2lkcxgBIAMoCUIN+kIKkgEHIgVyA7ABAVIRaW1wYWN0ZWRPdXRwdXRJZHMSMgoVaW1wYWN0ZWRfdG9rZW5fYW1vdW50GAIgASgMUhNpbXBhY3RlZFRva2VuQW1vdW50KqcBChRUb2tlblRyYW5zYWN0aW9uVHlwZRImCiJUT0tFTl9UUkFOU0FDVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASIQodVE9LRU5fVFJBTlNBQ1RJT05fVFlQRV9DUkVBVEUQARIfChtUT0tFTl9UUkFOU0FDVElPTl9UWVBFX01JTlQQAhIjCh9UT0tFTl9UUkFOU0FDVElPTl9UWVBFX1RSQU5TRkVSEAMqUwoMQ29tbWl0U3RhdHVzEhYKEkNPTU1JVF9VTlNQRUNJRklFRBAAEhUKEUNPTU1JVF9QUk9DRVNTSU5HEAESFAoQQ09NTUlUX0ZJTkFMSVpFRBACKoYCChZUb2tlblRyYW5zYWN0aW9uU3RhdHVzEh0KGVRPS0VOX1RSQU5TQUNUSU9OX1NUQVJURUQQABIcChhUT0tFTl9UUkFOU0FDVElPTl9TSUdORUQQARIeChpUT0tFTl9UUkFOU0FDVElPTl9SRVZFQUxFRBAFEh8KG1RPS0VOX1RSQU5TQUNUSU9OX0ZJTkFMSVpFRBACEicKI1RPS0VOX1RSQU5TQUNUSU9OX1NUQVJURURfQ0FOQ0VMTEVEEAMSJgoiVE9LRU5fVFJBTlNBQ1RJT05fU0lHTkVEX0NBTkNFTExFRBAEEh0KGVRPS0VOX1RSQU5TQUNUSU9OX1VOS05PV04QCjKABQoRU3BhcmtUb2tlblNlcnZpY2USYgoRc3RhcnRfdHJhbnNhY3Rpb24SJC5zcGFya190b2tlbi5TdGFydFRyYW5zYWN0aW9uUmVxdWVzdBolLnNwYXJrX3Rva2VuLlN0YXJ0VHJhbnNhY3Rpb25SZXNwb25zZSIAEmUKEmNvbW1pdF90cmFuc2FjdGlvbhIlLnNwYXJrX3Rva2VuLkNvbW1pdFRyYW5zYWN0aW9uUmVxdWVzdBomLnNwYXJrX3Rva2VuLkNvbW1pdFRyYW5zYWN0aW9uUmVzcG9uc2UiABJpChRxdWVyeV90b2tlbl9tZXRhZGF0YRImLnNwYXJrX3Rva2VuLlF1ZXJ5VG9rZW5NZXRhZGF0YVJlcXVlc3QaJy5zcGFya190b2tlbi5RdWVyeVRva2VuTWV0YWRhdGFSZXNwb25zZSIAEnUKGHF1ZXJ5X3Rva2VuX3RyYW5zYWN0aW9ucxIqLnNwYXJrX3Rva2VuLlF1ZXJ5VG9rZW5UcmFuc2FjdGlvbnNSZXF1ZXN0Gisuc3BhcmtfdG9rZW4uUXVlcnlUb2tlblRyYW5zYWN0aW9uc1Jlc3BvbnNlIgASZgoTcXVlcnlfdG9rZW5fb3V0cHV0cxIlLnNwYXJrX3Rva2VuLlF1ZXJ5VG9rZW5PdXRwdXRzUmVxdWVzdBomLnNwYXJrX3Rva2VuLlF1ZXJ5VG9rZW5PdXRwdXRzUmVzcG9uc2UiABJWCg1mcmVlemVfdG9rZW5zEiAuc3BhcmtfdG9rZW4uRnJlZXplVG9rZW5zUmVxdWVzdBohLnNwYXJrX3Rva2VuLkZyZWV6ZVRva2Vuc1Jlc3BvbnNlIgBCMlowZ2l0aHViLmNvbS9saWdodHNwYXJrZGV2L3NwYXJrL3Byb3RvL3NwYXJrX3Rva2VuYgZwcm90bzMKyQgKCm1vY2sucHJvdG8SBG1vY2saG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90byJAChtDbGVhblVwUHJlaW1hZ2VTaGFyZVJlcXVlc3QSIQoMcGF5bWVudF9oYXNoGAEgASgMUgtwYXltZW50SGFzaCKqAQoYSW50ZXJydXB0VHJhbnNmZXJSZXF1ZXN0Ek4KBmFjdGlvbhgBIAEoDjI2Lm1vY2suSW50ZXJydXB0VHJhbnNmZXJSZXF1ZXN0LkludGVycnVwdFRyYW5zZmVyQWN0aW9uUgZhY3Rpb24iPgoXSW50ZXJydXB0VHJhbnNmZXJBY3Rpb24SCAoETk9ORRAAEg0KCUlOVEVSUlVQVBABEgoKBlJFU1VNRRACIk0KGFVwZGF0ZU5vZGVzU3RhdHVzUmVxdWVzdBIZCghub2RlX2lkcxgBIAMoCVIHbm9kZUlkcxIWCgZzdGF0dXMYAiABKAlSBnN0YXR1cyIxChJUcmlnZ2VyVGFza1JlcXVlc3QSGwoJdGFza19uYW1lGAEgASgJUgh0YXNrTmFtZSLTAQoYSW50ZXJydXB0Q29vcEV4aXRSZXF1ZXN0Ek4KBmFjdGlvbhgBIAEoDjI2Lm1vY2suSW50ZXJydXB0Q29vcEV4aXRSZXF1ZXN0LkludGVycnVwdENvb3BFeGl0QWN0aW9uUgZhY3Rpb24SJwoPdGFyZ2V0X29wZXJhdG9yGAIgASgJUg50YXJnZXRPcGVyYXRvciI+ChdJbnRlcnJ1cHRDb29wRXhpdEFjdGlvbhIICgROT05FEAASDQoJSU5URVJSVVBUEAESCgoGUkVTVU1FEAIymwMKC01vY2tTZXJ2aWNlElYKF2NsZWFuX3VwX3ByZWltYWdlX3NoYXJlEiEubW9jay5DbGVhblVwUHJlaW1hZ2VTaGFyZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiABJOChJpbnRlcnJ1cHRfdHJhbnNmZXISHi5tb2NrLkludGVycnVwdFRyYW5zZmVyUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIAEk8KE2ludGVycnVwdF9jb29wX2V4aXQSHi5tb2NrLkludGVycnVwdENvb3BFeGl0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIAEk8KE3VwZGF0ZV9ub2Rlc19zdGF0dXMSHi5tb2NrLlVwZGF0ZU5vZGVzU3RhdHVzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIAEkIKDHRyaWdnZXJfdGFzaxIYLm1vY2suVHJpZ2dlclRhc2tSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IgBCK1opZ2l0aHViLmNvbS9saWdodHNwYXJrZGV2L3NwYXJrL3Byb3RvL21vY2tiBnByb3RvMwrqBwoRc3BhcmtfYXV0aG4ucHJvdG8SC3NwYXJrX2F1dGhuIngKCUNoYWxsZW5nZRIYCgd2ZXJzaW9uGAEgASgFUgd2ZXJzaW9uEhwKCXRpbWVzdGFtcBgCIAEoA1IJdGltZXN0YW1wEhQKBW5vbmNlGAMgASgMUgVub25jZRIdCgpwdWJsaWNfa2V5GAQgASgMUglwdWJsaWNLZXkihQEKElByb3RlY3RlZENoYWxsZW5nZRIYCgd2ZXJzaW9uGAEgASgFUgd2ZXJzaW9uEjQKCWNoYWxsZW5nZRgCIAEoCzIWLnNwYXJrX2F1dGhuLkNoYWxsZW5nZVIJY2hhbGxlbmdlEh8KC3NlcnZlcl9obWFjGAMgASgMUgpzZXJ2ZXJIbWFjIjQKE0dldENoYWxsZW5nZVJlcXVlc3QSHQoKcHVibGljX2tleRgBIAEoDFIJcHVibGljS2V5ImgKFEdldENoYWxsZW5nZVJlc3BvbnNlElAKE3Byb3RlY3RlZF9jaGFsbGVuZ2UYASABKAsyHy5zcGFya19hdXRobi5Qcm90ZWN0ZWRDaGFsbGVuZ2VSEnByb3RlY3RlZENoYWxsZW5nZSKnAQoWVmVyaWZ5Q2hhbGxlbmdlUmVxdWVzdBJQChNwcm90ZWN0ZWRfY2hhbGxlbmdlGAEgASgLMh8uc3BhcmtfYXV0aG4uUHJvdGVjdGVkQ2hhbGxlbmdlUhJwcm90ZWN0ZWRDaGFsbGVuZ2USHAoJc2lnbmF0dXJlGAIgASgMUglzaWduYXR1cmUSHQoKcHVibGljX2tleRgDIAEoDFIJcHVibGljS2V5InEKF1ZlcmlmeUNoYWxsZW5nZVJlc3BvbnNlEiMKDXNlc3Npb25fdG9rZW4YASABKAlSDHNlc3Npb25Ub2tlbhIxChRleHBpcmF0aW9uX3RpbWVzdGFtcBgCIAEoA1ITZXhwaXJhdGlvblRpbWVzdGFtcDLMAQoRU3BhcmtBdXRoblNlcnZpY2USVgoNZ2V0X2NoYWxsZW5nZRIgLnNwYXJrX2F1dGhuLkdldENoYWxsZW5nZVJlcXVlc3QaIS5zcGFya19hdXRobi5HZXRDaGFsbGVuZ2VSZXNwb25zZSIAEl8KEHZlcmlmeV9jaGFsbGVuZ2USIy5zcGFya19hdXRobi5WZXJpZnlDaGFsbGVuZ2VSZXF1ZXN0GiQuc3BhcmtfYXV0aG4uVmVyaWZ5Q2hhbGxlbmdlUmVzcG9uc2UiAEIyWjBnaXRodWIuY29tL2xpZ2h0c3BhcmtkZXYvc3BhcmsvcHJvdG8vc3BhcmtfYXV0aG5iBnByb3RvMw==";
12
+
13
+ // Convert back to Uint8Array when needed
14
+ export function getSparkDescriptorBytes(): Uint8Array {
15
+ // Convert base64 to binary
16
+ const binaryString = atob(SPARK_DESCRIPTORS_BASE64);
17
+ const bytes = new Uint8Array(binaryString.length);
18
+ for (let i = 0; i < binaryString.length; i++) {
19
+ bytes[i] = binaryString.charCodeAt(i);
20
+ }
21
+ return bytes;
22
+ }