@novasamatech/host-papp 0.5.0-0 → 0.5.0-10

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 (184) hide show
  1. package/.papi/descriptors/dist/common-types.d.ts +8667 -0
  2. package/.papi/descriptors/dist/common.d.ts +1 -0
  3. package/.papi/descriptors/dist/descriptors-UUEW32EL.mjs +27 -0
  4. package/.papi/descriptors/dist/descriptors.d.ts +1 -0
  5. package/.papi/descriptors/dist/index.d.ts +10 -0
  6. package/.papi/descriptors/dist/index.js +237 -0
  7. package/.papi/descriptors/dist/index.mjs +148 -0
  8. package/.papi/descriptors/dist/metadataTypes-E4AQJDJR.mjs +6 -0
  9. package/.papi/descriptors/dist/metadataTypes.d.ts +2 -0
  10. package/.papi/descriptors/dist/people_lite.d.ts +7757 -0
  11. package/.papi/descriptors/dist/people_lite_metadata-EIVHV27X.mjs +6 -0
  12. package/.papi/descriptors/dist/people_lite_metadata.d.ts +2 -0
  13. package/.papi/descriptors/package.json +24 -0
  14. package/.papi/metadata/people_lite.scale +0 -0
  15. package/.papi/polkadot-api.json +15 -0
  16. package/dist/adapters/identity/rpc.d.ts +6 -4
  17. package/dist/adapters/identity/rpc.js +96 -26
  18. package/dist/adapters/identity/types.d.ts +3 -1
  19. package/dist/adapters/lazyClient/papi.js +5 -0
  20. package/dist/adapters/lazyClient/types.d.ts +1 -0
  21. package/dist/adapters/statement/rpc.js +58 -10
  22. package/dist/adapters/statement/types.d.ts +6 -3
  23. package/dist/adapters/storage/localStorage.js +26 -4
  24. package/dist/adapters/storage/memory.js +14 -4
  25. package/dist/adapters/storage/types.d.ts +5 -2
  26. package/dist/adapters/storage/types.js +1 -1
  27. package/dist/components/auth/codec.d.ts +9 -0
  28. package/dist/components/auth/codec.js +10 -0
  29. package/dist/components/auth/codecs.d.ts +9 -0
  30. package/dist/components/auth/codecs.js +10 -0
  31. package/dist/components/auth/index.d.ts +36 -0
  32. package/dist/components/auth/index.js +150 -0
  33. package/dist/components/auth/types.d.ts +15 -0
  34. package/dist/components/auth/types.js +1 -0
  35. package/dist/components/session.d.ts +34 -0
  36. package/dist/components/session.js +54 -0
  37. package/dist/components/sso/index.d.ts +36 -0
  38. package/dist/components/sso/index.js +150 -0
  39. package/dist/components/sso/scale/handshake.d.ts +9 -0
  40. package/dist/components/sso/scale/handshake.js +10 -0
  41. package/dist/components/sso/types.d.ts +15 -0
  42. package/dist/components/sso/types.js +1 -0
  43. package/dist/components/transport.d.ts +27 -0
  44. package/dist/components/transport.js +57 -0
  45. package/dist/components/user/codec.d.ts +16 -0
  46. package/dist/components/user/codec.js +13 -0
  47. package/dist/components/user/index.d.ts +22 -0
  48. package/dist/components/user/index.js +58 -0
  49. package/dist/components/user/ssoMessageStream.d.ts +10 -0
  50. package/dist/components/user/ssoMessageStream.js +8 -0
  51. package/dist/components/user/ssoSession.d.ts +5 -0
  52. package/dist/components/user/ssoSession.js +5 -0
  53. package/dist/components/user/storage.d.ts +27 -0
  54. package/dist/components/user/storage.js +143 -0
  55. package/dist/components/user/types.d.ts +6 -0
  56. package/dist/components/user/types.js +1 -0
  57. package/dist/components/user/userSessionStorage.d.ts +20 -0
  58. package/dist/components/user/userSessionStorage.js +24 -0
  59. package/dist/components/user.d.ts +74 -0
  60. package/dist/components/user.js +188 -0
  61. package/dist/constants.d.ts +2 -1
  62. package/dist/constants.js +5 -1
  63. package/dist/crypto.d.ts +29 -0
  64. package/dist/crypto.js +86 -0
  65. package/dist/helpers/abortError.d.ts +4 -0
  66. package/dist/helpers/abortError.js +8 -0
  67. package/dist/helpers/callbackRaceResolver.d.ts +1 -0
  68. package/dist/helpers/callbackRaceResolver.js +17 -0
  69. package/dist/helpers/result.d.ts +12 -0
  70. package/dist/helpers/result.js +15 -0
  71. package/dist/helpers/result.spec.d.ts +1 -0
  72. package/dist/helpers/result.spec.js +23 -0
  73. package/dist/helpers/state.d.ts +16 -0
  74. package/dist/helpers/state.js +51 -0
  75. package/dist/helpers/utils.d.ts +2 -1
  76. package/dist/helpers/utils.js +11 -2
  77. package/dist/helpers/zipWith.d.ts +4 -0
  78. package/dist/helpers/zipWith.js +11 -0
  79. package/dist/identity/impl.d.ts +6 -0
  80. package/dist/identity/impl.js +68 -0
  81. package/dist/identity/rpcAdapter.d.ts +3 -0
  82. package/dist/identity/rpcAdapter.js +46 -0
  83. package/dist/identity/types.d.ts +21 -0
  84. package/dist/identity/types.js +1 -0
  85. package/dist/index.d.ts +7 -3
  86. package/dist/index.js +2 -7
  87. package/dist/modules/crypto.d.ts +8 -9
  88. package/dist/modules/crypto.js +20 -42
  89. package/dist/modules/secretStorage.d.ts +13 -12
  90. package/dist/modules/secretStorage.js +34 -43
  91. package/dist/modules/session/helpers.d.ts +5 -0
  92. package/dist/modules/session/helpers.js +29 -0
  93. package/dist/modules/session/session.d.ts +12 -0
  94. package/dist/modules/session/session.js +50 -0
  95. package/dist/modules/session/types.d.ts +12 -0
  96. package/dist/modules/session/types.js +1 -0
  97. package/dist/modules/signIn.d.ts +32 -11
  98. package/dist/modules/signIn.js +98 -101
  99. package/dist/modules/state.d.ts +16 -0
  100. package/dist/modules/state.js +50 -0
  101. package/dist/modules/statementStore.d.ts +10 -11
  102. package/dist/modules/statementStore.js +16 -14
  103. package/dist/modules/statementTopic.d.ts +34 -0
  104. package/dist/modules/statementTopic.js +46 -0
  105. package/dist/modules/storageView.d.ts +25 -0
  106. package/dist/modules/storageView.js +51 -0
  107. package/dist/modules/syncStorage.d.ts +25 -0
  108. package/dist/modules/syncStorage.js +76 -0
  109. package/dist/modules/transport/codec.d.ts +24 -0
  110. package/dist/modules/transport/codec.js +36 -0
  111. package/dist/modules/transport/crypto.d.ts +2 -0
  112. package/dist/modules/transport/crypto.js +20 -0
  113. package/dist/modules/transport/transport.d.ts +42 -0
  114. package/dist/modules/transport/transport.js +66 -0
  115. package/dist/modules/user.d.ts +67 -0
  116. package/dist/modules/user.js +188 -0
  117. package/dist/modules/userManager.d.ts +15 -0
  118. package/dist/modules/userManager.js +105 -0
  119. package/dist/modules/userStorage.d.ts +19 -0
  120. package/dist/modules/userStorage.js +108 -0
  121. package/dist/modules/userStore.d.ts +15 -0
  122. package/dist/modules/userStore.js +105 -0
  123. package/dist/papp.d.ts +25 -13
  124. package/dist/papp.js +19 -50
  125. package/dist/sso/auth/attestationService.d.ts +18 -0
  126. package/dist/sso/auth/attestationService.js +171 -0
  127. package/dist/sso/auth/impl.d.ts +53 -0
  128. package/dist/sso/auth/impl.js +161 -0
  129. package/dist/sso/auth/scale/handshake.d.ts +9 -0
  130. package/dist/sso/auth/scale/handshake.js +10 -0
  131. package/dist/sso/auth/types.d.ts +17 -0
  132. package/dist/sso/auth/types.js +1 -0
  133. package/dist/sso/session/impl.d.ts +23 -0
  134. package/dist/sso/session/impl.js +57 -0
  135. package/dist/sso/session/scale/remoteMessage.d.ts +10 -0
  136. package/dist/sso/session/scale/remoteMessage.js +13 -0
  137. package/dist/sso/session/sessionManager.d.ts +23 -0
  138. package/dist/sso/session/sessionManager.js +58 -0
  139. package/dist/sso/session/ssoSession.d.ts +8 -0
  140. package/dist/sso/session/ssoSession.js +5 -0
  141. package/dist/sso/session/ssoSessionStorage.d.ts +21 -0
  142. package/dist/sso/session/ssoSessionStorage.js +20 -0
  143. package/dist/sso/session/types.d.ts +6 -0
  144. package/dist/sso/session/types.js +1 -0
  145. package/dist/sso/session/userSessionStorage.d.ts +21 -0
  146. package/dist/sso/session/userSessionStorage.js +20 -0
  147. package/dist/sso/sessionManager/attestationService.d.ts +5 -0
  148. package/dist/sso/sessionManager/attestationService.js +15 -0
  149. package/dist/sso/sessionManager/impl.d.ts +22 -0
  150. package/dist/sso/sessionManager/impl.js +71 -0
  151. package/dist/sso/sessionManager/repository/ssoSessionRepository.d.ts +22 -0
  152. package/dist/sso/sessionManager/repository/ssoSessionRepository.js +27 -0
  153. package/dist/sso/sessionManager/scale/hex.d.ts +1 -0
  154. package/dist/sso/sessionManager/scale/hex.js +3 -0
  155. package/dist/sso/sessionManager/scale/remoteMessage.d.ts +41 -0
  156. package/dist/sso/sessionManager/scale/remoteMessage.js +13 -0
  157. package/dist/sso/sessionManager/scale/signPayloadRequest.d.ts +19 -0
  158. package/dist/sso/sessionManager/scale/signPayloadRequest.js +19 -0
  159. package/dist/sso/sessionManager/scale/signPayloadResponse.d.ts +12 -0
  160. package/dist/sso/sessionManager/scale/signPayloadResponse.js +9 -0
  161. package/dist/sso/sessionManager/scale/signRequest.d.ts +19 -0
  162. package/dist/sso/sessionManager/scale/signRequest.js +19 -0
  163. package/dist/sso/sessionManager/scale/signResponse.d.ts +6 -0
  164. package/dist/sso/sessionManager/scale/signResponse.js +5 -0
  165. package/dist/sso/sessionManager/ssoSession.d.ts +23 -0
  166. package/dist/sso/sessionManager/ssoSession.js +69 -0
  167. package/dist/sso/sessionManager/ssoSessionProver.d.ts +4 -0
  168. package/dist/sso/sessionManager/ssoSessionProver.js +35 -0
  169. package/dist/sso/sessionManager/types.d.ts +6 -0
  170. package/dist/sso/sessionManager/types.js +1 -0
  171. package/dist/sso/sessionManager/userSession.d.ts +22 -0
  172. package/dist/sso/sessionManager/userSession.js +106 -0
  173. package/dist/sso/ssoSessionProver.d.ts +4 -0
  174. package/dist/sso/ssoSessionProver.js +35 -0
  175. package/dist/sso/ssoSessionRepository.d.ts +18 -0
  176. package/dist/sso/ssoSessionRepository.js +27 -0
  177. package/dist/sso/userSecretRepository.d.ts +17 -0
  178. package/dist/sso/userSecretRepository.js +45 -0
  179. package/dist/sso/userSessionRepository.d.ts +18 -0
  180. package/dist/sso/userSessionRepository.js +26 -0
  181. package/dist/structs.d.ts +10 -10
  182. package/dist/structs.js +17 -13
  183. package/dist/types.d.ts +1 -1
  184. package/package.json +14 -7
@@ -0,0 +1,237 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __esm = (fn, res) => function __init() {
7
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
8
+ };
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
+
23
+ // .papi/descriptors/src/descriptors.ts
24
+ var descriptors_exports = {};
25
+ __export(descriptors_exports, {
26
+ People_lite: () => People_lite
27
+ });
28
+ var minified, commonTrees, tokens, replaceTokens, tokenizedCommonTrees, unwrap, getChainDescriptors, People_lite;
29
+ var init_descriptors = __esm({
30
+ ".papi/descriptors/src/descriptors.ts"() {
31
+ "use strict";
32
+ [minified, commonTrees, tokens] = JSON.parse(`[{"people_lite":{"storage":{"1":{"0":0,"ExtrinsicCount":1,"InherentsApplied":2,"BlockWeight":3,"AllExtrinsicsLen":1,"BlockHash":4,"ExtrinsicData":5,"Number":1,"ParentHash":6,"Digest":7,"Events":8,"EventCount":1,"EventTopics":9,"LastRuntimeUpgrade":10,"UpgradedToU32RefCount":2,"UpgradedToTripleRefCount":2,"ExecutionPhase":11,"AuthorizedUpgrade":12,"ExtrinsicWeightReclaimed":13},"2":{"UnincludedSegment":33,"AggregatedUnincludedSegment":34,"PendingValidationCode":35,"NewValidationCode":35,"ValidationData":36,"DidSetValidationCode":2,"LastRelayChainBlockNumber":1,"UpgradeRestrictionSignal":37,"UpgradeGoAhead":38,"RelayStateProof":39,"RelevantMessagingState":40,"HostConfiguration":41,"LastDmqMqcHead":6,"LastHrmpMqcHeads":42,"ProcessedDownwardMessages":1,"HrmpWatermark":1,"HrmpOutboundMessages":43,"UpwardMessages":39,"PendingUpwardMessages":39,"UpwardDeliveryFeeFactor":44,"AnnouncedHrmpMessagesPerCandidate":1,"ReservedXcmpWeightOverride":13,"ReservedDmpWeightOverride":13,"CustomValidationHeadData":35},"3":{"Now":44,"DidUpdate":2},"4":{"ParachainId":1},"5":0,"7":{"0":52,"6":55,"TotalIssuance":44,"InactiveIssuance":44,"Locks":53,"Reserves":54,"Freezes":56},"8":{"NextFeeMultiplier":44,"StorageVersion":74},"9":0,"10":{"Usages":77},"12":{"0":81,"11":83,"Asset":80,"Approvals":82,"NextAssetId":84},"13":{"6":122,"BalancesOnHold":123},"14":{"ConversionRateToNative":125},"15":0,"16":{"Author":132},"17":{"Invulnerables":133,"CandidateList":134,"LastAuthoredBlock":135,"DesiredCandidates":1,"CandidacyBond":44},"18":{"Validators":133,"CurrentIndex":1,"QueuedChanged":2,"QueuedKeys":150,"DisabledValidators":151,"NextKeys":152,"KeyOwner":153},"20":{"19":157,"CurrentSlot":44},"21":{"19":157,"RelaySlotInfo":158},"22":{"InboundXcmpSuspended":159,"OutboundXcmpStatus":160,"OutboundXcmpMessages":161,"SignalMessages":5,"QueueConfig":162,"QueueSuspended":2,"DeliveryFeeFactor":163},"23":{"QueryCounter":44,"Queries":166,"AssetTraps":167,"SafeXcmVersion":1,"SupportedVersion":168,"VersionNotifiers":169,"VersionNotifyTargets":170,"VersionDiscoveryQueue":171,"CurrentMigration":172,"RemoteLockedFungibles":173,"LockedFungibles":174,"XcmExecutionSuspended":2,"ShouldRecordXcm":2,"RecordedXcm":175,"AuthorizedAliases":176},"24":0,"25":{"BookStateFor":215,"ServiceHead":216,"Pages":217},"26":0,"27":{"Multisigs":234},"28":{"Key":132},"29":0,"31":{"30":152,"IdentityOf":250,"UsernameOf":251,"SuperOf":252,"SubsOf":253,"Registrars":254,"AuthorityOf":255,"UsernameInfoOf":256,"PendingUsernames":257,"UnbindingUsernames":258,"PersonIdentities":259,"PendingUsernameReports":260},"33":{"30":304,"32":300,"33":302,"34":306,"Root":296,"CurrentRingIndex":1,"OnboardingSize":1,"RingBuildingPeopleLimit":1,"RingKeys":297,"RingKeysStatus":298,"PendingSuspensions":299,"ActiveMembers":1,"CounterForKeys":1,"KeyMigrationQueue":301,"AliasToAccount":303,"AccountToPersonalId":305,"NextPersonalId":44,"RingsState":307,"ReservedPersonalId":308,"QueuePageIndices":309,"OnboardingQueue":297},"36":{"35":324,"Credits":317,"VotingPenalties":167,"VotingPoints":318,"Votes":319,"CaseCount":1,"OpenCases":320,"RipeCases":321,"DoneCases":322,"AccumulatedPoints":44,"PayoutDistribution":323,"ActiveSince":44},"39":{"33":342,"37":135,"38":347,"Candidates":341,"ReferralTickets":343,"DesignFamilies":344,"CommittedDesigns":345,"AllocationCount":1,"Configuration":346,"ReferrerReimbursementValues":348,"ReferredReimbursementValues":348},"40":{"32":375,"34":306,"Rings":373,"BuildingRings":374,"KeysToRing":376,"UsedTickets":377,"VariableVouchers":378,"NextRingIndex":379,"RemovedRingIndex":379},"41":{"37":135,"38":347,"41":393,"TestnetStoredPhaseDurations":389,"Nfts":390,"ArchivedPlayers":391,"Players":392,"GameIndex":1,"GameHistory":394,"PlayerAttendanceHistory":395,"IndexToPlayer":396,"PlayerToIndex":395,"ShuffleRecognized":397,"ShuffleNotRecognized":397,"GameSchedules":398,"AliasToStmtAccount":399,"StmtAccountToAlias":152,"CommunicationIdentifiers":400},"42":{"35":415,"Participants":411,"CurrentRoundPoints":1,"CurrentRoundIndex":1,"RoundsPointsForParticipant":412,"RoundPayouts":413,"RoundPlanning":414},"43":{"33":421,"ReservedIds":308},"44":{"LitePeople":427,"AttestationAllowance":135},"45":{"Consumers":430,"UsernameOwnerOf":431,"ReservedUsernames":432,"AccountOfAlias":399},"46":0,"47":{"EventSchedule":436,"EventScheduleFirstStartTime":1,"NextEventId":1,"ActiveEvents":437,"ActiveEventIds":159,"ParticipantIdToAliasAndDest":438,"ParticipantAliasToId":318,"WinnersToDistributeTo":299,"WinnersWithFailedTransfer":439,"PastLotteries":440},"48":{"Cursor":447,"Historic":448}},"tx":{"1":{"remark":18,"set_heap_pages":19,"set_code":20,"set_code_without_checks":20,"set_storage":21,"kill_storage":22,"kill_prefix":23,"remark_with_event":18,"authorize_upgrade":24,"authorize_upgrade_without_checks":24,"apply_authorized_upgrade":20},"2":{"set_validation_data":45,"sudo_send_upward_message":46},"3":{"set":51},"4":0,"5":0,"7":{"49":58,"50":57,"51":59,"52":64,"transfer_allow_death":57,"force_unreserve":60,"upgrade_accounts":61,"force_set_balance":62,"force_adjust_total_issuance":63},"8":0,"9":0,"10":{"clean_usage":78},"12":{"49":91,"50":90,"51":104,"52":89,"53":85,"force_create":86,"start_destroy":87,"destroy_accounts":87,"destroy_approvals":87,"finish_destroy":87,"mint":88,"transfer":90,"freeze":92,"thaw":92,"freeze_asset":87,"thaw_asset":87,"transfer_ownership":93,"set_team":94,"set_metadata":95,"clear_metadata":87,"force_set_metadata":96,"force_clear_metadata":87,"force_asset_status":97,"approve_transfer":98,"cancel_approval":99,"force_cancel_approval":100,"transfer_approved":101,"touch":87,"refund":102,"set_min_balance":103,"touch_other":92,"refund_other":92,"block":92},"13":0,"14":{"53":126,"update":126,"remove":127},"15":0,"16":0,"17":{"set_invulnerables":137,"set_desired_candidates":138,"set_candidacy_bond":139,"register_as_candidate":140,"leave_intent":140,"add_invulnerable":141,"remove_invulnerable":141,"update_bond":142,"take_candidate_slot":143},"18":{"set_keys":154,"purge_keys":140},"20":0,"21":0,"22":{"suspend_xcm_execution":140,"resume_xcm_execution":140,"update_suspend_threshold":164,"update_drop_threshold":164,"update_resume_threshold":164},"23":{"send":178,"teleport_assets":179,"reserve_transfer_assets":179,"execute":180,"force_xcm_version":181,"force_default_xcm_version":182,"force_subscribe_version_notify":183,"force_unsubscribe_version_notify":183,"limited_reserve_transfer_assets":184,"limited_teleport_assets":184,"force_suspension":185,"transfer_assets":184,"claim_assets":186,"transfer_assets_using_type_and_then":187,"add_authorized_alias":188,"remove_authorized_alias":189,"remove_all_authorized_aliases":140},"24":0,"25":{"reap_page":219,"execute_overweight":220},"26":{"batch":225,"as_derivative":226,"batch_all":225,"dispatch_as":227,"force_batch":225,"with_weight":228,"if_else":229,"dispatch_as_fallible":227},"27":{"as_multi_threshold_1":235,"as_multi":236,"approve_as_multi":237,"cancel_as_multi":238,"poke_deposit":239},"28":{"sudo":245,"sudo_unchecked_weight":228,"set_key":246,"sudo_as":247,"remove_key":140},"29":0,"31":{"add_registrar":261,"set_identity":262,"set_subs":263,"clear_identity":140,"request_judgement":264,"cancel_request":265,"set_fee":266,"set_account_id":267,"set_fields":268,"provide_judgement":269,"kill_identity":270,"add_sub":271,"rename_sub":271,"remove_sub":272,"quit_sub":140,"add_username_authority":273,"remove_username_authority":274,"set_username_for":275,"accept_username":276,"remove_expired_approval":276,"set_primary_username":276,"unbind_username":276,"remove_username":276,"kill_username":276,"set_personal_identity":277,"submit_personal_credential_evidence":278,"personal_credential_judged":279,"clear_personal_identity":140,"report_username":276,"reported_username_judged":279},"33":{"build_ring_manual":310,"onboard_people_manual":140,"merge_rings":311,"under_alias":245,"set_alias_account":312,"unset_alias_account":140,"force_recognize_personhood":313,"set_personal_id_account":312,"unset_personal_id_account":140,"migrate_included_key":314,"migrate_onboarding_key":314,"set_onboarding_size":315},"36":{"54":332,"55":333,"vote":326,"close_case":327,"clean_vote":328,"reap_case":327,"intervene":329,"claim_vote":327,"payout_rewards":330,"claim_votes":331,"start_payout_round":140,"claim_credit":140,"clean_points":334,"force_ripen_case":327,"touch_case":327,"clear_voting_penalty":140,"clean_vote_signed":328},"39":{"56":359,"57":360,"58":357,"59":357,"apply":140,"submit_evidence":349,"judged":279,"register_referred":350,"register_non_referred":351,"reroll":140,"commit":352,"allocate_full":140,"timeout":353,"flakeout":140,"apply_with_signature":354,"apply_with_invitation":355,"add_design_family":356,"set_referral_ticket":357,"cancel_referral_ticket":357,"register_successful_referral_voucher":358,"set_configuration":361,"set_reimbursement_values":362},"40":{"claim_voucher":380,"claim_voucher_into_destination":381,"clean_ring":382,"set_voucher_value_delayed":383,"set_voucher_value_instant":383},"41":{"56":359,"57":360,"58":357,"59":357,"sign_up_with_invite":401,"sign_up_with_account":401,"sign_up_with_alias":402,"report":403,"offboard":140,"kickout":404,"schedule_games":405,"remove_scheduled_game":406,"testnet_force_start_shuffle":140,"testnet_force_end_reporting":140,"testnet_set_game_phases":407,"testnet_kill_current_game":140},"42":{"54":416,"55":333,"transition_round":417,"operate_payout_round":418,"cash_out":140,"redeem_credit":330,"register":419},"43":{"reserve_ids":422,"renew_id_reservation":423,"cancel_id_reservation":423,"recognize_personhood":424,"suspend_personhood":425,"resume_personhood":423,"start_mutation_session":140,"end_mutation_session":140},"44":{"increase_attestation_allowance":359,"clear_attestation_allowance":353,"attest":428,"dispatch_as_signer":245},"45":{"register_lite_person":433,"register_person":434,"touch_person_authorization":140,"remove_expired_username_reservation":276,"update_identifier_key":401},"46":0,"47":{"schedule_event":442,"remove_scheduled_event":443,"register_for_event":444,"claim_failed_transfer_prize":443},"48":{"force_set_cursor":449,"force_set_active_cursor":450,"force_onboard_mbms":140,"clear_historic":451}},"events":{"1":{"ExtrinsicSuccess":25,"ExtrinsicFailed":26,"CodeUpdated":27,"NewAccount":28,"KilledAccount":28,"Remarked":29,"UpgradeAuthorized":30,"RejectedInvalidAuthorizedUpgrade":31},"2":{"ValidationFunctionStored":27,"ValidationFunctionApplied":47,"ValidationFunctionDiscarded":27,"DownwardMessagesReceived":48,"DownwardMessagesProcessed":49,"UpwardMessageSent":50},"3":0,"4":0,"5":0,"7":{"60":69,"61":72,"62":69,"63":69,"Endowed":65,"DustLost":66,"Transfer":67,"BalanceSet":68,"Reserved":69,"Unreserved":69,"ReserveRepatriated":70,"Deposit":69,"Withdraw":69,"Slashed":69,"Minted":69,"Suspended":69,"Restored":69,"Upgraded":71,"Rescinded":72,"Locked":69,"Unlocked":69,"TotalIssuanceForced":73},"8":{"TransactionFeePaid":75},"9":{"FeeSkipped":76},"10":{"UsageCleaned":79},"12":{"60":108,"61":106,"62":111,"63":111,"Created":105,"Transferred":107,"TeamChanged":109,"OwnerChanged":110,"AssetFrozen":112,"AssetThawed":112,"AccountsDestroyed":113,"ApprovalsDestroyed":114,"DestructionStarted":112,"Destroyed":112,"ForceCreated":110,"MetadataSet":115,"MetadataCleared":112,"ApprovedTransfer":116,"ApprovalCancelled":117,"TransferredApproved":118,"AssetStatusChanged":112,"AssetMinBalanceChanged":119,"Touched":120,"Blocked":111,"Deposited":121,"Withdrawn":121},"13":{"60":124,"Held":124,"Released":124},"14":{"AssetRateCreated":128,"AssetRateRemoved":129,"AssetRateUpdated":130},"15":{"AssetTxFeePaid":131},"16":0,"17":{"NewInvulnerables":144,"InvulnerableAdded":145,"InvulnerableRemoved":145,"NewDesiredCandidates":146,"NewCandidacyBond":147,"CandidateAdded":148,"CandidateBondUpdated":148,"CandidateRemoved":145,"CandidateReplaced":149,"InvalidInvulnerableSkipped":145},"18":{"NewSession":155,"NewQueued":27,"ValidatorDisabled":156,"ValidatorReenabled":156},"20":0,"21":0,"22":{"XcmpMessageSent":165},"23":{"Attempted":190,"Sent":191,"SendFailed":192,"ProcessXcmError":193,"UnexpectedResponse":194,"ResponseReady":195,"Notified":196,"NotifyOverweight":197,"NotifyDispatchError":196,"NotifyDecodeFailed":196,"InvalidResponder":198,"InvalidResponderVersion":194,"ResponseTaken":199,"AssetsTrapped":200,"VersionChangeNotified":201,"SupportedVersionChanged":202,"NotifyTargetSendFail":203,"NotifyTargetMigrationFail":204,"InvalidQuerierVersion":194,"InvalidQuerier":205,"VersionNotifyStarted":206,"VersionNotifyRequested":206,"VersionNotifyUnrequested":206,"FeesPaid":207,"AssetsClaimed":200,"VersionMigrationFinished":208,"AliasAuthorized":209,"AliasAuthorizationRemoved":210,"AliasesAuthorizationsRemoved":211},"24":{"InvalidFormat":213,"UnsupportedVersion":213,"ExecutedDownward":214},"25":{"ProcessingFailed":221,"Processed":222,"OverweightEnqueued":223,"PageReaped":224},"26":{"BatchInterrupted":230,"BatchCompleted":27,"BatchCompletedWithErrors":27,"ItemCompleted":27,"ItemFailed":231,"DispatchedAs":232,"IfElseMainSuccess":27,"IfElseFallbackCalled":233},"27":{"NewMultisig":240,"MultisigApproval":241,"MultisigExecuted":242,"MultisigCancelled":243,"DepositPoked":244},"28":{"Sudid":248,"KeyChanged":249,"KeyRemoved":27,"SudoAsDone":248},"29":0,"31":{"64":281,"IdentitySet":71,"IdentityCleared":280,"IdentityKilled":280,"JudgementUnrequested":281,"JudgementGiven":282,"RegistrarAdded":283,"SubIdentityAdded":284,"SubIdentitiesSet":285,"SubIdentityRenamed":286,"SubIdentityRemoved":284,"SubIdentityRevoked":284,"AuthorityAdded":287,"AuthorityRemoved":287,"UsernameSet":288,"UsernameQueued":289,"PreapprovalExpired":290,"PrimaryUsernameSet":288,"DanglingUsernameRemoved":288,"UsernameUnbound":291,"UsernameRemoved":291,"UsernameKilled":291,"UsernameReported":292,"PersonalIdentitySet":293,"EvidenceSubmitted":294,"CredentialAccepted":294,"CredentialRejected":294,"PersonBanned":294,"PersonalIdentityCleared":294,"ReportedUsernameJudgedValid":291,"ReportedUsernameJudgedInvalid":291,"ReportedUsernameWeakOrUnclearJudgement":295},"33":{"PersonhoodRecognized":316,"PersonOnboarding":316},"36":{"CaseCreated":335,"Callback":232,"CallbackError":27,"CaseClosed":336,"Voted":337,"VoteCleaned":338,"CaseRemoved":335,"CaseIntervened":336,"VotesClaimed":339,"RewardPayout":340},"39":{"64":145,"65":366,"66":371,"67":371,"CandidateApplied":145,"ReferralApplied":363,"JudgementProvided":364,"RetryGranted":365,"CandidateReferred":367,"Rerolled":145,"DesignCommitted":368,"FullyAllocated":145,"TimedOut":145,"FlakedOut":145,"TicketReferred":369,"TicketCancelled":369,"TicketApplied":363,"FamilyAdded":370,"InvitedCandidateApplied":372},"40":{"KeyAdded":384,"VoucherClaimed":385,"VoucherSent":386,"ClaimableRing":387,"VoucherValueChanged":388,"VoucherValuePending":388},"41":{"66":371,"67":371,"NewGame":408,"GameEnded":409,"StmtUsageRemoved":410},"42":{"Credit":420},"43":{"IdsReserved":48,"IdRenewed":426,"IdUnreserved":426,"PeopleRegistered":48,"PeopleSuspended":48,"PersonhoodResumed":426,"SuspensionsStarted":27,"SuspensionsEnded":27},"44":{"AllAttestationAllowanceCleared":429},"45":{"65":435,"LitePersonRegistered":28},"46":0,"47":{"ParticipantRegistered":445,"EventStarted":446,"EventSkipped":446},"48":{"UpgradeStarted":452,"UpgradeCompleted":27,"UpgradeFailed":27,"MigrationSkipped":409,"MigrationAdvanced":453,"MigrationCompleted":453,"MigrationFailed":453,"HistoricCleared":454}},"constants":{"1":{"BlockWeights":14,"BlockLength":15,"BlockHashCount":1,"DbWeight":16,"Version":17,"SS58Prefix":1},"2":{"SelfParaId":1},"3":{"MinimumPeriod":44},"4":0,"5":0,"7":{"ExistentialDeposit":44,"MaxLocks":1,"MaxReserves":1,"MaxFreezes":1},"8":{"OperationalFeeMultiplier":1},"9":0,"10":0,"12":{"RemoveItemsLimit":1,"AssetDeposit":44,"AssetAccountDeposit":44,"MetadataDepositBase":44,"MetadataDepositPerByte":44,"ApprovalDeposit":44,"StringLimit":1},"13":0,"14":0,"15":0,"16":0,"17":{"68":136,"MaxCandidates":1,"MinEligibleCollators":1,"MaxInvulnerables":1,"KickThreshold":1,"pot_account":132},"18":0,"20":{"SlotDuration":44},"21":0,"22":{"MaxInboundSuspended":1,"MaxActiveOutboundChannels":1,"MaxPageSize":1},"23":{"UniversalLocation":177,"AdvertisedXcmVersion":1,"MaxLockers":1,"MaxRemoteLockConsumers":1},"24":0,"25":{"HeapSize":1,"MaxStale":1,"ServiceWeight":218,"IdleMaxServiceWeight":218},"26":{"batched_calls_limit":1},"27":{"DepositBase":44,"DepositFactor":44,"MaxSignatories":1},"28":0,"29":0,"31":{"69":1,"70":1,"BasicDeposit":44,"ByteDeposit":44,"UsernameDeposit":44,"SubAccountDeposit":44,"UsernameReportDeposit":44,"MaxSubAccounts":1,"UsernameReportTimeout":1,"MaxRegistrars":1,"MaxJudgements":1,"PendingUsernameExpiration":1,"UsernameGracePeriod":1,"MaxSuffixLength":1,"CredentialRemovalPenalty":44,"identity_context":6},"33":{"71":1,"72":1,"OnboardingQueuePageSize":1,"account_setup_time_tolerance":1},"36":{"73":84,"74":1,"MaxVoteClaimDuration":44,"MinCaseDuration":1,"MaxVotingDuration":1,"MinTurnoutNominal":1,"MinTurnoutPercentage":1,"VotingPenaltyDuration":1,"MaxVotesClaimable":1,"MobRuleVoucherType":325,"CleanVotesBatchSize":1,"VotesOpenForClaimsDuration":1,"MinimumVoterThreshold":1,"mob_rule_pot_id":132,"mob_rule_context":6},"39":{"68":136,"MaxActiveReferrals":1,"ReferrerVoucherType":325,"ReferredVoucherType":325,"proof_of_ink_pot_id":132},"40":{"71":1,"72":1,"73":84,"ClaimPeriod":1},"41":{"MaxRounds":1,"MaxGroupSize":1,"MinGroupSize":1,"NonPlayingKickoutTime":1,"PhaseDurations":389,"MaxGameSchedules":1,"MaxAttendanceHistoryDepth":1,"proof_of_ownership_msg_base":6},"42":{"73":84,"74":1,"PersonhoodScore":1,"VoucherType":325,"score_pot_id":132,"score_context":6,"ubi_points":1},"43":0,"44":0,"45":{"69":1,"70":1,"PersonAuthDuration":1,"MinPersonAuthUpdateInterval":1},"46":0,"47":{"lottery_pot_id":132,"lottery_context_base":441},"48":{"CursorMaxLen":1,"IdentifierMaxLen":1}},"viewFns":{"1":0,"2":0,"3":0,"4":0,"5":0,"7":0,"8":0,"9":0,"10":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"31":0,"33":0,"36":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0},"apis":{"11":{"metadata":462,"metadata_at_version":463,"metadata_versions":464},"AuraApi":{"slot_duration":455,"authorities":456},"RelayParentOffsetApi":{"relay_parent_offset":457},"AuraUnincludedSegmentApi":{"can_build_upon":458},"Core":{"version":459,"execute_block":460,"initialize_block":461},"BlockBuilder":{"apply_extrinsic":465,"finalize_block":466,"inherent_extrinsics":467,"check_inherents":468},"TaggedTransactionQueue":{"validate_transaction":469},"OffchainWorkerApi":{"offchain_worker":470},"SessionKeys":{"generate_session_keys":471,"decode_session_keys":472},"AccountNonceApi":{"account_nonce":473},"TransactionPaymentApi":{"75":476,"76":477,"query_info":474,"query_fee_details":475},"TransactionPaymentCallApi":{"75":476,"76":477,"query_call_info":478,"query_call_fee_details":479},"XcmPaymentApi":{"query_acceptable_payment_assets":480,"query_xcm_weight":481,"query_weight_to_asset_fee":482,"query_delivery_fees":483},"LocationToAccountApi":{"convert_location":484},"MobRuleApi":{"voted_on":485},"ProofOfInkApi":{"candidacy_deposit":455},"PrivacyVoucherApi":{"voucher_value":486},"PalletGameApi":{"play_deposit":455,"validate_statement_with_reason":487},"CollectCollationInfo":{"collect_collation_info":488},"GenesisBuilder":{"build_state":489,"get_preset":490,"preset_names":491},"ValidateStatement":{"validate_statement":492}}}},[{}],["Account","System","ParachainSystem","Timestamp","ParachainInfo","WeightReclaim","Holds","Balances","TransactionPayment","SkipFeelessPayment","OriginRestriction","Metadata","Assets","AssetsHolder","AssetRate","AssetTxPayment","Authorship","CollatorSelection","Session","Authorities","Aura","AuraExt","XcmpQueue","PolkadotXcm","CumulusXcm","MessageQueue","Utility","Multisig","Sudo","VerifySignature","AccountToAlias","Identity","Keys","People","Chunks","RoundSchedules","MobRule","AvailableInvites","PendingInvites","ProofOfInk","PrivacyVoucher","Game","Score","DummyDim","PeopleLite","Resources","StorageInitialization","Lottery","MultiBlockMigrations","force_transfer","transfer_keep_alive","transfer_all","burn","create","schedule_payout_rounds","remove_payout_schedule","grant_invites","remove_available_and_pending_invites","set_invite_ticket","cancel_invite_ticket","Burned","Issued","Frozen","Thawed","JudgementRequested","PersonRegistered","AllInvitesRemoved","SomeInvitesRemoved","PotId","MaxUsernameLength","MinUsernameLength","ChunkPageSize","MaxRingSize","CurrencyLocationInfo","OffchainWorkInterval","query_weight_to_fee","query_length_to_fee"]]`);
33
+ replaceTokens = (obj) => Object.fromEntries(
34
+ Object.entries(obj).map(([key, value]) => {
35
+ const unwrappedValue = typeof value === "object" ? replaceTokens(value) : value;
36
+ const numericKey = Number(key);
37
+ if (Number.isNaN(numericKey)) {
38
+ return [key, unwrappedValue];
39
+ }
40
+ return [tokens[numericKey], unwrappedValue];
41
+ })
42
+ );
43
+ tokenizedCommonTrees = commonTrees.map(replaceTokens);
44
+ unwrap = (obj, depth) => depth === 0 ? obj : Object.fromEntries(
45
+ Object.entries(obj).map(([key, value]) => [
46
+ key,
47
+ unwrap(
48
+ typeof value === "object" ? value : tokenizedCommonTrees[value],
49
+ depth - 1
50
+ )
51
+ ])
52
+ );
53
+ getChainDescriptors = (key) => unwrap(replaceTokens(minified[key]), 2);
54
+ People_lite = getChainDescriptors("people_lite");
55
+ }
56
+ });
57
+
58
+ // .papi/descriptors/src/metadataTypes.ts
59
+ var metadataTypes_exports = {};
60
+ __export(metadataTypes_exports, {
61
+ default: () => metadataTypes_default
62
+ });
63
+ var content, metadataTypes_default;
64
+ var init_metadataTypes = __esm({
65
+ ".papi/descriptors/src/metadataTypes.ts"() {
66
+ "use strict";
67
+ content = "tQcAAAAQAQEFAAQBAQUAFAEBBQAcAAQAIAAEACQBAQUAIAEBBQAwAQEFANECACAA2QIBAQUA4QIBAQUANAEBBQDlAgEBBQAYAQEFAPECAQEFAPUCAQEFAPkCAQEFAAUDAQAEGHJlbWFyayQBAQUBAAQUcGFnZXMIAQEFAQAEEGNvZGUkAQEFAQAEFGl0ZW1zDQMBAQUBAAQQa2V5cxEDAQEFAQAIGHByZWZpeCQcc3Via2V5cwQBAQUBAAQkY29kZV9oYXNoIAEBBQEBBQEABDRkaXNwYXRjaF9pbmZvQAEBBQEACDhkaXNwYXRjaF9lcnJvcsg0ZGlzcGF0Y2hfaW5mb0ABAQUBAQUBAQUBAAQcYWNjb3VudAABAQUBAAgYc2VuZGVyABBoYXNoIAEBBQEACCRjb2RlX2hhc2ggNGNoZWNrX3ZlcnNpb24UAQEFAQAIJGNvZGVfaGFzaCAUZXJyb3LIAQEFAQEFAQEFADEDAQEFADkDAQEFACQBAQUAPQMBAQUARQMBAQUAKQMBAQUAEQMBAQUAWQMBAQUAYQMBAQUAaQMBAQUAcQMBAQUACAEABBBkYXRhlQMBAQUBAAQcbWVzc2FnZSQBAQUBAQUBAARUcmVsYXlfY2hhaW5fYmxvY2tfbnVtBAEBBQEABBRjb3VudAQBAQUBAAgsd2VpZ2h0X3VzZWQYIGRtcV9oZWFkIAEBBQEABDBtZXNzYWdlX2hhc2jQAQAEDG5vdwgBAQUAAAAMAAAAoQMAAACpAwAAALEDAAAAuQMBAAgQZGVzdL0DFHZhbHVlCAEBBQEADBhzb3VyY2W9AxBkZXN0vQMUdmFsdWUIAQEFAQAIEGRlc3S9AyhrZWVwX2FsaXZlFAEBBQEACAx3aG+9AxhhbW91bnQIAQEFAQAEDHdob4kBAQEFAQAIDHdob70DIG5ld19mcmVlCAEBBQEACCRkaXJlY3Rpb27BAxRkZWx0YQgBAQUBAAgUdmFsdWUIKGtlZXBfYWxpdmUUAQEFAQEFAQAIHGFjY291bnQAMGZyZWVfYmFsYW5jZQgBAQUBAAgcYWNjb3VudAAYYW1vdW50CAEBBQEADBBmcm9tAAh0bwAYYW1vdW50CAEBBQEACAx3aG8AEGZyZWUIAQEFAQAIDHdobwAYYW1vdW50CAEBBQEAEBBmcm9tAAh0bwAYYW1vdW50CEhkZXN0aW5hdGlvbl9zdGF0dXPYAQEFAQAEDHdobwABAQUBAAQYYW1vdW50CAEBBQEACAxvbGQIDG5ldwgBAQUAxQMBAQUBAAwMd2hvAChhY3R1YWxfZmVlCAx0aXAIAQEFAQAEGG9yaWdpbk0BAFUBAMkDAQAEGGVudGl0eVUBAQEFAQEFAQAEGGVudGl0eVUBACEBANEDANUDAOEDAOUDAOkDACEBAO0DAQEFACEBAQAMCGlkIQEUYWRtaW69AyxtaW5fYmFsYW5jZQgBAQUBABAIaWQhARRvd25lcr0DNGlzX3N1ZmZpY2llbnQULG1pbl9iYWxhbmNlCAEBBQEABAhpZCEBAQEFAQAMCGlkIQEsYmVuZWZpY2lhcnm9AxhhbW91bnQIAQEFAQAMCGlkIQEMd2hvvQMYYW1vdW50CAEBBQEADAhpZCEBGHRhcmdldL0DGGFtb3VudAgBAQUBABAIaWQhARhzb3VyY2W9AxBkZXN0vQMYYW1vdW50CAEBBQEACAhpZCEBDHdob70DAQEFAQAICGlkIQEUb3duZXK9AwEBBQEAEAhpZCEBGGlzc3Vlcr0DFGFkbWluvQMcZnJlZXplcr0DAQEFAQAQCGlkIQEQbmFtZSQYc3ltYm9sJCBkZWNpbWFscwQBAQUBABQIaWQhARBuYW1lJBhzeW1ib2wkIGRlY2ltYWxzBCRpc19mcm96ZW4UAQEFAQAgCGlkIQEUb3duZXK9Axhpc3N1ZXK9AxRhZG1pbr0DHGZyZWV6ZXK9AyxtaW5fYmFsYW5jZQg0aXNfc3VmZmljaWVudBQkaXNfZnJvemVuFAEBBQEADAhpZCEBIGRlbGVnYXRlvQMYYW1vdW50CAEBBQEACAhpZCEBIGRlbGVnYXRlvQMBAQUBAAwIaWQhARRvd25lcr0DIGRlbGVnYXRlvQMBAQUBABAIaWQhARRvd25lcr0DLGRlc3RpbmF0aW9uvQMYYW1vdW50CAEBBQEACAhpZCEBKGFsbG93X2J1cm4UAQEFAQAICGlkIQEsbWluX2JhbGFuY2UIAQEFAQAMCGlkIQEQZGVzdL0DKGtlZXBfYWxpdmUUAQEFAQEFAQAMIGFzc2V0X2lkIQEcY3JlYXRvcgAUb3duZXIAAQEFAQAMIGFzc2V0X2lkIQEUb3duZXIAGGFtb3VudAgBAQUBABAgYXNzZXRfaWQhARBmcm9tAAh0bwAYYW1vdW50CAEBBQEADCBhc3NldF9pZCEBFG93bmVyABxiYWxhbmNlCAEBBQEAECBhc3NldF9pZCEBGGlzc3VlcgAUYWRtaW4AHGZyZWV6ZXIAAQEFAQAIIGFzc2V0X2lkIQEUb3duZXIAAQEFAQAIIGFzc2V0X2lkIQEMd2hvAAEBBQEABCBhc3NldF9pZCEBAQEFAQAMIGFzc2V0X2lkIQFIYWNjb3VudHNfZGVzdHJveWVkBEhhY2NvdW50c19yZW1haW5pbmcEAQEFAQAMIGFzc2V0X2lkIQFMYXBwcm92YWxzX2Rlc3Ryb3llZARMYXBwcm92YWxzX3JlbWFpbmluZwQBAQUBABQgYXNzZXRfaWQhARBuYW1lJBhzeW1ib2wkIGRlY2ltYWxzBCRpc19mcm96ZW4UAQEFAQAQIGFzc2V0X2lkIQEYc291cmNlACBkZWxlZ2F0ZQAYYW1vdW50CAEBBQEADCBhc3NldF9pZCEBFG93bmVyACBkZWxlZ2F0ZQABAQUBABQgYXNzZXRfaWQhARRvd25lcgAgZGVsZWdhdGUALGRlc3RpbmF0aW9uABhhbW91bnQIAQEFAQAIIGFzc2V0X2lkIQE8bmV3X21pbl9iYWxhbmNlCAEBBQEADCBhc3NldF9pZCEBDHdobwAkZGVwb3NpdG9yAAEBBQEADCBhc3NldF9pZCEBDHdobwAYYW1vdW50CADVAwCxAwDVAwAIAQEFAQAQDHdobwAgYXNzZXRfaWQhARhyZWFzb251ARhhbW91bnQIACEBAAgBAAgoYXNzZXRfa2luZCEBEHJhdGUIAQEFAQAEKGFzc2V0X2tpbmQhAQEBBQEBBQEACChhc3NldF9raW5kIQEQcmF0ZQgBAQUBAAQoYXNzZXRfa2luZCEBAQEFAQAMKGFzc2V0X2tpbmQhAQxvbGQIDG5ldwgBAQUBABAMd2hvAChhY3R1YWxfZmVlCAx0aXAIIGFzc2V0X2lkgQEBAQUAAAEBBQCJAQEBBQD1AwAAAAQBAQUApQEBAAQMbmV3iQEBAQUBAAQMbWF4BAEBBQEABBBib25kCAEBBQEBBQEBBQEABAx3aG8AAQEFAQAELG5ld19kZXBvc2l0CAEBBQEACBxkZXBvc2l0CBh0YXJnZXQAAQEFAQEFAQAENGludnVsbmVyYWJsZXOJAQEBBQEABChhY2NvdW50X2lkAAEBBQEABEhkZXNpcmVkX2NhbmRpZGF0ZXMEAQEFAQAELGJvbmRfYW1vdW50CAEBBQEACChhY2NvdW50X2lkABxkZXBvc2l0CAEBBQEADAxvbGQADG5ldwAcZGVwb3NpdAgBAQUA/QMBAQUA2QIAAAAgAAEEAAABAAgQa2V5cyAUcHJvb2YkAQEFAQEFAQAENHNlc3Npb25faW5kZXgEAQEFAQAEJHZhbGlkYXRvcgABAQUAyQIBAQUABQQBAQUAiQIBAQUAEQQAFQQAJAEBBQAZBAAEAAgBAAQMbmV3BAEBBQEBBQEABDBtZXNzYWdlX2hhc2ggAAgAQQQAIAAEAEUEAAQARQQACABFBABJBAEBBQBRBAEBBQBVBABdBABpBAAAAHEEAQEFAA0CAEECAH0EAQEFAB0BAQAIEGRlc3RBAhxtZXNzYWdlqQQBAQUBABAQZGVzdEECLGJlbmVmaWNpYXJ5QQIYYXNzZXRzPQI4ZmVlX2Fzc2V0X2l0ZW0EAQEFAQAIHG1lc3NhZ2WpBChtYXhfd2VpZ2h0GAEBBQEACCBsb2NhdGlvbiEBHHZlcnNpb24EAQEFAQAERG1heWJlX3hjbV92ZXJzaW9uNQMBAQUBAAQgbG9jYXRpb25BAgEBBQEAFBBkZXN0QQIsYmVuZWZpY2lhcnlBAhhhc3NldHM9AjhmZWVfYXNzZXRfaXRlbQQwd2VpZ2h0X2xpbWl07QEBAQUBAAQkc3VzcGVuZGVkFAEBBQEACBhhc3NldHM9AixiZW5lZmljaWFyeUECAQEFAQAcEGRlc3RBAhhhc3NldHM9AlBhc3NldHNfdHJhbnNmZXJfdHlwZa0EOHJlbW90ZV9mZWVzX2lkWQRIZmVlc190cmFuc2Zlcl90eXBlrQRIY3VzdG9tX3hjbV9vbl9kZXN0qQQwd2VpZ2h0X2xpbWl07QEBAQUBAAgcYWxpYXNlckECHGV4cGlyZXNFAgEBBQEABBxhbGlhc2VyQQIBAQUBAQUBAAQcb3V0Y29tZaEBAQEFAQAQGG9yaWdpbiEBLGRlc3RpbmF0aW9uIQEcbWVzc2FnZQ0CKG1lc3NhZ2VfaWQgAQEFAQAQGG9yaWdpbiEBLGRlc3RpbmF0aW9uIQEUZXJyb3IRAihtZXNzYWdlX2lkIAEBBQEADBhvcmlnaW4hARRlcnJvcpkBKG1lc3NhZ2VfaWQgAQEFAQAIGG9yaWdpbiEBIHF1ZXJ5X2lkCAEBBQEACCBxdWVyeV9pZAggcmVzcG9uc2XRAQEBBQEADCBxdWVyeV9pZAgwcGFsbGV0X2luZGV4BChjYWxsX2luZGV4BAEBBQEAFCBxdWVyeV9pZAgwcGFsbGV0X2luZGV4BChjYWxsX2luZGV4BDRhY3R1YWxfd2VpZ2h0GExtYXhfYnVkZ2V0ZWRfd2VpZ2h0GAEBBQEADBhvcmlnaW4hASBxdWVyeV9pZAhEZXhwZWN0ZWRfbG9jYXRpb26BAQEBBQEABCBxdWVyeV9pZAgBAQUBAAwQaGFzaCAYb3JpZ2luIQEYYXNzZXRzPQIBAQUBABAsZGVzdGluYXRpb24hARhyZXN1bHQEEGNvc3S5AShtZXNzYWdlX2lkIAEBBQEACCBsb2NhdGlvbiEBHHZlcnNpb24EAQEFAQAMIGxvY2F0aW9uIQEgcXVlcnlfaWQIFGVycm9ymQEBAQUBAAggbG9jYXRpb25BAiBxdWVyeV9pZAgBAQUBABAYb3JpZ2luIQEgcXVlcnlfaWQIQGV4cGVjdGVkX3F1ZXJpZXIhAVBtYXliZV9hY3R1YWxfcXVlcmllcoEBAQEFAQAMLGRlc3RpbmF0aW9uIQEQY29zdLkBKG1lc3NhZ2VfaWQgAQEFAQAIGHBheWluZyEBEGZlZXO5AQEBBQEABBx2ZXJzaW9uBAEBBQEADBxhbGlhc2VyIQEYdGFyZ2V0IQEYZXhwaXJ5RQIBAQUBAAgcYWxpYXNlciEBGHRhcmdldCEBAQEFAQAEGHRhcmdldCEBAQEFAQAIFGluZGV4BBRlcnJvcmwBAQUAIAEBBQEDCCChAQBRAgC5BAEBBQBRAgC9BADBBAEBBQDZAQEACDhtZXNzYWdlX29yaWdpblECKHBhZ2VfaW5kZXgEAQEFAQAQOG1lc3NhZ2Vfb3JpZ2luUQIQcGFnZQQUaW5kZXgEMHdlaWdodF9saW1pdBgBAQUBAQUBAAwIaWQgGG9yaWdpblECFGVycm9yVQIBAQUBABAIaWQgGG9yaWdpblECLHdlaWdodF91c2VkGBxzdWNjZXNzFAEBBQEAEAhpZCAYb3JpZ2luUQIocGFnZV9pbmRleAQ0bWVzc2FnZV9pbmRleAQBAQUBAAgYb3JpZ2luUQIUaW5kZXgEAQAEFGNhbGxzKQYBAQUBAAgUaW5kZXgEEGNhbGwlBgEBBQEACCRhc19vcmlnaW5NARBjYWxsJQYBAQUBAAgQY2FsbCUGGHdlaWdodBgBAQUBAAgQbWFpbiUGIGZhbGxiYWNrJQYBAQUBAQUBAAgUaW5kZXgEFGVycm9yyAEBBQEABBRlcnJvcsgBAQUBAAQYcmVzdWx0YQIBAQUBAAQobWFpbl9lcnJvcsgA+QMALQYBAAhEb3RoZXJfc2lnbmF0b3JpZXOJARBjYWxsJQYBAQUBABQkdGhyZXNob2xkBERvdGhlcl9zaWduYXRvcmllc4kBPG1heWJlX3RpbWVwb2ludPkEEGNhbGwlBihtYXhfd2VpZ2h0GAEBBQEAFCR0aHJlc2hvbGQERG90aGVyX3NpZ25hdG9yaWVziQE8bWF5YmVfdGltZXBvaW50+QQkY2FsbF9oYXNoIChtYXhfd2VpZ2h0GAEBBQEAECR0aHJlc2hvbGQERG90aGVyX3NpZ25hdG9yaWVziQEkdGltZXBvaW50aQIkY2FsbF9oYXNoIAEBBQEADCR0aHJlc2hvbGQERG90aGVyX3NpZ25hdG9yaWVziQEkY2FsbF9oYXNoIAEBBQEBBQEADCRhcHByb3ZpbmcAIG11bHRpc2lnACRjYWxsX2hhc2ggAQEFAQAQJGFwcHJvdmluZwAkdGltZXBvaW50aQIgbXVsdGlzaWcAJGNhbGxfaGFzaCABAQUBABQkYXBwcm92aW5nACR0aW1lcG9pbnRpAiBtdWx0aXNpZwAkY2FsbF9oYXNoIBhyZXN1bHRhAgEBBQEAEChjYW5jZWxsaW5nACR0aW1lcG9pbnRpAiBtdWx0aXNpZwAkY2FsbF9oYXNoIAEBBQEAEAx3aG8AJGNhbGxfaGFzaCAsb2xkX2RlcG9zaXQILG5ld19kZXBvc2l0CAEABBBjYWxsJQYBAQUBAAQMbmV3vQMBAQUBAAgMd2hvvQMQY2FsbCUGAQEFAQEFAQAELHN1ZG9fcmVzdWx0YQIBAQUBAAgMb2xkcQIMbmV3AAAAADkGAAAAJAAAAHUFAAAAPQYBAQUASQYAJABNBgAkAFUGACQAWQYAJAAEACAAZQYAIABpBgEABBxhY2NvdW50vQMBAQUBAAQQaW5mb3EFAQEFAQAEEHN1YnN5BQEBBQEACCRyZWdfaW5kZXgEHG1heF9mZWUIAQEFAQAEJHJlZ19pbmRleAQBAQUBAAgUaW5kZXgEDGZlZQgBAQUBAAgUaW5kZXgEDG5ld70DAQEFAQAIFGluZGV4BBhmaWVsZHMIAQEFAQAQJHJlZ19pbmRleAQYdGFyZ2V0vQMkanVkZ2VtZW50fQUgaWRlbnRpdHkgAQEFAQAEGHRhcmdldL0DAQEFAQAIDHN1Yr0DEGRhdGFpBQEBBQEABAxzdWK9AwEBBQEADCRhdXRob3JpdHm9AxhzdWZmaXgkKGFsbG9jYXRpb24EAQEFAQAIGHN1ZmZpeCQkYXV0aG9yaXR5vQMBAQUBABAMd2hvvQMgdXNlcm5hbWUkJHNpZ25hdHVyZY0FOHVzZV9hbGxvY2F0aW9uFAEBBQEABCB1c2VybmFtZSQBAQUBAAwcYWNjb3VudAAkc2lnbmF0dXJliQUgdXNlcm5hbWUkAQEFAQAEKGNyZWRlbnRpYWyRBQEBBQEADBh0aWNrZXQEHGNvbnRleHQkJGp1ZGdlbWVudH0CAQEFAQEFAQAIDHdobwAcZGVwb3NpdAgBAQUBAAgMd2hvADxyZWdpc3RyYXJfaW5kZXgEAQEFAQAIGHRhcmdldAA8cmVnaXN0cmFyX2luZGV4BAEBBQEABDxyZWdpc3RyYXJfaW5kZXgEAQEFAQAMDHN1YgAQbWFpbgAcZGVwb3NpdAgBAQUBAAwQbWFpbgA4bnVtYmVyX29mX3N1YnMELG5ld19kZXBvc2l0CAEBBQEACAxzdWIAEG1haW4AAQEFAQAEJGF1dGhvcml0eQABAQUBAAgMd2hvACB1c2VybmFtZSQBAQUBAAwMd2hvACB1c2VybmFtZSQoZXhwaXJhdGlvbgQBAQUBAAQUd2hvc2UAAQEFAQAEIHVzZXJuYW1lJAEBBQEACCByZXBvcnRlcgAgdXNlcm5hbWUkAQEFAQAMFGFsaWFzIBxhY2NvdW50ACB1c2VybmFtZSQBAQUBAAQUYWxpYXMgAQEFAQAIIHVzZXJuYW1lJCRqdWRnZW1lbnR9AgAEAHUGAAQAyQIABAB5BgAEAIkCACAACAAIACAACACBBgAtAQAAAAAAMQEAAAAIAAQAiQYBAQUAjQYACABdAgEBBQDVAgEACChyaW5nX2luZGV4BBRsaW1pdDUDAQEFAQAIPGJhc2VfcmluZ19pbmRleAREdGFyZ2V0X3JpbmdfaW5kZXgEAQEFAQAIHGFjY291bnQANGNhbGxfdmFsaWRfYXQEAQEFAQAEGHBlb3BsZckCAQEFAQAEHG5ld19rZXkgAQEFAQAEPG9uYm9hcmRpbmdfc2l6ZQQBAQUBAQUBAAgMd2hvCAxrZXkgACAAkQYAZQMABABlAwB9AgAEAKkGAAQArQYABACxBgEBBQC1BgEBBQC9BgEBBQDBBgEACChjYXNlX2luZGV4BBxvcGluaW9ufQIBAQUBAAQoY2FzZV9pbmRleAQBAQUBAAgoY2FzZV9pbmRleAQUdm90ZXIgAQEFAQAIKGNhc2VfaW5kZXgEHHZlcmRpY3R9AgEBBQEABBx2b3VjaGVyIAEBBQEABDBjYXNlX2luZGljZXOJAgEBBQEADBhhbW91bnQIFGNvdW50BBhwZXJpb2QEAQEFAQAEFGluZGV4BAEBBQEACBRyb3VuZAQUdm90ZXIgAQEFAQEFAQAEKGNhc2VfaW5kZXgEAQEFAQAIKGNhc2VfaW5kZXgEHHZlcmRpY3R9AgEBBQEADChjYXNlX2luZGV4BBR2b3RlciAcb3Bpbmlvbn0CAQEFAQAIKGNhc2VfaW5kZXgEFHZvdGVyIAEBBQEACBR2b3RlciAwY2FzZV9pbmRpY2VziQIBAQUBAAgUdm90ZXIgHHZvdWNoZXIgAAAAzQYACADVBgAIAIkBAAQA2QYA1QIA3QYBAQUAqQUA4QYAXQIBAQUArQUBAAQgZXZpZGVuY2UgAQEFAQAMDGtleSAsdm91Y2hlcl9rZXkgSHByb29mX29mX293bmVyc2hpcKEFAQEFAQAQDGtleSAsdm91Y2hlcl9rZXkgUHNlbGZfcmVmX3ZvdWNoZXJfa2V5IEhwcm9vZl9vZl9vd25lcnNoaXChBQEBBQEACBhjaG9pY2WlBShyZXF1aXJlX2lkRQIBAQUBAAQcYWNjb3VudAABAQUBAAwgcmVmZXJyZXIIJHNpZ25hdHVyZYkFGHRpY2tldAABAQUBAAwcaW52aXRlcgAYdGlja2V0ACRzaWduYXR1cmWJBQEBBQEADBRpbmRleAQQa2luZJECCGlkIAEBBQEABBh0aWNrZXQAAQEFAQAELHZvdWNoZXJfa2V5IAEBBQEACBxhY2NvdW50ABRjb3VudAQBAQUBAAgcYWNjb3VudAAUbGltaXQEAQEFAQAEGGNvbmZpZ6kFAQEFAQAIPHJlZmVycmVkX3ZhbHVlc60FPHJlZmVycmVyX3ZhbHVlc60FAQEFAQEFAQAIKGFjY291bnRfaWQAIHJlZmVycmVyCAEBBQEACChhY2NvdW50X2lkACRqdWRnZW1lbnR9AgEBBQEACChhY2NvdW50X2lkACBmYWlsdXJlcwQBAQUBAAgoYWNjb3VudF9pZAAscGVyc29uYWxfaWQIAQEFAQAIIHJlZmVycmVyCCByZWZlcnJlZAABAQUBAAgoYWNjb3VudF9pZAAscmVzZXJ2ZWRfaWQIAQEFAQAEIHJlZmVycmVyCAEBBQEADBRpbmRleAQQa2luZJECCGlkIAEBBQEABBxpbnZpdGVyAAEBBQEACAx3aG8AHGludml0ZXIAAAUEAOUGAAgA6QYABQQAyQIAIAAFBADtBgBdAgClAQD5BgAIAAQBAAwUcHJvb2a1BTR2b3VjaGVyX3ZhbHVlCChyaW5nX2luZGV4BAEBBQEAEBRwcm9vZrUFEGRlc3QANHZvdWNoZXJfdmFsdWUIKHJpbmdfaW5kZXgEAQEFAQAINHZvdWNoZXJfdmFsdWUIKHJpbmdfaW5kZXgEAQEFAQAITHZhcmlhYmxlX3ZvdWNoZXJfaWSlASRuZXdfdmFsdWUIAQEFAQEFAQAMDGtleSA0dm91Y2hlcl92YWx1ZQgocmluZ19pbmRleAQBAQUBAAgMd2hvABRhbGlhcyABAQUBAAgUYWxpYXMgEGRlc3QAAQEFAQAINHZvdWNoZXJfdmFsdWUIKHJpbmdfaW5kZXgEAQEFAQAITHZhcmlhYmxlX3ZvdWNoZXJfaWSlASRuZXdfdmFsdWUIAQEFANEFAP0GAF0CAKECAAEHAKECAAkHAQEFABkHAAQABAChAgCJAgAVBAChAgBlAwChAgEBBQDNBQAgAAAAAACFBQEABDhpZGVudGlmaWVyX2tleYUFAQEFAQAMOGlkZW50aWZpZXJfa2V5hQVEc3RhdGVtZW50X2FjY291bnQADHNpZ4kFAQEFAQAELGZ1bGxfcmVwb3J0xQUBAQUBAAQYcGxheWVyAAEBBQEABDxnYW1lc19zY2hlZHVsZXPNBQEBBQEABDhnYW1lX3BsYXlfdGltZQQBAQUBAAQYcGhhc2Vz0QUBAQUBAQUBAAxEcmVnaXN0cmF0aW9uX2VuZHMEJGdhbWVfZGF0ZQQscmVwb3J0X2VuZHMEAQEFAQAEFGluZGV4BAEBBQEABAx3aG8gAKECACUHACkHAAQABAAtBwEBBQAxBwEBBQA5BwEADBhhbW91bnQIFGNvdW50BCBkdXJhdGlvbgQBAQUBAAQscm91bmRfaW5kZXgEAQEFAQAILHJvdW5kX2luZGV4BBRsaW1pdAQBAQUBAAQMa2V53QUBAQUBAQUBAAgMd2hvoQIcdm91Y2hlciAACAA9BwEABBRjb3VudAQBAQUBAAQIaWQIAQEFAQAEMGlkc19hbmRfa2V5c+kFAQEFAQAEDGlkc+0FAQEFAQEFAQAECGlkCAAAAEUHAQAUJGNhbmRpZGF0ZQBMY2FuZGlkYXRlX3NpZ25hdHVyZYkFMHJpbmdfdnJmX2tleSBIcHJvb2Zfb2Zfb3duZXJzaGlwoQVUY29uc3VtZXJfcmVnaXN0cmF0aW9u+QUBAQUBAQUBAAQgdmVyaWZpZXIAAAAATQcAJAAAACQAUQcBAAw4aWRlbnRpZmllcl9rZXmFBSB1c2VybmFtZSREcmVzZXJ2ZWRfdXNlcm5hbWW9AgEBBQEADFBsaW5rZWRfbGl0ZV9pZGVudGl0eQBMbGl0ZV9pZGVudGl0eV9wcm9vZokFPHVzZXJuYW1lX2Nob2ljZQEGAQEFAQEFAQAIFGFsaWFzIBxhY2NvdW50AAEBBQBZBwAEAGEHANUCAGUHAGkHAG0HAAQAcQcBAQUAWQUBAAQoZXZlbnRfaW5mbwkGAQEFAQAEIGV2ZW50X2lkBAEBBQEACCBldmVudF9pZAQQZGVzdAABAQUBAQUBAAwgZXZlbnRfaWQEOHBhcnRpY2lwYW50X2lkBBRhbGlhcyABAQUBAAgIaWQEFGV2ZW50tQIBAQUAFQYAJABdAgEABBhjdXJzb3IZBgEBBQEADBRpbmRleAQwaW5uZXJfY3Vyc29yvQIoc3RhcnRlZF9hdDUDAQEFAQAEIHNlbGVjdG9yHQYBAQUBAQUBAAQobWlncmF0aW9ucwQBAQUBAAgUaW5kZXgEEHRvb2sEAQEFAQAELG5leHRfY3Vyc29yvQIBAwAACAEDAADJAgEDAAAEAQMIIAgAFAEDAAAFAwEDBHUHAF0CAQMEjQMAeQcBAwAAJAEDBAQAvQIBAwAAiQIBAwQkAIkHAQMAAI0DAQMEkQcAEQMBAwh1B5EHAJUHAQMMmQckIAChBwEDBI0DAF0CAQMEvQIAJAEDBCQArQcBAwQAAAQBAwgkBACxBwEDCCQEAL0HAQMEGAAIAQMEBAAIAQMIJQYEALEHAQMIJQYEAL0HAQMEBADJBwEDBKkEAM0HAQMIGFkEANEHAQMIQQKpBADVBwEDBEECAN0HAQMIIBQAiQIBAwSlAQBFAgEDCOEH9QcAAQgBAwSNAwAFCAEDBCQACQgBAwQNCAC9AgEDAAARCAEDCOEH9QcAGQgdCAEBAQIBAwAQEGZyZWUIIHJlc2VydmVkCBhmcm96ZW4IFGZsYWdzCAAUFG5vbmNlBCRjb25zdW1lcnMEJHByb3ZpZGVycwQsc3VmZmljaWVudHMEEGRhdGEMAQAACCByZWZfdGltZQgocHJvb2Zfc2l6ZQgADBhub3JtYWwYLG9wZXJhdGlvbmFsGCRtYW5kYXRvcnkYBQGABQAFARACFChQcmVSdW50aW1lAAMIKCQkQ29uc2Vuc3VzAAMIKCQQU2VhbAADCCgkFE90aGVyASRkUnVudGltZUVudmlyb25tZW50VXBkYXRlZAABBQQsAAIMOEFwcGx5RXh0cmluc2ljAQQwRmluYWxpemF0aW9uAAEFOEluaXRpYWxpemF0aW9uAAEFAgwYTm9ybWFsAAEFLE9wZXJhdGlvbmFsAAEFJE1hbmRhdG9yeQABBQIIDFllcwABBQhObwABBQAMGHdlaWdodBgUY2xhc3M4IHBheXNfZmVlPAIkPEludmFsaWRTcGVjTmFtZQABBWhTcGVjVmVyc2lvbk5lZWRzVG9JbmNyZWFzZQABBXRGYWlsZWRUb0V4dHJhY3RSdW50aW1lVmVyc2lvbgABBUxOb25EZWZhdWx0Q29tcG9zaXRlAAEFPE5vblplcm9SZWZDb3VudAABBTBDYWxsRmlsdGVyZWQAAQVsTXVsdGlCbG9ja01pZ3JhdGlvbnNPbmdvaW5nAAEFRE5vdGhpbmdBdXRob3JpemVkAAEFMFVuYXV0aG9yaXplZAABBQIYTE92ZXJsYXBwaW5nVXBncmFkZXMAAQVQUHJvaGliaXRlZEJ5UG9sa2Fkb3QAAQUYVG9vQmlnAAEFaFZhbGlkYXRpb25EYXRhTm90QXZhaWxhYmxlAAEFdEhvc3RDb25maWd1cmF0aW9uTm90QXZhaWxhYmxlAAEFME5vdFNjaGVkdWxlZAABBQIwOFZlc3RpbmdCYWxhbmNlAAEFVExpcXVpZGl0eVJlc3RyaWN0aW9ucwABBUxJbnN1ZmZpY2llbnRCYWxhbmNlAAEFSEV4aXN0ZW50aWFsRGVwb3NpdAABBTRFeHBlbmRhYmlsaXR5AAEFXEV4aXN0aW5nVmVzdGluZ1NjaGVkdWxlAAEFLERlYWRBY2NvdW50AAEFPFRvb01hbnlSZXNlcnZlcwABBTBUb29NYW55SG9sZHMAAQU4VG9vTWFueUZyZWV6ZXMAAQVMSXNzdWFuY2VEZWFjdGl2YXRlZAABBSREZWx0YVplcm8AAQUCCBxOb1VzYWdlAAEFHE5vdFplcm8AAQUCXChCYWxhbmNlTG93AAEFJE5vQWNjb3VudAABBTBOb1Blcm1pc3Npb24AAQUcVW5rbm93bgABBRhGcm96ZW4AAQUUSW5Vc2UAAQUoQmFkV2l0bmVzcwABBThNaW5CYWxhbmNlWmVybwABBUxVbmF2YWlsYWJsZUNvbnN1bWVyAAEFLEJhZE1ldGFkYXRhAAEFKFVuYXBwcm92ZWQAAQUgV291bGREaWUAAQU0QWxyZWFkeUV4aXN0cwABBSROb0RlcG9zaXQAAQUkV291bGRCdXJuAAEFJExpdmVBc3NldAABBTBBc3NldE5vdExpdmUAAQU8SW5jb3JyZWN0U3RhdHVzAAEFJE5vdEZyb3plbgABBThDYWxsYmFja0ZhaWxlZAABBShCYWRBc3NldElkAAEFPENvbnRhaW5zRnJlZXplcwABBTRDb250YWluc0hvbGRzAAEFAgQwVG9vTWFueUhvbGRzAAEFAgxAVW5rbm93bkFzc2V0S2luZAABBTRBbHJlYWR5RXhpc3RzAAEFIE92ZXJmbG93AAEFAkREVG9vTWFueUNhbmRpZGF0ZXMAAQVcVG9vRmV3RWxpZ2libGVDb2xsYXRvcnMAAQVAQWxyZWFkeUNhbmRpZGF0ZQABBTBOb3RDYW5kaWRhdGUAAQVQVG9vTWFueUludnVsbmVyYWJsZXMAAQVMQWxyZWFkeUludnVsbmVyYWJsZQABBTxOb3RJbnZ1bG5lcmFibGUAAQVcTm9Bc3NvY2lhdGVkVmFsaWRhdG9ySWQAAQVYVmFsaWRhdG9yTm90UmVnaXN0ZXJlZAABBWxJbnNlcnRUb0NhbmRpZGF0ZUxpc3RGYWlsZWQAAQV0UmVtb3ZlRnJvbUNhbmRpZGF0ZUxpc3RGYWlsZWQAAQU0RGVwb3NpdFRvb0xvdwABBWRVcGRhdGVDYW5kaWRhdGVMaXN0RmFpbGVkAAEFQEluc3VmZmljaWVudEJvbmQAAQVQVGFyZ2V0SXNOb3RDYW5kaWRhdGUAAQVASWRlbnRpY2FsRGVwb3NpdAABBUBJbnZhbGlkVW5yZXNlcnZlAAEFAhQwSW52YWxpZFByb29mAAEFXE5vQXNzb2NpYXRlZFZhbGlkYXRvcklkAAEFNER1cGxpY2F0ZWRLZXkAAQUYTm9LZXlzAAEFJE5vQWNjb3VudAABBQIUOEJhZFF1ZXVlQ29uZmlnAAEFQEFscmVhZHlTdXNwZW5kZWQAAQU4QWxyZWFkeVJlc3VtZWQAAQV0VG9vTWFueUFjdGl2ZU91dGJvdW5kQ2hhbm5lbHMAAQUYVG9vQmlnAAEFAqQgT3ZlcmZsb3cAAQU0VW5pbXBsZW1lbnRlZAABBWBVbnRydXN0ZWRSZXNlcnZlTG9jYXRpb24AAQVkVW50cnVzdGVkVGVsZXBvcnRMb2NhdGlvbgABBTBMb2NhdGlvbkZ1bGwAAQVUTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAEFJEJhZE9yaWdpbgABBTxJbnZhbGlkTG9jYXRpb24AAQU0QXNzZXROb3RGb3VuZAABBVRGYWlsZWRUb1RyYW5zYWN0QXNzZXQAAQU8Tm90V2l0aGRyYXdhYmxlAAEFSExvY2F0aW9uQ2Fubm90SG9sZAABBVRFeGNlZWRzTWF4TWVzc2FnZVNpemUAAQVYRGVzdGluYXRpb25VbnN1cHBvcnRlZAABBSRUcmFuc3BvcnQAAQUoVW5yb3V0YWJsZQABBTBVbmtub3duQ2xhaW0AAQU4RmFpbGVkVG9EZWNvZGUAAQVATWF4V2VpZ2h0SW52YWxpZAABBThOb3RIb2xkaW5nRmVlcwABBTBUb29FeHBlbnNpdmUAAQUQVHJhcAABBUBFeHBlY3RhdGlvbkZhbHNlAAEFOFBhbGxldE5vdEZvdW5kAAEFME5hbWVNaXNtYXRjaAABBUxWZXJzaW9uSW5jb21wYXRpYmxlAAEFUEhvbGRpbmdXb3VsZE92ZXJmbG93AAEFLEV4cG9ydEVycm9yAAEFOFJlYW5jaG9yRmFpbGVkAAEFGE5vRGVhbAABBShGZWVzTm90TWV0AAEFJExvY2tFcnJvcgABBTBOb1Blcm1pc3Npb24AAQUoVW5hbmNob3JlZAABBThOb3REZXBvc2l0YWJsZQABBTRUb29NYW55QXNzZXRzAAEFTFVuaGFuZGxlZFhjbVZlcnNpb24AAQVIV2VpZ2h0TGltaXRSZWFjaGVkAAEFHEJhcnJpZXIAAQVMV2VpZ2h0Tm90Q29tcHV0YWJsZQABBURFeGNlZWRzU3RhY2tMaW1pdAABBQJwLFVucmVhY2hhYmxlAAEFLFNlbmRGYWlsdXJlAAEFIEZpbHRlcmVkAAEFSFVud2VpZ2hhYmxlTWVzc2FnZQABBWBEZXN0aW5hdGlvbk5vdEludmVydGlibGUAAQUURW1wdHkAAQU4Q2Fubm90UmVhbmNob3IAAQU0VG9vTWFueUFzc2V0cwABBTRJbnZhbGlkT3JpZ2luAAEFKEJhZFZlcnNpb24AAQUsQmFkTG9jYXRpb24AAQU4Tm9TdWJzY3JpcHRpb24AAQVEQWxyZWFkeVN1YnNjcmliZWQAAQVYQ2Fubm90Q2hlY2tPdXRUZWxlcG9ydAABBShMb3dCYWxhbmNlAAEFMFRvb01hbnlMb2NrcwABBUxBY2NvdW50Tm90U292ZXJlaWduAAEFKEZlZXNOb3RNZXQAAQUwTG9ja05vdEZvdW5kAAEFFEluVXNlAAEFaEludmFsaWRBc3NldFVua25vd25SZXNlcnZlAAEFeEludmFsaWRBc3NldFVuc3VwcG9ydGVkUmVzZXJ2ZQABBTxUb29NYW55UmVzZXJ2ZXMAAQVgTG9jYWxFeGVjdXRpb25JbmNvbXBsZXRlAAEFYFRvb01hbnlBdXRob3JpemVkQWxpYXNlcwABBTRFeHBpcmVzSW5QYXN0AAEFNEFsaWFzTm90Rm91bmQAAQWETG9jYWxFeGVjdXRpb25JbmNvbXBsZXRlV2l0aEVycm9yAAAIFGluZGV4BBRlcnJvcmwCJCxOb3RSZWFwYWJsZQABBRhOb1BhZ2UAAQUkTm9NZXNzYWdlAAEFQEFscmVhZHlQcm9jZXNzZWQAAQUYUXVldWVkAAEFSEluc3VmZmljaWVudFdlaWdodAABBWBUZW1wb3JhcmlseVVucHJvY2Vzc2FibGUAAQUsUXVldWVQYXVzZWQAAQVMUmVjdXJzaXZlRGlzYWxsb3dlZAABBQIEMFRvb01hbnlDYWxscwABBQI4QE1pbmltdW1UaHJlc2hvbGQAAQU8QWxyZWFkeUFwcHJvdmVkAAEFRE5vQXBwcm92YWxzTmVlZGVkAAEFRFRvb0Zld1NpZ25hdG9yaWVzAAEFSFRvb01hbnlTaWduYXRvcmllcwABBVRTaWduYXRvcmllc091dE9mT3JkZXIAAQVMU2VuZGVySW5TaWduYXRvcmllcwABBSBOb3RGb3VuZAABBSBOb3RPd25lcgABBSxOb1RpbWVwb2ludAABBThXcm9uZ1RpbWVwb2ludAABBUxVbmV4cGVjdGVkVGltZXBvaW50AAEFPE1heFdlaWdodFRvb0xvdwABBTRBbHJlYWR5U3RvcmVkAAEFAgQsUmVxdWlyZVN1ZG8AAQUCpEhUb29NYW55U3ViQWNjb3VudHMAAQUcTm9BbGlhcwABBSBOb3RGb3VuZAABBSBOb3ROYW1lZAABBShFbXB0eUluZGV4AAEFKEZlZUNoYW5nZWQAAQUoTm9JZGVudGl0eQABBTxTdGlja3lKdWRnZW1lbnQAAQU4SnVkZ2VtZW50R2l2ZW4AAQVASW52YWxpZEp1ZGdlbWVudAABBTBJbnZhbGlkSW5kZXgAAQU0SW52YWxpZFRhcmdldAABBURUb29NYW55UmVnaXN0cmFycwABBThBbHJlYWR5Q2xhaW1lZAABBTxBbHJlYWR5UmVwb3J0ZWQAAQUYTm90U3ViAAEFIE5vdE93bmVkAAEFdEp1ZGdlbWVudEZvckRpZmZlcmVudElkZW50aXR5AAEFWEp1ZGdlbWVudFBheW1lbnRGYWlsZWQAAQU0SW52YWxpZFN1ZmZpeAABBVBOb3RVc2VybmFtZUF1dGhvcml0eQABBTBOb0FsbG9jYXRpb24AAQVASW52YWxpZFNpZ25hdHVyZQABBURSZXF1aXJlc1NpZ25hdHVyZQABBTxJbnZhbGlkVXNlcm5hbWUAAQU0VXNlcm5hbWVUYWtlbgABBShOb1VzZXJuYW1lAAEFZE5vdFN5c3RlbVByb3ZpZGVkVXNlcm5hbWUAAQUoTm90RXhwaXJlZAABBSBUb29FYXJseQABBTBOb3RVbmJpbmRpbmcAAQVAQWxyZWFkeVVuYmluZGluZwABBVhJbnN1ZmZpY2llbnRQcml2aWxlZ2VzAAEFKEJhZENvbnRleHQAAQVMVW5leHBlY3RlZEp1ZGdlbWVudAABBTBOb3RTdXBwb3J0ZWQAAQUYQmFubmVkAAEFREFscmVhZHlSZWdpc3RlcmVkAAEFREp1ZGdlbWVudExpc3RGdWxsAAEFbExhc3RVc2VybmFtZVJlcG9ydFRvb1JlY2VudAABBWBVc2VybmFtZUp1ZGdlbWVudE9uZ29pbmcAAQUChCROb3RQZXJzb24AAQUUTm9LZXkAAQU4SW52YWxpZENvbnRleHQAAQU4SW52YWxpZEFjY291bnQAAQUwQWNjb3VudEluVXNlAAEFMEludmFsaWRQcm9vZgABBUBJbnZhbGlkU2lnbmF0dXJlAAEFJE5vTWVtYmVycwABBShJbmNvbXBsZXRlAAEFKFN0aWxsRnJlc2gAAQU4VG9vTWFueU1lbWJlcnMAAQU8S2V5QWxyZWFkeUluVXNlAAEFLEtleU5vdEZvdW5kAAEFMENvdWxkTm90UHVzaAABBRxTYW1lS2V5AAEFVFBlcnNvbmFsSWROb3RSZXNlcnZlZAABBYBQZXJzb25hbElkUmVzZXJ2YXRpb25DYW5ub3RSZW5ldwABBZBQZXJzb25hbElkTm90UmVzZXJ2ZWRPck5vdFJlY29nbml6ZWQAAQUsSW52YWxpZFJpbmcAAQVIU3VzcGVuc2lvbnNQZW5kaW5nAAEFXFJpbmdBYm92ZU1lcmdlVGhyZXNob2xkAAEFSEludmFsaWRTdXNwZW5zaW9ucwABBUROb011dGF0aW9uU2Vzc2lvbgABBXBDb3VsZE5vdFN0YXJ0TXV0YXRpb25TZXNzaW9uAAEFbFN1c3BlbnNpb25TZXNzaW9uSW5Qcm9ncmVzcwABBThUaW1lT3V0T2ZSYW5nZQABBVhBbGlhc0FjY291bnRBbHJlYWR5U2V0AAEFME5vdFN1c3BlbmRlZAABBSRTdXNwZW5kZWQAAQVMSW52YWxpZEtleU1pZ3JhdGlvbgABBUxLZXlBbHJlYWR5U3VzcGVuZGVkAAEFVEludmFsaWRPbmJvYXJkaW5nU2l6ZQABBUBJbnZhbGlkTWVtYmVyS2V5AAEFAlQoTm9TdWNoQ2FzZQABBShOb1N1Y2hWb3RlAAEFHE5vdE9wZW4AAQUcTm90UmlwZQABBRxOb3REb25lAAEFKENvZGVjRXJyb3IAAQU0RGlzcGF0Y2hFcnJvcgABBRhSZWNlbnQAAQUgTm9DcmVkaXQAAQUkTm9Wb3VjaGVyAAEFIE5vUmV3YXJkAAEFIE5vUG9pbnRzAAEFNFRvb01hbnlDbGFpbXMAAQUgTm9QYXlvdXQAAQVIQXJpdGhtZXRpY092ZXJmbG93AAEFQFRvb01hbnlTY2hlZHVsZXMAAQUoTm9TY2hlZHVsZQABBSROb1BlbmFsdHkAAQUURWFybHkAAQUwVW5kZXJQZW5hbHR5AAEFWENhc2VFeHBpcmF0aW9uRGlzYWJsZWQAAQUCrChJblByb2dyZXNzAAEFKE5vUmVmZXJyYWwAAQUoQmFkQ29udGV4dAABBUxVbmV4cGVjdGVkSnVkZ2VtZW50AAEFGE5vQXJncwABBShOb3RBcHBsaWVkAAEFLE5vdFNlbGVjdGVkAAEFJE5vdFByb3ZlbgABBThBbHJlYWR5U3RhcnRlZAABBShPdXRPZlJhbmdlAAEFMEFscmVhZHlUYWtlbgABBTxOb01vcmVSZWZlcnJhbHMAAQUgVG9vRWFybHkAAQU0RGVzaWduSW52YWxpZAABBSxEZXNpZ25UYWtlbgABBSRCYWRQYXJlbnQAAQUkQmFkRmFtaWx5AAEFLFdyb25nRmFtaWx5AAEFLEluZGV4VG9vQmlnAAEFEEJ1c3kAAQUYQmFubmVkAAEFKEltcHJvYmFibGUAAQUoSWRSZXNlcnZlZAABBRhJZFVzZWQAAQU0SW52YWxpZFRpY2tldAABBSBOb1RpY2tldAABBTROb3RBdXRob3JpemVkAAEFJE5vdFBlcnNvbgABBURSZWZlcnJlZENhbmRpZGF0ZQABBVBOb3RSZWZlcnJlZENhbmRpZGF0ZQABBUxOb1ZvdWNoZXJUb1JlZ2lzdGVyAAEFRFZvdWNoZXJUb1JlZ2lzdGVyAAEFJE5vSW52aXRlcgABBUBJbnZhbGlkU2lnbmF0dXJlAAEFJE5vSW52aXRlcwABBThBbHJlYWR5SW52aXRlZAABBShOb1JlZmVycmVyAAEFME5vdFBvaVBlcnNvbgABBVxJbnZhbGlkUHJvb2ZPZk93bmVyc2hpcAABBWhJbnZhbGlkUmVpbWJ1cnNlbWVudFZhbHVlcwABBUBGaXhlZFZvdWNoZXJUeXBlAAEFWE5vUmVmZXJyZWRWb3VjaGVyVmFsdWUAAQVYTm9SZWZlcnJlclZvdWNoZXJWYWx1ZQABBQI4MEludmFsaWRQcm9vZgABBTRBbHJlYWR5TWVtYmVyAAEFNEFscmVhZHlQdXNoZWQAAQU4VG9vTWFueU1lbWJlcnMAAQUYTm9Sb290AAEFJE5vTWVtYmVycwABBSxOb25FeGlzdGVudAABBTBBbHJlYWR5U3BlbnQAAQU0UGF5b3V0RmFpbHVyZQABBThEZXBvc2l0RmFpbHVyZQABBSROb1ZvdWNoZXIAAQVASW52YWxpZFJpbmdTdGF0ZQABBTxDbGVhbk5vdEluT3JkZXIAAQU4UmluZ05vdEV4cGlyZWQAAQUCbCxHYW1lT25nb2luZwABBThOb1JlZ2lzdHJhdGlvbgABBURPdXRkYXRlZEdhbWVTZXR1cAABBUBJbnZhbGlkR2FtZVNldHVwAAEFNEludmFsaWRSZXBvcnQAAQUYTm9HYW1lAAEFLE5vUmVwb3J0aW5nAAEFNE5vdFJlZ2lzdGVyZWQAAQVEQWxyZWFkeVJlZ2lzdGVyZWQAAQVEUmVwb3J0QWxyZWFkeVNlbnQAAQUURWFybHkAAQVETm90S2lja2FibGVQbGF5ZXIAAQVATm9BcmNoaXZlZFBsYXllcgABBSBOb1RpY2tldAABBSROb0ludml0ZXMAAQU4QWxyZWFkeUludml0ZWQAAQVATm90QWNjb3VudFBsYXllcgABBWhVc2VJbnZpdGVCdXRBbHJlYWR5UGxheWluZwABBVBUb29NYW55R2FtZVNjaGVkdWxlcwABBUxOb1N1Y2hHYW1lU2NoZWR1bGVkAAEFgEludmFsaWRTdGF0ZW1lbnRBY2NvdW50U2lnbmF0dXJlAAEFcFN0YXRlbWVudEFjY291bnRBbHJlYWR5SW5Vc2UAAQVkSW50ZXJuYWxFcnJvckludmFsaWRTdGF0ZQABBUBJbnZhbGlkR2FtZVN0YXRlAAEFIE5vUGxheWVyAAEFkENhbm5vdE9mZmJvYXJkV2hpbGVSZWdpc3RlcmVkRm9yR2FtZQABBTBJbnZhbGlkU3RhdGUAAQUCSCROb3RQZXJzb24AAQVcSGFzTm90UmVhY2hlZFBlcnNvbmhvb2QAAQUgTm9SZXdhcmQAAQUcTm9TY29yZQABBShOb1NjaGVkdWxlAAEFQFRvb01hbnlTY2hlZHVsZXMAAQUoUmVjb2duaXplZAABBTxDYXNoT3V0Q29vbGRvd24AAQVgUm91bmRPbkdvaW5nT3JOb1NjaGVkdWxlAAEFHE5vUm91bmQAAQVsQmFkT3JpZ2luTm90UGVyc29uTm90U2lnbmVkAAEFwEJhZE9yaWdpbk5vdFBlcnNvbk5vdFNpZ25lZE5vdEFjY291bnRQYXJ0aWNpcGFudAABBZxCYWRPcmlnaW5Ob3RTaWduZWROb3RBY2NvdW50UGFydGljaXBhbnQAAQVQQWxyZWFkeVBhcnRpY2lwYXRpbmcAAQVES2V5TXVzdEJlUHJvdmlkZWQAAQVQS2V5TXVzdE5vdEJlUHJvdmlkZWQAAQVQSGFzUmVhY2hlZFBlcnNvbmhvb2QAAQVcSW52YWxpZFByb29mT2ZPd25lcnNoaXAAAQUCECROb3RQZXJzb24AAQUwTm90U3VzcGVuZGVkAAEFLE5vdFJlc2VydmVkAAEFNFRvb01hbnlQZW9wbGUAAQUCEFhOb0F0dGVzdGF0aW9uQWxsb3dhbmNlAAEFbEludmFsaWRBdHRlc3RhdGlvblNpZ25hdHVyZQABBVxJbnZhbGlkUHJvb2ZPZk93bmVyc2hpcAABBURBbHJlYWR5UmVnaXN0ZXJlZAABBQI0PEludmFsaWRVc2VybmFtZQABBTRVc2VybmFtZVRha2VuAAEFREFscmVhZHlSZWdpc3RlcmVkAAEFXEludmFsaWRQcm9vZk9mT3duZXJzaGlwAAEFNE5vdFJlZ2lzdGVyZWQAAQU0Tm90RnVsbFBlcnNvbgABBTRUb3VjaE5vdFJlYWR5AAEFNE5vUmVzZXJ2YXRpb24AAQVgSW52YWxpZFVzZXJuYW1lU2lnbmF0dXJlAAEFYFVzZXJuYW1lUmVzZXJ2YXRpb25UYWtlbgABBUBSZXNlcnZhdGlvbkZyZXNoAAEFQE5vTGlua2VkSWRlbnRpdHkAAQU0QWxyZWFkeUxpbmtlZAABBQIkNE5vQWN0aXZlRXZlbnQAAQUoTm90QVBlcnNvbgABBVhBbGlhc0FscmVhZHlSZWdpc3RlcmVkAAEFcEludmFsaWRFdmVudFJlZ2lzdHJhdGlvblRpbWUAAQVUUGFydGljaXBhbnRJZE92ZXJmbG93AAEFWE5vUHJpemVUb0NsYWltRm9yRXZlbnQAAQUwTm9FdmVudEZvdW5kAAEFMFNjaGVkdWxlRnVsbAABBYhQcml6ZU11c3RCZU1vcmVPckVxdWFsVG9NaW5CYWxhbmNlAAEFAgQcT25nb2luZwABBQKcGFN5c3RlbQFEPFBhcmFjaGFpblN5c3RlbQFIJFRpbWVzdGFtcAABBTRQYXJhY2hhaW5JbmZvAAEFNFdlaWdodFJlY2xhaW0AAQUgQmFsYW5jZXMBTEhUcmFuc2FjdGlvblBheW1lbnQAAQVIU2tpcEZlZWxlc3NQYXltZW50AAEFRE9yaWdpblJlc3RyaWN0aW9uAVAYQXNzZXRzAVQwQXNzZXRzSG9sZGVyAVgkQXNzZXRSYXRlAVw4QXNzZXRUeFBheW1lbnQAAQUoQXV0aG9yc2hpcAABBURDb2xsYXRvclNlbGVjdGlvbgFgHFNlc3Npb24BZBBBdXJhAAEFHEF1cmFFeHQAAQUkWGNtcFF1ZXVlAWgsUG9sa2Fkb3RYY20BcChDdW11bHVzWGNtAAEFME1lc3NhZ2VRdWV1ZQF0HFV0aWxpdHkBeCBNdWx0aXNpZwF8EFN1ZG8BgDxWZXJpZnlTaWduYXR1cmUAAQUgSWRlbnRpdHkBhBhQZW9wbGUBiBxNb2JSdWxlAYwoUHJvb2ZPZkluawGQOFByaXZhY3lWb3VjaGVyAZQQR2FtZQGYFFNjb3JlAZwgRHVtbXlEaW0BoChQZW9wbGVMaXRlAaQkUmVzb3VyY2VzAahUU3RvcmFnZUluaXRpYWxpemF0aW9uAAEFHExvdHRlcnkBrFBNdWx0aUJsb2NrTWlncmF0aW9ucwGwAihARnVuZHNVbmF2YWlsYWJsZQABBTBPbmx5UHJvdmlkZXIAAQUwQmVsb3dNaW5pbXVtAAEFMENhbm5vdENyZWF0ZQABBTBVbmtub3duQXNzZXQAAQUYRnJvemVuAAEFLFVuc3VwcG9ydGVkAAEFQENhbm5vdENyZWF0ZUhvbGQAAQU0Tm90RXhwZW5kYWJsZQABBRxCbG9ja2VkAAEFAgwkVW5kZXJmbG93AAEFIE92ZXJmbG93AAEFOERpdmlzaW9uQnlaZXJvAAEFAggwTGltaXRSZWFjaGVkAAEFHE5vTGF5ZXIAAQUCOEBJbnZhbGlkU3RhdGVSb290AAEFSEluY29tcGxldGVEYXRhYmFzZQABBVBWYWx1ZUF0SW5jb21wbGV0ZUtleQABBTBEZWNvZGVyRXJyb3IAAQUsSW52YWxpZEhhc2gAAQUwRHVwbGljYXRlS2V5AAEFOEV4dHJhbmVvdXNOb2RlAAEFPEV4dHJhbmVvdXNWYWx1ZQABBVxFeHRyYW5lb3VzSGFzaFJlZmVyZW5jZQABBVRJbnZhbGlkQ2hpbGRSZWZlcmVuY2UAAQU0VmFsdWVNaXNtYXRjaAABBTxJbmNvbXBsZXRlUHJvb2YAAQUwUm9vdE1pc21hdGNoAAEFLERlY29kZUVycm9yAAEFAjwUT3RoZXIAAQUwQ2Fubm90TG9va3VwAAEFJEJhZE9yaWdpbgABBRhNb2R1bGUBtERDb25zdW1lclJlbWFpbmluZwABBSxOb1Byb3ZpZGVycwABBUBUb29NYW55Q29uc3VtZXJzAAEFFFRva2VuAbgoQXJpdGhtZXRpYwG8NFRyYW5zYWN0aW9uYWwBwCRFeGhhdXN0ZWQAAQUoQ29ycnVwdGlvbgABBSxVbmF2YWlsYWJsZQABBThSb290Tm90QWxsb3dlZAABBRBUcmllAcQCIEBFeHRyaW5zaWNTdWNjZXNzAAAENGRpc3BhdGNoX2luZm9APEV4dHJpbnNpY0ZhaWxlZAAACDhkaXNwYXRjaF9lcnJvcsg0ZGlzcGF0Y2hfaW5mb0AsQ29kZVVwZGF0ZWQAAQUoTmV3QWNjb3VudAAABBxhY2NvdW50ADRLaWxsZWRBY2NvdW50AAAEHGFjY291bnQAIFJlbWFya2VkAAAIGHNlbmRlcgAQaGFzaCBEVXBncmFkZUF1dGhvcml6ZWQAAAgkY29kZV9oYXNoIDRjaGVja192ZXJzaW9uFIBSZWplY3RlZEludmFsaWRBdXRob3JpemVkVXBncmFkZQAACCRjb2RlX2hhc2ggFGVycm9yyAYgAhhgVmFsaWRhdGlvbkZ1bmN0aW9uU3RvcmVkAAEFZFZhbGlkYXRpb25GdW5jdGlvbkFwcGxpZWQAAARUcmVsYXlfY2hhaW5fYmxvY2tfbnVtBGxWYWxpZGF0aW9uRnVuY3Rpb25EaXNjYXJkZWQAAQVgRG93bndhcmRNZXNzYWdlc1JlY2VpdmVkAAAEFGNvdW50BGREb3dud2FyZE1lc3NhZ2VzUHJvY2Vzc2VkAAAILHdlaWdodF91c2VkGCBkbXFfaGVhZCBEVXB3YXJkTWVzc2FnZVNlbnQAAAQwbWVzc2FnZV9oYXNo0AIIEEZyZWUAAQUgUmVzZXJ2ZWQAAQUCWBxFbmRvd2VkAAAIHGFjY291bnQAMGZyZWVfYmFsYW5jZQggRHVzdExvc3QAAAgcYWNjb3VudAAYYW1vdW50CCBUcmFuc2ZlcgAADBBmcm9tAAh0bwAYYW1vdW50CChCYWxhbmNlU2V0AAAIDHdobwAQZnJlZQggUmVzZXJ2ZWQAAAgMd2hvABhhbW91bnQIKFVucmVzZXJ2ZWQAAAgMd2hvABhhbW91bnQISFJlc2VydmVSZXBhdHJpYXRlZAAAEBBmcm9tAAh0bwAYYW1vdW50CEhkZXN0aW5hdGlvbl9zdGF0dXPYHERlcG9zaXQAAAgMd2hvABhhbW91bnQIIFdpdGhkcmF3AAAIDHdobwAYYW1vdW50CBxTbGFzaGVkAAAIDHdobwAYYW1vdW50CBhNaW50ZWQAAAgMd2hvABhhbW91bnQIGEJ1cm5lZAAACAx3aG8AGGFtb3VudAgkU3VzcGVuZGVkAAAIDHdobwAYYW1vdW50CCBSZXN0b3JlZAAACAx3aG8AGGFtb3VudAggVXBncmFkZWQAAAQMd2hvABhJc3N1ZWQAAAQYYW1vdW50CCRSZXNjaW5kZWQAAAQYYW1vdW50CBhMb2NrZWQAAAgMd2hvABhhbW91bnQIIFVubG9ja2VkAAAIDHdobwAYYW1vdW50CBhGcm96ZW4AAAgMd2hvABhhbW91bnQIGFRoYXdlZAAACAx3aG8AGGFtb3VudAhMVG90YWxJc3N1YW5jZUZvcmNlZAAACAxvbGQIDG5ldwgCBEhUcmFuc2FjdGlvbkZlZVBhaWQAAAwMd2hvAChhY3R1YWxfZmVlCAx0aXAIAhAQUm9vdAABBRhTaWduZWQBABBOb25lAAEFKEF1dGhvcml6ZWQAAQUCICRCeUdlbmVzaXMBIBhCeUZvcmsAAAgwYmxvY2tfbnVtYmVyCChibG9ja19oYXNoICBQb2xrYWRvdAABBRhLdXNhbWEAAQUgRXRoZXJldW0AAAQgY2hhaW5faWQILEJpdGNvaW5Db3JlAAEFLEJpdGNvaW5DYXNoAAEFQFBvbGthZG90QnVsbGV0aW4AAQUG6AUBUAIoEFVuaXQAAQUcTW9uaWtlcgEoFEluZGV4AQQkRXhlY3V0aXZlAAEFJFRlY2huaWNhbAABBSxMZWdpc2xhdGl2ZQABBSBKdWRpY2lhbAABBRxEZWZlbnNlAAEFOEFkbWluaXN0cmF0aW9uAAEFIFRyZWFzdXJ5AAEFAhQUVm9pY2UAAQUcTWVtYmVycwAABBRjb3VudAQgRnJhY3Rpb24AAAgMbm9tBBRkZW5vbQREQXRMZWFzdFByb3BvcnRpb24AAAgMbm9tBBRkZW5vbQRITW9yZVRoYW5Qcm9wb3J0aW9uAAAIDG5vbQQUZGVub20EAigkUGFyYWNoYWluAQQsQWNjb3VudElkMzIAAAgcbmV0d29ya+wIaWQgOEFjY291bnRJbmRleDY0AAAIHG5ldHdvcmvsFGluZGV4CDBBY2NvdW50S2V5MjAAAAgcbmV0d29ya+wMa2V58DhQYWxsZXRJbnN0YW5jZQEEMEdlbmVyYWxJbmRleAEIKEdlbmVyYWxLZXkAAAgYbGVuZ3RoBBBkYXRhICRPbmx5Q2hpbGQAAQUkUGx1cmFsaXR5AAAICGlk9BBwYXJ0+DxHbG9iYWxDb25zZW5zdXMB6AT8AQgE/AEMBPwBEAT8ARQE/AEYBPwBHAT8ASACJBBIZXJlAAEFCFgxAfwIWDIBAQEIWDMBBQEIWDQBCQEIWDUBDQEIWDYBEQEIWDcBFQEIWDgBGQEACBxwYXJlbnRzBCBpbnRlcmlvch0BAggMWGNtASEBIFJlc3BvbnNlASEBAggUUmVsYXkAAQVAU2libGluZ1BhcmFjaGFpbgEEAAgUYWxpYXMgHGNvbnRleHQgAAwgcmV2aXNpb24EEHJpbmcECGNhLQECCEBQZXJzb25hbElkZW50aXR5AQg0UGVyc29uYWxBbGlhcwExAQIMWEF1dGhvcml6ZWRBcHBseVdpdGhTaWcBAERSZWZlcnJlZENhbmRpZGF0ZQEAQEludml0ZWRDYW5kaWRhdGUBAAIEWEF1dGhvcml6ZWRWb3VjaGVyQ2xhaW0AAwggAAIEHEludml0ZWQBAAIESEFjY291bnRQYXJ0aWNpcGFudAEAAgQoTGl0ZVBlcnNvbgEAAiQYc3lzdGVtAeQsUG9sa2Fkb3RYY20BJQEoQ3VtdWx1c1hjbQEpARhQZW9wbGUBNQEoUHJvb2ZPZkluawE5AThQcml2YWN5Vm91Y2hlcgE9ARBHYW1lAUEBFFNjb3JlAUUBKFBlb3BsZUxpdGUBSQECBChGZWVTa2lwcGVkAAAEGG9yaWdpbk0BAhg0UGVyc29uYWxBbGlhcwEgQFBlcnNvbmFsSWRlbnRpdHkBCERSZWZlcnJlZENhbmRpZGF0ZQEASEFjY291bnRQYXJ0aWNpcGFudAEAQEludml0ZWRDYW5kaWRhdGUBAChMaXRlUGVyc29uAQACBDBVc2FnZUNsZWFuZWQAAAQYZW50aXR5VQECaBxDcmVhdGVkAAAMIGFzc2V0X2lkIQEcY3JlYXRvcgAUb3duZXIAGElzc3VlZAAADCBhc3NldF9pZCEBFG93bmVyABhhbW91bnQILFRyYW5zZmVycmVkAAAQIGFzc2V0X2lkIQEQZnJvbQAIdG8AGGFtb3VudAgYQnVybmVkAAAMIGFzc2V0X2lkIQEUb3duZXIAHGJhbGFuY2UILFRlYW1DaGFuZ2VkAAAQIGFzc2V0X2lkIQEYaXNzdWVyABRhZG1pbgAcZnJlZXplcgAwT3duZXJDaGFuZ2VkAAAIIGFzc2V0X2lkIQEUb3duZXIAGEZyb3plbgAACCBhc3NldF9pZCEBDHdobwAYVGhhd2VkAAAIIGFzc2V0X2lkIQEMd2hvACxBc3NldEZyb3plbgAABCBhc3NldF9pZCEBLEFzc2V0VGhhd2VkAAAEIGFzc2V0X2lkIQFEQWNjb3VudHNEZXN0cm95ZWQAAAwgYXNzZXRfaWQhAUhhY2NvdW50c19kZXN0cm95ZWQESGFjY291bnRzX3JlbWFpbmluZwRIQXBwcm92YWxzRGVzdHJveWVkAAAMIGFzc2V0X2lkIQFMYXBwcm92YWxzX2Rlc3Ryb3llZARMYXBwcm92YWxzX3JlbWFpbmluZwRIRGVzdHJ1Y3Rpb25TdGFydGVkAAAEIGFzc2V0X2lkIQEkRGVzdHJveWVkAAAEIGFzc2V0X2lkIQEwRm9yY2VDcmVhdGVkAAAIIGFzc2V0X2lkIQEUb3duZXIALE1ldGFkYXRhU2V0AAAUIGFzc2V0X2lkIQEQbmFtZSQYc3ltYm9sJCBkZWNpbWFscwQkaXNfZnJvemVuFDxNZXRhZGF0YUNsZWFyZWQAAAQgYXNzZXRfaWQhAUBBcHByb3ZlZFRyYW5zZmVyAAAQIGFzc2V0X2lkIQEYc291cmNlACBkZWxlZ2F0ZQAYYW1vdW50CERBcHByb3ZhbENhbmNlbGxlZAAADCBhc3NldF9pZCEBFG93bmVyACBkZWxlZ2F0ZQBMVHJhbnNmZXJyZWRBcHByb3ZlZAAAFCBhc3NldF9pZCEBFG93bmVyACBkZWxlZ2F0ZQAsZGVzdGluYXRpb24AGGFtb3VudAhIQXNzZXRTdGF0dXNDaGFuZ2VkAAAEIGFzc2V0X2lkIQFYQXNzZXRNaW5CYWxhbmNlQ2hhbmdlZAAACCBhc3NldF9pZCEBPG5ld19taW5fYmFsYW5jZQgcVG91Y2hlZAAADCBhc3NldF9pZCEBDHdobwAkZGVwb3NpdG9yABxCbG9ja2VkAAAIIGFzc2V0X2lkIQEMd2hvACREZXBvc2l0ZWQAAAwgYXNzZXRfaWQhAQx3aG8AGGFtb3VudAgkV2l0aGRyYXduAAAMIGFzc2V0X2lkIQEMd2hvABhhbW91bnQIAgQ4QXV0aG9yaXplQWxpYXMAAQUCCBhQYXlvdXQAAQUYQ3JlZGl0AAEFAgQoUHJvb2ZPZkluawABBQIEIFBsYXlHYW1lAAEFAgQcTG90dGVyeQABBQIYLFBvbGthZG90WGNtAWEBHE1vYlJ1bGUBZQEoUHJvb2ZPZkluawFpARBHYW1lAW0BFFNjb3JlAWUBHExvdHRlcnkBcQECDBBIZWxkAAAQDHdobwAgYXNzZXRfaWQhARhyZWFzb251ARhhbW91bnQIIFJlbGVhc2VkAAAQDHdobwAgYXNzZXRfaWQhARhyZWFzb251ARhhbW91bnQIGEJ1cm5lZAAAEAx3aG8AIGFzc2V0X2lkIQEYcmVhc29udQEYYW1vdW50CAIMQEFzc2V0UmF0ZUNyZWF0ZWQAAAgoYXNzZXRfa2luZCEBEHJhdGUIQEFzc2V0UmF0ZVJlbW92ZWQAAAQoYXNzZXRfa2luZCEBQEFzc2V0UmF0ZVVwZGF0ZWQAAAwoYXNzZXRfa2luZCEBDG9sZAgMbmV3CAYhAQIEOEFzc2V0VHhGZWVQYWlkAAAQDHdobwAoYWN0dWFsX2ZlZQgMdGlwCCBhc3NldF9pZIEBBAAAAihATmV3SW52dWxuZXJhYmxlcwAABDRpbnZ1bG5lcmFibGVziQFESW52dWxuZXJhYmxlQWRkZWQAAAQoYWNjb3VudF9pZABMSW52dWxuZXJhYmxlUmVtb3ZlZAAABChhY2NvdW50X2lkAFBOZXdEZXNpcmVkQ2FuZGlkYXRlcwAABEhkZXNpcmVkX2NhbmRpZGF0ZXMEQE5ld0NhbmRpZGFjeUJvbmQAAAQsYm9uZF9hbW91bnQIOENhbmRpZGF0ZUFkZGVkAAAIKGFjY291bnRfaWQAHGRlcG9zaXQIUENhbmRpZGF0ZUJvbmRVcGRhdGVkAAAIKGFjY291bnRfaWQAHGRlcG9zaXQIQENhbmRpZGF0ZVJlbW92ZWQAAAQoYWNjb3VudF9pZABEQ2FuZGlkYXRlUmVwbGFjZWQAAAwMb2xkAAxuZXcAHGRlcG9zaXQIaEludmFsaWRJbnZ1bG5lcmFibGVTa2lwcGVkAAAEKGFjY291bnRfaWQAAhAoTmV3U2Vzc2lvbgAABDRzZXNzaW9uX2luZGV4BCROZXdRdWV1ZWQAAQVEVmFsaWRhdG9yRGlzYWJsZWQAAAQkdmFsaWRhdG9yAEhWYWxpZGF0b3JSZWVuYWJsZWQAAAQkdmFsaWRhdG9yAAIEPFhjbXBNZXNzYWdlU2VudAAABDBtZXNzYWdlX2hhc2ggAqQgT3ZlcmZsb3cAAQU0VW5pbXBsZW1lbnRlZAABBWBVbnRydXN0ZWRSZXNlcnZlTG9jYXRpb24AAQVkVW50cnVzdGVkVGVsZXBvcnRMb2NhdGlvbgABBTBMb2NhdGlvbkZ1bGwAAQVUTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAEFJEJhZE9yaWdpbgABBTxJbnZhbGlkTG9jYXRpb24AAQU0QXNzZXROb3RGb3VuZAABBVRGYWlsZWRUb1RyYW5zYWN0QXNzZXQAAQU8Tm90V2l0aGRyYXdhYmxlAAEFSExvY2F0aW9uQ2Fubm90SG9sZAABBVRFeGNlZWRzTWF4TWVzc2FnZVNpemUAAQVYRGVzdGluYXRpb25VbnN1cHBvcnRlZAABBSRUcmFuc3BvcnQAAQUoVW5yb3V0YWJsZQABBTBVbmtub3duQ2xhaW0AAQU4RmFpbGVkVG9EZWNvZGUAAQVATWF4V2VpZ2h0SW52YWxpZAABBThOb3RIb2xkaW5nRmVlcwABBTBUb29FeHBlbnNpdmUAAQUQVHJhcAEIQEV4cGVjdGF0aW9uRmFsc2UAAQU4UGFsbGV0Tm90Rm91bmQAAQUwTmFtZU1pc21hdGNoAAEFTFZlcnNpb25JbmNvbXBhdGlibGUAAQVQSG9sZGluZ1dvdWxkT3ZlcmZsb3cAAQUsRXhwb3J0RXJyb3IAAQU4UmVhbmNob3JGYWlsZWQAAQUYTm9EZWFsAAEFKEZlZXNOb3RNZXQAAQUkTG9ja0Vycm9yAAEFME5vUGVybWlzc2lvbgABBShVbmFuY2hvcmVkAAEFOE5vdERlcG9zaXRhYmxlAAEFNFRvb01hbnlBc3NldHMAAQVMVW5oYW5kbGVkWGNtVmVyc2lvbgABBUhXZWlnaHRMaW1pdFJlYWNoZWQBGBxCYXJyaWVyAAEFTFdlaWdodE5vdENvbXB1dGFibGUAAQVERXhjZWVkc1N0YWNrTGltaXQAAQUACBRpbmRleAQUZXJyb3KZAQIMIENvbXBsZXRlAAAEEHVzZWQYKEluY29tcGxldGUAAAgQdXNlZBgUZXJyb3KdARRFcnJvcgGdAQUBIAUBQAIYJFVuZGVmaW5lZAABBRRJbmRleAEIGEFycmF5NAEoGEFycmF5OAGlARxBcnJheTE2AakBHEFycmF5MzIBIAIIIEZ1bmdpYmxlAQgsTm9uRnVuZ2libGUBrQEACAhpZCEBDGZ1brEBBLUBAAMIBJkBBr0BABgUaW5kZXgEEG5hbWUkLG1vZHVsZV9uYW1lJBRtYWpvcgQUbWlub3IEFHBhdGNoBATFAQACDBxTdWNjZXNzAAEFFEVycm9yASQ4VHJ1bmNhdGVkRXJyb3IBJAIYEE51bGwAAQUYQXNzZXRzAbkBPEV4ZWN1dGlvblJlc3VsdAHBARxWZXJzaW9uAQQsUGFsbGV0c0luZm8ByQE4RGlzcGF0Y2hSZXN1bHQBzQECEBhOYXRpdmUAAQVAU292ZXJlaWduQWNjb3VudAABBSRTdXBlcnVzZXIAAQUMWGNtAAEFBhgADCxkZXN0aW5hdGlvbiEBIHF1ZXJ5X2lkCChtYXhfd2VpZ2h0GAIIIEZ1bmdpYmxlAAEFLE5vbkZ1bmdpYmxlAAEFAhAMQWxsAAEFFEFsbE9mAAAICGlkIQEMZnVu4QEoQWxsQ291bnRlZAEEMEFsbE9mQ291bnRlZAAADAhpZCEBDGZ1buEBFGNvdW50BAIIIERlZmluaXRlAbkBEFdpbGQB5QECCCRVbmxpbWl0ZWQAAQUcTGltaXRlZAEYAgwgVGVsZXBvcnQB6QE4UmVzZXJ2ZURlcG9zaXQB6QE8UmVzZXJ2ZVdpdGhkcmF3AekBBvEBBPEBAAYdAQIEMEFzc2V0Q2xhaW1lcgAABCBsb2NhdGlvbiEBBAECAALQNFdpdGhkcmF3QXNzZXQBuQFUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkAbkBWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQBuQE0UXVlcnlSZXNwb25zZQAAECBxdWVyeV9pZAggcmVzcG9uc2XRAShtYXhfd2VpZ2h0GBxxdWVyaWVygQE0VHJhbnNmZXJBc3NldAAACBhhc3NldHO5ASxiZW5lZmljaWFyeSEBUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0AAAMGGFzc2V0c7kBEGRlc3QhAQx4Y20NAiBUcmFuc2FjdAAADCxvcmlnaW5fa2luZNUBTGZhbGxiYWNrX21heF93ZWlnaHTZARBjYWxsJGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0AAAMGHNlbmRlcgRAbWF4X21lc3NhZ2Vfc2l6ZQQwbWF4X2NhcGFjaXR5BExIcm1wQ2hhbm5lbEFjY2VwdGVkAAAEJHJlY2lwaWVudARISHJtcENoYW5uZWxDbG9zaW5nAAAMJGluaXRpYXRvcgQYc2VuZGVyBCRyZWNpcGllbnQELENsZWFyT3JpZ2luAAEFNERlc2NlbmRPcmlnaW4BHQEsUmVwb3J0RXJyb3IB3QEwRGVwb3NpdEFzc2V0AAAIGGFzc2V0c+kBLGJlbmVmaWNpYXJ5IQFMRGVwb3NpdFJlc2VydmVBc3NldAAADBhhc3NldHPpARBkZXN0IQEMeGNtDQI0RXhjaGFuZ2VBc3NldAAADBBnaXZl6QEQd2FudLkBHG1heGltYWwUXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3AAAMGGFzc2V0c+kBHHJlc2VydmUhAQx4Y20NAkBJbml0aWF0ZVRlbGVwb3J0AAAMGGFzc2V0c+kBEGRlc3QhAQx4Y20NAjRSZXBvcnRIb2xkaW5nAAAINHJlc3BvbnNlX2luZm/dARhhc3NldHPpATBCdXlFeGVjdXRpb24AAAgQZmVlc7UBMHdlaWdodF9saW1pdO0BNFJlZnVuZFN1cnBsdXMAAQU8U2V0RXJyb3JIYW5kbGVyAQ0CLFNldEFwcGVuZGl4AQ0CKENsZWFyRXJyb3IAAQUoQ2xhaW1Bc3NldAAACBhhc3NldHO5ARh0aWNrZXQhARBUcmFwAQhAU3Vic2NyaWJlVmVyc2lvbgAACCBxdWVyeV9pZAhMbWF4X3Jlc3BvbnNlX3dlaWdodBhIVW5zdWJzY3JpYmVWZXJzaW9uAAEFJEJ1cm5Bc3NldAG5ASxFeHBlY3RBc3NldAG5ATBFeHBlY3RPcmlnaW4BgQEsRXhwZWN0RXJyb3IBwQFQRXhwZWN0VHJhbnNhY3RTdGF0dXMBzQEsUXVlcnlQYWxsZXQAAAgsbW9kdWxlX25hbWUkNHJlc3BvbnNlX2luZm/dATBFeHBlY3RQYWxsZXQAABQUaW5kZXgEEG5hbWUkLG1vZHVsZV9uYW1lJCxjcmF0ZV9tYWpvcgQ8bWluX2NyYXRlX21pbm9yBFBSZXBvcnRUcmFuc2FjdFN0YXR1cwHdAUxDbGVhclRyYW5zYWN0U3RhdHVzAAEFPFVuaXZlcnNhbE9yaWdpbgH8NEV4cG9ydE1lc3NhZ2UAAAwcbmV0d29ya+gsZGVzdGluYXRpb24dAQx4Y20NAiRMb2NrQXNzZXQAAAgUYXNzZXS1ASB1bmxvY2tlciEBLFVubG9ja0Fzc2V0AAAIFGFzc2V0tQEYdGFyZ2V0IQE4Tm90ZVVubG9ja2FibGUAAAgUYXNzZXS1ARRvd25lciEBNFJlcXVlc3RVbmxvY2sAAAgUYXNzZXS1ARhsb2NrZXIhASxTZXRGZWVzTW9kZQAABDBqaXRfd2l0aGRyYXcUIFNldFRvcGljASAoQ2xlYXJUb3BpYwABBSxBbGlhc09yaWdpbgEhATxVbnBhaWRFeGVjdXRpb24AAAgwd2VpZ2h0X2xpbWl07QEwY2hlY2tfb3JpZ2lugQEcUGF5RmVlcwAABBRhc3NldLUBQEluaXRpYXRlVHJhbnNmZXIAABQsZGVzdGluYXRpb24hASxyZW1vdGVfZmVlc/UBPHByZXNlcnZlX29yaWdpbhQYYXNzZXRz+QEocmVtb3RlX3hjbQ0CREV4ZWN1dGVXaXRoT3JpZ2luAAAIRGRlc2NlbmRhbnRfb3JpZ2lu/QEMeGNtDQIgU2V0SGludHMAAAQUaGludHMFAgQJAgACHDROb3RBcHBsaWNhYmxlAAEFJFRyYW5zcG9ydAABBShVbnJvdXRhYmxlAAEFWERlc3RpbmF0aW9uVW5zdXBwb3J0ZWQAAQVURXhjZWVkc01heE1lc3NhZ2VTaXplAAEFPE1pc3NpbmdBcmd1bWVudAABBRBGZWVzAAEFAiwkQnlHZW5lc2lzASAYQnlGb3JrAAAIMGJsb2NrX251bWJlcggoYmxvY2tfaGFzaCAgUG9sa2Fkb3QAAQUYS3VzYW1hAAEFHFdlc3RlbmQAAQUYUm9jb2NvAAEFGFdvY29jbwABBSBFdGhlcmV1bQAABCBjaGFpbl9pZAgsQml0Y29pbkNvcmUAAQUsQml0Y29pbkNhc2gAAQVAUG9sa2Fkb3RCdWxsZXRpbgABBQYVAgIoJFBhcmFjaGFpbgEELEFjY291bnRJZDMyAAAIHG5ldHdvcmsZAghpZCA4QWNjb3VudEluZGV4NjQAAAgcbmV0d29yaxkCFGluZGV4CDBBY2NvdW50S2V5MjAAAAgcbmV0d29yaxkCDGtlefA4UGFsbGV0SW5zdGFuY2UBBDBHZW5lcmFsSW5kZXgBCChHZW5lcmFsS2V5AAAIGGxlbmd0aAQQZGF0YSAkT25seUNoaWxkAAEFJFBsdXJhbGl0eQAACAhpZPQQcGFydPg8R2xvYmFsQ29uc2Vuc3VzARUCAiQQSGVyZQABBQhYMQEdAghYMgAEHQIBCAhYMwAEHQIBDAhYNAAEHQIBEAhYNQAEHQIBFAhYNgAEHQIBGAhYNwAEHQIBHAhYOAAEHQIBIAAIHHBhcmVudHMEIGludGVyaW9yIQICCCBDb25jcmV0ZQElAiBBYnN0cmFjdAEgAAgIaWQpAgxmdW6xAQQtAgAACAhpZCUCDGZ1brEBBDUCAAIMCFYzATECCFY0ATkCCFY1AbkBAgwIVjMBJQIIVjQBJQIIVjUBIQEGCAJ0JEF0dGVtcHRlZAAABBxvdXRjb21loQEQU2VudAAAEBhvcmlnaW4hASxkZXN0aW5hdGlvbiEBHG1lc3NhZ2UNAihtZXNzYWdlX2lkIChTZW5kRmFpbGVkAAAQGG9yaWdpbiEBLGRlc3RpbmF0aW9uIQEUZXJyb3IRAihtZXNzYWdlX2lkIDxQcm9jZXNzWGNtRXJyb3IAAAwYb3JpZ2luIQEUZXJyb3KZAShtZXNzYWdlX2lkIEhVbmV4cGVjdGVkUmVzcG9uc2UAAAgYb3JpZ2luIQEgcXVlcnlfaWQINFJlc3BvbnNlUmVhZHkAAAggcXVlcnlfaWQIIHJlc3BvbnNl0QEgTm90aWZpZWQAAAwgcXVlcnlfaWQIMHBhbGxldF9pbmRleAQoY2FsbF9pbmRleARATm90aWZ5T3ZlcndlaWdodAAAFCBxdWVyeV9pZAgwcGFsbGV0X2luZGV4BChjYWxsX2luZGV4BDRhY3R1YWxfd2VpZ2h0GExtYXhfYnVkZ2V0ZWRfd2VpZ2h0GExOb3RpZnlEaXNwYXRjaEVycm9yAAAMIHF1ZXJ5X2lkCDBwYWxsZXRfaW5kZXgEKGNhbGxfaW5kZXgESE5vdGlmeURlY29kZUZhaWxlZAAADCBxdWVyeV9pZAgwcGFsbGV0X2luZGV4BChjYWxsX2luZGV4BEBJbnZhbGlkUmVzcG9uZGVyAAAMGG9yaWdpbiEBIHF1ZXJ5X2lkCERleHBlY3RlZF9sb2NhdGlvboEBXEludmFsaWRSZXNwb25kZXJWZXJzaW9uAAAIGG9yaWdpbiEBIHF1ZXJ5X2lkCDRSZXNwb25zZVRha2VuAAAEIHF1ZXJ5X2lkCDRBc3NldHNUcmFwcGVkAAAMEGhhc2ggGG9yaWdpbiEBGGFzc2V0cz0CVFZlcnNpb25DaGFuZ2VOb3RpZmllZAAAECxkZXN0aW5hdGlvbiEBGHJlc3VsdAQQY29zdLkBKG1lc3NhZ2VfaWQgXFN1cHBvcnRlZFZlcnNpb25DaGFuZ2VkAAAIIGxvY2F0aW9uIQEcdmVyc2lvbgRQTm90aWZ5VGFyZ2V0U2VuZEZhaWwAAAwgbG9jYXRpb24hASBxdWVyeV9pZAgUZXJyb3KZAWROb3RpZnlUYXJnZXRNaWdyYXRpb25GYWlsAAAIIGxvY2F0aW9uQQIgcXVlcnlfaWQIVEludmFsaWRRdWVyaWVyVmVyc2lvbgAACBhvcmlnaW4hASBxdWVyeV9pZAg4SW52YWxpZFF1ZXJpZXIAABAYb3JpZ2luIQEgcXVlcnlfaWQIQGV4cGVjdGVkX3F1ZXJpZXIhAVBtYXliZV9hY3R1YWxfcXVlcmllcoEBUFZlcnNpb25Ob3RpZnlTdGFydGVkAAAMLGRlc3RpbmF0aW9uIQEQY29zdLkBKG1lc3NhZ2VfaWQgWFZlcnNpb25Ob3RpZnlSZXF1ZXN0ZWQAAAwsZGVzdGluYXRpb24hARBjb3N0uQEobWVzc2FnZV9pZCBgVmVyc2lvbk5vdGlmeVVucmVxdWVzdGVkAAAMLGRlc3RpbmF0aW9uIQEQY29zdLkBKG1lc3NhZ2VfaWQgIEZlZXNQYWlkAAAIGHBheWluZyEBEGZlZXO5ATRBc3NldHNDbGFpbWVkAAAMEGhhc2ggGG9yaWdpbiEBGGFzc2V0cz0CYFZlcnNpb25NaWdyYXRpb25GaW5pc2hlZAAABBx2ZXJzaW9uBDxBbGlhc0F1dGhvcml6ZWQAAAwcYWxpYXNlciEBGHRhcmdldCEBGGV4cGlyeUUCZEFsaWFzQXV0aG9yaXphdGlvblJlbW92ZWQAAAgcYWxpYXNlciEBGHRhcmdldCEBcEFsaWFzZXNBdXRob3JpemF0aW9uc1JlbW92ZWQAAAQYdGFyZ2V0IQECDDRJbnZhbGlkRm9ybWF0ASBIVW5zdXBwb3J0ZWRWZXJzaW9uASBARXhlY3V0ZWREb3dud2FyZAADCCChAQIMEEhlcmUAAQUYUGFyZW50AAEFHFNpYmxpbmcBBAIYJEJhZEZvcm1hdAABBRxDb3JydXB0AAEFLFVuc3VwcG9ydGVkAAEFKE92ZXJ3ZWlnaHQBGBRZaWVsZAABBURTdGFja0xpbWl0UmVhY2hlZAABBQIQQFByb2Nlc3NpbmdGYWlsZWQAAAwIaWQgGG9yaWdpblECFGVycm9yVQIkUHJvY2Vzc2VkAAAQCGlkIBhvcmlnaW5RAix3ZWlnaHRfdXNlZBgcc3VjY2VzcxRIT3ZlcndlaWdodEVucXVldWVkAAAQCGlkIBhvcmlnaW5RAihwYWdlX2luZGV4BDRtZXNzYWdlX2luZGV4BChQYWdlUmVhcGVkAAAIGG9yaWdpblECFGluZGV4BAEFB10CyAIgQEJhdGNoSW50ZXJydXB0ZWQAAAgUaW5kZXgEFGVycm9yyDhCYXRjaENvbXBsZXRlZAABBWBCYXRjaENvbXBsZXRlZFdpdGhFcnJvcnMAAQU0SXRlbUNvbXBsZXRlZAABBShJdGVtRmFpbGVkAAAEFGVycm9yyDBEaXNwYXRjaGVkQXMAAAQYcmVzdWx0YQJESWZFbHNlTWFpblN1Y2Nlc3MAAQVQSWZFbHNlRmFsbGJhY2tDYWxsZWQAAAQobWFpbl9lcnJvcsgACBhoZWlnaHQEFGluZGV4BAIULE5ld011bHRpc2lnAAAMJGFwcHJvdmluZwAgbXVsdGlzaWcAJGNhbGxfaGFzaCBATXVsdGlzaWdBcHByb3ZhbAAAECRhcHByb3ZpbmcAJHRpbWVwb2ludGkCIG11bHRpc2lnACRjYWxsX2hhc2ggQE11bHRpc2lnRXhlY3V0ZWQAABQkYXBwcm92aW5nACR0aW1lcG9pbnRpAiBtdWx0aXNpZwAkY2FsbF9oYXNoIBhyZXN1bHRhAkRNdWx0aXNpZ0NhbmNlbGxlZAAAEChjYW5jZWxsaW5nACR0aW1lcG9pbnRpAiBtdWx0aXNpZwAkY2FsbF9oYXNoIDBEZXBvc2l0UG9rZWQAABAMd2hvACRjYWxsX2hhc2ggLG9sZF9kZXBvc2l0CCxuZXdfZGVwb3NpdAgGAAIQFFN1ZGlkAAAELHN1ZG9fcmVzdWx0YQIoS2V5Q2hhbmdlZAAACAxvbGRxAgxuZXcAKEtleVJlbW92ZWQAAQUoU3Vkb0FzRG9uZQAABCxzdWRvX3Jlc3VsdGECAggQVHJ1ZQABBRRGYWxzZQABBQIIFFRydXRoAXkCIENvbnRlbXB0AAEFAoAsSWRlbnRpdHlTZXQAAAQMd2hvADxJZGVudGl0eUNsZWFyZWQAAAgMd2hvABxkZXBvc2l0CDhJZGVudGl0eUtpbGxlZAAACAx3aG8AHGRlcG9zaXQISEp1ZGdlbWVudFJlcXVlc3RlZAAACAx3aG8APHJlZ2lzdHJhcl9pbmRleARQSnVkZ2VtZW50VW5yZXF1ZXN0ZWQAAAgMd2hvADxyZWdpc3RyYXJfaW5kZXgEOEp1ZGdlbWVudEdpdmVuAAAIGHRhcmdldAA8cmVnaXN0cmFyX2luZGV4BDhSZWdpc3RyYXJBZGRlZAAABDxyZWdpc3RyYXJfaW5kZXgEQFN1YklkZW50aXR5QWRkZWQAAAwMc3ViABBtYWluABxkZXBvc2l0CEBTdWJJZGVudGl0aWVzU2V0AAAMEG1haW4AOG51bWJlcl9vZl9zdWJzBCxuZXdfZGVwb3NpdAhIU3ViSWRlbnRpdHlSZW5hbWVkAAAIDHN1YgAQbWFpbgBIU3ViSWRlbnRpdHlSZW1vdmVkAAAMDHN1YgAQbWFpbgAcZGVwb3NpdAhIU3ViSWRlbnRpdHlSZXZva2VkAAAMDHN1YgAQbWFpbgAcZGVwb3NpdAg4QXV0aG9yaXR5QWRkZWQAAAQkYXV0aG9yaXR5AEBBdXRob3JpdHlSZW1vdmVkAAAEJGF1dGhvcml0eQAsVXNlcm5hbWVTZXQAAAgMd2hvACB1c2VybmFtZSQ4VXNlcm5hbWVRdWV1ZWQAAAwMd2hvACB1c2VybmFtZSQoZXhwaXJhdGlvbgRIUHJlYXBwcm92YWxFeHBpcmVkAAAEFHdob3NlAEhQcmltYXJ5VXNlcm5hbWVTZXQAAAgMd2hvACB1c2VybmFtZSRcRGFuZ2xpbmdVc2VybmFtZVJlbW92ZWQAAAgMd2hvACB1c2VybmFtZSQ8VXNlcm5hbWVVbmJvdW5kAAAEIHVzZXJuYW1lJDxVc2VybmFtZVJlbW92ZWQAAAQgdXNlcm5hbWUkOFVzZXJuYW1lS2lsbGVkAAAEIHVzZXJuYW1lJEBVc2VybmFtZVJlcG9ydGVkAAAIIHJlcG9ydGVyACB1c2VybmFtZSRMUGVyc29uYWxJZGVudGl0eVNldAAADBRhbGlhcyAcYWNjb3VudAAgdXNlcm5hbWUkREV2aWRlbmNlU3VibWl0dGVkAAAEFGFsaWFzIEhDcmVkZW50aWFsQWNjZXB0ZWQAAAQUYWxpYXMgSENyZWRlbnRpYWxSZWplY3RlZAAABBRhbGlhcyAwUGVyc29uQmFubmVkAAAEFGFsaWFzIFxQZXJzb25hbElkZW50aXR5Q2xlYXJlZAAABBRhbGlhcyBsUmVwb3J0ZWRVc2VybmFtZUp1ZGdlZFZhbGlkAAAEIHVzZXJuYW1lJHRSZXBvcnRlZFVzZXJuYW1lSnVkZ2VkSW52YWxpZAAABCB1c2VybmFtZSSYUmVwb3J0ZWRVc2VybmFtZVdlYWtPclVuY2xlYXJKdWRnZW1lbnQAAAggdXNlcm5hbWUkJGp1ZGdlbWVudH0CAghQUGVyc29uaG9vZFJlY29nbml6ZWQAAAgMd2hvCAxrZXkgQFBlcnNvbk9uYm9hcmRpbmcAAAgMd2hvCAxrZXkgBAQAAigsQ2FzZUNyZWF0ZWQAAAQoY2FzZV9pbmRleAQgQ2FsbGJhY2sAAAQYcmVzdWx0YQI0Q2FsbGJhY2tFcnJvcgABBShDYXNlQ2xvc2VkAAAIKGNhc2VfaW5kZXgEHHZlcmRpY3R9AhRWb3RlZAAADChjYXNlX2luZGV4BBR2b3RlciAcb3Bpbmlvbn0CLFZvdGVDbGVhbmVkAAAIKGNhc2VfaW5kZXgEFHZvdGVyICxDYXNlUmVtb3ZlZAAABChjYXNlX2luZGV4BDhDYXNlSW50ZXJ2ZW5lZAAACChjYXNlX2luZGV4BBx2ZXJkaWN0fQIwVm90ZXNDbGFpbWVkAAAIFHZvdGVyIDBjYXNlX2luZGljZXOJAjBSZXdhcmRQYXlvdXQAAAgUdm90ZXIgHHZvdWNoZXIgAhAgRGVzaWduZWQAAAQUY291bnQERFByb2NlZHVyYWxBY2NvdW50AAEFSFByb2NlZHVyYWxQZXJzb25hbAABBShQcm9jZWR1cmFsAAAEFHJhbmdlBAJMQENhbmRpZGF0ZUFwcGxpZWQAAAQoYWNjb3VudF9pZAA8UmVmZXJyYWxBcHBsaWVkAAAIKGFjY291bnRfaWQAIHJlZmVycmVyCEhKdWRnZW1lbnRSZXF1ZXN0ZWQAAAQoYWNjb3VudF9pZABESnVkZ2VtZW50UHJvdmlkZWQAAAgoYWNjb3VudF9pZAAkanVkZ2VtZW50fQIwUmV0cnlHcmFudGVkAAAIKGFjY291bnRfaWQAIGZhaWx1cmVzBEBQZXJzb25SZWdpc3RlcmVkAAAIKGFjY291bnRfaWQALHBlcnNvbmFsX2lkCERDYW5kaWRhdGVSZWZlcnJlZAAACCByZWZlcnJlcgggcmVmZXJyZWQAIFJlcm9sbGVkAAAEKGFjY291bnRfaWQAPERlc2lnbkNvbW1pdHRlZAAACChhY2NvdW50X2lkACxyZXNlcnZlZF9pZAg4RnVsbHlBbGxvY2F0ZWQAAAQoYWNjb3VudF9pZAAgVGltZWRPdXQAAAQoYWNjb3VudF9pZAAkRmxha2VkT3V0AAAEKGFjY291bnRfaWQAOFRpY2tldFJlZmVycmVkAAAEIHJlZmVycmVyCDxUaWNrZXRDYW5jZWxsZWQAAAQgcmVmZXJyZXIINFRpY2tldEFwcGxpZWQAAAgoYWNjb3VudF9pZAAgcmVmZXJyZXIILEZhbWlseUFkZGVkAAAMFGluZGV4BBBraW5kkQIIaWQgREFsbEludml0ZXNSZW1vdmVkAAAEHGludml0ZXIASFNvbWVJbnZpdGVzUmVtb3ZlZAAABBxpbnZpdGVyAFxJbnZpdGVkQ2FuZGlkYXRlQXBwbGllZAAACAx3aG8AHGludml0ZXIAAhggS2V5QWRkZWQAAAwMa2V5IDR2b3VjaGVyX3ZhbHVlCChyaW5nX2luZGV4BDhWb3VjaGVyQ2xhaW1lZAAACAx3aG8AFGFsaWFzICxWb3VjaGVyU2VudAAACBRhbGlhcyAQZGVzdAA0Q2xhaW1hYmxlUmluZwAACDR2b3VjaGVyX3ZhbHVlCChyaW5nX2luZGV4BExWb3VjaGVyVmFsdWVDaGFuZ2VkAAAITHZhcmlhYmxlX3ZvdWNoZXJfaWSlASRuZXdfdmFsdWUITFZvdWNoZXJWYWx1ZVBlbmRpbmcAAAhMdmFyaWFibGVfdm91Y2hlcl9pZKUBJG5ld192YWx1ZQgCFBxOZXdHYW1lAAAMRHJlZ2lzdHJhdGlvbl9lbmRzBCRnYW1lX2RhdGUELHJlcG9ydF9lbmRzBCRHYW1lRW5kZWQAAAQUaW5kZXgEQFN0bXRVc2FnZVJlbW92ZWQAAAQMd2hvIERBbGxJbnZpdGVzUmVtb3ZlZAAABBxpbnZpdGVyAEhTb21lSW52aXRlc1JlbW92ZWQAAAQcaW52aXRlcgACCBxBY2NvdW50AQAYUGVyc29uASACBBhDcmVkaXQAAAgMd2hvoQIcdm91Y2hlciACICxJZHNSZXNlcnZlZAAABBRjb3VudAQkSWRSZW5ld2VkAAAECGlkCDBJZFVucmVzZXJ2ZWQAAAQIaWQIQFBlb3BsZVJlZ2lzdGVyZWQAAAQUY291bnQEPFBlb3BsZVN1c3BlbmRlZAAABBRjb3VudAREUGVyc29uaG9vZFJlc3VtZWQAAAQIaWQISFN1c3BlbnNpb25zU3RhcnRlZAABBUBTdXNwZW5zaW9uc0VuZGVkAAEFAgR4QWxsQXR0ZXN0YXRpb25BbGxvd2FuY2VDbGVhcmVkAAAEIHZlcmlmaWVyAAIIQFBlcnNvblJlZ2lzdGVyZWQAAAgUYWxpYXMgHGFjY291bnQAUExpdGVQZXJzb25SZWdpc3RlcmVkAAAEHGFjY291bnQAAgQgUHJpemVTZXQAAAwgYXNzZXRfaWQhATBhc3NldF9hbW91bnQIHHdpbm5lcnMEAgxUUGFydGljaXBhbnRSZWdpc3RlcmVkAAAMIGV2ZW50X2lkBDhwYXJ0aWNpcGFudF9pZAQUYWxpYXMgMEV2ZW50U3RhcnRlZAAACAhpZAQUZXZlbnS1AjBFdmVudFNraXBwZWQAAAgIaWQEFGV2ZW50tQIGJAIgOFVwZ3JhZGVTdGFydGVkAAAEKG1pZ3JhdGlvbnMEQFVwZ3JhZGVDb21wbGV0ZWQAAQU0VXBncmFkZUZhaWxlZAABBUBNaWdyYXRpb25Ta2lwcGVkAAAEFGluZGV4BERNaWdyYXRpb25BZHZhbmNlZAAACBRpbmRleAQQdG9vawRITWlncmF0aW9uQ29tcGxldGVkAAAIFGluZGV4BBB0b29rBDxNaWdyYXRpb25GYWlsZWQAAAgUaW5kZXgEEHRvb2sEPEhpc3RvcmljQ2xlYXJlZAAABCxuZXh0X2N1cnNvcr0CAnwYU3lzdGVtAcw8UGFyYWNoYWluU3lzdGVtAdQgQmFsYW5jZXMB3EhUcmFuc2FjdGlvblBheW1lbnQB4EhTa2lwRmVlbGVzc1BheW1lbnQBUQFET3JpZ2luUmVzdHJpY3Rpb24BWQEYQXNzZXRzAV0BMEFzc2V0c0hvbGRlcgF5ASRBc3NldFJhdGUBfQE4QXNzZXRUeFBheW1lbnQBhQFEQ29sbGF0b3JTZWxlY3Rpb24BjQEcU2Vzc2lvbgGRASRYY21wUXVldWUBlQEsUG9sa2Fkb3RYY20BSQIoQ3VtdWx1c1hjbQFNAjBNZXNzYWdlUXVldWUBWQIcVXRpbGl0eQFlAiBNdWx0aXNpZwFtAhBTdWRvAXUCIElkZW50aXR5AYECGFBlb3BsZQGFAhxNb2JSdWxlAY0CKFByb29mT2ZJbmsBlQI4UHJpdmFjeVZvdWNoZXIBmQIQR2FtZQGdAhRTY29yZQGlAiBEdW1teURpbQGpAihQZW9wbGVMaXRlAa0CJFJlc291cmNlcwGxAhxMb3R0ZXJ5AbkCUE11bHRpQmxvY2tNaWdyYXRpb25zAcECBCAAAAwUcGhhc2U0FGV2ZW50xQIYdG9waWNzyQIEzQIABAQBCATVAgABAQAIMHNwZWNfdmVyc2lvbgQkc3BlY19uYW1l3QIACCRjb2RlX2hhc2ggNGNoZWNrX3ZlcnNpb24UABA4YmFzZV9leHRyaW5zaWMYNG1heF9leHRyaW5zaWPZASRtYXhfdG90YWzZASByZXNlcnZlZNkBAAwYbm9ybWFs6QIsb3BlcmF0aW9uYWzpAiRtYW5kYXRvcnnpAgAMKGJhc2VfYmxvY2sYJG1heF9ibG9jaxgkcGVyX2NsYXNz7QIADBhub3JtYWwELG9wZXJhdGlvbmFsBCRtYW5kYXRvcnkEAAgQcmVhZAgUd3JpdGUIAwilAQQE/QIAACAkc3BlY19uYW1l3QIkaW1wbF9uYW1l3QJEYXV0aG9yaW5nX3ZlcnNpb24EMHNwZWNfdmVyc2lvbgQwaW1wbF92ZXJzaW9uBBBhcGlzAQNMdHJhbnNhY3Rpb25fdmVyc2lvbgQ4c3lzdGVtX3ZlcnNpb24EBCQBCAQJAwAEJAAACCRtc2dfY291bnQELHRvdGFsX2J5dGVzBAMIBBUDBBkDAAAMNHVtcF9tc2dfY291bnQEPHVtcF90b3RhbF9ieXRlcwQ0aHJtcF9vdXRnb2luZx0DAggUQWJvcnQAAQUcR29BaGVhZAABBQYlAwAMOHVzZWRfYmFuZHdpZHRoIQM4cGFyYV9oZWFkX2hhc2jQYGNvbnN1bWVkX2dvX2FoZWFkX3NpZ25hbCkDBC0DAAYEAAw4dXNlZF9iYW5kd2lkdGghAzhocm1wX3dhdGVybWFyazUDYGNvbnN1bWVkX2dvX2FoZWFkX3NpZ25hbCkDABAscGFyZW50X2hlYWQkTHJlbGF5X3BhcmVudF9udW1iZXIEZHJlbGF5X3BhcmVudF9zdG9yYWdlX3Jvb3QgMG1heF9wb3Zfc2l6ZQQCBBxQcmVzZW50AAEFBkEDAAg8cmVtYWluaW5nX2NvdW50BDhyZW1haW5pbmdfc2l6ZQQAGDBtYXhfY2FwYWNpdHkEOG1heF90b3RhbF9zaXplBEBtYXhfbWVzc2FnZV9zaXplBCRtc2dfY291bnQEKHRvdGFsX3NpemUEIG1xY19oZWFk0AMIBE0DBFEDAAAQMGRtcV9tcWNfaGVhZCCccmVsYXlfZGlzcGF0Y2hfcXVldWVfcmVtYWluaW5nX2NhcGFjaXR5SQNAaW5ncmVzc19jaGFubmVsc1UDPGVncmVzc19jaGFubmVsc1UDAAhMbWF4X2NhbmRpZGF0ZV9kZXB0aARQYWxsb3dlZF9hbmNlc3RyeV9sZW4EACg0bWF4X2NvZGVfc2l6ZQRIbWF4X2hlYWRfZGF0YV9zaXplBFhtYXhfdXB3YXJkX3F1ZXVlX2NvdW50BFRtYXhfdXB3YXJkX3F1ZXVlX3NpemUEXG1heF91cHdhcmRfbWVzc2FnZV9zaXplBJBtYXhfdXB3YXJkX21lc3NhZ2VfbnVtX3Blcl9jYW5kaWRhdGUEiGhybXBfbWF4X21lc3NhZ2VfbnVtX3Blcl9jYW5kaWRhdGUEbHZhbGlkYXRpb25fdXBncmFkZV9jb29sZG93bgRgdmFsaWRhdGlvbl91cGdyYWRlX2RlbGF5BFBhc3luY19iYWNraW5nX3BhcmFtc10DAwgEIARlAwAACCRyZWNpcGllbnQEEGRhdGEkBG0DAAAIHHNlbnRfYXQEDG1zZyQEdQMAAAgcc2VudF9hdAQQZGF0YSQEfQMAAwgEgQMEhQMAABQscGFyZW50X2hhc2ggGG51bWJlcgQoc3RhdGVfcm9vdCA8ZXh0cmluc2ljc19yb290IBhkaWdlc3QwBI0DAAAYPHZhbGlkYXRpb25fZGF0YT0DRHJlbGF5X2NoYWluX3N0YXRlEQNEZG93bndhcmRfbWVzc2FnZXN5A0xob3Jpem9udGFsX21lc3NhZ2VziQNgcmVsYXlfcGFyZW50X2Rlc2NlbmRhbnRzkQNAY29sbGF0b3JfcGVlcl9pZL0CAgwMRmVlAAEFEE1pc2MAAQUMQWxsAAEFAAwIaWSlARhhbW91bnQIHHJlYXNvbnOZAwSdAwAACAhpZKUBGGFtb3VudAgEpQMAAAgIaWR1ARhhbW91bnQIBK0DAAAEGGFtb3VudAgEtQMAAhQISWQBABRJbmRleAFdAgxSYXcBJCRBZGRyZXNzMzIBICRBZGRyZXNzMjAB8AIIIEluY3JlYXNlAAEFIERlY3JlYXNlAAEFAggkVjFBbmNpZW50AAEFCFYyAAEFAAgQdXNlZAggYXRfYmxvY2sEAgwQTGl2ZQABBRhGcm96ZW4AAQUoRGVzdHJveWluZwABBQAwFG93bmVyABhpc3N1ZXIAFGFkbWluABxmcmVlemVyABhzdXBwbHkIHGRlcG9zaXQILG1pbl9iYWxhbmNlCDRpc19zdWZmaWNpZW50FCBhY2NvdW50cwQsc3VmZmljaWVudHMEJGFwcHJvdmFscwQYc3RhdHVzzQMDCCEBAAIMGExpcXVpZAABBRhGcm96ZW4AAQUcQmxvY2tlZAABBQIUIENvbnN1bWVyAAEFKFN1ZmZpY2llbnQAAQUsRGVwb3NpdEhlbGQBCDxEZXBvc2l0UmVmdW5kZWQAAQUsRGVwb3NpdEZyb20AAwgACAAMHGJhbGFuY2UIGHN0YXR1c9kDGHJlYXNvbt0DAwwhAQAAAAgYYW1vdW50CBxkZXBvc2l0CAAUHGRlcG9zaXQIEG5hbWUkGHN5bWJvbCQgZGVjaW1hbHMEJGlzX2Zyb3plbhQACAx3aG8AHGRlcG9zaXQIBPEDAAMIACAE+QMAAwgoJAMICAQCCAhPawABBSRTdXNwZW5kZWQAAQUAFCRyZWNpcGllbnQEFHN0YXRlCQQ0c2lnbmFsc19leGlzdBQsZmlyc3RfaW5kZXgEKGxhc3RfaW5kZXgEBA0EAAMIBAQADERzdXNwZW5kX3RocmVzaG9sZAQ4ZHJvcF90aHJlc2hvbGQEQHJlc3VtZV90aHJlc2hvbGQEBkECBQEIBiEEAqAgT3ZlcmZsb3cAAQU0VW5pbXBsZW1lbnRlZAABBWBVbnRydXN0ZWRSZXNlcnZlTG9jYXRpb24AAQVkVW50cnVzdGVkVGVsZXBvcnRMb2NhdGlvbgABBTBMb2NhdGlvbkZ1bGwAAQVUTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAEFJEJhZE9yaWdpbgABBTxJbnZhbGlkTG9jYXRpb24AAQU0QXNzZXROb3RGb3VuZAABBVRGYWlsZWRUb1RyYW5zYWN0QXNzZXQAAQU8Tm90V2l0aGRyYXdhYmxlAAEFSExvY2F0aW9uQ2Fubm90SG9sZAABBVRFeGNlZWRzTWF4TWVzc2FnZVNpemUAAQVYRGVzdGluYXRpb25VbnN1cHBvcnRlZAABBSRUcmFuc3BvcnQAAQUoVW5yb3V0YWJsZQABBTBVbmtub3duQ2xhaW0AAQU4RmFpbGVkVG9EZWNvZGUAAQVATWF4V2VpZ2h0SW52YWxpZAABBThOb3RIb2xkaW5nRmVlcwABBTBUb29FeHBlbnNpdmUAAQUQVHJhcAEIQEV4cGVjdGF0aW9uRmFsc2UAAQU4UGFsbGV0Tm90Rm91bmQAAQUwTmFtZU1pc21hdGNoAAEFTFZlcnNpb25JbmNvbXBhdGlibGUAAQVQSG9sZGluZ1dvdWxkT3ZlcmZsb3cAAQUsRXhwb3J0RXJyb3IAAQU4UmVhbmNob3JGYWlsZWQAAQUYTm9EZWFsAAEFKEZlZXNOb3RNZXQAAQUkTG9ja0Vycm9yAAEFME5vUGVybWlzc2lvbgABBShVbmFuY2hvcmVkAAEFOE5vdERlcG9zaXRhYmxlAAEFTFVuaGFuZGxlZFhjbVZlcnNpb24AAQVIV2VpZ2h0TGltaXRSZWFjaGVkARgcQmFycmllcgABBUxXZWlnaHROb3RDb21wdXRhYmxlAAEFREV4Y2VlZHNTdGFja0xpbWl0AAEFAwgEKQQGLQQCGBBOdWxsAAEFGEFzc2V0cwExAjxFeGVjdXRpb25SZXN1bHQBMQQcVmVyc2lvbgEELFBhbGxldHNJbmZvAckBOERpc3BhdGNoUmVzdWx0Ac0BAhgQTnVsbAABBRhBc3NldHMBOQI8RXhlY3V0aW9uUmVzdWx0ATEEHFZlcnNpb24BBCxQYWxsZXRzSW5mbwHJAThEaXNwYXRjaFJlc3VsdAHNAQIMCFYzATUECFY0ATkECFY1AdEBAgwcUGVuZGluZwAAECRyZXNwb25kZXJBAkxtYXliZV9tYXRjaF9xdWVyaWVyHQQwbWF5YmVfbm90aWZ5JQQcdGltZW91dAQ8VmVyc2lvbk5vdGlmaWVyAAAIGG9yaWdpbkECJGlzX2FjdGl2ZRQUUmVhZHkAAAggcmVzcG9uc2U9BAhhdAQDCARBAgMMCBgEAwhBAgQETQQAAhBcTWlncmF0ZVN1cHBvcnRlZFZlcnNpb24AAQVcTWlncmF0ZVZlcnNpb25Ob3RpZmllcnMAAQVQTm90aWZ5Q3VycmVudFRhcmdldHMBvQJoTWlncmF0ZUFuZE5vdGlmeU9sZFRhcmdldHMAAQUCDAhWMwEpAghWNAElAghWNQEhAQMMBABZBAMIXQIIBGEEAAAQGGFtb3VudAgUb3duZXJBAhhsb2NrZXJBAiRjb25zdW1lcnNlBAMICEECBG0EAAAIIGxvY2F0aW9uQQIYZXhwaXJ5RQIEdQQAAAQgYWxpYXNlcnN5BAYlAgAMLGRlc3RpbmF0aW9uJQIgcXVlcnlfaWQIKG1heF93ZWlnaHQYAhAMQWxsAAEFFEFsbE9mAAAICGlkKQIMZnVu4QEoQWxsQ291bnRlZAEEMEFsbE9mQ291bnRlZAAADAhpZCkCDGZ1buEBFGNvdW50BAIIIERlZmluaXRlATECEFdpbGQBiQQCwDRXaXRoZHJhd0Fzc2V0ATECVFJlc2VydmVBc3NldERlcG9zaXRlZAExAlhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0ATECNFF1ZXJ5UmVzcG9uc2UAABAgcXVlcnlfaWQIIHJlc3BvbnNlNQQobWF4X3dlaWdodBgccXVlcmllcoEENFRyYW5zZmVyQXNzZXQAAAgYYXNzZXRzMQIsYmVuZWZpY2lhcnklAlBUcmFuc2ZlclJlc2VydmVBc3NldAAADBhhc3NldHMxAhBkZXN0JQIMeGNtlQQgVHJhbnNhY3QAAAwsb3JpZ2luX2tpbmTVAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0GBBjYWxsJGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0AAAMGHNlbmRlcgRAbWF4X21lc3NhZ2Vfc2l6ZQQwbWF4X2NhcGFjaXR5BExIcm1wQ2hhbm5lbEFjY2VwdGVkAAAEJHJlY2lwaWVudARISHJtcENoYW5uZWxDbG9zaW5nAAAMJGluaXRpYXRvcgQYc2VuZGVyBCRyZWNpcGllbnQELENsZWFyT3JpZ2luAAEFNERlc2NlbmRPcmlnaW4BIQIsUmVwb3J0RXJyb3IBhQQwRGVwb3NpdEFzc2V0AAAIGGFzc2V0c40ELGJlbmVmaWNpYXJ5JQJMRGVwb3NpdFJlc2VydmVBc3NldAAADBhhc3NldHONBBBkZXN0JQIMeGNtlQQ0RXhjaGFuZ2VBc3NldAAADBBnaXZljQQQd2FudDECHG1heGltYWwUXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3AAAMGGFzc2V0c40EHHJlc2VydmUlAgx4Y22VBEBJbml0aWF0ZVRlbGVwb3J0AAAMGGFzc2V0c40EEGRlc3QlAgx4Y22VBDRSZXBvcnRIb2xkaW5nAAAINHJlc3BvbnNlX2luZm+FBBhhc3NldHONBDBCdXlFeGVjdXRpb24AAAgQZmVlcy0CMHdlaWdodF9saW1pdO0BNFJlZnVuZFN1cnBsdXMAAQU8U2V0RXJyb3JIYW5kbGVyAZUELFNldEFwcGVuZGl4AZUEKENsZWFyRXJyb3IAAQUoQ2xhaW1Bc3NldAAACBhhc3NldHMxAhh0aWNrZXQlAhBUcmFwAQhAU3Vic2NyaWJlVmVyc2lvbgAACCBxdWVyeV9pZAhMbWF4X3Jlc3BvbnNlX3dlaWdodBhIVW5zdWJzY3JpYmVWZXJzaW9uAAEFJEJ1cm5Bc3NldAExAixFeHBlY3RBc3NldAExAjBFeHBlY3RPcmlnaW4BgQQsRXhwZWN0RXJyb3IBMQRQRXhwZWN0VHJhbnNhY3RTdGF0dXMBzQEsUXVlcnlQYWxsZXQAAAgsbW9kdWxlX25hbWUkNHJlc3BvbnNlX2luZm+FBDBFeHBlY3RQYWxsZXQAABQUaW5kZXgEEG5hbWUkLG1vZHVsZV9uYW1lJCxjcmF0ZV9tYWpvcgQ8bWluX2NyYXRlX21pbm9yBFBSZXBvcnRUcmFuc2FjdFN0YXR1cwGFBExDbGVhclRyYW5zYWN0U3RhdHVzAAEFPFVuaXZlcnNhbE9yaWdpbgEdAjRFeHBvcnRNZXNzYWdlAAAMHG5ldHdvcmsVAixkZXN0aW5hdGlvbiECDHhjbZUEJExvY2tBc3NldAAACBRhc3NldC0CIHVubG9ja2VyJQIsVW5sb2NrQXNzZXQAAAgUYXNzZXQtAhh0YXJnZXQlAjhOb3RlVW5sb2NrYWJsZQAACBRhc3NldC0CFG93bmVyJQI0UmVxdWVzdFVubG9jawAACBRhc3NldC0CGGxvY2tlciUCLFNldEZlZXNNb2RlAAAEMGppdF93aXRoZHJhdxQgU2V0VG9waWMBIChDbGVhclRvcGljAAEFLEFsaWFzT3JpZ2luASUCPFVucGFpZEV4ZWN1dGlvbgAACDB3ZWlnaHRfbGltaXTtATBjaGVja19vcmlnaW6BBASRBAACEAxBbGwAAQUUQWxsT2YAAAgIaWQlAgxmdW7hAShBbGxDb3VudGVkAQQwQWxsT2ZDb3VudGVkAAAMCGlkJQIMZnVu4QEUY291bnQEAgggRGVmaW5pdGUBOQIQV2lsZAGZBALANFdpdGhkcmF3QXNzZXQBOQJUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkATkCWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQBOQI0UXVlcnlSZXNwb25zZQAAECBxdWVyeV9pZAggcmVzcG9uc2U5BChtYXhfd2VpZ2h0GBxxdWVyaWVygQQ0VHJhbnNmZXJBc3NldAAACBhhc3NldHM5AixiZW5lZmljaWFyeSUCUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0AAAMGGFzc2V0czkCEGRlc3QlAgx4Y22lBCBUcmFuc2FjdAAADCxvcmlnaW5fa2luZNUBWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3QYEGNhbGwkZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QAAAwYc2VuZGVyBEBtYXhfbWVzc2FnZV9zaXplBDBtYXhfY2FwYWNpdHkETEhybXBDaGFubmVsQWNjZXB0ZWQAAAQkcmVjaXBpZW50BEhIcm1wQ2hhbm5lbENsb3NpbmcAAAwkaW5pdGlhdG9yBBhzZW5kZXIEJHJlY2lwaWVudAQsQ2xlYXJPcmlnaW4AAQU0RGVzY2VuZE9yaWdpbgEhAixSZXBvcnRFcnJvcgGFBDBEZXBvc2l0QXNzZXQAAAgYYXNzZXRznQQsYmVuZWZpY2lhcnklAkxEZXBvc2l0UmVzZXJ2ZUFzc2V0AAAMGGFzc2V0c50EEGRlc3QlAgx4Y22lBDRFeGNoYW5nZUFzc2V0AAAMEGdpdmWdBBB3YW50OQIcbWF4aW1hbBRcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcAAAwYYXNzZXRznQQccmVzZXJ2ZSUCDHhjbaUEQEluaXRpYXRlVGVsZXBvcnQAAAwYYXNzZXRznQQQZGVzdCUCDHhjbaUENFJlcG9ydEhvbGRpbmcAAAg0cmVzcG9uc2VfaW5mb4UEGGFzc2V0c50EMEJ1eUV4ZWN1dGlvbgAACBBmZWVzNQIwd2VpZ2h0X2xpbWl07QE0UmVmdW5kU3VycGx1cwABBTxTZXRFcnJvckhhbmRsZXIBpQQsU2V0QXBwZW5kaXgBpQQoQ2xlYXJFcnJvcgABBShDbGFpbUFzc2V0AAAIGGFzc2V0czkCGHRpY2tldCUCEFRyYXABCEBTdWJzY3JpYmVWZXJzaW9uAAAIIHF1ZXJ5X2lkCExtYXhfcmVzcG9uc2Vfd2VpZ2h0GEhVbnN1YnNjcmliZVZlcnNpb24AAQUkQnVybkFzc2V0ATkCLEV4cGVjdEFzc2V0ATkCMEV4cGVjdE9yaWdpbgGBBCxFeHBlY3RFcnJvcgExBFBFeHBlY3RUcmFuc2FjdFN0YXR1cwHNASxRdWVyeVBhbGxldAAACCxtb2R1bGVfbmFtZSQ0cmVzcG9uc2VfaW5mb4UEMEV4cGVjdFBhbGxldAAAFBRpbmRleAQQbmFtZSQsbW9kdWxlX25hbWUkLGNyYXRlX21ham9yBDxtaW5fY3JhdGVfbWlub3IEUFJlcG9ydFRyYW5zYWN0U3RhdHVzAYUETENsZWFyVHJhbnNhY3RTdGF0dXMAAQU8VW5pdmVyc2FsT3JpZ2luAR0CNEV4cG9ydE1lc3NhZ2UAAAwcbmV0d29yaxUCLGRlc3RpbmF0aW9uIQIMeGNtpQQkTG9ja0Fzc2V0AAAIFGFzc2V0NQIgdW5sb2NrZXIlAixVbmxvY2tBc3NldAAACBRhc3NldDUCGHRhcmdldCUCOE5vdGVVbmxvY2thYmxlAAAIFGFzc2V0NQIUb3duZXIlAjRSZXF1ZXN0VW5sb2NrAAAIFGFzc2V0NQIYbG9ja2VyJQIsU2V0RmVlc01vZGUAAAQwaml0X3dpdGhkcmF3FCBTZXRUb3BpYwEgKENsZWFyVG9waWMAAQUsQWxpYXNPcmlnaW4BJQI8VW5wYWlkRXhlY3V0aW9uAAAIMHdlaWdodF9saW1pdO0BMGNoZWNrX29yaWdpboEEBKEEAAIMCFYzAZUECFY0AaUECFY1AQ0CAhAgVGVsZXBvcnQAAQUwTG9jYWxSZXNlcnZlAAEFSERlc3RpbmF0aW9uUmVzZXJ2ZQABBTRSZW1vdGVSZXNlcnZlAUECAAgQcHJldlECEG5leHRRAgaxBAAYFGJlZ2luBAxlbmQEFGNvdW50BEByZWFkeV9uZWlnaGJvdXJztQQ0bWVzc2FnZV9jb3VudAgQc2l6ZQgDCFECBAAYJHJlbWFpbmluZwQ4cmVtYWluaW5nX3NpemUELGZpcnN0X2luZGV4BBRmaXJzdAQQbGFzdAQQaGVhcCQCLBhyZW1hcmsAAAQYcmVtYXJrJDhzZXRfaGVhcF9wYWdlcwAABBRwYWdlcwggc2V0X2NvZGUAAAQQY29kZSRcc2V0X2NvZGVfd2l0aG91dF9jaGVja3MAAAQQY29kZSQsc2V0X3N0b3JhZ2UAAAQUaXRlbXMNAzBraWxsX3N0b3JhZ2UAAAQQa2V5cxEDLGtpbGxfcHJlZml4AAAIGHByZWZpeCQcc3Via2V5cwREcmVtYXJrX3dpdGhfZXZlbnQAAAQYcmVtYXJrJERhdXRob3JpemVfdXBncmFkZQAABCRjb2RlX2hhc2gggGF1dGhvcml6ZV91cGdyYWRlX3dpdGhvdXRfY2hlY2tzAAAEJGNvZGVfaGFzaCBgYXBwbHlfYXV0aG9yaXplZF91cGdyYWRlAAAEEGNvZGUkAghMc2V0X3ZhbGlkYXRpb25fZGF0YQAABBBkYXRhlQNgc3Vkb19zZW5kX3Vwd2FyZF9tZXNzYWdlAAAEHG1lc3NhZ2UkAgQMc2V0AAAEDG5vdwgCJFB0cmFuc2Zlcl9hbGxvd19kZWF0aAAACBBkZXN0vQMUdmFsdWUIOGZvcmNlX3RyYW5zZmVyAAAMGHNvdXJjZb0DEGRlc3S9AxR2YWx1ZQhMdHJhbnNmZXJfa2VlcF9hbGl2ZQAACBBkZXN0vQMUdmFsdWUIMHRyYW5zZmVyX2FsbAAACBBkZXN0vQMoa2VlcF9hbGl2ZRQ8Zm9yY2VfdW5yZXNlcnZlAAAIDHdob70DGGFtb3VudAhAdXBncmFkZV9hY2NvdW50cwAABAx3aG+JAURmb3JjZV9zZXRfYmFsYW5jZQAACAx3aG+9AyBuZXdfZnJlZQhsZm9yY2VfYWRqdXN0X3RvdGFsX2lzc3VhbmNlAAAIJGRpcmVjdGlvbsEDFGRlbHRhCBBidXJuAAAIFHZhbHVlCChrZWVwX2FsaXZlFAIELGNsZWFuX3VzYWdlAAAEGGVudGl0eVUBAoQYY3JlYXRlAAAMCGlkIQEUYWRtaW69AyxtaW5fYmFsYW5jZQgwZm9yY2VfY3JlYXRlAAAQCGlkIQEUb3duZXK9AzRpc19zdWZmaWNpZW50FCxtaW5fYmFsYW5jZQg0c3RhcnRfZGVzdHJveQAABAhpZCEBQGRlc3Ryb3lfYWNjb3VudHMAAAQIaWQhAURkZXN0cm95X2FwcHJvdmFscwAABAhpZCEBOGZpbmlzaF9kZXN0cm95AAAECGlkIQEQbWludAAADAhpZCEBLGJlbmVmaWNpYXJ5vQMYYW1vdW50CBBidXJuAAAMCGlkIQEMd2hvvQMYYW1vdW50CCB0cmFuc2ZlcgAADAhpZCEBGHRhcmdldL0DGGFtb3VudAhMdHJhbnNmZXJfa2VlcF9hbGl2ZQAADAhpZCEBGHRhcmdldL0DGGFtb3VudAg4Zm9yY2VfdHJhbnNmZXIAABAIaWQhARhzb3VyY2W9AxBkZXN0vQMYYW1vdW50CBhmcmVlemUAAAgIaWQhAQx3aG+9AxB0aGF3AAAICGlkIQEMd2hvvQMwZnJlZXplX2Fzc2V0AAAECGlkIQEodGhhd19hc3NldAAABAhpZCEBSHRyYW5zZmVyX293bmVyc2hpcAAACAhpZCEBFG93bmVyvQMgc2V0X3RlYW0AABAIaWQhARhpc3N1ZXK9AxRhZG1pbr0DHGZyZWV6ZXK9AzBzZXRfbWV0YWRhdGEAABAIaWQhARBuYW1lJBhzeW1ib2wkIGRlY2ltYWxzBDhjbGVhcl9tZXRhZGF0YQAABAhpZCEBSGZvcmNlX3NldF9tZXRhZGF0YQAAFAhpZCEBEG5hbWUkGHN5bWJvbCQgZGVjaW1hbHMEJGlzX2Zyb3plbhRQZm9yY2VfY2xlYXJfbWV0YWRhdGEAAAQIaWQhAUhmb3JjZV9hc3NldF9zdGF0dXMAACAIaWQhARRvd25lcr0DGGlzc3Vlcr0DFGFkbWluvQMcZnJlZXplcr0DLG1pbl9iYWxhbmNlCDRpc19zdWZmaWNpZW50FCRpc19mcm96ZW4UQGFwcHJvdmVfdHJhbnNmZXIAAAwIaWQhASBkZWxlZ2F0Zb0DGGFtb3VudAg8Y2FuY2VsX2FwcHJvdmFsAAAICGlkIQEgZGVsZWdhdGW9A1Rmb3JjZV9jYW5jZWxfYXBwcm92YWwAAAwIaWQhARRvd25lcr0DIGRlbGVnYXRlvQNEdHJhbnNmZXJfYXBwcm92ZWQAABAIaWQhARRvd25lcr0DLGRlc3RpbmF0aW9uvQMYYW1vdW50CBR0b3VjaAAABAhpZCEBGHJlZnVuZAAACAhpZCEBKGFsbG93X2J1cm4UPHNldF9taW5fYmFsYW5jZQAACAhpZCEBLG1pbl9iYWxhbmNlCCx0b3VjaF9vdGhlcgAACAhpZCEBDHdob70DMHJlZnVuZF9vdGhlcgAACAhpZCEBDHdob70DFGJsb2NrAAAICGlkIQEMd2hvvQMwdHJhbnNmZXJfYWxsAAAMCGlkIQEQZGVzdL0DKGtlZXBfYWxpdmUUAgwYY3JlYXRlAAAIKGFzc2V0X2tpbmQhARByYXRlCBh1cGRhdGUAAAgoYXNzZXRfa2luZCEBEHJhdGUIGHJlbW92ZQAABChhc3NldF9raW5kIQECJERzZXRfaW52dWxuZXJhYmxlcwAABAxuZXeJAVhzZXRfZGVzaXJlZF9jYW5kaWRhdGVzAAAEDG1heARIc2V0X2NhbmRpZGFjeV9ib25kAAAEEGJvbmQIVHJlZ2lzdGVyX2FzX2NhbmRpZGF0ZQABBTBsZWF2ZV9pbnRlbnQAAQVAYWRkX2ludnVsbmVyYWJsZQAABAx3aG8ATHJlbW92ZV9pbnZ1bG5lcmFibGUAAAQMd2hvACx1cGRhdGVfYm9uZAAABCxuZXdfZGVwb3NpdAhMdGFrZV9jYW5kaWRhdGVfc2xvdAAACBxkZXBvc2l0CBh0YXJnZXQAAgggc2V0X2tleXMAAAgQa2V5cyAUcHJvb2YkKHB1cmdlX2tleXMAAQUCFFRzdXNwZW5kX3hjbV9leGVjdXRpb24AAQVQcmVzdW1lX3hjbV9leGVjdXRpb24AAQVgdXBkYXRlX3N1c3BlbmRfdGhyZXNob2xkAAAEDG5ldwRUdXBkYXRlX2Ryb3BfdGhyZXNob2xkAAAEDG5ldwRcdXBkYXRlX3Jlc3VtZV90aHJlc2hvbGQAAAQMbmV3BAJEEHNlbmQAAAgQZGVzdEECHG1lc3NhZ2WpBDx0ZWxlcG9ydF9hc3NldHMAABAQZGVzdEECLGJlbmVmaWNpYXJ5QQIYYXNzZXRzPQI4ZmVlX2Fzc2V0X2l0ZW0EXHJlc2VydmVfdHJhbnNmZXJfYXNzZXRzAAAQEGRlc3RBAixiZW5lZmljaWFyeUECGGFzc2V0cz0COGZlZV9hc3NldF9pdGVtBBxleGVjdXRlAAAIHG1lc3NhZ2WpBChtYXhfd2VpZ2h0GERmb3JjZV94Y21fdmVyc2lvbgAACCBsb2NhdGlvbiEBHHZlcnNpb24EZGZvcmNlX2RlZmF1bHRfeGNtX3ZlcnNpb24AAAREbWF5YmVfeGNtX3ZlcnNpb241A3hmb3JjZV9zdWJzY3JpYmVfdmVyc2lvbl9ub3RpZnkAAAQgbG9jYXRpb25BAoBmb3JjZV91bnN1YnNjcmliZV92ZXJzaW9uX25vdGlmeQAABCBsb2NhdGlvbkECfGxpbWl0ZWRfcmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHMAABQQZGVzdEECLGJlbmVmaWNpYXJ5QQIYYXNzZXRzPQI4ZmVlX2Fzc2V0X2l0ZW0EMHdlaWdodF9saW1pdO0BXGxpbWl0ZWRfdGVsZXBvcnRfYXNzZXRzAAAUEGRlc3RBAixiZW5lZmljaWFyeUECGGFzc2V0cz0COGZlZV9hc3NldF9pdGVtBDB3ZWlnaHRfbGltaXTtAUBmb3JjZV9zdXNwZW5zaW9uAAAEJHN1c3BlbmRlZBQ8dHJhbnNmZXJfYXNzZXRzAAAUEGRlc3RBAixiZW5lZmljaWFyeUECGGFzc2V0cz0COGZlZV9hc3NldF9pdGVtBDB3ZWlnaHRfbGltaXTtATBjbGFpbV9hc3NldHMAAAgYYXNzZXRzPQIsYmVuZWZpY2lhcnlBAox0cmFuc2Zlcl9hc3NldHNfdXNpbmdfdHlwZV9hbmRfdGhlbgAAHBBkZXN0QQIYYXNzZXRzPQJQYXNzZXRzX3RyYW5zZmVyX3R5cGWtBDhyZW1vdGVfZmVlc19pZFkESGZlZXNfdHJhbnNmZXJfdHlwZa0ESGN1c3RvbV94Y21fb25fZGVzdKkEMHdlaWdodF9saW1pdO0BUGFkZF9hdXRob3JpemVkX2FsaWFzAAAIHGFsaWFzZXJBAhxleHBpcmVzRQJccmVtb3ZlX2F1dGhvcml6ZWRfYWxpYXMAAAQcYWxpYXNlckECdHJlbW92ZV9hbGxfYXV0aG9yaXplZF9hbGlhc2VzAAEFAggkcmVhcF9wYWdlAAAIOG1lc3NhZ2Vfb3JpZ2luUQIocGFnZV9pbmRleARIZXhlY3V0ZV9vdmVyd2VpZ2h0AAAQOG1lc3NhZ2Vfb3JpZ2luUQIQcGFnZQQUaW5kZXgEMHdlaWdodF9saW1pdBgCIBRiYXRjaAAABBRjYWxscykGNGFzX2Rlcml2YXRpdmUAAAgUaW5kZXgEEGNhbGwlBiRiYXRjaF9hbGwAAAQUY2FsbHMpBixkaXNwYXRjaF9hcwAACCRhc19vcmlnaW5NARBjYWxsJQYsZm9yY2VfYmF0Y2gAAAQUY2FsbHMpBix3aXRoX3dlaWdodAAACBBjYWxsJQYYd2VpZ2h0GBxpZl9lbHNlAAAIEG1haW4lBiBmYWxsYmFjayUGUGRpc3BhdGNoX2FzX2ZhbGxpYmxlAAAIJGFzX29yaWdpbk0BEGNhbGwlBgZpAgIUUGFzX211bHRpX3RocmVzaG9sZF8xAAAIRG90aGVyX3NpZ25hdG9yaWVziQEQY2FsbCUGIGFzX211bHRpAAAUJHRocmVzaG9sZAREb3RoZXJfc2lnbmF0b3JpZXOJATxtYXliZV90aW1lcG9pbnT5BBBjYWxsJQYobWF4X3dlaWdodBhAYXBwcm92ZV9hc19tdWx0aQAAFCR0aHJlc2hvbGQERG90aGVyX3NpZ25hdG9yaWVziQE8bWF5YmVfdGltZXBvaW50+QQkY2FsbF9oYXNoIChtYXhfd2VpZ2h0GDxjYW5jZWxfYXNfbXVsdGkAABAkdGhyZXNob2xkBERvdGhlcl9zaWduYXRvcmllc4kBJHRpbWVwb2ludGkCJGNhbGxfaGFzaCAwcG9rZV9kZXBvc2l0AAAMJHRocmVzaG9sZAREb3RoZXJfc2lnbmF0b3JpZXOJASRjYWxsX2hhc2ggAhQQc3VkbwAABBBjYWxsJQZUc3Vkb191bmNoZWNrZWRfd2VpZ2h0AAAIEGNhbGwlBhh3ZWlnaHQYHHNldF9rZXkAAAQMbmV3vQMcc3Vkb19hcwAACAx3aG+9AxBjYWxsJQYocmVtb3ZlX2tleQABBQUBDAUBFAUBGAUBHAUBJAUBKAUBLAUBMAUBNAUBOAUBPAUBRAUBSAUBTAUBVAUBWAUBXAUBYAUBZAUBaAUBbAUBcAUBdAUBeAUBfAKYEE5vbmUAAQUQUmF3MAFdAhBSYXcxAQQQUmF3MgEhBBBSYXczAQUFEFJhdzQBKBBSYXc1AQkFEFJhdzYBDQUQUmF3NwERBRBSYXc4AaUBEFJhdzkBFQUUUmF3MTABGQUUUmF3MTEBHQUUUmF3MTIBIQUUUmF3MTMBJQUUUmF3MTQBKQUUUmF3MTUBLQUUUmF3MTYBqQEUUmF3MTcBMQUUUmF3MTgBNQUUUmF3MTkBOQUUUmF3MjAB8BRSYXcyMQE9BRRSYXcyMgFBBRRSYXcyMwFFBRRSYXcyNAFJBRRSYXcyNQFNBRRSYXcyNgFRBRRSYXcyNwFVBRRSYXcyOAFZBRRSYXcyOQFdBRRSYXczMAFhBRRSYXczMQFlBRRSYXczMgEgLEJsYWtlVHdvMjU2ASAYU2hhMjU2ASAkS2VjY2FrMjU2ASAsU2hhVGhyZWUyNTYBIAbwACgcZGlzcGxheWkFFGxlZ2FsaQUMd2ViaQUYbWF0cml4aQUUZW1haWxpBTxwZ3BfZmluZ2VycHJpbnRtBRRpbWFnZWkFHHR3aXR0ZXJpBRhnaXRodWJpBRxkaXNjb3JkaQUDCABpBQR1BQACIBxVbmtub3duAAEFHEZlZVBhaWQBCChSZWFzb25hYmxlAAEFJEtub3duR29vZAABBSRPdXRPZkRhdGUAAQUoTG93UXVhbGl0eQABBSRFcnJvbmVvdXMAAQUgRXh0ZXJuYWwAAQUFAQEBBQEFAQIMHEVkMjU1MTkBgQUcU3IyNTUxOQGBBRRFY2RzYQGFBQaJBQIMHFR3aXR0ZXIAAAQgdXNlcm5hbWUkGEdpdGh1YgAABCB1c2VybmFtZSQcRGlzY29yZAAABDxkaXNwbGF5X2FuZF90YWckAng0YWRkX3JlZ2lzdHJhcgAABBxhY2NvdW50vQMwc2V0X2lkZW50aXR5AAAEEGluZm9xBSBzZXRfc3VicwAABBBzdWJzeQU4Y2xlYXJfaWRlbnRpdHkAAQVEcmVxdWVzdF9qdWRnZW1lbnQAAAgkcmVnX2luZGV4BBxtYXhfZmVlCDhjYW5jZWxfcmVxdWVzdAAABCRyZWdfaW5kZXgEHHNldF9mZWUAAAgUaW5kZXgEDGZlZQg4c2V0X2FjY291bnRfaWQAAAgUaW5kZXgEDG5ld70DKHNldF9maWVsZHMAAAgUaW5kZXgEGGZpZWxkcwhEcHJvdmlkZV9qdWRnZW1lbnQAABAkcmVnX2luZGV4BBh0YXJnZXS9AyRqdWRnZW1lbnR9BSBpZGVudGl0eSA0a2lsbF9pZGVudGl0eQAABBh0YXJnZXS9AxxhZGRfc3ViAAAIDHN1Yr0DEGRhdGFpBShyZW5hbWVfc3ViAAAIDHN1Yr0DEGRhdGFpBShyZW1vdmVfc3ViAAAEDHN1Yr0DIHF1aXRfc3ViAAEFWGFkZF91c2VybmFtZV9hdXRob3JpdHkAAAwkYXV0aG9yaXR5vQMYc3VmZml4JChhbGxvY2F0aW9uBGRyZW1vdmVfdXNlcm5hbWVfYXV0aG9yaXR5AAAIGHN1ZmZpeCQkYXV0aG9yaXR5vQNAc2V0X3VzZXJuYW1lX2ZvcgAAEAx3aG+9AyB1c2VybmFtZSQkc2lnbmF0dXJljQU4dXNlX2FsbG9jYXRpb24UPGFjY2VwdF91c2VybmFtZQAABCB1c2VybmFtZSRccmVtb3ZlX2V4cGlyZWRfYXBwcm92YWwAAAQgdXNlcm5hbWUkUHNldF9wcmltYXJ5X3VzZXJuYW1lAAAEIHVzZXJuYW1lJDx1bmJpbmRfdXNlcm5hbWUAAAQgdXNlcm5hbWUkPHJlbW92ZV91c2VybmFtZQAABCB1c2VybmFtZSQ0a2lsbF91c2VybmFtZQAABCB1c2VybmFtZSRUc2V0X3BlcnNvbmFsX2lkZW50aXR5AAAMHGFjY291bnQAJHNpZ25hdHVyZYkFIHVzZXJuYW1lJIxzdWJtaXRfcGVyc29uYWxfY3JlZGVudGlhbF9ldmlkZW5jZQAABChjcmVkZW50aWFskQVocGVyc29uYWxfY3JlZGVudGlhbF9qdWRnZWQAAAwYdGlja2V0BBxjb250ZXh0JCRqdWRnZW1lbnR9AlxjbGVhcl9wZXJzb25hbF9pZGVudGl0eQABBTxyZXBvcnRfdXNlcm5hbWUAAAQgdXNlcm5hbWUkYHJlcG9ydGVkX3VzZXJuYW1lX2p1ZGdlZAAADBh0aWNrZXQEHGNvbnRleHQkJGp1ZGdlbWVudH0CAjBEYnVpbGRfcmluZ19tYW51YWwAAAgocmluZ19pbmRleAQUbGltaXQ1A1RvbmJvYXJkX3Blb3BsZV9tYW51YWwAAQUsbWVyZ2VfcmluZ3MAAAg8YmFzZV9yaW5nX2luZGV4BER0YXJnZXRfcmluZ19pbmRleAQsdW5kZXJfYWxpYXMAAAQQY2FsbCUGRHNldF9hbGlhc19hY2NvdW50AAAIHGFjY291bnQANGNhbGxfdmFsaWRfYXQETHVuc2V0X2FsaWFzX2FjY291bnQAAQVoZm9yY2VfcmVjb2duaXplX3BlcnNvbmhvb2QAAAQYcGVvcGxlyQJcc2V0X3BlcnNvbmFsX2lkX2FjY291bnQAAAgcYWNjb3VudAA0Y2FsbF92YWxpZF9hdARkdW5zZXRfcGVyc29uYWxfaWRfYWNjb3VudAABBVBtaWdyYXRlX2luY2x1ZGVkX2tleQAABBxuZXdfa2V5IFhtaWdyYXRlX29uYm9hcmRpbmdfa2V5AAAEHG5ld19rZXkgTHNldF9vbmJvYXJkaW5nX3NpemUAAAQ8b25ib2FyZGluZ19zaXplBAJEEHZvdGUAAAgoY2FzZV9pbmRleAQcb3Bpbmlvbn0CKGNsb3NlX2Nhc2UAAAQoY2FzZV9pbmRleAQoY2xlYW5fdm90ZQAACChjYXNlX2luZGV4BBR2b3RlciAkcmVhcF9jYXNlAAAEKGNhc2VfaW5kZXgEJGludGVydmVuZQAACChjYXNlX2luZGV4BBx2ZXJkaWN0fQIoY2xhaW1fdm90ZQAABChjYXNlX2luZGV4BDhwYXlvdXRfcmV3YXJkcwAABBx2b3VjaGVyICxjbGFpbV92b3RlcwAABDBjYXNlX2luZGljZXOJAkhzdGFydF9wYXlvdXRfcm91bmQAAQVYc2NoZWR1bGVfcGF5b3V0X3JvdW5kcwAADBhhbW91bnQIFGNvdW50BBhwZXJpb2QEWHJlbW92ZV9wYXlvdXRfc2NoZWR1bGUAAAQUaW5kZXgEMGNsYWltX2NyZWRpdAABBTBjbGVhbl9wb2ludHMAAAgUcm91bmQEFHZvdGVyIEBmb3JjZV9yaXBlbl9jYXNlAAAEKGNhc2VfaW5kZXgEKHRvdWNoX2Nhc2UAAAQoY2FzZV9pbmRleARQY2xlYXJfdm90aW5nX3BlbmFsdHkAAQVEY2xlYW5fdm90ZV9zaWduZWQAAAgoY2FzZV9pbmRleAQUdm90ZXIgBQGBAQIUQERlc2lnbmVkRWxlY3RpdmUABAQBCERQcm9jZWR1cmFsQWNjb3VudAEESFByb2NlZHVyYWxQZXJzb25hbAEEKFByb2NlZHVyYWwAAwgEBFBQcm9jZWR1cmFsRGVyaXZhdGl2ZQADCAhFAgAgOHJlcm9sbF90aW1lb3V0BDxmYXN0dHJhY2tfY291bnQEHG1heGltdW0EOGZ1bGxfYWxsb2NfbGVuCEBmdWxsX2FsbG9jX2NvdW50BDhpbml0X2FsbG9jX2xlbghAaW5pdF9hbGxvY19jb3VudAQcdGltZW91dAQEBQQAAlgUYXBwbHkAAQU8c3VibWl0X2V2aWRlbmNlAAAEIGV2aWRlbmNlIBhqdWRnZWQAAAwYdGlja2V0BBxjb250ZXh0JCRqdWRnZW1lbnR9AkRyZWdpc3Rlcl9yZWZlcnJlZAAADAxrZXkgLHZvdWNoZXJfa2V5IEhwcm9vZl9vZl9vd25lcnNoaXChBVRyZWdpc3Rlcl9ub25fcmVmZXJyZWQAABAMa2V5ICx2b3VjaGVyX2tleSBQc2VsZl9yZWZfdm91Y2hlcl9rZXkgSHByb29mX29mX293bmVyc2hpcKEFGHJlcm9sbAABBRhjb21taXQAAAgYY2hvaWNlpQUocmVxdWlyZV9pZEUCNGFsbG9jYXRlX2Z1bGwAAQUcdGltZW91dAAABBxhY2NvdW50ACBmbGFrZW91dAABBVBhcHBseV93aXRoX3NpZ25hdHVyZQAADCByZWZlcnJlcggkc2lnbmF0dXJliQUYdGlja2V0AFRhcHBseV93aXRoX2ludml0YXRpb24AAAwcaW52aXRlcgAYdGlja2V0ACRzaWduYXR1cmWJBURhZGRfZGVzaWduX2ZhbWlseQAADBRpbmRleAQQa2luZJECCGlkIExzZXRfcmVmZXJyYWxfdGlja2V0AAAEGHRpY2tldABYY2FuY2VsX3JlZmVycmFsX3RpY2tldAAABBh0aWNrZXQAkHJlZ2lzdGVyX3N1Y2Nlc3NmdWxfcmVmZXJyYWxfdm91Y2hlcgAABCx2b3VjaGVyX2tleSA0Z3JhbnRfaW52aXRlcwAACBxhY2NvdW50ABRjb3VudASQcmVtb3ZlX2F2YWlsYWJsZV9hbmRfcGVuZGluZ19pbnZpdGVzAAAIHGFjY291bnQAFGxpbWl0BERzZXRfaW52aXRlX3RpY2tldAAABBh0aWNrZXQAUGNhbmNlbF9pbnZpdGVfdGlja2V0AAAEGHRpY2tldABEc2V0X2NvbmZpZ3VyYXRpb24AAAQYY29uZmlnqQVgc2V0X3JlaW1idXJzZW1lbnRfdmFsdWVzAAAIPHJlZmVycmVkX3ZhbHVlc60FPHJlZmVycmVyX3ZhbHVlc60FBQFRDAIUNGNsYWltX3ZvdWNoZXIAAAwUcHJvb2a1BTR2b3VjaGVyX3ZhbHVlCChyaW5nX2luZGV4BHhjbGFpbV92b3VjaGVyX2ludG9fZGVzdGluYXRpb24AABAUcHJvb2a1BRBkZXN0ADR2b3VjaGVyX3ZhbHVlCChyaW5nX2luZGV4BChjbGVhbl9yaW5nAAAINHZvdWNoZXJfdmFsdWUIKHJpbmdfaW5kZXgEZHNldF92b3VjaGVyX3ZhbHVlX2RlbGF5ZWQAAAhMdmFyaWFibGVfdm91Y2hlcl9pZKUBJG5ld192YWx1ZQhkc2V0X3ZvdWNoZXJfdmFsdWVfaW5zdGFudAAACEx2YXJpYWJsZV92b3VjaGVyX2lkpQEkbmV3X3ZhbHVlCAIIGFBlcnNvbgABBSROb3RQZXJzb24AAQUEvQUABMEFAAAQOGdhbWVfcGxheV90aW1lBBhyb3VuZHMEOG1heF9ncm91cF9zaXplBGRwZXJzb25ob29kX3Njb3JlX292ZXJyaWRlNQMEyQUAABQwcmVnaXN0cmF0aW9uBBxzaHVmZmxlBExwb3N0X3NodWZmbGVfbWFyZ2luBCRyZXBvcnRpbmcEOHBsYXllcl9wcm9jZXNzBAJATHNpZ25fdXBfd2l0aF9pbnZpdGUAAAQ4aWRlbnRpZmllcl9rZXmFBVBzaWduX3VwX3dpdGhfYWNjb3VudAAABDhpZGVudGlmaWVyX2tleYUFSHNpZ25fdXBfd2l0aF9hbGlhcwAADDhpZGVudGlmaWVyX2tleYUFRHN0YXRlbWVudF9hY2NvdW50AAxzaWeJBRhyZXBvcnQAAAQsZnVsbF9yZXBvcnTFBSBvZmZib2FyZAABBRxraWNrb3V0AAAEGHBsYXllcgA0Z3JhbnRfaW52aXRlcwAACBxhY2NvdW50ABRjb3VudASQcmVtb3ZlX2F2YWlsYWJsZV9hbmRfcGVuZGluZ19pbnZpdGVzAAAIHGFjY291bnQAFGxpbWl0BERzZXRfaW52aXRlX3RpY2tldAAABBh0aWNrZXQAUGNhbmNlbF9pbnZpdGVfdGlja2V0AAAEGHRpY2tldAA4c2NoZWR1bGVfZ2FtZXMAAAQ8Z2FtZXNfc2NoZWR1bGVzzQVUcmVtb3ZlX3NjaGVkdWxlZF9nYW1lAAAEOGdhbWVfcGxheV90aW1lBGx0ZXN0bmV0X2ZvcmNlX3N0YXJ0X3NodWZmbGUAAQVsdGVzdG5ldF9mb3JjZV9lbmRfcmVwb3J0aW5nAAEFXHRlc3RuZXRfc2V0X2dhbWVfcGhhc2VzAAAEGHBoYXNlc9EFZHRlc3RuZXRfa2lsbF9jdXJyZW50X2dhbWUAAQUDCCChBQbZBQIcWHNjaGVkdWxlX3BheW91dF9yb3VuZHMAAAwYYW1vdW50CBRjb3VudAQgZHVyYXRpb24EWHJlbW92ZV9wYXlvdXRfc2NoZWR1bGUAAAQUaW5kZXgEQHRyYW5zaXRpb25fcm91bmQAAAQscm91bmRfaW5kZXgEUG9wZXJhdGVfcGF5b3V0X3JvdW5kAAAILHJvdW5kX2luZGV4BBRsaW1pdAQgY2FzaF9vdXQAAQU0cmVkZWVtX2NyZWRpdAAABBx2b3VjaGVyICByZWdpc3RlcgAABAxrZXndBQMICCAE5QUABAgAAiAscmVzZXJ2ZV9pZHMAAAQUY291bnQEUHJlbmV3X2lkX3Jlc2VydmF0aW9uAAAECGlkCFRjYW5jZWxfaWRfcmVzZXJ2YXRpb24AAAQIaWQIUHJlY29nbml6ZV9wZXJzb25ob29kAAAEMGlkc19hbmRfa2V5c+kFSHN1c3BlbmRfcGVyc29uaG9vZAAABAxpZHPtBURyZXN1bWVfcGVyc29uaG9vZAAABAhpZAhYc3RhcnRfbXV0YXRpb25fc2Vzc2lvbgABBVBlbmRfbXV0YXRpb25fc2Vzc2lvbgABBQAUJHNpZ25hdHVyZYkFHGFjY291bnQAOGlkZW50aWZpZXJfa2V5hQUgdXNlcm5hbWUkRHJlc2VydmVkX3VzZXJuYW1lvQIG9QUCEHhpbmNyZWFzZV9hdHRlc3RhdGlvbl9hbGxvd2FuY2UAAAgcYWNjb3VudAAUY291bnQEbGNsZWFyX2F0dGVzdGF0aW9uX2FsbG93YW5jZQAABBxhY2NvdW50ABhhdHRlc3QAABQkY2FuZGlkYXRlAExjYW5kaWRhdGVfc2lnbmF0dXJliQUwcmluZ192cmZfa2V5IEhwcm9vZl9vZl9vd25lcnNoaXChBVRjb25zdW1lcl9yZWdpc3RyYXRpb275BUhkaXNwYXRjaF9hc19zaWduZXIAAAQQY2FsbCUGAggoU3RhbmRhbG9uZQEkLFJlc2VydmF0aW9uASQCFFByZWdpc3Rlcl9saXRlX3BlcnNvbgAADDhpZGVudGlmaWVyX2tleYUFIHVzZXJuYW1lJERyZXNlcnZlZF91c2VybmFtZb0CPHJlZ2lzdGVyX3BlcnNvbgAADFBsaW5rZWRfbGl0ZV9pZGVudGl0eQBMbGl0ZV9pZGVudGl0eV9wcm9vZokFPHVzZXJuYW1lX2Nob2ljZQEGaHRvdWNoX3BlcnNvbl9hdXRob3JpemF0aW9uAAEFjHJlbW92ZV9leHBpcmVkX3VzZXJuYW1lX3Jlc2VydmF0aW9uAAAEIHVzZXJuYW1lJFR1cGRhdGVfaWRlbnRpZmllcl9rZXkAAAQ4aWRlbnRpZmllcl9rZXmFBQAMFHByaXpltQJMcmVnaXN0cmF0aW9uX3N0YXJ0cwRUcmVnaXN0cmF0aW9uX2R1cmF0aW9uBAIQOHNjaGVkdWxlX2V2ZW50AAAEKGV2ZW50X2luZm8JBlhyZW1vdmVfc2NoZWR1bGVkX2V2ZW50AAAEIGV2ZW50X2lkBEhyZWdpc3Rlcl9mb3JfZXZlbnQAAAggZXZlbnRfaWQEEGRlc3QAbGNsYWltX2ZhaWxlZF90cmFuc2Zlcl9wcml6ZQAABCBldmVudF9pZAQADBRpbmRleAQwaW5uZXJfY3Vyc29yvQIoc3RhcnRlZF9hdAQCCBhBY3RpdmUBEQYUU3R1Y2sAAQUGFQYCCCBTcGVjaWZpYwERAyBXaWxkY2FyZAAACBRsaW1pdDUDPHByZXZpb3VzX2N1cnNvcr0CAhBAZm9yY2Vfc2V0X2N1cnNvcgAABBhjdXJzb3IZBlxmb3JjZV9zZXRfYWN0aXZlX2N1cnNvcgAADBRpbmRleAQwaW5uZXJfY3Vyc29yvQIoc3RhcnRlZF9hdDUDSGZvcmNlX29uYm9hcmRfbWJtcwABBThjbGVhcl9oaXN0b3JpYwAABCBzZWxlY3Rvch0GAnQYU3lzdGVtAcUEPFBhcmFjaGFpblN5c3RlbQHJBCRUaW1lc3RhbXABzQQ0UGFyYWNoYWluSW5mbwFdAiBCYWxhbmNlcwHRBERPcmlnaW5SZXN0cmljdGlvbgHVBBhBc3NldHMB2QQkQXNzZXRSYXRlAd0ERENvbGxhdG9yU2VsZWN0aW9uAeEEHFNlc3Npb24B5QQkWGNtcFF1ZXVlAekELFBvbGthZG90WGNtAe0EKEN1bXVsdXNYY20BXQIwTWVzc2FnZVF1ZXVlAfEEHFV0aWxpdHkB9QQgTXVsdGlzaWcB/QQQU3VkbwEBBSBJZGVudGl0eQGVBRhQZW9wbGUBmQUcTW9iUnVsZQGdBShQcm9vZk9mSW5rAbEFOFByaXZhY3lWb3VjaGVyAbkFEEdhbWUB1QUUU2NvcmUB4QUgRHVtbXlEaW0B8QUoUGVvcGxlTGl0ZQH9BSRSZXNvdXJjZXMBBQYcTG90dGVyeQENBlBNdWx0aUJsb2NrTWlncmF0aW9ucwEhBgQlBgAAEBB3aGVuaQIcZGVwb3NpdAgkZGVwb3NpdG9yACRhcHByb3ZhbHOJAQMIBH0FBDEGAAAMKGp1ZGdlbWVudHM1BhxkZXBvc2l0CBBpbmZvcQUDCAiJAQAMHGFjY291bnQADGZlZQgYZmllbGRzCAZBBgRFBgAACChhY2NvdW50X2lkAChhbGxvY2F0aW9uBAIMKEFsbG9jYXRpb24AAQVAQXV0aG9yaXR5RGVwb3NpdAEIGFN5c3RlbQABBQAIFG93bmVyACBwcm92aWRlclEGAwwABFEGAwiRBQQEXQYAABAcYWNjb3VudABIcGVuZGluZ19qdWRnZW1lbnRzYQYYYmFubmVkFGR1c2VybmFtZV9sYXN0X3JlcG9ydGVkX2F0NQMADCByZXBvcnRlcgAgdXNlcm5hbWUkHGNhc2VfaWQEBQEBBgUBwQYADBByb290bQYgcmV2aXNpb24EMGludGVybWVkaWF0ZXEGAAgUdG90YWwEIGluY2x1ZGVkBAIMKE9uYm9hcmRpbmcAAAQocXVldWVfcGFnZQQgSW5jbHVkZWQAAAwocmluZ19pbmRleAQ0cmluZ19wb3NpdGlvbgRUc2NoZWR1bGVkX2Zvcl9yZW1vdmFsFCRTdXNwZW5kZWQAAQUADAxrZXkgIHBvc2l0aW9ufQYcYWNjb3VudHECBQHABIUGAAIMKEFwcGVuZE9ubHkAAQUgTXV0YXRpbmcBBDBLZXlNaWdyYXRpb24AAQUAEBR2b3RlZAQcY2xlYW5lZAQcY29ycmVjdAQYY3JlZGl0CAIQQERlc2lnbmVkRWxlY3RpdmUABAQBCERQcm9jZWR1cmFsQWNjb3VudAADCAQgSFByb2NlZHVyYWxQZXJzb25hbAADCAQIKFByb2NlZHVyYWwAAwgEKAIMKFByb29mT2ZJbmsAAAwYZGVzaWdulQYgZXZpZGVuY2UgTHByb2JhYmxlX2FjY2VwdGFibGUUSElkZW50aXR5Q3JlZGVudGlhbAAACCBwbGF0Zm9ybZEFIGV2aWRlbmNlJDRVc2VybmFtZVZhbGlkAAAEIHVzZXJuYW1lJAAIMHBhbGxldF9pbmRleAQoY2FsbF9pbmRleAQADCRzdGF0ZW1lbnSZBhxjb250ZXh0JCBjYWxsYmFja50GAAwMYXllBAxuYXkEIGNvbnRlbXB0BAAMFHNpbmNlCBxkZXRhaWxzoQYUdGFsbHmlBgAIHGRldGFpbHOhBhx2ZXJkaWN0fQIACBRzaW5jZQgcdmVyZGljdH0CABQUcm91bmQEPGluaXRpYWxfYmFsYW5jZQhEcmVtYWluaW5nX2JhbGFuY2UIMHRvdGFsX3BvaW50cwgUc3RhcnQEAAwkcmVtYWluaW5nBEBhbW91bnRfcGVyX3JvdW5kCBhwZXJpb2QEBLkGAAIIFEZpeGVkAQggVmFyaWFibGUBpQECDCBSZWZlcnJlZAEIHERlcG9zaXQBCBxJbnZpdGVkAQACDBxJbml0aWFsAAEFIEluaXREb25lAAEFEEZ1bGwAAQUCDBxBcHBsaWVkAAAMEGNyZWTFBhxlbnRyb3B5IDRlbnRyb3B5X3NpbmNlBCBTZWxlY3RlZAAAIBRzaW5jZQQQY3JlZMUGIHJlc2VydmVkCBxlbnRyb3B5IBhkZXNpZ26VBihhbGxvY2F0aW9uyQYcanVkZ2luZzUDGGZhaWxlZAQYUHJvdmVuAAAQGGRlc2lnbpUGIHJlc2VydmVkCDB3YXNfcmVmZXJyZWQULHdhc19pbnZpdGVkFAaVBgAkGGRlc2lnbtEGQGFjdGl2ZV9yZWZlcnJhbHOJAWBhbGxvd2VkX3JlZmVycmFsX3RpY2tldHMENGJhZF9yZWZlcnJhbHMEUHN1Y2Nlc3NmdWxfcmVmZXJyYWxzBCRyZWZlcnJhbHMELGRlcml2YXRpdmVzBBhiYW5uZWQUZHBlbmRpbmdfcmVmZXJyYWxfdm91Y2hlcnMEAAgQa2luZJECCGlkIAIIIFJlc2VydmVkAAEFJENvbW1pdHRlZAABBQQAAQgACBByb290bQZIYnVpbHRfYmxvY2tfbnVtYmVyBAAIMGludGVybWVkaWF0ZXEGFGluZGV4BAMMCAQgAAg0cGVuZGluZ192YWx1ZQhUdHJhbnNpdGlvbl9yaW5nX2luZGV4BAbxBgAINGN1cnJlbnRfdmFsdWUIHHBlbmRpbmf1BgMIoQIgAgggS2lja2FibGUAAAgoZmlyc3RfZ2FtZQQ4YXJjaGl2ZWRfc2luY2UEKFVua2lja2FibGUAAAQoZmlyc3RfZ2FtZQQCDBxJbnZpdGVkAAEFKFJlY29nbml6ZWQAAQUcRGVwb3NpdAEIABgoZmlyc3RfZ2FtZQQocmVnaXN0ZXJlZBQsc2VudF9yZXBvcnQUKHllc19wZXJzb24ENG5vX25vdF9wZXJzb24ELGNyZWRpYmlsaXR5BQcGoQICCCxTdGVwMUluc2VydAAABDhsYXN0X2l0ZXJhdGlvbg0HNFN0ZXAyUmV0cmlldmUAAAhEbmV4dF9wbGF5ZXJfaW5kZXgETHJlY29nbml6ZWRfZmluaXNoZWQUAhQwUmVnaXN0cmF0aW9uAAAERG5leHRfcGxheWVyX2luZGV4BBxTaHVmZmxlAAAEEHN0ZXARByRSZXBvcnRpbmcAAAQwcGxheWVyX2NvdW50BDRQbGF5ZXJQcm9jZXNzAAAEOGxhc3RfaXRlcmF0aW9uDQcoQ2FuY2VsbGluZwAABDhsYXN0X2l0ZXJhdGlvbg0HACQUaW5kZXgERHJlZ2lzdHJhdGlvbl9lbmRzBEBzaHVmZmxlX2RlYWRsaW5lBCRnYW1lX2RhdGUELHJlcG9ydF9lbmRzBBRzdGF0ZRUHOG1heF9ncm91cF9zaXplBBhyb3VuZHMEZHBlcnNvbmhvb2Rfc2NvcmVfb3ZlcnJpZGU1AwIIIEF0dGVuZGVkAQQYQWJzZW50AQQCEFBFeHRlcm5hbGx5UmVjb2duaXplZAABBTROb3RSZWNvZ25pemVkAAEFJFN1c3BlbmRlZAEIKFJlY29nbml6ZWQBCAAcFHNjb3JlBBhzdHJlYWsdBxhjcmVkaXQIKGNhc2hlZF9vdXQUSHJlYWNoZWRfcGVyc29uaG9vZBRsaGFzX2V2ZXJfcmVhY2hlZF9wZXJzb25ob29kFCxyZWNvZ25pdGlvbiEHAwgEoQIACERyZW1haW5pbmdfYmFsYW5jZQgscG9pbnRfcHJpY2UIAAgkZmluaXNoX2F0BBhjcmVkaXQIAAwkcmVtYWluaW5nBEBhbW91bnRfcGVyX3JvdW5kCCBkdXJhdGlvbgQENQcAAAgMa2V5ICRzdXNwZW5kZWQUAgQwVW5pcXVlRGV2aWNlAQAACDByaW5nX3ZyZl9rZXkgGG1ldGhvZEEHAggQTGl0ZQABBRhQZXJzb24AAAgUYWxpYXMgLGxhc3RfdXBkYXRlCAAQOGlkZW50aWZpZXJfa2V5hQU0ZnVsbF91c2VybmFtZb0CNGxpdGVfdXNlcm5hbWUkLGNyZWRpYmlsaXR5SQcACBRvd25lcgAUc2luY2UIAAgIaWQEEGluZm8JBgRVBwACFCxSZWdpc3RlcmluZwABBWBXYWl0aW5nRm9yRW50cm9weVRvQnVpbGQAAARAc3RhcnRlZF9hdF9yY19ibgQ4RHJhd2luZ1dpbm5lcnMAAAQcZW50cm9weSAwRGlzdHJpYnV0aW5nAAEFPENsZWFyaW5nU3RvcmFnZQABBQAQCGlkBExuZXh0X3BhcnRpY2lwYW50X2lkBBBpbmZvCQYYc3RhdHVzXQcDCCAAAwgABAMIIQEIABQUcHJpemW1AkxyZWdpc3RyYXRpb25fc3RhcnRzBFRyZWdpc3RyYXRpb25fZHVyYXRpb24ESHRvdGFsX3BhcnRpY2lwYW50cwQcd2lubmVyc8kCAAgYaGVhZGVyjQMoZXh0cmluc2ljcxEDAgg0QWxsRXh0cmluc2ljcwABBTRPbmx5SW5oZXJlbnRzAAEFAjQQQ2FsbAABBRxQYXltZW50AAEFGEZ1dHVyZQABBRRTdGFsZQABBSBCYWRQcm9vZgABBURBbmNpZW50QmlydGhCbG9jawABBURFeGhhdXN0c1Jlc291cmNlcwABBRhDdXN0b20BBDBCYWRNYW5kYXRvcnkAAQVMTWFuZGF0b3J5VmFsaWRhdGlvbgABBSRCYWRTaWduZXIAAQVUSW5kZXRlcm1pbmF0ZUltcGxpY2l0AAEFNFVua25vd25PcmlnaW4AAQUCDDBDYW5ub3RMb29rdXAAAQVMTm9VbnNpZ25lZFZhbGlkYXRvcgABBRhDdXN0b20BBAIIHEludmFsaWQBfQccVW5rbm93bgGBBwdhAoUHAwilASQEjQcAAAwQb2theRQsZmF0YWxfZXJyb3IUGGVycm9yc5EHAgwcSW5CbG9jawABBRRMb2NhbAABBSBFeHRlcm5hbAABBQAUIHByaW9yaXR5CCByZXF1aXJlcxEDIHByb3ZpZGVzEQMkbG9uZ2V2aXR5CCRwcm9wYWdhdGUUB50HhQcDCCQoBKUHAAapBwAMGHdlaWdodBgUY2xhc3M4LHBhcnRpYWxfZmVlCAAMIGJhc2VfZmVlCBxsZW5fZmVlCExhZGp1c3RlZF93ZWlnaHRfZmVlCAa1BwAINGluY2x1c2lvbl9mZWW5Bwx0aXAIBFkEAAIYNFVuaW1wbGVtZW50ZWQAAQVkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABBUxXZWlnaHROb3RDb21wdXRhYmxlAAEFTFVuaGFuZGxlZFhjbVZlcnNpb24AAQU0QXNzZXROb3RGb3VuZAABBShVbnJvdXRhYmxlAAEFB8EHxQcHGMUHBwjFBwc9AsUHAggsVW5zdXBwb3J0ZWQAAQVkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABBQcA2QcCDBRDaGFpbgABBRxOZXR3b3JrAAEFFExvY2FsAAEFBQGEAhAcU3IyNTUxOQAACCRzaWduYXR1cmWBBRhzaWduZXIgHEVkMjU1MTkAAAgkc2lnbmF0dXJlgQUYc2lnbmVyIDhTZWNwMjU2azFFY2RzYQAACCRzaWduYXR1cmWFBRhzaWduZXLlBxxPbkNoYWluAAAMDHdobyAoYmxvY2tfaGFzaCAsZXZlbnRfaW5kZXgIBukHBCABEAAcFHByb29m7Qc4ZGVjcnlwdGlvbl9rZXnQHGNoYW5uZWzQIHByaW9yaXR5NQMobnVtX3RvcGljcwQYdG9waWNz8QcQZGF0Yb0CAAgkbWF4X2NvdW50BCBtYXhfc2l6ZQQCGEBOb1JlcG9ydGluZ1BoYXNlAAEFUFN0YXRlbWVudElzTm90U2lnbmVkAAEFQEludmFsaWRTaWduYXR1cmUAAQU0SW52YWxpZFRvcGljMAAACCBleHBlY3RlZNAYYWN0dWFs0ExBY2NvdW50SXNOb3RBUGxheWVyAAEFVFBsYXllcklzTm90UmVnaXN0ZXJlZAABBQf5B/0HABg8dXB3YXJkX21lc3NhZ2VzEQNMaG9yaXpvbnRhbF9tZXNzYWdlc3EDTG5ld192YWxpZGF0aW9uX2NvZGW9Amxwcm9jZXNzZWRfZG93bndhcmRfbWVzc2FnZXMEOGhybXBfd2F0ZXJtYXJrBCRoZWFkX2RhdGEkB10C3QIG3QIE3QIAAgwgQmFkUHJvb2YAAQUcTm9Qcm9vZgABBTRJbnRlcm5hbEVycm9yAAEFB/kHFQg=";
68
+ metadataTypes_default = content;
69
+ }
70
+ });
71
+
72
+ // .papi/descriptors/src/people_lite_metadata.ts
73
+ var people_lite_metadata_exports = {};
74
+ __export(people_lite_metadata_exports, {
75
+ default: () => people_lite_metadata_default
76
+ });
77
+ var binMeta, people_lite_metadata_default;
78
+ var init_people_lite_metadata = __esm({
79
+ ".papi/descriptors/src/people_lite_metadata.ts"() {
80
+ "use strict";
81
+ binMeta = "bWV0YRBNCwAMHHNwX2NvcmUYY3J5cHRvLEFjY291bnRJZDMyAAAEAAQBIFt1ODsgMzJdAAAEAAADIAAAAAgACAAABQMADAgwZnJhbWVfc3lzdGVtLEFjY291bnRJbmZvCBROb25jZQEQLEFjY291bnREYXRhARQAFAEUbm9uY2UQARROb25jZQABJGNvbnN1bWVycxABIFJlZkNvdW50AAEkcHJvdmlkZXJzEAEgUmVmQ291bnQAASxzdWZmaWNpZW50cxABIFJlZkNvdW50AAEQZGF0YRQBLEFjY291bnREYXRhAAAQAAAFBQAUDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsQWNjb3VudERhdGEEHEJhbGFuY2UBGAAQARBmcmVlGAEcQmFsYW5jZQABIHJlc2VydmVkGAEcQmFsYW5jZQABGGZyb3plbhgBHEJhbGFuY2UAARRmbGFncxwBKEV4dHJhRmxhZ3MAABgAAAUHABwMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyhFeHRyYUZsYWdzAAAEABgBEHUxMjgAACAAAAUAACQMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUGVyRGlzcGF0Y2hDbGFzcwQEVAEoAAwBGG5vcm1hbCgBBFQAASxvcGVyYXRpb25hbCgBBFQAASRtYW5kYXRvcnkoAQRUAAAoDChzcF93ZWlnaHRzJHdlaWdodF92MhhXZWlnaHQAAAgBIHJlZl90aW1lLAEMdTY0AAEocHJvb2Zfc2l6ZSwBDHU2NAAALAAABjAAMAAABQYANAg8cHJpbWl0aXZlX3R5cGVzEEgyNTYAAAQABAEgW3U4OyAzMl0AADgAAAIIADwQKHNwX3J1bnRpbWUcZ2VuZXJpYxhkaWdlc3QYRGlnZXN0AAAEARBsb2dzQAE8VmVjPERpZ2VzdEl0ZW0+AABAAAACRABEEChzcF9ydW50aW1lHGdlbmVyaWMYZGlnZXN0KERpZ2VzdEl0ZW0AARQoUHJlUnVudGltZQgASAFEQ29uc2Vuc3VzRW5naW5lSWQAADgBHFZlYzx1OD4ABgAkQ29uc2Vuc3VzCABIAURDb25zZW5zdXNFbmdpbmVJZAAAOAEcVmVjPHU4PgAEABBTZWFsCABIAURDb25zZW5zdXNFbmdpbmVJZAAAOAEcVmVjPHU4PgAFABRPdGhlcgQAOAEcVmVjPHU4PgAAAGRSdW50aW1lRW52aXJvbm1lbnRVcGRhdGVkAAgAAEgAAAMEAAAACABMAAACUABQCDBmcmFtZV9zeXN0ZW0sRXZlbnRSZWNvcmQIBEUBVARUATQADAEUcGhhc2UNAwEUUGhhc2UAARRldmVudFQBBEUAARh0b3BpY3MRAwEYVmVjPFQ+AABUCFRwZW9wbGVfcm9jb2NvX3J1bnRpbWUwUnVudGltZUV2ZW50AAF8GFN5c3RlbQQAWAFwZnJhbWVfc3lzdGVtOjpFdmVudDxSdW50aW1lPgAAADxQYXJhY2hhaW5TeXN0ZW0EAIABvGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW06OkV2ZW50PFJ1bnRpbWU+AAEAIEJhbGFuY2VzBACIAXxwYWxsZXRfYmFsYW5jZXM6OkV2ZW50PFJ1bnRpbWU+AAoASFRyYW5zYWN0aW9uUGF5bWVudAQAkAGocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQ6OkV2ZW50PFJ1bnRpbWU+AAsASFNraXBGZWVsZXNzUGF5bWVudAQAlAGscGFsbGV0X3NraXBfZmVlbGVzc19wYXltZW50OjpFdmVudDxSdW50aW1lPgAMAERPcmlnaW5SZXN0cmljdGlvbgQAFQEBvGluZGl2X3BhbGxldF9vcmlnaW5fcmVzdHJpY3Rpb246OkV2ZW50PFJ1bnRpbWU+AA0AGEFzc2V0cwQAHQEBdHBhbGxldF9hc3NldHM6OkV2ZW50PFJ1bnRpbWU+AA4AMEFzc2V0c0hvbGRlcgQAIQEBkHBhbGxldF9hc3NldHNfaG9sZGVyOjpFdmVudDxSdW50aW1lPgAPACRBc3NldFJhdGUEAEEBAYRwYWxsZXRfYXNzZXRfcmF0ZTo6RXZlbnQ8UnVudGltZT4AEAA4QXNzZXRUeFBheW1lbnQEAEkBAZxwYWxsZXRfYXNzZXRfdHhfcGF5bWVudDo6RXZlbnQ8UnVudGltZT4AEQBEQ29sbGF0b3JTZWxlY3Rpb24EAFEBAaRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uOjpFdmVudDxSdW50aW1lPgAVABxTZXNzaW9uBABZAQF4cGFsbGV0X3Nlc3Npb246OkV2ZW50PFJ1bnRpbWU+ABYAJFhjbXBRdWV1ZQQAXQEBpGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWU6OkV2ZW50PFJ1bnRpbWU+AB4ALFBvbGthZG90WGNtBABhAQFocGFsbGV0X3hjbTo6RXZlbnQ8UnVudGltZT4AHwAoQ3VtdWx1c1hjbQQAiQIBiGN1bXVsdXNfcGFsbGV0X3hjbTo6RXZlbnQ8UnVudGltZT4AIAAwTWVzc2FnZVF1ZXVlBACNAgGQcGFsbGV0X21lc3NhZ2VfcXVldWU6OkV2ZW50PFJ1bnRpbWU+ACIAHFV0aWxpdHkEAJkCAVRwYWxsZXRfdXRpbGl0eTo6RXZlbnQAKAAgTXVsdGlzaWcEAKUCAXxwYWxsZXRfbXVsdGlzaWc6OkV2ZW50PFJ1bnRpbWU+ACkAEFN1ZG8EAK0CAWxwYWxsZXRfc3Vkbzo6RXZlbnQ8UnVudGltZT4AKgAgSWRlbnRpdHkEALUCAZRpbmRpdl9wYWxsZXRfaWRlbnRpdHk6OkV2ZW50PFJ1bnRpbWU+ADIAGFBlb3BsZQQAxQIBjGluZGl2X3BhbGxldF9wZW9wbGU6OkV2ZW50PFJ1bnRpbWU+ADMAHE1vYlJ1bGUEAM0CAZRpbmRpdl9wYWxsZXRfbW9iX3J1bGU6OkV2ZW50PFJ1bnRpbWU+ADQAKFByb29mT2ZJbmsEANUCAaRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rOjpFdmVudDxSdW50aW1lPgA1ADhQcml2YWN5Vm91Y2hlcgQA4QIBsGluZGl2X3BhbGxldF9wcml2YWN5X3ZvdWNoZXI6OkV2ZW50PFJ1bnRpbWU+ADYAEEdhbWUEAOUCAYRpbmRpdl9wYWxsZXRfZ2FtZTo6RXZlbnQ8UnVudGltZT4ANwAUU2NvcmUEAOkCAYhpbmRpdl9wYWxsZXRfc2NvcmU6OkV2ZW50PFJ1bnRpbWU+ADgAIER1bW15RGltBADxAgGYaW5kaXZfcGFsbGV0X2R1bW15X2RpbTo6RXZlbnQ8UnVudGltZT4AOwAoUGVvcGxlTGl0ZQQA9QIBoGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZTo6RXZlbnQ8UnVudGltZT4APgAkUmVzb3VyY2VzBAD5AgGYaW5kaXZfcGFsbGV0X3Jlc291cmNlczo6RXZlbnQ8UnVudGltZT4APwAcTG90dGVyeQQA/QIBkGluZGl2X3BhbGxldF9sb3R0ZXJ5OjpFdmVudDxSdW50aW1lPgA9AFBNdWx0aUJsb2NrTWlncmF0aW9ucwQABQMBhHBhbGxldF9taWdyYXRpb25zOjpFdmVudDxSdW50aW1lPgBiAABYDDBmcmFtZV9zeXN0ZW0YcGFsbGV0FEV2ZW50BARUAAEgQEV4dHJpbnNpY1N1Y2Nlc3MEATRkaXNwYXRjaF9pbmZvXAFERGlzcGF0Y2hFdmVudEluZm8AAASQQW4gZXh0cmluc2ljIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuPEV4dHJpbnNpY0ZhaWxlZAgBOGRpc3BhdGNoX2Vycm9yaAE0RGlzcGF0Y2hFcnJvcgABNGRpc3BhdGNoX2luZm9cAUREaXNwYXRjaEV2ZW50SW5mbwABBFBBbiBleHRyaW5zaWMgZmFpbGVkLixDb2RlVXBkYXRlZAACBFBgOmNvZGVgIHdhcyB1cGRhdGVkLihOZXdBY2NvdW50BAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAADBGhBIG5ldyBhY2NvdW50IHdhcyBjcmVhdGVkLjRLaWxsZWRBY2NvdW50BAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAAEBFhBbiBhY2NvdW50IHdhcyByZWFwZWQuIFJlbWFya2VkCAEYc2VuZGVyAAEwVDo6QWNjb3VudElkAAEQaGFzaDQBHFQ6Okhhc2gABQRwT24gb24tY2hhaW4gcmVtYXJrIGhhcHBlbmVkLkRVcGdyYWRlQXV0aG9yaXplZAgBJGNvZGVfaGFzaDQBHFQ6Okhhc2gAATRjaGVja192ZXJzaW9uIAEQYm9vbAAGBGhBbiB1cGdyYWRlIHdhcyBhdXRob3JpemVkLoBSZWplY3RlZEludmFsaWRBdXRob3JpemVkVXBncmFkZQgBJGNvZGVfaGFzaDQBHFQ6Okhhc2gAARRlcnJvcmgBNERpc3BhdGNoRXJyb3IABwQRAUFuIGludmFsaWQgYXV0aG9yaXplZCB1cGdyYWRlIHdhcyByZWplY3RlZCB3aGlsZSB0cnlpbmcgdG8gYXBwbHkgaXQuBHBFdmVudCBmb3IgdGhlIFN5c3RlbSBwYWxsZXQuXAgwZnJhbWVfc3lzdGVtRERpc3BhdGNoRXZlbnRJbmZvAAAMARh3ZWlnaHQoARhXZWlnaHQAARRjbGFzc2ABNERpc3BhdGNoQ2xhc3MAASBwYXlzX2ZlZWQBEFBheXMAAGAMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2g0RGlzcGF0Y2hDbGFzcwABDBhOb3JtYWwAAAAsT3BlcmF0aW9uYWwAAQAkTWFuZGF0b3J5AAIAAGQMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2gQUGF5cwABCAxZZXMAAAAITm8AAQAAaAgoc3BfcnVudGltZTREaXNwYXRjaEVycm9yAAE8FE90aGVyAAAAMENhbm5vdExvb2t1cAABACRCYWRPcmlnaW4AAgAYTW9kdWxlBABsASxNb2R1bGVFcnJvcgADAERDb25zdW1lclJlbWFpbmluZwAEACxOb1Byb3ZpZGVycwAFAEBUb29NYW55Q29uc3VtZXJzAAYAFFRva2VuBABwAShUb2tlbkVycm9yAAcAKEFyaXRobWV0aWMEAHQBPEFyaXRobWV0aWNFcnJvcgAIADRUcmFuc2FjdGlvbmFsBAB4AUhUcmFuc2FjdGlvbmFsRXJyb3IACQAkRXhoYXVzdGVkAAoAKENvcnJ1cHRpb24ACwAsVW5hdmFpbGFibGUADAA4Um9vdE5vdEFsbG93ZWQADQAQVHJpZQQAfAEkVHJpZUVycm9yAA4AAGwIKHNwX3J1bnRpbWUsTW9kdWxlRXJyb3IAAAgBFGluZGV4CAEIdTgAARRlcnJvckgBjFt1ODsgTUFYX01PRFVMRV9FUlJPUl9FTkNPREVEX1NJWkVdAABwCChzcF9ydW50aW1lKFRva2VuRXJyb3IAAShARnVuZHNVbmF2YWlsYWJsZQAAADBPbmx5UHJvdmlkZXIAAQAwQmVsb3dNaW5pbXVtAAIAMENhbm5vdENyZWF0ZQADADBVbmtub3duQXNzZXQABAAYRnJvemVuAAUALFVuc3VwcG9ydGVkAAYAQENhbm5vdENyZWF0ZUhvbGQABwA0Tm90RXhwZW5kYWJsZQAIABxCbG9ja2VkAAkAAHQINHNwX2FyaXRobWV0aWM8QXJpdGhtZXRpY0Vycm9yAAEMJFVuZGVyZmxvdwAAACBPdmVyZmxvdwABADhEaXZpc2lvbkJ5WmVybwACAAB4CChzcF9ydW50aW1lSFRyYW5zYWN0aW9uYWxFcnJvcgABCDBMaW1pdFJlYWNoZWQAAAAcTm9MYXllcgABAAB8DChzcF9ydW50aW1lMHByb3ZpbmdfdHJpZSRUcmllRXJyb3IAAThASW52YWxpZFN0YXRlUm9vdAAAAEhJbmNvbXBsZXRlRGF0YWJhc2UAAQBQVmFsdWVBdEluY29tcGxldGVLZXkAAgAwRGVjb2RlckVycm9yAAMALEludmFsaWRIYXNoAAQAMER1cGxpY2F0ZUtleQAFADhFeHRyYW5lb3VzTm9kZQAGADxFeHRyYW5lb3VzVmFsdWUABwBcRXh0cmFuZW91c0hhc2hSZWZlcmVuY2UACABUSW52YWxpZENoaWxkUmVmZXJlbmNlAAkANFZhbHVlTWlzbWF0Y2gACgA8SW5jb21wbGV0ZVByb29mAAsAMFJvb3RNaXNtYXRjaAAMACxEZWNvZGVFcnJvcgANAACADHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtGHBhbGxldBRFdmVudAQEVAABGGBWYWxpZGF0aW9uRnVuY3Rpb25TdG9yZWQAAATQVGhlIHZhbGlkYXRpb24gZnVuY3Rpb24gaGFzIGJlZW4gc2NoZWR1bGVkIHRvIGFwcGx5LmRWYWxpZGF0aW9uRnVuY3Rpb25BcHBsaWVkBAFUcmVsYXlfY2hhaW5fYmxvY2tfbnVtEAFUUmVsYXlDaGFpbkJsb2NrTnVtYmVyAAEERQFUaGUgdmFsaWRhdGlvbiBmdW5jdGlvbiB3YXMgYXBwbGllZCBhcyBvZiB0aGUgY29udGFpbmVkIHJlbGF5IGNoYWluIGJsb2NrIG51bWJlci5sVmFsaWRhdGlvbkZ1bmN0aW9uRGlzY2FyZGVkAAIEsFRoZSByZWxheS1jaGFpbiBhYm9ydGVkIHRoZSB1cGdyYWRlIHByb2Nlc3MuYERvd253YXJkTWVzc2FnZXNSZWNlaXZlZAQBFGNvdW50EAEMdTMyAAMEAQFTb21lIGRvd253YXJkIG1lc3NhZ2VzIGhhdmUgYmVlbiByZWNlaXZlZCBhbmQgd2lsbCBiZSBwcm9jZXNzZWQuZERvd253YXJkTWVzc2FnZXNQcm9jZXNzZWQIASx3ZWlnaHRfdXNlZCgBGFdlaWdodAABIGRtcV9oZWFkNAFEcmVsYXlfY2hhaW46Okhhc2gABATgRG93bndhcmQgbWVzc2FnZXMgd2VyZSBwcm9jZXNzZWQgdXNpbmcgdGhlIGdpdmVuIHdlaWdodC5EVXB3YXJkTWVzc2FnZVNlbnQEATBtZXNzYWdlX2hhc2iEATxPcHRpb248WGNtSGFzaD4ABQS4QW4gdXB3YXJkIG1lc3NhZ2Ugd2FzIHNlbnQgdG8gdGhlIHJlbGF5IGNoYWluLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldIQEGE9wdGlvbgQEVAEEAQgQTm9uZQAAABBTb21lBAAEAAABAACIDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0FEV2ZW50CARUAARJAAFYHEVuZG93ZWQIARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEwZnJlZV9iYWxhbmNlGAEoVDo6QmFsYW5jZQAABLhBbiBhY2NvdW50IHdhcyBjcmVhdGVkIHdpdGggc29tZSBmcmVlIGJhbGFuY2UuIER1c3RMb3N0CAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAAQg9AUFuIGFjY291bnQgd2FzIHJlbW92ZWQgd2hvc2UgYmFsYW5jZSB3YXMgbm9uLXplcm8gYnV0IGJlbG93IEV4aXN0ZW50aWFsRGVwb3NpdCx4cmVzdWx0aW5nIGluIGFuIG91dHJpZ2h0IGxvc3MuIFRyYW5zZmVyDAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQACBExUcmFuc2ZlciBzdWNjZWVkZWQuKEJhbGFuY2VTZXQIAQx3aG8AATBUOjpBY2NvdW50SWQAARBmcmVlGAEoVDo6QmFsYW5jZQADBGhBIGJhbGFuY2Ugd2FzIHNldCBieSByb290LiBSZXNlcnZlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UABATgU29tZSBiYWxhbmNlIHdhcyByZXNlcnZlZCAobW92ZWQgZnJvbSBmcmVlIHRvIHJlc2VydmVkKS4oVW5yZXNlcnZlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UABQToU29tZSBiYWxhbmNlIHdhcyB1bnJlc2VydmVkIChtb3ZlZCBmcm9tIHJlc2VydmVkIHRvIGZyZWUpLkhSZXNlcnZlUmVwYXRyaWF0ZWQQARBmcm9tAAEwVDo6QWNjb3VudElkAAEIdG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAFIZGVzdGluYXRpb25fc3RhdHVzjAEYU3RhdHVzAAYITQFTb21lIGJhbGFuY2Ugd2FzIG1vdmVkIGZyb20gdGhlIHJlc2VydmUgb2YgdGhlIGZpcnN0IGFjY291bnQgdG8gdGhlIHNlY29uZCBhY2NvdW50LthGaW5hbCBhcmd1bWVudCBpbmRpY2F0ZXMgdGhlIGRlc3RpbmF0aW9uIGJhbGFuY2UgdHlwZS4cRGVwb3NpdAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UABwTYU29tZSBhbW91bnQgd2FzIGRlcG9zaXRlZCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuIFdpdGhkcmF3CAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQAIBB0BU29tZSBhbW91bnQgd2FzIHdpdGhkcmF3biBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciB0cmFuc2FjdGlvbiBmZWVzKS4cU2xhc2hlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UACQQBAVNvbWUgYW1vdW50IHdhcyByZW1vdmVkIGZyb20gdGhlIGFjY291bnQgKGUuZy4gZm9yIG1pc2JlaGF2aW9yKS4YTWludGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQAKBJxTb21lIGFtb3VudCB3YXMgbWludGVkIGludG8gYW4gYWNjb3VudC4YQnVybmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQALBJxTb21lIGFtb3VudCB3YXMgYnVybmVkIGZyb20gYW4gYWNjb3VudC4kU3VzcGVuZGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQAMBBUBU29tZSBhbW91bnQgd2FzIHN1c3BlbmRlZCBmcm9tIGFuIGFjY291bnQgKGl0IGNhbiBiZSByZXN0b3JlZCBsYXRlcikuIFJlc3RvcmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQANBKRTb21lIGFtb3VudCB3YXMgcmVzdG9yZWQgaW50byBhbiBhY2NvdW50LiBVcGdyYWRlZAQBDHdobwABMFQ6OkFjY291bnRJZAAOBGBBbiBhY2NvdW50IHdhcyB1cGdyYWRlZC4YSXNzdWVkBAEYYW1vdW50GAEoVDo6QmFsYW5jZQAPBC0BVG90YWwgaXNzdWFuY2Ugd2FzIGluY3JlYXNlZCBieSBgYW1vdW50YCwgY3JlYXRpbmcgYSBjcmVkaXQgdG8gYmUgYmFsYW5jZWQuJFJlc2NpbmRlZAQBGGFtb3VudBgBKFQ6OkJhbGFuY2UAEAQlAVRvdGFsIGlzc3VhbmNlIHdhcyBkZWNyZWFzZWQgYnkgYGFtb3VudGAsIGNyZWF0aW5nIGEgZGVidCB0byBiZSBiYWxhbmNlZC4YTG9ja2VkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQARBGBTb21lIGJhbGFuY2Ugd2FzIGxvY2tlZC4gVW5sb2NrZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlABIEaFNvbWUgYmFsYW5jZSB3YXMgdW5sb2NrZWQuGEZyb3plbggBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAEwRgU29tZSBiYWxhbmNlIHdhcyBmcm96ZW4uGFRoYXdlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAFARgU29tZSBiYWxhbmNlIHdhcyB0aGF3ZWQuTFRvdGFsSXNzdWFuY2VGb3JjZWQIAQxvbGQYAShUOjpCYWxhbmNlAAEMbmV3GAEoVDo6QmFsYW5jZQAVBKxUaGUgYFRvdGFsSXNzdWFuY2VgIHdhcyBmb3JjZWZ1bGx5IGNoYW5nZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0jBQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zEG1pc2M0QmFsYW5jZVN0YXR1cwABCBBGcmVlAAAAIFJlc2VydmVkAAEAAJAMaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50GHBhbGxldBRFdmVudAQEVAABBEhUcmFuc2FjdGlvbkZlZVBhaWQMAQx3aG8AATBUOjpBY2NvdW50SWQAAShhY3R1YWxfZmVlGAEwQmFsYW5jZU9mPFQ+AAEMdGlwGAEwQmFsYW5jZU9mPFQ+AAAIWQFBIHRyYW5zYWN0aW9uIGZlZSBgYWN0dWFsX2ZlZWAsIG9mIHdoaWNoIGB0aXBgIHdhcyBhZGRlZCB0byB0aGUgbWluaW11bSBpbmNsdXNpb24gZmVlLFxoYXMgYmVlbiBwYWlkIGJ5IGB3aG9gLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldJQMbHBhbGxldF9za2lwX2ZlZWxlc3NfcGF5bWVudBhwYWxsZXQURXZlbnQEBFQAAQQoRmVlU2tpcHBlZAQBGG9yaWdpbpgBwDxUOjpSdW50aW1lT3JpZ2luIGFzIE9yaWdpblRyYWl0Pjo6UGFsbGV0c09yaWdpbgAABHhBIHRyYW5zYWN0aW9uIGZlZSB3YXMgc2tpcHBlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSYCFRwZW9wbGVfcm9jb2NvX3J1bnRpbWUwT3JpZ2luQ2FsbGVyAAEkGHN5c3RlbQQAnAF0ZnJhbWVfc3lzdGVtOjpPcmlnaW48UnVudGltZT4AAAAsUG9sa2Fkb3RYY20EAKABSHBhbGxldF94Y206Ok9yaWdpbgAfAChDdW11bHVzWGNtBADsAWhjdW11bHVzX3BhbGxldF94Y206Ok9yaWdpbgAgABhQZW9wbGUEAPQBbGluZGl2X3BhbGxldF9wZW9wbGU6Ok9yaWdpbgAzAChQcm9vZk9mSW5rBAABAQGoaW5kaXZfcGFsbGV0X3Byb29mX29mX2luazo6T3JpZ2luPFJ1bnRpbWU+ADUAOFByaXZhY3lWb3VjaGVyBAAFAQG0aW5kaXZfcGFsbGV0X3ByaXZhY3lfdm91Y2hlcjo6T3JpZ2luPFJ1bnRpbWU+ADYAEEdhbWUEAAkBAYhpbmRpdl9wYWxsZXRfZ2FtZTo6T3JpZ2luPFJ1bnRpbWU+ADcAFFNjb3JlBAANAQGMaW5kaXZfcGFsbGV0X3Njb3JlOjpPcmlnaW48UnVudGltZT4AOAAoUGVvcGxlTGl0ZQQAEQEBpGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZTo6T3JpZ2luPFJ1bnRpbWU+AD4AAJwMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2gkUmF3T3JpZ2luBCRBY2NvdW50SWQBAAEQEFJvb3QAAAAYU2lnbmVkBAAAASRBY2NvdW50SWQAAQAQTm9uZQACAChBdXRob3JpemVkAAMAAKAMKHBhbGxldF94Y20YcGFsbGV0GE9yaWdpbgABCAxYY20EAKQBIExvY2F0aW9uAAAAIFJlc3BvbnNlBACkASBMb2NhdGlvbgABAACkECxzdGFnaW5nX3hjbQh2NSBsb2NhdGlvbiBMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3KoASRKdW5jdGlvbnMAAKgQLHN0YWdpbmdfeGNtCHY1JGp1bmN0aW9ucyRKdW5jdGlvbnMAASQQSGVyZQAAAAhYMQQArAFIQXJjPFtKdW5jdGlvbjsgMV0+AAEACFgyBADQAUhBcmM8W0p1bmN0aW9uOyAyXT4AAgAIWDMEANQBSEFyYzxbSnVuY3Rpb247IDNdPgADAAhYNAQA2AFIQXJjPFtKdW5jdGlvbjsgNF0+AAQACFg1BADcAUhBcmM8W0p1bmN0aW9uOyA1XT4ABQAIWDYEAOABSEFyYzxbSnVuY3Rpb247IDZdPgAGAAhYNwQA5AFIQXJjPFtKdW5jdGlvbjsgN10+AAcACFg4BADoAUhBcmM8W0p1bmN0aW9uOyA4XT4ACAAArAAAAwEAAACwALAQLHN0YWdpbmdfeGNtCHY1IGp1bmN0aW9uIEp1bmN0aW9uAAEoJFBhcmFjaGFpbgQAtAEMdTMyAAAALEFjY291bnRJZDMyCAEcbmV0d29ya7gBRE9wdGlvbjxOZXR3b3JrSWQ+AAEIaWQEASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcmu4AURPcHRpb248TmV0d29ya0lkPgABFGluZGV4LAEMdTY0AAIAMEFjY291bnRLZXkyMAgBHG5ldHdvcmu4AURPcHRpb248TmV0d29ya0lkPgABDGtlecABIFt1ODsgMjBdAAMAOFBhbGxldEluc3RhbmNlBAAIAQh1OAAEADBHZW5lcmFsSW5kZXgEAMQBEHUxMjgABQAoR2VuZXJhbEtleQgBGGxlbmd0aAgBCHU4AAEQZGF0YQQBIFt1ODsgMzJdAAYAJE9ubHlDaGlsZAAHACRQbHVyYWxpdHkIAQhpZMgBGEJvZHlJZAABEHBhcnTMASBCb2R5UGFydAAIADxHbG9iYWxDb25zZW5zdXMEALwBJE5ldHdvcmtJZAAJAAC0AAAGEAC4BBhPcHRpb24EBFQBvAEIEE5vbmUAAAAQU29tZQQAvAAAAQAAvBAsc3RhZ2luZ194Y20IdjUganVuY3Rpb24kTmV0d29ya0lkAAEgJEJ5R2VuZXNpcwQABAEgW3U4OyAzMl0AAAAYQnlGb3JrCAEwYmxvY2tfbnVtYmVyMAEMdTY0AAEoYmxvY2tfaGFzaAQBIFt1ODsgMzJdAAEAIFBvbGthZG90AAIAGEt1c2FtYQADACBFdGhlcmV1bQQBIGNoYWluX2lkLAEMdTY0AAcALEJpdGNvaW5Db3JlAAgALEJpdGNvaW5DYXNoAAkAQFBvbGthZG90QnVsbGV0aW4ACgAAwAAAAxQAAAAIAMQAAAYYAMgQDHhjbQh2MyBqdW5jdGlvbhhCb2R5SWQAASgQVW5pdAAAABxNb25pa2VyBABIARxbdTg7IDRdAAEAFEluZGV4BAC0AQx1MzIAAgAkRXhlY3V0aXZlAAMAJFRlY2huaWNhbAAEACxMZWdpc2xhdGl2ZQAFACBKdWRpY2lhbAAGABxEZWZlbnNlAAcAOEFkbWluaXN0cmF0aW9uAAgAIFRyZWFzdXJ5AAkAAMwQDHhjbQh2MyBqdW5jdGlvbiBCb2R5UGFydAABFBRWb2ljZQAAABxNZW1iZXJzBAEUY291bnS0AQx1MzIAAQAgRnJhY3Rpb24IAQxub220AQx1MzIAARRkZW5vbbQBDHUzMgACAERBdExlYXN0UHJvcG9ydGlvbggBDG5vbbQBDHUzMgABFGRlbm9ttAEMdTMyAAMASE1vcmVUaGFuUHJvcG9ydGlvbggBDG5vbbQBDHUzMgABFGRlbm9ttAEMdTMyAAQAANAAAAMCAAAAsADUAAADAwAAALAA2AAAAwQAAACwANwAAAMFAAAAsADgAAADBgAAALAA5AAAAwcAAACwAOgAAAMIAAAAsADsDEhjdW11bHVzX3BhbGxldF94Y20YcGFsbGV0GE9yaWdpbgABCBRSZWxheQAAAEBTaWJsaW5nUGFyYWNoYWluBADwARhQYXJhSWQAAQAA8Ax0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlcwhJZAAABAAQAQx1MzIAAPQMTGluZGl2X3BhbGxldF9wZW9wbGUYcGFsbGV0GE9yaWdpbgABCEBQZXJzb25hbElkZW50aXR5BAAwAShQZXJzb25hbElkAAAANFBlcnNvbmFsQWxpYXMEAPgBWFJldmlzZWRDb250ZXh0dWFsQWxpYXMAAQAA+AxMaW5kaXZfcGFsbGV0X3Blb3BsZRR0eXBlc1hSZXZpc2VkQ29udGV4dHVhbEFsaWFzAAAMASByZXZpc2lvbhABNFJldmlzaW9uSW5kZXgAARByaW5nEAEkUmluZ0luZGV4AAEIY2H8ATxDb250ZXh0dWFsQWxpYXMAAPwQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHk8Q29udGV4dHVhbEFsaWFzAAAIARRhbGlhcwQBFEFsaWFzAAEcY29udGV4dAQBHENvbnRleHQAAAEBDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldBhPcmlnaW4EBFQAAQxYQXV0aG9yaXplZEFwcGx5V2l0aFNpZwQAAAEwVDo6QWNjb3VudElkAAAARFJlZmVycmVkQ2FuZGlkYXRlBAAAATBUOjpBY2NvdW50SWQAAQBASW52aXRlZENhbmRpZGF0ZQQAAAEwVDo6QWNjb3VudElkAAIAAAUBDHBpbmRpdl9wYWxsZXRfcHJpdmFjeV92b3VjaGVyGHBhbGxldBhPcmlnaW4EBFQAAQRYQXV0aG9yaXplZFZvdWNoZXJDbGFpbQgABAEUQWxpYXMAAAABMFQ6OkFjY291bnRJZAAAAAAJAQxEaW5kaXZfcGFsbGV0X2dhbWUYcGFsbGV0GE9yaWdpbgQEVAABBBxJbnZpdGVkBAAAATBUOjpBY2NvdW50SWQAAAAADQEMSGluZGl2X3BhbGxldF9zY29yZRhwYWxsZXQYT3JpZ2luBARUAAEESEFjY291bnRQYXJ0aWNpcGFudAQAAAEwVDo6QWNjb3VudElkAAAAABEBDGBpbmRpdl9wYWxsZXRfcGVvcGxlX2xpdGUYcGFsbGV0GE9yaWdpbgQEVAABBChMaXRlUGVyc29uBAAAATBUOjpBY2NvdW50SWQAAAAAFQEMfGluZGl2X3BhbGxldF9vcmlnaW5fcmVzdHJpY3Rpb24YcGFsbGV0FEV2ZW50BARUAAEEMFVzYWdlQ2xlYW5lZAQBGGVudGl0eRkBAUxUOjpSZXN0cmljdGVkRW50aXR5AAAEfFVzYWdlIGZvciBhbiBlbnRpdHkgaXMgY2xlYW5lZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQZAQhUcGVvcGxlX3JvY29jb19ydW50aW1lQFJlc3RyaWN0ZWRFbnRpdHkAARg0UGVyc29uYWxBbGlhcwQABAEUQWxpYXMAAABAUGVyc29uYWxJZGVudGl0eQQAMAEMdTY0AAEARFJlZmVycmVkQ2FuZGlkYXRlBAAAASRBY2NvdW50SWQAAgBIQWNjb3VudFBhcnRpY2lwYW50BAAAASRBY2NvdW50SWQAAwBASW52aXRlZENhbmRpZGF0ZQQAAAEkQWNjb3VudElkAAQAKExpdGVQZXJzb24EAAABJEFjY291bnRJZAAFAAAdAQw0cGFsbGV0X2Fzc2V0cxhwYWxsZXQURXZlbnQIBFQABEkAAWgcQ3JlYXRlZAwBIGFzc2V0X2lkpAEoVDo6QXNzZXRJZAABHGNyZWF0b3IAATBUOjpBY2NvdW50SWQAARRvd25lcgABMFQ6OkFjY291bnRJZAAABHRTb21lIGFzc2V0IGNsYXNzIHdhcyBjcmVhdGVkLhhJc3N1ZWQMASBhc3NldF9pZKQBKFQ6OkFzc2V0SWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAAQRgU29tZSBhc3NldHMgd2VyZSBpc3N1ZWQuLFRyYW5zZmVycmVkEAEgYXNzZXRfaWSkAShUOjpBc3NldElkAAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQACBHRTb21lIGFzc2V0cyB3ZXJlIHRyYW5zZmVycmVkLhhCdXJuZWQMASBhc3NldF9pZKQBKFQ6OkFzc2V0SWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABHGJhbGFuY2UYAShUOjpCYWxhbmNlAAMEbFNvbWUgYXNzZXRzIHdlcmUgZGVzdHJveWVkLixUZWFtQ2hhbmdlZBABIGFzc2V0X2lkpAEoVDo6QXNzZXRJZAABGGlzc3VlcgABMFQ6OkFjY291bnRJZAABFGFkbWluAAEwVDo6QWNjb3VudElkAAEcZnJlZXplcgABMFQ6OkFjY291bnRJZAAEBHBUaGUgbWFuYWdlbWVudCB0ZWFtIGNoYW5nZWQuME93bmVyQ2hhbmdlZAgBIGFzc2V0X2lkpAEoVDo6QXNzZXRJZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAUESFRoZSBvd25lciBjaGFuZ2VkLhhGcm96ZW4IASBhc3NldF9pZKQBKFQ6OkFzc2V0SWQAAQx3aG8AATBUOjpBY2NvdW50SWQABgR4U29tZSBhY2NvdW50IGB3aG9gIHdhcyBmcm96ZW4uGFRoYXdlZAgBIGFzc2V0X2lkpAEoVDo6QXNzZXRJZAABDHdobwABMFQ6OkFjY291bnRJZAAHBHhTb21lIGFjY291bnQgYHdob2Agd2FzIHRoYXdlZC4sQXNzZXRGcm96ZW4EASBhc3NldF9pZKQBKFQ6OkFzc2V0SWQACASEU29tZSBhc3NldCBgYXNzZXRfaWRgIHdhcyBmcm96ZW4uLEFzc2V0VGhhd2VkBAEgYXNzZXRfaWSkAShUOjpBc3NldElkAAkEhFNvbWUgYXNzZXQgYGFzc2V0X2lkYCB3YXMgdGhhd2VkLkRBY2NvdW50c0Rlc3Ryb3llZAwBIGFzc2V0X2lkpAEoVDo6QXNzZXRJZAABSGFjY291bnRzX2Rlc3Ryb3llZBABDHUzMgABSGFjY291bnRzX3JlbWFpbmluZxABDHUzMgAKBKBBY2NvdW50cyB3ZXJlIGRlc3Ryb3llZCBmb3IgZ2l2ZW4gYXNzZXQuSEFwcHJvdmFsc0Rlc3Ryb3llZAwBIGFzc2V0X2lkpAEoVDo6QXNzZXRJZAABTGFwcHJvdmFsc19kZXN0cm95ZWQQAQx1MzIAAUxhcHByb3ZhbHNfcmVtYWluaW5nEAEMdTMyAAsEpEFwcHJvdmFscyB3ZXJlIGRlc3Ryb3llZCBmb3IgZ2l2ZW4gYXNzZXQuSERlc3RydWN0aW9uU3RhcnRlZAQBIGFzc2V0X2lkpAEoVDo6QXNzZXRJZAAMBNBBbiBhc3NldCBjbGFzcyBpcyBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBkZXN0cm95ZWQuJERlc3Ryb3llZAQBIGFzc2V0X2lkpAEoVDo6QXNzZXRJZAANBHRBbiBhc3NldCBjbGFzcyB3YXMgZGVzdHJveWVkLjBGb3JjZUNyZWF0ZWQIASBhc3NldF9pZKQBKFQ6OkFzc2V0SWQAARRvd25lcgABMFQ6OkFjY291bnRJZAAOBIxTb21lIGFzc2V0IGNsYXNzIHdhcyBmb3JjZS1jcmVhdGVkLixNZXRhZGF0YVNldBQBIGFzc2V0X2lkpAEoVDo6QXNzZXRJZAABEG5hbWU4ARxWZWM8dTg+AAEYc3ltYm9sOAEcVmVjPHU4PgABIGRlY2ltYWxzCAEIdTgAASRpc19mcm96ZW4gARBib29sAA8EnE5ldyBtZXRhZGF0YSBoYXMgYmVlbiBzZXQgZm9yIGFuIGFzc2V0LjxNZXRhZGF0YUNsZWFyZWQEASBhc3NldF9pZKQBKFQ6OkFzc2V0SWQAEAScTWV0YWRhdGEgaGFzIGJlZW4gY2xlYXJlZCBmb3IgYW4gYXNzZXQuQEFwcHJvdmVkVHJhbnNmZXIQASBhc3NldF9pZKQBKFQ6OkFzc2V0SWQAARhzb3VyY2UAATBUOjpBY2NvdW50SWQAASBkZWxlZ2F0ZQABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAEQQxAShBZGRpdGlvbmFsKSBmdW5kcyBoYXZlIGJlZW4gYXBwcm92ZWQgZm9yIHRyYW5zZmVyIHRvIGEgZGVzdGluYXRpb24gYWNjb3VudC5EQXBwcm92YWxDYW5jZWxsZWQMASBhc3NldF9pZKQBKFQ6OkFzc2V0SWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABIGRlbGVnYXRlAAEwVDo6QWNjb3VudElkABIE8EFuIGFwcHJvdmFsIGZvciBhY2NvdW50IGBkZWxlZ2F0ZWAgd2FzIGNhbmNlbGxlZCBieSBgb3duZXJgLkxUcmFuc2ZlcnJlZEFwcHJvdmVkFAEgYXNzZXRfaWSkAShUOjpBc3NldElkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAASBkZWxlZ2F0ZQABMFQ6OkFjY291bnRJZAABLGRlc3RpbmF0aW9uAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQATCDEBQW4gYGFtb3VudGAgd2FzIHRyYW5zZmVycmVkIGluIGl0cyBlbnRpcmV0eSBmcm9tIGBvd25lcmAgdG8gYGRlc3RpbmF0aW9uYCBieWB0aGUgYXBwcm92ZWQgYGRlbGVnYXRlYC5IQXNzZXRTdGF0dXNDaGFuZ2VkBAEgYXNzZXRfaWSkAShUOjpBc3NldElkABQE+EFuIGFzc2V0IGhhcyBoYWQgaXRzIGF0dHJpYnV0ZXMgY2hhbmdlZCBieSB0aGUgYEZvcmNlYCBvcmlnaW4uWEFzc2V0TWluQmFsYW5jZUNoYW5nZWQIASBhc3NldF9pZKQBKFQ6OkFzc2V0SWQAATxuZXdfbWluX2JhbGFuY2UYAShUOjpCYWxhbmNlABUEAQFUaGUgbWluX2JhbGFuY2Ugb2YgYW4gYXNzZXQgaGFzIGJlZW4gdXBkYXRlZCBieSB0aGUgYXNzZXQgb3duZXIuHFRvdWNoZWQMASBhc3NldF9pZKQBKFQ6OkFzc2V0SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAASRkZXBvc2l0b3IAATBUOjpBY2NvdW50SWQAFgT8U29tZSBhY2NvdW50IGB3aG9gIHdhcyBjcmVhdGVkIHdpdGggYSBkZXBvc2l0IGZyb20gYGRlcG9zaXRvcmAuHEJsb2NrZWQIASBhc3NldF9pZKQBKFQ6OkFzc2V0SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAFwR8U29tZSBhY2NvdW50IGB3aG9gIHdhcyBibG9ja2VkLiREZXBvc2l0ZWQMASBhc3NldF9pZKQBKFQ6OkFzc2V0SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlABgE3FNvbWUgYXNzZXRzIHdlcmUgZGVwb3NpdGVkIChlLmcuIGZvciB0cmFuc2FjdGlvbiBmZWVzKS4kV2l0aGRyYXduDAEgYXNzZXRfaWSkAShUOjpBc3NldElkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQAZBCEBU29tZSBhc3NldHMgd2VyZSB3aXRoZHJhd24gZnJvbSB0aGUgYWNjb3VudCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0IQEMUHBhbGxldF9hc3NldHNfaG9sZGVyGHBhbGxldBRFdmVudAgEVAAESQABDBBIZWxkEAEMd2hvAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWSkAShUOjpBc3NldElkAAEYcmVhc29uJQEBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEYYW1vdW50GAEoVDo6QmFsYW5jZQAABMRgd2hvYHMgYmFsYW5jZSBvbiBob2xkIHdhcyBpbmNyZWFzZWQgYnkgYGFtb3VudGAuIFJlbGVhc2VkEAEMd2hvAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWSkAShUOjpBc3NldElkAAEYcmVhc29uJQEBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEYYW1vdW50GAEoVDo6QmFsYW5jZQABBMRgd2hvYHMgYmFsYW5jZSBvbiBob2xkIHdhcyBkZWNyZWFzZWQgYnkgYGFtb3VudGAuGEJ1cm5lZBABDHdobwABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkpAEoVDo6QXNzZXRJZAABGHJlYXNvbiUBAVBUOjpSdW50aW1lSG9sZFJlYXNvbgABGGFtb3VudBgBKFQ6OkJhbGFuY2UAAgS4YHdob2BzIGJhbGFuY2Ugb24gaG9sZCB3YXMgYnVybmVkIGJ5IGBhbW91bnRgLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldCUBCFRwZW9wbGVfcm9jb2NvX3J1bnRpbWVEUnVudGltZUhvbGRSZWFzb24AARgsUG9sa2Fkb3RYY20EACkBAVhwYWxsZXRfeGNtOjpIb2xkUmVhc29uAB8AHE1vYlJ1bGUEAC0BAYRpbmRpdl9wYWxsZXRfbW9iX3J1bGU6OkhvbGRSZWFzb24ANAAoUHJvb2ZPZkluawQAMQEBlGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbms6OkhvbGRSZWFzb24ANQAQR2FtZQQANQEBdGluZGl2X3BhbGxldF9nYW1lOjpIb2xkUmVhc29uADcAFFNjb3JlBAA5AQF4aW5kaXZfcGFsbGV0X3Njb3JlOjpIb2xkUmVhc29uADgAHExvdHRlcnkEAD0BAYBpbmRpdl9wYWxsZXRfbG90dGVyeTo6SG9sZFJlYXNvbgA9AAApAQwocGFsbGV0X3hjbRhwYWxsZXQoSG9sZFJlYXNvbgABBDhBdXRob3JpemVBbGlhcwAAAAAtAQxUaW5kaXZfcGFsbGV0X21vYl9ydWxlGHBhbGxldChIb2xkUmVhc29uAAEIGFBheW91dAAAABhDcmVkaXQAAQAAMQEMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0KEhvbGRSZWFzb24AAQQoUHJvb2ZPZkluawAAAAA1AQxEaW5kaXZfcGFsbGV0X2dhbWUYcGFsbGV0KEhvbGRSZWFzb24AAQQgUGxheUdhbWUAAAAAOQEMSGluZGl2X3BhbGxldF9zY29yZRhwYWxsZXQoSG9sZFJlYXNvbgABCBhQYXlvdXQAAAAYQ3JlZGl0AAEAAD0BDFBpbmRpdl9wYWxsZXRfbG90dGVyeRhwYWxsZXQoSG9sZFJlYXNvbgABBBxMb3R0ZXJ5AAAAAEEBDERwYWxsZXRfYXNzZXRfcmF0ZRhwYWxsZXQURXZlbnQEBFQAAQxAQXNzZXRSYXRlQ3JlYXRlZAgBKGFzc2V0X2tpbmSkATBUOjpBc3NldEtpbmQAARByYXRlRQEBJEZpeGVkVTEyOAAAAEBBc3NldFJhdGVSZW1vdmVkBAEoYXNzZXRfa2luZKQBMFQ6OkFzc2V0S2luZAABAEBBc3NldFJhdGVVcGRhdGVkDAEoYXNzZXRfa2luZKQBMFQ6OkFzc2V0S2luZAABDG9sZEUBASRGaXhlZFUxMjgAAQxuZXdFAQEkRml4ZWRVMTI4AAIABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0RQEMNHNwX2FyaXRobWV0aWMsZml4ZWRfcG9pbnQkRml4ZWRVMTI4AAAEABgBEHUxMjgAAEkBDFxwYWxsZXRfYXNzZXRfdHhfcGF5bWVudBhwYWxsZXQURXZlbnQEBFQAAQQ4QXNzZXRUeEZlZVBhaWQQAQx3aG8AATBUOjpBY2NvdW50SWQAAShhY3R1YWxfZmVlGAFEQXNzZXRCYWxhbmNlT2Y8VD4AAQx0aXAYAURBc3NldEJhbGFuY2VPZjxUPgABIGFzc2V0X2lkTQEBaE9wdGlvbjxDaGFyZ2VBc3NldElkT2Y8VD4+AAAIWQFBIHRyYW5zYWN0aW9uIGZlZSBgYWN0dWFsX2ZlZWAsIG9mIHdoaWNoIGB0aXBgIHdhcyBhZGRlZCB0byB0aGUgbWluaW11bSBpbmNsdXNpb24gZmVlLLhoYXMgYmVlbiBwYWlkIGJ5IGB3aG9gIGluIGFuIGFzc2V0IGBhc3NldF9pZGAuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0TQEEGE9wdGlvbgQEVAGkAQgQTm9uZQAAABBTb21lBACkAAABAABRAQxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQURXZlbnQEBFQAAShATmV3SW52dWxuZXJhYmxlcwQBNGludnVsbmVyYWJsZXNVAQFEVmVjPFQ6OkFjY291bnRJZD4AAARsTmV3IEludnVsbmVyYWJsZXMgd2VyZSBzZXQuREludnVsbmVyYWJsZUFkZGVkBAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAABBHRBIG5ldyBJbnZ1bG5lcmFibGUgd2FzIGFkZGVkLkxJbnZ1bG5lcmFibGVSZW1vdmVkBAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAACBHBBbiBJbnZ1bG5lcmFibGUgd2FzIHJlbW92ZWQuUE5ld0Rlc2lyZWRDYW5kaWRhdGVzBAFIZGVzaXJlZF9jYW5kaWRhdGVzEAEMdTMyAAMEpFRoZSBudW1iZXIgb2YgZGVzaXJlZCBjYW5kaWRhdGVzIHdhcyBzZXQuQE5ld0NhbmRpZGFjeUJvbmQEASxib25kX2Ftb3VudBgBMEJhbGFuY2VPZjxUPgAEBGxUaGUgY2FuZGlkYWN5IGJvbmQgd2FzIHNldC44Q2FuZGlkYXRlQWRkZWQIAShhY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdBgBMEJhbGFuY2VPZjxUPgAFBFxBIG5ldyBjYW5kaWRhdGUgam9pbmVkLlBDYW5kaWRhdGVCb25kVXBkYXRlZAgBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQAARxkZXBvc2l0GAEwQmFsYW5jZU9mPFQ+AAYEcEJvbmQgb2YgYSBjYW5kaWRhdGUgdXBkYXRlZC5AQ2FuZGlkYXRlUmVtb3ZlZAQBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQABwRgQSBjYW5kaWRhdGUgd2FzIHJlbW92ZWQuRENhbmRpZGF0ZVJlcGxhY2VkDAEMb2xkAAEwVDo6QWNjb3VudElkAAEMbmV3AAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdBgBMEJhbGFuY2VPZjxUPgAIBPRBbiBhY2NvdW50IHdhcyByZXBsYWNlZCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QgYnkgYW5vdGhlciBvbmUuaEludmFsaWRJbnZ1bG5lcmFibGVTa2lwcGVkBAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAAJCFUBQW4gYWNjb3VudCB3YXMgdW5hYmxlIHRvIGJlIGFkZGVkIHRvIHRoZSBJbnZ1bG5lcmFibGVzIGJlY2F1c2UgdGhleSBkaWQgbm90IGhhdmUga2V5c8hyZWdpc3RlcmVkLiBPdGhlciBJbnZ1bG5lcmFibGVzIG1heSBoYXZlIGJlZW4gc2V0LgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldFUBAAACAABZAQw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0FEV2ZW50BARUAAEQKE5ld1Nlc3Npb24EATRzZXNzaW9uX2luZGV4EAEwU2Vzc2lvbkluZGV4AAAIOQFOZXcgc2Vzc2lvbiBoYXMgaGFwcGVuZWQuIE5vdGUgdGhhdCB0aGUgYXJndW1lbnQgaXMgdGhlIHNlc3Npb24gaW5kZXgsIG5vdCB0aGWcYmxvY2sgbnVtYmVyIGFzIHRoZSB0eXBlIG1pZ2h0IHN1Z2dlc3QuJE5ld1F1ZXVlZAABCEkBVGhlIGBOZXdTZXNzaW9uYCBldmVudCBpbiB0aGUgY3VycmVudCBibG9jayBhbHNvIGltcGxpZXMgYSBuZXcgdmFsaWRhdG9yIHNldCB0byBiZRxxdWV1ZWQuRFZhbGlkYXRvckRpc2FibGVkBAEkdmFsaWRhdG9yAAE4VDo6VmFsaWRhdG9ySWQAAgRwVmFsaWRhdG9yIGhhcyBiZWVuIGRpc2FibGVkLkhWYWxpZGF0b3JSZWVuYWJsZWQEASR2YWxpZGF0b3IAAThUOjpWYWxpZGF0b3JJZAADBHhWYWxpZGF0b3IgaGFzIGJlZW4gcmUtZW5hYmxlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRdAQxkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZRhwYWxsZXQURXZlbnQEBFQAAQQ8WGNtcE1lc3NhZ2VTZW50BAEwbWVzc2FnZV9oYXNoBAEcWGNtSGFzaAAABMBBbiBIUk1QIG1lc3NhZ2Ugd2FzIHNlbnQgdG8gYSBzaWJsaW5nIHBhcmFjaGFpbi4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRhAQwocGFsbGV0X3hjbRhwYWxsZXQURXZlbnQEBFQAAXQkQXR0ZW1wdGVkBAEcb3V0Y29tZWUBAVB4Y206OmxhdGVzdDo6T3V0Y29tZQAABKhFeGVjdXRpb24gb2YgYW4gWENNIG1lc3NhZ2Ugd2FzIGF0dGVtcHRlZC4QU2VudBABGG9yaWdpbqQBIExvY2F0aW9uAAEsZGVzdGluYXRpb26kASBMb2NhdGlvbgABHG1lc3NhZ2VxAQEcWGNtPCgpPgABKG1lc3NhZ2VfaWQEARxYY21IYXNoAAEEYEFuIFhDTSBtZXNzYWdlIHdhcyBzZW50LihTZW5kRmFpbGVkEAEYb3JpZ2lupAEgTG9jYXRpb24AASxkZXN0aW5hdGlvbqQBIExvY2F0aW9uAAEUZXJyb3IBAgEkU2VuZEVycm9yAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gAAgR4QW4gWENNIG1lc3NhZ2UgZmFpbGVkIHRvIHNlbmQuPFByb2Nlc3NYY21FcnJvcgwBGG9yaWdpbqQBIExvY2F0aW9uAAEUZXJyb3JtAQEgWGNtRXJyb3IAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAADBIRBbiBYQ00gbWVzc2FnZSBmYWlsZWQgdG8gcHJvY2Vzcy5IVW5leHBlY3RlZFJlc3BvbnNlCAEYb3JpZ2lupAEgTG9jYXRpb24AASBxdWVyeV9pZDABHFF1ZXJ5SWQABAxZAVF1ZXJ5IHJlc3BvbnNlIHJlY2VpdmVkIHdoaWNoIGRvZXMgbm90IG1hdGNoIGEgcmVnaXN0ZXJlZCBxdWVyeS4gVGhpcyBtYXkgYmUgYmVjYXVzZSBhVQFtYXRjaGluZyBxdWVyeSB3YXMgbmV2ZXIgcmVnaXN0ZXJlZCwgaXQgbWF5IGJlIGJlY2F1c2UgaXQgaXMgYSBkdXBsaWNhdGUgcmVzcG9uc2UsIG9ycGJlY2F1c2UgdGhlIHF1ZXJ5IHRpbWVkIG91dC40UmVzcG9uc2VSZWFkeQgBIHF1ZXJ5X2lkMAEcUXVlcnlJZAABIHJlc3BvbnNlnQEBIFJlc3BvbnNlAAUIXQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgaXMgcmVhZHkgZm9yIHRha2luZyB3aXRoIGB0YWtlX3Jlc3BvbnNlYC4gVGhlcmUgaXOAbm8gcmVnaXN0ZXJlZCBub3RpZmljYXRpb24gY2FsbC4gTm90aWZpZWQMASBxdWVyeV9pZDABHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgIAQh1OAABKGNhbGxfaW5kZXgIAQh1OAAGCFkBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZSByZWdpc3RlcmVkIG5vdGlmaWNhdGlvbiBoYXOoYmVlbiBkaXNwYXRjaGVkIGFuZCBleGVjdXRlZCBzdWNjZXNzZnVsbHkuQE5vdGlmeU92ZXJ3ZWlnaHQUASBxdWVyeV9pZDABHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgIAQh1OAABKGNhbGxfaW5kZXgIAQh1OAABNGFjdHVhbF93ZWlnaHQoARhXZWlnaHQAAUxtYXhfYnVkZ2V0ZWRfd2VpZ2h0KAEYV2VpZ2h0AAcMSQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlIHJlZ2lzdGVyZWQgbm90aWZpY2F0aW9uWQFjb3VsZCBub3QgYmUgZGlzcGF0Y2hlZCBiZWNhdXNlIHRoZSBkaXNwYXRjaCB3ZWlnaHQgaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIHdlaWdodORvcmlnaW5hbGx5IGJ1ZGdldGVkIGJ5IHRoaXMgcnVudGltZSBmb3IgdGhlIHF1ZXJ5IHJlc3VsdC5MTm90aWZ5RGlzcGF0Y2hFcnJvcgwBIHF1ZXJ5X2lkMAEcUXVlcnlJZAABMHBhbGxldF9pbmRleAgBCHU4AAEoY2FsbF9pbmRleAgBCHU4AAgIVQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlcmUgd2FzIGEgZ2VuZXJhbCBlcnJvciB3aXRoiGRpc3BhdGNoaW5nIHRoZSBub3RpZmljYXRpb24gY2FsbC5ITm90aWZ5RGVjb2RlRmFpbGVkDAEgcXVlcnlfaWQwARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4CAEIdTgAAShjYWxsX2luZGV4CAEIdTgACQxRAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGUgZGlzcGF0Y2ggd2FzIHVuYWJsZSB0byBiZVkBZGVjb2RlZCBpbnRvIGEgYENhbGxgOyB0aGlzIG1pZ2h0IGJlIGR1ZSB0byBkaXNwYXRjaCBmdW5jdGlvbiBoYXZpbmcgYSBzaWduYXR1cmUgd2hpY2iUaXMgbm90IGAob3JpZ2luLCBRdWVyeUlkLCBSZXNwb25zZSlgLkBJbnZhbGlkUmVzcG9uZGVyDAEYb3JpZ2lupAEgTG9jYXRpb24AASBxdWVyeV9pZDABHFF1ZXJ5SWQAAURleHBlY3RlZF9sb2NhdGlvbk0BAUBPcHRpb248TG9jYXRpb24+AAoMWQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIG9yaWdpbiBsb2NhdGlvbiBvZiB0aGUgcmVzcG9uc2UgZG9lc1UBbm90IG1hdGNoIHRoYXQgZXhwZWN0ZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQgZm9yIGEgbGF0ZXIsIHZhbGlkLCByZXNwb25zZSB0b2xiZSByZWNlaXZlZCBhbmQgYWN0ZWQgdXBvbi5cSW52YWxpZFJlc3BvbmRlclZlcnNpb24IARhvcmlnaW6kASBMb2NhdGlvbgABIHF1ZXJ5X2lkMAEcUXVlcnlJZAALHFEBRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBleHBlY3RlZCBvcmlnaW4gbG9jYXRpb24gcGxhY2VkIGluTQFzdG9yYWdlIGJ5IHRoaXMgcnVudGltZSBwcmV2aW91c2x5IGNhbm5vdCBiZSBkZWNvZGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkLgBBAVRoaXMgaXMgdW5leHBlY3RlZCAoc2luY2UgYSBsb2NhdGlvbiBwbGFjZWQgaW4gc3RvcmFnZSBpbiBhIHByZXZpb3VzbHkgZXhlY3V0aW5nTQFydW50aW1lIHNob3VsZCBiZSByZWFkYWJsZSBwcmlvciB0byBxdWVyeSB0aW1lb3V0KSBhbmQgZGFuZ2Vyb3VzIHNpbmNlIHRoZSBwb3NzaWJseVkBdmFsaWQgcmVzcG9uc2Ugd2lsbCBiZSBkcm9wcGVkLiBNYW51YWwgZ292ZXJuYW5jZSBpbnRlcnZlbnRpb24gaXMgcHJvYmFibHkgZ29pbmcgdG8gYmUcbmVlZGVkLjRSZXNwb25zZVRha2VuBAEgcXVlcnlfaWQwARxRdWVyeUlkAAwEyFJlY2VpdmVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlYWQgYW5kIHJlbW92ZWQuNEFzc2V0c1RyYXBwZWQMARBoYXNoNAEQSDI1NgABGG9yaWdpbqQBIExvY2F0aW9uAAEYYXNzZXRzBQIBPFZlcnNpb25lZEFzc2V0cwANBLhTb21lIGFzc2V0cyBoYXZlIGJlZW4gcGxhY2VkIGluIGFuIGFzc2V0IHRyYXAuVFZlcnNpb25DaGFuZ2VOb3RpZmllZBABLGRlc3RpbmF0aW9upAEgTG9jYXRpb24AARhyZXN1bHQQAShYY21WZXJzaW9uAAEQY29zdH0BARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAAODCUBQW4gWENNIHZlcnNpb24gY2hhbmdlIG5vdGlmaWNhdGlvbiBtZXNzYWdlIGhhcyBiZWVuIGF0dGVtcHRlZCB0byBiZSBzZW50LgDgVGhlIGNvc3Qgb2Ygc2VuZGluZyBpdCAoYm9ybmUgYnkgdGhlIGNoYWluKSBpcyBpbmNsdWRlZC5cU3VwcG9ydGVkVmVyc2lvbkNoYW5nZWQIASBsb2NhdGlvbqQBIExvY2F0aW9uAAEcdmVyc2lvbhABKFhjbVZlcnNpb24ADwg5AVRoZSBzdXBwb3J0ZWQgdmVyc2lvbiBvZiBhIGxvY2F0aW9uIGhhcyBiZWVuIGNoYW5nZWQuIFRoaXMgbWlnaHQgYmUgdGhyb3VnaCBhbsBhdXRvbWF0aWMgbm90aWZpY2F0aW9uIG9yIGEgbWFudWFsIGludGVydmVudGlvbi5QTm90aWZ5VGFyZ2V0U2VuZEZhaWwMASBsb2NhdGlvbqQBIExvY2F0aW9uAAEgcXVlcnlfaWQwARxRdWVyeUlkAAEUZXJyb3JtAQEgWGNtRXJyb3IAEAhZAUEgZ2l2ZW4gbG9jYXRpb24gd2hpY2ggaGFkIGEgdmVyc2lvbiBjaGFuZ2Ugc3Vic2NyaXB0aW9uIHdhcyBkcm9wcGVkIG93aW5nIHRvIGFuIGVycm9yfHNlbmRpbmcgdGhlIG5vdGlmaWNhdGlvbiB0byBpdC5kTm90aWZ5VGFyZ2V0TWlncmF0aW9uRmFpbAgBIGxvY2F0aW9ugQIBRFZlcnNpb25lZExvY2F0aW9uAAEgcXVlcnlfaWQwARxRdWVyeUlkABEIWQFBIGdpdmVuIGxvY2F0aW9uIHdoaWNoIGhhZCBhIHZlcnNpb24gY2hhbmdlIHN1YnNjcmlwdGlvbiB3YXMgZHJvcHBlZCBvd2luZyB0byBhbiBlcnJvcrRtaWdyYXRpbmcgdGhlIGxvY2F0aW9uIHRvIG91ciBuZXcgWENNIGZvcm1hdC5USW52YWxpZFF1ZXJpZXJWZXJzaW9uCAEYb3JpZ2lupAEgTG9jYXRpb24AASBxdWVyeV9pZDABHFF1ZXJ5SWQAEhxVAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgZXhwZWN0ZWQgcXVlcmllciBsb2NhdGlvbiBwbGFjZWQgaW5NAXN0b3JhZ2UgYnkgdGhpcyBydW50aW1lIHByZXZpb3VzbHkgY2Fubm90IGJlIGRlY29kZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQuAEEBVGhpcyBpcyB1bmV4cGVjdGVkIChzaW5jZSBhIGxvY2F0aW9uIHBsYWNlZCBpbiBzdG9yYWdlIGluIGEgcHJldmlvdXNseSBleGVjdXRpbmdNAXJ1bnRpbWUgc2hvdWxkIGJlIHJlYWRhYmxlIHByaW9yIHRvIHF1ZXJ5IHRpbWVvdXQpIGFuZCBkYW5nZXJvdXMgc2luY2UgdGhlIHBvc3NpYmx5WQF2YWxpZCByZXNwb25zZSB3aWxsIGJlIGRyb3BwZWQuIE1hbnVhbCBnb3Zlcm5hbmNlIGludGVydmVudGlvbiBpcyBwcm9iYWJseSBnb2luZyB0byBiZRxuZWVkZWQuOEludmFsaWRRdWVyaWVyEAEYb3JpZ2lupAEgTG9jYXRpb24AASBxdWVyeV9pZDABHFF1ZXJ5SWQAAUBleHBlY3RlZF9xdWVyaWVypAEgTG9jYXRpb24AAVBtYXliZV9hY3R1YWxfcXVlcmllck0BAUBPcHRpb248TG9jYXRpb24+ABMMXQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIHF1ZXJpZXIgbG9jYXRpb24gb2YgdGhlIHJlc3BvbnNlIGRvZXNRAW5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQgZm9yIGEgbGF0ZXIsIHZhbGlkLCByZXNwb25zZSB0b2xiZSByZWNlaXZlZCBhbmQgYWN0ZWQgdXBvbi5QVmVyc2lvbk5vdGlmeVN0YXJ0ZWQMASxkZXN0aW5hdGlvbqQBIExvY2F0aW9uAAEQY29zdH0BARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAAUCFkBQSByZW1vdGUgaGFzIHJlcXVlc3RlZCBYQ00gdmVyc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9uIGZyb20gdXMgYW5kIHdlIGhhdmUgaG9ub3JlZCBpdC4dAUEgdmVyc2lvbiBpbmZvcm1hdGlvbiBtZXNzYWdlIGlzIHNlbnQgdG8gdGhlbSBhbmQgaXRzIGNvc3QgaXMgaW5jbHVkZWQuWFZlcnNpb25Ob3RpZnlSZXF1ZXN0ZWQMASxkZXN0aW5hdGlvbqQBIExvY2F0aW9uAAEQY29zdH0BARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAAVBD0BV2UgaGF2ZSByZXF1ZXN0ZWQgdGhhdCBhIHJlbW90ZSBjaGFpbiBzZW5kIHVzIFhDTSB2ZXJzaW9uIGNoYW5nZSBub3RpZmljYXRpb25zLmBWZXJzaW9uTm90aWZ5VW5yZXF1ZXN0ZWQMASxkZXN0aW5hdGlvbqQBIExvY2F0aW9uAAEQY29zdH0BARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAAWCCUBV2UgaGF2ZSByZXF1ZXN0ZWQgdGhhdCBhIHJlbW90ZSBjaGFpbiBzdG9wcyBzZW5kaW5nIHVzIFhDTSB2ZXJzaW9uIGNoYW5nZThub3RpZmljYXRpb25zLiBGZWVzUGFpZAgBGHBheWluZ6QBIExvY2F0aW9uAAEQZmVlc30BARhBc3NldHMAFwQxAUZlZXMgd2VyZSBwYWlkIGZyb20gYSBsb2NhdGlvbiBmb3IgYW4gb3BlcmF0aW9uIChvZnRlbiBmb3IgdXNpbmcgYFNlbmRYY21gKS40QXNzZXRzQ2xhaW1lZAwBEGhhc2g0ARBIMjU2AAEYb3JpZ2lupAEgTG9jYXRpb24AARhhc3NldHMFAgE8VmVyc2lvbmVkQXNzZXRzABgEwFNvbWUgYXNzZXRzIGhhdmUgYmVlbiBjbGFpbWVkIGZyb20gYW4gYXNzZXQgdHJhcGBWZXJzaW9uTWlncmF0aW9uRmluaXNoZWQEARx2ZXJzaW9uEAEoWGNtVmVyc2lvbgAZBIRBIFhDTSB2ZXJzaW9uIG1pZ3JhdGlvbiBmaW5pc2hlZC48QWxpYXNBdXRob3JpemVkDAEcYWxpYXNlcqQBIExvY2F0aW9uAAEYdGFyZ2V0pAEgTG9jYXRpb24AARhleHBpcnmFAgEsT3B0aW9uPHU2ND4AGghdAUFuIGBhbGlhc2VyYCBsb2NhdGlvbiB3YXMgYXV0aG9yaXplZCBieSBgdGFyZ2V0YCB0byBhbGlhcyBpdCwgYXV0aG9yaXphdGlvbiB2YWxpZCB1bnRpbFhgZXhwaXJ5YCBibG9jayBudW1iZXIuZEFsaWFzQXV0aG9yaXphdGlvblJlbW92ZWQIARxhbGlhc2VypAEgTG9jYXRpb24AARh0YXJnZXSkASBMb2NhdGlvbgAbBMxgdGFyZ2V0YCByZW1vdmVkIGFsaWFzIGF1dGhvcml6YXRpb24gZm9yIGBhbGlhc2VyYC5wQWxpYXNlc0F1dGhvcml6YXRpb25zUmVtb3ZlZAQBGHRhcmdldKQBIExvY2F0aW9uABwEqGB0YXJnZXRgIHJlbW92ZWQgYWxsIGFsaWFzIGF1dGhvcml6YXRpb25zLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldGUBECxzdGFnaW5nX3hjbQh2NRh0cmFpdHMcT3V0Y29tZQABDCBDb21wbGV0ZQQBEHVzZWQoARhXZWlnaHQAAAAoSW5jb21wbGV0ZQgBEHVzZWQoARhXZWlnaHQAARRlcnJvcmkBAUBJbnN0cnVjdGlvbkVycm9yAAEAFEVycm9yBABpAQFASW5zdHJ1Y3Rpb25FcnJvcgACAABpARAsc3RhZ2luZ194Y20IdjUYdHJhaXRzQEluc3RydWN0aW9uRXJyb3IAAAgBFGluZGV4CAFASW5zdHJ1Y3Rpb25JbmRleAABFGVycm9ybQEBFEVycm9yAABtARAMeGNtCHY1GHRyYWl0cxRFcnJvcgABpCBPdmVyZmxvdwAAADRVbmltcGxlbWVudGVkAAEAYFVudHJ1c3RlZFJlc2VydmVMb2NhdGlvbgACAGRVbnRydXN0ZWRUZWxlcG9ydExvY2F0aW9uAAMAMExvY2F0aW9uRnVsbAAEAFRMb2NhdGlvbk5vdEludmVydGlibGUABQAkQmFkT3JpZ2luAAYAPEludmFsaWRMb2NhdGlvbgAHADRBc3NldE5vdEZvdW5kAAgAVEZhaWxlZFRvVHJhbnNhY3RBc3NldAAJADxOb3RXaXRoZHJhd2FibGUACgBITG9jYXRpb25DYW5ub3RIb2xkAAsAVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQAMAFhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAA0AJFRyYW5zcG9ydAAOAChVbnJvdXRhYmxlAA8AMFVua25vd25DbGFpbQAQADhGYWlsZWRUb0RlY29kZQARAEBNYXhXZWlnaHRJbnZhbGlkABIAOE5vdEhvbGRpbmdGZWVzABMAMFRvb0V4cGVuc2l2ZQAUABBUcmFwBAAwAQx1NjQAFQBARXhwZWN0YXRpb25GYWxzZQAWADhQYWxsZXROb3RGb3VuZAAXADBOYW1lTWlzbWF0Y2gAGABMVmVyc2lvbkluY29tcGF0aWJsZQAZAFBIb2xkaW5nV291bGRPdmVyZmxvdwAaACxFeHBvcnRFcnJvcgAbADhSZWFuY2hvckZhaWxlZAAcABhOb0RlYWwAHQAoRmVlc05vdE1ldAAeACRMb2NrRXJyb3IAHwAwTm9QZXJtaXNzaW9uACAAKFVuYW5jaG9yZWQAIQA4Tm90RGVwb3NpdGFibGUAIgA0VG9vTWFueUFzc2V0cwAjAExVbmhhbmRsZWRYY21WZXJzaW9uACQASFdlaWdodExpbWl0UmVhY2hlZAQAKAEYV2VpZ2h0ACUAHEJhcnJpZXIAJgBMV2VpZ2h0Tm90Q29tcHV0YWJsZQAnAERFeGNlZWRzU3RhY2tMaW1pdAAoAABxAQwsc3RhZ2luZ194Y20IdjUMWGNtBBBDYWxsAAAEAHUBAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AAB1AQAAAnkBAHkBDCxzdGFnaW5nX3hjbQh2NSxJbnN0cnVjdGlvbgQQQ2FsbAAB0DRXaXRoZHJhd0Fzc2V0BAB9AQEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAfQEBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BAB9AQEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZCwBHFF1ZXJ5SWQAASByZXNwb25zZZ0BASBSZXNwb25zZQABKG1heF93ZWlnaHQoARhXZWlnaHQAARxxdWVyaWVyTQEBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c30BARhBc3NldHMAASxiZW5lZmljaWFyeaQBIExvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzfQEBGEFzc2V0cwABEGRlc3SkASBMb2NhdGlvbgABDHhjbXEBARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmTBAQEoT3JpZ2luS2luZAABTGZhbGxiYWNrX21heF93ZWlnaHTFAQE4T3B0aW9uPFdlaWdodD4AARBjYWxsyQEBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcrQBDHUzMgABQG1heF9tZXNzYWdlX3NpemW0AQx1MzIAATBtYXhfY2FwYWNpdHm0AQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudLQBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3K0AQx1MzIAARhzZW5kZXK0AQx1MzIAASRyZWNpcGllbnS0AQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAqAFASW50ZXJpb3JMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQAzQEBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0c9EBASxBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ5pAEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c9EBASxBc3NldEZpbHRlcgABEGRlc3SkASBMb2NhdGlvbgABDHhjbXEBARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZl0QEBLEFzc2V0RmlsdGVyAAEQd2FudH0BARhBc3NldHMAARxtYXhpbWFsIAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c9EBASxBc3NldEZpbHRlcgABHHJlc2VydmWkASBMb2NhdGlvbgABDHhjbXEBARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHPRAQEsQXNzZXRGaWx0ZXIAARBkZXN0pAEgTG9jYXRpb24AAQx4Y21xAQEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb80BAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0c9EBASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzhQEBFEFzc2V0AAEwd2VpZ2h0X2xpbWl03QEBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBABxAQEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BABxAQEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c30BARhBc3NldHMAARh0aWNrZXSkASBMb2NhdGlvbgAYABBUcmFwBAAsAQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkLAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHQoARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAfQEBGEFzc2V0cwAcACxFeHBlY3RBc3NldAQAfQEBGEFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAE0BAUBPcHRpb248TG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBAChAQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEALkBAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm/NAQFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXi0AQx1MzIAARBuYW1lOAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABLGNyYXRlX21ham9ytAEMdTMyAAE8bWluX2NyYXRlX21pbm9ytAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBADNAQFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EALABIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3JrvAEkTmV0d29ya0lkAAEsZGVzdGluYXRpb26oAUBJbnRlcmlvckxvY2F0aW9uAAEMeGNtcQEBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXSFAQEUQXNzZXQAASB1bmxvY2tlcqQBIExvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXSFAQEUQXNzZXQAARh0YXJnZXSkASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0hQEBFEFzc2V0AAEUb3duZXKkASBMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXSFAQEUQXNzZXQAARhsb2NrZXKkASBMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhdyABEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAKQBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdN0BASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbk0BAUBPcHRpb248TG9jYXRpb24+AC8AHFBheUZlZXMEARRhc3NldIUBARRBc3NldAAwAEBJbml0aWF0ZVRyYW5zZmVyFAEsZGVzdGluYXRpb26kASBMb2NhdGlvbgABLHJlbW90ZV9mZWVz4QEBbE9wdGlvbjxBc3NldFRyYW5zZmVyRmlsdGVyPgABPHByZXNlcnZlX29yaWdpbiABEGJvb2wAARhhc3NldHPpAQHgQm91bmRlZFZlYzxBc3NldFRyYW5zZmVyRmlsdGVyLCBNYXhBc3NldFRyYW5zZmVyRmlsdGVycz4AAShyZW1vdGVfeGNtcQEBHFhjbTwoKT4AMQBERXhlY3V0ZVdpdGhPcmlnaW4IAURkZXNjZW5kYW50X29yaWdpbvEBAWBPcHRpb248SW50ZXJpb3JMb2NhdGlvbj4AAQx4Y21xAQEkWGNtPENhbGw+ADIAIFNldEhpbnRzBAEUaGludHP1AQGEQm91bmRlZFZlYzxIaW50LCBIaW50TnVtVmFyaWFudHM+ADMAAH0BECxzdGFnaW5nX3hjbQh2NRRhc3NldBhBc3NldHMAAAQAgQEBKFZlYzxBc3NldD4AAIEBAAAChQEAhQEQLHN0YWdpbmdfeGNtCHY1FGFzc2V0FEFzc2V0AAAIAQhpZIkBARxBc3NldElkAAEMZnVujQEBLEZ1bmdpYmlsaXR5AACJARAsc3RhZ2luZ194Y20IdjUUYXNzZXQcQXNzZXRJZAAABACkASBMb2NhdGlvbgAAjQEQLHN0YWdpbmdfeGNtCHY1FGFzc2V0LEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlBADEARB1MTI4AAAALE5vbkZ1bmdpYmxlBACRAQE0QXNzZXRJbnN0YW5jZQABAACRARAsc3RhZ2luZ194Y20IdjUUYXNzZXQ0QXNzZXRJbnN0YW5jZQABGCRVbmRlZmluZWQAAAAUSW5kZXgEAMQBEHUxMjgAAQAYQXJyYXk0BABIARxbdTg7IDRdAAIAGEFycmF5OAQAlQEBHFt1ODsgOF0AAwAcQXJyYXkxNgQAmQEBIFt1ODsgMTZdAAQAHEFycmF5MzIEAAQBIFt1ODsgMzJdAAUAAJUBAAADCAAAAAgAmQEAAAMQAAAACACdAQwsc3RhZ2luZ194Y20IdjUgUmVzcG9uc2UAARgQTnVsbAAAABhBc3NldHMEAH0BARhBc3NldHMAAQA8RXhlY3V0aW9uUmVzdWx0BAChAQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AAgAcVmVyc2lvbgQAEAE4c3VwZXI6OlZlcnNpb24AAwAsUGFsbGV0c0luZm8EAKkBAZhCb3VuZGVkVmVjPFBhbGxldEluZm8sIE1heFBhbGxldHNJbmZvPgAEADhEaXNwYXRjaFJlc3VsdAQAuQEBOE1heWJlRXJyb3JDb2RlAAUAAKEBBBhPcHRpb24EBFQBpQEBCBBOb25lAAAAEFNvbWUEAKUBAAABAAClAQAABAgQbQEAqQEMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGtAQRTAAAEALUBARhWZWM8VD4AAK0BDCxzdGFnaW5nX3hjbQh2NShQYWxsZXRJbmZvAAAYARRpbmRleLQBDHUzMgABEG5hbWWxAQGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AASxtb2R1bGVfbmFtZbEBAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABFG1ham9ytAEMdTMyAAEUbWlub3K0AQx1MzIAARRwYXRjaLQBDHUzMgAAsQEMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AAC1AQAAAq0BALkBDAx4Y20IdjM4TWF5YmVFcnJvckNvZGUAAQwcU3VjY2VzcwAAABRFcnJvcgQAvQEBjEJvdW5kZWRWZWM8dTgsIE1heERpc3BhdGNoRXJyb3JMZW4+AAEAOFRydW5jYXRlZEVycm9yBAC9AQGMQm91bmRlZFZlYzx1OCwgTWF4RGlzcGF0Y2hFcnJvckxlbj4AAgAAvQEMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AADBAQwMeGNtCHYzKE9yaWdpbktpbmQAARAYTmF0aXZlAAAAQFNvdmVyZWlnbkFjY291bnQAAQAkU3VwZXJ1c2VyAAIADFhjbQADAADFAQQYT3B0aW9uBARUASgBCBBOb25lAAAAEFNvbWUEACgAAAEAAMkBDAx4Y204ZG91YmxlX2VuY29kZWQ0RG91YmxlRW5jb2RlZAQEVAAABAEcZW5jb2RlZDgBHFZlYzx1OD4AAM0BDCxzdGFnaW5nX3hjbQh2NURRdWVyeVJlc3BvbnNlSW5mbwAADAEsZGVzdGluYXRpb26kASBMb2NhdGlvbgABIHF1ZXJ5X2lkLAEcUXVlcnlJZAABKG1heF93ZWlnaHQoARhXZWlnaHQAANEBECxzdGFnaW5nX3hjbQh2NRRhc3NldCxBc3NldEZpbHRlcgABCCBEZWZpbml0ZQQAfQEBGEFzc2V0cwAAABBXaWxkBADVAQEkV2lsZEFzc2V0AAEAANUBECxzdGFnaW5nX3hjbQh2NRRhc3NldCRXaWxkQXNzZXQAARAMQWxsAAAAFEFsbE9mCAEIaWSJAQEcQXNzZXRJZAABDGZ1btkBATxXaWxkRnVuZ2liaWxpdHkAAQAoQWxsQ291bnRlZAQAtAEMdTMyAAIAMEFsbE9mQ291bnRlZAwBCGlkiQEBHEFzc2V0SWQAAQxmdW7ZAQE8V2lsZEZ1bmdpYmlsaXR5AAEUY291bnS0AQx1MzIAAwAA2QEQLHN0YWdpbmdfeGNtCHY1FGFzc2V0PFdpbGRGdW5naWJpbGl0eQABCCBGdW5naWJsZQAAACxOb25GdW5naWJsZQABAADdAQwMeGNtCHYzLFdlaWdodExpbWl0AAEIJFVubGltaXRlZAAAABxMaW1pdGVkBAAoARhXZWlnaHQAAQAA4QEEGE9wdGlvbgQEVAHlAQEIEE5vbmUAAAAQU29tZQQA5QEAAAEAAOUBECxzdGFnaW5nX3hjbQh2NRRhc3NldExBc3NldFRyYW5zZmVyRmlsdGVyAAEMIFRlbGVwb3J0BADRAQEsQXNzZXRGaWx0ZXIAAAA4UmVzZXJ2ZURlcG9zaXQEANEBASxBc3NldEZpbHRlcgABADxSZXNlcnZlV2l0aGRyYXcEANEBASxBc3NldEZpbHRlcgACAADpAQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAeUBBFMAAAQA7QEBGFZlYzxUPgAA7QEAAALlAQDxAQQYT3B0aW9uBARUAagBCBBOb25lAAAAEFNvbWUEAKgAAAEAAPUBDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB+QEEUwAABAD9AQEYVmVjPFQ+AAD5AQwsc3RhZ2luZ194Y20IdjUQSGludAABBDBBc3NldENsYWltZXIEASBsb2NhdGlvbqQBIExvY2F0aW9uAAAAAP0BAAAC+QEAAQIQDHhjbQh2Mxh0cmFpdHMkU2VuZEVycm9yAAEcNE5vdEFwcGxpY2FibGUAAAAkVHJhbnNwb3J0AAEAKFVucm91dGFibGUAAgBYRGVzdGluYXRpb25VbnN1cHBvcnRlZAADAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUABAA8TWlzc2luZ0FyZ3VtZW50AAUAEEZlZXMABgAABQIIDHhjbTxWZXJzaW9uZWRBc3NldHMAAQwIVjMEAAkCATx2Mzo6TXVsdGlBc3NldHMAAwAIVjQEADUCASh2NDo6QXNzZXRzAAQACFY1BAB9AQEodjU6OkFzc2V0cwAFAAAJAhAMeGNtCHYzKG11bHRpYXNzZXQsTXVsdGlBc3NldHMAAAQADQIBPFZlYzxNdWx0aUFzc2V0PgAADQIAAAIRAgARAhAMeGNtCHYzKG11bHRpYXNzZXQoTXVsdGlBc3NldAAACAEIaWQVAgEcQXNzZXRJZAABDGZ1bi0CASxGdW5naWJpbGl0eQAAFQIQDHhjbQh2MyhtdWx0aWFzc2V0HEFzc2V0SWQAAQggQ29uY3JldGUEABkCATRNdWx0aUxvY2F0aW9uAAAAIEFic3RyYWN0BAAEASBbdTg7IDMyXQABAAAZAhAsc3RhZ2luZ194Y20IdjM0bXVsdGlsb2NhdGlvbjRNdWx0aUxvY2F0aW9uAAAIARxwYXJlbnRzCAEIdTgAASBpbnRlcmlvch0CASRKdW5jdGlvbnMAAB0CEAx4Y20IdjMkanVuY3Rpb25zJEp1bmN0aW9ucwABJBBIZXJlAAAACFgxBAAhAgEgSnVuY3Rpb24AAQAIWDIIACECASBKdW5jdGlvbgAAIQIBIEp1bmN0aW9uAAIACFgzDAAhAgEgSnVuY3Rpb24AACECASBKdW5jdGlvbgAAIQIBIEp1bmN0aW9uAAMACFg0EAAhAgEgSnVuY3Rpb24AACECASBKdW5jdGlvbgAAIQIBIEp1bmN0aW9uAAAhAgEgSnVuY3Rpb24ABAAIWDUUACECASBKdW5jdGlvbgAAIQIBIEp1bmN0aW9uAAAhAgEgSnVuY3Rpb24AACECASBKdW5jdGlvbgAAIQIBIEp1bmN0aW9uAAUACFg2GAAhAgEgSnVuY3Rpb24AACECASBKdW5jdGlvbgAAIQIBIEp1bmN0aW9uAAAhAgEgSnVuY3Rpb24AACECASBKdW5jdGlvbgAAIQIBIEp1bmN0aW9uAAYACFg3HAAhAgEgSnVuY3Rpb24AACECASBKdW5jdGlvbgAAIQIBIEp1bmN0aW9uAAAhAgEgSnVuY3Rpb24AACECASBKdW5jdGlvbgAAIQIBIEp1bmN0aW9uAAAhAgEgSnVuY3Rpb24ABwAIWDggACECASBKdW5jdGlvbgAAIQIBIEp1bmN0aW9uAAAhAgEgSnVuY3Rpb24AACECASBKdW5jdGlvbgAAIQIBIEp1bmN0aW9uAAAhAgEgSnVuY3Rpb24AACECASBKdW5jdGlvbgAAIQIBIEp1bmN0aW9uAAgAACECEAx4Y20IdjMganVuY3Rpb24gSnVuY3Rpb24AASgkUGFyYWNoYWluBAC0AQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3JrJQIBRE9wdGlvbjxOZXR3b3JrSWQ+AAEIaWQEASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcmslAgFET3B0aW9uPE5ldHdvcmtJZD4AARRpbmRleCwBDHU2NAACADBBY2NvdW50S2V5MjAIARxuZXR3b3JrJQIBRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V5wAEgW3U4OyAyMF0AAwA4UGFsbGV0SW5zdGFuY2UEAAgBCHU4AAQAMEdlbmVyYWxJbmRleAQAxAEQdTEyOAAFAChHZW5lcmFsS2V5CAEYbGVuZ3RoCAEIdTgAARBkYXRhBAEgW3U4OyAzMl0ABgAkT25seUNoaWxkAAcAJFBsdXJhbGl0eQgBCGlkyAEYQm9keUlkAAEQcGFydMwBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQAKQIBJE5ldHdvcmtJZAAJAAAlAgQYT3B0aW9uBARUASkCAQgQTm9uZQAAABBTb21lBAApAgAAAQAAKQIQDHhjbQh2MyBqdW5jdGlvbiROZXR3b3JrSWQAASwkQnlHZW5lc2lzBAAEASBbdTg7IDMyXQAAABhCeUZvcmsIATBibG9ja19udW1iZXIwAQx1NjQAAShibG9ja19oYXNoBAEgW3U4OyAzMl0AAQAgUG9sa2Fkb3QAAgAYS3VzYW1hAAMAHFdlc3RlbmQABAAYUm9jb2NvAAUAGFdvY29jbwAGACBFdGhlcmV1bQQBIGNoYWluX2lkLAEMdTY0AAcALEJpdGNvaW5Db3JlAAgALEJpdGNvaW5DYXNoAAkAQFBvbGthZG90QnVsbGV0aW4ACgAALQIQDHhjbQh2MyhtdWx0aWFzc2V0LEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlBADEARB1MTI4AAAALE5vbkZ1bmdpYmxlBAAxAgE0QXNzZXRJbnN0YW5jZQABAAAxAhAMeGNtCHYzKG11bHRpYXNzZXQ0QXNzZXRJbnN0YW5jZQABGCRVbmRlZmluZWQAAAAUSW5kZXgEAMQBEHUxMjgAAQAYQXJyYXk0BABIARxbdTg7IDRdAAIAGEFycmF5OAQAlQEBHFt1ODsgOF0AAwAcQXJyYXkxNgQAmQEBIFt1ODsgMTZdAAQAHEFycmF5MzIEAAQBIFt1ODsgMzJdAAUAADUCECxzdGFnaW5nX3hjbQh2NBRhc3NldBhBc3NldHMAAAQAOQIBKFZlYzxBc3NldD4AADkCAAACPQIAPQIQLHN0YWdpbmdfeGNtCHY0FGFzc2V0FEFzc2V0AAAIAQhpZEECARxBc3NldElkAAEMZnVueQIBLEZ1bmdpYmlsaXR5AABBAhAsc3RhZ2luZ194Y20IdjQUYXNzZXQcQXNzZXRJZAAABABFAgEgTG9jYXRpb24AAEUCECxzdGFnaW5nX3hjbQh2NCBsb2NhdGlvbiBMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3JJAgEkSnVuY3Rpb25zAABJAhAsc3RhZ2luZ194Y20IdjQkanVuY3Rpb25zJEp1bmN0aW9ucwABJBBIZXJlAAAACFgxBABNAgFIQXJjPFtKdW5jdGlvbjsgMV0+AAEACFgyBABdAgFIQXJjPFtKdW5jdGlvbjsgMl0+AAIACFgzBABhAgFIQXJjPFtKdW5jdGlvbjsgM10+AAMACFg0BABlAgFIQXJjPFtKdW5jdGlvbjsgNF0+AAQACFg1BABpAgFIQXJjPFtKdW5jdGlvbjsgNV0+AAUACFg2BABtAgFIQXJjPFtKdW5jdGlvbjsgNl0+AAYACFg3BABxAgFIQXJjPFtKdW5jdGlvbjsgN10+AAcACFg4BAB1AgFIQXJjPFtKdW5jdGlvbjsgOF0+AAgAAE0CAAADAQAAAFECAFECECxzdGFnaW5nX3hjbQh2NCBqdW5jdGlvbiBKdW5jdGlvbgABKCRQYXJhY2hhaW4EALQBDHUzMgAAACxBY2NvdW50SWQzMggBHG5ldHdvcmtVAgFET3B0aW9uPE5ldHdvcmtJZD4AAQhpZAQBIFt1ODsgMzJdAAEAOEFjY291bnRJbmRleDY0CAEcbmV0d29ya1UCAURPcHRpb248TmV0d29ya0lkPgABFGluZGV4LAEMdTY0AAIAMEFjY291bnRLZXkyMAgBHG5ldHdvcmtVAgFET3B0aW9uPE5ldHdvcmtJZD4AAQxrZXnAASBbdTg7IDIwXQADADhQYWxsZXRJbnN0YW5jZQQACAEIdTgABAAwR2VuZXJhbEluZGV4BADEARB1MTI4AAUAKEdlbmVyYWxLZXkIARhsZW5ndGgIAQh1OAABEGRhdGEEASBbdTg7IDMyXQAGACRPbmx5Q2hpbGQABwAkUGx1cmFsaXR5CAEIaWTIARhCb2R5SWQAARBwYXJ0zAEgQm9keVBhcnQACAA8R2xvYmFsQ29uc2Vuc3VzBABZAgEkTmV0d29ya0lkAAkAAFUCBBhPcHRpb24EBFQBWQIBCBBOb25lAAAAEFNvbWUEAFkCAAABAABZAhAsc3RhZ2luZ194Y20IdjQganVuY3Rpb24kTmV0d29ya0lkAAEsJEJ5R2VuZXNpcwQABAEgW3U4OyAzMl0AAAAYQnlGb3JrCAEwYmxvY2tfbnVtYmVyMAEMdTY0AAEoYmxvY2tfaGFzaAQBIFt1ODsgMzJdAAEAIFBvbGthZG90AAIAGEt1c2FtYQADABxXZXN0ZW5kAAQAGFJvY29jbwAFABhXb2NvY28ABgAgRXRoZXJldW0EASBjaGFpbl9pZCwBDHU2NAAHACxCaXRjb2luQ29yZQAIACxCaXRjb2luQ2FzaAAJAEBQb2xrYWRvdEJ1bGxldGluAAoAAF0CAAADAgAAAFECAGECAAADAwAAAFECAGUCAAADBAAAAFECAGkCAAADBQAAAFECAG0CAAADBgAAAFECAHECAAADBwAAAFECAHUCAAADCAAAAFECAHkCECxzdGFnaW5nX3hjbQh2NBRhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQAxAEQdTEyOAAAACxOb25GdW5naWJsZQQAfQIBNEFzc2V0SW5zdGFuY2UAAQAAfQIQLHN0YWdpbmdfeGNtCHY0FGFzc2V0NEFzc2V0SW5zdGFuY2UAARgkVW5kZWZpbmVkAAAAFEluZGV4BADEARB1MTI4AAEAGEFycmF5NAQASAEcW3U4OyA0XQACABhBcnJheTgEAJUBARxbdTg7IDhdAAMAHEFycmF5MTYEAJkBASBbdTg7IDE2XQAEABxBcnJheTMyBAAEASBbdTg7IDMyXQAFAACBAggMeGNtRFZlcnNpb25lZExvY2F0aW9uAAEMCFYzBAAZAgFEdjM6Ok11bHRpTG9jYXRpb24AAwAIVjQEAEUCATB2NDo6TG9jYXRpb24ABAAIVjUEAKQBMHY1OjpMb2NhdGlvbgAFAACFAgQYT3B0aW9uBARUATABCBBOb25lAAAAEFNvbWUEADAAAAEAAIkCDEhjdW11bHVzX3BhbGxldF94Y20YcGFsbGV0FEV2ZW50BARUAAEMNEludmFsaWRGb3JtYXQEAAQBIFt1ODsgMzJdAAAIgERvd253YXJkIG1lc3NhZ2UgaXMgaW52YWxpZCBYQ00uIFxbIGlkIFxdSFVuc3VwcG9ydGVkVmVyc2lvbgQABAEgW3U4OyAzMl0AAQi8RG93bndhcmQgbWVzc2FnZSBpcyB1bnN1cHBvcnRlZCB2ZXJzaW9uIG9mIFhDTS4gXFsgaWQgXF1ARXhlY3V0ZWREb3dud2FyZAgABAEgW3U4OyAzMl0AAGUBARxPdXRjb21lAAIIxERvd253YXJkIG1lc3NhZ2UgZXhlY3V0ZWQgd2l0aCB0aGUgZ2l2ZW4gb3V0Y29tZS5EXFsgaWQsIG91dGNvbWUgXF0EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSNAgxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0FEV2ZW50BARUAAEQQFByb2Nlc3NpbmdGYWlsZWQMAQhpZDQBEEgyNTYElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbpECAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BFGVycm9ylQIBTFByb2Nlc3NNZXNzYWdlRXJyb3IQYFRoZSBlcnJvciB0aGF0IG9jY3VycmVkLgBJAVRoaXMgZXJyb3IgaXMgcHJldHR5IG9wYXF1ZS4gTW9yZSBmaW5lLWdyYWluZWQgZXJyb3JzIG5lZWQgdG8gYmUgZW1pdHRlZCBhcyBldmVudHNoYnkgdGhlIGBNZXNzYWdlUHJvY2Vzc29yYC4ABFUBTWVzc2FnZSBkaXNjYXJkZWQgZHVlIHRvIGFuIGVycm9yIGluIHRoZSBgTWVzc2FnZVByb2Nlc3NvcmAgKHVzdWFsbHkgYSBmb3JtYXQgZXJyb3IpLiRQcm9jZXNzZWQQAQhpZDQBEEgyNTYElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbpECAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BLHdlaWdodF91c2VkKAEYV2VpZ2h0BMBIb3cgbXVjaCB3ZWlnaHQgd2FzIHVzZWQgdG8gcHJvY2VzcyB0aGUgbWVzc2FnZS4BHHN1Y2Nlc3MgARBib29sGIhXaGV0aGVyIHRoZSBtZXNzYWdlIHdhcyBwcm9jZXNzZWQuAEkBTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgbWVhbiB0aGF0IHRoZSB1bmRlcmx5aW5nIGBNZXNzYWdlUHJvY2Vzc29yYCB3YXMgaW50ZXJuYWxseTUBc3VjY2Vzc2Z1bC4gSXQgKnNvbGVseSogbWVhbnMgdGhhdCB0aGUgTVEgcGFsbGV0IHdpbGwgdHJlYXQgdGhpcyBhcyBhIHN1Y2Nlc3NNAWNvbmRpdGlvbiBhbmQgZGlzY2FyZCB0aGUgbWVzc2FnZS4gQW55IGludGVybmFsIGVycm9yIG5lZWRzIHRvIGJlIGVtaXR0ZWQgYXMgZXZlbnRzaGJ5IHRoZSBgTWVzc2FnZVByb2Nlc3NvcmAuAQRUTWVzc2FnZSBpcyBwcm9jZXNzZWQuSE92ZXJ3ZWlnaHRFbnF1ZXVlZBABCGlkBAEgW3U4OyAzMl0ElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbpECAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BKHBhZ2VfaW5kZXgQASRQYWdlSW5kZXgEYFRoZSBwYWdlIG9mIHRoZSBtZXNzYWdlLgE0bWVzc2FnZV9pbmRleBABHFQ6OlNpemUEpFRoZSBpbmRleCBvZiB0aGUgbWVzc2FnZSB3aXRoaW4gdGhlIHBhZ2UuAgSMTWVzc2FnZSBwbGFjZWQgaW4gb3ZlcndlaWdodCBxdWV1ZS4oUGFnZVJlYXBlZAgBGG9yaWdpbpECAUhNZXNzYWdlT3JpZ2luT2Y8VD4EWFRoZSBxdWV1ZSBvZiB0aGUgcGFnZS4BFGluZGV4EAEkUGFnZUluZGV4BFhUaGUgaW5kZXggb2YgdGhlIHBhZ2UuAwRUVGhpcyBwYWdlIHdhcyByZWFwZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0kQIIXGN1bXVsdXNfcHJpbWl0aXZlc19jb3JlWEFnZ3JlZ2F0ZU1lc3NhZ2VPcmlnaW4AAQwQSGVyZQAAABhQYXJlbnQAAQAcU2libGluZwQA8AEYUGFyYUlkAAIAAJUCEDRmcmFtZV9zdXBwb3J0GHRyYWl0cyBtZXNzYWdlc0xQcm9jZXNzTWVzc2FnZUVycm9yAAEYJEJhZEZvcm1hdAAAABxDb3JydXB0AAEALFVuc3VwcG9ydGVkAAIAKE92ZXJ3ZWlnaHQEACgBGFdlaWdodAADABRZaWVsZAAEAERTdGFja0xpbWl0UmVhY2hlZAAFAACZAgw4cGFsbGV0X3V0aWxpdHkYcGFsbGV0FEV2ZW50AAEgQEJhdGNoSW50ZXJydXB0ZWQIARRpbmRleBABDHUzMgABFGVycm9yaAE0RGlzcGF0Y2hFcnJvcgAACFUBQmF0Y2ggb2YgZGlzcGF0Y2hlcyBkaWQgbm90IGNvbXBsZXRlIGZ1bGx5LiBJbmRleCBvZiBmaXJzdCBmYWlsaW5nIGRpc3BhdGNoIGdpdmVuLCBhc0h3ZWxsIGFzIHRoZSBlcnJvci44QmF0Y2hDb21wbGV0ZWQAAQTIQmF0Y2ggb2YgZGlzcGF0Y2hlcyBjb21wbGV0ZWQgZnVsbHkgd2l0aCBubyBlcnJvci5gQmF0Y2hDb21wbGV0ZWRXaXRoRXJyb3JzAAIEtEJhdGNoIG9mIGRpc3BhdGNoZXMgY29tcGxldGVkIGJ1dCBoYXMgZXJyb3JzLjRJdGVtQ29tcGxldGVkAAMEHQFBIHNpbmdsZSBpdGVtIHdpdGhpbiBhIEJhdGNoIG9mIGRpc3BhdGNoZXMgaGFzIGNvbXBsZXRlZCB3aXRoIG5vIGVycm9yLihJdGVtRmFpbGVkBAEUZXJyb3JoATREaXNwYXRjaEVycm9yAAQEEQFBIHNpbmdsZSBpdGVtIHdpdGhpbiBhIEJhdGNoIG9mIGRpc3BhdGNoZXMgaGFzIGNvbXBsZXRlZCB3aXRoIGVycm9yLjBEaXNwYXRjaGVkQXMEARhyZXN1bHSdAgE4RGlzcGF0Y2hSZXN1bHQABQRYQSBjYWxsIHdhcyBkaXNwYXRjaGVkLkRJZkVsc2VNYWluU3VjY2VzcwAGBGRNYWluIGNhbGwgd2FzIGRpc3BhdGNoZWQuUElmRWxzZUZhbGxiYWNrQ2FsbGVkBAEobWFpbl9lcnJvcmgBNERpc3BhdGNoRXJyb3IABwSEVGhlIGZhbGxiYWNrIGNhbGwgd2FzIGRpc3BhdGNoZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0nQIEGFJlc3VsdAgEVAGhAgRFAWgBCAhPawQAoQIAAAAADEVycgQAaAAAAQAAoQIAAAQAAKUCDDxwYWxsZXRfbXVsdGlzaWcYcGFsbGV0FEV2ZW50BARUAAEULE5ld011bHRpc2lnDAEkYXBwcm92aW5nAAEwVDo6QWNjb3VudElkAAEgbXVsdGlzaWcAATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gEASBDYWxsSGFzaAAABIxBIG5ldyBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZ3VuLkBNdWx0aXNpZ0FwcHJvdmFsEAEkYXBwcm92aW5nAAEwVDo6QWNjb3VudElkAAEkdGltZXBvaW50qQIBcFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4AASBtdWx0aXNpZwABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAQBIENhbGxIYXNoAAEEyEEgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWVuIGFwcHJvdmVkIGJ5IHNvbWVvbmUuQE11bHRpc2lnRXhlY3V0ZWQUASRhcHByb3ZpbmcAATBUOjpBY2NvdW50SWQAASR0aW1lcG9pbnSpAgFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABIG11bHRpc2lnAAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoBAEgQ2FsbEhhc2gAARhyZXN1bHSdAgE4RGlzcGF0Y2hSZXN1bHQAAgScQSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gZXhlY3V0ZWQuRE11bHRpc2lnQ2FuY2VsbGVkEAEoY2FuY2VsbGluZwABMFQ6OkFjY291bnRJZAABJHRpbWVwb2ludKkCAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEgbXVsdGlzaWcAATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gEASBDYWxsSGFzaAADBKBBIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiBjYW5jZWxsZWQuMERlcG9zaXRQb2tlZBABDHdobwABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAQBIENhbGxIYXNoAAEsb2xkX2RlcG9zaXQYATBCYWxhbmNlT2Y8VD4AASxuZXdfZGVwb3NpdBgBMEJhbGFuY2VPZjxUPgAEBPBUaGUgZGVwb3NpdCBmb3IgYSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gdXBkYXRlZC9wb2tlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSpAgg8cGFsbGV0X211bHRpc2lnJFRpbWVwb2ludAQsQmxvY2tOdW1iZXIBEAAIARhoZWlnaHQQASxCbG9ja051bWJlcgABFGluZGV4EAEMdTMyAACtAgwscGFsbGV0X3N1ZG8YcGFsbGV0FEV2ZW50BARUAAEQFFN1ZGlkBAEsc3Vkb19yZXN1bHSdAgE4RGlzcGF0Y2hSZXN1bHQEtFRoZSByZXN1bHQgb2YgdGhlIGNhbGwgbWFkZSBieSB0aGUgc3VkbyB1c2VyLgAEcEEgc3VkbyBjYWxsIGp1c3QgdG9vayBwbGFjZS4oS2V5Q2hhbmdlZAgBDG9sZLECAVBPcHRpb248VDo6QWNjb3VudElkPgS0VGhlIG9sZCBzdWRvIGtleSAoaWYgb25lIHdhcyBwcmV2aW91c2x5IHNldCkuAQxuZXcAATBUOjpBY2NvdW50SWQEiFRoZSBuZXcgc3VkbyBrZXkgKGlmIG9uZSB3YXMgc2V0KS4BBHhUaGUgc3VkbyBrZXkgaGFzIGJlZW4gdXBkYXRlZC4oS2V5UmVtb3ZlZAACBIBUaGUga2V5IHdhcyBwZXJtYW5lbnRseSByZW1vdmVkLihTdWRvQXNEb25lBAEsc3Vkb19yZXN1bHSdAgE4RGlzcGF0Y2hSZXN1bHQEtFRoZSByZXN1bHQgb2YgdGhlIGNhbGwgbWFkZSBieSB0aGUgc3VkbyB1c2VyLgMEyEEgW3N1ZG9fYXNdKFBhbGxldDo6c3Vkb19hcykgY2FsbCBqdXN0IHRvb2sgcGxhY2UuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0sQIEGE9wdGlvbgQEVAEAAQgQTm9uZQAAABBTb21lBAAAAAABAAC1AgxUaW5kaXZfcGFsbGV0X2lkZW50aXR5GHBhbGxldBRFdmVudAQEVAABgCxJZGVudGl0eVNldAQBDHdobwABMFQ6OkFjY291bnRJZAAABOxBIG5hbWUgd2FzIHNldCBvciByZXNldCAod2hpY2ggd2lsbCByZW1vdmUgYWxsIGp1ZGdlbWVudHMpLjxJZGVudGl0eUNsZWFyZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0GAEwQmFsYW5jZU9mPFQ+AAEEzEEgbmFtZSB3YXMgY2xlYXJlZCwgYW5kIHRoZSBnaXZlbiBiYWxhbmNlIHJldHVybmVkLjhJZGVudGl0eUtpbGxlZAgBDHdobwABMFQ6OkFjY291bnRJZAABHGRlcG9zaXQYATBCYWxhbmNlT2Y8VD4AAgTEQSBuYW1lIHdhcyByZW1vdmVkIGFuZCB0aGUgZ2l2ZW4gYmFsYW5jZSBzbGFzaGVkLkhKdWRnZW1lbnRSZXF1ZXN0ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAATxyZWdpc3RyYXJfaW5kZXgQAThSZWdpc3RyYXJJbmRleAADBJxBIGp1ZGdlbWVudCB3YXMgYXNrZWQgZnJvbSBhIHJlZ2lzdHJhci5QSnVkZ2VtZW50VW5yZXF1ZXN0ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAATxyZWdpc3RyYXJfaW5kZXgQAThSZWdpc3RyYXJJbmRleAAEBIhBIGp1ZGdlbWVudCByZXF1ZXN0IHdhcyByZXRyYWN0ZWQuOEp1ZGdlbWVudEdpdmVuCAEYdGFyZ2V0AAEwVDo6QWNjb3VudElkAAE8cmVnaXN0cmFyX2luZGV4EAE4UmVnaXN0cmFySW5kZXgABQSUQSBqdWRnZW1lbnQgd2FzIGdpdmVuIGJ5IGEgcmVnaXN0cmFyLjhSZWdpc3RyYXJBZGRlZAQBPHJlZ2lzdHJhcl9pbmRleBABOFJlZ2lzdHJhckluZGV4AAYEWEEgcmVnaXN0cmFyIHdhcyBhZGRlZC5AU3ViSWRlbnRpdHlBZGRlZAwBDHN1YgABMFQ6OkFjY291bnRJZAABEG1haW4AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0GAEwQmFsYW5jZU9mPFQ+AAcE9EEgc3ViLWlkZW50aXR5IHdhcyBhZGRlZCB0byBhbiBpZGVudGl0eSBhbmQgdGhlIGRlcG9zaXQgcGFpZC5AU3ViSWRlbnRpdGllc1NldAwBEG1haW4AATBUOjpBY2NvdW50SWQAAThudW1iZXJfb2Zfc3VicxABDHUzMgABLG5ld19kZXBvc2l0GAEwQmFsYW5jZU9mPFQ+AAgEvEFuIGFjY291bnQncyBzdWItaWRlbnRpdGllcyB3ZXJlIHNldCAoaW4gYnVsaykuSFN1YklkZW50aXR5UmVuYW1lZAgBDHN1YgABMFQ6OkFjY291bnRJZAABEG1haW4AATBUOjpBY2NvdW50SWQACQQhAUEgZ2l2ZW4gc3ViLWFjY291bnQncyBhc3NvY2lhdGVkIG5hbWUgd2FzIGNoYW5nZWQgYnkgaXRzIHN1cGVyLWlkZW50aXR5LkhTdWJJZGVudGl0eVJlbW92ZWQMAQxzdWIAATBUOjpBY2NvdW50SWQAARBtYWluAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdBgBMEJhbGFuY2VPZjxUPgAKBAkBQSBzdWItaWRlbnRpdHkgd2FzIHJlbW92ZWQgZnJvbSBhbiBpZGVudGl0eSBhbmQgdGhlIGRlcG9zaXQgZnJlZWQuSFN1YklkZW50aXR5UmV2b2tlZAwBDHN1YgABMFQ6OkFjY291bnRJZAABEG1haW4AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0GAEwQmFsYW5jZU9mPFQ+AAsIGQFBIHN1Yi1pZGVudGl0eSB3YXMgY2xlYXJlZCwgYW5kIHRoZSBnaXZlbiBkZXBvc2l0IHJlcGF0cmlhdGVkIGZyb20gdGhlyG1haW4gaWRlbnRpdHkgYWNjb3VudCB0byB0aGUgc3ViLWlkZW50aXR5IGFjY291bnQuOEF1dGhvcml0eUFkZGVkBAEkYXV0aG9yaXR5AAEwVDo6QWNjb3VudElkAAwEfEEgdXNlcm5hbWUgYXV0aG9yaXR5IHdhcyBhZGRlZC5AQXV0aG9yaXR5UmVtb3ZlZAQBJGF1dGhvcml0eQABMFQ6OkFjY291bnRJZAANBIRBIHVzZXJuYW1lIGF1dGhvcml0eSB3YXMgcmVtb3ZlZC4sVXNlcm5hbWVTZXQIAQx3aG8AATBUOjpBY2NvdW50SWQAASB1c2VybmFtZbkCASxVc2VybmFtZTxUPgAOBHRBIHVzZXJuYW1lIHdhcyBzZXQgZm9yIGB3aG9gLjhVc2VybmFtZVF1ZXVlZAwBDHdobwABMFQ6OkFjY291bnRJZAABIHVzZXJuYW1luQIBLFVzZXJuYW1lPFQ+AAEoZXhwaXJhdGlvbhABREJsb2NrTnVtYmVyRm9yPFQ+AA8EGQFBIHVzZXJuYW1lIHdhcyBxdWV1ZWQsIGJ1dCBgd2hvYCBtdXN0IGFjY2VwdCBpdCBwcmlvciB0byBgZXhwaXJhdGlvbmAuSFByZWFwcHJvdmFsRXhwaXJlZAQBFHdob3NlAAEwVDo6QWNjb3VudElkABAEOQFBIHF1ZXVlZCB1c2VybmFtZSBwYXNzZWQgaXRzIGV4cGlyYXRpb24gd2l0aG91dCBiZWluZyBjbGFpbWVkIGFuZCB3YXMgcmVtb3ZlZC5IUHJpbWFyeVVzZXJuYW1lU2V0CAEMd2hvAAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWW5AgEsVXNlcm5hbWU8VD4AEQQBAUEgdXNlcm5hbWUgd2FzIHNldCBhcyBhIHByaW1hcnkgYW5kIGNhbiBiZSBsb29rZWQgdXAgZnJvbSBgd2hvYC5cRGFuZ2xpbmdVc2VybmFtZVJlbW92ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAASB1c2VybmFtZbkCASxVc2VybmFtZTxUPgASCF0BQSBkYW5nbGluZyB1c2VybmFtZSAoYXMgaW4sIGEgdXNlcm5hbWUgY29ycmVzcG9uZGluZyB0byBhbiBhY2NvdW50IHRoYXQgaGFzIHJlbW92ZWQgaXRzbGlkZW50aXR5KSBoYXMgYmVlbiByZW1vdmVkLjxVc2VybmFtZVVuYm91bmQEASB1c2VybmFtZbkCASxVc2VybmFtZTxUPgATBHBBIHVzZXJuYW1lIGhhcyBiZWVuIHVuYm91bmQuPFVzZXJuYW1lUmVtb3ZlZAQBIHVzZXJuYW1luQIBLFVzZXJuYW1lPFQ+ABQEcEEgdXNlcm5hbWUgaGFzIGJlZW4gcmVtb3ZlZC44VXNlcm5hbWVLaWxsZWQEASB1c2VybmFtZbkCASxVc2VybmFtZTxUPgAVBGxBIHVzZXJuYW1lIGhhcyBiZWVuIGtpbGxlZC5AVXNlcm5hbWVSZXBvcnRlZAgBIHJlcG9ydGVyAAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWW5AgEsVXNlcm5hbWU8VD4AFgR0QSB1c2VybmFtZSBoYXMgYmVlbiByZXBvcnRlZC5MUGVyc29uYWxJZGVudGl0eVNldAwBFGFsaWFzBAEUQWxpYXMAARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWW5AgEsVXNlcm5hbWU8VD4AFwSYQW4gaWRlbnRpdHkgZm9yIGEgcGVyc29uIGhhcyBiZWVuIHNldC5ERXZpZGVuY2VTdWJtaXR0ZWQEARRhbGlhcwQBFEFsaWFzABgE5EV2aWRlbmNlIGZvciBhIGNyZWRlbnRpYWwgaGFzIGJlZWQgc3VibWl0dGVkIGJ5IGEgcGVyc29uLkhDcmVkZW50aWFsQWNjZXB0ZWQEARRhbGlhcwQBFEFsaWFzABkEnEEgY3JlZGVudGlhbCB3YXMgYWNjZXB0ZWQgZm9yIGEgcGVyc29uLkhDcmVkZW50aWFsUmVqZWN0ZWQEARRhbGlhcwQBFEFsaWFzABoEnEEgY3JlZGVudGlhbCB3YXMgcmVqZWN0ZWQgZm9yIGEgcGVyc29uLjBQZXJzb25CYW5uZWQEARRhbGlhcwQBFEFsaWFzABsE0FBlcnNvbiB3YXMgYmFubmVkIGZvciBzZW5kaW5nIGNvbnRlbXB0dW91cyBldmlkZW5jZS5cUGVyc29uYWxJZGVudGl0eUNsZWFyZWQEARRhbGlhcwQBFEFsaWFzABwEgEEgcGVyc29uYWwgaWRlbnRpdHkgd2FzIGNsZWFyZWQubFJlcG9ydGVkVXNlcm5hbWVKdWRnZWRWYWxpZAQBIHVzZXJuYW1luQIBLFVzZXJuYW1lPFQ+AB0ElEEgcmVwb3J0ZWQgdXNlcm5hbWUgd2FzIGp1ZGdlZCB2YWxpZC50UmVwb3J0ZWRVc2VybmFtZUp1ZGdlZEludmFsaWQEASB1c2VybmFtZbkCASxVc2VybmFtZTxUPgAeBJxBIHJlcG9ydGVkIHVzZXJuYW1lIHdhcyBqdWRnZWQgaW52YWxpZC6YUmVwb3J0ZWRVc2VybmFtZVdlYWtPclVuY2xlYXJKdWRnZW1lbnQIASB1c2VybmFtZbkCASxVc2VybmFtZTxUPgABJGp1ZGdlbWVudL0CATxPcmFjbGVKdWRnZW1lbnQAHwQRAVRoZSBqdWRnbWVudCByZWdhcmRpbmcgYSByZXBvcnRlZCB1c2VybmFtZSB3YXMgdW5jbGVhciBvciB1bmNlcnRhaW4uBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0uQIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AAC9AhA0aW5kaXZfc3VwcG9ydBh0cmFpdHMccmVhbGl0eSRKdWRnZW1lbnQAAQgUVHJ1dGgEAMECARRUcnV0aAAAACBDb250ZW1wdAABAADBAhA0aW5kaXZfc3VwcG9ydBh0cmFpdHMccmVhbGl0eRRUcnV0aAABCBBUcnVlAAAAFEZhbHNlAAEAAMUCDExpbmRpdl9wYWxsZXRfcGVvcGxlGHBhbGxldBRFdmVudAQEVAABCFBQZXJzb25ob29kUmVjb2duaXplZAgBDHdobzABKFBlcnNvbmFsSWQAAQxrZXnJAgEsTWVtYmVyT2Y8VD4AAAT4QW4gaW5kaXZpZHVhbCBoYXMgaGFkIHRoZWlyIHBlcnNvbmhvb2QgcmVjb2duaXNlZCBhbmQgaW5kZXhlZC5AUGVyc29uT25ib2FyZGluZwgBDHdobzABKFBlcnNvbmFsSWQAAQxrZXnJAgEsTWVtYmVyT2Y8VD4AAQQRAUFuIGluZGl2aWR1YWwgaGFzIGhhZCB0aGVpciBwZXJzb25ob29kIHJlY29nbmlzZWQgYWdhaW4gYW5kIGluZGV4ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0yQIMKHZlcmlmaWFibGU0cmluZ192cmZfaW1wbEBFbmNvZGVkUHVibGljS2V5AAAEAAQBVFt1ODsgUFVCTElDX0tFWV9TSVpFXQAAzQIMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQURXZlbnQEBFQAASgsQ2FzZUNyZWF0ZWQEAShjYXNlX2luZGV4EAEkQ2FzZUluZGV4BIBUaGUgY2FzZSBpbmRleCB0aGF0IHdhcyBjcmVhdGVkLgAEYEEgY2FzZSBoYXMgYmVlbiBjcmVhdGVkLiBDYWxsYmFjawQBGHJlc3VsdJ0CAThEaXNwYXRjaFJlc3VsdARsVGhlIHJlc3VsdCBvZiB0aGUgY2FsbGJhY2suAQScQSBjYWxsYmFjayB3YXMgdHJpZ2dlcmVkIGZyb20gbW9iLXJ1bGUuNENhbGxiYWNrRXJyb3IAAgTwVGhlcmUgd2FzIGEgY29kZWMgZXJyb3Igd2hlbiB0cnlpbmcgdG8gZXhlY3V0ZSB0aGUgY2FsbGJhY2suKENhc2VDbG9zZWQIAShjYXNlX2luZGV4EAEkQ2FzZUluZGV4BHxUaGUgY2FzZSBpbmRleCB0aGF0IHdhcyBjbG9zZWQuARx2ZXJkaWN0vQIBJEp1ZGdlbWVudAR8VGhlIHZlcmRpY3Qgb2YgdGhlIGNsb3NlZCBjYXNlLgMEzFRoZSBjYXNlIGhhcyBiZWVuIGNsb3NlZCB3aXRoIHRoZSBmb2xsb3dpbmcgcmVzdWx0LhRWb3RlZAwBKGNhc2VfaW5kZXgQASRDYXNlSW5kZXgESFRoZSBjYXNlIHZvdGVkIG9uLgEUdm90ZXIEARRBbGlhcwRUVGhlIGFsaWFzIHRoYXQgdm90ZWQuARxvcGluaW9uvQIBJEp1ZGdlbWVudARkVGhlIG9waW5pb24gb2YgdGhlIHZvdGVyLgQEhEEgdm90ZSBoYXMgYmVlbiBwbGFjZWQgb24gYSBjYXNlLixWb3RlQ2xlYW5lZAgBKGNhc2VfaW5kZXgQASRDYXNlSW5kZXgESFRoZSBjYXNlIHZvdGVkIG9uLgEUdm90ZXIEARRBbGlhcwRUVGhlIGFsaWFzIHRoYXQgdm90ZWQuBQRgQSB2b3RlIGhhcyBiZWVuIGNsZWFuZWQuLENhc2VSZW1vdmVkBAEoY2FzZV9pbmRleBABJENhc2VJbmRleARIVGhlIGNhc2Ugdm90ZWQgb24uBgRgQSBjYXNlIGhhcyBiZWVuIHJlbW92ZWQuOENhc2VJbnRlcnZlbmVkCAEoY2FzZV9pbmRleBABJENhc2VJbmRleASIVGhlIGNhc2UgdGhhdCBoYXMgYmVlbiBpbnRlcnZlbmVkLgEcdmVyZGljdL0CASRKdWRnZW1lbnQEgFRoZSB2ZXJkaWN0IGFwcGxpZWQgdG8gdGhlIGNhc2UuBwRsQSBjYXNlIGhhcyBiZWVuIGludGVydmVuZWQuMFZvdGVzQ2xhaW1lZAgBFHZvdGVyBAEUQWxpYXMEVFRoZSBhbGlhcyB0aGF0IHZvdGVkLgEwY2FzZV9pbmRpY2Vz0QIBOFZlYzxDYXNlSW5kZXg+BIhUaGUgY2FzZSB0aGF0IGhhcyBiZWVuIGludGVydmVuZWQuCASQQ3JlZGl0cyBmb3Igdm90ZXMgaGF2ZSBiZWVuIGNsYWltZWQuMFJld2FyZFBheW91dAgBFHZvdGVyBAEUQWxpYXMEfFRoZSBhbGlhcyB0aGF0IGVhcm5lZCBhIHJld2FyZC4BHHZvdWNoZXLJAgEoVDo6Vm91Y2hlcgRUVGhlIHZvdWNoZXIgcmV3YXJkZWQuCQSMQSByZXdhcmQgdm91Y2hlciBoYXMgYmVlbiBwYWlkIG91dC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTRAgAAAhAA1QIMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0FEV2ZW50BARUAAFMQENhbmRpZGF0ZUFwcGxpZWQEAShhY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAAEjENhbmRpZGF0ZSBhcHBsaWVkIGZvciB2ZXJpZmljYXRpb24uPFJlZmVycmFsQXBwbGllZAgBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQAASByZWZlcnJlcjABKFBlcnNvbmFsSWQAAQTYQ2FuZGlkYXRlIGFwcGxpZWQgZm9yIHZlcmlmaWNhdGlvbiB0aHJvdWdoIGEgcmVmZXJyYWwuSEp1ZGdlbWVudFJlcXVlc3RlZAQBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQAAgQFAUNhbmRpZGF0ZSBvcGVuZWQgYSBqdWRpY2lhbCBjYXNlIGZvciB0aGVpciB2ZXJpZmljYXRpb24gZXZpZGVuY2UuREp1ZGdlbWVudFByb3ZpZGVkCAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAABJGp1ZGdlbWVudL0CASRKdWRnZW1lbnQAAwTYT3JhY2xlIGhhcyBwcm92aWRlZCB0aGUganVkZ2VtZW50IGZvciBhIGp1ZGljaWFsIGNhc2UuMFJldHJ5R3JhbnRlZAgBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQAASBmYWlsdXJlcxABDHUzMgAECEUBQSBjYW5kaWRhdGUgaGFzIGJlZW4gZ3JhbnRlZCBhIGZyZWUgcmV0cnkgYXR0ZW1wdCBhZnRlciBhIGZhaWx1cmUgdG8gdmVyaWZ5IHRoZWlyJGV2aWRlbmNlLkBQZXJzb25SZWdpc3RlcmVkCAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAABLHBlcnNvbmFsX2lkMAEoUGVyc29uYWxJZAAFBIBSZWdpc3RlciBhbiBhY2NvdW50IGFzIGEgcGVyc29uLkRDYW5kaWRhdGVSZWZlcnJlZAgBIHJlZmVycmVyMAEoUGVyc29uYWxJZAABIHJlZmVycmVkAAEwVDo6QWNjb3VudElkAAYEbFBlcnNvbiByZWZlcnJlZCBhbiBhY2NvdW50LiBSZXJvbGxlZAQBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQABwS0RW50cm9weSBmb3IgYSBjYW5kaWRhdGUgY2hhbmdlZCBhZnRlciBleHBpcnkuPERlc2lnbkNvbW1pdHRlZAgBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQAASxyZXNlcnZlZF9pZDABKFBlcnNvbmFsSWQACASUQ2FuZGlkYXRlIGNvbW1pdHRlZCB0byBhbiBpbmsgZGVzaWduLjhGdWxseUFsbG9jYXRlZAQBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQACQS8U3RvcmFnZSBmdWxseSBhbGxvY2F0ZWQgZm9yIGEgY29tbWl0dGVkIGRlc2lnbi4gVGltZWRPdXQEAShhY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAoEgENhbmRpZGF0ZSByZW1vdmVkIGFmdGVyIHRpbWVvdXQuJEZsYWtlZE91dAQBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQACwR4VW5jb21taXR0ZWQgY2FuZGlkYXRlIHJlbW92ZWQuOFRpY2tldFJlZmVycmVkBAEgcmVmZXJyZXIwAShQZXJzb25hbElkAAwE7FJlZmVycmFsIHRpY2tldCBjcmVhdGVkIGJ5IHN0b3JpbmcgdGhlIHB1YmxpYyBrZXkgb24gY2hhaW4uPFRpY2tldENhbmNlbGxlZAQBIHJlZmVycmVyMAEoUGVyc29uYWxJZAANBBkBUmVmZXJyYWwgdGlja2V0IHJlbW92ZWQgYnkgcmVtb3ZpbmcgdGhlIHB1YmxpYyBrZXkgZnJvbSBjaGFpbiBzdG9yYWdlLjRUaWNrZXRBcHBsaWVkCAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAABIHJlZmVycmVyMAEoUGVyc29uYWxJZAAOBKhDYW5kaWRhdGUgYXBwbGllZCB1c2luZyBhIHJlZmVycmFsIHRpY2tldC4sRmFtaWx5QWRkZWQMARRpbmRleNkCASxGYW1pbHlJbmRleAABEGtpbmTdAgEoRmFtaWx5S2luZAABCGlkBAEgRmFtaWx5SWQADwRQRGVzaWduIGZhbWlseSBhZGRlZC5EQWxsSW52aXRlc1JlbW92ZWQEARxpbnZpdGVyAAEwVDo6QWNjb3VudElkABAEuEFsbCBpbnZpdGVzIGhhdmUgYmVlbiByZW1vdmVkIGZvciB0aGUgaW52aXRlci5IU29tZUludml0ZXNSZW1vdmVkBAEcaW52aXRlcgABMFQ6OkFjY291bnRJZAARBA0BU29tZSBpbnZpdGVzIGhhdmUgYmVlbiByZW1vdmVkIGZvciB0aGUgaW52aXRlciwgc29tZSBhcmUgcmVtYWluaW5nLlxJbnZpdGVkQ2FuZGlkYXRlQXBwbGllZAgBDHdobwABMFQ6OkFjY291bnRJZAABHGludml0ZXIAATBUOjpBY2NvdW50SWQAEgSYQ2FuZGlkYXRlIGFwcGxpZWQgdXNpbmcgYW4gaW52aXRhdGlvbi4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTZAgAABQQA3QIMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0KEZhbWlseUtpbmQAARAgRGVzaWduZWQEARRjb3VudNkCASxEZXNpZ25JbmRleAAAAERQcm9jZWR1cmFsQWNjb3VudAABAEhQcm9jZWR1cmFsUGVyc29uYWwAAgAoUHJvY2VkdXJhbAQBFHJhbmdlCAEwVmFyaWFudEluZGV4AAMAAOECDHBpbmRpdl9wYWxsZXRfcHJpdmFjeV92b3VjaGVyGHBhbGxldBRFdmVudAQEVAABGCBLZXlBZGRlZAwBDGtleckCASxNZW1iZXJPZjxUPgABNHZvdWNoZXJfdmFsdWUYATBCYWxhbmNlT2Y8VD4AAShyaW5nX2luZGV4EAEkUmluZ0luZGV4AAAEkEFuIGluZGl2aWR1YWwgaGFzIGNyZWF0ZWQgYSB2b3VjaGVyLjhWb3VjaGVyQ2xhaW1lZAgBDHdobwABMFQ6OkFjY291bnRJZAABFGFsaWFzBAEUQWxpYXMAAQSAQW4gaW5kaXZpZHVhbCBjbGFpbWVkIGEgdm91Y2hlci4sVm91Y2hlclNlbnQIARRhbGlhcwQBFEFsaWFzAAEQZGVzdAABMFQ6OkFjY291bnRJZAACBHRBbiBpbmRpdmlkdWFsIHNlbnQgYSB2b3VjaGVyLjRDbGFpbWFibGVSaW5nCAE0dm91Y2hlcl92YWx1ZRgBMEJhbGFuY2VPZjxUPgABKHJpbmdfaW5kZXgQASRSaW5nSW5kZXgAAwRIUmluZyBpcyBjbGFpbWFibGUuTFZvdWNoZXJWYWx1ZUNoYW5nZWQIAUx2YXJpYWJsZV92b3VjaGVyX2lklQEBRFZhcmlhYmxlVm91Y2hlcklkAAEkbmV3X3ZhbHVlGAEwQmFsYW5jZU9mPFQ+AAQEaFZvdWNoZXIgdmFsdWUgaGFzIGNoYW5nZWQuTFZvdWNoZXJWYWx1ZVBlbmRpbmcIAUx2YXJpYWJsZV92b3VjaGVyX2lklQEBRFZhcmlhYmxlVm91Y2hlcklkAAEkbmV3X3ZhbHVlGAEwQmFsYW5jZU9mPFQ+AAUEgFZvdWNoZXIgdmFsdWUgY2hhbmdlIGlzIHBlbmRpbmcuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV05QIMRGluZGl2X3BhbGxldF9nYW1lGHBhbGxldBRFdmVudAQEVAABFBxOZXdHYW1lDAFEcmVnaXN0cmF0aW9uX2VuZHMQAQx1MzIAASRnYW1lX2RhdGUQAQx1MzIAASxyZXBvcnRfZW5kcxABDHUzMgAABFxBIG5ldyBnYW1lIGlzIHN0YXJ0aW5nLiRHYW1lRW5kZWQEARRpbmRleBABDHUzMgABBKBUaGUgZ2FtZSBhbmQgaXRzIHBvc3QtcHJvY2VzcyBoYXMgZW5kZWQuQFN0bXRVc2FnZVJlbW92ZWQEAQx3aG8EASBbdTg7IDMyXQACBLhTdGF0ZW1lbnQgc3RvcmUgdXNhZ2UgcmVtb3ZlZCBmb3IgdGhlIGFjY291bnQuREFsbEludml0ZXNSZW1vdmVkBAEcaW52aXRlcgABMFQ6OkFjY291bnRJZAADBLhBbGwgaW52aXRlcyBoYXZlIGJlZW4gcmVtb3ZlZCBmb3IgdGhlIGludml0ZXIuSFNvbWVJbnZpdGVzUmVtb3ZlZAQBHGludml0ZXIAATBUOjpBY2NvdW50SWQABAQNAVNvbWUgaW52aXRlcyBoYXZlIGJlZW4gcmVtb3ZlZCBmb3IgdGhlIGludml0ZXIsIHNvbWUgYXJlIHJlbWFpbmluZy4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTpAgxIaW5kaXZfcGFsbGV0X3Njb3JlGHBhbGxldBRFdmVudAQEVAABBBhDcmVkaXQIAQx3aG/tAgF0QWNjb3VudE9yUGVyc29uPFQ6OkFjY291bnRJZD4EeFRoZSBwZXJzb24gd2hvIGNsYWltZWQgY3JlZGl0LgEcdm91Y2hlcskCAShUOjpWb3VjaGVyBFxUaGUgdm91Y2hlciByZWdpc3RlcmVkLgAEcEEgcGVyc29uIGhhcyBjbGFpbWVkIGNyZWRpdC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTtAgxIaW5kaXZfcGFsbGV0X3Njb3JlFHR5cGVzPEFjY291bnRPclBlcnNvbgQkQWNjb3VudElkAQABCBxBY2NvdW50BAAAASRBY2NvdW50SWQAAAAYUGVyc29uBAAEARRBbGlhcwABAADxAgxYaW5kaXZfcGFsbGV0X2R1bW15X2RpbRhwYWxsZXQURXZlbnQEBFQAASAsSWRzUmVzZXJ2ZWQEARRjb3VudBABDHUzMgAABHRBIG51bWJlciBvZiBJRHMgd2FzIHJlc2VydmVkLiRJZFJlbmV3ZWQEAQhpZDABKFBlcnNvbmFsSWQAAQRIQW4gSUQgd2FzIHJlbmV3ZWQuMElkVW5yZXNlcnZlZAQBCGlkMAEoUGVyc29uYWxJZAACBGhBIHJlc2VydmVkIElEIHdhcyByZW1vdmVkLkBQZW9wbGVSZWdpc3RlcmVkBAEUY291bnQQAQx1MzIAAwRkUmVnaXN0ZXIgbXVsdGlwbGUgcGVvcGxlLjxQZW9wbGVTdXNwZW5kZWQEARRjb3VudBABDHUzMgAEBGxTdXNwZW5kIGEgbnVtYmVyIG9mIHBlb3BsZS5EUGVyc29uaG9vZFJlc3VtZWQEAQhpZDABKFBlcnNvbmFsSWQABQSEU29tZW9uZSdzIHBlcnNvbmhvb2Qgd2FzIHJlc3VtZWQuSFN1c3BlbnNpb25zU3RhcnRlZAAGBHxUaGUgcGFsbGV0IGVuYWJsZWQgc3VzcGVuc2lvbnMuQFN1c3BlbnNpb25zRW5kZWQABwSAVGhlIHBhbGxldCBkaXNhYmxlZCBzdXNwZW5zaW9ucy4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXT1AgxgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlGHBhbGxldBRFdmVudAQEVAABBHhBbGxBdHRlc3RhdGlvbkFsbG93YW5jZUNsZWFyZWQEASB2ZXJpZmllcgABMFQ6OkFjY291bnRJZAAABPBBbGwgYXR0ZXN0YXRpb24gYWxsb3dhbmNlIGhhcyBiZWVuIHJlbW92ZWQgZm9yIHRoZSB2ZXJpZmllci4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXT5AgxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxhwYWxsZXQURXZlbnQEBFQAAQhAUGVyc29uUmVnaXN0ZXJlZAgBFGFsaWFzBAEUQWxpYXMAARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAAEmEEgcGVyc29uIGhhcyByZWdpc3RlcmVkIGFzIGEgY29uc3VtZXIuUExpdGVQZXJzb25SZWdpc3RlcmVkBAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABBKxBIGxpdGUgcGVyc29uIGhhcyByZWdpc3RlcmVkIGFzIGEgY29uc3VtZXIuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0/QIMUGluZGl2X3BhbGxldF9sb3R0ZXJ5GHBhbGxldBRFdmVudAQEVAABDFRQYXJ0aWNpcGFudFJlZ2lzdGVyZWQMASBldmVudF9pZBABHEV2ZW50SWQAAThwYXJ0aWNpcGFudF9pZBABNFBhcnRpY2lwYW50SWQAARRhbGlhcwQBFEFsaWFzAAAEmEEgcGFydGljaXBhbnQgcmVnaXN0ZXJlZCBmb3IgYW4gZXZlbnQuMEV2ZW50U3RhcnRlZAgBCGlkEAEcRXZlbnRJZAABFGV2ZW50AQMBRExvdHRlcnlQcml6ZU9mPFQ+AAEEVFRoZSBldmVudCBpcyBzdGFydGVkLjBFdmVudFNraXBwZWQIAQhpZBABHEV2ZW50SWQAARRldmVudAEDAURMb3R0ZXJ5UHJpemVPZjxUPgACBHxUaGUgc2NoZWR1bGVkIGV2ZW50IGlzIHNraXBwZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0AQMMUGluZGl2X3BhbGxldF9sb3R0ZXJ5GHBhbGxldDBMb3R0ZXJ5UHJpemUIHEFzc2V0SWQBpDBBc3NldEJhbGFuY2UBGAEEIFByaXplU2V0DAEgYXNzZXRfaWSkARxBc3NldElkAAEwYXNzZXRfYW1vdW50GAEwQXNzZXRCYWxhbmNlAAEcd2lubmVycxABDHUzMgAAAAAFAwxEcGFsbGV0X21pZ3JhdGlvbnMYcGFsbGV0FEV2ZW50BARUAAEgOFVwZ3JhZGVTdGFydGVkBAEobWlncmF0aW9ucxABDHUzMhDQVGhlIG51bWJlciBvZiBtaWdyYXRpb25zIHRoYXQgdGhpcyB1cGdyYWRlIGNvbnRhaW5zLgBBAVRoaXMgY2FuIGJlIHVzZWQgdG8gZGVzaWduIGEgcHJvZ3Jlc3MgaW5kaWNhdG9yIGluIGNvbWJpbmF0aW9uIHdpdGggY291bnRpbmcgdGhlzGBNaWdyYXRpb25Db21wbGV0ZWRgIGFuZCBgTWlncmF0aW9uU2tpcHBlZGAgZXZlbnRzLgAMaEEgUnVudGltZSB1cGdyYWRlIHN0YXJ0ZWQuAPhJdHMgZW5kIGlzIGluZGljYXRlZCBieSBgVXBncmFkZUNvbXBsZXRlZGAgb3IgYFVwZ3JhZGVGYWlsZWRgLkBVcGdyYWRlQ29tcGxldGVkAAEMmFRoZSBjdXJyZW50IHJ1bnRpbWUgdXBncmFkZSBjb21wbGV0ZWQuAB0BVGhpcyBpbXBsaWVzIHRoYXQgYWxsIG9mIGl0cyBtaWdyYXRpb25zIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgYXMgd2VsbC40VXBncmFkZUZhaWxlZAACDFxSdW50aW1lIHVwZ3JhZGUgZmFpbGVkLgDoVGhpcyBpcyB2ZXJ5IGJhZCBhbmQgd2lsbCByZXF1aXJlIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uLkBNaWdyYXRpb25Ta2lwcGVkBAEUaW5kZXgQAQx1MzIEKQFUaGUgaW5kZXggb2YgdGhlIHNraXBwZWQgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgMECQFBIG1pZ3JhdGlvbiB3YXMgc2tpcHBlZCBzaW5jZSBpdCB3YXMgYWxyZWFkeSBleGVjdXRlZCBpbiB0aGUgcGFzdC5ETWlncmF0aW9uQWR2YW5jZWQIARRpbmRleBABDHUzMgQJAVRoZSBpbmRleCBvZiB0aGUgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgEQdG9vaxABREJsb2NrTnVtYmVyRm9yPFQ+BNRUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IHRoaXMgbWlncmF0aW9uIHRvb2sgc28gZmFyLgQEXEEgbWlncmF0aW9uIHByb2dyZXNzZWQuSE1pZ3JhdGlvbkNvbXBsZXRlZAgBFGluZGV4EAEMdTMyBAkBVGhlIGluZGV4IG9mIHRoZSBtaWdyYXRpb24gd2l0aGluIHRoZSBbYENvbmZpZzo6TWlncmF0aW9uc2BdIGxpc3QuARB0b29rEAFEQmxvY2tOdW1iZXJGb3I8VD4E1FRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgdGhpcyBtaWdyYXRpb24gdG9vayBzbyBmYXIuBQRYQSBNaWdyYXRpb24gY29tcGxldGVkLjxNaWdyYXRpb25GYWlsZWQIARRpbmRleBABDHUzMgQJAVRoZSBpbmRleCBvZiB0aGUgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgEQdG9vaxABREJsb2NrTnVtYmVyRm9yPFQ+BNRUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IHRoaXMgbWlncmF0aW9uIHRvb2sgc28gZmFyLgYMTEEgTWlncmF0aW9uIGZhaWxlZC4ATQFUaGlzIGltcGxpZXMgdGhhdCB0aGUgd2hvbGUgdXBncmFkZSBmYWlsZWQgYW5kIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uIGlzIHJlcXVpcmVkLjxIaXN0b3JpY0NsZWFyZWQEASxuZXh0X2N1cnNvcgkDATxPcHRpb248VmVjPHU4Pj4E6FNob3VsZCBiZSBwYXNzZWQgdG8gYGNsZWFyX2hpc3RvcmljYCBpbiBhIHN1Y2Nlc3NpdmUgY2FsbC4HBMhUaGUgc2V0IG9mIGhpc3RvcmljYWwgbWlncmF0aW9ucyBoYXMgYmVlbiBjbGVhcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldAkDBBhPcHRpb24EBFQBOAEIEE5vbmUAAAAQU29tZQQAOAAAAQAADQMIMGZyYW1lX3N5c3RlbRRQaGFzZQABDDhBcHBseUV4dHJpbnNpYwQAEAEMdTMyAAAAMEZpbmFsaXphdGlvbgABADhJbml0aWFsaXphdGlvbgACAAARAwAAAjQAFQMAAAIZAwAZAwAABAgQEAAdAwgwZnJhbWVfc3lzdGVtWExhc3RSdW50aW1lVXBncmFkZUluZm8AAAgBMHNwZWNfdmVyc2lvbrQBTGNvZGVjOjpDb21wYWN0PHUzMj4AASRzcGVjX25hbWUhAwFEQ293PCdzdGF0aWMsIHN0cj4AACEDBAxDb3cEBFQBJQMABAAlAwAAACUDAAAFAgApAwgwZnJhbWVfc3lzdGVtYENvZGVVcGdyYWRlQXV0aG9yaXphdGlvbgQEVAAACAEkY29kZV9oYXNoNAEcVDo6SGFzaAABNGNoZWNrX3ZlcnNpb24gARBib29sAAAtAwwwZnJhbWVfc3lzdGVtGHBhbGxldBBDYWxsBARUAAEsGHJlbWFyawQBGHJlbWFyazgBHFZlYzx1OD4AAAxoTWFrZSBzb21lIG9uLWNoYWluIHJlbWFyay4AiENhbiBiZSBleGVjdXRlZCBieSBldmVyeSBgb3JpZ2luYC44c2V0X2hlYXBfcGFnZXMEARRwYWdlczABDHU2NAABBPhTZXQgdGhlIG51bWJlciBvZiBwYWdlcyBpbiB0aGUgV2ViQXNzZW1ibHkgZW52aXJvbm1lbnQncyBoZWFwLiBzZXRfY29kZQQBEGNvZGU4ARxWZWM8dTg+AAIEZFNldCB0aGUgbmV3IHJ1bnRpbWUgY29kZS5cc2V0X2NvZGVfd2l0aG91dF9jaGVja3MEARBjb2RlOAEcVmVjPHU4PgADEBkBU2V0IHRoZSBuZXcgcnVudGltZSBjb2RlIHdpdGhvdXQgZG9pbmcgYW55IGNoZWNrcyBvZiB0aGUgZ2l2ZW4gYGNvZGVgLgBRAU5vdGUgdGhhdCBydW50aW1lIHVwZ3JhZGVzIHdpbGwgbm90IHJ1biBpZiB0aGlzIGlzIGNhbGxlZCB3aXRoIGEgbm90LWluY3JlYXNpbmcgc3BlYyB2ZXJzaW9uISxzZXRfc3RvcmFnZQQBFGl0ZW1zMQMBNFZlYzxLZXlWYWx1ZT4ABARoU2V0IHNvbWUgaXRlbXMgb2Ygc3RvcmFnZS4wa2lsbF9zdG9yYWdlBAEQa2V5czkDASBWZWM8S2V5PgAFBHRLaWxsIHNvbWUgaXRlbXMgZnJvbSBzdG9yYWdlLixraWxsX3ByZWZpeAgBGHByZWZpeDgBDEtleQABHHN1YmtleXMQAQx1MzIABhARAUtpbGwgYWxsIHN0b3JhZ2UgaXRlbXMgd2l0aCBhIGtleSB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBnaXZlbiBwcmVmaXguADkBKipOT1RFOioqIFdlIHJlbHkgb24gdGhlIFJvb3Qgb3JpZ2luIHRvIHByb3ZpZGUgdXMgdGhlIG51bWJlciBvZiBzdWJrZXlzIHVuZGVyPQF0aGUgcHJlZml4IHdlIGFyZSByZW1vdmluZyB0byBhY2N1cmF0ZWx5IGNhbGN1bGF0ZSB0aGUgd2VpZ2h0IG9mIHRoaXMgZnVuY3Rpb24uRHJlbWFya193aXRoX2V2ZW50BAEYcmVtYXJrOAEcVmVjPHU4PgAHBKRNYWtlIHNvbWUgb24tY2hhaW4gcmVtYXJrIGFuZCBlbWl0IGV2ZW50LkRhdXRob3JpemVfdXBncmFkZQQBJGNvZGVfaGFzaDQBHFQ6Okhhc2gACRBhAUF1dGhvcml6ZSBhbiB1cGdyYWRlIHRvIGEgZ2l2ZW4gYGNvZGVfaGFzaGAgZm9yIHRoZSBydW50aW1lLiBUaGUgcnVudGltZSBjYW4gYmUgc3VwcGxpZWQYbGF0ZXIuAHxUaGlzIGNhbGwgcmVxdWlyZXMgUm9vdCBvcmlnaW4ugGF1dGhvcml6ZV91cGdyYWRlX3dpdGhvdXRfY2hlY2tzBAEkY29kZV9oYXNoNAEcVDo6SGFzaAAKIGEBQXV0aG9yaXplIGFuIHVwZ3JhZGUgdG8gYSBnaXZlbiBgY29kZV9oYXNoYCBmb3IgdGhlIHJ1bnRpbWUuIFRoZSBydW50aW1lIGNhbiBiZSBzdXBwbGllZBhsYXRlci4AXQFXQVJOSU5HOiBUaGlzIGF1dGhvcml6ZXMgYW4gdXBncmFkZSB0aGF0IHdpbGwgdGFrZSBwbGFjZSB3aXRob3V0IGFueSBzYWZldHkgY2hlY2tzLCBmb3JZAWV4YW1wbGUgdGhhdCB0aGUgc3BlYyBuYW1lIHJlbWFpbnMgdGhlIHNhbWUgYW5kIHRoYXQgdGhlIHZlcnNpb24gbnVtYmVyIGluY3JlYXNlcy4gTm908HJlY29tbWVuZGVkIGZvciBub3JtYWwgdXNlLiBVc2UgYGF1dGhvcml6ZV91cGdyYWRlYCBpbnN0ZWFkLgB8VGhpcyBjYWxsIHJlcXVpcmVzIFJvb3Qgb3JpZ2luLmBhcHBseV9hdXRob3JpemVkX3VwZ3JhZGUEARBjb2RlOAEcVmVjPHU4PgALJFUBUHJvdmlkZSB0aGUgcHJlaW1hZ2UgKHJ1bnRpbWUgYmluYXJ5KSBgY29kZWAgZm9yIGFuIHVwZ3JhZGUgdGhhdCBoYXMgYmVlbiBhdXRob3JpemVkLgBJAUlmIHRoZSBhdXRob3JpemF0aW9uIHJlcXVpcmVkIGEgdmVyc2lvbiBjaGVjaywgdGhpcyBjYWxsIHdpbGwgZW5zdXJlIHRoZSBzcGVjIG5hbWXocmVtYWlucyB1bmNoYW5nZWQgYW5kIHRoYXQgdGhlIHNwZWMgdmVyc2lvbiBoYXMgaW5jcmVhc2VkLgBZAURlcGVuZGluZyBvbiB0aGUgcnVudGltZSdzIGBPblNldENvZGVgIGNvbmZpZ3VyYXRpb24sIHRoaXMgZnVuY3Rpb24gbWF5IGRpcmVjdGx5IGFwcGx5EQF0aGUgbmV3IGBjb2RlYCBpbiB0aGUgc2FtZSBibG9jayBvciBhdHRlbXB0IHRvIHNjaGVkdWxlIHRoZSB1cGdyYWRlLgBgQWxsIG9yaWdpbnMgYXJlIGFsbG93ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLjEDAAACNQMANQMAAAQIODgAOQMAAAI4AD0DDDBmcmFtZV9zeXN0ZW0YbGltaXRzMEJsb2NrV2VpZ2h0cwAADAEoYmFzZV9ibG9jaygBGFdlaWdodAABJG1heF9ibG9jaygBGFdlaWdodAABJHBlcl9jbGFzc0EDAYRQZXJEaXNwYXRjaENsYXNzPFdlaWdodHNQZXJDbGFzcz4AAEEDDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoQFBlckRpc3BhdGNoQ2xhc3MEBFQBRQMADAEYbm9ybWFsRQMBBFQAASxvcGVyYXRpb25hbEUDAQRUAAEkbWFuZGF0b3J5RQMBBFQAAEUDDDBmcmFtZV9zeXN0ZW0YbGltaXRzPFdlaWdodHNQZXJDbGFzcwAAEAE4YmFzZV9leHRyaW5zaWMoARhXZWlnaHQAATRtYXhfZXh0cmluc2ljxQEBOE9wdGlvbjxXZWlnaHQ+AAEkbWF4X3RvdGFsxQEBOE9wdGlvbjxXZWlnaHQ+AAEgcmVzZXJ2ZWTFAQE4T3B0aW9uPFdlaWdodD4AAEkDDDBmcmFtZV9zeXN0ZW0YbGltaXRzLEJsb2NrTGVuZ3RoAAAEAQxtYXhNAwFUUGVyRGlzcGF0Y2hDbGFzczx1MzI+AABNAww0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQZXJEaXNwYXRjaENsYXNzBARUARAADAEYbm9ybWFsEAEEVAABLG9wZXJhdGlvbmFsEAEEVAABJG1hbmRhdG9yeRABBFQAAFEDCChzcF93ZWlnaHRzPFJ1bnRpbWVEYldlaWdodAAACAEQcmVhZDABDHU2NAABFHdyaXRlMAEMdTY0AABVAwgoc3BfdmVyc2lvbjhSdW50aW1lVmVyc2lvbgAAIAEkc3BlY19uYW1lIQMBRENvdzwnc3RhdGljLCBzdHI+AAEkaW1wbF9uYW1lIQMBRENvdzwnc3RhdGljLCBzdHI+AAFEYXV0aG9yaW5nX3ZlcnNpb24QAQx1MzIAATBzcGVjX3ZlcnNpb24QAQx1MzIAATBpbXBsX3ZlcnNpb24QAQx1MzIAARBhcGlzWQMBHEFwaXNWZWMAAUx0cmFuc2FjdGlvbl92ZXJzaW9uEAEMdTMyAAE4c3lzdGVtX3ZlcnNpb24IAQh1OAAAWQMEDENvdwQEVAFdAwAEAF0DAAAAXQMAAAJhAwBhAwAABAiVARAAZQMMMGZyYW1lX3N5c3RlbRhwYWxsZXQURXJyb3IEBFQAASQ8SW52YWxpZFNwZWNOYW1lAAAIEQFUaGUgbmFtZSBvZiBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IG1hdGNoIGJldHdlZW4gdGhlIGN1cnJlbnQgcnVudGltZVBhbmQgdGhlIG5ldyBydW50aW1lLmhTcGVjVmVyc2lvbk5lZWRzVG9JbmNyZWFzZQABCEEBVGhlIHNwZWNpZmljYXRpb24gdmVyc2lvbiBpcyBub3QgYWxsb3dlZCB0byBkZWNyZWFzZSBiZXR3ZWVuIHRoZSBjdXJyZW50IHJ1bnRpbWVQYW5kIHRoZSBuZXcgcnVudGltZS50RmFpbGVkVG9FeHRyYWN0UnVudGltZVZlcnNpb24AAgzsRmFpbGVkIHRvIGV4dHJhY3QgdGhlIHJ1bnRpbWUgdmVyc2lvbiBmcm9tIHRoZSBuZXcgcnVudGltZS4ACQFFaXRoZXIgY2FsbGluZyBgQ29yZV92ZXJzaW9uYCBvciBkZWNvZGluZyBgUnVudGltZVZlcnNpb25gIGZhaWxlZC5MTm9uRGVmYXVsdENvbXBvc2l0ZQADBPxTdWljaWRlIGNhbGxlZCB3aGVuIHRoZSBhY2NvdW50IGhhcyBub24tZGVmYXVsdCBjb21wb3NpdGUgZGF0YS48Tm9uWmVyb1JlZkNvdW50AAQENQFUaGVyZSBpcyBhIG5vbi16ZXJvIHJlZmVyZW5jZSBjb3VudCBwcmV2ZW50aW5nIHRoZSBhY2NvdW50IGZyb20gYmVpbmcgcHVyZ2VkLjBDYWxsRmlsdGVyZWQABQTQVGhlIG9yaWdpbiBmaWx0ZXIgcHJldmVudCB0aGUgY2FsbCB0byBiZSBkaXNwYXRjaGVkLmxNdWx0aUJsb2NrTWlncmF0aW9uc09uZ29pbmcABgRVAUEgbXVsdGktYmxvY2sgbWlncmF0aW9uIGlzIG9uZ29pbmcgYW5kIHByZXZlbnRzIHRoZSBjdXJyZW50IGNvZGUgZnJvbSBiZWluZyByZXBsYWNlZC5ETm90aGluZ0F1dGhvcml6ZWQABwRYTm8gdXBncmFkZSBhdXRob3JpemVkLjBVbmF1dGhvcml6ZWQACASUVGhlIHN1Ym1pdHRlZCBjb2RlIGlzIG5vdCBhdXRob3JpemVkLgRsRXJyb3IgZm9yIHRoZSBTeXN0ZW0gcGFsbGV0aQMIVHBlb3BsZV9yb2NvY29fcnVudGltZSxSdW50aW1lQ2FsbAABdBhTeXN0ZW0EAC0DAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFN5c3RlbSwgUnVudGltZT4AAAA8UGFyYWNoYWluU3lzdGVtBABtAwHRAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQYXJhY2hhaW5TeXN0ZW0sIFJ1bnRpbWU+AAEAJFRpbWVzdGFtcAQAsQMBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VGltZXN0YW1wLCBSdW50aW1lPgACADRQYXJhY2hhaW5JbmZvBAC1AwHJAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQYXJhY2hhaW5JbmZvLCBSdW50aW1lPgADACBCYWxhbmNlcwQAuQMBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QmFsYW5jZXMsIFJ1bnRpbWU+AAoARE9yaWdpblJlc3RyaWN0aW9uBADJAwHZAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxPcmlnaW5SZXN0cmljdGlvbiwgUnVudGltZT4ADQAYQXNzZXRzBADNAwGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxBc3NldHMsIFJ1bnRpbWU+AA4AJEFzc2V0UmF0ZQQA0QMBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QXNzZXRSYXRlLCBSdW50aW1lPgAQAERDb2xsYXRvclNlbGVjdGlvbgQA1QMB2QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q29sbGF0b3JTZWxlY3Rpb24sIFJ1bnRpbWU+ABUAHFNlc3Npb24EANkDAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFNlc3Npb24sIFJ1bnRpbWU+ABYAJFhjbXBRdWV1ZQQA5QMBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8WGNtcFF1ZXVlLCBSdW50aW1lPgAeACxQb2xrYWRvdFhjbQQA6QMBwQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UG9sa2Fkb3RYY20sIFJ1bnRpbWU+AB8AKEN1bXVsdXNYY20EAJ0EAb0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEN1bXVsdXNYY20sIFJ1bnRpbWU+ACAAME1lc3NhZ2VRdWV1ZQQAoQQBxQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TWVzc2FnZVF1ZXVlLCBSdW50aW1lPgAiABxVdGlsaXR5BAClBAGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxVdGlsaXR5LCBSdW50aW1lPgAoACBNdWx0aXNpZwQArQQBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TXVsdGlzaWcsIFJ1bnRpbWU+ACkAEFN1ZG8EALUEAaUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFN1ZG8sIFJ1bnRpbWU+ACoAIElkZW50aXR5BAC5BAG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxJZGVudGl0eSwgUnVudGltZT4AMgAYUGVvcGxlBABZBQGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQZW9wbGUsIFJ1bnRpbWU+ADMAHE1vYlJ1bGUEAGEFAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE1vYlJ1bGUsIFJ1bnRpbWU+ADQAKFByb29mT2ZJbmsEAGUFAb0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFByb29mT2ZJbmssIFJ1bnRpbWU+ADUAOFByaXZhY3lWb3VjaGVyBACBBQHNAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQcml2YWN5Vm91Y2hlciwgUnVudGltZT4ANgAQR2FtZQQAiQUBpQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8R2FtZSwgUnVudGltZT4ANwAUU2NvcmUEAK0FAakBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFNjb3JlLCBSdW50aW1lPgA4ACBEdW1teURpbQQAuQUBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RHVtbXlEaW0sIFJ1bnRpbWU+ADsAKFBlb3BsZUxpdGUEANEFAb0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBlb3BsZUxpdGUsIFJ1bnRpbWU+AD4AJFJlc291cmNlcwQA4QUBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UmVzb3VyY2VzLCBSdW50aW1lPgA/ABxMb3R0ZXJ5BADpBQGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxMb3R0ZXJ5LCBSdW50aW1lPgA9AFBNdWx0aUJsb2NrTWlncmF0aW9ucwQA8QUB5QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TXVsdGlCbG9ja01pZ3JhdGlvbnMsIFJ1bnRpbWU+AGIAAG0DDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtGHBhbGxldBBDYWxsBARUAAEITHNldF92YWxpZGF0aW9uX2RhdGEEARBkYXRhcQMBVFBhcmFjaGFpbkluaGVyZW50RGF0YQAAJIBTZXQgdGhlIGN1cnJlbnQgdmFsaWRhdGlvbiBkYXRhLgBBAVRoaXMgc2hvdWxkIGJlIGludm9rZWQgZXhhY3RseSBvbmNlIHBlciBibG9jay4gSXQgd2lsbCBwYW5pYyBhdCB0aGUgZmluYWxpemF0aW9uiHBoYXNlIGlmIHRoZSBjYWxsIHdhcyBub3QgaW52b2tlZC4A0FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBJbmhlcmVudGAAIQFBcyBhIHNpZGUgZWZmZWN0LCB0aGlzIGZ1bmN0aW9uIHVwZ3JhZGVzIHRoZSBjdXJyZW50IHZhbGlkYXRpb24gZnVuY3Rpb26EaWYgdGhlIGFwcHJvcHJpYXRlIHRpbWUgaGFzIGNvbWUuYHN1ZG9fc2VuZF91cHdhcmRfbWVzc2FnZQQBHG1lc3NhZ2U4ATRVcHdhcmRNZXNzYWdlAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLnEDCJRjdW11bHVzX3ByaW1pdGl2ZXNfcGFyYWNoYWluX2luaGVyZW50VFBhcmFjaGFpbkluaGVyZW50RGF0YQAAGAE8dmFsaWRhdGlvbl9kYXRhdQMBXFBlcnNpc3RlZFZhbGlkYXRpb25EYXRhAAFEcmVsYXlfY2hhaW5fc3RhdGV9AwFUc3BfdHJpZTo6U3RvcmFnZVByb29mAAFEZG93bndhcmRfbWVzc2FnZXOFAwFsVmVjPEluYm91bmREb3dud2FyZE1lc3NhZ2U+AAFMaG9yaXpvbnRhbF9tZXNzYWdlc40DAaRCVHJlZU1hcDxQYXJhSWQsIFZlYzxJbmJvdW5kSHJtcE1lc3NhZ2U+PgABYHJlbGF5X3BhcmVudF9kZXNjZW5kYW50c6EDAUBWZWM8UmVsYXlIZWFkZXI+AAFAY29sbGF0b3JfcGVlcl9pZKkDAVhPcHRpb248QXBwcm92ZWRQZWVySWQ+AAB1AwxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OFxQZXJzaXN0ZWRWYWxpZGF0aW9uRGF0YQgESAE0BE4BEAAQASxwYXJlbnRfaGVhZHkDASBIZWFkRGF0YQABTHJlbGF5X3BhcmVudF9udW1iZXIQAQROAAFkcmVsYXlfcGFyZW50X3N0b3JhZ2Vfcm9vdDQBBEgAATBtYXhfcG92X3NpemUQAQx1MzIAAHkDDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzIEhlYWREYXRhAAAEADgBHFZlYzx1OD4AAH0DDBxzcF90cmllNHN0b3JhZ2VfcHJvb2YwU3RvcmFnZVByb29mAAAEASh0cmllX25vZGVzgQMBREJUcmVlU2V0PFZlYzx1OD4+AACBAwQgQlRyZWVTZXQEBFQBOAAEADkDAAAAhQMAAAKJAwCJAwhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzWEluYm91bmREb3dud2FyZE1lc3NhZ2UELEJsb2NrTnVtYmVyARAACAEcc2VudF9hdBABLEJsb2NrTnVtYmVyAAEMbXNnOAE8RG93bndhcmRNZXNzYWdlAACNAwQgQlRyZWVNYXAIBEsB8ARWAZEDAAQAmQMAAACRAwAAApUDAJUDCGBwb2xrYWRvdF9jb3JlX3ByaW1pdGl2ZXNISW5ib3VuZEhybXBNZXNzYWdlBCxCbG9ja051bWJlcgEQAAgBHHNlbnRfYXQQASxCbG9ja051bWJlcgABEGRhdGE4AUxhbGxvYzo6dmVjOjpWZWM8dTg+AACZAwAAAp0DAJ0DAAAECPCRAwChAwAAAqUDAKUDEChzcF9ydW50aW1lHGdlbmVyaWMYaGVhZGVyGEhlYWRlcggYTnVtYmVyARAQSGFzaAAAFAEscGFyZW50X2hhc2g0ATBIYXNoOjpPdXRwdXQAARhudW1iZXK0ARhOdW1iZXIAAShzdGF0ZV9yb290NAEwSGFzaDo6T3V0cHV0AAE8ZXh0cmluc2ljc19yb290NAEwSGFzaDo6T3V0cHV0AAEYZGlnZXN0PAEYRGlnZXN0AACpAwQYT3B0aW9uBARUAa0DAQgQTm9uZQAAABBTb21lBACtAwAAAQAArQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AACxAwxAcGFsbGV0X3RpbWVzdGFtcBhwYWxsZXQQQ2FsbAQEVAABBAxzZXQEAQxub3csASRUOjpNb21lbnQAAExUU2V0IHRoZSBjdXJyZW50IHRpbWUuAFUBVGhpcyBjYWxsIHNob3VsZCBiZSBpbnZva2VkIGV4YWN0bHkgb25jZSBwZXIgYmxvY2suIEl0IHdpbGwgcGFuaWMgYXQgdGhlIGZpbmFsaXphdGlvbtRwaGFzZSwgaWYgdGhpcyBjYWxsIGhhc24ndCBiZWVuIGludm9rZWQgYnkgdGhhdCB0aW1lLgBBAVRoZSB0aW1lc3RhbXAgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB0aGUgcHJldmlvdXMgb25lIGJ5IHRoZSBhbW91bnQgc3BlY2lmaWVkIGJ5aFtgQ29uZmlnOjpNaW5pbXVtUGVyaW9kYF0uAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfTm9uZV8uAFEBVGhpcyBkaXNwYXRjaCBjbGFzcyBpcyBfTWFuZGF0b3J5XyB0byBlbnN1cmUgaXQgZ2V0cyBleGVjdXRlZCBpbiB0aGUgYmxvY2suIEJlIGF3YXJlUQF0aGF0IGNoYW5naW5nIHRoZSBjb21wbGV4aXR5IG9mIHRoaXMgY2FsbCBjb3VsZCByZXN1bHQgZXhoYXVzdGluZyB0aGUgcmVzb3VyY2VzIGluIGGEYmxvY2sgdG8gZXhlY3V0ZSBhbnkgb3RoZXIgY2FsbHMuADQjIyBDb21wbGV4aXR5MQEtIGBPKDEpYCAoTm90ZSB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBgT25UaW1lc3RhbXBTZXRgIG11c3QgYWxzbyBiZSBgTygxKWApVQEtIDEgc3RvcmFnZSByZWFkIGFuZCAxIHN0b3JhZ2UgbXV0YXRpb24gKGNvZGVjIGBPKDEpYCBiZWNhdXNlIG9mIGBEaWRVcGRhdGU6OnRha2VgIGluQCAgYG9uX2ZpbmFsaXplYCnULSAxIGV2ZW50IGhhbmRsZXIgYG9uX3RpbWVzdGFtcF9zZXRgLiBNdXN0IGJlIGBPKDEpYC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMutQMMWHN0YWdpbmdfcGFyYWNoYWluX2luZm8YcGFsbGV0EENhbGwEBFQAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuuQMMPHBhbGxldF9iYWxhbmNlcxhwYWxsZXQQQ2FsbAgEVAAESQABJFB0cmFuc2Zlcl9hbGxvd19kZWF0aAgBEGRlc3S9AwFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1ZcQBKFQ6OkJhbGFuY2UAABzUVHJhbnNmZXIgc29tZSBsaXF1aWQgZnJlZSBiYWxhbmNlIHRvIGFub3RoZXIgYWNjb3VudC4ANQFgdHJhbnNmZXJfYWxsb3dfZGVhdGhgIHdpbGwgc2V0IHRoZSBgRnJlZUJhbGFuY2VgIG9mIHRoZSBzZW5kZXIgYW5kIHJlY2VpdmVyLhEBSWYgdGhlIHNlbmRlcidzIGFjY291bnQgaXMgYmVsb3cgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQgYXMgYSByZXN1bHSwb2YgdGhlIHRyYW5zZmVyLCB0aGUgYWNjb3VudCB3aWxsIGJlIHJlYXBlZC4AFQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUgdHJhbnNhY3Rvci44Zm9yY2VfdHJhbnNmZXIMARhzb3VyY2W9AwFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkZXN0vQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWXEAShUOjpCYWxhbmNlAAIIYQFFeGFjdGx5IGFzIGB0cmFuc2Zlcl9hbGxvd19kZWF0aGAsIGV4Y2VwdCB0aGUgb3JpZ2luIG11c3QgYmUgcm9vdCBhbmQgdGhlIHNvdXJjZSBhY2NvdW50RG1heSBiZSBzcGVjaWZpZWQuTHRyYW5zZmVyX2tlZXBfYWxpdmUIARBkZXN0vQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWXEAShUOjpCYWxhbmNlAAMYWQFTYW1lIGFzIHRoZSBbYHRyYW5zZmVyX2FsbG93X2RlYXRoYF0gY2FsbCwgYnV0IHdpdGggYSBjaGVjayB0aGF0IHRoZSB0cmFuc2ZlciB3aWxsIG5vdGBraWxsIHRoZSBvcmlnaW4gYWNjb3VudC4A6Dk5JSBvZiB0aGUgdGltZSB5b3Ugd2FudCBbYHRyYW5zZmVyX2FsbG93X2RlYXRoYF0gaW5zdGVhZC4A8FtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXTogc3RydWN0LlBhbGxldC5odG1sI21ldGhvZC50cmFuc2ZlcjB0cmFuc2Zlcl9hbGwIARBkZXN0vQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoa2VlcF9hbGl2ZSABEGJvb2wABDwFAVRyYW5zZmVyIHRoZSBlbnRpcmUgdHJhbnNmZXJhYmxlIGJhbGFuY2UgZnJvbSB0aGUgY2FsbGVyIGFjY291bnQuAFkBTk9URTogVGhpcyBmdW5jdGlvbiBvbmx5IGF0dGVtcHRzIHRvIHRyYW5zZmVyIF90cmFuc2ZlcmFibGVfIGJhbGFuY2VzLiBUaGlzIG1lYW5zIHRoYXRhAWFueSBsb2NrZWQsIHJlc2VydmVkLCBvciBleGlzdGVudGlhbCBkZXBvc2l0cyAod2hlbiBga2VlcF9hbGl2ZWAgaXMgYHRydWVgKSwgd2lsbCBub3QgYmVdAXRyYW5zZmVycmVkIGJ5IHRoaXMgZnVuY3Rpb24uIFRvIGVuc3VyZSB0aGF0IHRoaXMgZnVuY3Rpb24gcmVzdWx0cyBpbiBhIGtpbGxlZCBhY2NvdW50LEUBeW91IG1pZ2h0IG5lZWQgdG8gcHJlcGFyZSB0aGUgYWNjb3VudCBieSByZW1vdmluZyBhbnkgcmVmZXJlbmNlIGNvdW50ZXJzLCBzdG9yYWdlQGRlcG9zaXRzLCBldGMuLi4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgU2lnbmVkLgCgLSBgZGVzdGA6IFRoZSByZWNpcGllbnQgb2YgdGhlIHRyYW5zZmVyLlkBLSBga2VlcF9hbGl2ZWA6IEEgYm9vbGVhbiB0byBkZXRlcm1pbmUgaWYgdGhlIGB0cmFuc2Zlcl9hbGxgIG9wZXJhdGlvbiBzaG91bGQgc2VuZCBhbGxNASAgb2YgdGhlIGZ1bmRzIHRoZSBhY2NvdW50IGhhcywgY2F1c2luZyB0aGUgc2VuZGVyIGFjY291bnQgdG8gYmUga2lsbGVkIChmYWxzZSksIG9yWQEgIHRyYW5zZmVyIGV2ZXJ5dGhpbmcgZXhjZXB0IGF0IGxlYXN0IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0LCB3aGljaCB3aWxsIGd1YXJhbnRlZSB0b5wgIGtlZXAgdGhlIHNlbmRlciBhY2NvdW50IGFsaXZlICh0cnVlKS48Zm9yY2VfdW5yZXNlcnZlCAEMd2hvvQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50GAEoVDo6QmFsYW5jZQAFDLBVbnJlc2VydmUgc29tZSBiYWxhbmNlIGZyb20gYSB1c2VyIGJ5IGZvcmNlLgBsQ2FuIG9ubHkgYmUgY2FsbGVkIGJ5IFJPT1QuQHVwZ3JhZGVfYWNjb3VudHMEAQx3aG9VAQFEVmVjPFQ6OkFjY291bnRJZD4ABiBwVXBncmFkZSBhIHNwZWNpZmllZCBhY2NvdW50LgB0LSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYC6QLSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgdXBncmFkZWQuAFUBVGhpcyB3aWxsIHdhaXZlIHRoZSB0cmFuc2FjdGlvbiBmZWUgaWYgYXQgbGVhc3QgYWxsIGJ1dCAxMCUgb2YgdGhlIGFjY291bnRzIG5lZWRlZCB0b0EBYmUgdXBncmFkZWQuIChXZSBsZXQgc29tZSBub3QgaGF2ZSB0byBiZSB1cGdyYWRlZCBqdXN0IGluIG9yZGVyIHRvIGFsbG93IGZvciB0aGVYcG9zc2liaWxpdHkgb2YgY2h1cm4pLkRmb3JjZV9zZXRfYmFsYW5jZQgBDHdob70DAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIG5ld19mcmVlxAEoVDo6QmFsYW5jZQAIDKxTZXQgdGhlIHJlZ3VsYXIgYmFsYW5jZSBvZiBhIGdpdmVuIGFjY291bnQuALBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgaXMgYHJvb3RgLmxmb3JjZV9hZGp1c3RfdG90YWxfaXNzdWFuY2UIASRkaXJlY3Rpb27FAwFMQWRqdXN0bWVudERpcmVjdGlvbgABFGRlbHRhxAEoVDo6QmFsYW5jZQAJFLhBZGp1c3QgdGhlIHRvdGFsIGlzc3VhbmNlIGluIGEgc2F0dXJhdGluZyB3YXkuAPxDYW4gb25seSBiZSBjYWxsZWQgYnkgcm9vdCBhbmQgYWx3YXlzIG5lZWRzIGEgcG9zaXRpdmUgYGRlbHRhYC4AJCMgRXhhbXBsZRBidXJuCAEUdmFsdWXEAShUOjpCYWxhbmNlAAEoa2VlcF9hbGl2ZSABEGJvb2wAChz8QnVybiB0aGUgc3BlY2lmaWVkIGxpcXVpZCBmcmVlIGJhbGFuY2UgZnJvbSB0aGUgb3JpZ2luIGFjY291bnQuACUBSWYgdGhlIG9yaWdpbidzIGFjY291bnQgZW5kcyB1cCBiZWxvdyB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCBhcyBhIHJlc3VsdAkBb2YgdGhlIGJ1cm4gYW5kIGBrZWVwX2FsaXZlYCBpcyBmYWxzZSwgdGhlIGFjY291bnQgd2lsbCBiZSByZWFwZWQuAFEBVW5saWtlIHNlbmRpbmcgZnVuZHMgdG8gYSBfYnVybl8gYWRkcmVzcywgd2hpY2ggbWVyZWx5IG1ha2VzIHRoZSBmdW5kcyBpbmFjY2Vzc2libGUsIQF0aGlzIGBidXJuYCBvcGVyYXRpb24gd2lsbCByZWR1Y2UgdG90YWwgaXNzdWFuY2UgYnkgdGhlIGFtb3VudCBfYnVybmVkXy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuvQMMKHNwX3J1bnRpbWUwbXVsdGlhZGRyZXNzME11bHRpQWRkcmVzcwgkQWNjb3VudElkAQAwQWNjb3VudEluZGV4AaECARQISWQEAAABJEFjY291bnRJZAAAABRJbmRleAQAwQMBMEFjY291bnRJbmRleAABAAxSYXcEADgBHFZlYzx1OD4AAgAkQWRkcmVzczMyBAAEASBbdTg7IDMyXQADACRBZGRyZXNzMjAEAMABIFt1ODsgMjBdAAQAAMEDAAAGoQIAxQMMPHBhbGxldF9iYWxhbmNlcxR0eXBlc0xBZGp1c3RtZW50RGlyZWN0aW9uAAEIIEluY3JlYXNlAAAAIERlY3JlYXNlAAEAAMkDDHxpbmRpdl9wYWxsZXRfb3JpZ2luX3Jlc3RyaWN0aW9uGHBhbGxldBBDYWxsBARUAAEELGNsZWFuX3VzYWdlBAEYZW50aXR5GQEBTFQ6OlJlc3RyaWN0ZWRFbnRpdHkAAQhJAUFsbG93IHRvIGNsZWFuIHVzYWdlIGFzc29jaWF0ZWQgd2l0aCBhbiBlbnRpdHkgd2hlbiBpdCBpcyB6ZXJvIG9yIHdoZW4gdGhlcmUgaXMgbm+QbG9uZ2VyIGFueSBhbGxvd2FuY2UgZm9yIHRoZSBvcmlnaW4uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLs0DDDRwYWxsZXRfYXNzZXRzGHBhbGxldBBDYWxsCARUAARJAAGEGGNyZWF0ZQwBCGlkpAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFGFkbWluvQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEsbWluX2JhbGFuY2UYAShUOjpCYWxhbmNlAABM6Elzc3VlIGEgbmV3IGNsYXNzIG9mIGZ1bmdpYmxlIGFzc2V0cyBmcm9tIGEgcHVibGljIG9yaWdpbi4AJQFUaGlzIG5ldyBhc3NldCBjbGFzcyBoYXMgbm8gYXNzZXRzIGluaXRpYWxseSBhbmQgaXRzIG93bmVyIGlzIHRoZSBvcmlnaW4uAGEBVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gdGhlIGNvbmZpZ3VyZWQgYENyZWF0ZU9yaWdpbmAgYW5kIGhhdmUgc3VmZmljaWVudCBmdW5kcyBmcmVlLgC8RnVuZHMgb2Ygc2VuZGVyIGFyZSByZXNlcnZlZCBieSBgQXNzZXREZXBvc2l0YC4ALFBhcmFtZXRlcnM6WQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBuZXcgYXNzZXQuIFRoaXMgbXVzdCBub3QgYmUgY3VycmVudGx5IGluIHVzZSB0byBpZGVudGlmeTEBYW4gZXhpc3RpbmcgYXNzZXQuIElmIFtgTmV4dEFzc2V0SWRgXSBpcyBzZXQsIHRoZW4gdGhpcyBtdXN0IGJlIGVxdWFsIHRvIGl0LlkBLSBgYWRtaW5gOiBUaGUgYWRtaW4gb2YgdGhpcyBjbGFzcyBvZiBhc3NldHMuIFRoZSBhZG1pbiBpcyB0aGUgaW5pdGlhbCBhZGRyZXNzIG9mIGVhY2icbWVtYmVyIG9mIHRoZSBhc3NldCBjbGFzcydzIGFkbWluIHRlYW0uTQEtIGBtaW5fYmFsYW5jZWA6IFRoZSBtaW5pbXVtIGJhbGFuY2Ugb2YgdGhpcyBuZXcgYXNzZXQgdGhhdCBhbnkgc2luZ2xlIGFjY291bnQgbXVzdD0BaGF2ZS4gSWYgYW4gYWNjb3VudCdzIGJhbGFuY2UgaXMgcmVkdWNlZCBiZWxvdyB0aGlzLCB0aGVuIGl0IGNvbGxhcHNlcyB0byB6ZXJvLgCYRW1pdHMgYENyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgMGZvcmNlX2NyZWF0ZRABCGlkpAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVyvQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAE0aXNfc3VmZmljaWVudCABEGJvb2wAASxtaW5fYmFsYW5jZcQBKFQ6OkJhbGFuY2UAAUz4SXNzdWUgYSBuZXcgY2xhc3Mgb2YgZnVuZ2libGUgYXNzZXRzIGZyb20gYSBwcml2aWxlZ2VkIG9yaWdpbi4AtFRoaXMgbmV3IGFzc2V0IGNsYXNzIGhhcyBubyBhc3NldHMgaW5pdGlhbGx5LgCkVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gYEZvcmNlT3JpZ2luYC4AnFVubGlrZSBgY3JlYXRlYCwgbm8gZnVuZHMgYXJlIHJlc2VydmVkLgBZAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIG5ldyBhc3NldC4gVGhpcyBtdXN0IG5vdCBiZSBjdXJyZW50bHkgaW4gdXNlIHRvIGlkZW50aWZ5MQFhbiBleGlzdGluZyBhc3NldC4gSWYgW2BOZXh0QXNzZXRJZGBdIGlzIHNldCwgdGhlbiB0aGlzIG11c3QgYmUgZXF1YWwgdG8gaXQuWQEtIGBvd25lcmA6IFRoZSBvd25lciBvZiB0aGlzIGNsYXNzIG9mIGFzc2V0cy4gVGhlIG93bmVyIGhhcyBmdWxsIHN1cGVydXNlciBwZXJtaXNzaW9ucyUBb3ZlciB0aGlzIGFzc2V0LCBidXQgbWF5IGxhdGVyIGNoYW5nZSBhbmQgY29uZmlndXJlIHRoZSBwZXJtaXNzaW9ucyB1c2luZ5BgdHJhbnNmZXJfb3duZXJzaGlwYCBhbmQgYHNldF90ZWFtYC5NAS0gYG1pbl9iYWxhbmNlYDogVGhlIG1pbmltdW0gYmFsYW5jZSBvZiB0aGlzIG5ldyBhc3NldCB0aGF0IGFueSBzaW5nbGUgYWNjb3VudCBtdXN0PQFoYXZlLiBJZiBhbiBhY2NvdW50J3MgYmFsYW5jZSBpcyByZWR1Y2VkIGJlbG93IHRoaXMsIHRoZW4gaXQgY29sbGFwc2VzIHRvIHplcm8uAKxFbWl0cyBgRm9yY2VDcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADhXZWlnaHQ6IGBPKDEpYDRzdGFydF9kZXN0cm95BAEIaWSkAUxUOjpBc3NldElkUGFyYW1ldGVyAAIw3FN0YXJ0IHRoZSBwcm9jZXNzIG9mIGRlc3Ryb3lpbmcgYSBmdW5naWJsZSBhc3NldCBjbGFzcy4AWQFgc3RhcnRfZGVzdHJveWAgaXMgdGhlIGZpcnN0IGluIGEgc2VyaWVzIG9mIGV4dHJpbnNpY3MgdGhhdCBzaG91bGQgYmUgY2FsbGVkLCB0byBhbGxvd3hkZXN0cnVjdGlvbiBvZiBhbiBhc3NldCBjbGFzcy4AUQFUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byBgRm9yY2VPcmlnaW5gIG9yIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlIGFzc2V0J3MgYG93bmVyYC4ATQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBkZXN0cm95ZWQuIFRoaXMgbXVzdCBpZGVudGlmeSBhbiBleGlzdGluZyAgIGFzc2V0LgBJAUl0IHdpbGwgZmFpbCB3aXRoIGVpdGhlciBbYEVycm9yOjpDb250YWluc0hvbGRzYF0gb3IgW2BFcnJvcjo6Q29udGFpbnNGcmVlemVzYF0gaWa4YW4gYWNjb3VudCBjb250YWlucyBob2xkcyBvciBmcmVlemVzIGluIHBsYWNlLkBkZXN0cm95X2FjY291bnRzBAEIaWSkAUxUOjpBc3NldElkUGFyYW1ldGVyAAMwzERlc3Ryb3kgYWxsIGFjY291bnRzIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIGFzc2V0LgBdAWBkZXN0cm95X2FjY291bnRzYCBzaG91bGQgb25seSBiZSBjYWxsZWQgYWZ0ZXIgYHN0YXJ0X2Rlc3Ryb3lgIGhhcyBiZWVuIGNhbGxlZCwgYW5kIHRoZYRhc3NldCBpcyBpbiBhIGBEZXN0cm95aW5nYCBzdGF0ZS4AXQFEdWUgdG8gd2VpZ2h0IHJlc3RyaWN0aW9ucywgdGhpcyBmdW5jdGlvbiBtYXkgbmVlZCB0byBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8gZnVsbHkxAWRlc3Ryb3kgYWxsIGFjY291bnRzLiBJdCB3aWxsIGRlc3Ryb3kgYFJlbW92ZUl0ZW1zTGltaXRgIGFjY291bnRzIGF0IGEgdGltZS4ATQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBkZXN0cm95ZWQuIFRoaXMgbXVzdCBpZGVudGlmeSBhbiBleGlzdGluZyAgIGFzc2V0LgDURWFjaCBjYWxsIGVtaXRzIHRoZSBgRXZlbnQ6OkRlc3Ryb3llZEFjY291bnRzYCBldmVudC5EZGVzdHJveV9hcHByb3ZhbHMEAQhpZKQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIABDBhAURlc3Ryb3kgYWxsIGFwcHJvdmFscyBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBhc3NldCB1cCB0byB0aGUgbWF4IChUOjpSZW1vdmVJdGVtc0xpbWl0KS4AYQFgZGVzdHJveV9hcHByb3ZhbHNgIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBhZnRlciBgc3RhcnRfZGVzdHJveWAgaGFzIGJlZW4gY2FsbGVkLCBhbmQgdGhlhGFzc2V0IGlzIGluIGEgYERlc3Ryb3lpbmdgIHN0YXRlLgBdAUR1ZSB0byB3ZWlnaHQgcmVzdHJpY3Rpb25zLCB0aGlzIGZ1bmN0aW9uIG1heSBuZWVkIHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB0byBmdWxseTkBZGVzdHJveSBhbGwgYXBwcm92YWxzLiBJdCB3aWxsIGRlc3Ryb3kgYFJlbW92ZUl0ZW1zTGltaXRgIGFwcHJvdmFscyBhdCBhIHRpbWUuAE0BLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZGVzdHJveWVkLiBUaGlzIG11c3QgaWRlbnRpZnkgYW4gZXhpc3RpbmcgICBhc3NldC4A2EVhY2ggY2FsbCBlbWl0cyB0aGUgYEV2ZW50OjpEZXN0cm95ZWRBcHByb3ZhbHNgIGV2ZW50LjhmaW5pc2hfZGVzdHJveQQBCGlkpAFMVDo6QXNzZXRJZFBhcmFtZXRlcgAFKMRDb21wbGV0ZSBkZXN0cm95aW5nIGFzc2V0IGFuZCB1bnJlc2VydmUgY3VycmVuY3kuAFUBYGZpbmlzaF9kZXN0cm95YCBzaG91bGQgb25seSBiZSBjYWxsZWQgYWZ0ZXIgYHN0YXJ0X2Rlc3Ryb3lgIGhhcyBiZWVuIGNhbGxlZCwgYW5kIHRoZVkBYXNzZXQgaXMgaW4gYSBgRGVzdHJveWluZ2Agc3RhdGUuIEFsbCBhY2NvdW50cyBvciBhcHByb3ZhbHMgc2hvdWxkIGJlIGRlc3Ryb3llZCBiZWZvcmUUaGFuZC4ATQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBkZXN0cm95ZWQuIFRoaXMgbXVzdCBpZGVudGlmeSBhbiBleGlzdGluZyAgIGFzc2V0LgDgRWFjaCBzdWNjZXNzZnVsIGNhbGwgZW1pdHMgdGhlIGBFdmVudDo6RGVzdHJveWVkYCBldmVudC4QbWludAwBCGlkpAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABLGJlbmVmaWNpYXJ5vQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50xAEoVDo6QmFsYW5jZQAGMIhNaW50IGFzc2V0cyBvZiBhIHBhcnRpY3VsYXIgY2xhc3MuADkBVGhlIG9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBJc3N1ZXIgb2YgdGhlIGFzc2V0IGBpZGAuAPwtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBoYXZlIHNvbWUgYW1vdW50IG1pbnRlZC4NAS0gYGJlbmVmaWNpYXJ5YDogVGhlIGFjY291bnQgdG8gYmUgY3JlZGl0ZWQgd2l0aCB0aGUgbWludGVkIGFzc2V0cy7ELSBgYW1vdW50YDogVGhlIGFtb3VudCBvZiB0aGUgYXNzZXQgdG8gYmUgbWludGVkLgCURW1pdHMgYElzc3VlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4V2VpZ2h0OiBgTygxKWBVAU1vZGVzOiBQcmUtZXhpc3RpbmcgYmFsYW5jZSBvZiBgYmVuZWZpY2lhcnlgOyBBY2NvdW50IHByZS1leGlzdGVuY2Ugb2YgYGJlbmVmaWNpYXJ5YC4QYnVybgwBCGlkpAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABDHdob70DAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudMQBKFQ6OkJhbGFuY2UABzxFAVJlZHVjZSB0aGUgYmFsYW5jZSBvZiBgd2hvYCBieSBhcyBtdWNoIGFzIHBvc3NpYmxlIHVwIHRvIGBhbW91bnRgIGFzc2V0cyBvZiBgaWRgLgA1AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE1hbmFnZXIgb2YgdGhlIGFzc2V0IGBpZGAuANBCYWlscyB3aXRoIGBOb0FjY291bnRgIGlmIHRoZSBgd2hvYCBpcyBhbHJlYWR5IGRlYWQuAPwtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBoYXZlIHNvbWUgYW1vdW50IGJ1cm5lZC6gLSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgZGViaXRlZCBmcm9tLikBLSBgYW1vdW50YDogVGhlIG1heGltdW0gYW1vdW50IGJ5IHdoaWNoIGB3aG9gJ3MgYmFsYW5jZSBzaG91bGQgYmUgcmVkdWNlZC4AUQFFbWl0cyBgQnVybmVkYCB3aXRoIHRoZSBhY3R1YWwgYW1vdW50IGJ1cm5lZC4gSWYgdGhpcyB0YWtlcyB0aGUgYmFsYW5jZSB0byBiZWxvdyB0aGU5AW1pbmltdW0gZm9yIHRoZSBhc3NldCwgdGhlbiB0aGUgYW1vdW50IGJ1cm5lZCBpcyBpbmNyZWFzZWQgdG8gdGFrZSBpdCB0byB6ZXJvLgA4V2VpZ2h0OiBgTygxKWAJAU1vZGVzOiBQb3N0LWV4aXN0ZW5jZSBvZiBgd2hvYDsgUHJlICYgcG9zdCBab21iaWUtc3RhdHVzIG9mIGB3aG9gLiB0cmFuc2ZlcgwBCGlkpAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABGHRhcmdldL0DAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudMQBKFQ6OkJhbGFuY2UACEjQTW92ZSBzb21lIGFzc2V0cyBmcm9tIHRoZSBzZW5kZXIgYWNjb3VudCB0byBhbm90aGVyLgBYT3JpZ2luIG11c3QgYmUgU2lnbmVkLgARAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGhhdmUgc29tZSBhbW91bnQgdHJhbnNmZXJyZWQunC0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHRvIGJlIGNyZWRpdGVkLlEBLSBgYW1vdW50YDogVGhlIGFtb3VudCBieSB3aGljaCB0aGUgc2VuZGVyJ3MgYmFsYW5jZSBvZiBhc3NldHMgc2hvdWxkIGJlIHJlZHVjZWQgYW5kYQFgdGFyZ2V0YCdzIGJhbGFuY2UgaW5jcmVhc2VkLiBUaGUgYW1vdW50IGFjdHVhbGx5IHRyYW5zZmVycmVkIG1heSBiZSBzbGlnaHRseSBncmVhdGVyIGluXQF0aGUgY2FzZSB0aGF0IHRoZSB0cmFuc2ZlciB3b3VsZCBvdGhlcndpc2UgdGFrZSB0aGUgc2VuZGVyIGJhbGFuY2UgYWJvdmUgemVybyBidXQgYmVsb3e8dGhlIG1pbmltdW0gYmFsYW5jZS4gTXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4AYQFFbWl0cyBgVHJhbnNmZXJyZWRgIHdpdGggdGhlIGFjdHVhbCBhbW91bnQgdHJhbnNmZXJyZWQuIElmIHRoaXMgdGFrZXMgdGhlIHNvdXJjZSBiYWxhbmNlXQF0byBiZWxvdyB0aGUgbWluaW11bSBmb3IgdGhlIGFzc2V0LCB0aGVuIHRoZSBhbW91bnQgdHJhbnNmZXJyZWQgaXMgaW5jcmVhc2VkIHRvIHRha2UgaXQgdG8gemVyby4AOFdlaWdodDogYE8oMSlgUQFNb2RlczogUHJlLWV4aXN0ZW5jZSBvZiBgdGFyZ2V0YDsgUG9zdC1leGlzdGVuY2Ugb2Ygc2VuZGVyOyBBY2NvdW50IHByZS1leGlzdGVuY2Ugb2YkYHRhcmdldGAuTHRyYW5zZmVyX2tlZXBfYWxpdmUMAQhpZKQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARh0YXJnZXS9AwFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnTEAShUOjpCYWxhbmNlAAlIWQFNb3ZlIHNvbWUgYXNzZXRzIGZyb20gdGhlIHNlbmRlciBhY2NvdW50IHRvIGFub3RoZXIsIGtlZXBpbmcgdGhlIHNlbmRlciBhY2NvdW50IGFsaXZlLgBYT3JpZ2luIG11c3QgYmUgU2lnbmVkLgARAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGhhdmUgc29tZSBhbW91bnQgdHJhbnNmZXJyZWQunC0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHRvIGJlIGNyZWRpdGVkLlEBLSBgYW1vdW50YDogVGhlIGFtb3VudCBieSB3aGljaCB0aGUgc2VuZGVyJ3MgYmFsYW5jZSBvZiBhc3NldHMgc2hvdWxkIGJlIHJlZHVjZWQgYW5kYQFgdGFyZ2V0YCdzIGJhbGFuY2UgaW5jcmVhc2VkLiBUaGUgYW1vdW50IGFjdHVhbGx5IHRyYW5zZmVycmVkIG1heSBiZSBzbGlnaHRseSBncmVhdGVyIGluXQF0aGUgY2FzZSB0aGF0IHRoZSB0cmFuc2ZlciB3b3VsZCBvdGhlcndpc2UgdGFrZSB0aGUgc2VuZGVyIGJhbGFuY2UgYWJvdmUgemVybyBidXQgYmVsb3e8dGhlIG1pbmltdW0gYmFsYW5jZS4gTXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4AYQFFbWl0cyBgVHJhbnNmZXJyZWRgIHdpdGggdGhlIGFjdHVhbCBhbW91bnQgdHJhbnNmZXJyZWQuIElmIHRoaXMgdGFrZXMgdGhlIHNvdXJjZSBiYWxhbmNlXQF0byBiZWxvdyB0aGUgbWluaW11bSBmb3IgdGhlIGFzc2V0LCB0aGVuIHRoZSBhbW91bnQgdHJhbnNmZXJyZWQgaXMgaW5jcmVhc2VkIHRvIHRha2UgaXQgdG8gemVyby4AOFdlaWdodDogYE8oMSlgUQFNb2RlczogUHJlLWV4aXN0ZW5jZSBvZiBgdGFyZ2V0YDsgUG9zdC1leGlzdGVuY2Ugb2Ygc2VuZGVyOyBBY2NvdW50IHByZS1leGlzdGVuY2Ugb2YkYHRhcmdldGAuOGZvcmNlX3RyYW5zZmVyEAEIaWSkAUxUOjpBc3NldElkUGFyYW1ldGVyAAEYc291cmNlvQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEQZGVzdL0DAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudMQBKFQ6OkJhbGFuY2UACky0TW92ZSBzb21lIGFzc2V0cyBmcm9tIG9uZSBhY2NvdW50IHRvIGFub3RoZXIuAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGFzc2V0IGBpZGAuABEBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCB0cmFuc2ZlcnJlZC6YLSBgc291cmNlYDogVGhlIGFjY291bnQgdG8gYmUgZGViaXRlZC6ULSBgZGVzdGA6IFRoZSBhY2NvdW50IHRvIGJlIGNyZWRpdGVkLlkBLSBgYW1vdW50YDogVGhlIGFtb3VudCBieSB3aGljaCB0aGUgYHNvdXJjZWAncyBiYWxhbmNlIG9mIGFzc2V0cyBzaG91bGQgYmUgcmVkdWNlZCBhbmRZAWBkZXN0YCdzIGJhbGFuY2UgaW5jcmVhc2VkLiBUaGUgYW1vdW50IGFjdHVhbGx5IHRyYW5zZmVycmVkIG1heSBiZSBzbGlnaHRseSBncmVhdGVyIGluTQF0aGUgY2FzZSB0aGF0IHRoZSB0cmFuc2ZlciB3b3VsZCBvdGhlcndpc2UgdGFrZSB0aGUgYHNvdXJjZWAgYmFsYW5jZSBhYm92ZSB6ZXJvIGJ1dNRiZWxvdyB0aGUgbWluaW11bSBiYWxhbmNlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLgBhAUVtaXRzIGBUcmFuc2ZlcnJlZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCB0cmFuc2ZlcnJlZC4gSWYgdGhpcyB0YWtlcyB0aGUgc291cmNlIGJhbGFuY2VdAXRvIGJlbG93IHRoZSBtaW5pbXVtIGZvciB0aGUgYXNzZXQsIHRoZW4gdGhlIGFtb3VudCB0cmFuc2ZlcnJlZCBpcyBpbmNyZWFzZWQgdG8gdGFrZSBpdCB0byB6ZXJvLgA4V2VpZ2h0OiBgTygxKWBRAU1vZGVzOiBQcmUtZXhpc3RlbmNlIG9mIGBkZXN0YDsgUG9zdC1leGlzdGVuY2Ugb2YgYHNvdXJjZWA7IEFjY291bnQgcHJlLWV4aXN0ZW5jZSBvZhxgZGVzdGAuGGZyZWV6ZQgBCGlkpAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABDHdob70DAVBBY2NvdW50SWRMb29rdXBPZjxUPgALMFUBRGlzYWxsb3cgZnVydGhlciB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIG9mIGFuIGFzc2V0IGBpZGAgZnJvbSBhbiBhY2NvdW50IGB3aG9gLiBgd2hvYE0BbXVzdCBhbHJlYWR5IGV4aXN0IGFzIGFuIGVudHJ5IGluIGBBY2NvdW50YHMgb2YgdGhlIGFzc2V0LiBJZiB5b3Ugd2FudCB0byBmcmVlemUgYW70YWNjb3VudCB0aGF0IGRvZXMgbm90IGhhdmUgYW4gZW50cnksIHVzZSBgdG91Y2hfb3RoZXJgIGZpcnN0LgA1AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEZyZWV6ZXIgb2YgdGhlIGFzc2V0IGBpZGAuAMQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBmcm96ZW4uiC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIGZyb3plbi4APEVtaXRzIGBGcm96ZW5gLgA4V2VpZ2h0OiBgTygxKWAQdGhhdwgBCGlkpAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABDHdob70DAVBBY2NvdW50SWRMb29rdXBPZjxUPgAMKOhBbGxvdyB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIHRvIGFuZCBmcm9tIGFuIGFjY291bnQgYWdhaW4uAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGFzc2V0IGBpZGAuAMQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBmcm96ZW4ukC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIHVuZnJvemVuLgA8RW1pdHMgYFRoYXdlZGAuADhXZWlnaHQ6IGBPKDEpYDBmcmVlemVfYXNzZXQEAQhpZKQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIADSTwRGlzYWxsb3cgZnVydGhlciB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIGZvciB0aGUgYXNzZXQgY2xhc3MuADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgRnJlZXplciBvZiB0aGUgYXNzZXQgYGlkYC4AxC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGZyb3plbi4APEVtaXRzIGBGcm96ZW5gLgA4V2VpZ2h0OiBgTygxKWAodGhhd19hc3NldAQBCGlkpAFMVDo6QXNzZXRJZFBhcmFtZXRlcgAOJMRBbGxvdyB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIGZvciB0aGUgYXNzZXQgYWdhaW4uAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGFzc2V0IGBpZGAuAMQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSB0aGF3ZWQuADxFbWl0cyBgVGhhd2VkYC4AOFdlaWdodDogYE8oMSlgSHRyYW5zZmVyX293bmVyc2hpcAgBCGlkpAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVyvQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AA8odENoYW5nZSB0aGUgT3duZXIgb2YgYW4gYXNzZXQuAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlIGFzc2V0IGBpZGAuAJAtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldC6cLSBgb3duZXJgOiBUaGUgbmV3IE93bmVyIG9mIHRoaXMgYXNzZXQuAFRFbWl0cyBgT3duZXJDaGFuZ2VkYC4AOFdlaWdodDogYE8oMSlgIHNldF90ZWFtEAEIaWSkAUxUOjpBc3NldElkUGFyYW1ldGVyAAEYaXNzdWVyvQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUYWRtaW69AwFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxmcmVlemVyvQMBUEFjY291bnRJZExvb2t1cE9mPFQ+ABAwxENoYW5nZSB0aGUgSXNzdWVyLCBBZG1pbiBhbmQgRnJlZXplciBvZiBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4AxC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGZyb3plbi6kLSBgaXNzdWVyYDogVGhlIG5ldyBJc3N1ZXIgb2YgdGhpcyBhc3NldC6cLSBgYWRtaW5gOiBUaGUgbmV3IEFkbWluIG9mIHRoaXMgYXNzZXQurC0gYGZyZWV6ZXJgOiBUaGUgbmV3IEZyZWV6ZXIgb2YgdGhpcyBhc3NldC4AUEVtaXRzIGBUZWFtQ2hhbmdlZGAuADhXZWlnaHQ6IGBPKDEpYDBzZXRfbWV0YWRhdGEQAQhpZKQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARBuYW1lOAEcVmVjPHU4PgABGHN5bWJvbDgBHFZlYzx1OD4AASBkZWNpbWFscwgBCHU4ABFAeFNldCB0aGUgbWV0YWRhdGEgZm9yIGFuIGFzc2V0LgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZSBhc3NldCBgaWRgLgDYRnVuZHMgb2Ygc2VuZGVyIGFyZSByZXNlcnZlZCBhY2NvcmRpbmcgdG8gdGhlIGZvcm11bGE6UQFgTWV0YWRhdGFEZXBvc2l0QmFzZSArIE1ldGFkYXRhRGVwb3NpdFBlckJ5dGUgKiAobmFtZS5sZW4gKyBzeW1ib2wubGVuKWAgdGFraW5nIGludG+MYWNjb3VudCBhbnkgYWxyZWFkeSByZXNlcnZlZCBmdW5kcy4AuC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIHVwZGF0ZS5NAS0gYG5hbWVgOiBUaGUgdXNlciBmcmllbmRseSBuYW1lIG9mIHRoaXMgYXNzZXQuIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuTQEtIGBzeW1ib2xgOiBUaGUgZXhjaGFuZ2Ugc3ltYm9sIGZvciB0aGlzIGFzc2V0LiBMaW1pdGVkIGluIGxlbmd0aCBieSBgU3RyaW5nTGltaXRgLi0BLSBgZGVjaW1hbHNgOiBUaGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRoaXMgYXNzZXQgdXNlcyB0byByZXByZXNlbnQgb25lIHVuaXQuAFBFbWl0cyBgTWV0YWRhdGFTZXRgLgA4V2VpZ2h0OiBgTygxKWA4Y2xlYXJfbWV0YWRhdGEEAQhpZKQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAEiyAQ2xlYXIgdGhlIG1ldGFkYXRhIGZvciBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4ApEFueSBkZXBvc2l0IGlzIGZyZWVkIGZvciB0aGUgYXNzZXQgb3duZXIuALQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBjbGVhci4AYEVtaXRzIGBNZXRhZGF0YUNsZWFyZWRgLgA4V2VpZ2h0OiBgTygxKWBIZm9yY2Vfc2V0X21ldGFkYXRhFAEIaWSkAUxUOjpBc3NldElkUGFyYW1ldGVyAAEQbmFtZTgBHFZlYzx1OD4AARhzeW1ib2w4ARxWZWM8dTg+AAEgZGVjaW1hbHMIAQh1OAABJGlzX2Zyb3plbiABEGJvb2wAEzi4Rm9yY2UgdGhlIG1ldGFkYXRhIGZvciBhbiBhc3NldCB0byBzb21lIHZhbHVlLgBsT3JpZ2luIG11c3QgYmUgRm9yY2VPcmlnaW4uAGhBbnkgZGVwb3NpdCBpcyBsZWZ0IGFsb25lLgC4LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gdXBkYXRlLk0BLSBgbmFtZWA6IFRoZSB1c2VyIGZyaWVuZGx5IG5hbWUgb2YgdGhpcyBhc3NldC4gTGltaXRlZCBpbiBsZW5ndGggYnkgYFN0cmluZ0xpbWl0YC5NAS0gYHN5bWJvbGA6IFRoZSBleGNoYW5nZSBzeW1ib2wgZm9yIHRoaXMgYXNzZXQuIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuLQEtIGBkZWNpbWFsc2A6IFRoZSBudW1iZXIgb2YgZGVjaW1hbHMgdGhpcyBhc3NldCB1c2VzIHRvIHJlcHJlc2VudCBvbmUgdW5pdC4AUEVtaXRzIGBNZXRhZGF0YVNldGAuAFEBV2VpZ2h0OiBgTyhOICsgUylgIHdoZXJlIE4gYW5kIFMgYXJlIHRoZSBsZW5ndGggb2YgdGhlIG5hbWUgYW5kIHN5bWJvbCByZXNwZWN0aXZlbHkuUGZvcmNlX2NsZWFyX21ldGFkYXRhBAEIaWSkAUxUOjpBc3NldElkUGFyYW1ldGVyABQsgENsZWFyIHRoZSBtZXRhZGF0YSBmb3IgYW4gYXNzZXQuAGxPcmlnaW4gbXVzdCBiZSBGb3JjZU9yaWdpbi4AYEFueSBkZXBvc2l0IGlzIHJldHVybmVkLgC0LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gY2xlYXIuAGBFbWl0cyBgTWV0YWRhdGFDbGVhcmVkYC4AOFdlaWdodDogYE8oMSlgSGZvcmNlX2Fzc2V0X3N0YXR1cyABCGlkpAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVyvQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYaXNzdWVyvQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUYWRtaW69AwFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxmcmVlemVyvQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEsbWluX2JhbGFuY2XEAShUOjpCYWxhbmNlAAE0aXNfc3VmZmljaWVudCABEGJvb2wAASRpc19mcm96ZW4gARBib29sABVYmEFsdGVyIHRoZSBhdHRyaWJ1dGVzIG9mIGEgZ2l2ZW4gYXNzZXQuAHRPcmlnaW4gbXVzdCBiZSBgRm9yY2VPcmlnaW5gLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQunC0gYG93bmVyYDogVGhlIG5ldyBPd25lciBvZiB0aGlzIGFzc2V0LqQtIGBpc3N1ZXJgOiBUaGUgbmV3IElzc3VlciBvZiB0aGlzIGFzc2V0LpwtIGBhZG1pbmA6IFRoZSBuZXcgQWRtaW4gb2YgdGhpcyBhc3NldC6sLSBgZnJlZXplcmA6IFRoZSBuZXcgRnJlZXplciBvZiB0aGlzIGFzc2V0Lk0BLSBgbWluX2JhbGFuY2VgOiBUaGUgbWluaW11bSBiYWxhbmNlIG9mIHRoaXMgbmV3IGFzc2V0IHRoYXQgYW55IHNpbmdsZSBhY2NvdW50IG11c3Q9AWhhdmUuIElmIGFuIGFjY291bnQncyBiYWxhbmNlIGlzIHJlZHVjZWQgYmVsb3cgdGhpcywgdGhlbiBpdCBjb2xsYXBzZXMgdG8gemVyby5RAS0gYGlzX3N1ZmZpY2llbnRgOiBXaGV0aGVyIGEgbm9uLXplcm8gYmFsYW5jZSBvZiB0aGlzIGFzc2V0IGlzIGRlcG9zaXQgb2Ygc3VmZmljaWVudE0BdmFsdWUgdG8gYWNjb3VudCBmb3IgdGhlIHN0YXRlIGJsb2F0IGFzc29jaWF0ZWQgd2l0aCBpdHMgYmFsYW5jZSBzdG9yYWdlLiBJZiBzZXQgdG9VAWB0cnVlYCwgdGhlbiBub24temVybyBiYWxhbmNlcyBtYXkgYmUgc3RvcmVkIHdpdGhvdXQgYSBgY29uc3VtZXJgIHJlZmVyZW5jZSAoYW5kIHRodXNNAWFuIEVEIGluIHRoZSBCYWxhbmNlcyBwYWxsZXQgb3Igd2hhdGV2ZXIgZWxzZSBpcyB1c2VkIHRvIGNvbnRyb2wgdXNlci1hY2NvdW50IHN0YXRlIGdyb3d0aCkuPQEtIGBpc19mcm96ZW5gOiBXaGV0aGVyIHRoaXMgYXNzZXQgY2xhc3MgaXMgZnJvemVuIGV4Y2VwdCBmb3IgcGVybWlzc2lvbmVkL2FkbWluNGluc3RydWN0aW9ucy4A6EVtaXRzIGBBc3NldFN0YXR1c0NoYW5nZWRgIHdpdGggdGhlIGlkZW50aXR5IG9mIHRoZSBhc3NldC4AOFdlaWdodDogYE8oMSlgQGFwcHJvdmVfdHJhbnNmZXIMAQhpZKQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASBkZWxlZ2F0Zb0DAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudMQBKFQ6OkJhbGFuY2UAFlAtAUFwcHJvdmUgYW4gYW1vdW50IG9mIGFzc2V0IGZvciB0cmFuc2ZlciBieSBhIGRlbGVnYXRlZCB0aGlyZC1wYXJ0eSBhY2NvdW50LgBYT3JpZ2luIG11c3QgYmUgU2lnbmVkLgBNAUVuc3VyZXMgdGhhdCBgQXBwcm92YWxEZXBvc2l0YCB3b3J0aCBvZiBgQ3VycmVuY3lgIGlzIHJlc2VydmVkIGZyb20gc2lnbmluZyBhY2NvdW50VQFmb3IgdGhlIHB1cnBvc2Ugb2YgaG9sZGluZyB0aGUgYXBwcm92YWwuIElmIHNvbWUgbm9uLXplcm8gYW1vdW50IG9mIGFzc2V0cyBpcyBhbHJlYWR5SQFhcHByb3ZlZCBmcm9tIHNpZ25pbmcgYWNjb3VudCB0byBgZGVsZWdhdGVgLCB0aGVuIGl0IGlzIHRvcHBlZCB1cCBvciB1bnJlc2VydmVkIHRvVG1lZXQgdGhlIHJpZ2h0IHZhbHVlLgBFAU5PVEU6IFRoZSBzaWduaW5nIGFjY291bnQgZG9lcyBub3QgbmVlZCB0byBvd24gYGFtb3VudGAgb2YgYXNzZXRzIGF0IHRoZSBwb2ludCBvZkRtYWtpbmcgdGhpcyBjYWxsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuDQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IHRvIGRlbGVnYXRlIHBlcm1pc3Npb24gdG8gdHJhbnNmZXIgYXNzZXQuSQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IG9mIGFzc2V0IHRoYXQgbWF5IGJlIHRyYW5zZmVycmVkIGJ5IGBkZWxlZ2F0ZWAuIElmIHRoZXJlIGlz4GFscmVhZHkgYW4gYXBwcm92YWwgaW4gcGxhY2UsIHRoZW4gdGhpcyBhY3RzIGFkZGl0aXZlbHkuAJBFbWl0cyBgQXBwcm92ZWRUcmFuc2ZlcmAgb24gc3VjY2Vzcy4AOFdlaWdodDogYE8oMSlgPGNhbmNlbF9hcHByb3ZhbAgBCGlkpAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABIGRlbGVnYXRlvQMBUEFjY291bnRJZExvb2t1cE9mPFQ+ABc0SQFDYW5jZWwgYWxsIG9mIHNvbWUgYXNzZXQgYXBwcm92ZWQgZm9yIGRlbGVnYXRlZCB0cmFuc2ZlciBieSBhIHRoaXJkLXBhcnR5IGFjY291bnQuAD0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGVyZSBtdXN0IGJlIGFuIGFwcHJvdmFsIGluIHBsYWNlIGJldHdlZW4gc2lnbmVyIGFuZCxgZGVsZWdhdGVgLgBJAVVucmVzZXJ2ZXMgYW55IGRlcG9zaXQgcHJldmlvdXNseSByZXNlcnZlZCBieSBgYXBwcm92ZV90cmFuc2ZlcmAgZm9yIHRoZSBhcHByb3ZhbC4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LgUBLSBgZGVsZWdhdGVgOiBUaGUgYWNjb3VudCBkZWxlZ2F0ZWQgcGVybWlzc2lvbiB0byB0cmFuc2ZlciBhc3NldC4AlEVtaXRzIGBBcHByb3ZhbENhbmNlbGxlZGAgb24gc3VjY2Vzcy4AOFdlaWdodDogYE8oMSlgVGZvcmNlX2NhbmNlbF9hcHByb3ZhbAwBCGlkpAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVyvQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEgZGVsZWdhdGW9AwFQQWNjb3VudElkTG9va3VwT2Y8VD4AGDRJAUNhbmNlbCBhbGwgb2Ygc29tZSBhc3NldCBhcHByb3ZlZCBmb3IgZGVsZWdhdGVkIHRyYW5zZmVyIGJ5IGEgdGhpcmQtcGFydHkgYWNjb3VudC4ASQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgRm9yY2VPcmlnaW4gb3IgU2lnbmVkIG9yaWdpbiB3aXRoIHRoZSBzaWduZXIgYmVpbmcgdGhlIEFkbWluaGFjY291bnQgb2YgdGhlIGFzc2V0IGBpZGAuAEkBVW5yZXNlcnZlcyBhbnkgZGVwb3NpdCBwcmV2aW91c2x5IHJlc2VydmVkIGJ5IGBhcHByb3ZlX3RyYW5zZmVyYCBmb3IgdGhlIGFwcHJvdmFsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuBQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IGRlbGVnYXRlZCBwZXJtaXNzaW9uIHRvIHRyYW5zZmVyIGFzc2V0LgCURW1pdHMgYEFwcHJvdmFsQ2FuY2VsbGVkYCBvbiBzdWNjZXNzLgA4V2VpZ2h0OiBgTygxKWBEdHJhbnNmZXJfYXBwcm92ZWQQAQhpZKQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARRvd25lcr0DAVBBY2NvdW50SWRMb29rdXBPZjxUPgABLGRlc3RpbmF0aW9uvQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50xAEoVDo6QmFsYW5jZQAZSE0BVHJhbnNmZXIgc29tZSBhc3NldCBiYWxhbmNlIGZyb20gYSBwcmV2aW91c2x5IGRlbGVnYXRlZCBhY2NvdW50IHRvIHNvbWUgdGhpcmQtcGFydHkgYWNjb3VudC4ASQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZXJlIG11c3QgYmUgYW4gYXBwcm92YWwgaW4gcGxhY2UgYnkgdGhlIGBvd25lcmAgdG8gdGhlHHNpZ25lci4AWQFJZiB0aGUgZW50aXJlIGFtb3VudCBhcHByb3ZlZCBmb3IgdHJhbnNmZXIgaXMgdHJhbnNmZXJyZWQsIHRoZW4gYW55IGRlcG9zaXQgcHJldmlvdXNsebRyZXNlcnZlZCBieSBgYXBwcm92ZV90cmFuc2ZlcmAgaXMgdW5yZXNlcnZlZC4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LmEBLSBgb3duZXJgOiBUaGUgYWNjb3VudCB3aGljaCBwcmV2aW91c2x5IGFwcHJvdmVkIGZvciBhIHRyYW5zZmVyIG9mIGF0IGxlYXN0IGBhbW91bnRgIGFuZLxmcm9tIHdoaWNoIHRoZSBhc3NldCBiYWxhbmNlIHdpbGwgYmUgd2l0aGRyYXduLmEBLSBgZGVzdGluYXRpb25gOiBUaGUgYWNjb3VudCB0byB3aGljaCB0aGUgYXNzZXQgYmFsYW5jZSBvZiBgYW1vdW50YCB3aWxsIGJlIHRyYW5zZmVycmVkLrQtIGBhbW91bnRgOiBUaGUgYW1vdW50IG9mIGFzc2V0cyB0byB0cmFuc2Zlci4AnEVtaXRzIGBUcmFuc2ZlcnJlZEFwcHJvdmVkYCBvbiBzdWNjZXNzLgA4V2VpZ2h0OiBgTygxKWAUdG91Y2gEAQhpZKQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAGiTAQ3JlYXRlIGFuIGFzc2V0IGFjY291bnQgZm9yIG5vbi1wcm92aWRlciBhc3NldHMuAMBBIGRlcG9zaXQgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBzaWduZXIgYWNjb3VudC4AXQEtIGBvcmlnaW5gOiBNdXN0IGJlIFNpZ25lZDsgdGhlIHNpZ25lciBhY2NvdW50IG11c3QgaGF2ZSBzdWZmaWNpZW50IGZ1bmRzIGZvciBhIGRlcG9zaXQ4ICB0byBiZSB0YWtlbi4JAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB0aGUgYWNjb3VudCB0byBiZSBjcmVhdGVkLgCYRW1pdHMgYFRvdWNoZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4YcmVmdW5kCAEIaWSkAUxUOjpBc3NldElkUGFyYW1ldGVyAAEoYWxsb3dfYnVybiABEGJvb2wAGzRZAVJldHVybiB0aGUgZGVwb3NpdCAoaWYgYW55KSBvZiBhbiBhc3NldCBhY2NvdW50IG9yIGEgY29uc3VtZXIgcmVmZXJlbmNlIChpZiBhbnkpIG9mIGFuIGFjY291bnQuAGhUaGUgb3JpZ2luIG11c3QgYmUgU2lnbmVkLgA9AS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB3aGljaCB0aGUgY2FsbGVyIHdvdWxkIGxpa2UgdGhlIGRlcG9zaXQsICByZWZ1bmRlZC5dAS0gYGFsbG93X2J1cm5gOiBJZiBgdHJ1ZWAgdGhlbiBhc3NldHMgbWF5IGJlIGRlc3Ryb3llZCBpbiBvcmRlciB0byBjb21wbGV0ZSB0aGUgcmVmdW5kLgBJAUl0IHdpbGwgZmFpbCB3aXRoIGVpdGhlciBbYEVycm9yOjpDb250YWluc0hvbGRzYF0gb3IgW2BFcnJvcjo6Q29udGFpbnNGcmVlemVzYF0gaWbUdGhlIGFzc2V0IGFjY291bnQgY29udGFpbnMgaG9sZHMgb3IgZnJlZXplcyBpbiBwbGFjZS4AnEVtaXRzIGBSZWZ1bmRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjxzZXRfbWluX2JhbGFuY2UIAQhpZKQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASxtaW5fYmFsYW5jZRgBKFQ6OkJhbGFuY2UAHDCUU2V0cyB0aGUgbWluaW11bSBiYWxhbmNlIG9mIGFuIGFzc2V0LgAhAU9ubHkgd29ya3MgaWYgdGhlcmUgYXJlbid0IGFueSBhY2NvdW50cyB0aGF0IGFyZSBob2xkaW5nIHRoZSBhc3NldCBvciBpZuB0aGUgbmV3IHZhbHVlIG9mIGBtaW5fYmFsYW5jZWAgaXMgbGVzcyB0aGFuIHRoZSBvbGQgb25lLgD8T3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIGhhcyB0byBiZSB0aGUgT3duZXIgb2YgdGhlLGFzc2V0IGBpZGAuAJAtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldC7ALSBgbWluX2JhbGFuY2VgOiBUaGUgbmV3IHZhbHVlIG9mIGBtaW5fYmFsYW5jZWAuANRFbWl0cyBgQXNzZXRNaW5CYWxhbmNlQ2hhbmdlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLix0b3VjaF9vdGhlcggBCGlkpAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABDHdob70DAVBBY2NvdW50SWRMb29rdXBPZjxUPgAdKIhDcmVhdGUgYW4gYXNzZXQgYWNjb3VudCBmb3IgYHdob2AuAMBBIGRlcG9zaXQgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBzaWduZXIgYWNjb3VudC4AYQEtIGBvcmlnaW5gOiBNdXN0IGJlIFNpZ25lZCBieSBgRnJlZXplcmAgb3IgYEFkbWluYCBvZiB0aGUgYXNzZXQgYGlkYDsgdGhlIHNpZ25lciBhY2NvdW503CAgbXVzdCBoYXZlIHN1ZmZpY2llbnQgZnVuZHMgZm9yIGEgZGVwb3NpdCB0byBiZSB0YWtlbi4JAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB0aGUgYWNjb3VudCB0byBiZSBjcmVhdGVkLowtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSBjcmVhdGVkLgCYRW1pdHMgYFRvdWNoZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4wcmVmdW5kX290aGVyCAEIaWSkAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvvQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AB40XQFSZXR1cm4gdGhlIGRlcG9zaXQgKGlmIGFueSkgb2YgYSB0YXJnZXQgYXNzZXQgYWNjb3VudC4gVXNlZnVsIGlmIHlvdSBhcmUgdGhlIGRlcG9zaXRvci4AXQFUaGUgb3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCBlaXRoZXIgdGhlIGFjY291bnQgb3duZXIsIGRlcG9zaXRvciwgb3IgYXNzZXQgYEFkbWluYC4gSW5hAW9yZGVyIHRvIGJ1cm4gYSBub24temVybyBiYWxhbmNlIG9mIHRoZSBhc3NldCwgdGhlIGNhbGxlciBtdXN0IGJlIHRoZSBhY2NvdW50IGFuZCBzaG91bGQ0dXNlIGByZWZ1bmRgLgAZAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB0aGUgYWNjb3VudCBob2xkaW5nIGEgZGVwb3NpdC58LSBgd2hvYDogVGhlIGFjY291bnQgdG8gcmVmdW5kLgBJAUl0IHdpbGwgZmFpbCB3aXRoIGVpdGhlciBbYEVycm9yOjpDb250YWluc0hvbGRzYF0gb3IgW2BFcnJvcjo6Q29udGFpbnNGcmVlemVzYF0gaWbUdGhlIGFzc2V0IGFjY291bnQgY29udGFpbnMgaG9sZHMgb3IgZnJlZXplcyBpbiBwbGFjZS4AnEVtaXRzIGBSZWZ1bmRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLhRibG9jawgBCGlkpAFMVDo6QXNzZXRJZFBhcmFtZXRlcgABDHdob70DAVBBY2NvdW50SWRMb29rdXBPZjxUPgAfKFkBRGlzYWxsb3cgZnVydGhlciB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIG9mIGFuIGFzc2V0IGBpZGAgdG8gYW5kIGZyb20gYW4gYWNjb3VudCBgd2hvYC4ANQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBGcmVlemVyIG9mIHRoZSBhc3NldCBgaWRgLgC4LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYWNjb3VudCdzIGFzc2V0LpQtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSB1bmJsb2NrZWQuAEBFbWl0cyBgQmxvY2tlZGAuADhXZWlnaHQ6IGBPKDEpYDB0cmFuc2Zlcl9hbGwMAQhpZKQBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARBkZXN0vQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoa2VlcF9hbGl2ZSABEGJvb2wAIEAdAVRyYW5zZmVyIHRoZSBlbnRpcmUgdHJhbnNmZXJhYmxlIGJhbGFuY2UgZnJvbSB0aGUgY2FsbGVyIGFzc2V0IGFjY291bnQuAFkBTk9URTogVGhpcyBmdW5jdGlvbiBvbmx5IGF0dGVtcHRzIHRvIHRyYW5zZmVyIF90cmFuc2ZlcmFibGVfIGJhbGFuY2VzLiBUaGlzIG1lYW5zIHRoYXQ9AWFueSBoZWxkLCBmcm96ZW4sIG9yIG1pbmltdW0gYmFsYW5jZSAod2hlbiBga2VlcF9hbGl2ZWAgaXMgYHRydWVgKSwgd2lsbCBub3QgYmVdAXRyYW5zZmVycmVkIGJ5IHRoaXMgZnVuY3Rpb24uIFRvIGVuc3VyZSB0aGF0IHRoaXMgZnVuY3Rpb24gcmVzdWx0cyBpbiBhIGtpbGxlZCBhY2NvdW50LEUBeW91IG1pZ2h0IG5lZWQgdG8gcHJlcGFyZSB0aGUgYWNjb3VudCBieSByZW1vdmluZyBhbnkgcmVmZXJlbmNlIGNvdW50ZXJzLCBzdG9yYWdlQGRlcG9zaXRzLCBldGMuLi4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgU2lnbmVkLgAZAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB0aGUgYWNjb3VudCBob2xkaW5nIGEgZGVwb3NpdC6gLSBgZGVzdGA6IFRoZSByZWNpcGllbnQgb2YgdGhlIHRyYW5zZmVyLlkBLSBga2VlcF9hbGl2ZWA6IEEgYm9vbGVhbiB0byBkZXRlcm1pbmUgaWYgdGhlIGB0cmFuc2Zlcl9hbGxgIG9wZXJhdGlvbiBzaG91bGQgc2VuZCBhbGxNASAgb2YgdGhlIGZ1bmRzIHRoZSBhc3NldCBhY2NvdW50IGhhcywgY2F1c2luZyB0aGUgc2VuZGVyIGFzc2V0IGFjY291bnQgdG8gYmUga2lsbGVkRQEgIChmYWxzZSksIG9yIHRyYW5zZmVyIGV2ZXJ5dGhpbmcgZXhjZXB0IGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJhbGFuY2UsIHdoaWNoIHdpbGzoICBndWFyYW50ZWUgdG8ga2VlcCB0aGUgc2VuZGVyIGFzc2V0IGFjY291bnQgYWxpdmUgKHRydWUpLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7RAwxEcGFsbGV0X2Fzc2V0X3JhdGUYcGFsbGV0EENhbGwEBFQAAQwYY3JlYXRlCAEoYXNzZXRfa2luZKQBREJveDxUOjpBc3NldEtpbmQ+AAEQcmF0ZUUBASRGaXhlZFUxMjgAABANAUluaXRpYWxpemUgYSBjb252ZXJzaW9uIHJhdGUgdG8gbmF0aXZlIGJhbGFuY2UgZm9yIHRoZSBnaXZlbiBhc3NldC4ANCMjIENvbXBsZXhpdHkYLSBPKDEpGHVwZGF0ZQgBKGFzc2V0X2tpbmSkAURCb3g8VDo6QXNzZXRLaW5kPgABEHJhdGVFAQEkRml4ZWRVMTI4AAEQBQFVcGRhdGUgdGhlIGNvbnZlcnNpb24gcmF0ZSB0byBuYXRpdmUgYmFsYW5jZSBmb3IgdGhlIGdpdmVuIGFzc2V0LgA0IyMgQ29tcGxleGl0eRgtIE8oMSkYcmVtb3ZlBAEoYXNzZXRfa2luZKQBREJveDxUOjpBc3NldEtpbmQ+AAIQJQFSZW1vdmUgYW4gZXhpc3RpbmcgY29udmVyc2lvbiByYXRlIHRvIG5hdGl2ZSBiYWxhbmNlIGZvciB0aGUgZ2l2ZW4gYXNzZXQuADQjIyBDb21wbGV4aXR5GC0gTygxKQQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7VAwxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQQQ2FsbAQEVAABJERzZXRfaW52dWxuZXJhYmxlcwQBDG5ld1UBAURWZWM8VDo6QWNjb3VudElkPgAANDEBU2V0IHRoZSBsaXN0IG9mIGludnVsbmVyYWJsZSAoZml4ZWQpIGNvbGxhdG9ycy4gVGhlc2UgY29sbGF0b3JzIG11c3QgZG8gc29tZdBwcmVwYXJhdGlvbiwgbmFtZWx5IHRvIGhhdmUgcmVnaXN0ZXJlZCBzZXNzaW9uIGtleXMuAFkBVGhlIGNhbGwgd2lsbCByZW1vdmUgYW55IGFjY291bnRzIHRoYXQgaGF2ZSBub3QgcmVnaXN0ZXJlZCBrZXlzIGZyb20gdGhlIHNldC4gVGhhdCBpcyxdAWl0IGlzIG5vbi1hdG9taWM7IHRoZSBjYWxsZXIgYWNjZXB0cyBhbGwgYEFjY291bnRJZGBzIHBhc3NlZCBpbiBgbmV3YCBfaW5kaXZpZHVhbGx5XyBhczEBYWNjZXB0YWJsZSBJbnZ1bG5lcmFibGVzLCBhbmQgaXMgbm90IHByb3Bvc2luZyBhIF9zZXRfIG9mIG5ldyBJbnZ1bG5lcmFibGVzLgBZAVRoaXMgY2FsbCBkb2VzIG5vdCBtYWludGFpbiBtdXR1YWwgZXhjbHVzaXZpdHkgb2YgYEludnVsbmVyYWJsZXNgIGFuZCBgQ2FuZGlkYXRlc2AuIEl0YQFpcyByZWNvbW1lbmRlZCB0byB1c2UgYSBiYXRjaCBvZiBgYWRkX2ludnVsbmVyYWJsZWAgYW5kIGByZW1vdmVfaW52dWxuZXJhYmxlYCBpbnN0ZWFkLiBBUQFgYmF0Y2hfYWxsYCBjYW4gYWxzbyBiZSB1c2VkIHRvIGVuZm9yY2UgYXRvbWljaXR5LiBJZiBhbnkgY2FuZGlkYXRlcyBhcmUgaW5jbHVkZWQgaW5NAWBuZXdgLCB0aGV5IHNob3VsZCBiZSByZW1vdmVkIHdpdGggYHJlbW92ZV9pbnZ1bG5lcmFibGVfY2FuZGlkYXRlYCBhZnRlciBleGVjdXRpb24uAJRNdXN0IGJlIGNhbGxlZCBieSB0aGUgYFVwZGF0ZU9yaWdpbmAuWHNldF9kZXNpcmVkX2NhbmRpZGF0ZXMEAQxtYXgQAQx1MzIAARRVAVNldCB0aGUgaWRlYWwgbnVtYmVyIG9mIG5vbi1pbnZ1bG5lcmFibGUgY29sbGF0b3JzLiBJZiBsb3dlcmluZyB0aGlzIG51bWJlciwgdGhlbiB0aGVhAW51bWJlciBvZiBydW5uaW5nIGNvbGxhdG9ycyBjb3VsZCBiZSBoaWdoZXIgdGhhbiB0aGlzIGZpZ3VyZS4gQXNpZGUgZnJvbSB0aGF0IGVkZ2UgY2FzZSw1AXRoZXJlIHNob3VsZCBiZSBubyBvdGhlciB3YXkgdG8gaGF2ZSBtb3JlIGNhbmRpZGF0ZXMgdGhhbiB0aGUgZGVzaXJlZCBudW1iZXIuANBUaGUgb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgYFVwZGF0ZU9yaWdpbmAuSHNldF9jYW5kaWRhY3lfYm9uZAQBEGJvbmQYATBCYWxhbmNlT2Y8VD4AAhx4U2V0IHRoZSBjYW5kaWRhY3kgYm9uZCBhbW91bnQuAFEBSWYgdGhlIGNhbmRpZGFjeSBib25kIGlzIGluY3JlYXNlZCBieSB0aGlzIGNhbGwsIGFsbCBjdXJyZW50IGNhbmRpZGF0ZXMgd2hpY2ggaGF2ZSBhTQFkZXBvc2l0IGxvd2VyIHRoYW4gdGhlIG5ldyBib25kIHdpbGwgYmUga2lja2VkIGZyb20gdGhlIGxpc3QgYW5kIGdldCB0aGVpciBkZXBvc2l0cxRiYWNrLgDQVGhlIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGBVcGRhdGVPcmlnaW5gLlRyZWdpc3Rlcl9hc19jYW5kaWRhdGUAAxBBAVJlZ2lzdGVyIHRoaXMgYWNjb3VudCBhcyBhIGNvbGxhdG9yIGNhbmRpZGF0ZS4gVGhlIGFjY291bnQgbXVzdCAoYSkgYWxyZWFkeSBoYXZlHQFyZWdpc3RlcmVkIHNlc3Npb24ga2V5cyBhbmQgKGIpIGJlIGFibGUgdG8gcmVzZXJ2ZSB0aGUgYENhbmRpZGFjeUJvbmRgLgDcVGhpcyBjYWxsIGlzIG5vdCBhdmFpbGFibGUgdG8gYEludnVsbmVyYWJsZWAgY29sbGF0b3JzLjBsZWF2ZV9pbnRlbnQABBRVAURlcmVnaXN0ZXIgYG9yaWdpbmAgYXMgYSBjb2xsYXRvciBjYW5kaWRhdGUuIE5vdGUgdGhhdCB0aGUgY29sbGF0b3IgY2FuIG9ubHkgbGVhdmUgb24NAXNlc3Npb24gY2hhbmdlLiBUaGUgYENhbmRpZGFjeUJvbmRgIHdpbGwgYmUgdW5yZXNlcnZlZCBpbW1lZGlhdGVseS4AGQFUaGlzIGNhbGwgd2lsbCBmYWlsIGlmIHRoZSB0b3RhbCBudW1iZXIgb2YgY2FuZGlkYXRlcyB3b3VsZCBkcm9wIGJlbG93XGBNaW5FbGlnaWJsZUNvbGxhdG9yc2AuQGFkZF9pbnZ1bG5lcmFibGUEAQx3aG8AATBUOjpBY2NvdW50SWQABRBFAUFkZCBhIG5ldyBhY2NvdW50IGB3aG9gIHRvIHRoZSBsaXN0IG9mIGBJbnZ1bG5lcmFibGVzYCBjb2xsYXRvcnMuIGB3aG9gIG11c3QgaGF2ZR0BcmVnaXN0ZXJlZCBzZXNzaW9uIGtleXMuIElmIGB3aG9gIGlzIGEgY2FuZGlkYXRlLCB0aGV5IHdpbGwgYmUgcmVtb3ZlZC4A0FRoZSBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBgVXBkYXRlT3JpZ2luYC5McmVtb3ZlX2ludnVsbmVyYWJsZQQBDHdobwABMFQ6OkFjY291bnRJZAAGEGEBUmVtb3ZlIGFuIGFjY291bnQgYHdob2AgZnJvbSB0aGUgbGlzdCBvZiBgSW52dWxuZXJhYmxlc2AgY29sbGF0b3JzLiBgSW52dWxuZXJhYmxlc2AgbXVzdChiZSBzb3J0ZWQuANBUaGUgb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgYFVwZGF0ZU9yaWdpbmAuLHVwZGF0ZV9ib25kBAEsbmV3X2RlcG9zaXQYATBCYWxhbmNlT2Y8VD4ABxxdAVVwZGF0ZSB0aGUgY2FuZGlkYWN5IGJvbmQgb2YgY29sbGF0b3IgY2FuZGlkYXRlIGBvcmlnaW5gIHRvIGEgbmV3IGFtb3VudCBgbmV3X2RlcG9zaXRgLgBBAVNldHRpbmcgYSBgbmV3X2RlcG9zaXRgIHRoYXQgaXMgbG93ZXIgdGhhbiB0aGUgY3VycmVudCBkZXBvc2l0IHdoaWxlIGBvcmlnaW5gIGlz4G9jY3VweWluZyBhIHRvcC1gRGVzaXJlZENhbmRpZGF0ZXNgIHNsb3QgaXMgbm90IGFsbG93ZWQuAFkBVGhpcyBjYWxsIHdpbGwgZmFpbCBpZiBgb3JpZ2luYCBpcyBub3QgYSBjb2xsYXRvciBjYW5kaWRhdGUsIHRoZSB1cGRhdGVkIGJvbmQgaXMgbG93ZXIZAXRoYW4gdGhlIG1pbmltdW0gY2FuZGlkYWN5IGJvbmQsIGFuZC9vciB0aGUgYW1vdW50IGNhbm5vdCBiZSByZXNlcnZlZC5MdGFrZV9jYW5kaWRhdGVfc2xvdAgBHGRlcG9zaXQYATBCYWxhbmNlT2Y8VD4AARh0YXJnZXQAATBUOjpBY2NvdW50SWQACBxNAVRoZSBjYWxsZXIgYG9yaWdpbmAgcmVwbGFjZXMgYSBjYW5kaWRhdGUgYHRhcmdldGAgaW4gdGhlIGNvbGxhdG9yIGNhbmRpZGF0ZSBsaXN0IGJ5VQFyZXNlcnZpbmcgYGRlcG9zaXRgLiBUaGUgYW1vdW50IGBkZXBvc2l0YCByZXNlcnZlZCBieSB0aGUgY2FsbGVyIG11c3QgYmUgZ3JlYXRlciB0aGFu4HRoZSBleGlzdGluZyBib25kIG9mIHRoZSB0YXJnZXQgaXQgaXMgdHJ5aW5nIHRvIHJlcGxhY2UuAFkBVGhpcyBjYWxsIHdpbGwgZmFpbCBpZiB0aGUgY2FsbGVyIGlzIGFscmVhZHkgYSBjb2xsYXRvciBjYW5kaWRhdGUgb3IgaW52dWxuZXJhYmxlLCB0aGVVAWNhbGxlciBkb2VzIG5vdCBoYXZlIHJlZ2lzdGVyZWQgc2Vzc2lvbiBrZXlzLCB0aGUgdGFyZ2V0IGlzIG5vdCBhIGNvbGxhdG9yIGNhbmRpZGF0ZSy8YW5kL29yIHRoZSBgZGVwb3NpdGAgYW1vdW50IGNhbm5vdCBiZSByZXNlcnZlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu2QMMOHBhbGxldF9zZXNzaW9uGHBhbGxldBBDYWxsBARUAAEIIHNldF9rZXlzCAEQa2V5c90DARxUOjpLZXlzAAEUcHJvb2Y4ARxWZWM8dTg+AAAk5FNldHMgdGhlIHNlc3Npb24ga2V5KHMpIG9mIHRoZSBmdW5jdGlvbiBjYWxsZXIgdG8gYGtleXNgLh0BQWxsb3dzIGFuIGFjY291bnQgdG8gc2V0IGl0cyBzZXNzaW9uIGtleSBwcmlvciB0byBiZWNvbWluZyBhIHZhbGlkYXRvci7AVGhpcyBkb2Vzbid0IHRha2UgZWZmZWN0IHVudGlsIHRoZSBuZXh0IHNlc3Npb24uANBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSBzaWduZWQuADQjIyBDb21wbGV4aXR5WQEtIGBPKDEpYC4gQWN0dWFsIGNvc3QgZGVwZW5kcyBvbiB0aGUgbnVtYmVyIG9mIGxlbmd0aCBvZiBgVDo6S2V5czo6a2V5X2lkcygpYCB3aGljaCBpcyAgIGZpeGVkLihwdXJnZV9rZXlzAAEwyFJlbW92ZXMgYW55IHNlc3Npb24ga2V5KHMpIG9mIHRoZSBmdW5jdGlvbiBjYWxsZXIuAMBUaGlzIGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW50aWwgdGhlIG5leHQgc2Vzc2lvbi4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBhY2NvdW50IG11c3QgYmUgZWl0aGVyIGJlXQFjb252ZXJ0aWJsZSB0byBhIHZhbGlkYXRvciBJRCB1c2luZyB0aGUgY2hhaW4ncyB0eXBpY2FsIGFkZHJlc3Npbmcgc3lzdGVtICh0aGlzIHVzdWFsbHlRAW1lYW5zIGJlaW5nIGEgY29udHJvbGxlciBhY2NvdW50KSBvciBkaXJlY3RseSBjb252ZXJ0aWJsZSBpbnRvIGEgdmFsaWRhdG9yIElEICh3aGljaJR1c3VhbGx5IG1lYW5zIGJlaW5nIGEgc3Rhc2ggYWNjb3VudCkuADQjIyBDb21wbGV4aXR5PQEtIGBPKDEpYCBpbiBudW1iZXIgb2Yga2V5IHR5cGVzLiBBY3R1YWwgY29zdCBkZXBlbmRzIG9uIHRoZSBudW1iZXIgb2YgbGVuZ3RoIG9mmCAgYFQ6OktleXM6OmtleV9pZHMoKWAgd2hpY2ggaXMgZml4ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLt0DCFRwZW9wbGVfcm9jb2NvX3J1bnRpbWUsU2Vzc2lvbktleXMAAAQBEGF1cmHhAwHEPEF1cmEgYXMgJGNyYXRlOjpCb3VuZFRvUnVudGltZUFwcFB1YmxpYz46OlB1YmxpYwAA4QMQRHNwX2NvbnNlbnN1c19hdXJhHHNyMjU1MTksYXBwX3NyMjU1MTkYUHVibGljAAAEAAQBPHNyMjU1MTk6OlB1YmxpYwAA5QMMZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWUYcGFsbGV0EENhbGwEBFQAARRUc3VzcGVuZF94Y21fZXhlY3V0aW9uAAEMSQFTdXNwZW5kcyBhbGwgWENNIGV4ZWN1dGlvbnMgZm9yIHRoZSBYQ01QIHF1ZXVlLCByZWdhcmRsZXNzIG9mIHRoZSBzZW5kZXIncyBvcmlnaW4uAKQtIGBvcmlnaW5gOiBNdXN0IHBhc3MgYENvbnRyb2xsZXJPcmlnaW5gLlByZXN1bWVfeGNtX2V4ZWN1dGlvbgACFLhSZXN1bWVzIGFsbCBYQ00gZXhlY3V0aW9ucyBmb3IgdGhlIFhDTVAgcXVldWUuAD0BTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lc24ndCBjaGFuZ2UgdGhlIHN0YXR1cyBvZiB0aGUgaW4vb3V0IGJvdW5kIGNoYW5uZWxzLgCkLSBgb3JpZ2luYDogTXVzdCBwYXNzIGBDb250cm9sbGVyT3JpZ2luYC5gdXBkYXRlX3N1c3BlbmRfdGhyZXNob2xkBAEMbmV3EAEMdTMyAAMUSQFPdmVyd3JpdGVzIHRoZSBudW1iZXIgb2YgcGFnZXMgd2hpY2ggbXVzdCBiZSBpbiB0aGUgcXVldWUgZm9yIHRoZSBvdGhlciBzaWRlIHRvIGJleHRvbGQgdG8gc3VzcGVuZCB0aGVpciBzZW5kaW5nLgB0LSBgb3JpZ2luYDogTXVzdCBwYXNzIGBSb290YC7oLSBgbmV3YDogRGVzaXJlZCB2YWx1ZSBmb3IgYFF1ZXVlQ29uZmlnRGF0YS5zdXNwZW5kX3ZhbHVlYFR1cGRhdGVfZHJvcF90aHJlc2hvbGQEAQxuZXcQAQx1MzIABBRFAU92ZXJ3cml0ZXMgdGhlIG51bWJlciBvZiBwYWdlcyB3aGljaCBtdXN0IGJlIGluIHRoZSBxdWV1ZSBhZnRlciB3aGljaCB3ZSBkcm9wIGFueYhmdXJ0aGVyIG1lc3NhZ2VzIGZyb20gdGhlIGNoYW5uZWwuAHQtIGBvcmlnaW5gOiBNdXN0IHBhc3MgYFJvb3RgLuwtIGBuZXdgOiBEZXNpcmVkIHZhbHVlIGZvciBgUXVldWVDb25maWdEYXRhLmRyb3BfdGhyZXNob2xkYFx1cGRhdGVfcmVzdW1lX3RocmVzaG9sZAQBDG5ldxABDHUzMgAFFE0BT3ZlcndyaXRlcyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHdoaWNoIHRoZSBxdWV1ZSBtdXN0IGJlIHJlZHVjZWQgdG8gYmVmb3JlIGl0IHNpZ25hbHMBAXRoYXQgbWVzc2FnZSBzZW5kaW5nIG1heSByZWNvbW1lbmNlIGFmdGVyIGl0IGhhcyBiZWVuIHN1c3BlbmRlZC4AdC0gYG9yaWdpbmA6IE11c3QgcGFzcyBgUm9vdGAu9C0gYG5ld2A6IERlc2lyZWQgdmFsdWUgZm9yIGBRdWV1ZUNvbmZpZ0RhdGEucmVzdW1lX3RocmVzaG9sZGAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu6QMMKHBhbGxldF94Y20YcGFsbGV0EENhbGwEBFQAAUQQc2VuZAgBEGRlc3SBAgFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABHG1lc3NhZ2XtAwFUQm94PFZlcnNpb25lZFhjbTwoKT4+AAAAPHRlbGVwb3J0X2Fzc2V0cxABEGRlc3SBAgFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5gQIBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHMFAgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbRABDHUzMgABSBEBVGVsZXBvcnQgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gc29tZSBkZXN0aW5hdGlvbiBjaGFpbi4AHQEqKlRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZDogVXNlIGBsaW1pdGVkX3RlbGVwb3J0X2Fzc2V0c2AgaW5zdGVhZC4qKgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYC4gVGhlIHdlaWdodCBsaW1pdCBmb3IgZmVlcyBpcyBub3QgcHJvdmlkZWQgYW5kIHRodXMgaXMgdW5saW1pdGVkLLR3aXRoIGFsbCBmZWVzIHRha2VuIGFzIG5lZWRlZCBmcm9tIHRoZSBhc3NldC4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlaCAgZmVlIG9uIHRoZSBgZGVzdGAgY2hhaW4uTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuXHJlc2VydmVfdHJhbnNmZXJfYXNzZXRzEAEQZGVzdIECAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnmBAgFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0cwUCAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtEAEMdTMyAAJ4XQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCx4ZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUuAD0BYGFzc2V0c2AgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBhbmQgbWF5IG5vdCBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLk0BIC0gYGFzc2V0c2AgaGF2ZSBsb2NhbCByZXNlcnZlOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlUBIC0gYGFzc2V0c2AgaGF2ZSBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0b1kBICAgYGRlc3RgIGNoYWluIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmSEICAgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuYQEgLSBgYXNzZXRzYCBoYXZlIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlYQEgICByZXNlcnZlcyBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3Rg9CAgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4APQEqKlRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZDogVXNlIGBsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzYCBpbnN0ZWFkLioqAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLiBUaGUgd2VpZ2h0IGxpbWl0IGZvciBmZWVzIGlzIG5vdCBwcm92aWRlZCBhbmQgdGh1cyBpcyB1bmxpbWl0ZWQstHdpdGggYWxsIGZlZXMgdGFrZW4gYXMgbmVlZGVkIGZyb20gdGhlIGFzc2V0LgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy4cZXhlY3V0ZQgBHG1lc3NhZ2VlBAG0Qm94PFZlcnNpb25lZFhjbTw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4+AAEobWF4X3dlaWdodCgBGFdlaWdodAADINBFeGVjdXRlIGFuIFhDTSBtZXNzYWdlIGZyb20gYSBsb2NhbCwgc2lnbmVkLCBvcmlnaW4uAE0BQW4gZXZlbnQgaXMgZGVwb3NpdGVkIGluZGljYXRpbmcgd2hldGhlciBgbXNnYCBjb3VsZCBiZSBleGVjdXRlZCBjb21wbGV0ZWx5IG9yIG9ubHkocGFydGlhbGx5LgBdAU5vIG1vcmUgdGhhbiBgbWF4X3dlaWdodGAgd2lsbCBiZSB1c2VkIGluIGl0cyBhdHRlbXB0ZWQgZXhlY3V0aW9uLiBJZiB0aGlzIGlzIGxlc3MgdGhhbkEBdGhlIG1heGltdW0gYW1vdW50IG9mIHdlaWdodCB0aGF0IHRoZSBtZXNzYWdlIGNvdWxkIHRha2UgdG8gYmUgZXhlY3V0ZWQsIHRoZW4gbm98ZXhlY3V0aW9uIGF0dGVtcHQgd2lsbCBiZSBtYWRlLkRmb3JjZV94Y21fdmVyc2lvbggBIGxvY2F0aW9upAE0Qm94PExvY2F0aW9uPgABHHZlcnNpb24QAShYY21WZXJzaW9uAAQYSQFFeHRvbGwgdGhhdCBhIHBhcnRpY3VsYXIgZGVzdGluYXRpb24gY2FuIGJlIGNvbW11bmljYXRlZCB3aXRoIHRocm91Z2ggYSBwYXJ0aWN1bGFyPHZlcnNpb24gb2YgWENNLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLtgtIGBsb2NhdGlvbmA6IFRoZSBkZXN0aW5hdGlvbiB0aGF0IGlzIGJlaW5nIGRlc2NyaWJlZC4RAS0gYHhjbV92ZXJzaW9uYDogVGhlIGxhdGVzdCB2ZXJzaW9uIG9mIFhDTSB0aGF0IGBsb2NhdGlvbmAgc3VwcG9ydHMuZGZvcmNlX2RlZmF1bHRfeGNtX3ZlcnNpb24EAURtYXliZV94Y21fdmVyc2lvbpEEAUhPcHRpb248WGNtVmVyc2lvbj4ABRRZAVNldCBhIHNhZmUgWENNIHZlcnNpb24gKHRoZSB2ZXJzaW9uIHRoYXQgWENNIHNob3VsZCBiZSBlbmNvZGVkIHdpdGggaWYgdGhlIG1vc3QgcmVjZW50tHZlcnNpb24gYSBkZXN0aW5hdGlvbiBjYW4gYWNjZXB0IGlzIHVua25vd24pLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLjkBLSBgbWF5YmVfeGNtX3ZlcnNpb25gOiBUaGUgZGVmYXVsdCBYQ00gZW5jb2RpbmcgdmVyc2lvbiwgb3IgYE5vbmVgIHRvIGRpc2FibGUueGZvcmNlX3N1YnNjcmliZV92ZXJzaW9uX25vdGlmeQQBIGxvY2F0aW9ugQIBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4ABhA5AUFzayBhIGxvY2F0aW9uIHRvIG5vdGlmeSB1cyByZWdhcmRpbmcgdGhlaXIgWENNIHZlcnNpb24gYW5kIGFueSBjaGFuZ2VzIHRvIGl0LgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLlkBLSBgbG9jYXRpb25gOiBUaGUgbG9jYXRpb24gdG8gd2hpY2ggd2Ugc2hvdWxkIHN1YnNjcmliZSBmb3IgWENNIHZlcnNpb24gbm90aWZpY2F0aW9ucy6AZm9yY2VfdW5zdWJzY3JpYmVfdmVyc2lvbl9ub3RpZnkEASBsb2NhdGlvboECAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAcYSQFSZXF1aXJlIHRoYXQgYSBwYXJ0aWN1bGFyIGRlc3RpbmF0aW9uIHNob3VsZCBubyBsb25nZXIgbm90aWZ5IHVzIHJlZ2FyZGluZyBhbnkgWENNQHZlcnNpb24gY2hhbmdlcy4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi49AS0gYGxvY2F0aW9uYDogVGhlIGxvY2F0aW9uIHRvIHdoaWNoIHdlIGFyZSBjdXJyZW50bHkgc3Vic2NyaWJlZCBmb3IgWENNIHZlcnNpb26oICBub3RpZmljYXRpb25zIHdoaWNoIHdlIG5vIGxvbmdlciBkZXNpcmUufGxpbWl0ZWRfcmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHMUARBkZXN0gQIBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyeYECAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzBQIBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW0QAQx1MzIAATB3ZWlnaHRfbGltaXTdAQEsV2VpZ2h0TGltaXQACHhdAVRyYW5zZmVyIHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiB0aHJvdWdoIHRoZWlyIGxvY2FsLHhkZXN0aW5hdGlvbiBvciByZW1vdGUgcmVzZXJ2ZS4APQFgYXNzZXRzYCBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIGFuZCBtYXkgbm90IGJlIHRlbGVwb3J0YWJsZSB0byBgZGVzdGAuTQEgLSBgYXNzZXRzYCBoYXZlIGxvY2FsIHJlc2VydmU6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbk0BICAgY2hhaW4gYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWRsICAgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuVQEgLSBgYXNzZXRzYCBoYXZlIGRlc3RpbmF0aW9uIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvWQEgICBgZGVzdGAgY2hhaW4gdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZIQgICBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC5hASAtIGBhc3NldHNgIGhhdmUgcmVtb3RlIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byByZXNlcnZlIGNoYWluIHRvIG1vdmVhASAgIHJlc2VydmVzIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyIFhDTSB0byBgZGVzdGD0ICAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYCwgdXAgdG8gZW5vdWdoIHRvIHBheSBmb3IgYHdlaWdodF9saW1pdGAgb2Ygd2VpZ2h0LiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS5cbGltaXRlZF90ZWxlcG9ydF9hc3NldHMUARBkZXN0gQIBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyeYECAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzBQIBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW0QAQx1MzIAATB3ZWlnaHRfbGltaXTdAQEsV2VpZ2h0TGltaXQACUgRAVRlbGVwb3J0IHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHNvbWUgZGVzdGluYXRpb24gY2hhaW4uAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLCB1cCB0byBlbm91Z2ggdG8gcGF5IGZvciBgd2VpZ2h0X2xpbWl0YCBvZiB3ZWlnaHQuIElmIG1vcmUgd2VpZ2h0WQFpcyBuZWVkZWQgdGhhbiBgd2VpZ2h0X2xpbWl0YCwgdGhlbiB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCBhbmQgdGhlIHNlbnQgYXNzZXRzIG1heSBiZSBhdCByaXNrLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGVoICBmZWUgb24gdGhlIGBkZXN0YCBjaGFpbi5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy5FAS0gYHdlaWdodF9saW1pdGA6IFRoZSByZW1vdGUtc2lkZSB3ZWlnaHQgbGltaXQsIGlmIGFueSwgZm9yIHRoZSBYQ00gZmVlIHB1cmNoYXNlLkBmb3JjZV9zdXNwZW5zaW9uBAEkc3VzcGVuZGVkIAEQYm9vbAAKEPRTZXQgb3IgdW5zZXQgdGhlIGdsb2JhbCBzdXNwZW5zaW9uIHN0YXRlIG9mIHRoZSBYQ00gZXhlY3V0b3IuANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4u0C0gYHN1c3BlbmRlZGA6IGB0cnVlYCB0byBzdXNwZW5kLCBgZmFsc2VgIHRvIHJlc3VtZS48dHJhbnNmZXJfYXNzZXRzFAEQZGVzdIECAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnmBAgFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0cwUCAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtEAEMdTMyAAEwd2VpZ2h0X2xpbWl03QEBLFdlaWdodExpbWl0AAuEXQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCzQZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUsIG9yIHRocm91Z2ggdGVsZXBvcnRzLgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZjUBaW5kZXggYGZlZV9hc3NldF9pdGVtYCAoaGVuY2UgcmVmZXJyZWQgdG8gYXMgYGZlZXNgKSwgdXAgdG8gZW5vdWdoIHRvIHBheSBmb3JBAWB3ZWlnaHRfbGltaXRgIG9mIHdlaWdodC4gSWYgbW9yZSB3ZWlnaHQgaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhl3G9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4AYQFgYXNzZXRzYCAoZXhjbHVkaW5nIGBmZWVzYCkgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBvciBvdGhlcndpc2UgYmUgdGVsZXBvcnRhYmxlsHRvIGBkZXN0YCwgbm8gbGltaXRhdGlvbnMgaW1wb3NlZCBvbiBgZmVlc2AuTQEgLSBmb3IgbG9jYWwgcmVzZXJ2ZTogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uIGNoYWluIGFuZE0BICAgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG9EICAgYGJlbmVmaWNpYXJ5YC5hASAtIGZvciBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0byBgZGVzdGAgY2hhaW5ZASAgIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmQgZGVwb3NpdCB0aGVtUCAgIHRvIGBiZW5lZmljaWFyeWAuXQEgLSBmb3IgcmVtb3RlIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byByZXNlcnZlIGNoYWluIHRvIG1vdmUgcmVzZXJ2ZXNdASAgIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyIFhDTSB0byBgZGVzdGAgdG8gbWludNQgICBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlEBIC0gZm9yIHRlbGVwb3J0czogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgWENNIHRvIGBkZXN0YCBjaGFpbiB0byBtaW50L3RlbGVwb3J0sCAgIGFzc2V0cyBhbmQgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4tAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgWDIoUGFyZW50LFUBICBQYXJhY2hhaW4oLi4pKWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBYMShQYXJhY2hhaW4oLi4pKWAgdG8gc2VuZGggIGZyb20gcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy5FAS0gYHdlaWdodF9saW1pdGA6IFRoZSByZW1vdGUtc2lkZSB3ZWlnaHQgbGltaXQsIGlmIGFueSwgZm9yIHRoZSBYQ00gZmVlIHB1cmNoYXNlLjBjbGFpbV9hc3NldHMIARhhc3NldHMFAgFQQm94PFZlcnNpb25lZEFzc2V0cz4AASxiZW5lZmljaWFyeYECAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAwYVQFDbGFpbXMgYXNzZXRzIHRyYXBwZWQgb24gdGhpcyBwYWxsZXQgYmVjYXVzZSBvZiBsZWZ0b3ZlciBhc3NldHMgZHVyaW5nIFhDTSBleGVjdXRpb24uAKwtIGBvcmlnaW5gOiBBbnlvbmUgY2FuIGNhbGwgdGhpcyBleHRyaW5zaWMuXQEtIGBhc3NldHNgOiBUaGUgZXhhY3QgYXNzZXRzIHRoYXQgd2VyZSB0cmFwcGVkLiBVc2UgdGhlIHZlcnNpb24gdG8gc3BlY2lmeSB3aGF0IHZlcnNpb26Yd2FzIHRoZSBsYXRlc3Qgd2hlbiB0aGV5IHdlcmUgdHJhcHBlZC5FAS0gYGJlbmVmaWNpYXJ5YDogVGhlIGxvY2F0aW9uL2FjY291bnQgd2hlcmUgdGhlIGNsYWltZWQgYXNzZXRzIHdpbGwgYmUgZGVwb3NpdGVkLox0cmFuc2Zlcl9hc3NldHNfdXNpbmdfdHlwZV9hbmRfdGhlbhwBEGRlc3SBAgFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0cwUCAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABUGFzc2V0c190cmFuc2Zlcl90eXBllQQBREJveDxUcmFuc2ZlclR5cGU+AAE4cmVtb3RlX2ZlZXNfaWSZBAFUQm94PFZlcnNpb25lZEFzc2V0SWQ+AAFIZmVlc190cmFuc2Zlcl90eXBllQQBREJveDxUcmFuc2ZlclR5cGU+AAFIY3VzdG9tX3hjbV9vbl9kZXN07QMBVEJveDxWZXJzaW9uZWRYY208KCk+PgABMHdlaWdodF9saW1pdN0BASxXZWlnaHRMaW1pdAANwFUBVHJhbnNmZXIgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiB1c2luZyBleHBsaWNpdCB0cmFuc2Zlcmh0eXBlcyBmb3IgYXNzZXRzIGFuZCBmZWVzLgBZAWBhc3NldHNgIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gb3IgbWF5IGJlIHRlbGVwb3J0YWJsZSB0byBgZGVzdGAuIENhbGxlciBtdXN07HByb3ZpZGUgdGhlIGBhc3NldHNfdHJhbnNmZXJfdHlwZWAgdG8gYmUgdXNlZCBmb3IgYGFzc2V0c2A6UQEgLSBgVHJhbnNmZXJUeXBlOjpMb2NhbFJlc2VydmVgOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlkBIC0gYFRyYW5zZmVyVHlwZTo6RGVzdGluYXRpb25SZXNlcnZlYDogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG9ZASAgIGBkZXN0YCBjaGFpbiB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5khCAgIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLlkBIC0gYFRyYW5zZmVyVHlwZTo6UmVtb3RlUmVzZXJ2ZShyZXNlcnZlKWA6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byBgcmVzZXJ2ZWBhASAgIGNoYWluIHRvIG1vdmUgcmVzZXJ2ZXMgZnJvbSB0aGlzIGNoYWluJ3MgU0EgdG8gYGRlc3RgIGNoYWluJ3MgU0EsIGFuZCBmb3J3YXJkIGFub3RoZXJVASAgIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLiBUeXBpY2FsbHmUICAgdGhlIHJlbW90ZSBgcmVzZXJ2ZWAgaXMgQXNzZXQgSHViLkUBIC0gYFRyYW5zZmVyVHlwZTo6VGVsZXBvcnRgOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBYQ00gdG8gYGRlc3RgIGNoYWluIHRv6CAgIG1pbnQvdGVsZXBvcnQgYXNzZXRzIGFuZCBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC4AVQFPbiB0aGUgZGVzdGluYXRpb24gY2hhaW4sIGFzIHdlbGwgYXMgYW55IGludGVybWVkaWFyeSBob3BzLCBgQnV5RXhlY3V0aW9uYCBpcyB1c2VkIHRvIQFidXkgZXhlY3V0aW9uIHVzaW5nIHRyYW5zZmVycmVkIGBhc3NldHNgIGlkZW50aWZpZWQgYnkgYHJlbW90ZV9mZWVzX2lkYC5ZAU1ha2Ugc3VyZSBlbm91Z2ggb2YgdGhlIHNwZWNpZmllZCBgcmVtb3RlX2ZlZXNfaWRgIGFzc2V0IGlzIGluY2x1ZGVkIGluIHRoZSBnaXZlbiBsaXN0YQFvZiBgYXNzZXRzYC4gYHJlbW90ZV9mZWVzX2lkYCBzaG91bGQgYmUgZW5vdWdoIHRvIHBheSBmb3IgYHdlaWdodF9saW1pdGAuIElmIG1vcmUgd2VpZ2h0WQFpcyBuZWVkZWQgdGhhbiBgd2VpZ2h0X2xpbWl0YCwgdGhlbiB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCBhbmQgdGhlIHNlbnQgYXNzZXRzIG1heSBiZSBhdCByaXNrLgBFAWByZW1vdGVfZmVlc19pZGAgbWF5IHVzZSBkaWZmZXJlbnQgdHJhbnNmZXIgdHlwZSB0aGFuIHJlc3Qgb2YgYGFzc2V0c2AgYW5kIGNhbiBiZZxzcGVjaWZpZWQgdGhyb3VnaCBgZmVlc190cmFuc2Zlcl90eXBlYC4AYQFUaGUgY2FsbGVyIG5lZWRzIHRvIHNwZWNpZnkgd2hhdCBzaG91bGQgaGFwcGVuIHRvIHRoZSB0cmFuc2ZlcnJlZCBhc3NldHMgb25jZSB0aGV5IHJlYWNoQQF0aGUgYGRlc3RgIGNoYWluLiBUaGlzIGlzIGRvbmUgdGhyb3VnaCB0aGUgYGN1c3RvbV94Y21fb25fZGVzdGAgcGFyYW1ldGVyLCB3aGljaPxjb250YWlucyB0aGUgaW5zdHJ1Y3Rpb25zIHRvIGV4ZWN1dGUgb24gYGRlc3RgIGFzIGEgZmluYWwgc3RlcC58ICBUaGlzIGlzIHVzdWFsbHkgYXMgc2ltcGxlIGFzOlEBICBgWGNtKHZlYyFbRGVwb3NpdEFzc2V0IHsgYXNzZXRzOiBXaWxkKEFsbENvdW50ZWQoYXNzZXRzLmxlbigpKSksIGJlbmVmaWNpYXJ5IH1dKWAsMQEgIGJ1dCBjb3VsZCBiZSBzb21ldGhpbmcgbW9yZSBleG90aWMgbGlrZSBzZW5kaW5nIHRoZSBgYXNzZXRzYCBldmVuIGZ1cnRoZXIuACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb209ASAgcmVsYXkgdG8gcGFyYWNoYWluLCBvciBgKHBhcmVudHM6IDIsIChHbG9iYWxDb25zZW5zdXMoLi4pLCAuLikpYCB0byBzZW5kIGZyb230ICBwYXJhY2hhaW4gYWNyb3NzIGEgYnJpZGdlIHRvIGFub3RoZXIgZWNvc3lzdGVtIGRlc3RpbmF0aW9uLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy49AS0gYGFzc2V0c190cmFuc2Zlcl90eXBlYDogVGhlIFhDTSBgVHJhbnNmZXJUeXBlYCB1c2VkIHRvIHRyYW5zZmVyIHRoZSBgYXNzZXRzYC4hAS0gYHJlbW90ZV9mZWVzX2lkYDogT25lIG9mIHRoZSBpbmNsdWRlZCBgYXNzZXRzYCB0byBiZSB1c2VkIHRvIHBheSBmZWVzLkkBLSBgZmVlc190cmFuc2Zlcl90eXBlYDogVGhlIFhDTSBgVHJhbnNmZXJUeXBlYCB1c2VkIHRvIHRyYW5zZmVyIHRoZSBgZmVlc2AgYXNzZXRzLlkBLSBgY3VzdG9tX3hjbV9vbl9kZXN0YDogVGhlIFhDTSB0byBiZSBleGVjdXRlZCBvbiBgZGVzdGAgY2hhaW4gYXMgdGhlIGxhc3Qgc3RlcCBvZiB0aGVZASAgdHJhbnNmZXIsIHdoaWNoIGFsc28gZGV0ZXJtaW5lcyB3aGF0IGhhcHBlbnMgdG8gdGhlIGFzc2V0cyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS5QYWRkX2F1dGhvcml6ZWRfYWxpYXMIARxhbGlhc2VygQIBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARxleHBpcmVzhQIBLE9wdGlvbjx1NjQ+AA4sXQFBdXRob3JpemUgYW5vdGhlciBgYWxpYXNlcmAgbG9jYXRpb24gdG8gYWxpYXMgaW50byB0aGUgbG9jYWwgYG9yaWdpbmAgbWFraW5nIHRoaXMgY2FsbC4pAVRoZSBgYWxpYXNlcmAgaXMgb25seSBhdXRob3JpemVkIHVudGlsIHRoZSBwcm92aWRlZCBgZXhwaXJ5YCBibG9jayBudW1iZXIuSQFUaGUgY2FsbCBjYW4gYWxzbyBiZSB1c2VkIGZvciBhIHByZXZpb3VzbHkgYXV0aG9yaXplZCBhbGlhcyBpbiBvcmRlciB0byB1cGRhdGUgaXRzWGBleHBpcnlgIGJsb2NrIG51bWJlci4AUQFVc3VhbGx5IHVzZWZ1bCB0byBhbGxvdyB5b3VyIGxvY2FsIGFjY291bnQgdG8gYmUgYWxpYXNlZCBpbnRvIGZyb20gYSByZW1vdGUgbG9jYXRpb270YWxzbyB1bmRlciB5b3VyIGNvbnRyb2wgKGxpa2UgeW91ciBhY2NvdW50IG9uIGFub3RoZXIgY2hhaW4pLgBRAVdBUk5JTkc6IG1ha2Ugc3VyZSB0aGUgY2FsbGVyIGBvcmlnaW5gICh5b3UpIHRydXN0cyB0aGUgYGFsaWFzZXJgIGxvY2F0aW9uIHRvIGFjdCBpblkBdGhlaXIveW91ciBuYW1lLiBPbmNlIGF1dGhvcml6ZWQgdXNpbmcgdGhpcyBjYWxsLCB0aGUgYGFsaWFzZXJgIGNhbiBmcmVlbHkgaW1wZXJzb25hdGXUYG9yaWdpbmAgaW4gWENNIHByb2dyYW1zIGV4ZWN1dGVkIG9uIHRoZSBsb2NhbCBjaGFpbi5ccmVtb3ZlX2F1dGhvcml6ZWRfYWxpYXMEARxhbGlhc2VygQIBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4ADwhdAVJlbW92ZSBhIHByZXZpb3VzbHkgYXV0aG9yaXplZCBgYWxpYXNlcmAgZnJvbSB0aGUgbGlzdCBvZiBsb2NhdGlvbnMgdGhhdCBjYW4gYWxpYXMgaW50b5B0aGUgbG9jYWwgYG9yaWdpbmAgbWFraW5nIHRoaXMgY2FsbC50cmVtb3ZlX2FsbF9hdXRob3JpemVkX2FsaWFzZXMAEAhJAVJlbW92ZSBhbGwgcHJldmlvdXNseSBhdXRob3JpemVkIGBhbGlhc2VyYHMgdGhhdCBjYW4gYWxpYXMgaW50byB0aGUgbG9jYWwgYG9yaWdpbmBEbWFraW5nIHRoaXMgY2FsbC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu7QMIDHhjbTBWZXJzaW9uZWRYY20ELFJ1bnRpbWVDYWxsAAEMCFYzBADxAwFQdjM6OlhjbTxSdW50aW1lQ2FsbD4AAwAIVjQEADEEAVB2NDo6WGNtPFJ1bnRpbWVDYWxsPgAEAAhWNQQAcQEBUHY1OjpYY208UnVudGltZUNhbGw+AAUAAPEDDAx4Y20IdjMMWGNtBBBDYWxsAAAEAPUDAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AAD1AwAAAvkDAPkDDAx4Y20IdjMsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQACQIBLE11bHRpQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQACQIBLE11bHRpQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAAkCASxNdWx0aUFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWQsARxRdWVyeUlkAAEgcmVzcG9uc2X9AwEgUmVzcG9uc2UAAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AAEccXVlcmllch0EAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0cwkCASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ5GQIBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHMJAgEsTXVsdGlBc3NldHMAARBkZXN0GQIBNE11bHRpTG9jYXRpb24AAQx4Y23xAwEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5kwQEBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0KAEYV2VpZ2h0AAEQY2FsbMkBAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXK0AQx1MzIAAUBtYXhfbWVzc2FnZV9zaXpltAEMdTMyAAEwbWF4X2NhcGFjaXR5tAEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnS0AQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9ytAEMdTMyAAEYc2VuZGVytAEMdTMyAAEkcmVjaXBpZW50tAEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EAB0CAVRJbnRlcmlvck11bHRpTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEACEEAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHMlBAFATXVsdGlBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ5GQIBNE11bHRpTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0cyUEAUBNdWx0aUFzc2V0RmlsdGVyAAEQZGVzdBkCATRNdWx0aUxvY2F0aW9uAAEMeGNt8QMBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmUlBAFATXVsdGlBc3NldEZpbHRlcgABEHdhbnQJAgEsTXVsdGlBc3NldHMAARxtYXhpbWFsIAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0cyUEAUBNdWx0aUFzc2V0RmlsdGVyAAEccmVzZXJ2ZRkCATRNdWx0aUxvY2F0aW9uAAEMeGNt8QMBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0cyUEAUBNdWx0aUFzc2V0RmlsdGVyAAEQZGVzdBkCATRNdWx0aUxvY2F0aW9uAAEMeGNt8QMBHFhjbTwoKT4AEQA0UmVwb3J0SG9sZGluZwgBNHJlc3BvbnNlX2luZm8hBAFEUXVlcnlSZXNwb25zZUluZm8AARhhc3NldHMlBAFATXVsdGlBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzEQIBKE11bHRpQXNzZXQAATB3ZWlnaHRfbGltaXTdAQEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAPEDASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAPEDASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzCQIBLE11bHRpQXNzZXRzAAEYdGlja2V0GQIBNE11bHRpTG9jYXRpb24AGAAQVHJhcAQALAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZCwBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0KAEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAAkCASxNdWx0aUFzc2V0cwAcACxFeHBlY3RBc3NldAQACQIBLE11bHRpQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQAHQQBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAAQQBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBAC5AQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvIQQBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4tAEMdTMyAAEQbmFtZTgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcrQBDHUzMgABPG1pbl9jcmF0ZV9taW5vcrQBDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAIQQBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBAAhAgEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmspAgEkTmV0d29ya0lkAAEsZGVzdGluYXRpb24dAgFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAEMeGNt8QMBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXQRAgEoTXVsdGlBc3NldAABIHVubG9ja2VyGQIBNE11bHRpTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldBECAShNdWx0aUFzc2V0AAEYdGFyZ2V0GQIBNE11bHRpTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldBECAShNdWx0aUFzc2V0AAEUb3duZXIZAgE0TXVsdGlMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXQRAgEoTXVsdGlBc3NldAABGGxvY2tlchkCATRNdWx0aUxvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3IAEQYm9vbAArACBTZXRUb3BpYwQABAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAGQIBNE11bHRpTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl03QEBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2luHQQBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAvAAD9AwwMeGNtCHYzIFJlc3BvbnNlAAEYEE51bGwAAAAYQXNzZXRzBAAJAgEsTXVsdGlBc3NldHMAAQA8RXhlY3V0aW9uUmVzdWx0BAABBAFQT3B0aW9uPCh1MzIsIEVycm9yKT4AAgAcVmVyc2lvbgQAEAE4c3VwZXI6OlZlcnNpb24AAwAsUGFsbGV0c0luZm8EAA0EAZhCb3VuZGVkVmVjPFBhbGxldEluZm8sIE1heFBhbGxldHNJbmZvPgAEADhEaXNwYXRjaFJlc3VsdAQAuQEBOE1heWJlRXJyb3JDb2RlAAUAAAEEBBhPcHRpb24EBFQBBQQBCBBOb25lAAAAEFNvbWUEAAUEAAABAAAFBAAABAgQCQQACQQQDHhjbQh2Mxh0cmFpdHMURXJyb3IAAaAgT3ZlcmZsb3cAAAA0VW5pbXBsZW1lbnRlZAABAGBVbnRydXN0ZWRSZXNlcnZlTG9jYXRpb24AAgBkVW50cnVzdGVkVGVsZXBvcnRMb2NhdGlvbgADADBMb2NhdGlvbkZ1bGwABABUTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAUAJEJhZE9yaWdpbgAGADxJbnZhbGlkTG9jYXRpb24ABwA0QXNzZXROb3RGb3VuZAAIAFRGYWlsZWRUb1RyYW5zYWN0QXNzZXQACQA8Tm90V2l0aGRyYXdhYmxlAAoASExvY2F0aW9uQ2Fubm90SG9sZAALAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUADABYRGVzdGluYXRpb25VbnN1cHBvcnRlZAANACRUcmFuc3BvcnQADgAoVW5yb3V0YWJsZQAPADBVbmtub3duQ2xhaW0AEAA4RmFpbGVkVG9EZWNvZGUAEQBATWF4V2VpZ2h0SW52YWxpZAASADhOb3RIb2xkaW5nRmVlcwATADBUb29FeHBlbnNpdmUAFAAQVHJhcAQAMAEMdTY0ABUAQEV4cGVjdGF0aW9uRmFsc2UAFgA4UGFsbGV0Tm90Rm91bmQAFwAwTmFtZU1pc21hdGNoABgATFZlcnNpb25JbmNvbXBhdGlibGUAGQBQSG9sZGluZ1dvdWxkT3ZlcmZsb3cAGgAsRXhwb3J0RXJyb3IAGwA4UmVhbmNob3JGYWlsZWQAHAAYTm9EZWFsAB0AKEZlZXNOb3RNZXQAHgAkTG9ja0Vycm9yAB8AME5vUGVybWlzc2lvbgAgAChVbmFuY2hvcmVkACEAOE5vdERlcG9zaXRhYmxlACIATFVuaGFuZGxlZFhjbVZlcnNpb24AIwBIV2VpZ2h0TGltaXRSZWFjaGVkBAAoARhXZWlnaHQAJAAcQmFycmllcgAlAExXZWlnaHROb3RDb21wdXRhYmxlACYAREV4Y2VlZHNTdGFja0xpbWl0ACcAAA0EDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBEQQEUwAABAAZBAEYVmVjPFQ+AAARBAwMeGNtCHYzKFBhbGxldEluZm8AABgBFGluZGV4tAEMdTMyAAEQbmFtZRUEAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABLG1vZHVsZV9uYW1lFQQBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEUbWFqb3K0AQx1MzIAARRtaW5vcrQBDHUzMgABFHBhdGNotAEMdTMyAAAVBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AABkEAAACEQQAHQQEGE9wdGlvbgQEVAEZAgEIEE5vbmUAAAAQU29tZQQAGQIAAAEAACEEDAx4Y20IdjNEUXVlcnlSZXNwb25zZUluZm8AAAwBLGRlc3RpbmF0aW9uGQIBNE11bHRpTG9jYXRpb24AASBxdWVyeV9pZCwBHFF1ZXJ5SWQAAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AAAlBBAMeGNtCHYzKG11bHRpYXNzZXRATXVsdGlBc3NldEZpbHRlcgABCCBEZWZpbml0ZQQACQIBLE11bHRpQXNzZXRzAAAAEFdpbGQEACkEAThXaWxkTXVsdGlBc3NldAABAAApBBAMeGNtCHYzKG11bHRpYXNzZXQ4V2lsZE11bHRpQXNzZXQAARAMQWxsAAAAFEFsbE9mCAEIaWQVAgEcQXNzZXRJZAABDGZ1bi0EATxXaWxkRnVuZ2liaWxpdHkAAQAoQWxsQ291bnRlZAQAtAEMdTMyAAIAMEFsbE9mQ291bnRlZAwBCGlkFQIBHEFzc2V0SWQAAQxmdW4tBAE8V2lsZEZ1bmdpYmlsaXR5AAEUY291bnS0AQx1MzIAAwAALQQQDHhjbQh2MyhtdWx0aWFzc2V0PFdpbGRGdW5naWJpbGl0eQABCCBGdW5naWJsZQAAACxOb25GdW5naWJsZQABAAAxBAwsc3RhZ2luZ194Y20IdjQMWGNtBBBDYWxsAAAEADUEAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AAA1BAAAAjkEADkEDCxzdGFnaW5nX3hjbQh2NCxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BAA1AgEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQANQIBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BAA1AgEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZCwBHFF1ZXJ5SWQAASByZXNwb25zZT0EASBSZXNwb25zZQABKG1heF93ZWlnaHQoARhXZWlnaHQAARxxdWVyaWVyUQQBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0czUCARhBc3NldHMAASxiZW5lZmljaWFyeUUCASBMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0czUCARhBc3NldHMAARBkZXN0RQIBIExvY2F0aW9uAAEMeGNtMQQBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZMEBAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdCgBGFdlaWdodAABEGNhbGzJAQFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVytAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZbQBDHUzMgABMG1heF9jYXBhY2l0ebQBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50tAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcrQBDHUzMgABGHNlbmRlcrQBDHUzMgABJHJlY2lwaWVudLQBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBABJAgFASW50ZXJpb3JMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQAVQQBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0c1kEASxBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ5RQIBIExvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHNZBAEsQXNzZXRGaWx0ZXIAARBkZXN0RQIBIExvY2F0aW9uAAEMeGNtMQQBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmVZBAEsQXNzZXRGaWx0ZXIAARB3YW50NQIBGEFzc2V0cwABHG1heGltYWwgARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzWQQBLEFzc2V0RmlsdGVyAAEccmVzZXJ2ZUUCASBMb2NhdGlvbgABDHhjbTEEARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHNZBAEsQXNzZXRGaWx0ZXIAARBkZXN0RQIBIExvY2F0aW9uAAEMeGNtMQQBHFhjbTwoKT4AEQA0UmVwb3J0SG9sZGluZwgBNHJlc3BvbnNlX2luZm9VBAFEUXVlcnlSZXNwb25zZUluZm8AARhhc3NldHNZBAEsQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlcz0CARRBc3NldAABMHdlaWdodF9saW1pdN0BASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQAMQQBJFhjbTxDYWxsPgAVACxTZXRBcHBlbmRpeAQAMQQBJFhjbTxDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHM1AgEYQXNzZXRzAAEYdGlja2V0RQIBIExvY2F0aW9uABgAEFRyYXAEACwBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWQsARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodCgBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BAA1AgEYQXNzZXRzABwALEV4cGVjdEFzc2V0BAA1AgEYQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQAUQQBQE9wdGlvbjxMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEAAEEAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQAuQEBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWU4ARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb1UEAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleLQBDHUzMgABEG5hbWU4ARxWZWM8dTg+AAEsbW9kdWxlX25hbWU4ARxWZWM8dTg+AAEsY3JhdGVfbWFqb3K0AQx1MzIAATxtaW5fY3JhdGVfbWlub3K0AQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAFUEAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQAUQIBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3JrWQIBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9uSQIBQEludGVyaW9yTG9jYXRpb24AAQx4Y20xBAEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldD0CARRBc3NldAABIHVubG9ja2VyRQIBIExvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXQ9AgEUQXNzZXQAARh0YXJnZXRFAgEgTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldD0CARRBc3NldAABFG93bmVyRQIBIExvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldD0CARRBc3NldAABGGxvY2tlckUCASBMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhdyABEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAEUCASBMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXTdAQEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW5RBAFAT3B0aW9uPExvY2F0aW9uPgAvAAA9BAwsc3RhZ2luZ194Y20IdjQgUmVzcG9uc2UAARgQTnVsbAAAABhBc3NldHMEADUCARhBc3NldHMAAQA8RXhlY3V0aW9uUmVzdWx0BAABBAFQT3B0aW9uPCh1MzIsIEVycm9yKT4AAgAcVmVyc2lvbgQAEAE4c3VwZXI6OlZlcnNpb24AAwAsUGFsbGV0c0luZm8EAEEEAZhCb3VuZGVkVmVjPFBhbGxldEluZm8sIE1heFBhbGxldHNJbmZvPgAEADhEaXNwYXRjaFJlc3VsdAQAuQEBOE1heWJlRXJyb3JDb2RlAAUAAEEEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBRQQEUwAABABNBAEYVmVjPFQ+AABFBAwsc3RhZ2luZ194Y20IdjQoUGFsbGV0SW5mbwAAGAEUaW5kZXi0AQx1MzIAARBuYW1lSQQBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEsbW9kdWxlX25hbWVJBAGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AARRtYWpvcrQBDHUzMgABFG1pbm9ytAEMdTMyAAEUcGF0Y2i0AQx1MzIAAEkEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAATQQAAAJFBABRBAQYT3B0aW9uBARUAUUCAQgQTm9uZQAAABBTb21lBABFAgAAAQAAVQQMLHN0YWdpbmdfeGNtCHY0RFF1ZXJ5UmVzcG9uc2VJbmZvAAAMASxkZXN0aW5hdGlvbkUCASBMb2NhdGlvbgABIHF1ZXJ5X2lkLAEcUXVlcnlJZAABKG1heF93ZWlnaHQoARhXZWlnaHQAAFkEECxzdGFnaW5nX3hjbQh2NBRhc3NldCxBc3NldEZpbHRlcgABCCBEZWZpbml0ZQQANQIBGEFzc2V0cwAAABBXaWxkBABdBAEkV2lsZEFzc2V0AAEAAF0EECxzdGFnaW5nX3hjbQh2NBRhc3NldCRXaWxkQXNzZXQAARAMQWxsAAAAFEFsbE9mCAEIaWRBAgEcQXNzZXRJZAABDGZ1bmEEATxXaWxkRnVuZ2liaWxpdHkAAQAoQWxsQ291bnRlZAQAtAEMdTMyAAIAMEFsbE9mQ291bnRlZAwBCGlkQQIBHEFzc2V0SWQAAQxmdW5hBAE8V2lsZEZ1bmdpYmlsaXR5AAEUY291bnS0AQx1MzIAAwAAYQQQLHN0YWdpbmdfeGNtCHY0FGFzc2V0PFdpbGRGdW5naWJpbGl0eQABCCBGdW5naWJsZQAAACxOb25GdW5naWJsZQABAABlBAgMeGNtMFZlcnNpb25lZFhjbQQsUnVudGltZUNhbGwAAQwIVjMEAGkEAVB2Mzo6WGNtPFJ1bnRpbWVDYWxsPgADAAhWNAQAeQQBUHY0OjpYY208UnVudGltZUNhbGw+AAQACFY1BACFBAFQdjU6OlhjbTxSdW50aW1lQ2FsbD4ABQAAaQQMDHhjbQh2MwxYY20EEENhbGwAAAQAbQQBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAG0EAAACcQQAcQQMDHhjbQh2MyxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BAAJAgEsTXVsdGlBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAAJAgEsTXVsdGlBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQACQIBLE11bHRpQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZCwBHFF1ZXJ5SWQAASByZXNwb25zZf0DASBSZXNwb25zZQABKG1heF93ZWlnaHQoARhXZWlnaHQAARxxdWVyaWVyHQQBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzCQIBLE11bHRpQXNzZXRzAAEsYmVuZWZpY2lhcnkZAgE0TXVsdGlMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0cwkCASxNdWx0aUFzc2V0cwABEGRlc3QZAgE0TXVsdGlMb2NhdGlvbgABDHhjbfEDARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmTBAQEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3QoARhXZWlnaHQAARBjYWxsdQQBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcrQBDHUzMgABQG1heF9tZXNzYWdlX3NpemW0AQx1MzIAATBtYXhfY2FwYWNpdHm0AQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudLQBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3K0AQx1MzIAARhzZW5kZXK0AQx1MzIAASRyZWNpcGllbnS0AQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAHQIBVEludGVyaW9yTXVsdGlMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQAIQQBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0cyUEAUBNdWx0aUFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnkZAgE0TXVsdGlMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzJQQBQE11bHRpQXNzZXRGaWx0ZXIAARBkZXN0GQIBNE11bHRpTG9jYXRpb24AAQx4Y23xAwEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2ZSUEAUBNdWx0aUFzc2V0RmlsdGVyAAEQd2FudAkCASxNdWx0aUFzc2V0cwABHG1heGltYWwgARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzJQQBQE11bHRpQXNzZXRGaWx0ZXIAARxyZXNlcnZlGQIBNE11bHRpTG9jYXRpb24AAQx4Y23xAwEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzJQQBQE11bHRpQXNzZXRGaWx0ZXIAARBkZXN0GQIBNE11bHRpTG9jYXRpb24AAQx4Y23xAwEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mbyEEAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0cyUEAUBNdWx0aUFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXMRAgEoTXVsdGlBc3NldAABMHdlaWdodF9saW1pdN0BASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQAaQQBJFhjbTxDYWxsPgAVACxTZXRBcHBlbmRpeAQAaQQBJFhjbTxDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHMJAgEsTXVsdGlBc3NldHMAARh0aWNrZXQZAgE0TXVsdGlMb2NhdGlvbgAYABBUcmFwBAAsAQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkLAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHQoARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQACQIBLE11bHRpQXNzZXRzABwALEV4cGVjdEFzc2V0BAAJAgEsTXVsdGlBc3NldHMAHQAwRXhwZWN0T3JpZ2luBAAdBAFUT3B0aW9uPE11bHRpTG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBAABBAFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEALkBAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm8hBAFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXi0AQx1MzIAARBuYW1lOAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABLGNyYXRlX21ham9ytAEMdTMyAAE8bWluX2NyYXRlX21pbm9ytAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBAAhBAFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EACECASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29yaykCASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbh0CAVRJbnRlcmlvck11bHRpTG9jYXRpb24AAQx4Y23xAwEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldBECAShNdWx0aUFzc2V0AAEgdW5sb2NrZXIZAgE0TXVsdGlMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0EQIBKE11bHRpQXNzZXQAARh0YXJnZXQZAgE0TXVsdGlMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0EQIBKE11bHRpQXNzZXQAARRvd25lchkCATRNdWx0aUxvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldBECAShNdWx0aUFzc2V0AAEYbG9ja2VyGQIBNE11bHRpTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXcgARBib29sACsAIFNldFRvcGljBAAEASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBAAZAgE0TXVsdGlMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXTdAQEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW4dBAFUT3B0aW9uPE11bHRpTG9jYXRpb24+AC8AAHUEDAx4Y204ZG91YmxlX2VuY29kZWQ0RG91YmxlRW5jb2RlZAQEVAAABAEcZW5jb2RlZDgBHFZlYzx1OD4AAHkEDCxzdGFnaW5nX3hjbQh2NAxYY20EEENhbGwAAAQAfQQBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAH0EAAACgQQAgQQMLHN0YWdpbmdfeGNtCHY0LEluc3RydWN0aW9uBBBDYWxsAAHANFdpdGhkcmF3QXNzZXQEADUCARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAA1AgEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEADUCARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lkLAEcUXVlcnlJZAABIHJlc3BvbnNlPQQBIFJlc3BvbnNlAAEobWF4X3dlaWdodCgBGFdlaWdodAABHHF1ZXJpZXJRBAFAT3B0aW9uPExvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzNQIBGEFzc2V0cwABLGJlbmVmaWNpYXJ5RQIBIExvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzNQIBGEFzc2V0cwABEGRlc3RFAgEgTG9jYXRpb24AAQx4Y20xBAEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5kwQEBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0KAEYV2VpZ2h0AAEQY2FsbHUEAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXK0AQx1MzIAAUBtYXhfbWVzc2FnZV9zaXpltAEMdTMyAAEwbWF4X2NhcGFjaXR5tAEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnS0AQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9ytAEMdTMyAAEYc2VuZGVytAEMdTMyAAEkcmVjaXBpZW50tAEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EAEkCAUBJbnRlcmlvckxvY2F0aW9uAAsALFJlcG9ydEVycm9yBABVBAFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzWQQBLEFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnlFAgEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c1kEASxBc3NldEZpbHRlcgABEGRlc3RFAgEgTG9jYXRpb24AAQx4Y20xBAEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2ZVkEASxBc3NldEZpbHRlcgABEHdhbnQ1AgEYQXNzZXRzAAEcbWF4aW1hbCABEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHNZBAEsQXNzZXRGaWx0ZXIAARxyZXNlcnZlRQIBIExvY2F0aW9uAAEMeGNtMQQBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0c1kEASxBc3NldEZpbHRlcgABEGRlc3RFAgEgTG9jYXRpb24AAQx4Y20xBAEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb1UEAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0c1kEASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzPQIBFEFzc2V0AAEwd2VpZ2h0X2xpbWl03QEBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBAB5BAEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BAB5BAEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0czUCARhBc3NldHMAARh0aWNrZXRFAgEgTG9jYXRpb24AGAAQVHJhcAQALAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZCwBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0KAEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEADUCARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEADUCARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBABRBAFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAAQQBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBAC5AQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvVQQBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4tAEMdTMyAAEQbmFtZTgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcrQBDHUzMgABPG1pbl9jcmF0ZV9taW5vcrQBDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAVQQBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBABRAgEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmtZAgEkTmV0d29ya0lkAAEsZGVzdGluYXRpb25JAgFASW50ZXJpb3JMb2NhdGlvbgABDHhjbTEEARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0PQIBFEFzc2V0AAEgdW5sb2NrZXJFAgEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldD0CARRBc3NldAABGHRhcmdldEUCASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0PQIBFEFzc2V0AAEUb3duZXJFAgEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0PQIBFEFzc2V0AAEYbG9ja2VyRQIBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3IAEQYm9vbAArACBTZXRUb3BpYwQABAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQARQIBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdN0BASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpblEEAUBPcHRpb248TG9jYXRpb24+AC8AAIUEDCxzdGFnaW5nX3hjbQh2NQxYY20EEENhbGwAAAQAiQQBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAIkEAAACjQQAjQQMLHN0YWdpbmdfeGNtCHY1LEluc3RydWN0aW9uBBBDYWxsAAHQNFdpdGhkcmF3QXNzZXQEAH0BARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAB9AQEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAH0BARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lkLAEcUXVlcnlJZAABIHJlc3BvbnNlnQEBIFJlc3BvbnNlAAEobWF4X3dlaWdodCgBGFdlaWdodAABHHF1ZXJpZXJNAQFAT3B0aW9uPExvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzfQEBGEFzc2V0cwABLGJlbmVmaWNpYXJ5pAEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHN9AQEYQXNzZXRzAAEQZGVzdKQBIExvY2F0aW9uAAEMeGNtcQEBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZMEBAShPcmlnaW5LaW5kAAFMZmFsbGJhY2tfbWF4X3dlaWdodMUBAThPcHRpb248V2VpZ2h0PgABEGNhbGx1BAFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVytAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZbQBDHUzMgABMG1heF9jYXBhY2l0ebQBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50tAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcrQBDHUzMgABGHNlbmRlcrQBDHUzMgABJHJlY2lwaWVudLQBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBACoAUBJbnRlcmlvckxvY2F0aW9uAAsALFJlcG9ydEVycm9yBADNAQFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRz0QEBLEFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnmkASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRz0QEBLEFzc2V0RmlsdGVyAAEQZGVzdKQBIExvY2F0aW9uAAEMeGNtcQEBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmXRAQEsQXNzZXRGaWx0ZXIAARB3YW50fQEBGEFzc2V0cwABHG1heGltYWwgARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRz0QEBLEFzc2V0RmlsdGVyAAEccmVzZXJ2ZaQBIExvY2F0aW9uAAEMeGNtcQEBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0c9EBASxBc3NldEZpbHRlcgABEGRlc3SkASBMb2NhdGlvbgABDHhjbXEBARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvzQEBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRz0QEBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXOFAQEUQXNzZXQAATB3ZWlnaHRfbGltaXTdAQEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAIUEASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAIUEASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzfQEBGEFzc2V0cwABGHRpY2tldKQBIExvY2F0aW9uABgAEFRyYXAEACwBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWQsARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodCgBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BAB9AQEYQXNzZXRzABwALEV4cGVjdEFzc2V0BAB9AQEYQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQATQEBQE9wdGlvbjxMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEAKEBAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQAuQEBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWU4ARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb80BAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleLQBDHUzMgABEG5hbWU4ARxWZWM8dTg+AAEsbW9kdWxlX25hbWU4ARxWZWM8dTg+AAEsY3JhdGVfbWFqb3K0AQx1MzIAATxtaW5fY3JhdGVfbWlub3K0AQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAM0BAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQAsAEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmu8ASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbqgBQEludGVyaW9yTG9jYXRpb24AAQx4Y21xAQEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldIUBARRBc3NldAABIHVubG9ja2VypAEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldIUBARRBc3NldAABGHRhcmdldKQBIExvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXSFAQEUQXNzZXQAARRvd25lcqQBIExvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldIUBARRBc3NldAABGGxvY2tlcqQBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3IAEQYm9vbAArACBTZXRUb3BpYwQABAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQApAEgTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl03QEBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2luTQEBQE9wdGlvbjxMb2NhdGlvbj4ALwAcUGF5RmVlcwQBFGFzc2V0hQEBFEFzc2V0ADAAQEluaXRpYXRlVHJhbnNmZXIUASxkZXN0aW5hdGlvbqQBIExvY2F0aW9uAAEscmVtb3RlX2ZlZXPhAQFsT3B0aW9uPEFzc2V0VHJhbnNmZXJGaWx0ZXI+AAE8cHJlc2VydmVfb3JpZ2luIAEQYm9vbAABGGFzc2V0c+kBAeBCb3VuZGVkVmVjPEFzc2V0VHJhbnNmZXJGaWx0ZXIsIE1heEFzc2V0VHJhbnNmZXJGaWx0ZXJzPgABKHJlbW90ZV94Y21xAQEcWGNtPCgpPgAxAERFeGVjdXRlV2l0aE9yaWdpbggBRGRlc2NlbmRhbnRfb3JpZ2lu8QEBYE9wdGlvbjxJbnRlcmlvckxvY2F0aW9uPgABDHhjbYUEASRYY208Q2FsbD4AMgAgU2V0SGludHMEARRoaW50c/UBAYRCb3VuZGVkVmVjPEhpbnQsIEhpbnROdW1WYXJpYW50cz4AMwAAkQQEGE9wdGlvbgQEVAEQAQgQTm9uZQAAABBTb21lBAAQAAABAACVBBBQc3RhZ2luZ194Y21fZXhlY3V0b3IYdHJhaXRzOGFzc2V0X3RyYW5zZmVyMFRyYW5zZmVyVHlwZQABECBUZWxlcG9ydAAAADBMb2NhbFJlc2VydmUAAQBIRGVzdGluYXRpb25SZXNlcnZlAAIANFJlbW90ZVJlc2VydmUEAIECAURWZXJzaW9uZWRMb2NhdGlvbgADAACZBAgMeGNtQFZlcnNpb25lZEFzc2V0SWQAAQwIVjMEABUCASx2Mzo6QXNzZXRJZAADAAhWNAQAQQIBLHY0OjpBc3NldElkAAQACFY1BACJAQEsdjU6OkFzc2V0SWQABQAAnQQMSGN1bXVsdXNfcGFsbGV0X3hjbRhwYWxsZXQQQ2FsbAQEVAABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6hBAxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0EENhbGwEBFQAAQgkcmVhcF9wYWdlCAE4bWVzc2FnZV9vcmlnaW6RAgFITWVzc2FnZU9yaWdpbk9mPFQ+AAEocGFnZV9pbmRleBABJFBhZ2VJbmRleAAABD0BUmVtb3ZlIGEgcGFnZSB3aGljaCBoYXMgbm8gbW9yZSBtZXNzYWdlcyByZW1haW5pbmcgdG8gYmUgcHJvY2Vzc2VkIG9yIGlzIHN0YWxlLkhleGVjdXRlX292ZXJ3ZWlnaHQQAThtZXNzYWdlX29yaWdpbpECAUhNZXNzYWdlT3JpZ2luT2Y8VD4AARBwYWdlEAEkUGFnZUluZGV4AAEUaW5kZXgQARxUOjpTaXplAAEwd2VpZ2h0X2xpbWl0KAEYV2VpZ2h0AAE0eEV4ZWN1dGUgYW4gb3ZlcndlaWdodCBtZXNzYWdlLgBNAVRlbXBvcmFyeSBwcm9jZXNzaW5nIGVycm9ycyB3aWxsIGJlIHByb3BhZ2F0ZWQgd2hlcmVhcyBwZXJtYW5lbnQgZXJyb3JzIGFyZSB0cmVhdGVkVGFzIHN1Y2Nlc3MgY29uZGl0aW9uLgB0LSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYC41AS0gYG1lc3NhZ2Vfb3JpZ2luYDogVGhlIG9yaWdpbiBmcm9tIHdoaWNoIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkIGFycml2ZWQuPQEtIGBwYWdlYDogVGhlIHBhZ2UgaW4gdGhlIHF1ZXVlIGluIHdoaWNoIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkIGlzIHNpdHRpbmcuCQEtIGBpbmRleGA6IFRoZSBpbmRleCBpbnRvIHRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZSB0byBiZSBleGVjdXRlZC5ZAS0gYHdlaWdodF9saW1pdGA6IFRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgYWxsb3dlZCB0byBiZSBjb25zdW1lZCBpbiB0aGUgZXhlY3V0aW9uRCAgb2YgdGhlIG1lc3NhZ2UuAPRCZW5jaG1hcmsgY29tcGxleGl0eSBjb25zaWRlcmF0aW9uczogTyhpbmRleCArIHdlaWdodF9saW1pdCkuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLqUEDDhwYWxsZXRfdXRpbGl0eRhwYWxsZXQQQ2FsbAQEVAABIBRiYXRjaAQBFGNhbGxzqQQBfFZlYzw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAEh8U2VuZCBhIGJhdGNoIG9mIGRpc3BhdGNoIGNhbGxzLgCwTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4AXQEtIGBjYWxsc2A6IFRoZSBjYWxscyB0byBiZSBkaXNwYXRjaGVkIGZyb20gdGhlIHNhbWUgb3JpZ2luLiBUaGUgbnVtYmVyIG9mIGNhbGwgbXVzdCBub3Q5ASAgZXhjZWVkIHRoZSBjb25zdGFudDogYGJhdGNoZWRfY2FsbHNfbGltaXRgIChhdmFpbGFibGUgaW4gY29uc3RhbnQgbWV0YWRhdGEpLgBVAUlmIG9yaWdpbiBpcyByb290IHRoZW4gdGhlIGNhbGxzIGFyZSBkaXNwYXRjaGVkIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLgBVAVRoaXMgd2lsbCByZXR1cm4gYE9rYCBpbiBhbGwgY2lyY3Vtc3RhbmNlcy4gVG8gZGV0ZXJtaW5lIHRoZSBzdWNjZXNzIG9mIHRoZSBiYXRjaCwgYW4xAWV2ZW50IGlzIGRlcG9zaXRlZC4gSWYgYSBjYWxsIGZhaWxlZCBhbmQgdGhlIGJhdGNoIHdhcyBpbnRlcnJ1cHRlZCwgdGhlbiB0aGVVAWBCYXRjaEludGVycnVwdGVkYCBldmVudCBpcyBkZXBvc2l0ZWQsIGFsb25nIHdpdGggdGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIGNhbGxzIG1hZGVNAWFuZCB0aGUgZXJyb3Igb2YgdGhlIGZhaWxlZCBjYWxsLiBJZiBhbGwgd2VyZSBzdWNjZXNzZnVsLCB0aGVuIHRoZSBgQmF0Y2hDb21wbGV0ZWRgTGV2ZW50IGlzIGRlcG9zaXRlZC40YXNfZGVyaXZhdGl2ZQgBFGluZGV42QIBDHUxNgABEGNhbGxpAwF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABNNxTZW5kIGEgY2FsbCB0aHJvdWdoIGFuIGluZGV4ZWQgcHNldWRvbnltIG9mIHRoZSBzZW5kZXIuAFUBRmlsdGVyIGZyb20gb3JpZ2luIGFyZSBwYXNzZWQgYWxvbmcuIFRoZSBjYWxsIHdpbGwgYmUgZGlzcGF0Y2hlZCB3aXRoIGFuIG9yaWdpbiB3aGljaLx1c2UgdGhlIHNhbWUgZmlsdGVyIGFzIHRoZSBvcmlnaW4gb2YgdGhpcyBjYWxsLgBFAU5PVEU6IElmIHlvdSBuZWVkIHRvIGVuc3VyZSB0aGF0IGFueSBhY2NvdW50LWJhc2VkIGZpbHRlcmluZyBpcyBub3QgaG9ub3JlZCAoaS5lLmEBYmVjYXVzZSB5b3UgZXhwZWN0IGBwcm94eWAgdG8gaGF2ZSBiZWVuIHVzZWQgcHJpb3IgaW4gdGhlIGNhbGwgc3RhY2sgYW5kIHlvdSBkbyBub3Qgd2FudFEBdGhlIGNhbGwgcmVzdHJpY3Rpb25zIHRvIGFwcGx5IHRvIGFueSBzdWItYWNjb3VudHMpLCB0aGVuIHVzZSBgYXNfbXVsdGlfdGhyZXNob2xkXzFgfGluIHRoZSBNdWx0aXNpZyBwYWxsZXQgaW5zdGVhZC4A9E5PVEU6IFByaW9yIHRvIHZlcnNpb24gKjEyLCB0aGlzIHdhcyBjYWxsZWQgYGFzX2xpbWl0ZWRfc3ViYC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLiRiYXRjaF9hbGwEARRjYWxsc6kEAXxWZWM8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAI07FNlbmQgYSBiYXRjaCBvZiBkaXNwYXRjaCBjYWxscyBhbmQgYXRvbWljYWxseSBleGVjdXRlIHRoZW0uIQFUaGUgd2hvbGUgdHJhbnNhY3Rpb24gd2lsbCByb2xsYmFjayBhbmQgZmFpbCBpZiBhbnkgb2YgdGhlIGNhbGxzIGZhaWxlZC4AsE1heSBiZSBjYWxsZWQgZnJvbSBhbnkgb3JpZ2luIGV4Y2VwdCBgTm9uZWAuAF0BLSBgY2FsbHNgOiBUaGUgY2FsbHMgdG8gYmUgZGlzcGF0Y2hlZCBmcm9tIHRoZSBzYW1lIG9yaWdpbi4gVGhlIG51bWJlciBvZiBjYWxsIG11c3Qgbm90OQEgIGV4Y2VlZCB0aGUgY29uc3RhbnQ6IGBiYXRjaGVkX2NhbGxzX2xpbWl0YCAoYXZhaWxhYmxlIGluIGNvbnN0YW50IG1ldGFkYXRhKS4AVQFJZiBvcmlnaW4gaXMgcm9vdCB0aGVuIHRoZSBjYWxscyBhcmUgZGlzcGF0Y2hlZCB3aXRob3V0IGNoZWNraW5nIG9yaWdpbiBmaWx0ZXIuIChUaGlz7GluY2x1ZGVzIGJ5cGFzc2luZyBgZnJhbWVfc3lzdGVtOjpDb25maWc6OkJhc2VDYWxsRmlsdGVyYCkuADQjIyBDb21wbGV4aXR50C0gTyhDKSB3aGVyZSBDIGlzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gYmUgYmF0Y2hlZC4sZGlzcGF0Y2hfYXMIASRhc19vcmlnaW6YAVRCb3g8VDo6UGFsbGV0c09yaWdpbj4AARBjYWxsaQMBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAxjIRGlzcGF0Y2hlcyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBhIHByb3ZpZGVkIG9yaWdpbi4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4ANCMjIENvbXBsZXhpdHkcLSBPKDEpLixmb3JjZV9iYXRjaAQBFGNhbGxzqQQBfFZlYzw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABDR8U2VuZCBhIGJhdGNoIG9mIGRpc3BhdGNoIGNhbGxzLtRVbmxpa2UgYGJhdGNoYCwgaXQgYWxsb3dzIGVycm9ycyBhbmQgd29uJ3QgaW50ZXJydXB0LgCwTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4AXQEtIGBjYWxsc2A6IFRoZSBjYWxscyB0byBiZSBkaXNwYXRjaGVkIGZyb20gdGhlIHNhbWUgb3JpZ2luLiBUaGUgbnVtYmVyIG9mIGNhbGwgbXVzdCBub3Q5ASAgZXhjZWVkIHRoZSBjb25zdGFudDogYGJhdGNoZWRfY2FsbHNfbGltaXRgIChhdmFpbGFibGUgaW4gY29uc3RhbnQgbWV0YWRhdGEpLgBNAUlmIG9yaWdpbiBpcyByb290IHRoZW4gdGhlIGNhbGxzIGFyZSBkaXNwYXRjaCB3aXRob3V0IGNoZWNraW5nIG9yaWdpbiBmaWx0ZXIuIChUaGlz7GluY2x1ZGVzIGJ5cGFzc2luZyBgZnJhbWVfc3lzdGVtOjpDb25maWc6OkJhc2VDYWxsRmlsdGVyYCkuADQjIyBDb21wbGV4aXR50C0gTyhDKSB3aGVyZSBDIGlzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gYmUgYmF0Y2hlZC4sd2l0aF93ZWlnaHQIARBjYWxsaQMBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AARh3ZWlnaHQoARhXZWlnaHQABRjERGlzcGF0Y2ggYSBmdW5jdGlvbiBjYWxsIHdpdGggYSBzcGVjaWZpZWQgd2VpZ2h0LgAtAVRoaXMgZnVuY3Rpb24gZG9lcyBub3QgY2hlY2sgdGhlIHdlaWdodCBvZiB0aGUgY2FsbCwgYW5kIGluc3RlYWQgYWxsb3dzIHRoZbhSb290IG9yaWdpbiB0byBzcGVjaWZ5IHRoZSB3ZWlnaHQgb2YgdGhlIGNhbGwuAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfUm9vdF8uHGlmX2Vsc2UIARBtYWluaQMBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AASBmYWxsYmFja2kDAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAZcFQFEaXNwYXRjaCBhIGZhbGxiYWNrIGNhbGwgaW4gdGhlIGV2ZW50IHRoZSBtYWluIGNhbGwgZmFpbHMgdG8gZXhlY3V0ZS6wTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4A5FRoaXMgZnVuY3Rpb24gZmlyc3QgYXR0ZW1wdHMgdG8gZGlzcGF0Y2ggdGhlIGBtYWluYCBjYWxsLtRJZiB0aGUgYG1haW5gIGNhbGwgZmFpbHMsIHRoZSBgZmFsbGJhY2tgIGlzIGF0dGVtdGVkLhUBaWYgdGhlIGZhbGxiYWNrIGlzIHN1Y2Nlc3NmdWxseSBkaXNwYXRjaGVkLCB0aGUgd2VpZ2h0cyBvZiBib3RoIGNhbGxzJQFhcmUgYWNjdW11bGF0ZWQgYW5kIGFuIGV2ZW50IGNvbnRhaW5pbmcgdGhlIG1haW4gY2FsbCBlcnJvciBpcyBkZXBvc2l0ZWQuANxJbiB0aGUgZXZlbnQgb2YgYSBmYWxsYmFjayBmYWlsdXJlIHRoZSB3aG9sZSBjYWxsIGZhaWxzaHdpdGggdGhlIHdlaWdodHMgcmV0dXJuZWQuAEEBLSBgbWFpbmA6IFRoZSBtYWluIGNhbGwgdG8gYmUgZGlzcGF0Y2hlZC4gVGhpcyBpcyB0aGUgcHJpbWFyeSBhY3Rpb24gdG8gZXhlY3V0ZS49AS0gYGZhbGxiYWNrYDogVGhlIGZhbGxiYWNrIGNhbGwgdG8gYmUgZGlzcGF0Y2hlZCBpbiBjYXNlIHRoZSBgbWFpbmAgY2FsbCBmYWlscy4ARCMjIERpc3BhdGNoIExvZ2ljQQEtIElmIHRoZSBvcmlnaW4gaXMgYHJvb3RgLCBib3RoIHRoZSBtYWluIGFuZCBmYWxsYmFjayBjYWxscyBhcmUgZXhlY3V0ZWQgd2l0aG91dHggIGFwcGx5aW5nIGFueSBvcmlnaW4gZmlsdGVycy5JAS0gSWYgdGhlIG9yaWdpbiBpcyBub3QgYHJvb3RgLCB0aGUgb3JpZ2luIGZpbHRlciBpcyBhcHBsaWVkIHRvIGJvdGggdGhlIGBtYWluYCBhbmRMICBgZmFsbGJhY2tgIGNhbGxzLgAsIyMgVXNlIENhc2VZAS0gU29tZSB1c2UgY2FzZXMgbWlnaHQgaW52b2x2ZSBzdWJtaXR0aW5nIGEgYGJhdGNoYCB0eXBlIGNhbGwgaW4gZWl0aGVyIG1haW4sIGZhbGxiYWNrKCAgb3IgYm90aC5QZGlzcGF0Y2hfYXNfZmFsbGlibGUIASRhc19vcmlnaW6YAVRCb3g8VDo6UGFsbGV0c09yaWdpbj4AARBjYWxsaQMBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABxTIRGlzcGF0Y2hlcyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBhIHByb3ZpZGVkIG9yaWdpbi4AUQFBbG1vc3QgdGhlIHNhbWUgYXMgW2BQYWxsZXQ6OmRpc3BhdGNoX2FzYF0gYnV0IGZvcndhcmRzIGFueSBlcnJvciBvZiB0aGUgaW5uZXIgY2FsbC4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuqQQAAAJpAwCtBAw8cGFsbGV0X211bHRpc2lnGHBhbGxldBBDYWxsBARUAAEUUGFzX211bHRpX3RocmVzaG9sZF8xCAFEb3RoZXJfc2lnbmF0b3JpZXNVAQFEVmVjPFQ6OkFjY291bnRJZD4AARBjYWxsaQMBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AADBRAUltbWVkaWF0ZWx5IGRpc3BhdGNoIGEgbXVsdGktc2lnbmF0dXJlIGNhbGwgdXNpbmcgYSBzaW5nbGUgYXBwcm92YWwgZnJvbSB0aGUgY2FsbGVyLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAD0BLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGFyZSBwYXJ0IG9mIHRoZQEBbXVsdGktc2lnbmF0dXJlLCBidXQgZG8gbm90IHBhcnRpY2lwYXRlIGluIHRoZSBhcHByb3ZhbCBwcm9jZXNzLogtIGBjYWxsYDogVGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuALhSZXN1bHQgaXMgZXF1aXZhbGVudCB0byB0aGUgZGlzcGF0Y2hlZCByZXN1bHQuADQjIyBDb21wbGV4aXR5GQFPKFogKyBDKSB3aGVyZSBaIGlzIHRoZSBsZW5ndGggb2YgdGhlIGNhbGwgYW5kIEMgaXRzIGV4ZWN1dGlvbiB3ZWlnaHQuIGFzX211bHRpFAEkdGhyZXNob2xk2QIBDHUxNgABRG90aGVyX3NpZ25hdG9yaWVzVQEBRFZlYzxUOjpBY2NvdW50SWQ+AAE8bWF5YmVfdGltZXBvaW50sQQBkE9wdGlvbjxUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+PgABEGNhbGxpAwF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABKG1heF93ZWlnaHQoARhXZWlnaHQAAZxVAVJlZ2lzdGVyIGFwcHJvdmFsIGZvciBhIGRpc3BhdGNoIHRvIGJlIG1hZGUgZnJvbSBhIGRldGVybWluaXN0aWMgY29tcG9zaXRlIGFjY291bnQgaWb4YXBwcm92ZWQgYnkgYSB0b3RhbCBvZiBgdGhyZXNob2xkIC0gMWAgb2YgYG90aGVyX3NpZ25hdG9yaWVzYC4AsElmIHRoZXJlIGFyZSBlbm91Z2gsIHRoZW4gZGlzcGF0Y2ggdGhlIGNhbGwuAC0BUGF5bWVudDogYERlcG9zaXRCYXNlYCB3aWxsIGJlIHJlc2VydmVkIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCBwbHVzPQFgdGhyZXNob2xkYCB0aW1lcyBgRGVwb3NpdEZhY3RvcmAuIEl0IGlzIHJldHVybmVkIG9uY2UgdGhpcyBkaXNwYXRjaCBoYXBwZW5zIG9yNGlzIGNhbmNlbGxlZC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBVAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIGZvciB0aGlzIGRpc3BhdGNoIGJlZm9yZSBpdCBpcyBleGVjdXRlZC5BAS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBjYW4gYXBwcm92ZSB0aGlzbGRpc3BhdGNoLiBNYXkgbm90IGJlIGVtcHR5LlkBLSBgbWF5YmVfdGltZXBvaW50YDogSWYgdGhpcyBpcyB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gdGhpcyBtdXN0IGJlIGBOb25lYC4gSWYgaXQgaXNRAW5vdCB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gaXQgbXVzdCBiZSBgU29tZWAsIHdpdGggdGhlIHRpbWVwb2ludCAoYmxvY2sgbnVtYmVyIGFuZNR0cmFuc2FjdGlvbiBpbmRleCkgb2YgdGhlIGZpcnN0IGFwcHJvdmFsIHRyYW5zYWN0aW9uLogtIGBjYWxsYDogVGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuAB0BTk9URTogVW5sZXNzIHRoaXMgaXMgdGhlIGZpbmFsIGFwcHJvdmFsLCB5b3Ugd2lsbCBnZW5lcmFsbHkgd2FudCB0byB1c2UZAWBhcHByb3ZlX2FzX211bHRpYCBpbnN0ZWFkLCBzaW5jZSBpdCBvbmx5IHJlcXVpcmVzIGEgaGFzaCBvZiB0aGUgY2FsbC4AWQFSZXN1bHQgaXMgZXF1aXZhbGVudCB0byB0aGUgZGlzcGF0Y2hlZCByZXN1bHQgaWYgYHRocmVzaG9sZGAgaXMgZXhhY3RseSBgMWAuIE90aGVyd2lzZVUBb24gc3VjY2VzcywgcmVzdWx0IGlzIGBPa2AgYW5kIHRoZSByZXN1bHQgZnJvbSB0aGUgaW50ZXJpb3IgY2FsbCwgaWYgaXQgd2FzIGV4ZWN1dGVkLNxtYXkgYmUgZm91bmQgaW4gdGhlIGRlcG9zaXRlZCBgTXVsdGlzaWdFeGVjdXRlZGAgZXZlbnQuADQjIyBDb21wbGV4aXR5UC0gYE8oUyArIFogKyBDYWxsKWAuzC0gVXAgdG8gb25lIGJhbGFuY2UtcmVzZXJ2ZSBvciB1bnJlc2VydmUgb3BlcmF0aW9uLj0BLSBPbmUgcGFzc3Rocm91Z2ggb3BlcmF0aW9uLCBvbmUgaW5zZXJ0LCBib3RoIGBPKFMpYCB3aGVyZSBgU2AgaXMgdGhlIG51bWJlciBvZkUBICBzaWduYXRvcmllcy4gYFNgIGlzIGNhcHBlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIHdlaWdodCBiZWluZyBwcm9wb3J0aW9uYWwuIQEtIE9uZSBjYWxsIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhaKWAgd2hlcmUgYFpgIGlzIHR4LWxlbi68LSBPbmUgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFMpYC7ULSBVcCB0byBvbmUgYmluYXJ5IHNlYXJjaCBhbmQgaW5zZXJ0IChgTyhsb2dTICsgUylgKS74LSBJL086IDEgcmVhZCBgTyhTKWAsIHVwIHRvIDEgbXV0YXRlIGBPKFMpYC4gVXAgdG8gb25lIHJlbW92ZS4wLSBPbmUgZXZlbnQubC0gVGhlIHdlaWdodCBvZiB0aGUgYGNhbGxgLk0BLSBTdG9yYWdlOiBpbnNlcnRzIG9uZSBpdGVtLCB2YWx1ZSBzaXplIGJvdW5kZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCBhIGRlcG9zaXQZASAgdGFrZW4gZm9yIGl0cyBsaWZldGltZSBvZiBgRGVwb3NpdEJhc2UgKyB0aHJlc2hvbGQgKiBEZXBvc2l0RmFjdG9yYC5AYXBwcm92ZV9hc19tdWx0aRQBJHRocmVzaG9sZNkCAQx1MTYAAURvdGhlcl9zaWduYXRvcmllc1UBAURWZWM8VDo6QWNjb3VudElkPgABPG1heWJlX3RpbWVwb2ludLEEAZBPcHRpb248VGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASRjYWxsX2hhc2gEASBbdTg7IDMyXQABKG1heF93ZWlnaHQoARhXZWlnaHQAAnhVAVJlZ2lzdGVyIGFwcHJvdmFsIGZvciBhIGRpc3BhdGNoIHRvIGJlIG1hZGUgZnJvbSBhIGRldGVybWluaXN0aWMgY29tcG9zaXRlIGFjY291bnQgaWb4YXBwcm92ZWQgYnkgYSB0b3RhbCBvZiBgdGhyZXNob2xkIC0gMWAgb2YgYG90aGVyX3NpZ25hdG9yaWVzYC4ALQFQYXltZW50OiBgRGVwb3NpdEJhc2VgIHdpbGwgYmUgcmVzZXJ2ZWQgaWYgdGhpcyBpcyB0aGUgZmlyc3QgYXBwcm92YWwsIHBsdXM9AWB0aHJlc2hvbGRgIHRpbWVzIGBEZXBvc2l0RmFjdG9yYC4gSXQgaXMgcmV0dXJuZWQgb25jZSB0aGlzIGRpc3BhdGNoIGhhcHBlbnMgb3I0aXMgY2FuY2VsbGVkLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAFUBLSBgdGhyZXNob2xkYDogVGhlIHRvdGFsIG51bWJlciBvZiBhcHByb3ZhbHMgZm9yIHRoaXMgZGlzcGF0Y2ggYmVmb3JlIGl0IGlzIGV4ZWN1dGVkLkEBLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGNhbiBhcHByb3ZlIHRoaXNsZGlzcGF0Y2guIE1heSBub3QgYmUgZW1wdHkuWQEtIGBtYXliZV90aW1lcG9pbnRgOiBJZiB0aGlzIGlzIHRoZSBmaXJzdCBhcHByb3ZhbCwgdGhlbiB0aGlzIG11c3QgYmUgYE5vbmVgLiBJZiBpdCBpc1EBbm90IHRoZSBmaXJzdCBhcHByb3ZhbCwgdGhlbiBpdCBtdXN0IGJlIGBTb21lYCwgd2l0aCB0aGUgdGltZXBvaW50IChibG9jayBudW1iZXIgYW5k1HRyYW5zYWN0aW9uIGluZGV4KSBvZiB0aGUgZmlyc3QgYXBwcm92YWwgdHJhbnNhY3Rpb24uzC0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgA1AU5PVEU6IElmIHRoaXMgaXMgdGhlIGZpbmFsIGFwcHJvdmFsLCB5b3Ugd2lsbCB3YW50IHRvIHVzZSBgYXNfbXVsdGlgIGluc3RlYWQuADQjIyBDb21wbGV4aXR5JC0gYE8oUylgLswtIFVwIHRvIG9uZSBiYWxhbmNlLXJlc2VydmUgb3IgdW5yZXNlcnZlIG9wZXJhdGlvbi49AS0gT25lIHBhc3N0aHJvdWdoIG9wZXJhdGlvbiwgb25lIGluc2VydCwgYm90aCBgTyhTKWAgd2hlcmUgYFNgIGlzIHRoZSBudW1iZXIgb2ZFASAgc2lnbmF0b3JpZXMuIGBTYCBpcyBjYXBwZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCB3ZWlnaHQgYmVpbmcgcHJvcG9ydGlvbmFsLrwtIE9uZSBlbmNvZGUgJiBoYXNoLCBib3RoIG9mIGNvbXBsZXhpdHkgYE8oUylgLtQtIFVwIHRvIG9uZSBiaW5hcnkgc2VhcmNoIGFuZCBpbnNlcnQgKGBPKGxvZ1MgKyBTKWApLvgtIEkvTzogMSByZWFkIGBPKFMpYCwgdXAgdG8gMSBtdXRhdGUgYE8oUylgLiBVcCB0byBvbmUgcmVtb3ZlLjAtIE9uZSBldmVudC5NAS0gU3RvcmFnZTogaW5zZXJ0cyBvbmUgaXRlbSwgdmFsdWUgc2l6ZSBib3VuZGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggYSBkZXBvc2l0GQEgIHRha2VuIGZvciBpdHMgbGlmZXRpbWUgb2YgYERlcG9zaXRCYXNlICsgdGhyZXNob2xkICogRGVwb3NpdEZhY3RvcmAuPGNhbmNlbF9hc19tdWx0aRABJHRocmVzaG9sZNkCAQx1MTYAAURvdGhlcl9zaWduYXRvcmllc1UBAURWZWM8VDo6QWNjb3VudElkPgABJHRpbWVwb2ludKkCAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEkY2FsbF9oYXNoBAEgW3U4OyAzMl0AA1RVAUNhbmNlbCBhIHByZS1leGlzdGluZywgb24tZ29pbmcgbXVsdGlzaWcgdHJhbnNhY3Rpb24uIEFueSBkZXBvc2l0IHJlc2VydmVkIHByZXZpb3VzbHnEZm9yIHRoaXMgb3BlcmF0aW9uIHdpbGwgYmUgdW5yZXNlcnZlZCBvbiBzdWNjZXNzLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAFUBLSBgdGhyZXNob2xkYDogVGhlIHRvdGFsIG51bWJlciBvZiBhcHByb3ZhbHMgZm9yIHRoaXMgZGlzcGF0Y2ggYmVmb3JlIGl0IGlzIGV4ZWN1dGVkLkEBLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGNhbiBhcHByb3ZlIHRoaXNsZGlzcGF0Y2guIE1heSBub3QgYmUgZW1wdHkuXQEtIGB0aW1lcG9pbnRgOiBUaGUgdGltZXBvaW50IChibG9jayBudW1iZXIgYW5kIHRyYW5zYWN0aW9uIGluZGV4KSBvZiB0aGUgZmlyc3QgYXBwcm92YWx4dHJhbnNhY3Rpb24gZm9yIHRoaXMgZGlzcGF0Y2guzC0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgA0IyMgQ29tcGxleGl0eSQtIGBPKFMpYC7MLSBVcCB0byBvbmUgYmFsYW5jZS1yZXNlcnZlIG9yIHVucmVzZXJ2ZSBvcGVyYXRpb24uPQEtIE9uZSBwYXNzdGhyb3VnaCBvcGVyYXRpb24sIG9uZSBpbnNlcnQsIGJvdGggYE8oUylgIHdoZXJlIGBTYCBpcyB0aGUgbnVtYmVyIG9mRQEgIHNpZ25hdG9yaWVzLiBgU2AgaXMgY2FwcGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggd2VpZ2h0IGJlaW5nIHByb3BvcnRpb25hbC68LSBPbmUgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFMpYC4wLSBPbmUgZXZlbnQuhC0gSS9POiAxIHJlYWQgYE8oUylgLCBvbmUgcmVtb3ZlLnAtIFN0b3JhZ2U6IHJlbW92ZXMgb25lIGl0ZW0uMHBva2VfZGVwb3NpdAwBJHRocmVzaG9sZNkCAQx1MTYAAURvdGhlcl9zaWduYXRvcmllc1UBAURWZWM8VDo6QWNjb3VudElkPgABJGNhbGxfaGFzaAQBIFt1ODsgMzJdAAQ09FBva2UgdGhlIGRlcG9zaXQgcmVzZXJ2ZWQgZm9yIGFuIGV4aXN0aW5nIG11bHRpc2lnIG9wZXJhdGlvbi4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgbXVzdCBiZSB0aGUgb3JpZ2luYWwgZGVwb3NpdG9yIG9mXHRoZSBtdWx0aXNpZyBvcGVyYXRpb24uAAEBVGhlIHRyYW5zYWN0aW9uIGZlZSBpcyB3YWl2ZWQgaWYgdGhlIGRlcG9zaXQgYW1vdW50IGhhcyBjaGFuZ2VkLgAZAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIG5lZWRlZCBmb3IgdGhpcyBtdWx0aXNpZy49AS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBhcmUgcGFydCBvZiB0aGUsICBtdWx0aXNpZy4FAS0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRoaXMgZGVwb3NpdCBpcyByZXNlcnZlZCBmb3IuAIxFbWl0cyBgRGVwb3NpdFBva2VkYCBpZiBzdWNjZXNzZnVsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6xBAQYT3B0aW9uBARUAakCAQgQTm9uZQAAABBTb21lBACpAgAAAQAAtQQMLHBhbGxldF9zdWRvGHBhbGxldBBDYWxsBARUAAEUEHN1ZG8EARBjYWxsaQMBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAAQ1AUF1dGhlbnRpY2F0ZXMgdGhlIHN1ZG8ga2V5IGFuZCBkaXNwYXRjaGVzIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGBSb290YCBvcmlnaW4uVHN1ZG9fdW5jaGVja2VkX3dlaWdodAgBEGNhbGxpAwF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABGHdlaWdodCgBGFdlaWdodAABFDUBQXV0aGVudGljYXRlcyB0aGUgc3VkbyBrZXkgYW5kIGRpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYFJvb3RgIG9yaWdpbi4tAVRoaXMgZnVuY3Rpb24gZG9lcyBub3QgY2hlY2sgdGhlIHdlaWdodCBvZiB0aGUgY2FsbCwgYW5kIGluc3RlYWQgYWxsb3dzIHRoZbBTdWRvIHVzZXIgdG8gc3BlY2lmeSB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uHHNldF9rZXkEAQxuZXe9AwFQQWNjb3VudElkTG9va3VwT2Y8VD4AAghdAUF1dGhlbnRpY2F0ZXMgdGhlIGN1cnJlbnQgc3VkbyBrZXkgYW5kIHNldHMgdGhlIGdpdmVuIEFjY291bnRJZCAoYG5ld2ApIGFzIHRoZSBuZXcgc3VkbxBrZXkuHHN1ZG9fYXMIAQx3aG+9AwFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBjYWxsaQMBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAxBNAUF1dGhlbnRpY2F0ZXMgdGhlIHN1ZG8ga2V5IGFuZCBkaXNwYXRjaGVzIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGBTaWduZWRgIG9yaWdpbiBmcm9tQGEgZ2l2ZW4gYWNjb3VudC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLihyZW1vdmVfa2V5AAQMhFBlcm1hbmVudGx5IHJlbW92ZXMgdGhlIHN1ZG8ga2V5LgBsKipUaGlzIGNhbm5vdCBiZSB1bi1kb25lLioqBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLrkEDFRpbmRpdl9wYWxsZXRfaWRlbnRpdHkYcGFsbGV0EENhbGwEBFQAAXg0YWRkX3JlZ2lzdHJhcgQBHGFjY291bnS9AwFQQWNjb3VudElkTG9va3VwT2Y8VD4AABx4QWRkIGEgcmVnaXN0cmFyIHRvIHRoZSBzeXN0ZW0uAPxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgVDo6UmVnaXN0cmFyT3JpZ2luYC4AqC0gYGFjY291bnRgOiB0aGUgYWNjb3VudCBvZiB0aGUgcmVnaXN0cmFyLgCURW1pdHMgYFJlZ2lzdHJhckFkZGVkYCBpZiBzdWNjZXNzZnVsLjBzZXRfaWRlbnRpdHkEARBpbmZvvQQBbEJveDxUOjpJZGVudGl0eUluZm9ybWF0aW9uPgABKCkBU2V0IGFuIGFjY291bnQncyBpZGVudGl0eSBpbmZvcm1hdGlvbiBhbmQgcmVzZXJ2ZSB0aGUgYXBwcm9wcmlhdGUgZGVwb3NpdC4AVQFJZiB0aGUgYWNjb3VudCBhbHJlYWR5IGhhcyBpZGVudGl0eSBpbmZvcm1hdGlvbiwgdGhlIGRlcG9zaXQgaXMgdGFrZW4gYXMgcGFydCBwYXltZW50UGZvciB0aGUgbmV3IGRlcG9zaXQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AjC0gYGluZm9gOiBUaGUgaWRlbnRpdHkgaW5mb3JtYXRpb24uAIhFbWl0cyBgSWRlbnRpdHlTZXRgIGlmIHN1Y2Nlc3NmdWwuIHNldF9zdWJzBAEQc3ViczkFAWRWZWM8KFQ6OkFjY291bnRJZCwgRGF0YSk+AAIkjFNldCB0aGUgc3ViLWFjY291bnRzIG9mIHRoZSBzZW5kZXIuAFUBUGF5bWVudDogQW55IGFnZ3JlZ2F0ZSBiYWxhbmNlIHJlc2VydmVkIGJ5IHByZXZpb3VzIGBzZXRfc3Vic2AgY2FsbHMgd2lsbCBiZSByZXR1cm5lZC0BYW5kIGFuIGFtb3VudCBgU3ViQWNjb3VudERlcG9zaXRgIHdpbGwgYmUgcmVzZXJ2ZWQgZm9yIGVhY2ggaXRlbSBpbiBgc3Vic2AuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZCRpZGVudGl0eS4AsC0gYHN1YnNgOiBUaGUgaWRlbnRpdHkncyAobmV3KSBzdWItYWNjb3VudHMuOGNsZWFyX2lkZW50aXR5AAMgOQFDbGVhciBhbiBhY2NvdW50J3MgaWRlbnRpdHkgaW5mbyBhbmQgYWxsIHN1Yi1hY2NvdW50cyBhbmQgcmV0dXJuIGFsbCBkZXBvc2l0cy4A7FBheW1lbnQ6IEFsbCByZXNlcnZlZCBiYWxhbmNlcyBvbiB0aGUgYWNjb3VudCBhcmUgcmV0dXJuZWQuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZCRpZGVudGl0eS4AmEVtaXRzIGBJZGVudGl0eUNsZWFyZWRgIGlmIHN1Y2Nlc3NmdWwuRHJlcXVlc3RfanVkZ2VtZW50CAEkcmVnX2luZGV4tAE4UmVnaXN0cmFySW5kZXgAARxtYXhfZmVlxAEwQmFsYW5jZU9mPFQ+AARAlFJlcXVlc3QgYSBqdWRnZW1lbnQgZnJvbSBhIHJlZ2lzdHJhci4AVQFQYXltZW50OiBBdCBtb3N0IGBtYXhfZmVlYCB3aWxsIGJlIHJlc2VydmVkIGZvciBwYXltZW50IHRvIHRoZSByZWdpc3RyYXIgaWYganVkZ2VtZW50GGdpdmVuLgA1AVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhUHJlZ2lzdGVyZWQgaWRlbnRpdHkuAB0BLSBgcmVnX2luZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UganVkZ2VtZW50IGlzIHJlcXVlc3RlZC5VAS0gYG1heF9mZWVgOiBUaGUgbWF4aW11bSBmZWUgdGhhdCBtYXkgYmUgcGFpZC4gVGhpcyBzaG91bGQganVzdCBiZSBhdXRvLXBvcHVsYXRlZCBhczoAMGBgYG5vY29tcGlsZbhTZWxmOjpyZWdpc3RyYXJzKCkuZ2V0KHJlZ19pbmRleCkudW53cmFwKCkuZmVlDGBgYACkRW1pdHMgYEp1ZGdlbWVudFJlcXVlc3RlZGAgaWYgc3VjY2Vzc2Z1bC44Y2FuY2VsX3JlcXVlc3QEASRyZWdfaW5kZXgQAThSZWdpc3RyYXJJbmRleAAFKGhDYW5jZWwgYSBwcmV2aW91cyByZXF1ZXN0LgD4UGF5bWVudDogQSBwcmV2aW91c2x5IHJlc2VydmVkIGRlcG9zaXQgaXMgcmV0dXJuZWQgb24gc3VjY2Vzcy4ANQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYVByZWdpc3RlcmVkIGlkZW50aXR5LgBFAS0gYHJlZ19pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGp1ZGdlbWVudCBpcyBubyBsb25nZXIgcmVxdWVzdGVkLgCsRW1pdHMgYEp1ZGdlbWVudFVucmVxdWVzdGVkYCBpZiBzdWNjZXNzZnVsLhxzZXRfZmVlCAEUaW5kZXi0AThSZWdpc3RyYXJJbmRleAABDGZlZcQBMEJhbGFuY2VPZjxUPgAGHBkBU2V0IHRoZSBmZWUgcmVxdWlyZWQgZm9yIGEganVkZ2VtZW50IHRvIGJlIHJlcXVlc3RlZCBmcm9tIGEgcmVnaXN0cmFyLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSgb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgaW5kZXhgLgD0LSBgaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBmZWUgaXMgdG8gYmUgc2V0LlQtIGBmZWVgOiB0aGUgbmV3IGZlZS44c2V0X2FjY291bnRfaWQIARRpbmRleLQBOFJlZ2lzdHJhckluZGV4AAEMbmV3vQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAccvENoYW5nZSB0aGUgYWNjb3VudCBhc3NvY2lhdGVkIHdpdGggYSByZWdpc3RyYXIuAFUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGUgYWNjb3VudKBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGluZGV4IGlzIGBpbmRleGAuAPQtIGBpbmRleGA6IHRoZSBpbmRleCBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGZlZSBpcyB0byBiZSBzZXQucC0gYG5ld2A6IHRoZSBuZXcgYWNjb3VudCBJRC4oc2V0X2ZpZWxkcwgBFGluZGV4tAE4UmVnaXN0cmFySW5kZXgAARhmaWVsZHMwASkBPFQ6OklkZW50aXR5SW5mb3JtYXRpb24gYXMgSWRlbnRpdHlJbmZvcm1hdGlvblByb3ZpZGVyPjo6CkZpZWxkc0lkZW50aWZpZXIACByoU2V0IHRoZSBmaWVsZCBpbmZvcm1hdGlvbiBmb3IgYSByZWdpc3RyYXIuAFUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGUgYWNjb3VudKBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGluZGV4IGlzIGBpbmRleGAuAPQtIGBpbmRleGA6IHRoZSBpbmRleCBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGZlZSBpcyB0byBiZSBzZXQuDQEtIGBmaWVsZHNgOiB0aGUgZmllbGRzIHRoYXQgdGhlIHJlZ2lzdHJhciBjb25jZXJucyB0aGVtc2VsdmVzIHdpdGguRHByb3ZpZGVfanVkZ2VtZW50EAEkcmVnX2luZGV4tAE4UmVnaXN0cmFySW5kZXgAARh0YXJnZXS9AwFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRqdWRnZW1lbnRBBQFcSnVkZ2VtZW50PEJhbGFuY2VPZjxUPj4AASBpZGVudGl0eTQBHFQ6Okhhc2gACTy4UHJvdmlkZSBhIGp1ZGdlbWVudCBmb3IgYW4gYWNjb3VudCdzIGlkZW50aXR5LgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSwb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgcmVnX2luZGV4YC4AIQEtIGByZWdfaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBqdWRnZW1lbnQgaXMgYmVpbmcgbWFkZS5VAS0gYHRhcmdldGA6IHRoZSBhY2NvdW50IHdob3NlIGlkZW50aXR5IHRoZSBqdWRnZW1lbnQgaXMgdXBvbi4gVGhpcyBtdXN0IGJlIGFuIGFjY291bnR0ICB3aXRoIGEgcmVnaXN0ZXJlZCBpZGVudGl0eS5JAS0gYGp1ZGdlbWVudGA6IHRoZSBqdWRnZW1lbnQgb2YgdGhlIHJlZ2lzdHJhciBvZiBpbmRleCBgcmVnX2luZGV4YCBhYm91dCBgdGFyZ2V0YC5dAS0gYGlkZW50aXR5YDogVGhlIGhhc2ggb2YgdGhlIFtgSWRlbnRpdHlJbmZvcm1hdGlvblByb3ZpZGVyYF0gZm9yIHRoYXQgdGhlIGp1ZGdlbWVudCBpcywgIHByb3ZpZGVkLgCwTm90ZTogSnVkZ2VtZW50cyBkbyBub3QgYXBwbHkgdG8gYSB1c2VybmFtZS4AlEVtaXRzIGBKdWRnZW1lbnRHaXZlbmAgaWYgc3VjY2Vzc2Z1bC40a2lsbF9pZGVudGl0eQQBGHRhcmdldL0DAVBBY2NvdW50SWRMb29rdXBPZjxUPgAKMEEBUmVtb3ZlIGFuIGFjY291bnQncyBpZGVudGl0eSBhbmQgc3ViLWFjY291bnQgaW5mb3JtYXRpb24gYW5kIHNsYXNoIHRoZSBkZXBvc2l0cy4AYQFQYXltZW50OiBSZXNlcnZlZCBiYWxhbmNlcyBmcm9tIGBzZXRfc3Vic2AgYW5kIGBzZXRfaWRlbnRpdHlgIGFyZSBzbGFzaGVkIGFuZCBoYW5kbGVkIGJ5RQFgU2xhc2hgLiBWZXJpZmljYXRpb24gcmVxdWVzdCBkZXBvc2l0cyBhcmUgbm90IHJldHVybmVkOyB0aGV5IHNob3VsZCBiZSBjYW5jZWxsZWSAbWFudWFsbHkgdXNpbmcgYGNhbmNlbF9yZXF1ZXN0YC4A+FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IG1hdGNoIGBUOjpGb3JjZU9yaWdpbmAuAFUBLSBgdGFyZ2V0YDogdGhlIGFjY291bnQgd2hvc2UgaWRlbnRpdHkgdGhlIGp1ZGdlbWVudCBpcyB1cG9uLiBUaGlzIG11c3QgYmUgYW4gYWNjb3VudHQgIHdpdGggYSByZWdpc3RlcmVkIGlkZW50aXR5LgCURW1pdHMgYElkZW50aXR5S2lsbGVkYCBpZiBzdWNjZXNzZnVsLhxhZGRfc3ViCAEMc3VivQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEQZGF0YcEEARBEYXRhAAscrEFkZCB0aGUgZ2l2ZW4gYWNjb3VudCB0byB0aGUgc2VuZGVyJ3Mgc3Vicy4AXQFQYXltZW50OiBCYWxhbmNlIHJlc2VydmVkIGJ5IGEgcHJldmlvdXMgYHNldF9zdWJzYCBjYWxsIGZvciBvbmUgc3ViIHdpbGwgYmUgcmVwYXRyaWF0ZWQ4dG8gdGhlIHNlbmRlci4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkWHN1YiBpZGVudGl0eSBvZiBgc3ViYC4ocmVuYW1lX3N1YggBDHN1Yr0DAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGRhdGHBBAEQRGF0YQAMEMxBbHRlciB0aGUgYXNzb2NpYXRlZCBuYW1lIG9mIHRoZSBnaXZlbiBzdWItYWNjb3VudC4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkWHN1YiBpZGVudGl0eSBvZiBgc3ViYC4ocmVtb3ZlX3N1YgQBDHN1Yr0DAVBBY2NvdW50SWRMb29rdXBPZjxUPgANHMBSZW1vdmUgdGhlIGdpdmVuIGFjY291bnQgZnJvbSB0aGUgc2VuZGVyJ3Mgc3Vicy4AXQFQYXltZW50OiBCYWxhbmNlIHJlc2VydmVkIGJ5IGEgcHJldmlvdXMgYHNldF9zdWJzYCBjYWxsIGZvciBvbmUgc3ViIHdpbGwgYmUgcmVwYXRyaWF0ZWQ4dG8gdGhlIHNlbmRlci4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkWHN1YiBpZGVudGl0eSBvZiBgc3ViYC4gcXVpdF9zdWIADiiMUmVtb3ZlIHRoZSBzZW5kZXIgYXMgYSBzdWItYWNjb3VudC4AXQFQYXltZW50OiBCYWxhbmNlIHJlc2VydmVkIGJ5IGEgcHJldmlvdXMgYHNldF9zdWJzYCBjYWxsIGZvciBvbmUgc3ViIHdpbGwgYmUgcmVwYXRyaWF0ZWS0dG8gdGhlIHNlbmRlciAoKm5vdCogdGhlIG9yaWdpbmFsIGRlcG9zaXRvcikuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZDxzdXBlci1pZGVudGl0eS4ARQFOT1RFOiBUaGlzIHNob3VsZCBub3Qgbm9ybWFsbHkgYmUgdXNlZCwgYnV0IGlzIHByb3ZpZGVkIGluIHRoZSBjYXNlIHRoYXQgdGhlIG5vbi0RAWNvbnRyb2xsZXIgb2YgYW4gYWNjb3VudCBpcyBtYWxpY2lvdXNseSByZWdpc3RlcmVkIGFzIGEgc3ViLWFjY291bnQuWGFkZF91c2VybmFtZV9hdXRob3JpdHkMASRhdXRob3JpdHm9AwFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhzdWZmaXg4ARxWZWM8dTg+AAEoYWxsb2NhdGlvbhABDHUzMgAPFFUBQWRkIGFuIGBBY2NvdW50SWRgIHdpdGggcGVybWlzc2lvbiB0byBncmFudCB1c2VybmFtZXMgd2l0aCBhIGdpdmVuIGBzdWZmaXhgIGFwcGVuZGVkLgBFAVRoZSBhdXRob3JpdHkgY2FuIGdyYW50IHVwIHRvIGBhbGxvY2F0aW9uYCB1c2VybmFtZXMuIFRvIHRvcCB1cCB0aGUgYWxsb2NhdGlvbiBvckkBY2hhbmdlIHRoZSBhY2NvdW50IHVzZWQgdG8gZ3JhbnQgdXNlcm5hbWVzLCB0aGlzIGNhbGwgY2FuIGJlIHVzZWQgd2l0aCB0aGUgdXBkYXRlZMxwYXJhbWV0ZXJzIHRvIG92ZXJ3cml0ZSB0aGUgZXhpc3RpbmcgY29uZmlndXJhdGlvbi5kcmVtb3ZlX3VzZXJuYW1lX2F1dGhvcml0eQgBGHN1ZmZpeDgBHFZlYzx1OD4AASRhdXRob3JpdHm9AwFQQWNjb3VudElkTG9va3VwT2Y8VD4AEATEUmVtb3ZlIGBhdXRob3JpdHlgIGZyb20gdGhlIHVzZXJuYW1lIGF1dGhvcml0aWVzLkBzZXRfdXNlcm5hbWVfZm9yEAEMd2hvvQMBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEgdXNlcm5hbWU4ARxWZWM8dTg+AAEkc2lnbmF0dXJlRQUBcE9wdGlvbjxUOjpPZmZjaGFpblNpZ25hdHVyZT4AATh1c2VfYWxsb2NhdGlvbiABEGJvb2wAETQNAVNldCB0aGUgdXNlcm5hbWUgZm9yIGB3aG9gLiBNdXN0IGJlIGNhbGxlZCBieSBhIHVzZXJuYW1lIGF1dGhvcml0eS4AWQFJZiBgdXNlX2FsbG9jYXRpb25gIGlzIHNldCwgdGhlIGF1dGhvcml0eSBtdXN0IGhhdmUgYSB1c2VybmFtZSBhbGxvY2F0aW9uIGF2YWlsYWJsZSB0b0UBc3BlbmQuIE90aGVyd2lzZSwgdGhlIGF1dGhvcml0eSB3aWxsIG5lZWQgdG8gcHV0IHVwIGEgZGVwb3NpdCBmb3IgcmVnaXN0ZXJpbmcgdGhlJHVzZXJuYW1lLgCwVXNlcnMgY2FuIGVpdGhlciBwcmUtc2lnbiB0aGVpciB1c2VybmFtZXMgb3JIYWNjZXB0IHRoZW0gbGF0ZXIuADxVc2VybmFtZXMgbXVzdDrYICAtIE9ubHkgY29udGFpbiBsb3dlcmNhc2UgQVNDSUkgY2hhcmFjdGVycyBvciBkaWdpdHMuNQEgIC0gV2hlbiBjb21iaW5lZCB3aXRoIHRoZSBzdWZmaXggb2YgdGhlIGlzc3VpbmcgYXV0aG9yaXR5IGJlIF9sZXNzIHRoYW5fIHRoZWAgICAgYE1heFVzZXJuYW1lTGVuZ3RoYC48YWNjZXB0X3VzZXJuYW1lBAEgdXNlcm5hbWW5AgEsVXNlcm5hbWU8VD4AEgxNAUFjY2VwdCBhIGdpdmVuIHVzZXJuYW1lIHRoYXQgYW4gYGF1dGhvcml0eWAgZ3JhbnRlZC4gVGhlIGNhbGwgbXVzdCBpbmNsdWRlIHRoZSBmdWxsVQF1c2VybmFtZSwgYXMgaW4gYHVzZXJuYW1lLnN1ZmZpeGAuIEF1dGhvcml0aWVzIGNhbm5vdCBncmFudCB1c2VybmFtZXMgdG8gcGVvcGxlLCBvbmx5UHRvIHJlZ3VsYXIgYWNjb3VudHMuXHJlbW92ZV9leHBpcmVkX2FwcHJvdmFsBAEgdXNlcm5hbWW5AgEsVXNlcm5hbWU8VD4AEwxhAVJlbW92ZSBhbiBleHBpcmVkIHVzZXJuYW1lIGFwcHJvdmFsLiBUaGUgdXNlcm5hbWUgd2FzIGFwcHJvdmVkIGJ5IGFuIGF1dGhvcml0eSBidXQgbmV2ZXJVAWFjY2VwdGVkIGJ5IHRoZSB1c2VyIGFuZCBtdXN0IG5vdyBiZSBiZXlvbmQgaXRzIGV4cGlyYXRpb24uIFRoZSBjYWxsIG11c3QgaW5jbHVkZSB0aGWcZnVsbCB1c2VybmFtZSwgYXMgaW4gYHVzZXJuYW1lLnN1ZmZpeGAuUHNldF9wcmltYXJ5X3VzZXJuYW1lBAEgdXNlcm5hbWW5AgEsVXNlcm5hbWU8VD4AFAxFAVNldCBhIGdpdmVuIHVzZXJuYW1lIGFzIHRoZSBwcmltYXJ5LiBUaGUgdXNlcm5hbWUgc2hvdWxkIGluY2x1ZGUgdGhlIHN1ZmZpeC4gT25seVkBcmVndWxhciBhY2NvdW50cyBjYW4gc2V0IHRoZWlyIHByaW1hcnkgdXNlcm5hbWUsIGFzIHBlb3BsZSBjYW4gb25seSBoYXZlIG9uZSB1c2VybmFtZSyQZ3JhbnRlZCB0aHJvdWdoIGEgc3lzdGVtIGFsbG9jYXRpb24uPHVuYmluZF91c2VybmFtZQQBIHVzZXJuYW1luQIBLFVzZXJuYW1lPFQ+ABUMWQFTdGFydCB0aGUgcHJvY2VzcyBvZiByZW1vdmluZyBhIHVzZXJuYW1lIGJ5IHBsYWNpbmcgaXQgaW4gdGhlIHVuYmluZGluZyB1c2VybmFtZXMgbWFwLiEBT25jZSB0aGUgZ3JhY2UgcGVyaW9kIGhhcyBwYXNzZWQsIHRoZSB1c2VybmFtZSBjYW4gYmUgZGVsZXRlZCBieSBjYWxsaW5nwFtyZW1vdmVfdXNlcm5hbWVdKGNyYXRlOjpDYWxsOjpyZW1vdmVfdXNlcm5hbWUpLjxyZW1vdmVfdXNlcm5hbWUEASB1c2VybmFtZbkCASxVc2VybmFtZTxUPgAWCGEBUGVybWFuZW50bHkgZGVsZXRlIGEgdXNlcm5hbWUgd2hpY2ggaGFzIGJlZW4gdW5iaW5kaW5nIGZvciBsb25nZXIgdGhhbiB0aGUgZ3JhY2UgcGVyaW9kLkkBQ2FsbGVyIGlzIHJlZnVuZGVkIHRoZSBmZWUgaWYgdGhlIHVzZXJuYW1lIGV4cGlyZWQgYW5kIHRoZSByZW1vdmFsIHdhcyBzdWNjZXNzZnVsLjRraWxsX3VzZXJuYW1lBAEgdXNlcm5hbWW5AgEsVXNlcm5hbWU8VD4AFwhdAUNhbGwgd2l0aCBbRm9yY2VPcmlnaW5dKGNyYXRlOjpDb25maWc6OkZvcmNlT3JpZ2luKSBwcml2aWxlZ2VzIHdoaWNoIGRlbGV0ZXMgYSB1c2VybmFtZaxhbmQgc2xhc2hlcyBhbnkgZGVwb3NpdCBhc3NvY2lhdGVkIHdpdGggaXQuVHNldF9wZXJzb25hbF9pZGVudGl0eQwBHGFjY291bnQAATBUOjpBY2NvdW50SWQAASRzaWduYXR1cmVJBQFQVDo6T2ZmY2hhaW5TaWduYXR1cmUAASB1c2VybmFtZbkCASxVc2VybmFtZTxUPgAYLF0BU2V0cyB0aGUgdXNlcm5hbWUgYW5kIG9uLWNoYWluIGFjY291bnQgZm9yIGEgcGVyc29uLCBhbG9uZyB3aXRoIGFuIGVtcHR5IGlkZW50aXR5IHdoaWNoYQFjYW4gb25seSBiZSBwb3B1bGF0ZWQgdXNpbmcgYW4gb3JhY2xlIHRocm91Z2ggdGhlIHNvY2lhbCBjcmVkZW50aWFsIHZlcmlmaWNhdGlvbiBzeXN0ZW0unFRoZSBjaG9zZW4gdXNlcm5hbWUgbXVzdCBiZSBkb21haW5sZXNzLgBJAVRoZSBzZW5kZXIgbXVzdCBzaWduIHRoZSBhbGlhcyB1c2luZyB0aGUga2V5IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvdmlkZWQgb24tY2hhaW5sYWNjb3VudCB0byBwcm92ZSBvd25lcnNoaXAuAFEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGNvbnRleHR1YWwgYWxpYXMgb2YgdGhlIHBlcnNvbiBhbmQgdGhlEQFzZW5kZXIgbXVzdCBub3QgaGF2ZSBhbHJlYWR5IHJlZ2lzdGVyZWQgdGhlaXIgaWRlbnRpdHkgYW5kIHVzZXJuYW1lLgCoRW1pdHMgYFBlcnNvbmFsSWRlbnRpdHlTZXRgIGlmIHN1Y2Nlc3NmdWwujHN1Ym1pdF9wZXJzb25hbF9jcmVkZW50aWFsX2V2aWRlbmNlBAEoY3JlZGVudGlhbFUFARhTb2NpYWwAGRgNAU9wZW4gYSBjYXNlIGZvciBhbiBvcmFjbGUgdG8ganVkZ2UgYSBzb2NpYWwgY3JlZGVudGlhbCBvZiBhIHBlcnNvbi4AUQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgY29udGV4dHVhbCBhbGlhcyBvZiB0aGUgcGVyc29uIGFuZCB0aGWcc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuAKBFbWl0cyBgRXZpZGVuY2VTdWJtaXR0ZWRgIGlmIHN1Y2Nlc3NmdWwuaHBlcnNvbmFsX2NyZWRlbnRpYWxfanVkZ2VkDAEYdGlja2V0EAFET3JhY2xlVGlja2V0T2Y8VD4AARxjb250ZXh0rQMBQEp1ZGdlbWVudENvbnRleHQAASRqdWRnZW1lbnS9AgE8T3JhY2xlSnVkZ2VtZW50ABoIWQFDYWxsYmFjayB0byBlbmZvcmNlIHRoZSBqdWRnZW1lbnQgb2YgYSBzb2NpYWwgY3JlZGVudGlhbC4gVGhpcyBpcyB0byBiZSBjYWxsZWQgb25seSBieYB0aGUgb3JhY2xlIHRoYXQganVkZ2VkIHRoZSBjYXNlLlxjbGVhcl9wZXJzb25hbF9pZGVudGl0eQAbHFEBQ2xlYXIgYSBwZXJzb24ncyBpZGVudGl0eSBpbmZvLiBUaGUgc2VuZGVyIG11c3QgcGF5IGEgcGVuYWx0eSB0aHJvdWdoIHRoZSBhc3NvY2lhdGVkoGFsaWFzIGFjY291bnQgZm9yIHJlbW92aW5nIHRoZSBpZGVudGl0eS4AUQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgY29udGV4dHVhbCBhbGlhcyBvZiB0aGUgcGVyc29uIGFuZCB0aGWcc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuALhFbWl0cyBgSWRlbnRpdHlQZXJzb25hbENsZWFyZWRgIGlmIHN1Y2Nlc3NmdWwuPHJlcG9ydF91c2VybmFtZQQBIHVzZXJuYW1luQIBLFVzZXJuYW1lPFQ+ABwU7FJlcG9ydCBhIHVzZXJuYW1lIGFzIGludmFsaWQvb2ZmZW5zaXZlL3dyb25nL2FueXRoaW5nIGVsc2UuAPRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBhIHNpZ25lZCBleHRyaW5zaWMuAKgtIGB1c2VybmFtZWA6IFRoZSB1c2VybmFtZSB0byBiZSByZXBvcnRlZC5gcmVwb3J0ZWRfdXNlcm5hbWVfanVkZ2VkDAEYdGlja2V0EAFgY3JhdGU6Ok9yYWNsZVRpY2tldE9mPFQ+AAEcY29udGV4dK0DAUBKdWRnZW1lbnRDb250ZXh0AAEkanVkZ2VtZW50vQIBPE9yYWNsZUp1ZGdlbWVudAAdJORHaXZlbiBqdWRnZW1lbnQgb24gYSBwcmV2aW91c2x5IHJlcG9ydGVkIHVzZXJuYW1lIGVpdGhlcjqQMS4gSW4gY2FzZSB1c2VybmFtZSB3YXMgZm91bmQgdmFsaWQ6vC0gc2xhc2hlcyB0aGUgYW1vdW50IGRlcG9zaXRlZCBieSB0aGUgcmVwb3J0ZXIs8C0gZG9lcyBub3RoaW5nIHRvIHRoZSBpZGVudGl0eSBiZWhpbmQgdGhlIHJlcG9ydGVkIHVzZXJuYW1lLJgyLiBJbiBjYXNlIHVzZXJuYW1lIHdhcyBmb3VuZCBpbnZhbGlkOrgtIHJldHVybnMgdGhlIGRlcG9zaXRlZCBmdW5kcyB0byB0aGUgcmVwb3J0ZXIsxC0gYmFucyB0aGUgaWRlbnRpdHkgYmVoaW5kIHRoZSByZXBvcnRlZCB1c2VybmFtZS78U2VydmVzIGFzIGEgY2FsbGJhY2sgdXNlZCB1cG9uIGp1ZGdlbWVudCByZXF1ZXN0IHRvIHRoZSBvcmFjbGUuqE11c3Qgb25seSBiZSB1c2VkIGJ5IHRoZSBzdGF0ZW1lbnQgb3JhY2xlLgRwSWRlbnRpdHkgcGFsbGV0IGRlY2xhcmF0aW9uLr0EDFRwZW9wbGVfcm9jb2NvX3J1bnRpbWUYcGVvcGxlMElkZW50aXR5SW5mbwAAKAEcZGlzcGxhecEEARBEYXRhAAEUbGVnYWzBBAEQRGF0YQABDHdlYsEEARBEYXRhAAEYbWF0cml4wQQBEERhdGEAARRlbWFpbMEEARBEYXRhAAE8cGdwX2ZpbmdlcnByaW50NQUBQE9wdGlvbjxbdTg7IDIwXT4AARRpbWFnZcEEARBEYXRhAAEcdHdpdHRlcsEEARBEYXRhAAEYZ2l0aHViwQQBEERhdGEAARxkaXNjb3JkwQQBEERhdGEAAMEEDFRpbmRpdl9wYWxsZXRfaWRlbnRpdHkUdHlwZXMQRGF0YQABmBBOb25lAAAAEFJhdzAEAMUEAAABABBSYXcxBADJBAAAAgAQUmF3MgQAzQQAAAMAEFJhdzMEANEEAAAEABBSYXc0BABIAAAFABBSYXc1BADVBAAABgAQUmF3NgQA2QQAAAcAEFJhdzcEAN0EAAAIABBSYXc4BACVAQAACQAQUmF3OQQA4QQAAAoAFFJhdzEwBADlBAAACwAUUmF3MTEEAOkEAAAMABRSYXcxMgQA7QQAAA0AFFJhdzEzBADxBAAADgAUUmF3MTQEAPUEAAAPABRSYXcxNQQA+QQAABAAFFJhdzE2BACZAQAAEQAUUmF3MTcEAP0EAAASABRSYXcxOAQAAQUAABMAFFJhdzE5BAAFBQAAFAAUUmF3MjAEAMAAABUAFFJhdzIxBAAJBQAAFgAUUmF3MjIEAA0FAAAXABRSYXcyMwQAEQUAABgAFFJhdzI0BAAVBQAAGQAUUmF3MjUEABkFAAAaABRSYXcyNgQAHQUAABsAFFJhdzI3BAAhBQAAHAAUUmF3MjgEACUFAAAdABRSYXcyOQQAKQUAAB4AFFJhdzMwBAAtBQAAHwAUUmF3MzEEADEFAAAgABRSYXczMgQABAAAIQAsQmxha2VUd28yNTYEAAQAACIAGFNoYTI1NgQABAAAIwAkS2VjY2FrMjU2BAAEAAAkACxTaGFUaHJlZTI1NgQABAAAJQAAxQQAAAMAAAAACADJBAAAAwEAAAAIAM0EAAADAgAAAAgA0QQAAAMDAAAACADVBAAAAwUAAAAIANkEAAADBgAAAAgA3QQAAAMHAAAACADhBAAAAwkAAAAIAOUEAAADCgAAAAgA6QQAAAMLAAAACADtBAAAAwwAAAAIAPEEAAADDQAAAAgA9QQAAAMOAAAACAD5BAAAAw8AAAAIAP0EAAADEQAAAAgAAQUAAAMSAAAACAAFBQAAAxMAAAAIAAkFAAADFQAAAAgADQUAAAMWAAAACAARBQAAAxcAAAAIABUFAAADGAAAAAgAGQUAAAMZAAAACAAdBQAAAxoAAAAIACEFAAADGwAAAAgAJQUAAAMcAAAACAApBQAAAx0AAAAIAC0FAAADHgAAAAgAMQUAAAMfAAAACAA1BQQYT3B0aW9uBARUAcABCBBOb25lAAAAEFNvbWUEAMAAAAEAADkFAAACPQUAPQUAAAQIAMEEAEEFDFRpbmRpdl9wYWxsZXRfaWRlbnRpdHkUdHlwZXMkSnVkZ2VtZW50BBxCYWxhbmNlARgBIBxVbmtub3duAAAAHEZlZVBhaWQEABgBHEJhbGFuY2UAAQAoUmVhc29uYWJsZQACACRLbm93bkdvb2QAAwAkT3V0T2ZEYXRlAAQAKExvd1F1YWxpdHkABQAkRXJyb25lb3VzAAYAIEV4dGVybmFsAAcAAEUFBBhPcHRpb24EBFQBSQUBCBBOb25lAAAAEFNvbWUEAEkFAAABAABJBQgoc3BfcnVudGltZThNdWx0aVNpZ25hdHVyZQABDBxFZDI1NTE5BABNBQFIZWQyNTUxOTo6U2lnbmF0dXJlAAAAHFNyMjU1MTkEAE0FAUhzcjI1NTE5OjpTaWduYXR1cmUAAQAURWNkc2EEAFEFAUBlY2RzYTo6U2lnbmF0dXJlAAIAAE0FAAADQAAAAAgAUQUAAANBAAAACABVBRQ0aW5kaXZfc3VwcG9ydBh0cmFpdHMccmVhbGl0eSBpZGVudGl0eRhTb2NpYWwAAQwcVHdpdHRlcgQBIHVzZXJuYW1luQIBEERhdGEAAAAYR2l0aHViBAEgdXNlcm5hbWW5AgEQRGF0YQABABxEaXNjb3JkBAE8ZGlzcGxheV9hbmRfdGFnuQIBEERhdGEAAgAAWQUMTGluZGl2X3BhbGxldF9wZW9wbGUYcGFsbGV0EENhbGwEBFQAATBEYnVpbGRfcmluZ19tYW51YWwIAShyaW5nX2luZGV4EAEkUmluZ0luZGV4AAEUbGltaXSRBAEsT3B0aW9uPHUzMj4AZBTEQnVpbGQgYSByaW5nIHJvb3QgYnkgaW5jbHVkaW5nIHJlZ2lzdGVyZWQgcGVvcGxlLgBZAVRoaXMgdGFzayBpcyBwZXJmb3JtZWQgYXV0b21hdGljYWxseSBieSB0aGUgcGFsbGV0IHRocm91Z2ggdGhlIGBvbl9pZGxlYCBob29rIHdoZW5ldmVyRQF0aGVyZSBpcyBsZWZ0b3ZlciB3ZWlnaHQgaW4gYSBibG9jay4gVGhpcyBjYWxsIGlzIG1lYW50IHRvIGJlIGEgYmFja3VwIGluIGNhc2Ugb2b0ZXh0cmVtZSBjb25nZXN0aW9uIGFuZCBzaG91bGQgYmUgc3VibWl0dGVkIGJ5IHNpZ25lZCBvcmlnaW5zLlRvbmJvYXJkX3Blb3BsZV9tYW51YWwAZRw1AU9uYm9hcmQgcGVvcGxlIGludG8gYSByaW5nIGJ5IHRha2luZyB0aGVpciBrZXlzIGZyb20gdGhlIG9uYm9hcmRpbmcgcXVldWUgYW5kSQFyZWdpc3RlcmluZyB0aGVtIGludG8gdGhlIHJpbmcuIFRoaXMgZG9lcyBub3QgY29tcHV0ZSB0aGUgcm9vdCwgdGhhdCBpcyBkb25lIHVzaW5nNGBidWlsZF9yaW5nYC4AWQFUaGlzIHRhc2sgaXMgcGVyZm9ybWVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHBhbGxldCB0aHJvdWdoIHRoZSBgb25faWRsZWAgaG9vayB3aGVuZXZlckUBdGhlcmUgaXMgbGVmdG92ZXIgd2VpZ2h0IGluIGEgYmxvY2suIFRoaXMgY2FsbCBpcyBtZWFudCB0byBiZSBhIGJhY2t1cCBpbiBjYXNlIG9m9GV4dHJlbWUgY29uZ2VzdGlvbiBhbmQgc2hvdWxkIGJlIHN1Ym1pdHRlZCBieSBzaWduZWQgb3JpZ2lucy4sbWVyZ2VfcmluZ3MIATxiYXNlX3JpbmdfaW5kZXgQASRSaW5nSW5kZXgAAUR0YXJnZXRfcmluZ19pbmRleBABJFJpbmdJbmRleABmDE0BTWVyZ2UgdGhlIHBlb3BsZSBpbiB0d28gcmluZ3MgaW50byBhIHNpbmdsZSwgbmV3IHJpbmcuIEluIG9yZGVyIGZvciB0aGUgcmluZ3MgdG8gYmU1AWVsaWdpYmxlIGZvciBtZXJnaW5nLCB0aGV5IG11c3QgYmUgYmVsb3cgMS8yIG9mIG1heCBjYXBhY2l0eSwgaGF2ZSBubyBwZW5kaW5n4HN1c3BlbnNpb25zIGFuZCBub3QgYmUgdGhlIHRvcCByaW5nIHVzZWQgZm9yIG9uYm9hcmRpbmcuLHVuZGVyX2FsaWFzBAEQY2FsbGkDAbRCb3g8PFQgYXMgZnJhbWVfc3lzdGVtOjpDb25maWc+OjpSdW50aW1lQ2FsbD4AABAVAURpc3BhdGNoIGEgY2FsbCB1bmRlciBhbiBhbGlhcyB1c2luZyB0aGUgYGFjY291bnQgPC0+IGFsaWFzYCBtYXBwaW5nLgBFAVRoaXMgaXMgYSBjYWxsIHZlcnNpb24gb2YgdGhlIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiBgQXNQZXJzb25hbEFsaWFzV2l0aEFjY291bnRgLiUBSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHRoZSB0cmFuc2FjdGlvbiBleHRlbnNpb24gaW5zdGVhZCB3aGVuIHN1aXRhYmxlLkRzZXRfYWxpYXNfYWNjb3VudAgBHGFjY291bnQAATBUOjpBY2NvdW50SWQAATRjYWxsX3ZhbGlkX2F0EAFEQmxvY2tOdW1iZXJGb3I8VD4AASQtAVRoaXMgdHJhbnNhY3Rpb24gaXMgcmVmdW5kZWQgaWYgc3VjY2Vzc2Z1bCBhbmQgbm8gYWxpYXMgd2FzIHByZXZpb3VzbHkgc2V0LgCwVGhlIGNhbGwgaXMgdmFsaWQgZnJvbSBgY2FsbF92YWxpZF9hdGAgdW50aWy8YGNhbGxfdmFsaWRfYXQgKyBhY2NvdW50X3NldHVwX3RpbWVfdG9sZXJhbmNlYC4dAWBhY2NvdW50X3NldHVwX3RpbWVfdG9sZXJhbmNlYCBpcyBhIGNvbnN0YW50IGF2YWlsYWJsZSBpbiB0aGUgbWV0YWRhdGEuACxQYXJhbWV0ZXJzOrgtIGBhY2NvdW50YDogVGhlIGFjY291bnQgdG8gc2V0IHRoZSBhbGlhcyBmb3IuAQEtIGBjYWxsX3ZhbGlkX2F0YDogVGhlIGJsb2NrIG51bWJlciB3aGVuIHRoZSBjYWxsIGJlY29tZXMgdmFsaWQuTHVuc2V0X2FsaWFzX2FjY291bnQAAgQVAVJlbW92ZSB0aGUgbWFwcGluZyBmcm9tIGEgcGFydGljdWxhciBhbGlhcyB0byBpdHMgcmVnaXN0ZXJlZCBhY2NvdW50Lmhmb3JjZV9yZWNvZ25pemVfcGVyc29uaG9vZAQBGHBlb3BsZV0FAUBWZWM8TWVtYmVyT2Y8VD4+AAMY4FJlY29nbml6ZSBhIHNldCBvZiBwZW9wbGUgd2l0aG91dCBhbnkgYWRkaXRpb25hbCBjaGVja3MuAFEBVGhlIHBlb3BsZSBhcmUgaWRlbnRpZmllZCBieSB0aGUgcHJvdmlkZWQgbGlzdCBvZiBrZXlzIGFuZCB3aWxsIGVhY2ggYmUgYXNzaWduZWQsIGlumG9yZGVyLCB0aGUgbmV4dCBhdmFpbGFibGUgcGVyc29uYWwgSUQuAMxUaGUgb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBoYXZlIHJvb3QgcHJpdmlsZWdlcy5cc2V0X3BlcnNvbmFsX2lkX2FjY291bnQIARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAE0Y2FsbF92YWxpZF9hdBABREJsb2NrTnVtYmVyRm9yPFQ+AAQ8aFNldCBhIHBlcnNvbmFsIGlkIGFjY291bnQuAE0BVGhlIGFjY291bnQgY2FuIHRoZW4gYmUgdXNlZCB0byBzaWduIHRyYW5zYWN0aW9ucyBvbiBiZWhhbGYgb2YgdGhlIHBlcnNvbmFsIGlkLCBhbmSkcHJvdmlkZSByZXBsYXkgcHJvdGVjdGlvbiB3aXRoIHRoZSBub25jZS4AUQFUaGlzIHRyYW5zYWN0aW9uIGlzIHJlZnVuZGVkIGlmIHN1Y2Nlc3NmdWwgYW5kIG5vIGFjY291bnQgd2FzIHByZXZpb3VzbHkgc2V0IGZvciB0aGUwcGVyc29uYWwgaWQuALBUaGUgY2FsbCBpcyB2YWxpZCBmcm9tIGBjYWxsX3ZhbGlkX2F0YCB1bnRpbLxgY2FsbF92YWxpZF9hdCArIGFjY291bnRfc2V0dXBfdGltZV90b2xlcmFuY2VgLh0BYGFjY291bnRfc2V0dXBfdGltZV90b2xlcmFuY2VgIGlzIGEgY29uc3RhbnQgYXZhaWxhYmxlIGluIHRoZSBtZXRhZGF0YS4ALFBhcmFtZXRlcnM6uC0gYGFjY291bnRgOiBUaGUgYWNjb3VudCB0byBzZXQgdGhlIGFsaWFzIGZvci4BAS0gYGNhbGxfdmFsaWRfYXRgOiBUaGUgYmxvY2sgbnVtYmVyIHdoZW4gdGhlIGNhbGwgYmVjb21lcyB2YWxpZC5kdW5zZXRfcGVyc29uYWxfaWRfYWNjb3VudAAFBHhVbnNldCB0aGUgcGVyc29uYWwgaWQgYWNjb3VudC5QbWlncmF0ZV9pbmNsdWRlZF9rZXkEARxuZXdfa2V5yQIBLE1lbWJlck9mPFQ+AAYMXQFNaWdyYXRlIHRoZSBrZXkgZm9yIGEgcGVyc29uIHdobyB3YXMgb25ib2FyZGVkIGFuZCBpcyBjdXJyZW50bHkgaW5jbHVkZWQgaW4gYSByaW5nLiBUaGVZAW1pZ3JhdGlvbiBpcyBub3QgaW5zdGFudCBhcyB0aGUga2V5IHJlcGxhY2VtZW50IGFuZCBzdWJzZXF1ZW50IGluY2x1c2lvbiBpbiBhIG5ldyByaW5n2HJvb3Qgd2lsbCBoYXBwZW4gb25seSBhZnRlciB0aGUgbmV4dCBtdXRhdGlvbiBzZXNzaW9uLlhtaWdyYXRlX29uYm9hcmRpbmdfa2V5BAEcbmV3X2tleckCASxNZW1iZXJPZjxUPgAHCE0BTWlncmF0ZSB0aGUga2V5IGZvciBhIHBlcnNvbiB3aG8gaXMgY3VycmVudGx5IG9uYm9hcmRpbmcuIFRoZSBvcGVyYXRpb24gaXMgaW5zdGFudCy4cmVwbGFjaW5nIHRoZSBvbGQga2V5IGluIHRoZSBvbmJvYXJkaW5nIHF1ZXVlLkxzZXRfb25ib2FyZGluZ19zaXplBAE8b25ib2FyZGluZ19zaXplEAEMdTMyAAgERQFGb3JjZSBzZXQgdGhlIG9uYm9hcmRpbmcgc2l6ZSBmb3IgbmV3IHBlb3BsZS4gVGhpcyBjYWxsIHJlcXVpcmVzIHJvb3QgcHJpdmlsZWdlcy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuXQUAAALJAgBhBQxUaW5kaXZfcGFsbGV0X21vYl9ydWxlGHBhbGxldBBDYWxsBARUAAFEEHZvdGUIAShjYXNlX2luZGV4EAEkQ2FzZUluZGV4AAEcb3Bpbmlvbr0CASRKdWRnZW1lbnQAAATgRmVlbGVzcyBvbiBzdWNjZXNzIChkZXRlcm1pbmVkIG9ubHkgYnkgdG9wIHRocmVlIGxpbmVzKS4oY2xvc2VfY2FzZQQBKGNhc2VfaW5kZXgQASRDYXNlSW5kZXgAAQAoY2xlYW5fdm90ZQgBKGNhc2VfaW5kZXgQASRDYXNlSW5kZXgAARR2b3RlcgQBFEFsaWFzAAIMJQFPcmlnaW4gbXVzdCBiZSBgTm9uZWAuIFRoZSB0cmFuc2FjdGlvbiBpcyB2YWxpZGF0ZWQgaW4gYFZhbGlkYXRlVW5zaWduZWRgYQF3aGVuIHRoZSBzb3VyY2UgaXMgbG9jYWwgKGUuZy4gZnJvbSB0aGUgb2ZmY2hhaW4gd29ya2VyKS4gRm9yIGV4dGVybmFsIHRyYW5zYWN0aW9ucywgdXNlUGBjbGVhbl92b3RlX3NpZ25lZGAuJHJlYXBfY2FzZQQBKGNhc2VfaW5kZXgQASRDYXNlSW5kZXgAAwAkaW50ZXJ2ZW5lCAEoY2FzZV9pbmRleBABJENhc2VJbmRleAABHHZlcmRpY3S9AgEkSnVkZ2VtZW50AAQAKGNsYWltX3ZvdGUEAShjYXNlX2luZGV4EAEkQ2FzZUluZGV4AAUIIQFBIHBlcnNvbiBjbGFpbXMgdGhlIG1vYiBjcmVkaXQgYXNzb2NpYXRlZCB3aXRoIGEgY29ycmVjdCB2b3RlIG9uIGEgY2FzZS5gVGhlIGNhc2UgbXVzdCBiZSBgRG9uZWAuOHBheW91dF9yZXdhcmRzBAEcdm91Y2hlcskCAShUOjpWb3VjaGVyAAYE4EEgcGVyc29uIGNvbnZlcnRzIHRoZWlyIGNsYWltZWQgbW9iIGNyZWRpdCBpbnRvIHJld2FyZHMuLGNsYWltX3ZvdGVzBAEwY2FzZV9pbmRpY2Vz0QIBOFZlYzxDYXNlSW5kZXg+AAcINQFBIHBlcnNvbiBjbGFpbXMgbXVsdGlwbGUgbW9iIGNyZWRpdHMgYXNzb2NpYXRlZCBhIGNvcnJlY3Qgdm90ZSBvbiBhIGNhc2UuIFRoZVBjYXNlIG11c3QgYmUgYERvbmVgLkhzdGFydF9wYXlvdXRfcm91bmQACABYc2NoZWR1bGVfcGF5b3V0X3JvdW5kcwwBGGFtb3VudBgBMEJhbGFuY2VPZjxUPgABFGNvdW50EAEMdTMyAAEYcGVyaW9kEAFEQmxvY2tOdW1iZXJGb3I8VD4ACQBYcmVtb3ZlX3BheW91dF9zY2hlZHVsZQQBFGluZGV4EAEMdTMyAAoAMGNsYWltX2NyZWRpdAALADBjbGVhbl9wb2ludHMIARRyb3VuZBABKFJvdW5kSW5kZXgAARR2b3RlcgQBFEFsaWFzAAwAQGZvcmNlX3JpcGVuX2Nhc2UEAShjYXNlX2luZGV4EAEkQ2FzZUluZGV4AA0AKHRvdWNoX2Nhc2UEAShjYXNlX2luZGV4EAEkQ2FzZUluZGV4AA4AUGNsZWFyX3ZvdGluZ19wZW5hbHR5AA8ARGNsZWFuX3ZvdGVfc2lnbmVkCAEoY2FzZV9pbmRleBABJENhc2VJbmRleAABFHZvdGVyBAEUQWxpYXMAEARYT3JpZ2luIG11c3QgYmUgc2lnbmVkLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5lBQxkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luaxhwYWxsZXQQQ2FsbAQEVAABWBRhcHBseQAADJAtIERlY2xhcmUgaW50ZW50aW9uIHRvIGdldCBhIHRhdHRvby5MLSBEZXBvc2l0IGlzIHRha2VuLrgtIGBJbmtUeXBlYCBtYXkgbm90IGJlIGBQcm9jZWR1cmFsRGVyaXZhdGl2ZWAuPHN1Ym1pdF9ldmlkZW5jZQQBIGV2aWRlbmNlBAEwRXZpZGVuY2VIYXNoAAEQvC0gT3BlbiBhIGp1ZGljaWFsIGNhc2UgdG8ganVkZ2UgdGhlIGBldmlkZW5jZWAu1C0gQ2FsbHMgSnVkaWNpYWwvYEp1ZGdlU3RhdGVtZW50KFBPSV9IQVNILCBldmlkZW5jZSlgUQEtIE5lZWRzIGBTaWduZWRFeHRlbnNpb25gIHRvIGF2b2lkIHVwZnJvbnQgcmVxdWlyZW1lbnQgZm9yIGZlZSBpZiBganVkZ2VtZW50cyA9PSAwYC45AS0gSWYgYGp1ZGdlbWVudHMgPiAwYCwgdGhlbiBhbiBhZGRpdGlvbmFsIGZlZSBzaG91bGQgYmUgY2hhcmdlZCBpbnRvIFRyZWFzdXJ5LhhqdWRnZWQMARh0aWNrZXQQAURPcmFjbGVUaWNrZXRPZjxUPgABHGNvbnRleHStAwFASnVkZ2VtZW50Q29udGV4dAABJGp1ZGdlbWVudL0CASRKdWRnZW1lbnQAAgToSXMgY2FsbGVkIGJ5IHRoZSBPcmFjbGUgd2hlbiB0aGUgZXZpZGVuY2UgaGFzIGJlZW4ganVkZ2VkLkRyZWdpc3Rlcl9yZWZlcnJlZAwBDGtleckCASxNZW1iZXJPZjxUPgABLHZvdWNoZXJfa2V5yQIBKFQ6OlZvdWNoZXIAAUhwcm9vZl9vZl9vd25lcnNoaXBpBQGwPFQ6OkNyeXB0byBhcyBHZW5lcmF0ZVZlcmlmaWFibGU+OjpTaWduYXR1cmUAAyRQLSBHZXRzIGEgbmV3IGBpbmRleGB4LSBQdXRzIGFuIGVudHJ5IGludG8gYFBlb3BsZWAumC0gQ2FsbHMgUGVvcGxlL2BuZXdQZXJzb24oaW5kZXgsIGtleSlgACwjIEFyZ3VtZW50c7AqIGBrZXlgIC0gVGhlIHBlcnNvbmFsIGlkZW50aXR5IHRvIHJlZ2lzdGVyLkUBKiBgdm91Y2hlcl9rZXlgIC0gVGhlIHZvdWNoZXIga2V5IHRvIHJlZ2lzdGVyIHRoZSB2b3VjaGVyIG9mIHRoZSByZWZlcnJlZCBwZXJzb24uSQEqIGBwcm9vZl9vZl9vd25lcmhzaXBgIC0gVGhlIHNpZ25hdHVyZSBvZiBwcmVkZWZpbmVkIHByZWZpeCBgInBvcCByZWdpc3RlciB1c2luZyJgqCAgY29uY2F0ZW5hdGVkIHdpdGggdGhlIHNlbmRlciBhY2NvdW50IGlkLlRyZWdpc3Rlcl9ub25fcmVmZXJyZWQQAQxrZXnJAgEsTWVtYmVyT2Y8VD4AASx2b3VjaGVyX2tleckCAShUOjpWb3VjaGVyAAFQc2VsZl9yZWZfdm91Y2hlcl9rZXnJAgEoVDo6Vm91Y2hlcgABSHByb29mX29mX293bmVyc2hpcGkFAbA8VDo6Q3J5cHRvIGFzIEdlbmVyYXRlVmVyaWZpYWJsZT46OlNpZ25hdHVyZQAEUFAtIEdldHMgYSBuZXcgYGluZGV4YHgtIFB1dHMgYW4gZW50cnkgaW50byBgUGVvcGxlYC6YLSBDYWxscyBQZW9wbGUvYG5ld1BlcnNvbihpbmRleCwga2V5KWAALCMgQXJndW1lbnRzsCogYGtleWAgLSBUaGUgcGVyc29uYWwgaWRlbnRpdHkgdG8gcmVnaXN0ZXIuRQEqIGB2b3VjaGVyX2tleWAgLSBUaGUgdm91Y2hlciBrZXkgdG8gcmVnaXN0ZXIgdGhlIHZvdWNoZXIgb2YgdGhlIHJlZmVycmVkIHBlcnNvbi5hASogYHNlbGZfcmVmX3ZvdWNoZXJfa2V5YCAtIElmIHRoZSBjYW5kaWRhdGUgaXMgbm90IHJlZmVycmVkIHRoZW4gdGhlIHZvdWNoZXIgdG8gcmVnaXN0ZXJoICBhIHNlbGYtcmVmZXJyZXIgdm91Y2hlci5JASogYHByb29mX29mX293bmVyaHNpcGAgLSBUaGUgc2lnbmF0dXJlIG9mIHByZWRlZmluZWQgcHJlZml4IGAicG9wIHJlZ2lzdGVyIHVzaW5nImCoICBjb25jYXRlbmF0ZWQgd2l0aCB0aGUgc2VuZGVyIGFjY291bnQgaWQuACgjIFdhcm5pbmc6AFkBVGhpcyBjYWxsIHJlZ2lzdGVyIDIgdm91Y2hlcnMgdG8gdGhlIHNhbWUgcGVyc29uLiBJZiB0aGlzIHBlcnNvbiByZWRlZW0gdGhlIDIgdm91Y2hlcnNVAXRvIHRoZSBzYW1lIGFjY291bnQsIHRoaXMgbWlnaHQgY29tcHJvbWlzZSB0aGUgYW5vbnltaXR5IG9mIG93bmVyIG9mIHRoZSBwZXJzb25hbCBpZC5ZAUJlY2F1c2UgZnJvbSB0aGUgb3RoZXIgc2lkZSwgMiB2b3VjaGVycyBvZiB0aG9zZSAyIHNwZWNpZmljIHZhbHVlIHJlZGVlbWVkIHRvIHRoZSBzYW1lWQFhY2NvdW50IG1lYW5zIGl0IGlzIGxpa2VseSB0aGF0IHRoZSBhY2NvdW50IGlzIG93bmVkIGJ5IGEgcGVyc29uIHRoYXQgaXMgbm90IHJlZmVycmVkLlUBSWYgZmV3IHZvdWNoZXJzIGluIHRoZSByaW5ncyBjb21lIGZyb20gdGhlIHJlZ2lzdHJhdGlvbiBvZiBhIG5vbi1yZWZlcnJlZCBwZXJzb24gdGhlbvx0aGUgYWNjb3VudCBjYW4gYmUgbGlua2VkIHRvIHRob3NlIGZldyByZWdpc3RlcmVkIHBlcnNvbmFsIGlkcy4YcmVyb2xsAAUAGGNvbW1pdAgBGGNob2ljZW0FASRJbmtDaG9pY2UAAShyZXF1aXJlX2lkhQIBSE9wdGlvbjxQZXJzb25hbElkPgAGFEkBQ29tbWl0IHRvIGEgZGVzaWduIGFuZCBhdXRob3JpemUgdGhlIHN0b3JhZ2UgZm9yIChwb3NzaWJseSBqdXN0IGluaXRpYWwpIGV2aWRlbmNlLgBVAUlmIGEgc3BlY2lmaWMgcGVyc29uYWwgaWRlbnRpdHkgaXMgcmVxdWlyZWQsIHRoZW4gdGhpcyBjYW4gYmUgcGxhY2VkIGluIGByZXF1aXJlX2lkYC5BAVRoaXMgY2FuIGJlIGFueSB1bnVzZWQvdW5yZXNlcnZlZCBwZXJzb25hbCBpZGVudGl0eSBubyBncmVhdGVyIHRoYW4gdGhlIGBOZXh0SWRgIGNvdW50ZXIuNGFsbG9jYXRlX2Z1bGwABwAcdGltZW91dAQBHGFjY291bnQAATBUOjpBY2NvdW50SWQACAw5AU9uY2UgYSB0aW1lb3V0IHBhc3NlcywgcmVtb3ZlcyBhIGNhbmRpZGF0ZSB3aG8gaXMgc2VsZWN0ZWQgYnV0IG5vdCB5ZXQgcHJvdmVuLlkBSWYgdGhlIGNhbmRpZGF0ZSB3YXMgcmVmZXJyZWQgdGhlbiByZWZlcnJhbCBpcyBiYWQsIGlmIGNhbmRpZGF0ZSBhcHBsaWVkIHdpdGggZGVwb3NpdCxMZGVwb3NpdCBpcyBzbGFzaGVkLiBmbGFrZW91dAAJBLRSZW1vdmUgYSBjYW5kaWRhdGUgd2hvIGhhcyBub3QgeWV0IGNvbW1pdHRlZC5QYXBwbHlfd2l0aF9zaWduYXR1cmUMASByZWZlcnJlcjABKFBlcnNvbmFsSWQAASRzaWduYXR1cmVJBQFIVDo6VGlja2V0U2lnbmF0dXJlAAEYdGlja2V0AAEkVDo6VGlja2V0AAoQdFV0aWxpemUgYSByZWZlcnJhbCBzaWduYXR1cmUuAF0BVGhlIHBheWxvYWQgdG8gYmUgc2lnbmVkIGJ5IHRoZSByZWZlcnJlciB1c2luZyB0aGVpciByZWdpc3RlcmVkIGtleSBwYWlyIGlzIHRoZSBlbmNvZGVkpGJ5dGVzIG9mIHRoZSBhY2NvdW50IElEIG9mIHRoZSBjYW5kaWRhdGUuVGFwcGx5X3dpdGhfaW52aXRhdGlvbgwBHGludml0ZXIAATBUOjpBY2NvdW50SWQAARh0aWNrZXQAASxUaWNrZXRPZjxUPgABJHNpZ25hdHVyZUkFAUhUOjpUaWNrZXRTaWduYXR1cmUAExDUQXBwbHkgdG8gdGhlIFByb29mLW9mLUluayBwcm9jZXNzIHdpdGggYW4gaW52aXRhdGlvbi4AWQFUaGUgcGF5bG9hZCB0byBiZSBzaWduZWQgYnkgdGhlIGludml0ZXIgdXNpbmcgdGhlaXIgcmVnaXN0ZXJlZCBrZXkgcGFpciBpcyB0aGUgZW5jb2RlZKRieXRlcyBvZiB0aGUgYWNjb3VudCBJRCBvZiB0aGUgY2FuZGlkYXRlLkRhZGRfZGVzaWduX2ZhbWlseQwBFGluZGV42QIBLEZhbWlseUluZGV4AAEQa2luZN0CAShGYW1pbHlLaW5kAAEIaWQEASBGYW1pbHlJZAALBPBBZGQgYSBkZXNpZ24gZmFtaWx5LiBNdXN0IGhhdmUgcHJpdmlsZWdlZCBhY2Nlc3MgdG8gZG8gdGhpcy5Mc2V0X3JlZmVycmFsX3RpY2tldAQBGHRpY2tldAABJFQ6OlRpY2tldAAMGLxBZGQgYSByZWZlcnJhbCB0aWNrZXQgYXNzb2NpYXRlZCB3aXRoIGEgcGVyc29uLgBVAU9ubHkgb25lIHJlZmVycmFsIHRpY2tldCBtYXkgYmUgYWN0aXZlIGF0IGFueSBnaXZlbiB0aW1lIGZvciBvbmUgcGVyc29uLiBDYWxsaW5nIHRoaXMlAWV4dHJpbnNpYyB3aGlsZSBhIHZhbGlkIHRpY2tldCBpcyBzZXQgd2lsbCBvdmVyd3JpdGUgdGhlIGV4aXN0aW5nIHRpY2tldC4APQFJZiBhbnkgcGVuZGluZyByZWZlcnJhbCB2b3VjaGVycyBhcmUgcHJlc2VudCwgdGhleSBuZWVkIHRvIGJlIHJlZ2lzdGVyZWQgZmlyc3QuWGNhbmNlbF9yZWZlcnJhbF90aWNrZXQEARh0aWNrZXQAASRUOjpUaWNrZXQADQTIQ2FuY2VsIGEgcmVmZXJyYWwgdGlja2V0IGFzc29jaWF0ZWQgd2l0aCBhIHBlcnNvbi6QcmVnaXN0ZXJfc3VjY2Vzc2Z1bF9yZWZlcnJhbF92b3VjaGVyBAEsdm91Y2hlcl9rZXnJAgEoVDo6Vm91Y2hlcgAOADRncmFudF9pbnZpdGVzCAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABFGNvdW50EAEMdTMyAA8Y5EdyYW50cyBpbnZpdGVzIHRvIGFuIGFjY291bnQgc28gdGhleSBjYW4gZGlzdHJpYnV0ZSB0aGVtLgCYVGhlIG9yaWdpbiBtdXN0IGJlIGBJbnZpdGF0aW9uc09yaWdpbi4AsC0gYGFjY291bnRgOiBUaGUgYWNjb3VudCB0byBnaXZlIGludml0ZXMgdG8upC0gYGNvdW50YDogVGhlIG51bWJlciBvZiBpbnZpdGVzIHRvIGdpdmUukHJlbW92ZV9hdmFpbGFibGVfYW5kX3BlbmRpbmdfaW52aXRlcwgBHGFjY291bnQAATBUOjpBY2NvdW50SWQAARRsaW1pdBABDHUzMgAQGJxSZW1vdmUgYWxsIGludml0ZXMgZ2l2ZW4gdG8gYW4gYWNjb3VudC4AnFRoZSBvcmlnaW4gbXVzdCBiZSBgSW52aXRhdGlvbnNPcmlnaW5gLgDQLSBgYWNjb3VudGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSBhbGwgaW52aXRlcyBmcm9tLuwtIGBsaW1pdGA6IFRoZSBtYXhpbXVtIG51bWJlciBvZiBwZW5kaW5nIGludml0ZXMgdG8gcmVtb3ZlLkRzZXRfaW52aXRlX3RpY2tldAQBGHRpY2tldAABLFRpY2tldE9mPFQ+ABEUSEludml0ZSBhbiBhY2NvdW50LgANAVRoZSBvcmlnaW4gbXVzdCBiZSBzaWduZWQgYnkgYW4gYWNjb3VudCBhbmQgaGF2ZSBzb21lIGludml0ZXMgbGVmdC4AlC0gYHRpY2tldGA6IFRoZSBpbnZpdGUgdGlja2V0IHRvIHNldC5QY2FuY2VsX2ludml0ZV90aWNrZXQEARh0aWNrZXQAASxUaWNrZXRPZjxUPgASFFRDYW5jZWwgYW4gaW52aXRhdGlvbi4AIQFUaGUgb3JpZ2luIG11c3QgYmUgc2lnbmVkIGJ5IHRoZSBhY2NvdW50IHRoYXQgb3ducyB0aGUgdGlja2V0IHRvIGNhbmNlbC4AoC0gYHRpY2tldGA6IFRoZSBpbnZpdGUgdGlja2V0IHRvIGNhbmNlbC5Ec2V0X2NvbmZpZ3VyYXRpb24EARhjb25maWdxBQF8Q29uZmlnUmVjb3JkPEJsb2NrTnVtYmVyRm9yPFQ+PgAyBBUBU2V0IHRoZSBjb25maWd1cmF0aW9uIHJlY29yZC4gTXVzdCBoYXZlIHByaXZpbGVnZWQgYWNjZXNzIHRvIGRvIHRoaXMuYHNldF9yZWltYnVyc2VtZW50X3ZhbHVlcwgBPHJlZmVycmVkX3ZhbHVlc3UFAeBCb3VuZGVkVmVjPChUOjpCYWxhbmNlLCB1MzIpLCBUOjpNYXhSZWltYnVyc2VtZW50VmFsdWVzPgABPHJlZmVycmVyX3ZhbHVlc3UFAeBCb3VuZGVkVmVjPChUOjpCYWxhbmNlLCB1MzIpLCBUOjpNYXhSZWltYnVyc2VtZW50VmFsdWVzPgAzNE0BU2V0IHRoZSB2YWx1ZXMgb2YgdGhlIHJlaW1idXJzZW1lbnQgYXdhcmRlZCB0byByZWZlcnJlZCBjYW5kaWRhdGVzIGFzIHdlbGwgYXMgdGhlaXJZAXJlZmVycmVycywgYWxvbmcgd2l0aCB0aGUgbnVtYmVyIG9mIHJld2FyZHMgZm9yIGVhY2ggdmFsdWUuIFRoZXNlIHZhbHVlcyBhcmUgc3RvcmVkIGluUQFyZXZlcnNlIG9yZGVyIG9mIHRoZWlyIHByaW9yaXR5LCBzbyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbGlzdCB3aWxsIGJlIHRoZSBmaXJzdCBvbmVJAXRvIGJlIHVzZWQgYnkgdGhlIHJlaW1idXJzZW1lbnQgc3lzdGVtLiBUaGUgbGVuZ3RoIG9mIHRoZSB0d28gbGlzdHMgbXVzdCBiZSBlcXVhbC4AIFdBUk5JTkchAFUBQWZ0ZXIgdGhlIG51bWJlciBvZiByZXdhcmRzIGlzIGV4aGF1c3RlZCBmb3IgYSB2YWx1ZSBpbiB0aGUgbGlzdCwgdGhlIHBhbGxldCB3aWxsIHNldCUBdGhlIG5ldyByZXdhcmQncyB2YWx1ZSB0aHJvdWdoIHRoZSBwcml2YWN5IHZvdWNoZXIgc2VydmljZSBpbnRlcmZhY2Ugd2l0aF0BYHNldF92b3VjaGVyX3ZhbHVlX2RlbGF5ZWRgLiBUaGlzIG1lYW5zIHRoYXQgaXQgaXMgdW5jZXJ0YWluIHdoZW4gdGhlIG5ldyB2YWx1ZSB3aWxsIGJlXQFlbmFjdGVkLCBhcyBpdCB3aWxsIGhhcHBlbiB3aGVuIHRoZSBidWlsZGluZyByaW5nIG9mIHRoZSBjdXJyZW50IHZhbHVlIGlzIGZpbGxlZCwgd2hpY2hdASwgaW4gdGhlIHdvcnN0IGNhc2UsIG1heSB0YWtlIHVwIHRvIGBNYXhSaW5nU2l6ZSAtIDFgIGFkZGl0aW9uYWwgdm91Y2hlcnMuIFVzZXJzIHNob3VsZGEBY3JlYXRlIHRoZWlyIHNjaGVkdWxlcyB3aXRoIHRoaXMgaW4gbWluZCB0byBlbnN1cmUgdGhlIHBhbGxldCBkb2VzIG5vdCBydW4gb3V0IG9mIGZ1bmRzLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5pBQAAA2AAAAAIAG0FDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldCRJbmtDaG9pY2UAARRARGVzaWduZWRFbGVjdGl2ZQgA2QIBLEZhbWlseUluZGV4AADZAgEsRGVzaWduSW5kZXgAAABEUHJvY2VkdXJhbEFjY291bnQEANkCASxGYW1pbHlJbmRleAABAEhQcm9jZWR1cmFsUGVyc29uYWwEANkCASxGYW1pbHlJbmRleAACAChQcm9jZWR1cmFsCADZAgEsRmFtaWx5SW5kZXgAAAgBMFZhcmlhbnRJbmRleAADAFBQcm9jZWR1cmFsRGVyaXZhdGl2ZQgAMAEoUGVyc29uYWxJZAAAhQIBSE9wdGlvbjxQZXJzb25hbElkPgAEAABxBQxkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luaxhwYWxsZXQwQ29uZmlnUmVjb3JkBCxCbG9ja051bWJlcgEQACABOHJlcm9sbF90aW1lb3V0EAEsQmxvY2tOdW1iZXIAATxmYXN0dHJhY2tfY291bnQQAQx1MzIAARxtYXhpbXVtEAEMdTMyAAE4ZnVsbF9hbGxvY19sZW4wAQx1NjQAAUBmdWxsX2FsbG9jX2NvdW50EAEMdTMyAAE4aW5pdF9hbGxvY19sZW4wAQx1NjQAAUBpbml0X2FsbG9jX2NvdW50EAEMdTMyAAEcdGltZW91dBABLEJsb2NrTnVtYmVyAAB1BQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAXkFBFMAAAQAfQUBGFZlYzxUPgAAeQUAAAQIGBAAfQUAAAJ5BQCBBQxwaW5kaXZfcGFsbGV0X3ByaXZhY3lfdm91Y2hlchhwYWxsZXQQQ2FsbAQEVAABFDRjbGFpbV92b3VjaGVyDAEUcHJvb2aFBQEoUHJvb2ZPZjxUPgABNHZvdWNoZXJfdmFsdWUYATBCYWxhbmNlT2Y8VD4AAShyaW5nX2luZGV4EAEkUmluZ0luZGV4AAAMLQFDbGFpbSBhIHByaXZhdGUgdm91Y2hlci4gVGhlIHRva2VuIHdpbGwgYmUgZGVwb3NpdGVkIGluIHRoZSBjYWxsZXIgYWNjb3VudC4AVQFOT1RFOiBUaGlzIGRvZXNuJ3QgZ3VhcmFudGVlIHRoYXQgdGhlIHZvdWNoZXIgaXMgZW5vdWdoIHRvIHByb3ZpZGUgZm9yIGEgbmV3IGFjY291bnQueGNsYWltX3ZvdWNoZXJfaW50b19kZXN0aW5hdGlvbhABFHByb29mhQUBKFByb29mT2Y8VD4AARBkZXN0AAEwVDo6QWNjb3VudElkAAE0dm91Y2hlcl92YWx1ZRgBMEJhbGFuY2VPZjxUPgABKHJpbmdfaW5kZXgQASRSaW5nSW5kZXgAAQzMQ2xhaW0gYSBwcml2YXRlIHZvdWNoZXIgaW50byBhIGRlc3RpbmF0aW9uIGFjY291bnQuAFUBTk9URTogVGhpcyBkb2Vzbid0IGd1YXJhbnRlZSB0aGF0IHRoZSB2b3VjaGVyIGlzIGVub3VnaCB0byBwcm92aWRlIGZvciBhIG5ldyBhY2NvdW50LihjbGVhbl9yaW5nCAE0dm91Y2hlcl92YWx1ZRgBMEJhbGFuY2VPZjxUPgABKHJpbmdfaW5kZXgQASRSaW5nSW5kZXgAAhQFAUNsZWFuIGEgcmluZyB0aGF0IGhhcyBleHBpcmVkIChpLmUuIHRoZSBjbGFpbSBwZXJpb2QgaGFzIHBhc3NlZCkuAFhPcmlnaW4gbXVzdCBiZSBzaWduZWQuAHxDYWxsIGlzIHJlZnVuZGVkIGlmIHN1Y2Nlc3NmdWwuZHNldF92b3VjaGVyX3ZhbHVlX2RlbGF5ZWQIAUx2YXJpYWJsZV92b3VjaGVyX2lklQEBRFZhcmlhYmxlVm91Y2hlcklkAAEkbmV3X3ZhbHVlGAEwQmFsYW5jZU9mPFQ+AAMUXQFTZXQgdGhlIHZvdWNoZXIgdmFsdWUgZm9yIGEgdmFyaWFibGUgdm91Y2hlciB0eXBlLiBUaGUgdmFsdWUgd2lsbCB0YWtlIGVmZmVjdCBhZnRlciB0aGVhAWJ1aWxkaW5nIHJpbmcgZm9yIHRoZSBvbGQgdmFsdWUgaXMgZnVsbHkgYnVpbHQsIGlmIG5vIGJ1aWxkaW5nIHJpbmcgdGhlbiBpdCB0YWtlcyBlZmZlY3QwaW1tZWRpYXRlbHkuACEBSWYgdGhlIHZvdWNoZXIgaWQgZG9lcyBub3QgZXhpc3QsIGl0IHdpbGwgYmUgY3JlYXRlZCB3aXRoIHRoZSBuZXcgdmFsdWUuZHNldF92b3VjaGVyX3ZhbHVlX2luc3RhbnQIAUx2YXJpYWJsZV92b3VjaGVyX2lklQEBRFZhcmlhYmxlVm91Y2hlcklkAAEkbmV3X3ZhbHVlGAEwQmFsYW5jZU9mPFQ+AAQUXQFTZXQgdGhlIHZvdWNoZXIgdmFsdWUgZm9yIGEgdmFyaWFibGUgdm91Y2hlciB0eXBlIGluc3RhbnRseS4gVGhlIHZhbHVlIHdpbGwgdGFrZSBlZmZlY3RdAWluc3RhbnRseS4gSWYgdGhlcmUgaXMgYSBidWlsZGluZyByaW5nIGZvciB0aGUgb2xkIHZhbHVlLCBhbmQgbm8gb3RoZXIgdm91Y2hlciB1c2UgdGhpc+hvbGQgdmFsdWUsIHRoZSBidWlsZGluZyByaW5nIG1pZ2h0IG5ldmVyIGJlY29tZSBjbGFpbWFibGUuACEBSWYgdGhlIHZvdWNoZXIgaWQgZG9lcyBub3QgZXhpc3QsIGl0IHdpbGwgYmUgY3JlYXRlZCB3aXRoIHRoZSBuZXcgdmFsdWUuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLoUFAAADFAMAAAgAiQUMRGluZGl2X3BhbGxldF9nYW1lGHBhbGxldBBDYWxsBARUAAFATHNpZ25fdXBfd2l0aF9pbnZpdGUEAThpZGVudGlmaWVyX2tleVEFAVxDb21tdW5pY2F0aW9uSWRlbnRpZmllcgAAINBTaWduIHVwIGZvciB0aGUgZ2FtZSB1c2luZyBhbiBhY2NvdW50IGFuZCBhbiBpbnZpdGUuABUBVGhpcyBpcyBmb3IgbmV3IHBsYXllcnMgb3IgYXJjaGl2ZWQgcGxheWVycywgb3RoZXIgcGxheWVycyBzaG91bGQgdXNlqFtgUGFsbGV0OjpzaWduX3VwX3dpdGhfYWNjb3VudGBdIGZvciBmcmVlLgDUQSBnYW1lIG11c3QgYmUgb25nb2luZyBhbmQgaW4gaXRzIHJlZ2lzdHJhdGlvbiBwaGFzZS4AQQFUaGUgb3JpZ2luIG11c3QgYmUgYSBzaWduZWQgYnkgYW4gYWNjb3VudCBhbmQgdXNlIHRoZSBgR2FtZUFzSW52aXRlZGAgZXh0ZW5zaW9uLlBzaWduX3VwX3dpdGhfYWNjb3VudAQBOGlkZW50aWZpZXJfa2V5UQUBXENvbW11bmljYXRpb25JZGVudGlmaWVyAAEkmFNpZ24gdXAgZm9yIHRoZSBnYW1lIHVzaW5nIGFuIGFjY291bnQuAD0BSWYgdGhlIHBsYXllciBpcyBuZXcgb3IgYXJjaGl2ZWQsIHRoZW4gYSBkZXBvc2l0IHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgc2lnbmVyLmxPdGhlcndpc2UgdGhlIGNhbGwgaXMgZnJlZS4A1EEgZ2FtZSBtdXN0IGJlIG9uZ29pbmcgYW5kIGluIGl0cyByZWdpc3RyYXRpb24gcGhhc2UuADEBVGhlIG9yaWdpbiBtdXN0IGJlIHNpZ25lZCBieSBhbiBhY2NvdW50LCBvciwgYmUgc2lnbmVkIGJ5IGFuIGFjY291bnQgYW5kIHVzZXxgU2NvcmVBc1BhcnRpY2lwYW50YCBleHRlbnNpb24uSHNpZ25fdXBfd2l0aF9hbGlhcwwBOGlkZW50aWZpZXJfa2V5UQUBXENvbW11bmljYXRpb25JZGVudGlmaWVyAAFEc3RhdGVtZW50X2FjY291bnQAATBUOjpBY2NvdW50SWQAAQxzaWdJBQFMVDo6QWNjb3VudFNpZ25hdHVyZQACSFRTaWduIHVwIGZvciB0aGUgZ2FtZS4AVQFJZiBhIHBsYXllciBpcyBhbHJlYWR5IHJlY29nbml6ZWQgYnkgYW5vdGhlciBESU0sIHRoZXkgY2FuIHNpZ24gdXNpbmcgdGhlaXIgYWxpYXMgYW5kEQFkb24ndCBuZWVkIGFueSBkZXBvc2l0IG9yIGludml0ZSB0byBwcm92ZSB0aGVpciBpbml0aWFsIGNyZWRpYmlsaXR5LmEBT24gdG9wIG9mIHRoaXMgdGhlaXIgc2NvcmUgaXMgbmV2ZXIgZ29pbmcgYmVsb3cgcGVyc29uaG9vZCB0aHJlc2hvbGQgYW5kIHRoZSBwbGF5ZXIgd2lsbExuZXZlciBnZXQgYXJjaGl2ZWQuANRBIGdhbWUgbXVzdCBiZSBvbmdvaW5nIGFuZCBpbiBpdHMgcmVnaXN0cmF0aW9uIHBoYXNlLgCQVGhlIG9yaWdpbiBtdXN0IGJlIGEgcGVyc29uYWwgYWxpYXMuACxQYXJhbWV0ZXJzOmEBLSBgc3RhdGVtZW50X2FjY291bnRgOiB0aGUgYWNjb3VudCBpZCB0byB1c2UgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgc3RhdGVtZW50IHN0b3JlIGR1cmluZywgIHRoZSBnYW1lLlUBLSBgc2lnYDogdGhlIHByb29mIG9mIG93bmVyc2hpcCBvZiB0aGUgYWNjb3VudCBgc3RhdGVtZW50X2FjY291bnRgIGJ5IGFuIGFsaWFzLCBpdCBpc10BICB0aGUgc2lnbmF0dXJlIG9mIHRoZSBtZXNzYWdlIGAicG9wOmdhbWU6c3RtdF9hY2NvdW50X2Zvcl9hbGlhczoiYCBjb25jYXRlbmF0ZWQgdG8gdGhlSQEgIGFsaWFzLCBhbmQgdGhlbiBoYXNoZWQgd2l0aCBgYmxha2UyXzI1NmAgKGJsYWtlMiAyNTZiaXQgb3V0cHV0KS4gVGhlIGJhc2Ugb2YgdGhlGQEgIG1lc3NhZ2UgY2FuIGJlIGZvdW5kIGluIHRoZSBjb25zdGFudDogYHByb29mX29mX293bmVyc2hpcF9tc2dfYmFzZWAuGHJlcG9ydAQBLGZ1bGxfcmVwb3J0jQUBNEZ1bGxSZXBvcnQ8VD4AAxiUQWZ0ZXIgdGhlIGdhbWUsIHNlbmQgdGhlIGZ1bGwgcmVwb3J0LgDQVGhlIGdhbWUgbXVzdCBiZSBvbmdvaW5nIGFuZCBpbiBpdHMgcmVwb3J0aW5nIHBoYXNlLgBVAVRoZSBvcmlnaW4gbXVzdCBiZSBhbiBhbGlhcywgb3Igc2lnbmVkIGJ5IGFuIGFjY291bnQsIG9yIHNpZ25lZCBieSBhbiBhY2NvdW50IGFuZCB1c2V8YFNjb3JlQXNQYXJ0aWNpcGFudGAgZXh0ZW5zaW9uLiBvZmZib2FyZAAEHIBPZmZib2FyZCBhIHBsYXllciBmcm9tIHRoZSBnYW1lLgBVAVRoZSBvcmlnaW4gbXVzdCBiZSBhbiBhbGlhcywgb3Igc2lnbmVkIGJ5IGFuIGFjY291bnQsIG9yIHNpZ25lZCBieSBhbiBhY2NvdW50IGFuZCB1c2V8YFNjb3JlQXNQYXJ0aWNpcGFudGAgZXh0ZW5zaW9uLgBdAVRoZXJlIG11c3QgYmUgbm8gZ2FtZSBvciB0aGUgZXhpc3RpbmcgZ2FtZSBtdXN0IGJlIGluIHJlZ2lzdHJhdGlvbiBwaGFzZSBhbmQgdGhlIHBsYXllcpRtdXN0IGhhdmUgbm90IHNpZ25lZCB1cCBmb3IgdGhlIGdhbWUuHGtpY2tvdXQEARhwbGF5ZXIAATBUOjpBY2NvdW50SWQABRgxAUtpY2tvdXQgYSBraWNrYWJsZSBwbGF5ZXIgdGhhdCBpcyBub3QgcGxheWluZyBhZnRlciBgTm9uUGxheWluZ0tpY2tvdXRUaW1lYC4AoFRoZSBvcmlnaW4gbXVzdCBiZSBzaWduZWQgYnkgYW4gYWNjb3VudC4AIQEtIGBwbGF5ZXJgOiBUaGUgcGxheWVyIHRvIGtpY2tvdXQuIEl0IG11c3QgYmUgYXJjaGl2ZWQgYW5kIGtpY2thYmxlIHdpdGjYICBgYXJjaGl2ZWRfc2luY2VgIG9sZGVyIHRoYW4gYE5vblBsYXlpbmdLaWNrb3V0VGltZWAuNGdyYW50X2ludml0ZXMIARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEUY291bnQQAQx1MzIABhj0R3JhbnQgc29tZSBpbnZpdGVzIHRvIGFuIGFjY291bnQgc28gdGhleSBjYW4gZGlzdHJpYnV0ZSB0aGVtLgCIVGhlIG9yaWdpbiBtdXN0IGJlIGBJbnZpdGVJc3N1ZXJgLgC0LSBgYWNjb3VudGA6IFRoZSBhY2NvdW50IHRvIGdyYW50IGludml0ZXMgdG8uqC0gYGNvdW50YDogVGhlIG51bWJlciBvZiBpbnZpdGVzIHRvIGdyYW50LpByZW1vdmVfYXZhaWxhYmxlX2FuZF9wZW5kaW5nX2ludml0ZXMIARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEUbGltaXQQAQx1MzIABxiYQ2xlYXIgYWxsIGludml0ZXMgZ2l2ZW4gdG8gYW4gYWNjb3VudC4AiFRoZSBvcmlnaW4gbXVzdCBiZSBgSW52aXRlSXNzdWVyYC4A0C0gYGFjY291bnRgOiBUaGUgYWNjb3VudCB0byByZW1vdmUgYWxsIGludml0ZXMgZnJvbS7sLSBgbGltaXRgOiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGVuZGluZyBpbnZpdGVzIHRvIHJlbW92ZS5Ec2V0X2ludml0ZV90aWNrZXQEARh0aWNrZXQAASxUaWNrZXRPZjxUPgAIFEhJbnZpdGUgYW4gYWNjb3VudC4ADQFUaGUgb3JpZ2luIG11c3QgYmUgc2lnbmVkIGJ5IGFuIGFjY291bnQgYW5kIGhhdmUgc29tZSBpbnZpdGVzIGxlZnQuAJQtIGB0aWNrZXRgOiBUaGUgaW52aXRlIHRpY2tldCB0byBzZXQuUGNhbmNlbF9pbnZpdGVfdGlja2V0BAEYdGlja2V0AAEsVGlja2V0T2Y8VD4ACRREQ2FuY2VsIGFuIGludml0ZS4AIQFUaGUgb3JpZ2luIG11c3QgYmUgc2lnbmVkIGJ5IHRoZSBhY2NvdW50IHRoYXQgb3ducyB0aGUgdGlja2V0IHRvIGNhbmNlbC4AoC0gYHRpY2tldGA6IFRoZSBpbnZpdGUgdGlja2V0IHRvIGNhbmNlbC44c2NoZWR1bGVfZ2FtZXMEATxnYW1lc19zY2hlZHVsZXOhBQFEVmVjPEdhbWVTY2hlZHVsZT4ACgjQU2NoZWR1bGVzIG5ldyBnYW1lcyBhY2NvcmRpbmcgdG8gcHJvdmlkZWQgc2NoZWR1bGVzLl0BU2NoZWR1bGVzIG11c3QgYmUgaW4gY2hyb25vbG9naWNhbCBvcmRlciwgYW5kIGFmdGVyIHRoZSBvbmdvaW5nIGdhbWUgKGlmIHRoZXJlIGlzIGFueSkuVHJlbW92ZV9zY2hlZHVsZWRfZ2FtZQQBOGdhbWVfcGxheV90aW1lEAEMdTMyAAsAbHRlc3RuZXRfZm9yY2Vfc3RhcnRfc2h1ZmZsZQBlDNRGb3JjZSBzdGFydCB0aGUgc2h1ZmZsZSBiZWZvcmUgaXRzIG5vcm1hbCBzdGFydCB0aW1lLgBNAVRoaXMgYWN0aW9uIGNhbiBvbmx5IGJlIHBlcmZvcm1lZCBieSB0aGUgcm9vdCBvcmlnaW4gYW5kIGlzIG9ubHkgbWVhbnQgZm9yIHRlc3RpbmcubHRlc3RuZXRfZm9yY2VfZW5kX3JlcG9ydGluZwBmHPhGb3JjZSBlbmQgYSBnYW1lJ3MgcmVwb3J0aW5nIHBoYXNlIGJlZm9yZSBpdHMgbm9ybWFsIGVuZCB0aW1lLgBNAVRoaXMgYWN0aW9uIGNhbiBvbmx5IGJlIHBlcmZvcm1lZCBieSB0aGUgcm9vdCBvcmlnaW4gYW5kIGlzIG9ubHkgbWVhbnQgZm9yIHRlc3RpbmcuAFkBVGhlIHJlcG9ydGluZyBwaGFzZSBvbmx5IHN0YXJ0IHdoZW4gdGhlIG11dGF0aW9uIHNlc3Npb24gY2FuIGJlIHN0YXJ0ZWQuIFRoZSBjYWxsIHdpbGxZAWZhaWwgaWYgdGhlIG11dGF0aW9uIHNlc3Npb24gY2Fubm90IGJlIHN0YXJ0ZWQuIEl0IGNhbiBiZSByZXRyaWVkIGZldyBibG9ja3MgbGF0ZXIgdGhl0HRpbWUgZm9yIHRoZSBwZW9wbGUgbXV0YXRpb24gc2Vzc2lvbnMgdG8gYmUgcHJvY2VlZC5cdGVzdG5ldF9zZXRfZ2FtZV9waGFzZXMEARhwaGFzZXOpBQFMUGhhc2VEdXJhdGlvblZhbHVlcwBnDIRGb3JjZSBzZXQgdGhlIGdhbWUgcGhhc2UgcGVyaW9kcy4ATQFUaGlzIGFjdGlvbiBjYW4gb25seSBiZSBwZXJmb3JtZWQgYnkgdGhlIHJvb3Qgb3JpZ2luIGFuZCBpcyBvbmx5IG1lYW50IGZvciB0ZXN0aW5nLmR0ZXN0bmV0X2tpbGxfY3VycmVudF9nYW1lAGgEzEtpbGwgdGhlIGN1cnJlbnQgZ2FtZS4gV2hhdGV2ZXIgdGhlIHBoYXNlIGl0IGlzIGluLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6NBQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAZEFBFMAAAQAnQUBGFZlYzxUPgAAkQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGVBQRTAAAEAJkFARhWZWM8VD4AAJUFDERpbmRpdl9wYWxsZXRfZ2FtZRR0eXBlcxhSZXBvcnQAAQgYUGVyc29uAAAAJE5vdFBlcnNvbgABAACZBQAAApUFAJ0FAAACkQUAoQUAAAKlBQClBQxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXMwR2FtZVNjaGVkdWxlAAAQAThnYW1lX3BsYXlfdGltZRABDHUzMgABGHJvdW5kcwgBCHU4AAE4bWF4X2dyb3VwX3NpemUQAQx1MzIAAWRwZXJzb25ob29kX3Njb3JlX292ZXJyaWRlkQQBLE9wdGlvbjx1MzI+AACpBQxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXNMUGhhc2VEdXJhdGlvblZhbHVlcwAAFAEwcmVnaXN0cmF0aW9uEAEMdTMyAAEcc2h1ZmZsZRABDHUzMgABTHBvc3Rfc2h1ZmZsZV9tYXJnaW4QAQx1MzIAASRyZXBvcnRpbmcQAQx1MzIAAThwbGF5ZXJfcHJvY2VzcxABDHUzMgAArQUMSGluZGl2X3BhbGxldF9zY29yZRhwYWxsZXQQQ2FsbAQEVAABHFhzY2hlZHVsZV9wYXlvdXRfcm91bmRzDAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAEUY291bnQQAQx1MzIAASBkdXJhdGlvbhABREJsb2NrTnVtYmVyRm9yPFQ+AAEMXFNjaGVkdWxlIHBheW91dCByb3VuZHMuAJRDYWxsZWQgZnJvbSBgU2NoZWR1bGVPcmlnaW5gIG9yIHJvb3QuWHJlbW92ZV9wYXlvdXRfc2NoZWR1bGUEARRpbmRleBABDHUzMgACDIBSZW1vdmUgYSBzY2hlZHVsZWQgcGF5b3V0IHJvdW5kLgCUQ2FsbGVkIGZyb20gYFNjaGVkdWxlT3JpZ2luYCBvciByb290LkB0cmFuc2l0aW9uX3JvdW5kBAEscm91bmRfaW5kZXgQAQx1MzIAAxhIU3RhcnQgYSBuZXcgcm91bmQuAFEBVGhpcyBpcyB2YWxpZCBpZiB0aGUgY3VycmVudCByb3VuZCBpcyBmaW5pc2hlZCwgb3IgaWYgdGhlIGN1cnJlbnQgcm91bmQgZG9lc24ndCBoYXZlqHBsYW5uaW5nIGFuZCBhIHNjaGVkdWxlIGV4aXN0cyB0byBwbGFuIGl0LgCsVGhpcyBpcyBhIHRhc2ssIGNhbiBiZSBjYWxsZWQgZnJvbSBhbnlib2R5LlBvcGVyYXRlX3BheW91dF9yb3VuZAgBLHJvdW5kX2luZGV4EAEoUm91bmRJbmRleAABFGxpbWl0EAEMdTMyAAQYeE9wZXJhdGUgc29tZSByb3VuZCBwYXlpbmcgb3V0LgCsVGhpcyBpcyBhIHRhc2ssIGNhbiBiZSBjYWxsZWQgZnJvbSBhbnlib2R5LgDEKiByb3VuZF9pbmRleDogVGhlIGluZGV4IG9mIHRoZSByb3VuZCB0byBvcGVyYXRlLhEBKiBsaW1pdDogVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcnRpY2lwYW50cyB0byBvcGVyYXRlIGluIHRoaXMgY2FsbC4gY2FzaF9vdXQABRhdAUNhc2ggb3V0LiBSZWR1Y2Ugc2NvcmUsIGdldCBzb21lIHBvaW50cy4gQ2FsbGVyIG11c3QgYmUgYSBuZXZlciByZWNvZ25pemVkIHBhcnRpY2lwYW50LgA9AU9yaWdpbiBtdXN0IGJlIHNpZ25lZCBvciBwYXJ0aWNpcGFudCAoc2lnbmVkIGV4dHJpbnNpYyB1c2luZyBTY29yZUFzUGFydGljaXBhbnRYdHJhbnNhY3Rpb24gZXh0ZW5zaW9uKQDMQWxpYXMgb3JpZ2luIGlzIG5vdCBhbGxvd2VkIGFzIHRoZXkgY2FuJ3QgY2FzaCBvdXQuNHJlZGVlbV9jcmVkaXQEARx2b3VjaGVyyQIBKFQ6OlZvdWNoZXIABhCIUmVkZWVtIGNyZWRpdC4gUmVnaXN0ZXIgYSB2b3VjaGVyLgA5AU9yaWdpbiBtdXN0IGJlIGFuIGFsaWFzIG9yIGEgc2lnbmVkIGFjY291bnQgb3IgYSBwYXJ0aWNpcGFudCAoc2lnbmVkIGV4dHJpbnNpY8B1c2luZyBTY29yZUFzUGFydGljaXBhbnQgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uKS4gcmVnaXN0ZXIEAQxrZXmxBQENAU9wdGlvbjwoTWVtYmVyT2Y8VD4sPFQ6OkNyeXB0byBhcyBHZW5lcmF0ZVZlcmlmaWFibGU+OjpTaWduYXR1cmUpCj4ABySsUmVnaXN0ZXIgYXMgYSBwZXJzb24sIG9yIHJlc3VtZSBwZXJzb25ob29kLgBFAU9yaWdpbiBtdXN0IGJlIHNpZ25lZCBvciBhIHBhcnRpY2lwYW50IChzaWduZWQgZXh0cmluc2ljIHVzaW5nIFNjb3JlQXNQYXJ0aWNpcGFudFx0cmFuc2FjdGlvbiBleHRlbnNpb24pLgAhAUlmIHRoZSBwZXJzb24gd2FzIHJlY29nbml6ZWQgYW5kIHN1c3BlbmRlZCwgdGhleSBtdXN0IG5vdCBwcm92aWRlIGEga2V5Lk0BSWYgdGhlIHBlcnNvbiB3YXMgbmV2ZXIgcmVjb2duaXplZCwgdGhleSBtdXN0IHByb3ZpZGUgYSBrZXkgYW5kIHByb29mIG9mIG93bmVyc2hpcC5VASogYGtleWAgLSBUaGUga2V5IGFuZCBwcm9vZiBvZiBvd25lcnNoaXAgc2lnbmF0dXJlIG9mIGAicG9wIHJlZ2lzdGVyIHVzaW5nIiArKyBzZW5kZXI4ICBhY2NvdW50IGlkYC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMusQUEGE9wdGlvbgQEVAG1BQEIEE5vbmUAAAAQU29tZQQAtQUAAAEAALUFAAAECMkCaQUAuQUMWGluZGl2X3BhbGxldF9kdW1teV9kaW0YcGFsbGV0EENhbGwEBFQAASAscmVzZXJ2ZV9pZHMEARRjb3VudBABDHUzMgAABIRSZXNlcnZlIGEgbnVtYmVyIG9mIHBlcnNvbmFsIElEcy5QcmVuZXdfaWRfcmVzZXJ2YXRpb24EAQhpZDABKFBlcnNvbmFsSWQAAQS8UmVuZXcgYSBwZXJzb25hbCBJRC4gVGhlIElEIG11c3Qgbm90IGJlIGluIHVzZS5UY2FuY2VsX2lkX3Jlc2VydmF0aW9uBAEIaWQwAShQZXJzb25hbElkAAIEhENhbmNlbCBhIHBlcnNvbmFsIElEIHJlc2VydmF0aW9uLlByZWNvZ25pemVfcGVyc29uaG9vZAQBMGlkc19hbmRfa2V5c70FAfBCb3VuZGVkVmVjPChQZXJzb25hbElkLCBNZW1iZXJPZjxUPiksIFQ6Ok1heFBlcnNvbkJhdGNoU2l6ZT4AAwQpAUdyYW50IHBlcnNvbmhvb2QgZm9yIGEgbGlzdCBvZiBjYW5kaWRhdGVzIHRoYXQgaGF2ZSByZXNlcnZlZCBwZXJzb25hbCBJRHMuSHN1c3BlbmRfcGVyc29uaG9vZAQBDGlkc8kFAbRCb3VuZGVkVmVjPFBlcnNvbmFsSWQsIFQ6Ok1heFBlcnNvbkJhdGNoU2l6ZT4ABAhdAVN1c3BlbmQgdGhlIHBlcnNvbmhvb2Qgb2YgYSBsaXN0IG9mIHJlY29nbml6ZWQgcGVvcGxlLiBUaGUgcGVvcGxlIG11c3Qgbm90IGN1cnJlbnRseSBiZShzdXNwZW5kZWQuRHJlc3VtZV9wZXJzb25ob29kBAEIaWQwAShQZXJzb25hbElkAAUEEQFSZXN1bWUgc29tZW9uZSdzIHBlcnNvbmhvb2QuIFRoZSBwZXJzb24gbXVzdCBjdXJyZW50bHkgYmUgc3VzcGVuZGVkLlhzdGFydF9tdXRhdGlvbl9zZXNzaW9uAAYIXQFTdGFydCBhIG11dGF0aW9uIHNlc3Npb24gaW4gdGhlIHVuZGVybHlpbmcgYFBlb3BsZWAgaW50ZXJmYWNlLiBUaGlzIGNhbGwgZG9lcyBub3QgY2hlY2slAXdoZXRoZXIgYSBtdXRhdGlvbiBzZXNzaW9uIGlzIGFscmVhZHkgb25nb2luZyBhbmQgY2FuIHN0YXJ0IG5ldyBzZXNzaW9ucy5QZW5kX211dGF0aW9uX3Nlc3Npb24ABxBdAUVuZCBhIG11dGF0aW9uIHNlc3Npb24gaW4gdGhlIHVuZGVybHlpbmcgYFBlb3BsZWAgaW50ZXJmYWNlLiBUaGlzIGNhbGwgY2FuIGVuZCBtdWx0aXBsZeBtdXRhdGlvbiBzZXNzaW9ucywgZXZlbiBvbmVzIG5vdCBzdGFydGVkIGJ5IHRoaXMgcGFsbGV0LgDYVGhpcyBjYWxsIHdpbGwgZmFpbCBpZiBubyBtdXRhdGlvbiBzZXNzaW9uIGlzIG9uZ29pbmcuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLr0FDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBwQUEUwAABADFBQEYVmVjPFQ+AADBBQAABAgwyQIAxQUAAALBBQDJBQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUATAEUwAABADNBQEYVmVjPFQ+AADNBQAAAjAA0QUMYGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZRhwYWxsZXQQQ2FsbAQEVAABEHhpbmNyZWFzZV9hdHRlc3RhdGlvbl9hbGxvd2FuY2UIARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEUY291bnQQAQx1MzIAABglAUdyYW50IHNvbWUgYXR0ZXN0YXRpb24gYWxsb3dhbmNlIHRvIGFuIGFjY291bnQgc28gdGhleSBjYW4gYXR0ZXN0IHBlb3BsZS4AxFRoZSBvcmlnaW4gbXVzdCBiZSBgQXR0ZXN0YXRpb25BbGxvd2FuY2VNYW5hZ2VyYC4AyC0gYGFjY291bnRgOiBUaGUgYWNjb3VudCB0byBncmFudCBhdHRlc3RhdGlvbnMgdG8uvC0gYGNvdW50YDogVGhlIG51bWJlciBvZiBhdHRlc3RhdGlvbnMgdG8gZ3JhbnQubGNsZWFyX2F0dGVzdGF0aW9uX2FsbG93YW5jZQQBHGFjY291bnQAATBUOjpBY2NvdW50SWQAARS8Q2xlYXIgYWxsIGF0dGVzdGF0aW9uIGFsbG93YW5jZSBmb3IgYW4gYWNjb3VudC4AxFRoZSBvcmlnaW4gbXVzdCBiZSBgQXR0ZXN0YXRpb25BbGxvd2FuY2VNYW5hZ2VyYC4A5C0gYGFjY291bnRgOiBUaGUgYWNjb3VudCB0byByZW1vdmUgYWxsIGF0dGVzdGF0aW9ucyBmcm9tLhhhdHRlc3QUASRjYW5kaWRhdGUAATBUOjpBY2NvdW50SWQAAUxjYW5kaWRhdGVfc2lnbmF0dXJlSQUBXFQ6OkF0dGVzdGF0aW9uU2lnbmF0dXJlAAEwcmluZ192cmZfa2V5yQIBLE1lbWJlck9mPFQ+AAFIcHJvb2Zfb2Zfb3duZXJzaGlwaQUBsDxUOjpDcnlwdG8gYXMgR2VuZXJhdGVWZXJpZmlhYmxlPjo6U2lnbmF0dXJlAAFUY29uc3VtZXJfcmVnaXN0cmF0aW9u1QUBrE9wdGlvbjxMaXRlQ29uc3VtZXJSZWdpc3RyYXRpb25QYXJhbXNPZjxUPj4AAmxIQXR0ZXN0IGFuIGFjY291bnQuAEUBVGhlIG9yaWdpbiBtdXN0IGJlIHNpZ25lZCBieSBhbiBhY2NvdW50IGFuZCBoYXZlIHNvbWUgYXR0ZXN0YXRpb24gYWxsb3dhbmNlIGxlZnQuAPBUaGUgYXV0aG9yaXR5IHdpbGwgaGF2ZSB0byBnZXQgdHdvIHNpZ25hdHVyZXMgZnJvbSB0aGUgdXNlcjpNAS0gb25lIGNyZWF0ZWQgdXNpbmcgdGhlaXIgYWNjb3VudCBrZXkgYXR0ZXN0aW5nIHRvIHRoZSBvd25lcnNoaXAgb2YgdGhlIGBjYW5kaWRhdGVgKCAgYWNjb3VudDtdAS0gb25lIGNyZWF0ZWQgdXNpbmcgdGhlaXIgcmluZy12cmYga2V5IGF0dGVzdGluZyB0byB0aGUgb3duZXJzaGlwIG9mIHRoZSBgcmluZ192cmZfa2V5YBggIGtleS4AYQFUaGUgbWVzc2FnZSB0byBiZSBzaWduZWQgYnkgYm90aCBrZXlzIGZyb20gd2hpY2ggdGhlIHNpZ25hdHVyZXMgYXJlIGdlbmVyYXRlZCBpcyBjcmVhdGVkVQFieSBjb25jYXRlbmF0aW5nIHRoZSBieXRlcyAicG9wOnBlb3BsZS1saXRlOnJlZ2lzdGVyIHVzaW5nIiB3aXRoIHRoZSBlbmNvZGVkIGJ5dGVzIG9mLQF0aGUgdXNlcidzIGFjY291bnQgKGBjYW5kaWRhdGVgKSwgYW5kIHRoZSBlbmNvZGVkIGJ5dGVzIG9mIHRoZSByaW5nIFZSRiBrZXlEKGByaW5nX3ZyZl9rZXlgKS4A/C0gYGNhbmRpZGF0ZWA6IFRoZSBjYW5kaWRhdGUgdG8gYmUgcmVjb2duaXplZCBhcyBhIGxpdGUgcGVyc29uLmEBLSBgY2FuZGlkYXRlX3NpZ25hdHVyZWA6IFRoZSBzaWduYXR1cmUsIHByb3ZpZGVkIGJ5IHRoZSBjYW5kaWRhdGUsIHRvIGFsbG93IHRoZSBhdHRlc3RlctwgIHRvIGNvbXBsZXRlIHRoZSByZWdpc3RyYXRpb24gcHJvY2VzcyBvbiB0aGVpciBiZWhhbGYuJQEtIGByaW5nX3ZyZl9rZXlgOiBUaGUgcmluZyBWUkYga2V5IHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGl0ZSBwZXJzb24uXQEtIGByaW5nX3ZyZl9rZXlfc2lnbmF0dXJlYDogVGhlIHJpbmcgVlJGIHNpZ25hdHVyZSwgcHJvdmlkZWQgYnkgdGhlIGNhbmRpZGF0ZSwgdG8gYWxsb3dVASAgdGhlIGF0dGVzdGVyIHRvIGNvbXBsZXRlIHRoZSByZWdpc3RyYXRpb24gcHJvY2Vzcy4gVGhpcyBhbHNvIHByb3ZlIHRoZSBvd25lcnNoaXAgb2aQICB0aGUgcmluZyBWUkYga2V5IGJ5IHRoZSBjYW5kaWRhdGUuXQEtIGNvbnN1bWVyX3JlZ2lzdHJhdGlvbjogT3B0aW9uYWwgcGFyYW1ldGVyIHdoaWNoIGNhbiBjb250YWluIHRoZSBuZWNlc3NhcnkgaW5mb3JtYXRpb25dASAgdG8gZm9yd2FyZCBhIGNvbnN1bWVyIHJlZ2lzdHJhdGlvbiByZXF1ZXN0IHRvIHRoZSBgTGl0ZUNvbnN1bWVyUmVnaXN0cmFyYCBzZXJ2aWNlLiBJZlEBICBwcmVzZW50LCBpdCBhbHNvIGNvbnRhaW5zIGEgc2lnbmF0dXJlIGNyZWF0ZWQgYnkgdGhlIHVzZXIgaW4gb3JkZXIgdG8gdmFsaWRhdGUgdGhlJQEgIGludGVudC4gTW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgc2lnbmluZyBwYXlsb2FkIGdlbmVyYXRpb24gYXZhaWxhYmxlIGlu7CAgW3R5cGVzOjpMaXRlQ29uc3VtZXJSZWdpc3RyYXRpb25QYXJhbXM6OnNpZ25pbmdfcGF5bG9hZF0uSGRpc3BhdGNoX2FzX3NpZ25lcgQBEGNhbGxpAwFMQm94PFQ6OlJ1bnRpbWVDYWxsPgAFAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7VBQQYT3B0aW9uBARUAdkFAQgQTm9uZQAAABBTb21lBADZBQAAAQAA2QUMYGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZRR0eXBlc3hMaXRlQ29uc3VtZXJSZWdpc3RyYXRpb25QYXJhbXMIJEFjY291bnRJZAEAJFNpZ25hdHVyZQFJBQAUASRzaWduYXR1cmVJBQEkU2lnbmF0dXJlAAEcYWNjb3VudAABJEFjY291bnRJZAABOGlkZW50aWZpZXJfa2V5UQUBXENvbW11bmljYXRpb25JZGVudGlmaWVyAAEgdXNlcm5hbWW5AgEgVXNlcm5hbWUAAURyZXNlcnZlZF91c2VybmFtZd0FAUBPcHRpb248VXNlcm5hbWU+AADdBQQYT3B0aW9uBARUAbkCAQgQTm9uZQAAABBTb21lBAC5AgAAAQAA4QUMWGluZGl2X3BhbGxldF9yZXNvdXJjZXMYcGFsbGV0EENhbGwEBFQAARRQcmVnaXN0ZXJfbGl0ZV9wZXJzb24MAThpZGVudGlmaWVyX2tleVEFAVxDb21tdW5pY2F0aW9uSWRlbnRpZmllcgABIHVzZXJuYW1luQIBIFVzZXJuYW1lAAFEcmVzZXJ2ZWRfdXNlcm5hbWXdBQFAT3B0aW9uPFVzZXJuYW1lPgAABJRSZWdpc3RlciBhIGxpdGUgcGVyc29uIGFzIGEgY29uc3VtZXIuPHJlZ2lzdGVyX3BlcnNvbgwBUGxpbmtlZF9saXRlX2lkZW50aXR5AAEwVDo6QWNjb3VudElkAAFMbGl0ZV9pZGVudGl0eV9wcm9vZkkFAVBUOjpPZmZjaGFpblNpZ25hdHVyZQABPHVzZXJuYW1lX2Nob2ljZeUFAVhQZXJzb25hbFVzZXJuYW1lQ2hvaWNlAAEknFJlZ2lzdGVyIGEgcHJvdmVuIHBlcnNvbiBhcyBhIGNvbnN1bWVyLgBhAQlUaGUgcGVyc29uIG11c3QgbGluayBhIHByZXZpb3VzbHkgcmVjb2duaXplZCBsaXRlIGlkZW50aXR5LCB3aGljaCB3aWxsIGJlIHVwZ3JhZGVkIHRvIGFZAWZ1bGwgcGVyc29uIGNvbnN1bWVyLiBJbiBvcmRlciB0byBwcm92ZSB0aGV5IGhvbGQgdGhlIGxpdGUgaWRlbnRpdHkgdGhleSB3YW50IHRvIGxpbmssYQF1c2VycyBtdXN0IHByb3ZpZGUgYSBgbGl0ZV9pZGVudGl0eV9wcm9vZmAgc2lnbmF0dXJlLCBjcmVhdGVkIGJ5IHNpZ25pbmcgdGhlIGFsaWFzIGJ5dGVziHVzaW5nIHRoZWlyIGxpdGUgY29uc3VtZXIgYWNjb3VudC4AOQFUaGUgY29uc3VtZXIgY2FuIGNob29zZSBpZiB0aGV5IHdhbnQgdG8gaGF2ZSBhIG5ldyB1c2VybmFtZSBvciB1c2UgYW4gZXhpc3RpbmcVAXJlc2VydmF0aW9uIG1hZGUgaW4gdGhlIG5hbWUgb2YgdGhlIGxpdGUgY29uc3VtZXIgd2hvIHdpbGwgYmUgbGlua2VkLmh0b3VjaF9wZXJzb25fYXV0aG9yaXphdGlvbgACEEkBVXBkYXRlIGEgcGVyc29uJ3MgYXV0aG9yaXphdGlvbiBieSBlbnN1cmluZyB0aGV5IGNhbiBzdGlsbCBhdXRoZW50aWNhdGUgYXMgcGVvcGxlLgBRAVRoaXMgY2FsbCBtdXN0IGJlIHBlcmZvcm1lZCBhdCBsZWFzdCBgTWluUGVyc29uQXV0aFVwZGF0ZUludGVydmFsYCBzZWNvbmRzIGFmdGVyIHRoZZRsYXN0IHVwZGF0ZSBpbiBvcmRlciB0byBwcmV2ZW50IHNwYW0ujHJlbW92ZV9leHBpcmVkX3VzZXJuYW1lX3Jlc2VydmF0aW9uBAEgdXNlcm5hbWW5AgEgVXNlcm5hbWUAAwxNAVJlbW92ZSBhIHVzZXJuYW1lIHJlc2VydmF0aW9uIHdoaWNoIGV4cGlyZWQgcGFzdCB0aGUgYFVzZXJuYW1lUmVzZXJ2YXRpb25EdXJhdGlvbmAuAFkBVGhlIG9yaWdpbiBtdXN0IGJlIGEgbGl0ZSBwZXJzb24gYnV0IHRoZSB3ZWlnaHQgaXMgcmVmdW5kZWQgaWYgdGhlIGNhbGwgaXMgc3VjY2Vzc2Z1bC5UdXBkYXRlX2lkZW50aWZpZXJfa2V5BAE4aWRlbnRpZmllcl9rZXlRBQFcQ29tbXVuaWNhdGlvbklkZW50aWZpZXIABBDYVXBkYXRlIHRoZSBjb21tdW5pY2F0aW9uIGlkZW50aWZpZXIga2V5IG9mIGEgY29uc3VtZXIuAEEBVGhlIG9yaWdpbiBtdXN0IGJlIHRoZSBhY2NvdW50IHJlZ2lzdGVyZWQgZm9yIHRoYXQgY29uc3VtZXIsIHJlZ2FyZGxlc3Mgb2YgdGhlaXIwY3JlZGliaWxpdHkuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLuUFDFhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzFHR5cGVzWFBlcnNvbmFsVXNlcm5hbWVDaG9pY2UAAQgoU3RhbmRhbG9uZQQAuQIBIFVzZXJuYW1lAAAALFJlc2VydmF0aW9uBAC5AgEgVXNlcm5hbWUAAQAA6QUMUGluZGl2X3BhbGxldF9sb3R0ZXJ5GHBhbGxldBBDYWxsBARUAAEQOHNjaGVkdWxlX2V2ZW50BAEoZXZlbnRfaW5mb+0FAThFdmVudEluZm9PZjxUPgAAGGRTY2hlZHVsZSBhIGxvdHRlcnkgZXZlbnQuAJBUaGUgb3JpZ2luIG11c3QgYmUgYFNjaGVkdWxlT3JpZ2luYC4ATQFUaGUgdG90YWwgYW1vdW50IHRvIGJlIGRpc3RyaWJ1dGVkIGluIHByaXplcyB3aWxsIGJlIHB1dCBvbiBob2xkLiBUaGUgZXZlbnQgd2lsbCBiZbxhZGRlZCB0byB0aGUgc2NoZWR1bGUgYW5kIGJlIGdpdmVuIGFuIGV2ZW50IGlkLlhyZW1vdmVfc2NoZWR1bGVkX2V2ZW50BAEgZXZlbnRfaWQQARxFdmVudElkAAEghFJlbW92ZSBhIHNjaGVkdWxlZCBsb3R0ZXJ5IGV2ZW50LgCQVGhlIG9yaWdpbiBtdXN0IGJlIGBTY2hlZHVsZU9yaWdpbmAuALRUaGUgZXZlbnQgaWQgbXVzdCByZWZlciB0byBhIHNjaGVkdWxlZCBldmVudC4AIQFUaGUgdG90YWwgYW1vdW50IHRvIGJlIGRpc3RyaWJ1dGVkIGluIHByaXplcyB3aWxsIGJlIHJlbGVhc2VkIGZyb20gaG9sZC6wVGhlIGV2ZW50IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBzY2hlZHVsZS5IcmVnaXN0ZXJfZm9yX2V2ZW50CAEgZXZlbnRfaWQQARxFdmVudElkAAEQZGVzdAABMFQ6OkFjY291bnRJZAADPIBSZWdpc3RlciBmb3IgYSBwYXJ0aWN1bGFyIGV2ZW50LgA1AVRoZSBvcmlnaW4gbXVzdCBiZSB0aGUgYWxpYXMgb2YgYSBwZXJzb24gaW4gdGhlIGNvbnRleHQ6IGxvdHRlcnkgY29udGV4dCBiYXNlKQFjb25jYXRlbmF0ZWQgdG8gdGhlIGxvdHRlcnkgZXZlbnQgaWQgaW4gbGl0dGxlLWVuZGlhbiBlbmNvZGluZyBpbiA0IGJ5dGVzLthUaGUgbG90dGVyeSBjb250ZXh0IGJhc2UgY2FuIGJlIGZvdW5kIGluIHRoZSBtZXRhZGF0YS4AEQFUaGUgZXZlbnQgaWQgbXVzdCByZWZlciB0byBhbiBhY3RpdmUgZXZlbnQgaW4gdGhlIHJlZ2lzdGVyaW5nIHBoYXNlLqRUaGUgYWxpYXMgbXVzdCBub3QgYmUgYWxyZWFkeSByZWdpc3RlcmVkLgBVAWBkZXN0YCBjYW4gYmUgYW55IGFjY291bnQsIGl0IGlzIHRoZSBkZXN0aW5hdGlvbiByZWNlaXZpbmcgdGhlIHByaXplIHdoZW4gd2lubmluZyB0aGVJAWxvdHRlcnkuIEl0IGlzIGJldHRlciB0byBzZXQgYSBkaWZmZXJlbnQgYWNjb3VudCBmb3IgZWFjaCBsb3R0ZXJ5IHRvIGF2b2lkIGxpbmtpbmdoaW5mb3JtYXRpb24gYWJvdXQgd2lubmVycy4AVQFXaGVuIHJlZ2lzdGVyaW5nIHRoZSBjYWxsZXIgaXMgYXNzaWduZWQgYW4gaW5kZXguIFRoaXMgaW5kZXggd2lsbCBiZSB1c2VkIHRvIGlkZW50aWZ5MHRoZSB3aW5uZXJzLmxjbGFpbV9mYWlsZWRfdHJhbnNmZXJfcHJpemUEASBldmVudF9pZBABHEV2ZW50SWQABCCUQ2xhaW0gdGhlIHByaXplIG9mIGEgZmFpbGVkIHRyYW5zZmVyLgBRAVByaXplIGFyZSBhdXRvbWF0aWNhbGx5IHRyYW5zZmVyZWQsIGJ1dCBpZiB1bmV4cGVjdGVkIGV2ZW50IGhhcHBlbnMgdGhlIHRyYW5zZmVyIGNhbsRmYWlsLCB0aGlzIHRyYW5zYWN0aW9uIGFsbG93cyB0byBjbGFpbSB0aGUgcHJpemUuANxUaGUgb3JpZ2luIG11c3Qgc2lnbmVkIGJ5IHRoZSBkZXN0aW5hdGlvbiBvZiB0aGUgcHJpemUuABEBVGhlIHNpZ25lciBtdXN0IGhhdmUgYSBmYWlsZWQgdHJhbnNmZXIgcHJpemUgZm9yIHRoZSBnaXZlbiBldmVudCBpZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu7QUMUGluZGl2X3BhbGxldF9sb3R0ZXJ5GHBhbGxldCRFdmVudEluZm8IHEFzc2V0SWQBpDBBc3NldEJhbGFuY2UBGAAMARRwcml6ZQEDAYxMb3R0ZXJ5UHJpemU8QXNzZXRJZCwgQXNzZXRCYWxhbmNlPgABTHJlZ2lzdHJhdGlvbl9zdGFydHMQAQx1MzIAAVRyZWdpc3RyYXRpb25fZHVyYXRpb24QAQx1MzIAAPEFDERwYWxsZXRfbWlncmF0aW9ucxhwYWxsZXQQQ2FsbAQEVAABEEBmb3JjZV9zZXRfY3Vyc29yBAEYY3Vyc29y9QUBTE9wdGlvbjxDdXJzb3JPZjxUPj4AABRdAUFsbG93cyByb290IHRvIHNldCBhIGN1cnNvciB0byBmb3JjZWZ1bGx5IHN0YXJ0LCBzdG9wIG9yIGZvcndhcmQgdGhlIG1pZ3JhdGlvbiBwcm9jZXNzLgBJAVNob3VsZCBub3JtYWxseSBub3QgYmUgbmVlZGVkIGFuZCBpcyBvbmx5IGluIHBsYWNlIGFzIGVtZXJnZW5jeSBtZWFzdXJlLiBOb3RlIHRoYXQFAXJlc3RhcnRpbmcgdGhlIG1pZ3JhdGlvbiBwcm9jZXNzIGluIHRoaXMgbWFubmVyIHdpbGwgbm90IGNhbGwgdGhlLQFbYE1pZ3JhdGlvblN0YXR1c0hhbmRsZXI6OnN0YXJ0ZWRgXSBob29rIG9yIGVtaXQgYW4gYFVwZ3JhZGVTdGFydGVkYCBldmVudC5cZm9yY2Vfc2V0X2FjdGl2ZV9jdXJzb3IMARRpbmRleBABDHUzMgABMGlubmVyX2N1cnNvcgUGAVhPcHRpb248UmF3Q3Vyc29yT2Y8VD4+AAEoc3RhcnRlZF9hdJEEAWRPcHRpb248QmxvY2tOdW1iZXJGb3I8VD4+AAEYWQFBbGxvd3Mgcm9vdCB0byBzZXQgYW4gYWN0aXZlIGN1cnNvciB0byBmb3JjZWZ1bGx5IHN0YXJ0L2ZvcndhcmQgdGhlIG1pZ3JhdGlvbiBwcm9jZXNzLgBFAVRoaXMgaXMgYW4gZWRnZS1jYXNlIHZlcnNpb24gb2YgW2BTZWxmOjpmb3JjZV9zZXRfY3Vyc29yYF0gdGhhdCBhbGxvd3MgdG8gc2V0IHRoZWEBYHN0YXJ0ZWRfYXRgIHZhbHVlIHRvIHRoZSBuZXh0IGJsb2NrIG51bWJlci4gT3RoZXJ3aXNlIHRoaXMgd291bGQgbm90IGJlIHBvc3NpYmxlLCBzaW5jZUUBYGZvcmNlX3NldF9jdXJzb3JgIHRha2VzIGFuIGFic29sdXRlIGJsb2NrIG51bWJlci4gU2V0dGluZyBgc3RhcnRlZF9hdGAgdG8gYE5vbmVgAQFpbmRpY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBibG9jayBudW1iZXIgcGx1cyBvbmUgc2hvdWxkIGJlIHVzZWQuSGZvcmNlX29uYm9hcmRfbWJtcwACEKBGb3JjZXMgdGhlIG9uYm9hcmRpbmcgb2YgdGhlIG1pZ3JhdGlvbnMuAF0BVGhpcyBwcm9jZXNzIGhhcHBlbnMgYXV0b21hdGljYWxseSBvbiBhIHJ1bnRpbWUgdXBncmFkZS4gSXQgaXMgaW4gcGxhY2UgYXMgYW4gZW1lcmdlbmN5/G1lYXN1cmVtZW50LiBUaGUgY3Vyc29yIG5lZWRzIHRvIGJlIGBOb25lYCBmb3IgdGhpcyB0byBzdWNjZWVkLjhjbGVhcl9oaXN0b3JpYwQBIHNlbGVjdG9yCQYBoEhpc3RvcmljQ2xlYW51cFNlbGVjdG9yPElkZW50aWZpZXJPZjxUPj4AAxRoQ2xlYXJzIHRoZSBgSGlzdG9yaWNgIHNldC4ADQFgbWFwX2N1cnNvcmAgbXVzdCBiZSBzZXQgdG8gdGhlIGxhc3QgdmFsdWUgdGhhdCB3YXMgcmV0dXJuZWQgYnkgdGhlXQFgSGlzdG9yaWNDbGVhcmVkYCBldmVudC4gVGhlIGZpcnN0IHRpbWUgYE5vbmVgIGNhbiBiZSB1c2VkLiBgbGltaXRgIG11c3QgYmUgY2hvc2VuIGluIGGod2F5IHRoYXQgd2lsbCByZXN1bHQgaW4gYSBzZW5zaWJsZSB3ZWlnaHQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLvUFBBhPcHRpb24EBFQB+QUBCBBOb25lAAAAEFNvbWUEAPkFAAABAAD5BQhEcGFsbGV0X21pZ3JhdGlvbnM8TWlncmF0aW9uQ3Vyc29yCBhDdXJzb3IB/QUsQmxvY2tOdW1iZXIBEAEIGEFjdGl2ZQQAAQYBhEFjdGl2ZUN1cnNvcjxDdXJzb3IsIEJsb2NrTnVtYmVyPgAAABRTdHVjawABAAD9BQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAAEGCERwYWxsZXRfbWlncmF0aW9uczBBY3RpdmVDdXJzb3IIGEN1cnNvcgH9BSxCbG9ja051bWJlcgEQAAwBFGluZGV4EAEMdTMyAAEwaW5uZXJfY3Vyc29yBQYBOE9wdGlvbjxDdXJzb3I+AAEoc3RhcnRlZF9hdBABLEJsb2NrTnVtYmVyAAAFBgQYT3B0aW9uBARUAf0FAQgQTm9uZQAAABBTb21lBAD9BQAAAQAACQYIRHBhbGxldF9taWdyYXRpb25zXEhpc3RvcmljQ2xlYW51cFNlbGVjdG9yBAhJZAENBgEIIFNwZWNpZmljBAARBgEcVmVjPElkPgAAACBXaWxkY2FyZAgBFGxpbWl0kQQBLE9wdGlvbjx1MzI+AAE8cHJldmlvdXNfY3Vyc29yCQMBPE9wdGlvbjxWZWM8dTg+PgABAAANBgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AABEGAAACDQYAFQYMKHNwX3J1bnRpbWUYdHJhaXRzLEJsYWtlVHdvMjU2AAAAABkGEChzcF9ydW50aW1lHGdlbmVyaWMUYmxvY2sUQmxvY2sIGEhlYWRlcgGlAyRFeHRyaW5zaWMBHQYACAEYaGVhZGVypQMBGEhlYWRlcgABKGV4dHJpbnNpY3OZBgE4VmVjPEV4dHJpbnNpYz4AAB0GEChzcF9ydW50aW1lHGdlbmVyaWNMdW5jaGVja2VkX2V4dHJpbnNpY0hVbmNoZWNrZWRFeHRyaW5zaWMQHEFkZHJlc3MBvQMQQ2FsbAFpAyRTaWduYXR1cmUBSQUURXh0cmEBIQYABAA4AAAAIQYIdGN1bXVsdXNfcGFsbGV0X3dlaWdodF9yZWNsYWltUFN0b3JhZ2VXZWlnaHRSZWNsYWltCARUAARTASUGAAQAJQYBBFMAACUGAAAEKCkGcQZ1BnkGfQaBBoUGjQaRBpUGACkGAAAEHC0GMQY9BkkGTQZZBmUGAC0GDFxwYWxsZXRfdmVyaWZ5X3NpZ25hdHVyZSRleHRlbnNpb248VmVyaWZ5U2lnbmF0dXJlBARUAAEIGFNpZ25lZAgBJHNpZ25hdHVyZUkFATBUOjpTaWduYXR1cmUAARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAAAIERpc2FibGVkAAEAADEGDExpbmRpdl9wYWxsZXRfcGVvcGxlJGV4dGVuc2lvbiBBc1BlcnNvbgQEVAAABAA1BgFcT3B0aW9uPEFzUGVyc29uSW5mbzxUPj4AADUGBBhPcHRpb24EBFQBOQYBCBBOb25lAAAAEFNvbWUEADkGAAABAAA5BgxMaW5kaXZfcGFsbGV0X3Blb3BsZSRleHRlbnNpb24wQXNQZXJzb25JbmZvBARUAAEUaEFzUGVyc29uYWxBbGlhc1dpdGhBY2NvdW50BAAQASBUOjpOb25jZQAAAGBBc1BlcnNvbmFsQWxpYXNXaXRoUHJvb2YMAIUFAaA8VDo6Q3J5cHRvIGFzIEdlbmVyYXRlVmVyaWZpYWJsZT46OlByb29mAAAQASRSaW5nSW5kZXgAAAQBHENvbnRleHQAAQBsQXNQZXJzb25hbElkZW50aXR5V2l0aFByb29mCABpBQGwPFQ6OkNyeXB0byBhcyBHZW5lcmF0ZVZlcmlmaWFibGU+OjpTaWduYXR1cmUAADABKFBlcnNvbmFsSWQAAgB0QXNQZXJzb25hbElkZW50aXR5V2l0aEFjY291bnQEABABIFQ6Ok5vbmNlAAMAhEFzUGVyc29uYWxBbGlhc1dpdGhBY2NvdW50UmV2aXNlZBAAEAEgVDo6Tm9uY2UAAIUFAaA8VDo6Q3J5cHRvIGFzIEdlbmVyYXRlVmVyaWZpYWJsZT46OlByb29mAAAQASRSaW5nSW5kZXgAAAQBHENvbnRleHQABAAAPQYMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmskZXh0ZW5zaW9uXEFzUHJvb2ZPZklua1BhcnRpY2lwYW50BARUAAAEAEEGAZhPcHRpb248QXNQcm9vZk9mSW5rUGFydGljaXBhbnRJbmZvPFQ+PgAAQQYEGE9wdGlvbgQEVAFFBgEIEE5vbmUAAAAQU29tZQQARQYAAAEAAEUGDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rJGV4dGVuc2lvbmxBc1Byb29mT2ZJbmtQYXJ0aWNpcGFudEluZm8EBFQAAQw4QXNBcHBseVdpdGhTaWcEABABIFQ6Ok5vbmNlAAAAKEFzUmVmZXJyZWQEABABIFQ6Ok5vbmNlAAEAJEFzSW52aXRlZAQAEAEgVDo6Tm9uY2UAAgAASQYMcGluZGl2X3BhbGxldF9wcml2YWN5X3ZvdWNoZXIkZXh0ZW5zaW9uYFByb3ZpZGVGb3JWb3VjaGVyQ2xhaW1lcgQEVAAAAABNBgxIaW5kaXZfcGFsbGV0X3Njb3JlJGV4dGVuc2lvbkhTY29yZUFzUGFydGljaXBhbnQEBFQAAAQAUQYBoE9wdGlvbjxTY29yZUFzUGFydGljaXBhbnREYXRhPFQ6Ok5vbmNlPj4AAFEGBBhPcHRpb24EBFQBVQYBCBBOb25lAAAAEFNvbWUEAFUGAAABAABVBgxIaW5kaXZfcGFsbGV0X3Njb3JlJGV4dGVuc2lvblhTY29yZUFzUGFydGljaXBhbnREYXRhBBROb25jZQEQAAQBFG5vbmNlEAEUTm9uY2UAAFkGDERpbmRpdl9wYWxsZXRfZ2FtZSRleHRlbnNpb240R2FtZUFzSW52aXRlZAQEVAAABABdBgFwT3B0aW9uPEdhbWVBc0ludml0ZWREYXRhPFQ+PgAAXQYEGE9wdGlvbgQEVAFhBgEIEE5vbmUAAAAQU29tZQQAYQYAAAEAAGEGDERpbmRpdl9wYWxsZXRfZ2FtZSRleHRlbnNpb25ER2FtZUFzSW52aXRlZERhdGEEBFQAABABFG5vbmNlEAEgVDo6Tm9uY2UAARxpbnZpdGVyAAEwVDo6QWNjb3VudElkAAEYdGlja2V0AAEsVGlja2V0T2Y8VD4AASRzaWduYXR1cmVJBQFIVDo6VGlja2V0U2lnbmF0dXJlAABlBgxgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlJGV4dGVuc2lvbjhQZW9wbGVMaXRlQXV0aAQEVAAABABpBgF8T3B0aW9uPFBlb3BsZUxpdGVBdXRoRGF0YU9mPFQ+PgAAaQYEGE9wdGlvbgQEVAFtBgEIEE5vbmUAAAAQU29tZQQAbQYAAAEAAG0GDGBpbmRpdl9wYWxsZXRfcGVvcGxlX2xpdGUkZXh0ZW5zaW9uSFBlb3BsZUxpdGVBdXRoRGF0YQQUTm9uY2UBEAEEMEFzTGl0ZVBlcnNvbgQBFG5vbmNlEAEUTm9uY2UAAAAAcQYIfGluZGl2X3BhbGxldF9vcmlnaW5fcmVzdHJpY3Rpb244UmVzdHJpY3RPcmlnaW4EBFQAAAQAIAEQYm9vbAAAdQYQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zVGNoZWNrX25vbl96ZXJvX3NlbmRlckhDaGVja05vblplcm9TZW5kZXIEBFQAAAAAeQYQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zSGNoZWNrX3NwZWNfdmVyc2lvbkBDaGVja1NwZWNWZXJzaW9uBARUAAAAAH0GEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uc0BjaGVja190eF92ZXJzaW9uOENoZWNrVHhWZXJzaW9uBARUAAAAAIEGEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uczRjaGVja19nZW5lc2lzMENoZWNrR2VuZXNpcwQEVAAAAACFBhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnM8Y2hlY2tfbW9ydGFsaXR5OENoZWNrTW9ydGFsaXR5BARUAAAEAIkGAQxFcmEAAIkGEChzcF9ydW50aW1lHGdlbmVyaWMMZXJhDEVyYQABAQQgSW1tb3J0YWwAAAAcTW9ydGFsMQQACAAAAQAcTW9ydGFsMgQACAAAAgAcTW9ydGFsMwQACAAAAwAcTW9ydGFsNAQACAAABAAcTW9ydGFsNQQACAAABQAcTW9ydGFsNgQACAAABgAcTW9ydGFsNwQACAAABwAcTW9ydGFsOAQACAAACAAcTW9ydGFsOQQACAAACQAgTW9ydGFsMTAEAAgAAAoAIE1vcnRhbDExBAAIAAALACBNb3J0YWwxMgQACAAADAAgTW9ydGFsMTMEAAgAAA0AIE1vcnRhbDE0BAAIAAAOACBNb3J0YWwxNQQACAAADwAgTW9ydGFsMTYEAAgAABAAIE1vcnRhbDE3BAAIAAARACBNb3J0YWwxOAQACAAAEgAgTW9ydGFsMTkEAAgAABMAIE1vcnRhbDIwBAAIAAAUACBNb3J0YWwyMQQACAAAFQAgTW9ydGFsMjIEAAgAABYAIE1vcnRhbDIzBAAIAAAXACBNb3J0YWwyNAQACAAAGAAgTW9ydGFsMjUEAAgAABkAIE1vcnRhbDI2BAAIAAAaACBNb3J0YWwyNwQACAAAGwAgTW9ydGFsMjgEAAgAABwAIE1vcnRhbDI5BAAIAAAdACBNb3J0YWwzMAQACAAAHgAgTW9ydGFsMzEEAAgAAB8AIE1vcnRhbDMyBAAIAAAgACBNb3J0YWwzMwQACAAAIQAgTW9ydGFsMzQEAAgAACIAIE1vcnRhbDM1BAAIAAAjACBNb3J0YWwzNgQACAAAJAAgTW9ydGFsMzcEAAgAACUAIE1vcnRhbDM4BAAIAAAmACBNb3J0YWwzOQQACAAAJwAgTW9ydGFsNDAEAAgAACgAIE1vcnRhbDQxBAAIAAApACBNb3J0YWw0MgQACAAAKgAgTW9ydGFsNDMEAAgAACsAIE1vcnRhbDQ0BAAIAAAsACBNb3J0YWw0NQQACAAALQAgTW9ydGFsNDYEAAgAAC4AIE1vcnRhbDQ3BAAIAAAvACBNb3J0YWw0OAQACAAAMAAgTW9ydGFsNDkEAAgAADEAIE1vcnRhbDUwBAAIAAAyACBNb3J0YWw1MQQACAAAMwAgTW9ydGFsNTIEAAgAADQAIE1vcnRhbDUzBAAIAAA1ACBNb3J0YWw1NAQACAAANgAgTW9ydGFsNTUEAAgAADcAIE1vcnRhbDU2BAAIAAA4ACBNb3J0YWw1NwQACAAAOQAgTW9ydGFsNTgEAAgAADoAIE1vcnRhbDU5BAAIAAA7ACBNb3J0YWw2MAQACAAAPAAgTW9ydGFsNjEEAAgAAD0AIE1vcnRhbDYyBAAIAAA+ACBNb3J0YWw2MwQACAAAPwAgTW9ydGFsNjQEAAgAAEAAIE1vcnRhbDY1BAAIAABBACBNb3J0YWw2NgQACAAAQgAgTW9ydGFsNjcEAAgAAEMAIE1vcnRhbDY4BAAIAABEACBNb3J0YWw2OQQACAAARQAgTW9ydGFsNzAEAAgAAEYAIE1vcnRhbDcxBAAIAABHACBNb3J0YWw3MgQACAAASAAgTW9ydGFsNzMEAAgAAEkAIE1vcnRhbDc0BAAIAABKACBNb3J0YWw3NQQACAAASwAgTW9ydGFsNzYEAAgAAEwAIE1vcnRhbDc3BAAIAABNACBNb3J0YWw3OAQACAAATgAgTW9ydGFsNzkEAAgAAE8AIE1vcnRhbDgwBAAIAABQACBNb3J0YWw4MQQACAAAUQAgTW9ydGFsODIEAAgAAFIAIE1vcnRhbDgzBAAIAABTACBNb3J0YWw4NAQACAAAVAAgTW9ydGFsODUEAAgAAFUAIE1vcnRhbDg2BAAIAABWACBNb3J0YWw4NwQACAAAVwAgTW9ydGFsODgEAAgAAFgAIE1vcnRhbDg5BAAIAABZACBNb3J0YWw5MAQACAAAWgAgTW9ydGFsOTEEAAgAAFsAIE1vcnRhbDkyBAAIAABcACBNb3J0YWw5MwQACAAAXQAgTW9ydGFsOTQEAAgAAF4AIE1vcnRhbDk1BAAIAABfACBNb3J0YWw5NgQACAAAYAAgTW9ydGFsOTcEAAgAAGEAIE1vcnRhbDk4BAAIAABiACBNb3J0YWw5OQQACAAAYwAkTW9ydGFsMTAwBAAIAABkACRNb3J0YWwxMDEEAAgAAGUAJE1vcnRhbDEwMgQACAAAZgAkTW9ydGFsMTAzBAAIAABnACRNb3J0YWwxMDQEAAgAAGgAJE1vcnRhbDEwNQQACAAAaQAkTW9ydGFsMTA2BAAIAABqACRNb3J0YWwxMDcEAAgAAGsAJE1vcnRhbDEwOAQACAAAbAAkTW9ydGFsMTA5BAAIAABtACRNb3J0YWwxMTAEAAgAAG4AJE1vcnRhbDExMQQACAAAbwAkTW9ydGFsMTEyBAAIAABwACRNb3J0YWwxMTMEAAgAAHEAJE1vcnRhbDExNAQACAAAcgAkTW9ydGFsMTE1BAAIAABzACRNb3J0YWwxMTYEAAgAAHQAJE1vcnRhbDExNwQACAAAdQAkTW9ydGFsMTE4BAAIAAB2ACRNb3J0YWwxMTkEAAgAAHcAJE1vcnRhbDEyMAQACAAAeAAkTW9ydGFsMTIxBAAIAAB5ACRNb3J0YWwxMjIEAAgAAHoAJE1vcnRhbDEyMwQACAAAewAkTW9ydGFsMTI0BAAIAAB8ACRNb3J0YWwxMjUEAAgAAH0AJE1vcnRhbDEyNgQACAAAfgAkTW9ydGFsMTI3BAAIAAB/ACRNb3J0YWwxMjgEAAgAAIAAJE1vcnRhbDEyOQQACAAAgQAkTW9ydGFsMTMwBAAIAACCACRNb3J0YWwxMzEEAAgAAIMAJE1vcnRhbDEzMgQACAAAhAAkTW9ydGFsMTMzBAAIAACFACRNb3J0YWwxMzQEAAgAAIYAJE1vcnRhbDEzNQQACAAAhwAkTW9ydGFsMTM2BAAIAACIACRNb3J0YWwxMzcEAAgAAIkAJE1vcnRhbDEzOAQACAAAigAkTW9ydGFsMTM5BAAIAACLACRNb3J0YWwxNDAEAAgAAIwAJE1vcnRhbDE0MQQACAAAjQAkTW9ydGFsMTQyBAAIAACOACRNb3J0YWwxNDMEAAgAAI8AJE1vcnRhbDE0NAQACAAAkAAkTW9ydGFsMTQ1BAAIAACRACRNb3J0YWwxNDYEAAgAAJIAJE1vcnRhbDE0NwQACAAAkwAkTW9ydGFsMTQ4BAAIAACUACRNb3J0YWwxNDkEAAgAAJUAJE1vcnRhbDE1MAQACAAAlgAkTW9ydGFsMTUxBAAIAACXACRNb3J0YWwxNTIEAAgAAJgAJE1vcnRhbDE1MwQACAAAmQAkTW9ydGFsMTU0BAAIAACaACRNb3J0YWwxNTUEAAgAAJsAJE1vcnRhbDE1NgQACAAAnAAkTW9ydGFsMTU3BAAIAACdACRNb3J0YWwxNTgEAAgAAJ4AJE1vcnRhbDE1OQQACAAAnwAkTW9ydGFsMTYwBAAIAACgACRNb3J0YWwxNjEEAAgAAKEAJE1vcnRhbDE2MgQACAAAogAkTW9ydGFsMTYzBAAIAACjACRNb3J0YWwxNjQEAAgAAKQAJE1vcnRhbDE2NQQACAAApQAkTW9ydGFsMTY2BAAIAACmACRNb3J0YWwxNjcEAAgAAKcAJE1vcnRhbDE2OAQACAAAqAAkTW9ydGFsMTY5BAAIAACpACRNb3J0YWwxNzAEAAgAAKoAJE1vcnRhbDE3MQQACAAAqwAkTW9ydGFsMTcyBAAIAACsACRNb3J0YWwxNzMEAAgAAK0AJE1vcnRhbDE3NAQACAAArgAkTW9ydGFsMTc1BAAIAACvACRNb3J0YWwxNzYEAAgAALAAJE1vcnRhbDE3NwQACAAAsQAkTW9ydGFsMTc4BAAIAACyACRNb3J0YWwxNzkEAAgAALMAJE1vcnRhbDE4MAQACAAAtAAkTW9ydGFsMTgxBAAIAAC1ACRNb3J0YWwxODIEAAgAALYAJE1vcnRhbDE4MwQACAAAtwAkTW9ydGFsMTg0BAAIAAC4ACRNb3J0YWwxODUEAAgAALkAJE1vcnRhbDE4NgQACAAAugAkTW9ydGFsMTg3BAAIAAC7ACRNb3J0YWwxODgEAAgAALwAJE1vcnRhbDE4OQQACAAAvQAkTW9ydGFsMTkwBAAIAAC+ACRNb3J0YWwxOTEEAAgAAL8AJE1vcnRhbDE5MgQACAAAwAAkTW9ydGFsMTkzBAAIAADBACRNb3J0YWwxOTQEAAgAAMIAJE1vcnRhbDE5NQQACAAAwwAkTW9ydGFsMTk2BAAIAADEACRNb3J0YWwxOTcEAAgAAMUAJE1vcnRhbDE5OAQACAAAxgAkTW9ydGFsMTk5BAAIAADHACRNb3J0YWwyMDAEAAgAAMgAJE1vcnRhbDIwMQQACAAAyQAkTW9ydGFsMjAyBAAIAADKACRNb3J0YWwyMDMEAAgAAMsAJE1vcnRhbDIwNAQACAAAzAAkTW9ydGFsMjA1BAAIAADNACRNb3J0YWwyMDYEAAgAAM4AJE1vcnRhbDIwNwQACAAAzwAkTW9ydGFsMjA4BAAIAADQACRNb3J0YWwyMDkEAAgAANEAJE1vcnRhbDIxMAQACAAA0gAkTW9ydGFsMjExBAAIAADTACRNb3J0YWwyMTIEAAgAANQAJE1vcnRhbDIxMwQACAAA1QAkTW9ydGFsMjE0BAAIAADWACRNb3J0YWwyMTUEAAgAANcAJE1vcnRhbDIxNgQACAAA2AAkTW9ydGFsMjE3BAAIAADZACRNb3J0YWwyMTgEAAgAANoAJE1vcnRhbDIxOQQACAAA2wAkTW9ydGFsMjIwBAAIAADcACRNb3J0YWwyMjEEAAgAAN0AJE1vcnRhbDIyMgQACAAA3gAkTW9ydGFsMjIzBAAIAADfACRNb3J0YWwyMjQEAAgAAOAAJE1vcnRhbDIyNQQACAAA4QAkTW9ydGFsMjI2BAAIAADiACRNb3J0YWwyMjcEAAgAAOMAJE1vcnRhbDIyOAQACAAA5AAkTW9ydGFsMjI5BAAIAADlACRNb3J0YWwyMzAEAAgAAOYAJE1vcnRhbDIzMQQACAAA5wAkTW9ydGFsMjMyBAAIAADoACRNb3J0YWwyMzMEAAgAAOkAJE1vcnRhbDIzNAQACAAA6gAkTW9ydGFsMjM1BAAIAADrACRNb3J0YWwyMzYEAAgAAOwAJE1vcnRhbDIzNwQACAAA7QAkTW9ydGFsMjM4BAAIAADuACRNb3J0YWwyMzkEAAgAAO8AJE1vcnRhbDI0MAQACAAA8AAkTW9ydGFsMjQxBAAIAADxACRNb3J0YWwyNDIEAAgAAPIAJE1vcnRhbDI0MwQACAAA8wAkTW9ydGFsMjQ0BAAIAAD0ACRNb3J0YWwyNDUEAAgAAPUAJE1vcnRhbDI0NgQACAAA9gAkTW9ydGFsMjQ3BAAIAAD3ACRNb3J0YWwyNDgEAAgAAPgAJE1vcnRhbDI0OQQACAAA+QAkTW9ydGFsMjUwBAAIAAD6ACRNb3J0YWwyNTEEAAgAAPsAJE1vcnRhbDI1MgQACAAA/AAkTW9ydGFsMjUzBAAIAAD9ACRNb3J0YWwyNTQEAAgAAP4AJE1vcnRhbDI1NQQACAAA/wAAjQYQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zLGNoZWNrX25vbmNlKENoZWNrTm9uY2UEBFQAAAQAtAEgVDo6Tm9uY2UAAJEGEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uczBjaGVja193ZWlnaHQsQ2hlY2tXZWlnaHQEBFQAAAAAlQYIXHBhbGxldF9hc3NldF90eF9wYXltZW50UENoYXJnZUFzc2V0VHhQYXltZW50BARUAAAIAQx0aXDEATBCYWxhbmNlT2Y8VD4AASBhc3NldF9pZE0BAWhPcHRpb248Q2hhcmdlQXNzZXRJZE9mPFQ+PgAAmQYAAAIdBgCdBgAAAqEGAKEGDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudCBBbmNlc3RvcgQESAE0AAwBOHVzZWRfYmFuZHdpZHRopQYBNFVzZWRCYW5kd2lkdGgAAThwYXJhX2hlYWRfaGFzaLkGASRPcHRpb248SD4AAWBjb25zdW1lZF9nb19haGVhZF9zaWduYWy9BgGMT3B0aW9uPHJlbGF5X2NoYWluOjpVcGdyYWRlR29BaGVhZD4AAKUGDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudDRVc2VkQmFuZHdpZHRoAAAMATR1bXBfbXNnX2NvdW50EAEMdTMyAAE8dW1wX3RvdGFsX2J5dGVzEAEMdTMyAAE0aHJtcF9vdXRnb2luZ6kGAYxCVHJlZU1hcDxQYXJhSWQsIEhybXBDaGFubmVsVXBkYXRlPgAAqQYEIEJUcmVlTWFwCARLAfAEVgGtBgAEALEGAAAArQYMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1IdW5pbmNsdWRlZF9zZWdtZW50REhybXBDaGFubmVsVXBkYXRlAAAIASRtc2dfY291bnQQAQx1MzIAASx0b3RhbF9ieXRlcxABDHUzMgAAsQYAAAK1BgC1BgAABAjwrQYAuQYEGE9wdGlvbgQEVAE0AQgQTm9uZQAAABBTb21lBAA0AAABAAC9BgQYT3B0aW9uBARUAcEGAQgQTm9uZQAAABBTb21lBADBBgAAAQAAwQYMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg4VXBncmFkZUdvQWhlYWQAAQgUQWJvcnQAAAAcR29BaGVhZAABAADFBgx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQ4U2VnbWVudFRyYWNrZXIEBEgBNAAMATh1c2VkX2JhbmR3aWR0aKUGATRVc2VkQmFuZHdpZHRoAAE4aHJtcF93YXRlcm1hcmuRBAGAT3B0aW9uPHJlbGF5X2NoYWluOjpCbG9ja051bWJlcj4AAWBjb25zdW1lZF9nb19haGVhZF9zaWduYWy9BgGMT3B0aW9uPHJlbGF5X2NoYWluOjpVcGdyYWRlR29BaGVhZD4AAMkGBBhPcHRpb24EBFQBzQYBCBBOb25lAAAAEFNvbWUEAM0GAAABAADNBgxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OEhVcGdyYWRlUmVzdHJpY3Rpb24AAQQcUHJlc2VudAAAAADRBgx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbVByZWxheV9zdGF0ZV9zbmFwc2hvdFhNZXNzYWdpbmdTdGF0ZVNuYXBzaG90AAAQATBkbXFfbXFjX2hlYWQ0AURyZWxheV9jaGFpbjo6SGFzaAABnHJlbGF5X2Rpc3BhdGNoX3F1ZXVlX3JlbWFpbmluZ19jYXBhY2l0edUGAYxSZWxheURpc3BhdGNoUXVldWVSZW1haW5pbmdDYXBhY2l0eQABQGluZ3Jlc3NfY2hhbm5lbHPZBgGIVmVjPChQYXJhSWQsIEFicmlkZ2VkSHJtcENoYW5uZWwpPgABPGVncmVzc19jaGFubmVsc9kGAYhWZWM8KFBhcmFJZCwgQWJyaWRnZWRIcm1wQ2hhbm5lbCk+AADVBgx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbVByZWxheV9zdGF0ZV9zbmFwc2hvdIxSZWxheURpc3BhdGNoUXVldWVSZW1haW5pbmdDYXBhY2l0eQAACAE8cmVtYWluaW5nX2NvdW50EAEMdTMyAAE4cmVtYWluaW5nX3NpemUQAQx1MzIAANkGAAAC3QYA3QYAAAQI8OEGAOEGDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4TEFicmlkZ2VkSHJtcENoYW5uZWwAABgBMG1heF9jYXBhY2l0eRABDHUzMgABOG1heF90b3RhbF9zaXplEAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgABJG1zZ19jb3VudBABDHUzMgABKHRvdGFsX3NpemUQAQx1MzIAASBtcWNfaGVhZLkGATBPcHRpb248SGFzaD4AAOUGDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4ZEFicmlkZ2VkSG9zdENvbmZpZ3VyYXRpb24AACgBNG1heF9jb2RlX3NpemUQAQx1MzIAAUhtYXhfaGVhZF9kYXRhX3NpemUQAQx1MzIAAVhtYXhfdXB3YXJkX3F1ZXVlX2NvdW50EAEMdTMyAAFUbWF4X3Vwd2FyZF9xdWV1ZV9zaXplEAEMdTMyAAFcbWF4X3Vwd2FyZF9tZXNzYWdlX3NpemUQAQx1MzIAAZBtYXhfdXB3YXJkX21lc3NhZ2VfbnVtX3Blcl9jYW5kaWRhdGUQAQx1MzIAAYhocm1wX21heF9tZXNzYWdlX251bV9wZXJfY2FuZGlkYXRlEAEMdTMyAAFsdmFsaWRhdGlvbl91cGdyYWRlX2Nvb2xkb3duEAEsQmxvY2tOdW1iZXIAAWB2YWxpZGF0aW9uX3VwZ3JhZGVfZGVsYXkQASxCbG9ja051bWJlcgABUGFzeW5jX2JhY2tpbmdfcGFyYW1z6QYBSEFzeW5jQmFja2luZ1BhcmFtcwAA6QYQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg0YXN5bmNfYmFja2luZ0hBc3luY0JhY2tpbmdQYXJhbXMAAAgBTG1heF9jYW5kaWRhdGVfZGVwdGgQAQx1MzIAAVBhbGxvd2VkX2FuY2VzdHJ5X2xlbhABDHUzMgAA7QYIlGN1bXVsdXNfcHJpbWl0aXZlc19wYXJhY2hhaW5faW5oZXJlbnRETWVzc2FnZVF1ZXVlQ2hhaW4AAAQANAEkUmVsYXlIYXNoAADxBgQgQlRyZWVNYXAIBEsB8ARWAe0GAAQA9QYAAAD1BgAAAvkGAPkGAAAECPDtBgD9BgAAAgEHAAEHCGBwb2xrYWRvdF9jb3JlX3ByaW1pdGl2ZXNMT3V0Ym91bmRIcm1wTWVzc2FnZQQISWQB8AAIASRyZWNpcGllbnTwAQhJZAABEGRhdGE4AUxhbGxvYzo6dmVjOjpWZWM8dTg+AAAFBwx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbRhwYWxsZXQURXJyb3IEBFQAARhMT3ZlcmxhcHBpbmdVcGdyYWRlcwAABBkBQXR0ZW1wdCB0byB1cGdyYWRlIHZhbGlkYXRpb24gZnVuY3Rpb24gd2hpbGUgZXhpc3RpbmcgdXBncmFkZSBwZW5kaW5nLlBQcm9oaWJpdGVkQnlQb2xrYWRvdAABBE0BUG9sa2Fkb3QgY3VycmVudGx5IHByb2hpYml0cyB0aGlzIHBhcmFjaGFpbiBmcm9tIHVwZ3JhZGluZyBpdHMgdmFsaWRhdGlvbiBmdW5jdGlvbi4YVG9vQmlnAAIIRQFUaGUgc3VwcGxpZWQgdmFsaWRhdGlvbiBmdW5jdGlvbiBoYXMgY29tcGlsZWQgaW50byBhIGJsb2IgbGFyZ2VyIHRoYW4gUG9sa2Fkb3QgaXM8d2lsbGluZyB0byBydW4uaFZhbGlkYXRpb25EYXRhTm90QXZhaWxhYmxlAAMEHQFUaGUgaW5oZXJlbnQgd2hpY2ggc3VwcGxpZXMgdGhlIHZhbGlkYXRpb24gZGF0YSBkaWQgbm90IHJ1biB0aGlzIGJsb2NrLnRIb3N0Q29uZmlndXJhdGlvbk5vdEF2YWlsYWJsZQAEBCkBVGhlIGluaGVyZW50IHdoaWNoIHN1cHBsaWVzIHRoZSBob3N0IGNvbmZpZ3VyYXRpb24gZGlkIG5vdCBydW4gdGhpcyBibG9jay4wTm90U2NoZWR1bGVkAAUE2E5vIHZhbGlkYXRpb24gZnVuY3Rpb24gdXBncmFkZSBpcyBjdXJyZW50bHkgc2NoZWR1bGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4JBwxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUAQ0HBFMAAAQAFQcBGFZlYzxUPgAADQcMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyxCYWxhbmNlTG9jawQcQmFsYW5jZQEYAAwBCGlklQEBOExvY2tJZGVudGlmaWVyAAEYYW1vdW50GAEcQmFsYW5jZQABHHJlYXNvbnMRBwEcUmVhc29ucwAAEQcMPHBhbGxldF9iYWxhbmNlcxR0eXBlcxxSZWFzb25zAAEMDEZlZQAAABBNaXNjAAEADEFsbAACAAAVBwAAAg0HABkHDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBHQcEUwAABAAhBwEYVmVjPFQ+AAAdBww8cGFsbGV0X2JhbGFuY2VzFHR5cGVzLFJlc2VydmVEYXRhCERSZXNlcnZlSWRlbnRpZmllcgGVARxCYWxhbmNlARgACAEIaWSVAQFEUmVzZXJ2ZUlkZW50aWZpZXIAARhhbW91bnQYARxCYWxhbmNlAAAhBwAAAh0HACUHDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBKQcEUwAABAAtBwEYVmVjPFQ+AAApBxQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zEG1pc2MgSWRBbW91bnQICElkASUBHEJhbGFuY2UBGAAIAQhpZCUBAQhJZAABGGFtb3VudBgBHEJhbGFuY2UAAC0HAAACKQcAMQcMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAE1BwRTAAAEADkHARhWZWM8VD4AADUHFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMQbWlzYyBJZEFtb3VudAgISWQBoQIcQmFsYW5jZQEYAAgBCGlkoQIBCElkAAEYYW1vdW50GAEcQmFsYW5jZQAAOQcAAAI1BwA9Bww8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBRFcnJvcggEVAAESQABMDhWZXN0aW5nQmFsYW5jZQAABJxWZXN0aW5nIGJhbGFuY2UgdG9vIGhpZ2ggdG8gc2VuZCB2YWx1ZS5UTGlxdWlkaXR5UmVzdHJpY3Rpb25zAAEEyEFjY291bnQgbGlxdWlkaXR5IHJlc3RyaWN0aW9ucyBwcmV2ZW50IHdpdGhkcmF3YWwuTEluc3VmZmljaWVudEJhbGFuY2UAAgR4QmFsYW5jZSB0b28gbG93IHRvIHNlbmQgdmFsdWUuSEV4aXN0ZW50aWFsRGVwb3NpdAADBOxWYWx1ZSB0b28gbG93IHRvIGNyZWF0ZSBhY2NvdW50IGR1ZSB0byBleGlzdGVudGlhbCBkZXBvc2l0LjRFeHBlbmRhYmlsaXR5AAQEkFRyYW5zZmVyL3BheW1lbnQgd291bGQga2lsbCBhY2NvdW50LlxFeGlzdGluZ1Zlc3RpbmdTY2hlZHVsZQAFBMxBIHZlc3Rpbmcgc2NoZWR1bGUgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgYWNjb3VudC4sRGVhZEFjY291bnQABgSMQmVuZWZpY2lhcnkgYWNjb3VudCBtdXN0IHByZS1leGlzdC48VG9vTWFueVJlc2VydmVzAAcEuE51bWJlciBvZiBuYW1lZCByZXNlcnZlcyBleGNlZWQgYE1heFJlc2VydmVzYC4wVG9vTWFueUhvbGRzAAgE+E51bWJlciBvZiBob2xkcyBleGNlZWQgYFZhcmlhbnRDb3VudE9mPFQ6OlJ1bnRpbWVIb2xkUmVhc29uPmAuOFRvb01hbnlGcmVlemVzAAkEmE51bWJlciBvZiBmcmVlemVzIGV4Y2VlZCBgTWF4RnJlZXplc2AuTElzc3VhbmNlRGVhY3RpdmF0ZWQACgQBAVRoZSBpc3N1YW5jZSBjYW5ub3QgYmUgbW9kaWZpZWQgc2luY2UgaXQgaXMgYWxyZWFkeSBkZWFjdGl2YXRlZC4kRGVsdGFaZXJvAAsEZFRoZSBkZWx0YSBjYW5ub3QgYmUgemVyby4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuQQcIaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50IFJlbGVhc2VzAAEIJFYxQW5jaWVudAAAAAhWMgABAABFBwx8aW5kaXZfcGFsbGV0X29yaWdpbl9yZXN0cmljdGlvbhhwYWxsZXQUVXNhZ2UIHEJhbGFuY2UBGCxCbG9ja051bWJlcgEQAAgBEHVzZWQYARxCYWxhbmNlAAEgYXRfYmxvY2sQASxCbG9ja051bWJlcgAASQcMfGluZGl2X3BhbGxldF9vcmlnaW5fcmVzdHJpY3Rpb24YcGFsbGV0FEVycm9yBARUAAEIHE5vVXNhZ2UAAASAVGhlIG9yaWdpbiBoYXMgbm8gdXNhZ2UgdHJhY2tlZC4cTm90WmVybwABBFhUaGUgdXNhZ2UgaXMgbm90IHplcm8uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lk0HDDRwYWxsZXRfYXNzZXRzFHR5cGVzMEFzc2V0RGV0YWlscwwcQmFsYW5jZQEYJEFjY291bnRJZAEAOERlcG9zaXRCYWxhbmNlARgAMAEUb3duZXIAASRBY2NvdW50SWQAARhpc3N1ZXIAASRBY2NvdW50SWQAARRhZG1pbgABJEFjY291bnRJZAABHGZyZWV6ZXIAASRBY2NvdW50SWQAARhzdXBwbHkYARxCYWxhbmNlAAEcZGVwb3NpdBgBOERlcG9zaXRCYWxhbmNlAAEsbWluX2JhbGFuY2UYARxCYWxhbmNlAAE0aXNfc3VmZmljaWVudCABEGJvb2wAASBhY2NvdW50cxABDHUzMgABLHN1ZmZpY2llbnRzEAEMdTMyAAEkYXBwcm92YWxzEAEMdTMyAAEYc3RhdHVzUQcBLEFzc2V0U3RhdHVzAABRBww0cGFsbGV0X2Fzc2V0cxR0eXBlcyxBc3NldFN0YXR1cwABDBBMaXZlAAAAGEZyb3plbgABAChEZXN0cm95aW5nAAIAAFUHAAAECKQAAFkHDDRwYWxsZXRfYXNzZXRzFHR5cGVzMEFzc2V0QWNjb3VudBAcQmFsYW5jZQEYOERlcG9zaXRCYWxhbmNlARgURXh0cmEBoQIkQWNjb3VudElkAQAAEAEcYmFsYW5jZRgBHEJhbGFuY2UAARhzdGF0dXNdBwE0QWNjb3VudFN0YXR1cwABGHJlYXNvbmEHAahFeGlzdGVuY2VSZWFzb248RGVwb3NpdEJhbGFuY2UsIEFjY291bnRJZD4AARRleHRyYaECARRFeHRyYQAAXQcMNHBhbGxldF9hc3NldHMUdHlwZXM0QWNjb3VudFN0YXR1cwABDBhMaXF1aWQAAAAYRnJvemVuAAEAHEJsb2NrZWQAAgAAYQcMNHBhbGxldF9hc3NldHMUdHlwZXM8RXhpc3RlbmNlUmVhc29uCBxCYWxhbmNlARgkQWNjb3VudElkAQABFCBDb25zdW1lcgAAAChTdWZmaWNpZW50AAEALERlcG9zaXRIZWxkBAAYARxCYWxhbmNlAAIAPERlcG9zaXRSZWZ1bmRlZAADACxEZXBvc2l0RnJvbQgAAAEkQWNjb3VudElkAAAYARxCYWxhbmNlAAQAAGUHAAAEDKQAAABpBww0cGFsbGV0X2Fzc2V0cxR0eXBlcyBBcHByb3ZhbAgcQmFsYW5jZQEYOERlcG9zaXRCYWxhbmNlARgACAEYYW1vdW50GAEcQmFsYW5jZQABHGRlcG9zaXQYAThEZXBvc2l0QmFsYW5jZQAAbQcMNHBhbGxldF9hc3NldHMUdHlwZXM0QXNzZXRNZXRhZGF0YQg4RGVwb3NpdEJhbGFuY2UBGDRCb3VuZGVkU3RyaW5nAXEHABQBHGRlcG9zaXQYAThEZXBvc2l0QmFsYW5jZQABEG5hbWVxBwE0Qm91bmRlZFN0cmluZwABGHN5bWJvbHEHATRCb3VuZGVkU3RyaW5nAAEgZGVjaW1hbHMIAQh1OAABJGlzX2Zyb3plbiABEGJvb2wAAHEHDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAAdQcMNHBhbGxldF9hc3NldHMYcGFsbGV0FEVycm9yCARUAARJAAFcKEJhbGFuY2VMb3cAAAQVAUFjY291bnQgYmFsYW5jZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgdHJhbnNmZXIgYW1vdW50LiROb0FjY291bnQAAQSQVGhlIGFjY291bnQgdG8gYWx0ZXIgZG9lcyBub3QgZXhpc3QuME5vUGVybWlzc2lvbgACBOhUaGUgc2lnbmluZyBhY2NvdW50IGhhcyBubyBwZXJtaXNzaW9uIHRvIGRvIHRoZSBvcGVyYXRpb24uHFVua25vd24AAwR4VGhlIGdpdmVuIGFzc2V0IElEIGlzIHVua25vd24uGEZyb3plbgAEBHRUaGUgb3JpZ2luIGFjY291bnQgaXMgZnJvemVuLhRJblVzZQAFBHhUaGUgYXNzZXQgSUQgaXMgYWxyZWFkeSB0YWtlbi4oQmFkV2l0bmVzcwAGBGxJbnZhbGlkIHdpdG5lc3MgZGF0YSBnaXZlbi44TWluQmFsYW5jZVplcm8ABwSMTWluaW11bSBiYWxhbmNlIHNob3VsZCBiZSBub24temVyby5MVW5hdmFpbGFibGVDb25zdW1lcgAIDFkBVW5hYmxlIHRvIGluY3JlbWVudCB0aGUgY29uc3VtZXIgcmVmZXJlbmNlIGNvdW50ZXJzIG9uIHRoZSBhY2NvdW50LiBFaXRoZXIgbm8gcHJvdmlkZXJNAXJlZmVyZW5jZSBleGlzdHMgdG8gYWxsb3cgYSBub24temVybyBiYWxhbmNlIG9mIGEgbm9uLXNlbGYtc3VmZmljaWVudCBhc3NldCwgb3Igb25l8GZld2VyIHRoZW4gdGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbnN1bWVycyBoYXMgYmVlbiByZWFjaGVkLixCYWRNZXRhZGF0YQAJBFxJbnZhbGlkIG1ldGFkYXRhIGdpdmVuLihVbmFwcHJvdmVkAAoExE5vIGFwcHJvdmFsIGV4aXN0cyB0aGF0IHdvdWxkIGFsbG93IHRoZSB0cmFuc2Zlci4gV291bGREaWUACwQ1AVRoZSBzb3VyY2UgYWNjb3VudCB3b3VsZCBub3Qgc3Vydml2ZSB0aGUgdHJhbnNmZXIgYW5kIGl0IG5lZWRzIHRvIHN0YXkgYWxpdmUuNEFscmVhZHlFeGlzdHMADASEVGhlIGFzc2V0LWFjY291bnQgYWxyZWFkeSBleGlzdHMuJE5vRGVwb3NpdAANBNRUaGUgYXNzZXQtYWNjb3VudCBkb2Vzbid0IGhhdmUgYW4gYXNzb2NpYXRlZCBkZXBvc2l0LiRXb3VsZEJ1cm4ADgTEVGhlIG9wZXJhdGlvbiB3b3VsZCByZXN1bHQgaW4gZnVuZHMgYmVpbmcgYnVybmVkLiRMaXZlQXNzZXQADwhZAVRoZSBhc3NldCBpcyBhIGxpdmUgYXNzZXQgYW5kIGlzIGFjdGl2ZWx5IGJlaW5nIHVzZWQuIFVzdWFsbHkgZW1pdCBmb3Igb3BlcmF0aW9ucyBzdWNoHQFhcyBgc3RhcnRfZGVzdHJveWAgd2hpY2ggcmVxdWlyZSB0aGUgYXNzZXQgdG8gYmUgaW4gYSBkZXN0cm95aW5nIHN0YXRlLjBBc3NldE5vdExpdmUAEATIVGhlIGFzc2V0IGlzIG5vdCBsaXZlLCBhbmQgbGlrZWx5IGJlaW5nIGRlc3Ryb3llZC48SW5jb3JyZWN0U3RhdHVzABEEsFRoZSBhc3NldCBzdGF0dXMgaXMgbm90IHRoZSBleHBlY3RlZCBzdGF0dXMuJE5vdEZyb3plbgASBNhUaGUgYXNzZXQgc2hvdWxkIGJlIGZyb3plbiBiZWZvcmUgdGhlIGdpdmVuIG9wZXJhdGlvbi44Q2FsbGJhY2tGYWlsZWQAEwSEQ2FsbGJhY2sgYWN0aW9uIHJlc3VsdGVkIGluIGVycm9yKEJhZEFzc2V0SWQAFATIVGhlIGFzc2V0IElEIG11c3QgYmUgZXF1YWwgdG8gdGhlIFtgTmV4dEFzc2V0SWRgXS48Q29udGFpbnNGcmVlemVzABUETQFUaGUgYXNzZXQgY2Fubm90IGJlIGRlc3Ryb3llZCBiZWNhdXNlIHNvbWUgYWNjb3VudHMgZm9yIHRoaXMgYXNzZXQgY29udGFpbiBmcmVlemVzLjRDb250YWluc0hvbGRzABYERQFUaGUgYXNzZXQgY2Fubm90IGJlIGRlc3Ryb3llZCBiZWNhdXNlIHNvbWUgYWNjb3VudHMgZm9yIHRoaXMgYXNzZXQgY29udGFpbiBob2xkcy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQueQcMUHBhbGxldF9hc3NldHNfaG9sZGVyGHBhbGxldBRFcnJvcggEVAAESQABBDBUb29NYW55SG9sZHMAAAQxAU51bWJlciBvZiBob2xkcyBvbiBhbiBhY2NvdW50IHdvdWxkIGV4Y2VlZCB0aGUgY291bnQgb2YgYFJ1bnRpbWVIb2xkUmVhc29uYC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQufQcMRHBhbGxldF9hc3NldF9yYXRlGHBhbGxldBRFcnJvcgQEVAABDEBVbmtub3duQXNzZXRLaW5kAAAEeFRoZSBnaXZlbiBhc3NldCBJRCBpcyB1bmtub3duLjRBbHJlYWR5RXhpc3RzAAEEUQFUaGUgZ2l2ZW4gYXNzZXQgSUQgYWxyZWFkeSBoYXMgYW4gYXNzaWduZWQgY29udmVyc2lvbiByYXRlIGFuZCBjYW5ub3QgYmUgcmUtY3JlYXRlZC4gT3ZlcmZsb3cAAgTMT3ZlcmZsb3cgb2N1cnJlZCB3aGVuIGNhbGN1bGF0aW5nIHRoZSBpbnZlcnNlIHJhdGUuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LoEHDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBAARTAAAEAFUBARhWZWM8VD4AAIUHDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBiQcEUwAABACNBwEYVmVjPFQ+AACJBwxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQ0Q2FuZGlkYXRlSW5mbwgkQWNjb3VudElkAQAcQmFsYW5jZQEYAAgBDHdobwABJEFjY291bnRJZAABHGRlcG9zaXQYARxCYWxhbmNlAACNBwAAAokHAJEHCDRmcmFtZV9zdXBwb3J0IFBhbGxldElkAAAEAJUBARxbdTg7IDhdAACVBwxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQURXJyb3IEBFQAAUREVG9vTWFueUNhbmRpZGF0ZXMAAASMVGhlIHBhbGxldCBoYXMgdG9vIG1hbnkgY2FuZGlkYXRlcy5cVG9vRmV3RWxpZ2libGVDb2xsYXRvcnMAAQSsTGVhdmluZyB3b3VsZCByZXN1bHQgaW4gdG9vIGZldyBjYW5kaWRhdGVzLkBBbHJlYWR5Q2FuZGlkYXRlAAIEfEFjY291bnQgaXMgYWxyZWFkeSBhIGNhbmRpZGF0ZS4wTm90Q2FuZGlkYXRlAAMEbEFjY291bnQgaXMgbm90IGEgY2FuZGlkYXRlLlBUb29NYW55SW52dWxuZXJhYmxlcwAEBIRUaGVyZSBhcmUgdG9vIG1hbnkgSW52dWxuZXJhYmxlcy5MQWxyZWFkeUludnVsbmVyYWJsZQAFBIxBY2NvdW50IGlzIGFscmVhZHkgYW4gSW52dWxuZXJhYmxlLjxOb3RJbnZ1bG5lcmFibGUABgR8QWNjb3VudCBpcyBub3QgYW4gSW52dWxuZXJhYmxlLlxOb0Fzc29jaWF0ZWRWYWxpZGF0b3JJZAAHBJxBY2NvdW50IGhhcyBubyBhc3NvY2lhdGVkIHZhbGlkYXRvciBJRC5YVmFsaWRhdG9yTm90UmVnaXN0ZXJlZAAIBIxWYWxpZGF0b3IgSUQgaXMgbm90IHlldCByZWdpc3RlcmVkLmxJbnNlcnRUb0NhbmRpZGF0ZUxpc3RGYWlsZWQACQScQ291bGQgbm90IGluc2VydCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QudFJlbW92ZUZyb21DYW5kaWRhdGVMaXN0RmFpbGVkAAoEpENvdWxkIG5vdCByZW1vdmUgZnJvbSB0aGUgY2FuZGlkYXRlIGxpc3QuNERlcG9zaXRUb29Mb3cACwT0TmV3IGRlcG9zaXQgYW1vdW50IHdvdWxkIGJlIGJlbG93IHRoZSBtaW5pbXVtIGNhbmRpZGFjeSBib25kLmRVcGRhdGVDYW5kaWRhdGVMaXN0RmFpbGVkAAwEkENvdWxkIG5vdCB1cGRhdGUgdGhlIGNhbmRpZGF0ZSBsaXN0LkBJbnN1ZmZpY2llbnRCb25kAA0EKQFEZXBvc2l0IGFtb3VudCBpcyB0b28gbG93IHRvIHRha2UgdGhlIHRhcmdldCdzIHNsb3QgaW4gdGhlIGNhbmRpZGF0ZSBsaXN0LlBUYXJnZXRJc05vdENhbmRpZGF0ZQAOBC0BVGhlIHRhcmdldCBhY2NvdW50IHRvIGJlIHJlcGxhY2VkIGluIHRoZSBjYW5kaWRhdGUgbGlzdCBpcyBub3QgYSBjYW5kaWRhdGUuQElkZW50aWNhbERlcG9zaXQADwQNAVRoZSB1cGRhdGVkIGRlcG9zaXQgYW1vdW50IGlzIGVxdWFsIHRvIHRoZSBhbW91bnQgYWxyZWFkeSByZXNlcnZlZC5ASW52YWxpZFVucmVzZXJ2ZQAQBD0BQ2Fubm90IGxvd2VyIGNhbmRpZGFjeSBib25kIHdoaWxlIG9jY3VweWluZyBhIGZ1dHVyZSBjb2xsYXRvciBzbG90IGluIHRoZSBsaXN0LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6ZBwAAAp0HAJ0HAAAECADdAwChBwAAAqUHAKUHAAAECBCpBwCpBwwoc3Bfc3Rha2luZxxvZmZlbmNlPE9mZmVuY2VTZXZlcml0eQAABACtBwEcUGVyYmlsbAAArQcMNHNwX2FyaXRobWV0aWMocGVyX3RoaW5ncxxQZXJiaWxsAAAEABABDHUzMgAAsQcAAAQItQc4ALUHDBxzcF9jb3JlGGNyeXB0byRLZXlUeXBlSWQAAAQASAEcW3U4OyA0XQAAuQcMOHBhbGxldF9zZXNzaW9uGHBhbGxldBRFcnJvcgQEVAABFDBJbnZhbGlkUHJvb2YAAARgSW52YWxpZCBvd25lcnNoaXAgcHJvb2YuXE5vQXNzb2NpYXRlZFZhbGlkYXRvcklkAAEEnE5vIGFzc29jaWF0ZWQgdmFsaWRhdG9yIElEIGZvciBhY2NvdW50LjREdXBsaWNhdGVkS2V5AAIEZFJlZ2lzdGVyZWQgZHVwbGljYXRlIGtleS4YTm9LZXlzAAMEpE5vIGtleXMgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGFjY291bnQuJE5vQWNjb3VudAAEBBkBS2V5IHNldHRpbmcgYWNjb3VudCBpcyBub3QgbGl2ZSwgc28gaXQncyBpbXBvc3NpYmxlIHRvIGFzc29jaWF0ZSBrZXlzLgR0RXJyb3IgZm9yIHRoZSBzZXNzaW9uIHBhbGxldC69BwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAeEDBFMAAAQAwQcBGFZlYzxUPgAAwQcAAALhAwDFBwhIc3BfY29uc2Vuc3VzX3Nsb3RzEFNsb3QAAAQAMAEMdTY0AADJBwAABAjFBxAAzQcMTGJvdW5kZWRfY29sbGVjdGlvbnNEYm91bmRlZF9idHJlZV9zZXQ8Qm91bmRlZEJUcmVlU2V0CARUAfAEUwAABADRBwEsQlRyZWVTZXQ8VD4AANEHBCBCVHJlZVNldAQEVAHwAAQA1QcAAADVBwAAAvAA2QcMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHdBwRTAAAEAOUHARhWZWM8VD4AAN0HCGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlWE91dGJvdW5kQ2hhbm5lbERldGFpbHMAABQBJHJlY2lwaWVudPABGFBhcmFJZAABFHN0YXRl4QcBNE91dGJvdW5kU3RhdGUAATRzaWduYWxzX2V4aXN0IAEQYm9vbAABLGZpcnN0X2luZGV42QIBDHUxNgABKGxhc3RfaW5kZXjZAgEMdTE2AADhBwhkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZTRPdXRib3VuZFN0YXRlAAEICE9rAAAAJFN1c3BlbmRlZAABAADlBwAAAt0HAOkHAAAECPDZAgDtBwxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAPEHCGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlPFF1ZXVlQ29uZmlnRGF0YQAADAFEc3VzcGVuZF90aHJlc2hvbGQQAQx1MzIAAThkcm9wX3RocmVzaG9sZBABDHUzMgABQHJlc3VtZV90aHJlc2hvbGQQAQx1MzIAAPUHDGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlGHBhbGxldBRFcnJvcgQEVAABFDhCYWRRdWV1ZUNvbmZpZwAABBEBU2V0dGluZyB0aGUgcXVldWUgY29uZmlnIGZhaWxlZCBzaW5jZSBvbmUgb2YgaXRzIHZhbHVlcyB3YXMgaW52YWxpZC5AQWxyZWFkeVN1c3BlbmRlZAABBIxUaGUgZXhlY3V0aW9uIGlzIGFscmVhZHkgc3VzcGVuZGVkLjhBbHJlYWR5UmVzdW1lZAACBIRUaGUgZXhlY3V0aW9uIGlzIGFscmVhZHkgcmVzdW1lZC50VG9vTWFueUFjdGl2ZU91dGJvdW5kQ2hhbm5lbHMAAwSwVGhlcmUgYXJlIHRvbyBtYW55IGFjdGl2ZSBvdXRib3VuZCBjaGFubmVscy4YVG9vQmlnAAQEXFRoZSBtZXNzYWdlIGlzIHRvbyBiaWcuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LvkHDChwYWxsZXRfeGNtGHBhbGxldCxRdWVyeVN0YXR1cwQsQmxvY2tOdW1iZXIBEAEMHFBlbmRpbmcQASRyZXNwb25kZXKBAgFEVmVyc2lvbmVkTG9jYXRpb24AAUxtYXliZV9tYXRjaF9xdWVyaWVy/QcBZE9wdGlvbjxWZXJzaW9uZWRMb2NhdGlvbj4AATBtYXliZV9ub3RpZnkBCAFAT3B0aW9uPCh1OCwgdTgpPgABHHRpbWVvdXQQASxCbG9ja051bWJlcgAAADxWZXJzaW9uTm90aWZpZXIIARhvcmlnaW6BAgFEVmVyc2lvbmVkTG9jYXRpb24AASRpc19hY3RpdmUgARBib29sAAEAFFJlYWR5CAEgcmVzcG9uc2UJCAFEVmVyc2lvbmVkUmVzcG9uc2UAAQhhdBABLEJsb2NrTnVtYmVyAAIAAP0HBBhPcHRpb24EBFQBgQIBCBBOb25lAAAAEFNvbWUEAIECAAABAAABCAQYT3B0aW9uBARUAQUIAQgQTm9uZQAAABBTb21lBAAFCAAAAQAABQgAAAQICAgACQgIDHhjbURWZXJzaW9uZWRSZXNwb25zZQABDAhWMwQA/QMBMHYzOjpSZXNwb25zZQADAAhWNAQAPQQBMHY0OjpSZXNwb25zZQAEAAhWNQQAnQEBMHY1OjpSZXNwb25zZQAFAAANCAAABAgQgQIAEQgAAAQMMCgQABUIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBGQgEUwAABAAdCAEYVmVjPFQ+AAAZCAAABAiBAhAAHQgAAAIZCAAhCAwocGFsbGV0X3hjbRhwYWxsZXRUVmVyc2lvbk1pZ3JhdGlvblN0YWdlAAEQXE1pZ3JhdGVTdXBwb3J0ZWRWZXJzaW9uAAAAXE1pZ3JhdGVWZXJzaW9uTm90aWZpZXJzAAEAUE5vdGlmeUN1cnJlbnRUYXJnZXRzBAAJAwE8T3B0aW9uPFZlYzx1OD4+AAIAaE1pZ3JhdGVBbmROb3RpZnlPbGRUYXJnZXRzAAMAACUIAAAEDBAAmQQAKQgMKHBhbGxldF94Y20YcGFsbGV0aFJlbW90ZUxvY2tlZEZ1bmdpYmxlUmVjb3JkCEhDb25zdW1lcklkZW50aWZpZXIBoQIwTWF4Q29uc3VtZXJzAAAQARhhbW91bnQYARB1MTI4AAEUb3duZXKBAgFEVmVyc2lvbmVkTG9jYXRpb24AARhsb2NrZXKBAgFEVmVyc2lvbmVkTG9jYXRpb24AASRjb25zdW1lcnMtCAHQQm91bmRlZFZlYzwoQ29uc3VtZXJJZGVudGlmaWVyLCB1MTI4KSwgTWF4Q29uc3VtZXJzPgAALQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAExCARTAAAEADUIARhWZWM8VD4AADEIAAAECKECGAA1CAAAAjEIADkIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBPQgEUwAABABBCAEYVmVjPFQ+AAA9CAAABAgYgQIAQQgAAAI9CABFCAgocGFsbGV0X3hjbVhBdXRob3JpemVkQWxpYXNlc0VudHJ5CBhUaWNrZXQBSQgMTUFYAU0IAAgBIGFsaWFzZXJzUQgBeEJvdW5kZWRWZWM8T3JpZ2luQWxpYXNlciwgTUFYPgABGHRpY2tldEkIARhUaWNrZXQAAEkIEDRmcmFtZV9zdXBwb3J0GHRyYWl0cxxzdG9yYWdlIERpc2FibGVkAAAAAE0IDChwYWxsZXRfeGNtGHBhbGxldFBNYXhBdXRob3JpemVkQWxpYXNlcwAAAABRCAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAVUIBFMAAAQAWQgBGFZlYzxUPgAAVQgMQHhjbV9ydW50aW1lX2FwaXNIYXV0aG9yaXplZF9hbGlhc2VzNE9yaWdpbkFsaWFzZXIAAAgBIGxvY2F0aW9ugQIBRFZlcnNpb25lZExvY2F0aW9uAAEYZXhwaXJ5hQIBLE9wdGlvbjx1NjQ+AABZCAAAAlUIAF0IDChwYWxsZXRfeGNtGHBhbGxldBRFcnJvcgQEVAABcCxVbnJlYWNoYWJsZQAACF0BVGhlIGRlc2lyZWQgZGVzdGluYXRpb24gd2FzIHVucmVhY2hhYmxlLCBnZW5lcmFsbHkgYmVjYXVzZSB0aGVyZSBpcyBhIG5vIHdheSBvZiByb3V0aW5nGHRvIGl0LixTZW5kRmFpbHVyZQABCEEBVGhlcmUgd2FzIHNvbWUgb3RoZXIgaXNzdWUgKGkuZS4gbm90IHRvIGRvIHdpdGggcm91dGluZykgaW4gc2VuZGluZyB0aGUgbWVzc2FnZS7IUGVyaGFwcyBhIGxhY2sgb2Ygc3BhY2UgZm9yIGJ1ZmZlcmluZyB0aGUgbWVzc2FnZS4gRmlsdGVyZWQAAgScVGhlIG1lc3NhZ2UgZXhlY3V0aW9uIGZhaWxzIHRoZSBmaWx0ZXIuSFVud2VpZ2hhYmxlTWVzc2FnZQADBLRUaGUgbWVzc2FnZSdzIHdlaWdodCBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC5gRGVzdGluYXRpb25Ob3RJbnZlcnRpYmxlAAQE3FRoZSBkZXN0aW5hdGlvbiBgTG9jYXRpb25gIHByb3ZpZGVkIGNhbm5vdCBiZSBpbnZlcnRlZC4URW1wdHkABQSAVGhlIGFzc2V0cyB0byBiZSBzZW50IGFyZSBlbXB0eS44Q2Fubm90UmVhbmNob3IABgQ1AUNvdWxkIG5vdCByZS1hbmNob3IgdGhlIGFzc2V0cyB0byBkZWNsYXJlIHRoZSBmZWVzIGZvciB0aGUgZGVzdGluYXRpb24gY2hhaW4uNFRvb01hbnlBc3NldHMABwTEVG9vIG1hbnkgYXNzZXRzIGhhdmUgYmVlbiBhdHRlbXB0ZWQgZm9yIHRyYW5zZmVyLjRJbnZhbGlkT3JpZ2luAAgEeE9yaWdpbiBpcyBpbnZhbGlkIGZvciBzZW5kaW5nLihCYWRWZXJzaW9uAAkEIQFUaGUgdmVyc2lvbiBvZiB0aGUgYFZlcnNpb25lZGAgdmFsdWUgdXNlZCBpcyBub3QgYWJsZSB0byBiZSBpbnRlcnByZXRlZC4sQmFkTG9jYXRpb24ACghBAVRoZSBnaXZlbiBsb2NhdGlvbiBjb3VsZCBub3QgYmUgdXNlZCAoZS5nLiBiZWNhdXNlIGl0IGNhbm5vdCBiZSBleHByZXNzZWQgaW4gdGhlYGRlc2lyZWQgdmVyc2lvbiBvZiBYQ00pLjhOb1N1YnNjcmlwdGlvbgALBLxUaGUgcmVmZXJlbmNlZCBzdWJzY3JpcHRpb24gY291bGQgbm90IGJlIGZvdW5kLkRBbHJlYWR5U3Vic2NyaWJlZAAMBBEBVGhlIGxvY2F0aW9uIGlzIGludmFsaWQgc2luY2UgaXQgYWxyZWFkeSBoYXMgYSBzdWJzY3JpcHRpb24gZnJvbSB1cy5YQ2Fubm90Q2hlY2tPdXRUZWxlcG9ydAANBCkBQ291bGQgbm90IGNoZWNrLW91dCB0aGUgYXNzZXRzIGZvciB0ZWxlcG9ydGF0aW9uIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4oTG93QmFsYW5jZQAOBEEBVGhlIG93bmVyIGRvZXMgbm90IG93biAoYWxsKSBvZiB0aGUgYXNzZXQgdGhhdCB0aGV5IHdpc2ggdG8gZG8gdGhlIG9wZXJhdGlvbiBvbi4wVG9vTWFueUxvY2tzAA8EwFRoZSBhc3NldCBvd25lciBoYXMgdG9vIG1hbnkgbG9ja3Mgb24gdGhlIGFzc2V0LkxBY2NvdW50Tm90U292ZXJlaWduABAEMQFUaGUgZ2l2ZW4gYWNjb3VudCBpcyBub3QgYW4gaWRlbnRpZmlhYmxlIHNvdmVyZWlnbiBhY2NvdW50IGZvciBhbnkgbG9jYXRpb24uKEZlZXNOb3RNZXQAEQQpAVRoZSBvcGVyYXRpb24gcmVxdWlyZWQgZmVlcyB0byBiZSBwYWlkIHdoaWNoIHRoZSBpbml0aWF0b3IgY291bGQgbm90IG1lZXQuMExvY2tOb3RGb3VuZAASBPRBIHJlbW90ZSBsb2NrIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgZGF0YSBjb3VsZCBub3QgYmUgZm91bmQuFEluVXNlABMESQFUaGUgdW5sb2NrIG9wZXJhdGlvbiBjYW5ub3Qgc3VjY2VlZCBiZWNhdXNlIHRoZXJlIGFyZSBzdGlsbCBjb25zdW1lcnMgb2YgdGhlIGxvY2suaEludmFsaWRBc3NldFVua25vd25SZXNlcnZlABUE8EludmFsaWQgYXNzZXQsIHJlc2VydmUgY2hhaW4gY291bGQgbm90IGJlIGRldGVybWluZWQgZm9yIGl0LnhJbnZhbGlkQXNzZXRVbnN1cHBvcnRlZFJlc2VydmUAFgRFAUludmFsaWQgYXNzZXQsIGRvIG5vdCBzdXBwb3J0IHJlbW90ZSBhc3NldCByZXNlcnZlcyB3aXRoIGRpZmZlcmVudCBmZWVzIHJlc2VydmVzLjxUb29NYW55UmVzZXJ2ZXMAFwRJAVRvbyBtYW55IGFzc2V0cyB3aXRoIGRpZmZlcmVudCByZXNlcnZlIGxvY2F0aW9ucyBoYXZlIGJlZW4gYXR0ZW1wdGVkIGZvciB0cmFuc2Zlci5gTG9jYWxFeGVjdXRpb25JbmNvbXBsZXRlABgEfExvY2FsIFhDTSBleGVjdXRpb24gaW5jb21wbGV0ZS5gVG9vTWFueUF1dGhvcml6ZWRBbGlhc2VzABkEuFRvbyBtYW55IGxvY2F0aW9ucyBhdXRob3JpemVkIHRvIGFsaWFzIG9yaWdpbi40RXhwaXJlc0luUGFzdAAaBIxFeHBpcnkgYmxvY2sgbnVtYmVyIGlzIGluIHRoZSBwYXN0LjRBbGlhc05vdEZvdW5kABsE0FRoZSBhbGlhcyB0byByZW1vdmUgYXV0aG9yaXphdGlvbiBmb3Igd2FzIG5vdCBmb3VuZC6ETG9jYWxFeGVjdXRpb25JbmNvbXBsZXRlV2l0aEVycm9yCAEUaW5kZXgIAUBJbnN0cnVjdGlvbkluZGV4AAEUZXJyb3JhCAE4RXhlY3V0aW9uRXJyb3IAHAg1AUxvY2FsIFhDTSBleGVjdXRpb24gaW5jb21wbGV0ZSB3aXRoIHRoZSBhY3R1YWwgWENNIGVycm9yIGFuZCB0aGUgaW5kZXggb2YgdGhliGluc3RydWN0aW9uIHRoYXQgY2F1c2VkIHRoZSBlcnJvci4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuYQgMKHBhbGxldF94Y20YZXJyb3JzOEV4ZWN1dGlvbkVycm9yAAGkIE92ZXJmbG93AAAANFVuaW1wbGVtZW50ZWQAAQBgVW50cnVzdGVkUmVzZXJ2ZUxvY2F0aW9uAAIAZFVudHJ1c3RlZFRlbGVwb3J0TG9jYXRpb24AAwAwTG9jYXRpb25GdWxsAAQAVExvY2F0aW9uTm90SW52ZXJ0aWJsZQAFACRCYWRPcmlnaW4ABgA8SW52YWxpZExvY2F0aW9uAAcANEFzc2V0Tm90Rm91bmQACABURmFpbGVkVG9UcmFuc2FjdEFzc2V0AAkAPE5vdFdpdGhkcmF3YWJsZQAKAEhMb2NhdGlvbkNhbm5vdEhvbGQACwBURXhjZWVkc01heE1lc3NhZ2VTaXplAAwAWERlc3RpbmF0aW9uVW5zdXBwb3J0ZWQADQAkVHJhbnNwb3J0AA4AKFVucm91dGFibGUADwAwVW5rbm93bkNsYWltABAAOEZhaWxlZFRvRGVjb2RlABEAQE1heFdlaWdodEludmFsaWQAEgA4Tm90SG9sZGluZ0ZlZXMAEwAwVG9vRXhwZW5zaXZlABQAEFRyYXAAFQBARXhwZWN0YXRpb25GYWxzZQAWADhQYWxsZXROb3RGb3VuZAAXADBOYW1lTWlzbWF0Y2gAGABMVmVyc2lvbkluY29tcGF0aWJsZQAZAFBIb2xkaW5nV291bGRPdmVyZmxvdwAaACxFeHBvcnRFcnJvcgAbADhSZWFuY2hvckZhaWxlZAAcABhOb0RlYWwAHQAoRmVlc05vdE1ldAAeACRMb2NrRXJyb3IAHwAwTm9QZXJtaXNzaW9uACAAKFVuYW5jaG9yZWQAIQA4Tm90RGVwb3NpdGFibGUAIgA0VG9vTWFueUFzc2V0cwAjAExVbmhhbmRsZWRYY21WZXJzaW9uACQASFdlaWdodExpbWl0UmVhY2hlZAAlABxCYXJyaWVyACYATFdlaWdodE5vdENvbXB1dGFibGUAJwBERXhjZWVkc1N0YWNrTGltaXQAKAAAZQgIUHBhbGxldF9tZXNzYWdlX3F1ZXVlJEJvb2tTdGF0ZQQ0TWVzc2FnZU9yaWdpbgGRAgAYARRiZWdpbhABJFBhZ2VJbmRleAABDGVuZBABJFBhZ2VJbmRleAABFGNvdW50EAEkUGFnZUluZGV4AAFAcmVhZHlfbmVpZ2hib3Vyc2kIAYRPcHRpb248TmVpZ2hib3VyczxNZXNzYWdlT3JpZ2luPj4AATRtZXNzYWdlX2NvdW50MAEMdTY0AAEQc2l6ZTABDHU2NAAAaQgEGE9wdGlvbgQEVAFtCAEIEE5vbmUAAAAQU29tZQQAbQgAAAEAAG0ICFBwYWxsZXRfbWVzc2FnZV9xdWV1ZShOZWlnaGJvdXJzBDRNZXNzYWdlT3JpZ2luAZECAAgBEHByZXaRAgE0TWVzc2FnZU9yaWdpbgABEG5leHSRAgE0TWVzc2FnZU9yaWdpbgAAcQgAAAQIkQIQAHUICFBwYWxsZXRfbWVzc2FnZV9xdWV1ZRBQYWdlCBBTaXplARAgSGVhcFNpemUAABgBJHJlbWFpbmluZxABEFNpemUAAThyZW1haW5pbmdfc2l6ZRABEFNpemUAASxmaXJzdF9pbmRleBABEFNpemUAARRmaXJzdBABEFNpemUAARBsYXN0EAEQU2l6ZQABEGhlYXB5CAGcQm91bmRlZFZlYzx1OCwgSW50b1UzMjxIZWFwU2l6ZSwgU2l6ZT4+AAB5CAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAH0IDFBwYWxsZXRfbWVzc2FnZV9xdWV1ZRhwYWxsZXQURXJyb3IEBFQAASQsTm90UmVhcGFibGUAAAhJAVBhZ2UgaXMgbm90IHJlYXBhYmxlIGJlY2F1c2UgaXQgaGFzIGl0ZW1zIHJlbWFpbmluZyB0byBiZSBwcm9jZXNzZWQgYW5kIGlzIG5vdCBvbGQcZW5vdWdoLhhOb1BhZ2UAAQSEUGFnZSB0byBiZSByZWFwZWQgZG9lcyBub3QgZXhpc3QuJE5vTWVzc2FnZQACBKhUaGUgcmVmZXJlbmNlZCBtZXNzYWdlIGNvdWxkIG5vdCBiZSBmb3VuZC5AQWxyZWFkeVByb2Nlc3NlZAADBAEBVGhlIG1lc3NhZ2Ugd2FzIGFscmVhZHkgcHJvY2Vzc2VkIGFuZCBjYW5ub3QgYmUgcHJvY2Vzc2VkIGFnYWluLhhRdWV1ZWQABASsVGhlIG1lc3NhZ2UgaXMgcXVldWVkIGZvciBmdXR1cmUgZXhlY3V0aW9uLkhJbnN1ZmZpY2llbnRXZWlnaHQABQQZAVRoZXJlIGlzIHRlbXBvcmFyaWx5IG5vdCBlbm91Z2ggd2VpZ2h0IHRvIGNvbnRpbnVlIHNlcnZpY2luZyBtZXNzYWdlcy5gVGVtcG9yYXJpbHlVbnByb2Nlc3NhYmxlAAYQqFRoaXMgbWVzc2FnZSBpcyB0ZW1wb3JhcmlseSB1bnByb2Nlc3NhYmxlLgBZAVN1Y2ggZXJyb3JzIGFyZSBleHBlY3RlZCwgYnV0IG5vdCBndWFyYW50ZWVkLCB0byByZXNvbHZlIHRoZW1zZWx2ZXMgZXZlbnR1YWxseSB0aHJvdWdoJHJldHJ5aW5nLixRdWV1ZVBhdXNlZAAHDOxUaGUgcXVldWUgaXMgcGF1c2VkIGFuZCBubyBtZXNzYWdlIGNhbiBiZSBleGVjdXRlZCBmcm9tIGl0LgAdAVRoaXMgY2FuIGNoYW5nZSBhdCBhbnkgdGltZSBhbmQgbWF5IHJlc29sdmUgaW4gdGhlIGZ1dHVyZSBieSByZS10cnlpbmcuTFJlY3Vyc2l2ZURpc2FsbG93ZWQACAQxAUFub3RoZXIgY2FsbCBpcyBpbiBwcm9ncmVzcyBhbmQgbmVlZHMgdG8gZmluaXNoIGJlZm9yZSB0aGlzIGNhbGwgY2FuIGhhcHBlbi4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQugQgMOHBhbGxldF91dGlsaXR5GHBhbGxldBRFcnJvcgQEVAABBDBUb29NYW55Q2FsbHMAAARcVG9vIG1hbnkgY2FsbHMgYmF0Y2hlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuhQgAAAQIAAQAiQgIPHBhbGxldF9tdWx0aXNpZyBNdWx0aXNpZxAsQmxvY2tOdW1iZXIBEBxCYWxhbmNlARgkQWNjb3VudElkAQAwTWF4QXBwcm92YWxzAAAQARB3aGVuqQIBWFRpbWVwb2ludDxCbG9ja051bWJlcj4AARxkZXBvc2l0GAEcQmFsYW5jZQABJGRlcG9zaXRvcgABJEFjY291bnRJZAABJGFwcHJvdmFsc40IAYxCb3VuZGVkVmVjPEFjY291bnRJZCwgTWF4QXBwcm92YWxzPgAAjQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEABFMAAAQAVQEBGFZlYzxUPgAAkQgMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQURXJyb3IEBFQAAThATWluaW11bVRocmVzaG9sZAAABHxUaHJlc2hvbGQgbXVzdCBiZSAyIG9yIGdyZWF0ZXIuPEFscmVhZHlBcHByb3ZlZAABBKxDYWxsIGlzIGFscmVhZHkgYXBwcm92ZWQgYnkgdGhpcyBzaWduYXRvcnkuRE5vQXBwcm92YWxzTmVlZGVkAAIEnENhbGwgZG9lc24ndCBuZWVkIGFueSAobW9yZSkgYXBwcm92YWxzLkRUb29GZXdTaWduYXRvcmllcwADBKhUaGVyZSBhcmUgdG9vIGZldyBzaWduYXRvcmllcyBpbiB0aGUgbGlzdC5IVG9vTWFueVNpZ25hdG9yaWVzAAQErFRoZXJlIGFyZSB0b28gbWFueSBzaWduYXRvcmllcyBpbiB0aGUgbGlzdC5UU2lnbmF0b3JpZXNPdXRPZk9yZGVyAAUEDQFUaGUgc2lnbmF0b3JpZXMgd2VyZSBwcm92aWRlZCBvdXQgb2Ygb3JkZXI7IHRoZXkgc2hvdWxkIGJlIG9yZGVyZWQuTFNlbmRlckluU2lnbmF0b3JpZXMABgQNAVRoZSBzZW5kZXIgd2FzIGNvbnRhaW5lZCBpbiB0aGUgb3RoZXIgc2lnbmF0b3JpZXM7IGl0IHNob3VsZG4ndCBiZS4gTm90Rm91bmQABwSgTXVsdGlzaWcgb3BlcmF0aW9uIG5vdCBmb3VuZCBpbiBzdG9yYWdlLiBOb3RPd25lcgAICFEBT25seSB0aGUgYWNjb3VudCB0aGF0IG9yaWdpbmFsbHkgY3JlYXRlZCB0aGUgbXVsdGlzaWcgaXMgYWJsZSB0byBjYW5jZWwgaXQgb3IgdXBkYXRlNGl0cyBkZXBvc2l0cy4sTm9UaW1lcG9pbnQACQQdAU5vIHRpbWVwb2ludCB3YXMgZ2l2ZW4sIHlldCB0aGUgbXVsdGlzaWcgb3BlcmF0aW9uIGlzIGFscmVhZHkgdW5kZXJ3YXkuOFdyb25nVGltZXBvaW50AAoELQFBIGRpZmZlcmVudCB0aW1lcG9pbnQgd2FzIGdpdmVuIHRvIHRoZSBtdWx0aXNpZyBvcGVyYXRpb24gdGhhdCBpcyB1bmRlcndheS5MVW5leHBlY3RlZFRpbWVwb2ludAALBPRBIHRpbWVwb2ludCB3YXMgZ2l2ZW4sIHlldCBubyBtdWx0aXNpZyBvcGVyYXRpb24gaXMgdW5kZXJ3YXkuPE1heFdlaWdodFRvb0xvdwAMBNBUaGUgbWF4aW11bSB3ZWlnaHQgaW5mb3JtYXRpb24gcHJvdmlkZWQgd2FzIHRvbyBsb3cuNEFscmVhZHlTdG9yZWQADQSgVGhlIGRhdGEgdG8gYmUgc3RvcmVkIGlzIGFscmVhZHkgc3RvcmVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6VCAwscGFsbGV0X3N1ZG8YcGFsbGV0FEVycm9yBARUAAEELFJlcXVpcmVTdWRvAAAEgFNlbmRlciBtdXN0IGJlIHRoZSBTdWRvIGFjY291bnQuBGhFcnJvciBmb3IgdGhlIFN1ZG8gcGFsbGV0LpkIDFRpbmRpdl9wYWxsZXRfaWRlbnRpdHkUdHlwZXMwUmVnaXN0cmF0aW9uDBxCYWxhbmNlARg0TWF4SnVkZ2VtZW50cwAwSWRlbnRpdHlJbmZvAb0EAAwBKGp1ZGdlbWVudHOdCAH8Qm91bmRlZFZlYzwoUmVnaXN0cmFySW5kZXgsIEp1ZGdlbWVudDxCYWxhbmNlPiksIE1heEp1ZGdlbWVudHM+AAEcZGVwb3NpdBgBHEJhbGFuY2UAARBpbmZvvQQBMElkZW50aXR5SW5mbwAAnQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGhCARTAAAEAKUIARhWZWM8VD4AAKEIAAAECBBBBQClCAAAAqEIAKkIAAAECBiNCACtCAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAbEIBFMAAAQAuQgBGFZlYzxUPgAAsQgEGE9wdGlvbgQEVAG1CAEIEE5vbmUAAAAQU29tZQQAtQgAAAEAALUIDFRpbmRpdl9wYWxsZXRfaWRlbnRpdHkUdHlwZXM0UmVnaXN0cmFySW5mbwwcQmFsYW5jZQEYJEFjY291bnRJZAEAHElkRmllbGQBMAAMARxhY2NvdW50AAEkQWNjb3VudElkAAEMZmVlGAEcQmFsYW5jZQABGGZpZWxkczABHElkRmllbGQAALkIAAACsQgAvQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AADBCAxUaW5kaXZfcGFsbGV0X2lkZW50aXR5FHR5cGVzTEF1dGhvcml0eVByb3BlcnRpZXMEHEFjY291bnQBAAAIAShhY2NvdW50X2lkAAEcQWNjb3VudAABKGFsbG9jYXRpb24QAShBbGxvY2F0aW9uAADFCAxUaW5kaXZfcGFsbGV0X2lkZW50aXR5FHR5cGVzTFVzZXJuYW1lSW5mb3JtYXRpb24IHEFjY291bnQBABxCYWxhbmNlARgACAEUb3duZXIAARxBY2NvdW50AAEgcHJvdmlkZXLJCAFEUHJvdmlkZXI8QmFsYW5jZT4AAMkIDFRpbmRpdl9wYWxsZXRfaWRlbnRpdHkUdHlwZXMgUHJvdmlkZXIEHEJhbGFuY2UBGAEMKEFsbG9jYXRpb24AAABAQXV0aG9yaXR5RGVwb3NpdAQAGAEcQmFsYW5jZQABABhTeXN0ZW0AAgAAzQgAAAQMABDJCADRCAxUaW5kaXZfcGFsbGV0X2lkZW50aXR5FHR5cGVzQFBlcnNvbmFsSWRlbnRpdHkQJEFjY291bnRJZAEALEp1ZGdlbWVudElkARA0TWF4SnVkZ2VtZW50cwAsQmxvY2tOdW1iZXIBEAAQARxhY2NvdW50AAEkQWNjb3VudElkAAFIcGVuZGluZ19qdWRnZW1lbnRz1QgBwEJvdW5kZWRWZWM8KFNvY2lhbCwgSnVkZ2VtZW50SWQpLCBNYXhKdWRnZW1lbnRzPgABGGJhbm5lZCABEGJvb2wAAWR1c2VybmFtZV9sYXN0X3JlcG9ydGVkX2F0kQQBTE9wdGlvbjxCbG9ja051bWJlcj4AANUIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB2QgEUwAABADdCAEYVmVjPFQ+AADZCAAABAhVBRAA3QgAAALZCADhCAxUaW5kaXZfcGFsbGV0X2lkZW50aXR5FHR5cGVzOFVzZXJuYW1lUmVwb3J0DCRBY2NvdW50SWQBACBVc2VybmFtZQG5AhhUaWNrZXQBEAAMASByZXBvcnRlcgABJEFjY291bnRJZAABIHVzZXJuYW1luQIBIFVzZXJuYW1lAAEcY2FzZV9pZBABGFRpY2tldAAA5QgMVGluZGl2X3BhbGxldF9pZGVudGl0eRhwYWxsZXQURXJyb3IEBFQAAaRIVG9vTWFueVN1YkFjY291bnRzAAAEXFRvbyBtYW55IHN1YnMtYWNjb3VudHMuHE5vQWxpYXMAAQR4Tm8gYWxpYXMgZm91bmQgZm9yIGFuIGFjY291bnQuIE5vdEZvdW5kAAIEUEFjY291bnQgaXNuJ3QgZm91bmQuIE5vdE5hbWVkAAMEUEFjY291bnQgaXNuJ3QgbmFtZWQuKEVtcHR5SW5kZXgABAQwRW1wdHkgaW5kZXguKEZlZUNoYW5nZWQABQQ8RmVlIGlzIGNoYW5nZWQuKE5vSWRlbnRpdHkABgRITm8gaWRlbnRpdHkgZm91bmQuPFN0aWNreUp1ZGdlbWVudAAHBERTdGlja3kganVkZ2VtZW50LjhKdWRnZW1lbnRHaXZlbgAIBEBKdWRnZW1lbnQgZ2l2ZW4uQEludmFsaWRKdWRnZW1lbnQACQRISW52YWxpZCBqdWRnZW1lbnQuMEludmFsaWRJbmRleAAKBFRUaGUgaW5kZXggaXMgaW52YWxpZC40SW52YWxpZFRhcmdldAALBFhUaGUgdGFyZ2V0IGlzIGludmFsaWQuRFRvb01hbnlSZWdpc3RyYXJzAAwE6E1heGltdW0gYW1vdW50IG9mIHJlZ2lzdHJhcnMgcmVhY2hlZC4gQ2Fubm90IGFkZCBhbnkgbW9yZS44QWxyZWFkeUNsYWltZWQADQRwQWNjb3VudCBJRCBpcyBhbHJlYWR5IG5hbWVkLjxBbHJlYWR5UmVwb3J0ZWQADgSMVXNlcm5hbWUgaGFzIGFscmVhZHkgYmVlbiByZXBvcnRlZC4YTm90U3ViAA8EcFNlbmRlciBpcyBub3QgYSBzdWItYWNjb3VudC4gTm90T3duZWQAEASIU3ViLWFjY291bnQgaXNuJ3Qgb3duZWQgYnkgc2VuZGVyLnRKdWRnZW1lbnRGb3JEaWZmZXJlbnRJZGVudGl0eQARBNBUaGUgcHJvdmlkZWQganVkZ2VtZW50IHdhcyBmb3IgYSBkaWZmZXJlbnQgaWRlbnRpdHkuWEp1ZGdlbWVudFBheW1lbnRGYWlsZWQAEgT4RXJyb3IgdGhhdCBvY2N1cnMgd2hlbiB0aGVyZSBpcyBhbiBpc3N1ZSBwYXlpbmcgZm9yIGp1ZGdlbWVudC40SW52YWxpZFN1ZmZpeAATBIBUaGUgcHJvdmlkZWQgc3VmZml4IGlzIHRvbyBsb25nLlBOb3RVc2VybmFtZUF1dGhvcml0eQAUBOBUaGUgc2VuZGVyIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiB0byBpc3N1ZSBhIHVzZXJuYW1lLjBOb0FsbG9jYXRpb24AFQTEVGhlIGF1dGhvcml0eSBjYW5ub3QgYWxsb2NhdGUgYW55IG1vcmUgdXNlcm5hbWVzLkBJbnZhbGlkU2lnbmF0dXJlABYEqFRoZSBzaWduYXR1cmUgb24gYSB1c2VybmFtZSB3YXMgbm90IHZhbGlkLkRSZXF1aXJlc1NpZ25hdHVyZQAXBAkBU2V0dGluZyB0aGlzIHVzZXJuYW1lIHJlcXVpcmVzIGEgc2lnbmF0dXJlLCBidXQgbm9uZSB3YXMgcHJvdmlkZWQuPEludmFsaWRVc2VybmFtZQAYBLBUaGUgdXNlcm5hbWUgZG9lcyBub3QgbWVldCB0aGUgcmVxdWlyZW1lbnRzLjRVc2VybmFtZVRha2VuABkEeFRoZSB1c2VybmFtZSBpcyBhbHJlYWR5IHRha2VuLihOb1VzZXJuYW1lABoEmFRoZSByZXF1ZXN0ZWQgdXNlcm5hbWUgZG9lcyBub3QgZXhpc3QuZE5vdFN5c3RlbVByb3ZpZGVkVXNlcm5hbWUAGwTUVGhlIHJlcG9ydGVkIHVzZXJuYW1lIHdhcyBub3QgcHJvdmlkZWQgYnkgdGhlIHN5c3RlbS4oTm90RXhwaXJlZAAcBC0BVGhlIHVzZXJuYW1lIGNhbm5vdCBiZSBmb3JjZWZ1bGx5IHJlbW92ZWQgYmVjYXVzZSBpdCBjYW4gc3RpbGwgYmUgYWNjZXB0ZWQuIFRvb0Vhcmx5AB0EGQFUaGUgdXNlcm5hbWUgY2Fubm90IGJlIHJlbW92ZWQgYmVjYXVzZSBpdCdzIHN0aWxsIGluIHRoZSBncmFjZSBwZXJpb2QuME5vdFVuYmluZGluZwAeBOxUaGUgdXNlcm5hbWUgY2Fubm90IGJlIHJlbW92ZWQgYmVjYXVzZSBpdCBpcyBub3QgdW5iaW5kaW5nLkBBbHJlYWR5VW5iaW5kaW5nAB8E/FRoZSB1c2VybmFtZSBjYW5ub3QgYmUgdW5ib3VuZCBiZWNhdXNlIGl0IGlzIGFscmVhZHkgdW5iaW5kaW5nLlhJbnN1ZmZpY2llbnRQcml2aWxlZ2VzACAIRQFUaGUgYWN0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgYmVjYXVzZSBvZiBpbnN1ZmZpY2llbnQgcHJpdmlsZWdlcyAoZS5nLiBhdXRob3JpdHnQdHJ5aW5nIHRvIHVuYmluZCBhIHVzZXJuYW1lIHByb3ZpZGVkIGJ5IHRoZSBzeXN0ZW0pLihCYWRDb250ZXh0ACEE5FRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBhbGlhcyB3YXMgdXNlZCBpcyBub3Qgc3VwcG9ydGVkLkxVbmV4cGVjdGVkSnVkZ2VtZW50ACIExE5vIGFzc29jaWF0ZWQgcmVxdWVzdCBmb3IgdGhlIGp1ZGdlbWVudCByZWNlaXZlZC4wTm90U3VwcG9ydGVkACMEXQFUaGUgc29jaWFsIGNyZWRlbnRpYWwgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY29uZmlndXJlZCBpZGVudGl0eSBpbmZvcm1hdGlvbiBwcm92aWRlci4YQmFubmVkACQE2FRoZSBwZXJzb24gaXMgYmFubmVkIGFuZCBjYW5ub3QgcGVyZm9ybSB0aGUgb3BlcmF0aW9uLkRBbHJlYWR5UmVnaXN0ZXJlZAAlBB0BVGhlIHBlcnNvbiBhbHJlYWR5IGhhcyBhIHBlcnNvbmFsIGlkZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGVpciBhbGlhcy5ESnVkZ2VtZW50TGlzdEZ1bGwAJgT4VGhlIGxpc3Qgb2YganVkZ2VtZW50cyBvbmdvaW5nIG9uIGEgcGVyc29uYWwgaWRlbnRpdHkgaXMgZnVsbC5sTGFzdFVzZXJuYW1lUmVwb3J0VG9vUmVjZW50ACcEsFRoZSB1c2VybmFtZSBoYXMgYmVlbiByZXBvcnRlZCB0b28gcmVjZW50bHkuYFVzZXJuYW1lSnVkZ2VtZW50T25nb2luZwAoBBEBVGhlIHVzZXJuYW1lIGhhcyBiZWVuIHJlcG9ydGVkIGFuZCBpcyB1bmRlcmdvaW5nIHZhbGlkaXR5IGp1ZGdlbWVudC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu6QgMTGluZGl2X3BhbGxldF9wZW9wbGUUdHlwZXMgUmluZ1Jvb3QEBFQAAAwBEHJvb3TtCAEwTWVtYmVyc09mPFQ+AAEgcmV2aXNpb24QATRSZXZpc2lvbkluZGV4AAEwaW50ZXJtZWRpYXRl8QgBREludGVybWVkaWF0ZU9mPFQ+AADtCAAAA4ABAAAIAPEIAAADsAEAAAgA9QgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHJAgRTAAAEAF0FARhWZWM8VD4AAPkIDExpbmRpdl9wYWxsZXRfcGVvcGxlFHR5cGVzKFJpbmdTdGF0dXMAAAgBFHRvdGFsEAEMdTMyAAEgaW5jbHVkZWQQAQx1MzIAAP0IDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBEARTAAAEANECARhWZWM8VD4AAAEJDExpbmRpdl9wYWxsZXRfcGVvcGxlFHR5cGVzMFBlcnNvblJlY29yZAgYTWVtYmVyAckCJEFjY291bnRJZAEAAAwBDGtleckCARhNZW1iZXIAASBwb3NpdGlvbgUJATBSaW5nUG9zaXRpb24AARxhY2NvdW50sQIBRE9wdGlvbjxBY2NvdW50SWQ+AAAFCQxMaW5kaXZfcGFsbGV0X3Blb3BsZRR0eXBlczBSaW5nUG9zaXRpb24AAQwoT25ib2FyZGluZwQBKHF1ZXVlX3BhZ2UQASRQYWdlSW5kZXgAAAAgSW5jbHVkZWQMAShyaW5nX2luZGV4EAEkUmluZ0luZGV4AAE0cmluZ19wb3NpdGlvbhABDHUzMgABVHNjaGVkdWxlZF9mb3JfcmVtb3ZhbCABEGJvb2wAAQAkU3VzcGVuZGVkAAIAAAkJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDQkEUwAABAARCQEYVmVjPFQ+AAANCQAAAzAAAAAIABEJAAACDQkAFQkMTGluZGl2X3BhbGxldF9wZW9wbGUUdHlwZXNAUmluZ01lbWJlcnNTdGF0ZQABDChBcHBlbmRPbmx5AAAAIE11dGF0aW5nBAAIAQh1OAABADBLZXlNaWdyYXRpb24AAgAAGQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHJAgRTAAAEAF0FARhWZWM8VD4AAB0JDExpbmRpdl9wYWxsZXRfcGVvcGxlGHBhbGxldBRFcnJvcgQEVAABhCROb3RQZXJzb24AAATQVGhlIHN1cHBsaWVkIGlkZW50aWZpZXIgZG9lcyBub3QgcmVwcmVzZW50IGEgcGVyc29uLhROb0tleQABBJxUaGUgZ2l2ZW4gcGVyc29uIGhhcyBubyBhc3NvY2lhdGVkIGtleS44SW52YWxpZENvbnRleHQAAgQpAVRoZSBjb250ZXh0IGlzIG5vdCBhIG1lbWJlciBvZiB0aG9zZSBhbGxvd2VkIHRvIGhhdmUgYWNjb3VudCBhbGlhc2VzIGhlbGQuOEludmFsaWRBY2NvdW50AAMEZFRoZSBhY2NvdW50IGlzIG5vdCBrbm93bi4wQWNjb3VudEluVXNlAAQEyFRoZSBhY2NvdW50IGlzIGFscmVhZHkgaW4gdXNlIHVuZGVyIGFub3RoZXIgYWxpYXMuMEludmFsaWRQcm9vZgAFBFRUaGUgcHJvb2YgaXMgaW52YWxpZC5ASW52YWxpZFNpZ25hdHVyZQAGBGRUaGUgc2lnbmF0dXJlIGlzIGludmFsaWQuJE5vTWVtYmVycwAHBNBUaGVyZSBhcmUgbm90IHlldCBhbnkgbWVtYmVycyBvZiBvdXIgcGVyc29uaG9vZCBzZXQuKEluY29tcGxldGUACAQFAVRoZSByb290IGNhbm5vdCBiZSBmaW5hbGl6ZWQgYXMgdGhlcmUgYXJlIHN0aWxsIHVucHVzaGVkIG1lbWJlcnMuKFN0aWxsRnJlc2gACQRgVGhlIHJvb3QgaXMgc3RpbGwgZnJlc2guOFRvb01hbnlNZW1iZXJzAAoEiFRvbyBtYW55IG1lbWJlcnMgaGF2ZSBiZWVuIHB1c2hlZC48S2V5QWxyZWFkeUluVXNlAAsElEtleSBhbHJlYWR5IGluIHVzZSBieSBhbm90aGVyIHBlcnNvbi4sS2V5Tm90Rm91bmQADASgVGhlIG9sZCBrZXkgd2FzIG5vdCBmb3VuZCB3aGVuIGV4cGVjdGVkLjBDb3VsZE5vdFB1c2gADQSQQ291bGQgbm90IHB1c2ggbWVtYmVyIGludG8gdGhlIHJpbmcuHFNhbWVLZXkADgSUVGhlIHJlY29yZCBpcyBhbHJlYWR5IHVzaW5nIHRoaXMga2V5LlRQZXJzb25hbElkTm90UmVzZXJ2ZWQADwR0UGVyc29uYWwgSWQgd2FzIG5vdCByZXNlcnZlZC6AUGVyc29uYWxJZFJlc2VydmF0aW9uQ2Fubm90UmVuZXcAEASQUGVyc29uYWwgSWQgaGFzIG5ldmVyIGJlZW4gcmVzZXJ2ZWQukFBlcnNvbmFsSWROb3RSZXNlcnZlZE9yTm90UmVjb2duaXplZAARBNxQZXJzb25hbCBJZCB3YXMgbm90IHJlc2VydmVkIG9yIG5vdCBhbHJlYWR5IHJlY29nbml6ZWQuLEludmFsaWRSaW5nABIErFJpbmcgY2Fubm90IGJlIG1lcmdlZCBpZiBpdCdzIHRoZSB0b3AgcmluZy5IU3VzcGVuc2lvbnNQZW5kaW5nABME5FJpbmcgY2Fubm90IGJlIGJ1aWx0IHdoaWxlIHRoZXJlIGFyZSBzdXNwZW5zaW9ucyBwZW5kaW5nLlxSaW5nQWJvdmVNZXJnZVRocmVzaG9sZAAUBNRSaW5nIGNhbm5vdCBiZSBtZXJnZWQgaWYgaXQncyBub3QgYmVsb3cgMS8yIGNhcGFjaXR5LkhJbnZhbGlkU3VzcGVuc2lvbnMAFQSgU3VzcGVuc2lvbiBpbmRpY2VzIHByb3ZpZGVkIGFyZSBpbnZhbGlkLkROb011dGF0aW9uU2Vzc2lvbgAWBDUBQW4gbXV0YXRpbmcgYWN0aW9uIHdhcyBxdWV1ZWQgd2hlbiB0aGVyZSB3YXMgbm8gbXV0YXRpb24gc2Vzc2lvbiBpbiBwcm9ncmVzcy5wQ291bGROb3RTdGFydE11dGF0aW9uU2Vzc2lvbgAXBKRBbiBtdXRhdGluZyBzZXNzaW9uIGNvdWxkIG5vdCBiZSBzdGFydGVkLmxTdXNwZW5zaW9uU2Vzc2lvbkluUHJvZ3Jlc3MAGAT0Q2Fubm90IG1lcmdlIHJpbmdzIHdoaWxlIGEgc3VzcGVuc2lvbiBzZXNzaW9uIGlzIGluIHByb2dyZXNzLjhUaW1lT3V0T2ZSYW5nZQAZBHhDYWxsIGlzIHRvbyBsYXRlIG9yIHRvbyBlYXJseS5YQWxpYXNBY2NvdW50QWxyZWFkeVNldAAaBMBBbGlhcyA8LT4gQWNjb3VudCBpcyBhbHJlYWR5IHNldCBhbmQgdXAgdG8gZGF0ZS4wTm90U3VzcGVuZGVkABsE0FBlcnNvbmhvb2QgY2Fubm90IGJlIHJlc3VtZWQgaWYgaXQgaXMgbm90IHN1c3BlbmRlZC4kU3VzcGVuZGVkABwEYFBlcnNvbmhvb2QgaXMgc3VzcGVuZGVkLkxJbnZhbGlkS2V5TWlncmF0aW9uAB0EqEludmFsaWQgc3RhdGUgZm9yIGF0dGVtcHRlZCBrZXkgbWlncmF0aW9uLkxLZXlBbHJlYWR5U3VzcGVuZGVkAB4IVQFJbnZhbGlkIHN1c3BlbnNpb24gb2YgYSBrZXkgYmVsb25naW5nIHRvIGEgcGVyc29uIHdob3NlIGluZGV4IGluIHRoZSByaW5nIGhhcyBhbHJlYWR5uGJlZW4gaW5jbHVkZWQgaW4gdGhlIHBlbmRpbmcgc3VzcGVuc2lvbnMgbGlzdC5USW52YWxpZE9uYm9hcmRpbmdTaXplAB8E6FRoZSBvbmJvYXJkaW5nIHNpemUgbXVzdCBub3QgZXhjZWVkIHRoZSBtYXhpbXVtIHJpbmcgc2l6ZS5ASW52YWxpZE1lbWJlcktleQAgBKxUaGUgbWVtYmVyIGtleSBpcyBub3QgdmFsaWQgZm9yIHRoZSBjcnlwdG8uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LiEJDFRpbmRpdl9wYWxsZXRfbW9iX3J1bGUYcGFsbGV0JE1vYkNyZWRpdAQcQmFsYW5jZQEYABABFHZvdGVkEAEMdTMyAAEcY2xlYW5lZBABDHUzMgABHGNvcnJlY3QQAQx1MzIAARhjcmVkaXQYARxCYWxhbmNlAAAlCQAABAgQBAApCQxUaW5kaXZfcGFsbGV0X21vYl9ydWxlGHBhbGxldCBPcGVuQ2FzZQQsUnVudGltZUNhbGwBaQMADAEUc2luY2UwAUBTZWNzU2luY2VHZW5lc2lzAAEcZGV0YWlscy0JAWBDYXNlRGV0YWlsczxSdW50aW1lQ2FsbD4AARR0YWxseT0JASRWb3RlVGFsbHkAAC0JDFRpbmRpdl9wYWxsZXRfbW9iX3J1bGUYcGFsbGV0LENhc2VEZXRhaWxzBCxSdW50aW1lQ2FsbAFpAwAMASRzdGF0ZW1lbnQxCQEkU3RhdGVtZW50AAEcY29udGV4dK0DAUBKdWRnZW1lbnRDb250ZXh0AAEgY2FsbGJhY2s5CQH8Q2FsbGJhY2s8KENhc2VJbmRleCwgSnVkZ2VtZW50Q29udGV4dCwgSnVkZ2VtZW50KSwgUnVudGltZUNhbGw+AAAxCRA0aW5kaXZfc3VwcG9ydBh0cmFpdHMccmVhbGl0eSRTdGF0ZW1lbnQAAQwoUHJvb2ZPZkluawwBGGRlc2lnbjUJAVRwcm9vZl9vZl9pbms6Oklua1NwZWMAASBldmlkZW5jZQQBMEV2aWRlbmNlSGFzaAABTHByb2JhYmxlX2FjY2VwdGFibGUgARBib29sAAAASElkZW50aXR5Q3JlZGVudGlhbAgBIHBsYXRmb3JtVQUBQGlkZW50aXR5OjpTb2NpYWwAASBldmlkZW5jZbkCAThpZGVudGl0eTo6RGF0YQABADRVc2VybmFtZVZhbGlkBAEgdXNlcm5hbWW5AgE4aWRlbnRpdHk6OkRhdGEAAgAANQkUNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHkwcHJvb2Zfb2ZfaW5rHElua1NwZWMAARBARGVzaWduZWRFbGVjdGl2ZQgA2QIBLEZhbWlseUluZGV4AADZAgEsRGVzaWduSW5kZXgAAABEUHJvY2VkdXJhbEFjY291bnQIANkCASxGYW1pbHlJbmRleAAABAEkQWNjb3VudElkAAEASFByb2NlZHVyYWxQZXJzb25hbAgA2QIBLEZhbWlseUluZGV4AAAwAShQZXJzb25hbElkAAIAKFByb2NlZHVyYWwIANkCASxGYW1pbHlJbmRleAAASAE4UHJvY2VkdXJhbFNlZWQAAwAAOQkQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHkgQ2FsbGJhY2sIGFBhcmFtcwAsUnVudGltZUNhbGwAAAgBMHBhbGxldF9pbmRleAgBCHU4AAEoY2FsbF9pbmRleAgBCHU4AAA9CQxUaW5kaXZfcGFsbGV0X21vYl9ydWxlGHBhbGxldCRWb3RlVGFsbHkAAAwBDGF5ZRABDHUzMgABDG5heRABDHUzMgABIGNvbnRlbXB0EAEMdTMyAABBCQxUaW5kaXZfcGFsbGV0X21vYl9ydWxlGHBhbGxldCBSaXBlQ2FzZQQsUnVudGltZUNhbGwBaQMACAEcZGV0YWlscy0JAWBDYXNlRGV0YWlsczxSdW50aW1lQ2FsbD4AARx2ZXJkaWN0vQIBJEp1ZGdlbWVudAAARQkMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQgRG9uZUNhc2UAAAgBFHNpbmNlMAFAU2Vjc1NpbmNlR2VuZXNpcwABHHZlcmRpY3S9AgEkSnVkZ2VtZW50AABJCQxUaW5kaXZfcGFsbGV0X21vYl9ydWxlGHBhbGxldEhDcmVkaXREaXN0cmlidXRpb24IHEJhbGFuY2UBGCxCbG9ja051bWJlcgEQABQBFHJvdW5kEAEoUm91bmRJbmRleAABPGluaXRpYWxfYmFsYW5jZRgBHEJhbGFuY2UAAURyZW1haW5pbmdfYmFsYW5jZRgBHEJhbGFuY2UAATB0b3RhbF9wb2ludHMwASRWb3RlQ291bnQAARRzdGFydBABLEJsb2NrTnVtYmVyAABNCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAVEJBFMAAAQAVQkBGFZlYzxUPgAAUQkMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQ4UGF5b3V0U2NoZWR1bGUIHEJhbGFuY2UBGCxCbG9ja051bWJlcgEQAAwBJHJlbWFpbmluZxABKFJvdW5kSW5kZXgAAUBhbW91bnRfcGVyX3JvdW5kGAEcQmFsYW5jZQABGHBlcmlvZBABLEJsb2NrTnVtYmVyAABVCQAAAlEJAFkJDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3McUGVyY2VudAAABAAIAQh1OAAAXQkMcGluZGl2X3BhbGxldF9wcml2YWN5X3ZvdWNoZXIYdHJhaXRzLFZvdWNoZXJUeXBlBBxCYWxhbmNlARgBCBRGaXhlZAQAGAEcQmFsYW5jZQAAACBWYXJpYWJsZQQAlQEBRFZhcmlhYmxlVm91Y2hlcklkAAEAAGEJDFRpbmRpdl9wYWxsZXRfbW9iX3J1bGUYcGFsbGV0FEVycm9yBARUAAFUKE5vU3VjaENhc2UAAARgVGhlIGNhc2UgZG9lcyBub3QgZXhpc3QuKE5vU3VjaFZvdGUAAQRgVGhlIHZvdGUgZG9lcyBub3QgZXhpc3QuHE5vdE9wZW4AAgRUVGhlIGNhc2UgaXMgbm90IG9wZW4uHE5vdFJpcGUAAwRUVGhlIGNhc2UgaXMgbm90IHJpcGUuHE5vdERvbmUABARkVGhlIGNhc2UgaXMgbm90IHlldCBkb25lLihDb2RlY0Vycm9yAAUEVQFUaGUgZGVjb2RlIG9mIHRoZSBjYWxsIGZhaWxlZC4gTWF5YmUgdGhlcmUgd2FzIGEgYnJlYWtpbmcgcnVudGltZSB1cGdyYWRlIGluIGJldHdlZW4/NERpc3BhdGNoRXJyb3IABgRNAVRoZSBjYWxsIGZhaWxlZCB0byBkaXNwYXRjaC4gTWF5YmUgdGhlcmUgd2FzIGEgYnJlYWtpbmcgcnVudGltZSB1cGdyYWRlIGluIGJldHdlZW4/GFJlY2VudAAHBJBUaGUgY2FzZSBpcyB0b28gcmVjZW50IHRvIGJlIHJlYXBlZC4gTm9DcmVkaXQACASgTm90IGVub3VnaCBjcmVkaXQgdG8gcGF5b3V0IHRoZSByZXdhcmRzLiROb1ZvdWNoZXIACQQRAVRoZSBjb25maWd1cmVkIHZvdWNoZXIgdHlwZSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSB2b3VjaGVyIHNlcnZpY2UuIE5vUmV3YXJkAAoE1E5vIG1vYiBjcmVkaXQgZGlzdHJpYnV0aW9uIGluIHBsYWNlIHRvIHJld2FyZCB2b3RlcnMuIE5vUG9pbnRzAAsEoE5vIHBvaW50cyB0byBiZSBjb252ZXJ0ZWQgdG8gbW9iIGNyZWRpdC40VG9vTWFueUNsYWltcwAMBFRUb28gbWFueSB2b3RlIGNsYWltcy4gTm9QYXlvdXQADQRYTm8gcGF5b3V0IGluIHByb2dyZXNzLkhBcml0aG1ldGljT3ZlcmZsb3cADgS0VGhlIHBvaW50IGFuZC9vciBjcmVkaXQgYXJpdGhtZXRpYyBvdmVyZmxvd3MuQFRvb01hbnlTY2hlZHVsZXMADwSAVG9vIG1hbnkgcGF5b3V0IHJvdW5kIHNjaGVkdWxlcy4oTm9TY2hlZHVsZQAQBHxObyBwYXlvdXQgcm91bmQgc2NoZWR1bGUgZm91bmQuJE5vUGVuYWx0eQARBFhObyB2b3RlIHBlbmFsdHkgZm91bmQuFEVhcmx5ABIElFRoZSB2b3RlIHBlbmFsdHkgaGFzIG5vdCBleHBpcmVkIHlldC4wVW5kZXJQZW5hbHR5ABME6FRoZSB2b3RlIGNhbm5vdCBiZSBjYXN0IGR1ZSB0byBhIHZvdGluZyBwZW5hbHR5IGluIGVmZmVjdC5YQ2FzZUV4cGlyYXRpb25EaXNhYmxlZAAUBB0BVGhlIG9wZW4gY2FzZSBleHBpcmF0aW9uIGlzIGRpc2FibGVkIGR1ZSB0byBpbnN1ZmZpY2llbnQgYWN0aXZlIHZvdGVycy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuZQkMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0JENhbmRpZGF0ZRAsSnVkZ2VtZW50SWQBEBxEZXBvc2l0AWkJLEJsb2NrTnVtYmVyARAkQWNjb3VudElkAQABDBxBcHBsaWVkDAEQY3JlZG0JAaxDcmVkaWJpbGl0eTxEZXBvc2l0LCBQZXJzb25hbElkLCBBY2NvdW50SWQ+AAEcZW50cm9weQQBHEVudHJvcHkAATRlbnRyb3B5X3NpbmNlEAEsQmxvY2tOdW1iZXIAAAAgU2VsZWN0ZWQgARRzaW5jZRABLEJsb2NrTnVtYmVyAAEQY3JlZG0JAaxDcmVkaWJpbGl0eTxEZXBvc2l0LCBQZXJzb25hbElkLCBBY2NvdW50SWQ+AAEgcmVzZXJ2ZWQwAShQZXJzb25hbElkAAEcZW50cm9weQQBHEVudHJvcHkAARhkZXNpZ241CQEcSW5rU3BlYwABKGFsbG9jYXRpb25xCQEoQWxsb2NhdGlvbgABHGp1ZGdpbmeRBAFMT3B0aW9uPEp1ZGdlbWVudElkPgABGGZhaWxlZBABHENvdW50ZXIAAQAYUHJvdmVuEAEYZGVzaWduNQkBHElua1NwZWMAASByZXNlcnZlZDABKFBlcnNvbmFsSWQAATB3YXNfcmVmZXJyZWQgARBib29sAAEsd2FzX2ludml0ZWQgARBib29sAAIAAGkJFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMgZnVuZ2libGVESG9sZENvbnNpZGVyYXRpb24UBEEABEYABFIABEQACEZwAAAEABgBKEY6OkJhbGFuY2UAAG0JDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldCxDcmVkaWJpbGl0eQwcRGVwb3NpdAFpCShQZXJzb25hbElkATAkQWNjb3VudElkAQABDCBSZWZlcnJlZAQAMAEoUGVyc29uYWxJZAAAABxEZXBvc2l0BABpCQEcRGVwb3NpdAABABxJbnZpdGVkBAAAASRBY2NvdW50SWQAAgAAcQkMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0KEFsbG9jYXRpb24AAQwcSW5pdGlhbAAAACBJbml0RG9uZQABABBGdWxsAAIAAHUJDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldBhQZXJzb24EPEJvdW5kZWRBY2NvdW50cwF5CQAkARhkZXNpZ259CQE8T3B0aW9uPElua1NwZWM+AAFAYWN0aXZlX3JlZmVycmFsc3kJATxCb3VuZGVkQWNjb3VudHMAAWBhbGxvd2VkX3JlZmVycmFsX3RpY2tldHMQARxDb3VudGVyAAE0YmFkX3JlZmVycmFscxABHENvdW50ZXIAAVBzdWNjZXNzZnVsX3JlZmVycmFscxABHENvdW50ZXIAASRyZWZlcnJhbHMQARxDb3VudGVyAAEsZGVyaXZhdGl2ZXMQARxDb3VudGVyAAEYYmFubmVkIAEQYm9vbAABZHBlbmRpbmdfcmVmZXJyYWxfdm91Y2hlcnMQARxDb3VudGVyAAB5CQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQAEUwAABABVAQEYVmVjPFQ+AAB9CQQYT3B0aW9uBARUATUJAQgQTm9uZQAAABBTb21lBAA1CQAAAQAAgQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGFCQRTAAAEAIkJARhWZWM8VD4AAIUJDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldDhSZWZlcnJhbFRpY2tldAQYVGlja2V0AQAABAEYdGlja2V0AAEYVGlja2V0AACJCQAAAoUJAI0JDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldBhGYW1pbHkAAAgBEGtpbmTdAgEoRmFtaWx5S2luZAABCGlkBAEgRmFtaWx5SWQAAJEJAAAECNkC2QIAlQkMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0MERlc2lnblN0YXR1cwABCCBSZXNlcnZlZAAAACRDb21taXR0ZWQAAQAAmQkAAAQIAAAAnQkMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0FEVycm9yBARUAAGsKEluUHJvZ3Jlc3MAAATMQWNjb3VudCBpcyBhbHJlYWR5IGFwcGx5aW5nIHRvIG1ha2UgYSBwcm9vZi1vZi1pbmsuKE5vUmVmZXJyYWwAAQR4QWNjb3VudCBoYXMgbm90IGJlZW4gcmVmZXJyZWQuKEJhZENvbnRleHQAAgToVGhlIGNhbGxiYWNrIGNvbnRleHQgaXMgaW52YWxpZDsgdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLkxVbmV4cGVjdGVkSnVkZ2VtZW50AAMEIQFUaGUgaW5jb21pbmcganVkZ2VtZW50IElEIGlzIG5vdCB3aGF0IHdlIHdlcmUgZXhwZWN0aW5nIGZvciB0aGUgYWNjb3VudC4YTm9BcmdzAAQEuE5vIGFyZ3VtZW50cyB3ZXJlIHN1cHBsaWVkIHdpdGggdGhlIGp1ZGdlbWVudC4oTm90QXBwbGllZAAFBMxUaGUgYWNjb3VudCBoYXMgbm90IGFwcGxpZWQgdG8gbWFrZSBhIHByb29mLW9mLWluay4sTm90U2VsZWN0ZWQABgSwVGhlIGNhbmRpZGF0ZSBoYXMgbm90IGNvbW1pdHRlZCB0byBhIGRlc2lnbi4kTm90UHJvdmVuAAcErFRoZSBjYW5kaWRhdGUgZGlkIG5vdCBwcm92ZSB0aGVtc2VsdmVzIHlldC44QWxyZWFkeVN0YXJ0ZWQACATIVGhlIGNhbmRpZGF0ZSBoYXMgYWxyZWFkeSBzdGFydGVkIHRoZWlyIGp1ZGdlbWVudC4oT3V0T2ZSYW5nZQAJBIBUaGUgcGVyc29uYWwgSUQgaXMgbm90IGluIHJhbmdlLjBBbHJlYWR5VGFrZW4ACgScVGhlIHBlcnNvbmFsIElEIGhhcyBhbHJlYWR5IGJlZW4gdGFrZW4uPE5vTW9yZVJlZmVycmFscwALBLhUaGUgcGVyc29uIGhhcyBubyBtb3JlIHJlZmVycmFscyBsZWZ0IHRvIGdpdmUuIFRvb0Vhcmx5AAwEYFRoZSByZXJvbGwgaXMgdG9vIGVhcmx5LjREZXNpZ25JbnZhbGlkAA0EoFRoZSByZWZlcnJlcidzIGRlc2lnbiBpcyBub3QgcHJvY2VkdXJhbC4sRGVzaWduVGFrZW4ADgScVGhlIHJlZmVycmVyJ3MgZGVzaWduIGlzIGFscmVhZHkgdGFrZW4uJEJhZFBhcmVudAAPBBUBVGhlIHJlZmVycmVyIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgcGVyc29uLiBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uJEJhZEZhbWlseQAQBIBUaGUgZGVzaWduIGZhbWlseSBkb2Vzbid0IGV4aXN0LixXcm9uZ0ZhbWlseQARBLRUaGUgZGVzaWduIGZhbWlseSBpcyBpbnZhbGlkIGZvciB0aGlzIGNob2ljZS4sSW5kZXhUb29CaWcAEgRBAVRoZSBpbmRleCBvZiB0aGUgZGVzaWduIG9yIHZhcmlhbnQgaXMgYmV5b25kIHRoZSBhbGxvd2VkIG1heGltdW0gZm9yIHRoZSBmYW1pbHkuEEJ1c3kAEwT4VGhlIHN5c3RlbSBpcyBidXN5IHdpdGggdG9vIG1hbnkgY29tbWl0bWVudHM7IHRyeSBhZ2FpbiBsYXRlci4YQmFubmVkABQEqFRoZSBwZXJzb24gaGFzIGJlZW4gYmFubmVkIGZyb20gcmVmZXJyaW5nLihJbXByb2JhYmxlABUEJQFUaGUgY2FuZGlkYXRlIGhhcyBub3QgZGVtb25zdHJhdGVkIHByb2JhYmx5IHRocm91Z2ggdGhlIGluaXRpYWwgZXZpZGVuY2UuKElkUmVzZXJ2ZWQAFgTAVGhlIHBlcnNvbmFsIGlkZW50aXR5IGhhcyBhbHJlYWR5IGJlZW4gcmVzZXJ2ZWQuGElkVXNlZAAXBOhUaGUgcGVyc29uYWwgaWRlbnRpdHkgaXMgYWxyZWFkeSB0YWtlbiBieSBhIHByb3ZlbiBwZXJzb24uNEludmFsaWRUaWNrZXQAGAR8VGhlIHRpY2tldCBwcm92aWRlZCBpcyBpbnZhbGlkLiBOb1RpY2tldAAZBPBUaGUgY2FsbGVyIGhhcyBub3QgcHJvdmlkZWQgYSByZWZlcnJhbCBvciBpbnZpdGF0aW9uIHRpY2tldC40Tm90QXV0aG9yaXplZAAaBKRUaGUgYWNjb3VudCBpcyBub3QgYXV0aG9yaXplZCB0byBkbyB0aGlzLiROb3RQZXJzb24AGwSQVGhlIHBlcnNvbmFsIGlkZW50aXR5IGRvZXNuJ3QgZXhpc3QuRFJlZmVycmVkQ2FuZGlkYXRlABwEXQFUaGUgY2FuZGlkYXRlIGlzIHJlZmVycmVkLiBCdXQgdGhlIG9wZXJhdGlvbiByZXF1aXJlcyB0aGUgY2FuZGlkYXRlIHRvIG5vdCBiZSByZWZlcnJlZC5QTm90UmVmZXJyZWRDYW5kaWRhdGUAHQRdAVRoZSBjYW5kaWRhdGUgaXMgbm90IHJlZmVycmVkLiBCdXQgdGhlIG9wZXJhdGlvbiByZXF1aXJlcyB0aGUgY2FuZGlkYXRlIHRvIGJlIHJlZmVycmVkLkxOb1ZvdWNoZXJUb1JlZ2lzdGVyAB4EgFRoZXJlIGlzIG5vIHZvdWNoZXIgdG8gcmVnaXN0ZXIuRFZvdWNoZXJUb1JlZ2lzdGVyAB8EzFRoZXJlIGlzIHZvdWNoZXIgdGhhdCBuZWVkcyB0byBiZSByZWdpc3RlcmVkIGZpcnN0LiROb0ludml0ZXIAIARETm8gaW52aXRlciBmb3VuZC5ASW52YWxpZFNpZ25hdHVyZQAhBEhJbnZhbGlkIHNpZ25hdHVyZS4kTm9JbnZpdGVzACIEUE5vIGludml0ZSBhdmFpbGFibGUuOEFscmVhZHlJbnZpdGVkACMEWEludml0ZSBpcyBhbHJlYWR5IHNldC4oTm9SZWZlcnJlcgAkBHRUaGUgcmVmZXJyZXIgaXMgbm90IGEgcGVyc29uLjBOb3RQb2lQZXJzb24AJQToVGhlIGluZGl2aWR1YWwgaXMgbm90IGEgcGVyc29uIHJlY29nbml6ZWQgYnkgcHJvb2Ygb2YgaW5rLlxJbnZhbGlkUHJvb2ZPZk93bmVyc2hpcAAmBIhUaGUgcHJvb2Ygb2Ygb3duZXJzaGlwIGlzIGludmFsaWQuaEludmFsaWRSZWltYnVyc2VtZW50VmFsdWVzACcElFRoZSByZWltYnVyc2VtZW50IHZhbHVlcyBhcmUgaW52YWxpZC5ARml4ZWRWb3VjaGVyVHlwZQAoBMBDYW5ub3QgYWRqdXN0IHRoZSB2YWx1ZSBvZiBhIGZpeGVkIHZvdWNoZXIgdHlwZS5YTm9SZWZlcnJlZFZvdWNoZXJWYWx1ZQApBNhObyB2YWx1ZSBmb3VuZCBmb3IgdGhlIHJlZmVycmVkIHJlaW1idXJzZW1lbnQgdm91Y2hlci5YTm9SZWZlcnJlclZvdWNoZXJWYWx1ZQAqBNhObyB2YWx1ZSBmb3VuZCBmb3IgdGhlIHJlZmVycmVyIHJlaW1idXJzZW1lbnQgdm91Y2hlci4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuoQkMcGluZGl2X3BhbGxldF9wcml2YWN5X3ZvdWNoZXIYcGFsbGV0NENsYWltYWJsZVJpbmcEBFQAAAgBEHJvb3TtCAEwTWVtYmVyc09mPFQ+AAFIYnVpbHRfYmxvY2tfbnVtYmVyEAFEQmxvY2tOdW1iZXJGb3I8VD4AAKUJDHBpbmRpdl9wYWxsZXRfcHJpdmFjeV92b3VjaGVyGHBhbGxldDBCdWlsZGluZ1JpbmcEBFQAAAgBMGludGVybWVkaWF0ZfEIAURJbnRlcm1lZGlhdGVPZjxUPgABFGluZGV4EAEkUmluZ0luZGV4AACpCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAckCBFMAAAQAXQUBGFZlYzxUPgAArQkAAAQMGBAEALEJDHBpbmRpdl9wYWxsZXRfcHJpdmFjeV92b3VjaGVyGHBhbGxldExWYXJpYWJsZVZvdWNoZXJEYXRhBBxCYWxhbmNlARgACAE0Y3VycmVudF92YWx1ZRgBHEJhbGFuY2UAARxwZW5kaW5ntQkBsE9wdGlvbjxWYXJpYWJsZVZvdWNoZXJQZW5kaW5nVmFsdWU8QmFsYW5jZT4+AAC1CQQYT3B0aW9uBARUAbkJAQgQTm9uZQAAABBTb21lBAC5CQAAAQAAuQkMcGluZGl2X3BhbGxldF9wcml2YWN5X3ZvdWNoZXIYcGFsbGV0bFZhcmlhYmxlVm91Y2hlclBlbmRpbmdWYWx1ZQQcQmFsYW5jZQEYAAgBNHBlbmRpbmdfdmFsdWUYARxCYWxhbmNlAAFUdHJhbnNpdGlvbl9yaW5nX2luZGV4EAEkUmluZ0luZGV4AAC9CQxwaW5kaXZfcGFsbGV0X3ByaXZhY3lfdm91Y2hlchhwYWxsZXQURXJyb3IEBFQAATgwSW52YWxpZFByb29mAAAEVFRoZSBwcm9vZiBpcyBpbnZhbGlkLjRBbHJlYWR5TWVtYmVyAAEEpFRoZSBtZW1iZXIgd2FzIGFscmVhZHkgYWRkZWQgdG8gdGhlIHJvb3QuNEFscmVhZHlQdXNoZWQAAgTIVGhlIG1lbWJlciBoYXMgYWxyZWFkeSBiZWVuIHB1c2hlZCBpbnRvIHRoaXMgcm9vdC44VG9vTWFueU1lbWJlcnMAAwSIVG9vIG1hbnkgbWVtYmVycyBoYXZlIGJlZW4gcHVzaGVkLhhOb1Jvb3QABARgVGhlIHJvb3QgZG9lcyBub3QgZXhpc3QuJE5vTWVtYmVycwAFBIxUaGUgcm9vdCBkb2VzIG5vdCBoYXZlIGFueSBtZW1iZXJzLixOb25FeGlzdGVudAAGBHxUaGUgZ2l2ZW4gaW5kZXggZG9lcyBub3QgZXhpc3QuMEFscmVhZHlTcGVudAAHBHBWb3VjaGVyIHdhcyBhbHJlYWR5IGNsYWltZWQuNFBheW91dEZhaWx1cmUACASAVGhlIHJld2FyZCBjb3VsZG4ndCBiZSBwYWlkIG91dC44RGVwb3NpdEZhaWx1cmUACQSEVGhlIGRlcG9zaXQgY291bGRuJ3QgYmUgcmVjZWl2ZWQuJE5vVm91Y2hlcgAKBHBUaGUgdm91Y2hlciB2YWx1ZSBpc24ndCBzZXQuQEludmFsaWRSaW5nU3RhdGUACwRMSW52YWxpZCByaW5nIHN0YXRlLjxDbGVhbk5vdEluT3JkZXIADASAQ2xlYW4gb3BlcmF0aW9uIGlzIG5vdCBpbiBvcmRlci44UmluZ05vdEV4cGlyZWQADQRgVGhlIHJpbmcgaXMgbm90IGV4cGlyZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LsEJAAAECO0CBADFCQxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXM4QXJjaGl2ZWRQbGF5ZXIELEJsb2NrTnVtYmVyARABCCBLaWNrYWJsZQgBKGZpcnN0X2dhbWUQAQx1MzIAAThhcmNoaXZlZF9zaW5jZRABLEJsb2NrTnVtYmVyAAAAKFVua2lja2FibGUEAShmaXJzdF9nYW1lEAEMdTMyAAEAAMkJDERpbmRpdl9wYWxsZXRfZ2FtZRR0eXBlcxhQbGF5ZXIELFBsYXlEZXBvc2l0Ac0JABgBKGZpcnN0X2dhbWUQAQx1MzIAAShyZWdpc3RlcmVkIAEQYm9vbAABLHNlbnRfcmVwb3J0IAEQYm9vbAABKHllc19wZXJzb24IAQh1OAABNG5vX25vdF9wZXJzb24IAQh1OAABLGNyZWRpYmlsaXR50QkBeFBsYXllckNyZWRpYmlsaXR5PFBsYXlEZXBvc2l0PgAAzQkUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucyBmdW5naWJsZURIb2xkQ29uc2lkZXJhdGlvbhQEQQAERgAEUgAERAAIRnAAAAQAGAEoRjo6QmFsYW5jZQAA0QkMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzRFBsYXllckNyZWRpYmlsaXR5BCxQbGF5RGVwb3NpdAHNCQEMHEludml0ZWQAAAAoUmVjb2duaXplZAABABxEZXBvc2l0BADNCQEsUGxheURlcG9zaXQAAgAA1QkMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzIEdhbWVJbmZvBCRBY2NvdW50SWQBAAAkARRpbmRleBABDHUzMgABRHJlZ2lzdHJhdGlvbl9lbmRzEAEMdTMyAAFAc2h1ZmZsZV9kZWFkbGluZRABDHUzMgABJGdhbWVfZGF0ZRABDHUzMgABLHJlcG9ydF9lbmRzEAEMdTMyAAEUc3RhdGXZCQFQR2FtZVN0YXRlPEFjY291bnRJZD4AAThtYXhfZ3JvdXBfc2l6ZRABDHUzMgABGHJvdW5kcwgBCHU4AAFkcGVyc29uaG9vZF9zY29yZV9vdmVycmlkZZEEASxPcHRpb248dTMyPgAA2QkMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzJEdhbWVTdGF0ZQQkQWNjb3VudElkAQABFDBSZWdpc3RyYXRpb24EAURuZXh0X3BsYXllcl9pbmRleBABDHUzMgAAABxTaHVmZmxlBAEQc3RlcN0JAVhTaHVmZmxlU3RlcDxBY2NvdW50SWQ+AAEAJFJlcG9ydGluZwQBMHBsYXllcl9jb3VudBABDHUzMgACADRQbGF5ZXJQcm9jZXNzBAE4bGFzdF9pdGVyYXRpb27hCQGIT3B0aW9uPEFjY291bnRPclBlcnNvbjxBY2NvdW50SWQ+PgADAChDYW5jZWxsaW5nBAE4bGFzdF9pdGVyYXRpb27hCQGIT3B0aW9uPEFjY291bnRPclBlcnNvbjxBY2NvdW50SWQ+PgAEAADdCQxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXMsU2h1ZmZsZVN0ZXAEJEFjY291bnRJZAEAAQgsU3RlcDFJbnNlcnQEAThsYXN0X2l0ZXJhdGlvbuEJAYhPcHRpb248QWNjb3VudE9yUGVyc29uPEFjY291bnRJZD4+AAAANFN0ZXAyUmV0cmlldmUIAURuZXh0X3BsYXllcl9pbmRleBABDHUzMgABTHJlY29nbml6ZWRfZmluaXNoZWQgARBib29sAAEAAOEJBBhPcHRpb24EBFQB7QIBCBBOb25lAAAAEFNvbWUEAO0CAAABAADlCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUARAEUwAABADRAgEYVmVjPFQ+AADpCQAABAgIEADtCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUARAEUwAABADRAgEYVmVjPFQ+AADxCQAABAgIBAD1CQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAaUFBFMAAAQAoQUBGFZlYzxUPgAA+QkMRGluZGl2X3BhbGxldF9nYW1lGHBhbGxldBRFcnJvcgQEVAABbCxHYW1lT25nb2luZwAABDRHYW1lIG9uZ29pbmcuOE5vUmVnaXN0cmF0aW9uAAEEeE5vIHJlZ2lzdHJhdGlvbiBwaGFzZSBvbmdvaW5nLkRPdXRkYXRlZEdhbWVTZXR1cAACBFhUaGUgc2V0dXAgaXMgb3V0ZGF0ZWQuQEludmFsaWRHYW1lU2V0dXAAAwQ4SW52YWxpZCBzZXR1cC40SW52YWxpZFJlcG9ydAAEBDxJbnZhbGlkIHJlcG9ydC4YTm9HYW1lAAUEQE5vIGdhbWUgb25nb2luZy4sTm9SZXBvcnRpbmcABgRgTm8gcmVwb3J0IHBoYXNlIG9uZ29pbmcuNE5vdFJlZ2lzdGVyZWQABwQ8Tm90IHJlZ2lzdGVyZWQuREFscmVhZHlSZWdpc3RlcmVkAAgEaFBsYXllciBhbHJlYWR5IHJlZ2lzdGVyZWQuRFJlcG9ydEFscmVhZHlTZW50AAkEUFJlcG9ydCBhbHJlYWR5IHNlbnQuFEVhcmx5AAoEbE9wZXJhdGlvbiBpcyBub3QgdmFsaWQgeWV0LkROb3RLaWNrYWJsZVBsYXllcgALBJhUaGUgb3BlcmF0aW9uIGV4cGVjdCBhIHBsYXllciBhY2NvdW50LkBOb0FyY2hpdmVkUGxheWVyAAwEZE5vIGFyY2hpdmVkIHBsYXllciBmb3VuZC4gTm9UaWNrZXQADQRATm8gdGlja2V0IGZvdW5kLiROb0ludml0ZXMADgRQTm8gaW52aXRlIGF2YWlsYWJsZS44QWxyZWFkeUludml0ZWQADwRYSW52aXRlIGlzIGFscmVhZHkgc2V0LkBOb3RBY2NvdW50UGxheWVyABAE+E5vdCBhbiBhY2NvdW50IGJhc2VkIHBsYXllciwgZXhwZWN0ZWQgYW4gYWNjb3VudCBiYXNlZCBwbGF5ZXIuaFVzZUludml0ZUJ1dEFscmVhZHlQbGF5aW5nABEEyFRoZSBwbGF5ZXIgY2FuJ3QgdXNlIGFuIGludml0ZSBpZiBhbHJlYWR5IHBsYXlpbmcuUFRvb01hbnlHYW1lU2NoZWR1bGVzABIEQQFUaGUgbnVtYmVyIG9mIGV4aXN0aW5nIHNjaGVkdWxlcyBhbmQgbmV3IHNjaGVkdWxlcyBleGNlZWRzIHRoZSBjb25maWd1cmVkIGxpbWl0LkxOb1N1Y2hHYW1lU2NoZWR1bGVkABMEKQFUaGUgZ2FtZSB0aGF0IHdhcyBzdXBwb3NlZCB0byBiZSByZW1vdmVkIHdhcyBub3QgZm91bmQgaW4gc2NoZWR1bGVkIGdhbWVzLoBJbnZhbGlkU3RhdGVtZW50QWNjb3VudFNpZ25hdHVyZQAUBKxUaGUgc3RhdGVtZW50IGFjY291bnQgc2lnbmF0dXJlIGlzIGludmFsaWQucFN0YXRlbWVudEFjY291bnRBbHJlYWR5SW5Vc2UAFQTsVGhlIHN0YXRlbWVudCBhY2NvdW50IGlzIGFscmVhZHkgaW4gdXNlZCBieSBhbm90aGVyIHBsYXllci5kSW50ZXJuYWxFcnJvckludmFsaWRTdGF0ZQAWBHRJbnRlcm5hbCBlcnJvciBpbnZhbGlkIHN0YXRlLkBJbnZhbGlkR2FtZVN0YXRlABcE8FRoZSBvcGVyYXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZCBpbiB0aGUgY3VycmVudCBnYW1lIHN0YXRlLiBOb1BsYXllcgAYBEBObyBwbGF5ZXIgZm91bmQukENhbm5vdE9mZmJvYXJkV2hpbGVSZWdpc3RlcmVkRm9yR2FtZQAZBNxUaGUgcGxheWVyIGNhbm5vdCBvZmZib2FyZCB3aGlsZSByZWdpc3RlcmVkIGZvciBhIGdhbWUuMEludmFsaWRTdGF0ZQAaBDRJbnZhbGlkIHN0YXRlBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lv0JDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXMsUGFydGljaXBhbnQEHEJhbGFuY2UBGAAcARRzY29yZRABDHUzMgABGHN0cmVhawEKARhTdHJlYWsAARhjcmVkaXQYARxCYWxhbmNlAAEoY2FzaGVkX291dCABEGJvb2wAAUhyZWFjaGVkX3BlcnNvbmhvb2QgARBib29sAAFsaGFzX2V2ZXJfcmVhY2hlZF9wZXJzb25ob29kIAEQYm9vbAABLHJlY29nbml0aW9uBQoBLFJlY29nbml0aW9uAAABCgxIaW5kaXZfcGFsbGV0X3Njb3JlFHR5cGVzGFN0cmVhawABCCBBdHRlbmRlZAQAEAEMdTMyAAAAGEFic2VudAQAEAEMdTMyAAEAAAUKDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXMsUmVjb2duaXRpb24AARBQRXh0ZXJuYWxseVJlY29nbml6ZWQAAAA0Tm90UmVjb2duaXplZAABACRTdXNwZW5kZWQEADABKFBlcnNvbmFsSWQAAgAoUmVjb2duaXplZAQAMAEoUGVyc29uYWxJZAADAAAJCgAABAgQ7QIADQoMSGluZGl2X3BhbGxldF9zY29yZRR0eXBlcyxSb3VuZFBheW91dAQcQmFsYW5jZQEYAAgBRHJlbWFpbmluZ19iYWxhbmNlGAEcQmFsYW5jZQABLHBvaW50X3ByaWNlGAEcQmFsYW5jZQAAEQoMSGluZGl2X3BhbGxldF9zY29yZRR0eXBlcyRSb3VuZEluZm8ILEJsb2NrTnVtYmVyARAcQmFsYW5jZQEYAAgBJGZpbmlzaF9hdBABLEJsb2NrTnVtYmVyAAEYY3JlZGl0GAEcQmFsYW5jZQAAFQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEZCgRTAAAEAB0KARhWZWM8VD4AABkKDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXM4UGF5b3V0U2NoZWR1bGUIHEJhbGFuY2UBGCxCbG9ja051bWJlcgEQAAwBJHJlbWFpbmluZxABDHUzMgABQGFtb3VudF9wZXJfcm91bmQYARxCYWxhbmNlAAEgZHVyYXRpb24QASxCbG9ja051bWJlcgAAHQoAAAIZCgAhCgxIaW5kaXZfcGFsbGV0X3Njb3JlGHBhbGxldBRFcnJvcgQEVAABSCROb3RQZXJzb24AAASMVGhlIGNhbGxpbmcgb3JpZ2luIGlzIG5vdCBhIHBlcnNvbi5cSGFzTm90UmVhY2hlZFBlcnNvbmhvb2QAAQSMVGhlIHBlcnNvbiBkaWRuJ3QgcmVhY2ggcGVyc29uaG9vZC4gTm9SZXdhcmQAAgRQTm8gcmV3YXJkIGF2YWlsYWJsZS4cTm9TY29yZQADBIxUaGUgcGVyc29uIGhhcyBubyBhc3NvY2lhdGVkIHNjb3JlLihOb1NjaGVkdWxlAAQEdE5vIHBheW91dCBzY2hlZHVsZSBhdmFpbGFibGUuQFRvb01hbnlTY2hlZHVsZXMABQS0VG9vIG1hbnkgcGF5b3V0IHNjaGVkdWxlcyBhbHJlYWR5IHJlZ2lzdGVyZWQuKFJlY29nbml6ZWQABgQFAVRoZSBwYXJ0aWNpcGFudCBpcyByZWNvZ25pemVkIG9yIGhhcyBiZWVuIHJlY29nbml6ZWQgYXMgYSBwZXJzb24uPENhc2hPdXRDb29sZG93bgAHBMxUaGUgcGFydGljaXBhbnQgaGFzIGFscmVhZHkgY2FzaGVkIG91dCBpbiB0aGlzIGVyYS5gUm91bmRPbkdvaW5nT3JOb1NjaGVkdWxlAAgElFRoZSByb3VuZCBpcyBvbiBnb2luZyBvciBubyBzY2hlZHVsZS4cTm9Sb3VuZAAJBIRUaGUgcGF5b3V0IHJvdW5kIGhhcyBub3Qgc3RhcnRlZC5sQmFkT3JpZ2luTm90UGVyc29uTm90U2lnbmVkAAoE0FRoZSBvcmlnaW4gaXMgbmVpdGhlciBhIHBlcnNvbiBub3IgYSBzaWduZWQgYWNjb3VudC7AQmFkT3JpZ2luTm90UGVyc29uTm90U2lnbmVkTm90QWNjb3VudFBhcnRpY2lwYW50AAsEPQFUaGUgb3JpZ2luIGlzIG5laXRoZXIgYSBwZXJzb24gbm9yIGEgc2lnbmVkIGFjY291bnQgbm9yIGFuIGFjY291bnQgcGFydGljaXBhbnQunEJhZE9yaWdpbk5vdFNpZ25lZE5vdEFjY291bnRQYXJ0aWNpcGFudAAMBAkBVGhlIG9yaWdpbiBpcyBuZWl0aGVyIGEgc2lnbmVkIGFjY291bnQgbm9yIGFuIGFjY291bnQgcGFydGljaXBhbnQuUEFscmVhZHlQYXJ0aWNpcGF0aW5nAA0EpFRoZSBwYXJ0aWNpcGFudCBpcyBhbHJlYWR5IHBhcnRpY2lwYXRpbmcuREtleU11c3RCZVByb3ZpZGVkAA4EZFRoZSBrZXkgbXVzdCBiZSBwcm92aWRlZC5QS2V5TXVzdE5vdEJlUHJvdmlkZWQADwR0VGhlIGtleSBtdXN0IG5vdCBiZSBwcm92aWRlZC5QSGFzUmVhY2hlZFBlcnNvbmhvb2QAEASMSGFzIHJlYWNoZWQgcGVyc29uaG9vZCBpbiB0aGUgcGFzdC5cSW52YWxpZFByb29mT2ZPd25lcnNoaXAAEQSIVGhlIHByb29mIG9mIG93bmVyc2hpcCBpcyBpbnZhbGlkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4lCgxYaW5kaXZfcGFsbGV0X2R1bW15X2RpbRhwYWxsZXQYUmVjb3JkBAxLZXkByQIACAEMa2V5yQIBDEtleQABJHN1c3BlbmRlZCABEGJvb2wAACkKDFhpbmRpdl9wYWxsZXRfZHVtbXlfZGltGHBhbGxldBRFcnJvcgQEVAABECROb3RQZXJzb24AAATcVGhlIHBlcnNvbmFsIElEIGRvZXMgbm90IGJlbG9uZyB0byBhIHJlY29nbml6ZWQgcGVyc29uLjBOb3RTdXNwZW5kZWQAAQTYVGhlIHBlcnNvbmFsIElEIGRvZXMgbm90IGJlbG9uZyB0byBhIHN1c3BlbmRlZCBwZXJzb24uLE5vdFJlc2VydmVkAAIE5FRoZSBwZXJzb25hbCBJRCBpcyBub3QgcmVzZXJ2ZWQgYW5kIGF3YWl0aW5nIHJlY29nbml0aW9uLjRUb29NYW55UGVvcGxlAAMEwFRoZSBvcGVyYXRpb24gZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG1hbnkgcGVvcGxlLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4tCgxgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlFHR5cGVzOExpdGVQZXJzb25JbmZvCBhNZW1iZXIByQIYTWV0aG9kATEKAAgBMHJpbmdfdnJmX2tleckCARhNZW1iZXIAARhtZXRob2QxCgEYTWV0aG9kAAAxCgxgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlFHR5cGVzRFJlY29nbml0aW9uTWV0aG9kBBxBY2NvdW50AQABBDBVbmlxdWVEZXZpY2UEAAABHEFjY291bnQAAAAANQoMYGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZRhwYWxsZXQURXJyb3IEBFQAARBYTm9BdHRlc3RhdGlvbkFsbG93YW5jZQAABGRObyBhdHRlc3RhdGlvbiBhbGxvd2FuY2UubEludmFsaWRBdHRlc3RhdGlvblNpZ25hdHVyZQABBPBUaGUgc2lnbmF0dXJlIGNyZWF0ZWQgYnkgdGhlIGNhbmRpZGF0ZSdzIGFjY291bnQgaXMgaW52YWxpZC5cSW52YWxpZFByb29mT2ZPd25lcnNoaXAAAgQFAVRoZSBzaWduYXR1cmUgY3JlYXRlZCBieSB0aGUgY2FuZGlkYXRlJ3MgcmluZyB2cmYga2V5IGlzIGludmFsaWQuREFscmVhZHlSZWdpc3RlcmVkAAMEkFRoZSBjYW5kaWRhdGUgaXMgYWxyZWFkeSByZWdpc3RlcmVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC45CgxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxR0eXBlczBDb25zdW1lckluZm8AABABOGlkZW50aWZpZXJfa2V5UQUBXENvbW11bmljYXRpb25JZGVudGlmaWVyAAE0ZnVsbF91c2VybmFtZd0FAUBPcHRpb248VXNlcm5hbWU+AAE0bGl0ZV91c2VybmFtZbkCASBVc2VybmFtZQABLGNyZWRpYmlsaXR5PQoBLENyZWRpYmlsaXR5AAA9CgxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxR0eXBlcyxDcmVkaWJpbGl0eQABCBBMaXRlAAAAGFBlcnNvbggBFGFsaWFzBAEUQWxpYXMAASxsYXN0X3VwZGF0ZTABDHU2NAABAABBCgxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxR0eXBlc0xVc2VybmFtZVJlc2VydmF0aW9uBBxBY2NvdW50AQAACAEUb3duZXIAARxBY2NvdW50AAEUc2luY2UwAQx1NjQAAEUKDFhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzGHBhbGxldBRFcnJvcgQEVAABNDxJbnZhbGlkVXNlcm5hbWUAAAScVXNlcm5hbWUgZG9lcyBub3QgZml0IHRoZSByZXF1aXJlbWVudHMuNFVzZXJuYW1lVGFrZW4AAQRoVXNlcm5hbWUgaXMgYWxyZWFkeSB0YWtlbi5EQWxyZWFkeVJlZ2lzdGVyZWQAAgR8Q29uc3VtZXIgaXMgYWxyZWFkeSByZWdpc3RlcmVkLlxJbnZhbGlkUHJvb2ZPZk93bmVyc2hpcAADBJxQcm92aWRlZCBwcm9vZiBvZiBvd25lcnNoaXAgaXMgaW52YWxpZC40Tm90UmVnaXN0ZXJlZAAEBJxQZXJzb24gaXMgbm90IHJlZ2lzdGVyZWQgYXMgYSBjb25zdW1lci40Tm90RnVsbFBlcnNvbgAFBHhDb25zdW1lciBpcyBub3QgYSBmdWxsIHBlcnNvbi40VG91Y2hOb3RSZWFkeQAGBMxBdHRlbXB0ZWQgdG8gdXBkYXRlIHBlcnNvbiBhdXRob3JpemF0aW9uIHRvbyBlYXJseS40Tm9SZXNlcnZhdGlvbgAHBGhSZXNlcnZhdGlvbiBpcyBub3QgYWN0aXZlLmBJbnZhbGlkVXNlcm5hbWVTaWduYXR1cmUACATMVGhlIHNpZ25hdHVyZSBmb3IgdGhlIHJlc2VydmVkIHVzZXJuYW1lIGlzIGludmFsaWQuYFVzZXJuYW1lUmVzZXJ2YXRpb25UYWtlbgAJBORUaGUgdXNlcm5hbWUgaW4gdGhlIHJlc2VydmF0aW9uIHJlcXVlc3QgaXMgYWxyZWFkeSB0YWtlbi5AUmVzZXJ2YXRpb25GcmVzaAAKBIBUaGUgcmVzZXJ2YXRpb24gaGFzIG5vdCBleHBpcmVkLkBOb0xpbmtlZElkZW50aXR5AAsEnFRoZXJlIGlzIG5vIGxpdGUgY29uc3VtZXIgdG8gYmUgbGlua2VkLjRBbHJlYWR5TGlua2VkAAwE+FRoZSBsaXRlIGNvbnN1bWVyIGlzIGFscmVhZHkgbGlua2VkIHRvIGEgZnVsbCBwZXJzb24gY29uc3VtZXIuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkkKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBTQoEUwAABABRCgEYVmVjPFQ+AABNCgxQaW5kaXZfcGFsbGV0X2xvdHRlcnkYcGFsbGV0OFNjaGVkdWxlZEV2ZW50CBxBc3NldElkAaQwQXNzZXRCYWxhbmNlARgACAEIaWQQARxFdmVudElkAAEQaW5mb+0FAYBFdmVudEluZm88QXNzZXRJZCwgQXNzZXRCYWxhbmNlPgAAUQoAAAJNCgBVCgxQaW5kaXZfcGFsbGV0X2xvdHRlcnkYcGFsbGV0SEFjdGl2ZUxvdHRlcnlFdmVudAwcQXNzZXRJZAGkMEFzc2V0QmFsYW5jZQEYVFJlbGF5Q2hhaW5CbG9ja051bWJlcgEQABABCGlkEAEMdTMyAAFMbmV4dF9wYXJ0aWNpcGFudF9pZBABNFBhcnRpY2lwYW50SWQAARBpbmZv7QUBgEV2ZW50SW5mbzxBc3NldElkLCBBc3NldEJhbGFuY2U+AAEYc3RhdHVzWQoBvEFjdGl2ZUxvdHRlcnlFdmVudFN0YXR1czxSZWxheUNoYWluQmxvY2tOdW1iZXI+AABZCgxQaW5kaXZfcGFsbGV0X2xvdHRlcnkYcGFsbGV0YEFjdGl2ZUxvdHRlcnlFdmVudFN0YXR1cwRUUmVsYXlDaGFpbkJsb2NrTnVtYmVyARABFCxSZWdpc3RlcmluZwAAAGBXYWl0aW5nRm9yRW50cm9weVRvQnVpbGQEAUBzdGFydGVkX2F0X3JjX2JuEAFUUmVsYXlDaGFpbkJsb2NrTnVtYmVyAAEAOERyYXdpbmdXaW5uZXJzBAEcZW50cm9weQQBIFt1ODsgMzJdAAIAMERpc3RyaWJ1dGluZwADADxDbGVhcmluZ1N0b3JhZ2UABAAAXQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEQBFMAAAQA0QIBGFZlYzxUPgAAYQoAAAQIBAAAZQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEQBFMAAAQA0QIBGFZlYzxUPgAAaQoAAAQIABAAbQoAAAQIpBgAcQoMUGluZGl2X3BhbGxldF9sb3R0ZXJ5GHBhbGxldDxQYXN0TG90dGVyeUluZm8IHEFzc2V0SWQBpDBBc3NldEJhbGFuY2UBGAAUARRwcml6ZQEDAYxMb3R0ZXJ5UHJpemU8QXNzZXRJZCwgQXNzZXRCYWxhbmNlPgABTHJlZ2lzdHJhdGlvbl9zdGFydHMQAQx1MzIAAVRyZWdpc3RyYXRpb25fZHVyYXRpb24QAQx1MzIAAUh0b3RhbF9wYXJ0aWNpcGFudHMQAQx1MzIAARx3aW5uZXJzdQoBoEJvdW5kZWRWZWM8QWxpYXMsIENvbnN0VTMyPE1BWF9XSU5ORVJTPj4AAHUKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBARTAAAEAHkKARhWZWM8VD4AAHkKAAACBAB9CgxQaW5kaXZfcGFsbGV0X2xvdHRlcnkYcGFsbGV0FEVycm9yBARUAAEkNE5vQWN0aXZlRXZlbnQAAARgTm8gYWN0aXZlIGxvdHRlcnkgZXZlbnQuKE5vdEFQZXJzb24AAQRsVGhlIG9yaWdpbiBpcyBub3QgYSBwZXJzb24uWEFsaWFzQWxyZWFkeVJlZ2lzdGVyZWQAAgSAVGhlIGFsaWFzIGlzIGFscmVhZHkgcmVnaXN0ZXJlZC5wSW52YWxpZEV2ZW50UmVnaXN0cmF0aW9uVGltZQADBJxUaGUgZXZlbnQgcmVnaXN0cmF0aW9uIHRpbWUgaXMgaW52YWxpZC5UUGFydGljaXBhbnRJZE92ZXJmbG93AAQEYFBhcnRpY2lwYW50IElEIG92ZXJmbG93LlhOb1ByaXplVG9DbGFpbUZvckV2ZW50AAUE0FRoZSBwYXJ0aWNpcGFudCBoYXMgbm8gcHJpemUgdG8gY2xhaW0gZm9yIHRoZSBldmVudC4wTm9FdmVudEZvdW5kAAYEYFRoZSBldmVudCBkb2Vzbid0IGV4aXN0LjBTY2hlZHVsZUZ1bGwABwRUVGhlIHNjaGVkdWxlIGlzIGZ1bGwuiFByaXplTXVzdEJlTW9yZU9yRXF1YWxUb01pbkJhbGFuY2UACATcVGhlIHByaXplIG11c3QgYmUgbW9yZSBvciBlcXVhbCB0byB0aGUgbWluaW11bSBiYWxhbmNlLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6BCgxEcGFsbGV0X21pZ3JhdGlvbnMYcGFsbGV0FEVycm9yBARUAAEEHE9uZ29pbmcAAAToVGhlIG9wZXJhdGlvbiBjYW5ub3QgY29tcGxldGUgc2luY2Ugc29tZSBNQk1zIGFyZSBvbmdvaW5nLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6FCghIc3BfY29uc2Vuc3VzX3Nsb3RzMFNsb3REdXJhdGlvbgAABAAwAQx1NjQAAIkKCChzcF9ydW50aW1lWEV4dHJpbnNpY0luY2x1c2lvbk1vZGUAAQg0QWxsRXh0cmluc2ljcwAAADRPbmx5SW5oZXJlbnRzAAEAAI0KCBxzcF9jb3JlOE9wYXF1ZU1ldGFkYXRhAAAEADgBHFZlYzx1OD4AAJEKBBhPcHRpb24EBFQBjQoBCBBOb25lAAAAEFNvbWUEAI0KAAABAACVCgQYUmVzdWx0CARUAZ0CBEUBmQoBCAhPawQAnQIAAAAADEVycgQAmQoAAAEAAJkKDChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5YFRyYW5zYWN0aW9uVmFsaWRpdHlFcnJvcgABCBxJbnZhbGlkBACdCgFISW52YWxpZFRyYW5zYWN0aW9uAAAAHFVua25vd24EAKEKAUhVbmtub3duVHJhbnNhY3Rpb24AAQAAnQoMKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlISW52YWxpZFRyYW5zYWN0aW9uAAE0EENhbGwAAAAcUGF5bWVudAABABhGdXR1cmUAAgAUU3RhbGUAAwAgQmFkUHJvb2YABABEQW5jaWVudEJpcnRoQmxvY2sABQBERXhoYXVzdHNSZXNvdXJjZXMABgAYQ3VzdG9tBAAIAQh1OAAHADBCYWRNYW5kYXRvcnkACABMTWFuZGF0b3J5VmFsaWRhdGlvbgAJACRCYWRTaWduZXIACgBUSW5kZXRlcm1pbmF0ZUltcGxpY2l0AAsANFVua25vd25PcmlnaW4ADAAAoQoMKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlIVW5rbm93blRyYW5zYWN0aW9uAAEMMENhbm5vdExvb2t1cAAAAExOb1Vuc2lnbmVkVmFsaWRhdG9yAAEAGEN1c3RvbQQACAEIdTgAAgAApQoIMHNwX2luaGVyZW50czBJbmhlcmVudERhdGEAAAQBEGRhdGGpCgGUQlRyZWVNYXA8SW5oZXJlbnRJZGVudGlmaWVyLCBWZWM8dTg+PgAAqQoEIEJUcmVlTWFwCARLAZUBBFYBOAAEAK0KAAAArQoAAAKxCgCxCgAABAiVATgAtQoIMHNwX2luaGVyZW50c1BDaGVja0luaGVyZW50c1Jlc3VsdAAADAEQb2theSABEGJvb2wAASxmYXRhbF9lcnJvciABEGJvb2wAARhlcnJvcnOlCgEwSW5oZXJlbnREYXRhAAC5Cgwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eURUcmFuc2FjdGlvblNvdXJjZQABDBxJbkJsb2NrAAAAFExvY2FsAAEAIEV4dGVybmFsAAIAAL0KBBhSZXN1bHQIBFQBwQoERQGZCgEICE9rBADBCgAAAAAMRXJyBACZCgAAAQAAwQoMKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlAVmFsaWRUcmFuc2FjdGlvbgAAFAEgcHJpb3JpdHkwAUxUcmFuc2FjdGlvblByaW9yaXR5AAEgcmVxdWlyZXM5AwFMVmVjPFRyYW5zYWN0aW9uVGFnPgABIHByb3ZpZGVzOQMBTFZlYzxUcmFuc2FjdGlvblRhZz4AASRsb25nZXZpdHkwAVBUcmFuc2FjdGlvbkxvbmdldml0eQABJHByb3BhZ2F0ZSABEGJvb2wAAMUKBBhPcHRpb24EBFQByQoBCBBOb25lAAAAEFNvbWUEAMkKAAABAADJCgAAAs0KAM0KAAAECDi1BwDRCgxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQUdHlwZXNMUnVudGltZURpc3BhdGNoSW5mbwgcQmFsYW5jZQEYGFdlaWdodAEoAAwBGHdlaWdodCgBGFdlaWdodAABFGNsYXNzYAE0RGlzcGF0Y2hDbGFzcwABLHBhcnRpYWxfZmVlGAEcQmFsYW5jZQAA1QoMaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50FHR5cGVzKEZlZURldGFpbHMEHEJhbGFuY2UBGAAIATRpbmNsdXNpb25fZmVl2QoBdE9wdGlvbjxJbmNsdXNpb25GZWU8QmFsYW5jZT4+AAEMdGlwGAEcQmFsYW5jZQAA2QoEGE9wdGlvbgQEVAHdCgEIEE5vbmUAAAAQU29tZQQA3QoAAAEAAN0KDGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudBR0eXBlczBJbmNsdXNpb25GZWUEHEJhbGFuY2UBGAAMASBiYXNlX2ZlZRgBHEJhbGFuY2UAARxsZW5fZmVlGAEcQmFsYW5jZQABTGFkanVzdGVkX3dlaWdodF9mZWUYARxCYWxhbmNlAADhCgQYUmVzdWx0CARUAeUKBEUB6QoBCAhPawQA5QoAAAAADEVycgQA6QoAAAEAAOUKAAACmQQA6QoMQHhjbV9ydW50aW1lX2FwaXMQZmVlcxRFcnJvcgABGDRVbmltcGxlbWVudGVkAAAAZFZlcnNpb25lZENvbnZlcnNpb25GYWlsZWQAAQBMV2VpZ2h0Tm90Q29tcHV0YWJsZQACAExVbmhhbmRsZWRYY21WZXJzaW9uAAMANEFzc2V0Tm90Rm91bmQABAAoVW5yb3V0YWJsZQAFAADtCgQYUmVzdWx0CARUASgERQHpCgEICE9rBAAoAAAAAAxFcnIEAOkKAAABAADxCgQYUmVzdWx0CARUARgERQHpCgEICE9rBAAYAAAAAAxFcnIEAOkKAAABAAD1CgQYUmVzdWx0CARUAQUCBEUB6QoBCAhPawQABQIAAAAADEVycgQA6QoAAAEAAPkKBBhSZXN1bHQIBFQBAARFAf0KAQgIT2sEAAAAAAAADEVycgQA/QoAAAEAAP0KDEB4Y21fcnVudGltZV9hcGlzLGNvbnZlcnNpb25zFEVycm9yAAEILFVuc3VwcG9ydGVkAAAAZFZlcnNpb25lZENvbnZlcnNpb25GYWlsZWQAAQAAAQsEGE9wdGlvbgQEVAEYAQgQTm9uZQAAABBTb21lBAAYAAABAAAFCwxIc3Bfc3RhdGVtZW50X3N0b3JlLHJ1bnRpbWVfYXBpPFN0YXRlbWVudFNvdXJjZQABDBRDaGFpbgAAABxOZXR3b3JrAAEAFExvY2FsAAIAAAkLCEhzcF9zdGF0ZW1lbnRfc3RvcmUkU3RhdGVtZW50AAAcARRwcm9vZg0LATRPcHRpb248UHJvb2Y+AAE4ZGVjcnlwdGlvbl9rZXmEAVRPcHRpb248RGVjcnlwdGlvbktleT4AARxjaGFubmVshAE8T3B0aW9uPENoYW5uZWw+AAEgcHJpb3JpdHmRBAEsT3B0aW9uPHUzMj4AAShudW1fdG9waWNzCAEIdTgAARh0b3BpY3MZCwFMW1RvcGljOyBNQVhfVE9QSUNTXQABEGRhdGEJAwE8T3B0aW9uPFZlYzx1OD4+AAANCwQYT3B0aW9uBARUARELAQgQTm9uZQAAABBTb21lBAARCwAAAQAAEQsISHNwX3N0YXRlbWVudF9zdG9yZRRQcm9vZgABEBxTcjI1NTE5CAEkc2lnbmF0dXJlTQUBIFt1ODsgNjRdAAEYc2lnbmVyBAEgW3U4OyAzMl0AAAAcRWQyNTUxOQgBJHNpZ25hdHVyZU0FASBbdTg7IDY0XQABGHNpZ25lcgQBIFt1ODsgMzJdAAEAOFNlY3AyNTZrMUVjZHNhCAEkc2lnbmF0dXJlUQUBIFt1ODsgNjVdAAEYc2lnbmVyFQsBIFt1ODsgMzNdAAIAHE9uQ2hhaW4MAQx3aG8EASRBY2NvdW50SWQAAShibG9ja19oYXNoBAEkQmxvY2tIYXNoAAEsZXZlbnRfaW5kZXgwAQx1NjQAAwAAFQsAAAMhAAAACAAZCwAAAwQAAAAEAB0LBBhSZXN1bHQIBFQBIQsERQElCwEICE9rBAAhCwAAAAAMRXJyBAAlCwAAAQAAIQsMSHNwX3N0YXRlbWVudF9zdG9yZSxydW50aW1lX2FwaThWYWxpZFN0YXRlbWVudAAACAEkbWF4X2NvdW50EAEMdTMyAAEgbWF4X3NpemUQAQx1MzIAACULDERpbmRpdl9wYWxsZXRfZ2FtZRR0eXBlc1hJbnZhbGlkU3RhdGVtZW50UmVhc29uAAEYQE5vUmVwb3J0aW5nUGhhc2UAAABQU3RhdGVtZW50SXNOb3RTaWduZWQAAQBASW52YWxpZFNpZ25hdHVyZQACADRJbnZhbGlkVG9waWMwCAEgZXhwZWN0ZWSEAUBPcHRpb248W3U4OyAzMl0+AAEYYWN0dWFshAFAT3B0aW9uPFt1ODsgMzJdPgADAExBY2NvdW50SXNOb3RBUGxheWVyAAQAVFBsYXllcklzTm90UmVnaXN0ZXJlZAAFAAApCwhcY3VtdWx1c19wcmltaXRpdmVzX2NvcmU0Q29sbGF0aW9uSW5mbwAAGAE8dXB3YXJkX21lc3NhZ2VzOQMBSFZlYzxVcHdhcmRNZXNzYWdlPgABTGhvcml6b250YWxfbWVzc2FnZXP9BgFgVmVjPE91dGJvdW5kSHJtcE1lc3NhZ2U+AAFMbmV3X3ZhbGlkYXRpb25fY29kZS0LAYxPcHRpb248cmVsYXlfY2hhaW46OlZhbGlkYXRpb25Db2RlPgABbHByb2Nlc3NlZF9kb3dud2FyZF9tZXNzYWdlcxABDHUzMgABOGhybXBfd2F0ZXJtYXJrEAFgcmVsYXlfY2hhaW46OkJsb2NrTnVtYmVyAAEkaGVhZF9kYXRheQMBIEhlYWREYXRhAAAtCwQYT3B0aW9uBARUATELAQgQTm9uZQAAABBTb21lBAAxCwAAAQAAMQsMdHBvbGthZG90X3BhcmFjaGFpbl9wcmltaXRpdmVzKHByaW1pdGl2ZXM4VmFsaWRhdGlvbkNvZGUAAAQAOAEcVmVjPHU4PgAANQsEGFJlc3VsdAgEVAGhAgRFASUDAQgIT2sEAKECAAAAAAxFcnIEACUDAAABAAA5CwQYT3B0aW9uBARUASUDAQgQTm9uZQAAABBTb21lBAAlAwAAAQAAPQsAAAIlAwBBCwQYUmVzdWx0CARUASELBEUBRQsBCAhPawQAIQsAAAAADEVycgQARQsAAAEAAEULDEhzcF9zdGF0ZW1lbnRfc3RvcmUscnVudGltZV9hcGlASW52YWxpZFN0YXRlbWVudAABDCBCYWRQcm9vZgAAABxOb1Byb29mAAEANEludGVybmFsRXJyb3IAAgAASQsIVHBlb3BsZV9yb2NvY29fcnVudGltZTBSdW50aW1lRXJyb3IAAWwYU3lzdGVtBABlAwFwZnJhbWVfc3lzdGVtOjpFcnJvcjxSdW50aW1lPgAAADxQYXJhY2hhaW5TeXN0ZW0EAAUHAbxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtOjpFcnJvcjxSdW50aW1lPgABACBCYWxhbmNlcwQAPQcBfHBhbGxldF9iYWxhbmNlczo6RXJyb3I8UnVudGltZT4ACgBET3JpZ2luUmVzdHJpY3Rpb24EAEkHAbxpbmRpdl9wYWxsZXRfb3JpZ2luX3Jlc3RyaWN0aW9uOjpFcnJvcjxSdW50aW1lPgANABhBc3NldHMEAHUHAXRwYWxsZXRfYXNzZXRzOjpFcnJvcjxSdW50aW1lPgAOADBBc3NldHNIb2xkZXIEAHkHAZBwYWxsZXRfYXNzZXRzX2hvbGRlcjo6RXJyb3I8UnVudGltZT4ADwAkQXNzZXRSYXRlBAB9BwGEcGFsbGV0X2Fzc2V0X3JhdGU6OkVycm9yPFJ1bnRpbWU+ABAARENvbGxhdG9yU2VsZWN0aW9uBACVBwGkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbjo6RXJyb3I8UnVudGltZT4AFQAcU2Vzc2lvbgQAuQcBeHBhbGxldF9zZXNzaW9uOjpFcnJvcjxSdW50aW1lPgAWACRYY21wUXVldWUEAPUHAaRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlOjpFcnJvcjxSdW50aW1lPgAeACxQb2xrYWRvdFhjbQQAXQgBaHBhbGxldF94Y206OkVycm9yPFJ1bnRpbWU+AB8AME1lc3NhZ2VRdWV1ZQQAfQgBkHBhbGxldF9tZXNzYWdlX3F1ZXVlOjpFcnJvcjxSdW50aW1lPgAiABxVdGlsaXR5BACBCAF4cGFsbGV0X3V0aWxpdHk6OkVycm9yPFJ1bnRpbWU+ACgAIE11bHRpc2lnBACRCAF8cGFsbGV0X211bHRpc2lnOjpFcnJvcjxSdW50aW1lPgApABBTdWRvBACVCAFscGFsbGV0X3N1ZG86OkVycm9yPFJ1bnRpbWU+ACoAIElkZW50aXR5BADlCAGUaW5kaXZfcGFsbGV0X2lkZW50aXR5OjpFcnJvcjxSdW50aW1lPgAyABhQZW9wbGUEAB0JAYxpbmRpdl9wYWxsZXRfcGVvcGxlOjpFcnJvcjxSdW50aW1lPgAzABxNb2JSdWxlBABhCQGUaW5kaXZfcGFsbGV0X21vYl9ydWxlOjpFcnJvcjxSdW50aW1lPgA0AChQcm9vZk9mSW5rBACdCQGkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luazo6RXJyb3I8UnVudGltZT4ANQA4UHJpdmFjeVZvdWNoZXIEAL0JAbBpbmRpdl9wYWxsZXRfcHJpdmFjeV92b3VjaGVyOjpFcnJvcjxSdW50aW1lPgA2ABBHYW1lBAD5CQGEaW5kaXZfcGFsbGV0X2dhbWU6OkVycm9yPFJ1bnRpbWU+ADcAFFNjb3JlBAAhCgGIaW5kaXZfcGFsbGV0X3Njb3JlOjpFcnJvcjxSdW50aW1lPgA4ACBEdW1teURpbQQAKQoBmGluZGl2X3BhbGxldF9kdW1teV9kaW06OkVycm9yPFJ1bnRpbWU+ADsAKFBlb3BsZUxpdGUEADUKAaBpbmRpdl9wYWxsZXRfcGVvcGxlX2xpdGU6OkVycm9yPFJ1bnRpbWU+AD4AJFJlc291cmNlcwQARQoBmGluZGl2X3BhbGxldF9yZXNvdXJjZXM6OkVycm9yPFJ1bnRpbWU+AD8AHExvdHRlcnkEAH0KAZBpbmRpdl9wYWxsZXRfbG90dGVyeTo6RXJyb3I8UnVudGltZT4APQBQTXVsdGlCbG9ja01pZ3JhdGlvbnMEAIEKAYRwYWxsZXRfbWlncmF0aW9uczo6RXJyb3I8UnVudGltZT4AYgAAnBhTeXN0ZW0BGFN5c3RlbUwcQWNjb3VudAEBBAIADEEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAE6CBUaGUgZnVsbCBhY2NvdW50IGluZm9ybWF0aW9uIGZvciBhIHBhcnRpY3VsYXIgYWNjb3VudCBJRC4AOEV4dHJpbnNpY0NvdW50AAAQBAAEuCBUb3RhbCBleHRyaW5zaWNzIGNvdW50IGZvciB0aGUgY3VycmVudCBibG9jay4AQEluaGVyZW50c0FwcGxpZWQBACAEAASkIFdoZXRoZXIgYWxsIGluaGVyZW50cyBoYXZlIGJlZW4gYXBwbGllZC4ALEJsb2NrV2VpZ2h0AQAkGAAAAAAAAASIIFRoZSBjdXJyZW50IHdlaWdodCBmb3IgdGhlIGJsb2NrLgBAQWxsRXh0cmluc2ljc0xlbgAAEAQABEEBIFRvdGFsIGxlbmd0aCAoaW4gYnl0ZXMpIGZvciBhbGwgZXh0cmluc2ljcyBwdXQgdG9nZXRoZXIsIGZvciB0aGUgY3VycmVudCBibG9jay4AJEJsb2NrSGFzaAEBBAUQNIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASYIE1hcCBvZiBibG9jayBudW1iZXJzIHRvIGJsb2NrIGhhc2hlcy4ANEV4dHJpbnNpY0RhdGEBAQQFEDgEAAQ9ASBFeHRyaW5zaWNzIGRhdGEgZm9yIHRoZSBjdXJyZW50IGJsb2NrIChtYXBzIGFuIGV4dHJpbnNpYydzIGluZGV4IHRvIGl0cyBkYXRhKS4AGE51bWJlcgEAEBAAAAAABAkBIFRoZSBjdXJyZW50IGJsb2NrIG51bWJlciBiZWluZyBwcm9jZXNzZWQuIFNldCBieSBgZXhlY3V0ZV9ibG9ja2AuAChQYXJlbnRIYXNoAQA0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAgSGFzaCBvZiB0aGUgcHJldmlvdXMgYmxvY2suABhEaWdlc3QBADwEAATwIERpZ2VzdCBvZiB0aGUgY3VycmVudCBibG9jaywgYWxzbyBwYXJ0IG9mIHRoZSBibG9jayBoZWFkZXIuABhFdmVudHMBAEwEABygIEV2ZW50cyBkZXBvc2l0ZWQgZm9yIHRoZSBjdXJyZW50IGJsb2NrLgAdASBOT1RFOiBUaGUgaXRlbSBpcyB1bmJvdW5kIGFuZCBzaG91bGQgdGhlcmVmb3JlIG5ldmVyIGJlIHJlYWQgb24gY2hhaW4u0CBJdCBjb3VsZCBvdGhlcndpc2UgaW5mbGF0ZSB0aGUgUG9WIHNpemUgb2YgYSBibG9jay4ALQEgRXZlbnRzIGhhdmUgYSBsYXJnZSBpbi1tZW1vcnkgc2l6ZS4gQm94IHRoZSBldmVudHMgdG8gbm90IGdvIG91dC1vZi1tZW1vcnn8IGp1c3QgaW4gY2FzZSBzb21lb25lIHN0aWxsIHJlYWRzIHRoZW0gZnJvbSB3aXRoaW4gdGhlIHJ1bnRpbWUuAChFdmVudENvdW50AQAQEAAAAAAEuCBUaGUgbnVtYmVyIG9mIGV2ZW50cyBpbiB0aGUgYEV2ZW50czxUPmAgbGlzdC4ALEV2ZW50VG9waWNzAQEEAjQVAwQAKCUBIE1hcHBpbmcgYmV0d2VlbiBhIHRvcGljIChyZXByZXNlbnRlZCBieSBUOjpIYXNoKSBhbmQgYSB2ZWN0b3Igb2YgaW5kZXhlc5Qgb2YgZXZlbnRzIGluIHRoZSBgPEV2ZW50czxUPj5gIGxpc3QuAFEBIEFsbCB0b3BpYyB2ZWN0b3JzIGhhdmUgZGV0ZXJtaW5pc3RpYyBzdG9yYWdlIGxvY2F0aW9ucyBkZXBlbmRpbmcgb24gdGhlIHRvcGljLiBUaGlzRQEgYWxsb3dzIGxpZ2h0LWNsaWVudHMgdG8gbGV2ZXJhZ2UgdGhlIGNoYW5nZXMgdHJpZSBzdG9yYWdlIHRyYWNraW5nIG1lY2hhbmlzbSBhbmTkIGluIGNhc2Ugb2YgY2hhbmdlcyBmZXRjaCB0aGUgbGlzdCBvZiBldmVudHMgb2YgaW50ZXJlc3QuAFkBIFRoZSB2YWx1ZSBoYXMgdGhlIHR5cGUgYChCbG9ja051bWJlckZvcjxUPiwgRXZlbnRJbmRleClgIGJlY2F1c2UgaWYgd2UgdXNlZCBvbmx5IGp1c3RNASB0aGUgYEV2ZW50SW5kZXhgIHRoZW4gaW4gY2FzZSBpZiB0aGUgdG9waWMgaGFzIHRoZSBzYW1lIGNvbnRlbnRzIG9uIHRoZSBuZXh0IGJsb2NrAQEgbm8gbm90aWZpY2F0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIHRodXMgdGhlIGV2ZW50IG1pZ2h0IGJlIGxvc3QuAEhMYXN0UnVudGltZVVwZ3JhZGUAAB0DBAAEVQEgU3RvcmVzIHRoZSBgc3BlY192ZXJzaW9uYCBhbmQgYHNwZWNfbmFtZWAgb2Ygd2hlbiB0aGUgbGFzdCBydW50aW1lIHVwZ3JhZGUgaGFwcGVuZWQuAFRVcGdyYWRlZFRvVTMyUmVmQ291bnQBACAEAARNASBUcnVlIGlmIHdlIGhhdmUgdXBncmFkZWQgc28gdGhhdCBgdHlwZSBSZWZDb3VudGAgaXMgYHUzMmAuIEZhbHNlIChkZWZhdWx0KSBpZiBub3QuAGBVcGdyYWRlZFRvVHJpcGxlUmVmQ291bnQBACAEAAhdASBUcnVlIGlmIHdlIGhhdmUgdXBncmFkZWQgc28gdGhhdCBBY2NvdW50SW5mbyBjb250YWlucyB0aHJlZSB0eXBlcyBvZiBgUmVmQ291bnRgLiBGYWxzZUggKGRlZmF1bHQpIGlmIG5vdC4AOEV4ZWN1dGlvblBoYXNlAAANAwQABIggVGhlIGV4ZWN1dGlvbiBwaGFzZSBvZiB0aGUgYmxvY2suAERBdXRob3JpemVkVXBncmFkZQAAKQMEAAS4IGBTb21lYCBpZiBhIGNvZGUgdXBncmFkZSBoYXMgYmVlbiBhdXRob3JpemVkLgBgRXh0cmluc2ljV2VpZ2h0UmVjbGFpbWVkAQAoCAAAHKAgVGhlIHdlaWdodCByZWNsYWltZWQgZm9yIHRoZSBleHRyaW5zaWMuACEBIFRoaXMgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlIGV4dHJpbnNpYyBleGVjdXRpb24uIQEgTW9yZSBwcmVjaXNlbHkgdGhpcyBpbmZvcm1hdGlvbiBpcyByZW1vdmVkIGluIGBub3RlX2FwcGxpZWRfZXh0cmluc2ljYC4AcQEgTG9naWMgZG9pbmcgc29tZSBwb3N0IGRpc3BhdGNoIHdlaWdodCByZWR1Y3Rpb24gbXVzdCB1cGRhdGUgdGhpcyBzdG9yYWdlIHRvIGF2b2lkIGR1cGxpY2F0ZSwgcmVkdWN0aW9uLgABLQMAAVgAGDBCbG9ja1dlaWdodHM9A4kBBwDyBSoBAAsAIEqp0QECAIACAmXNHQABC8BWDe9FAQIAwAEBCwCY9z5dAQIA4AEBAAACZc0dAAELwN5fWboBAgBgAgELACBKqdEBAgCAAgEHAIhSanQCAKAAAmXNHQAAAAAE0CBCbG9jayAmIGV4dHJpbnNpY3Mgd2VpZ2h0czogYmFzZSB2YWx1ZXMgYW5kIGxpbWl0cy4ALEJsb2NrTGVuZ3RoSQMwAAA8AAAAUAAAAFAABKggVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgYmxvY2sgKGluIGJ5dGVzKS4AOEJsb2NrSGFzaENvdW50EBAAEAAABFUBIE1heGltdW0gbnVtYmVyIG9mIGJsb2NrIG51bWJlciB0byBibG9jayBoYXNoIG1hcHBpbmdzIHRvIGtlZXAgKG9sZGVzdCBwcnVuZWQgZmlyc3QpLgAgRGJXZWlnaHRRA0BAeH0BAAAAAADh9QUAAAAABAkBIFRoZSB3ZWlnaHQgb2YgcnVudGltZSBkYXRhYmFzZSBvcGVyYXRpb25zIHRoZSBydW50aW1lIGNhbiBpbnZva2UuABxWZXJzaW9uVQOpBDRwZW9wbGUtcm9jb2NvNHBlb3BsZS1yb2NvY28BAAAA8HgPAAAAAABU3XGNXMUyYtQBAAAABOcFIaDT0vgBAAAA173YonLKDWUCAAAA32rLaJkHYJsFAAAAN+OX/HyR9eQCAAAAQP461AH4lZoGAAAA0ryYl+7QjxUDAAAA94sni+U/RUwCAAAAqzwFcikf64sBAAAAvJ2JkE9bkj8BAAAAN8i7E1CpoqgEAAAA8/8U1atScFkDAAAAb/Uu6Fjmxb0BAAAAn/tQWqc41pwBAAAA0LrHvkprCSABAAAAkof7DgIbyFQBAAAA1VRhyVK9WHIBAAAAhDtvjOyAmMcBAAAA6pPj8W89aWIDAAAA+8V3uddH79YBAAAAvp+wyRqARs8BAAAAAQAAAAEEhCBHZXQgdGhlIGNoYWluJ3MgaW4tY29kZSB2ZXJzaW9uLgAoU1M1OFByZWZpeNkCCCoAFKggVGhlIGRlc2lnbmF0ZWQgU1M1OCBwcmVmaXggb2YgdGhpcyBjaGFpbi4AOQEgVGhpcyByZXBsYWNlcyB0aGUgInNzNThGb3JtYXQiIHByb3BlcnR5IGRlY2xhcmVkIGluIHRoZSBjaGFpbiBzcGVjLiBSZWFzb24gaXMxASB0aGF0IHRoZSBydW50aW1lIHNob3VsZCBrbm93IGFib3V0IHRoZSBwcmVmaXggaW4gb3JkZXIgdG8gbWFrZSB1c2Ugb2YgaXQgYXNwIGFuIGlkZW50aWZpZXIgb2YgdGhlIGNoYWluLgABZQMAHCxSdW50aW1lQ2FsbGkDBIwgVGhlIGFnZ3JlZ2F0ZWQgYFJ1bnRpbWVDYWxsYCB0eXBlLhROb25jZRAESQEgVGhpcyBzdG9yZXMgdGhlIG51bWJlciBvZiBwcmV2aW91cyB0cmFuc2FjdGlvbnMgYXNzb2NpYXRlZCB3aXRoIGEgc2VuZGVyIGFjY291bnQuEEhhc2g0BJggVGhlIG91dHB1dCBvZiB0aGUgYEhhc2hpbmdgIGZ1bmN0aW9uLhxIYXNoaW5nFQYEIQEgVGhlIGhhc2hpbmcgc3lzdGVtIChhbGdvcml0aG0pIGJlaW5nIHVzZWQgaW4gdGhlIHJ1bnRpbWUgKGUuZy4gQmxha2UyKS4kQWNjb3VudElkAATIIFRoZSB1c2VyIGFjY291bnQgaWRlbnRpZmllciB0eXBlIGZvciB0aGUgcnVudGltZS4UQmxvY2sZBghhASBUaGUgQmxvY2sgdHlwZSB1c2VkIGJ5IHRoZSBydW50aW1lLiBUaGlzIGlzIHVzZWQgYnkgYGNvbnN0cnVjdF9ydW50aW1lYCB0byByZXRyaWV2ZSB0aGXMIGV4dHJpbnNpY3Mgb3Igb3RoZXIgYmxvY2sgc3BlY2lmaWMgZGF0YSBhcyBuZWVkZWQuLEFjY291bnREYXRhFAhhASBEYXRhIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCBhbiBhY2NvdW50IChvdGhlciB0aGFuIG5vbmNlL3RyYW5zYWN0aW9uIGNvdW50ZXIsIHdoaWNoIHRoaXNkIHBhbGxldCBkb2VzIHJlZ2FyZGxlc3MpLgAAAAA8UGFyYWNoYWluU3lzdGVtATxQYXJhY2hhaW5TeXN0ZW1gRFVuaW5jbHVkZWRTZWdtZW50AQCdBgQAGEkBIExhdGVzdCBpbmNsdWRlZCBibG9jayBkZXNjZW5kYW50cyB0aGUgcnVudGltZSBhY2NlcHRlZC4gSW4gb3RoZXIgd29yZHMsIHRoZXNlIGFyZWEBIGFuY2VzdG9ycyBvZiB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBibG9jayB3aGljaCBoYXZlIG5vdCBiZWVuIGluY2x1ZGVkIGluIHRoZSBvYnNlcnZlZEwgcmVsYXktY2hhaW4gc3RhdGUuAHUBIFRoZSBzZWdtZW50IGxlbmd0aCBpcyBsaW1pdGVkIGJ5IHRoZSBjYXBhY2l0eSByZXR1cm5lZCBmcm9tIHRoZSBbYENvbnNlbnN1c0hvb2tgXSBjb25maWd1cmVkPCBpbiB0aGUgcGFsbGV0LgBsQWdncmVnYXRlZFVuaW5jbHVkZWRTZWdtZW50AADFBgQADGkBIFN0b3JhZ2UgZmllbGQgdGhhdCBrZWVwcyB0cmFjayBvZiBiYW5kd2lkdGggdXNlZCBieSB0aGUgdW5pbmNsdWRlZCBzZWdtZW50IGFsb25nIHdpdGggdGhlLQEgbGF0ZXN0IEhSTVAgd2F0ZXJtYXJrLiBVc2VkIGZvciBsaW1pdGluZyB0aGUgYWNjZXB0YW5jZSBvZiBuZXcgYmxvY2tzIHdpdGiQIHJlc3BlY3QgdG8gcmVsYXkgY2hhaW4gY29uc3RyYWludHMuAFRQZW5kaW5nVmFsaWRhdGlvbkNvZGUBADgEABhZASBJbiBjYXNlIG9mIGEgc2NoZWR1bGVkIHVwZ3JhZGUsIHRoaXMgc3RvcmFnZSBmaWVsZCBjb250YWlucyB0aGUgdmFsaWRhdGlvbiBjb2RlIHRvIGJlJCBhcHBsaWVkLgA9ASBBcyBzb29uIGFzIHRoZSByZWxheSBjaGFpbiBnaXZlcyB1cyB0aGUgZ28tYWhlYWQgc2lnbmFsLCB3ZSB3aWxsIG92ZXJ3cml0ZSB0aGVxASBbYDpjb2RlYF1bc3BfY29yZTo6c3RvcmFnZTo6d2VsbF9rbm93bl9rZXlzOjpDT0RFXSB3aGljaCB3aWxsIHJlc3VsdCB0aGUgbmV4dCBibG9jayBwcm9jZXNzCQEgd2l0aCB0aGUgbmV3IHZhbGlkYXRpb24gY29kZS4gVGhpcyBjb25jbHVkZXMgdGhlIHVwZ3JhZGUgcHJvY2Vzcy4ARE5ld1ZhbGlkYXRpb25Db2RlAAA4BAAUXQEgVmFsaWRhdGlvbiBjb2RlIHRoYXQgaXMgc2V0IGJ5IHRoZSBwYXJhY2hhaW4gYW5kIGlzIHRvIGJlIGNvbW11bmljYXRlZCB0byBjb2xsYXRvciBhbmR4IGNvbnNlcXVlbnRseSB0aGUgcmVsYXktY2hhaW4uAGUBIFRoaXMgd2lsbCBiZSBjbGVhcmVkIGluIGBvbl9pbml0aWFsaXplYCBvZiBlYWNoIG5ldyBibG9jayBpZiBubyBvdGhlciBwYWxsZXQgYWxyZWFkeSBzZXQsIHRoZSB2YWx1ZS4AOFZhbGlkYXRpb25EYXRhAAB1AwQADNAgVGhlIFtgUGVyc2lzdGVkVmFsaWRhdGlvbkRhdGFgXSBzZXQgZm9yIHRoaXMgYmxvY2suLQEgVGhpcyB2YWx1ZSBpcyBleHBlY3RlZCB0byBiZSBzZXQgb25seSBvbmNlIHBlciBibG9jayBhbmQgaXQncyBuZXZlciBzdG9yZWQ0IGluIHRoZSB0cmllLgBQRGlkU2V0VmFsaWRhdGlvbkNvZGUBACAEAATgIFdlcmUgdGhlIHZhbGlkYXRpb24gZGF0YSBzZXQgdG8gbm90aWZ5IHRoZSByZWxheSBjaGFpbj8AZExhc3RSZWxheUNoYWluQmxvY2tOdW1iZXIBABAQAAAAAAwdASBUaGUgcmVsYXkgY2hhaW4gYmxvY2sgbnVtYmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGFzdCBwYXJhY2hhaW4gYmxvY2suAIggVGhpcyBpcyB1cGRhdGVkIGluIGBvbl9maW5hbGl6ZWAuAGBVcGdyYWRlUmVzdHJpY3Rpb25TaWduYWwBAMkGBAAcdQEgQW4gb3B0aW9uIHdoaWNoIGluZGljYXRlcyBpZiB0aGUgcmVsYXktY2hhaW4gcmVzdHJpY3RzIHNpZ25hbGxpbmcgYSB2YWxpZGF0aW9uIGNvZGUgdXBncmFkZS5hASBJbiBvdGhlciB3b3JkcywgaWYgdGhpcyBpcyBgU29tZWAgYW5kIFtgTmV3VmFsaWRhdGlvbkNvZGVgXSBpcyBgU29tZWAgdGhlbiB0aGUgcHJvZHVjZWRsIGNhbmRpZGF0ZSB3aWxsIGJlIGludmFsaWQuAHEBIFRoaXMgc3RvcmFnZSBpdGVtIGlzIGEgbWlycm9yIG9mIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGZvciB0aGUgY3VycmVudCBwYXJhY2hhaW4gZnJvbSB0aGVtASByZWxheS1jaGFpbi4gVGhpcyB2YWx1ZSBpcyBlcGhlbWVyYWwgd2hpY2ggbWVhbnMgaXQgZG9lc24ndCBoaXQgdGhlIHN0b3JhZ2UuIFRoaXMgdmFsdWUgaXNgIHNldCBhZnRlciB0aGUgaW5oZXJlbnQuADhVcGdyYWRlR29BaGVhZAEAvQYEABTcIE9wdGlvbmFsIHVwZ3JhZGUgZ28tYWhlYWQgc2lnbmFsIGZyb20gdGhlIHJlbGF5LWNoYWluLgBxASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBhIG1pcnJvciBvZiB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgcGFyYWNoYWluIGZyb20gdGhlbQEgcmVsYXktY2hhaW4uIFRoaXMgdmFsdWUgaXMgZXBoZW1lcmFsIHdoaWNoIG1lYW5zIGl0IGRvZXNuJ3QgaGl0IHRoZSBzdG9yYWdlLiBUaGlzIHZhbHVlIGlzYCBzZXQgYWZ0ZXIgdGhlIGluaGVyZW50LgA8UmVsYXlTdGF0ZVByb29mAAB9AwQAGMQgVGhlIHN0YXRlIHByb29mIGZvciB0aGUgbGFzdCByZWxheSBwYXJlbnQgYmxvY2suAG0BIFRoaXMgZmllbGQgaXMgbWVhbnQgdG8gYmUgdXBkYXRlZCBlYWNoIGJsb2NrIHdpdGggdGhlIHZhbGlkYXRpb24gZGF0YSBpbmhlcmVudC4gVGhlcmVmb3JlLE0BIGJlZm9yZSBwcm9jZXNzaW5nIG9mIHRoZSBpbmhlcmVudCwgZS5nLiBpbiBgb25faW5pdGlhbGl6ZWAgdGhpcyBkYXRhIG1heSBiZSBzdGFsZS4ArCBUaGlzIGRhdGEgaXMgYWxzbyBhYnNlbnQgZnJvbSB0aGUgZ2VuZXNpcy4AWFJlbGV2YW50TWVzc2FnaW5nU3RhdGUAANEGBAAcZQEgVGhlIHNuYXBzaG90IG9mIHNvbWUgc3RhdGUgcmVsYXRlZCB0byBtZXNzYWdpbmcgcmVsZXZhbnQgdG8gdGhlIGN1cnJlbnQgcGFyYWNoYWluIGFzIHBlckggdGhlIHJlbGF5IHBhcmVudC4AbQEgVGhpcyBmaWVsZCBpcyBtZWFudCB0byBiZSB1cGRhdGVkIGVhY2ggYmxvY2sgd2l0aCB0aGUgdmFsaWRhdGlvbiBkYXRhIGluaGVyZW50LiBUaGVyZWZvcmUsTQEgYmVmb3JlIHByb2Nlc3Npbmcgb2YgdGhlIGluaGVyZW50LCBlLmcuIGluIGBvbl9pbml0aWFsaXplYCB0aGlzIGRhdGEgbWF5IGJlIHN0YWxlLgCsIFRoaXMgZGF0YSBpcyBhbHNvIGFic2VudCBmcm9tIHRoZSBnZW5lc2lzLgBESG9zdENvbmZpZ3VyYXRpb24AAOUGBAAYKQEgVGhlIHBhcmFjaGFpbiBob3N0IGNvbmZpZ3VyYXRpb24gdGhhdCB3YXMgb2J0YWluZWQgZnJvbSB0aGUgcmVsYXkgcGFyZW50LgBtASBUaGlzIGZpZWxkIGlzIG1lYW50IHRvIGJlIHVwZGF0ZWQgZWFjaCBibG9jayB3aXRoIHRoZSB2YWxpZGF0aW9uIGRhdGEgaW5oZXJlbnQuIFRoZXJlZm9yZSxNASBiZWZvcmUgcHJvY2Vzc2luZyBvZiB0aGUgaW5oZXJlbnQsIGUuZy4gaW4gYG9uX2luaXRpYWxpemVgIHRoaXMgZGF0YSBtYXkgYmUgc3RhbGUuAKwgVGhpcyBkYXRhIGlzIGFsc28gYWJzZW50IGZyb20gdGhlIGdlbmVzaXMuADhMYXN0RG1xTXFjSGVhZAEA7QaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ9CBUaGUgbGFzdCBkb3dud2FyZCBtZXNzYWdlIHF1ZXVlIGNoYWluIGhlYWQgd2UgaGF2ZSBvYnNlcnZlZC4AZQEgVGhpcyB2YWx1ZSBpcyBsb2FkZWQgYmVmb3JlIGFuZCBzYXZlZCBhZnRlciBwcm9jZXNzaW5nIGluYm91bmQgZG93bndhcmQgbWVzc2FnZXMgY2FycmllZGAgYnkgdGhlIHN5c3RlbSBpbmhlcmVudC4AQExhc3RIcm1wTXFjSGVhZHMBAPEGBAAQSQEgVGhlIG1lc3NhZ2UgcXVldWUgY2hhaW4gaGVhZHMgd2UgaGF2ZSBvYnNlcnZlZCBwZXIgZWFjaCBjaGFubmVsIGluY29taW5nIGNoYW5uZWwuAGUBIFRoaXMgdmFsdWUgaXMgbG9hZGVkIGJlZm9yZSBhbmQgc2F2ZWQgYWZ0ZXIgcHJvY2Vzc2luZyBpbmJvdW5kIGRvd253YXJkIG1lc3NhZ2VzIGNhcnJpZWRgIGJ5IHRoZSBzeXN0ZW0gaW5oZXJlbnQuAGRQcm9jZXNzZWREb3dud2FyZE1lc3NhZ2VzAQAQEAAAAAAMyCBOdW1iZXIgb2YgZG93bndhcmQgbWVzc2FnZXMgcHJvY2Vzc2VkIGluIGEgYmxvY2suAOwgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrLgA0SHJtcFdhdGVybWFyawEAEBAAAAAADKAgSFJNUCB3YXRlcm1hcmsgdGhhdCB3YXMgc2V0IGluIGEgYmxvY2suAOwgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrLgBQSHJtcE91dGJvdW5kTWVzc2FnZXMBAP0GBAAMpCBIUk1QIG1lc3NhZ2VzIHRoYXQgd2VyZSBzZW50IGluIGEgYmxvY2suAOwgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrLgA4VXB3YXJkTWVzc2FnZXMBADkDBAAMrCBVcHdhcmQgbWVzc2FnZXMgdGhhdCB3ZXJlIHNlbnQgaW4gYSBibG9jay4A7CBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25faW5pdGlhbGl6ZWAgb2YgZWFjaCBuZXcgYmxvY2suAFRQZW5kaW5nVXB3YXJkTWVzc2FnZXMBADkDBAAEMQEgVXB3YXJkIG1lc3NhZ2VzIHRoYXQgYXJlIHN0aWxsIHBlbmRpbmcgYW5kIG5vdCB5ZXQgc2VuZCB0byB0aGUgcmVsYXkgY2hhaW4uAFxVcHdhcmREZWxpdmVyeUZlZUZhY3RvcgEARQFAAABkp7O24A0AAAAAAAAAAATkIFRoZSBmYWN0b3IgdG8gbXVsdGlwbHkgdGhlIGJhc2UgZGVsaXZlcnkgZmVlIGJ5IGZvciBVTVAuAIRBbm5vdW5jZWRIcm1wTWVzc2FnZXNQZXJDYW5kaWRhdGUBABAQAAAAAAhlASBUaGUgbnVtYmVyIG9mIEhSTVAgbWVzc2FnZXMgd2Ugb2JzZXJ2ZWQgaW4gYG9uX2luaXRpYWxpemVgIGFuZCB0aHVzIHVzZWQgdGhhdCBudW1iZXIgZm9y8CBhbm5vdW5jaW5nIHRoZSB3ZWlnaHQgb2YgYG9uX2luaXRpYWxpemVgIGFuZCBgb25fZmluYWxpemVgLgBoUmVzZXJ2ZWRYY21wV2VpZ2h0T3ZlcnJpZGUAACgEAAhdASBUaGUgd2VpZ2h0IHdlIHJlc2VydmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYmxvY2sgZm9yIHByb2Nlc3NpbmcgWENNUCBtZXNzYWdlcy4gVGhpc7ggb3ZlcnJpZGVzIHRoZSBhbW91bnQgc2V0IGluIHRoZSBDb25maWcgdHJhaXQuAGRSZXNlcnZlZERtcFdlaWdodE92ZXJyaWRlAAAoBAAIWQEgVGhlIHdlaWdodCB3ZSByZXNlcnZlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJsb2NrIGZvciBwcm9jZXNzaW5nIERNUCBtZXNzYWdlcy4gVGhpc7ggb3ZlcnJpZGVzIHRoZSBhbW91bnQgc2V0IGluIHRoZSBDb25maWcgdHJhaXQuAGBDdXN0b21WYWxpZGF0aW9uSGVhZERhdGEAADgEAAwpASBBIGN1c3RvbSBoZWFkIGRhdGEgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgYXMgcmVzdWx0IG9mIGB2YWxpZGF0ZV9ibG9ja2AuABEBIFNlZSBgUGFsbGV0OjpzZXRfY3VzdG9tX3ZhbGlkYXRpb25faGVhZF9kYXRhYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4AAW0DAAGAAAQoU2VsZlBhcmFJZPAQ7AMAAAS4IFJldHVybnMgdGhlIHBhcmFjaGFpbiBJRCB3ZSBhcmUgcnVubmluZyB3aXRoLgABBQcAAAABAAAkVGltZXN0YW1wASRUaW1lc3RhbXAIDE5vdwEAMCAAAAAAAAAAAASgIFRoZSBjdXJyZW50IHRpbWUgZm9yIHRoZSBjdXJyZW50IGJsb2NrLgAkRGlkVXBkYXRlAQAgBAAQ2CBXaGV0aGVyIHRoZSB0aW1lc3RhbXAgaGFzIGJlZW4gdXBkYXRlZCBpbiB0aGlzIGJsb2NrLgBVASBUaGlzIHZhbHVlIGlzIHVwZGF0ZWQgdG8gYHRydWVgIHVwb24gc3VjY2Vzc2Z1bCBzdWJtaXNzaW9uIG9mIGEgdGltZXN0YW1wIGJ5IGEgbm9kZS5FASBJdCBpcyB0aGVuIGNoZWNrZWQgYXQgdGhlIGVuZCBvZiBlYWNoIGJsb2NrIGV4ZWN1dGlvbiBpbiB0aGUgYG9uX2ZpbmFsaXplYCBob29rLgABsQMAAAQ0TWluaW11bVBlcmlvZDAgAAAAAAAAAAAYjCBUaGUgbWluaW11bSBwZXJpb2QgYmV0d2VlbiBibG9ja3MuAE0BIEJlIGF3YXJlIHRoYXQgdGhpcyBpcyBkaWZmZXJlbnQgdG8gdGhlICpleHBlY3RlZCogcGVyaW9kIHRoYXQgdGhlIGJsb2NrIHByb2R1Y3Rpb25JASBhcHBhcmF0dXMgcHJvdmlkZXMuIFlvdXIgY2hvc2VuIGNvbnNlbnN1cyBzeXN0ZW0gd2lsbCBnZW5lcmFsbHkgd29yayB3aXRoIHRoaXMgdG9hASBkZXRlcm1pbmUgYSBzZW5zaWJsZSBibG9jayB0aW1lLiBGb3IgZXhhbXBsZSwgaW4gdGhlIEF1cmEgcGFsbGV0IGl0IHdpbGwgYmUgZG91YmxlIHRoaXNwIHBlcmlvZCBvbiBkZWZhdWx0IHNldHRpbmdzLgAABBhNb21lbnQwBJggVHlwZSB1c2VkIGZvciBleHByZXNzaW5nIGEgdGltZXN0YW1wLgACAAA0UGFyYWNoYWluSW5mbwE0UGFyYWNoYWluSW5mbwQsUGFyYWNoYWluSWQBAPAQZAAAAAAAAbUDAAAAAAAAAwAANFdlaWdodFJlY2xhaW0AAAAAAAAABAiBASBQYWxsZXQgdG8gdXNlIGFsb25nc2lkZSB0aGUgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIFtgU3RvcmFnZVdlaWdodFJlY2xhaW1gXSwgdGhlIHBhbGxldCBwcm92aWRlc4wgd2VpZ2h0IGluZm9ybWF0aW9uIGFuZCBiZW5jaG1hcmtzLgAgQmFsYW5jZXMBIEJhbGFuY2VzHDRUb3RhbElzc3VhbmNlAQAYQAAAAAAAAAAAAAAAAAAAAAAEmCBUaGUgdG90YWwgdW5pdHMgaXNzdWVkIGluIHRoZSBzeXN0ZW0uAEBJbmFjdGl2ZUlzc3VhbmNlAQAYQAAAAAAAAAAAAAAAAAAAAAAECQEgVGhlIHRvdGFsIHVuaXRzIG9mIG91dHN0YW5kaW5nIGRlYWN0aXZhdGVkIGJhbGFuY2UgaW4gdGhlIHN5c3RlbS4AHEFjY291bnQBAQQCABQBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBgCQEgVGhlIEJhbGFuY2VzIHBhbGxldCBleGFtcGxlIG9mIHN0b3JpbmcgdGhlIGJhbGFuY2Ugb2YgYW4gYWNjb3VudC4AKCAjIEV4YW1wbGUANCBgYGBub2NvbXBpbGWwICBpbXBsIHBhbGxldF9iYWxhbmNlczo6Q29uZmlnIGZvciBSdW50aW1lIHsZAiAgICB0eXBlIEFjY291bnRTdG9yZSA9IFN0b3JhZ2VNYXBTaGltPFNlbGY6OkFjY291bnQ8UnVudGltZT4sIGZyYW1lX3N5c3RlbTo6UHJvdmlkZXI8UnVudGltZT4sIEFjY291bnRJZCwgU2VsZjo6QWNjb3VudERhdGE8QmFsYW5jZT4+DCAgfRAgYGBgABUBIFlvdSBjYW4gYWxzbyBzdG9yZSB0aGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50IGluIHRoZSBgU3lzdGVtYCBwYWxsZXQuACggIyBFeGFtcGxlADQgYGBgbm9jb21waWxlsCAgaW1wbCBwYWxsZXRfYmFsYW5jZXM6OkNvbmZpZyBmb3IgUnVudGltZSB7dCAgIHR5cGUgQWNjb3VudFN0b3JlID0gU3lzdGVtDCAgfRAgYGBgAFEBIEJ1dCB0aGlzIGNvbWVzIHdpdGggdHJhZGVvZmZzLCBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlIHN5c3RlbSBwYWxsZXQgc3RvcmVzbQEgYGZyYW1lX3N5c3RlbWAgZGF0YSBhbG9uZ3NpZGUgdGhlIGFjY291bnQgZGF0YSBjb250cmFyeSB0byBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlKQEgYEJhbGFuY2VzYCBwYWxsZXQsIHdoaWNoIHVzZXMgYSBgU3RvcmFnZU1hcGAgdG8gc3RvcmUgYmFsYW5jZXMgZGF0YSBvbmx5LkEBIE5PVEU6IFRoaXMgaXMgb25seSB1c2VkIGluIHRoZSBjYXNlIHRoYXQgdGhpcyBwYWxsZXQgaXMgdXNlZCB0byBzdG9yZSBiYWxhbmNlcy4AFExvY2tzAQEEAgAJBwQAELggQW55IGxpcXVpZGl0eSBsb2NrcyBvbiBzb21lIGFjY291bnQgYmFsYW5jZXMuJQEgTk9URTogU2hvdWxkIG9ubHkgYmUgYWNjZXNzZWQgd2hlbiBzZXR0aW5nLCBjaGFuZ2luZyBhbmQgZnJlZWluZyBhIGxvY2suAK0BIFVzZSBvZiBsb2NrcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBmcmVlemVzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AAIFJlc2VydmVzAQEEAgAZBwQADKQgTmFtZWQgcmVzZXJ2ZXMgb24gc29tZSBhY2NvdW50IGJhbGFuY2VzLgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAUSG9sZHMBAQQCACUHBAAEbCBIb2xkcyBvbiBhY2NvdW50IGJhbGFuY2VzLgAcRnJlZXplcwEBBAIAMQcEAASIIEZyZWV6ZSBsb2NrcyBvbiBhY2NvdW50IGJhbGFuY2VzLgABuQMAAYgAEEhFeGlzdGVudGlhbERlcG9zaXQYQNXcMgAAAAAAAAAAAAAAAAAgQQEgVGhlIG1pbmltdW0gYW1vdW50IHJlcXVpcmVkIHRvIGtlZXAgYW4gYWNjb3VudCBvcGVuLiBNVVNUIEJFIEdSRUFURVIgVEhBTiBaRVJPIQBZASBJZiB5b3UgKnJlYWxseSogbmVlZCBpdCB0byBiZSB6ZXJvLCB5b3UgY2FuIGVuYWJsZSB0aGUgZmVhdHVyZSBgaW5zZWN1cmVfemVyb19lZGAgZm9yYQEgdGhpcyBwYWxsZXQuIEhvd2V2ZXIsIHlvdSBkbyBzbyBhdCB5b3VyIG93biByaXNrOiB0aGlzIHdpbGwgb3BlbiB1cCBhIG1ham9yIERvUyB2ZWN0b3IuWQEgSW4gY2FzZSB5b3UgaGF2ZSBtdWx0aXBsZSBzb3VyY2VzIG9mIHByb3ZpZGVyIHJlZmVyZW5jZXMsIHlvdSBtYXkgYWxzbyBnZXQgdW5leHBlY3RlZIwgYmVoYXZpb3VyIGlmIHlvdSBzZXQgdGhpcyB0byB6ZXJvLgDwIEJvdHRvbSBsaW5lOiBEbyB5b3Vyc2VsZiBhIGZhdm91ciBhbmQgbWFrZSBpdCBhdCBsZWFzdCBvbmUhACBNYXhMb2NrcxAQMgAAABD0IFRoZSBtYXhpbXVtIG51bWJlciBvZiBsb2NrcyB0aGF0IHNob3VsZCBleGlzdCBvbiBhbiBhY2NvdW50LtwgTm90IHN0cmljdGx5IGVuZm9yY2VkLCBidXQgdXNlZCBmb3Igd2VpZ2h0IGVzdGltYXRpb24uAK0BIFVzZSBvZiBsb2NrcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBmcmVlemVzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AALE1heFJlc2VydmVzEBAyAAAADA0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBuYW1lZCByZXNlcnZlcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50LgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAoTWF4RnJlZXplcxAQAAAAAARhASBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5kaXZpZHVhbCBmcmVlemUgbG9ja3MgdGhhdCBjYW4gZXhpc3Qgb24gYW4gYWNjb3VudCBhdCBhbnkgdGltZS4AAT0HABBEUnVudGltZUhvbGRSZWFzb24lAQR0IFRoZSBvdmVyYXJjaGluZyBob2xkIHJlYXNvbi4cQmFsYW5jZRgEbCBUaGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50LkRSZXNlcnZlSWRlbnRpZmllcpUBDGggVGhlIElEIHR5cGUgZm9yIHJlc2VydmVzLgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYEBGcmVlemVJZGVudGlmaWVyoQIEZCBUaGUgSUQgdHlwZSBmb3IgZnJlZXplcy4ACgAASFRyYW5zYWN0aW9uUGF5bWVudAFIVHJhbnNhY3Rpb25QYXltZW50CEROZXh0RmVlTXVsdGlwbGllcgEARQFAAABkp7O24A0AAAAAAAAAAAAAOFN0b3JhZ2VWZXJzaW9uAQBBBwQAAAAAAZAABGBPcGVyYXRpb25hbEZlZU11bHRpcGxpZXIIBAVUWQEgQSBmZWUgbXVsdGlwbGllciBmb3IgYE9wZXJhdGlvbmFsYCBleHRyaW5zaWNzIHRvIGNvbXB1dGUgInZpcnR1YWwgdGlwIiB0byBib29zdCB0aGVpciwgYHByaW9yaXR5YABRASBUaGlzIHZhbHVlIGlzIG11bHRpcGxpZWQgYnkgdGhlIGBmaW5hbF9mZWVgIHRvIG9idGFpbiBhICJ2aXJ0dWFsIHRpcCIgdGhhdCBpcyBsYXRlcvQgYWRkZWQgdG8gYSB0aXAgY29tcG9uZW50IGluIHJlZ3VsYXIgYHByaW9yaXR5YCBjYWxjdWxhdGlvbnMuTQEgSXQgbWVhbnMgdGhhdCBhIGBOb3JtYWxgIHRyYW5zYWN0aW9uIGNhbiBmcm9udC1ydW4gYSBzaW1pbGFybHktc2l6ZWQgYE9wZXJhdGlvbmFsYEEBIGV4dHJpbnNpYyAod2l0aCBubyB0aXApLCBieSBpbmNsdWRpbmcgYSB0aXAgdmFsdWUgZ3JlYXRlciB0aGFuIHRoZSB2aXJ0dWFsIHRpcC4APCBgYGBydXN0LGlnbm9yZUAgLy8gRm9yIGBOb3JtYWxgjCBsZXQgcHJpb3JpdHkgPSBwcmlvcml0eV9jYWxjKHRpcCk7AFQgLy8gRm9yIGBPcGVyYXRpb25hbGARASBsZXQgdmlydHVhbF90aXAgPSAoaW5jbHVzaW9uX2ZlZSArIHRpcCkgKiBPcGVyYXRpb25hbEZlZU11bHRpcGxpZXI7xCBsZXQgcHJpb3JpdHkgPSBwcmlvcml0eV9jYWxjKHRpcCArIHZpcnR1YWxfdGlwKTsQIGBgYABRASBOb3RlIHRoYXQgc2luY2Ugd2UgdXNlIGBmaW5hbF9mZWVgIHRoZSBtdWx0aXBsaWVyIGFwcGxpZXMgYWxzbyB0byB0aGUgcmVndWxhciBgdGlwYF0BIHNlbnQgd2l0aCB0aGUgdHJhbnNhY3Rpb24uIFNvLCBub3Qgb25seSBkb2VzIHRoZSB0cmFuc2FjdGlvbiBnZXQgYSBwcmlvcml0eSBidW1wIGJhc2VkYQEgb24gdGhlIGBpbmNsdXNpb25fZmVlYCwgYnV0IHdlIGFsc28gYW1wbGlmeSB0aGUgaW1wYWN0IG9mIHRpcHMgYXBwbGllZCB0byBgT3BlcmF0aW9uYWxgOCB0cmFuc2FjdGlvbnMuAAAAAAsAAEhTa2lwRmVlbGVzc1BheW1lbnQAAAGUAAAAAAAMAABET3JpZ2luUmVzdHJpY3Rpb24BRE9yaWdpblJlc3RyaWN0aW9uBBhVc2FnZXMAAQQCGQFFBwQABIwgVGhlIGN1cnJlbnQgdXNhZ2UgZm9yIGVhY2ggZW50aXR5LgAByQMAARUBAAABSQcABEBSZXN0cmljdGVkRW50aXR5GQEkUQEgVGhlIHR5cGUgdGhhdCByZXByZXNlbnQgdGhlIGVudGl0aWVzIHRyYWNrZWQsIGl0cyBhbGxvd2FuY2UgYW5kIHRoZSBjb252ZXJzaW9uIGZyb22YIG9yaWdpbiBpcyBib3VuZGVkIGluIFtgUmVzdHJpY3Rpb25gXS4AHQEgVGhpcyBpcyB0aGUgY2Fub25pY2FsIG9yaWdpbiBmcm9tIHRoZSBwb2ludCBvZiB2aWV3IG9mIHVzYWdlIHRyYWNraW5nLowgRWFjaCBlbnRpdHkgaXMgdHJhY2tlZCBzZXBhcmF0ZWx5LgBJASBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIG9yaWdpbiBhcyBhIG11bHRpcGxlIG9yaWdpbiBjYW4gcmVwcmVzZW50IGEgc2luZ2xlIGVudGl0eS5hASBGb3IgZXhhbXBsZSwgaW1hZ2luZSBhIERBTyBvcmlnaW4gd2l0aCBhIHBlcmNlbnRhZ2Ugb2Ygdm90ZXJzLCB3ZSB3YW50IHRvIHRyYWNrIHRoZSBEQU+sIGVudGl0eSByZWdhcmRsZXNzIG9mIHRoZSB2b3RlciBwZXJjZW50YWdlLgANAAAYQXNzZXRzARhBc3NldHMUFEFzc2V0AAEEAqRNBwQABFQgRGV0YWlscyBvZiBhbiBhc3NldC4AHEFjY291bnQAAQgCAlUHWQcEAATkIFRoZSBob2xkaW5ncyBvZiBhIHNwZWNpZmljIGFjY291bnQgZm9yIGEgc3BlY2lmaWMgYXNzZXQuACRBcHByb3ZhbHMAAQwCAgJlB2kHBAAMWQEgQXBwcm92ZWQgYmFsYW5jZSB0cmFuc2ZlcnMuIEZpcnN0IGJhbGFuY2UgaXMgdGhlIGFtb3VudCBhcHByb3ZlZCBmb3IgdHJhbnNmZXIuIFNlY29uZOggaXMgdGhlIGFtb3VudCBvZiBgVDo6Q3VycmVuY3lgIHJlc2VydmVkIGZvciBzdG9yaW5nIHRoaXMuSQEgRmlyc3Qga2V5IGlzIHRoZSBhc3NldCBJRCwgc2Vjb25kIGtleSBpcyB0aGUgb3duZXIgYW5kIHRoaXJkIGtleSBpcyB0aGUgZGVsZWdhdGUuACBNZXRhZGF0YQEBBAKkbQdQAAAAAAAAAAAAAAAAAAAAAAAAAAAEWCBNZXRhZGF0YSBvZiBhbiBhc3NldC4ALE5leHRBc3NldElkAACkBAAkbQEgVGhlIGFzc2V0IElEIGVuZm9yY2VkIGZvciB0aGUgbmV4dCBhc3NldCBjcmVhdGlvbiwgaWYgYW55IHByZXNlbnQuIE90aGVyd2lzZSwgdGhpcyBzdG9yYWdlUCBpdGVtIGhhcyBubyBlZmZlY3QuAGUBIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3Igc2V0dGluZyB1cCBjb25zdHJhaW50cyBmb3IgSURzIG9mIHRoZSBuZXcgYXNzZXRzLiBGb3IgZXhhbXBsZSwgYnlpASBwcm92aWRpbmcgYW4gaW5pdGlhbCBbYE5leHRBc3NldElkYF0gYW5kIHVzaW5nIHRoZSBbYGNyYXRlOjpBdXRvSW5jQXNzZXRJZGBdIGNhbGxiYWNrLCBhbuggYXV0by1pbmNyZW1lbnQgbW9kZWwgY2FuIGJlIGFwcGxpZWQgdG8gYWxsIG5ldyBhc3NldCBJRHMuACEBIFRoZSBpbml0aWFsIG5leHQgYXNzZXQgSUQgY2FuIGJlIHNldCB1c2luZyB0aGUgW2BHZW5lc2lzQ29uZmlnYF0gb3IgdGhlIQEgW1NldE5leHRBc3NldElkXShgbWlncmF0aW9uOjpuZXh0X2Fzc2V0X2lkOjpTZXROZXh0QXNzZXRJZGApIG1pZ3JhdGlvbi4AAc0DAAEdAQAcQFJlbW92ZUl0ZW1zTGltaXQQEOgDAAAMUQEgTWF4IG51bWJlciBvZiBpdGVtcyB0byBkZXN0cm95IHBlciBgZGVzdHJveV9hY2NvdW50c2AgYW5kIGBkZXN0cm95X2FwcHJvdmFsc2AgY2FsbC4AOQEgTXVzdCBiZSBjb25maWd1cmVkIHRvIHJlc3VsdCBpbiBhIHdlaWdodCB0aGF0IG1ha2VzIGVhY2ggY2FsbCBmaXQgaW4gYSBibG9jay4AMEFzc2V0RGVwb3NpdBhAAOh2SBcAAAAAAAAAAAAAAAT4IFRoZSBiYXNpYyBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIGZvciBhbiBhc3NldC4ATEFzc2V0QWNjb3VudERlcG9zaXQYQPSpxCcAAAAAAAAAAAAAAAAIRQEgVGhlIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIGEgbm9uLXByb3ZpZGVyIGFzc2V0IGFjY291bnQgdG8gYmUwIG1haW50YWluZWQuAExNZXRhZGF0YURlcG9zaXRCYXNlGEC4HN8nAAAAAAAAAAAAAAAABFEBIFRoZSBiYXNpYyBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIHdoZW4gYWRkaW5nIG1ldGFkYXRhIHRvIHlvdXIgYXNzZXQuAFhNZXRhZGF0YURlcG9zaXRQZXJCeXRlGEA1ggAAAAAAAAAAAAAAAAAACFUBIFRoZSBhZGRpdGlvbmFsIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCBmb3IgdGhlIG51bWJlciBvZiBieXRlcyB5b3Ugc3RvcmUgaW4geW91ciggbWV0YWRhdGEuADxBcHByb3ZhbERlcG9zaXQYQNXcMgAAAAAAAAAAAAAAAAAEIQEgVGhlIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgd2hlbiBjcmVhdGluZyBhIG5ldyBhcHByb3ZhbC4ALFN0cmluZ0xpbWl0EBAyAAAABOAgVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgbmFtZSBvciBzeW1ib2wgc3RvcmVkIG9uLWNoYWluLgABdQcAEBxCYWxhbmNlGAScIFRoZSB1bml0cyBpbiB3aGljaCB3ZSByZWNvcmQgYmFsYW5jZXMuHEFzc2V0SWSkBIwgSWRlbnRpZmllciBmb3IgdGhlIGNsYXNzIG9mIGFzc2V0LkBBc3NldElkUGFyYW1ldGVypBxZASBXcmFwcGVyIGFyb3VuZCBgU2VsZjo6QXNzZXRJZGAgdG8gdXNlIGluIGRpc3BhdGNoYWJsZSBjYWxsIHNpZ25hdHVyZXMuIEFsbG93cyB0aGUgdXNlUQEgb2YgY29tcGFjdCBlbmNvZGluZyBpbiBpbnN0YW5jZXMgb2YgdGhlIHBhbGxldCwgd2hpY2ggd2lsbCBwcmV2ZW50IGJyZWFraW5nIGNoYW5nZXMFASByZXN1bHRpbmcgZnJvbSB0aGUgcmVtb3ZhbCBvZiBgSGFzQ29tcGFjdGAgZnJvbSBgU2VsZjo6QXNzZXRJZGAuAFkBIFRoaXMgdHlwZSBpbmNsdWRlcyB0aGUgYEZyb208U2VsZjo6QXNzZXRJZD5gIGJvdW5kLCBzaW5jZSB0aWdodGx5IGNvdXBsZWQgcGFsbGV0cyBtYXlFASB3YW50IHRvIGNvbnZlcnQgYW4gYEFzc2V0SWRgIGludG8gYSBwYXJhbWV0ZXIgZm9yIGNhbGxpbmcgZGlzcGF0Y2hhYmxlIGZ1bmN0aW9ucyggZGlyZWN0bHkuFEV4dHJhoQIE+CBBZGRpdGlvbmFsIGRhdGEgdG8gYmUgc3RvcmVkIHdpdGggYW4gYWNjb3VudCdzIGFzc2V0IGJhbGFuY2UuAA4AADBBc3NldHNIb2xkZXIBMEFzc2V0c0hvbGRlcggUSG9sZHMBAQgCAlUHJQcEAAQNASBBIG1hcCB0aGF0IHN0b3JlcyBob2xkcyBhcHBsaWVkIG9uIGFuIGFjY291bnQgZm9yIGEgZ2l2ZW4gQXNzZXRJZC4AOEJhbGFuY2VzT25Ib2xkAAEIAgJVBxgEAARpASBBIG1hcCB0aGF0IHN0b3JlcyB0aGUgY3VycmVudCB0b3RhbCBiYWxhbmNlIG9uIGhvbGQgZm9yIGV2ZXJ5IGFjY291bnQgb24gYSBnaXZlbiBBc3NldElkLgAAASEBAAABeQcABERSdW50aW1lSG9sZFJlYXNvbiUBBHwgVGhlIG92ZXJhcmNoaW5nIGZyZWV6ZSByZWFzb24uAA8AACRBc3NldFJhdGUBJEFzc2V0UmF0ZQRYQ29udmVyc2lvblJhdGVUb05hdGl2ZQABBAKkRQEEAAwdASBNYXBzIGFuIGFzc2V0IHRvIGl0cyBmaXhlZCBwb2ludCByZXByZXNlbnRhdGlvbiBpbiB0aGUgbmF0aXZlIGJhbGFuY2UuAE0BIEUuZy4gYG5hdGl2ZV9hbW91bnQgPSBhc3NldF9hbW91bnQgKiBDb252ZXJzaW9uUmF0ZVRvTmF0aXZlOjo8VD46OmdldChhc3NldF9raW5kKWAAAdEDAAFBAQAAAX0HAAQkQXNzZXRLaW5kpARFASBUaGUgdHlwZSBmb3IgYXNzZXQga2luZHMgZm9yIHdoaWNoIHRoZSBjb252ZXJzaW9uIHJhdGUgdG8gbmF0aXZlIGJhbGFuY2UgaXMgc2V0LgAQAAA4QXNzZXRUeFBheW1lbnQAAAFJAQAAAAAAEQAAKEF1dGhvcnNoaXABKEF1dGhvcnNoaXAEGEF1dGhvcgAAAAQABGQgQXV0aG9yIG9mIGN1cnJlbnQgYmxvY2suAAAAAAAAABQAAERDb2xsYXRvclNlbGVjdGlvbgFEQ29sbGF0b3JTZWxlY3Rpb24UNEludnVsbmVyYWJsZXMBAIEHBAAEEQEgVGhlIGludnVsbmVyYWJsZSwgcGVybWlzc2lvbmVkIGNvbGxhdG9ycy4gVGhpcyBsaXN0IG11c3QgYmUgc29ydGVkLgA0Q2FuZGlkYXRlTGlzdAEAhQcEABRpASBUaGUgKGNvbW11bml0eSwgbGltaXRlZCkgY29sbGF0aW9uIGNhbmRpZGF0ZXMuIGBDYW5kaWRhdGVzYCBhbmQgYEludnVsbmVyYWJsZXNgIHNob3VsZCBiZVAgbXV0dWFsbHkgZXhjbHVzaXZlLgB1ASBUaGlzIGxpc3QgaXMgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlciBieSBkZXBvc2l0IGFuZCB3aGVuIHRoZSBkZXBvc2l0cyBhcmUgZXF1YWwsIHRoZSBsZWFzdKAgcmVjZW50bHkgdXBkYXRlZCBpcyBjb25zaWRlcmVkIGdyZWF0ZXIuAERMYXN0QXV0aG9yZWRCbG9jawEBBAUAEBAAAAAABIQgTGFzdCBibG9jayBhdXRob3JlZCBieSBjb2xsYXRvci4ARERlc2lyZWRDYW5kaWRhdGVzAQAQEAAAAAAMeCBEZXNpcmVkIG51bWJlciBvZiBjYW5kaWRhdGVzLgB1ASBUaGlzIHNob3VsZCBpZGVhbGx5IGFsd2F5cyBiZSBsZXNzIHRoYW4gW2BDb25maWc6Ok1heENhbmRpZGF0ZXNgXSBmb3Igd2VpZ2h0cyB0byBiZSBjb3JyZWN0LgA0Q2FuZGlkYWN5Qm9uZAEAGEAAAAAAAAAAAAAAAAAAAAAADLggRml4ZWQgYW1vdW50IHRvIGRlcG9zaXQgdG8gYmVjb21lIGEgY29sbGF0b3IuAEEBIFdoZW4gYSBjb2xsYXRvciBjYWxscyBgbGVhdmVfaW50ZW50YCB0aGV5IGltbWVkaWF0ZWx5IHJlY2VpdmUgdGhlIGRlcG9zaXQgYmFjay4AAdUDAAFRAQAYFFBvdElkkQcgUG90U3Rha2UE9CBBY2NvdW50IElkZW50aWZpZXIgZnJvbSB3aGljaCB0aGUgaW50ZXJuYWwgUG90IGlzIGdlbmVyYXRlZC4ANE1heENhbmRpZGF0ZXMQEGQAAAAMyCBNYXhpbXVtIG51bWJlciBvZiBjYW5kaWRhdGVzIHRoYXQgd2Ugc2hvdWxkIGhhdmUuAMwgVGhpcyBkb2VzIG5vdCB0YWtlIGludG8gYWNjb3VudCB0aGUgaW52dWxuZXJhYmxlcy4AUE1pbkVsaWdpYmxlQ29sbGF0b3JzEBAEAAAADFUBIE1pbmltdW0gbnVtYmVyIGVsaWdpYmxlIGNvbGxhdG9ycy4gU2hvdWxkIGFsd2F5cyBiZSBncmVhdGVyIHRoYW4gemVyby4gVGhpcyBpbmNsdWRlc1EBIEludnVsbmVyYWJsZSBjb2xsYXRvcnMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZXJlIHdpbGwgYWx3YXlzIGJlIG9uZSBjb2xsYXRvciB3aG8gY2FuRCBwcm9kdWNlIGEgYmxvY2suAEBNYXhJbnZ1bG5lcmFibGVzEBAUAAAABIQgTWF4aW11bSBudW1iZXIgb2YgaW52dWxuZXJhYmxlcy4ANEtpY2tUaHJlc2hvbGQQEBAOAAAAACxwb3RfYWNjb3VudACAbW9kbFBvdFN0YWtlAAAAAAAAAAAAAAAAAAAAAAAAAAAEoCBHZXRzIHRoaXMgcGFsbGV0J3MgZGVyaXZlZCBwb3QgYWNjb3VudC4AAZUHAAQsVmFsaWRhdG9ySWQABHQgQSBzdGFibGUgSUQgZm9yIGEgdmFsaWRhdG9yLgAVAAAcU2Vzc2lvbgEcU2Vzc2lvbhwoVmFsaWRhdG9ycwEAVQEEAAR8IFRoZSBjdXJyZW50IHNldCBvZiB2YWxpZGF0b3JzLgAwQ3VycmVudEluZGV4AQAQEAAAAAAEeCBDdXJyZW50IGluZGV4IG9mIHRoZSBzZXNzaW9uLgA0UXVldWVkQ2hhbmdlZAEAIAQACDkBIFRydWUgaWYgdGhlIHVuZGVybHlpbmcgZWNvbm9taWMgaWRlbnRpdGllcyBvciB3ZWlnaHRpbmcgYmVoaW5kIHRoZSB2YWxpZGF0b3JzpCBoYXMgY2hhbmdlZCBpbiB0aGUgcXVldWVkIHZhbGlkYXRvciBzZXQuAChRdWV1ZWRLZXlzAQCZBwQACD0BIFRoZSBxdWV1ZWQga2V5cyBmb3IgdGhlIG5leHQgc2Vzc2lvbi4gV2hlbiB0aGUgbmV4dCBzZXNzaW9uIGJlZ2lucywgdGhlc2Uga2V5c+Agd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgdmFsaWRhdG9yJ3Mgc2Vzc2lvbiBrZXlzLgBIRGlzYWJsZWRWYWxpZGF0b3JzAQChBwQAFIAgSW5kaWNlcyBvZiBkaXNhYmxlZCB2YWxpZGF0b3JzLgA9ASBUaGUgdmVjIGlzIGFsd2F5cyBrZXB0IHNvcnRlZCBzbyB0aGF0IHdlIGNhbiBmaW5kIHdoZXRoZXIgYSBnaXZlbiB2YWxpZGF0b3IgaXM9ASBkaXNhYmxlZCB1c2luZyBiaW5hcnkgc2VhcmNoLiBJdCBnZXRzIGNsZWFyZWQgd2hlbiBgb25fc2Vzc2lvbl9lbmRpbmdgIHJldHVybnNkIGEgbmV3IHNldCBvZiBpZGVudGl0aWVzLgAgTmV4dEtleXMAAQQFAN0DBAAEnCBUaGUgbmV4dCBzZXNzaW9uIGtleXMgZm9yIGEgdmFsaWRhdG9yLgAgS2V5T3duZXIAAQQFsQcABAAECQEgVGhlIG93bmVyIG9mIGEga2V5LiBUaGUga2V5IGlzIHRoZSBgS2V5VHlwZUlkYCArIHRoZSBlbmNvZGVkIGtleS4AAdkDAAFZAQAAAbkHAAgsVmFsaWRhdG9ySWQABHQgQSBzdGFibGUgSUQgZm9yIGEgdmFsaWRhdG9yLhBLZXlz3QMEKCBUaGUga2V5cy4AFgAAEEF1cmEBEEF1cmEILEF1dGhvcml0aWVzAQC9BwQABGwgVGhlIGN1cnJlbnQgYXV0aG9yaXR5IHNldC4ALEN1cnJlbnRTbG90AQDFByAAAAAAAAAAAAyAIFRoZSBjdXJyZW50IHNsb3Qgb2YgdGhpcyBibG9jay4AlCBUaGlzIHdpbGwgYmUgc2V0IGluIGBvbl9pbml0aWFsaXplYC4AAAAEMFNsb3REdXJhdGlvbjAg4C4AAAAAAAAQDQEgVGhlIHNsb3QgZHVyYXRpb24gQXVyYSBzaG91bGQgcnVuIHdpdGgsIGV4cHJlc3NlZCBpbiBtaWxsaXNlY29uZHMuPQEgVGhlIGVmZmVjdGl2ZSB2YWx1ZSBvZiB0aGlzIHR5cGUgc2hvdWxkIG5vdCBjaGFuZ2Ugd2hpbGUgdGhlIGNoYWluIGlzIHJ1bm5pbmcuADUBIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBlaXRoZXIgdXNlIFtgTWluaW11bVBlcmlvZFRpbWVzVHdvYF0gb3IgYSBjb25zdC4AAAQsQXV0aG9yaXR5SWThAwSYIFRoZSBpZGVudGlmaWVyIHR5cGUgZm9yIGFuIGF1dGhvcml0eS4AFwAAHEF1cmFFeHQBHEF1cmFFeHQILEF1dGhvcml0aWVzAQC9BwQAFJQgU2VydmVzIGFzIGNhY2hlIGZvciB0aGUgYXV0aG9yaXRpZXMuAHEBIFRoZSBhdXRob3JpdGllcyBpbiBBdVJhIGFyZSBvdmVyd3JpdHRlbiBpbiBgb25faW5pdGlhbGl6ZWAgd2hlbiB3ZSBzd2l0Y2ggdG8gYSBuZXcgc2Vzc2lvbixdASBidXQgd2UgcmVxdWlyZSB0aGUgb2xkIGF1dGhvcml0aWVzIHRvIHZlcmlmeSB0aGUgc2VhbCB3aGVuIHZhbGlkYXRpbmcgYSBQb1YuIFRoaXMgd2lsbA0BIGFsd2F5cyBiZSB1cGRhdGVkIHRvIHRoZSBsYXRlc3QgQXVSYSBhdXRob3JpdGllcyBpbiBgb25fZmluYWxpemVgLgA0UmVsYXlTbG90SW5mbwAAyQcEABAJASBDdXJyZW50IHJlbGF5IGNoYWluIHNsb3QgcGFpcmVkIHdpdGggYSBudW1iZXIgb2YgYXV0aG9yZWQgYmxvY2tzLgBlASBUaGlzIGlzIHVwZGF0ZWQgaW4gW2BGaXhlZFZlbG9jaXR5Q29uc2Vuc3VzSG9vazo6b25fc3RhdGVfcHJvb2ZgXSB3aXRoIHRoZSBjdXJyZW50IHJlbGF53CBjaGFpbiBzbG90IGFzIHByb3ZpZGVkIGJ5IHRoZSByZWxheSBjaGFpbiBzdGF0ZSBwcm9vZi4AAAAAAAAAGAAAJFhjbXBRdWV1ZQEkWGNtcFF1ZXVlHFBJbmJvdW5kWGNtcFN1c3BlbmRlZAEAzQcEACANASBUaGUgc3VzcGVuZGVkIGluYm91bmQgWENNUCBjaGFubmVscy4gQWxsIG90aGVycyBhcmUgbm90IHN1c3BlbmRlZC4AcQEgVGhpcyBpcyBhIGBTdG9yYWdlVmFsdWVgIGluc3RlYWQgb2YgYSBgU3RvcmFnZU1hcGAgc2luY2Ugd2UgZXhwZWN0IG11bHRpcGxlIHJlYWRzIHBlciBibG9ja2kBIHRvIGRpZmZlcmVudCBrZXlzIHdpdGggYSBvbmUgYnl0ZSBwYXlsb2FkLiBUaGUgYWNjZXNzIHRvIGBCb3VuZGVkQlRyZWVTZXRgIHdpbGwgYmUgY2FjaGVkFQEgd2l0aGluIHRoZSBibG9jayBhbmQgdGhlcmVmb3JlIG9ubHkgaW5jbHVkZWQgb25jZSBpbiB0aGUgcHJvb2Ygc2l6ZS4AZQEgTk9URTogVGhlIFBvViBiZW5jaG1hcmtpbmcgY2Fubm90IGtub3cgdGhpcyBhbmQgd2lsbCBvdmVyLWVzdGltYXRlLCBidXQgdGhlIGFjdHVhbCBwcm9vZkQgd2lsbCBiZSBzbWFsbGVyLgBIT3V0Ym91bmRYY21wU3RhdHVzAQDZBwQAGF0BIFRoZSBub24tZW1wdHkgWENNUCBjaGFubmVscyBpbiBvcmRlciBvZiBiZWNvbWluZyBub24tZW1wdHksIGFuZCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0UQEgYW5kIGxhc3Qgb3V0Ym91bmQgbWVzc2FnZS4gSWYgdGhlIHR3byBpbmRpY2VzIGFyZSBlcXVhbCwgdGhlbiBpdCBpbmRpY2F0ZXMgYW4gZW1wdHlZASBxdWV1ZSBhbmQgdGhlcmUgbXVzdCBiZSBhIG5vbi1gT2tgIGBPdXRib3VuZFN0YXR1c2AuIFdlIGFzc3VtZSBxdWV1ZXMgZ3JvdyBubyBncmVhdGVyWQEgdGhhbiA2NTUzNSBpdGVtcy4gUXVldWUgaW5kaWNlcyBmb3Igbm9ybWFsIG1lc3NhZ2VzIGJlZ2luIGF0IG9uZTsgemVybyBpcyByZXNlcnZlZCBpbhEBIGNhc2Ugb2YgdGhlIG5lZWQgdG8gc2VuZCBhIGhpZ2gtcHJpb3JpdHkgc2lnbmFsIG1lc3NhZ2UgdGhpcyBibG9jay4JASBUaGUgYm9vbCBpcyB0cnVlIGlmIHRoZXJlIGlzIGEgc2lnbmFsIG1lc3NhZ2Ugd2FpdGluZyB0byBiZSBzZW50LgBQT3V0Ym91bmRYY21wTWVzc2FnZXMBAQgCBekH7QcEAAS8IFRoZSBtZXNzYWdlcyBvdXRib3VuZCBpbiBhIGdpdmVuIFhDTVAgY2hhbm5lbC4AOFNpZ25hbE1lc3NhZ2VzAQEEAvDtBwQABKAgQW55IHNpZ25hbCBtZXNzYWdlcyB3YWl0aW5nIHRvIGJlIHNlbnQuACxRdWV1ZUNvbmZpZwEA8QcwIAAAADAAAAAIAAAABBUBIFRoZSBjb25maWd1cmF0aW9uIHdoaWNoIGNvbnRyb2xzIHRoZSBkeW5hbWljcyBvZiB0aGUgb3V0Ym91bmQgcXVldWUuADhRdWV1ZVN1c3BlbmRlZAEAIAQABEEBIFdoZXRoZXIgb3Igbm90IHRoZSBYQ01QIHF1ZXVlIGlzIHN1c3BlbmRlZCBmcm9tIGV4ZWN1dGluZyBpbmNvbWluZyBYQ01zIG9yIG5vdC4ARERlbGl2ZXJ5RmVlRmFjdG9yAQEEBfBFAUAAAGSns7bgDQAAAAAAAAAABMQgVGhlIGZhY3RvciB0byBtdWx0aXBseSB0aGUgYmFzZSBkZWxpdmVyeSBmZWUgYnkuAAHlAwABXQEADExNYXhJbmJvdW5kU3VzcGVuZGVkEBDoAwAAFEkBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbmJvdW5kIFhDTVAgY2hhbm5lbHMgdGhhdCBjYW4gYmUgc3VzcGVuZGVkIHNpbXVsdGFuZW91c2x5LgBdASBBbnkgZnVydGhlciBjaGFubmVsIHN1c3BlbnNpb25zIHdpbGwgZmFpbCBhbmQgbWVzc2FnZXMgbWF5IGdldCBkcm9wcGVkIHdpdGhvdXQgZnVydGhlckUBIG5vdGljZS4gQ2hvb3NpbmcgYSBoaWdoIHZhbHVlICgxMDAwKSBpcyBva2F5OyB0aGUgdHJhZGUtb2ZmIHRoYXQgaXMgZGVzY3JpYmVkIGlu2CBbYEluYm91bmRYY21wU3VzcGVuZGVkYF0gc3RpbGwgYXBwbGllcyBhdCB0aGF0IHNjYWxlLgBkTWF4QWN0aXZlT3V0Ym91bmRDaGFubmVscxAQgAAAACBlASBNYXhpbWFsIG51bWJlciBvZiBvdXRib3VuZCBYQ01QIGNoYW5uZWxzIHRoYXQgY2FuIGhhdmUgbWVzc2FnZXMgcXVldWVkIGF0IHRoZSBzYW1lIHRpbWUuAFUBIElmIHRoaXMgaXMgcmVhY2hlZCwgdGhlbiBubyBmdXJ0aGVyIG1lc3NhZ2VzIGNhbiBiZSBzZW50IHRvIGNoYW5uZWxzIHRoYXQgZG8gbm90IHlldF0BIGhhdmUgYSBtZXNzYWdlIHF1ZXVlZC4gVGhpcyBzaG91bGQgYmUgc2V0IHRvIHRoZSBleHBlY3RlZCBtYXhpbXVtIG9mIG91dGJvdW5kIGNoYW5uZWxzYQEgd2hpY2ggaXMgZGV0ZXJtaW5lZCBieSBbYFNlbGY6OkNoYW5uZWxJbmZvYF0uIEl0IGlzIGltcG9ydGFudCB0byBzZXQgdGhpcyBsYXJnZSBlbm91Z2gsXQEgc2luY2Ugb3RoZXJ3aXNlIHRoZSBjb25nZXN0aW9uIGNvbnRyb2wgcHJvdG9jb2wgd2lsbCBub3Qgd29yayBhcyBpbnRlbmRlZCBhbmQgbWVzc2FnZXNRASBtYXkgYmUgZHJvcHBlZC4gVGhpcyB2YWx1ZSBpbmNyZWFzZXMgdGhlIFBvViBhbmQgc2hvdWxkIHRoZXJlZm9yZSBub3QgYmUgcGlja2VkIHRvb00BIGhpZ2guIEdvdmVybmFuY2UgbmVlZHMgdG8gcGF5IGF0dGVudGlvbiB0byBub3Qgb3BlbiBtb3JlIGNoYW5uZWxzIHRoYW4gdGhpcyB2YWx1ZS4ALE1heFBhZ2VTaXplEBAAnAEAFLggVGhlIG1heGltYWwgcGFnZSBzaXplIGZvciBIUk1QIG1lc3NhZ2UgcGFnZXMuAGEBIEEgbG93ZXIgbGltaXQgY2FuIGJlIHNldCBkeW5hbWljYWxseSwgYnV0IHRoaXMgaXMgdGhlIGhhcmQtbGltaXQgZm9yIHRoZSBQb1Ygd29yc3QgY2FzZVUBIGJlbmNobWFya2luZy4gVGhlIGxpbWl0IGZvciB0aGUgc2l6ZSBvZiBhIG1lc3NhZ2UgaXMgc2xpZ2h0bHkgYmVsb3cgdGhpcywgc2luY2Ugc29tZbggb3ZlcmhlYWQgaXMgaW5jdXJyZWQgZm9yIGVuY29kaW5nIHRoZSBmb3JtYXQuAAH1BwAAAB4AACxQb2xrYWRvdFhjbQEsUG9sa2Fkb3RYY208MFF1ZXJ5Q291bnRlcgEAMCAAAAAAAAAAAASIIFRoZSBsYXRlc3QgYXZhaWxhYmxlIHF1ZXJ5IGluZGV4LgAcUXVlcmllcwABBAIw+QcEAARUIFRoZSBvbmdvaW5nIHF1ZXJpZXMuAChBc3NldFRyYXBzAQEEBjQQEAAAAAAQaCBUaGUgZXhpc3RpbmcgYXNzZXQgdHJhcHMuAGEBIEtleSBpcyB0aGUgYmxha2UyIDI1NiBoYXNoIG9mIChvcmlnaW4sIHZlcnNpb25lZCBgQXNzZXRzYCkgcGFpci4gVmFsdWUgaXMgdGhlIG51bWJlciBvZh0BIHRpbWVzIHRoaXMgcGFpciBoYXMgYmVlbiB0cmFwcGVkICh1c3VhbGx5IGp1c3QgMSBpZiBpdCBleGlzdHMgYXQgYWxsKS4AOFNhZmVYY21WZXJzaW9uAAAQBAAIYQEgRGVmYXVsdCB2ZXJzaW9uIHRvIGVuY29kZSBYQ00gd2hlbiBsYXRlc3QgdmVyc2lvbiBvZiBkZXN0aW5hdGlvbiBpcyB1bmtub3duLiBJZiBgTm9uZWAsPQEgdGhlbiB0aGUgZGVzdGluYXRpb25zIHdob3NlIFhDTSB2ZXJzaW9uIGlzIHVua25vd24gYXJlIGNvbnNpZGVyZWQgdW5yZWFjaGFibGUuAEBTdXBwb3J0ZWRWZXJzaW9uAAEIBQINCBAEAATwIFRoZSBMYXRlc3QgdmVyc2lvbnMgdGhhdCB3ZSBrbm93IHZhcmlvdXMgbG9jYXRpb25zIHN1cHBvcnQuAEBWZXJzaW9uTm90aWZpZXJzAAEIBQINCDAEAAQFASBBbGwgbG9jYXRpb25zIHRoYXQgd2UgaGF2ZSByZXF1ZXN0ZWQgdmVyc2lvbiBub3RpZmljYXRpb25zIGZyb20uAFBWZXJzaW9uTm90aWZ5VGFyZ2V0cwABCAUCDQgRCAQACHEBIFRoZSB0YXJnZXQgbG9jYXRpb25zIHRoYXQgYXJlIHN1YnNjcmliZWQgdG8gb3VyIHZlcnNpb24gY2hhbmdlcywgYXMgd2VsbCBhcyB0aGUgbW9zdCByZWNlbnSUIG9mIG91ciB2ZXJzaW9ucyB3ZSBpbmZvcm1lZCB0aGVtIG9mLgBUVmVyc2lvbkRpc2NvdmVyeVF1ZXVlAQAVCAQADGUBIERlc3RpbmF0aW9ucyB3aG9zZSBsYXRlc3QgWENNIHZlcnNpb24gd2Ugd291bGQgbGlrZSB0byBrbm93LiBEdXBsaWNhdGVzIG5vdCBhbGxvd2VkLCBhbmRxASB0aGUgYHUzMmAgY291bnRlciBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgYSBzZW5kIHRvIHRoZSBkZXN0aW5hdGlvbiBoYXMgYmVlbiBhdHRlbXB0ZWQsjCB3aGljaCBpcyB1c2VkIGFzIGEgcHJpb3JpdGl6YXRpb24uAEBDdXJyZW50TWlncmF0aW9uAAAhCAQABJwgVGhlIGN1cnJlbnQgbWlncmF0aW9uJ3Mgc3RhZ2UsIGlmIGFueS4AVFJlbW90ZUxvY2tlZEZ1bmdpYmxlcwABDAUCAiUIKQgEAATwIEZ1bmdpYmxlIGFzc2V0cyB3aGljaCB3ZSBrbm93IGFyZSBsb2NrZWQgb24gYSByZW1vdGUgY2hhaW4uADxMb2NrZWRGdW5naWJsZXMAAQQCADkIBAAE4CBGdW5naWJsZSBhc3NldHMgd2hpY2ggd2Uga25vdyBhcmUgbG9ja2VkIG9uIHRoaXMgY2hhaW4uAFRYY21FeGVjdXRpb25TdXNwZW5kZWQBACAEAAS0IEdsb2JhbCBzdXNwZW5zaW9uIHN0YXRlIG9mIHRoZSBYQ00gZXhlY3V0b3IuADxTaG91bGRSZWNvcmRYY20BACAEABxZASBXaGV0aGVyIG9yIG5vdCBpbmNvbWluZyBYQ01zIChib3RoIGV4ZWN1dGVkIGxvY2FsbHkgYW5kIHJlY2VpdmVkKSBzaG91bGQgYmUgcmVjb3JkZWQuxCBPbmx5IG9uZSBYQ00gcHJvZ3JhbSB3aWxsIGJlIHJlY29yZGVkIGF0IGEgdGltZS4pASBUaGlzIGlzIG1lYW50IHRvIGJlIHVzZWQgaW4gcnVudGltZSBBUElzLCBhbmQgaXQncyBhZHZpc2VkIGl0IHN0YXlzIGZhbHNlDQEgZm9yIGFsbCBvdGhlciB1c2UgY2FzZXMsIHNvIGFzIHRvIG5vdCBkZWdyYWRlIHJlZ3VsYXIgcGVyZm9ybWFuY2UuAFkBIE9ubHkgcmVsZXZhbnQgaWYgdGhpcyBwYWxsZXQgaXMgYmVpbmcgdXNlZCBhcyB0aGUgW2B4Y21fZXhlY3V0b3I6OnRyYWl0czo6UmVjb3JkWGNtYF3IIGltcGxlbWVudGF0aW9uIGluIHRoZSBYQ00gZXhlY3V0b3IgY29uZmlndXJhdGlvbi4ALFJlY29yZGVkWGNtAABxAQQAGEkBIElmIFtgU2hvdWxkUmVjb3JkWGNtYF0gaXMgc2V0IHRvIHRydWUsIHRoZW4gdGhlIGxhc3QgWENNIHByb2dyYW0gZXhlY3V0ZWQgbG9jYWxseVQgd2lsbCBiZSBzdG9yZWQgaGVyZS4pASBSdW50aW1lIEFQSXMgY2FuIGZldGNoIHRoZSBYQ00gdGhhdCB3YXMgZXhlY3V0ZWQgYnkgYWNjZXNzaW5nIHRoaXMgdmFsdWUuAFkBIE9ubHkgcmVsZXZhbnQgaWYgdGhpcyBwYWxsZXQgaXMgYmVpbmcgdXNlZCBhcyB0aGUgW2B4Y21fZXhlY3V0b3I6OnRyYWl0czo6UmVjb3JkWGNtYF3IIGltcGxlbWVudGF0aW9uIGluIHRoZSBYQ00gZXhlY3V0b3IgY29uZmlndXJhdGlvbi4AREF1dGhvcml6ZWRBbGlhc2VzAAEEAoECRQgEAAxlASBNYXAgb2YgYXV0aG9yaXplZCBhbGlhc2VycyBvZiBsb2NhbCBvcmlnaW5zLiBFYWNoIGxvY2FsIGxvY2F0aW9uIGNhbiBhdXRob3JpemUgYSBsaXN0IG9mWQEgb3RoZXIgbG9jYXRpb25zIHRvIGFsaWFzIGludG8gaXQuIEVhY2ggYWxpYXNlciBpcyBvbmx5IHZhbGlkIHVudGlsIGl0cyBpbm5lciBgZXhwaXJ5YDggYmxvY2sgbnVtYmVyLgAB6QMIAQK5AVRoaXMgZXh0cmluc2ljIHVzZXMgYFdlaWdodExpbWl0OjpVbmxpbWl0ZWRgLCBwbGVhc2UgbWlncmF0ZSB0byBgbGltaXRlZF90ZWxlcG9ydF9hc3NldHNgIG9yIGB0cmFuc2Zlcl9hc3NldHNgAAIC2QFUaGlzIGV4dHJpbnNpYyB1c2VzIGBXZWlnaHRMaW1pdDo6VW5saW1pdGVkYCwgcGxlYXNlIG1pZ3JhdGUgdG8gYGxpbWl0ZWRfcmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHNgIG9yIGB0cmFuc2Zlcl9hc3NldHNgAAFhAQAQRFVuaXZlcnNhbExvY2F0aW9uqJgCCQBkCN53N8WcI4iQUzryWJaiwgYI2LOAuwECmss5J4EGPgCxDwSEIFRoaXMgY2hhaW4ncyBVbml2ZXJzYWwgTG9jYXRpb24uAFBBZHZlcnRpc2VkWGNtVmVyc2lvbhAQBQAAAAglASBUaGUgbGF0ZXN0IHN1cHBvcnRlZCB2ZXJzaW9uIHRoYXQgd2UgYWR2ZXJ0aXNlLiBHZW5lcmFsbHkganVzdCBzZXQgaXQgdG+EIGBwYWxsZXRfeGNtOjpDdXJyZW50WGNtVmVyc2lvbmAuAChNYXhMb2NrZXJzEBAIAAAABBkBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBsb2NhbCBYQ00gbG9ja3MgdGhhdCBhIHNpbmdsZSBhY2NvdW50IG1heSBoYXZlLgBYTWF4UmVtb3RlTG9ja0NvbnN1bWVycxAQAAAAAAT8IFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25zdW1lcnMgYSBzaW5nbGUgcmVtb3RlIGxvY2sgbWF5IGhhdmUuAAFdCAQYArxVc2UgYExvY2FsRXhlY3V0aW9uSW5jb21wbGV0ZVdpdGhFcnJvcmAgaW5zdGVhZAEYMjAuMC4wCCxSdW50aW1lQ2FsbGkDBGQgVGhlIHJ1bnRpbWUgYENhbGxgIHR5cGUucFJlbW90ZUxvY2tDb25zdW1lcklkZW50aWZpZXKhAgTEIFRoZSBJRCB0eXBlIGZvciBsb2NhbCBjb25zdW1lcnMgb2YgcmVtb3RlIGxvY2tzLgAfAAAoQ3VtdWx1c1hjbQABnQQAAYkCAAAAAAAgAAAwTWVzc2FnZVF1ZXVlATBNZXNzYWdlUXVldWUMMEJvb2tTdGF0ZUZvcgEBBAWRAmUIdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMwgVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBhbmQgbGFzdCAobm9uLWVtcHR5KSBwYWdlcy4ALFNlcnZpY2VIZWFkAACRAgQABLwgVGhlIG9yaWdpbiBhdCB3aGljaCB3ZSBzaG91bGQgYmVnaW4gc2VydmljaW5nLgAUUGFnZXMAAQgFBXEIdQgEAASIIFRoZSBtYXAgb2YgcGFnZSBpbmRpY2VzIHRvIHBhZ2VzLgABoQQAAY0CABAgSGVhcFNpemUQEACcAQAUPQEgVGhlIHNpemUgb2YgdGhlIHBhZ2U7IHRoaXMgaW1wbGllcyB0aGUgbWF4aW11bSBtZXNzYWdlIHNpemUgd2hpY2ggY2FuIGJlIHNlbnQuAFkBIEEgZ29vZCB2YWx1ZSBkZXBlbmRzIG9uIHRoZSBleHBlY3RlZCBtZXNzYWdlIHNpemVzLCB0aGVpciB3ZWlnaHRzLCB0aGUgd2VpZ2h0IHRoYXQgaXNdASBhdmFpbGFibGUgZm9yIHByb2Nlc3NpbmcgdGhlbSBhbmQgdGhlIG1heGltYWwgbmVlZGVkIG1lc3NhZ2Ugc2l6ZS4gVGhlIG1heGltYWwgbWVzc2FnZREBIHNpemUgaXMgc2xpZ2h0bHkgbG93ZXIgdGhhbiB0aGlzIGFzIGRlZmluZWQgYnkgW2BNYXhNZXNzYWdlTGVuT2ZgXS4AIE1heFN0YWxlEBAIAAAADF0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzdGFsZSBwYWdlcyAoaS5lLiBvZiBvdmVyd2VpZ2h0IG1lc3NhZ2VzKSBhbGxvd2VkIGJlZm9yZSBjdWxsaW5nUQEgY2FuIGhhcHBlbi4gT25jZSB0aGVyZSBhcmUgbW9yZSBzdGFsZSBwYWdlcyB0aGFuIHRoaXMsIHRoZW4gaGlzdG9yaWNhbCBwYWdlcyBtYXkgYmX8IGRyb3BwZWQsIGV2ZW4gaWYgdGhleSBjb250YWluIHVucHJvY2Vzc2VkIG92ZXJ3ZWlnaHQgbWVzc2FnZXMuADRTZXJ2aWNlV2VpZ2h0xQEsAQcAWED7ogIA4AAYQQEgVGhlIGFtb3VudCBvZiB3ZWlnaHQgKGlmIGFueSkgd2hpY2ggc2hvdWxkIGJlIHByb3ZpZGVkIHRvIHRoZSBtZXNzYWdlIHF1ZXVlIGZvcqggc2VydmljaW5nIGVucXVldWVkIGl0ZW1zIGBvbl9pbml0aWFsaXplYC4A/CBUaGlzIG1heSBiZSBsZWdpdGltYXRlbHkgYE5vbmVgIGluIHRoZSBjYXNlIHRoYXQgeW91IHdpbGwgY2FsbF0BIGBTZXJ2aWNlUXVldWVzOjpzZXJ2aWNlX3F1ZXVlc2AgbWFudWFsbHkgb3Igc2V0IFtgU2VsZjo6SWRsZU1heFNlcnZpY2VXZWlnaHRgXSB0byBoYXZlVCBpdCBydW4gaW4gYG9uX2lkbGVgLgBQSWRsZU1heFNlcnZpY2VXZWlnaHTFASwBBwBYQPuiAgDgABRdASBUaGUgbWF4aW11bSBhbW91bnQgb2Ygd2VpZ2h0IChpZiBhbnkpIHRvIGJlIHVzZWQgZnJvbSByZW1haW5pbmcgd2VpZ2h0IGBvbl9pZGxlYCB3aGljaEEBIHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgbWVzc2FnZSBxdWV1ZSBmb3Igc2VydmljaW5nIGVucXVldWVkIGl0ZW1zIGBvbl9pZGxlYC49ASBVc2VmdWwgZm9yIHBhcmFjaGFpbnMgdG8gcHJvY2VzcyBtZXNzYWdlcyBhdCB0aGUgc2FtZSBibG9jayB0aGV5IGFyZSByZWNlaXZlZC4AKQEgSWYgYE5vbmVgLCBpdCB3aWxsIG5vdCBjYWxsIGBTZXJ2aWNlUXVldWVzOjpzZXJ2aWNlX3F1ZXVlc2AgaW4gYG9uX2lkbGVgLgABfQgABBBTaXplEARUIFBhZ2UvaGVhcCBzaXplIHR5cGUuACIAABxVdGlsaXR5AAGlBAABmQIABExiYXRjaGVkX2NhbGxzX2xpbWl0EBCqKgAABKggVGhlIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgYmF0Y2hlZCBjYWxscy4AAYEIAAgsUnVudGltZUNhbGxpAwRsIFRoZSBvdmVyYXJjaGluZyBjYWxsIHR5cGUuNFBhbGxldHNPcmlnaW6YBPAgVGhlIGNhbGxlciBvcmlnaW4sIG92ZXJhcmNoaW5nIHR5cGUgb2YgYWxsIHBhbGxldHMgb3JpZ2lucy4AKAAAIE11bHRpc2lnASBNdWx0aXNpZwQkTXVsdGlzaWdzAAEIBQKFCIkIBAAElCBUaGUgc2V0IG9mIG9wZW4gbXVsdGlzaWcgb3BlcmF0aW9ucy4AAa0EAAGlAgAMLERlcG9zaXRCYXNlGEDcSOknAAAAAAAAAAAAAAAAGFkBIFRoZSBiYXNlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgdG8gcmVzZXJ2ZSBmb3IgY3JlYXRpbmcgYSBtdWx0aXNpZyBleGVjdXRpb24gb3IgdG+EIHN0b3JlIGEgZGlzcGF0Y2ggY2FsbCBmb3IgbGF0ZXIuAAEBIFRoaXMgaXMgaGVsZCBmb3IgYW4gYWRkaXRpb25hbCBzdG9yYWdlIGl0ZW0gd2hvc2UgdmFsdWUgc2l6ZSBpczEBIGA0ICsgc2l6ZW9mKChCbG9ja051bWJlciwgQmFsYW5jZSwgQWNjb3VudElkKSlgIGJ5dGVzIGFuZCB3aG9zZSBrZXkgc2l6ZSBpc4AgYDMyICsgc2l6ZW9mKEFjY291bnRJZClgIGJ5dGVzLgA0RGVwb3NpdEZhY3RvchhAoEYQAAAAAAAAAAAAAAAAAAxVASBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgdW5pdCB0aHJlc2hvbGQgd2hlbiBjcmVhdGluZyBhIG11bHRpc2lnIGV4ZWN1dGlvbi4AJQEgVGhpcyBpcyBoZWxkIGZvciBhZGRpbmcgMzIgYnl0ZXMgbW9yZSBpbnRvIGEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuADhNYXhTaWduYXRvcmllcxAQZAAAAATsIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBzaWduYXRvcmllcyBhbGxvd2VkIGluIHRoZSBtdWx0aXNpZy4AAZEIAAQsUnVudGltZUNhbGxpAwRsIFRoZSBvdmVyYXJjaGluZyBjYWxsIHR5cGUuACkAABBTdWRvARBTdWRvBAxLZXkAAAAEAASEIFRoZSBgQWNjb3VudElkYCBvZiB0aGUgc3VkbyBrZXkuAAG1BAABrQIAAAGVCAAELFJ1bnRpbWVDYWxsaQMESCBBIHN1ZG8tYWJsZSBjYWxsLgAqAAA8VmVyaWZ5U2lnbmF0dXJlAAAAAAAEJFNpZ25hdHVyZUkFBPQgU2lnbmF0dXJlIHR5cGUgdGhhdCB0aGUgZXh0ZW5zaW9uIG9mIHRoaXMgcGFsbGV0IGNhbiB2ZXJpZnkuACsAACBJZGVudGl0eQEgSWRlbnRpdHkwKElkZW50aXR5T2YAAQQFAJkIBAAQaQEgSW5mb3JtYXRpb24gdGhhdCBpcyBwZXJ0aW5lbnQgdG8gaWRlbnRpZnkgdGhlIGVudGl0eSBiZWhpbmQgYW4gYWNjb3VudC4gRmlyc3QgaXRlbSBpcyB0aGXgIHJlZ2lzdHJhdGlvbiwgc2Vjb25kIGlzIHRoZSBhY2NvdW50J3MgcHJpbWFyeSB1c2VybmFtZS4AwCBUV09YLU5PVEU6IE9LIOKAlSBgQWNjb3VudElkYCBpcyBhIHNlY3VyZSBoYXNoLgAoVXNlcm5hbWVPZgABBAUAuQIEAAS8IElkZW50aWZpZXMgdGhlIHByaW1hcnkgdXNlcm5hbWUgb2YgYW4gYWNjb3VudC4AHFN1cGVyT2YAAQQCAD0FBAAIYQEgVGhlIHN1cGVyLWlkZW50aXR5IG9mIGFuIGFsdGVybmF0aXZlICJzdWIiIGlkZW50aXR5IHRvZ2V0aGVyIHdpdGggaXRzIG5hbWUsIHdpdGhpbiB0aGF0UQEgY29udGV4dC4gSWYgdGhlIGFjY291bnQgaXMgbm90IHNvbWUgb3RoZXIgYWNjb3VudCdzIHN1Yi1pZGVudGl0eSwgdGhlbiBqdXN0IGBOb25lYC4AGFN1YnNPZgEBBAUAqQhEAAAAAAAAAAAAAAAAAAAAAAAUuCBBbHRlcm5hdGl2ZSAic3ViIiBpZGVudGl0aWVzIG9mIHRoaXMgYWNjb3VudC4AHQEgVGhlIGZpcnN0IGl0ZW0gaXMgdGhlIGRlcG9zaXQsIHRoZSBzZWNvbmQgaXMgYSB2ZWN0b3Igb2YgdGhlIGFjY291bnRzLgDAIFRXT1gtTk9URTogT0sg4oCVIGBBY2NvdW50SWRgIGlzIGEgc2VjdXJlIGhhc2guAChSZWdpc3RyYXJzAQCtCAQAEE0BIFRoZSBzZXQgb2YgcmVnaXN0cmFycy4gTm90IGV4cGVjdGVkIHRvIGdldCB2ZXJ5IGJpZyBhcyBjYW4gb25seSBiZSBhZGRlZCB0aHJvdWdoIGGoIHNwZWNpYWwgb3JpZ2luIChsaWtlbHkgYSBjb3VuY2lsIG1vdGlvbikuACkBIFRoZSBpbmRleCBpbnRvIHRoaXMgY2FuIGJlIGNhc3QgdG8gYFJlZ2lzdHJhckluZGV4YCB0byBnZXQgYSB2YWxpZCB2YWx1ZS4ALEF1dGhvcml0eU9mAAEEBb0IwQgEAAT0IEEgbWFwIG9mIHRoZSBhY2NvdW50cyB3aG8gYXJlIGF1dGhvcml6ZWQgdG8gZ3JhbnQgdXNlcm5hbWVzLgA4VXNlcm5hbWVJbmZvT2YAAQQCuQLFCAQAGHUBIFJldmVyc2UgbG9va3VwIGZyb20gYHVzZXJuYW1lYCB0byB0aGUgYEFjY291bnRJZGAgdGhhdCBoYXMgcmVnaXN0ZXJlZCBpdCBhbmQgdGhlIHByb3ZpZGVyIG9mbQEgdGhlIHVzZXJuYW1lLiBUaGUgYG93bmVyYCB2YWx1ZSBzaG91bGQgYmUgYSBrZXkgaW4gdGhlIGBVc2VybmFtZU9mYCBtYXAsIGJ1dCBpdCBtYXkgbm90IGlm8CB0aGUgdXNlciBoYXMgY2xlYXJlZCB0aGVpciB1c2VybmFtZSBvciBpdCBoYXMgYmVlbiByZW1vdmVkLgBpASBNdWx0aXBsZSB1c2VybmFtZXMgbWF5IG1hcCB0byB0aGUgc2FtZSBgQWNjb3VudElkYCwgYnV0IGBVc2VybmFtZU9mYCB3aWxsIG9ubHkgbWFwIHRvIG9uZUggcHJpbWFyeSB1c2VybmFtZS4AQFBlbmRpbmdVc2VybmFtZXMAAQQCuQLNCAQAIG0BIFVzZXJuYW1lcyB0aGF0IGFuIGF1dGhvcml0eSBoYXMgZ3JhbnRlZCwgYnV0IHRoYXQgdGhlIGFjY291bnQgY29udHJvbGxlciBoYXMgbm90IGNvbmZpcm1lZEwgdGhhdCB0aGV5IHdhbnQgaXQuACUBIFVzZWQgcHJpbWFyaWx5IGluIGNhc2VzIHdoZXJlIHRoZSBgQWNjb3VudElkYCBjYW5ub3QgcHJvdmlkZSBhIHNpZ25hdHVyZV0BIGJlY2F1c2UgdGhleSBhcmUgYSBwdXJlIHByb3h5LCBtdWx0aXNpZywgZXRjLiBJbiBvcmRlciB0byBjb25maXJtIGl0LCB0aGV5IHNob3VsZCBjYWxssCBbYWNjZXB0X3VzZXJuYW1lXShgQ2FsbDo6YWNjZXB0X3VzZXJuYW1lYCkuAB0BIEZpcnN0IHR1cGxlIGl0ZW0gaXMgdGhlIGFjY291bnQgYW5kIHNlY29uZCBpcyB0aGUgYWNjZXB0YW5jZSBkZWFkbGluZS4ASFVuYmluZGluZ1VzZXJuYW1lcwABBAK5AhAEABBdASBVc2VybmFtZXMgZm9yIHdoaWNoIHRoZSBhdXRob3JpdHkgdGhhdCBncmFudGVkIHRoZW0gaGFzIHN0YXJ0ZWQgdGhlIHJlbW92YWwgcHJvY2VzcyBieXEBIHVuYmluZGluZyB0aGVtLiBFYWNoIHVuYmluZGluZyB1c2VybmFtZSBtYXBzIHRvIGl0cyBncmFjZSBwZXJpb2QgZXhwaXJ5LCB3aGljaCBpcyB0aGUgZmlyc3TcIGJsb2NrIGluIHdoaWNoIHRoZSB1c2VybmFtZSBjb3VsZCBiZSBkZWxldGVkIHRocm91Z2ggYcQgW3JlbW92ZV91c2VybmFtZV0oYENhbGw6OnJlbW92ZV91c2VybmFtZWApIGNhbGwuAEBQZXJzb25JZGVudGl0aWVzAAEEAgTRCAQACGUBIFRoZSBtZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggYSBwZXJzb24gdGhyb3VnaCB0aGVpciBjb250ZXh0dWFsIGFsaWFzIGZvciB0aGUgcHVycG9zZXMgb2aIIHJlZ2lzdGVyaW5nIGlkZW50aXR5IGluZm9ybWF0aW9uLgA4QWNjb3VudFRvQWxpYXMAAQQCAAQEAAhlASBSZXZlcnNlIGxvb2t1cCBvZiBhY2NvdW50cyBjb250cm9sbGVkIGJ5IGEgcGVyc29uIHRocm91Z2ggYSBjb250ZXh0dWFsIGFsaWFzLiBBbGwgcGVvcGxlLQEgdGhhdCByZWdpc3RlcmVkIGFuIGlkZW50aXR5IG11c3QgYWxzbyBhc3NvY2lhdGUgYW4gb24tY2hhaW4gYWNjb3VudCB0byBpdC4AWFBlbmRpbmdVc2VybmFtZVJlcG9ydHMAAQQCBOEIBAAElCBTdG9yZXMgcGVuZGluZyByZXBvcnRzIG9mIHVzZXJuYW1lcy4AAbkEAAG1AgBAMEJhc2ljRGVwb3NpdBhAKSzFJwAAAAAAAAAAAAAAAATYIFRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0IGZvciBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuACxCeXRlRGVwb3NpdBhANYIAAAAAAAAAAAAAAAAAAAQdASBUaGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdCBwZXIgZW5jb2RlZCBieXRlIGZvciBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuADxVc2VybmFtZURlcG9zaXQYQKBGEAAAAAAAAAAAAAAAAAAIVQEgVGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQgcGVyIHJlZ2lzdGVyZWQgdXNlcm5hbWUuIFRoaXMgdmFsdWUgc2hvdWxkIGNoYW5nZSBvbmx5IGlu9CBydW50aW1lIHVwZ3JhZGVzIHdpdGggcHJvcGVyIG1pZ3JhdGlvbiBvZiBleGlzdGluZyBkZXBvc2l0cy4ARFN1YkFjY291bnREZXBvc2l0GECde9cnAAAAAAAAAAAAAAAADGUBIFRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0IGZvciBhIHJlZ2lzdGVyZWQgc3ViYWNjb3VudC4gVGhpcyBzaG91bGQgYWNjb3VudCBmb3IgdGhlIGZhY3RlASB0aGF0IG9uZSBzdG9yYWdlIGl0ZW0ncyB2YWx1ZSB3aWxsIGluY3JlYXNlIGJ5IHRoZSBzaXplIG9mIGFuIGFjY291bnQgSUQsIGFuZCB0aGVyZSB3aWxsNQEgYmUgYW5vdGhlciB0cmllIGl0ZW0gd2hvc2UgdmFsdWUgaXMgdGhlIHNpemUgb2YgYW4gYWNjb3VudCBJRCBwbHVzIDMyIGJ5dGVzLgBUVXNlcm5hbWVSZXBvcnREZXBvc2l0GEBIWBQAAAAAAAAAAAAAAAAABMggVGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQgcGVyIHJlcG9ydGVkIHVzZXJuYW1lLgA4TWF4U3ViQWNjb3VudHMQEGQAAAAEDQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHN1Yi1hY2NvdW50cyBhbGxvd2VkIHBlciBpZGVudGlmaWVkIGFjY291bnQuAFRVc2VybmFtZVJlcG9ydFRpbWVvdXQQEMBLAwAMSQEgVGhlIG51bWJlciBvZiBibG9ja3MgdGhhdCBoYXZlIHRvIHBhc3MgYmV0d2VlbiB0aGUgbGFzdCB0aW1lIGEgZ2l2ZW4gdXNlcm5hbWUgd2FzXQEgcmVwb3J0ZWQgYW5kIG5vdyBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHJlcG9ydCBpdCBhZ2Fpbi4gSW4gb3RoZXIgd29yZHMsIGl0IHJlcHJlc2VudHOUIHRoZSB1c2VybmFtZSB2YWxpZGl0eSBzYWZldHkgcGVyaW9kLgA0TWF4UmVnaXN0cmFycxAQFAAAAAhNASBNYXhpbXVtIG51bWJlciBvZiByZWdpc3RyYXJzIGFsbG93ZWQgaW4gdGhlIHN5c3RlbS4gTmVlZGVkIHRvIGJvdW5kIHRoZSBjb21wbGV4aXR5fCBvZiwgZS5nLiwgdXBkYXRpbmcganVkZ2VtZW50cy4ANE1heEp1ZGdlbWVudHMQEAMAAAAEKQEgTWF4aW11bSBudW1iZXIgb2YganVkZ2VtZW50cyBwZXIgcGVyc29uYWwgaWRlbnRpdHkgYWxsb3dlZCBpbiB0aGUgc3lzdGVtLgBkUGVuZGluZ1VzZXJuYW1lRXhwaXJhdGlvbhAQ4MQAAAQVASBUaGUgbnVtYmVyIG9mIGJsb2NrcyB3aXRoaW4gd2hpY2ggYSB1c2VybmFtZSBncmFudCBtdXN0IGJlIGFjY2VwdGVkLgBMVXNlcm5hbWVHcmFjZVBlcmlvZBAQYFQAAAhZASBUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IG11c3QgcGFzcyB0byBlbmFibGUgdGhlIHBlcm1hbmVudCBkZWxldGlvbiBvZiBhIHVzZXJuYW1lIGJ5aCBpdHMgcmVzcGVjdGl2ZSBhdXRob3JpdHkuADxNYXhTdWZmaXhMZW5ndGgQEAcAAAAEgCBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSBzdWZmaXguAERNYXhVc2VybmFtZUxlbmd0aBAQIAAAAARhASBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSB1c2VybmFtZSwgaW5jbHVkaW5nIGl0cyBzdWZmaXggYW5kIGFueSBzeXN0ZW0tYWRkZWQgZGVsaW1pdGVycy4ARE1pblVzZXJuYW1lTGVuZ3RoEBACAAAABLAgVGhlIG1pbmltdW0gbGVuZ3RoIG9mIGEgdXNlcm5hbWUgb3Igc3VmZml4LgBgQ3JlZGVudGlhbFJlbW92YWxQZW5hbHR5GEApUP4AAAAAAAAAAAAAAAAACFUBIFRoZSBmZWUgdGhhdCBhIHBlcnNvbiBtdXN0IHBheSB0aHJvdWdoIHRoZWlyIGFzc29jaWF0ZWQgb24tY2hhaW4gYWNjb3VudCBpbiBvcmRlciB0b1wgcmVtb3ZlIHRoZWlyIGlkZW50aXR5LgBAaWRlbnRpdHlfY29udGV4dASAcG9wOnBvbGthZG90Lm5ldHdvcmsvaWRlbnRpdHkgICAIQQEgVGhlIGNvbnRleHQgdXNlZCBmb3IgdGhlIHByb29mcyByZXF1aXJlZCB0byBhdXRoZW50aWNhdGUgYXMgYSBwZXJzb25hbCBhbGlhcyBpbiggaWRlbnRpdHkuAAHlCAAERE9mZmNoYWluU2lnbmF0dXJlSQUM4CBTaWduYXR1cmUgdHlwZSBmb3IgcHJlLWF1dGhvcml6aW5nIHVzZXJuYW1lcyBvZmYtY2hhaW4uABEBIENhbiB2ZXJpZnkgd2hldGhlciBhbiBgU2VsZjo6U2lnbmluZ1B1YmxpY0tleWAgY3JlYXRlZCBhIHNpZ25hdHVyZS4AMgAAGFBlb3BsZQEYUGVvcGxlVBBSb290AAEEAhDpCAQABJggVGhlIGN1cnJlbnQgaW5kaXZpZHVhbHMgd2UgcmVjb2duaXNlLgBAQ3VycmVudFJpbmdJbmRleAEAEBAAAAAABOQgS2VlcHMgdHJhY2sgb2YgdGhlIHJpbmcgaW5kZXggY3VycmVudGx5IGJlaW5nIHBvcHVsYXRlZC4AOE9uYm9hcmRpbmdTaXplAQAQEAAAAAAE9CBNYXhpbXVtIG51bWJlciBvZiBwZW9wbGUgcXVldWVkIGJlZm9yZSBvbmJvYXJkaW5nIHRvIGEgcmluZy4AXFJpbmdCdWlsZGluZ1Blb3BsZUxpbWl0AAAQBAAIbQEgSGludCBmb3IgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBlb3BsZSB0aGF0IGNhbiBiZSBpbmNsdWRlZCBpbiBhIHJpbmcgdGhyb3VnaCBhIHNpbmdsZSByb290SQEgYnVpbGRpbmcgY2FsbC4gSWYgbm8gdmFsdWUgaXMgc2V0LCB0aGVuIHRoZSBvbmJvYXJkaW5nIHNpemUgd2lsbCBiZSB1c2VkIGluc3RlYWQuACBSaW5nS2V5cwEBBAIQ9QgEAAi8IEJvdGggdGhlIGtleXMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gYnVpbHQgcmluZ3PAIGFuZCB0aGUga2V5cyB0aGF0IHdpbGwgYmUgdXNlZCBpbiBmdXR1cmUgcmluZ3MuADhSaW5nS2V5c1N0YXR1cwEBBAIQ+QggAAAAAAAAAAAIYQEgU3RvcmVzIHRoZSBtZXRhIGluZm9ybWF0aW9uIGZvciBlYWNoIHJpbmcsIHRoZSBudW1iZXIgb2Yga2V5cyBhbmQgaG93IG1hbnkgYXJlIGFjdHVhbGx5WCBpbmNsdWRlZCBpbiB0aGUgcm9vdC4ASFBlbmRpbmdTdXNwZW5zaW9ucwEBBAUQ/QgEAAhpASBBIG1hcCBvZiBhbGwgcmluZ3Mgd2hpY2ggY3VycmVudGx5IGhhdmUgcGVuZGluZyBzdXNwZW5zaW9ucyBhbmQgbmVlZCBjbGVhbmluZywgYWxvbmcgd2l0aBEBIHRoZWlyIHJlc3BlY3RpdmUgbnVtYmVyIG9mIHN1c3BlbmRlZCBrZXlzIHdoaWNoIG5lZWQgdG8gYmUgcmVtb3ZlZC4ANEFjdGl2ZU1lbWJlcnMBABAQAAAAAATMIFRoZSBudW1iZXIgb2YgcGVvcGxlIGN1cnJlbnRseSBpbmNsdWRlZCBpbiBhIHJpbmcuABBLZXlzAAEEAskCMAQAFEkBIFRoZSBjdXJyZW50IGluZGl2aWR1YWxzIHdlIHJlY29nbmlzZSwgYnV0IG5vdCBuZWNlc3NhcmlseSB5ZXQgaW5jbHVkZWQgaW4gYSByaW5nLgB1ASBMb29rLXVwIGZyb20gdGhlIGNyeXB0byAocHVibGljKSBrZXkgdG8gdGhlIGltbXV0YWJsZSBJRCBvZiB0aGUgaW5kaXZpZHVhbCAoYFBlcnNvbmFsSWRgKS4gQV0BIHBlcnNvbiBjYW4gaGF2ZSB0d28gZGlmZmVyZW50IGVudHJpZXMgaW4gdGhpcyBtYXAgaWYgdGhleSBxdWV1ZWQgYSBrZXkgbWlncmF0aW9uIHdoaWNoZCBoYXNuJ3QgYmVlbiBlbmFjdGVkIHlldC4AOENvdW50ZXJGb3JLZXlzAQAQEAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAAREtleU1pZ3JhdGlvblF1ZXVlAAEEAjDJAgQACHUBIEEgbWFwIG9mIGFsbCB0aGUgcGVvcGxlIHdobyBoYXZlIGRlY2xhcmVkIHRoZWlyIGludGVudCB0byBtaWdyYXRlIHRoZWlyIGtleXMgYW5kIGFyZSB3YWl0aW5nfCBmb3IgdGhlIG5leHQgbXV0YXRpb24gc2Vzc2lvbi4AGFBlb3BsZQABBAIwAQkEAAxJASBUaGUgY3VycmVudCBpbmRpdmlkdWFscyB3ZSByZWNvZ25pc2UsIGJ1dCBub3QgbmVjZXNzYXJpbHkgeWV0IGluY2x1ZGVkIGluIGEgcmluZy4AZQEgSW1tdXRhYmxlIElEIG9mIHRoZSBpbmRpdmlkdWFsIChgUGVyc29uYWxJZGApIHRvIGluZm9ybWF0aW9uIGFib3V0IHRoZWlyIGtleSBhbmQgc3RhdHVzLgA4QWxpYXNUb0FjY291bnQAAQQC/AAEAATMIENvbnZlcnNpb24gb2YgYSBjb250ZXh0dWFsIGFsaWFzIHRvIGFuIGFjY291bnQgSUQuADhBY2NvdW50VG9BbGlhcwABBAIA+AQABMwgQ29udmVyc2lvbiBvZiBhbiBhY2NvdW50IElEIHRvIGEgY29udGV4dHVhbCBhbGlhcy4ATEFjY291bnRUb1BlcnNvbmFsSWQAAQQCADAEABC8IEFzc29jaWF0aW9uIG9mIGFuIGFjY291bnQgSUQgdG8gYSBwZXJzb25hbCBJRC4AIQEgTWFuYWdlZCB3aXRoIGBzZXRfcGVyc29uYWxfaWRfYWNjb3VudGAgYW5kIGB1bnNldF9wZXJzb25hbF9pZF9hY2NvdW50YC74IFJldmVyc2UgbG9va3VwIGlzIGluc2lkZSBgUGVvcGxlYCBzdG9yYWdlLCBpbnNpZGUgdGhlIHJlY29yZC4AGENodW5rcwABBAUQCQkEAAQVASBQYWdpbmF0ZWQgY29sbGVjdGlvbiBvZiBzdGF0aWMgY2h1bmtzIHVzZWQgYnkgdGhlIHZlcmlmaWFibGUgY3J5cHRvLgA4TmV4dFBlcnNvbmFsSWQBADAgAAAAAAAAAAAEuCBUaGUgbmV4dCBmcmVlIGFuZCBuZXZlciByZXNlcnZlZCBwZXJzb25hbCBJRC4AKFJpbmdzU3RhdGUBABUJBAAIcQEgVGhlIHN0YXRlIG9mIHRoZSBwYWxsZXQgcmVnYXJkaW5nIHRoZSBhY3Rpb25zIHRoYXQgYXJlIGN1cnJlbnRseSBhbGxvd2VkIHRvIGJlIHBlcmZvcm1lZCBvblAgYWxsIGV4aXN0aW5nIHJpbmdzLgBIUmVzZXJ2ZWRQZXJzb25hbElkAAEEBTChAgQABMAgQ2FuZGlkYXRlcycgcmVzZXJ2ZWQgaWRlbnRpdGllcyB3aGljaCB3ZSB0cmFjay4AQFF1ZXVlUGFnZUluZGljZXMBABkDIAAAAAAAAAAABDkBIEtlZXBzIHRyYWNrIG9mIHRoZSBwYWdlIGluZGljZXMgb2YgdGhlIGhlYWQgYW5kIHRhaWwgb2YgdGhlIG9uYm9hcmRpbmcgcXVldWUuADxPbmJvYXJkaW5nUXVldWUBAQQFEBkJBAAELQEgUGFnaW5hdGVkIGNvbGxlY3Rpb24gb2YgcGVvcGxlIHB1YmxpYyBrZXlzIHJlYWR5IHRvIGJlIGluY2x1ZGVkIGluIGEgcmluZy4AAVkFAAHFAgAQNENodW5rUGFnZVNpemUQEIAAAAAEbCBOdW1iZXIgb2YgY2h1bmtzIHBlciBwYWdlLgAsTWF4UmluZ1NpemUQEBQAAAAEJQEgTWF4aW11bSBudW1iZXIgb2YgcGVvcGxlIGluY2x1ZGVkIGluIGEgcmluZyBiZWZvcmUgYSBuZXcgb25lIGlzIGNyZWF0ZWQuAFxPbmJvYXJkaW5nUXVldWVQYWdlU2l6ZRAQHgAAAAhJASBNYXhpbXVtIG51bWJlciBvZiBwZW9wbGUgaW5jbHVkZWQgaW4gYW4gb25ib2FyZGluZyBxdWV1ZSBwYWdlIGJlZm9yZSBhIG5ldyBvbmUgaXMkIGNyZWF0ZWQuAHBhY2NvdW50X3NldHVwX3RpbWVfdG9sZXJhbmNlEBBYAgAAFD0BIFRoZSBhbW91bnQgb2YgYmxvY2sgbnVtYmVyIHRvbGVyYW5jZSB3ZSBhbGxvdyBmb3IgYSBzZXR1cCBhY2NvdW50IHRyYW5zYWN0aW9uLgAFASBgc2V0X2FsaWFzX2FjY291bnRgIGFuZCBgc2V0X3BlcnNvbmFsX2lkX2FjY291bnRgIGNhbGxzIGNvbnRhaW5zUQEgYGNhbGxfdmFsaWRfYXRgIGFzIGEgcGFyYW1ldGVyLCB0aG9zZSBjYWxscyBhcmUgdmFsaWQgaWYgdGhlIGJsb2NrIG51bWJlciBpcyB3aXRoaW5YIHRoZSB0b2xlcmFuY2UgcGVyaW9kLgABHQkAAAAzAAAcTW9iUnVsZQEcTW9iUnVsZTAcQ3JlZGl0cwEBBAIEIQlwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASMIFRoZSB2b3RpbmcgcmVjb3JkcyBvZiBhbGwgYWxpYXNlcy4APFZvdGluZ1BlbmFsdGllcwABBAIEEAQACHEBIFRoZSB2b3RlIHBlbmFsdGllcyBvZiB1c2VycyBhbmQgdGhlaXIgc3RhcnRpbmcgbW9tZW50LiBWb3RlcnMgd2l0aCBwZW5hbHRpZXMgY2Fubm90IHZvdGUgaW7MIGNvbnRlbXB0IHVudGlsIHRoZSBwZW5hbHR5IGV4cGlyZXMgYW5kIGlzIHJlbW92ZWQuADBWb3RpbmdQb2ludHMBAQgGAiUJEBAAAAAACGUBIFRoZSBhY2N1bXVsYXRlZCBwb2ludHMgb2YgYWxsIGFsaWFzZXMsIGR1cmluZyBlYWNoIGZ1bmRpbmcgcm91bmQuIFRoZSBwb2ludHMgYWNjdW11bGF0ZWQhASBkdXJpbmcgcm91bmQgYE5gIGNhbiBiZSByZWRlZW1lZCBmb3IgcmV3YXJkcyBvbmx5IGR1cmluZyByb3VuZCBgTiArIDFgLgAUVm90ZXMAAQgCAiUJvQIEAAS4IEFsbCB2b3RlcyBjYXN0LCBzZWdyZWdhdGVkIGJ5IGNhc2UgYW5kIHZvdGVyLgAkQ2FzZUNvdW50AQAQEAAAAAAEEQEgVGhlIG51bWJlciBvZiBjYXNlcywgb3BlbiBvciByZWNlbnRseSBjbG9zZWQsIHN0b3JlZCBpbiB0aGUgcGFsbGV0LgAkT3BlbkNhc2VzAAEEAhApCQQABCkBIFRoZSBvcGVuIGNhc2VzIHJlY29yZGVkIGluIHRoZSBwYWxsZXQuIFRoZXNlIGNhc2VzIGNhbiBzdGlsbCBiZSB2b3RlZCBvbi4AJFJpcGVDYXNlcwABBAIQQQkEAAx1ASBUaGUgcmlwZSBjYXNlcyByZWNvcmRlZCBpbiB0aGUgcGFsbGV0LiBUaGUgdm90aW5nIGhhcyBjb25jbHVkZWQgb24gdGhlc2UgY2FzZXMgYW5kIGEgdmVyZGljdGUBIGhhcyBiZWVuIHJlYWNoZWQsIGJ1dCB0aGV5IGNhbm5vdCBiZSByZW1vdmVkIHlldCBpbiBvcmRlciB0byBhbGxvdyBwZW9wbGUgdG8gY2xhaW0gdGhlaXIcIHZvdGVzLgAkRG9uZUNhc2VzAAEEAhBFCQQACGEBIFRoZSBkb25lIGNhc2VzIHJlY29yZGVkIGluIHRoZSBwYWxsZXQuIFRoZXNlIGNhc2VzIGFyZSBvYnNvbGV0ZSBhbmQgY2FuIGJlIHJlbW92ZWQgZnJvbSQgc3RvcmFnZS4AREFjY3VtdWxhdGVkUG9pbnRzAQAwIAAAAAAAAAAACHUBIFRoZSBudW1iZXIgb2YgcG9pbnRzIGFjY3VtdWxhdGVkIHRocm91Z2ggY29ycmVjdCB2b3RlcyBkdXJpbmcgdGhlIGN1cnJlbnQgcGF5b3V0IHJvdW5kLiBUaGlzdQEgYW1vdW50IGlzIGdvaW5nIHRvIGRldGVybWluZSB0aGUgcG9pbnQvcmV3YXJkIGV4Y2hhbmdlIHJhdGUgb2YgdGhlIG5leHQgcmV3YXJkIHBheW91dCByb3VuZC4ASFBheW91dERpc3RyaWJ1dGlvbgAASQkEAATYIERlc2NyaWJlcyB0aGUgcGFyYW1ldGVycyBvZiB0aGUgY3VycmVudCBwYXlvdXQgcm91bmQuADhSb3VuZFNjaGVkdWxlcwEATQkEAAS4IERlc2NyaWJlcyB0aGUgc2NoZWR1bGVzIG9mIHRoZSBwYXlvdXQgcm91bmRzLgAsQWN0aXZlU2luY2UAADAEAAhtASBUaGUgdGltZXN0YW1wLCBpbiBzZWNvbmRzLCBvZiB0aGUgbW9tZW50IGVub3VnaCBhY3RpdmUgdm90ZXJzIHdlcmUgZGV0ZWN0ZWQgYW5kIHZvdGluZyB3YXMxASBlbmFibGVkLiBUaGlzIHZhbHVlIHdpbGwgbm90IGJlIHByZXNlbnQgaWYgdGhlcmUgYXJlIHRvbyBmZXcgYWN0aXZlIHZvdGVycy4AAWEFAAHNAgA8UEN1cnJlbmN5TG9jYXRpb25JbmZvpCQBAwChDwQyBQwE9CBUaGUgbG9jYXRpb24gb2YgdGhlIHVzZWQgY3VycmVuY3kuIEl0IGlzIGluZm9ybWF0aW9uYWwgb25seS4AUE1heFZvdGVDbGFpbUR1cmF0aW9uMCCAUQEAAAAAAAQFASBUaGUgbnVtYmVyIG9mIHNlY29uZHMgYmVmb3JlIGEgY2FzZSB0aW1lcyBvdXQgYW5kIGNhbiBiZSByZWFwZWQuADxNaW5DYXNlRHVyYXRpb24QEFgCAAAEQQEgVGhlIG51bWJlciBvZiBzZWNvbmRzIGEgY2FzZSBtdXN0IHN0YXkgb3BlbiBmb3Igdm90aW5nIGJlZm9yZSBpdCBjYW4gYmUgY2xvc2VkLgBETWF4Vm90aW5nRHVyYXRpb24QELAEAAAELQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHNlY29uZHMgZm9yIHdoaWNoIGEgY2FzZSBjb3VsZCBzdGF5IG9wZW4gZm9yIHZvdGluZy4ARE1pblR1cm5vdXROb21pbmFsEBABAAAABEUBIFRoZSBtaW5pbXVtIG51bWJlciBvZiB2b3RlcyBhIGNhc2UgbXVzdCByZWNlaXZlIGJlZm9yZSBhIHZlcmRpY3QgY2FuIGJlIHJlYWNoZWQuAFBNaW5UdXJub3V0UGVyY2VudGFnZVkJBAoIZQEgVGhlIG1pbmltdW0gbnVtYmVyIG9mIHZvdGVzIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgdG90YWwgdm90ZXIgY291bnQgYSBjYXNlIG11c3QgcmVjZWl2ZYQgYmVmb3JlIGEgdmVyZGljdCBjYW4gYmUgcmVhY2hlZC4AVFZvdGluZ1BlbmFsdHlEdXJhdGlvbhAQIBwAAATQIFRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgYSBwZW5hbHR5IGlzIGFwcGxpZWQgZm9yLgBETWF4Vm90ZXNDbGFpbWFibGUQEAoAAAAE9CBUaGUgbWF4aW11bSBudW1iZXIgb2Ygdm90ZXMgY2xhaW1hYmxlIGluIGEgc2luZ2xlIGV4dHJpbnNpYy4ASE1vYlJ1bGVWb3VjaGVyVHlwZV0JRAAITNLCBwAAAAAAAAAAAAAAAABQT2ZmY2hhaW5Xb3JrSW50ZXJ2YWwQEDIAAAAEsCBUaGUgaW50ZXJ2YWwgYXQgd2hpY2ggb2ZmY2hhaW4gd29ya2VyIHJ1bnMuAExDbGVhblZvdGVzQmF0Y2hTaXplEBDoAwAABCUBIE1heGltdW0gbnVtYmVyIG9mIHZvdGVzIHRoYXQgd2lsbCBiZSBjbGVhbmVkIGR1cmluZyBvZmZjaGFpbiB3b3JrZXIgcnVuLgBoVm90ZXNPcGVuRm9yQ2xhaW1zRHVyYXRpb24QEFgCAAAIFQEgVGhlIHRpbWUgaW4gc2Vjb25kcyBkdXJpbmcgd2hpY2ggdm90ZXMgY2FuIGJlIGNsYWltZWQgb24gZG9uZSBjYXNlcy7AIE1lYXN1cmVkIGZyb20gdGhlIHRpbWUgdGhlIGNhc2UgYmVjb21lcyAnRG9uZScuAFRNaW5pbXVtVm90ZXJUaHJlc2hvbGQQEAMAAAAIZQEgVGhlIG1pbmltdW0gbnVtYmVyIG9mIGFjdGl2ZSB2b3RlcnMgcmVxdWlyZWQgdG8gYWxsb3cgdm90aW5nLiBXaGVuIHRoaXMgdGhyZXNob2xkIGlzIG5vdIQgbWV0LCBvcGVuIGNhc2VzIGNhbm5vdCB0aW1lIG91dC4APG1vYl9ydWxlX3BvdF9pZACAbW9kbE1vYlJ3cmRzAAAAAAAAAAAAAAAAAAAAAAAAAAAE4CBHZXQgYSB1bmlxdWUsIGluYWNjZXNzaWJsZSBhY2NvdW50IElEIGZyb20gdGhlIGBQb3RJZGAuAEBtb2JfcnVsZV9jb250ZXh0BIBwb3A6cG9sa2Fkb3QubmV0d29yay9tb2ItcnVsZSAgIAhRASBUaGUgY29udGV4dCB1c2VkIGZvciB0aGUgcHJvb2ZzIHJlcXVpcmVkIHRvIGF1dGhlbnRpY2F0ZSBhcyBhIHBlcnNvbmFsIGFsaWFzIGluIG1vYhggcnVsZS4AAWEJAAQcVm91Y2hlcskCBA0BIFR5cGUgdXNlZCB0byByZWdpc3RlciBhIHByaXZhY3kgdm91Y2hlciBhcyBtb2IgcnVsZSBjcmVkaXQgcmV3YXJkLgA0AAAoUHJvb2ZPZkluawEoUHJvb2ZPZkluaywoQ2FuZGlkYXRlcwABBAIAZQkEAARJASBUaGUgY3VycmVudCBwZXJzb25hbCBpZGVudGl0aWVzIHdoaWNoIGFyZSBnb2luZyB0aHJvdWdoIHRoZSBwcm9vZi1vZi1pbmsgcHJvY2Vzcy4AGFBlb3BsZQABBAUwdQkEAAhxASBUaGUgcGVyc29uYWwgaWRlbnRpdGllcyB3aGljaCB3ZSB0cmFjazsgYWxsIHdoaWNoIGhhdmUgYmVlbiByZWNvZ25pemVkIHRocm91Z2ggcHJvb2Ytb2YtaW5rNCBhcmUgaW4gaGVyZS4APFJlZmVycmFsVGlja2V0cwABBAUwgQkEAAQJASBUaGUgdGlja2V0cyBzdG9yZWQgb24tY2hhaW4gcmVhZHkgdG8gYmUgdXNlZCB0byByZWZlciBjYW5kaWRhdGVzLgA4RGVzaWduRmFtaWxpZXMAAQQC2QKNCQQABKggVGhlIGN1cnJlbnQgZGVzaWduIGZhbWlsaWVzIHdlIHJlY29nbmlzZS4AQENvbW1pdHRlZERlc2lnbnMAAQgCApEJlQkEAATUIFRoZSBjb21taXR0ZWQgZGVzaWducyB3aGljaCBhcmUgbm8gbG9uZ2VyIGF2YWlsYWJsZS4APEFsbG9jYXRpb25Db3VudAEAEBAAAAAABLAgVGhlIG51bWJlciBvZiBqdWRnZW1lbnRzIGN1cnJlbnRseSBvbmdvaW5nLgA0Q29uZmlndXJhdGlvbgEAcQWgwIkBAAQAAADoAwAAAAAABAAAAAAgAAAAAAAgAAAAAAAIAAAAwIkBAARMIFRoZSBjb25maWd1cmF0aW9uLgBAQXZhaWxhYmxlSW52aXRlcwEBBAIAEBAAAAAABPggTnVtYmVyIG9mIGludml0YXRpb25zIGF2YWlsYWJsZSB0byBkaXN0cmlidXRlIGZvciBhbiBhY2NvdW50LgA4UGVuZGluZ0ludml0ZXMAAQgCApkJoQIEAAwdASBQZW5kaW5nIGludml0YXRpb25zIGZvciBlYWNoIGludml0ZXIgKGFuIGFjY291bnQgdGhhdCBpbnZpdGVzIG90aGVycykuAFkBIElmIHRoZSBrZXkgYChpbnZpdGVyLCB0aWNrZXQpYCBleGlzdHMsIHRoZW4gdGhlIHRpY2tldCBpcyBjdXJyZW50bHkgYSBwZW5kaW5nIGludml0ZS4AbFJlZmVycmVyUmVpbWJ1cnNlbWVudFZhbHVlcwAAdQUEAAxhASBUaGUgdmFsdWVzIG9mIHRoZSByZWltYnVyc2VtZW50IGF3YXJkZWQgdG8gcmVmZXJyZXJzLCBhbG9uZyB3aXRoIGhvdyBtYW55IG9mIGVhY2ggdmFsdWVtASBzaG91bGQgYmUgYXdhcmRlZC4gVGhlc2UgdmFsdWVzIGFyZSBzdG9yZWQgaW4gcmV2ZXJzZSBvcmRlciBvZiB0aGVpciBwcmlvcml0eSwgc28gdGhlIGxhc3RBASB2YWx1ZSBpbiB0aGUgbGlzdCB3aWxsIGJlIHRoZSBmaXJzdCBvbmUgdG8gYmUgdXNlZCBieSB0aGUgcmVpbWJ1cnNlbWVudCBzeXN0ZW0uAGxSZWZlcnJlZFJlaW1idXJzZW1lbnRWYWx1ZXMAAHUFBAAMYQEgVGhlIHZhbHVlcyBvZiB0aGUgcmVpbWJ1cnNlbWVudCBhd2FyZGVkIHRvIHJlZmVycmVkIHBlb3BsZSwgYWxvbmcgd2l0aCBob3cgbWFueSBvZiBlYWNocQEgdmFsdWUgc2hvdWxkIGJlIGF3YXJkZWQuIFRoZXNlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHJldmVyc2Ugb3JkZXIgb2YgdGhlaXIgcHJpb3JpdHksIHNvIHRoZVUBIGxhc3QgdmFsdWUgaW4gdGhlIGxpc3Qgd2lsbCBiZSB0aGUgZmlyc3Qgb25lIHRvIGJlIHVzZWQgYnkgdGhlIHJlaW1idXJzZW1lbnQgc3lzdGVtLgABZQUAAdUCABRITWF4QWN0aXZlUmVmZXJyYWxzEBAKAAAACPQgVGhlIG1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSByZWZlcnJhbHMgYSB1c2VyIGNhbiBoYXZlIG9wZW4uWCBJdCBjYW5ub3QgZXhjZWVkIDIwMC4AFFBvdElkkQcgUG9JUG90X18gKQEgQWNjb3VudCBJZGVudGlmaWVyIGZyb20gd2hpY2ggdGhlIGludGVybmFsIHBvdCBmb3Igdm91Y2hlcnMgaXMgZ2VuZXJhdGVkLgBlASBUaGUgYWNjb3VudCBtdXN0IGJlIGZ1bmRlZCBzbyB0aGF0IHZvdWNoZXJzIGNhbiBiZSByZWdpc3RlcmVkIHdoZW4gcmVnaXN0ZXJpbmcgYSBwZXJzb24uxCBBbiBlbXB0eSBwb3Qgd2lsbCByZXN1bHQgaW4gZmFpbGVkIHJlZ2lzdHJhdGlvbi4AEQEgVGhlIGBQYWxsZXRJZGAgbXVzdCBiZSBhIGNvbnN0YW50IGFzIGl0IGlzIGV4cG9zZWQgaW4gdGhlIG1ldGFkYXRhLmUBIENoYW5naW5nIHRoaXMgdmFsdWUgd2l0aCBhIHJ1bnRpbWUgdXBncmFkZSBjYW4gYmUgZG9uZSBhdCBhbnkgdGltZSwgdGhlIG5ldyBhY2NvdW50IHdpbGyQIHRoZW4gbmVlZCB0byBiZSBmdW5kZWQgYWNjb3JkaW5nbHkuAExSZWZlcnJlclZvdWNoZXJUeXBlXQlEABCYpIUPAAAAAAAAAAAAAAAIAQEgVGhlIHZvdWNoZXIgdHlwZSBmb3IgcmVmZXJyZXIgaW4gYSBzdWNjZXNzZnVsIHJlZmVycmFsIHByb2Nlc3MuwCBUaGlzIGlzIHJlZ2lzdGVyZWQgZm9yIHBlb3BsZSB3aXRob3V0IHJlZmVycmFsLgBMUmVmZXJyZWRWb3VjaGVyVHlwZV0JRABAYJIWPgAAAAAAAAAAAAAACB0BIFRoZSB2b3VjaGVyIHR5cGUgZm9yIHJlZmVycmVkIHBlcnNvbiBpbiBhIHN1Y2Nlc3NmdWwgcmVmZXJyYWwgcHJvY2Vzcy7AIFRoaXMgaXMgcmVnaXN0ZXJlZCBmb3IgcGVvcGxlIHdpdGhvdXQgcmVmZXJyYWwuAExwcm9vZl9vZl9pbmtfcG90X2lkAIBtb2RsUG9JUG90X18AAAAAAAAAAAAAAAAAAAAAAAAAAAS4IFRoZSBhY2NvdW50IElEIG9mIHRoZSBwb3QsIHVzZWQgZm9yIHZvdWNoZXJzLgABnQkADDxUaWNrZXRTaWduYXR1cmVJBQyIIFNpZ25hdHVyZSB1c2VkIHRvIHZlcmlmeSB0aWNrZXRzLgABASBDYW4gdmVyaWZ5IHdoZXRoZXIgYW4gYFNlbGY6OlRpY2tldFB1YmxpY2AgY3JlYXRlZCBhIHNpZ25hdHVyZS4YVGlja2V0AASYIFRpY2tldCB0eXBlIHVzZWQgdG8gcmVmZXIgY2FuZGlkYXRlcy4cVm91Y2hlcskCBLQgVGhlIHZvdWNoZXIgdHlwZSBpbiBwcml2YWN5IHZvdWNoZXIgc2VydmljZS4ANQAAOFByaXZhY3lWb3VjaGVyAThQcml2YWN5Vm91Y2hlciQUUmluZ3MAAQgFBXkFoQkEAARUIFRoZSBjbGFpbWFibGUgcmluZ3MuADRCdWlsZGluZ1JpbmdzAAEEBRilCQQABFAgVGhlIGJ1aWxkaW5nIHJpbmdzLgAQS2V5cwABCAUFeQWpCQQADFwgVGhlIGtleXMgaW4gdGhlIHJpbmdzLgD0IEZvciBsb29raW5nIHVwIGZyb20gdGhlIGtleXMgdG8gdGhlIHJpbmdzLCB1c2UgYEtleXNUb1JpbmdgLgAoS2V5c1RvUmluZwABBALJAnkFBAAUGQEgQSBtYXAgZnJvbSBrZXlzIHRvIHJpbmdzIGl0IGlzIHBhcnQgb2YuIFRoZSByZXZlcnNlIGxvb2t1cCBvZiBgS2V5c2AuABEBIEFsbG93cyB0byBsb29rdXAgZnJvbSBrZXlzIHRvIHRoZWlyIHJpbmdzIGJ5IGl0ZXJhdGluZyBvbiB0aGUga2V5cy4AtCBUaGlzIHN0b3JhZ2UgbXVzdCBiZSBjb25zaXN0ZW50IHdpdGggYEtleXNgLgAsVXNlZFRpY2tldHMAAQwFBQWtCaECBAAEfCBUaGUgdGlja2V0cyB1c2VkIGluIHRoZSByaW5ncy4AQFZhcmlhYmxlVm91Y2hlcnMAAQQFlQGxCQQABBEBIFRoZSBjdXJyZW50IGFuZCBwZW5kaW5nIHZhbHVlIGZvciBhIHZvdWNoZXIgdHlwZSBvZiB2YXJpYWJsZSB2YWx1ZS4ANE5leHRSaW5nSW5kZXgBAQQFGBAQAAAAAAzMIFRoZSBuZXh0IHJpbmcgaW5kZXggdG8gdXNlIGZvciBlYWNoIHZvdWNoZXIgdmFsdWUuALggV2hlbiBidWlsZGluZyBhIG5ldyByaW5nLCB0aGlzIGluZGV4IGlzIHVzZWQuAEBSZW1vdmVkUmluZ0luZGV4AAEEBRgQBAAM7CBUaGUgaW5kZXggb2YgdGhlIGxhc3QgcmVtb3ZlZCByaW5nIGZvciBlYWNoIHZvdWNoZXIgdmFsdWUuAHAgUmluZ3MgYXJlIHJlbW92ZWQgaW4gb3JkZXIuABhDaHVua3MAAQQFEAkJBAAEFQEgUGFnaW5hdGVkIGNvbGxlY3Rpb24gb2Ygc3RhdGljIGNodW5rcyB1c2VkIGJ5IHRoZSB2ZXJpZmlhYmxlIGNyeXB0by4AAYEFAAHhAgAQNENodW5rUGFnZVNpemUQEIAAAAAEbCBOdW1iZXIgb2YgY2h1bmtzIHBlciBwYWdlLgBQQ3VycmVuY3lMb2NhdGlvbkluZm+kJAEDAKEPBDIFDAT0IFRoZSBsb2NhdGlvbiBvZiB0aGUgdXNlZCBjdXJyZW5jeS4gSXQgaXMgaW5mb3JtYXRpb25hbCBvbmx5LgAsTWF4UmluZ1NpemUQEAMAAAAMkCBNYXhpbXVtIG51bWJlciBvZiBtZW1iZXIgaW4gYSByaW5nLgBZASBJbmNyZWFzaW5nIHRoZSB2YWx1ZSBpcyBvayBhdCBhbnkgdGltZSwgZGVjcmVhc2luZyB0aGUgdmFsdWUgbWF5IHJlcXVpcmUgYSBtaWdyYXRpb24uACxDbGFpbVBlcmlvZBAQECcAAAwlASBUaGUgcGVyaW9kIGZvciBjbGFpbWluZyBhIHZvdWNoZXIsIGFmdGVyIGl0IHRoZSB2b3VjaGVycyBjYW4gYmUgcmVtb3ZlZC4AEQEgQ2hhbmdpbmcgdGhpcyB2YWx1ZSBpcyBvayBhdCBhbnkgdGltZSBhbmQgdGFrZXMgZWZmZWN0IGltbWVkaWF0ZWx5LgABvQkAAAA2AAAQR2FtZQEQR2FtZUhsVGVzdG5ldFN0b3JlZFBoYXNlRHVyYXRpb25zAACpBQQABLwgVGhlIG92ZXJyaWRlbiBwaGFzZSBkdXJhdGlvbnMgZm9yIHRoZSB0ZXN0bmV0LgAQTmZ0cwABCAICwQmhAgQAAAA8QXJjaGl2ZWRQbGF5ZXJzAAEEAu0CxQkEAAQpASBBbGwgdGhlIHBsYXllciB3aXRoIHplcm8gc2NvcmUgYnV0IHN0aWxsIG9uYm9hcmRlZCBpbiBpbmRpdl9wYWxsZXRfc2NvcmUuABxQbGF5ZXJzAAEEAu0CyQkEABBwIEFsbCB0aGUgcGxheWVyIGluIHRoZSBnYW1lLgAhASBBY2NvdW50LWJhc2VkIHBsYXllciBhY2NvdW50cyBpbiB0aGlzIHN0b3JhZ2UgYW5kIHN0YXRlbWVudCBhY2NvdW50cyBpbqQgW2BTdG10QWNjb3VudFRvQWxpYXNgXSBtdXN0IG5vdCBvdmVybGFwLgAkR2FtZUluZGV4AQAQEAAAAAAEYCBUaGUgY3VycmVudCBnYW1lIGluZGV4LgAQR2FtZQAA1QkEAATMIFRoZSBpbmZvcm1hdGlvbiBmb3IgdGhlIG5leHQgZ2FtZSBvciBvbmdvaW5nIGdhbWUuACxHYW1lSGlzdG9yeQABBAUQEAQACGEBIFRoZSBtYXBwaW5nIGZyb20gcGFzdCBnYW1lcywgaWRlbnRpZmllZCBieSB0aGVpciBnYW1lIGluZGV4LCB0byB0aGUgc3RhcnQgdGltZXN0YW1wLCBpbnggc2Vjb25kcyBzaW5jZSB0aGUgVU5JWCBlcG9jaC4AXFBsYXllckF0dGVuZGFuY2VIaXN0b3J5AQEEAu0C5QkEAATUIEVudHJpZXMgb2YgcHJldmlvdXNseSBhdHRlbmRlZCBnYW1lcyBvZiBlYWNoIHBsYXllci4ANEluZGV4VG9QbGF5ZXIAAQQF6QntAgQABOQgVGhlIG1hcHBpbmcgZnJvbSByb3VuZCBpbmRleCBhbmQgcGxheWVyIGluZGV4IHRvIHBsYXllci4ANFBsYXllclRvSW5kZXgAAQQC7QLtCQQABOAgVGhlIG1hcHBpbmcgZnJvbSBwbGF5ZXIgdG8gdGhlaXIgaW5kaWNlcyBpbiBlYWNoIHJvdW5kLgBEU2h1ZmZsZVJlY29nbml6ZWQAAQgFBvEJ7QIEAAQBASBTdG9yYWdlIHVzZWQgdG8gY29tcHV0ZSB0aGUgc2h1ZmZsZSBvcmRlciBvZiByZWNvZ25pemVkIHBlb3BsZS4AUFNodWZmbGVOb3RSZWNvZ25pemVkAAEIBQbxCe0CBAAEVQEgU3RvcmFnZSB1c2VkIHRvIGNvbXB1dGUgdGhlIHNodWZmbGUgb3JkZXIgb2Ygbm90IHJlY29nbml6ZWQgcGVvcGxlLCBpLmUuIGNhbmRpZGF0ZXMuADRHYW1lU2NoZWR1bGVzAQD1CQQAAABAQXZhaWxhYmxlSW52aXRlcwEBBAIAEBAAAAAABOggTnVtYmVyIG9mIGludml0ZXMgYXZhaWxhYmxlIHRvIGRpc3RyaWJ1dGUgZm9yIGFuIGFjY291bnQuADhQZW5kaW5nSW52aXRlcwABCAICmQmhAgQAEIggUGVuZGluZyBpbnZpdGVzIGZvciBlYWNoIGludml0ZXIuAGkBIElmIHRoZSBrZXkgYChpbnZpdGVyLCB0aWNrZXQpYCBleGlzdHMgdGhlbiB0aGUgdGlja2V0IGlzIGN1cnJlbnRseSBhIHBlbmRpbmcgaW52aXRlLCBmcm9tNCB0aGUgaW52aXRlci4ASEFsaWFzVG9TdG10QWNjb3VudAABBAIEAAQAHFkBIE1hcHBpbmcgZnJvbSBhbGlhcyB0byB0aGUgYWNjb3VudCBpZCB0byB1c2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIHN0YXRlbWVudCBzdG9yZS4AQQEgQWNjb3VudC1iYXNlZCBwbGF5ZXIgc2ltcGx5IHVzZSB0aGVpciBhY2NvdW50IGFuZCBhcmUgbm90IHBhcnQgb2YgdGhpcyBtYXBwaW5nLgEBIFJldmVyc2UgbWFwcGluZyBpcyBhdmFpbGFibGUgaW4gc3RvcmFnZSBbYFN0bXRBY2NvdW50VG9BbGlhc2BdLgDsIFRoaXMgaXMgcmVtb3ZlZCB3aGVuIHRoZSBhbGlhcy1iYXNlZCBwbGF5ZXIgZ2V0cyBhcmNoaXZlZC5VASBUaGlzIGlzIHVwZGF0ZWQgd2hlbiB0aGUgYWxpYXMtYmFzZWQgcGxheWVyIHNpZ25zIHVwIHdpdGggYW5vdGhlciBzdGF0ZW1lbnQgYWNjb3VudC4ASFN0bXRBY2NvdW50VG9BbGlhcwABBAIABAQAJFkBIE1hcHBpbmcgZnJvbSB0aGUgYWNjb3VudCBpZCB0byB1c2UgZm9yIGludGVyYWN0aW5nIHdpdGggc3RhdGVtZW50IHN0b3JlIHRvIHRoZSBhbGlhcy4AQQEgQWNjb3VudC1iYXNlZCBwbGF5ZXIgc2ltcGx5IHVzZSB0aGVpciBhY2NvdW50IGFuZCBhcmUgbm90IHBhcnQgb2YgdGhpcyBtYXBwaW5nLgEBIFJldmVyc2UgbWFwcGluZyBpcyBhdmFpbGFibGUgaW4gc3RvcmFnZSBbYEFsaWFzVG9TdG10QWNjb3VudGBdLuwgVGhpcyBpcyByZW1vdmVkIHdoZW4gdGhlIGFsaWFzLWJhc2VkIHBsYXllciBnZXRzIGFyY2hpdmVkLlUBIFRoaXMgaXMgdXBkYXRlZCB3aGVuIHRoZSBhbGlhcy1iYXNlZCBwbGF5ZXIgc2lnbnMgdXAgd2l0aCBhbm90aGVyIHN0YXRlbWVudCBhY2NvdW50LgBlASBTdGF0ZW1lbnQgYWNjb3VudHMgaW4gdGhpcyBzdG9yYWdlIGFuZCBhY2NvdW50LWJhc2VkIHBsYXllciBhY2NvdW50cyBpbiBbYFBsYXllcnNgXSBtdXN0NCBub3Qgb3ZlcmxhcC4AYENvbW11bmljYXRpb25JZGVudGlmaWVycwABBAIAUQUEAAxpASBUaGUgY29tbXVuaWNhdGlvbiBpZGVudGlmaWVycyB1c2VkIGJ5IHBsYXllcnMgdG8gZXN0YWJsaXNoIGFuIGVuY3J5cHRlZCBQMlAgY29ubmVjdGlvbiBpbm0BIG9yZGVyIHRvIHBsYXkgdGhlIGdhbWUuIFRoZSBhY2NvdW50IHVuZGVyIHdoaWNoIHRoZSBjb21tdW5pY2F0aW9uIGlkZW50aWZpZXIgaXMgcmVnaXN0ZXJlZBkBIHNob3VsZCBiZSB0aGUgc2FtZSBhY2NvdW50IHVzZWQgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgc3RhdGVtZW50IHN0b3JlLgABiQUAAeUCACAkTWF4Um91bmRzEBADAAAADKAgVGhlIG1heGltdW0gbnVtYmVyIG9mIHJvdW5kcyBpbiBhIGdhbWUuAOggTm90ZTogdGhlIGFjdHVhbCBudW1iZXIgb2Ygcm91bmRzIGlzIGNvbmZpZ3VyZWQgcGVyIGdhbWUuADBNYXhHcm91cFNpemUQEAYAAAAMqCBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGxheWVycyBpbiBhIGdyb3VwLgAZASBOb3RlOiB0aGUgYWN0dWFsIG51bWJlciBvZiBwbGF5ZXJzIGluIGEgZ3JvdXAgaXMgY29uZmlndXJlZCBwZXIgZ2FtZS4AME1pbkdyb3VwU2l6ZRAQAAAAACCoIFRoZSBtaW5pbXVtIG51bWJlciBvZiBwbGF5ZXJzIGluIGEgZ3JvdXAuAGUBIFdoZW4gc2NoZWR1bGluZyBhIGdhbWUgdGhlIHZhbHVlIGZvciBgbWF4X2dyb3VwX3NpemVgIG11c3QgYmUgYXQgbGVhc3QgdGhpcyBtaW5pbXVtICsgMS4AJQEgSW4gb3JkZXIgdG8gaGF2ZSBubyBzaW5nbGUtcGxheWVyIGdyb3VwcywgdGhpcyB2YWx1ZSBtdXN0IGJlIGF0IGxlYXN0IDIuAFEBIE5vdGU6IHRoZSBhY3R1YWwgbWluaW11bSBudW1iZXIgb2YgcGxheWVycyBpbiBhIGdyb3VwIGlzIGNvbmZpZ3VyZWQgcGVyIGdhbWUsIGl0IGlzWCBgbWF4X2dyb3VwX3NpemUgLSAxYC4AVE5vblBsYXlpbmdLaWNrb3V0VGltZRAQQOMJAAwVASBUaGUgdGltZSBhZnRlciB3aGljaCBhIHBsYXllciB0aGF0IGlzIG5vdCBwbGF5aW5nIGNhbiBiZSBraWNrZWQgb3V0LgC8IFRoaXMgaXMgb25seSBmb3IgYWNjb3VudCBwbGF5ZXJzLCBub3QgcGVyc29ucy4AOFBoYXNlRHVyYXRpb25zqQVQLAEAADwAAAAeAAAAWAIAADwAAAAEuCBUaGUgZHVyYXRpb25zIG9mIGVhY2ggZ2FtZSBwaGFzZSwgaW4gc2Vjb25kcy4AQE1heEdhbWVTY2hlZHVsZXMQEAwAAAAE7CBUaGUgTWF4aW11bSBudW1iZXIgb2YgZ2FtZSBzY2hlZHVsZXMgdGhlIHBhbGxldCBjYW4gc3RvcmUuAGRNYXhBdHRlbmRhbmNlSGlzdG9yeURlcHRoEBAMAAAACF0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXN0IGdhbWVzIGZvciB3aGljaCBwbGF5ZXIgYXR0ZW5kYW5jZSBpcyBzdG9yZWQuIEFueSBhdHRlbmRhbmNlAQEgZW50cmllcyBvbGRlciB0aGFuIHRoaXMgd2lsbCBiZSBpbW1pbmVudGx5IHB1cmdlZCBmcm9tIHN0b3JhZ2UuAGxwcm9vZl9vZl9vd25lcnNoaXBfbXNnX2Jhc2UEgHBvcDpnYW1lOnN0bXRfYWNjb3VudF9mb3JfYWxpYXM6EBkBIFRoZSBiYXNlIG1lc3NhZ2Ugb2YgdGhlIHByb29mIG9mIG93bmVyc2hpcCBvZiBhbiBhY2NvdW50IGJ5IGFuIGFsaWFzLgA1ASBUaGUgZnVsbCBtZXNzYWdlIGlzIHRoaXMgYmFzZSBjb25jYXRlbmF0ZWQgdG8gdGhlIGFsaWFzIGFuZCB0aGVuIGhhc2hlZCB3aXRorCBgYmxha2UyXzI1NmAgKGJsYWtlMiB3aXRoIDI1NiBiaXQgb3V0cHV0KS4AAfkJAAg8VGlja2V0U2lnbmF0dXJlSQUEiCBTaWduYXR1cmUgdXNlZCB0byB2ZXJpZnkgdGlja2V0cy5AQWNjb3VudFNpZ25hdHVyZUkFBGAgU2lnbmF0dXJlIGZvciBhY2NvdW50cy4ANwAAFFNjb3JlARRTY29yZRwwUGFydGljaXBhbnRzAAEEAu0C/QkEAAR8IFRoZSBwYXJ0aWNpcGFudHMgaW5mb3JtYXRpb25zLgBIQ3VycmVudFJvdW5kUG9pbnRzAQAQEAAAAAAEtCBUaGUgYWNjdW11bGF0ZWQgcG9pbnRzIGluIHRoZSBjdXJyZW50IHJvdW5kLgBEQ3VycmVudFJvdW5kSW5kZXgBABAQAAAAAByAIFRoZSBpbmRleCBvZiB0aGUgY3VycmVudCByb3VuZC4AXQEgVGhpcyBtdXN0IGJlIHRoZSBzdW0gb2YgYWxsIHBvaW50cyBhY2N1bXVsYXRlZCBpbiBgUm91bmRzUG9pbnRzRm9yUGFydGljaXBhbnRgIGZvciB0aGU8IGN1cnJlbnQgcm91bmQuAFEBICoqV0FSTklORyoqOiBUaGlzIHN0b3JhZ2UgbXVzdCBiZSBjb25zaXN0ZW50IHdpdGggYFJvdW5kc1BvaW50c0ZvclBhcnRpY2lwYW50YCwgdXNltCBgZm4gYWRkX3BvaW50c190b19wYXJ0aWNpcGFudGAgdG8gdXBkYXRlIGl0LgBoUm91bmRzUG9pbnRzRm9yUGFydGljaXBhbnQBAQgCAgkKEBAAAAAAGNAgVGhlIHBvaW50cyBhY2N1bXVsYXRlZCBieSBhIHBhcnRpY2lwYW50IGluIGEgcm91bmQuAFEBIEZvciB0aGUgY3VycmVudCByb3VuZCwgdGhpcyBzdG9yYWdlIG11c3QgYmUgdXBkYXRlZCBhbG9uZ3NpZGUgYEN1cnJlbnRSb3VuZFBvaW50c2AuADEBICoqV0FSTklORyoqOiBUaGlzIHN0b3JhZ2UgbXVzdCBiZSBjb25zaXN0ZW50IHdpdGggYEN1cnJlbnRSb3VuZFBvaW50c2AsIHVzZbQgYGZuIGFkZF9wb2ludHNfdG9fcGFydGljaXBhbnRgIHRvIHVwZGF0ZSBpdC4AMFJvdW5kUGF5b3V0cwABBAIQDQoEABCoIFRoZSByb3VuZHMgdGhhdCBhcmUgY3VycmVudGx5IHBheWluZyBvdXQuABEBIFJvdW5kcyBhcmUgcGF5aW5nIG91dCBhZnRlciB0aGV5IGhhdmUgZmluaXNoZWQgYWNjdW11bGF0aW5nIHBvaW50cy4lASBXaGVuIGFsbCB0aGVpciBwb2ludHMgaGF2ZSBiZWVuIHBhaWQgb3V0LCB0aGV5IGFyZSByZW1vdmVkIGZyb20gc3RvcmFnZS4ANFJvdW5kUGxhbm5pbmcAABEKBAAM/CBUaGUgcGxhbm5pbmcgb2YgdGhlIGN1cnJlbnQgcm91bmQgdGhhdCBpcyBhY2N1bXVsYXRpbmcgcG9pbnRzLgA9ASBJZiBub25lIHRoZSBjdXJyZW50IHJvdW5kIGlzIG9uZ29pbmcgYW5kIHdpbGwgYmUgcGxhbm5lZCBvbiB0aGUgbmV4dCBzY2hlZHVsZS4AOFJvdW5kU2NoZWR1bGVzAQAVCgQABLggRGVzY3JpYmVzIHRoZSBzY2hlZHVsZXMgb2YgdGhlIHBheW91dCByb3VuZHMuAAGtBQAB6QIAHDxQZXJzb25ob29kU2NvcmUQEBUAAAAEqCBUaGUgc2NvcmUgYXQgd2hpY2ggcGVyc29uaG9vZCBpcyByZWFjaGVkLgAsVm91Y2hlclR5cGVdCSQBc2NvcmVnYW0E2CBUaGUgdm91Y2hlciB0eXBlIGZvciBVQkkgYW5kIGNhc2ggb3V0IGluIHRoaXMgcGFsbGV0LgBQQ3VycmVuY3lMb2NhdGlvbkluZm+kJAEDAKEPBDIFDAT0IFRoZSBsb2NhdGlvbiBvZiB0aGUgdXNlZCBjdXJyZW5jeS4gSXQgaXMgaW5mb3JtYXRpb25hbCBvbmx5LgBQT2ZmY2hhaW5Xb3JrSW50ZXJ2YWwQEAIAAAAEsCBUaGUgaW50ZXJ2YWwgYXQgd2hpY2ggb2ZmY2hhaW4gd29ya2VyIHJ1bnMuADBzY29yZV9wb3RfaWQAgG1vZGxzY29yZXBvdAAAAAAAAAAAAAAAAAAAAAAAAAAABOAgR2V0IGEgdW5pcXVlLCBpbmFjY2Vzc2libGUgYWNjb3VudCBJRCBmcm9tIHRoZSBgUG90SWRgLgA0c2NvcmVfY29udGV4dASAcG9wOnBvbGthZG90Lm5ldHdvcmsvc2NvcmUgICAgICAIWQEgVGhlIGNvbnRleHQgdXNlZCBmb3IgdGhlIHByb29mcyByZXF1aXJlZCB0byBhdXRoZW50aWNhdGUgYXMgYSBwZXJzb25hbCBhbGlhcyBpbiBzY29yZSAgcGFsbGV0LgAodWJpX3BvaW50cxAQBgAAAAQVASBUaGUgbnVtYmVyIG9mIHBvaW50cyByZWNlaXZlZCB3aGVuIGF0dGVuZGluZyBhcyBhIHJlY29nbml6ZWQgcGVyc29uLgABIQoABBxWb3VjaGVyyQIEtCBUaGUgdm91Y2hlciB0eXBlIGluIHByaXZhY3kgdm91Y2hlciBzZXJ2aWNlLgA4AAAgRHVtbXlEaW0BIER1bW15RGltCCxSZXNlcnZlZElkcwABBAIwoQIEAATcIFRoZSBwZXJzb25hbCBJRHMgdGhhdCBhcmUgcmVzZXJ2ZWQgYnkgdW5wcm92ZW4gcGVvcGxlLgAYUGVvcGxlAAEEBTAlCgQABLggVGhlIHBlb3BsZSB3ZSB0cmFjayBhbG9uZyB3aXRoIHRoZWlyIHJlY29yZHMuAAG5BQAB8QIAAAEpCgAAADsAAChQZW9wbGVMaXRlAShQZW9wbGVMaXRlCChMaXRlUGVvcGxlAAEEAgAtCgQAAABQQXR0ZXN0YXRpb25BbGxvd2FuY2UBAQQCABAQAAAAAAQpASBOdW1iZXIgb2YgYXR0ZXN0YXRpb25zIGF2YWlsYWJsZSB0byBkaXN0cmlidXRlIGZvciBhIHZlcmlmaWVyIGFjY291bnQgaWQuAAHRBQAB9QIAAAE1CgAEUEF0dGVzdGF0aW9uU2lnbmF0dXJlSQUIYQEgU2lnbmF0dXJlIGdlbmVyYXRlZCBieSBsaXRlIHBlb3BsZSBhbmQgdXNlZCBieSB2ZXJpZmllcnMgdG8gY2xhaW0gYXR0ZXN0YXRpb25zIG9uIHRoZWlyICBiZWhhbGYuAD4AACRSZXNvdXJjZXMBJFJlc291cmNlcxAkQ29uc3VtZXJzAAEEAgA5CgQABCkBIEFjY291bnRzIHVzZWQgdG8gaWRlbnRpZnkgY29uc3VtZXJzIG1hcHBlZCB0byB0aGVpciBjb25zdW1lciBpbmZvcm1hdGlvbi4APFVzZXJuYW1lT3duZXJPZgABBAK5AgAEABhxASBSZXZlcnNlIGxvb2t1cCBmcm9tIGB1c2VybmFtZWAgdG8gdGhlIGBBY2NvdW50SWRgIHRoYXQgaGFzIHJlZ2lzdGVyZWQgaXQuIFRoZSBgb3duZXJgIHZhbHVlZQEgc2hvdWxkIGJlIGEga2V5IGluIHRoZSBgQ29uc3VtZXJzYCBtYXAuIFRoZXJlIGNhbiBiZSBhdCBtb3N0IDIgdXNlcm5hbWVzIHBvaW50aW5nIHRvIHRoZTggc2FtZSBgb3duZXJgOnEBIC0gdXNlcm5hbWUgYXNzb2NpYXRlZCB3aXRoIGEgY29uc3VtZXIncyBsaXRlIHBlcnNvbiBpZGVudGl0eSAtIHRoaXMgd2lsbCBhbHdheXMgYmUgcHJlc2VudDtZASAtIG9wdGlvbmFsbHkgYW5vdGhlciB1c2VybmFtZSBhc3NvY2lhdGVkIHdpdGggdGhlIGNvbnN1bWVyJ3MgZnVsbCBwZXJzb24gaWRlbnRpdHksIGlmOCAgIGFwcGxpY2FibGUuAERSZXNlcnZlZFVzZXJuYW1lcwABBAK5AkEKBAAIaQEgUmV2ZXJzZSBsb29rdXAgZnJvbSBhIHJlc2VydmVkIGB1c2VybmFtZWAgdG8gdGhlIGBBY2NvdW50SWRgIHRoYXQgaGFzIHJlZ2lzdGVyZWQgaXQgYWxvbmdNASB3aXRoIHRoZSB0aW1lc3RhbXAgd2hlbiBpdCBoYXBwZW5lZC4gT2xkIHJlc2VydmF0aW9ucyBjYW4gYmUgcmVtb3ZlZCBmcm9tIHN0b3JhZ2UuADhBY2NvdW50T2ZBbGlhcwABBAIEAAQABGkBIFJldmVyc2UgbG9va3VwIGZyb20gcmVnaXN0ZXJlZCBhbGlhc2VzIHRvIHRoZSBgQWNjb3VudElkYCB1c2VkIHRvIHJlZ2lzdGVyIGFzIGEgY29uc3VtZXIuAAHhBQAB+QIAEERNYXhVc2VybmFtZUxlbmd0aBAQIAAAAAQtASBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSB1c2VybmFtZSwgaW5jbHVkaW5nIGFueSBwb3RlbnRpYWwgdHJhaWxpbmcgZGlnaXRzLgBETWluVXNlcm5hbWVMZW5ndGgQEAcAAAAEiCBUaGUgbWluaW11bSBsZW5ndGggb2YgYSB1c2VybmFtZS4ASFBlcnNvbkF1dGhEdXJhdGlvbhAQAI0nAAxVASBUaGUgZHVyYXRpb24gb2YgdGltZSwgaW4gc2Vjb25kcywgZm9yIHdoaWNoIGEgcGVyc29uJ3MgYXV0aG9yaXphdGlvbiBpcyB2YWxpZC4gQWZ0ZXJRASB0aGlzIHBlcmlvZCBlbGFwc2VzLCBwZW9wbGUgd2lsbCBubyBsb25nZXIgYmUgY29uc2lkZXJlZCBhY3RpdmUsIGJ1dCB0aGVpciByZXNvdXJjZQ0BIGFsbG93YW5jZXMgc2hvdWxkIGRlZmF1bHQgdG8gdGhlIHNhbWUgdmFsdWVzIHVzZWQgZm9yIGxpdGUgcGVvcGxlLgBsTWluUGVyc29uQXV0aFVwZGF0ZUludGVydmFsEBCAlwYACFUBIFRoZSBtaW5pbXVtIGludGVydmFsIG9mIHRpbWUsIGluIHNlY29uZHMsIHdoaWNoIG11c3QgcGFzcyBiZWZvcmUgdXBkYXRpbmcgYSBwZXJzb24nczwgYXV0aG9yaXphdGlvbi4AAUUKAARET2ZmY2hhaW5TaWduYXR1cmVJBQhRASBTaWduYXR1cmUgdHlwZSBmb3IgZW5zdXJpbmcgb3duZXJzaGlwIG9mIHByb3ZpZGVkIGFjY291bnRzIGluIGNhc2Ugb2YgcmVnaXN0cmF0aW9uczwgdGhyb3VnaCBhbGlhcy4APwAAVFN0b3JhZ2VJbml0aWFsaXphdGlvbgAAAAAAAAA8AAAcTG90dGVyeQEcTG90dGVyeSg0RXZlbnRTY2hlZHVsZQEASQoEAAz8IEFsbCB0aGUgc2NoZWR1bGVkIGV2ZW50cy4gSW4gb3JkZXIgb2YgcmVnaXN0cmF0aW9uIHN0YXJ0IHRpbWUuAD0BIFdBUk5JTkc6IFRoaXMgaXRlbSBtdXN0IGJlIGtlcHQgY29uc2lzdGVudCB3aXRoIGBFdmVudFNjaGVkdWxlRmlyc3RTdGFydFRpbWVgLgBsRXZlbnRTY2hlZHVsZUZpcnN0U3RhcnRUaW1lAAAQBAAU7CBUaGUgZmlyc3Qgc3RhcnQgdGltZSBvZiB0aGUgZmlyc3Qgc2NoZWR1bGVkIGV2ZW50LCBpZiBhbnkuACkBIFRoaXMgaXMgdXNlZCB0byBhdm9pZCB0aGUgcHJvb2Ygc2l6ZSBjb3N0IG9mIHJlYWRpbmcgdGhlIGVudGlyZSBzY2hlZHVsZS4ABQEgV0FSTklORzogVGhpcyBpdGVtIG11c3QgYmUga2VwdCBjb25zaXN0ZW50IHdpdGggYEV2ZW50U2NoZWR1bGVgLgAsTmV4dEV2ZW50SWQBABAQAAAAAARoIFRoZSBuZXh0IGdsb2JhbCBldmVudCBpZC4AMEFjdGl2ZUV2ZW50cwABBAUQVQoEAAxsIFRoZSBjdXJyZW50IGFjdGl2ZSBldmVudHMuAAkBIFdBUk5JTkc6IFRoaXMgaXRlbSBtdXN0IGJlIGtlcHQgY29uc2lzdGVudCB3aXRoIGBBY3RpdmVFdmVudElkc2AuADhBY3RpdmVFdmVudElkcwEAXQoEAAyYIFRoZSBpZHMgb2YgdGhlIGN1cnJlbnQgYWN0aXZlIGV2ZW50cy4AAQEgV0FSTklORzogVGhpcyBpdGVtIG11c3QgYmUga2VwdCBjb25zaXN0ZW50IHdpdGggYEFjdGl2ZUV2ZW50c2AuAGxQYXJ0aWNpcGFudElkVG9BbGlhc0FuZERlc3QAAQgFBRkDYQoEAATMIFRoZSBwYXJ0aWNpcGFudCBpZCB0byBhbGlhcyBmb3IgdGhlIGFjdGl2ZSBldmVudHMuAFBQYXJ0aWNpcGFudEFsaWFzVG9JZAABCAUFJQkQBAAEzCBUaGUgcGFydGljaXBhbnQgYWxpYXMgdG8gaWQgZm9yIHRoZSBhY3RpdmUgZXZlbnRzLgBUV2lubmVyc1RvRGlzdHJpYnV0ZVRvAQEEBRBlCgQADA0BIFRoZSB3aW5uZXJzIHRvIHdob20gdG8gZGlzdHJpYnV0ZSB0aGUgcHJpemUgZm9yIHRoZSBhY3RpdmUgZXZlbnRzLgAVASBUaGUgd2lubmVycyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBsaXN0IGFzIHRoZWlyIHByaXplIGlzIGRpc3RyaWJ1dGVkLgBkV2lubmVyc1dpdGhGYWlsZWRUcmFuc2ZlcgABCAUFaQptCgQABA0BIFRoZSBwcml6ZXMgb2Ygd2lubmVycyB0aGF0IGZhaWxlZCB0byBiZSB0cmFuc2ZlcnJlZCBhdXRvbWF0aWNhbGx5LgA0UGFzdExvdHRlcmllcwABBAYQcQoEAAhtASBIaXN0b3JpY2FsIHJlY29yZCBvZiBhbGwgcGFzdCBsb3R0ZXJpZXMgd2hpY2ggY29tcGxldGVkIHN1Y2Nlc3NmdWxseSB1cCB1bnRpbCB0aGUgcG9pbnQgb2acIGRpc3RyaWJ1dGluZyB0aGUgZnVuZHMgdG8gdGhlIHdpbm5lcnMuAAHpBQAB/QIACDhsb3R0ZXJ5X3BvdF9pZACAbW9kbHBvcDpsdHJ5AAAAAAAAAAAAAAAAAAAAAAAAAAAEkCBUaGUgYWNjb3VudCBpZCBmb3IgdGhlIGxvdHRlcnkgcG90LgBQbG90dGVyeV9jb250ZXh0X2Jhc2UlBXBwb3A6cG9sa2Fkb3QubmV0d29yay9sb3R0ZXJ5CF0BIFRoZSBiYXNlIGNvbnRleHQgZm9yIGxvdHRlcmllcy4gRWFjaCBsb3R0ZXJ5IGNvbnRleHQgaXMgZGVyaXZlZCBmcm9tIHRoaXMgYmFzZSBjb250ZXh0zCB3aXRoIHRoZSBsb3R0ZXJ5IGluZGV4IGluIExFIGVuY29kaW5nIGFkZGVkIHRvIGl0LgABfQoAAAA9AABQTXVsdGlCbG9ja01pZ3JhdGlvbnMBUE11bHRpQmxvY2tNaWdyYXRpb25zCBhDdXJzb3IAAPkFBAAM2CBUaGUgY3VycmVudGx5IGFjdGl2ZSBtaWdyYXRpb24gdG8gcnVuIGFuZCBpdHMgY3Vyc29yLgC8IGBOb25lYCBpbmRpY2F0ZXMgdGhhdCBubyBtaWdyYXRpb24gaXMgcnVubmluZy4AIEhpc3RvcmljAAEEBQ0GoQIEABC0IFNldCBvZiBhbGwgc3VjY2Vzc2Z1bGx5IGV4ZWN1dGVkIG1pZ3JhdGlvbnMuAHEBIFRoaXMgaXMgdXNlZCBhcyBibGFja2xpc3QsIHRvIG5vdCByZS1leGVjdXRlIG1pZ3JhdGlvbnMgdGhhdCBoYXZlIG5vdCBiZWVuIHJlbW92ZWQgZnJvbSB0aGUxASBjb2RlYmFzZSB5ZXQuIEdvdmVybmFuY2UgY2FuIHJlZ3VsYXJseSBjbGVhciB0aGlzIG91dCB2aWEgYGNsZWFyX2hpc3RvcmljYC4AAfEFAAEFAwAIMEN1cnNvck1heExlbhAQAAABABCkIFRoZSBtYXhpbWFsIGxlbmd0aCBvZiBhbiBlbmNvZGVkIGN1cnNvci4AZQEgQSBnb29kIGRlZmF1bHQgbmVlZHMgdG8gc2VsZWN0ZWQgc3VjaCB0aGF0IG5vIG1pZ3JhdGlvbiB3aWxsIGV2ZXIgaGF2ZSBhIGN1cnNvciB3aXRoIE1FTAkBIGFib3ZlIHRoaXMgbGltaXQuIFRoaXMgaXMgc3RhdGljYWxseSBjaGVja2VkIGluIGBpbnRlZ3JpdHlfdGVzdGAuAEBJZGVudGlmaWVyTWF4TGVuEBAAAQAAELQgVGhlIG1heGltYWwgbGVuZ3RoIG9mIGFuIGVuY29kZWQgaWRlbnRpZmllci4AVQEgQSBnb29kIGRlZmF1bHQgbmVlZHMgdG8gc2VsZWN0ZWQgc3VjaCB0aGF0IG5vIG1pZ3JhdGlvbiB3aWxsIGV2ZXIgaGF2ZSBhbiBpZGVudGlmaWVyLQEgd2l0aCBNRUwgYWJvdmUgdGhpcyBsaW1pdC4gVGhpcyBpcyBzdGF0aWNhbGx5IGNoZWNrZWQgaW4gYGludGVncml0eV90ZXN0YC4AAYEKAAAAYgAACAQFvQNpA0kFBABEAAQIDBAUGBwgJCgsMDQ4PEBEUFZlcmlmeU11bHRpU2lnbmF0dXJlLQahAiBBc1BlcnNvbjEGoQJcQXNQcm9vZk9mSW5rUGFydGljaXBhbnQ9BqECYFByb3ZpZGVGb3JWb3VjaGVyQ2xhaW1lckkGoQJIU2NvcmVBc1BhcnRpY2lwYW50TQahAjRHYW1lQXNJbnZpdGVkWQahAjhQZW9wbGVMaXRlQXV0aGUGoQI8UmVzdHJpY3RPcmlnaW5zcQahAkhDaGVja05vblplcm9TZW5kZXJ1BqECQENoZWNrU3BlY1ZlcnNpb255BhA4Q2hlY2tUeFZlcnNpb259BhAwQ2hlY2tHZW5lc2lzgQY0OENoZWNrTW9ydGFsaXR5hQY0KENoZWNrTm9uY2WNBqECLENoZWNrV2VpZ2h0kQahAlBDaGFyZ2VBc3NldFR4UGF5bWVudJUGoQJQU3RvcmFnZVdlaWdodFJlY2xhaW2hAqECVBxBdXJhQXBpCDRzbG90X2R1cmF0aW9uAIUKDJAgUmV0dXJucyB0aGUgc2xvdCBkdXJhdGlvbiBmb3IgQXVyYS4AJQEgQ3VycmVudGx5LCBvbmx5IHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGlzIHR5cGUgYXQgZ2VuZXNpcyB3aWxsIGJlIHVzZWQuACxhdXRob3JpdGllcwDBBwScIFJldHVybiB0aGUgY3VycmVudCBzZXQgb2YgYXV0aG9yaXRpZXMuAAS4IEFQSSBuZWNlc3NhcnkgZm9yIGJsb2NrIGF1dGhvcnNoaXAgd2l0aCBhdXJhLgQAUFJlbGF5UGFyZW50T2Zmc2V0QXBpBExyZWxheV9wYXJlbnRfb2Zmc2V0ABAE9CBGZXRjaCB0aGUgc2xvdCBvZmZzZXQgdGhhdCBpcyBleHBlY3RlZCBmcm9tIHRoZSByZWxheSBjaGFpbi4AEAUBIEFQSSB0byB0ZWxsIHRoZSBub2RlIHNpZGUgaG93IHRoZSByZWxheSBwYXJlbnQgc2hvdWxkIGJlIGNob3Nlbi4AaQEgQSBsYXJnZXIgb2Zmc2V0IGluZGljYXRlcyB0aGF0IHRoZSByZWxheSBwYXJlbnQgc2hvdWxkIG5vdCBiZSB0aGUgdGlwIG9mIHRoZSByZWxheSBjaGFpbiwxASBidXQgYE5gIGJsb2NrcyBiZWhpbmQgdGhlIHRpcC4gVGhpcyBvZmZzZXQgaXMgdGhlbiBlbmZvcmNlZCBieSB0aGUgcnVudGltZS4EAGBBdXJhVW5pbmNsdWRlZFNlZ21lbnRBcGkEOGNhbl9idWlsZF91cG9uCDRpbmNsdWRlZF9oYXNoNBBzbG90xQcgKDkBIFdoZXRoZXIgaXQgaXMgbGVnYWwgdG8gZXh0ZW5kIHRoZSBjaGFpbiwgYXNzdW1pbmcgdGhlIGdpdmVuIGJsb2NrIGlzIHRoZSBtb3N0NQEgcmVjZW50bHkgaW5jbHVkZWQgb25lIGFzLW9mIHRoZSByZWxheSBwYXJlbnQgdGhhdCB3aWxsIGJlIGJ1aWx0IGFnYWluc3QsIGFuZHAgdGhlIGdpdmVuIHJlbGF5IGNoYWluIHNsb3QuAFEBIFRoaXMgc2hvdWxkIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgbG9naWMgdGhlIHJ1bnRpbWUgdXNlcyB3aGVuIHZhbGlkYXRpbmcgYmxvY2tzIHRvOCBhdm9pZCBpc3N1ZXMuAGEBIFdoZW4gdGhlIHVuaW5jbHVkZWQgc2VnbWVudCBpcyBlbXB0eSwgaS5lLiBgaW5jbHVkZWRfaGFzaCA9PSBhdGAsIHdoZXJlIGF0IGlzIHRoZSBibG9ja2EBIHdob3NlIHN0YXRlIHdlIGFyZSBxdWVyeWluZyBhZ2FpbnN0LCB0aGlzIG11c3QgYWx3YXlzIHJldHVybiBgdHJ1ZWAgYXMgbG9uZyBhcyB0aGUgc2xvdLwgaXMgbW9yZSByZWNlbnQgdGhhbiB0aGUgaW5jbHVkZWQgYmxvY2sgaXRzZWxmLgA0NQEgVGhpcyBydW50aW1lIEFQSSBpcyB1c2VkIHRvIGluZm9ybSBwb3RlbnRpYWwgYmxvY2sgYXV0aG9ycyB3aGV0aGVyIHRoZXkgd2lsbCUBIGhhdmUgdGhlIHJpZ2h0IHRvIGF1dGhvciBhdCBhIHNsb3QsIGFzc3VtaW5nIHRoZXkgaGF2ZSBjbGFpbWVkIHRoZSBzbG90LgB1ASBJbiBwYXJ0aWN1bGFyLCB0aGlzIEFQSSBhbGxvd3MgQXVyYS1iYXNlZCBwYXJhY2hhaW5zIHRvIHJlZ3VsYXRlIHRoZWlyICJ1bmluY2x1ZGVkIHNlZ21lbnQiLG0BIHdoaWNoIGlzIHRoZSBzZWN0aW9uIG9mIHRoZSBoZWFkIG9mIHRoZSBjaGFpbiB3aGljaCBoYXMgbm90IHlldCBiZWVuIG1hZGUgYXZhaWxhYmxlIGluIHRoZTQgcmVsYXkgY2hhaW4uAGEBIFdoZW4gdGhlIHVuaW5jbHVkZWQgc2VnbWVudCBpcyBzaG9ydCwgQXVyYSBjaGFpbnMgd2lsbCBhbGxvdyBhdXRob3JzIHRvIGNyZWF0ZSBtdWx0aXBsZV0BIGJsb2NrcyBwZXIgc2xvdCBpbiBvcmRlciB0byBidWlsZCBhIGJhY2tsb2cuIFdoZW4gaXQgaXMgc2F0dXJhdGVkLCB0aGlzIEFQSSB3aWxsIGxpbWl0qCB0aGUgYW1vdW50IG9mIGJsb2NrcyB0aGF0IGNhbiBiZSBjcmVhdGVkLgAkIENoYW5nZXM6kQEgLSBWZXJzaW9uIDI6IFVwZGF0ZSB0byBgY2FuX2J1aWxkX3Vwb25gIHRvIHRha2UgYSByZWxheSBjaGFpbiBgU2xvdGAgaW5zdGVhZCBvZiBhIHBhcmFjaGFpbiBgU2xvdGAuCAAQQ29yZQwcdmVyc2lvbgBVAwSQIFJldHVybnMgdGhlIHZlcnNpb24gb2YgdGhlIHJ1bnRpbWUuADRleGVjdXRlX2Jsb2NrBBRibG9jaxkGoQIEZCBFeGVjdXRlIHRoZSBnaXZlbiBibG9jay4AQGluaXRpYWxpemVfYmxvY2sEGGhlYWRlcqUDiQoEQQEgSW5pdGlhbGl6ZSBhIGJsb2NrIHdpdGggdGhlIGdpdmVuIGhlYWRlciBhbmQgcmV0dXJuIHRoZSBydW50aW1lIGV4ZWN1dGl2ZSBtb2RlLgAEIQEgVGhlIGBDb3JlYCBydW50aW1lIGFwaSB0aGF0IGV2ZXJ5IFN1YnN0cmF0ZSBydW50aW1lIG5lZWRzIHRvIGltcGxlbWVudC4UACBNZXRhZGF0YQwgbWV0YWRhdGEAjQoEjCBSZXR1cm5zIHRoZSBtZXRhZGF0YSBvZiBhIHJ1bnRpbWUuAExtZXRhZGF0YV9hdF92ZXJzaW9uBBx2ZXJzaW9uEJEKEKQgUmV0dXJucyB0aGUgbWV0YWRhdGEgYXQgYSBnaXZlbiB2ZXJzaW9uLgAFASBJZiB0aGUgZ2l2ZW4gYHZlcnNpb25gIGlzbid0IHN1cHBvcnRlZCwgdGhpcyB3aWxsIHJldHVybiBgTm9uZWAudQEgVXNlIFtgU2VsZjo6bWV0YWRhdGFfdmVyc2lvbnNgXSB0byBmaW5kIG91dCBhYm91dCBzdXBwb3J0ZWQgbWV0YWRhdGEgdmVyc2lvbiBvZiB0aGUgcnVudGltZS4ARG1ldGFkYXRhX3ZlcnNpb25zANECDKQgUmV0dXJucyB0aGUgc3VwcG9ydGVkIG1ldGFkYXRhIHZlcnNpb25zLgDAIFRoaXMgY2FuIGJlIHVzZWQgdG8gY2FsbCBgbWV0YWRhdGFfYXRfdmVyc2lvbmAuAAQBASBUaGUgYE1ldGFkYXRhYCBhcGkgdHJhaXQgdGhhdCByZXR1cm5zIG1ldGFkYXRhIGZvciB0aGUgcnVudGltZS4IADBCbG9ja0J1aWxkZXIQPGFwcGx5X2V4dHJpbnNpYwQkZXh0cmluc2ljHQaVChBsIEFwcGx5IHRoZSBnaXZlbiBleHRyaW5zaWMuADkBIFJldHVybnMgYW4gaW5jbHVzaW9uIG91dGNvbWUgd2hpY2ggc3BlY2lmaWVzIGlmIHRoaXMgZXh0cmluc2ljIGlzIGluY2x1ZGVkIGluTCB0aGlzIGJsb2NrIG9yIG5vdC4AOGZpbmFsaXplX2Jsb2NrAKUDBGggRmluaXNoIHRoZSBjdXJyZW50IGJsb2NrLgBMaW5oZXJlbnRfZXh0cmluc2ljcwQgaW5oZXJlbnSlCpkGBD0BIEdlbmVyYXRlIGluaGVyZW50IGV4dHJpbnNpY3MuIFRoZSBpbmhlcmVudCBkYXRhIHdpbGwgdmFyeSBmcm9tIGNoYWluIHRvIGNoYWluLgA8Y2hlY2tfaW5oZXJlbnRzCBRibG9jaxkGEGRhdGGlCrUKBFUBIENoZWNrIHRoYXQgdGhlIGluaGVyZW50cyBhcmUgdmFsaWQuIFRoZSBpbmhlcmVudCBkYXRhIHdpbGwgdmFyeSBmcm9tIGNoYWluIHRvIGNoYWluLgAEcQEgVGhlIGBCbG9ja0J1aWxkZXJgIGFwaSB0cmFpdCB0aGF0IHByb3ZpZGVzIHRoZSByZXF1aXJlZCBmdW5jdGlvbmFsaXR5IGZvciBidWlsZGluZyBhIGJsb2NrLhgAWFRhZ2dlZFRyYW5zYWN0aW9uUXVldWUEUHZhbGlkYXRlX3RyYW5zYWN0aW9uDBhzb3VyY2W5Cgh0eB0GKGJsb2NrX2hhc2g0vQokaCBWYWxpZGF0ZSB0aGUgdHJhbnNhY3Rpb24uAGUBIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYnkgdGhlIHRyYW5zYWN0aW9uIHBvb2wgdG8gbGVhcm4gZGV0YWlscyBhYm91dCBnaXZlbiB0cmFuc2FjdGlvbi5FASBUaGUgaW1wbGVtZW50YXRpb24gc2hvdWxkIG1ha2Ugc3VyZSB0byB2ZXJpZnkgdGhlIGNvcnJlY3RuZXNzIG9mIHRoZSB0cmFuc2FjdGlvbk0BIGFnYWluc3QgY3VycmVudCBzdGF0ZS4gVGhlIGdpdmVuIGBibG9ja19oYXNoYCBjb3JyZXNwb25kcyB0byB0aGUgaGFzaCBvZiB0aGUgYmxvY2t8IHRoYXQgaXMgdXNlZCBhcyBjdXJyZW50IHN0YXRlLgBFASBOb3RlIHRoYXQgdGhpcyBjYWxsIG1heSBiZSBwZXJmb3JtZWQgYnkgdGhlIHBvb2wgbXVsdGlwbGUgdGltZXMgYW5kIHRyYW5zYWN0aW9uc6QgbWlnaHQgYmUgdmVyaWZpZWQgaW4gYW55IHBvc3NpYmxlIG9yZGVyLgAETQEgVGhlIGBUYWdnZWRUcmFuc2FjdGlvblF1ZXVlYCBhcGkgdHJhaXQgZm9yIGludGVyZmVyaW5nIHdpdGggdGhlIHRyYW5zYWN0aW9uIHF1ZXVlLgwARE9mZmNoYWluV29ya2VyQXBpBDxvZmZjaGFpbl93b3JrZXIEGGhlYWRlcqUDoQIEyCBTdGFydHMgdGhlIG9mZi1jaGFpbiB0YXNrIGZvciBnaXZlbiBibG9jayBoZWFkZXIuAARkIFRoZSBvZmZjaGFpbiB3b3JrZXIgYXBpLggALFNlc3Npb25LZXlzCFRnZW5lcmF0ZV9zZXNzaW9uX2tleXMEEHNlZWQJAzgcFQEgR2VuZXJhdGUgYSBzZXQgb2Ygc2Vzc2lvbiBrZXlzIHdpdGggb3B0aW9uYWxseSB1c2luZyB0aGUgZ2l2ZW4gc2VlZC4JASBUaGUga2V5cyBzaG91bGQgYmUgc3RvcmVkIHdpdGhpbiB0aGUga2V5c3RvcmUgZXhwb3NlZCB2aWEgcnVudGltZTwgZXh0ZXJuYWxpdGllcy4AsCBUaGUgc2VlZCBuZWVkcyB0byBiZSBhIHZhbGlkIGB1dGY4YCBzdHJpbmcuANAgUmV0dXJucyB0aGUgY29uY2F0ZW5hdGVkIFNDQUxFIGVuY29kZWQgcHVibGljIGtleXMuAExkZWNvZGVfc2Vzc2lvbl9rZXlzBBxlbmNvZGVkOMUKDJggRGVjb2RlIHRoZSBnaXZlbiBwdWJsaWMgc2Vzc2lvbiBrZXlzLgDcIFJldHVybnMgdGhlIGxpc3Qgb2YgcHVibGljIHJhdyBwdWJsaWMga2V5cyArIGtleSB0eXBlLgAEaCBTZXNzaW9uIGtleXMgcnVudGltZSBhcGkuBAA8QWNjb3VudE5vbmNlQXBpBDRhY2NvdW50X25vbmNlBBxhY2NvdW50ABAEwCBHZXQgY3VycmVudCBhY2NvdW50IG5vbmNlIG9mIGdpdmVuIGBBY2NvdW50SWRgLgAEgCBUaGUgQVBJIHRvIHF1ZXJ5IGFjY291bnQgbm9uY2UuBABUVHJhbnNhY3Rpb25QYXltZW50QXBpEChxdWVyeV9pbmZvCAx1eHQdBgxsZW4Q0QoAAERxdWVyeV9mZWVfZGV0YWlscwgMdXh0HQYMbGVuENUKAABMcXVlcnlfd2VpZ2h0X3RvX2ZlZQQYd2VpZ2h0KBgAAExxdWVyeV9sZW5ndGhfdG9fZmVlBBhsZW5ndGgQGAAAABAAZFRyYW5zYWN0aW9uUGF5bWVudENhbGxBcGkQPHF1ZXJ5X2NhbGxfaW5mbwgQY2FsbGkDDGxlbhDRCgRJASBRdWVyeSBpbmZvcm1hdGlvbiBvZiBhIGRpc3BhdGNoIGNsYXNzLCB3ZWlnaHQsIGFuZCBmZWUgb2YgYSBnaXZlbiBlbmNvZGVkIGBDYWxsYC4AWHF1ZXJ5X2NhbGxfZmVlX2RldGFpbHMIEGNhbGxpAwxsZW4Q1QoEtCBRdWVyeSBmZWUgZGV0YWlscyBvZiBhIGdpdmVuIGVuY29kZWQgYENhbGxgLgBMcXVlcnlfd2VpZ2h0X3RvX2ZlZQQYd2VpZ2h0KBgEAQEgUXVlcnkgdGhlIG91dHB1dCBvZiB0aGUgY3VycmVudCBgV2VpZ2h0VG9GZWVgIGdpdmVuIHNvbWUgaW5wdXQuAExxdWVyeV9sZW5ndGhfdG9fZmVlBBhsZW5ndGgQGAQBASBRdWVyeSB0aGUgb3V0cHV0IG9mIHRoZSBjdXJyZW50IGBMZW5ndGhUb0ZlZWAgZ2l2ZW4gc29tZSBpbnB1dC4AAAwANFhjbVBheW1lbnRBcGkQfHF1ZXJ5X2FjY2VwdGFibGVfcGF5bWVudF9hc3NldHMELHhjbV92ZXJzaW9uEOEKFLQgUmV0dXJucyBhIGxpc3Qgb2YgYWNjZXB0YWJsZSBwYXltZW50IGFzc2V0cy4AMCAjIEFyZ3VtZW50cwBoICogYHhjbV92ZXJzaW9uYDogVmVyc2lvbi4AQHF1ZXJ5X3hjbV93ZWlnaHQEHG1lc3NhZ2XtA+0KFKggUmV0dXJucyBhIHdlaWdodCBuZWVkZWQgdG8gZXhlY3V0ZSBhIFhDTS4AMCAjIEFyZ3VtZW50cwB0ICogYG1lc3NhZ2VgOiBgVmVyc2lvbmVkWGNtYC4AZHF1ZXJ5X3dlaWdodF90b19hc3NldF9mZWUIGHdlaWdodCgUYXNzZXSZBPEKGOggQ29udmVydHMgYSB3ZWlnaHQgaW50byBhIGZlZSBmb3IgdGhlIHNwZWNpZmllZCBgQXNzZXRJZGAuADAgIyBBcmd1bWVudHMAiCAqIGB3ZWlnaHRgOiBjb252ZXJ0aWJsZSBgV2VpZ2h0YC58ICogYGFzc2V0YDogYFZlcnNpb25lZEFzc2V0SWRgLgBMcXVlcnlfZGVsaXZlcnlfZmVlcwgsZGVzdGluYXRpb26BAhxtZXNzYWdl7QP1CiAdASBHZXQgZGVsaXZlcnkgZmVlcyBmb3Igc2VuZGluZyBhIHNwZWNpZmljIGBtZXNzYWdlYCB0byBhIGBkZXN0aW5hdGlvbmAu9CBUaGVzZSBhbHdheXMgY29tZSBpbiBhIHNwZWNpZmljIGFzc2V0LCBkZWZpbmVkIGJ5IHRoZSBjaGFpbi4AMCAjIEFyZ3VtZW50c4EBICogYG1lc3NhZ2VgOiBUaGUgbWVzc2FnZSB0aGF0J2xsIGJlIHNlbnQsIG5lY2Vzc2FyeSBiZWNhdXNlIG1vc3QgZGVsaXZlcnkgZmVlcyBhcmUgYmFzZWQgb24gdGhlXCAgIHNpemUgb2YgdGhlIG1lc3NhZ2UuYQEgKiBgZGVzdGluYXRpb25gOiBUaGUgZGVzdGluYXRpb24gdG8gc2VuZCB0aGUgbWVzc2FnZSB0by4gRGlmZmVyZW50IGRlc3RpbmF0aW9ucyBtYXkgdXNlwCAgIGRpZmZlcmVudCBzZW5kZXJzIHRoYXQgY2hhcmdlIGRpZmZlcmVudCBmZWVzLgAscCBBIHRyYWl0IG9mIFhDTSBwYXltZW50IEFQSS4AqCBBUEkgcHJvdmlkZXMgZnVuY3Rpb25hbGl0eSBmb3Igb2J0YWluaW5nOgDEICogdGhlIHdlaWdodCByZXF1aXJlZCB0byBleGVjdXRlIGFuIFhDTSBtZXNzYWdlLAUBICogYSBsaXN0IG9mIGFjY2VwdGFibGUgYEFzc2V0SWRgcyBmb3IgbWVzc2FnZSBleGVjdXRpb24gcGF5bWVudCwBASAqIHRoZSBjb3N0IG9mIHRoZSB3ZWlnaHQgaW4gdGhlIHNwZWNpZmllZCBhY2NlcHRhYmxlIGBBc3NldElkYC6gICogdGhlIGZlZXMgZm9yIGFuIFhDTSBtZXNzYWdlIGRlbGl2ZXJ5LgDwIFRvIGRldGVybWluZSB0aGUgZXhlY3V0aW9uIHdlaWdodCBvZiB0aGUgY2FsbHMgcmVxdWlyZWQgZm9ydQEgW2B4Y206OmxhdGVzdDo6SW5zdHJ1Y3Rpb246OlRyYW5zYWN0YF0gaW5zdHJ1Y3Rpb24sIGBUcmFuc2FjdGlvblBheW1lbnRDYWxsQXBpYCBjYW4gYmUgdXNlZC4EAFBMb2NhdGlvblRvQWNjb3VudEFwaQRAY29udmVydF9sb2NhdGlvbgQgbG9jYXRpb26BAvkKBJAgQ29udmVydHMgYExvY2F0aW9uYCB0byBgQWNjb3VudElkYC4ABA0BIEFQSSBmb3IgdXNlZnVsIGNvbnZlcnNpb25zIGJldHdlZW4gWENNIGBMb2NhdGlvbmAgYW5kIGBBY2NvdW50SWRgLgQAKE1vYlJ1bGVBcGkEIHZvdGVkX29uCBR2b3RlcgQkZG9uZV9vbmx5INECDFkBIFJldHVybnMgYSBsaXN0IG9mIGNhc2VzIHdoZXJlIHRoZSB1c2VyIGhhcyBhIHZvdGUgc3RvcmVkIG9uIGNoYWluLiBJZiB0aGUgYGRvbmVfb25seWBVASBmbGFnIGlzIHNldCwgb25seSBjYXNlcyB0aGF0IGFyZSBkb25lIGFuZCByZWFkeSB0byBiZSBjbGFpbWVkIHdpbGwgYmUgcmV0dXJuZWQuIFRoaXMFASBmdW5jdGlvbiBkb2VzIG5vdCB0YWtlIHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgdm90ZSBpbnRvIGFjY291bnQuAAS0IFRoZSBBUEkgdG8gcXVlcnkgdGhlIHJld2FyZHMgZm9yIG1vYiBjcmVkaXQuBAA0UHJvb2ZPZklua0FwaQREY2FuZGlkYWN5X2RlcG9zaXQAGATUIFJldHVybnMgdGhlIGRlcG9zaXQgbmVjZXNzYXJ5IHRvIGJlY29tZSBhIGNhbmRpZGF0ZS4ABOwgVGhlIEFQSSB0byBxdWVyeSB0aGUgZGVwb3NpdCBmb3IgYSBwcm9vZiBvZiBpbmsgY2FuZGlkYWN5LgQARFByaXZhY3lWb3VjaGVyQXBpBDR2b3VjaGVyX3ZhbHVlBAhpZJUBAQsEpCBSZXR1cm5zIHRoZSB2YWx1ZSBvZiBhIHZhcmlhYmxlIHZvdWNoZXIuAATIIFRoZSBBUEkgdG8gcXVlcnkgdGhlIHZhbHVlIG9mIGEgdmFyaWFibGUgdm91Y2hlci4EADRQYWxsZXRHYW1lQXBpCDBwbGF5X2RlcG9zaXQAGAS4IFJldHVybnMgdGhlIGRlcG9zaXQgbmVjZXNzYXJ5IHRvIHBsYXkgYSBnYW1lLgB4dmFsaWRhdGVfc3RhdGVtZW50X3dpdGhfcmVhc29uCBhzb3VyY2UFCyRzdGF0ZW1lbnQJCx0LBAUBIFN0YXRlbWVudCB2YWxpZGF0aW9uIHdpdGggcHJlY2lzZSByZWFzb24gZm9yIGludmFsaWQgc3RhdGVtZW50cy4ABKwgVGhlIEFQSSB0byBxdWVyeSB0aGUgZGVwb3NpdCBmb3IgZ2FtZXBsYXkuBABQQ29sbGVjdENvbGxhdGlvbkluZm8EWGNvbGxlY3RfY29sbGF0aW9uX2luZm8EGGhlYWRlcqUDKQsQnCBDb2xsZWN0IGluZm9ybWF0aW9uIGFib3V0IGEgY29sbGF0aW9uLgD0IFRoZSBnaXZlbiBgaGVhZGVyYCBpcyB0aGUgaGVhZGVyIG9mIHRoZSBidWlsdCBibG9jayBmb3IgdGhhdKggd2UgYXJlIGNvbGxlY3RpbmcgdGhlIGNvbGxhdGlvbiBpbmZvIGZvci4AFNggUnVudGltZSBhcGkgdG8gY29sbGVjdCBpbmZvcm1hdGlvbiBhYm91dCBhIGNvbGxhdGlvbi4ARCBWZXJzaW9uIGhpc3Rvcnk6AQEgLSBWZXJzaW9uIDI6IENoYW5nZWQgW2BTZWxmOjpjb2xsZWN0X2NvbGxhdGlvbl9pbmZvYF0gc2lnbmF0dXJlNQEgLSBWZXJzaW9uIDM6IFNpZ25hbHMgdG8gdGhlIG5vZGUgdG8gdXNlIHZlcnNpb24gMSBvZiBbYFBhcmFjaGFpbkJsb2NrRGF0YWBdLgwAOEdlbmVzaXNCdWlsZGVyDCxidWlsZF9zdGF0ZQQQanNvbjg1CyhlASBCdWlsZCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZyb20gYSBKU09OIGJsb2Igbm90IHVzaW5nIGFueSBkZWZhdWx0cyBhbmQgc3RvcmUgaXQgaW4gdGhlJCBzdG9yYWdlLgApASBJbiB0aGUgY2FzZSBvZiBhIEZSQU1FLWJhc2VkIHJ1bnRpbWUsIHRoaXMgZnVuY3Rpb24gZGVzZXJpYWxpemVzIHRoZSBmdWxsVQEgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBmcm9tIHRoZSBnaXZlbiBKU09OIGJsb2IgYW5kIHB1dHMgaXQgaW50byB0aGUgc3RvcmFnZS4gSWYgdGhlVQEgcHJvdmlkZWQgSlNPTiBibG9iIGlzIGluY29ycmVjdCBvciBpbmNvbXBsZXRlIG9yIHRoZSBkZXNlcmlhbGl6YXRpb24gZmFpbHMsIGFuIGVycm9yNCBpcyByZXR1cm5lZC4AXQEgUGxlYXNlIG5vdGUgdGhhdCBwcm92aWRlZCBKU09OIGJsb2IgbXVzdCBjb250YWluIGFsbCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZpZWxkcywgbm9cIGRlZmF1bHRzIHdpbGwgYmUgdXNlZC4AKGdldF9wcmVzZXQECGlkOQsJAzhhASBSZXR1cm5zIGEgSlNPTiBibG9iIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBidWlsdC1pbiBgUnVudGltZUdlbmVzaXNDb25maWdgIGlkZW50aWZpZWQgYnkYIGBpZGAuAFUBIElmIGBpZGAgaXMgYE5vbmVgIHRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIEpTT04gYmxvYiByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGVmYXVsdEkBIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2Agc3RydWN0IG9mIHRoZSBydW50aW1lLiBJbXBsZW1lbnRhdGlvbiBtdXN0IHByb3ZpZGUgZGVmYXVsdGAgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYC4AIQEgT3RoZXJ3aXNlIGZ1bmN0aW9uIHJldHVybnMgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBidWlsdC1pbiwgbmFtZWRRASBgUnVudGltZUdlbmVzaXNDb25maWdgIHByZXNldCBpZGVudGlmaWVkIGJ5IGBpZGAsIG9yIGBOb25lYCBpZiBzdWNoIHByZXNldCBkb2VzIG5vdGEBIGV4aXN0LiBSZXR1cm5lZCBgVmVjPHU4PmAgY29udGFpbnMgYnl0ZXMgb2YgSlNPTiBibG9iIChwYXRjaCkgd2hpY2ggY29tcHJpc2VzIGEgbGlzdCBvZk0BIChwb3RlbnRpYWxseSBuZXN0ZWQpIGtleS12YWx1ZSBwYWlycyB0aGF0IGFyZSBpbnRlbmRlZCBmb3IgY3VzdG9taXppbmcgdGhlIGRlZmF1bHRlASBydW50aW1lIGdlbmVzaXMgY29uZmlnLiBUaGUgcGF0Y2ggc2hhbGwgYmUgbWVyZ2VkIChyZmM3Mzg2KSB3aXRoIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uYQEgb2YgdGhlIGRlZmF1bHQgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCB0byBjcmVhdGUgYSBjb21wcmVoZW5zaXZlIGdlbmVzaXMgY29uZmlnIHRoYXQgY2FuhCBiZSB1c2VkIGluIGBidWlsZF9zdGF0ZWAgbWV0aG9kLgAwcHJlc2V0X25hbWVzAD0LEFEBIFJldHVybnMgYSBsaXN0IG9mIGlkZW50aWZpZXJzIGZvciBhdmFpbGFibGUgYnVpbHRpbiBgUnVudGltZUdlbmVzaXNDb25maWdgIHByZXNldHMuAGEBIFRoZSBwcmVzZXRzIGZyb20gdGhlIGxpc3QgY2FuIGJlIHF1ZXJpZWQgd2l0aCBbYEdlbmVzaXNCdWlsZGVyOjpnZXRfcHJlc2V0YF0gbWV0aG9kLiBJZgEBIG5vIG5hbWVkIHByZXNldHMgYXJlIHByb3ZpZGVkIGJ5IHRoZSBydW50aW1lIHRoZSBsaXN0IGlzIGVtcHR5LgAE8CBBUEkgdG8gaW50ZXJhY3Qgd2l0aCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZvciB0aGUgcnVudGltZQQARFZhbGlkYXRlU3RhdGVtZW50BEh2YWxpZGF0ZV9zdGF0ZW1lbnQIGHNvdXJjZQULJHN0YXRlbWVudAkLQQsEYCBWYWxpZGF0ZSB0aGUgc3RhdGVtZW50LgAEsCBSdW50aW1lIEFQSSB0cmFpdCBmb3Igc3RhdGVtZW50IHZhbGlkYXRpb24uBABpA1RJCwA=";
82
+ people_lite_metadata_default = binMeta;
83
+ }
84
+ });
85
+
86
+ // .papi/descriptors/src/index.ts
87
+ var index_exports = {};
88
+ __export(index_exports, {
89
+ ArithmeticError: () => ArithmeticError,
90
+ BalanceStatus: () => BalanceStatus,
91
+ BalancesAdjustmentDirection: () => BalancesAdjustmentDirection,
92
+ BalancesTypesReasons: () => BalancesTypesReasons,
93
+ DigestItem: () => DigestItem,
94
+ DispatchClass: () => DispatchClass,
95
+ IdentityData: () => IdentityData,
96
+ MultiAddress: () => MultiAddress,
97
+ MultiSignature: () => MultiSignature,
98
+ Phase: () => Phase,
99
+ TokenError: () => TokenError,
100
+ TransactionPaymentEvent: () => TransactionPaymentEvent,
101
+ TransactionPaymentReleases: () => TransactionPaymentReleases,
102
+ TransactionValidityTransactionSource: () => TransactionValidityTransactionSource,
103
+ TransactionValidityUnknownTransaction: () => TransactionValidityUnknownTransaction,
104
+ TransactionalError: () => TransactionalError,
105
+ UpgradeGoAhead: () => UpgradeGoAhead,
106
+ UpgradeRestriction: () => UpgradeRestriction,
107
+ XcmPalletVersionMigrationStage: () => XcmPalletVersionMigrationStage,
108
+ XcmV2JunctionBodyPart: () => XcmV2JunctionBodyPart,
109
+ XcmV2MultiassetWildFungibility: () => XcmV2MultiassetWildFungibility,
110
+ XcmV2OriginKind: () => XcmV2OriginKind,
111
+ XcmV3Instruction: () => XcmV3Instruction,
112
+ XcmV3Junction: () => XcmV3Junction,
113
+ XcmV3JunctionBodyId: () => XcmV3JunctionBodyId,
114
+ XcmV3JunctionNetworkId: () => XcmV3JunctionNetworkId,
115
+ XcmV3Junctions: () => XcmV3Junctions,
116
+ XcmV3MaybeErrorCode: () => XcmV3MaybeErrorCode,
117
+ XcmV3MultiassetAssetId: () => XcmV3MultiassetAssetId,
118
+ XcmV3MultiassetAssetInstance: () => XcmV3MultiassetAssetInstance,
119
+ XcmV3MultiassetFungibility: () => XcmV3MultiassetFungibility,
120
+ XcmV3MultiassetMultiAssetFilter: () => XcmV3MultiassetMultiAssetFilter,
121
+ XcmV3MultiassetWildMultiAsset: () => XcmV3MultiassetWildMultiAsset,
122
+ XcmV3Response: () => XcmV3Response,
123
+ XcmV3TraitsError: () => XcmV3TraitsError,
124
+ XcmV3WeightLimit: () => XcmV3WeightLimit,
125
+ XcmV4AssetAssetFilter: () => XcmV4AssetAssetFilter,
126
+ XcmV4AssetWildAsset: () => XcmV4AssetWildAsset,
127
+ XcmV4Instruction: () => XcmV4Instruction,
128
+ XcmV4Response: () => XcmV4Response,
129
+ XcmV5AssetFilter: () => XcmV5AssetFilter,
130
+ XcmV5Instruction: () => XcmV5Instruction,
131
+ XcmV5Junction: () => XcmV5Junction,
132
+ XcmV5Junctions: () => XcmV5Junctions,
133
+ XcmV5NetworkId: () => XcmV5NetworkId,
134
+ XcmV5WildAsset: () => XcmV5WildAsset,
135
+ XcmVersionedAssetId: () => XcmVersionedAssetId,
136
+ XcmVersionedAssets: () => XcmVersionedAssets,
137
+ XcmVersionedLocation: () => XcmVersionedLocation,
138
+ XcmVersionedXcm: () => XcmVersionedXcm,
139
+ getMetadata: () => getMetadata2,
140
+ people_lite: () => people_lite_default
141
+ });
142
+ module.exports = __toCommonJS(index_exports);
143
+
144
+ // .papi/descriptors/src/people_lite.ts
145
+ var import_polkadot_api2 = require("polkadot-api");
146
+
147
+ // .papi/descriptors/src/common-types.ts
148
+ var import_polkadot_api = require("polkadot-api");
149
+ var DigestItem = import_polkadot_api._Enum;
150
+ var Phase = import_polkadot_api._Enum;
151
+ var DispatchClass = import_polkadot_api._Enum;
152
+ var TokenError = import_polkadot_api._Enum;
153
+ var ArithmeticError = import_polkadot_api._Enum;
154
+ var TransactionalError = import_polkadot_api._Enum;
155
+ var BalanceStatus = import_polkadot_api._Enum;
156
+ var TransactionPaymentEvent = import_polkadot_api._Enum;
157
+ var XcmV5Junctions = import_polkadot_api._Enum;
158
+ var XcmV5Junction = import_polkadot_api._Enum;
159
+ var XcmV5NetworkId = import_polkadot_api._Enum;
160
+ var XcmV3JunctionBodyId = import_polkadot_api._Enum;
161
+ var XcmV2JunctionBodyPart = import_polkadot_api._Enum;
162
+ var XcmV5Instruction = import_polkadot_api._Enum;
163
+ var XcmV3MultiassetFungibility = import_polkadot_api._Enum;
164
+ var XcmV3MultiassetAssetInstance = import_polkadot_api._Enum;
165
+ var XcmV3MaybeErrorCode = import_polkadot_api._Enum;
166
+ var XcmV2OriginKind = import_polkadot_api._Enum;
167
+ var XcmV5AssetFilter = import_polkadot_api._Enum;
168
+ var XcmV5WildAsset = import_polkadot_api._Enum;
169
+ var XcmV2MultiassetWildFungibility = import_polkadot_api._Enum;
170
+ var XcmV3WeightLimit = import_polkadot_api._Enum;
171
+ var XcmVersionedAssets = import_polkadot_api._Enum;
172
+ var XcmV3MultiassetAssetId = import_polkadot_api._Enum;
173
+ var XcmV3Junctions = import_polkadot_api._Enum;
174
+ var XcmV3Junction = import_polkadot_api._Enum;
175
+ var XcmV3JunctionNetworkId = import_polkadot_api._Enum;
176
+ var XcmVersionedLocation = import_polkadot_api._Enum;
177
+ var UpgradeGoAhead = import_polkadot_api._Enum;
178
+ var UpgradeRestriction = import_polkadot_api._Enum;
179
+ var BalancesTypesReasons = import_polkadot_api._Enum;
180
+ var TransactionPaymentReleases = import_polkadot_api._Enum;
181
+ var XcmV3Response = import_polkadot_api._Enum;
182
+ var XcmV3TraitsError = import_polkadot_api._Enum;
183
+ var XcmV4Response = import_polkadot_api._Enum;
184
+ var XcmPalletVersionMigrationStage = import_polkadot_api._Enum;
185
+ var XcmVersionedAssetId = import_polkadot_api._Enum;
186
+ var IdentityData = import_polkadot_api._Enum;
187
+ var MultiAddress = import_polkadot_api._Enum;
188
+ var BalancesAdjustmentDirection = import_polkadot_api._Enum;
189
+ var XcmVersionedXcm = import_polkadot_api._Enum;
190
+ var XcmV3Instruction = import_polkadot_api._Enum;
191
+ var XcmV3MultiassetMultiAssetFilter = import_polkadot_api._Enum;
192
+ var XcmV3MultiassetWildMultiAsset = import_polkadot_api._Enum;
193
+ var XcmV4Instruction = import_polkadot_api._Enum;
194
+ var XcmV4AssetAssetFilter = import_polkadot_api._Enum;
195
+ var XcmV4AssetWildAsset = import_polkadot_api._Enum;
196
+ var MultiSignature = import_polkadot_api._Enum;
197
+ var TransactionValidityUnknownTransaction = import_polkadot_api._Enum;
198
+ var TransactionValidityTransactionSource = import_polkadot_api._Enum;
199
+
200
+ // .papi/descriptors/src/common.ts
201
+ var table = new Uint8Array(128);
202
+ for (let i = 0; i < 64; i++) table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;
203
+ var toBinary = (base64) => {
204
+ const n = base64.length, bytes = new Uint8Array((n - Number(base64[n - 1] === "=") - Number(base64[n - 2] === "=")) * 3 / 4 | 0);
205
+ for (let i2 = 0, j = 0; i2 < n; ) {
206
+ const c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];
207
+ const c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];
208
+ bytes[j++] = c0 << 2 | c1 >> 4;
209
+ bytes[j++] = c1 << 4 | c2 >> 2;
210
+ bytes[j++] = c2 << 6 | c3;
211
+ }
212
+ return bytes;
213
+ };
214
+
215
+ // .papi/descriptors/src/people_lite.ts
216
+ var descriptorValues = Promise.resolve().then(() => (init_descriptors(), descriptors_exports)).then((module2) => module2["People_lite"]);
217
+ var metadataTypes = Promise.resolve().then(() => (init_metadataTypes(), metadataTypes_exports)).then(
218
+ (module2) => toBinary("default" in module2 ? module2.default : module2)
219
+ );
220
+ var asset = {};
221
+ var extensions = {};
222
+ var getMetadata = () => Promise.resolve().then(() => (init_people_lite_metadata(), people_lite_metadata_exports)).then(
223
+ (module2) => toBinary("default" in module2 ? module2.default : module2)
224
+ );
225
+ var genesis = "0x41412e46623c200d788ab7ef1c507c43490fda2ca7b48c19f86ea9a46cf9caa8";
226
+ var _allDescriptors = { descriptors: descriptorValues, metadataTypes, asset, extensions, getMetadata, genesis };
227
+ var people_lite_default = _allDescriptors;
228
+
229
+ // .papi/descriptors/src/index.ts
230
+ var metadatas = { ["0xe6895843ad86452552f9ec62c9793f457e04ab0c23ca1be6e8837c8b4b6d6be9"]: people_lite_default };
231
+ var getMetadata2 = async (codeHash) => {
232
+ try {
233
+ return await metadatas[codeHash].getMetadata();
234
+ } catch {
235
+ }
236
+ return null;
237
+ };