@decentro-dev/polkadot-sufficient-assets 0.0.1
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.
- package/LICENSE +201 -0
- package/README.md +60 -0
- package/package.json +99 -0
- package/packages/client/README.md +333 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.js +2 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.mjs +2 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/paseo/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/paseo/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/paseo/index.js +2 -0
- package/packages/client/dist/chain-specs/paseo/index.mjs +2 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/polkadot/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/polkadot/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/polkadot/index.js +2 -0
- package/packages/client/dist/chain-specs/polkadot/index.mjs +2 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.js +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.mjs +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/westend2/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/westend2/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/westend2/index.js +2 -0
- package/packages/client/dist/chain-specs/westend2/index.mjs +2 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.mjs +2 -0
- package/packages/client/dist/index.d.mts +106 -0
- package/packages/client/dist/index.d.ts +106 -0
- package/packages/client/dist/index.js +2 -0
- package/packages/client/dist/index.mjs +2 -0
- package/packages/client/dist/smoldot/from-node-worker/index.d.mts +1 -0
- package/packages/client/dist/smoldot/from-node-worker/index.d.ts +1 -0
- package/packages/client/dist/smoldot/from-node-worker/index.js +2 -0
- package/packages/client/dist/smoldot/from-node-worker/index.mjs +2 -0
- package/packages/client/dist/smoldot/from-worker/index.d.mts +1 -0
- package/packages/client/dist/smoldot/from-worker/index.d.ts +1 -0
- package/packages/client/dist/smoldot/from-worker/index.js +2 -0
- package/packages/client/dist/smoldot/from-worker/index.mjs +2 -0
- package/packages/client/dist/smoldot/index.d.mts +14 -0
- package/packages/client/dist/smoldot/index.d.ts +14 -0
- package/packages/client/dist/smoldot/index.js +2 -0
- package/packages/client/dist/smoldot/index.mjs +2 -0
- package/packages/client/dist/smoldot/worker/index.d.mts +1 -0
- package/packages/client/dist/smoldot/worker/index.d.ts +1 -0
- package/packages/client/dist/smoldot/worker/index.js +2 -0
- package/packages/client/dist/smoldot/worker/index.mjs +2 -0
- package/packages/core/.papi/descriptors/dist/common-types.d.ts +21274 -0
- package/packages/core/.papi/descriptors/dist/descriptors-EQXQJ7SL.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/descriptors.d.ts +11 -0
- package/packages/core/.papi/descriptors/dist/hdx.d.ts +366 -0
- package/packages/core/.papi/descriptors/dist/hdx_metadata-XH2Y6EGQ.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/hdx_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/index.d.mts +24579 -0
- package/packages/core/.papi/descriptors/dist/index.d.ts +23 -0
- package/packages/core/.papi/descriptors/dist/index.js +1 -0
- package/packages/core/.papi/descriptors/dist/index.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/kah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/kah_metadata-OCBL5LAN.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/kah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/kusama.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/kusama_metadata-TGJ43LLG.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/kusama_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/metadataTypes-MIM6CGSL.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/metadataTypes.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/pah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/pah_metadata-JG7F7QDO.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/pah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/paseo.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/paseo_metadata-5VVMOYKO.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/paseo_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/paseoah.d.ts +242 -0
- package/packages/core/.papi/descriptors/dist/paseoah_metadata-KVQKFE5R.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/paseoah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/polkadot.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/polkadot_metadata-ASE5745E.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/polkadot_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/rah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/rah_metadata-FL7L2MWD.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/rah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/rococo.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/rococo_metadata-CHYQZIV5.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/rococo_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/wah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/wah_metadata-M2H6IX7C.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/wah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/westend.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/westend_metadata-IAM3KHRQ.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/westend_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/package.json +24 -0
- package/packages/core/.papi/metadata/hdx.scale +0 -0
- package/packages/core/.papi/metadata/kah.scale +0 -0
- package/packages/core/.papi/metadata/kusama.scale +0 -0
- package/packages/core/.papi/metadata/pah.scale +0 -0
- package/packages/core/.papi/metadata/paseo.scale +0 -0
- package/packages/core/.papi/metadata/paseoah.scale +0 -0
- package/packages/core/.papi/metadata/polkadot.scale +0 -0
- package/packages/core/.papi/metadata/rah.scale +0 -0
- package/packages/core/.papi/metadata/rococo.scale +0 -0
- package/packages/core/.papi/metadata/wah.scale +0 -0
- package/packages/core/.papi/metadata/westend.scale +0 -0
- package/packages/core/.papi/polkadot-api.json +50 -0
- package/packages/core/dist/index.d.mts +676 -0
- package/packages/core/dist/index.d.ts +676 -0
- package/packages/core/dist/index.js +1 -0
- package/packages/core/dist/index.mjs +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var A="bWV0YQ8NDQAMHHNwX2NvcmUYY3J5cHRvLEFjY291bnRJZDMyAAAEAAQBIFt1ODsgMzJdAAAEAAADIAAAAAgACAAABQMADAgwZnJhbWVfc3lzdGVtLEFjY291bnRJbmZvCBROb25jZQEQLEFjY291bnREYXRhARQAFAEUbm9uY2UQARROb25jZQABJGNvbnN1bWVycxABIFJlZkNvdW50AAEkcHJvdmlkZXJzEAEgUmVmQ291bnQAASxzdWZmaWNpZW50cxABIFJlZkNvdW50AAEQZGF0YRQBLEFjY291bnREYXRhAAAQAAAFBQAUDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsQWNjb3VudERhdGEEHEJhbGFuY2UBGAAQARBmcmVlGAEcQmFsYW5jZQABIHJlc2VydmVkGAEcQmFsYW5jZQABGGZyb3plbhgBHEJhbGFuY2UAARRmbGFncxwBKEV4dHJhRmxhZ3MAABgAAAUHABwMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyhFeHRyYUZsYWdzAAAEABgBEHUxMjgAACAAAAUAACQMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUGVyRGlzcGF0Y2hDbGFzcwQEVAEoAAwBGG5vcm1hbCgBBFQAASxvcGVyYXRpb25hbCgBBFQAASRtYW5kYXRvcnkoAQRUAAAoDChzcF93ZWlnaHRzJHdlaWdodF92MhhXZWlnaHQAAAgBIHJlZl90aW1lLAEMdTY0AAEocHJvb2Zfc2l6ZSwBDHU2NAAALAAABjAAMAAABQYANAg8cHJpbWl0aXZlX3R5cGVzEEgyNTYAAAQABAEgW3U4OyAzMl0AADgAAAIIADwQKHNwX3J1bnRpbWUcZ2VuZXJpYxhkaWdlc3QYRGlnZXN0AAAEARBsb2dzQAE8VmVjPERpZ2VzdEl0ZW0+AABAAAACRABEEChzcF9ydW50aW1lHGdlbmVyaWMYZGlnZXN0KERpZ2VzdEl0ZW0AARQoUHJlUnVudGltZQgASAFEQ29uc2Vuc3VzRW5naW5lSWQAADgBHFZlYzx1OD4ABgAkQ29uc2Vuc3VzCABIAURDb25zZW5zdXNFbmdpbmVJZAAAOAEcVmVjPHU4PgAEABBTZWFsCABIAURDb25zZW5zdXNFbmdpbmVJZAAAOAEcVmVjPHU4PgAFABRPdGhlcgQAOAEcVmVjPHU4PgAAAGRSdW50aW1lRW52aXJvbm1lbnRVcGRhdGVkAAgAAEgAAAMEAAAACABMAAACUABQCDBmcmFtZV9zeXN0ZW0sRXZlbnRSZWNvcmQIBEUBVARUATQADAEUcGhhc2WlAwEUUGhhc2UAARRldmVudFQBBEUAARh0b3BpY3MRAgEYVmVjPFQ+AABUCDxoeWRyYWR4X3J1bnRpbWUwUnVudGltZUV2ZW50AAHoGFN5c3RlbQQAWAFwZnJhbWVfc3lzdGVtOjpFdmVudDxSdW50aW1lPgABACBCYWxhbmNlcwQAfAF8cGFsbGV0X2JhbGFuY2VzOjpFdmVudDxSdW50aW1lPgAHAEhUcmFuc2FjdGlvblBheW1lbnQEAIQBqHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50OjpFdmVudDxSdW50aW1lPgAJAFxNdWx0aVRyYW5zYWN0aW9uUGF5bWVudAQAiAHAcGFsbGV0X3RyYW5zYWN0aW9uX211bHRpX3BheW1lbnQ6OkV2ZW50PFJ1bnRpbWU+AMsAIFRyZWFzdXJ5BACMAXxwYWxsZXRfdHJlYXN1cnk6OkV2ZW50PFJ1bnRpbWU+AAsAHFV0aWxpdHkEAJQBVHBhbGxldF91dGlsaXR5OjpFdmVudAANACBQcmVpbWFnZQQAnAF8cGFsbGV0X3ByZWltYWdlOjpFdmVudDxSdW50aW1lPgAPACBJZGVudGl0eQQAoAF8cGFsbGV0X2lkZW50aXR5OjpFdmVudDxSdW50aW1lPgARACREZW1vY3JhY3kEAKgBgHBhbGxldF9kZW1vY3JhY3k6OkV2ZW50PFJ1bnRpbWU+ABMAJEVsZWN0aW9ucwQAvAGkcGFsbGV0X2VsZWN0aW9uc19waHJhZ21lbjo6RXZlbnQ8UnVudGltZT4AFQAcQ291bmNpbAQAyAH8cGFsbGV0X2NvbGxlY3RpdmU6OkV2ZW50PFJ1bnRpbWUsIHBhbGxldF9jb2xsZWN0aXZlOjpJbnN0YW5jZTE+ABcASFRlY2huaWNhbENvbW1pdHRlZQQAzAH8cGFsbGV0X2NvbGxlY3RpdmU6OkV2ZW50PFJ1bnRpbWUsIHBhbGxldF9jb2xsZWN0aXZlOjpJbnN0YW5jZTI+ABkAEFRpcHMEANABbHBhbGxldF90aXBzOjpFdmVudDxSdW50aW1lPgAbABRQcm94eQQA1AFwcGFsbGV0X3Byb3h5OjpFdmVudDxSdW50aW1lPgAdACBNdWx0aXNpZwQA4AF8cGFsbGV0X211bHRpc2lnOjpFdmVudDxSdW50aW1lPgAfABxVbmlxdWVzBADoAXhwYWxsZXRfdW5pcXVlczo6RXZlbnQ8UnVudGltZT4AIABIU3RhdGVUcmllTWlncmF0aW9uBAAFAQGscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uOjpFdmVudDxSdW50aW1lPgAjADRBc3NldFJlZ2lzdHJ5BAARAQGUcGFsbGV0X2Fzc2V0X3JlZ2lzdHJ5OjpFdmVudDxSdW50aW1lPgAzABhDbGFpbXMEAFEBAXRwYWxsZXRfY2xhaW1zOjpFdmVudDxSdW50aW1lPgA1ADxDb2xsYXRvclJld2FyZHMEAFkBAZxwYWxsZXRfY29sbGF0b3JfcmV3YXJkczo6RXZlbnQ8UnVudGltZT4AOQAgT21uaXBvb2wEAF0BAXxwYWxsZXRfb21uaXBvb2w6OkV2ZW50PFJ1bnRpbWU+ADsAQFRyYW5zYWN0aW9uUGF1c2UEAG0BAaBwYWxsZXRfdHJhbnNhY3Rpb25fcGF1c2U6OkV2ZW50PFJ1bnRpbWU+ADwAGER1c3RlcgQAcQEBdHBhbGxldF9kdXN0ZXI6OkV2ZW50PFJ1bnRpbWU+AD0ATE9tbmlwb29sV2FyZWhvdXNlTE0EAHUBAUkBd2FyZWhvdXNlX2xpcXVpZGl0eV9taW5pbmc6OkV2ZW50PFJ1bnRpbWUsIHdhcmVob3VzZV9saXF1aWRpdHlfbWluaW5nOjoKSW5zdGFuY2UxPgA+AFxPbW5pcG9vbExpcXVpZGl0eU1pbmluZwQAeQEBwHBhbGxldF9vbW5pcG9vbF9saXF1aWRpdHlfbWluaW5nOjpFdmVudDxSdW50aW1lPgA/AAxPVEMEAIkBAWhwYWxsZXRfb3RjOjpFdmVudDxSdW50aW1lPgBAADhDaXJjdWl0QnJlYWtlcgQAjQEBmHBhbGxldF9jaXJjdWl0X2JyZWFrZXI6OkV2ZW50PFJ1bnRpbWU+AEEAGFJvdXRlcgQAmQEBlHBhbGxldF9yb3V0ZV9leGVjdXRvcjo6RXZlbnQ8UnVudGltZT4AQwAsRHluYW1pY0ZlZXMEAKEBAYxwYWxsZXRfZHluYW1pY19mZWVzOjpFdmVudDxSdW50aW1lPgBEABxTdGFraW5nBAClAQF4cGFsbGV0X3N0YWtpbmc6OkV2ZW50PFJ1bnRpbWU+AEUAKFN0YWJsZXN3YXAEAKkBAYRwYWxsZXRfc3RhYmxlc3dhcDo6RXZlbnQ8UnVudGltZT4ARgAUQm9uZHMEAL0BAXBwYWxsZXRfYm9uZHM6OkV2ZW50PFJ1bnRpbWU+AEcAOE90Y1NldHRsZW1lbnRzBADBAQGYcGFsbGV0X290Y19zZXR0bGVtZW50czo6RXZlbnQ8UnVudGltZT4ASAAMTEJQBADFAQFocGFsbGV0X2xicDo6RXZlbnQ8UnVudGltZT4ASQAMWFlLBADVAQFocGFsbGV0X3h5azo6RXZlbnQ8UnVudGltZT4ASgAkUmVmZXJyYWxzBADZAQGAcGFsbGV0X3JlZmVycmFsczo6RXZlbnQ8UnVudGltZT4ASwAYVG9rZW5zBADtAQFsb3JtbF90b2tlbnM6OkV2ZW50PFJ1bnRpbWU+AE0AKEN1cnJlbmNpZXMEAPUBAYRwYWxsZXRfY3VycmVuY2llczo6RXZlbnQ8UnVudGltZT4ATwAcVmVzdGluZwQA/QEBcG9ybWxfdmVzdGluZzo6RXZlbnQ8UnVudGltZT4AUQAMRVZNBAAFAgFocGFsbGV0X2V2bTo6RXZlbnQ8UnVudGltZT4AWgAgRXRoZXJldW0EABUCAVhwYWxsZXRfZXRoZXJldW06OkV2ZW50AFwALEVWTUFjY291bnRzBAA5AgGMcGFsbGV0X2V2bV9hY2NvdW50czo6RXZlbnQ8UnVudGltZT4AXQBIWFlLTGlxdWlkaXR5TWluaW5nBAA9AgGscGFsbGV0X3h5a19saXF1aWRpdHlfbWluaW5nOjpFdmVudDxSdW50aW1lPgBfADhYWUtXYXJlaG91c2VMTQQARQIBSQF3YXJlaG91c2VfbGlxdWlkaXR5X21pbmluZzo6RXZlbnQ8UnVudGltZSwgd2FyZWhvdXNlX2xpcXVpZGl0eV9taW5pbmc6OgpJbnN0YW5jZTI+AGAAOFJlbGF5Q2hhaW5JbmZvBABJAgGYcGFsbGV0X3JlbGF5Y2hhaW5faW5mbzo6RXZlbnQ8UnVudGltZT4AyQAMRENBBABNAgFocGFsbGV0X2RjYTo6RXZlbnQ8UnVudGltZT4AQgAkU2NoZWR1bGVyBABlAgGAcGFsbGV0X3NjaGVkdWxlcjo6RXZlbnQ8UnVudGltZT4ABQA8UGFyYWNoYWluU3lzdGVtBABtAgG8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbTo6RXZlbnQ8UnVudGltZT4AZwAsUG9sa2Fkb3RYY20EAHECAWhwYWxsZXRfeGNtOjpFdmVudDxSdW50aW1lPgBrAChDdW11bHVzWGNtBABxAwGIY3VtdWx1c19wYWxsZXRfeGNtOjpFdmVudDxSdW50aW1lPgBtACRYY21wUXVldWUEAHUDAaRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlOjpFdmVudDxSdW50aW1lPgBvADBNZXNzYWdlUXVldWUEAHkDAZBwYWxsZXRfbWVzc2FnZV9xdWV1ZTo6RXZlbnQ8UnVudGltZT4AcgAcT3JtbFhjbQQAiQMBYG9ybWxfeGNtOjpFdmVudDxSdW50aW1lPgCHABxYVG9rZW5zBACNAwFwb3JtbF94dG9rZW5zOjpFdmVudDxSdW50aW1lPgCJADRVbmtub3duVG9rZW5zBACRAwFob3JtbF91bmtub3duX3Rva2Vuczo6RXZlbnQAiwBEQ29sbGF0b3JTZWxlY3Rpb24EAJUDAaRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uOjpFdmVudDxSdW50aW1lPgCjABxTZXNzaW9uBACdAwFUcGFsbGV0X3Nlc3Npb246OkV2ZW50AKUAJEVtYU9yYWNsZQQAoQMBhHBhbGxldF9lbWFfb3JhY2xlOjpFdmVudDxSdW50aW1lPgDKAABYDDBmcmFtZV9zeXN0ZW0YcGFsbGV0FEV2ZW50BARUAAEcQEV4dHJpbnNpY1N1Y2Nlc3MEATRkaXNwYXRjaF9pbmZvXAEwRGlzcGF0Y2hJbmZvAAAEkEFuIGV4dHJpbnNpYyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LjxFeHRyaW5zaWNGYWlsZWQIAThkaXNwYXRjaF9lcnJvcmgBNERpc3BhdGNoRXJyb3IAATRkaXNwYXRjaF9pbmZvXAEwRGlzcGF0Y2hJbmZvAAEEUEFuIGV4dHJpbnNpYyBmYWlsZWQuLENvZGVVcGRhdGVkAAIEUGA6Y29kZWAgd2FzIHVwZGF0ZWQuKE5ld0FjY291bnQEARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAMEaEEgbmV3IGFjY291bnQgd2FzIGNyZWF0ZWQuNEtpbGxlZEFjY291bnQEARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAQEWEFuIGFjY291bnQgd2FzIHJlYXBlZC4gUmVtYXJrZWQIARhzZW5kZXIAATBUOjpBY2NvdW50SWQAARBoYXNoNAEcVDo6SGFzaAAFBHBPbiBvbi1jaGFpbiByZW1hcmsgaGFwcGVuZWQuRFVwZ3JhZGVBdXRob3JpemVkCAEkY29kZV9oYXNoNAEcVDo6SGFzaAABNGNoZWNrX3ZlcnNpb24gARBib29sAAYEaEFuIHVwZ3JhZGUgd2FzIGF1dGhvcml6ZWQuBHBFdmVudCBmb3IgdGhlIFN5c3RlbSBwYWxsZXQuXAw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaDBEaXNwYXRjaEluZm8AAAwBGHdlaWdodCgBGFdlaWdodAABFGNsYXNzYAE0RGlzcGF0Y2hDbGFzcwABIHBheXNfZmVlZAEQUGF5cwAAYAw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaDREaXNwYXRjaENsYXNzAAEMGE5vcm1hbAAAACxPcGVyYXRpb25hbAABACRNYW5kYXRvcnkAAgAAZAw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaBBQYXlzAAEIDFllcwAAAAhObwABAABoCChzcF9ydW50aW1lNERpc3BhdGNoRXJyb3IAATgUT3RoZXIAAAAwQ2Fubm90TG9va3VwAAEAJEJhZE9yaWdpbgACABhNb2R1bGUEAGwBLE1vZHVsZUVycm9yAAMARENvbnN1bWVyUmVtYWluaW5nAAQALE5vUHJvdmlkZXJzAAUAQFRvb01hbnlDb25zdW1lcnMABgAUVG9rZW4EAHABKFRva2VuRXJyb3IABwAoQXJpdGhtZXRpYwQAdAE8QXJpdGhtZXRpY0Vycm9yAAgANFRyYW5zYWN0aW9uYWwEAHgBSFRyYW5zYWN0aW9uYWxFcnJvcgAJACRFeGhhdXN0ZWQACgAoQ29ycnVwdGlvbgALACxVbmF2YWlsYWJsZQAMADhSb290Tm90QWxsb3dlZAANAABsCChzcF9ydW50aW1lLE1vZHVsZUVycm9yAAAIARRpbmRleAgBCHU4AAEUZXJyb3JIAYxbdTg7IE1BWF9NT0RVTEVfRVJST1JfRU5DT0RFRF9TSVpFXQAAcAgoc3BfcnVudGltZShUb2tlbkVycm9yAAEoQEZ1bmRzVW5hdmFpbGFibGUAAAAwT25seVByb3ZpZGVyAAEAMEJlbG93TWluaW11bQACADBDYW5ub3RDcmVhdGUAAwAwVW5rbm93bkFzc2V0AAQAGEZyb3plbgAFACxVbnN1cHBvcnRlZAAGAEBDYW5ub3RDcmVhdGVIb2xkAAcANE5vdEV4cGVuZGFibGUACAAcQmxvY2tlZAAJAAB0CDRzcF9hcml0aG1ldGljPEFyaXRobWV0aWNFcnJvcgABDCRVbmRlcmZsb3cAAAAgT3ZlcmZsb3cAAQA4RGl2aXNpb25CeVplcm8AAgAAeAgoc3BfcnVudGltZUhUcmFuc2FjdGlvbmFsRXJyb3IAAQgwTGltaXRSZWFjaGVkAAAAHE5vTGF5ZXIAAQAAfAw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBRFdmVudAgEVAAESQABWBxFbmRvd2VkCAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABMGZyZWVfYmFsYW5jZRgBKFQ6OkJhbGFuY2UAAAS4QW4gYWNjb3VudCB3YXMgY3JlYXRlZCB3aXRoIHNvbWUgZnJlZSBiYWxhbmNlLiBEdXN0TG9zdAgBHGFjY291bnQAATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAEIPQFBbiBhY2NvdW50IHdhcyByZW1vdmVkIHdob3NlIGJhbGFuY2Ugd2FzIG5vbi16ZXJvIGJ1dCBiZWxvdyBFeGlzdGVudGlhbERlcG9zaXQseHJlc3VsdGluZyBpbiBhbiBvdXRyaWdodCBsb3NzLiBUcmFuc2ZlcgwBEGZyb20AATBUOjpBY2NvdW50SWQAAQh0bwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAAgRMVHJhbnNmZXIgc3VjY2VlZGVkLihCYWxhbmNlU2V0CAEMd2hvAAEwVDo6QWNjb3VudElkAAEQZnJlZRgBKFQ6OkJhbGFuY2UAAwRoQSBiYWxhbmNlIHdhcyBzZXQgYnkgcm9vdC4gUmVzZXJ2ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAQE4FNvbWUgYmFsYW5jZSB3YXMgcmVzZXJ2ZWQgKG1vdmVkIGZyb20gZnJlZSB0byByZXNlcnZlZCkuKFVucmVzZXJ2ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAUE6FNvbWUgYmFsYW5jZSB3YXMgdW5yZXNlcnZlZCAobW92ZWQgZnJvbSByZXNlcnZlZCB0byBmcmVlKS5IUmVzZXJ2ZVJlcGF0cmlhdGVkEAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQABSGRlc3RpbmF0aW9uX3N0YXR1c4ABGFN0YXR1cwAGCE0BU29tZSBiYWxhbmNlIHdhcyBtb3ZlZCBmcm9tIHRoZSByZXNlcnZlIG9mIHRoZSBmaXJzdCBhY2NvdW50IHRvIHRoZSBzZWNvbmQgYWNjb3VudC7YRmluYWwgYXJndW1lbnQgaW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBiYWxhbmNlIHR5cGUuHERlcG9zaXQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAcE2FNvbWUgYW1vdW50IHdhcyBkZXBvc2l0ZWQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLiBXaXRoZHJhdwgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UACAQdAVNvbWUgYW1vdW50IHdhcyB3aXRoZHJhd24gZnJvbSB0aGUgYWNjb3VudCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuHFNsYXNoZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAkEAQFTb21lIGFtb3VudCB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciBtaXNiZWhhdmlvcikuGE1pbnRlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UACgScU29tZSBhbW91bnQgd2FzIG1pbnRlZCBpbnRvIGFuIGFjY291bnQuGEJ1cm5lZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UACwScU29tZSBhbW91bnQgd2FzIGJ1cm5lZCBmcm9tIGFuIGFjY291bnQuJFN1c3BlbmRlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UADAQVAVNvbWUgYW1vdW50IHdhcyBzdXNwZW5kZWQgZnJvbSBhbiBhY2NvdW50IChpdCBjYW4gYmUgcmVzdG9yZWQgbGF0ZXIpLiBSZXN0b3JlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UADQSkU29tZSBhbW91bnQgd2FzIHJlc3RvcmVkIGludG8gYW4gYWNjb3VudC4gVXBncmFkZWQEAQx3aG8AATBUOjpBY2NvdW50SWQADgRgQW4gYWNjb3VudCB3YXMgdXBncmFkZWQuGElzc3VlZAQBGGFtb3VudBgBKFQ6OkJhbGFuY2UADwQtAVRvdGFsIGlzc3VhbmNlIHdhcyBpbmNyZWFzZWQgYnkgYGFtb3VudGAsIGNyZWF0aW5nIGEgY3JlZGl0IHRvIGJlIGJhbGFuY2VkLiRSZXNjaW5kZWQEARhhbW91bnQYAShUOjpCYWxhbmNlABAEJQFUb3RhbCBpc3N1YW5jZSB3YXMgZGVjcmVhc2VkIGJ5IGBhbW91bnRgLCBjcmVhdGluZyBhIGRlYnQgdG8gYmUgYmFsYW5jZWQuGExvY2tlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAEQRgU29tZSBiYWxhbmNlIHdhcyBsb2NrZWQuIFVubG9ja2VkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQASBGhTb21lIGJhbGFuY2Ugd2FzIHVubG9ja2VkLhhGcm96ZW4IAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlABMEYFNvbWUgYmFsYW5jZSB3YXMgZnJvemVuLhhUaGF3ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlABQEYFNvbWUgYmFsYW5jZSB3YXMgdGhhd2VkLkxUb3RhbElzc3VhbmNlRm9yY2VkCAEMb2xkGAEoVDo6QmFsYW5jZQABDG5ldxgBKFQ6OkJhbGFuY2UAFQSsVGhlIGBUb3RhbElzc3VhbmNlYCB3YXMgZm9yY2VmdWxseSBjaGFuZ2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldIAUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucxBtaXNjNEJhbGFuY2VTdGF0dXMAAQgQRnJlZQAAACBSZXNlcnZlZAABAACEDGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudBhwYWxsZXQURXZlbnQEBFQAAQRIVHJhbnNhY3Rpb25GZWVQYWlkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEoYWN0dWFsX2ZlZRgBMEJhbGFuY2VPZjxUPgABDHRpcBgBMEJhbGFuY2VPZjxUPgAACFkBQSB0cmFuc2FjdGlvbiBmZWUgYGFjdHVhbF9mZWVgLCBvZiB3aGljaCBgdGlwYCB3YXMgYWRkZWQgdG8gdGhlIG1pbmltdW0gaW5jbHVzaW9uIGZlZSxcaGFzIGJlZW4gcGFpZCBieSBgd2hvYC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSIDIBwYWxsZXRfdHJhbnNhY3Rpb25fbXVsdGlfcGF5bWVudBhwYWxsZXQURXZlbnQEBFQAARAsQ3VycmVuY3lTZXQIAShhY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWQQATBBc3NldElkT2Y8VD4AAAgsQ3VycmVuY3lTZXQ8W3dobywgY3VycmVuY3ldNEN1cnJlbmN5QWRkZWQEASBhc3NldF9pZBABMEFzc2V0SWRPZjxUPgABCGxOZXcgYWNjZXB0ZWQgY3VycmVuY3kgYWRkZWQoW2N1cnJlbmN5XTxDdXJyZW5jeVJlbW92ZWQEASBhc3NldF9pZBABMEFzc2V0SWRPZjxUPgACCGRBY2NlcHRlZCBjdXJyZW5jeSByZW1vdmVkKFtjdXJyZW5jeV0wRmVlV2l0aGRyYXduFAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkEAEwQXNzZXRJZE9mPFQ+AAFEbmF0aXZlX2ZlZV9hbW91bnQYATBCYWxhbmNlT2Y8VD4AAVRub25fbmF0aXZlX2ZlZV9hbW91bnQYATBCYWxhbmNlT2Y8VD4AAVhkZXN0aW5hdGlvbl9hY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAMIrFRyYW5zYWN0aW9uIGZlZSBwYWlkIGluIG5vbi1uYXRpdmUgY3VycmVuY3lJAVtBY2NvdW50LCBDdXJyZW5jeSwgTmF0aXZlIGZlZSBhbW91bnQsIE5vbi1uYXRpdmUgZmVlIGFtb3VudCwgRGVzdGluYXRpb24gYWNjb3VudF0EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSMDDxwYWxsZXRfdHJlYXN1cnkYcGFsbGV0FEV2ZW50CARUAARJAAE4IFByb3Bvc2VkBAE4cHJvcG9zYWxfaW5kZXgQATRQcm9wb3NhbEluZGV4AAAENE5ldyBwcm9wb3NhbC4gU3BlbmRpbmcEAUBidWRnZXRfcmVtYWluaW5nGAE8QmFsYW5jZU9mPFQsIEk+AAEE5FdlIGhhdmUgZW5kZWQgYSBzcGVuZCBwZXJpb2QgYW5kIHdpbGwgbm93IGFsbG9jYXRlIGZ1bmRzLhxBd2FyZGVkDAE4cHJvcG9zYWxfaW5kZXgQATRQcm9wb3NhbEluZGV4AAEUYXdhcmQYATxCYWxhbmNlT2Y8VCwgST4AARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAIEfFNvbWUgZnVuZHMgaGF2ZSBiZWVuIGFsbG9jYXRlZC4gUmVqZWN0ZWQIAThwcm9wb3NhbF9pbmRleBABNFByb3Bvc2FsSW5kZXgAARxzbGFzaGVkGAE8QmFsYW5jZU9mPFQsIEk+AAMEsEEgcHJvcG9zYWwgd2FzIHJlamVjdGVkOyBmdW5kcyB3ZXJlIHNsYXNoZWQuFEJ1cm50BAEsYnVybnRfZnVuZHMYATxCYWxhbmNlT2Y8VCwgST4ABASIU29tZSBvZiBvdXIgZnVuZHMgaGF2ZSBiZWVuIGJ1cm50LiBSb2xsb3ZlcgQBQHJvbGxvdmVyX2JhbGFuY2UYATxCYWxhbmNlT2Y8VCwgST4ABQQtAVNwZW5kaW5nIGhhcyBmaW5pc2hlZDsgdGhpcyBpcyB0aGUgYW1vdW50IHRoYXQgcm9sbHMgb3ZlciB1bnRpbCBuZXh0IHNwZW5kLhxEZXBvc2l0BAEUdmFsdWUYATxCYWxhbmNlT2Y8VCwgST4ABgR8U29tZSBmdW5kcyBoYXZlIGJlZW4gZGVwb3NpdGVkLjRTcGVuZEFwcHJvdmVkDAE4cHJvcG9zYWxfaW5kZXgQATRQcm9wb3NhbEluZGV4AAEYYW1vdW50GAE8QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnkAATBUOjpBY2NvdW50SWQABwScQSBuZXcgc3BlbmQgcHJvcG9zYWwgaGFzIGJlZW4gYXBwcm92ZWQuPFVwZGF0ZWRJbmFjdGl2ZQgBLHJlYWN0aXZhdGVkGAE8QmFsYW5jZU9mPFQsIEk+AAEsZGVhY3RpdmF0ZWQYATxCYWxhbmNlT2Y8VCwgST4ACATMVGhlIGluYWN0aXZlIGZ1bmRzIG9mIHRoZSBwYWxsZXQgaGF2ZSBiZWVuIHVwZGF0ZWQuSEFzc2V0U3BlbmRBcHByb3ZlZBgBFGluZGV4EAEoU3BlbmRJbmRleAABKGFzc2V0X2tpbmSQATBUOjpBc3NldEtpbmQAARhhbW91bnQYAVBBc3NldEJhbGFuY2VPZjxULCBJPgABLGJlbmVmaWNpYXJ5AAE4VDo6QmVuZWZpY2lhcnkAASh2YWxpZF9mcm9tEAFEQmxvY2tOdW1iZXJGb3I8VD4AASRleHBpcmVfYXQQAURCbG9ja051bWJlckZvcjxUPgAJBLRBIG5ldyBhc3NldCBzcGVuZCBwcm9wb3NhbCBoYXMgYmVlbiBhcHByb3ZlZC5AQXNzZXRTcGVuZFZvaWRlZAQBFGluZGV4EAEoU3BlbmRJbmRleAAKBHRBbiBhcHByb3ZlZCBzcGVuZCB3YXMgdm9pZGVkLhBQYWlkCAEUaW5kZXgQAShTcGVuZEluZGV4AAEocGF5bWVudF9pZJABZDxUOjpQYXltYXN0ZXIgYXMgUGF5Pjo6SWQACwRMQSBwYXltZW50IGhhcHBlbmVkLjRQYXltZW50RmFpbGVkCAEUaW5kZXgQAShTcGVuZEluZGV4AAEocGF5bWVudF9pZJABZDxUOjpQYXltYXN0ZXIgYXMgUGF5Pjo6SWQADASQQSBwYXltZW50IGZhaWxlZCBhbmQgY2FuIGJlIHJldHJpZWQuOFNwZW5kUHJvY2Vzc2VkBAEUaW5kZXgQAShTcGVuZEluZGV4AA0ITQFBIHNwZW5kIHdhcyBwcm9jZXNzZWQgYW5kIHJlbW92ZWQgZnJvbSB0aGUgc3RvcmFnZS4gSXQgbWlnaHQgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseXBwYWlkIG9yIGl0IG1heSBoYXZlIGV4cGlyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0kAAABAAAlAw4cGFsbGV0X3V0aWxpdHkYcGFsbGV0FEV2ZW50AAEYQEJhdGNoSW50ZXJydXB0ZWQIARRpbmRleBABDHUzMgABFGVycm9yaAE0RGlzcGF0Y2hFcnJvcgAACFUBQmF0Y2ggb2YgZGlzcGF0Y2hlcyBkaWQgbm90IGNvbXBsZXRlIGZ1bGx5LiBJbmRleCBvZiBmaXJzdCBmYWlsaW5nIGRpc3BhdGNoIGdpdmVuLCBhc0h3ZWxsIGFzIHRoZSBlcnJvci44QmF0Y2hDb21wbGV0ZWQAAQTIQmF0Y2ggb2YgZGlzcGF0Y2hlcyBjb21wbGV0ZWQgZnVsbHkgd2l0aCBubyBlcnJvci5gQmF0Y2hDb21wbGV0ZWRXaXRoRXJyb3JzAAIEtEJhdGNoIG9mIGRpc3BhdGNoZXMgY29tcGxldGVkIGJ1dCBoYXMgZXJyb3JzLjRJdGVtQ29tcGxldGVkAAMEHQFBIHNpbmdsZSBpdGVtIHdpdGhpbiBhIEJhdGNoIG9mIGRpc3BhdGNoZXMgaGFzIGNvbXBsZXRlZCB3aXRoIG5vIGVycm9yLihJdGVtRmFpbGVkBAEUZXJyb3JoATREaXNwYXRjaEVycm9yAAQEEQFBIHNpbmdsZSBpdGVtIHdpdGhpbiBhIEJhdGNoIG9mIGRpc3BhdGNoZXMgaGFzIGNvbXBsZXRlZCB3aXRoIGVycm9yLjBEaXNwYXRjaGVkQXMEARhyZXN1bHSYAThEaXNwYXRjaFJlc3VsdAAFBFhBIGNhbGwgd2FzIGRpc3BhdGNoZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0mAQYUmVzdWx0CARUAZAERQFoAQgIT2sEAJAAAAAADEVycgQAaAAAAQAAnAw8cGFsbGV0X3ByZWltYWdlGHBhbGxldBRFdmVudAQEVAABDBROb3RlZAQBEGhhc2g0ARxUOjpIYXNoAAAEaEEgcHJlaW1hZ2UgaGFzIGJlZW4gbm90ZWQuJFJlcXVlc3RlZAQBEGhhc2g0ARxUOjpIYXNoAAEEeEEgcHJlaW1hZ2UgaGFzIGJlZW4gcmVxdWVzdGVkLhxDbGVhcmVkBAEQaGFzaDQBHFQ6Okhhc2gAAgRsQSBwcmVpbWFnZSBoYXMgYmVuIGNsZWFyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0oAw8cGFsbGV0X2lkZW50aXR5GHBhbGxldBRFdmVudAQEVAABRCxJZGVudGl0eVNldAQBDHdobwABMFQ6OkFjY291bnRJZAAABOxBIG5hbWUgd2FzIHNldCBvciByZXNldCAod2hpY2ggd2lsbCByZW1vdmUgYWxsIGp1ZGdlbWVudHMpLjxJZGVudGl0eUNsZWFyZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0GAEwQmFsYW5jZU9mPFQ+AAEEzEEgbmFtZSB3YXMgY2xlYXJlZCwgYW5kIHRoZSBnaXZlbiBiYWxhbmNlIHJldHVybmVkLjhJZGVudGl0eUtpbGxlZAgBDHdobwABMFQ6OkFjY291bnRJZAABHGRlcG9zaXQYATBCYWxhbmNlT2Y8VD4AAgTEQSBuYW1lIHdhcyByZW1vdmVkIGFuZCB0aGUgZ2l2ZW4gYmFsYW5jZSBzbGFzaGVkLkhKdWRnZW1lbnRSZXF1ZXN0ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAATxyZWdpc3RyYXJfaW5kZXgQAThSZWdpc3RyYXJJbmRleAADBJxBIGp1ZGdlbWVudCB3YXMgYXNrZWQgZnJvbSBhIHJlZ2lzdHJhci5QSnVkZ2VtZW50VW5yZXF1ZXN0ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAATxyZWdpc3RyYXJfaW5kZXgQAThSZWdpc3RyYXJJbmRleAAEBIhBIGp1ZGdlbWVudCByZXF1ZXN0IHdhcyByZXRyYWN0ZWQuOEp1ZGdlbWVudEdpdmVuCAEYdGFyZ2V0AAEwVDo6QWNjb3VudElkAAE8cmVnaXN0cmFyX2luZGV4EAE4UmVnaXN0cmFySW5kZXgABQSUQSBqdWRnZW1lbnQgd2FzIGdpdmVuIGJ5IGEgcmVnaXN0cmFyLjhSZWdpc3RyYXJBZGRlZAQBPHJlZ2lzdHJhcl9pbmRleBABOFJlZ2lzdHJhckluZGV4AAYEWEEgcmVnaXN0cmFyIHdhcyBhZGRlZC5AU3ViSWRlbnRpdHlBZGRlZAwBDHN1YgABMFQ6OkFjY291bnRJZAABEG1haW4AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0GAEwQmFsYW5jZU9mPFQ+AAcE9EEgc3ViLWlkZW50aXR5IHdhcyBhZGRlZCB0byBhbiBpZGVudGl0eSBhbmQgdGhlIGRlcG9zaXQgcGFpZC5IU3ViSWRlbnRpdHlSZW1vdmVkDAEMc3ViAAEwVDo6QWNjb3VudElkAAEQbWFpbgABMFQ6OkFjY291bnRJZAABHGRlcG9zaXQYATBCYWxhbmNlT2Y8VD4ACAQJAUEgc3ViLWlkZW50aXR5IHdhcyByZW1vdmVkIGZyb20gYW4gaWRlbnRpdHkgYW5kIHRoZSBkZXBvc2l0IGZyZWVkLkhTdWJJZGVudGl0eVJldm9rZWQMAQxzdWIAATBUOjpBY2NvdW50SWQAARBtYWluAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdBgBMEJhbGFuY2VPZjxUPgAJCBkBQSBzdWItaWRlbnRpdHkgd2FzIGNsZWFyZWQsIGFuZCB0aGUgZ2l2ZW4gZGVwb3NpdCByZXBhdHJpYXRlZCBmcm9tIHRoZchtYWluIGlkZW50aXR5IGFjY291bnQgdG8gdGhlIHN1Yi1pZGVudGl0eSBhY2NvdW50LjhBdXRob3JpdHlBZGRlZAQBJGF1dGhvcml0eQABMFQ6OkFjY291bnRJZAAKBHxBIHVzZXJuYW1lIGF1dGhvcml0eSB3YXMgYWRkZWQuQEF1dGhvcml0eVJlbW92ZWQEASRhdXRob3JpdHkAATBUOjpBY2NvdW50SWQACwSEQSB1c2VybmFtZSBhdXRob3JpdHkgd2FzIHJlbW92ZWQuLFVzZXJuYW1lU2V0CAEMd2hvAAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWWkASxVc2VybmFtZTxUPgAMBHRBIHVzZXJuYW1lIHdhcyBzZXQgZm9yIGB3aG9gLjhVc2VybmFtZVF1ZXVlZAwBDHdobwABMFQ6OkFjY291bnRJZAABIHVzZXJuYW1lpAEsVXNlcm5hbWU8VD4AAShleHBpcmF0aW9uEAFEQmxvY2tOdW1iZXJGb3I8VD4ADQQZAUEgdXNlcm5hbWUgd2FzIHF1ZXVlZCwgYnV0IGB3aG9gIG11c3QgYWNjZXB0IGl0IHByaW9yIHRvIGBleHBpcmF0aW9uYC5IUHJlYXBwcm92YWxFeHBpcmVkBAEUd2hvc2UAATBUOjpBY2NvdW50SWQADgQ5AUEgcXVldWVkIHVzZXJuYW1lIHBhc3NlZCBpdHMgZXhwaXJhdGlvbiB3aXRob3V0IGJlaW5nIGNsYWltZWQgYW5kIHdhcyByZW1vdmVkLkhQcmltYXJ5VXNlcm5hbWVTZXQIAQx3aG8AATBUOjpBY2NvdW50SWQAASB1c2VybmFtZaQBLFVzZXJuYW1lPFQ+AA8EAQFBIHVzZXJuYW1lIHdhcyBzZXQgYXMgYSBwcmltYXJ5IGFuZCBjYW4gYmUgbG9va2VkIHVwIGZyb20gYHdob2AuXERhbmdsaW5nVXNlcm5hbWVSZW1vdmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWWkASxVc2VybmFtZTxUPgAQCF0BQSBkYW5nbGluZyB1c2VybmFtZSAoYXMgaW4sIGEgdXNlcm5hbWUgY29ycmVzcG9uZGluZyB0byBhbiBhY2NvdW50IHRoYXQgaGFzIHJlbW92ZWQgaXRzbGlkZW50aXR5KSBoYXMgYmVlbiByZW1vdmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldKQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AACoDEBwYWxsZXRfZGVtb2NyYWN5GHBhbGxldBRFdmVudAQEVAABRCBQcm9wb3NlZAgBOHByb3Bvc2FsX2luZGV4EAEkUHJvcEluZGV4AAEcZGVwb3NpdBgBMEJhbGFuY2VPZjxUPgAABLxBIG1vdGlvbiBoYXMgYmVlbiBwcm9wb3NlZCBieSBhIHB1YmxpYyBhY2NvdW50LhhUYWJsZWQIAThwcm9wb3NhbF9pbmRleBABJFByb3BJbmRleAABHGRlcG9zaXQYATBCYWxhbmNlT2Y8VD4AAQTYQSBwdWJsaWMgcHJvcG9zYWwgaGFzIGJlZW4gdGFibGVkIGZvciByZWZlcmVuZHVtIHZvdGUuOEV4dGVybmFsVGFibGVkAAIElEFuIGV4dGVybmFsIHByb3Bvc2FsIGhhcyBiZWVuIHRhYmxlZC4cU3RhcnRlZAgBJHJlZl9pbmRleBABPFJlZmVyZW5kdW1JbmRleAABJHRocmVzaG9sZKwBNFZvdGVUaHJlc2hvbGQAAwRcQSByZWZlcmVuZHVtIGhhcyBiZWd1bi4YUGFzc2VkBAEkcmVmX2luZGV4EAE8UmVmZXJlbmR1bUluZGV4AAQErEEgcHJvcG9zYWwgaGFzIGJlZW4gYXBwcm92ZWQgYnkgcmVmZXJlbmR1bS4kTm90UGFzc2VkBAEkcmVmX2luZGV4EAE8UmVmZXJlbmR1bUluZGV4AAUErEEgcHJvcG9zYWwgaGFzIGJlZW4gcmVqZWN0ZWQgYnkgcmVmZXJlbmR1bS4kQ2FuY2VsbGVkBAEkcmVmX2luZGV4EAE8UmVmZXJlbmR1bUluZGV4AAYEgEEgcmVmZXJlbmR1bSBoYXMgYmVlbiBjYW5jZWxsZWQuJERlbGVnYXRlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGHRhcmdldAABMFQ6OkFjY291bnRJZAAHBNxBbiBhY2NvdW50IGhhcyBkZWxlZ2F0ZWQgdGhlaXIgdm90ZSB0byBhbm90aGVyIGFjY291bnQuLFVuZGVsZWdhdGVkBAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAAIBORBbiBhY2NvdW50IGhhcyBjYW5jZWxsZWQgYSBwcmV2aW91cyBkZWxlZ2F0aW9uIG9wZXJhdGlvbi4YVmV0b2VkDAEMd2hvAAEwVDo6QWNjb3VudElkAAE0cHJvcG9zYWxfaGFzaDQBHFQ6Okhhc2gAARR1bnRpbBABREJsb2NrTnVtYmVyRm9yPFQ+AAkElEFuIGV4dGVybmFsIHByb3Bvc2FsIGhhcyBiZWVuIHZldG9lZC4sQmxhY2tsaXN0ZWQEATRwcm9wb3NhbF9oYXNoNAEcVDo6SGFzaAAKBMRBIHByb3Bvc2FsX2hhc2ggaGFzIGJlZW4gYmxhY2tsaXN0ZWQgcGVybWFuZW50bHkuFFZvdGVkDAEUdm90ZXIAATBUOjpBY2NvdW50SWQAASRyZWZfaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgAARB2b3RlsAFkQWNjb3VudFZvdGU8QmFsYW5jZU9mPFQ+PgALBJBBbiBhY2NvdW50IGhhcyB2b3RlZCBpbiBhIHJlZmVyZW5kdW0gU2Vjb25kZWQIASBzZWNvbmRlcgABMFQ6OkFjY291bnRJZAABKHByb3BfaW5kZXgQASRQcm9wSW5kZXgADASMQW4gYWNjb3VudCBoYXMgc2VjY29uZGVkIGEgcHJvcG9zYWxAUHJvcG9zYWxDYW5jZWxlZAQBKHByb3BfaW5kZXgQASRQcm9wSW5kZXgADQRgQSBwcm9wb3NhbCBnb3QgY2FuY2VsZWQuLE1ldGFkYXRhU2V0CAEUb3duZXK4ATRNZXRhZGF0YU93bmVyBDxNZXRhZGF0YSBvd25lci4BEGhhc2g0ARxUOjpIYXNoBDhQcmVpbWFnZSBoYXNoLg4E1E1ldGFkYXRhIGZvciBhIHByb3Bvc2FsIG9yIGEgcmVmZXJlbmR1bSBoYXMgYmVlbiBzZXQuPE1ldGFkYXRhQ2xlYXJlZAgBFG93bmVyuAE0TWV0YWRhdGFPd25lcgQ8TWV0YWRhdGEgb3duZXIuARBoYXNoNAEcVDo6SGFzaAQ4UHJlaW1hZ2UgaGFzaC4PBORNZXRhZGF0YSBmb3IgYSBwcm9wb3NhbCBvciBhIHJlZmVyZW5kdW0gaGFzIGJlZW4gY2xlYXJlZC5MTWV0YWRhdGFUcmFuc2ZlcnJlZAwBKHByZXZfb3duZXK4ATRNZXRhZGF0YU93bmVyBGBQcmV2aW91cyBtZXRhZGF0YSBvd25lci4BFG93bmVyuAE0TWV0YWRhdGFPd25lcgRMTmV3IG1ldGFkYXRhIG93bmVyLgEQaGFzaDQBHFQ6Okhhc2gEOFByZWltYWdlIGhhc2guEASsTWV0YWRhdGEgaGFzIGJlZW4gdHJhbnNmZXJyZWQgdG8gbmV3IG93bmVyLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldKwMQHBhbGxldF9kZW1vY3JhY3k4dm90ZV90aHJlc2hvbGQ0Vm90ZVRocmVzaG9sZAABDFBTdXBlck1ham9yaXR5QXBwcm92ZQAAAFBTdXBlck1ham9yaXR5QWdhaW5zdAABADhTaW1wbGVNYWpvcml0eQACAACwDEBwYWxsZXRfZGVtb2NyYWN5EHZvdGUsQWNjb3VudFZvdGUEHEJhbGFuY2UBGAEIIFN0YW5kYXJkCAEQdm90ZbQBEFZvdGUAARxiYWxhbmNlGAEcQmFsYW5jZQAAABRTcGxpdAgBDGF5ZRgBHEJhbGFuY2UAAQxuYXkYARxCYWxhbmNlAAEAALQMQHBhbGxldF9kZW1vY3JhY3kQdm90ZRBWb3RlAAAEAAgAAAC4DEBwYWxsZXRfZGVtb2NyYWN5FHR5cGVzNE1ldGFkYXRhT3duZXIAAQwgRXh0ZXJuYWwAAAAgUHJvcG9zYWwEABABJFByb3BJbmRleAABAChSZWZlcmVuZHVtBAAQATxSZWZlcmVuZHVtSW5kZXgAAgAAvAxkcGFsbGV0X2VsZWN0aW9uc19waHJhZ21lbhhwYWxsZXQURXZlbnQEBFQAARwcTmV3VGVybQQBLG5ld19tZW1iZXJzwAHsVmVjPCg8VCBhcyBmcmFtZV9zeXN0ZW06OkNvbmZpZz46OkFjY291bnRJZCwgQmFsYW5jZU9mPFQ+KT4AABRFAUEgbmV3IHRlcm0gd2l0aCBuZXdfbWVtYmVycy4gVGhpcyBpbmRpY2F0ZXMgdGhhdCBlbm91Z2ggY2FuZGlkYXRlcyBleGlzdGVkIHRvIHJ1blUBdGhlIGVsZWN0aW9uLCBub3QgdGhhdCBlbm91Z2ggaGF2ZSBoYXMgYmVlbiBlbGVjdGVkLiBUaGUgaW5uZXIgdmFsdWUgbXVzdCBiZSBleGFtaW5lZEUBZm9yIHRoaXMgcHVycG9zZS4gQSBgTmV3VGVybShcW1xdKWAgaW5kaWNhdGVzIHRoYXQgc29tZSBjYW5kaWRhdGVzIGdvdCB0aGVpciBib25kVQFzbGFzaGVkIGFuZCBub25lIHdlcmUgZWxlY3RlZCwgd2hpbHN0IGBFbXB0eVRlcm1gIG1lYW5zIHRoYXQgbm8gY2FuZGlkYXRlcyBleGlzdGVkIHRvLGJlZ2luIHdpdGguJEVtcHR5VGVybQABCDEBTm8gKG9yIG5vdCBlbm91Z2gpIGNhbmRpZGF0ZXMgZXhpc3RlZCBmb3IgdGhpcyByb3VuZC4gVGhpcyBpcyBkaWZmZXJlbnQgZnJvbchgTmV3VGVybShcW1xdKWAuIFNlZSB0aGUgZGVzY3JpcHRpb24gb2YgYE5ld1Rlcm1gLjRFbGVjdGlvbkVycm9yAAIE5EludGVybmFsIGVycm9yIGhhcHBlbmVkIHdoaWxlIHRyeWluZyB0byBwZXJmb3JtIGVsZWN0aW9uLjBNZW1iZXJLaWNrZWQEARhtZW1iZXIAAZg8VCBhcyBmcmFtZV9zeXN0ZW06OkNvbmZpZz46OkFjY291bnRJZAADCEEBQSBtZW1iZXIgaGFzIGJlZW4gcmVtb3ZlZC4gVGhpcyBzaG91bGQgYWx3YXlzIGJlIGZvbGxvd2VkIGJ5IGVpdGhlciBgTmV3VGVybWAgb3IwYEVtcHR5VGVybWAuJFJlbm91bmNlZAQBJGNhbmRpZGF0ZQABmDxUIGFzIGZyYW1lX3N5c3RlbTo6Q29uZmlnPjo6QWNjb3VudElkAAQEmFNvbWVvbmUgaGFzIHJlbm91bmNlZCB0aGVpciBjYW5kaWRhY3kuQENhbmRpZGF0ZVNsYXNoZWQIASRjYW5kaWRhdGUAAZg8VCBhcyBmcmFtZV9zeXN0ZW06OkNvbmZpZz46OkFjY291bnRJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgAFEDkBQSBjYW5kaWRhdGUgd2FzIHNsYXNoZWQgYnkgYW1vdW50IGR1ZSB0byBmYWlsaW5nIHRvIG9idGFpbiBhIHNlYXQgYXMgbWVtYmVyIG9yKHJ1bm5lci11cC4A5E5vdGUgdGhhdCBvbGQgbWVtYmVycyBhbmQgcnVubmVycy11cCBhcmUgYWxzbyBjYW5kaWRhdGVzLkRTZWF0SG9sZGVyU2xhc2hlZAgBLHNlYXRfaG9sZGVyAAGYPFQgYXMgZnJhbWVfc3lzdGVtOjpDb25maWc+OjpBY2NvdW50SWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4ABgQ1AUEgc2VhdCBob2xkZXIgd2FzIHNsYXNoZWQgYnkgYW1vdW50IGJ5IGJlaW5nIGZvcmNlZnVsbHkgcmVtb3ZlZCBmcm9tIHRoZSBzZXQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0wAAAAsQAxAAABAgAGADIDERwYWxsZXRfY29sbGVjdGl2ZRhwYWxsZXQURXZlbnQIBFQABEkAARwgUHJvcG9zZWQQARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAE4cHJvcG9zYWxfaW5kZXgQATRQcm9wb3NhbEluZGV4AAE0cHJvcG9zYWxfaGFzaDQBHFQ6Okhhc2gAASR0aHJlc2hvbGQQASxNZW1iZXJDb3VudAAACEkBQSBtb3Rpb24gKGdpdmVuIGhhc2gpIGhhcyBiZWVuIHByb3Bvc2VkIChieSBnaXZlbiBhY2NvdW50KSB3aXRoIGEgdGhyZXNob2xkIChnaXZlbjxgTWVtYmVyQ291bnRgKS4UVm90ZWQUARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAE0cHJvcG9zYWxfaGFzaDQBHFQ6Okhhc2gAARR2b3RlZCABEGJvb2wAAQx5ZXMQASxNZW1iZXJDb3VudAABCG5vEAEsTWVtYmVyQ291bnQAAQgFAUEgbW90aW9uIChnaXZlbiBoYXNoKSBoYXMgYmVlbiB2b3RlZCBvbiBieSBnaXZlbiBhY2NvdW50LCBsZWF2aW5nFQFhIHRhbGx5ICh5ZXMgdm90ZXMgYW5kIG5vIHZvdGVzIGdpdmVuIHJlc3BlY3RpdmVseSBhcyBgTWVtYmVyQ291bnRgKS4gQXBwcm92ZWQEATRwcm9wb3NhbF9oYXNoNAEcVDo6SGFzaAACBMBBIG1vdGlvbiB3YXMgYXBwcm92ZWQgYnkgdGhlIHJlcXVpcmVkIHRocmVzaG9sZC4sRGlzYXBwcm92ZWQEATRwcm9wb3NhbF9oYXNoNAEcVDo6SGFzaAADBNBBIG1vdGlvbiB3YXMgbm90IGFwcHJvdmVkIGJ5IHRoZSByZXF1aXJlZCB0aHJlc2hvbGQuIEV4ZWN1dGVkCAE0cHJvcG9zYWxfaGFzaDQBHFQ6Okhhc2gAARhyZXN1bHSYAThEaXNwYXRjaFJlc3VsdAAEBCEBQSBtb3Rpb24gd2FzIGV4ZWN1dGVkOyByZXN1bHQgd2lsbCBiZSBgT2tgIGlmIGl0IHJldHVybmVkIHdpdGhvdXQgZXJyb3IuOE1lbWJlckV4ZWN1dGVkCAE0cHJvcG9zYWxfaGFzaDQBHFQ6Okhhc2gAARhyZXN1bHSYAThEaXNwYXRjaFJlc3VsdAAFBEkBQSBzaW5nbGUgbWVtYmVyIGRpZCBzb21lIGFjdGlvbjsgcmVzdWx0IHdpbGwgYmUgYE9rYCBpZiBpdCByZXR1cm5lZCB3aXRob3V0IGVycm9yLhhDbG9zZWQMATRwcm9wb3NhbF9oYXNoNAEcVDo6SGFzaAABDHllcxABLE1lbWJlckNvdW50AAEIbm8QASxNZW1iZXJDb3VudAAGBFUBQSBwcm9wb3NhbCB3YXMgY2xvc2VkIGJlY2F1c2UgaXRzIHRocmVzaG9sZCB3YXMgcmVhY2hlZCBvciBhZnRlciBpdHMgZHVyYXRpb24gd2FzIHVwLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldMwMRHBhbGxldF9jb2xsZWN0aXZlGHBhbGxldBRFdmVudAgEVAAESQABHCBQcm9wb3NlZBABHGFjY291bnQAATBUOjpBY2NvdW50SWQAAThwcm9wb3NhbF9pbmRleBABNFByb3Bvc2FsSW5kZXgAATRwcm9wb3NhbF9oYXNoNAEcVDo6SGFzaAABJHRocmVzaG9sZBABLE1lbWJlckNvdW50AAAISQFBIG1vdGlvbiAoZ2l2ZW4gaGFzaCkgaGFzIGJlZW4gcHJvcG9zZWQgKGJ5IGdpdmVuIGFjY291bnQpIHdpdGggYSB0aHJlc2hvbGQgKGdpdmVuPGBNZW1iZXJDb3VudGApLhRWb3RlZBQBHGFjY291bnQAATBUOjpBY2NvdW50SWQAATRwcm9wb3NhbF9oYXNoNAEcVDo6SGFzaAABFHZvdGVkIAEQYm9vbAABDHllcxABLE1lbWJlckNvdW50AAEIbm8QASxNZW1iZXJDb3VudAABCAUBQSBtb3Rpb24gKGdpdmVuIGhhc2gpIGhhcyBiZWVuIHZvdGVkIG9uIGJ5IGdpdmVuIGFjY291bnQsIGxlYXZpbmcVAWEgdGFsbHkgKHllcyB2b3RlcyBhbmQgbm8gdm90ZXMgZ2l2ZW4gcmVzcGVjdGl2ZWx5IGFzIGBNZW1iZXJDb3VudGApLiBBcHByb3ZlZAQBNHByb3Bvc2FsX2hhc2g0ARxUOjpIYXNoAAIEwEEgbW90aW9uIHdhcyBhcHByb3ZlZCBieSB0aGUgcmVxdWlyZWQgdGhyZXNob2xkLixEaXNhcHByb3ZlZAQBNHByb3Bvc2FsX2hhc2g0ARxUOjpIYXNoAAME0EEgbW90aW9uIHdhcyBub3QgYXBwcm92ZWQgYnkgdGhlIHJlcXVpcmVkIHRocmVzaG9sZC4gRXhlY3V0ZWQIATRwcm9wb3NhbF9oYXNoNAEcVDo6SGFzaAABGHJlc3VsdJgBOERpc3BhdGNoUmVzdWx0AAQEIQFBIG1vdGlvbiB3YXMgZXhlY3V0ZWQ7IHJlc3VsdCB3aWxsIGJlIGBPa2AgaWYgaXQgcmV0dXJuZWQgd2l0aG91dCBlcnJvci44TWVtYmVyRXhlY3V0ZWQIATRwcm9wb3NhbF9oYXNoNAEcVDo6SGFzaAABGHJlc3VsdJgBOERpc3BhdGNoUmVzdWx0AAUESQFBIHNpbmdsZSBtZW1iZXIgZGlkIHNvbWUgYWN0aW9uOyByZXN1bHQgd2lsbCBiZSBgT2tgIGlmIGl0IHJldHVybmVkIHdpdGhvdXQgZXJyb3IuGENsb3NlZAwBNHByb3Bvc2FsX2hhc2g0ARxUOjpIYXNoAAEMeWVzEAEsTWVtYmVyQ291bnQAAQhubxABLE1lbWJlckNvdW50AAYEVQFBIHByb3Bvc2FsIHdhcyBjbG9zZWQgYmVjYXVzZSBpdHMgdGhyZXNob2xkIHdhcyByZWFjaGVkIG9yIGFmdGVyIGl0cyBkdXJhdGlvbiB3YXMgdXAuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV00AwscGFsbGV0X3RpcHMYcGFsbGV0FEV2ZW50CARUAARJAAEUGE5ld1RpcAQBIHRpcF9oYXNoNAEcVDo6SGFzaAAABJRBIG5ldyB0aXAgc3VnZ2VzdGlvbiBoYXMgYmVlbiBvcGVuZWQuKFRpcENsb3NpbmcEASB0aXBfaGFzaDQBHFQ6Okhhc2gAAQTYQSB0aXAgc3VnZ2VzdGlvbiBoYXMgcmVhY2hlZCB0aHJlc2hvbGQgYW5kIGlzIGNsb3NpbmcuJFRpcENsb3NlZAwBIHRpcF9oYXNoNAEcVDo6SGFzaAABDHdobwABMFQ6OkFjY291bnRJZAABGHBheW91dBgBPEJhbGFuY2VPZjxULCBJPgACBIRBIHRpcCBzdWdnZXN0aW9uIGhhcyBiZWVuIGNsb3NlZC4wVGlwUmV0cmFjdGVkBAEgdGlwX2hhc2g0ARxUOjpIYXNoAAMEkEEgdGlwIHN1Z2dlc3Rpb24gaGFzIGJlZW4gcmV0cmFjdGVkLihUaXBTbGFzaGVkDAEgdGlwX2hhc2g0ARxUOjpIYXNoAAEYZmluZGVyAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdBgBPEJhbGFuY2VPZjxULCBJPgAEBIhBIHRpcCBzdWdnZXN0aW9uIGhhcyBiZWVuIHNsYXNoZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV01AwwcGFsbGV0X3Byb3h5GHBhbGxldBRFdmVudAQEVAABFDRQcm94eUV4ZWN1dGVkBAEYcmVzdWx0mAE4RGlzcGF0Y2hSZXN1bHQAAAS8QSBwcm94eSB3YXMgZXhlY3V0ZWQgY29ycmVjdGx5LCB3aXRoIHRoZSBnaXZlbi4sUHVyZUNyZWF0ZWQQARBwdXJlAAEwVDo6QWNjb3VudElkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZdgBMFQ6OlByb3h5VHlwZQABUGRpc2FtYmlndWF0aW9uX2luZGV43AEMdTE2AAEI3EEgcHVyZSBhY2NvdW50IGhhcyBiZWVuIGNyZWF0ZWQgYnkgbmV3IHByb3h5IHdpdGggZ2l2ZW6QZGlzYW1iaWd1YXRpb24gaW5kZXggYW5kIHByb3h5IHR5cGUuJEFubm91bmNlZAwBEHJlYWwAATBUOjpBY2NvdW50SWQAARRwcm94eQABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaDQBNENhbGxIYXNoT2Y8VD4AAgTgQW4gYW5ub3VuY2VtZW50IHdhcyBwbGFjZWQgdG8gbWFrZSBhIGNhbGwgaW4gdGhlIGZ1dHVyZS4oUHJveHlBZGRlZBABJGRlbGVnYXRvcgABMFQ6OkFjY291bnRJZAABJGRlbGVnYXRlZQABMFQ6OkFjY291bnRJZAABKHByb3h5X3R5cGXYATBUOjpQcm94eVR5cGUAARRkZWxheRABREJsb2NrTnVtYmVyRm9yPFQ+AAMESEEgcHJveHkgd2FzIGFkZGVkLjBQcm94eVJlbW92ZWQQASRkZWxlZ2F0b3IAATBUOjpBY2NvdW50SWQAASRkZWxlZ2F0ZWUAATBUOjpBY2NvdW50SWQAAShwcm94eV90eXBl2AEwVDo6UHJveHlUeXBlAAEUZGVsYXkQAURCbG9ja051bWJlckZvcjxUPgAEBFBBIHByb3h5IHdhcyByZW1vdmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldNgMPGh5ZHJhZHhfcnVudGltZRhzeXN0ZW0kUHJveHlUeXBlAAEYDEFueQAAACxDYW5jZWxQcm94eQABAChHb3Zlcm5hbmNlAAIAIFRyYW5zZmVyAAMAJExpcXVpZGl0eQAEADxMaXF1aWRpdHlNaW5pbmcABQAA3AAABQQA4Aw8cGFsbGV0X211bHRpc2lnGHBhbGxldBRFdmVudAQEVAABECxOZXdNdWx0aXNpZwwBJGFwcHJvdmluZwABMFQ6OkFjY291bnRJZAABIG11bHRpc2lnAAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoBAEgQ2FsbEhhc2gAAASMQSBuZXcgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWd1bi5ATXVsdGlzaWdBcHByb3ZhbBABJGFwcHJvdmluZwABMFQ6OkFjY291bnRJZAABJHRpbWVwb2ludOQBcFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4AASBtdWx0aXNpZwABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAQBIENhbGxIYXNoAAEEyEEgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWVuIGFwcHJvdmVkIGJ5IHNvbWVvbmUuQE11bHRpc2lnRXhlY3V0ZWQUASRhcHByb3ZpbmcAATBUOjpBY2NvdW50SWQAASR0aW1lcG9pbnTkAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEgbXVsdGlzaWcAATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gEASBDYWxsSGFzaAABGHJlc3VsdJgBOERpc3BhdGNoUmVzdWx0AAIEnEEgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLkRNdWx0aXNpZ0NhbmNlbGxlZBABKGNhbmNlbGxpbmcAATBUOjpBY2NvdW50SWQAASR0aW1lcG9pbnTkAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEgbXVsdGlzaWcAATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gEASBDYWxsSGFzaAADBKBBIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiBjYW5jZWxsZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV05Ag8cGFsbGV0X211bHRpc2lnJFRpbWVwb2ludAQsQmxvY2tOdW1iZXIBEAAIARhoZWlnaHQQASxCbG9ja051bWJlcgABFGluZGV4EAEMdTMyAADoDDhwYWxsZXRfdW5pcXVlcxhwYWxsZXQURXZlbnQIBFQABEkAAWwcQ3JlYXRlZAwBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARxjcmVhdG9yAAEwVDo6QWNjb3VudElkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAAARsQSBgY29sbGVjdGlvbmAgd2FzIGNyZWF0ZWQuMEZvcmNlQ3JlYXRlZAgBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABBIRBIGBjb2xsZWN0aW9uYCB3YXMgZm9yY2UtY3JlYXRlZC4kRGVzdHJveWVkBAEoY29sbGVjdGlvbhgBPFQ6OkNvbGxlY3Rpb25JZAACBHRBIGBjb2xsZWN0aW9uYCB3YXMgZGVzdHJveWVkLhhJc3N1ZWQMAShjb2xsZWN0aW9uGAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbRgBJFQ6Okl0ZW1JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAMEVEFuIGBpdGVtYCB3YXMgaXNzdWVkLixUcmFuc2ZlcnJlZBABKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtGAEkVDo6SXRlbUlkAAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAQEaEFuIGBpdGVtYCB3YXMgdHJhbnNmZXJyZWQuGEJ1cm5lZAwBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtGAEkVDo6SXRlbUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQABQRgQW4gYGl0ZW1gIHdhcyBkZXN0cm95ZWQuGEZyb3plbggBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtGAEkVDo6SXRlbUlkAAYEXFNvbWUgYGl0ZW1gIHdhcyBmcm96ZW4uGFRoYXdlZAgBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtGAEkVDo6SXRlbUlkAAcEXFNvbWUgYGl0ZW1gIHdhcyB0aGF3ZWQuQENvbGxlY3Rpb25Gcm96ZW4EAShjb2xsZWN0aW9uGAE8VDo6Q29sbGVjdGlvbklkAAgEdFNvbWUgYGNvbGxlY3Rpb25gIHdhcyBmcm96ZW4uQENvbGxlY3Rpb25UaGF3ZWQEAShjb2xsZWN0aW9uGAE8VDo6Q29sbGVjdGlvbklkAAkEdFNvbWUgYGNvbGxlY3Rpb25gIHdhcyB0aGF3ZWQuME93bmVyQ2hhbmdlZAgBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAASRuZXdfb3duZXIAATBUOjpBY2NvdW50SWQACgRIVGhlIG93bmVyIGNoYW5nZWQuLFRlYW1DaGFuZ2VkEAEoY29sbGVjdGlvbhgBPFQ6OkNvbGxlY3Rpb25JZAABGGlzc3VlcgABMFQ6OkFjY291bnRJZAABFGFkbWluAAEwVDo6QWNjb3VudElkAAEcZnJlZXplcgABMFQ6OkFjY291bnRJZAALBHBUaGUgbWFuYWdlbWVudCB0ZWFtIGNoYW5nZWQuQEFwcHJvdmVkVHJhbnNmZXIQAShjb2xsZWN0aW9uGAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbRgBJFQ6Okl0ZW1JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAEgZGVsZWdhdGUAATBUOjpBY2NvdW50SWQADAgxAUFuIGBpdGVtYCBvZiBhIGBjb2xsZWN0aW9uYCBoYXMgYmVlbiBhcHByb3ZlZCBieSB0aGUgYG93bmVyYCBmb3IgdHJhbnNmZXIgYnk0YSBgZGVsZWdhdGVgLkRBcHByb3ZhbENhbmNlbGxlZBABKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtGAEkVDo6SXRlbUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAASBkZWxlZ2F0ZQABMFQ6OkFjY291bnRJZAANCBkBQW4gYXBwcm92YWwgZm9yIGEgYGRlbGVnYXRlYCBhY2NvdW50IHRvIHRyYW5zZmVyIHRoZSBgaXRlbWAgb2YgYW4gaXRlbahgY29sbGVjdGlvbmAgd2FzIGNhbmNlbGxlZCBieSBpdHMgYG93bmVyYC5ESXRlbVN0YXR1c0NoYW5nZWQEAShjb2xsZWN0aW9uGAE8VDo6Q29sbGVjdGlvbklkAA4EEQFBIGBjb2xsZWN0aW9uYCBoYXMgaGFkIGl0cyBhdHRyaWJ1dGVzIGNoYW5nZWQgYnkgdGhlIGBGb3JjZWAgb3JpZ2luLlRDb2xsZWN0aW9uTWV0YWRhdGFTZXQMAShjb2xsZWN0aW9uGAE8VDo6Q29sbGVjdGlvbklkAAEQZGF0YewBeEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0PgABJGlzX2Zyb3plbiABEGJvb2wADwS0TmV3IG1ldGFkYXRhIGhhcyBiZWVuIHNldCBmb3IgYSBgY29sbGVjdGlvbmAuZENvbGxlY3Rpb25NZXRhZGF0YUNsZWFyZWQEAShjb2xsZWN0aW9uGAE8VDo6Q29sbGVjdGlvbklkABAEtE1ldGFkYXRhIGhhcyBiZWVuIGNsZWFyZWQgZm9yIGEgYGNvbGxlY3Rpb25gLixNZXRhZGF0YVNldBABKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtGAEkVDo6SXRlbUlkAAEQZGF0YewBeEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0PgABJGlzX2Zyb3plbiABEGJvb2wAEQSYTmV3IG1ldGFkYXRhIGhhcyBiZWVuIHNldCBmb3IgYW4gaXRlbS48TWV0YWRhdGFDbGVhcmVkCAEoY29sbGVjdGlvbhgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW0YASRUOjpJdGVtSWQAEgSYTWV0YWRhdGEgaGFzIGJlZW4gY2xlYXJlZCBmb3IgYW4gaXRlbS4sUmVkZXBvc2l0ZWQIAShjb2xsZWN0aW9uGAE8VDo6Q29sbGVjdGlvbklkAAFAc3VjY2Vzc2Z1bF9pdGVtc/ABOFZlYzxUOjpJdGVtSWQ+ABMEmE1ldGFkYXRhIGhhcyBiZWVuIGNsZWFyZWQgZm9yIGFuIGl0ZW0uMEF0dHJpYnV0ZVNldBABKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAAShtYXliZV9pdGVt9AFET3B0aW9uPFQ6Okl0ZW1JZD4AAQxrZXn4AWxCb3VuZGVkVmVjPHU4LCBUOjpLZXlMaW1pdD4AARR2YWx1ZfwBdEJvdW5kZWRWZWM8dTgsIFQ6OlZhbHVlTGltaXQ+ABQEBQFOZXcgYXR0cmlidXRlIG1ldGFkYXRhIGhhcyBiZWVuIHNldCBmb3IgYSBgY29sbGVjdGlvbmAgb3IgYGl0ZW1gLkBBdHRyaWJ1dGVDbGVhcmVkDAEoY29sbGVjdGlvbhgBPFQ6OkNvbGxlY3Rpb25JZAABKG1heWJlX2l0ZW30AURPcHRpb248VDo6SXRlbUlkPgABDGtlefgBbEJvdW5kZWRWZWM8dTgsIFQ6OktleUxpbWl0PgAVBAUBQXR0cmlidXRlIG1ldGFkYXRhIGhhcyBiZWVuIGNsZWFyZWQgZm9yIGEgYGNvbGxlY3Rpb25gIG9yIGBpdGVtYC5oT3duZXJzaGlwQWNjZXB0YW5jZUNoYW5nZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAAUBtYXliZV9jb2xsZWN0aW9u9AFcT3B0aW9uPFQ6OkNvbGxlY3Rpb25JZD4AFgTAT3duZXJzaGlwIGFjY2VwdGFuY2UgaGFzIGNoYW5nZWQgZm9yIGFuIGFjY291bnQuWENvbGxlY3Rpb25NYXhTdXBwbHlTZXQIAShjb2xsZWN0aW9uGAE8VDo6Q29sbGVjdGlvbklkAAEobWF4X3N1cHBseRABDHUzMgAXBKRNYXggc3VwcGx5IGhhcyBiZWVuIHNldCBmb3IgYSBjb2xsZWN0aW9uLjBJdGVtUHJpY2VTZXQQAShjb2xsZWN0aW9uGAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbRgBJFQ6Okl0ZW1JZAABFHByaWNlGAE8SXRlbVByaWNlPFQsIEk+AAFEd2hpdGVsaXN0ZWRfYnV5ZXIBAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AGASMVGhlIHByaWNlIHdhcyBzZXQgZm9yIHRoZSBpbnN0YW5jZS5ASXRlbVByaWNlUmVtb3ZlZAgBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtGAEkVDo6SXRlbUlkABkEnFRoZSBwcmljZSBmb3IgdGhlIGluc3RhbmNlIHdhcyByZW1vdmVkLihJdGVtQm91Z2h0FAEoY29sbGVjdGlvbhgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW0YASRUOjpJdGVtSWQAARRwcmljZRgBPEl0ZW1QcmljZTxULCBJPgABGHNlbGxlcgABMFQ6OkFjY291bnRJZAABFGJ1eWVyAAEwVDo6QWNjb3VudElkABoETEFuIGl0ZW0gd2FzIGJvdWdodC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTsDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAA8AAAAhgA9AQYT3B0aW9uBARUARgBCBBOb25lAAAAEFNvbWUEABgAAAEAAPgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AAD8DExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAAAQEEGE9wdGlvbgQEVAEAAQgQTm9uZQAAABBTb21lBAAAAAABAAAFAQxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldBRFdmVudAQEVAABECBNaWdyYXRlZAwBDHRvcBABDHUzMgABFGNoaWxkEAEMdTMyAAEcY29tcHV0ZQkBAUBNaWdyYXRpb25Db21wdXRlAAAIOQFHaXZlbiBudW1iZXIgb2YgYCh0b3AsIGNoaWxkKWAga2V5cyB3ZXJlIG1pZ3JhdGVkIHJlc3BlY3RpdmVseSwgd2l0aCB0aGUgZ2l2ZW4oYGNvbXB1dGVgLhxTbGFzaGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAEEtFNvbWUgYWNjb3VudCBnb3Qgc2xhc2hlZCBieSB0aGUgZ2l2ZW4gYW1vdW50LlRBdXRvTWlncmF0aW9uRmluaXNoZWQAAgSEVGhlIGF1dG8gbWlncmF0aW9uIHRhc2sgZmluaXNoZWQuGEhhbHRlZAQBFGVycm9yDQEBIEVycm9yPFQ+AAME7E1pZ3JhdGlvbiBnb3QgaGFsdGVkIGR1ZSB0byBhbiBlcnJvciBvciBtaXNzLWNvbmZpZ3VyYXRpb24uBHBJbm5lciBldmVudHMgb2YgdGhpcyBwYWxsZXQuCQEMbHBhbGxldF9zdGF0ZV90cmllX21pZ3JhdGlvbhhwYWxsZXRATWlncmF0aW9uQ29tcHV0ZQABCBhTaWduZWQAAAAQQXV0bwABAAANAQxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldBRFcnJvcgQEVAABGDxNYXhTaWduZWRMaW1pdHMAAASATWF4IHNpZ25lZCBsaW1pdHMgbm90IHJlc3BlY3RlZC4oS2V5VG9vTG9uZwABHLRBIGtleSB3YXMgbG9uZ2VyIHRoYW4gdGhlIGNvbmZpZ3VyZWQgbWF4aW11bS4AEQFUaGlzIG1lYW5zIHRoYXQgdGhlIG1pZ3JhdGlvbiBoYWx0ZWQgYXQgdGhlIGN1cnJlbnQgW2BQcm9ncmVzc2BdIGFuZAEBY2FuIGJlIHJlc3VtZWQgd2l0aCBhIGxhcmdlciBbYGNyYXRlOjpDb25maWc6Ok1heEtleUxlbmBdIHZhbHVlLiEBUmV0cnlpbmcgd2l0aCB0aGUgc2FtZSBbYGNyYXRlOjpDb25maWc6Ok1heEtleUxlbmBdIHZhbHVlIHdpbGwgbm90IHdvcmsuRQFUaGUgdmFsdWUgc2hvdWxkIG9ubHkgYmUgaW5jcmVhc2VkIHRvIGF2b2lkIGEgc3RvcmFnZSBtaWdyYXRpb24gZm9yIHRoZSBjdXJyZW50bHmQc3RvcmVkIFtgY3JhdGU6OlByb2dyZXNzOjpMYXN0S2V5YF0uOE5vdEVub3VnaEZ1bmRzAAIElHN1Ym1pdHRlciBkb2VzIG5vdCBoYXZlIGVub3VnaCBmdW5kcy4oQmFkV2l0bmVzcwADBGhCYWQgd2l0bmVzcyBkYXRhIHByb3ZpZGVkLmRTaWduZWRNaWdyYXRpb25Ob3RBbGxvd2VkAAQEJQFTaWduZWQgbWlncmF0aW9uIGlzIG5vdCBhbGxvd2VkIGJlY2F1c2UgdGhlIG1heGltdW0gbGltaXQgaXMgbm90IHNldCB5ZXQuMEJhZENoaWxkUm9vdAAFBGBCYWQgY2hpbGQgcm9vdCBwcm92aWRlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuEQEMVHBhbGxldF9hc3NldF9yZWdpc3RyeRhwYWxsZXQURXZlbnQEBFQAARhYRXhpc3RlbnRpYWxEZXBvc2l0UGFpZAwBDHdobwABMFQ6OkFjY291bnRJZAABJGZlZV9hc3NldBABKFQ6OkFzc2V0SWQAARhhbW91bnQYARxCYWxhbmNlAAAI0EV4aXN0ZW50aWFsIGRlcG9zaXQgZm9yIGluc3VmZmljaW5ldCBhc3NldCB3YXMgcGFpZC6cYFN1ZmZpY2llbmN5Q2hlY2tgIHRyaWdnZXJzIHRoaXMgZXZlbnQuKFJlZ2lzdGVyZWQgASBhc3NldF9pZBABKFQ6OkFzc2V0SWQAAShhc3NldF9uYW1lFQEBmE9wdGlvbjxCb3VuZGVkVmVjPHU4LCBUOjpTdHJpbmdMaW1pdD4+AAEoYXNzZXRfdHlwZR0BASRBc3NldFR5cGUAAUxleGlzdGVudGlhbF9kZXBvc2l0GAEcQmFsYW5jZQABOHhjbV9yYXRlX2xpbWl09AE8T3B0aW9uPEJhbGFuY2U+AAEYc3ltYm9sFQEBmE9wdGlvbjxCb3VuZGVkVmVjPHU4LCBUOjpTdHJpbmdMaW1pdD4+AAEgZGVjaW1hbHMhAQEoT3B0aW9uPHU4PgABNGlzX3N1ZmZpY2llbnQgARBib29sAAEEVEFzc2V0IHdhcyByZWdpc3RlcmVkLhxVcGRhdGVkIAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAEoYXNzZXRfbmFtZRUBAZhPcHRpb248Qm91bmRlZFZlYzx1OCwgVDo6U3RyaW5nTGltaXQ+PgABKGFzc2V0X3R5cGUdAQEkQXNzZXRUeXBlAAFMZXhpc3RlbnRpYWxfZGVwb3NpdBgBHEJhbGFuY2UAATh4Y21fcmF0ZV9saW1pdPQBPE9wdGlvbjxCYWxhbmNlPgABGHN5bWJvbBUBAZhPcHRpb248Qm91bmRlZFZlYzx1OCwgVDo6U3RyaW5nTGltaXQ+PgABIGRlY2ltYWxzIQEBKE9wdGlvbjx1OD4AATRpc19zdWZmaWNpZW50IAEQYm9vbAACBEhBc3NldCB3YXMgdXBkYXRlZC4sTG9jYXRpb25TZXQIASBhc3NldF9pZBABKFQ6OkFzc2V0SWQAASBsb2NhdGlvbiUBAVhUOjpBc3NldE5hdGl2ZUxvY2F0aW9uAAMEhE5hdGl2ZSBsb2NhdGlvbiBzZXQgZm9yIGFuIGFzc2V0LixBc3NldEJhbm5lZAQBIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAAEBERBc3NldCB3YXMgYmFubmVkLjRBc3NldFVuYmFubmVkBAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAUEYEFzc2V0J3MgYmFuIHdhcyByZW1vdmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldBUBBBhPcHRpb24EBFQBGQEBCBBOb25lAAAAEFNvbWUEABkBAAABAAAZAQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAB0BDFRwYWxsZXRfYXNzZXRfcmVnaXN0cnkUdHlwZXMkQXNzZXRUeXBlAAEYFFRva2VuAAAADFhZSwABAChTdGFibGVTd2FwAAIAEEJvbmQAAwAgRXh0ZXJuYWwABAAURXJjMjAABQAAIQEEGE9wdGlvbgQEVAEIAQgQTm9uZQAAABBTb21lBAAIAAABAAAlAQw8aHlkcmFkeF9ydW50aW1lDHhjbTRBc3NldExvY2F0aW9uAAAEACkBAWhwb2xrYWRvdF94Y206OnYzOjpMb2NhdGlvbgAAKQEQLHN0YWdpbmdfeGNtCHYzNG11bHRpbG9jYXRpb240TXVsdGlMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3ItAQEkSnVuY3Rpb25zAAAtARAMeGNtCHYzJGp1bmN0aW9ucyRKdW5jdGlvbnMAASQQSGVyZQAAAAhYMQQAMQEBIEp1bmN0aW9uAAEACFgyCAAxAQEgSnVuY3Rpb24AADEBASBKdW5jdGlvbgACAAhYMwwAMQEBIEp1bmN0aW9uAAAxAQEgSnVuY3Rpb24AADEBASBKdW5jdGlvbgADAAhYNBAAMQEBIEp1bmN0aW9uAAAxAQEgSnVuY3Rpb24AADEBASBKdW5jdGlvbgAAMQEBIEp1bmN0aW9uAAQACFg1FAAxAQEgSnVuY3Rpb24AADEBASBKdW5jdGlvbgAAMQEBIEp1bmN0aW9uAAAxAQEgSnVuY3Rpb24AADEBASBKdW5jdGlvbgAFAAhYNhgAMQEBIEp1bmN0aW9uAAAxAQEgSnVuY3Rpb24AADEBASBKdW5jdGlvbgAAMQEBIEp1bmN0aW9uAAAxAQEgSnVuY3Rpb24AADEBASBKdW5jdGlvbgAGAAhYNxwAMQEBIEp1bmN0aW9uAAAxAQEgSnVuY3Rpb24AADEBASBKdW5jdGlvbgAAMQEBIEp1bmN0aW9uAAAxAQEgSnVuY3Rpb24AADEBASBKdW5jdGlvbgAAMQEBIEp1bmN0aW9uAAcACFg4IAAxAQEgSnVuY3Rpb24AADEBASBKdW5jdGlvbgAAMQEBIEp1bmN0aW9uAAAxAQEgSnVuY3Rpb24AADEBASBKdW5jdGlvbgAAMQEBIEp1bmN0aW9uAAAxAQEgSnVuY3Rpb24AADEBASBKdW5jdGlvbgAIAAAxARAMeGNtCHYzIGp1bmN0aW9uIEp1bmN0aW9uAAEoJFBhcmFjaGFpbgQANQEBDHUzMgAAACxBY2NvdW50SWQzMggBHG5ldHdvcms5AQFET3B0aW9uPE5ldHdvcmtJZD4AAQhpZAQBIFt1ODsgMzJdAAEAOEFjY291bnRJbmRleDY0CAEcbmV0d29yazkBAURPcHRpb248TmV0d29ya0lkPgABFGluZGV4LAEMdTY0AAIAMEFjY291bnRLZXkyMAgBHG5ldHdvcms5AQFET3B0aW9uPE5ldHdvcmtJZD4AAQxrZXlBAQEgW3U4OyAyMF0AAwA4UGFsbGV0SW5zdGFuY2UEAAgBCHU4AAQAMEdlbmVyYWxJbmRleAQARQEBEHUxMjgABQAoR2VuZXJhbEtleQgBGGxlbmd0aAgBCHU4AAEQZGF0YQQBIFt1ODsgMzJdAAYAJE9ubHlDaGlsZAAHACRQbHVyYWxpdHkIAQhpZEkBARhCb2R5SWQAARBwYXJ0TQEBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQAPQEBJE5ldHdvcmtJZAAJAAA1AQAABhAAOQEEGE9wdGlvbgQEVAE9AQEIEE5vbmUAAAAQU29tZQQAPQEAAAEAAD0BEAx4Y20IdjMganVuY3Rpb24kTmV0d29ya0lkAAEsJEJ5R2VuZXNpcwQABAEgW3U4OyAzMl0AAAAYQnlGb3JrCAEwYmxvY2tfbnVtYmVyMAEMdTY0AAEoYmxvY2tfaGFzaAQBIFt1ODsgMzJdAAEAIFBvbGthZG90AAIAGEt1c2FtYQADABxXZXN0ZW5kAAQAGFJvY29jbwAFABhXb2NvY28ABgAgRXRoZXJldW0EASBjaGFpbl9pZCwBDHU2NAAHACxCaXRjb2luQ29yZQAIACxCaXRjb2luQ2FzaAAJAEBQb2xrYWRvdEJ1bGxldGluAAoAAEEBAAADFAAAAAgARQEAAAYYAEkBEAx4Y20IdjMganVuY3Rpb24YQm9keUlkAAEoEFVuaXQAAAAcTW9uaWtlcgQASAEcW3U4OyA0XQABABRJbmRleAQANQEBDHUzMgACACRFeGVjdXRpdmUAAwAkVGVjaG5pY2FsAAQALExlZ2lzbGF0aXZlAAUAIEp1ZGljaWFsAAYAHERlZmVuc2UABwA4QWRtaW5pc3RyYXRpb24ACAAgVHJlYXN1cnkACQAATQEQDHhjbQh2MyBqdW5jdGlvbiBCb2R5UGFydAABFBRWb2ljZQAAABxNZW1iZXJzBAEUY291bnQ1AQEMdTMyAAEAIEZyYWN0aW9uCAEMbm9tNQEBDHUzMgABFGRlbm9tNQEBDHUzMgACAERBdExlYXN0UHJvcG9ydGlvbggBDG5vbTUBAQx1MzIAARRkZW5vbTUBAQx1MzIAAwBITW9yZVRoYW5Qcm9wb3J0aW9uCAEMbm9tNQEBDHUzMgABFGRlbm9tNQEBDHUzMgAEAABRAQw0cGFsbGV0X2NsYWltcxhwYWxsZXQURXZlbnQEBFQAAQQUQ2xhaW0MAAABMFQ6OkFjY291bnRJZAAAVQEBPEV0aGVyZXVtQWRkcmVzcwAAGAEwQmFsYW5jZU9mPFQ+AAAABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0VQEMNHBhbGxldF9jbGFpbXMYdHJhaXRzPEV0aGVyZXVtQWRkcmVzcwAABABBAQEgW3U4OyAyMF0AAFkBDFxwYWxsZXRfY29sbGF0b3JfcmV3YXJkcxhwYWxsZXQURXZlbnQEBFQAAQRAQ29sbGF0b3JSZXdhcmRlZAwBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAASBjdXJyZW5jeRABNFQ6OkN1cnJlbmN5SWQAAARYQ29sbGF0b3Igd2FzIHJld2FyZGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldF0BDDxwYWxsZXRfb21uaXBvb2wYcGFsbGV0FEV2ZW50BARUAAE0KFRva2VuQWRkZWQMASBhc3NldF9pZBABKFQ6OkFzc2V0SWQAAThpbml0aWFsX2Ftb3VudBgBHEJhbGFuY2UAATRpbml0aWFsX3ByaWNlYQEBFFByaWNlAAAEeEFuIGFzc2V0IHdhcyBhZGRlZCB0byBPbW5pcG9vbDBUb2tlblJlbW92ZWQMASBhc3NldF9pZBABKFQ6OkFzc2V0SWQAARhhbW91bnQYARxCYWxhbmNlAAE0aHViX3dpdGhkcmF3bhgBHEJhbGFuY2UAAQSIQW4gYXNzZXQgd2FzIHJlbW92ZWQgZnJvbSBPbW5pcG9vbDhMaXF1aWRpdHlBZGRlZBABDHdobwABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAABGGFtb3VudBgBHEJhbGFuY2UAASxwb3NpdGlvbl9pZBgBRFQ6OlBvc2l0aW9uSXRlbUlkAAIEsExpcXVpZGl0eSBvZiBhbiBhc3NldCB3YXMgYWRkZWQgdG8gT21uaXBvb2wuQExpcXVpZGl0eVJlbW92ZWQUAQx3aG8AATBUOjpBY2NvdW50SWQAASxwb3NpdGlvbl9pZBgBRFQ6OlBvc2l0aW9uSXRlbUlkAAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAE4c2hhcmVzX3JlbW92ZWQYARxCYWxhbmNlAAEMZmVlYQEBJEZpeGVkVTEyOAADBMBMaXF1aWRpdHkgb2YgYW4gYXNzZXQgd2FzIHJlbW92ZWQgZnJvbSBPbW5pcG9vbC5gUHJvdG9jb2xMaXF1aWRpdHlSZW1vdmVkFAEMd2hvAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAEYYW1vdW50GAEcQmFsYW5jZQABKGh1Yl9hbW91bnQYARxCYWxhbmNlAAE4c2hhcmVzX3JlbW92ZWQYARxCYWxhbmNlAAQEtFBSb3RvY29sIExpcXVpZGl0eSB3YXMgcmVtb3ZlZCBmcm9tIE9tbmlwb29sLjBTZWxsRXhlY3V0ZWQkAQx3aG8AATBUOjpBY2NvdW50SWQAASBhc3NldF9pbhABKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQQAShUOjpBc3NldElkAAEkYW1vdW50X2luGAEcQmFsYW5jZQABKGFtb3VudF9vdXQYARxCYWxhbmNlAAE0aHViX2Ftb3VudF9pbhgBHEJhbGFuY2UAAThodWJfYW1vdW50X291dBgBHEJhbGFuY2UAAUBhc3NldF9mZWVfYW1vdW50GAEcQmFsYW5jZQABTHByb3RvY29sX2ZlZV9hbW91bnQYARxCYWxhbmNlAAUEUFNlbGwgdHJhZGUgZXhlY3V0ZWQuLEJ1eUV4ZWN1dGVkJAEMd2hvAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaW4QAShUOjpBc3NldElkAAEkYXNzZXRfb3V0EAEoVDo6QXNzZXRJZAABJGFtb3VudF9pbhgBHEJhbGFuY2UAAShhbW91bnRfb3V0GAEcQmFsYW5jZQABNGh1Yl9hbW91bnRfaW4YARxCYWxhbmNlAAE4aHViX2Ftb3VudF9vdXQYARxCYWxhbmNlAAFAYXNzZXRfZmVlX2Ftb3VudBgBHEJhbGFuY2UAAUxwcm90b2NvbF9mZWVfYW1vdW50GAEcQmFsYW5jZQAGBExCdXkgdHJhZGUgZXhlY3V0ZWQuPFBvc2l0aW9uQ3JlYXRlZBgBLHBvc2l0aW9uX2lkGAFEVDo6UG9zaXRpb25JdGVtSWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABFGFzc2V0EAEoVDo6QXNzZXRJZAABGGFtb3VudBgBHEJhbGFuY2UAARhzaGFyZXMYARxCYWxhbmNlAAEUcHJpY2VhAQEUUHJpY2UABwTATFAgUG9zaXRpb24gd2FzIGNyZWF0ZWQgYW5kIE5GVCBpbnN0YW5jZSBtaW50ZWQuRFBvc2l0aW9uRGVzdHJveWVkCAEscG9zaXRpb25faWQYAURUOjpQb3NpdGlvbkl0ZW1JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAgEyExQIFBvc2l0aW9uIHdhcyBkZXN0cm95ZWQgYW5kIE5GVCBpbnN0YW5jZSBidXJuZWQuPFBvc2l0aW9uVXBkYXRlZBgBLHBvc2l0aW9uX2lkGAFEVDo6UG9zaXRpb25JdGVtSWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABFGFzc2V0EAEoVDo6QXNzZXRJZAABGGFtb3VudBgBHEJhbGFuY2UAARhzaGFyZXMYARxCYWxhbmNlAAEUcHJpY2VhAQEUUHJpY2UACQRgTFAgUG9zaXRpb24gd2FzIHVwZGF0ZWQuUFRyYWRhYmxlU3RhdGVVcGRhdGVkCAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAEUc3RhdGVlAQEsVHJhZGFiaWxpdHkACgSgQXNzZXQncyB0cmFkYWJsZSBzdGF0ZSBoYXMgYmVlbiB1cGRhdGVkLjRBc3NldFJlZnVuZGVkDAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAEYYW1vdW50GAEcQmFsYW5jZQABJHJlY2lwaWVudAABMFQ6OkFjY291bnRJZAALBEkBQW1vdW50IGhhcyBiZWVuIHJlZnVuZGVkIGZvciBhc3NldCB3aGljaCBoYXMgbm90IGJlZW4gYWNjZXB0ZWQgdG8gYWRkIHRvIG9tbmlwb29sLlRBc3NldFdlaWdodENhcFVwZGF0ZWQIASBhc3NldF9pZBABKFQ6OkFzc2V0SWQAAQxjYXBpAQEcUGVybWlsbAAMBJBBc3NldCdzIHdlaWdodCBjYXAgaGFzIGJlZW4gdXBkYXRlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRhAQw0c3BfYXJpdGhtZXRpYyxmaXhlZF9wb2ludCRGaXhlZFUxMjgAAAQAGAEQdTEyOAAAZQEMPHBhbGxldF9vbW5pcG9vbBR0eXBlcyxUcmFkYWJpbGl0eQAABAEQYml0cwgBCHU4AABpAQw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzHFBlcm1pbGwAAAQAEAEMdTMyAABtAQxgcGFsbGV0X3RyYW5zYWN0aW9uX3BhdXNlGHBhbGxldBRFdmVudAQEVAABCERUcmFuc2FjdGlvblBhdXNlZAgBRHBhbGxldF9uYW1lX2J5dGVzOAEcVmVjPHU4PgABTGZ1bmN0aW9uX25hbWVfYnl0ZXM4ARxWZWM8dTg+AAAESFBhdXNlZCB0cmFuc2FjdGlvbkxUcmFuc2FjdGlvblVucGF1c2VkCAFEcGFsbGV0X25hbWVfYnl0ZXM4ARxWZWM8dTg+AAFMZnVuY3Rpb25fbmFtZV9ieXRlczgBHFZlYzx1OD4AAQRQVW5wYXVzZWQgdHJhbnNhY3Rpb24EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRxAQw0cGFsbGV0X2R1c3RlchhwYWxsZXQURXZlbnQEBFQAAQwYRHVzdGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQAABDxBY2NvdW50IGR1c3RlZC4UQWRkZWQEAQx3aG8AATBUOjpBY2NvdW50SWQAAQSMQWNjb3VudCBhZGRlZCB0byBub24tZHVzdGFibGUgbGlzdC4cUmVtb3ZlZAQBDHdobwABMFQ6OkFjY291bnRJZAACBJxBY2NvdW50IHJlbW92ZWQgZnJvbSBub24tZHVzdGFibGUgbGlzdC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXR1AQxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcYcGFsbGV0FEV2ZW50CARUAARJAAEMXEdsb2JhbEZhcm1BY2NSUFpVcGRhdGVkDAE4Z2xvYmFsX2Zhcm1faWQQATBHbG9iYWxGYXJtSWQAATxhY2N1bXVsYXRlZF9ycHphAQEkRml4ZWRVMTI4AAE4dG90YWxfc2hhcmVzX3oYARxCYWxhbmNlAAAE1Edsb2JhbCBmYXJtIGFjY3VtdWxhdGVkIHJld2FyZCBwZXIgc2hhcmUgd2FzIHVwZGF0ZWQuXFlpZWxkRmFybUFjY1JQVlNVcGRhdGVkEAE4Z2xvYmFsX2Zhcm1faWQQATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkEAEsWWllbGRGYXJtSWQAAUBhY2N1bXVsYXRlZF9ycHZzYQEBJEZpeGVkVTEyOAABTHRvdGFsX3ZhbHVlZF9zaGFyZXMYARxCYWxhbmNlAAEE7FlpZWxkIGZhcm0gYWNjdW11bGF0ZWQgcmV3YXJkIHBlciB2YWx1ZWQgc2hhcmUgd2FzIHVwZGF0ZWQuVEFsbFJld2FyZHNEaXN0cmlidXRlZAQBOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAIE8Edsb2JhbCBmYXJtIGhhcyBubyBtb3JlIHJld2FyZHMgdG8gZGlzdHJpYnV0ZSBpbiB0aGUgbW9tZW50LgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldHkBDIBwYWxsZXRfb21uaXBvb2xfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXZlbnQEBFQAATRER2xvYmFsRmFybUNyZWF0ZWQoAQhpZBABMEdsb2JhbEZhcm1JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAE0dG90YWxfcmV3YXJkcxgBHEJhbGFuY2UAATxyZXdhcmRfY3VycmVuY3kQAShUOjpBc3NldElkAAFAeWllbGRfcGVyX3BlcmlvZH0BASxQZXJxdWludGlsbAABYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kcxABLFBlcmlvZE9mPFQ+AAFEYmxvY2tzX3Blcl9wZXJpb2QQAURCbG9ja051bWJlckZvcjxUPgABVG1heF9yZXdhcmRfcGVyX3BlcmlvZBgBHEJhbGFuY2UAASxtaW5fZGVwb3NpdBgBHEJhbGFuY2UAAVRscm5hX3ByaWNlX2FkanVzdG1lbnRhAQEkRml4ZWRVMTI4AAAEcE5ldyBnbG9iYWwgZmFybSB3YXMgY3JlYXRlZC5ER2xvYmFsRmFybVVwZGF0ZWQQAQhpZBABMEdsb2JhbEZhcm1JZAABYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kcxABLFBlcmlvZE9mPFQ+AAFAeWllbGRfcGVyX3BlcmlvZH0BASxQZXJxdWludGlsbAABLG1pbl9kZXBvc2l0GAEcQmFsYW5jZQABBFxHbG9iYWwgZmFybSB3YXMgdXBkYXRlZFBHbG9iYWxGYXJtVGVybWluYXRlZBABOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAE8cmV3YXJkX2N1cnJlbmN5EAEoVDo6QXNzZXRJZAABVHVuZGlzdHJpYnV0ZWRfcmV3YXJkcxgBHEJhbGFuY2UAAgRsR2xvYmFsIGZhcm0gd2FzIHRlcm1pbmF0ZWQuQFlpZWxkRmFybUNyZWF0ZWQUAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQQASxZaWVsZEZhcm1JZAABIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAABKG11bHRpcGxpZXJhAQE4RmFybU11bHRpcGxpZXIAATRsb3lhbHR5X2N1cnZlgQEBUE9wdGlvbjxMb3lhbHR5Q3VydmU+AAMElE5ldyB5aWVsZCBmYXJtIHdhcyBhZGRlZCB0byB0aGUgZmFybS5AWWllbGRGYXJtVXBkYXRlZBQBOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZBABLFlpZWxkRmFybUlkAAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEobXVsdGlwbGllcmEBAThGYXJtTXVsdGlwbGllcgAEBIhZaWVsZCBmYXJtIG11bHRpcGxpZXIgd2FzIHVwZGF0ZWQuQFlpZWxkRmFybVN0b3BwZWQQAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQQASxZaWVsZEZhcm1JZAABIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAABDHdobwABMFQ6OkFjY291bnRJZAAFBJhZaWVsZCBmYXJtIGZvciBgYXNzZXRfaWRgIHdhcyBzdG9wcGVkLkBZaWVsZEZhcm1SZXN1bWVkFAE4Z2xvYmFsX2Zhcm1faWQQATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkEAEsWWllbGRGYXJtSWQAASBhc3NldF9pZBABKFQ6OkFzc2V0SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAAShtdWx0aXBsaWVyYQEBOEZhcm1NdWx0aXBsaWVyAAYEmFlpZWxkIGZhcm0gZm9yIGBhc3NldF9pZGAgd2FzIHJlc3VtZWQuTFlpZWxkRmFybVRlcm1pbmF0ZWQQAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQQASxZaWVsZEZhcm1JZAABIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAABDHdobwABMFQ6OkFjY291bnRJZAAHBLxZaWVsZCBmYXJtIHdhcyB0ZXJtaW5hdGVkIGZyb20gdGhlIGdsb2JhbCBmYXJtLjxTaGFyZXNEZXBvc2l0ZWQcAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQQASxZaWVsZEZhcm1JZAABKGRlcG9zaXRfaWQYASREZXBvc2l0SWQAASBhc3NldF9pZBABKFQ6OkFzc2V0SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAATRzaGFyZXNfYW1vdW50GAEcQmFsYW5jZQABLHBvc2l0aW9uX2lkGAFEVDo6UG9zaXRpb25JdGVtSWQACASoTmV3IExQIHNoYXJlcyhMUCBwb3NpdGlvbikgd2VyZSBkZXBvc2l0ZWQuRFNoYXJlc1JlZGVwb3NpdGVkHAE4Z2xvYmFsX2Zhcm1faWQQATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkEAEsWWllbGRGYXJtSWQAAShkZXBvc2l0X2lkGAEkRGVwb3NpdElkAAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAEMd2hvAAEwVDo6QWNjb3VudElkAAE0c2hhcmVzX2Ftb3VudBgBHEJhbGFuY2UAASxwb3NpdGlvbl9pZBgBRFQ6OlBvc2l0aW9uSXRlbUlkAAkEAQFBbHJlYWR5IGxvY2tlZCBMUCBzaGFyZXMgd2VyZSByZWRlcG9zaXRlZCB0byBhbm90aGVyIHlpZWxkIGZhcm0uNFJld2FyZENsYWltZWQYAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQQASxZaWVsZEZhcm1JZAABDHdobwABMFQ6OkFjY291bnRJZAABHGNsYWltZWQYARxCYWxhbmNlAAE8cmV3YXJkX2N1cnJlbmN5EAEoVDo6QXNzZXRJZAABKGRlcG9zaXRfaWQYASREZXBvc2l0SWQACgRUUmV3YXJkcyB3ZXJlIGNsYWltZWQuPFNoYXJlc1dpdGhkcmF3bhQBOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZBABLFlpZWxkRmFybUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEcQmFsYW5jZQABKGRlcG9zaXRfaWQYASREZXBvc2l0SWQACwRkTFAgc2hhcmVzIHdlcmUgd2l0aGRyYXduLkBEZXBvc2l0RGVzdHJveWVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEoZGVwb3NpdF9pZBgBJERlcG9zaXRJZAAMBB0BQWxsIExQIHNoYXJlcyB3ZXJlIHVubG9ja2VkIGFuZCBORlQgcmVwcmVzZW50aW5nIGRlcG9zaXQgd2FzIGRlc3Ryb3llZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXR9AQw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzLFBlcnF1aW50aWxsAAAEADABDHU2NAAAgQEEGE9wdGlvbgQEVAGFAQEIEE5vbmUAAAAQU29tZQQAhQEAAAEAAIUBDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxR0eXBlczBMb3lhbHR5Q3VydmUAAAgBZGluaXRpYWxfcmV3YXJkX3BlcmNlbnRhZ2VhAQEkRml4ZWRVMTI4AAEoc2NhbGVfY29lZhABDHUzMgAAiQEMKHBhbGxldF9vdGMYcGFsbGV0FEV2ZW50BARUAAEQJENhbmNlbGxlZAQBIG9yZGVyX2lkEAEcT3JkZXJJZAAABGxBbiBPcmRlciBoYXMgYmVlbiBjYW5jZWxsZWQYRmlsbGVkFAEgb3JkZXJfaWQQARxPcmRlcklkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEkYW1vdW50X2luGAEcQmFsYW5jZQABKGFtb3VudF9vdXQYARxCYWxhbmNlAAEMZmVlGAEcQmFsYW5jZQABBIxBbiBPcmRlciBoYXMgYmVlbiBjb21wbGV0ZWx5IGZpbGxlZDxQYXJ0aWFsbHlGaWxsZWQUASBvcmRlcl9pZBABHE9yZGVySWQAAQx3aG8AATBUOjpBY2NvdW50SWQAASRhbW91bnRfaW4YARxCYWxhbmNlAAEoYW1vdW50X291dBgBHEJhbGFuY2UAAQxmZWUYARxCYWxhbmNlAAIEiEFuIE9yZGVyIGhhcyBiZWVuIHBhcnRpYWxseSBmaWxsZWQYUGxhY2VkGAEgb3JkZXJfaWQQARxPcmRlcklkAAEgYXNzZXRfaW4QAShUOjpBc3NldElkAAEkYXNzZXRfb3V0EAEoVDo6QXNzZXRJZAABJGFtb3VudF9pbhgBHEJhbGFuY2UAAShhbW91bnRfb3V0GAEcQmFsYW5jZQABSHBhcnRpYWxseV9maWxsYWJsZSABEGJvb2wAAwRgQW4gT3JkZXIgaGFzIGJlZW4gcGxhY2VkBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0jQEMWHBhbGxldF9jaXJjdWl0X2JyZWFrZXIYcGFsbGV0FEV2ZW50BARUAAEMXFRyYWRlVm9sdW1lTGltaXRDaGFuZ2VkCAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAFIdHJhZGVfdm9sdW1lX2xpbWl0kQEBKCh1MzIsIHUzMikAAASsVHJhZGUgdm9sdW1lIGxpbWl0IG9mIGFuIGFzc2V0IHdhcyBjaGFuZ2VkLmBBZGRMaXF1aWRpdHlMaW1pdENoYW5nZWQIASBhc3NldF9pZBABKFQ6OkFzc2V0SWQAATxsaXF1aWRpdHlfbGltaXSVAQFIT3B0aW9uPCh1MzIsIHUzMik+AAEEsEFkZCBsaXF1aWRpdHkgbGltaXQgb2YgYW4gYXNzZXQgd2FzIGNoYW5nZWQubFJlbW92ZUxpcXVpZGl0eUxpbWl0Q2hhbmdlZAgBIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAABPGxpcXVpZGl0eV9saW1pdJUBAUhPcHRpb248KHUzMiwgdTMyKT4AAgS8UmVtb3ZlIGxpcXVpZGl0eSBsaW1pdCBvZiBhbiBhc3NldCB3YXMgY2hhbmdlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSRAQAABAgQEACVAQQYT3B0aW9uBARUAZEBAQgQTm9uZQAAABBTb21lBACRAQAAAQAAmQEMVHBhbGxldF9yb3V0ZV9leGVjdXRvchhwYWxsZXQURXZlbnQEBFQAAQggRXhlY3V0ZWQQASBhc3NldF9pbhABKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQQAShUOjpBc3NldElkAAEkYW1vdW50X2luGAEoVDo6QmFsYW5jZQABKGFtb3VudF9vdXQYAShUOjpCYWxhbmNlAAAE0FRoZSByb3V0ZSB3aXRoIHRyYWRlcyBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgZXhlY3V0ZWQwUm91dGVVcGRhdGVkBAEkYXNzZXRfaWRznQEBPFZlYzxUOjpBc3NldElkPgABBNBUaGUgcm91dGUgd2l0aCB0cmFkZXMgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGV4ZWN1dGVkBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0nQEAAAIQAKEBDExwYWxsZXRfZHluYW1pY19mZWVzGHBhbGxldBRFdmVudAQEVAABAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldKUBDDhwYWxsZXRfc3Rha2luZxhwYWxsZXQURXZlbnQEBFQAARg8UG9zaXRpb25DcmVhdGVkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEscG9zaXRpb25faWQYAURUOjpQb3NpdGlvbkl0ZW1JZAABFHN0YWtlGAEcQmFsYW5jZQAABNBOZXcgc3Rha2luZyBwb3NpdGlvbiB3YXMgY3JlYXRlZCBhbmQgTkZUIHdhcyBtaW50ZWQuKFN0YWtlQWRkZWQcAQx3aG8AATBUOjpBY2NvdW50SWQAASxwb3NpdGlvbl9pZBgBRFQ6OlBvc2l0aW9uSXRlbUlkAAEUc3Rha2UYARxCYWxhbmNlAAEsdG90YWxfc3Rha2UYARxCYWxhbmNlAAE4bG9ja2VkX3Jld2FyZHMYARxCYWxhbmNlAAE4c2xhc2hlZF9wb2ludHMYARRQb2ludAABSHBheWFibGVfcGVyY2VudGFnZWEBASRGaXhlZFUxMjgAAQTIU3Rha2VkIGFtb3VudCBmb3IgZXhpc3RpbmcgcG9zaXRpb24gd2FzIGluY3JlYXNlZC44UmV3YXJkc0NsYWltZWQcAQx3aG8AATBUOjpBY2NvdW50SWQAASxwb3NpdGlvbl9pZBgBRFQ6OlBvc2l0aW9uSXRlbUlkAAEwcGFpZF9yZXdhcmRzGAEcQmFsYW5jZQABQHVubG9ja2VkX3Jld2FyZHMYARxCYWxhbmNlAAE4c2xhc2hlZF9wb2ludHMYARRQb2ludAABWHNsYXNoZWRfdW5wYWlkX3Jld2FyZHMYARxCYWxhbmNlAAFIcGF5YWJsZV9wZXJjZW50YWdlYQEBJEZpeGVkVTEyOAACBFRSZXdhcmRzIHdlcmUgY2xhaW1lZC4gVW5zdGFrZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAASxwb3NpdGlvbl9pZBgBRFQ6OlBvc2l0aW9uSXRlbUlkAAE4dW5sb2NrZWRfc3Rha2UYARxCYWxhbmNlAAMEvFN0YWtlZCBhbW91bnQgd2FzIHdpdGhkcmF3biBhbmQgTkZUIHdhcyBidXJuZWQuSFN0YWtpbmdJbml0aWFsaXplZAQBUG5vbl9kdXN0YWJsZV9iYWxhbmNlGAEcQmFsYW5jZQAEBGBTdGFraW5nIHdhcyBpbml0aWFsaXplZC5UQWNjdW11bGF0ZWRScHNVcGRhdGVkCAE8YWNjdW11bGF0ZWRfcnBzYQEBJEZpeGVkVTEyOAABLHRvdGFsX3N0YWtlGAEcQmFsYW5jZQAFBNRTdGFraW5nJ3MgYGFjY3VtdWxhdGVkX3Jld2FyZF9wZXJfc3Rha2VgIHdhcyB1cGRhdGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldKkBDERwYWxsZXRfc3RhYmxlc3dhcBhwYWxsZXQURXZlbnQEBFQAASAsUG9vbENyZWF0ZWQQARxwb29sX2lkEAEoVDo6QXNzZXRJZAABGGFzc2V0c50BATxWZWM8VDo6QXNzZXRJZD4AATRhbXBsaWZpY2F0aW9urQEBKE5vblplcm9VMTYAAQxmZWVpAQEcUGVybWlsbAAABExBIHBvb2wgd2FzIGNyZWF0ZWQuKEZlZVVwZGF0ZWQIARxwb29sX2lkEAEoVDo6QXNzZXRJZAABDGZlZWkBARxQZXJtaWxsAAEEaFBvb2wgZmVlIGhhcyBiZWVuIHVwZGF0ZWQuOExpcXVpZGl0eUFkZGVkEAEccG9vbF9pZBABKFQ6OkFzc2V0SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhzaGFyZXMYARxCYWxhbmNlAAEYYXNzZXRzsQEBcFZlYzxBc3NldEFtb3VudDxUOjpBc3NldElkPj4AAgSoTGlxdWlkaXR5IG9mIGFuIGFzc2V0IHdhcyBhZGRlZCB0byBhIHBvb2wuQExpcXVpZGl0eVJlbW92ZWQUARxwb29sX2lkEAEoVDo6QXNzZXRJZAABDHdobwABMFQ6OkFjY291bnRJZAABGHNoYXJlcxgBHEJhbGFuY2UAARxhbW91bnRzsQEBcFZlYzxBc3NldEFtb3VudDxUOjpBc3NldElkPj4AAQxmZWUYARxCYWxhbmNlAAMESExpcXVpZGl0eSByZW1vdmVkLjBTZWxsRXhlY3V0ZWQcAQx3aG8AATBUOjpBY2NvdW50SWQAARxwb29sX2lkEAEoVDo6QXNzZXRJZAABIGFzc2V0X2luEAEoVDo6QXNzZXRJZAABJGFzc2V0X291dBABKFQ6OkFzc2V0SWQAASRhbW91bnRfaW4YARxCYWxhbmNlAAEoYW1vdW50X291dBgBHEJhbGFuY2UAAQxmZWUYARxCYWxhbmNlAAQEjQFTZWxsIHRyYWRlIGV4ZWN1dGVkLiBUcmFkZSBmZWUgcGFpZCBpbiBhc3NldCBsZWF2aW5nIHRoZSBwb29sIChhbHJlYWR5IHN1YnRyYWN0ZWQgZnJvbSBhbW91bnRfb3V0KS4sQnV5RXhlY3V0ZWQcAQx3aG8AATBUOjpBY2NvdW50SWQAARxwb29sX2lkEAEoVDo6QXNzZXRJZAABIGFzc2V0X2luEAEoVDo6QXNzZXRJZAABJGFzc2V0X291dBABKFQ6OkFzc2V0SWQAASRhbW91bnRfaW4YARxCYWxhbmNlAAEoYW1vdW50X291dBgBHEJhbGFuY2UAAQxmZWUYARxCYWxhbmNlAAUEeQFCdXkgdHJhZGUgZXhlY3V0ZWQuIFRyYWRlIGZlZSBwYWlkIGluIGFzc2V0IGVudGVyaW5nIHRoZSBwb29sIChhbHJlYWR5IGluY2x1ZGVkIGluIGFtb3VudF9pbikuUFRyYWRhYmxlU3RhdGVVcGRhdGVkDAEccG9vbF9pZBABKFQ6OkFzc2V0SWQAASBhc3NldF9pZBABKFQ6OkFzc2V0SWQAARRzdGF0ZbkBASxUcmFkYWJpbGl0eQAGBKBBc3NldCdzIHRyYWRhYmxlIHN0YXRlIGhhcyBiZWVuIHVwZGF0ZWQuVEFtcGxpZmljYXRpb25DaGFuZ2luZxQBHHBvb2xfaWQQAShUOjpBc3NldElkAAFUY3VycmVudF9hbXBsaWZpY2F0aW9urQEBKE5vblplcm9VMTYAAUxmaW5hbF9hbXBsaWZpY2F0aW9urQEBKE5vblplcm9VMTYAASxzdGFydF9ibG9jaxABREJsb2NrTnVtYmVyRm9yPFQ+AAEkZW5kX2Jsb2NrEAFEQmxvY2tOdW1iZXJGb3I8VD4ABwTYQUFtcGxpZmljYXRpb24gb2YgYSBwb29sIGhhcyBiZWVuIHNjaGVkdWxlZCB0byBjaGFuZ2UuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0rQEEKE5vblplcm9VMTYAAAQA3AAAALEBAAACtQEAtQEMRHBhbGxldF9zdGFibGVzd2FwFHR5cGVzLEFzc2V0QW1vdW50BBxBc3NldElkARAACAEgYXNzZXRfaWQQARxBc3NldElkAAEYYW1vdW50GAEcQmFsYW5jZQAAuQEMRHBhbGxldF9zdGFibGVzd2FwFHR5cGVzLFRyYWRhYmlsaXR5AAAEARBiaXRzCAEIdTgAAL0BDDBwYWxsZXRfYm9uZHMYcGFsbGV0FEV2ZW50BARUAAEMMFRva2VuQ3JlYXRlZBABGGlzc3VlcgABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkEAEcQXNzZXRJZAABHGJvbmRfaWQQARxBc3NldElkAAEgbWF0dXJpdHkwARhNb21lbnQAAARsQSBib25kIGFzc2V0IHdhcyByZWdpc3RlcmVkGElzc3VlZBABGGlzc3VlcgABMFQ6OkFjY291bnRJZAABHGJvbmRfaWQQARxBc3NldElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQABDGZlZRgBKFQ6OkJhbGFuY2UAAQRQTmV3IGJvbmQgd2VyZSBpc3N1ZWQgUmVkZWVtZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAARxib25kX2lkEAEcQXNzZXRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAAgRMQm9uZHMgd2VyZSByZWRlZW1lZAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldMEBDFhwYWxsZXRfb3RjX3NldHRsZW1lbnRzGHBhbGxldBRFdmVudAQEVAABBCBFeGVjdXRlZAgBIGFzc2V0X2lkEAEwQXNzZXRJZE9mPFQ+AAEYcHJvZml0GAEcQmFsYW5jZQAABGRBIHRyYWRlIGhhcyBiZWVuIGV4ZWN1dGVkBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0xQEMKHBhbGxldF9sYnAYcGFsbGV0FEV2ZW50BARUAAEYLFBvb2xDcmVhdGVkCAEQcG9vbAABJFBvb2xJZDxUPgABEGRhdGHJAQGUUG9vbDxUOjpBY2NvdW50SWQsIEJsb2NrTnVtYmVyRm9yPFQ+PgAABLBQb29sIHdhcyBjcmVhdGVkIGJ5IHRoZSBgQ3JlYXRlUG9vbGAgb3JpZ2luLixQb29sVXBkYXRlZAgBEHBvb2wAASRQb29sSWQ8VD4AARBkYXRhyQEBlFBvb2w8VDo6QWNjb3VudElkLCBCbG9ja051bWJlckZvcjxUPj4AAQRcUG9vbCBkYXRhIHdlcmUgdXBkYXRlZC44TGlxdWlkaXR5QWRkZWQUAQx3aG8AATBUOjpBY2NvdW50SWQAARxhc3NldF9hEAEcQXNzZXRJZAABHGFzc2V0X2IQARxBc3NldElkAAEgYW1vdW50X2EYATBCYWxhbmNlT2Y8VD4AASBhbW91bnRfYhgBMEJhbGFuY2VPZjxUPgACBJxOZXcgbGlxdWlkaXR5IHdhcyBwcm92aWRlZCB0byB0aGUgcG9vbC5ATGlxdWlkaXR5UmVtb3ZlZBQBDHdobwABMFQ6OkFjY291bnRJZAABHGFzc2V0X2EQARxBc3NldElkAAEcYXNzZXRfYhABHEFzc2V0SWQAASBhbW91bnRfYRgBMEJhbGFuY2VPZjxUPgABIGFtb3VudF9iGAEwQmFsYW5jZU9mPFQ+AAME/ExpcXVpZGl0eSB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBwb29sIGFuZCB0aGUgcG9vbCB3YXMgZGVzdHJveWVkLjBTZWxsRXhlY3V0ZWQcAQx3aG8AATBUOjpBY2NvdW50SWQAASBhc3NldF9pbhABHEFzc2V0SWQAASRhc3NldF9vdXQQARxBc3NldElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAEoc2FsZV9wcmljZRgBMEJhbGFuY2VPZjxUPgABJGZlZV9hc3NldBABHEFzc2V0SWQAAShmZWVfYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAQEOFNhbGUgZXhlY3V0ZWQuLEJ1eUV4ZWN1dGVkHAEMd2hvAAEwVDo6QWNjb3VudElkAAEkYXNzZXRfb3V0EAEcQXNzZXRJZAABIGFzc2V0X2luEAEcQXNzZXRJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgABJGJ1eV9wcmljZRgBMEJhbGFuY2VPZjxUPgABJGZlZV9hc3NldBABHEFzc2V0SWQAAShmZWVfYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAUESFB1cmNoYXNlIGV4ZWN1dGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldMkBCChwYWxsZXRfbGJwEFBvb2wIJEFjY291bnRJZAEALEJsb2NrTnVtYmVyARAAKAEUb3duZXIAASRBY2NvdW50SWQAARRzdGFydM0BAUxPcHRpb248QmxvY2tOdW1iZXI+AAEMZW5kzQEBTE9wdGlvbjxCbG9ja051bWJlcj4AARhhc3NldHORAQFIKEFzc2V0SWQsIEFzc2V0SWQpAAE4aW5pdGlhbF93ZWlnaHQQASRMQlBXZWlnaHQAATBmaW5hbF93ZWlnaHQQASRMQlBXZWlnaHQAATB3ZWlnaHRfY3VydmXRAQE8V2VpZ2h0Q3VydmVUeXBlAAEMZmVlkQEBKCh1MzIsIHUzMikAATRmZWVfY29sbGVjdG9yAAEkQWNjb3VudElkAAEwcmVwYXlfdGFyZ2V0GAEcQmFsYW5jZQAAzQEEGE9wdGlvbgQEVAEQAQgQTm9uZQAAABBTb21lBAAQAAABAADRAQgocGFsbGV0X2xicDxXZWlnaHRDdXJ2ZVR5cGUAAQQYTGluZWFyAAAAANUBDChwYWxsZXRfeHlrGHBhbGxldBRFdmVudAQEVAABGDhMaXF1aWRpdHlBZGRlZBQBDHdobwABMFQ6OkFjY291bnRJZAABHGFzc2V0X2EQARxBc3NldElkAAEcYXNzZXRfYhABHEFzc2V0SWQAASBhbW91bnRfYRgBHEJhbGFuY2UAASBhbW91bnRfYhgBHEJhbGFuY2UAAAScTmV3IGxpcXVpZGl0eSB3YXMgcHJvdmlkZWQgdG8gdGhlIHBvb2wuQExpcXVpZGl0eVJlbW92ZWQQAQx3aG8AATBUOjpBY2NvdW50SWQAARxhc3NldF9hEAEcQXNzZXRJZAABHGFzc2V0X2IQARxBc3NldElkAAEYc2hhcmVzGAEcQmFsYW5jZQABBJBMaXF1aWRpdHkgd2FzIHJlbW92ZWQgZnJvbSB0aGUgcG9vbC4sUG9vbENyZWF0ZWQYAQx3aG8AATBUOjpBY2NvdW50SWQAARxhc3NldF9hEAEcQXNzZXRJZAABHGFzc2V0X2IQARxBc3NldElkAAFUaW5pdGlhbF9zaGFyZXNfYW1vdW50GAEcQmFsYW5jZQABLHNoYXJlX3Rva2VuEAEcQXNzZXRJZAABEHBvb2wAATBUOjpBY2NvdW50SWQAAgREUG9vbCB3YXMgY3JlYXRlZC40UG9vbERlc3Ryb3llZBQBDHdobwABMFQ6OkFjY291bnRJZAABHGFzc2V0X2EQARxBc3NldElkAAEcYXNzZXRfYhABHEFzc2V0SWQAASxzaGFyZV90b2tlbhABHEFzc2V0SWQAARBwb29sAAEwVDo6QWNjb3VudElkAAMETFBvb2wgd2FzIGRlc3Ryb3llZC4wU2VsbEV4ZWN1dGVkIAEMd2hvAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaW4QARxBc3NldElkAAEkYXNzZXRfb3V0EAEcQXNzZXRJZAABGGFtb3VudBgBHEJhbGFuY2UAAShzYWxlX3ByaWNlGAEcQmFsYW5jZQABJGZlZV9hc3NldBABHEFzc2V0SWQAAShmZWVfYW1vdW50GAEcQmFsYW5jZQABEHBvb2wAATBUOjpBY2NvdW50SWQABARQQXNzZXQgc2FsZSBleGVjdXRlZC4sQnV5RXhlY3V0ZWQgAQx3aG8AATBUOjpBY2NvdW50SWQAASRhc3NldF9vdXQQARxBc3NldElkAAEgYXNzZXRfaW4QARxBc3NldElkAAEYYW1vdW50GAEcQmFsYW5jZQABJGJ1eV9wcmljZRgBHEJhbGFuY2UAASRmZWVfYXNzZXQQARxBc3NldElkAAEoZmVlX2Ftb3VudBgBHEJhbGFuY2UAARBwb29sAAEwVDo6QWNjb3VudElkAAUEYEFzc2V0IHB1cmNoYXNlIGV4ZWN1dGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldNkBDEBwYWxsZXRfcmVmZXJyYWxzGHBhbGxldBRFdmVudAQEVAABGDhDb2RlUmVnaXN0ZXJlZAgBEGNvZGXdAQFsUmVmZXJyYWxDb2RlPFQ6OkNvZGVMZW5ndGg+AAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAAABIhSZWZlcnJhbCBjb2RlIGhhcyBiZWVuIHJlZ2lzdGVyZWQuKENvZGVMaW5rZWQMARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEQY29kZd0BAWxSZWZlcnJhbENvZGU8VDo6Q29kZUxlbmd0aD4AAUByZWZlcnJhbF9hY2NvdW50AAEwVDo6QWNjb3VudElkAAEEsFJlZmVycmFsIGNvZGUgaGFzIGJlZW4gbGlua2VkIHRvIGFuIGFjY291bnQuJENvbnZlcnRlZAgBEGZyb23hAQFcQXNzZXRBbW91bnQ8VDo6QXNzZXRJZD4AAQh0b+EBAVxBc3NldEFtb3VudDxUOjpBc3NldElkPgACBKBBc3NldCBoYXMgYmVlbiBjb252ZXJ0ZWQgdG8gUmV3YXJkQXNzZXQuHENsYWltZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAAUByZWZlcnJlcl9yZXdhcmRzGAEcQmFsYW5jZQABNHRyYWRlX3Jld2FyZHMYARxCYWxhbmNlAAMEQFJld2FyZHMgY2xhaW1lZC5MQXNzZXRSZXdhcmRzVXBkYXRlZAwBIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAABFGxldmVs5QEBFExldmVsAAEccmV3YXJkc+kBATxGZWVEaXN0cmlidXRpb24ABAR8TmV3IGFzc2V0IHJld2FyZHMgaGFzIGJlZW4gc2V0LhxMZXZlbFVwCAEMd2hvAAEwVDo6QWNjb3VudElkAAEUbGV2ZWzlAQEUTGV2ZWwABQRsUmVmZXJyZXIgcmVhY2hlZCBuZXcgbGV2ZWwuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV03QEMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AADhAQhAcGFsbGV0X3JlZmVycmFscyxBc3NldEFtb3VudAQcQXNzZXRJZAEQAAgBIGFzc2V0X2lkEAEcQXNzZXRJZAABGGFtb3VudBgBHEJhbGFuY2UAAOUBCEBwYWxsZXRfcmVmZXJyYWxzFExldmVsAAEYEE5vbmUAAAAUVGllcjAAAQAUVGllcjEAAgAUVGllcjIAAwAUVGllcjMABAAUVGllcjQABQAA6QEIQHBhbGxldF9yZWZlcnJhbHM8RmVlRGlzdHJpYnV0aW9uAAAMASByZWZlcnJlcmkBARxQZXJtaWxsAAEYdHJhZGVyaQEBHFBlcm1pbGwAASBleHRlcm5hbGkBARxQZXJtaWxsAADtAQwsb3JtbF90b2tlbnMYbW9kdWxlFEV2ZW50BARUAAFEHEVuZG93ZWQMASxjdXJyZW5jeV9pZBABNFQ6OkN1cnJlbmN5SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAAEuEFuIGFjY291bnQgd2FzIGNyZWF0ZWQgd2l0aCBzb21lIGZyZWUgYmFsYW5jZS4gRHVzdExvc3QMASxjdXJyZW5jeV9pZBABNFQ6OkN1cnJlbmN5SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAEI7EFuIGFjY291bnQgd2FzIHJlbW92ZWQgd2hvc2UgYmFsYW5jZSB3YXMgbm9uLXplcm8gYnV0IGJlbG93yEV4aXN0ZW50aWFsRGVwb3NpdCwgcmVzdWx0aW5nIGluIGFuIG91dHJpZ2h0IGxvc3MuIFRyYW5zZmVyEAEsY3VycmVuY3lfaWQQATRUOjpDdXJyZW5jeUlkAAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQACBExUcmFuc2ZlciBzdWNjZWVkZWQuIFJlc2VydmVkDAEsY3VycmVuY3lfaWQQATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQADBOBTb21lIGJhbGFuY2Ugd2FzIHJlc2VydmVkIChtb3ZlZCBmcm9tIGZyZWUgdG8gcmVzZXJ2ZWQpLihVbnJlc2VydmVkDAEsY3VycmVuY3lfaWQQATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQAEBOhTb21lIGJhbGFuY2Ugd2FzIHVucmVzZXJ2ZWQgKG1vdmVkIGZyb20gcmVzZXJ2ZWQgdG8gZnJlZSkuSFJlc2VydmVSZXBhdHJpYXRlZBQBLGN1cnJlbmN5X2lkEAE0VDo6Q3VycmVuY3lJZAABEGZyb20AATBUOjpBY2NvdW50SWQAAQh0bwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAARhzdGF0dXOAATRCYWxhbmNlU3RhdHVzAAUI9FNvbWUgcmVzZXJ2ZWQgYmFsYW5jZSB3YXMgcmVwYXRyaWF0ZWQgKG1vdmVkIGZyb20gcmVzZXJ2ZWQgdG9EYW5vdGhlciBhY2NvdW50KS4oQmFsYW5jZVNldBABLGN1cnJlbmN5X2lkEAE0VDo6Q3VycmVuY3lJZAABDHdobwABMFQ6OkFjY291bnRJZAABEGZyZWUYAShUOjpCYWxhbmNlAAEgcmVzZXJ2ZWQYAShUOjpCYWxhbmNlAAYEaEEgYmFsYW5jZSB3YXMgc2V0IGJ5IHJvb3QuQFRvdGFsSXNzdWFuY2VTZXQIASxjdXJyZW5jeV9pZBABNFQ6OkN1cnJlbmN5SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAcEuFRoZSB0b3RhbCBpc3N1YW5jZSBvZiBhbiBjdXJyZW5jeSBoYXMgYmVlbiBzZXQkV2l0aGRyYXduDAEsY3VycmVuY3lfaWQQATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQAIBOxTb21lIGJhbGFuY2VzIHdlcmUgd2l0aGRyYXduIChlLmcuIHBheSBmb3IgdHJhbnNhY3Rpb24gZmVlKRxTbGFzaGVkEAEsY3VycmVuY3lfaWQQATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEsZnJlZV9hbW91bnQYAShUOjpCYWxhbmNlAAE8cmVzZXJ2ZWRfYW1vdW50GAEoVDo6QmFsYW5jZQAJBNRTb21lIGJhbGFuY2VzIHdlcmUgc2xhc2hlZCAoZS5nLiBkdWUgdG8gbWlzLWJlaGF2aW9yKSREZXBvc2l0ZWQMASxjdXJyZW5jeV9pZBABNFQ6OkN1cnJlbmN5SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAoEmERlcG9zaXRlZCBzb21lIGJhbGFuY2UgaW50byBhbiBhY2NvdW50HExvY2tTZXQQARxsb2NrX2lk8QEBOExvY2tJZGVudGlmaWVyAAEsY3VycmVuY3lfaWQQATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQALBFRTb21lIGZ1bmRzIGFyZSBsb2NrZWQsTG9ja1JlbW92ZWQMARxsb2NrX2lk8QEBOExvY2tJZGVudGlmaWVyAAEsY3VycmVuY3lfaWQQATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAwEfFNvbWUgbG9ja2VkIGZ1bmRzIHdlcmUgdW5sb2NrZWQYTG9ja2VkDAEsY3VycmVuY3lfaWQQATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQANBHRTb21lIGZyZWUgYmFsYW5jZSB3YXMgbG9ja2VkLiBVbmxvY2tlZAwBLGN1cnJlbmN5X2lkEAE0VDo6Q3VycmVuY3lJZAABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UADgR4U29tZSBsb2NrZWQgYmFsYW5jZSB3YXMgZnJlZWQuGElzc3VlZAgBLGN1cnJlbmN5X2lkEAE0VDo6Q3VycmVuY3lJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UADwAkUmVzY2luZGVkCAEsY3VycmVuY3lfaWQQATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQAQAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldPEBAAADCAAAAAgA9QEMRHBhbGxldF9jdXJyZW5jaWVzGG1vZHVsZRRFdmVudAQEVAABECxUcmFuc2ZlcnJlZBABLGN1cnJlbmN5X2lkEAE8Q3VycmVuY3lJZE9mPFQ+AAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAAEaEN1cnJlbmN5IHRyYW5zZmVyIHN1Y2Nlc3MuOEJhbGFuY2VVcGRhdGVkDAEsY3VycmVuY3lfaWQQATxDdXJyZW5jeUlkT2Y8VD4AAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnT5AQEsQW1vdW50T2Y8VD4AAQRcVXBkYXRlIGJhbGFuY2Ugc3VjY2Vzcy4kRGVwb3NpdGVkDAEsY3VycmVuY3lfaWQQATxDdXJyZW5jeUlkT2Y8VD4AAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AAgRARGVwb3NpdCBzdWNjZXNzLiRXaXRoZHJhd24MASxjdXJyZW5jeV9pZBABPEN1cnJlbmN5SWRPZjxUPgABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgADBERXaXRoZHJhdyBzdWNjZXNzLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldPkBAAAFDQD9AQwwb3JtbF92ZXN0aW5nGG1vZHVsZRRFdmVudAQEVAABDFBWZXN0aW5nU2NoZWR1bGVBZGRlZAwBEGZyb20AATBUOjpBY2NvdW50SWQAAQh0bwABMFQ6OkFjY291bnRJZAABQHZlc3Rpbmdfc2NoZWR1bGUBAgFQVmVzdGluZ1NjaGVkdWxlT2Y8VD4AAARsQWRkZWQgbmV3IHZlc3Rpbmcgc2NoZWR1bGUuHENsYWltZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AAQRAQ2xhaW1lZCB2ZXN0aW5nLlxWZXN0aW5nU2NoZWR1bGVzVXBkYXRlZAQBDHdobwABMFQ6OkFjY291bnRJZAACBGhVcGRhdGVkIHZlc3Rpbmcgc2NoZWR1bGVzLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldAECCDBvcm1sX3Zlc3Rpbmc8VmVzdGluZ1NjaGVkdWxlCCxCbG9ja051bWJlcgEQHEJhbGFuY2UBGAAQARRzdGFydBABLEJsb2NrTnVtYmVyAAEYcGVyaW9kEAEsQmxvY2tOdW1iZXIAATBwZXJpb2RfY291bnQQAQx1MzIAAShwZXJfcGVyaW9kRQEBHEJhbGFuY2UAAAUCDChwYWxsZXRfZXZtGHBhbGxldBRFdmVudAQEVAABFAxMb2cEAQxsb2cJAgEMTG9nAAAEfEV0aGVyZXVtIGV2ZW50cyBmcm9tIGNvbnRyYWN0cy4cQ3JlYXRlZAQBHGFkZHJlc3MNAgEQSDE2MAABBLRBIGNvbnRyYWN0IGhhcyBiZWVuIGNyZWF0ZWQgYXQgZ2l2ZW4gYWRkcmVzcy40Q3JlYXRlZEZhaWxlZAQBHGFkZHJlc3MNAgEQSDE2MAACBAUBQSBjb250cmFjdCB3YXMgYXR0ZW1wdGVkIHRvIGJlIGNyZWF0ZWQsIGJ1dCB0aGUgZXhlY3V0aW9uIGZhaWxlZC4gRXhlY3V0ZWQEARxhZGRyZXNzDQIBEEgxNjAAAwT4QSBjb250cmFjdCBoYXMgYmVlbiBleGVjdXRlZCBzdWNjZXNzZnVsbHkgd2l0aCBzdGF0ZXMgYXBwbGllZC44RXhlY3V0ZWRGYWlsZWQEARxhZGRyZXNzDQIBEEgxNjAABARlAUEgY29udHJhY3QgaGFzIGJlZW4gZXhlY3V0ZWQgd2l0aCBlcnJvcnMuIFN0YXRlcyBhcmUgcmV2ZXJ0ZWQgd2l0aCBvbmx5IGdhcyBmZWVzIGFwcGxpZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0CQIMIGV0aGVyZXVtDGxvZwxMb2cAAAwBHGFkZHJlc3MNAgEQSDE2MAABGHRvcGljcxECASRWZWM8SDI1Nj4AARBkYXRhOAEUQnl0ZXMAAA0CCDxwcmltaXRpdmVfdHlwZXMQSDE2MAAABABBAQEgW3U4OyAyMF0AABECAAACNAAVAgw8cGFsbGV0X2V0aGVyZXVtGHBhbGxldBRFdmVudAABBCBFeGVjdXRlZBQBEGZyb20NAgEQSDE2MAABCHRvDQIBEEgxNjAAAUB0cmFuc2FjdGlvbl9oYXNoNAEQSDI1NgABLGV4aXRfcmVhc29uGQIBKEV4aXRSZWFzb24AAShleHRyYV9kYXRhOAEcVmVjPHU4PgAABMhBbiBldGhlcmV1bSB0cmFuc2FjdGlvbiB3YXMgc3VjY2Vzc2Z1bGx5IGV4ZWN1dGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldBkCDCBldm1fY29yZRRlcnJvcihFeGl0UmVhc29uAAEQHFN1Y2NlZWQEAB0CASxFeGl0U3VjY2VlZAAAABRFcnJvcgQAIQIBJEV4aXRFcnJvcgABABhSZXZlcnQEADECAShFeGl0UmV2ZXJ0AAIAFEZhdGFsBAA1AgEkRXhpdEZhdGFsAAMAAB0CDCBldm1fY29yZRRlcnJvcixFeGl0U3VjY2VlZAABDBxTdG9wcGVkAAAAIFJldHVybmVkAAEAIFN1aWNpZGVkAAIAACECDCBldm1fY29yZRRlcnJvciRFeGl0RXJyb3IAAUA4U3RhY2tVbmRlcmZsb3cAAAA0U3RhY2tPdmVyZmxvdwABACxJbnZhbGlkSnVtcAACADBJbnZhbGlkUmFuZ2UAAwBERGVzaWduYXRlZEludmFsaWQABAAsQ2FsbFRvb0RlZXAABQA8Q3JlYXRlQ29sbGlzaW9uAAYATENyZWF0ZUNvbnRyYWN0TGltaXQABwAsSW52YWxpZENvZGUEACUCARhPcGNvZGUADwAsT3V0T2ZPZmZzZXQACAAgT3V0T2ZHYXMACQAkT3V0T2ZGdW5kAAoALFBDVW5kZXJmbG93AAsALENyZWF0ZUVtcHR5AAwAFE90aGVyBAApAgFEQ293PCdzdGF0aWMsIHN0cj4ADQAgTWF4Tm9uY2UADgAAJQIMIGV2bV9jb3JlGG9wY29kZRhPcGNvZGUAAAQACAEIdTgAACkCBAxDb3cEBFQBLQIABAAtAgAAAC0CAAAFAgAxAgwgZXZtX2NvcmUUZXJyb3IoRXhpdFJldmVydAABBCBSZXZlcnRlZAAAAAA1AgwgZXZtX2NvcmUUZXJyb3IkRXhpdEZhdGFsAAEQME5vdFN1cHBvcnRlZAAAAEhVbmhhbmRsZWRJbnRlcnJ1cHQAAQBAQ2FsbEVycm9yQXNGYXRhbAQAIQIBJEV4aXRFcnJvcgACABRPdGhlcgQAKQIBRENvdzwnc3RhdGljLCBzdHI+AAMAADkCDExwYWxsZXRfZXZtX2FjY291bnRzGHBhbGxldBRFdmVudAQEVAABFBRCb3VuZAgBHGFjY291bnQAATBUOjpBY2NvdW50SWQAARxhZGRyZXNzDQIBKEV2bUFkZHJlc3MAAARQQmluZGluZyB3YXMgY3JlYXRlZC40RGVwbG95ZXJBZGRlZAQBDHdobw0CAShFdm1BZGRyZXNzAAEETERlcGxveWVyIHdhcyBhZGRlZC48RGVwbG95ZXJSZW1vdmVkBAEMd2hvDQIBKEV2bUFkZHJlc3MAAgRURGVwbG95ZXIgd2FzIHJlbW92ZWQuQENvbnRyYWN0QXBwcm92ZWQEARxhZGRyZXNzDQIBKEV2bUFkZHJlc3MAAwRYQ29udHJhY3Qgd2FzIGFwcHJvdmVkLkxDb250cmFjdERpc2FwcHJvdmVkBAEcYWRkcmVzcw0CAShFdm1BZGRyZXNzAAQEZENvbnRyYWN0IHdhcyBkaXNhcHByb3ZlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQ9AgxscGFsbGV0X3h5a19saXF1aWRpdHlfbWluaW5nGHBhbGxldBRFdmVudAQEVAABNERHbG9iYWxGYXJtQ3JlYXRlZCwBCGlkEAEwR2xvYmFsRmFybUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAATR0b3RhbF9yZXdhcmRzGAEcQmFsYW5jZQABPHJld2FyZF9jdXJyZW5jeRABHEFzc2V0SWQAAUB5aWVsZF9wZXJfcGVyaW9kfQEBLFBlcnF1aW50aWxsAAFgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzEAEsUGVyaW9kT2Y8VD4AAURibG9ja3NfcGVyX3BlcmlvZBABREJsb2NrTnVtYmVyRm9yPFQ+AAFIaW5jZW50aXZpemVkX2Fzc2V0EAEcQXNzZXRJZAABVG1heF9yZXdhcmRfcGVyX3BlcmlvZBgBHEJhbGFuY2UAASxtaW5fZGVwb3NpdBgBHEJhbGFuY2UAAUBwcmljZV9hZGp1c3RtZW50YQEBJEZpeGVkVTEyOAAABHBOZXcgZ2xvYmFsIGZhcm0gd2FzIGNyZWF0ZWQuREdsb2JhbEZhcm1VcGRhdGVkCAEIaWQQATBHbG9iYWxGYXJtSWQAAUBwcmljZV9hZGp1c3RtZW50YQEBJEZpeGVkVTEyOAABBLRHbG9iYWwgZmFybSdzIGBwcmljZV9hZGp1c3RtZW50YCB3YXMgdXBkYXRlZC5AWWllbGRGYXJtQ3JlYXRlZBQBOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZBABLFlpZWxkRmFybUlkAAEobXVsdGlwbGllcmEBAThGYXJtTXVsdGlwbGllcgABKGFzc2V0X3BhaXJBAgEkQXNzZXRQYWlyAAE0bG95YWx0eV9jdXJ2ZYEBAVBPcHRpb248TG95YWx0eUN1cnZlPgACBJxOZXcgeWllbGQgZmFybSB3YXMgYWRkZWQgaW50byB0aGUgZmFybS5QR2xvYmFsRmFybVRlcm1pbmF0ZWQQAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABDHdobwABMFQ6OkFjY291bnRJZAABPHJld2FyZF9jdXJyZW5jeRABHEFzc2V0SWQAAVR1bmRpc3RyaWJ1dGVkX3Jld2FyZHMYARxCYWxhbmNlAAMEbEdsb2JhbCBmYXJtIHdhcyB0ZXJtaW5hdGVkLjxTaGFyZXNEZXBvc2l0ZWQYAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQQASxZaWVsZEZhcm1JZAABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBHEJhbGFuY2UAASBscF90b2tlbhABHEFzc2V0SWQAAShkZXBvc2l0X2lkGAEkRGVwb3NpdElkAAQEcE5ldyBMUCB0b2tlbnMgd2FzIGRlcG9zaXRlZC5EU2hhcmVzUmVkZXBvc2l0ZWQYAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQQASxZaWVsZEZhcm1JZAABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBHEJhbGFuY2UAASBscF90b2tlbhABHEFzc2V0SWQAAShkZXBvc2l0X2lkGAEkRGVwb3NpdElkAAUEzExQIHRva2VuIHdhcyByZWRlcG9zaXRlZCBmb3IgYSBuZXcgeWllbGQgZmFybSBlbnRyeTRSZXdhcmRDbGFpbWVkGAE4Z2xvYmFsX2Zhcm1faWQQATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkEAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARxjbGFpbWVkGAEcQmFsYW5jZQABPHJld2FyZF9jdXJyZW5jeRABHEFzc2V0SWQAAShkZXBvc2l0X2lkGAEkRGVwb3NpdElkAAYEUFJld2FyZHMgd2FzIGNsYWltZWQuPFNoYXJlc1dpdGhkcmF3bhgBOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZBABLFlpZWxkRmFybUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEgbHBfdG9rZW4QARxBc3NldElkAAEYYW1vdW50GAEcQmFsYW5jZQABKGRlcG9zaXRfaWQYASREZXBvc2l0SWQABwRgTFAgdG9rZW5zIHdhcyB3aXRoZHJhd24uQFlpZWxkRmFybVN0b3BwZWQQAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQQASxZaWVsZEZhcm1JZAABDHdobwABMFQ6OkFjY291bnRJZAABKGFzc2V0X3BhaXJBAgEkQXNzZXRQYWlyAAgEmFlpZWxkIGZhcm0gZm9yIGFzc2V0IHBhaXIgd2FzIHN0b3BwZWQuQFlpZWxkRmFybVJlc3VtZWQUAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQQASxZaWVsZEZhcm1JZAABDHdobwABMFQ6OkFjY291bnRJZAABKGFzc2V0X3BhaXJBAgEkQXNzZXRQYWlyAAEobXVsdGlwbGllcmEBAThGYXJtTXVsdGlwbGllcgAJBJhZaWVsZCBmYXJtIGZvciBhc3NldCBwYWlyIHdhcyByZXN1bWVkLkxZaWVsZEZhcm1UZXJtaW5hdGVkEAE4Z2xvYmFsX2Zhcm1faWQQATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkEAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAAShhc3NldF9wYWlyQQIBJEFzc2V0UGFpcgAKBKxZaWVsZCBmYXJtIHdhcyB0ZXJtaW5hdGVkIGZyb20gZ2xvYmFsIGZhcm0uQFlpZWxkRmFybVVwZGF0ZWQUAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQQASxZaWVsZEZhcm1JZAABDHdobwABMFQ6OkFjY291bnRJZAABKGFzc2V0X3BhaXJBAgEkQXNzZXRQYWlyAAEobXVsdGlwbGllcmEBAThGYXJtTXVsdGlwbGllcgALBIhZaWVsZCBmYXJtIG11bHRpcGxpZXIgd2FzIHVwZGF0ZWQuQERlcG9zaXREZXN0cm95ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAAShkZXBvc2l0X2lkGAEkRGVwb3NpdElkAAwErE5GVCByZXByZXNlbnRpbmcgZGVwb3NpdCBoYXMgYmVlbiBkZXN0cm95ZWQEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRBAgwocGFsbGV0X3h5axR0eXBlcyRBc3NldFBhaXIAAAgBIGFzc2V0X2luEAEcQXNzZXRJZAABJGFzc2V0X291dBABHEFzc2V0SWQAAEUCDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXZlbnQIBFQABEkAAQxcR2xvYmFsRmFybUFjY1JQWlVwZGF0ZWQMAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABPGFjY3VtdWxhdGVkX3JwemEBASRGaXhlZFUxMjgAATh0b3RhbF9zaGFyZXNfehgBHEJhbGFuY2UAAATUR2xvYmFsIGZhcm0gYWNjdW11bGF0ZWQgcmV3YXJkIHBlciBzaGFyZSB3YXMgdXBkYXRlZC5cWWllbGRGYXJtQWNjUlBWU1VwZGF0ZWQQAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQQASxZaWVsZEZhcm1JZAABQGFjY3VtdWxhdGVkX3JwdnNhAQEkRml4ZWRVMTI4AAFMdG90YWxfdmFsdWVkX3NoYXJlcxgBHEJhbGFuY2UAAQTsWWllbGQgZmFybSBhY2N1bXVsYXRlZCByZXdhcmQgcGVyIHZhbHVlZCBzaGFyZSB3YXMgdXBkYXRlZC5UQWxsUmV3YXJkc0Rpc3RyaWJ1dGVkBAE4Z2xvYmFsX2Zhcm1faWQQATBHbG9iYWxGYXJtSWQAAgTwR2xvYmFsIGZhcm0gaGFzIG5vIG1vcmUgcmV3YXJkcyB0byBkaXN0cmlidXRlIGluIHRoZSBtb21lbnQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0SQIMWHBhbGxldF9yZWxheWNoYWluX2luZm8YcGFsbGV0FEV2ZW50BARUAAEETEN1cnJlbnRCbG9ja051bWJlcnMIAVhwYXJhY2hhaW5fYmxvY2tfbnVtYmVyEAFEQmxvY2tOdW1iZXJGb3I8VD4AAVxyZWxheWNoYWluX2Jsb2NrX251bWJlchABREJsb2NrTnVtYmVyRm9yPFQ+AAAIVEN1cnJlbnQgYmxvY2sgbnVtYmVyc8xbIFBhcmFjaGFpbiBibG9jayBudW1iZXIsIFJlbGF5Y2hhaW4gQmxvY2sgbnVtYmVyIF0EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRNAgwocGFsbGV0X2RjYRhwYWxsZXQURXZlbnQEBFQAASBARXhlY3V0aW9uU3RhcnRlZAgBCGlkEAEoU2NoZWR1bGVJZAABFGJsb2NrEAFEQmxvY2tOdW1iZXJGb3I8VD4AAARwVGhlIERDQSBleGVjdXRpb24gaXMgc3RhcnRlZCRTY2hlZHVsZWQUAQhpZBABKFNjaGVkdWxlSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhwZXJpb2QQAURCbG9ja051bWJlckZvcjxUPgABMHRvdGFsX2Ftb3VudBgBHEJhbGFuY2UAARRvcmRlclECAURPcmRlcjxUOjpBc3NldElkPgABBJxUaGUgRENBIGlzIHNjaGVkdWxlZCBmb3IgbmV4dCBleGVjdXRpb25ARXhlY3V0aW9uUGxhbm5lZAwBCGlkEAEoU2NoZWR1bGVJZAABDHdobwABMFQ6OkFjY291bnRJZAABFGJsb2NrEAFEQmxvY2tOdW1iZXJGb3I8VD4AAgSIVGhlIERDQSBpcyBwbGFubmVkIGZvciBibG9ja251bWJlcjRUcmFkZUV4ZWN1dGVkEAEIaWQQAShTY2hlZHVsZUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEkYW1vdW50X2luGAEcQmFsYW5jZQABKGFtb3VudF9vdXQYARxCYWxhbmNlAAMEmFRoZSBEQ0EgdHJhZGUgaXMgc3VjY2Vzc2Z1bGx5IGV4ZWN1dGVkLFRyYWRlRmFpbGVkDAEIaWQQAShTY2hlZHVsZUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEUZXJyb3JoATREaXNwYXRjaEVycm9yAAQEhFRoZSBEQ0EgdHJhZGUgZXhlY3V0aW9uIGlzIGZhaWxlZChUZXJtaW5hdGVkDAEIaWQQAShTY2hlZHVsZUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEUZXJyb3JoATREaXNwYXRjaEVycm9yAAUE7FRoZSBEQ0EgaXMgdGVybWluYXRlZCBhbmQgY29tcGxldGVseSByZW1vdmVkIGZyb20gdGhlIGNoYWluJENvbXBsZXRlZAgBCGlkEAEoU2NoZWR1bGVJZAABDHdobwABMFQ6OkFjY291bnRJZAAGBOhUaGUgRENBIGlzIGNvbXBsZXRlZCBhbmQgY29tcGxldGVseSByZW1vdmVkIGZyb20gdGhlIGNoYWluaFJhbmRvbW5lc3NHZW5lcmF0aW9uRmFpbGVkCAEUYmxvY2sQAURCbG9ja051bWJlckZvcjxUPgABFGVycm9yaAE0RGlzcGF0Y2hFcnJvcgAHBEEBUmFuZG9tbmVzcyBnZW5lcmF0aW9uIGZhaWxlZCBwb3NzaWJseSBjb21pbmcgZnJvbSBtaXNzaW5nIGRhdGEgYWJvdXQgcmVsYXkgY2hhaW4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRRAgwocGFsbGV0X2RjYRR0eXBlcxRPcmRlcgQcQXNzZXRJZAEQAQgQU2VsbBQBIGFzc2V0X2luEAEcQXNzZXRJZAABJGFzc2V0X291dBABHEFzc2V0SWQAASRhbW91bnRfaW4YARxCYWxhbmNlAAE4bWluX2Ftb3VudF9vdXQYARxCYWxhbmNlAAEUcm91dGVVAgHoQm91bmRlZFZlYzxUcmFkZTxBc3NldElkPiwgQ29uc3RVMzI8TUFYX05VTUJFUl9PRl9UUkFERVM+PgAAAAxCdXkUASBhc3NldF9pbhABHEFzc2V0SWQAASRhc3NldF9vdXQQARxBc3NldElkAAEoYW1vdW50X291dBgBHEJhbGFuY2UAATRtYXhfYW1vdW50X2luGAEcQmFsYW5jZQABFHJvdXRlVQIB6EJvdW5kZWRWZWM8VHJhZGU8QXNzZXRJZD4sIENvbnN0VTMyPE1BWF9OVU1CRVJfT0ZfVFJBREVTPj4AAQAAVQIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFZAgRTAAAEAGECARhWZWM8VD4AAFkCDDhoeWRyYWR4X3RyYWl0cxhyb3V0ZXIUVHJhZGUEHEFzc2V0SWQBEAAMARBwb29sXQIBRFBvb2xUeXBlPEFzc2V0SWQ+AAEgYXNzZXRfaW4QARxBc3NldElkAAEkYXNzZXRfb3V0EAEcQXNzZXRJZAAAXQIMOGh5ZHJhZHhfdHJhaXRzGHJvdXRlciBQb29sVHlwZQQcQXNzZXRJZAEQARAMWFlLAAAADExCUAABAChTdGFibGVzd2FwBAAQARxBc3NldElkAAIAIE9tbmlwb29sAAMAAGECAAACWQIAZQIMQHBhbGxldF9zY2hlZHVsZXIYcGFsbGV0FEV2ZW50BARUAAEkJFNjaGVkdWxlZAgBEHdoZW4QAURCbG9ja051bWJlckZvcjxUPgABFGluZGV4EAEMdTMyAAAEUFNjaGVkdWxlZCBzb21lIHRhc2suIENhbmNlbGVkCAEQd2hlbhABREJsb2NrTnVtYmVyRm9yPFQ+AAEUaW5kZXgQAQx1MzIAAQRMQ2FuY2VsZWQgc29tZSB0YXNrLihEaXNwYXRjaGVkDAEQdGFza5EBAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZGkCAUBPcHRpb248VGFza05hbWU+AAEYcmVzdWx0mAE4RGlzcGF0Y2hSZXN1bHQAAgRURGlzcGF0Y2hlZCBzb21lIHRhc2suIFJldHJ5U2V0EAEQdGFza5EBAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZGkCAUBPcHRpb248VGFza05hbWU+AAEYcGVyaW9kEAFEQmxvY2tOdW1iZXJGb3I8VD4AARxyZXRyaWVzCAEIdTgAAwSgU2V0IGEgcmV0cnkgY29uZmlndXJhdGlvbiBmb3Igc29tZSB0YXNrLjhSZXRyeUNhbmNlbGxlZAgBEHRhc2uRAQF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWRpAgFAT3B0aW9uPFRhc2tOYW1lPgAEBKxDYW5jZWwgYSByZXRyeSBjb25maWd1cmF0aW9uIGZvciBzb21lIHRhc2suPENhbGxVbmF2YWlsYWJsZQgBEHRhc2uRAQF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWRpAgFAT3B0aW9uPFRhc2tOYW1lPgAFBCkBVGhlIGNhbGwgZm9yIHRoZSBwcm92aWRlZCBoYXNoIHdhcyBub3QgZm91bmQgc28gdGhlIHRhc2sgaGFzIGJlZW4gYWJvcnRlZC44UGVyaW9kaWNGYWlsZWQIARB0YXNrkQEBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlkaQIBQE9wdGlvbjxUYXNrTmFtZT4ABgQ9AVRoZSBnaXZlbiB0YXNrIHdhcyB1bmFibGUgdG8gYmUgcmVuZXdlZCBzaW5jZSB0aGUgYWdlbmRhIGlzIGZ1bGwgYXQgdGhhdCBibG9jay4sUmV0cnlGYWlsZWQIARB0YXNrkQEBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlkaQIBQE9wdGlvbjxUYXNrTmFtZT4ABwhdAVRoZSBnaXZlbiB0YXNrIHdhcyB1bmFibGUgdG8gYmUgcmV0cmllZCBzaW5jZSB0aGUgYWdlbmRhIGlzIGZ1bGwgYXQgdGhhdCBibG9jayBvciB0aGVyZZx3YXMgbm90IGVub3VnaCB3ZWlnaHQgdG8gcmVzY2hlZHVsZSBpdC5UUGVybWFuZW50bHlPdmVyd2VpZ2h0CAEQdGFza5EBAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZGkCAUBPcHRpb248VGFza05hbWU+AAgE8FRoZSBnaXZlbiB0YXNrIGNhbiBuZXZlciBiZSBleGVjdXRlZCBzaW5jZSBpdCBpcyBvdmVyd2VpZ2h0LgQwRXZlbnRzIHR5cGUuaQIEGE9wdGlvbgQEVAEEAQgQTm9uZQAAABBTb21lBAAEAAABAABtAgx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbRhwYWxsZXQURXZlbnQEBFQAARhgVmFsaWRhdGlvbkZ1bmN0aW9uU3RvcmVkAAAE0FRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIGhhcyBiZWVuIHNjaGVkdWxlZCB0byBhcHBseS5kVmFsaWRhdGlvbkZ1bmN0aW9uQXBwbGllZAQBVHJlbGF5X2NoYWluX2Jsb2NrX251bRABVFJlbGF5Q2hhaW5CbG9ja051bWJlcgABBEUBVGhlIHZhbGlkYXRpb24gZnVuY3Rpb24gd2FzIGFwcGxpZWQgYXMgb2YgdGhlIGNvbnRhaW5lZCByZWxheSBjaGFpbiBibG9jayBudW1iZXIubFZhbGlkYXRpb25GdW5jdGlvbkRpc2NhcmRlZAACBLBUaGUgcmVsYXktY2hhaW4gYWJvcnRlZCB0aGUgdXBncmFkZSBwcm9jZXNzLmBEb3dud2FyZE1lc3NhZ2VzUmVjZWl2ZWQEARRjb3VudBABDHUzMgADBAEBU29tZSBkb3dud2FyZCBtZXNzYWdlcyBoYXZlIGJlZW4gcmVjZWl2ZWQgYW5kIHdpbGwgYmUgcHJvY2Vzc2VkLmREb3dud2FyZE1lc3NhZ2VzUHJvY2Vzc2VkCAEsd2VpZ2h0X3VzZWQoARhXZWlnaHQAASBkbXFfaGVhZDQBRHJlbGF5X2NoYWluOjpIYXNoAAQE4ERvd253YXJkIG1lc3NhZ2VzIHdlcmUgcHJvY2Vzc2VkIHVzaW5nIHRoZSBnaXZlbiB3ZWlnaHQuRFVwd2FyZE1lc3NhZ2VTZW50BAEwbWVzc2FnZV9oYXNoaQIBPE9wdGlvbjxYY21IYXNoPgAFBLhBbiB1cHdhcmQgbWVzc2FnZSB3YXMgc2VudCB0byB0aGUgcmVsYXkgY2hhaW4uBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0cQIMKHBhbGxldF94Y20YcGFsbGV0FEV2ZW50BARUAAFgJEF0dGVtcHRlZAQBHG91dGNvbWV1AgFQeGNtOjpsYXRlc3Q6Ok91dGNvbWUAAASoRXhlY3V0aW9uIG9mIGFuIFhDTSBtZXNzYWdlIHdhcyBhdHRlbXB0ZWQuEFNlbnQQARhvcmlnaW59AgEgTG9jYXRpb24AASxkZXN0aW5hdGlvbn0CASBMb2NhdGlvbgABHG1lc3NhZ2WxAgEcWGNtPCgpPgABKG1lc3NhZ2VfaWQEARxYY21IYXNoAAEEXEEgWENNIG1lc3NhZ2Ugd2FzIHNlbnQuSFVuZXhwZWN0ZWRSZXNwb25zZQgBGG9yaWdpbn0CASBMb2NhdGlvbgABIHF1ZXJ5X2lkMAEcUXVlcnlJZAACDFkBUXVlcnkgcmVzcG9uc2UgcmVjZWl2ZWQgd2hpY2ggZG9lcyBub3QgbWF0Y2ggYSByZWdpc3RlcmVkIHF1ZXJ5LiBUaGlzIG1heSBiZSBiZWNhdXNlIGFVAW1hdGNoaW5nIHF1ZXJ5IHdhcyBuZXZlciByZWdpc3RlcmVkLCBpdCBtYXkgYmUgYmVjYXVzZSBpdCBpcyBhIGR1cGxpY2F0ZSByZXNwb25zZSwgb3JwYmVjYXVzZSB0aGUgcXVlcnkgdGltZWQgb3V0LjRSZXNwb25zZVJlYWR5CAEgcXVlcnlfaWQwARxRdWVyeUlkAAEgcmVzcG9uc2XZAgEgUmVzcG9uc2UAAwhdAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBpcyByZWFkeSBmb3IgdGFraW5nIHdpdGggYHRha2VfcmVzcG9uc2VgLiBUaGVyZSBpc4BubyByZWdpc3RlcmVkIG5vdGlmaWNhdGlvbiBjYWxsLiBOb3RpZmllZAwBIHF1ZXJ5X2lkMAEcUXVlcnlJZAABMHBhbGxldF9pbmRleAgBCHU4AAEoY2FsbF9pbmRleAgBCHU4AAQIWQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlIHJlZ2lzdGVyZWQgbm90aWZpY2F0aW9uIGhhc6hiZWVuIGRpc3BhdGNoZWQgYW5kIGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseS5ATm90aWZ5T3ZlcndlaWdodBQBIHF1ZXJ5X2lkMAEcUXVlcnlJZAABMHBhbGxldF9pbmRleAgBCHU4AAEoY2FsbF9pbmRleAgBCHU4AAE0YWN0dWFsX3dlaWdodCgBGFdlaWdodAABTG1heF9idWRnZXRlZF93ZWlnaHQoARhXZWlnaHQABQxJAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGUgcmVnaXN0ZXJlZCBub3RpZmljYXRpb25ZAWNvdWxkIG5vdCBiZSBkaXNwYXRjaGVkIGJlY2F1c2UgdGhlIGRpc3BhdGNoIHdlaWdodCBpcyBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gd2VpZ2h05G9yaWdpbmFsbHkgYnVkZ2V0ZWQgYnkgdGhpcyBydW50aW1lIGZvciB0aGUgcXVlcnkgcmVzdWx0LkxOb3RpZnlEaXNwYXRjaEVycm9yDAEgcXVlcnlfaWQwARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4CAEIdTgAAShjYWxsX2luZGV4CAEIdTgABghVAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGVyZSB3YXMgYSBnZW5lcmFsIGVycm9yIHdpdGiIZGlzcGF0Y2hpbmcgdGhlIG5vdGlmaWNhdGlvbiBjYWxsLkhOb3RpZnlEZWNvZGVGYWlsZWQMASBxdWVyeV9pZDABHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgIAQh1OAABKGNhbGxfaW5kZXgIAQh1OAAHDFEBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZSBkaXNwYXRjaCB3YXMgdW5hYmxlIHRvIGJlWQFkZWNvZGVkIGludG8gYSBgQ2FsbGA7IHRoaXMgbWlnaHQgYmUgZHVlIHRvIGRpc3BhdGNoIGZ1bmN0aW9uIGhhdmluZyBhIHNpZ25hdHVyZSB3aGljaJRpcyBub3QgYChvcmlnaW4sIFF1ZXJ5SWQsIFJlc3BvbnNlKWAuQEludmFsaWRSZXNwb25kZXIMARhvcmlnaW59AgEgTG9jYXRpb24AASBxdWVyeV9pZDABHFF1ZXJ5SWQAAURleHBlY3RlZF9sb2NhdGlvbv0CAUBPcHRpb248TG9jYXRpb24+AAgMWQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIG9yaWdpbiBsb2NhdGlvbiBvZiB0aGUgcmVzcG9uc2UgZG9lc1UBbm90IG1hdGNoIHRoYXQgZXhwZWN0ZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQgZm9yIGEgbGF0ZXIsIHZhbGlkLCByZXNwb25zZSB0b2xiZSByZWNlaXZlZCBhbmQgYWN0ZWQgdXBvbi5cSW52YWxpZFJlc3BvbmRlclZlcnNpb24IARhvcmlnaW59AgEgTG9jYXRpb24AASBxdWVyeV9pZDABHFF1ZXJ5SWQACRxRAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgZXhwZWN0ZWQgb3JpZ2luIGxvY2F0aW9uIHBsYWNlZCBpbk0Bc3RvcmFnZSBieSB0aGlzIHJ1bnRpbWUgcHJldmlvdXNseSBjYW5ub3QgYmUgZGVjb2RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZC4AQQFUaGlzIGlzIHVuZXhwZWN0ZWQgKHNpbmNlIGEgbG9jYXRpb24gcGxhY2VkIGluIHN0b3JhZ2UgaW4gYSBwcmV2aW91c2x5IGV4ZWN1dGluZ00BcnVudGltZSBzaG91bGQgYmUgcmVhZGFibGUgcHJpb3IgdG8gcXVlcnkgdGltZW91dCkgYW5kIGRhbmdlcm91cyBzaW5jZSB0aGUgcG9zc2libHlZAXZhbGlkIHJlc3BvbnNlIHdpbGwgYmUgZHJvcHBlZC4gTWFudWFsIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uIGlzIHByb2JhYmx5IGdvaW5nIHRvIGJlHG5lZWRlZC40UmVzcG9uc2VUYWtlbgQBIHF1ZXJ5X2lkMAEcUXVlcnlJZAAKBMhSZWNlaXZlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWFkIGFuZCByZW1vdmVkLjRBc3NldHNUcmFwcGVkDAEQaGFzaDQBEEgyNTYAARhvcmlnaW59AgEgTG9jYXRpb24AARhhc3NldHMdAwE8VmVyc2lvbmVkQXNzZXRzAAsEuFNvbWUgYXNzZXRzIGhhdmUgYmVlbiBwbGFjZWQgaW4gYW4gYXNzZXQgdHJhcC5UVmVyc2lvbkNoYW5nZU5vdGlmaWVkEAEsZGVzdGluYXRpb259AgEgTG9jYXRpb24AARhyZXN1bHQQAShYY21WZXJzaW9uAAEQY29zdL0CARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAAMDCUBQW4gWENNIHZlcnNpb24gY2hhbmdlIG5vdGlmaWNhdGlvbiBtZXNzYWdlIGhhcyBiZWVuIGF0dGVtcHRlZCB0byBiZSBzZW50LgDgVGhlIGNvc3Qgb2Ygc2VuZGluZyBpdCAoYm9ybmUgYnkgdGhlIGNoYWluKSBpcyBpbmNsdWRlZC5cU3VwcG9ydGVkVmVyc2lvbkNoYW5nZWQIASBsb2NhdGlvbn0CASBMb2NhdGlvbgABHHZlcnNpb24QAShYY21WZXJzaW9uAA0IOQFUaGUgc3VwcG9ydGVkIHZlcnNpb24gb2YgYSBsb2NhdGlvbiBoYXMgYmVlbiBjaGFuZ2VkLiBUaGlzIG1pZ2h0IGJlIHRocm91Z2ggYW7AYXV0b21hdGljIG5vdGlmaWNhdGlvbiBvciBhIG1hbnVhbCBpbnRlcnZlbnRpb24uUE5vdGlmeVRhcmdldFNlbmRGYWlsDAEgbG9jYXRpb259AgEgTG9jYXRpb24AASBxdWVyeV9pZDABHFF1ZXJ5SWQAARRlcnJvcnkCASBYY21FcnJvcgAOCFkBQSBnaXZlbiBsb2NhdGlvbiB3aGljaCBoYWQgYSB2ZXJzaW9uIGNoYW5nZSBzdWJzY3JpcHRpb24gd2FzIGRyb3BwZWQgb3dpbmcgdG8gYW4gZXJyb3J8c2VuZGluZyB0aGUgbm90aWZpY2F0aW9uIHRvIGl0LmROb3RpZnlUYXJnZXRNaWdyYXRpb25GYWlsCAEgbG9jYXRpb25tAwFEVmVyc2lvbmVkTG9jYXRpb24AASBxdWVyeV9pZDABHFF1ZXJ5SWQADwhZAUEgZ2l2ZW4gbG9jYXRpb24gd2hpY2ggaGFkIGEgdmVyc2lvbiBjaGFuZ2Ugc3Vic2NyaXB0aW9uIHdhcyBkcm9wcGVkIG93aW5nIHRvIGFuIGVycm9ytG1pZ3JhdGluZyB0aGUgbG9jYXRpb24gdG8gb3VyIG5ldyBYQ00gZm9ybWF0LlRJbnZhbGlkUXVlcmllclZlcnNpb24IARhvcmlnaW59AgEgTG9jYXRpb24AASBxdWVyeV9pZDABHFF1ZXJ5SWQAEBxVAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgZXhwZWN0ZWQgcXVlcmllciBsb2NhdGlvbiBwbGFjZWQgaW5NAXN0b3JhZ2UgYnkgdGhpcyBydW50aW1lIHByZXZpb3VzbHkgY2Fubm90IGJlIGRlY29kZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQuAEEBVGhpcyBpcyB1bmV4cGVjdGVkIChzaW5jZSBhIGxvY2F0aW9uIHBsYWNlZCBpbiBzdG9yYWdlIGluIGEgcHJldmlvdXNseSBleGVjdXRpbmdNAXJ1bnRpbWUgc2hvdWxkIGJlIHJlYWRhYmxlIHByaW9yIHRvIHF1ZXJ5IHRpbWVvdXQpIGFuZCBkYW5nZXJvdXMgc2luY2UgdGhlIHBvc3NpYmx5WQF2YWxpZCByZXNwb25zZSB3aWxsIGJlIGRyb3BwZWQuIE1hbnVhbCBnb3Zlcm5hbmNlIGludGVydmVudGlvbiBpcyBwcm9iYWJseSBnb2luZyB0byBiZRxuZWVkZWQuOEludmFsaWRRdWVyaWVyEAEYb3JpZ2lufQIBIExvY2F0aW9uAAEgcXVlcnlfaWQwARxRdWVyeUlkAAFAZXhwZWN0ZWRfcXVlcmllcn0CASBMb2NhdGlvbgABUG1heWJlX2FjdHVhbF9xdWVyaWVy/QIBQE9wdGlvbjxMb2NhdGlvbj4AEQxdAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgcXVlcmllciBsb2NhdGlvbiBvZiB0aGUgcmVzcG9uc2UgZG9lc1EBbm90IG1hdGNoIHRoZSBleHBlY3RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZCBmb3IgYSBsYXRlciwgdmFsaWQsIHJlc3BvbnNlIHRvbGJlIHJlY2VpdmVkIGFuZCBhY3RlZCB1cG9uLlBWZXJzaW9uTm90aWZ5U3RhcnRlZAwBLGRlc3RpbmF0aW9ufQIBIExvY2F0aW9uAAEQY29zdL0CARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAASCFkBQSByZW1vdGUgaGFzIHJlcXVlc3RlZCBYQ00gdmVyc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9uIGZyb20gdXMgYW5kIHdlIGhhdmUgaG9ub3JlZCBpdC4dAUEgdmVyc2lvbiBpbmZvcm1hdGlvbiBtZXNzYWdlIGlzIHNlbnQgdG8gdGhlbSBhbmQgaXRzIGNvc3QgaXMgaW5jbHVkZWQuWFZlcnNpb25Ob3RpZnlSZXF1ZXN0ZWQMASxkZXN0aW5hdGlvbn0CASBMb2NhdGlvbgABEGNvc3S9AgEYQXNzZXRzAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gAEwQ9AVdlIGhhdmUgcmVxdWVzdGVkIHRoYXQgYSByZW1vdGUgY2hhaW4gc2VuZCB1cyBYQ00gdmVyc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy5gVmVyc2lvbk5vdGlmeVVucmVxdWVzdGVkDAEsZGVzdGluYXRpb259AgEgTG9jYXRpb24AARBjb3N0vQIBGEFzc2V0cwABKG1lc3NhZ2VfaWQEARxYY21IYXNoABQIJQFXZSBoYXZlIHJlcXVlc3RlZCB0aGF0IGEgcmVtb3RlIGNoYWluIHN0b3BzIHNlbmRpbmcgdXMgWENNIHZlcnNpb24gY2hhbmdlOG5vdGlmaWNhdGlvbnMuIEZlZXNQYWlkCAEYcGF5aW5nfQIBIExvY2F0aW9uAAEQZmVlc70CARhBc3NldHMAFQQxAUZlZXMgd2VyZSBwYWlkIGZyb20gYSBsb2NhdGlvbiBmb3IgYW4gb3BlcmF0aW9uIChvZnRlbiBmb3IgdXNpbmcgYFNlbmRYY21gKS40QXNzZXRzQ2xhaW1lZAwBEGhhc2g0ARBIMjU2AAEYb3JpZ2lufQIBIExvY2F0aW9uAAEYYXNzZXRzHQMBPFZlcnNpb25lZEFzc2V0cwAWBMBTb21lIGFzc2V0cyBoYXZlIGJlZW4gY2xhaW1lZCBmcm9tIGFuIGFzc2V0IHRyYXBgVmVyc2lvbk1pZ3JhdGlvbkZpbmlzaGVkBAEcdmVyc2lvbhABKFhjbVZlcnNpb24AFwSEQSBYQ00gdmVyc2lvbiBtaWdyYXRpb24gZmluaXNoZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0dQIQLHN0YWdpbmdfeGNtCHY0GHRyYWl0cxxPdXRjb21lAAEMIENvbXBsZXRlBAEQdXNlZCgBGFdlaWdodAAAAChJbmNvbXBsZXRlCAEQdXNlZCgBGFdlaWdodAABFGVycm9yeQIBFEVycm9yAAEAFEVycm9yBAEUZXJyb3J5AgEURXJyb3IAAgAAeQIQDHhjbQh2Mxh0cmFpdHMURXJyb3IAAaAgT3ZlcmZsb3cAAAA0VW5pbXBsZW1lbnRlZAABAGBVbnRydXN0ZWRSZXNlcnZlTG9jYXRpb24AAgBkVW50cnVzdGVkVGVsZXBvcnRMb2NhdGlvbgADADBMb2NhdGlvbkZ1bGwABABUTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAUAJEJhZE9yaWdpbgAGADxJbnZhbGlkTG9jYXRpb24ABwA0QXNzZXROb3RGb3VuZAAIAFRGYWlsZWRUb1RyYW5zYWN0QXNzZXQACQA8Tm90V2l0aGRyYXdhYmxlAAoASExvY2F0aW9uQ2Fubm90SG9sZAALAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUADABYRGVzdGluYXRpb25VbnN1cHBvcnRlZAANACRUcmFuc3BvcnQADgAoVW5yb3V0YWJsZQAPADBVbmtub3duQ2xhaW0AEAA4RmFpbGVkVG9EZWNvZGUAEQBATWF4V2VpZ2h0SW52YWxpZAASADhOb3RIb2xkaW5nRmVlcwATADBUb29FeHBlbnNpdmUAFAAQVHJhcAQAMAEMdTY0ABUAQEV4cGVjdGF0aW9uRmFsc2UAFgA4UGFsbGV0Tm90Rm91bmQAFwAwTmFtZU1pc21hdGNoABgATFZlcnNpb25JbmNvbXBhdGlibGUAGQBQSG9sZGluZ1dvdWxkT3ZlcmZsb3cAGgAsRXhwb3J0RXJyb3IAGwA4UmVhbmNob3JGYWlsZWQAHAAYTm9EZWFsAB0AKEZlZXNOb3RNZXQAHgAkTG9ja0Vycm9yAB8AME5vUGVybWlzc2lvbgAgAChVbmFuY2hvcmVkACEAOE5vdERlcG9zaXRhYmxlACIATFVuaGFuZGxlZFhjbVZlcnNpb24AIwBIV2VpZ2h0TGltaXRSZWFjaGVkBAAoARhXZWlnaHQAJAAcQmFycmllcgAlAExXZWlnaHROb3RDb21wdXRhYmxlACYAREV4Y2VlZHNTdGFja0xpbWl0ACcAAH0CECxzdGFnaW5nX3hjbQh2NCBsb2NhdGlvbiBMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3KBAgEkSnVuY3Rpb25zAACBAhAsc3RhZ2luZ194Y20IdjQkanVuY3Rpb25zJEp1bmN0aW9ucwABJBBIZXJlAAAACFgxBACFAgFIQXJjPFtKdW5jdGlvbjsgMV0+AAEACFgyBACVAgFIQXJjPFtKdW5jdGlvbjsgMl0+AAIACFgzBACZAgFIQXJjPFtKdW5jdGlvbjsgM10+AAMACFg0BACdAgFIQXJjPFtKdW5jdGlvbjsgNF0+AAQACFg1BAChAgFIQXJjPFtKdW5jdGlvbjsgNV0+AAUACFg2BAClAgFIQXJjPFtKdW5jdGlvbjsgNl0+AAYACFg3BACpAgFIQXJjPFtKdW5jdGlvbjsgN10+AAcACFg4BACtAgFIQXJjPFtKdW5jdGlvbjsgOF0+AAgAAIUCAAADAQAAAIkCAIkCECxzdGFnaW5nX3hjbQh2NCBqdW5jdGlvbiBKdW5jdGlvbgABKCRQYXJhY2hhaW4EADUBAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3JrjQIBRE9wdGlvbjxOZXR3b3JrSWQ+AAEIaWQEASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcmuNAgFET3B0aW9uPE5ldHdvcmtJZD4AARRpbmRleCwBDHU2NAACADBBY2NvdW50S2V5MjAIARxuZXR3b3JrjQIBRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V5QQEBIFt1ODsgMjBdAAMAOFBhbGxldEluc3RhbmNlBAAIAQh1OAAEADBHZW5lcmFsSW5kZXgEAEUBARB1MTI4AAUAKEdlbmVyYWxLZXkIARhsZW5ndGgIAQh1OAABEGRhdGEEASBbdTg7IDMyXQAGACRPbmx5Q2hpbGQABwAkUGx1cmFsaXR5CAEIaWRJAQEYQm9keUlkAAEQcGFydE0BASBCb2R5UGFydAAIADxHbG9iYWxDb25zZW5zdXMEAJECASROZXR3b3JrSWQACQAAjQIEGE9wdGlvbgQEVAGRAgEIEE5vbmUAAAAQU29tZQQAkQIAAAEAAJECECxzdGFnaW5nX3hjbQh2NCBqdW5jdGlvbiROZXR3b3JrSWQAASwkQnlHZW5lc2lzBAAEASBbdTg7IDMyXQAAABhCeUZvcmsIATBibG9ja19udW1iZXIwAQx1NjQAAShibG9ja19oYXNoBAEgW3U4OyAzMl0AAQAgUG9sa2Fkb3QAAgAYS3VzYW1hAAMAHFdlc3RlbmQABAAYUm9jb2NvAAUAGFdvY29jbwAGACBFdGhlcmV1bQQBIGNoYWluX2lkLAEMdTY0AAcALEJpdGNvaW5Db3JlAAgALEJpdGNvaW5DYXNoAAkAQFBvbGthZG90QnVsbGV0aW4ACgAAlQIAAAMCAAAAiQIAmQIAAAMDAAAAiQIAnQIAAAMEAAAAiQIAoQIAAAMFAAAAiQIApQIAAAMGAAAAiQIAqQIAAAMHAAAAiQIArQIAAAMIAAAAiQIAsQIMLHN0YWdpbmdfeGNtCHY0DFhjbQQQQ2FsbAAABAC1AgFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAAtQIAAAK5AgC5Agwsc3RhZ2luZ194Y20IdjQsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQAvQIBGEFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAL0CARhBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAvQIBGEFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWQsARxRdWVyeUlkAAEgcmVzcG9uc2XZAgEgUmVzcG9uc2UAAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AAEccXVlcmllcv0CAUBPcHRpb248TG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHO9AgEYQXNzZXRzAAEsYmVuZWZpY2lhcnl9AgEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHO9AgEYQXNzZXRzAAEQZGVzdH0CASBMb2NhdGlvbgABDHhjbbECARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmQBAwEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3QoARhXZWlnaHQAARBjYWxsBQMBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcjUBAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplNQEBDHUzMgABMG1heF9jYXBhY2l0eTUBAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudDUBAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9yNQEBDHUzMgABGHNlbmRlcjUBAQx1MzIAASRyZWNpcGllbnQ1AQEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EAIECAUBJbnRlcmlvckxvY2F0aW9uAAsALFJlcG9ydEVycm9yBAAJAwFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzDQMBLEFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnl9AgEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0cw0DASxBc3NldEZpbHRlcgABEGRlc3R9AgEgTG9jYXRpb24AAQx4Y22xAgEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2ZQ0DASxBc3NldEZpbHRlcgABEHdhbnS9AgEYQXNzZXRzAAEcbWF4aW1hbCABEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHMNAwEsQXNzZXRGaWx0ZXIAARxyZXNlcnZlfQIBIExvY2F0aW9uAAEMeGNtsQIBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0cw0DASxBc3NldEZpbHRlcgABEGRlc3R9AgEgTG9jYXRpb24AAQx4Y22xAgEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mbwkDAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0cw0DASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzxQIBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0GQMBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBACxAgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BACxAgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c70CARhBc3NldHMAARh0aWNrZXR9AgEgTG9jYXRpb24AGAAQVHJhcAQALAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZCwBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0KAEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAL0CARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEAL0CARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBAD9AgFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQA3QIBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBAD1AgE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvCQMBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4NQEBDHUzMgABEG5hbWU4ARxWZWM8dTg+AAEsbW9kdWxlX25hbWU4ARxWZWM8dTg+AAEsY3JhdGVfbWFqb3I1AQEMdTMyAAE8bWluX2NyYXRlX21pbm9yNQEBDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQACQMBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBACJAgEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmuRAgEkTmV0d29ya0lkAAEsZGVzdGluYXRpb26BAgFASW50ZXJpb3JMb2NhdGlvbgABDHhjbbECARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0xQIBFEFzc2V0AAEgdW5sb2NrZXJ9AgEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldMUCARRBc3NldAABGHRhcmdldH0CASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0xQIBFEFzc2V0AAEUb3duZXJ9AgEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0xQIBFEFzc2V0AAEYbG9ja2VyfQIBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3IAEQYm9vbAArACBTZXRUb3BpYwQABAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAfQIBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdBkDASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbv0CAUBPcHRpb248TG9jYXRpb24+AC8AAL0CECxzdGFnaW5nX3hjbQh2NBRhc3NldBhBc3NldHMAAAQAwQIBKFZlYzxBc3NldD4AAMECAAACxQIAxQIQLHN0YWdpbmdfeGNtCHY0FGFzc2V0FEFzc2V0AAAIAQhpZMkCARxBc3NldElkAAEMZnVuzQIBLEZ1bmdpYmlsaXR5AADJAhAsc3RhZ2luZ194Y20IdjQUYXNzZXQcQXNzZXRJZAAABAB9AgEgTG9jYXRpb24AAM0CECxzdGFnaW5nX3hjbQh2NBRhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQARQEBEHUxMjgAAAAsTm9uRnVuZ2libGUEANECATRBc3NldEluc3RhbmNlAAEAANECECxzdGFnaW5nX3hjbQh2NBRhc3NldDRBc3NldEluc3RhbmNlAAEYJFVuZGVmaW5lZAAAABRJbmRleAQARQEBEHUxMjgAAQAYQXJyYXk0BABIARxbdTg7IDRdAAIAGEFycmF5OAQA8QEBHFt1ODsgOF0AAwAcQXJyYXkxNgQA1QIBIFt1ODsgMTZdAAQAHEFycmF5MzIEAAQBIFt1ODsgMzJdAAUAANUCAAADEAAAAAgA2QIMLHN0YWdpbmdfeGNtCHY0IFJlc3BvbnNlAAEYEE51bGwAAAAYQXNzZXRzBAC9AgEYQXNzZXRzAAEAPEV4ZWN1dGlvblJlc3VsdAQA3QIBUE9wdGlvbjwodTMyLCBFcnJvcik+AAIAHFZlcnNpb24EABABOHN1cGVyOjpWZXJzaW9uAAMALFBhbGxldHNJbmZvBADlAgGYQm91bmRlZFZlYzxQYWxsZXRJbmZvLCBNYXhQYWxsZXRzSW5mbz4ABAA4RGlzcGF0Y2hSZXN1bHQEAPUCAThNYXliZUVycm9yQ29kZQAFAADdAgQYT3B0aW9uBARUAeECAQgQTm9uZQAAABBTb21lBADhAgAAAQAA4QIAAAQIEHkCAOUCDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB6QIEUwAABADxAgEYVmVjPFQ+AADpAgwsc3RhZ2luZ194Y20IdjQoUGFsbGV0SW5mbwAAGAEUaW5kZXg1AQEMdTMyAAEQbmFtZe0CAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABLG1vZHVsZV9uYW1l7QIBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEUbWFqb3I1AQEMdTMyAAEUbWlub3I1AQEMdTMyAAEUcGF0Y2g1AQEMdTMyAADtAgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAPECAAAC6QIA9QIMDHhjbQh2MzhNYXliZUVycm9yQ29kZQABDBxTdWNjZXNzAAAAFEVycm9yBAD5AgGMQm91bmRlZFZlYzx1OCwgTWF4RGlzcGF0Y2hFcnJvckxlbj4AAQA4VHJ1bmNhdGVkRXJyb3IEAPkCAYxCb3VuZGVkVmVjPHU4LCBNYXhEaXNwYXRjaEVycm9yTGVuPgACAAD5AgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAP0CBBhPcHRpb24EBFQBfQIBCBBOb25lAAAAEFNvbWUEAH0CAAABAAABAwwMeGNtCHYyKE9yaWdpbktpbmQAARAYTmF0aXZlAAAAQFNvdmVyZWlnbkFjY291bnQAAQAkU3VwZXJ1c2VyAAIADFhjbQADAAAFAwwMeGNtOGRvdWJsZV9lbmNvZGVkNERvdWJsZUVuY29kZWQEBFQAAAQBHGVuY29kZWQ4ARxWZWM8dTg+AAAJAwwsc3RhZ2luZ194Y20IdjREUXVlcnlSZXNwb25zZUluZm8AAAwBLGRlc3RpbmF0aW9ufQIBIExvY2F0aW9uAAEgcXVlcnlfaWQsARxRdWVyeUlkAAEobWF4X3dlaWdodCgBGFdlaWdodAAADQMQLHN0YWdpbmdfeGNtCHY0FGFzc2V0LEFzc2V0RmlsdGVyAAEIIERlZmluaXRlBAC9AgEYQXNzZXRzAAAAEFdpbGQEABEDASRXaWxkQXNzZXQAAQAAEQMQLHN0YWdpbmdfeGNtCHY0FGFzc2V0JFdpbGRBc3NldAABEAxBbGwAAAAUQWxsT2YIAQhpZMkCARxBc3NldElkAAEMZnVuFQMBPFdpbGRGdW5naWJpbGl0eQABAChBbGxDb3VudGVkBAA1AQEMdTMyAAIAMEFsbE9mQ291bnRlZAwBCGlkyQIBHEFzc2V0SWQAAQxmdW4VAwE8V2lsZEZ1bmdpYmlsaXR5AAEUY291bnQ1AQEMdTMyAAMAABUDECxzdGFnaW5nX3hjbQh2NBRhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAAGQMMDHhjbQh2MyxXZWlnaHRMaW1pdAABCCRVbmxpbWl0ZWQAAAAcTGltaXRlZAQAKAEYV2VpZ2h0AAEAAB0DCAx4Y208VmVyc2lvbmVkQXNzZXRzAAEMCFYyBAAhAwE8djI6Ok11bHRpQXNzZXRzAAEACFYzBABVAwE8djM6Ok11bHRpQXNzZXRzAAMACFY0BAC9AgEodjQ6OkFzc2V0cwAEAAAhAxAMeGNtCHYyKG11bHRpYXNzZXQsTXVsdGlBc3NldHMAAAQAJQMBPFZlYzxNdWx0aUFzc2V0PgAAJQMAAAIpAwApAxAMeGNtCHYyKG11bHRpYXNzZXQoTXVsdGlBc3NldAAACAEIaWQtAwEcQXNzZXRJZAABDGZ1bk0DASxGdW5naWJpbGl0eQAALQMQDHhjbQh2MihtdWx0aWFzc2V0HEFzc2V0SWQAAQggQ29uY3JldGUEADEDATRNdWx0aUxvY2F0aW9uAAAAIEFic3RyYWN0BAA4ARxWZWM8dTg+AAEAADEDEAx4Y20IdjI0bXVsdGlsb2NhdGlvbjRNdWx0aUxvY2F0aW9uAAAIARxwYXJlbnRzCAEIdTgAASBpbnRlcmlvcjUDASRKdW5jdGlvbnMAADUDEAx4Y20IdjI0bXVsdGlsb2NhdGlvbiRKdW5jdGlvbnMAASQQSGVyZQAAAAhYMQQAOQMBIEp1bmN0aW9uAAEACFgyCAA5AwEgSnVuY3Rpb24AADkDASBKdW5jdGlvbgACAAhYMwwAOQMBIEp1bmN0aW9uAAA5AwEgSnVuY3Rpb24AADkDASBKdW5jdGlvbgADAAhYNBAAOQMBIEp1bmN0aW9uAAA5AwEgSnVuY3Rpb24AADkDASBKdW5jdGlvbgAAOQMBIEp1bmN0aW9uAAQACFg1FAA5AwEgSnVuY3Rpb24AADkDASBKdW5jdGlvbgAAOQMBIEp1bmN0aW9uAAA5AwEgSnVuY3Rpb24AADkDASBKdW5jdGlvbgAFAAhYNhgAOQMBIEp1bmN0aW9uAAA5AwEgSnVuY3Rpb24AADkDASBKdW5jdGlvbgAAOQMBIEp1bmN0aW9uAAA5AwEgSnVuY3Rpb24AADkDASBKdW5jdGlvbgAGAAhYNxwAOQMBIEp1bmN0aW9uAAA5AwEgSnVuY3Rpb24AADkDASBKdW5jdGlvbgAAOQMBIEp1bmN0aW9uAAA5AwEgSnVuY3Rpb24AADkDASBKdW5jdGlvbgAAOQMBIEp1bmN0aW9uAAcACFg4IAA5AwEgSnVuY3Rpb24AADkDASBKdW5jdGlvbgAAOQMBIEp1bmN0aW9uAAA5AwEgSnVuY3Rpb24AADkDASBKdW5jdGlvbgAAOQMBIEp1bmN0aW9uAAA5AwEgSnVuY3Rpb24AADkDASBKdW5jdGlvbgAIAAA5AxAMeGNtCHYyIGp1bmN0aW9uIEp1bmN0aW9uAAEkJFBhcmFjaGFpbgQANQEBDHUzMgAAACxBY2NvdW50SWQzMggBHG5ldHdvcms9AwEkTmV0d29ya0lkAAEIaWQEASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcms9AwEkTmV0d29ya0lkAAEUaW5kZXgsAQx1NjQAAgAwQWNjb3VudEtleTIwCAEcbmV0d29yaz0DASROZXR3b3JrSWQAAQxrZXlBAQEgW3U4OyAyMF0AAwA4UGFsbGV0SW5zdGFuY2UEAAgBCHU4AAQAMEdlbmVyYWxJbmRleAQARQEBEHUxMjgABQAoR2VuZXJhbEtleQQAQQMBgFdlYWtCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjwzMj4+AAYAJE9ubHlDaGlsZAAHACRQbHVyYWxpdHkIAQhpZEUDARhCb2R5SWQAARBwYXJ0SQMBIEJvZHlQYXJ0AAgAAD0DDAx4Y20IdjIkTmV0d29ya0lkAAEQDEFueQAAABROYW1lZAQAQQMBgFdlYWtCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjwzMj4+AAEAIFBvbGthZG90AAIAGEt1c2FtYQADAABBAwxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAEUDDAx4Y20IdjIYQm9keUlkAAEoEFVuaXQAAAAUTmFtZWQEAEEDAYBXZWFrQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8MzI+PgABABRJbmRleAQANQEBDHUzMgACACRFeGVjdXRpdmUAAwAkVGVjaG5pY2FsAAQALExlZ2lzbGF0aXZlAAUAIEp1ZGljaWFsAAYAHERlZmVuc2UABwA4QWRtaW5pc3RyYXRpb24ACAAgVHJlYXN1cnkACQAASQMMDHhjbQh2MiBCb2R5UGFydAABFBRWb2ljZQAAABxNZW1iZXJzBAEUY291bnQ1AQEMdTMyAAEAIEZyYWN0aW9uCAEMbm9tNQEBDHUzMgABFGRlbm9tNQEBDHUzMgACAERBdExlYXN0UHJvcG9ydGlvbggBDG5vbTUBAQx1MzIAARRkZW5vbTUBAQx1MzIAAwBITW9yZVRoYW5Qcm9wb3J0aW9uCAEMbm9tNQEBDHUzMgABFGRlbm9tNQEBDHUzMgAEAABNAxAMeGNtCHYyKG11bHRpYXNzZXQsRnVuZ2liaWxpdHkAAQggRnVuZ2libGUEAEUBARB1MTI4AAAALE5vbkZ1bmdpYmxlBABRAwE0QXNzZXRJbnN0YW5jZQABAABRAxAMeGNtCHYyKG11bHRpYXNzZXQ0QXNzZXRJbnN0YW5jZQABHCRVbmRlZmluZWQAAAAUSW5kZXgEAEUBARB1MTI4AAEAGEFycmF5NAQASAEcW3U4OyA0XQACABhBcnJheTgEAPEBARxbdTg7IDhdAAMAHEFycmF5MTYEANUCASBbdTg7IDE2XQAEABxBcnJheTMyBAAEASBbdTg7IDMyXQAFABBCbG9iBAA4ARxWZWM8dTg+AAYAAFUDEAx4Y20IdjMobXVsdGlhc3NldCxNdWx0aUFzc2V0cwAABABZAwE8VmVjPE11bHRpQXNzZXQ+AABZAwAAAl0DAF0DEAx4Y20IdjMobXVsdGlhc3NldChNdWx0aUFzc2V0AAAIAQhpZGEDARxBc3NldElkAAEMZnVuZQMBLEZ1bmdpYmlsaXR5AABhAxAMeGNtCHYzKG11bHRpYXNzZXQcQXNzZXRJZAABCCBDb25jcmV0ZQQAKQEBNE11bHRpTG9jYXRpb24AAAAgQWJzdHJhY3QEAAQBIFt1ODsgMzJdAAEAAGUDEAx4Y20IdjMobXVsdGlhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQARQEBEHUxMjgAAAAsTm9uRnVuZ2libGUEAGkDATRBc3NldEluc3RhbmNlAAEAAGkDEAx4Y20IdjMobXVsdGlhc3NldDRBc3NldEluc3RhbmNlAAEYJFVuZGVmaW5lZAAAABRJbmRleAQARQEBEHUxMjgAAQAYQXJyYXk0BABIARxbdTg7IDRdAAIAGEFycmF5OAQA8QEBHFt1ODsgOF0AAwAcQXJyYXkxNgQA1QIBIFt1ODsgMTZdAAQAHEFycmF5MzIEAAQBIFt1ODsgMzJdAAUAAG0DCAx4Y21EVmVyc2lvbmVkTG9jYXRpb24AAQwIVjIEADEDAUR2Mjo6TXVsdGlMb2NhdGlvbgABAAhWMwQAKQEBRHYzOjpNdWx0aUxvY2F0aW9uAAMACFY0BAB9AgEwdjQ6OkxvY2F0aW9uAAQAAHEDDEhjdW11bHVzX3BhbGxldF94Y20YcGFsbGV0FEV2ZW50BARUAAEMNEludmFsaWRGb3JtYXQEAAQBIFt1ODsgMzJdAAAIgERvd253YXJkIG1lc3NhZ2UgaXMgaW52YWxpZCBYQ00uIFxbIGlkIFxdSFVuc3VwcG9ydGVkVmVyc2lvbgQABAEgW3U4OyAzMl0AAQi8RG93bndhcmQgbWVzc2FnZSBpcyB1bnN1cHBvcnRlZCB2ZXJzaW9uIG9mIFhDTS4gXFsgaWQgXF1ARXhlY3V0ZWREb3dud2FyZAgABAEgW3U4OyAzMl0AAHUCARxPdXRjb21lAAIIxERvd253YXJkIG1lc3NhZ2UgZXhlY3V0ZWQgd2l0aCB0aGUgZ2l2ZW4gb3V0Y29tZS5EXFsgaWQsIG91dGNvbWUgXF0EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXR1AwxkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZRhwYWxsZXQURXZlbnQEBFQAAQQ8WGNtcE1lc3NhZ2VTZW50BAEwbWVzc2FnZV9oYXNoBAEcWGNtSGFzaAAABMBBbiBIUk1QIG1lc3NhZ2Ugd2FzIHNlbnQgdG8gYSBzaWJsaW5nIHBhcmFjaGFpbi4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXR5AwxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0FEV2ZW50BARUAAEQQFByb2Nlc3NpbmdGYWlsZWQMAQhpZDQBEEgyNTYElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbn0DAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BFGVycm9yhQMBTFByb2Nlc3NNZXNzYWdlRXJyb3IQYFRoZSBlcnJvciB0aGF0IG9jY3VycmVkLgBJAVRoaXMgZXJyb3IgaXMgcHJldHR5IG9wYXF1ZS4gTW9yZSBmaW5lLWdyYWluZWQgZXJyb3JzIG5lZWQgdG8gYmUgZW1pdHRlZCBhcyBldmVudHNoYnkgdGhlIGBNZXNzYWdlUHJvY2Vzc29yYC4ABFUBTWVzc2FnZSBkaXNjYXJkZWQgZHVlIHRvIGFuIGVycm9yIGluIHRoZSBgTWVzc2FnZVByb2Nlc3NvcmAgKHVzdWFsbHkgYSBmb3JtYXQgZXJyb3IpLiRQcm9jZXNzZWQQAQhpZDQBEEgyNTYElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbn0DAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BLHdlaWdodF91c2VkKAEYV2VpZ2h0BMBIb3cgbXVjaCB3ZWlnaHQgd2FzIHVzZWQgdG8gcHJvY2VzcyB0aGUgbWVzc2FnZS4BHHN1Y2Nlc3MgARBib29sGIhXaGV0aGVyIHRoZSBtZXNzYWdlIHdhcyBwcm9jZXNzZWQuAEkBTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgbWVhbiB0aGF0IHRoZSB1bmRlcmx5aW5nIGBNZXNzYWdlUHJvY2Vzc29yYCB3YXMgaW50ZXJuYWxseTUBc3VjY2Vzc2Z1bC4gSXQgKnNvbGVseSogbWVhbnMgdGhhdCB0aGUgTVEgcGFsbGV0IHdpbGwgdHJlYXQgdGhpcyBhcyBhIHN1Y2Nlc3NNAWNvbmRpdGlvbiBhbmQgZGlzY2FyZCB0aGUgbWVzc2FnZS4gQW55IGludGVybmFsIGVycm9yIG5lZWRzIHRvIGJlIGVtaXR0ZWQgYXMgZXZlbnRzaGJ5IHRoZSBgTWVzc2FnZVByb2Nlc3NvcmAuAQRUTWVzc2FnZSBpcyBwcm9jZXNzZWQuSE92ZXJ3ZWlnaHRFbnF1ZXVlZBABCGlkBAEgW3U4OyAzMl0ElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbn0DAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BKHBhZ2VfaW5kZXgQASRQYWdlSW5kZXgEYFRoZSBwYWdlIG9mIHRoZSBtZXNzYWdlLgE0bWVzc2FnZV9pbmRleBABHFQ6OlNpemUEpFRoZSBpbmRleCBvZiB0aGUgbWVzc2FnZSB3aXRoaW4gdGhlIHBhZ2UuAgSMTWVzc2FnZSBwbGFjZWQgaW4gb3ZlcndlaWdodCBxdWV1ZS4oUGFnZVJlYXBlZAgBGG9yaWdpbn0DAUhNZXNzYWdlT3JpZ2luT2Y8VD4EWFRoZSBxdWV1ZSBvZiB0aGUgcGFnZS4BFGluZGV4EAEkUGFnZUluZGV4BFhUaGUgaW5kZXggb2YgdGhlIHBhZ2UuAwRUVGhpcyBwYWdlIHdhcyByZWFwZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0fQMIXGN1bXVsdXNfcHJpbWl0aXZlc19jb3JlWEFnZ3JlZ2F0ZU1lc3NhZ2VPcmlnaW4AAQwQSGVyZQAAABhQYXJlbnQAAQAcU2libGluZwQAgQMBGFBhcmFJZAACAACBAwx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlcwhJZAAABAAQAQx1MzIAAIUDEDRmcmFtZV9zdXBwb3J0GHRyYWl0cyBtZXNzYWdlc0xQcm9jZXNzTWVzc2FnZUVycm9yAAEUJEJhZEZvcm1hdAAAABxDb3JydXB0AAEALFVuc3VwcG9ydGVkAAIAKE92ZXJ3ZWlnaHQEACgBGFdlaWdodAADABRZaWVsZAAEAACJAwwgb3JtbF94Y20YbW9kdWxlFEV2ZW50BARUAAEEEFNlbnQIAQh0b30CASBMb2NhdGlvbgABHG1lc3NhZ2WxAgEcWGNtPCgpPgAABIRYQ00gbWVzc2FnZSBzZW50LiBcW3RvLCBtZXNzYWdlXF0EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSNAwwwb3JtbF94dG9rZW5zGG1vZHVsZRRFdmVudAQEVAABBERUcmFuc2ZlcnJlZEFzc2V0cxABGHNlbmRlcgABMFQ6OkFjY291bnRJZAABGGFzc2V0c70CARhBc3NldHMAAQxmZWXFAgEUQXNzZXQAARBkZXN0fQIBIExvY2F0aW9uAAAEdFRyYW5zZmVycmVkIGBBc3NldGAgd2l0aCBmZWUuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0kQMMTG9ybWxfdW5rbm93bl90b2tlbnMYbW9kdWxlFEV2ZW50AAEIJERlcG9zaXRlZAgBFGFzc2V0xQIBFEFzc2V0AAEMd2hvfQIBIExvY2F0aW9uAAAEQERlcG9zaXQgc3VjY2Vzcy4kV2l0aGRyYXduCAEUYXNzZXTFAgEUQXNzZXQAAQx3aG99AgEgTG9jYXRpb24AAQREV2l0aGRyYXcgc3VjY2Vzcy4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSVAwxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQURXZlbnQEBFQAAShATmV3SW52dWxuZXJhYmxlcwQBNGludnVsbmVyYWJsZXOZAwFEVmVjPFQ6OkFjY291bnRJZD4AAARsTmV3IEludnVsbmVyYWJsZXMgd2VyZSBzZXQuREludnVsbmVyYWJsZUFkZGVkBAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAABBHRBIG5ldyBJbnZ1bG5lcmFibGUgd2FzIGFkZGVkLkxJbnZ1bG5lcmFibGVSZW1vdmVkBAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAACBHBBbiBJbnZ1bG5lcmFibGUgd2FzIHJlbW92ZWQuUE5ld0Rlc2lyZWRDYW5kaWRhdGVzBAFIZGVzaXJlZF9jYW5kaWRhdGVzEAEMdTMyAAMEpFRoZSBudW1iZXIgb2YgZGVzaXJlZCBjYW5kaWRhdGVzIHdhcyBzZXQuQE5ld0NhbmRpZGFjeUJvbmQEASxib25kX2Ftb3VudBgBMEJhbGFuY2VPZjxUPgAEBGxUaGUgY2FuZGlkYWN5IGJvbmQgd2FzIHNldC44Q2FuZGlkYXRlQWRkZWQIAShhY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdBgBMEJhbGFuY2VPZjxUPgAFBFxBIG5ldyBjYW5kaWRhdGUgam9pbmVkLlBDYW5kaWRhdGVCb25kVXBkYXRlZAgBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQAARxkZXBvc2l0GAEwQmFsYW5jZU9mPFQ+AAYEcEJvbmQgb2YgYSBjYW5kaWRhdGUgdXBkYXRlZC5AQ2FuZGlkYXRlUmVtb3ZlZAQBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQABwRgQSBjYW5kaWRhdGUgd2FzIHJlbW92ZWQuRENhbmRpZGF0ZVJlcGxhY2VkDAEMb2xkAAEwVDo6QWNjb3VudElkAAEMbmV3AAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdBgBMEJhbGFuY2VPZjxUPgAIBPRBbiBhY2NvdW50IHdhcyByZXBsYWNlZCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QgYnkgYW5vdGhlciBvbmUuaEludmFsaWRJbnZ1bG5lcmFibGVTa2lwcGVkBAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAAJCFUBQW4gYWNjb3VudCB3YXMgdW5hYmxlIHRvIGJlIGFkZGVkIHRvIHRoZSBJbnZ1bG5lcmFibGVzIGJlY2F1c2UgdGhleSBkaWQgbm90IGhhdmUga2V5c8hyZWdpc3RlcmVkLiBPdGhlciBJbnZ1bG5lcmFibGVzIG1heSBoYXZlIGJlZW4gc2V0LgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldJkDAAACAACdAww4cGFsbGV0X3Nlc3Npb24YcGFsbGV0FEV2ZW50AAEEKE5ld1Nlc3Npb24EATRzZXNzaW9uX2luZGV4EAEwU2Vzc2lvbkluZGV4AAAIOQFOZXcgc2Vzc2lvbiBoYXMgaGFwcGVuZWQuIE5vdGUgdGhhdCB0aGUgYXJndW1lbnQgaXMgdGhlIHNlc3Npb24gaW5kZXgsIG5vdCB0aGWcYmxvY2sgbnVtYmVyIGFzIHRoZSB0eXBlIG1pZ2h0IHN1Z2dlc3QuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0oQMMRHBhbGxldF9lbWFfb3JhY2xlGHBhbGxldBRFdmVudAQEVAABCEBBZGRlZFRvV2hpdGVsaXN0CAEYc291cmNl8QEBGFNvdXJjZQABGGFzc2V0c5EBAUgoQXNzZXRJZCwgQXNzZXRJZCkAAASIT3JhY2xlIHdhcyBhZGRlZCB0byB0aGUgd2hpdGVsaXN0LlBSZW1vdmVkRnJvbVdoaXRlbGlzdAgBGHNvdXJjZfEBARhTb3VyY2UAARhhc3NldHORAQFIKEFzc2V0SWQsIEFzc2V0SWQpAAEEmE9yYWNsZSB3YXMgcmVtb3ZlZCBmcm9tIHRoZSB3aGl0ZWxpc3QuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0pQMIMGZyYW1lX3N5c3RlbRRQaGFzZQABDDhBcHBseUV4dHJpbnNpYwQAEAEMdTMyAAAAMEZpbmFsaXphdGlvbgABADhJbml0aWFsaXphdGlvbgACAACpAwAAApEBAK0DCDBmcmFtZV9zeXN0ZW1YTGFzdFJ1bnRpbWVVcGdyYWRlSW5mbwAACAEwc3BlY192ZXJzaW9uNQEBTGNvZGVjOjpDb21wYWN0PHUzMj4AASRzcGVjX25hbWUtAgFkc3BfcnVudGltZTo6UnVudGltZVN0cmluZwAAsQMIMGZyYW1lX3N5c3RlbWBDb2RlVXBncmFkZUF1dGhvcml6YXRpb24EBFQAAAgBJGNvZGVfaGFzaDQBHFQ6Okhhc2gAATRjaGVja192ZXJzaW9uIAEQYm9vbAAAtQMMMGZyYW1lX3N5c3RlbRhwYWxsZXQQQ2FsbAQEVAABLBhyZW1hcmsEARhyZW1hcms4ARxWZWM8dTg+AAAMaE1ha2Ugc29tZSBvbi1jaGFpbiByZW1hcmsuAIhDYW4gYmUgZXhlY3V0ZWQgYnkgZXZlcnkgYG9yaWdpbmAuOHNldF9oZWFwX3BhZ2VzBAEUcGFnZXMwAQx1NjQAAQT4U2V0IHRoZSBudW1iZXIgb2YgcGFnZXMgaW4gdGhlIFdlYkFzc2VtYmx5IGVudmlyb25tZW50J3MgaGVhcC4gc2V0X2NvZGUEARBjb2RlOAEcVmVjPHU4PgACBGRTZXQgdGhlIG5ldyBydW50aW1lIGNvZGUuXHNldF9jb2RlX3dpdGhvdXRfY2hlY2tzBAEQY29kZTgBHFZlYzx1OD4AAxAZAVNldCB0aGUgbmV3IHJ1bnRpbWUgY29kZSB3aXRob3V0IGRvaW5nIGFueSBjaGVja3Mgb2YgdGhlIGdpdmVuIGBjb2RlYC4AUQFOb3RlIHRoYXQgcnVudGltZSB1cGdyYWRlcyB3aWxsIG5vdCBydW4gaWYgdGhpcyBpcyBjYWxsZWQgd2l0aCBhIG5vdC1pbmNyZWFzaW5nIHNwZWMgdmVyc2lvbiEsc2V0X3N0b3JhZ2UEARRpdGVtc7kDATRWZWM8S2V5VmFsdWU+AAQEaFNldCBzb21lIGl0ZW1zIG9mIHN0b3JhZ2UuMGtpbGxfc3RvcmFnZQQBEGtleXPBAwEgVmVjPEtleT4ABQR0S2lsbCBzb21lIGl0ZW1zIGZyb20gc3RvcmFnZS4sa2lsbF9wcmVmaXgIARhwcmVmaXg4AQxLZXkAARxzdWJrZXlzEAEMdTMyAAYQEQFLaWxsIGFsbCBzdG9yYWdlIGl0ZW1zIHdpdGggYSBrZXkgdGhhdCBzdGFydHMgd2l0aCB0aGUgZ2l2ZW4gcHJlZml4LgA5ASoqTk9URToqKiBXZSByZWx5IG9uIHRoZSBSb290IG9yaWdpbiB0byBwcm92aWRlIHVzIHRoZSBudW1iZXIgb2Ygc3Via2V5cyB1bmRlcj0BdGhlIHByZWZpeCB3ZSBhcmUgcmVtb3ZpbmcgdG8gYWNjdXJhdGVseSBjYWxjdWxhdGUgdGhlIHdlaWdodCBvZiB0aGlzIGZ1bmN0aW9uLkRyZW1hcmtfd2l0aF9ldmVudAQBGHJlbWFyazgBHFZlYzx1OD4ABwSkTWFrZSBzb21lIG9uLWNoYWluIHJlbWFyayBhbmQgZW1pdCBldmVudC5EYXV0aG9yaXplX3VwZ3JhZGUEASRjb2RlX2hhc2g0ARxUOjpIYXNoAAkQYQFBdXRob3JpemUgYW4gdXBncmFkZSB0byBhIGdpdmVuIGBjb2RlX2hhc2hgIGZvciB0aGUgcnVudGltZS4gVGhlIHJ1bnRpbWUgY2FuIGJlIHN1cHBsaWVkGGxhdGVyLgB8VGhpcyBjYWxsIHJlcXVpcmVzIFJvb3Qgb3JpZ2luLoBhdXRob3JpemVfdXBncmFkZV93aXRob3V0X2NoZWNrcwQBJGNvZGVfaGFzaDQBHFQ6Okhhc2gACiBhAUF1dGhvcml6ZSBhbiB1cGdyYWRlIHRvIGEgZ2l2ZW4gYGNvZGVfaGFzaGAgZm9yIHRoZSBydW50aW1lLiBUaGUgcnVudGltZSBjYW4gYmUgc3VwcGxpZWQYbGF0ZXIuAF0BV0FSTklORzogVGhpcyBhdXRob3JpemVzIGFuIHVwZ3JhZGUgdGhhdCB3aWxsIHRha2UgcGxhY2Ugd2l0aG91dCBhbnkgc2FmZXR5IGNoZWNrcywgZm9yWQFleGFtcGxlIHRoYXQgdGhlIHNwZWMgbmFtZSByZW1haW5zIHRoZSBzYW1lIGFuZCB0aGF0IHRoZSB2ZXJzaW9uIG51bWJlciBpbmNyZWFzZXMuIE5vdPByZWNvbW1lbmRlZCBmb3Igbm9ybWFsIHVzZS4gVXNlIGBhdXRob3JpemVfdXBncmFkZWAgaW5zdGVhZC4AfFRoaXMgY2FsbCByZXF1aXJlcyBSb290IG9yaWdpbi5gYXBwbHlfYXV0aG9yaXplZF91cGdyYWRlBAEQY29kZTgBHFZlYzx1OD4ACyRVAVByb3ZpZGUgdGhlIHByZWltYWdlIChydW50aW1lIGJpbmFyeSkgYGNvZGVgIGZvciBhbiB1cGdyYWRlIHRoYXQgaGFzIGJlZW4gYXV0aG9yaXplZC4ASQFJZiB0aGUgYXV0aG9yaXphdGlvbiByZXF1aXJlZCBhIHZlcnNpb24gY2hlY2ssIHRoaXMgY2FsbCB3aWxsIGVuc3VyZSB0aGUgc3BlYyBuYW1l6HJlbWFpbnMgdW5jaGFuZ2VkIGFuZCB0aGF0IHRoZSBzcGVjIHZlcnNpb24gaGFzIGluY3JlYXNlZC4AWQFEZXBlbmRpbmcgb24gdGhlIHJ1bnRpbWUncyBgT25TZXRDb2RlYCBjb25maWd1cmF0aW9uLCB0aGlzIGZ1bmN0aW9uIG1heSBkaXJlY3RseSBhcHBseREBdGhlIG5ldyBgY29kZWAgaW4gdGhlIHNhbWUgYmxvY2sgb3IgYXR0ZW1wdCB0byBzY2hlZHVsZSB0aGUgdXBncmFkZS4AYEFsbCBvcmlnaW5zIGFyZSBhbGxvd2VkLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy65AwAAAr0DAL0DAAAECDg4AMEDAAACOADFAwwwZnJhbWVfc3lzdGVtGGxpbWl0czBCbG9ja1dlaWdodHMAAAwBKGJhc2VfYmxvY2soARhXZWlnaHQAASRtYXhfYmxvY2soARhXZWlnaHQAASRwZXJfY2xhc3PJAwGEUGVyRGlzcGF0Y2hDbGFzczxXZWlnaHRzUGVyQ2xhc3M+AADJAww0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQZXJEaXNwYXRjaENsYXNzBARUAc0DAAwBGG5vcm1hbM0DAQRUAAEsb3BlcmF0aW9uYWzNAwEEVAABJG1hbmRhdG9yec0DAQRUAADNAwwwZnJhbWVfc3lzdGVtGGxpbWl0czxXZWlnaHRzUGVyQ2xhc3MAABABOGJhc2VfZXh0cmluc2ljKAEYV2VpZ2h0AAE0bWF4X2V4dHJpbnNpY9EDAThPcHRpb248V2VpZ2h0PgABJG1heF90b3RhbNEDAThPcHRpb248V2VpZ2h0PgABIHJlc2VydmVk0QMBOE9wdGlvbjxXZWlnaHQ+AADRAwQYT3B0aW9uBARUASgBCBBOb25lAAAAEFNvbWUEACgAAAEAANUDDDBmcmFtZV9zeXN0ZW0YbGltaXRzLEJsb2NrTGVuZ3RoAAAEAQxtYXjZAwFUUGVyRGlzcGF0Y2hDbGFzczx1MzI+AADZAww0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQZXJEaXNwYXRjaENsYXNzBARUARAADAEYbm9ybWFsEAEEVAABLG9wZXJhdGlvbmFsEAEEVAABJG1hbmRhdG9yeRABBFQAAN0DCChzcF93ZWlnaHRzPFJ1bnRpbWVEYldlaWdodAAACAEQcmVhZDABDHU2NAABFHdyaXRlMAEMdTY0AADhAwgoc3BfdmVyc2lvbjhSdW50aW1lVmVyc2lvbgAAIAEkc3BlY19uYW1lLQIBNFJ1bnRpbWVTdHJpbmcAASRpbXBsX25hbWUtAgE0UnVudGltZVN0cmluZwABRGF1dGhvcmluZ192ZXJzaW9uEAEMdTMyAAEwc3BlY192ZXJzaW9uEAEMdTMyAAEwaW1wbF92ZXJzaW9uEAEMdTMyAAEQYXBpc+UDARxBcGlzVmVjAAFMdHJhbnNhY3Rpb25fdmVyc2lvbhABDHUzMgABNHN0YXRlX3ZlcnNpb24IAQh1OAAA5QMEDENvdwQEVAHpAwAEAOkDAAAA6QMAAALtAwDtAwAABAjxARAA8QMMMGZyYW1lX3N5c3RlbRhwYWxsZXQURXJyb3IEBFQAASQ8SW52YWxpZFNwZWNOYW1lAAAIEQFUaGUgbmFtZSBvZiBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IG1hdGNoIGJldHdlZW4gdGhlIGN1cnJlbnQgcnVudGltZVBhbmQgdGhlIG5ldyBydW50aW1lLmhTcGVjVmVyc2lvbk5lZWRzVG9JbmNyZWFzZQABCEEBVGhlIHNwZWNpZmljYXRpb24gdmVyc2lvbiBpcyBub3QgYWxsb3dlZCB0byBkZWNyZWFzZSBiZXR3ZWVuIHRoZSBjdXJyZW50IHJ1bnRpbWVQYW5kIHRoZSBuZXcgcnVudGltZS50RmFpbGVkVG9FeHRyYWN0UnVudGltZVZlcnNpb24AAgzsRmFpbGVkIHRvIGV4dHJhY3QgdGhlIHJ1bnRpbWUgdmVyc2lvbiBmcm9tIHRoZSBuZXcgcnVudGltZS4ACQFFaXRoZXIgY2FsbGluZyBgQ29yZV92ZXJzaW9uYCBvciBkZWNvZGluZyBgUnVudGltZVZlcnNpb25gIGZhaWxlZC5MTm9uRGVmYXVsdENvbXBvc2l0ZQADBPxTdWljaWRlIGNhbGxlZCB3aGVuIHRoZSBhY2NvdW50IGhhcyBub24tZGVmYXVsdCBjb21wb3NpdGUgZGF0YS48Tm9uWmVyb1JlZkNvdW50AAQENQFUaGVyZSBpcyBhIG5vbi16ZXJvIHJlZmVyZW5jZSBjb3VudCBwcmV2ZW50aW5nIHRoZSBhY2NvdW50IGZyb20gYmVpbmcgcHVyZ2VkLjBDYWxsRmlsdGVyZWQABQTQVGhlIG9yaWdpbiBmaWx0ZXIgcHJldmVudCB0aGUgY2FsbCB0byBiZSBkaXNwYXRjaGVkLmxNdWx0aUJsb2NrTWlncmF0aW9uc09uZ29pbmcABgRVAUEgbXVsdGktYmxvY2sgbWlncmF0aW9uIGlzIG9uZ29pbmcgYW5kIHByZXZlbnRzIHRoZSBjdXJyZW50IGNvZGUgZnJvbSBiZWluZyByZXBsYWNlZC5ETm90aGluZ0F1dGhvcml6ZWQABwRYTm8gdXBncmFkZSBhdXRob3JpemVkLjBVbmF1dGhvcml6ZWQACASUVGhlIHN1Ym1pdHRlZCBjb2RlIGlzIG5vdCBhdXRob3JpemVkLgRsRXJyb3IgZm9yIHRoZSBTeXN0ZW0gcGFsbGV09QMMQHBhbGxldF90aW1lc3RhbXAYcGFsbGV0EENhbGwEBFQAAQQMc2V0BAEMbm93LAEkVDo6TW9tZW50AABMVFNldCB0aGUgY3VycmVudCB0aW1lLgBVAVRoaXMgY2FsbCBzaG91bGQgYmUgaW52b2tlZCBleGFjdGx5IG9uY2UgcGVyIGJsb2NrLiBJdCB3aWxsIHBhbmljIGF0IHRoZSBmaW5hbGl6YXRpb27UcGhhc2UsIGlmIHRoaXMgY2FsbCBoYXNuJ3QgYmVlbiBpbnZva2VkIGJ5IHRoYXQgdGltZS4AQQFUaGUgdGltZXN0YW1wIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHByZXZpb3VzIG9uZSBieSB0aGUgYW1vdW50IHNwZWNpZmllZCBieWhbYENvbmZpZzo6TWluaW11bVBlcmlvZGBdLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX05vbmVfLgBRAVRoaXMgZGlzcGF0Y2ggY2xhc3MgaXMgX01hbmRhdG9yeV8gdG8gZW5zdXJlIGl0IGdldHMgZXhlY3V0ZWQgaW4gdGhlIGJsb2NrLiBCZSBhd2FyZVEBdGhhdCBjaGFuZ2luZyB0aGUgY29tcGxleGl0eSBvZiB0aGlzIGNhbGwgY291bGQgcmVzdWx0IGV4aGF1c3RpbmcgdGhlIHJlc291cmNlcyBpbiBhhGJsb2NrIHRvIGV4ZWN1dGUgYW55IG90aGVyIGNhbGxzLgA0IyMgQ29tcGxleGl0eTEBLSBgTygxKWAgKE5vdGUgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2YgYE9uVGltZXN0YW1wU2V0YCBtdXN0IGFsc28gYmUgYE8oMSlgKVUBLSAxIHN0b3JhZ2UgcmVhZCBhbmQgMSBzdG9yYWdlIG11dGF0aW9uIChjb2RlYyBgTygxKWAgYmVjYXVzZSBvZiBgRGlkVXBkYXRlOjp0YWtlYCBpbkAgIGBvbl9maW5hbGl6ZWAp1C0gMSBldmVudCBoYW5kbGVyIGBvbl90aW1lc3RhbXBfc2V0YC4gTXVzdCBiZSBgTygxKWAuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLvkDDExib3VuZGVkX2NvbGxlY3Rpb25zQHdlYWtfYm91bmRlZF92ZWM4V2Vha0JvdW5kZWRWZWMIBFQB/QMEUwAABAAFBAEYVmVjPFQ+AAD9Aww8cGFsbGV0X2JhbGFuY2VzFHR5cGVzLEJhbGFuY2VMb2NrBBxCYWxhbmNlARgADAEIaWTxAQE4TG9ja0lkZW50aWZpZXIAARhhbW91bnQYARxCYWxhbmNlAAEccmVhc29ucwEEARxSZWFzb25zAAABBAw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzHFJlYXNvbnMAAQwMRmVlAAAAEE1pc2MAAQAMQWxsAAIAAAUEAAAC/QMACQQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAENBARTAAAEABEEARhWZWM8VD4AAA0EDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsUmVzZXJ2ZURhdGEIRFJlc2VydmVJZGVudGlmaWVyAfEBHEJhbGFuY2UBGAAIAQhpZPEBAURSZXNlcnZlSWRlbnRpZmllcgABGGFtb3VudBgBHEJhbGFuY2UAABEEAAACDQQAFQQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEZBARTAAAEACkEARhWZWM8VD4AABkEDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMgSWRBbW91bnQICElkAR0EHEJhbGFuY2UBGAAIAQhpZB0EAQhJZAABGGFtb3VudBgBHEJhbGFuY2UAAB0ECDxoeWRyYWR4X3J1bnRpbWVEUnVudGltZUhvbGRSZWFzb24AAQggUHJlaW1hZ2UEACEEAWxwYWxsZXRfcHJlaW1hZ2U6OkhvbGRSZWFzb24ADwBIU3RhdGVUcmllTWlncmF0aW9uBAAlBAGccGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uOjpIb2xkUmVhc29uACMAACEEDDxwYWxsZXRfcHJlaW1hZ2UYcGFsbGV0KEhvbGRSZWFzb24AAQQgUHJlaW1hZ2UAAAAAJQQMbHBhbGxldF9zdGF0ZV90cmllX21pZ3JhdGlvbhhwYWxsZXQoSG9sZFJlYXNvbgABBDxTbGFzaEZvck1pZ3JhdGUAAAAAKQQAAAIZBAAtBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUATEEBFMAAAQANQQBGFZlYzxUPgAAMQQMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyBJZEFtb3VudAgISWQBkBxCYWxhbmNlARgACAEIaWSQAQhJZAABGGFtb3VudBgBHEJhbGFuY2UAADUEAAACMQQAOQQMPHBhbGxldF9iYWxhbmNlcxhwYWxsZXQQQ2FsbAgEVAAESQABIFB0cmFuc2Zlcl9hbGxvd19kZWF0aAgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVlRQEBKFQ6OkJhbGFuY2UAABzUVHJhbnNmZXIgc29tZSBsaXF1aWQgZnJlZSBiYWxhbmNlIHRvIGFub3RoZXIgYWNjb3VudC4ANQFgdHJhbnNmZXJfYWxsb3dfZGVhdGhgIHdpbGwgc2V0IHRoZSBgRnJlZUJhbGFuY2VgIG9mIHRoZSBzZW5kZXIgYW5kIHJlY2VpdmVyLhEBSWYgdGhlIHNlbmRlcidzIGFjY291bnQgaXMgYmVsb3cgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQgYXMgYSByZXN1bHSwb2YgdGhlIHRyYW5zZmVyLCB0aGUgYWNjb3VudCB3aWxsIGJlIHJlYXBlZC4AFQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUgdHJhbnNhY3Rvci44Zm9yY2VfdHJhbnNmZXIMARhzb3VyY2UAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVlRQEBKFQ6OkJhbGFuY2UAAghhAUV4YWN0bHkgYXMgYHRyYW5zZmVyX2FsbG93X2RlYXRoYCwgZXhjZXB0IHRoZSBvcmlnaW4gbXVzdCBiZSByb290IGFuZCB0aGUgc291cmNlIGFjY291bnREbWF5IGJlIHNwZWNpZmllZC5MdHJhbnNmZXJfa2VlcF9hbGl2ZQgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVlRQEBKFQ6OkJhbGFuY2UAAxhZAVNhbWUgYXMgdGhlIFtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXSBjYWxsLCBidXQgd2l0aCBhIGNoZWNrIHRoYXQgdGhlIHRyYW5zZmVyIHdpbGwgbm90YGtpbGwgdGhlIG9yaWdpbiBhY2NvdW50LgDoOTklIG9mIHRoZSB0aW1lIHlvdSB3YW50IFtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXSBpbnN0ZWFkLgDwW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdOiBzdHJ1Y3QuUGFsbGV0Lmh0bWwjbWV0aG9kLnRyYW5zZmVyMHRyYW5zZmVyX2FsbAgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKGtlZXBfYWxpdmUgARBib29sAAQ8BQFUcmFuc2ZlciB0aGUgZW50aXJlIHRyYW5zZmVyYWJsZSBiYWxhbmNlIGZyb20gdGhlIGNhbGxlciBhY2NvdW50LgBZAU5PVEU6IFRoaXMgZnVuY3Rpb24gb25seSBhdHRlbXB0cyB0byB0cmFuc2ZlciBfdHJhbnNmZXJhYmxlXyBiYWxhbmNlcy4gVGhpcyBtZWFucyB0aGF0YQFhbnkgbG9ja2VkLCByZXNlcnZlZCwgb3IgZXhpc3RlbnRpYWwgZGVwb3NpdHMgKHdoZW4gYGtlZXBfYWxpdmVgIGlzIGB0cnVlYCksIHdpbGwgbm90IGJlXQF0cmFuc2ZlcnJlZCBieSB0aGlzIGZ1bmN0aW9uLiBUbyBlbnN1cmUgdGhhdCB0aGlzIGZ1bmN0aW9uIHJlc3VsdHMgaW4gYSBraWxsZWQgYWNjb3VudCxFAXlvdSBtaWdodCBuZWVkIHRvIHByZXBhcmUgdGhlIGFjY291bnQgYnkgcmVtb3ZpbmcgYW55IHJlZmVyZW5jZSBjb3VudGVycywgc3RvcmFnZUBkZXBvc2l0cywgZXRjLi4uAMBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIFNpZ25lZC4AoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci5ZAS0gYGtlZXBfYWxpdmVgOiBBIGJvb2xlYW4gdG8gZGV0ZXJtaW5lIGlmIHRoZSBgdHJhbnNmZXJfYWxsYCBvcGVyYXRpb24gc2hvdWxkIHNlbmQgYWxsTQEgIG9mIHRoZSBmdW5kcyB0aGUgYWNjb3VudCBoYXMsIGNhdXNpbmcgdGhlIHNlbmRlciBhY2NvdW50IHRvIGJlIGtpbGxlZCAoZmFsc2UpLCBvclkBICB0cmFuc2ZlciBldmVyeXRoaW5nIGV4Y2VwdCBhdCBsZWFzdCB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCwgd2hpY2ggd2lsbCBndWFyYW50ZWUgdG+cICBrZWVwIHRoZSBzZW5kZXIgYWNjb3VudCBhbGl2ZSAodHJ1ZSkuPGZvcmNlX3VucmVzZXJ2ZQgBDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50GAEoVDo6QmFsYW5jZQAFDLBVbnJlc2VydmUgc29tZSBiYWxhbmNlIGZyb20gYSB1c2VyIGJ5IGZvcmNlLgBsQ2FuIG9ubHkgYmUgY2FsbGVkIGJ5IFJPT1QuQHVwZ3JhZGVfYWNjb3VudHMEAQx3aG+ZAwFEVmVjPFQ6OkFjY291bnRJZD4ABiBwVXBncmFkZSBhIHNwZWNpZmllZCBhY2NvdW50LgB0LSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYC6QLSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgdXBncmFkZWQuAFUBVGhpcyB3aWxsIHdhaXZlIHRoZSB0cmFuc2FjdGlvbiBmZWUgaWYgYXQgbGVhc3QgYWxsIGJ1dCAxMCUgb2YgdGhlIGFjY291bnRzIG5lZWRlZCB0b0EBYmUgdXBncmFkZWQuIChXZSBsZXQgc29tZSBub3QgaGF2ZSB0byBiZSB1cGdyYWRlZCBqdXN0IGluIG9yZGVyIHRvIGFsbG93IGZvciB0aGVYcG9zc2liaWxpdHkgb2YgY2h1cm4pLkRmb3JjZV9zZXRfYmFsYW5jZQgBDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEgbmV3X2ZyZWVFAQEoVDo6QmFsYW5jZQAIDKxTZXQgdGhlIHJlZ3VsYXIgYmFsYW5jZSBvZiBhIGdpdmVuIGFjY291bnQuALBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgaXMgYHJvb3RgLmxmb3JjZV9hZGp1c3RfdG90YWxfaXNzdWFuY2UIASRkaXJlY3Rpb249BAFMQWRqdXN0bWVudERpcmVjdGlvbgABFGRlbHRhRQEBKFQ6OkJhbGFuY2UACRS4QWRqdXN0IHRoZSB0b3RhbCBpc3N1YW5jZSBpbiBhIHNhdHVyYXRpbmcgd2F5LgD8Q2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHJvb3QgYW5kIGFsd2F5cyBuZWVkcyBhIHBvc2l0aXZlIGBkZWx0YWAuACQjIEV4YW1wbGUEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuPQQMPHBhbGxldF9iYWxhbmNlcxR0eXBlc0xBZGp1c3RtZW50RGlyZWN0aW9uAAEIIEluY3JlYXNlAAAAIERlY3JlYXNlAAEAAEEEDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0FEVycm9yCARUAARJAAEwOFZlc3RpbmdCYWxhbmNlAAAEnFZlc3RpbmcgYmFsYW5jZSB0b28gaGlnaCB0byBzZW5kIHZhbHVlLlRMaXF1aWRpdHlSZXN0cmljdGlvbnMAAQTIQWNjb3VudCBsaXF1aWRpdHkgcmVzdHJpY3Rpb25zIHByZXZlbnQgd2l0aGRyYXdhbC5MSW5zdWZmaWNpZW50QmFsYW5jZQACBHhCYWxhbmNlIHRvbyBsb3cgdG8gc2VuZCB2YWx1ZS5IRXhpc3RlbnRpYWxEZXBvc2l0AAME7FZhbHVlIHRvbyBsb3cgdG8gY3JlYXRlIGFjY291bnQgZHVlIHRvIGV4aXN0ZW50aWFsIGRlcG9zaXQuNEV4cGVuZGFiaWxpdHkABASQVHJhbnNmZXIvcGF5bWVudCB3b3VsZCBraWxsIGFjY291bnQuXEV4aXN0aW5nVmVzdGluZ1NjaGVkdWxlAAUEzEEgdmVzdGluZyBzY2hlZHVsZSBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBhY2NvdW50LixEZWFkQWNjb3VudAAGBIxCZW5lZmljaWFyeSBhY2NvdW50IG11c3QgcHJlLWV4aXN0LjxUb29NYW55UmVzZXJ2ZXMABwS4TnVtYmVyIG9mIG5hbWVkIHJlc2VydmVzIGV4Y2VlZCBgTWF4UmVzZXJ2ZXNgLjBUb29NYW55SG9sZHMACAT4TnVtYmVyIG9mIGhvbGRzIGV4Y2VlZCBgVmFyaWFudENvdW50T2Y8VDo6UnVudGltZUhvbGRSZWFzb24+YC44VG9vTWFueUZyZWV6ZXMACQSYTnVtYmVyIG9mIGZyZWV6ZXMgZXhjZWVkIGBNYXhGcmVlemVzYC5MSXNzdWFuY2VEZWFjdGl2YXRlZAAKBAEBVGhlIGlzc3VhbmNlIGNhbm5vdCBiZSBtb2RpZmllZCBzaW5jZSBpdCBpcyBhbHJlYWR5IGRlYWN0aXZhdGVkLiREZWx0YVplcm8ACwRkVGhlIGRlbHRhIGNhbm5vdCBiZSB6ZXJvLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5FBAhocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQgUmVsZWFzZXMAAQgkVjFBbmNpZW50AAAACFYyAAEAAEkEDIBwYWxsZXRfdHJhbnNhY3Rpb25fbXVsdGlfcGF5bWVudBhwYWxsZXQQQ2FsbAQEVAABFDBzZXRfY3VycmVuY3kEASBjdXJyZW5jeRABMEFzc2V0SWRPZjxUPgAANKBTZXQgc2VsZWN0ZWQgY3VycmVuY3kgZm9yIGdpdmVuIGFjY291bnQuAGEBVGhpcyBhbGxvd3MgdG8gc2V0IGEgY3VycmVuY3kgZm9yIGFuIGFjY291bnQgaW4gd2hpY2ggYWxsIHRyYW5zYWN0aW9uIGZlZXMgd2lsbCBiZSBwYWlkLnxBY2NvdW50IGJhbGFuY2UgY2Fubm90IGJlIHplcm8uAG0BSW4gY2FzZSBvZiBzdWZmaWNpZW50IGFzc2V0LCB0aGUgY2hvc2VuIGN1cnJlbmN5IG11c3QgYmUgaW4gdGhlIGxpc3Qgb2YgYWNjZXB0ZWQgY3VycmVuY2llc0EBSW4gY2FzZSBvZiBpbnN1ZmZpY2llbnQgYXNzZXQsIHRoZSBjaG9zZW4gY3VycmVuY3kgbXVzdCBoYXZlIGEgWFlLIHBvb2wgd2l0aCBET1QAcQFXaGVuIGN1cnJlbmN5IGlzIHNldCwgZml4ZWQgZmVlIGlzIHdpdGhkcmF3biBmcm9tIHRoZSBhY2NvdW50IHRvIHBheSBmb3IgdGhlIGN1cnJlbmN5IGNoYW5nZQD4RVZNIGFjY291bnRzIGFyZSBub3cgYWxsb3dlZCB0byBjaGFuZ2UgdGhpZXIgcGF5bWVudCBjdXJyZW5jeS4AqEVtaXRzIGBDdXJyZW5jeVNldGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjBhZGRfY3VycmVuY3kIASBjdXJyZW5jeRABMEFzc2V0SWRPZjxUPgABFHByaWNlYQEBFFByaWNlAAEcyEFkZCBhIGN1cnJlbmN5IHRvIHRoZSBsaXN0IG9mIGFjY2VwdGVkIGN1cnJlbmNpZXMuAJBPbmx5IG1lbWJlciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4AQQFDdXJyZW5jeSBtdXN0IG5vdCBiZSBhbHJlYWR5IGFjY2VwdGVkLiBDb3JlIGFzc2V0IGlkIGNhbm5vdCBiZSBleHBsaWNpdGx5IGFkZGVkLgCwRW1pdHMgYEN1cnJlbmN5QWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC48cmVtb3ZlX2N1cnJlbmN5BAEgY3VycmVuY3kQATBBc3NldElkT2Y8VD4AAhjUUmVtb3ZlIGN1cnJlbmN5IGZyb20gdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGN1cnJlbmNpZXO0T25seSBzZWxlY3RlZCBtZW1iZXJzIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uAHRDb3JlIGFzc2V0IGNhbm5vdCBiZSByZW1vdmVkLgCgRW1pdHMgYEN1cnJlbmN5UmVtb3ZlZGAgd2hlbiBzdWNjZXNzZnVsLlhyZXNldF9wYXltZW50X2N1cnJlbmN5BAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAADFLxSZXNldCBjdXJyZW5jeSBvZiB0aGUgc3BlY2lmaWVkIGFjY291bnQgdG8gSERYLhUBSWYgdGhlIGFjY291bnQgaXMgRVZNIGFjY291bnQsIHRoZSBwYXltZW50IGN1cnJlbmN5IGlzIHJlc2V0IHRvIFdFVEguuE9ubHkgc2VsZWN0ZWQgbWVtYmVycyBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4AkEVtaXRzIGBDdXJyZW5jeVNldGAgd2hlbiBzdWNjZXNzZnVsLjxkaXNwYXRjaF9wZXJtaXQkARBmcm9tDQIBEEgxNjAAAQh0bw0CARBIMTYwAAEUdmFsdWVNBAEQVTI1NgABEGRhdGE4ARxWZWM8dTg+AAEkZ2FzX2xpbWl0MAEMdTY0AAEgZGVhZGxpbmVNBAEQVTI1NgABBHYIAQh1OAABBHI0ARBIMjU2AAEEczQBEEgyNTYABBBQRGlzcGF0Y2ggRVZNIHBlcm1pdC7BAVRoZSBtYWluIHB1cnBvc2Ugb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBhbGxvdyBFVk0gYWNjb3VudHMgdG8gcGF5IGZvciB0aGUgdHJhbnNhY3Rpb24gZmVlIGluIG5vbi1uYXRpdmUgY3VycmVuY3nQYnkgYWxsb3dpbmcgdGhlbSB0byBzZWxmLWRpc3BhdGNoIHByZS1zaWduZWQgcGVybWl0LuBUaGUgRVZNIGZlZSBpcyBwYWlkIGluIHRoZSBjdXJyZW5jeSBzZXQgZm9yIHRoZSBhY2NvdW50LgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5NBAg8cHJpbWl0aXZlX3R5cGVzEFUyNTYAAAQAUQQBIFt1NjQ7IDRdAABRBAAAAwQAAAAwAFUEDIBwYWxsZXRfdHJhbnNhY3Rpb25fbXVsdGlfcGF5bWVudBhwYWxsZXQURXJyb3IEBFQAATBMVW5zdXBwb3J0ZWRDdXJyZW5jeQAABIxTZWxlY3RlZCBjdXJyZW5jeSBpcyBub3Qgc3VwcG9ydGVkLixaZXJvQmFsYW5jZQABBIxBY2NvdW50IGJhbGFuY2Ugc2hvdWxkIGJlIG5vbi16ZXJvLjxBbHJlYWR5QWNjZXB0ZWQAAgTcQ3VycmVuY3kgaXMgYWxyZWFkeSBpbiB0aGUgbGlzdCBvZiBhY2NlcHRlZCBjdXJyZW5jaWVzLkxDb3JlQXNzZXROb3RBbGxvd2VkAAMEbQFJdCBpcyBub3QgYWxsb3dlZCB0byBhZGQgQ29yZSBBc3NldCBhcyBhY2NlcHRlZCBjdXJyZW5jeS4gQ29yZSBhc3NldCBpcyBhY2NlcHRlZCBieSBkZXNpZ24uJFplcm9QcmljZQAEBHhGYWxsYmFjayBwcmljZSBjYW5ub3QgYmUgemVyby5URmFsbGJhY2tQcmljZU5vdEZvdW5kAAUEdEZhbGxiYWNrIHByaWNlIHdhcyBub3QgZm91bmQuIE92ZXJmbG93AAYENE1hdGggb3ZlcmZsb3dQRXZtQWNjb3VudE5vdEFsbG93ZWQABwT8SXQgaXMgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHBheW1lbnQgY3VycmVuY3kgb2YgYW4gRVZNIGFjY291bnQuQEV2bVBlcm1pdEV4cGlyZWQACARMRVZNIHBlcm1pdCBleHBpcmVkLkBFdm1QZXJtaXRJbnZhbGlkAAkEWEVWTSBwZXJtaXQgaXMgaW52YWxpZC5sRXZtUGVybWl0Q2FsbEV4ZWN1dGlvbkVycm9yAAoEXEVWTSBwZXJtaXQgY2FsbCBmYWlsZWQuUEV2bVBlcm1pdFJ1bm5lckVycm9yAAsEXEVWTSBwZXJtaXQgY2FsbCBmYWlsZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LlkECDxwYWxsZXRfdHJlYXN1cnkgUHJvcG9zYWwIJEFjY291bnRJZAEAHEJhbGFuY2UBGAAQASBwcm9wb3NlcgABJEFjY291bnRJZAABFHZhbHVlGAEcQmFsYW5jZQABLGJlbmVmaWNpYXJ5AAEkQWNjb3VudElkAAEQYm9uZBgBHEJhbGFuY2UAAF0EDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBEARTAAAEAJ0BARhWZWM8VD4AAGEECDxwYWxsZXRfdHJlYXN1cnksU3BlbmRTdGF0dXMUJEFzc2V0S2luZAGQMEFzc2V0QmFsYW5jZQEYLEJlbmVmaWNpYXJ5AQAsQmxvY2tOdW1iZXIBECRQYXltZW50SWQBkAAYAShhc3NldF9raW5kkAEkQXNzZXRLaW5kAAEYYW1vdW50GAEwQXNzZXRCYWxhbmNlAAEsYmVuZWZpY2lhcnkAASxCZW5lZmljaWFyeQABKHZhbGlkX2Zyb20QASxCbG9ja051bWJlcgABJGV4cGlyZV9hdBABLEJsb2NrTnVtYmVyAAEYc3RhdHVzZQQBXFBheW1lbnRTdGF0ZTxQYXltZW50SWQ+AABlBAg8cGFsbGV0X3RyZWFzdXJ5MFBheW1lbnRTdGF0ZQQISWQBkAEMHFBlbmRpbmcAAAAkQXR0ZW1wdGVkBAEIaWSQAQhJZAABABhGYWlsZWQAAgAAaQQMPHBhbGxldF90cmVhc3VyeRhwYWxsZXQQQ2FsbAgEVAAESQABJDRwcm9wb3NlX3NwZW5kCAEUdmFsdWVFAQE8QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnkAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAAQJhQdXQgZm9yd2FyZCBhIHN1Z2dlc3Rpb24gZm9yIHNwZW5kaW5nLgBIIyMgRGlzcGF0Y2ggT3JpZ2luADxNdXN0IGJlIHNpZ25lZC4AKCMjIERldGFpbHNhAUEgZGVwb3NpdCBwcm9wb3J0aW9uYWwgdG8gdGhlIHZhbHVlIGlzIHJlc2VydmVkIGFuZCBzbGFzaGVkIGlmIHRoZSBwcm9wb3NhbCBpcyByZWplY3RlZC6wSXQgaXMgcmV0dXJuZWQgb25jZSB0aGUgcHJvcG9zYWwgaXMgYXdhcmRlZC4AOCMjIyBDb21wbGV4aXR5GC0gTygxKQAkIyMgRXZlbnRzAKBFbWl0cyBbYEV2ZW50OjpQcm9wb3NlZGBdIGlmIHN1Y2Nlc3NmdWwuPHJlamVjdF9wcm9wb3NhbAQBLHByb3Bvc2FsX2lkNQEBNFByb3Bvc2FsSW5kZXgAATxgUmVqZWN0IGEgcHJvcG9zZWQgc3BlbmQuAEgjIyBEaXNwYXRjaCBPcmlnaW4AhE11c3QgYmUgW2BDb25maWc6OlJlamVjdE9yaWdpbmBdLgAoIyMgRGV0YWlsc5RUaGUgb3JpZ2luYWwgZGVwb3NpdCB3aWxsIGJlIHNsYXNoZWQuADgjIyMgQ29tcGxleGl0eRgtIE8oMSkAJCMjIEV2ZW50cwCgRW1pdHMgW2BFdmVudDo6UmVqZWN0ZWRgXSBpZiBzdWNjZXNzZnVsLkBhcHByb3ZlX3Byb3Bvc2FsBAEscHJvcG9zYWxfaWQ1AQE0UHJvcG9zYWxJbmRleAACRExBcHByb3ZlIGEgcHJvcG9zYWwuAEgjIyBEaXNwYXRjaCBPcmlnaW4AiE11c3QgYmUgW2BDb25maWc6OkFwcHJvdmVPcmlnaW5gXS4AKCMjIERldGFpbHMATQFBdCBhIGxhdGVyIHRpbWUsIHRoZSBwcm9wb3NhbCB3aWxsIGJlIGFsbG9jYXRlZCB0byB0aGUgYmVuZWZpY2lhcnkgYW5kIHRoZSBvcmlnaW5hbGRkZXBvc2l0IHdpbGwgYmUgcmV0dXJuZWQuADgjIyMgQ29tcGxleGl0eSAgLSBPKDEpLgAkIyMgRXZlbnRzAKRObyBldmVudHMgYXJlIGVtaXR0ZWQgZnJvbSB0aGlzIGRpc3BhdGNoLixzcGVuZF9sb2NhbAgBGGFtb3VudEUBATxCYWxhbmNlT2Y8VCwgST4AASxiZW5lZmljaWFyeQABUEFjY291bnRJZExvb2t1cE9mPFQ+AANEuFByb3Bvc2UgYW5kIGFwcHJvdmUgYSBzcGVuZCBvZiB0cmVhc3VyeSBmdW5kcy4ASCMjIERpc3BhdGNoIE9yaWdpbgBFAU11c3QgYmUgW2BDb25maWc6OlNwZW5kT3JpZ2luYF0gd2l0aCB0aGUgYFN1Y2Nlc3NgIHZhbHVlIGJlaW5nIGF0IGxlYXN0IGBhbW91bnRgLgAsIyMjIERldGFpbHNFAU5PVEU6IEZvciByZWNvcmQta2VlcGluZyBwdXJwb3NlcywgdGhlIHByb3Bvc2VyIGlzIGRlZW1lZCB0byBiZSBlcXVpdmFsZW50IHRvIHRoZTBiZW5lZmljaWFyeS4AOCMjIyBQYXJhbWV0ZXJzQQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IHRvIGJlIHRyYW5zZmVycmVkIGZyb20gdGhlIHRyZWFzdXJ5IHRvIHRoZSBgYmVuZWZpY2lhcnlgLugtIGBiZW5lZmljaWFyeWA6IFRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IGZvciB0aGUgdHJhbnNmZXIuACQjIyBFdmVudHMAtEVtaXRzIFtgRXZlbnQ6OlNwZW5kQXBwcm92ZWRgXSBpZiBzdWNjZXNzZnVsLjxyZW1vdmVfYXBwcm92YWwEASxwcm9wb3NhbF9pZDUBATRQcm9wb3NhbEluZGV4AARULQFGb3JjZSBhIHByZXZpb3VzbHkgYXBwcm92ZWQgcHJvcG9zYWwgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBhcHByb3ZhbCBxdWV1ZS4ASCMjIERpc3BhdGNoIE9yaWdpbgCETXVzdCBiZSBbYENvbmZpZzo6UmVqZWN0T3JpZ2luYF0uACgjIyBEZXRhaWxzAMBUaGUgb3JpZ2luYWwgZGVwb3NpdCB3aWxsIG5vIGxvbmdlciBiZSByZXR1cm5lZC4AOCMjIyBQYXJhbWV0ZXJzoC0gYHByb3Bvc2FsX2lkYDogVGhlIGluZGV4IG9mIGEgcHJvcG9zYWwAOCMjIyBDb21wbGV4aXR5rC0gTyhBKSB3aGVyZSBgQWAgaXMgdGhlIG51bWJlciBvZiBhcHByb3ZhbHMAKCMjIyBFcnJvcnNFAS0gW2BFcnJvcjo6UHJvcG9zYWxOb3RBcHByb3ZlZGBdOiBUaGUgYHByb3Bvc2FsX2lkYCBzdXBwbGllZCB3YXMgbm90IGZvdW5kIGluIHRoZVEBICBhcHByb3ZhbCBxdWV1ZSwgaS5lLiwgdGhlIHByb3Bvc2FsIGhhcyBub3QgYmVlbiBhcHByb3ZlZC4gVGhpcyBjb3VsZCBhbHNvIG1lYW4gdGhlWQEgIHByb3Bvc2FsIGRvZXMgbm90IGV4aXN0IGFsdG9nZXRoZXIsIHRodXMgdGhlcmUgaXMgbm8gd2F5IGl0IHdvdWxkIGhhdmUgYmVlbiBhcHByb3ZlZFQgIGluIHRoZSBmaXJzdCBwbGFjZS4Uc3BlbmQQAShhc3NldF9raW5kkAFEQm94PFQ6OkFzc2V0S2luZD4AARhhbW91bnRFAQFQQXNzZXRCYWxhbmNlT2Y8VCwgST4AASxiZW5lZmljaWFyeQABeEJveDxCZW5lZmljaWFyeUxvb2t1cE9mPFQsIEk+PgABKHZhbGlkX2Zyb23NAQFkT3B0aW9uPEJsb2NrTnVtYmVyRm9yPFQ+PgAFaLhQcm9wb3NlIGFuZCBhcHByb3ZlIGEgc3BlbmQgb2YgdHJlYXN1cnkgZnVuZHMuAEgjIyBEaXNwYXRjaCBPcmlnaW4AHQFNdXN0IGJlIFtgQ29uZmlnOjpTcGVuZE9yaWdpbmBdIHdpdGggdGhlIGBTdWNjZXNzYCB2YWx1ZSBiZWluZyBhdCBsZWFzdFUBYGFtb3VudGAgb2YgYGFzc2V0X2tpbmRgIGluIHRoZSBuYXRpdmUgYXNzZXQuIFRoZSBhbW91bnQgb2YgYGFzc2V0X2tpbmRgIGlzIGNvbnZlcnRlZNRmb3IgYXNzZXJ0aW9uIHVzaW5nIHRoZSBbYENvbmZpZzo6QmFsYW5jZUNvbnZlcnRlcmBdLgAoIyMgRGV0YWlscwBJAUNyZWF0ZSBhbiBhcHByb3ZlZCBzcGVuZCBmb3IgdHJhbnNmZXJyaW5nIGEgc3BlY2lmaWMgYGFtb3VudGAgb2YgYGFzc2V0X2tpbmRgIHRvIGFhAWRlc2lnbmF0ZWQgYmVuZWZpY2lhcnkuIFRoZSBzcGVuZCBtdXN0IGJlIGNsYWltZWQgdXNpbmcgdGhlIGBwYXlvdXRgIGRpc3BhdGNoYWJsZSB3aXRoaW50dGhlIFtgQ29uZmlnOjpQYXlvdXRQZXJpb2RgXS4AOCMjIyBQYXJhbWV0ZXJzFQEtIGBhc3NldF9raW5kYDogQW4gaW5kaWNhdG9yIG9mIHRoZSBzcGVjaWZpYyBhc3NldCBjbGFzcyB0byBiZSBzcGVudC5BAS0gYGFtb3VudGA6IFRoZSBhbW91bnQgdG8gYmUgdHJhbnNmZXJyZWQgZnJvbSB0aGUgdHJlYXN1cnkgdG8gdGhlIGBiZW5lZmljaWFyeWAuuC0gYGJlbmVmaWNpYXJ5YDogVGhlIGJlbmVmaWNpYXJ5IG9mIHRoZSBzcGVuZC5VAS0gYHZhbGlkX2Zyb21gOiBUaGUgYmxvY2sgbnVtYmVyIGZyb20gd2hpY2ggdGhlIHNwZW5kIGNhbiBiZSBjbGFpbWVkLiBJdCBjYW4gcmVmZXIgdG8ZASAgdGhlIHBhc3QgaWYgdGhlIHJlc3VsdGluZyBzcGVuZCBoYXMgbm90IHlldCBleHBpcmVkIGFjY29yZGluZyB0byB0aGVFASAgW2BDb25maWc6OlBheW91dFBlcmlvZGBdLiBJZiBgTm9uZWAsIHRoZSBzcGVuZCBjYW4gYmUgY2xhaW1lZCBpbW1lZGlhdGVseSBhZnRlciwgIGFwcHJvdmFsLgAkIyMgRXZlbnRzAMhFbWl0cyBbYEV2ZW50OjpBc3NldFNwZW5kQXBwcm92ZWRgXSBpZiBzdWNjZXNzZnVsLhhwYXlvdXQEARRpbmRleBABKFNwZW5kSW5kZXgABkw4Q2xhaW0gYSBzcGVuZC4ASCMjIERpc3BhdGNoIE9yaWdpbgA8TXVzdCBiZSBzaWduZWQuACgjIyBEZXRhaWxzAFUBU3BlbmRzIG11c3QgYmUgY2xhaW1lZCB3aXRoaW4gc29tZSB0ZW1wb3JhbCBib3VuZHMuIEEgc3BlbmQgbWF5IGJlIGNsYWltZWQgd2l0aGluIG9uZdRbYENvbmZpZzo6UGF5b3V0UGVyaW9kYF0gZnJvbSB0aGUgYHZhbGlkX2Zyb21gIGJsb2NrLlUBSW4gY2FzZSBvZiBhIHBheW91dCBmYWlsdXJlLCB0aGUgc3BlbmQgc3RhdHVzIG11c3QgYmUgdXBkYXRlZCB3aXRoIHRoZSBgY2hlY2tfc3RhdHVzYNxkaXNwYXRjaGFibGUgYmVmb3JlIHJldHJ5aW5nIHdpdGggdGhlIGN1cnJlbnQgZnVuY3Rpb24uADgjIyMgUGFyYW1ldGVyc2wtIGBpbmRleGA6IFRoZSBzcGVuZCBpbmRleC4AJCMjIEV2ZW50cwCQRW1pdHMgW2BFdmVudDo6UGFpZGBdIGlmIHN1Y2Nlc3NmdWwuMGNoZWNrX3N0YXR1cwQBFGluZGV4EAEoU3BlbmRJbmRleAAHTCkBQ2hlY2sgdGhlIHN0YXR1cyBvZiB0aGUgc3BlbmQgYW5kIHJlbW92ZSBpdCBmcm9tIHRoZSBzdG9yYWdlIGlmIHByb2Nlc3NlZC4ASCMjIERpc3BhdGNoIE9yaWdpbgA8TXVzdCBiZSBzaWduZWQuACgjIyBEZXRhaWxzAAEBVGhlIHN0YXR1cyBjaGVjayBpcyBhIHByZXJlcXVpc2l0ZSBmb3IgcmV0cnlpbmcgYSBmYWlsZWQgcGF5b3V0LkkBSWYgYSBzcGVuZCBoYXMgZWl0aGVyIHN1Y2NlZWRlZCBvciBleHBpcmVkLCBpdCBpcyByZW1vdmVkIGZyb20gdGhlIHN0b3JhZ2UgYnkgdGhpc+xmdW5jdGlvbi4gSW4gc3VjaCBpbnN0YW5jZXMsIHRyYW5zYWN0aW9uIGZlZXMgYXJlIHJlZnVuZGVkLgA4IyMjIFBhcmFtZXRlcnNsLSBgaW5kZXhgOiBUaGUgc3BlbmQgaW5kZXguACQjIyBFdmVudHMA+EVtaXRzIFtgRXZlbnQ6OlBheW1lbnRGYWlsZWRgXSBpZiB0aGUgc3BlbmQgcGF5b3V0IGhhcyBmYWlsZWQuAQFFbWl0cyBbYEV2ZW50OjpTcGVuZFByb2Nlc3NlZGBdIGlmIHRoZSBzcGVuZCBwYXlvdXQgaGFzIHN1Y2NlZWQuKHZvaWRfc3BlbmQEARRpbmRleBABKFNwZW5kSW5kZXgACEB8Vm9pZCBwcmV2aW91c2x5IGFwcHJvdmVkIHNwZW5kLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAIRNdXN0IGJlIFtgQ29uZmlnOjpSZWplY3RPcmlnaW5gXS4AKCMjIERldGFpbHMAHQFBIHNwZW5kIHZvaWQgaXMgb25seSBwb3NzaWJsZSBpZiB0aGUgcGF5b3V0IGhhcyBub3QgYmVlbiBhdHRlbXB0ZWQgeWV0LgA4IyMjIFBhcmFtZXRlcnNsLSBgaW5kZXhgOiBUaGUgc3BlbmQgaW5kZXguACQjIyBFdmVudHMAwEVtaXRzIFtgRXZlbnQ6OkFzc2V0U3BlbmRWb2lkZWRgXSBpZiBzdWNjZXNzZnVsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5tBAg0ZnJhbWVfc3VwcG9ydCBQYWxsZXRJZAAABADxAQEcW3U4OyA4XQAAcQQMPHBhbGxldF90cmVhc3VyeRhwYWxsZXQURXJyb3IIBFQABEkAATBwSW5zdWZmaWNpZW50UHJvcG9zZXJzQmFsYW5jZQAABHhQcm9wb3NlcidzIGJhbGFuY2UgaXMgdG9vIGxvdy4wSW52YWxpZEluZGV4AAEErE5vIHByb3Bvc2FsLCBib3VudHkgb3Igc3BlbmQgYXQgdGhhdCBpbmRleC5AVG9vTWFueUFwcHJvdmFscwACBIBUb28gbWFueSBhcHByb3ZhbHMgaW4gdGhlIHF1ZXVlLlhJbnN1ZmZpY2llbnRQZXJtaXNzaW9uAAMIRQFUaGUgc3BlbmQgb3JpZ2luIGlzIHZhbGlkIGJ1dCB0aGUgYW1vdW50IGl0IGlzIGFsbG93ZWQgdG8gc3BlbmQgaXMgbG93ZXIgdGhhbiB0aGVMYW1vdW50IHRvIGJlIHNwZW50LkxQcm9wb3NhbE5vdEFwcHJvdmVkAAQEfFByb3Bvc2FsIGhhcyBub3QgYmVlbiBhcHByb3ZlZC5YRmFpbGVkVG9Db252ZXJ0QmFsYW5jZQAFBFEBVGhlIGJhbGFuY2Ugb2YgdGhlIGFzc2V0IGtpbmQgaXMgbm90IGNvbnZlcnRpYmxlIHRvIHRoZSBiYWxhbmNlIG9mIHRoZSBuYXRpdmUgYXNzZXQuMFNwZW5kRXhwaXJlZAAGBLBUaGUgc3BlbmQgaGFzIGV4cGlyZWQgYW5kIGNhbm5vdCBiZSBjbGFpbWVkLixFYXJseVBheW91dAAHBKRUaGUgc3BlbmQgaXMgbm90IHlldCBlbGlnaWJsZSBmb3IgcGF5b3V0LkBBbHJlYWR5QXR0ZW1wdGVkAAgEnFRoZSBwYXltZW50IGhhcyBhbHJlYWR5IGJlZW4gYXR0ZW1wdGVkLixQYXlvdXRFcnJvcgAJBMxUaGVyZSB3YXMgc29tZSBpc3N1ZSB3aXRoIHRoZSBtZWNoYW5pc20gb2YgcGF5bWVudC4wTm90QXR0ZW1wdGVkAAoEpFRoZSBwYXlvdXQgd2FzIG5vdCB5ZXQgYXR0ZW1wdGVkL2NsYWltZWQuMEluY29uY2x1c2l2ZQALBMRUaGUgcGF5bWVudCBoYXMgbmVpdGhlciBmYWlsZWQgbm9yIHN1Y2NlZWRlZCB5ZXQuBHhFcnJvciBmb3IgdGhlIHRyZWFzdXJ5IHBhbGxldC51BAw4cGFsbGV0X3V0aWxpdHkYcGFsbGV0EENhbGwEBFQAARgUYmF0Y2gEARRjYWxsc3kEAXxWZWM8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AABIfFNlbmQgYSBiYXRjaCBvZiBkaXNwYXRjaCBjYWxscy4AsE1heSBiZSBjYWxsZWQgZnJvbSBhbnkgb3JpZ2luIGV4Y2VwdCBgTm9uZWAuAF0BLSBgY2FsbHNgOiBUaGUgY2FsbHMgdG8gYmUgZGlzcGF0Y2hlZCBmcm9tIHRoZSBzYW1lIG9yaWdpbi4gVGhlIG51bWJlciBvZiBjYWxsIG11c3Qgbm90OQEgIGV4Y2VlZCB0aGUgY29uc3RhbnQ6IGBiYXRjaGVkX2NhbGxzX2xpbWl0YCAoYXZhaWxhYmxlIGluIGNvbnN0YW50IG1ldGFkYXRhKS4AVQFJZiBvcmlnaW4gaXMgcm9vdCB0aGVuIHRoZSBjYWxscyBhcmUgZGlzcGF0Y2hlZCB3aXRob3V0IGNoZWNraW5nIG9yaWdpbiBmaWx0ZXIuIChUaGlz7GluY2x1ZGVzIGJ5cGFzc2luZyBgZnJhbWVfc3lzdGVtOjpDb25maWc6OkJhc2VDYWxsRmlsdGVyYCkuADQjIyBDb21wbGV4aXR50C0gTyhDKSB3aGVyZSBDIGlzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gYmUgYmF0Y2hlZC4AVQFUaGlzIHdpbGwgcmV0dXJuIGBPa2AgaW4gYWxsIGNpcmN1bXN0YW5jZXMuIFRvIGRldGVybWluZSB0aGUgc3VjY2VzcyBvZiB0aGUgYmF0Y2gsIGFuMQFldmVudCBpcyBkZXBvc2l0ZWQuIElmIGEgY2FsbCBmYWlsZWQgYW5kIHRoZSBiYXRjaCB3YXMgaW50ZXJydXB0ZWQsIHRoZW4gdGhlVQFgQmF0Y2hJbnRlcnJ1cHRlZGAgZXZlbnQgaXMgZGVwb3NpdGVkLCBhbG9uZyB3aXRoIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCBjYWxscyBtYWRlTQFhbmQgdGhlIGVycm9yIG9mIHRoZSBmYWlsZWQgY2FsbC4gSWYgYWxsIHdlcmUgc3VjY2Vzc2Z1bCwgdGhlbiB0aGUgYEJhdGNoQ29tcGxldGVkYExldmVudCBpcyBkZXBvc2l0ZWQuNGFzX2Rlcml2YXRpdmUIARRpbmRleNwBDHUxNgABEGNhbGx9BAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABNNxTZW5kIGEgY2FsbCB0aHJvdWdoIGFuIGluZGV4ZWQgcHNldWRvbnltIG9mIHRoZSBzZW5kZXIuAFUBRmlsdGVyIGZyb20gb3JpZ2luIGFyZSBwYXNzZWQgYWxvbmcuIFRoZSBjYWxsIHdpbGwgYmUgZGlzcGF0Y2hlZCB3aXRoIGFuIG9yaWdpbiB3aGljaLx1c2UgdGhlIHNhbWUgZmlsdGVyIGFzIHRoZSBvcmlnaW4gb2YgdGhpcyBjYWxsLgBFAU5PVEU6IElmIHlvdSBuZWVkIHRvIGVuc3VyZSB0aGF0IGFueSBhY2NvdW50LWJhc2VkIGZpbHRlcmluZyBpcyBub3QgaG9ub3JlZCAoaS5lLmEBYmVjYXVzZSB5b3UgZXhwZWN0IGBwcm94eWAgdG8gaGF2ZSBiZWVuIHVzZWQgcHJpb3IgaW4gdGhlIGNhbGwgc3RhY2sgYW5kIHlvdSBkbyBub3Qgd2FudFEBdGhlIGNhbGwgcmVzdHJpY3Rpb25zIHRvIGFwcGx5IHRvIGFueSBzdWItYWNjb3VudHMpLCB0aGVuIHVzZSBgYXNfbXVsdGlfdGhyZXNob2xkXzFgfGluIHRoZSBNdWx0aXNpZyBwYWxsZXQgaW5zdGVhZC4A9E5PVEU6IFByaW9yIHRvIHZlcnNpb24gKjEyLCB0aGlzIHdhcyBjYWxsZWQgYGFzX2xpbWl0ZWRfc3ViYC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLiRiYXRjaF9hbGwEARRjYWxsc3kEAXxWZWM8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAI07FNlbmQgYSBiYXRjaCBvZiBkaXNwYXRjaCBjYWxscyBhbmQgYXRvbWljYWxseSBleGVjdXRlIHRoZW0uIQFUaGUgd2hvbGUgdHJhbnNhY3Rpb24gd2lsbCByb2xsYmFjayBhbmQgZmFpbCBpZiBhbnkgb2YgdGhlIGNhbGxzIGZhaWxlZC4AsE1heSBiZSBjYWxsZWQgZnJvbSBhbnkgb3JpZ2luIGV4Y2VwdCBgTm9uZWAuAF0BLSBgY2FsbHNgOiBUaGUgY2FsbHMgdG8gYmUgZGlzcGF0Y2hlZCBmcm9tIHRoZSBzYW1lIG9yaWdpbi4gVGhlIG51bWJlciBvZiBjYWxsIG11c3Qgbm90OQEgIGV4Y2VlZCB0aGUgY29uc3RhbnQ6IGBiYXRjaGVkX2NhbGxzX2xpbWl0YCAoYXZhaWxhYmxlIGluIGNvbnN0YW50IG1ldGFkYXRhKS4AVQFJZiBvcmlnaW4gaXMgcm9vdCB0aGVuIHRoZSBjYWxscyBhcmUgZGlzcGF0Y2hlZCB3aXRob3V0IGNoZWNraW5nIG9yaWdpbiBmaWx0ZXIuIChUaGlz7GluY2x1ZGVzIGJ5cGFzc2luZyBgZnJhbWVfc3lzdGVtOjpDb25maWc6OkJhc2VDYWxsRmlsdGVyYCkuADQjIyBDb21wbGV4aXR50C0gTyhDKSB3aGVyZSBDIGlzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gYmUgYmF0Y2hlZC4sZGlzcGF0Y2hfYXMIASRhc19vcmlnaW5ZBwFUQm94PFQ6OlBhbGxldHNPcmlnaW4+AAEQY2FsbH0EAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAMYyERpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYSBwcm92aWRlZCBvcmlnaW4uAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfUm9vdF8uADQjIyBDb21wbGV4aXR5HC0gTygxKS4sZm9yY2VfYmF0Y2gEARRjYWxsc3kEAXxWZWM8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAQ0fFNlbmQgYSBiYXRjaCBvZiBkaXNwYXRjaCBjYWxscy7UVW5saWtlIGBiYXRjaGAsIGl0IGFsbG93cyBlcnJvcnMgYW5kIHdvbid0IGludGVycnVwdC4AsE1heSBiZSBjYWxsZWQgZnJvbSBhbnkgb3JpZ2luIGV4Y2VwdCBgTm9uZWAuAF0BLSBgY2FsbHNgOiBUaGUgY2FsbHMgdG8gYmUgZGlzcGF0Y2hlZCBmcm9tIHRoZSBzYW1lIG9yaWdpbi4gVGhlIG51bWJlciBvZiBjYWxsIG11c3Qgbm90OQEgIGV4Y2VlZCB0aGUgY29uc3RhbnQ6IGBiYXRjaGVkX2NhbGxzX2xpbWl0YCAoYXZhaWxhYmxlIGluIGNvbnN0YW50IG1ldGFkYXRhKS4ATQFJZiBvcmlnaW4gaXMgcm9vdCB0aGVuIHRoZSBjYWxscyBhcmUgZGlzcGF0Y2ggd2l0aG91dCBjaGVja2luZyBvcmlnaW4gZmlsdGVyLiAoVGhpc+xpbmNsdWRlcyBieXBhc3NpbmcgYGZyYW1lX3N5c3RlbTo6Q29uZmlnOjpCYXNlQ2FsbEZpbHRlcmApLgA0IyMgQ29tcGxleGl0edAtIE8oQykgd2hlcmUgQyBpcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIGJlIGJhdGNoZWQuLHdpdGhfd2VpZ2h0CAEQY2FsbH0EAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEYd2VpZ2h0KAEYV2VpZ2h0AAUYxERpc3BhdGNoIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGEgc3BlY2lmaWVkIHdlaWdodC4ALQFUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGNoZWNrIHRoZSB3ZWlnaHQgb2YgdGhlIGNhbGwsIGFuZCBpbnN0ZWFkIGFsbG93cyB0aGW4Um9vdCBvcmlnaW4gdG8gc3BlY2lmeSB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy55BAAAAn0EAH0ECDxoeWRyYWR4X3J1bnRpbWUsUnVudGltZUNhbGwAAeQYU3lzdGVtBAC1AwGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTeXN0ZW0sIFJ1bnRpbWU+AAEAJFRpbWVzdGFtcAQA9QMBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VGltZXN0YW1wLCBSdW50aW1lPgADACBCYWxhbmNlcwQAOQQBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QmFsYW5jZXMsIFJ1bnRpbWU+AAcAXE11bHRpVHJhbnNhY3Rpb25QYXltZW50BABJBAHxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNdWx0aVRyYW5zYWN0aW9uUGF5bWVudCwgUnVudGltZT4AywAgVHJlYXN1cnkEAGkEAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFRyZWFzdXJ5LCBSdW50aW1lPgALABxVdGlsaXR5BAB1BAGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxVdGlsaXR5LCBSdW50aW1lPgANACBQcmVpbWFnZQQAgQQBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UHJlaW1hZ2UsIFJ1bnRpbWU+AA8AIElkZW50aXR5BACFBAG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxJZGVudGl0eSwgUnVudGltZT4AEQAkRGVtb2NyYWN5BAAtBQG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxEZW1vY3JhY3ksIFJ1bnRpbWU+ABMAJEVsZWN0aW9ucwQARQUBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RWxlY3Rpb25zLCBSdW50aW1lPgAVABxDb3VuY2lsBABNBQGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDb3VuY2lsLCBSdW50aW1lPgAXAEhUZWNobmljYWxDb21taXR0ZWUEAFEFAd0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFRlY2huaWNhbENvbW1pdHRlZSwgUnVudGltZT4AGQAQVGlwcwQAVQUBpQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VGlwcywgUnVudGltZT4AGwAUUHJveHkEAFkFAakBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFByb3h5LCBSdW50aW1lPgAdACBNdWx0aXNpZwQAYQUBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TXVsdGlzaWcsIFJ1bnRpbWU+AB8AHFVuaXF1ZXMEAGkFAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFVuaXF1ZXMsIFJ1bnRpbWU+ACAASFN0YXRlVHJpZU1pZ3JhdGlvbgQAcQUB3QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U3RhdGVUcmllTWlncmF0aW9uLCBSdW50aW1lPgAjADRBc3NldFJlZ2lzdHJ5BACJBQHJAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxBc3NldFJlZ2lzdHJ5LCBSdW50aW1lPgAzABhDbGFpbXMEAJkFAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENsYWltcywgUnVudGltZT4ANQA4R2VuZXNpc0hpc3RvcnkEAKEFAc0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEdlbmVzaXNIaXN0b3J5LCBSdW50aW1lPgA3ACBPbW5pcG9vbAQApQUBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8T21uaXBvb2wsIFJ1bnRpbWU+ADsAQFRyYW5zYWN0aW9uUGF1c2UEAK0FAdUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFRyYW5zYWN0aW9uUGF1c2UsIFJ1bnRpbWU+ADwAGER1c3RlcgQAsQUBrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RHVzdGVyLCBSdW50aW1lPgA9AExPbW5pcG9vbFdhcmVob3VzZUxNBAC1BQHhAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxPbW5pcG9vbFdhcmVob3VzZUxNLCBSdW50aW1lPgA+AFxPbW5pcG9vbExpcXVpZGl0eU1pbmluZwQAuQUB8QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8T21uaXBvb2xMaXF1aWRpdHlNaW5pbmcsIFJ1bnRpbWU+AD8ADE9UQwQAvQUBoQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8T1RDLCBSdW50aW1lPgBAADhDaXJjdWl0QnJlYWtlcgQAwQUBzQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q2lyY3VpdEJyZWFrZXIsIFJ1bnRpbWU+AEEAGFJvdXRlcgQAxQUBrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Um91dGVyLCBSdW50aW1lPgBDACxEeW5hbWljRmVlcwQAzQUBwQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RHluYW1pY0ZlZXMsIFJ1bnRpbWU+AEQAHFN0YWtpbmcEANEFAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFN0YWtpbmcsIFJ1bnRpbWU+AEUAKFN0YWJsZXN3YXAEANUFAb0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFN0YWJsZXN3YXAsIFJ1bnRpbWU+AEYAFEJvbmRzBADZBQGpAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxCb25kcywgUnVudGltZT4ARwA4T3RjU2V0dGxlbWVudHMEAN0FAc0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE90Y1NldHRsZW1lbnRzLCBSdW50aW1lPgBIAAxMQlAEAOEFAaEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPExCUCwgUnVudGltZT4ASQAMWFlLBADpBQGhAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxYWUssIFJ1bnRpbWU+AEoAJFJlZmVycmFscwQA7QUBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UmVmZXJyYWxzLCBSdW50aW1lPgBLABhUb2tlbnMEAPEFAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFRva2VucywgUnVudGltZT4ATQAoQ3VycmVuY2llcwQA9QUBvQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q3VycmVuY2llcywgUnVudGltZT4ATwAcVmVzdGluZwQA+QUBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VmVzdGluZywgUnVudGltZT4AUQAMRVZNBAABBgGhAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxFVk0sIFJ1bnRpbWU+AFoAIEV0aGVyZXVtBAARBgG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxFdGhlcmV1bSwgUnVudGltZT4AXAAsRVZNQWNjb3VudHMEADkGAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEVWTUFjY291bnRzLCBSdW50aW1lPgBdAEhYWUtMaXF1aWRpdHlNaW5pbmcEAD0GAd0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFhZS0xpcXVpZGl0eU1pbmluZywgUnVudGltZT4AXwA4WFlLV2FyZWhvdXNlTE0EAEEGAc0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFhZS1dhcmVob3VzZUxNLCBSdW50aW1lPgBgADhSZWxheUNoYWluSW5mbwQARQYBzQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UmVsYXlDaGFpbkluZm8sIFJ1bnRpbWU+AMkADERDQQQASQYBoQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RENBLCBSdW50aW1lPgBCACRTY2hlZHVsZXIEAFUGAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFNjaGVkdWxlciwgUnVudGltZT4ABQA8UGFyYWNoYWluU3lzdGVtBABZBgHRAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQYXJhY2hhaW5TeXN0ZW0sIFJ1bnRpbWU+AGcANFBhcmFjaGFpbkluZm8EAI0GAckBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFjaGFpbkluZm8sIFJ1bnRpbWU+AGkALFBvbGthZG90WGNtBACRBgHBAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQb2xrYWRvdFhjbSwgUnVudGltZT4AawAoQ3VtdWx1c1hjbQQALQcBvQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q3VtdWx1c1hjbSwgUnVudGltZT4AbQAwTWVzc2FnZVF1ZXVlBAAxBwHFAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNZXNzYWdlUXVldWUsIFJ1bnRpbWU+AHIAHE9ybWxYY20EADUHAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9ybWxYY20sIFJ1bnRpbWU+AIcAHFhUb2tlbnMEADkHAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFhUb2tlbnMsIFJ1bnRpbWU+AIkARENvbGxhdG9yU2VsZWN0aW9uBABFBwHZAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDb2xsYXRvclNlbGVjdGlvbiwgUnVudGltZT4AowAcU2Vzc2lvbgQASQcBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U2Vzc2lvbiwgUnVudGltZT4ApQAkRW1hT3JhY2xlBABVBwG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxFbWFPcmFjbGUsIFJ1bnRpbWU+AMoAAIEEDDxwYWxsZXRfcHJlaW1hZ2UYcGFsbGV0EENhbGwEBFQAARQ0bm90ZV9wcmVpbWFnZQQBFGJ5dGVzOAEcVmVjPHU4PgAAEHRSZWdpc3RlciBhIHByZWltYWdlIG9uLWNoYWluLgBVAUlmIHRoZSBwcmVpbWFnZSB3YXMgcHJldmlvdXNseSByZXF1ZXN0ZWQsIG5vIGZlZXMgb3IgZGVwb3NpdHMgYXJlIHRha2VuIGZvciBwcm92aWRpbmdVAXRoZSBwcmVpbWFnZS4gT3RoZXJ3aXNlLCBhIGRlcG9zaXQgaXMgdGFrZW4gcHJvcG9ydGlvbmFsIHRvIHRoZSBzaXplIG9mIHRoZSBwcmVpbWFnZS48dW5ub3RlX3ByZWltYWdlBAEQaGFzaDQBHFQ6Okhhc2gAARjcQ2xlYXIgYW4gdW5yZXF1ZXN0ZWQgcHJlaW1hZ2UgZnJvbSB0aGUgcnVudGltZSBzdG9yYWdlLgD8SWYgYGxlbmAgaXMgcHJvdmlkZWQsIHRoZW4gaXQgd2lsbCBiZSBhIG11Y2ggY2hlYXBlciBvcGVyYXRpb24uAAEBLSBgaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBwcmVpbWFnZSB0byBiZSByZW1vdmVkIGZyb20gdGhlIHN0b3JlLrgtIGBsZW5gOiBUaGUgbGVuZ3RoIG9mIHRoZSBwcmVpbWFnZSBvZiBgaGFzaGAuQHJlcXVlc3RfcHJlaW1hZ2UEARBoYXNoNAEcVDo6SGFzaAACEEEBUmVxdWVzdCBhIHByZWltYWdlIGJlIHVwbG9hZGVkIHRvIHRoZSBjaGFpbiB3aXRob3V0IHBheWluZyBhbnkgZmVlcyBvciBkZXBvc2l0cy4AVQFJZiB0aGUgcHJlaW1hZ2UgcmVxdWVzdHMgaGFzIGFscmVhZHkgYmVlbiBwcm92aWRlZCBvbi1jaGFpbiwgd2UgdW5yZXNlcnZlIGFueSBkZXBvc2l0OQFhIHVzZXIgbWF5IGhhdmUgcGFpZCwgYW5kIHRha2UgdGhlIGNvbnRyb2wgb2YgdGhlIHByZWltYWdlIG91dCBvZiB0aGVpciBoYW5kcy5IdW5yZXF1ZXN0X3ByZWltYWdlBAEQaGFzaDQBHFQ6Okhhc2gAAwy8Q2xlYXIgYSBwcmV2aW91c2x5IG1hZGUgcmVxdWVzdCBmb3IgYSBwcmVpbWFnZS4ALQFOT1RFOiBUSElTIE1VU1QgTk9UIEJFIENBTExFRCBPTiBgaGFzaGAgTU9SRSBUSU1FUyBUSEFOIGByZXF1ZXN0X3ByZWltYWdlYC44ZW5zdXJlX3VwZGF0ZWQEARhoYXNoZXMRAgEwVmVjPFQ6Okhhc2g+AAQMxEVuc3VyZSB0aGF0IHRoZSBhIGJ1bGsgb2YgcHJlLWltYWdlcyBpcyB1cGdyYWRlZC4APQFUaGUgY2FsbGVyIHBheXMgbm8gZmVlIGlmIGF0IGxlYXN0IDkwJSBvZiBwcmUtaW1hZ2VzIHdlcmUgc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLoUEDDxwYWxsZXRfaWRlbnRpdHkYcGFsbGV0EENhbGwEBFQAAVg0YWRkX3JlZ2lzdHJhcgQBHGFjY291bnQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAAHHhBZGQgYSByZWdpc3RyYXIgdG8gdGhlIHN5c3RlbS4A/FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBUOjpSZWdpc3RyYXJPcmlnaW5gLgCoLSBgYWNjb3VudGA6IHRoZSBhY2NvdW50IG9mIHRoZSByZWdpc3RyYXIuAJRFbWl0cyBgUmVnaXN0cmFyQWRkZWRgIGlmIHN1Y2Nlc3NmdWwuMHNldF9pZGVudGl0eQQBEGluZm+JBAFsQm94PFQ6OklkZW50aXR5SW5mb3JtYXRpb24+AAEoKQFTZXQgYW4gYWNjb3VudCdzIGlkZW50aXR5IGluZm9ybWF0aW9uIGFuZCByZXNlcnZlIHRoZSBhcHByb3ByaWF0ZSBkZXBvc2l0LgBVAUlmIHRoZSBhY2NvdW50IGFscmVhZHkgaGFzIGlkZW50aXR5IGluZm9ybWF0aW9uLCB0aGUgZGVwb3NpdCBpcyB0YWtlbiBhcyBwYXJ0IHBheW1lbnRQZm9yIHRoZSBuZXcgZGVwb3NpdC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgCMLSBgaW5mb2A6IFRoZSBpZGVudGl0eSBpbmZvcm1hdGlvbi4AiEVtaXRzIGBJZGVudGl0eVNldGAgaWYgc3VjY2Vzc2Z1bC4gc2V0X3N1YnMEARBzdWJzEQUBZFZlYzwoVDo6QWNjb3VudElkLCBEYXRhKT4AAiSMU2V0IHRoZSBzdWItYWNjb3VudHMgb2YgdGhlIHNlbmRlci4AVQFQYXltZW50OiBBbnkgYWdncmVnYXRlIGJhbGFuY2UgcmVzZXJ2ZWQgYnkgcHJldmlvdXMgYHNldF9zdWJzYCBjYWxscyB3aWxsIGJlIHJldHVybmVkLQFhbmQgYW4gYW1vdW50IGBTdWJBY2NvdW50RGVwb3NpdGAgd2lsbCBiZSByZXNlcnZlZCBmb3IgZWFjaCBpdGVtIGluIGBzdWJzYC4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkJGlkZW50aXR5LgCwLSBgc3Vic2A6IFRoZSBpZGVudGl0eSdzIChuZXcpIHN1Yi1hY2NvdW50cy44Y2xlYXJfaWRlbnRpdHkAAyA5AUNsZWFyIGFuIGFjY291bnQncyBpZGVudGl0eSBpbmZvIGFuZCBhbGwgc3ViLWFjY291bnRzIGFuZCByZXR1cm4gYWxsIGRlcG9zaXRzLgDsUGF5bWVudDogQWxsIHJlc2VydmVkIGJhbGFuY2VzIG9uIHRoZSBhY2NvdW50IGFyZSByZXR1cm5lZC4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkJGlkZW50aXR5LgCYRW1pdHMgYElkZW50aXR5Q2xlYXJlZGAgaWYgc3VjY2Vzc2Z1bC5EcmVxdWVzdF9qdWRnZW1lbnQIASRyZWdfaW5kZXg1AQE4UmVnaXN0cmFySW5kZXgAARxtYXhfZmVlRQEBMEJhbGFuY2VPZjxUPgAEQJRSZXF1ZXN0IGEganVkZ2VtZW50IGZyb20gYSByZWdpc3RyYXIuAFUBUGF5bWVudDogQXQgbW9zdCBgbWF4X2ZlZWAgd2lsbCBiZSByZXNlcnZlZCBmb3IgcGF5bWVudCB0byB0aGUgcmVnaXN0cmFyIGlmIGp1ZGdlbWVudBhnaXZlbi4ANQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYVByZWdpc3RlcmVkIGlkZW50aXR5LgAdAS0gYHJlZ19pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGp1ZGdlbWVudCBpcyByZXF1ZXN0ZWQuVQEtIGBtYXhfZmVlYDogVGhlIG1heGltdW0gZmVlIHRoYXQgbWF5IGJlIHBhaWQuIFRoaXMgc2hvdWxkIGp1c3QgYmUgYXV0by1wb3B1bGF0ZWQgYXM6ADBgYGBub2NvbXBpbGW4U2VsZjo6cmVnaXN0cmFycygpLmdldChyZWdfaW5kZXgpLnVud3JhcCgpLmZlZQxgYGAApEVtaXRzIGBKdWRnZW1lbnRSZXF1ZXN0ZWRgIGlmIHN1Y2Nlc3NmdWwuOGNhbmNlbF9yZXF1ZXN0BAEkcmVnX2luZGV4EAE4UmVnaXN0cmFySW5kZXgABShoQ2FuY2VsIGEgcHJldmlvdXMgcmVxdWVzdC4A+FBheW1lbnQ6IEEgcHJldmlvdXNseSByZXNlcnZlZCBkZXBvc2l0IGlzIHJldHVybmVkIG9uIHN1Y2Nlc3MuADUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGFQcmVnaXN0ZXJlZCBpZGVudGl0eS4ARQEtIGByZWdfaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBqdWRnZW1lbnQgaXMgbm8gbG9uZ2VyIHJlcXVlc3RlZC4ArEVtaXRzIGBKdWRnZW1lbnRVbnJlcXVlc3RlZGAgaWYgc3VjY2Vzc2Z1bC4cc2V0X2ZlZQgBFGluZGV4NQEBOFJlZ2lzdHJhckluZGV4AAEMZmVlRQEBMEJhbGFuY2VPZjxUPgAGHBkBU2V0IHRoZSBmZWUgcmVxdWlyZWQgZm9yIGEganVkZ2VtZW50IHRvIGJlIHJlcXVlc3RlZCBmcm9tIGEgcmVnaXN0cmFyLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSgb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgaW5kZXhgLgD0LSBgaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBmZWUgaXMgdG8gYmUgc2V0LlQtIGBmZWVgOiB0aGUgbmV3IGZlZS44c2V0X2FjY291bnRfaWQIARRpbmRleDUBAThSZWdpc3RyYXJJbmRleAABDG5ldwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAccvENoYW5nZSB0aGUgYWNjb3VudCBhc3NvY2lhdGVkIHdpdGggYSByZWdpc3RyYXIuAFUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGUgYWNjb3VudKBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGluZGV4IGlzIGBpbmRleGAuAPQtIGBpbmRleGA6IHRoZSBpbmRleCBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGZlZSBpcyB0byBiZSBzZXQucC0gYG5ld2A6IHRoZSBuZXcgYWNjb3VudCBJRC4oc2V0X2ZpZWxkcwgBFGluZGV4NQEBOFJlZ2lzdHJhckluZGV4AAEYZmllbGRzMAEpATxUOjpJZGVudGl0eUluZm9ybWF0aW9uIGFzIElkZW50aXR5SW5mb3JtYXRpb25Qcm92aWRlcj46OgpGaWVsZHNJZGVudGlmaWVyAAgcqFNldCB0aGUgZmllbGQgaW5mb3JtYXRpb24gZm9yIGEgcmVnaXN0cmFyLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSgb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgaW5kZXhgLgD0LSBgaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBmZWUgaXMgdG8gYmUgc2V0Lg0BLSBgZmllbGRzYDogdGhlIGZpZWxkcyB0aGF0IHRoZSByZWdpc3RyYXIgY29uY2VybnMgdGhlbXNlbHZlcyB3aXRoLkRwcm92aWRlX2p1ZGdlbWVudBABJHJlZ19pbmRleDUBAThSZWdpc3RyYXJJbmRleAABGHRhcmdldAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEkanVkZ2VtZW50GQUBXEp1ZGdlbWVudDxCYWxhbmNlT2Y8VD4+AAEgaWRlbnRpdHk0ARxUOjpIYXNoAAk8uFByb3ZpZGUgYSBqdWRnZW1lbnQgZm9yIGFuIGFjY291bnQncyBpZGVudGl0eS4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBhY2NvdW50sG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgaW5kZXggaXMgYHJlZ19pbmRleGAuACEBLSBgcmVnX2luZGV4YDogdGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UganVkZ2VtZW50IGlzIGJlaW5nIG1hZGUuVQEtIGB0YXJnZXRgOiB0aGUgYWNjb3VudCB3aG9zZSBpZGVudGl0eSB0aGUganVkZ2VtZW50IGlzIHVwb24uIFRoaXMgbXVzdCBiZSBhbiBhY2NvdW50dCAgd2l0aCBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuSQEtIGBqdWRnZW1lbnRgOiB0aGUganVkZ2VtZW50IG9mIHRoZSByZWdpc3RyYXIgb2YgaW5kZXggYHJlZ19pbmRleGAgYWJvdXQgYHRhcmdldGAuXQEtIGBpZGVudGl0eWA6IFRoZSBoYXNoIG9mIHRoZSBbYElkZW50aXR5SW5mb3JtYXRpb25Qcm92aWRlcmBdIGZvciB0aGF0IHRoZSBqdWRnZW1lbnQgaXMsICBwcm92aWRlZC4AsE5vdGU6IEp1ZGdlbWVudHMgZG8gbm90IGFwcGx5IHRvIGEgdXNlcm5hbWUuAJRFbWl0cyBgSnVkZ2VtZW50R2l2ZW5gIGlmIHN1Y2Nlc3NmdWwuNGtpbGxfaWRlbnRpdHkEARh0YXJnZXQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAKMEEBUmVtb3ZlIGFuIGFjY291bnQncyBpZGVudGl0eSBhbmQgc3ViLWFjY291bnQgaW5mb3JtYXRpb24gYW5kIHNsYXNoIHRoZSBkZXBvc2l0cy4AYQFQYXltZW50OiBSZXNlcnZlZCBiYWxhbmNlcyBmcm9tIGBzZXRfc3Vic2AgYW5kIGBzZXRfaWRlbnRpdHlgIGFyZSBzbGFzaGVkIGFuZCBoYW5kbGVkIGJ5RQFgU2xhc2hgLiBWZXJpZmljYXRpb24gcmVxdWVzdCBkZXBvc2l0cyBhcmUgbm90IHJldHVybmVkOyB0aGV5IHNob3VsZCBiZSBjYW5jZWxsZWSAbWFudWFsbHkgdXNpbmcgYGNhbmNlbF9yZXF1ZXN0YC4A+FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IG1hdGNoIGBUOjpGb3JjZU9yaWdpbmAuAFUBLSBgdGFyZ2V0YDogdGhlIGFjY291bnQgd2hvc2UgaWRlbnRpdHkgdGhlIGp1ZGdlbWVudCBpcyB1cG9uLiBUaGlzIG11c3QgYmUgYW4gYWNjb3VudHQgIHdpdGggYSByZWdpc3RlcmVkIGlkZW50aXR5LgCURW1pdHMgYElkZW50aXR5S2lsbGVkYCBpZiBzdWNjZXNzZnVsLhxhZGRfc3ViCAEMc3ViAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkYXRhlQQBEERhdGEACxysQWRkIHRoZSBnaXZlbiBhY2NvdW50IHRvIHRoZSBzZW5kZXIncyBzdWJzLgBdAVBheW1lbnQ6IEJhbGFuY2UgcmVzZXJ2ZWQgYnkgYSBwcmV2aW91cyBgc2V0X3N1YnNgIGNhbGwgZm9yIG9uZSBzdWIgd2lsbCBiZSByZXBhdHJpYXRlZDh0byB0aGUgc2VuZGVyLgBhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWRYc3ViIGlkZW50aXR5IG9mIGBzdWJgLihyZW5hbWVfc3ViCAEMc3ViAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkYXRhlQQBEERhdGEADBDMQWx0ZXIgdGhlIGFzc29jaWF0ZWQgbmFtZSBvZiB0aGUgZ2l2ZW4gc3ViLWFjY291bnQuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZFhzdWIgaWRlbnRpdHkgb2YgYHN1YmAuKHJlbW92ZV9zdWIEAQxzdWIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgANHMBSZW1vdmUgdGhlIGdpdmVuIGFjY291bnQgZnJvbSB0aGUgc2VuZGVyJ3Mgc3Vicy4AXQFQYXltZW50OiBCYWxhbmNlIHJlc2VydmVkIGJ5IGEgcHJldmlvdXMgYHNldF9zdWJzYCBjYWxsIGZvciBvbmUgc3ViIHdpbGwgYmUgcmVwYXRyaWF0ZWQ4dG8gdGhlIHNlbmRlci4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkWHN1YiBpZGVudGl0eSBvZiBgc3ViYC4gcXVpdF9zdWIADiiMUmVtb3ZlIHRoZSBzZW5kZXIgYXMgYSBzdWItYWNjb3VudC4AXQFQYXltZW50OiBCYWxhbmNlIHJlc2VydmVkIGJ5IGEgcHJldmlvdXMgYHNldF9zdWJzYCBjYWxsIGZvciBvbmUgc3ViIHdpbGwgYmUgcmVwYXRyaWF0ZWS0dG8gdGhlIHNlbmRlciAoKm5vdCogdGhlIG9yaWdpbmFsIGRlcG9zaXRvcikuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZDxzdXBlci1pZGVudGl0eS4ARQFOT1RFOiBUaGlzIHNob3VsZCBub3Qgbm9ybWFsbHkgYmUgdXNlZCwgYnV0IGlzIHByb3ZpZGVkIGluIHRoZSBjYXNlIHRoYXQgdGhlIG5vbi0RAWNvbnRyb2xsZXIgb2YgYW4gYWNjb3VudCBpcyBtYWxpY2lvdXNseSByZWdpc3RlcmVkIGFzIGEgc3ViLWFjY291bnQuWGFkZF91c2VybmFtZV9hdXRob3JpdHkMASRhdXRob3JpdHkAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGHN1ZmZpeDgBHFZlYzx1OD4AAShhbGxvY2F0aW9uEAEMdTMyAA8QVQFBZGQgYW4gYEFjY291bnRJZGAgd2l0aCBwZXJtaXNzaW9uIHRvIGdyYW50IHVzZXJuYW1lcyB3aXRoIGEgZ2l2ZW4gYHN1ZmZpeGAgYXBwZW5kZWQuAFkBVGhlIGF1dGhvcml0eSBjYW4gZ3JhbnQgdXAgdG8gYGFsbG9jYXRpb25gIHVzZXJuYW1lcy4gVG8gdG9wIHVwIHRoZWlyIGFsbG9jYXRpb24sIHRoZXlJAXNob3VsZCBqdXN0IGlzc3VlIChvciByZXF1ZXN0IHZpYSBnb3Zlcm5hbmNlKSBhIG5ldyBgYWRkX3VzZXJuYW1lX2F1dGhvcml0eWAgY2FsbC5kcmVtb3ZlX3VzZXJuYW1lX2F1dGhvcml0eQQBJGF1dGhvcml0eQABUEFjY291bnRJZExvb2t1cE9mPFQ+ABAExFJlbW92ZSBgYXV0aG9yaXR5YCBmcm9tIHRoZSB1c2VybmFtZSBhdXRob3JpdGllcy5Ac2V0X3VzZXJuYW1lX2ZvcgwBDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEgdXNlcm5hbWU4ARxWZWM8dTg+AAEkc2lnbmF0dXJlHQUBcE9wdGlvbjxUOjpPZmZjaGFpblNpZ25hdHVyZT4AESQNAVNldCB0aGUgdXNlcm5hbWUgZm9yIGB3aG9gLiBNdXN0IGJlIGNhbGxlZCBieSBhIHVzZXJuYW1lIGF1dGhvcml0eS4AVQFUaGUgYXV0aG9yaXR5IG11c3QgaGF2ZSBhbiBgYWxsb2NhdGlvbmAuIFVzZXJzIGNhbiBlaXRoZXIgcHJlLXNpZ24gdGhlaXIgdXNlcm5hbWVzIG9ySGFjY2VwdCB0aGVtIGxhdGVyLgA8VXNlcm5hbWVzIG11c3Q62CAgLSBPbmx5IGNvbnRhaW4gbG93ZXJjYXNlIEFTQ0lJIGNoYXJhY3RlcnMgb3IgZGlnaXRzLjUBICAtIFdoZW4gY29tYmluZWQgd2l0aCB0aGUgc3VmZml4IG9mIHRoZSBpc3N1aW5nIGF1dGhvcml0eSBiZSBfbGVzcyB0aGFuXyB0aGVgICAgIGBNYXhVc2VybmFtZUxlbmd0aGAuPGFjY2VwdF91c2VybmFtZQQBIHVzZXJuYW1lpAEsVXNlcm5hbWU8VD4AEghNAUFjY2VwdCBhIGdpdmVuIHVzZXJuYW1lIHRoYXQgYW4gYGF1dGhvcml0eWAgZ3JhbnRlZC4gVGhlIGNhbGwgbXVzdCBpbmNsdWRlIHRoZSBmdWxsiHVzZXJuYW1lLCBhcyBpbiBgdXNlcm5hbWUuc3VmZml4YC5ccmVtb3ZlX2V4cGlyZWRfYXBwcm92YWwEASB1c2VybmFtZaQBLFVzZXJuYW1lPFQ+ABMMYQFSZW1vdmUgYW4gZXhwaXJlZCB1c2VybmFtZSBhcHByb3ZhbC4gVGhlIHVzZXJuYW1lIHdhcyBhcHByb3ZlZCBieSBhbiBhdXRob3JpdHkgYnV0IG5ldmVyVQFhY2NlcHRlZCBieSB0aGUgdXNlciBhbmQgbXVzdCBub3cgYmUgYmV5b25kIGl0cyBleHBpcmF0aW9uLiBUaGUgY2FsbCBtdXN0IGluY2x1ZGUgdGhlnGZ1bGwgdXNlcm5hbWUsIGFzIGluIGB1c2VybmFtZS5zdWZmaXhgLlBzZXRfcHJpbWFyeV91c2VybmFtZQQBIHVzZXJuYW1lpAEsVXNlcm5hbWU8VD4AFAQxAVNldCBhIGdpdmVuIHVzZXJuYW1lIGFzIHRoZSBwcmltYXJ5LiBUaGUgdXNlcm5hbWUgc2hvdWxkIGluY2x1ZGUgdGhlIHN1ZmZpeC5gcmVtb3ZlX2RhbmdsaW5nX3VzZXJuYW1lBAEgdXNlcm5hbWWkASxVc2VybmFtZTxUPgAVCFUBUmVtb3ZlIGEgdXNlcm5hbWUgdGhhdCBjb3JyZXNwb25kcyB0byBhbiBhY2NvdW50IHdpdGggbm8gaWRlbnRpdHkuIEV4aXN0cyB3aGVuIGEgdXNlcsBnZXRzIGEgdXNlcm5hbWUgYnV0IHRoZW4gY2FsbHMgYGNsZWFyX2lkZW50aXR5YC4EcElkZW50aXR5IHBhbGxldCBkZWNsYXJhdGlvbi6JBAw8cGFsbGV0X2lkZW50aXR5GGxlZ2FjeTBJZGVudGl0eUluZm8EKEZpZWxkTGltaXQAACQBKGFkZGl0aW9uYWyNBAGQQm91bmRlZFZlYzwoRGF0YSwgRGF0YSksIEZpZWxkTGltaXQ+AAEcZGlzcGxheZUEARBEYXRhAAEUbGVnYWyVBAEQRGF0YQABDHdlYpUEARBEYXRhAAEQcmlvdJUEARBEYXRhAAEUZW1haWyVBAEQRGF0YQABPHBncF9maW5nZXJwcmludA0FAUBPcHRpb248W3U4OyAyMF0+AAEUaW1hZ2WVBAEQRGF0YQABHHR3aXR0ZXKVBAEQRGF0YQAAjQQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGRBARTAAAEAAkFARhWZWM8VD4AAJEEAAAECJUElQQAlQQMPHBhbGxldF9pZGVudGl0eRR0eXBlcxBEYXRhAAGYEE5vbmUAAAAQUmF3MAQAmQQAAAEAEFJhdzEEAJ0EAAACABBSYXcyBAChBAAAAwAQUmF3MwQApQQAAAQAEFJhdzQEAEgAAAUAEFJhdzUEAKkEAAAGABBSYXc2BACtBAAABwAQUmF3NwQAsQQAAAgAEFJhdzgEAPEBAAAJABBSYXc5BAC1BAAACgAUUmF3MTAEALkEAAALABRSYXcxMQQAvQQAAAwAFFJhdzEyBADBBAAADQAUUmF3MTMEAMUEAAAOABRSYXcxNAQAyQQAAA8AFFJhdzE1BADNBAAAEAAUUmF3MTYEANUCAAARABRSYXcxNwQA0QQAABIAFFJhdzE4BADVBAAAEwAUUmF3MTkEANkEAAAUABRSYXcyMAQAQQEAABUAFFJhdzIxBADdBAAAFgAUUmF3MjIEAOEEAAAXABRSYXcyMwQA5QQAABgAFFJhdzI0BADpBAAAGQAUUmF3MjUEAO0EAAAaABRSYXcyNgQA8QQAABsAFFJhdzI3BAD1BAAAHAAUUmF3MjgEAPkEAAAdABRSYXcyOQQA/QQAAB4AFFJhdzMwBAABBQAAHwAUUmF3MzEEAAUFAAAgABRSYXczMgQABAAAIQAsQmxha2VUd28yNTYEAAQAACIAGFNoYTI1NgQABAAAIwAkS2VjY2FrMjU2BAAEAAAkACxTaGFUaHJlZTI1NgQABAAAJQAAmQQAAAMAAAAACACdBAAAAwEAAAAIAKEEAAADAgAAAAgApQQAAAMDAAAACACpBAAAAwUAAAAIAK0EAAADBgAAAAgAsQQAAAMHAAAACAC1BAAAAwkAAAAIALkEAAADCgAAAAgAvQQAAAMLAAAACADBBAAAAwwAAAAIAMUEAAADDQAAAAgAyQQAAAMOAAAACADNBAAAAw8AAAAIANEEAAADEQAAAAgA1QQAAAMSAAAACADZBAAAAxMAAAAIAN0EAAADFQAAAAgA4QQAAAMWAAAACADlBAAAAxcAAAAIAOkEAAADGAAAAAgA7QQAAAMZAAAACADxBAAAAxoAAAAIAPUEAAADGwAAAAgA+QQAAAMcAAAACAD9BAAAAx0AAAAIAAEFAAADHgAAAAgABQUAAAMfAAAACAAJBQAAApEEAA0FBBhPcHRpb24EBFQBQQEBCBBOb25lAAAAEFNvbWUEAEEBAAABAAARBQAAAhUFABUFAAAECACVBAAZBQw8cGFsbGV0X2lkZW50aXR5FHR5cGVzJEp1ZGdlbWVudAQcQmFsYW5jZQEYARwcVW5rbm93bgAAABxGZWVQYWlkBAAYARxCYWxhbmNlAAEAKFJlYXNvbmFibGUAAgAkS25vd25Hb29kAAMAJE91dE9mRGF0ZQAEAChMb3dRdWFsaXR5AAUAJEVycm9uZW91cwAGAAAdBQQYT3B0aW9uBARUASEFAQgQTm9uZQAAABBTb21lBAAhBQAAAQAAIQUIKHNwX3J1bnRpbWU4TXVsdGlTaWduYXR1cmUAAQwcRWQyNTUxOQQAJQUBSGVkMjU1MTk6OlNpZ25hdHVyZQAAABxTcjI1NTE5BAAlBQFIc3IyNTUxOTo6U2lnbmF0dXJlAAEAFEVjZHNhBAApBQFAZWNkc2E6OlNpZ25hdHVyZQACAAAlBQAAA0AAAAAIACkFAAADQQAAAAgALQUMQHBhbGxldF9kZW1vY3JhY3kYcGFsbGV0EENhbGwEBFQAAVAccHJvcG9zZQgBIHByb3Bvc2FsMQUBQEJvdW5kZWRDYWxsT2Y8VD4AARR2YWx1ZUUBATBCYWxhbmNlT2Y8VD4AACScUHJvcG9zZSBhIHNlbnNpdGl2ZSBhY3Rpb24gdG8gYmUgdGFrZW4uABUBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0gGhhdmUgZnVuZHMgdG8gY292ZXIgdGhlIGRlcG9zaXQuANQtIGBwcm9wb3NhbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIHByb3Bvc2FsIHByZWltYWdlLhUBLSBgdmFsdWVgOiBUaGUgYW1vdW50IG9mIGRlcG9zaXQgKG11c3QgYmUgYXQgbGVhc3QgYE1pbmltdW1EZXBvc2l0YCkuAERFbWl0cyBgUHJvcG9zZWRgLhhzZWNvbmQEASBwcm9wb3NhbDUBASRQcm9wSW5kZXgAARi0U2lnbmFscyBhZ3JlZW1lbnQgd2l0aCBhIHBhcnRpY3VsYXIgcHJvcG9zYWwuAAEBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlchEBbXVzdCBoYXZlIGZ1bmRzIHRvIGNvdmVyIHRoZSBkZXBvc2l0LCBlcXVhbCB0byB0aGUgb3JpZ2luYWwgZGVwb3NpdC4AyC0gYHByb3Bvc2FsYDogVGhlIGluZGV4IG9mIHRoZSBwcm9wb3NhbCB0byBzZWNvbmQuEHZvdGUIASRyZWZfaW5kZXg1AQE8UmVmZXJlbmR1bUluZGV4AAEQdm90ZbABZEFjY291bnRWb3RlPEJhbGFuY2VPZjxUPj4AAhwxAVZvdGUgaW4gYSByZWZlcmVuZHVtLiBJZiBgdm90ZS5pc19heWUoKWAsIHRoZSB2b3RlIGlzIHRvIGVuYWN0IHRoZSBwcm9wb3NhbDu4b3RoZXJ3aXNlIGl0IGlzIGEgdm90ZSB0byBrZWVwIHRoZSBzdGF0dXMgcXVvLgDIVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4A3C0gYHJlZl9pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVmZXJlbmR1bSB0byB2b3RlIGZvci6ELSBgdm90ZWA6IFRoZSB2b3RlIGNvbmZpZ3VyYXRpb24uQGVtZXJnZW5jeV9jYW5jZWwEASRyZWZfaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgAAyBNAVNjaGVkdWxlIGFuIGVtZXJnZW5jeSBjYW5jZWxsYXRpb24gb2YgYSByZWZlcmVuZHVtLiBDYW5ub3QgaGFwcGVuIHR3aWNlIHRvIHRoZSBzYW1lLHJlZmVyZW5kdW0uAPhUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBDYW5jZWxsYXRpb25PcmlnaW5gLgDQLWByZWZfaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHJlZmVyZW5kdW0gdG8gY2FuY2VsLgA8V2VpZ2h0OiBgTygxKWAuQGV4dGVybmFsX3Byb3Bvc2UEASBwcm9wb3NhbDEFAUBCb3VuZGVkQ2FsbE9mPFQ+AAQYLQFTY2hlZHVsZSBhIHJlZmVyZW5kdW0gdG8gYmUgdGFibGVkIG9uY2UgaXQgaXMgbGVnYWwgdG8gc2NoZWR1bGUgYW4gZXh0ZXJuYWwscmVmZXJlbmR1bS4A6FRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgYEV4dGVybmFsT3JpZ2luYC4A1C0gYHByb3Bvc2FsX2hhc2hgOiBUaGUgcHJlaW1hZ2UgaGFzaCBvZiB0aGUgcHJvcG9zYWwuZGV4dGVybmFsX3Byb3Bvc2VfbWFqb3JpdHkEASBwcm9wb3NhbDEFAUBCb3VuZGVkQ2FsbE9mPFQ+AAUsVQFTY2hlZHVsZSBhIG1ham9yaXR5LWNhcnJpZXMgcmVmZXJlbmR1bSB0byBiZSB0YWJsZWQgbmV4dCBvbmNlIGl0IGlzIGxlZ2FsIHRvIHNjaGVkdWxlXGFuIGV4dGVybmFsIHJlZmVyZW5kdW0uAOxUaGUgZGlzcGF0Y2ggb2YgdGhpcyBjYWxsIG11c3QgYmUgYEV4dGVybmFsTWFqb3JpdHlPcmlnaW5gLgDULSBgcHJvcG9zYWxfaGFzaGA6IFRoZSBwcmVpbWFnZSBoYXNoIG9mIHRoZSBwcm9wb3NhbC4ASQFVbmxpa2UgYGV4dGVybmFsX3Byb3Bvc2VgLCBibGFja2xpc3RpbmcgaGFzIG5vIGVmZmVjdCBvbiB0aGlzIGFuZCBpdCBtYXkgcmVwbGFjZSBhmHByZS1zY2hlZHVsZWQgYGV4dGVybmFsX3Byb3Bvc2VgIGNhbGwuADhXZWlnaHQ6IGBPKDEpYGBleHRlcm5hbF9wcm9wb3NlX2RlZmF1bHQEASBwcm9wb3NhbDEFAUBCb3VuZGVkQ2FsbE9mPFQ+AAYsRQFTY2hlZHVsZSBhIG5lZ2F0aXZlLXR1cm5vdXQtYmlhcyByZWZlcmVuZHVtIHRvIGJlIHRhYmxlZCBuZXh0IG9uY2UgaXQgaXMgbGVnYWwgdG+Ac2NoZWR1bGUgYW4gZXh0ZXJuYWwgcmVmZXJlbmR1bS4A6FRoZSBkaXNwYXRjaCBvZiB0aGlzIGNhbGwgbXVzdCBiZSBgRXh0ZXJuYWxEZWZhdWx0T3JpZ2luYC4A1C0gYHByb3Bvc2FsX2hhc2hgOiBUaGUgcHJlaW1hZ2UgaGFzaCBvZiB0aGUgcHJvcG9zYWwuAEkBVW5saWtlIGBleHRlcm5hbF9wcm9wb3NlYCwgYmxhY2tsaXN0aW5nIGhhcyBubyBlZmZlY3Qgb24gdGhpcyBhbmQgaXQgbWF5IHJlcGxhY2UgYZhwcmUtc2NoZWR1bGVkIGBleHRlcm5hbF9wcm9wb3NlYCBjYWxsLgA4V2VpZ2h0OiBgTygxKWAoZmFzdF90cmFjawwBNHByb3Bvc2FsX2hhc2g0ARxUOjpIYXNoAAE0dm90aW5nX3BlcmlvZBABREJsb2NrTnVtYmVyRm9yPFQ+AAEUZGVsYXkQAURCbG9ja051bWJlckZvcjxUPgAHQE0BU2NoZWR1bGUgdGhlIGN1cnJlbnRseSBleHRlcm5hbGx5LXByb3Bvc2VkIG1ham9yaXR5LWNhcnJpZXMgcmVmZXJlbmR1bSB0byBiZSB0YWJsZWRhAWltbWVkaWF0ZWx5LiBJZiB0aGVyZSBpcyBubyBleHRlcm5hbGx5LXByb3Bvc2VkIHJlZmVyZW5kdW0gY3VycmVudGx5LCBvciBpZiB0aGVyZSBpcyBvbmXoYnV0IGl0IGlzIG5vdCBhIG1ham9yaXR5LWNhcnJpZXMgcmVmZXJlbmR1bSB0aGVuIGl0IGZhaWxzLgDQVGhlIGRpc3BhdGNoIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBGYXN0VHJhY2tPcmlnaW5gLgD0LSBgcHJvcG9zYWxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjdXJyZW50IGV4dGVybmFsIHByb3Bvc2FsLl0BLSBgdm90aW5nX3BlcmlvZGA6IFRoZSBwZXJpb2QgdGhhdCBpcyBhbGxvd2VkIGZvciB2b3Rpbmcgb24gdGhpcyBwcm9wb3NhbC4gSW5jcmVhc2VkIHRviAlNdXN0IGJlIGFsd2F5cyBncmVhdGVyIHRoYW4gemVyby41AQlGb3IgYEZhc3RUcmFja09yaWdpbmAgbXVzdCBiZSBlcXVhbCBvciBncmVhdGVyIHRoYW4gYEZhc3RUcmFja1ZvdGluZ1BlcmlvZGAuUQEtIGBkZWxheWA6IFRoZSBudW1iZXIgb2YgYmxvY2sgYWZ0ZXIgdm90aW5nIGhhcyBlbmRlZCBpbiBhcHByb3ZhbCBhbmQgdGhpcyBzaG91bGQgYmW4ICBlbmFjdGVkLiBUaGlzIGRvZXNuJ3QgaGF2ZSBhIG1pbmltdW0gYW1vdW50LgBARW1pdHMgYFN0YXJ0ZWRgLgA4V2VpZ2h0OiBgTygxKWA0dmV0b19leHRlcm5hbAQBNHByb3Bvc2FsX2hhc2g0ARxUOjpIYXNoAAgkuFZldG8gYW5kIGJsYWNrbGlzdCB0aGUgZXh0ZXJuYWwgcHJvcG9zYWwgaGFzaC4A2FRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgYFZldG9PcmlnaW5gLgAtAS0gYHByb3Bvc2FsX2hhc2hgOiBUaGUgcHJlaW1hZ2UgaGFzaCBvZiB0aGUgcHJvcG9zYWwgdG8gdmV0byBhbmQgYmxhY2tsaXN0LgA8RW1pdHMgYFZldG9lZGAuAPxXZWlnaHQ6IGBPKFYgKyBsb2coVikpYCB3aGVyZSBWIGlzIG51bWJlciBvZiBgZXhpc3RpbmcgdmV0b2Vyc2BEY2FuY2VsX3JlZmVyZW5kdW0EASRyZWZfaW5kZXg1AQE8UmVmZXJlbmR1bUluZGV4AAkcUFJlbW92ZSBhIHJlZmVyZW5kdW0uAMBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4A1C0gYHJlZl9pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVmZXJlbmR1bSB0byBjYW5jZWwuAEQjIFdlaWdodDogYE8oMSlgLiBkZWxlZ2F0ZQwBCHRvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAShjb252aWN0aW9uPQUBKENvbnZpY3Rpb24AARxiYWxhbmNlGAEwQmFsYW5jZU9mPFQ+AApQOQFEZWxlZ2F0ZSB0aGUgdm90aW5nIHBvd2VyICh3aXRoIHNvbWUgZ2l2ZW4gY29udmljdGlvbikgb2YgdGhlIHNlbmRpbmcgYWNjb3VudC4AVQFUaGUgYmFsYW5jZSBkZWxlZ2F0ZWQgaXMgbG9ja2VkIGZvciBhcyBsb25nIGFzIGl0J3MgZGVsZWdhdGVkLCBhbmQgdGhlcmVhZnRlciBmb3IgdGhlyHRpbWUgYXBwcm9wcmlhdGUgZm9yIHRoZSBjb252aWN0aW9uJ3MgbG9jayBwZXJpb2QuAF0BVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXywgYW5kIHRoZSBzaWduaW5nIGFjY291bnQgbXVzdCBlaXRoZXI6dCAgLSBiZSBkZWxlZ2F0aW5nIGFscmVhZHk7IG9yWQEgIC0gaGF2ZSBubyB2b3RpbmcgYWN0aXZpdHkgKGlmIHRoZXJlIGlzLCB0aGVuIGl0IHdpbGwgbmVlZCB0byBiZSByZW1vdmVkL2NvbnNvbGlkYXRlZJQgICAgdGhyb3VnaCBgcmVhcF92b3RlYCBvciBgdW52b3RlYCkuAEUBLSBgdG9gOiBUaGUgYWNjb3VudCB3aG9zZSB2b3RpbmcgdGhlIGB0YXJnZXRgIGFjY291bnQncyB2b3RpbmcgcG93ZXIgd2lsbCBmb2xsb3cuVQEtIGBjb252aWN0aW9uYDogVGhlIGNvbnZpY3Rpb24gdGhhdCB3aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBkZWxlZ2F0ZWQgdm90ZXMuIFdoZW4gdGhlQQEgIGFjY291bnQgaXMgdW5kZWxlZ2F0ZWQsIHRoZSBmdW5kcyB3aWxsIGJlIGxvY2tlZCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgcGVyaW9kLmEBLSBgYmFsYW5jZWA6IFRoZSBhbW91bnQgb2YgdGhlIGFjY291bnQncyBiYWxhbmNlIHRvIGJlIHVzZWQgaW4gZGVsZWdhdGluZy4gVGhpcyBtdXN0IG5vdLQgIGJlIG1vcmUgdGhhbiB0aGUgYWNjb3VudCdzIGN1cnJlbnQgYmFsYW5jZS4ASEVtaXRzIGBEZWxlZ2F0ZWRgLgA9AVdlaWdodDogYE8oUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiByZWZlcmVuZHVtcyB0aGUgdm90ZXIgZGVsZWdhdGluZyB0byBoYXPIICB2b3RlZCBvbi4gV2VpZ2h0IGlzIGNoYXJnZWQgYXMgaWYgbWF4aW11bSB2b3Rlcy4odW5kZWxlZ2F0ZQALMMxVbmRlbGVnYXRlIHRoZSB2b3RpbmcgcG93ZXIgb2YgdGhlIHNlbmRpbmcgYWNjb3VudC4AXQFUb2tlbnMgbWF5IGJlIHVubG9ja2VkIGZvbGxvd2luZyBvbmNlIGFuIGFtb3VudCBvZiB0aW1lIGNvbnNpc3RlbnQgd2l0aCB0aGUgbG9jayBwZXJpb2Tcb2YgdGhlIGNvbnZpY3Rpb24gd2l0aCB3aGljaCB0aGUgZGVsZWdhdGlvbiB3YXMgaXNzdWVkLgBFAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzaWduaW5nIGFjY291bnQgbXVzdCBiZVRjdXJyZW50bHkgZGVsZWdhdGluZy4AUEVtaXRzIGBVbmRlbGVnYXRlZGAuAD0BV2VpZ2h0OiBgTyhSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHJlZmVyZW5kdW1zIHRoZSB2b3RlciBkZWxlZ2F0aW5nIHRvIGhhc8ggIHZvdGVkIG9uLiBXZWlnaHQgaXMgY2hhcmdlZCBhcyBpZiBtYXhpbXVtIHZvdGVzLlhjbGVhcl9wdWJsaWNfcHJvcG9zYWxzAAwUcENsZWFycyBhbGwgcHVibGljIHByb3Bvc2Fscy4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgA8V2VpZ2h0OiBgTygxKWAuGHVubG9jawQBGHRhcmdldAABUEFjY291bnRJZExvb2t1cE9mPFQ+AA0coFVubG9jayB0b2tlbnMgdGhhdCBoYXZlIGFuIGV4cGlyZWQgbG9jay4AyFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uALgtIGB0YXJnZXRgOiBUaGUgYWNjb3VudCB0byByZW1vdmUgdGhlIGxvY2sgb24uALxXZWlnaHQ6IGBPKFIpYCB3aXRoIFIgbnVtYmVyIG9mIHZvdGUgb2YgdGFyZ2V0LixyZW1vdmVfdm90ZQQBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4AA5sfFJlbW92ZSBhIHZvdGUgZm9yIGEgcmVmZXJlbmR1bS4ADElmOogtIHRoZSByZWZlcmVuZHVtIHdhcyBjYW5jZWxsZWQsIG9yfC0gdGhlIHJlZmVyZW5kdW0gaXMgb25nb2luZywgb3KQLSB0aGUgcmVmZXJlbmR1bSBoYXMgZW5kZWQgc3VjaCB0aGF0/CAgLSB0aGUgdm90ZSBvZiB0aGUgYWNjb3VudCB3YXMgaW4gb3Bwb3NpdGlvbiB0byB0aGUgcmVzdWx0OyBvctQgIC0gdGhlcmUgd2FzIG5vIGNvbnZpY3Rpb24gdG8gdGhlIGFjY291bnQncyB2b3RlOyBvcoQgIC0gdGhlIGFjY291bnQgbWFkZSBhIHNwbGl0IHZvdGVdAS4uLnRoZW4gdGhlIHZvdGUgaXMgcmVtb3ZlZCBjbGVhbmx5IGFuZCBhIGZvbGxvd2luZyBjYWxsIHRvIGB1bmxvY2tgIG1heSByZXN1bHQgaW4gbW9yZVhmdW5kcyBiZWluZyBhdmFpbGFibGUuAKhJZiwgaG93ZXZlciwgdGhlIHJlZmVyZW5kdW0gaGFzIGVuZGVkIGFuZDrsLSBpdCBmaW5pc2hlZCBjb3JyZXNwb25kaW5nIHRvIHRoZSB2b3RlIG9mIHRoZSBhY2NvdW50LCBhbmTcLSB0aGUgYWNjb3VudCBtYWRlIGEgc3RhbmRhcmQgdm90ZSB3aXRoIGNvbnZpY3Rpb24sIGFuZLwtIHRoZSBsb2NrIHBlcmlvZCBvZiB0aGUgY29udmljdGlvbiBpcyBub3Qgb3ZlclkBLi4udGhlbiB0aGUgbG9jayB3aWxsIGJlIGFnZ3JlZ2F0ZWQgaW50byB0aGUgb3ZlcmFsbCBhY2NvdW50J3MgbG9jaywgd2hpY2ggbWF5IGludm9sdmVZASpvdmVybG9ja2luZyogKHdoZXJlIHRoZSB0d28gbG9ja3MgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgbG9jayB0aGF0IGlzIHRoZSBtYXhpbXVt5G9mIGJvdGggdGhlIGFtb3VudCBsb2NrZWQgYW5kIHRoZSB0aW1lIGlzIGl0IGxvY2tlZCBmb3IpLgBJAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8sIGFuZCB0aGUgc2lnbmVyIG11c3QgaGF2ZSBhIHZvdGWIcmVnaXN0ZXJlZCBmb3IgcmVmZXJlbmR1bSBgaW5kZXhgLgD0LSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgcmVmZXJlbmR1bSBvZiB0aGUgdm90ZSB0byBiZSByZW1vdmVkLgBVAVdlaWdodDogYE8oUiArIGxvZyBSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHJlZmVyZW5kYSB0aGF0IGB0YXJnZXRgIGhhcyB2b3RlZCBvbi7YICBXZWlnaHQgaXMgY2FsY3VsYXRlZCBmb3IgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZvdGUuRHJlbW92ZV9vdGhlcl92b3RlCAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRpbmRleBABPFJlZmVyZW5kdW1JbmRleAAPPHxSZW1vdmUgYSB2b3RlIGZvciBhIHJlZmVyZW5kdW0uAE0BSWYgdGhlIGB0YXJnZXRgIGlzIGVxdWFsIHRvIHRoZSBzaWduZXIsIHRoZW4gdGhpcyBmdW5jdGlvbiBpcyBleGFjdGx5IGVxdWl2YWxlbnQgdG8tAWByZW1vdmVfdm90ZWAuIElmIG5vdCBlcXVhbCB0byB0aGUgc2lnbmVyLCB0aGVuIHRoZSB2b3RlIG11c3QgaGF2ZSBleHBpcmVkLFUBZWl0aGVyIGJlY2F1c2UgdGhlIHJlZmVyZW5kdW0gd2FzIGNhbmNlbGxlZCwgYmVjYXVzZSB0aGUgdm90ZXIgbG9zdCB0aGUgcmVmZXJlbmR1bSBvcphiZWNhdXNlIHRoZSBjb252aWN0aW9uIHBlcmlvZCBpcyBvdmVyLgDIVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ATQEtIGB0YXJnZXRgOiBUaGUgYWNjb3VudCBvZiB0aGUgdm90ZSB0byBiZSByZW1vdmVkOyB0aGlzIGFjY291bnQgbXVzdCBoYXZlIHZvdGVkIGZvclQgIHJlZmVyZW5kdW0gYGluZGV4YC70LSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgcmVmZXJlbmR1bSBvZiB0aGUgdm90ZSB0byBiZSByZW1vdmVkLgBVAVdlaWdodDogYE8oUiArIGxvZyBSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHJlZmVyZW5kYSB0aGF0IGB0YXJnZXRgIGhhcyB2b3RlZCBvbi7YICBXZWlnaHQgaXMgY2FsY3VsYXRlZCBmb3IgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZvdGUuJGJsYWNrbGlzdAgBNHByb3Bvc2FsX2hhc2g0ARxUOjpIYXNoAAE8bWF5YmVfcmVmX2luZGV4zQEBXE9wdGlvbjxSZWZlcmVuZHVtSW5kZXg+ABA8RQFQZXJtYW5lbnRseSBwbGFjZSBhIHByb3Bvc2FsIGludG8gdGhlIGJsYWNrbGlzdC4gVGhpcyBwcmV2ZW50cyBpdCBmcm9tIGV2ZXIgYmVpbmc8cHJvcG9zZWQgYWdhaW4uAFEBSWYgY2FsbGVkIG9uIGEgcXVldWVkIHB1YmxpYyBvciBleHRlcm5hbCBwcm9wb3NhbCwgdGhlbiB0aGlzIHdpbGwgcmVzdWx0IGluIGl0IGJlaW5nUQFyZW1vdmVkLiBJZiB0aGUgYHJlZl9pbmRleGAgc3VwcGxpZWQgaXMgYW4gYWN0aXZlIHJlZmVyZW5kdW0gd2l0aCB0aGUgcHJvcG9zYWwgaGFzaCxodGhlbiBpdCB3aWxsIGJlIGNhbmNlbGxlZC4A7FRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgYEJsYWNrbGlzdE9yaWdpbmAuAPgtIGBwcm9wb3NhbF9oYXNoYDogVGhlIHByb3Bvc2FsIGhhc2ggdG8gYmxhY2tsaXN0IHBlcm1hbmVudGx5LkUBLSBgcmVmX2luZGV4YDogQW4gb25nb2luZyByZWZlcmVuZHVtIHdob3NlIGhhc2ggaXMgYHByb3Bvc2FsX2hhc2hgLCB3aGljaCB3aWxsIGJlKGNhbmNlbGxlZC4AQQFXZWlnaHQ6IGBPKHApYCAodGhvdWdoIGFzIHRoaXMgaXMgYW4gaGlnaC1wcml2aWxlZ2UgZGlzcGF0Y2gsIHdlIGFzc3VtZSBpdCBoYXMgYVAgIHJlYXNvbmFibGUgdmFsdWUpLjxjYW5jZWxfcHJvcG9zYWwEAShwcm9wX2luZGV4NQEBJFByb3BJbmRleAARHEhSZW1vdmUgYSBwcm9wb3NhbC4AAQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBDYW5jZWxQcm9wb3NhbE9yaWdpbmAuANAtIGBwcm9wX2luZGV4YDogVGhlIGluZGV4IG9mIHRoZSBwcm9wb3NhbCB0byBjYW5jZWwuAORXZWlnaHQ6IGBPKHApYCB3aGVyZSBgcCA9IFB1YmxpY1Byb3BzOjo8VD46OmRlY29kZV9sZW4oKWAwc2V0X21ldGFkYXRhCAEUb3duZXK4ATRNZXRhZGF0YU93bmVyAAEobWF5YmVfaGFzaEEFATxPcHRpb248VDo6SGFzaD4AEjzYU2V0IG9yIGNsZWFyIGEgbWV0YWRhdGEgb2YgYSBwcm9wb3NhbCBvciBhIHJlZmVyZW5kdW0uACxQYXJhbWV0ZXJzOswtIGBvcmlnaW5gOiBNdXN0IGNvcnJlc3BvbmQgdG8gdGhlIGBNZXRhZGF0YU93bmVyYC49ASAgICAtIGBFeHRlcm5hbE9yaWdpbmAgZm9yIGFuIGV4dGVybmFsIHByb3Bvc2FsIHdpdGggdGhlIGBTdXBlck1ham9yaXR5QXBwcm92ZWBAICAgICAgdGhyZXNob2xkLlkBICAgIC0gYEV4dGVybmFsRGVmYXVsdE9yaWdpbmAgZm9yIGFuIGV4dGVybmFsIHByb3Bvc2FsIHdpdGggdGhlIGBTdXBlck1ham9yaXR5QWdhaW5zdGBAICAgICAgdGhyZXNob2xkLkUBICAgIC0gYEV4dGVybmFsTWFqb3JpdHlPcmlnaW5gIGZvciBhbiBleHRlcm5hbCBwcm9wb3NhbCB3aXRoIHRoZSBgU2ltcGxlTWFqb3JpdHlgQCAgICAgIHRocmVzaG9sZC7IICAgIC0gYFNpZ25lZGAgYnkgYSBjcmVhdG9yIGZvciBhIHB1YmxpYyBwcm9wb3NhbC70ICAgIC0gYFNpZ25lZGAgdG8gY2xlYXIgYSBtZXRhZGF0YSBmb3IgYSBmaW5pc2hlZCByZWZlcmVuZHVtLuQgICAgLSBgUm9vdGAgdG8gc2V0IGEgbWV0YWRhdGEgZm9yIGFuIG9uZ29pbmcgcmVmZXJlbmR1bS60LSBgb3duZXJgOiBhbiBpZGVudGlmaWVyIG9mIGEgbWV0YWRhdGEgb3duZXIuUQEtIGBtYXliZV9oYXNoYDogVGhlIGhhc2ggb2YgYW4gb24tY2hhaW4gc3RvcmVkIHByZWltYWdlLiBgTm9uZWAgdG8gY2xlYXIgYSBtZXRhZGF0YS5EZm9yY2VfcmVtb3ZlX3ZvdGUIARh0YXJnZXQAAWxjcmF0ZTo6QWNjb3VudElkTG9va3VwT2Y8VD4AARRpbmRleBABdGNyYXRlOjp0eXBlczo6UmVmZXJlbmR1bUluZGV4ABM8uEFsbG93IHRvIGZvcmNlIHJlbW92ZSBhIHZvdGUgZm9yIGEgcmVmZXJlbmR1bS4AKQFTYW1lIGFzIGByZW1vdmVfb3RoZXJfdm90ZWAsIGV4Y2VwdCB0aGUgc2NvcGUgaXMgb3ZlcnJpZGVuIGJ5IGZvcmNlZCBmbGFnLvRUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBWb3RlUmVtb3ZhbE9yaWdpbmAuAKxPbmx5IGFsbG93ZWQgaWYgdGhlIHJlZmVyZW5kdW0gaXMgZmluaXNoZWQuAMhUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBNAS0gYHRhcmdldGA6IFRoZSBhY2NvdW50IG9mIHRoZSB2b3RlIHRvIGJlIHJlbW92ZWQ7IHRoaXMgYWNjb3VudCBtdXN0IGhhdmUgdm90ZWQgZm9yVCAgcmVmZXJlbmR1bSBgaW5kZXhgLvQtIGBpbmRleGA6IFRoZSBpbmRleCBvZiByZWZlcmVuZHVtIG9mIHRoZSB2b3RlIHRvIGJlIHJlbW92ZWQuAFUBV2VpZ2h0OiBgTyhSICsgbG9nIFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcmVmZXJlbmRhIHRoYXQgYHRhcmdldGAgaGFzIHZvdGVkIG9uLtggIFdlaWdodCBpcyBjYWxjdWxhdGVkIGZvciB0aGUgbWF4aW11bSBudW1iZXIgb2Ygdm90ZS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuMQUQNGZyYW1lX3N1cHBvcnQYdHJhaXRzJHByZWltYWdlcxxCb3VuZGVkCARUAX0EBEgBNQUBDBhMZWdhY3kEARBoYXNoNAEkSDo6T3V0cHV0AAAAGElubGluZQQAOQUBNEJvdW5kZWRJbmxpbmUAAQAYTG9va3VwCAEQaGFzaDQBJEg6Ok91dHB1dAABDGxlbhABDHUzMgACAAA1BQwoc3BfcnVudGltZRh0cmFpdHMsQmxha2VUd28yNTYAAAAAOQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AAA9BQxAcGFsbGV0X2RlbW9jcmFjeShjb252aWN0aW9uKENvbnZpY3Rpb24AARwQTm9uZQAAACBMb2NrZWQxeAABACBMb2NrZWQyeAACACBMb2NrZWQzeAADACBMb2NrZWQ0eAAEACBMb2NrZWQ1eAAFACBMb2NrZWQ2eAAGAABBBQQYT3B0aW9uBARUATQBCBBOb25lAAAAEFNvbWUEADQAAAEAAEUFDGRwYWxsZXRfZWxlY3Rpb25zX3BocmFnbWVuGHBhbGxldBBDYWxsBARUAAEYEHZvdGUIARR2b3Rlc5kDAURWZWM8VDo6QWNjb3VudElkPgABFHZhbHVlRQEBMEJhbGFuY2VPZjxUPgAATFkBVm90ZSBmb3IgYSBzZXQgb2YgY2FuZGlkYXRlcyBmb3IgdGhlIHVwY29taW5nIHJvdW5kIG9mIGVsZWN0aW9uLiBUaGlzIGNhbiBiZSBjYWxsZWQgdG/gc2V0IHRoZSBpbml0aWFsIHZvdGVzLCBvciB1cGRhdGUgYWxyZWFkeSBleGlzdGluZyB2b3Rlcy4AXQFVcG9uIGluaXRpYWwgdm90aW5nLCBgdmFsdWVgIHVuaXRzIG9mIGB3aG9gJ3MgYmFsYW5jZSBpcyBsb2NrZWQgYW5kIGEgZGVwb3NpdCBhbW91bnQgaXNNAXJlc2VydmVkLiBUaGUgZGVwb3NpdCBpcyBiYXNlZCBvbiB0aGUgbnVtYmVyIG9mIHZvdGVzIGFuZCBjYW4gYmUgdXBkYXRlZCBvdmVyIHRpbWUuAExUaGUgYHZvdGVzYCBzaG91bGQ6RCAgLSBub3QgYmUgZW1wdHkuVQEgIC0gYmUgbGVzcyB0aGFuIHRoZSBudW1iZXIgb2YgcG9zc2libGUgY2FuZGlkYXRlcy4gTm90ZSB0aGF0IGFsbCBjdXJyZW50IG1lbWJlcnMgYW5kEQEgICAgcnVubmVycy11cCBhcmUgYWxzbyBhdXRvbWF0aWNhbGx5IGNhbmRpZGF0ZXMgZm9yIHRoZSBuZXh0IHJvdW5kLgBJAUlmIGB2YWx1ZWAgaXMgbW9yZSB0aGFuIGB3aG9gJ3MgZnJlZSBiYWxhbmNlLCB0aGVuIHRoZSBtYXhpbXVtIG9mIHRoZSB0d28gaXMgdXNlZC4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgc2lnbmVkLgAsIyMjIFdhcm5pbmcAVQFJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNhbGxlciB0byAqKk5PVCoqIHBsYWNlIGFsbCBvZiB0aGVpciBiYWxhbmNlIGludG8gdGhlqGxvY2sgYW5kIGtlZXAgc29tZSBmb3IgZnVydGhlciBvcGVyYXRpb25zLjByZW1vdmVfdm90ZXIAARRsUmVtb3ZlIGBvcmlnaW5gIGFzIGEgdm90ZXIuALhUaGlzIHJlbW92ZXMgdGhlIGxvY2sgYW5kIHJldHVybnMgdGhlIGRlcG9zaXQuAPxUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIHNpZ25lZCBhbmQgYmUgYSB2b3Rlci5Ac3VibWl0X2NhbmRpZGFjeQQBPGNhbmRpZGF0ZV9jb3VudDUBAQx1MzIAAjwRAVN1Ym1pdCBvbmVzZWxmIGZvciBjYW5kaWRhY3kuIEEgZml4ZWQgYW1vdW50IG9mIGRlcG9zaXQgaXMgcmVjb3JkZWQuAF0BQWxsIGNhbmRpZGF0ZXMgYXJlIHdpcGVkIGF0IHRoZSBlbmQgb2YgdGhlIHRlcm0uIFRoZXkgZWl0aGVyIGJlY29tZSBhIG1lbWJlci9ydW5uZXItdXAszG9yIGxlYXZlIHRoZSBzeXN0ZW0gd2hpbGUgdGhlaXIgZGVwb3NpdCBpcyBzbGFzaGVkLgDAVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBzaWduZWQuACwjIyMgV2FybmluZwBdAUV2ZW4gaWYgYSBjYW5kaWRhdGUgZW5kcyB1cCBiZWluZyBhIG1lbWJlciwgdGhleSBtdXN0IGNhbGwgW2BDYWxsOjpyZW5vdW5jZV9jYW5kaWRhY3lgXVkBdG8gZ2V0IHRoZWlyIGRlcG9zaXQgYmFjay4gTG9zaW5nIHRoZSBzcG90IGluIGFuIGVsZWN0aW9uIHdpbGwgYWx3YXlzIGxlYWQgdG8gYSBzbGFzaC4ACQFUaGUgbnVtYmVyIG9mIGN1cnJlbnQgY2FuZGlkYXRlcyBtdXN0IGJlIHByb3ZpZGVkIGFzIHdpdG5lc3MgZGF0YS40IyMgQ29tcGxleGl0eaRPKEMgKyBsb2coQykpIHdoZXJlIEMgaXMgY2FuZGlkYXRlX2NvdW50LkhyZW5vdW5jZV9jYW5kaWRhY3kEAShyZW5vdW5jaW5nSQUBKFJlbm91bmNpbmcAA1BNAVJlbm91bmNlIG9uZSdzIGludGVudGlvbiB0byBiZSBhIGNhbmRpZGF0ZSBmb3IgdGhlIG5leHQgZWxlY3Rpb24gcm91bmQuIDMgcG90ZW50aWFsPG91dGNvbWVzIGV4aXN0OgBJAS0gYG9yaWdpbmAgaXMgYSBjYW5kaWRhdGUgYW5kIG5vdCBlbGVjdGVkIGluIGFueSBzZXQuIEluIHRoaXMgY2FzZSwgdGhlIGRlcG9zaXQgaXPwICB1bnJlc2VydmVkLCByZXR1cm5lZCBhbmQgb3JpZ2luIGlzIHJlbW92ZWQgYXMgYSBjYW5kaWRhdGUuYQEtIGBvcmlnaW5gIGlzIGEgY3VycmVudCBydW5uZXItdXAuIEluIHRoaXMgY2FzZSwgdGhlIGRlcG9zaXQgaXMgdW5yZXNlcnZlZCwgcmV0dXJuZWQgYW5kjCAgb3JpZ2luIGlzIHJlbW92ZWQgYXMgYSBydW5uZXItdXAuVQEtIGBvcmlnaW5gIGlzIGEgY3VycmVudCBtZW1iZXIuIEluIHRoaXMgY2FzZSwgdGhlIGRlcG9zaXQgaXMgdW5yZXNlcnZlZCBhbmQgb3JpZ2luIGlzVQEgIHJlbW92ZWQgYXMgYSBtZW1iZXIsIGNvbnNlcXVlbnRseSBub3QgYmVpbmcgYSBjYW5kaWRhdGUgZm9yIHRoZSBuZXh0IHJvdW5kIGFueW1vcmUuYQEgIFNpbWlsYXIgdG8gW2ByZW1vdmVfbWVtYmVyYF0oU2VsZjo6cmVtb3ZlX21lbWJlciksIGlmIHJlcGxhY2VtZW50IHJ1bm5lcnMgZXhpc3RzLCB0aGV5WQEgIGFyZSBpbW1lZGlhdGVseSB1c2VkLiBJZiB0aGUgcHJpbWUgaXMgcmVub3VuY2luZywgdGhlbiBubyBwcmltZSB3aWxsIGV4aXN0IHVudGlsIHRoZTQgIG5leHQgcm91bmQuAEUBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBzaWduZWQsIGFuZCBoYXZlIG9uZSBvZiB0aGUgYWJvdmUgcm9sZXMu4FRoZSB0eXBlIG9mIHJlbm91bmNpbmcgbXVzdCBiZSBwcm92aWRlZCBhcyB3aXRuZXNzIGRhdGEuADQjIyBDb21wbGV4aXR53CAgLSBSZW5vdW5jaW5nOjpDYW5kaWRhdGUoY291bnQpOiBPKGNvdW50ICsgbG9nKGNvdW50KSlwICAtIFJlbm91bmNpbmc6Ok1lbWJlcjogTygxKXggIC0gUmVub3VuY2luZzo6UnVubmVyVXA6IE8oMSk0cmVtb3ZlX21lbWJlcgwBDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoc2xhc2hfYm9uZCABEGJvb2wAAThyZXJ1bl9lbGVjdGlvbiABEGJvb2wABEBZAVJlbW92ZSBhIHBhcnRpY3VsYXIgbWVtYmVyIGZyb20gdGhlIHNldC4gVGhpcyBpcyBlZmZlY3RpdmUgaW1tZWRpYXRlbHkgYW5kIHRoZSBib25kIG9mfHRoZSBvdXRnb2luZyBtZW1iZXIgaXMgc2xhc2hlZC4AVQFJZiBhIHJ1bm5lci11cCBpcyBhdmFpbGFibGUsIHRoZW4gdGhlIGJlc3QgcnVubmVyLXVwIHdpbGwgYmUgcmVtb3ZlZCBhbmQgcmVwbGFjZXMgdGhlVQFvdXRnb2luZyBtZW1iZXIuIE90aGVyd2lzZSwgaWYgYHJlcnVuX2VsZWN0aW9uYCBpcyBgdHJ1ZWAsIGEgbmV3IHBocmFnbWVuIGVsZWN0aW9uIGlzfHN0YXJ0ZWQsIGVsc2UsIG5vdGhpbmcgaGFwcGVucy4AWQFJZiBgc2xhc2hfYm9uZGAgaXMgc2V0IHRvIHRydWUsIHRoZSBib25kIG9mIHRoZSBtZW1iZXIgYmVpbmcgcmVtb3ZlZCBpcyBzbGFzaGVkLiBFbHNlLDxpdCBpcyByZXR1cm5lZC4AuFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgcm9vdC4AQQFOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBhZmZlY3QgdGhlIGRlc2lnbmF0ZWQgYmxvY2sgbnVtYmVyIG9mIHRoZSBuZXh0IGVsZWN0aW9uLgA0IyMgQ29tcGxleGl0eQUBLSBDaGVjayBkZXRhaWxzIG9mIHJlbW92ZV9hbmRfcmVwbGFjZV9tZW1iZXIoKSBhbmQgZG9fcGhyYWdtZW4oKS5QY2xlYW5fZGVmdW5jdF92b3RlcnMIAShudW1fdm90ZXJzEAEMdTMyAAEsbnVtX2RlZnVuY3QQAQx1MzIABSRFAUNsZWFuIGFsbCB2b3RlcnMgd2hvIGFyZSBkZWZ1bmN0IChpLmUuIHRoZXkgZG8gbm90IHNlcnZlIGFueSBwdXJwb3NlIGF0IGFsbCkuIFRoZaxkZXBvc2l0IG9mIHRoZSByZW1vdmVkIHZvdGVycyBhcmUgcmV0dXJuZWQuAAEBVGhpcyBpcyBhbiByb290IGZ1bmN0aW9uIHRvIGJlIHVzZWQgb25seSBmb3IgY2xlYW5pbmcgdGhlIHN0YXRlLgC4VGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSByb290LgA0IyMgQ29tcGxleGl0eYwtIENoZWNrIGlzX2RlZnVuY3Rfdm90ZXIoKSBkZXRhaWxzLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5JBQhkcGFsbGV0X2VsZWN0aW9uc19waHJhZ21lbihSZW5vdW5jaW5nAAEMGE1lbWJlcgAAACBSdW5uZXJVcAABACRDYW5kaWRhdGUEADUBAQx1MzIAAgAATQUMRHBhbGxldF9jb2xsZWN0aXZlGHBhbGxldBBDYWxsCARUAARJAAEYLHNldF9tZW1iZXJzDAEsbmV3X21lbWJlcnOZAwFEVmVjPFQ6OkFjY291bnRJZD4AARRwcmltZQEBAVBPcHRpb248VDo6QWNjb3VudElkPgABJG9sZF9jb3VudBABLE1lbWJlckNvdW50AABggFNldCB0aGUgY29sbGVjdGl2ZSdzIG1lbWJlcnNoaXAuAEUBLSBgbmV3X21lbWJlcnNgOiBUaGUgbmV3IG1lbWJlciBsaXN0LiBCZSBuaWNlIHRvIHRoZSBjaGFpbiBhbmQgcHJvdmlkZSBpdCBzb3J0ZWQu4C0gYHByaW1lYDogVGhlIHByaW1lIG1lbWJlciB3aG9zZSB2b3RlIHNldHMgdGhlIGRlZmF1bHQuWQEtIGBvbGRfY291bnRgOiBUaGUgdXBwZXIgYm91bmQgZm9yIHRoZSBwcmV2aW91cyBudW1iZXIgb2YgbWVtYmVycyBpbiBzdG9yYWdlLiBVc2VkIGZvclAgIHdlaWdodCBlc3RpbWF0aW9uLgDUVGhlIGRpc3BhdGNoIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBTZXRNZW1iZXJzT3JpZ2luYC4AUQFOT1RFOiBEb2VzIG5vdCBlbmZvcmNlIHRoZSBleHBlY3RlZCBgTWF4TWVtYmVyc2AgbGltaXQgb24gdGhlIGFtb3VudCBvZiBtZW1iZXJzLCBidXQhASAgICAgIHRoZSB3ZWlnaHQgZXN0aW1hdGlvbnMgcmVseSBvbiBpdCB0byBlc3RpbWF0ZSBkaXNwYXRjaGFibGUgd2VpZ2h0LgAoIyBXQVJOSU5HOgBZAVRoZSBgcGFsbGV0LWNvbGxlY3RpdmVgIGNhbiBhbHNvIGJlIG1hbmFnZWQgYnkgbG9naWMgb3V0c2lkZSBvZiB0aGUgcGFsbGV0IHRocm91Z2ggdGhluGltcGxlbWVudGF0aW9uIG9mIHRoZSB0cmFpdCBbYENoYW5nZU1lbWJlcnNgXS5VAUFueSBjYWxsIHRvIGBzZXRfbWVtYmVyc2AgbXVzdCBiZSBjYXJlZnVsIHRoYXQgdGhlIG1lbWJlciBzZXQgZG9lc24ndCBnZXQgb3V0IG9mIHN5bmOkd2l0aCBvdGhlciBsb2dpYyBtYW5hZ2luZyB0aGUgbWVtYmVyIHNldC4AOCMjIENvbXBsZXhpdHk6UC0gYE8oTVAgKyBOKWAgd2hlcmU64CAgLSBgTWAgb2xkLW1lbWJlcnMtY291bnQgKGNvZGUtIGFuZCBnb3Zlcm5hbmNlLWJvdW5kZWQp4CAgLSBgTmAgbmV3LW1lbWJlcnMtY291bnQgKGNvZGUtIGFuZCBnb3Zlcm5hbmNlLWJvdW5kZWQpmCAgLSBgUGAgcHJvcG9zYWxzLWNvdW50IChjb2RlLWJvdW5kZWQpHGV4ZWN1dGUIASBwcm9wb3NhbH0EAXxCb3g8PFQgYXMgQ29uZmlnPEk+Pjo6UHJvcG9zYWw+AAEwbGVuZ3RoX2JvdW5kNQEBDHUzMgABJPBEaXNwYXRjaCBhIHByb3Bvc2FsIGZyb20gYSBtZW1iZXIgdXNpbmcgdGhlIGBNZW1iZXJgIG9yaWdpbi4AqE9yaWdpbiBtdXN0IGJlIGEgbWVtYmVyIG9mIHRoZSBjb2xsZWN0aXZlLgA4IyMgQ29tcGxleGl0eTpcLSBgTyhCICsgTSArIFApYCB3aGVyZTrYLSBgQmAgaXMgYHByb3Bvc2FsYCBzaXplIGluIGJ5dGVzIChsZW5ndGgtZmVlLWJvdW5kZWQpiC0gYE1gIG1lbWJlcnMtY291bnQgKGNvZGUtYm91bmRlZCmoLSBgUGAgY29tcGxleGl0eSBvZiBkaXNwYXRjaGluZyBgcHJvcG9zYWxgHHByb3Bvc2UMASR0aHJlc2hvbGQ1AQEsTWVtYmVyQ291bnQAASBwcm9wb3NhbH0EAXxCb3g8PFQgYXMgQ29uZmlnPEk+Pjo6UHJvcG9zYWw+AAEwbGVuZ3RoX2JvdW5kNQEBDHUzMgACOPhBZGQgYSBuZXcgcHJvcG9zYWwgdG8gZWl0aGVyIGJlIHZvdGVkIG9uIG9yIGV4ZWN1dGVkIGRpcmVjdGx5LgCEUmVxdWlyZXMgdGhlIHNlbmRlciB0byBiZSBtZW1iZXIuAEEBYHRocmVzaG9sZGAgZGV0ZXJtaW5lcyB3aGV0aGVyIGBwcm9wb3NhbGAgaXMgZXhlY3V0ZWQgZGlyZWN0bHkgKGB0aHJlc2hvbGQgPCAyYClUb3IgcHV0IHVwIGZvciB2b3RpbmcuADQjIyBDb21wbGV4aXR5rC0gYE8oQiArIE0gKyBQMSlgIG9yIGBPKEIgKyBNICsgUDIpYCB3aGVyZTrgICAtIGBCYCBpcyBgcHJvcG9zYWxgIHNpemUgaW4gYnl0ZXMgKGxlbmd0aC1mZWUtYm91bmRlZCncICAtIGBNYCBpcyBtZW1iZXJzLWNvdW50IChjb2RlLSBhbmQgZ292ZXJuYW5jZS1ib3VuZGVkKcQgIC0gYnJhbmNoaW5nIGlzIGluZmx1ZW5jZWQgYnkgYHRocmVzaG9sZGAgd2hlcmU69CAgICAtIGBQMWAgaXMgcHJvcG9zYWwgZXhlY3V0aW9uIGNvbXBsZXhpdHkgKGB0aHJlc2hvbGQgPCAyYCn8ICAgIC0gYFAyYCBpcyBwcm9wb3NhbHMtY291bnQgKGNvZGUtYm91bmRlZCkgKGB0aHJlc2hvbGQgPj0gMmApEHZvdGUMASBwcm9wb3NhbDQBHFQ6Okhhc2gAARRpbmRleDUBATRQcm9wb3NhbEluZGV4AAEcYXBwcm92ZSABEGJvb2wAAyTwQWRkIGFuIGF5ZSBvciBuYXkgdm90ZSBmb3IgdGhlIHNlbmRlciB0byB0aGUgZ2l2ZW4gcHJvcG9zYWwuAIxSZXF1aXJlcyB0aGUgc2VuZGVyIHRvIGJlIGEgbWVtYmVyLgBJAVRyYW5zYWN0aW9uIGZlZXMgd2lsbCBiZSB3YWl2ZWQgaWYgdGhlIG1lbWJlciBpcyB2b3Rpbmcgb24gYW55IHBhcnRpY3VsYXIgcHJvcG9zYWxRAWZvciB0aGUgZmlyc3QgdGltZSBhbmQgdGhlIGNhbGwgaXMgc3VjY2Vzc2Z1bC4gU3Vic2VxdWVudCB2b3RlIGNoYW5nZXMgd2lsbCBjaGFyZ2UgYRBmZWUuNCMjIENvbXBsZXhpdHkJAS0gYE8oTSlgIHdoZXJlIGBNYCBpcyBtZW1iZXJzLWNvdW50IChjb2RlLSBhbmQgZ292ZXJuYW5jZS1ib3VuZGVkKUxkaXNhcHByb3ZlX3Byb3Bvc2FsBAE0cHJvcG9zYWxfaGFzaDQBHFQ6Okhhc2gABShZAURpc2FwcHJvdmUgYSBwcm9wb3NhbCwgY2xvc2UsIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgc3lzdGVtLCByZWdhcmRsZXNzIG9mIGl0cyBjdXJyZW50GHN0YXRlLgCITXVzdCBiZSBjYWxsZWQgYnkgdGhlIFJvb3Qgb3JpZ2luLgAsUGFyYW1ldGVyczodASogYHByb3Bvc2FsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgcHJvcG9zYWwgdGhhdCBzaG91bGQgYmUgZGlzYXBwcm92ZWQuADQjIyBDb21wbGV4aXR5rE8oUCkgd2hlcmUgUCBpcyB0aGUgbnVtYmVyIG9mIG1heCBwcm9wb3NhbHMUY2xvc2UQATRwcm9wb3NhbF9oYXNoNAEcVDo6SGFzaAABFGluZGV4NQEBNFByb3Bvc2FsSW5kZXgAAVRwcm9wb3NhbF93ZWlnaHRfYm91bmQoARhXZWlnaHQAATBsZW5ndGhfYm91bmQ1AQEMdTMyAAZgTQFDbG9zZSBhIHZvdGUgdGhhdCBpcyBlaXRoZXIgYXBwcm92ZWQsIGRpc2FwcHJvdmVkIG9yIHdob3NlIHZvdGluZyBwZXJpb2QgaGFzIGVuZGVkLgBVAU1heSBiZSBjYWxsZWQgYnkgYW55IHNpZ25lZCBhY2NvdW50IGluIG9yZGVyIHRvIGZpbmlzaCB2b3RpbmcgYW5kIGNsb3NlIHRoZSBwcm9wb3NhbC4ASQFJZiBjYWxsZWQgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIHZvdGluZyBwZXJpb2QgaXQgd2lsbCBvbmx5IGNsb3NlIHRoZSB2b3RlIGlmIGl0IGlzvGhhcyBlbm91Z2ggdm90ZXMgdG8gYmUgYXBwcm92ZWQgb3IgZGlzYXBwcm92ZWQuAEkBSWYgY2FsbGVkIGFmdGVyIHRoZSBlbmQgb2YgdGhlIHZvdGluZyBwZXJpb2QgYWJzdGVudGlvbnMgYXJlIGNvdW50ZWQgYXMgcmVqZWN0aW9ucyUBdW5sZXNzIHRoZXJlIGlzIGEgcHJpbWUgbWVtYmVyIHNldCBhbmQgdGhlIHByaW1lIG1lbWJlciBjYXN0IGFuIGFwcHJvdmFsLgBhAUlmIHRoZSBjbG9zZSBvcGVyYXRpb24gY29tcGxldGVzIHN1Y2Nlc3NmdWxseSB3aXRoIGRpc2FwcHJvdmFsLCB0aGUgdHJhbnNhY3Rpb24gZmVlIHdpbGxdAWJlIHdhaXZlZC4gT3RoZXJ3aXNlIGV4ZWN1dGlvbiBvZiB0aGUgYXBwcm92ZWQgb3BlcmF0aW9uIHdpbGwgYmUgY2hhcmdlZCB0byB0aGUgY2FsbGVyLgBhASsgYHByb3Bvc2FsX3dlaWdodF9ib3VuZGA6IFRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgY29uc3VtZWQgYnkgZXhlY3V0aW5nIHRoZSBjbG9zZWQkcHJvcG9zYWwuYQErIGBsZW5ndGhfYm91bmRgOiBUaGUgdXBwZXIgYm91bmQgZm9yIHRoZSBsZW5ndGggb2YgdGhlIHByb3Bvc2FsIGluIHN0b3JhZ2UuIENoZWNrZWQgdmlhNQFgc3RvcmFnZTo6cmVhZGAgc28gaXQgaXMgYHNpemVfb2Y6Ojx1MzI+KCkgPT0gNGAgbGFyZ2VyIHRoYW4gdGhlIHB1cmUgbGVuZ3RoLgA0IyMgQ29tcGxleGl0eXQtIGBPKEIgKyBNICsgUDEgKyBQMilgIHdoZXJlOuAgIC0gYEJgIGlzIGBwcm9wb3NhbGAgc2l6ZSBpbiBieXRlcyAobGVuZ3RoLWZlZS1ib3VuZGVkKdwgIC0gYE1gIGlzIG1lbWJlcnMtY291bnQgKGNvZGUtIGFuZCBnb3Zlcm5hbmNlLWJvdW5kZWQpyCAgLSBgUDFgIGlzIHRoZSBjb21wbGV4aXR5IG9mIGBwcm9wb3NhbGAgcHJlaW1hZ2UupCAgLSBgUDJgIGlzIHByb3Bvc2FsLWNvdW50IChjb2RlLWJvdW5kZWQpBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLlEFDERwYWxsZXRfY29sbGVjdGl2ZRhwYWxsZXQQQ2FsbAgEVAAESQABGCxzZXRfbWVtYmVycwwBLG5ld19tZW1iZXJzmQMBRFZlYzxUOjpBY2NvdW50SWQ+AAEUcHJpbWUBAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AASRvbGRfY291bnQQASxNZW1iZXJDb3VudAAAYIBTZXQgdGhlIGNvbGxlY3RpdmUncyBtZW1iZXJzaGlwLgBFAS0gYG5ld19tZW1iZXJzYDogVGhlIG5ldyBtZW1iZXIgbGlzdC4gQmUgbmljZSB0byB0aGUgY2hhaW4gYW5kIHByb3ZpZGUgaXQgc29ydGVkLuAtIGBwcmltZWA6IFRoZSBwcmltZSBtZW1iZXIgd2hvc2Ugdm90ZSBzZXRzIHRoZSBkZWZhdWx0LlkBLSBgb2xkX2NvdW50YDogVGhlIHVwcGVyIGJvdW5kIGZvciB0aGUgcHJldmlvdXMgbnVtYmVyIG9mIG1lbWJlcnMgaW4gc3RvcmFnZS4gVXNlZCBmb3JQICB3ZWlnaHQgZXN0aW1hdGlvbi4A1FRoZSBkaXNwYXRjaCBvZiB0aGlzIGNhbGwgbXVzdCBiZSBgU2V0TWVtYmVyc09yaWdpbmAuAFEBTk9URTogRG9lcyBub3QgZW5mb3JjZSB0aGUgZXhwZWN0ZWQgYE1heE1lbWJlcnNgIGxpbWl0IG9uIHRoZSBhbW91bnQgb2YgbWVtYmVycywgYnV0IQEgICAgICB0aGUgd2VpZ2h0IGVzdGltYXRpb25zIHJlbHkgb24gaXQgdG8gZXN0aW1hdGUgZGlzcGF0Y2hhYmxlIHdlaWdodC4AKCMgV0FSTklORzoAWQFUaGUgYHBhbGxldC1jb2xsZWN0aXZlYCBjYW4gYWxzbyBiZSBtYW5hZ2VkIGJ5IGxvZ2ljIG91dHNpZGUgb2YgdGhlIHBhbGxldCB0aHJvdWdoIHRoZbhpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdHJhaXQgW2BDaGFuZ2VNZW1iZXJzYF0uVQFBbnkgY2FsbCB0byBgc2V0X21lbWJlcnNgIG11c3QgYmUgY2FyZWZ1bCB0aGF0IHRoZSBtZW1iZXIgc2V0IGRvZXNuJ3QgZ2V0IG91dCBvZiBzeW5jpHdpdGggb3RoZXIgbG9naWMgbWFuYWdpbmcgdGhlIG1lbWJlciBzZXQuADgjIyBDb21wbGV4aXR5OlAtIGBPKE1QICsgTilgIHdoZXJlOuAgIC0gYE1gIG9sZC1tZW1iZXJzLWNvdW50IChjb2RlLSBhbmQgZ292ZXJuYW5jZS1ib3VuZGVkKeAgIC0gYE5gIG5ldy1tZW1iZXJzLWNvdW50IChjb2RlLSBhbmQgZ292ZXJuYW5jZS1ib3VuZGVkKZggIC0gYFBgIHByb3Bvc2Fscy1jb3VudCAoY29kZS1ib3VuZGVkKRxleGVjdXRlCAEgcHJvcG9zYWx9BAF8Qm94PDxUIGFzIENvbmZpZzxJPj46OlByb3Bvc2FsPgABMGxlbmd0aF9ib3VuZDUBAQx1MzIAASTwRGlzcGF0Y2ggYSBwcm9wb3NhbCBmcm9tIGEgbWVtYmVyIHVzaW5nIHRoZSBgTWVtYmVyYCBvcmlnaW4uAKhPcmlnaW4gbXVzdCBiZSBhIG1lbWJlciBvZiB0aGUgY29sbGVjdGl2ZS4AOCMjIENvbXBsZXhpdHk6XC0gYE8oQiArIE0gKyBQKWAgd2hlcmU62C0gYEJgIGlzIGBwcm9wb3NhbGAgc2l6ZSBpbiBieXRlcyAobGVuZ3RoLWZlZS1ib3VuZGVkKYgtIGBNYCBtZW1iZXJzLWNvdW50IChjb2RlLWJvdW5kZWQpqC0gYFBgIGNvbXBsZXhpdHkgb2YgZGlzcGF0Y2hpbmcgYHByb3Bvc2FsYBxwcm9wb3NlDAEkdGhyZXNob2xkNQEBLE1lbWJlckNvdW50AAEgcHJvcG9zYWx9BAF8Qm94PDxUIGFzIENvbmZpZzxJPj46OlByb3Bvc2FsPgABMGxlbmd0aF9ib3VuZDUBAQx1MzIAAjj4QWRkIGEgbmV3IHByb3Bvc2FsIHRvIGVpdGhlciBiZSB2b3RlZCBvbiBvciBleGVjdXRlZCBkaXJlY3RseS4AhFJlcXVpcmVzIHRoZSBzZW5kZXIgdG8gYmUgbWVtYmVyLgBBAWB0aHJlc2hvbGRgIGRldGVybWluZXMgd2hldGhlciBgcHJvcG9zYWxgIGlzIGV4ZWN1dGVkIGRpcmVjdGx5IChgdGhyZXNob2xkIDwgMmApVG9yIHB1dCB1cCBmb3Igdm90aW5nLgA0IyMgQ29tcGxleGl0eawtIGBPKEIgKyBNICsgUDEpYCBvciBgTyhCICsgTSArIFAyKWAgd2hlcmU64CAgLSBgQmAgaXMgYHByb3Bvc2FsYCBzaXplIGluIGJ5dGVzIChsZW5ndGgtZmVlLWJvdW5kZWQp3CAgLSBgTWAgaXMgbWVtYmVycy1jb3VudCAoY29kZS0gYW5kIGdvdmVybmFuY2UtYm91bmRlZCnEICAtIGJyYW5jaGluZyBpcyBpbmZsdWVuY2VkIGJ5IGB0aHJlc2hvbGRgIHdoZXJlOvQgICAgLSBgUDFgIGlzIHByb3Bvc2FsIGV4ZWN1dGlvbiBjb21wbGV4aXR5IChgdGhyZXNob2xkIDwgMmAp/CAgICAtIGBQMmAgaXMgcHJvcG9zYWxzLWNvdW50IChjb2RlLWJvdW5kZWQpIChgdGhyZXNob2xkID49IDJgKRB2b3RlDAEgcHJvcG9zYWw0ARxUOjpIYXNoAAEUaW5kZXg1AQE0UHJvcG9zYWxJbmRleAABHGFwcHJvdmUgARBib29sAAMk8EFkZCBhbiBheWUgb3IgbmF5IHZvdGUgZm9yIHRoZSBzZW5kZXIgdG8gdGhlIGdpdmVuIHByb3Bvc2FsLgCMUmVxdWlyZXMgdGhlIHNlbmRlciB0byBiZSBhIG1lbWJlci4ASQFUcmFuc2FjdGlvbiBmZWVzIHdpbGwgYmUgd2FpdmVkIGlmIHRoZSBtZW1iZXIgaXMgdm90aW5nIG9uIGFueSBwYXJ0aWN1bGFyIHByb3Bvc2FsUQFmb3IgdGhlIGZpcnN0IHRpbWUgYW5kIHRoZSBjYWxsIGlzIHN1Y2Nlc3NmdWwuIFN1YnNlcXVlbnQgdm90ZSBjaGFuZ2VzIHdpbGwgY2hhcmdlIGEQZmVlLjQjIyBDb21wbGV4aXR5CQEtIGBPKE0pYCB3aGVyZSBgTWAgaXMgbWVtYmVycy1jb3VudCAoY29kZS0gYW5kIGdvdmVybmFuY2UtYm91bmRlZClMZGlzYXBwcm92ZV9wcm9wb3NhbAQBNHByb3Bvc2FsX2hhc2g0ARxUOjpIYXNoAAUoWQFEaXNhcHByb3ZlIGEgcHJvcG9zYWwsIGNsb3NlLCBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIHN5c3RlbSwgcmVnYXJkbGVzcyBvZiBpdHMgY3VycmVudBhzdGF0ZS4AiE11c3QgYmUgY2FsbGVkIGJ5IHRoZSBSb290IG9yaWdpbi4ALFBhcmFtZXRlcnM6HQEqIGBwcm9wb3NhbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIHByb3Bvc2FsIHRoYXQgc2hvdWxkIGJlIGRpc2FwcHJvdmVkLgA0IyMgQ29tcGxleGl0eaxPKFApIHdoZXJlIFAgaXMgdGhlIG51bWJlciBvZiBtYXggcHJvcG9zYWxzFGNsb3NlEAE0cHJvcG9zYWxfaGFzaDQBHFQ6Okhhc2gAARRpbmRleDUBATRQcm9wb3NhbEluZGV4AAFUcHJvcG9zYWxfd2VpZ2h0X2JvdW5kKAEYV2VpZ2h0AAEwbGVuZ3RoX2JvdW5kNQEBDHUzMgAGYE0BQ2xvc2UgYSB2b3RlIHRoYXQgaXMgZWl0aGVyIGFwcHJvdmVkLCBkaXNhcHByb3ZlZCBvciB3aG9zZSB2b3RpbmcgcGVyaW9kIGhhcyBlbmRlZC4AVQFNYXkgYmUgY2FsbGVkIGJ5IGFueSBzaWduZWQgYWNjb3VudCBpbiBvcmRlciB0byBmaW5pc2ggdm90aW5nIGFuZCBjbG9zZSB0aGUgcHJvcG9zYWwuAEkBSWYgY2FsbGVkIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSB2b3RpbmcgcGVyaW9kIGl0IHdpbGwgb25seSBjbG9zZSB0aGUgdm90ZSBpZiBpdCBpc7xoYXMgZW5vdWdoIHZvdGVzIHRvIGJlIGFwcHJvdmVkIG9yIGRpc2FwcHJvdmVkLgBJAUlmIGNhbGxlZCBhZnRlciB0aGUgZW5kIG9mIHRoZSB2b3RpbmcgcGVyaW9kIGFic3RlbnRpb25zIGFyZSBjb3VudGVkIGFzIHJlamVjdGlvbnMlAXVubGVzcyB0aGVyZSBpcyBhIHByaW1lIG1lbWJlciBzZXQgYW5kIHRoZSBwcmltZSBtZW1iZXIgY2FzdCBhbiBhcHByb3ZhbC4AYQFJZiB0aGUgY2xvc2Ugb3BlcmF0aW9uIGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkgd2l0aCBkaXNhcHByb3ZhbCwgdGhlIHRyYW5zYWN0aW9uIGZlZSB3aWxsXQFiZSB3YWl2ZWQuIE90aGVyd2lzZSBleGVjdXRpb24gb2YgdGhlIGFwcHJvdmVkIG9wZXJhdGlvbiB3aWxsIGJlIGNoYXJnZWQgdG8gdGhlIGNhbGxlci4AYQErIGBwcm9wb3NhbF93ZWlnaHRfYm91bmRgOiBUaGUgbWF4aW11bSBhbW91bnQgb2Ygd2VpZ2h0IGNvbnN1bWVkIGJ5IGV4ZWN1dGluZyB0aGUgY2xvc2VkJHByb3Bvc2FsLmEBKyBgbGVuZ3RoX2JvdW5kYDogVGhlIHVwcGVyIGJvdW5kIGZvciB0aGUgbGVuZ3RoIG9mIHRoZSBwcm9wb3NhbCBpbiBzdG9yYWdlLiBDaGVja2VkIHZpYTUBYHN0b3JhZ2U6OnJlYWRgIHNvIGl0IGlzIGBzaXplX29mOjo8dTMyPigpID09IDRgIGxhcmdlciB0aGFuIHRoZSBwdXJlIGxlbmd0aC4ANCMjIENvbXBsZXhpdHl0LSBgTyhCICsgTSArIFAxICsgUDIpYCB3aGVyZTrgICAtIGBCYCBpcyBgcHJvcG9zYWxgIHNpemUgaW4gYnl0ZXMgKGxlbmd0aC1mZWUtYm91bmRlZCncICAtIGBNYCBpcyBtZW1iZXJzLWNvdW50IChjb2RlLSBhbmQgZ292ZXJuYW5jZS1ib3VuZGVkKcggIC0gYFAxYCBpcyB0aGUgY29tcGxleGl0eSBvZiBgcHJvcG9zYWxgIHByZWltYWdlLqQgIC0gYFAyYCBpcyBwcm9wb3NhbC1jb3VudCAoY29kZS1ib3VuZGVkKQQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5VBQwscGFsbGV0X3RpcHMYcGFsbGV0EENhbGwIBFQABEkAARg4cmVwb3J0X2F3ZXNvbWUIARhyZWFzb244ARxWZWM8dTg+AAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAEBZAVJlcG9ydCBzb21ldGhpbmcgYHJlYXNvbmAgdGhhdCBkZXNlcnZlcyBhIHRpcCBhbmQgY2xhaW0gYW55IGV2ZW50dWFsIHRoZSBmaW5kZXIncyBmZWUuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AUQFQYXltZW50OiBgVGlwUmVwb3J0RGVwb3NpdEJhc2VgIHdpbGwgYmUgcmVzZXJ2ZWQgZnJvbSB0aGUgb3JpZ2luIGFjY291bnQsIGFzIHdlbGwgYXO8YERhdGFEZXBvc2l0UGVyQnl0ZWAgZm9yIGVhY2ggYnl0ZSBpbiBgcmVhc29uYC4AXQEtIGByZWFzb25gOiBUaGUgcmVhc29uIGZvciwgb3IgdGhlIHRoaW5nIHRoYXQgZGVzZXJ2ZXMsIHRoZSB0aXA7IGdlbmVyYWxseSB0aGlzIHdpbGwgYmVYICBhIFVURi04LWVuY29kZWQgVVJMLugtIGB3aG9gOiBUaGUgYWNjb3VudCB3aGljaCBzaG91bGQgYmUgY3JlZGl0ZWQgZm9yIHRoZSB0aXAuAHRFbWl0cyBgTmV3VGlwYCBpZiBzdWNjZXNzZnVsLgA0IyMgQ29tcGxleGl0eZgtIGBPKFIpYCB3aGVyZSBgUmAgbGVuZ3RoIG9mIGByZWFzb25gLpAgIC0gZW5jb2RpbmcgYW5kIGhhc2hpbmcgb2YgJ3JlYXNvbicscmV0cmFjdF90aXAEARBoYXNoNAEcVDo6SGFzaAABQFEBUmV0cmFjdCBhIHByaW9yIHRpcC1yZXBvcnQgZnJvbSBgcmVwb3J0X2F3ZXNvbWVgLCBhbmQgY2FuY2VsIHRoZSBwcm9jZXNzIG9mIHRpcHBpbmcuANxJZiBzdWNjZXNzZnVsLCB0aGUgb3JpZ2luYWwgZGVwb3NpdCB3aWxsIGJlIHVucmVzZXJ2ZWQuAE0BVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSB0aXAgaWRlbnRpZmllZCBieSBgaGFzaGBBAW11c3QgaGF2ZSBiZWVuIHJlcG9ydGVkIGJ5IHRoZSBzaWduaW5nIGFjY291bnQgdGhyb3VnaCBgcmVwb3J0X2F3ZXNvbWVgIChhbmQgbm90THRocm91Z2ggYHRpcF9uZXdgKS4AYQEtIGBoYXNoYDogVGhlIGlkZW50aXR5IG9mIHRoZSBvcGVuIHRpcCBmb3Igd2hpY2ggYSB0aXAgdmFsdWUgaXMgZGVjbGFyZWQuIFRoaXMgaXMgZm9ybWVkXQEgIGFzIHRoZSBoYXNoIG9mIHRoZSB0dXBsZSBvZiB0aGUgb3JpZ2luYWwgdGlwIGByZWFzb25gIGFuZCB0aGUgYmVuZWZpY2lhcnkgYWNjb3VudCBJRC4AjEVtaXRzIGBUaXBSZXRyYWN0ZWRgIGlmIHN1Y2Nlc3NmdWwuADQjIyBDb21wbGV4aXR5IC0gYE8oMSlg2CAgLSBEZXBlbmRzIG9uIHRoZSBsZW5ndGggb2YgYFQ6Okhhc2hgIHdoaWNoIGlzIGZpeGVkLhx0aXBfbmV3DAEYcmVhc29uOAEcVmVjPHU4PgABDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEkdGlwX3ZhbHVlRQEBPEJhbGFuY2VPZjxULCBJPgACTPBHaXZlIGEgdGlwIGZvciBzb21ldGhpbmcgbmV3OyBubyBmaW5kZXIncyBmZWUgd2lsbCBiZSB0YWtlbi4AUQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNpZ25pbmcgYWNjb3VudCBtdXN0IGJlIGFwbWVtYmVyIG9mIHRoZSBgVGlwcGVyc2Agc2V0LgBdAS0gYHJlYXNvbmA6IFRoZSByZWFzb24gZm9yLCBvciB0aGUgdGhpbmcgdGhhdCBkZXNlcnZlcywgdGhlIHRpcDsgZ2VuZXJhbGx5IHRoaXMgd2lsbCBiZVggIGEgVVRGLTgtZW5jb2RlZCBVUkwu6C0gYHdob2A6IFRoZSBhY2NvdW50IHdoaWNoIHNob3VsZCBiZSBjcmVkaXRlZCBmb3IgdGhlIHRpcC5NAS0gYHRpcF92YWx1ZWA6IFRoZSBhbW91bnQgb2YgdGlwIHRoYXQgdGhlIHNlbmRlciB3b3VsZCBsaWtlIHRvIGdpdmUuIFRoZSBtZWRpYW4gdGlw1CAgdmFsdWUgb2YgYWN0aXZlIHRpcHBlcnMgd2lsbCBiZSBnaXZlbiB0byB0aGUgYHdob2AuAHRFbWl0cyBgTmV3VGlwYCBpZiBzdWNjZXNzZnVsLgA0IyMgQ29tcGxleGl0eSEBLSBgTyhSICsgVClgIHdoZXJlIGBSYCBsZW5ndGggb2YgYHJlYXNvbmAsIGBUYCBpcyB0aGUgbnVtYmVyIG9mIHRpcHBlcnMuXQEgIC0gYE8oVClgOiBkZWNvZGluZyBgVGlwcGVyYCB2ZWMgb2YgbGVuZ3RoIGBUYC4gYFRgIGlzIGNoYXJnZWQgYXMgdXBwZXIgYm91bmQgZ2l2ZW4gYnktASAgICBgQ29udGFpbnNMZW5ndGhCb3VuZGAuIFRoZSBhY3R1YWwgY29zdCBkZXBlbmRzIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBvZkQgICAgYFQ6OlRpcHBlcnNgLuAgIC0gYE8oUilgOiBoYXNoaW5nIGFuZCBlbmNvZGluZyBvZiByZWFzb24gb2YgbGVuZ3RoIGBSYAx0aXAIARBoYXNoNAEcVDo6SGFzaAABJHRpcF92YWx1ZUUBATxCYWxhbmNlT2Y8VCwgST4AA1SwRGVjbGFyZSBhIHRpcCB2YWx1ZSBmb3IgYW4gYWxyZWFkeS1vcGVuIHRpcC4AUQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNpZ25pbmcgYWNjb3VudCBtdXN0IGJlIGFwbWVtYmVyIG9mIHRoZSBgVGlwcGVyc2Agc2V0LgBhAS0gYGhhc2hgOiBUaGUgaWRlbnRpdHkgb2YgdGhlIG9wZW4gdGlwIGZvciB3aGljaCBhIHRpcCB2YWx1ZSBpcyBkZWNsYXJlZC4gVGhpcyBpcyBmb3JtZWRdASAgYXMgdGhlIGhhc2ggb2YgdGhlIHR1cGxlIG9mIHRoZSBoYXNoIG9mIHRoZSBvcmlnaW5hbCB0aXAgYHJlYXNvbmAgYW5kIHRoZSBiZW5lZmljaWFyeTQgIGFjY291bnQgSUQuTQEtIGB0aXBfdmFsdWVgOiBUaGUgYW1vdW50IG9mIHRpcCB0aGF0IHRoZSBzZW5kZXIgd291bGQgbGlrZSB0byBnaXZlLiBUaGUgbWVkaWFuIHRpcNQgIHZhbHVlIG9mIGFjdGl2ZSB0aXBwZXJzIHdpbGwgYmUgZ2l2ZW4gdG8gdGhlIGB3aG9gLgBhAUVtaXRzIGBUaXBDbG9zaW5nYCBpZiB0aGUgdGhyZXNob2xkIG9mIHRpcHBlcnMgaGFzIGJlZW4gcmVhY2hlZCBhbmQgdGhlIGNvdW50ZG93biBwZXJpb2QwaGFzIHN0YXJ0ZWQuADQjIyBDb21wbGV4aXR5YQEtIGBPKFQpYCB3aGVyZSBgVGAgaXMgdGhlIG51bWJlciBvZiB0aXBwZXJzLiBkZWNvZGluZyBgVGlwcGVyYCB2ZWMgb2YgbGVuZ3RoIGBUYCwgaW5zZXJ0WQEgIHRpcCBhbmQgY2hlY2sgY2xvc2luZywgYFRgIGlzIGNoYXJnZWQgYXMgdXBwZXIgYm91bmQgZ2l2ZW4gYnkgYENvbnRhaW5zTGVuZ3RoQm91bmRgLgEBICBUaGUgYWN0dWFsIGNvc3QgZGVwZW5kcyBvbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgYFQ6OlRpcHBlcnNgLgBdASAgQWN0dWFsbHkgd2VpZ2h0IGNvdWxkIGJlIGxvd2VyIGFzIGl0IGRlcGVuZHMgb24gaG93IG1hbnkgdGlwcyBhcmUgaW4gYE9wZW5UaXBgIGJ1dCBpdNAgIGlzIHdlaWdodGVkIGFzIGlmIGFsbW9zdCBmdWxsIGkuZSBvZiBsZW5ndGggYFQtMWAuJGNsb3NlX3RpcAQBEGhhc2g0ARxUOjpIYXNoAAQ0XENsb3NlIGFuZCBwYXlvdXQgYSB0aXAuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AFQFUaGUgdGlwIGlkZW50aWZpZWQgYnkgYGhhc2hgIG11c3QgaGF2ZSBmaW5pc2hlZCBpdHMgY291bnRkb3duIHBlcmlvZC4AYQEtIGBoYXNoYDogVGhlIGlkZW50aXR5IG9mIHRoZSBvcGVuIHRpcCBmb3Igd2hpY2ggYSB0aXAgdmFsdWUgaXMgZGVjbGFyZWQuIFRoaXMgaXMgZm9ybWVkXQEgIGFzIHRoZSBoYXNoIG9mIHRoZSB0dXBsZSBvZiB0aGUgb3JpZ2luYWwgdGlwIGByZWFzb25gIGFuZCB0aGUgYmVuZWZpY2lhcnkgYWNjb3VudCBJRC4ANCMjIENvbXBsZXhpdHldAS0gOiBgTyhUKWAgd2hlcmUgYFRgIGlzIHRoZSBudW1iZXIgb2YgdGlwcGVycy4gZGVjb2RpbmcgYFRpcHBlcmAgdmVjIG9mIGxlbmd0aCBgVGAuIGBUYFkBICBpcyBjaGFyZ2VkIGFzIHVwcGVyIGJvdW5kIGdpdmVuIGJ5IGBDb250YWluc0xlbmd0aEJvdW5kYC4gVGhlIGFjdHVhbCBjb3N0IGRlcGVuZHMgb26UICB0aGUgaW1wbGVtZW50YXRpb24gb2YgYFQ6OlRpcHBlcnNgLiRzbGFzaF90aXAEARBoYXNoNAEcVDo6SGFzaAAFKJRSZW1vdmUgYW5kIHNsYXNoIGFuIGFscmVhZHktb3BlbiB0aXAuAKhNYXkgb25seSBiZSBjYWxsZWQgZnJvbSBgVDo6UmVqZWN0T3JpZ2luYC4A9EFzIGEgcmVzdWx0LCB0aGUgZmluZGVyIGlzIHNsYXNoZWQgYW5kIHRoZSBkZXBvc2l0cyBhcmUgbG9zdC4AhEVtaXRzIGBUaXBTbGFzaGVkYCBpZiBzdWNjZXNzZnVsLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLlkFDDBwYWxsZXRfcHJveHkYcGFsbGV0EENhbGwEBFQAASgUcHJveHkMARByZWFsAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAUBmb3JjZV9wcm94eV90eXBlXQUBUE9wdGlvbjxUOjpQcm94eVR5cGU+AAEQY2FsbH0EAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAAkTQFEaXNwYXRjaCB0aGUgZ2l2ZW4gYGNhbGxgIGZyb20gYW4gYWNjb3VudCB0aGF0IHRoZSBzZW5kZXIgaXMgYXV0aG9yaXNlZCBmb3IgdGhyb3VnaDBgYWRkX3Byb3h5YC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi5hAS0gYGZvcmNlX3Byb3h5X3R5cGVgOiBTcGVjaWZ5IHRoZSBleGFjdCBwcm94eSB0eXBlIHRvIGJlIHVzZWQgYW5kIGNoZWNrZWQgZm9yIHRoaXMgY2FsbC7QLSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LiRhZGRfcHJveHkMASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEocHJveHlfdHlwZdgBMFQ6OlByb3h5VHlwZQABFGRlbGF5EAFEQmxvY2tOdW1iZXJGb3I8VD4AASRFAVJlZ2lzdGVyIGEgcHJveHkgYWNjb3VudCBmb3IgdGhlIHNlbmRlciB0aGF0IGlzIGFibGUgdG8gbWFrZSBjYWxscyBvbiBpdHMgYmVoYWxmLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOhEBLSBgcHJveHlgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBgY2FsbGVyYCB3b3VsZCBsaWtlIHRvIG1ha2UgYSBwcm94eS78LSBgcHJveHlfdHlwZWA6IFRoZSBwZXJtaXNzaW9ucyBhbGxvd2VkIGZvciB0aGlzIHByb3h5IGFjY291bnQuTQEtIGBkZWxheWA6IFRoZSBhbm5vdW5jZW1lbnQgcGVyaW9kIHJlcXVpcmVkIG9mIHRoZSBpbml0aWFsIHByb3h5LiBXaWxsIGdlbmVyYWxseSBiZRR6ZXJvLjByZW1vdmVfcHJveHkMASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEocHJveHlfdHlwZdgBMFQ6OlByb3h5VHlwZQABFGRlbGF5EAFEQmxvY2tOdW1iZXJGb3I8VD4AAhyoVW5yZWdpc3RlciBhIHByb3h5IGFjY291bnQgZm9yIHRoZSBzZW5kZXIuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM6JQEtIGBwcm94eWA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIGBjYWxsZXJgIHdvdWxkIGxpa2UgdG8gcmVtb3ZlIGFzIGEgcHJveHkuQQEtIGBwcm94eV90eXBlYDogVGhlIHBlcm1pc3Npb25zIGN1cnJlbnRseSBlbmFibGVkIGZvciB0aGUgcmVtb3ZlZCBwcm94eSBhY2NvdW50LjhyZW1vdmVfcHJveGllcwADGLRVbnJlZ2lzdGVyIGFsbCBwcm94eSBhY2NvdW50cyBmb3IgdGhlIHNlbmRlci4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBBAVdBUk5JTkc6IFRoaXMgbWF5IGJlIGNhbGxlZCBvbiBhY2NvdW50cyBjcmVhdGVkIGJ5IGBwdXJlYCwgaG93ZXZlciBpZiBkb25lLCB0aGVuWQF0aGUgdW5yZXNlcnZlZCBmZWVzIHdpbGwgYmUgaW5hY2Nlc3NpYmxlLiAqKkFsbCBhY2Nlc3MgdG8gdGhpcyBhY2NvdW50IHdpbGwgYmUgbG9zdC4qKixjcmVhdGVfcHVyZQwBKHByb3h5X3R5cGXYATBUOjpQcm94eVR5cGUAARRkZWxheRABREJsb2NrTnVtYmVyRm9yPFQ+AAEUaW5kZXjcAQx1MTYABEg5AVNwYXduIGEgZnJlc2ggbmV3IGFjY291bnQgdGhhdCBpcyBndWFyYW50ZWVkIHRvIGJlIG90aGVyd2lzZSBpbmFjY2Vzc2libGUsIGFuZPxpbml0aWFsaXplIGl0IHdpdGggYSBwcm94eSBvZiBgcHJveHlfdHlwZWAgZm9yIGBvcmlnaW5gIHNlbmRlci4AbFJlcXVpcmVzIGEgYFNpZ25lZGAgb3JpZ2luLgBRAS0gYHByb3h5X3R5cGVgOiBUaGUgdHlwZSBvZiB0aGUgcHJveHkgdGhhdCB0aGUgc2VuZGVyIHdpbGwgYmUgcmVnaXN0ZXJlZCBhcyBvdmVyIHRoZU0BbmV3IGFjY291bnQuIFRoaXMgd2lsbCBhbG1vc3QgYWx3YXlzIGJlIHRoZSBtb3N0IHBlcm1pc3NpdmUgYFByb3h5VHlwZWAgcG9zc2libGUgdG94YWxsb3cgZm9yIG1heGltdW0gZmxleGliaWxpdHkuUQEtIGBpbmRleGA6IEEgZGlzYW1iaWd1YXRpb24gaW5kZXgsIGluIGNhc2UgdGhpcyBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIHNhbWVdAXRyYW5zYWN0aW9uIChlLmcuIHdpdGggYHV0aWxpdHk6OmJhdGNoYCkuIFVubGVzcyB5b3UncmUgdXNpbmcgYGJhdGNoYCB5b3UgcHJvYmFibHkganVzdEB3YW50IHRvIHVzZSBgMGAuTQEtIGBkZWxheWA6IFRoZSBhbm5vdW5jZW1lbnQgcGVyaW9kIHJlcXVpcmVkIG9mIHRoZSBpbml0aWFsIHByb3h5LiBXaWxsIGdlbmVyYWxseSBiZRR6ZXJvLgBRAUZhaWxzIHdpdGggYER1cGxpY2F0ZWAgaWYgdGhpcyBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZCBpbiB0aGlzIHRyYW5zYWN0aW9uLCBmcm9tIHRoZZhzYW1lIHNlbmRlciwgd2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXJzLgDkRmFpbHMgaWYgdGhlcmUgYXJlIGluc3VmZmljaWVudCBmdW5kcyB0byBwYXkgZm9yIGRlcG9zaXQuJGtpbGxfcHVyZRQBHHNwYXduZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKHByb3h5X3R5cGXYATBUOjpQcm94eVR5cGUAARRpbmRleNwBDHUxNgABGGhlaWdodDUBAURCbG9ja051bWJlckZvcjxUPgABJGV4dF9pbmRleDUBAQx1MzIABUCgUmVtb3ZlcyBhIHByZXZpb3VzbHkgc3Bhd25lZCBwdXJlIHByb3h5LgBJAVdBUk5JTkc6ICoqQWxsIGFjY2VzcyB0byB0aGlzIGFjY291bnQgd2lsbCBiZSBsb3N0LioqIEFueSBmdW5kcyBoZWxkIGluIGl0IHdpbGwgYmU0aW5hY2Nlc3NpYmxlLgBZAVJlcXVpcmVzIGEgYFNpZ25lZGAgb3JpZ2luLCBhbmQgdGhlIHNlbmRlciBhY2NvdW50IG11c3QgaGF2ZSBiZWVuIGNyZWF0ZWQgYnkgYSBjYWxsIHRvlGBwdXJlYCB3aXRoIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVycy4AOQEtIGBzcGF3bmVyYDogVGhlIGFjY291bnQgdGhhdCBvcmlnaW5hbGx5IGNhbGxlZCBgcHVyZWAgdG8gY3JlYXRlIHRoaXMgYWNjb3VudC45AS0gYGluZGV4YDogVGhlIGRpc2FtYmlndWF0aW9uIGluZGV4IG9yaWdpbmFsbHkgcGFzc2VkIHRvIGBwdXJlYC4gUHJvYmFibHkgYDBgLuwtIGBwcm94eV90eXBlYDogVGhlIHByb3h5IHR5cGUgb3JpZ2luYWxseSBwYXNzZWQgdG8gYHB1cmVgLikBLSBgaGVpZ2h0YDogVGhlIGhlaWdodCBvZiB0aGUgY2hhaW4gd2hlbiB0aGUgY2FsbCB0byBgcHVyZWAgd2FzIHByb2Nlc3NlZC41AS0gYGV4dF9pbmRleGA6IFRoZSBleHRyaW5zaWMgaW5kZXggaW4gd2hpY2ggdGhlIGNhbGwgdG8gYHB1cmVgIHdhcyBwcm9jZXNzZWQuADUBRmFpbHMgd2l0aCBgTm9QZXJtaXNzaW9uYCBpbiBjYXNlIHRoZSBjYWxsZXIgaXMgbm90IGEgcHJldmlvdXNseSBjcmVhdGVkIHB1cmXcYWNjb3VudCB3aG9zZSBgcHVyZWAgY2FsbCBoYXMgY29ycmVzcG9uZGluZyBwYXJhbWV0ZXJzLiBhbm5vdW5jZQgBEHJlYWwAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaDQBNENhbGxIYXNoT2Y8VD4ABjwFAVB1Ymxpc2ggdGhlIGhhc2ggb2YgYSBwcm94eS1jYWxsIHRoYXQgd2lsbCBiZSBtYWRlIGluIHRoZSBmdXR1cmUuAF0BVGhpcyBtdXN0IGJlIGNhbGxlZCBzb21lIG51bWJlciBvZiBibG9ja3MgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIGBwcm94eWAgaXMgYXR0ZW1wdGVkJQFpZiB0aGUgZGVsYXkgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm94eSByZWxhdGlvbnNoaXAgaXMgZ3JlYXRlciB0aGFuIHplcm8uABEBTm8gbW9yZSB0aGFuIGBNYXhQZW5kaW5nYCBhbm5vdW5jZW1lbnRzIG1heSBiZSBtYWRlIGF0IGFueSBvbmUgdGltZS4ACQFUaGlzIHdpbGwgdGFrZSBhIGRlcG9zaXQgb2YgYEFubm91bmNlbWVudERlcG9zaXRGYWN0b3JgIGFzIHdlbGwgYXMZAWBBbm5vdW5jZW1lbnREZXBvc2l0QmFzZWAgaWYgdGhlcmUgYXJlIG5vIG90aGVyIHBlbmRpbmcgYW5ub3VuY2VtZW50cy4AJQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgYSBwcm94eSBvZiBgcmVhbGAuACxQYXJhbWV0ZXJzOg0BLSBgcmVhbGA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIHByb3h5IHdpbGwgbWFrZSBhIGNhbGwgb24gYmVoYWxmIG9mLhUBLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZSBieSB0aGUgYHJlYWxgIGFjY291bnQuTHJlbW92ZV9hbm5vdW5jZW1lbnQIARByZWFsAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRjYWxsX2hhc2g0ATRDYWxsSGFzaE9mPFQ+AAcocFJlbW92ZSBhIGdpdmVuIGFubm91bmNlbWVudC4AWQFNYXkgYmUgY2FsbGVkIGJ5IGEgcHJveHkgYWNjb3VudCB0byByZW1vdmUgYSBjYWxsIHRoZXkgcHJldmlvdXNseSBhbm5vdW5jZWQgYW5kIHJldHVybjB0aGUgZGVwb3NpdC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi4VAS0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LkxyZWplY3RfYW5ub3VuY2VtZW50CAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaDQBNENhbGxIYXNoT2Y8VD4ACCiwUmVtb3ZlIHRoZSBnaXZlbiBhbm5vdW5jZW1lbnQgb2YgYSBkZWxlZ2F0ZS4AYQFNYXkgYmUgY2FsbGVkIGJ5IGEgdGFyZ2V0IChwcm94aWVkKSBhY2NvdW50IHRvIHJlbW92ZSBhIGNhbGwgdGhhdCBvbmUgb2YgdGhlaXIgZGVsZWdhdGVzJQEoYGRlbGVnYXRlYCkgaGFzIGFubm91bmNlZCB0aGV5IHdhbnQgdG8gZXhlY3V0ZS4gVGhlIGRlcG9zaXQgaXMgcmV0dXJuZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM69C0gYGRlbGVnYXRlYDogVGhlIGFjY291bnQgdGhhdCBwcmV2aW91c2x5IGFubm91bmNlZCB0aGUgY2FsbC68LSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZS48cHJveHlfYW5ub3VuY2VkEAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEHJlYWwAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABQGZvcmNlX3Byb3h5X3R5cGVdBQFQT3B0aW9uPFQ6OlByb3h5VHlwZT4AARBjYWxsfQQBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ACSxNAURpc3BhdGNoIHRoZSBnaXZlbiBgY2FsbGAgZnJvbSBhbiBhY2NvdW50IHRoYXQgdGhlIHNlbmRlciBpcyBhdXRob3JpemVkIGZvciB0aHJvdWdoMGBhZGRfcHJveHlgLgCoUmVtb3ZlcyBhbnkgY29ycmVzcG9uZGluZyBhbm5vdW5jZW1lbnQocykuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM6DQEtIGByZWFsYDogVGhlIGFjY291bnQgdGhhdCB0aGUgcHJveHkgd2lsbCBtYWtlIGEgY2FsbCBvbiBiZWhhbGYgb2YuYQEtIGBmb3JjZV9wcm94eV90eXBlYDogU3BlY2lmeSB0aGUgZXhhY3QgcHJveHkgdHlwZSB0byBiZSB1c2VkIGFuZCBjaGVja2VkIGZvciB0aGlzIGNhbGwu0C0gYGNhbGxgOiBUaGUgY2FsbCB0byBiZSBtYWRlIGJ5IHRoZSBgcmVhbGAgYWNjb3VudC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuXQUEGE9wdGlvbgQEVAHYAQgQTm9uZQAAABBTb21lBADYAAABAABhBQw8cGFsbGV0X211bHRpc2lnGHBhbGxldBBDYWxsBARUAAEQUGFzX211bHRpX3RocmVzaG9sZF8xCAFEb3RoZXJfc2lnbmF0b3JpZXOZAwFEVmVjPFQ6OkFjY291bnRJZD4AARBjYWxsfQQBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AADBRAUltbWVkaWF0ZWx5IGRpc3BhdGNoIGEgbXVsdGktc2lnbmF0dXJlIGNhbGwgdXNpbmcgYSBzaW5nbGUgYXBwcm92YWwgZnJvbSB0aGUgY2FsbGVyLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAD0BLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGFyZSBwYXJ0IG9mIHRoZQEBbXVsdGktc2lnbmF0dXJlLCBidXQgZG8gbm90IHBhcnRpY2lwYXRlIGluIHRoZSBhcHByb3ZhbCBwcm9jZXNzLogtIGBjYWxsYDogVGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuALhSZXN1bHQgaXMgZXF1aXZhbGVudCB0byB0aGUgZGlzcGF0Y2hlZCByZXN1bHQuADQjIyBDb21wbGV4aXR5GQFPKFogKyBDKSB3aGVyZSBaIGlzIHRoZSBsZW5ndGggb2YgdGhlIGNhbGwgYW5kIEMgaXRzIGV4ZWN1dGlvbiB3ZWlnaHQuIGFzX211bHRpFAEkdGhyZXNob2xk3AEMdTE2AAFEb3RoZXJfc2lnbmF0b3JpZXOZAwFEVmVjPFQ6OkFjY291bnRJZD4AATxtYXliZV90aW1lcG9pbnRlBQGQT3B0aW9uPFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4+AAEQY2FsbH0EAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEobWF4X3dlaWdodCgBGFdlaWdodAABnFUBUmVnaXN0ZXIgYXBwcm92YWwgZm9yIGEgZGlzcGF0Y2ggdG8gYmUgbWFkZSBmcm9tIGEgZGV0ZXJtaW5pc3RpYyBjb21wb3NpdGUgYWNjb3VudCBpZvhhcHByb3ZlZCBieSBhIHRvdGFsIG9mIGB0aHJlc2hvbGQgLSAxYCBvZiBgb3RoZXJfc2lnbmF0b3JpZXNgLgCwSWYgdGhlcmUgYXJlIGVub3VnaCwgdGhlbiBkaXNwYXRjaCB0aGUgY2FsbC4ALQFQYXltZW50OiBgRGVwb3NpdEJhc2VgIHdpbGwgYmUgcmVzZXJ2ZWQgaWYgdGhpcyBpcyB0aGUgZmlyc3QgYXBwcm92YWwsIHBsdXM9AWB0aHJlc2hvbGRgIHRpbWVzIGBEZXBvc2l0RmFjdG9yYC4gSXQgaXMgcmV0dXJuZWQgb25jZSB0aGlzIGRpc3BhdGNoIGhhcHBlbnMgb3I0aXMgY2FuY2VsbGVkLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAFUBLSBgdGhyZXNob2xkYDogVGhlIHRvdGFsIG51bWJlciBvZiBhcHByb3ZhbHMgZm9yIHRoaXMgZGlzcGF0Y2ggYmVmb3JlIGl0IGlzIGV4ZWN1dGVkLkEBLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGNhbiBhcHByb3ZlIHRoaXNsZGlzcGF0Y2guIE1heSBub3QgYmUgZW1wdHkuWQEtIGBtYXliZV90aW1lcG9pbnRgOiBJZiB0aGlzIGlzIHRoZSBmaXJzdCBhcHByb3ZhbCwgdGhlbiB0aGlzIG11c3QgYmUgYE5vbmVgLiBJZiBpdCBpc1EBbm90IHRoZSBmaXJzdCBhcHByb3ZhbCwgdGhlbiBpdCBtdXN0IGJlIGBTb21lYCwgd2l0aCB0aGUgdGltZXBvaW50IChibG9jayBudW1iZXIgYW5k1HRyYW5zYWN0aW9uIGluZGV4KSBvZiB0aGUgZmlyc3QgYXBwcm92YWwgdHJhbnNhY3Rpb24uiC0gYGNhbGxgOiBUaGUgY2FsbCB0byBiZSBleGVjdXRlZC4AHQFOT1RFOiBVbmxlc3MgdGhpcyBpcyB0aGUgZmluYWwgYXBwcm92YWwsIHlvdSB3aWxsIGdlbmVyYWxseSB3YW50IHRvIHVzZRkBYGFwcHJvdmVfYXNfbXVsdGlgIGluc3RlYWQsIHNpbmNlIGl0IG9ubHkgcmVxdWlyZXMgYSBoYXNoIG9mIHRoZSBjYWxsLgBZAVJlc3VsdCBpcyBlcXVpdmFsZW50IHRvIHRoZSBkaXNwYXRjaGVkIHJlc3VsdCBpZiBgdGhyZXNob2xkYCBpcyBleGFjdGx5IGAxYC4gT3RoZXJ3aXNlVQFvbiBzdWNjZXNzLCByZXN1bHQgaXMgYE9rYCBhbmQgdGhlIHJlc3VsdCBmcm9tIHRoZSBpbnRlcmlvciBjYWxsLCBpZiBpdCB3YXMgZXhlY3V0ZWQs3G1heSBiZSBmb3VuZCBpbiB0aGUgZGVwb3NpdGVkIGBNdWx0aXNpZ0V4ZWN1dGVkYCBldmVudC4ANCMjIENvbXBsZXhpdHlQLSBgTyhTICsgWiArIENhbGwpYC7MLSBVcCB0byBvbmUgYmFsYW5jZS1yZXNlcnZlIG9yIHVucmVzZXJ2ZSBvcGVyYXRpb24uPQEtIE9uZSBwYXNzdGhyb3VnaCBvcGVyYXRpb24sIG9uZSBpbnNlcnQsIGJvdGggYE8oUylgIHdoZXJlIGBTYCBpcyB0aGUgbnVtYmVyIG9mRQEgIHNpZ25hdG9yaWVzLiBgU2AgaXMgY2FwcGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggd2VpZ2h0IGJlaW5nIHByb3BvcnRpb25hbC4hAS0gT25lIGNhbGwgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFopYCB3aGVyZSBgWmAgaXMgdHgtbGVuLrwtIE9uZSBlbmNvZGUgJiBoYXNoLCBib3RoIG9mIGNvbXBsZXhpdHkgYE8oUylgLtQtIFVwIHRvIG9uZSBiaW5hcnkgc2VhcmNoIGFuZCBpbnNlcnQgKGBPKGxvZ1MgKyBTKWApLvgtIEkvTzogMSByZWFkIGBPKFMpYCwgdXAgdG8gMSBtdXRhdGUgYE8oUylgLiBVcCB0byBvbmUgcmVtb3ZlLjAtIE9uZSBldmVudC5sLSBUaGUgd2VpZ2h0IG9mIHRoZSBgY2FsbGAuTQEtIFN0b3JhZ2U6IGluc2VydHMgb25lIGl0ZW0sIHZhbHVlIHNpemUgYm91bmRlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIGEgZGVwb3NpdBkBICB0YWtlbiBmb3IgaXRzIGxpZmV0aW1lIG9mIGBEZXBvc2l0QmFzZSArIHRocmVzaG9sZCAqIERlcG9zaXRGYWN0b3JgLkBhcHByb3ZlX2FzX211bHRpFAEkdGhyZXNob2xk3AEMdTE2AAFEb3RoZXJfc2lnbmF0b3JpZXOZAwFEVmVjPFQ6OkFjY291bnRJZD4AATxtYXliZV90aW1lcG9pbnRlBQGQT3B0aW9uPFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4+AAEkY2FsbF9oYXNoBAEgW3U4OyAzMl0AAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AAJ4VQFSZWdpc3RlciBhcHByb3ZhbCBmb3IgYSBkaXNwYXRjaCB0byBiZSBtYWRlIGZyb20gYSBkZXRlcm1pbmlzdGljIGNvbXBvc2l0ZSBhY2NvdW50IGlm+GFwcHJvdmVkIGJ5IGEgdG90YWwgb2YgYHRocmVzaG9sZCAtIDFgIG9mIGBvdGhlcl9zaWduYXRvcmllc2AuAC0BUGF5bWVudDogYERlcG9zaXRCYXNlYCB3aWxsIGJlIHJlc2VydmVkIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCBwbHVzPQFgdGhyZXNob2xkYCB0aW1lcyBgRGVwb3NpdEZhY3RvcmAuIEl0IGlzIHJldHVybmVkIG9uY2UgdGhpcyBkaXNwYXRjaCBoYXBwZW5zIG9yNGlzIGNhbmNlbGxlZC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBVAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIGZvciB0aGlzIGRpc3BhdGNoIGJlZm9yZSBpdCBpcyBleGVjdXRlZC5BAS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBjYW4gYXBwcm92ZSB0aGlzbGRpc3BhdGNoLiBNYXkgbm90IGJlIGVtcHR5LlkBLSBgbWF5YmVfdGltZXBvaW50YDogSWYgdGhpcyBpcyB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gdGhpcyBtdXN0IGJlIGBOb25lYC4gSWYgaXQgaXNRAW5vdCB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gaXQgbXVzdCBiZSBgU29tZWAsIHdpdGggdGhlIHRpbWVwb2ludCAoYmxvY2sgbnVtYmVyIGFuZNR0cmFuc2FjdGlvbiBpbmRleCkgb2YgdGhlIGZpcnN0IGFwcHJvdmFsIHRyYW5zYWN0aW9uLswtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBleGVjdXRlZC4ANQFOT1RFOiBJZiB0aGlzIGlzIHRoZSBmaW5hbCBhcHByb3ZhbCwgeW91IHdpbGwgd2FudCB0byB1c2UgYGFzX211bHRpYCBpbnN0ZWFkLgA0IyMgQ29tcGxleGl0eSQtIGBPKFMpYC7MLSBVcCB0byBvbmUgYmFsYW5jZS1yZXNlcnZlIG9yIHVucmVzZXJ2ZSBvcGVyYXRpb24uPQEtIE9uZSBwYXNzdGhyb3VnaCBvcGVyYXRpb24sIG9uZSBpbnNlcnQsIGJvdGggYE8oUylgIHdoZXJlIGBTYCBpcyB0aGUgbnVtYmVyIG9mRQEgIHNpZ25hdG9yaWVzLiBgU2AgaXMgY2FwcGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggd2VpZ2h0IGJlaW5nIHByb3BvcnRpb25hbC68LSBPbmUgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFMpYC7ULSBVcCB0byBvbmUgYmluYXJ5IHNlYXJjaCBhbmQgaW5zZXJ0IChgTyhsb2dTICsgUylgKS74LSBJL086IDEgcmVhZCBgTyhTKWAsIHVwIHRvIDEgbXV0YXRlIGBPKFMpYC4gVXAgdG8gb25lIHJlbW92ZS4wLSBPbmUgZXZlbnQuTQEtIFN0b3JhZ2U6IGluc2VydHMgb25lIGl0ZW0sIHZhbHVlIHNpemUgYm91bmRlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIGEgZGVwb3NpdBkBICB0YWtlbiBmb3IgaXRzIGxpZmV0aW1lIG9mIGBEZXBvc2l0QmFzZSArIHRocmVzaG9sZCAqIERlcG9zaXRGYWN0b3JgLjxjYW5jZWxfYXNfbXVsdGkQASR0aHJlc2hvbGTcAQx1MTYAAURvdGhlcl9zaWduYXRvcmllc5kDAURWZWM8VDo6QWNjb3VudElkPgABJHRpbWVwb2ludOQBcFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4AASRjYWxsX2hhc2gEASBbdTg7IDMyXQADVFUBQ2FuY2VsIGEgcHJlLWV4aXN0aW5nLCBvbi1nb2luZyBtdWx0aXNpZyB0cmFuc2FjdGlvbi4gQW55IGRlcG9zaXQgcmVzZXJ2ZWQgcHJldmlvdXNsecRmb3IgdGhpcyBvcGVyYXRpb24gd2lsbCBiZSB1bnJlc2VydmVkIG9uIHN1Y2Nlc3MuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AVQEtIGB0aHJlc2hvbGRgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGFwcHJvdmFscyBmb3IgdGhpcyBkaXNwYXRjaCBiZWZvcmUgaXQgaXMgZXhlY3V0ZWQuQQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gY2FuIGFwcHJvdmUgdGhpc2xkaXNwYXRjaC4gTWF5IG5vdCBiZSBlbXB0eS5dAS0gYHRpbWVwb2ludGA6IFRoZSB0aW1lcG9pbnQgKGJsb2NrIG51bWJlciBhbmQgdHJhbnNhY3Rpb24gaW5kZXgpIG9mIHRoZSBmaXJzdCBhcHByb3ZhbHh0cmFuc2FjdGlvbiBmb3IgdGhpcyBkaXNwYXRjaC7MLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuADQjIyBDb21wbGV4aXR5JC0gYE8oUylgLswtIFVwIHRvIG9uZSBiYWxhbmNlLXJlc2VydmUgb3IgdW5yZXNlcnZlIG9wZXJhdGlvbi49AS0gT25lIHBhc3N0aHJvdWdoIG9wZXJhdGlvbiwgb25lIGluc2VydCwgYm90aCBgTyhTKWAgd2hlcmUgYFNgIGlzIHRoZSBudW1iZXIgb2ZFASAgc2lnbmF0b3JpZXMuIGBTYCBpcyBjYXBwZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCB3ZWlnaHQgYmVpbmcgcHJvcG9ydGlvbmFsLrwtIE9uZSBlbmNvZGUgJiBoYXNoLCBib3RoIG9mIGNvbXBsZXhpdHkgYE8oUylgLjAtIE9uZSBldmVudC6ELSBJL086IDEgcmVhZCBgTyhTKWAsIG9uZSByZW1vdmUucC0gU3RvcmFnZTogcmVtb3ZlcyBvbmUgaXRlbS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuZQUEGE9wdGlvbgQEVAHkAQgQTm9uZQAAABBTb21lBADkAAABAABpBQw4cGFsbGV0X3VuaXF1ZXMYcGFsbGV0EENhbGwIBFQABEkAAWgYY3JlYXRlCAEoY29sbGVjdGlvbhgBPFQ6OkNvbGxlY3Rpb25JZAABFGFkbWluAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAEAJAUlzc3VlIGEgbmV3IGNvbGxlY3Rpb24gb2Ygbm9uLWZ1bmdpYmxlIGl0ZW1zIGZyb20gYSBwdWJsaWMgb3JpZ2luLgAdAVRoaXMgbmV3IGNvbGxlY3Rpb24gaGFzIG5vIGl0ZW1zIGluaXRpYWxseSBhbmQgaXRzIG93bmVyIGlzIHRoZSBvcmlnaW4uAGEBVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gdGhlIGNvbmZpZ3VyZWQgYENyZWF0ZU9yaWdpbmAgYW5kIGhhdmUgc3VmZmljaWVudCBmdW5kcyBmcmVlLgCsYEl0ZW1EZXBvc2l0YCBmdW5kcyBvZiBzZW5kZXIgYXJlIHJlc2VydmVkLgAsUGFyYW1ldGVyczphAS0gYGNvbGxlY3Rpb25gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgbmV3IGNvbGxlY3Rpb24uIFRoaXMgbXVzdCBub3QgYmUgY3VycmVudGx5IGluIHVzZS5FAS0gYGFkbWluYDogVGhlIGFkbWluIG9mIHRoaXMgY29sbGVjdGlvbi4gVGhlIGFkbWluIGlzIHRoZSBpbml0aWFsIGFkZHJlc3Mgb2YgZWFjaJhtZW1iZXIgb2YgdGhlIGNvbGxlY3Rpb24ncyBhZG1pbiB0ZWFtLgCYRW1pdHMgYENyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgMGZvcmNlX2NyZWF0ZQwBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEwZnJlZV9ob2xkaW5nIAEQYm9vbAABRBkBSXNzdWUgYSBuZXcgY29sbGVjdGlvbiBvZiBub24tZnVuZ2libGUgaXRlbXMgZnJvbSBhIHByaXZpbGVnZWQgb3JpZ2luLgCsVGhpcyBuZXcgY29sbGVjdGlvbiBoYXMgbm8gaXRlbXMgaW5pdGlhbGx5LgCkVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gYEZvcmNlT3JpZ2luYC4AnFVubGlrZSBgY3JlYXRlYCwgbm8gZnVuZHMgYXJlIHJlc2VydmVkLgBJAS0gYGNvbGxlY3Rpb25gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgbmV3IGl0ZW0uIFRoaXMgbXVzdCBub3QgYmUgY3VycmVudGx5IGluIHVzZS45AS0gYG93bmVyYDogVGhlIG93bmVyIG9mIHRoaXMgY29sbGVjdGlvbiBvZiBpdGVtcy4gVGhlIG93bmVyIGhhcyBmdWxsIHN1cGVydXNlcjQgIHBlcm1pc3Npb25zIQFvdmVyIHRoaXMgaXRlbSwgYnV0IG1heSBsYXRlciBjaGFuZ2UgYW5kIGNvbmZpZ3VyZSB0aGUgcGVybWlzc2lvbnMgdXNpbmeQYHRyYW5zZmVyX293bmVyc2hpcGAgYW5kIGBzZXRfdGVhbWAuAKxFbWl0cyBgRm9yY2VDcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADhXZWlnaHQ6IGBPKDEpYBxkZXN0cm95CAEoY29sbGVjdGlvbhgBPFQ6OkNvbGxlY3Rpb25JZAABHHdpdG5lc3NtBQE4RGVzdHJveVdpdG5lc3MAAjycRGVzdHJveSBhIGNvbGxlY3Rpb24gb2YgZnVuZ2libGUgaXRlbXMuAF0BVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gYEZvcmNlT3JpZ2luYCBvciBtdXN0IGJlIGBTaWduZWRgIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlaG93bmVyIG9mIHRoZSBgY29sbGVjdGlvbmAuAAUBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHRvIGJlIGRlc3Ryb3llZC4xAS0gYHdpdG5lc3NgOiBJbmZvcm1hdGlvbiBvbiB0aGUgaXRlbXMgbWludGVkIGluIHRoZSBjb2xsZWN0aW9uLiBUaGlzIG11c3QgYmUgY29ycmVjdC4AoEVtaXRzIGBEZXN0cm95ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AZFdlaWdodDogYE8obiArIG0pYCB3aGVyZTpULSBgbiA9IHdpdG5lc3MuaXRlbXNgeC0gYG0gPSB3aXRuZXNzLml0ZW1fbWV0YWRhdGFzYGgtIGBhID0gd2l0bmVzcy5hdHRyaWJ1dGVzYBBtaW50DAEoY29sbGVjdGlvbhgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW0YASRUOjpJdGVtSWQAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAMsoE1pbnQgYW4gaXRlbSBvZiBhIHBhcnRpY3VsYXIgY29sbGVjdGlvbi4AQQFUaGUgb3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIElzc3VlciBvZiB0aGUgYGNvbGxlY3Rpb25gLgDgLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIHRvIGJlIG1pbnRlZC7ILSBgaXRlbWA6IFRoZSBpdGVtIHZhbHVlIG9mIHRoZSBpdGVtIHRvIGJlIG1pbnRlZC7YLSBgYmVuZWZpY2lhcnlgOiBUaGUgaW5pdGlhbCBvd25lciBvZiB0aGUgbWludGVkIGl0ZW0uAJRFbWl0cyBgSXNzdWVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADhXZWlnaHQ6IGBPKDEpYBBidXJuDAEoY29sbGVjdGlvbhgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW0YASRUOjpJdGVtSWQAASxjaGVja19vd25lcgEBAXBPcHRpb248QWNjb3VudElkTG9va3VwT2Y8VD4+AAQ8WERlc3Ryb3kgYSBzaW5nbGUgaXRlbS4A9E9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNpZ25pbmcgYWNjb3VudCBtdXN0IGJlIGVpdGhlcjqALSB0aGUgQWRtaW4gb2YgdGhlIGBjb2xsZWN0aW9uYDtoLSB0aGUgT3duZXIgb2YgdGhlIGBpdGVtYDsA4C0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbSB0byBiZSBidXJuZWQusC0gYGl0ZW1gOiBUaGUgaXRlbSBvZiB0aGUgaXRlbSB0byBiZSBidXJuZWQuUQEtIGBjaGVja19vd25lcmA6IElmIGBTb21lYCB0aGVuIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggYFdyb25nT3duZXJgIHVubGVzcyB0aGV4ICBpdGVtIGlzIG93bmVkIGJ5IHRoaXMgdmFsdWUuALRFbWl0cyBgQnVybmVkYCB3aXRoIHRoZSBhY3R1YWwgYW1vdW50IGJ1cm5lZC4AOFdlaWdodDogYE8oMSlgfE1vZGVzOiBgY2hlY2tfb3duZXIuaXNfc29tZSgpYC4gdHJhbnNmZXIMAShjb2xsZWN0aW9uGAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbRgBJFQ6Okl0ZW1JZAABEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAFRMBNb3ZlIGFuIGl0ZW0gZnJvbSB0aGUgc2VuZGVyIGFjY291bnQgdG8gYW5vdGhlci4AtFRoaXMgcmVzZXRzIHRoZSBhcHByb3ZlZCBhY2NvdW50IG9mIHRoZSBpdGVtLgD0T3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2lnbmluZyBhY2NvdW50IG11c3QgYmUgZWl0aGVyOoAtIHRoZSBBZG1pbiBvZiB0aGUgYGNvbGxlY3Rpb25gO2gtIHRoZSBPd25lciBvZiB0aGUgYGl0ZW1gOzUBLSB0aGUgYXBwcm92ZWQgZGVsZWdhdGUgZm9yIHRoZSBgaXRlbWAgKGluIHRoaXMgY2FzZSwgdGhlIGFwcHJvdmFsIGlzIHJlc2V0KS4AKEFyZ3VtZW50czr0LSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIHRvIGJlIHRyYW5zZmVycmVkLsQtIGBpdGVtYDogVGhlIGl0ZW0gb2YgdGhlIGl0ZW0gdG8gYmUgdHJhbnNmZXJyZWQu3C0gYGRlc3RgOiBUaGUgYWNjb3VudCB0byByZWNlaXZlIG93bmVyc2hpcCBvZiB0aGUgaXRlbS4AUEVtaXRzIGBUcmFuc2ZlcnJlZGAuADhXZWlnaHQ6IGBPKDEpYCRyZWRlcG9zaXQIAShjb2xsZWN0aW9uGAE8VDo6Q29sbGVjdGlvbklkAAEUaXRlbXPwAThWZWM8VDo6SXRlbUlkPgAGRJhSZWV2YWx1YXRlIHRoZSBkZXBvc2l0cyBvbiBzb21lIGl0ZW1zLgA1AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZSBgY29sbGVjdGlvbmAuALAtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gdG8gYmUgZnJvemVuLikBLSBgaXRlbXNgOiBUaGUgaXRlbXMgb2YgdGhlIGNvbGxlY3Rpb24gd2hvc2UgZGVwb3NpdHMgd2lsbCBiZSByZWV2YWx1YXRlZC4ALQFOT1RFOiBUaGlzIGV4aXN0cyBhcyBhIGJlc3QtZWZmb3J0IGZ1bmN0aW9uLiBBbnkgaXRlbXMgd2hpY2ggYXJlIHVua25vd24gb3I5AWluIHRoZSBjYXNlIHRoYXQgdGhlIG93bmVyIGFjY291bnQgZG9lcyBub3QgaGF2ZSByZXNlcnZhYmxlIGZ1bmRzIHRvIHBheSBmb3IgYU0BZGVwb3NpdCBpbmNyZWFzZSBhcmUgaWdub3JlZC4gR2VuZXJhbGx5IHRoZSBvd25lciBpc24ndCBnb2luZyB0byBjYWxsIHRoaXMgb24gaXRlbXNVAXdob3NlIGV4aXN0aW5nIGRlcG9zaXQgaXMgbGVzcyB0aGFuIHRoZSByZWZyZXNoZWQgZGVwb3NpdCBhcyBpdCB3b3VsZCBvbmx5IGNvc3QgdGhlbSx4c28gaXQncyBvZiBsaXR0bGUgY29uc2VxdWVuY2UuAFkBSXQgd2lsbCBzdGlsbCByZXR1cm4gYW4gZXJyb3IgaW4gdGhlIGNhc2UgdGhhdCB0aGUgY29sbGVjdGlvbiBpcyB1bmtub3duIG9mIHRoZSBzaWduZXJwaXMgbm90IHBlcm1pdHRlZCB0byBjYWxsIGl0LgBgV2VpZ2h0OiBgTyhpdGVtcy5sZW4oKSlgGGZyZWV6ZQgBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtGAEkVDo6SXRlbUlkAAcoyERpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVyIG9mIGFuIGl0ZW0uAD0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgRnJlZXplciBvZiB0aGUgYGNvbGxlY3Rpb25gLgDgLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIHRvIGJlIGZyb3plbi6wLSBgaXRlbWA6IFRoZSBpdGVtIG9mIHRoZSBpdGVtIHRvIGJlIGZyb3plbi4APEVtaXRzIGBGcm96ZW5gLgA4V2VpZ2h0OiBgTygxKWAQdGhhdwgBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtGAEkVDo6SXRlbUlkAAgoqFJlLWFsbG93IHVucHJpdmlsZWdlZCB0cmFuc2ZlciBvZiBhbiBpdGVtLgA9AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEZyZWV6ZXIgb2YgdGhlIGBjb2xsZWN0aW9uYC4A4C0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbSB0byBiZSB0aGF3ZWQusC0gYGl0ZW1gOiBUaGUgaXRlbSBvZiB0aGUgaXRlbSB0byBiZSB0aGF3ZWQuADxFbWl0cyBgVGhhd2VkYC4AOFdlaWdodDogYE8oMSlgRGZyZWV6ZV9jb2xsZWN0aW9uBAEoY29sbGVjdGlvbhgBPFQ6OkNvbGxlY3Rpb25JZAAJJPxEaXNhbGxvdyBmdXJ0aGVyIHVucHJpdmlsZWdlZCB0cmFuc2ZlcnMgZm9yIGEgd2hvbGUgY29sbGVjdGlvbi4APQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBGcmVlemVyIG9mIHRoZSBgY29sbGVjdGlvbmAuALAtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gdG8gYmUgZnJvemVuLgBkRW1pdHMgYENvbGxlY3Rpb25Gcm96ZW5gLgA4V2VpZ2h0OiBgTygxKWA8dGhhd19jb2xsZWN0aW9uBAEoY29sbGVjdGlvbhgBPFQ6OkNvbGxlY3Rpb25JZAAKJNxSZS1hbGxvdyB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIGZvciBhIHdob2xlIGNvbGxlY3Rpb24uADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGBjb2xsZWN0aW9uYC4AsC0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiB0byBiZSB0aGF3ZWQuAGRFbWl0cyBgQ29sbGVjdGlvblRoYXdlZGAuADhXZWlnaHQ6IGBPKDEpYEh0cmFuc2Zlcl9vd25lcnNoaXAIAShjb2xsZWN0aW9uGAE8VDo6Q29sbGVjdGlvbklkAAEkbmV3X293bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ACyyEQ2hhbmdlIHRoZSBPd25lciBvZiBhIGNvbGxlY3Rpb24uADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlIGBjb2xsZWN0aW9uYC4A9C0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiB3aG9zZSBvd25lciBzaG91bGQgYmUgY2hhbmdlZC4JAS0gYG93bmVyYDogVGhlIG5ldyBPd25lciBvZiB0aGlzIGNvbGxlY3Rpb24uIFRoZXkgbXVzdCBoYXZlIGNhbGxlZEkBICBgc2V0X2FjY2VwdF9vd25lcnNoaXBgIHdpdGggYGNvbGxlY3Rpb25gIGluIG9yZGVyIGZvciB0aGlzIG9wZXJhdGlvbiB0byBzdWNjZWVkLgBURW1pdHMgYE93bmVyQ2hhbmdlZGAuADhXZWlnaHQ6IGBPKDEpYCBzZXRfdGVhbRABKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARhpc3N1ZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGFkbWluAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxmcmVlemVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ADDDUQ2hhbmdlIHRoZSBJc3N1ZXIsIEFkbWluIGFuZCBGcmVlemVyIG9mIGEgY29sbGVjdGlvbi4ANQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYGNvbGxlY3Rpb25gLgDwLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIHdob3NlIHRlYW0gc2hvdWxkIGJlIGNoYW5nZWQuuC0gYGlzc3VlcmA6IFRoZSBuZXcgSXNzdWVyIG9mIHRoaXMgY29sbGVjdGlvbi6wLSBgYWRtaW5gOiBUaGUgbmV3IEFkbWluIG9mIHRoaXMgY29sbGVjdGlvbi7ALSBgZnJlZXplcmA6IFRoZSBuZXcgRnJlZXplciBvZiB0aGlzIGNvbGxlY3Rpb24uAFBFbWl0cyBgVGVhbUNoYW5nZWRgLgA4V2VpZ2h0OiBgTygxKWBAYXBwcm92ZV90cmFuc2ZlcgwBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtGAEkVDo6SXRlbUlkAAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgANOBUBQXBwcm92ZSBhbiBpdGVtIHRvIGJlIHRyYW5zZmVycmVkIGJ5IGEgZGVsZWdhdGVkIHRoaXJkLXBhcnR5IGFjY291bnQuAE0BVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gYEZvcmNlT3JpZ2luYCBvciBtdXN0IGJlIGBTaWduZWRgIGFuZCB0aGUgc2VuZGVyIG11c3QgYmX4ZWl0aGVyIHRoZSBvd25lciBvZiB0aGUgYGl0ZW1gIG9yIHRoZSBhZG1pbiBvZiB0aGUgY29sbGVjdGlvbi4ARQEtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0gdG8gYmUgYXBwcm92ZWQgZm9yIGRlbGVnYXRlZCB0cmFuc2Zlci4VAS0gYGl0ZW1gOiBUaGUgaXRlbSBvZiB0aGUgaXRlbSB0byBiZSBhcHByb3ZlZCBmb3IgZGVsZWdhdGVkIHRyYW5zZmVyLhkBLSBgZGVsZWdhdGVgOiBUaGUgYWNjb3VudCB0byBkZWxlZ2F0ZSBwZXJtaXNzaW9uIHRvIHRyYW5zZmVyIHRoZSBpdGVtLgAZAUltcG9ydGFudCBOT1RFOiBUaGUgYGFwcHJvdmVkYCBhY2NvdW50IGdldHMgcmVzZXQgYWZ0ZXIgZWFjaCB0cmFuc2Zlci4AkEVtaXRzIGBBcHByb3ZlZFRyYW5zZmVyYCBvbiBzdWNjZXNzLgA4V2VpZ2h0OiBgTygxKWA8Y2FuY2VsX2FwcHJvdmFsDAEoY29sbGVjdGlvbhgBPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW0YASRUOjpJdGVtSWQAAVBtYXliZV9jaGVja19kZWxlZ2F0ZQEBAXBPcHRpb248QWNjb3VudElkTG9va3VwT2Y8VD4+AA5AEQFDYW5jZWwgdGhlIHByaW9yIGFwcHJvdmFsIGZvciB0aGUgdHJhbnNmZXIgb2YgYW4gaXRlbSBieSBhIGRlbGVnYXRlLgBYT3JpZ2luIG11c3QgYmUgZWl0aGVyOlQtIHRoZSBgRm9yY2VgIG9yaWdpbjv8LSBgU2lnbmVkYCB3aXRoIHRoZSBzaWduZXIgYmVpbmcgdGhlIEFkbWluIG9mIHRoZSBgY29sbGVjdGlvbmA75C0gYFNpZ25lZGAgd2l0aCB0aGUgc2lnbmVyIGJlaW5nIHRoZSBPd25lciBvZiB0aGUgYGl0ZW1gOwAoQXJndW1lbnRzOj0BLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIG9mIHdob3NlIGFwcHJvdmFsIHdpbGwgYmUgY2FuY2VsbGVkLg0BLSBgaXRlbWA6IFRoZSBpdGVtIG9mIHRoZSBpdGVtIG9mIHdob3NlIGFwcHJvdmFsIHdpbGwgYmUgY2FuY2VsbGVkLlEBLSBgbWF5YmVfY2hlY2tfZGVsZWdhdGVgOiBJZiBgU29tZWAgd2lsbCBlbnN1cmUgdGhhdCB0aGUgZ2l2ZW4gYWNjb3VudCBpcyB0aGUgb25lIHRvsCAgd2hpY2ggcGVybWlzc2lvbiBvZiB0cmFuc2ZlciBpcyBkZWxlZ2F0ZWQuAJRFbWl0cyBgQXBwcm92YWxDYW5jZWxsZWRgIG9uIHN1Y2Nlc3MuADhXZWlnaHQ6IGBPKDEpYERmb3JjZV9pdGVtX3N0YXR1cxwBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYaXNzdWVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRhZG1pbgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEcZnJlZXplcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEwZnJlZV9ob2xkaW5nIAEQYm9vbAABJGlzX2Zyb3plbiABEGJvb2wAD0CUQWx0ZXIgdGhlIGF0dHJpYnV0ZXMgb2YgYSBnaXZlbiBpdGVtLgB0T3JpZ2luIG11c3QgYmUgYEZvcmNlT3JpZ2luYC4ArC0gYGNvbGxlY3Rpb25gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgaXRlbS6YLSBgb3duZXJgOiBUaGUgbmV3IE93bmVyIG9mIHRoaXMgaXRlbS6gLSBgaXNzdWVyYDogVGhlIG5ldyBJc3N1ZXIgb2YgdGhpcyBpdGVtLpgtIGBhZG1pbmA6IFRoZSBuZXcgQWRtaW4gb2YgdGhpcyBpdGVtLqgtIGBmcmVlemVyYDogVGhlIG5ldyBGcmVlemVyIG9mIHRoaXMgaXRlbS5RAS0gYGZyZWVfaG9sZGluZ2A6IFdoZXRoZXIgYSBkZXBvc2l0IGlzIHRha2VuIGZvciBob2xkaW5nIGFuIGl0ZW0gb2YgdGhpcyBjb2xsZWN0aW9uLjkBLSBgaXNfZnJvemVuYDogV2hldGhlciB0aGlzIGNvbGxlY3Rpb24gaXMgZnJvemVuIGV4Y2VwdCBmb3IgcGVybWlzc2lvbmVkL2FkbWluNGluc3RydWN0aW9ucy4A4EVtaXRzIGBJdGVtU3RhdHVzQ2hhbmdlZGAgd2l0aCB0aGUgaWRlbnRpdHkgb2YgdGhlIGl0ZW0uADhXZWlnaHQ6IGBPKDEpYDRzZXRfYXR0cmlidXRlEAEoY29sbGVjdGlvbhgBPFQ6OkNvbGxlY3Rpb25JZAABKG1heWJlX2l0ZW30AURPcHRpb248VDo6SXRlbUlkPgABDGtlefgBbEJvdW5kZWRWZWM8dTgsIFQ6OktleUxpbWl0PgABFHZhbHVl/AF0Qm91bmRlZFZlYzx1OCwgVDo6VmFsdWVMaW1pdD4AEESoU2V0IGFuIGF0dHJpYnV0ZSBmb3IgYSBjb2xsZWN0aW9uIG9yIGl0ZW0uAF0BT3JpZ2luIG11c3QgYmUgZWl0aGVyIGBGb3JjZU9yaWdpbmAgb3IgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlNGBjb2xsZWN0aW9uYC4AUQFJZiB0aGUgb3JpZ2luIGlzIFNpZ25lZCwgdGhlbiBmdW5kcyBvZiBzaWduZXIgYXJlIHJlc2VydmVkIGFjY29yZGluZyB0byB0aGUgZm9ybXVsYTopAWBNZXRhZGF0YURlcG9zaXRCYXNlICsgRGVwb3NpdFBlckJ5dGUgKiAoa2V5LmxlbiArIHZhbHVlLmxlbilgIHRha2luZyBpbnRvjGFjY291bnQgYW55IGFscmVhZHkgcmVzZXJ2ZWQgZnVuZHMuADkBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHdob3NlIGl0ZW0ncyBtZXRhZGF0YSB0byBzZXQuBQEtIGBtYXliZV9pdGVtYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGl0ZW0gd2hvc2UgbWV0YWRhdGEgdG8gc2V0LogtIGBrZXlgOiBUaGUga2V5IG9mIHRoZSBhdHRyaWJ1dGUuzC0gYHZhbHVlYDogVGhlIHZhbHVlIHRvIHdoaWNoIHRvIHNldCB0aGUgYXR0cmlidXRlLgBURW1pdHMgYEF0dHJpYnV0ZVNldGAuADhXZWlnaHQ6IGBPKDEpYDxjbGVhcl9hdHRyaWJ1dGUMAShjb2xsZWN0aW9uGAE8VDo6Q29sbGVjdGlvbklkAAEobWF5YmVfaXRlbfQBRE9wdGlvbjxUOjpJdGVtSWQ+AAEMa2V5+AFsQm91bmRlZFZlYzx1OCwgVDo6S2V5TGltaXQ+ABE4sENsZWFyIGFuIGF0dHJpYnV0ZSBmb3IgYSBjb2xsZWN0aW9uIG9yIGl0ZW0uAF0BT3JpZ2luIG11c3QgYmUgZWl0aGVyIGBGb3JjZU9yaWdpbmAgb3IgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlNGBjb2xsZWN0aW9uYC4AwEFueSBkZXBvc2l0IGlzIGZyZWVkIGZvciB0aGUgY29sbGVjdGlvbidzIG93bmVyLgBBAS0gYGNvbGxlY3Rpb25gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgY29sbGVjdGlvbiB3aG9zZSBpdGVtJ3MgbWV0YWRhdGEgdG8gY2xlYXIuDQEtIGBtYXliZV9pdGVtYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGl0ZW0gd2hvc2UgbWV0YWRhdGEgdG8gY2xlYXIuiC0gYGtleWA6IFRoZSBrZXkgb2YgdGhlIGF0dHJpYnV0ZS4AZEVtaXRzIGBBdHRyaWJ1dGVDbGVhcmVkYC4AOFdlaWdodDogYE8oMSlgMHNldF9tZXRhZGF0YRABKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtGAEkVDo6SXRlbUlkAAEQZGF0YewBeEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0PgABJGlzX2Zyb3plbiABEGJvb2wAEkR0U2V0IHRoZSBtZXRhZGF0YSBmb3IgYW4gaXRlbS4AXQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGU0YGNvbGxlY3Rpb25gLgBRAUlmIHRoZSBvcmlnaW4gaXMgU2lnbmVkLCB0aGVuIGZ1bmRzIG9mIHNpZ25lciBhcmUgcmVzZXJ2ZWQgYWNjb3JkaW5nIHRvIHRoZSBmb3JtdWxhOvRgTWV0YWRhdGFEZXBvc2l0QmFzZSArIERlcG9zaXRQZXJCeXRlICogZGF0YS5sZW5gIHRha2luZyBpbnRvjGFjY291bnQgYW55IGFscmVhZHkgcmVzZXJ2ZWQgZnVuZHMuADkBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHdob3NlIGl0ZW0ncyBtZXRhZGF0YSB0byBzZXQu7C0gYGl0ZW1gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgaXRlbSB3aG9zZSBtZXRhZGF0YSB0byBzZXQuTQEtIGBkYXRhYDogVGhlIGdlbmVyYWwgaW5mb3JtYXRpb24gb2YgdGhpcyBpdGVtLiBMaW1pdGVkIGluIGxlbmd0aCBieSBgU3RyaW5nTGltaXRgLjUBLSBgaXNfZnJvemVuYDogV2hldGhlciB0aGUgbWV0YWRhdGEgc2hvdWxkIGJlIGZyb3plbiBhZ2FpbnN0IGZ1cnRoZXIgY2hhbmdlcy4AUEVtaXRzIGBNZXRhZGF0YVNldGAuADhXZWlnaHQ6IGBPKDEpYDhjbGVhcl9tZXRhZGF0YQgBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtGAEkVDo6SXRlbUlkABM0fENsZWFyIHRoZSBtZXRhZGF0YSBmb3IgYW4gaXRlbS4AXQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUcYGl0ZW1gLgDAQW55IGRlcG9zaXQgaXMgZnJlZWQgZm9yIHRoZSBjb2xsZWN0aW9uJ3Mgb3duZXIuAEEBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHdob3NlIGl0ZW0ncyBtZXRhZGF0YSB0byBjbGVhci70LSBgaXRlbWA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBpdGVtIHdob3NlIG1ldGFkYXRhIHRvIGNsZWFyLgBgRW1pdHMgYE1ldGFkYXRhQ2xlYXJlZGAuADhXZWlnaHQ6IGBPKDEpYFxzZXRfY29sbGVjdGlvbl9tZXRhZGF0YQwBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARBkYXRh7AF4Qm91bmRlZFZlYzx1OCwgVDo6U3RyaW5nTGltaXQ+AAEkaXNfZnJvemVuIAEQYm9vbAAUQIhTZXQgdGhlIG1ldGFkYXRhIGZvciBhIGNvbGxlY3Rpb24uAFUBT3JpZ2luIG11c3QgYmUgZWl0aGVyIGBGb3JjZU9yaWdpbmAgb3IgYFNpZ25lZGAgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZkR0aGUgYGNvbGxlY3Rpb25gLgBZAUlmIHRoZSBvcmlnaW4gaXMgYFNpZ25lZGAsIHRoZW4gZnVuZHMgb2Ygc2lnbmVyIGFyZSByZXNlcnZlZCBhY2NvcmRpbmcgdG8gdGhlIGZvcm11bGE69GBNZXRhZGF0YURlcG9zaXRCYXNlICsgRGVwb3NpdFBlckJ5dGUgKiBkYXRhLmxlbmAgdGFraW5nIGludG+MYWNjb3VudCBhbnkgYWxyZWFkeSByZXNlcnZlZCBmdW5kcy4AEQEtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGl0ZW0gd2hvc2UgbWV0YWRhdGEgdG8gdXBkYXRlLk0BLSBgZGF0YWA6IFRoZSBnZW5lcmFsIGluZm9ybWF0aW9uIG9mIHRoaXMgaXRlbS4gTGltaXRlZCBpbiBsZW5ndGggYnkgYFN0cmluZ0xpbWl0YC41AS0gYGlzX2Zyb3plbmA6IFdoZXRoZXIgdGhlIG1ldGFkYXRhIHNob3VsZCBiZSBmcm96ZW4gYWdhaW5zdCBmdXJ0aGVyIGNoYW5nZXMuAHhFbWl0cyBgQ29sbGVjdGlvbk1ldGFkYXRhU2V0YC4AOFdlaWdodDogYE8oMSlgZGNsZWFyX2NvbGxlY3Rpb25fbWV0YWRhdGEEAShjb2xsZWN0aW9uGAE8VDo6Q29sbGVjdGlvbklkABUwkENsZWFyIHRoZSBtZXRhZGF0YSBmb3IgYSBjb2xsZWN0aW9uLgBVAU9yaWdpbiBtdXN0IGJlIGVpdGhlciBgRm9yY2VPcmlnaW5gIG9yIGBTaWduZWRgIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2ZEdGhlIGBjb2xsZWN0aW9uYC4AwEFueSBkZXBvc2l0IGlzIGZyZWVkIGZvciB0aGUgY29sbGVjdGlvbidzIG93bmVyLgAlAS0gYGNvbGxlY3Rpb25gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgY29sbGVjdGlvbiB3aG9zZSBtZXRhZGF0YSB0byBjbGVhci4AiEVtaXRzIGBDb2xsZWN0aW9uTWV0YWRhdGFDbGVhcmVkYC4AOFdlaWdodDogYE8oMSlgUHNldF9hY2NlcHRfb3duZXJzaGlwBAFAbWF5YmVfY29sbGVjdGlvbvQBXE9wdGlvbjxUOjpDb2xsZWN0aW9uSWQ+ABYoEQFTZXQgKG9yIHJlc2V0KSB0aGUgYWNjZXB0YW5jZSBvZiBvd25lcnNoaXAgZm9yIGEgcGFydGljdWxhciBhY2NvdW50LgBhAU9yaWdpbiBtdXN0IGJlIGBTaWduZWRgIGFuZCBpZiBgbWF5YmVfY29sbGVjdGlvbmAgaXMgYFNvbWVgLCB0aGVuIHRoZSBzaWduZXIgbXVzdCBoYXZlIGFMcHJvdmlkZXIgcmVmZXJlbmNlLgBRAS0gYG1heWJlX2NvbGxlY3Rpb25gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgY29sbGVjdGlvbiB3aG9zZSBvd25lcnNoaXAgdGhlIHNpZ25lciBpc2EBICB3aWxsaW5nIHRvIGFjY2VwdCwgb3IgaWYgYE5vbmVgLCBhbiBpbmRpY2F0aW9uIHRoYXQgdGhlIHNpZ25lciBpcyB3aWxsaW5nIHRvIGFjY2VwdCBub1wgIG93bmVyc2hpcCB0cmFuc2ZlcmFsLgCMRW1pdHMgYE93bmVyc2hpcEFjY2VwdGFuY2VDaGFuZ2VkYC5kc2V0X2NvbGxlY3Rpb25fbWF4X3N1cHBseQgBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAAShtYXhfc3VwcGx5EAEMdTMyABcs4FNldCB0aGUgbWF4aW11bSBhbW91bnQgb2YgaXRlbXMgYSBjb2xsZWN0aW9uIGNvdWxkIGhhdmUuAFUBT3JpZ2luIG11c3QgYmUgZWl0aGVyIGBGb3JjZU9yaWdpbmAgb3IgYFNpZ25lZGAgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZkR0aGUgYGNvbGxlY3Rpb25gLgDkTm90ZTogVGhpcyBmdW5jdGlvbiBjYW4gb25seSBzdWNjZWVkIG9uY2UgcGVyIGNvbGxlY3Rpb24uAOwtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gdG8gY2hhbmdlLhEBLSBgbWF4X3N1cHBseWA6IFRoZSBtYXhpbXVtIGFtb3VudCBvZiBpdGVtcyBhIGNvbGxlY3Rpb24gY291bGQgaGF2ZS4A1EVtaXRzIGBDb2xsZWN0aW9uTWF4U3VwcGx5U2V0YCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuJHNldF9wcmljZRABKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtGAEkVDo6SXRlbUlkAAEUcHJpY2X0AVxPcHRpb248SXRlbVByaWNlPFQsIEk+PgABRHdoaXRlbGlzdGVkX2J1eWVyAQEBcE9wdGlvbjxBY2NvdW50SWRMb29rdXBPZjxUPj4AGCyUU2V0IChvciByZXNldCkgdGhlIHByaWNlIGZvciBhbiBpdGVtLgABAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgbXVzdCBiZSB0aGUgb3duZXIgb2YgdGhlIGFzc2V0IGBpdGVtYC4ArC0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbS6gLSBgaXRlbWA6IFRoZSBpdGVtIHRvIHNldCB0aGUgcHJpY2UgZm9yLg0BLSBgcHJpY2VgOiBUaGUgcHJpY2UgZm9yIHRoZSBpdGVtLiBQYXNzIGBOb25lYCwgdG8gcmVzZXQgdGhlIHByaWNlLvQtIGBidXllcmA6IFJlc3RyaWN0cyB0aGUgYnV5IG9wZXJhdGlvbiB0byBhIHNwZWNpZmljIGFjY291bnQuAOxFbWl0cyBgSXRlbVByaWNlU2V0YCBvbiBzdWNjZXNzIGlmIHRoZSBwcmljZSBpcyBub3QgYE5vbmVgLuxFbWl0cyBgSXRlbVByaWNlUmVtb3ZlZGAgb24gc3VjY2VzcyBpZiB0aGUgcHJpY2UgaXMgYE5vbmVgLiBidXlfaXRlbQwBKGNvbGxlY3Rpb24YATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtGAEkVDo6SXRlbUlkAAEkYmlkX3ByaWNlGAE8SXRlbVByaWNlPFQsIEk+ABkkqEFsbG93cyB0byBidXkgYW4gaXRlbSBpZiBpdCdzIHVwIGZvciBzYWxlLgD4T3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCBtdXN0IG5vdCBiZSB0aGUgb3duZXIgb2YgdGhlIGBpdGVtYC4ArC0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbS6sLSBgaXRlbWA6IFRoZSBpdGVtIHRoZSBzZW5kZXIgd2FudHMgdG8gYnV5LtgtIGBiaWRfcHJpY2VgOiBUaGUgcHJpY2UgdGhlIHNlbmRlciBpcyB3aWxsaW5nIHRvIHBheS4AeEVtaXRzIGBJdGVtQm91Z2h0YCBvbiBzdWNjZXNzLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5tBQw4cGFsbGV0X3VuaXF1ZXMUdHlwZXM4RGVzdHJveVdpdG5lc3MAAAwBFGl0ZW1zNQEBDHUzMgABOGl0ZW1fbWV0YWRhdGFzNQEBDHUzMgABKGF0dHJpYnV0ZXM1AQEMdTMyAABxBQxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldBBDYWxsBARUAAEYWGNvbnRyb2xfYXV0b19taWdyYXRpb24EATBtYXliZV9jb25maWd1BQFcT3B0aW9uPE1pZ3JhdGlvbkxpbWl0cz4AAAyAQ29udHJvbCB0aGUgYXV0b21hdGljIG1pZ3JhdGlvbi4ADQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIFtgQ29uZmlnOjpDb250cm9sT3JpZ2luYF0uQGNvbnRpbnVlX21pZ3JhdGUMARhsaW1pdHN5BQE8TWlncmF0aW9uTGltaXRzAAE8cmVhbF9zaXplX3VwcGVyEAEMdTMyAAEwd2l0bmVzc190YXNrfQUBQE1pZ3JhdGlvblRhc2s8VD4AAVS4Q29udGludWUgdGhlIG1pZ3JhdGlvbiBmb3IgdGhlIGdpdmVuIGBsaW1pdHNgLgDsVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgY2FuIGJlIGFueSBzaWduZWQgYWNjb3VudC4AXQFUaGlzIHRyYW5zYWN0aW9uIGhhcyBOTyBNT05FVEFSWSBJTkNFTlRJVkVTLiBjYWxsaW5nIGl0IHdpbGwgbm90IHJld2FyZCBhbnlvbmUuIEFsYmVpdCzsVXBvbiBzdWNjZXNzZnVsIGV4ZWN1dGlvbiwgdGhlIHRyYW5zYWN0aW9uIGZlZSBpcyByZXR1cm5lZC4AQQFUaGUgKHBvdGVudGlhbGx5IG92ZXItZXN0aW1hdGVkKSBvZiB0aGUgYnl0ZSBsZW5ndGggb2YgYWxsIHRoZSBkYXRhIHJlYWQgbXVzdCBiZVkBcHJvdmlkZWQgZm9yIHVwLWZyb250IGZlZS1wYXltZW50IGFuZCB3ZWlnaGluZy4gSW4gZXNzZW5jZSwgdGhlIGNhbGxlciBpcyBndWFyYW50ZWVpbmdJAXRoYXQgZXhlY3V0aW5nIHRoZSBjdXJyZW50IGBNaWdyYXRpb25UYXNrYCB3aXRoIHRoZSBnaXZlbiBgbGltaXRzYCB3aWxsIG5vdCBleGNlZWSUYHJlYWxfc2l6ZV91cHBlcmAgYnl0ZXMgb2YgcmVhZCBkYXRhLgBFAVRoZSBgd2l0bmVzc190YXNrYCBpcyBtZXJlbHkgYSBoZWxwZXIgdG8gcHJldmVudCB0aGUgY2FsbGVyIGZyb20gYmVpbmcgc2xhc2hlZCBvcl0BZ2VuZXJhbGx5IHRyaWdnZXIgYSBtaWdyYXRpb24gdGhhdCB0aGV5IGRvIG5vdCBpbnRlbmQuIFRoaXMgcGFyYW1ldGVyIGlzIGp1c3QgYSBtZXNzYWdlPQFmcm9tIGNhbGxlciwgc2F5aW5nIHRoYXQgdGhleSBiZWxpZXZlZCBgd2l0bmVzc190YXNrYCB3YXMgdGhlIGxhc3Qgc3RhdGUgb2YgdGhlWQFtaWdyYXRpb24sIGFuZCB0aGV5IG9ubHkgd2lzaCBmb3IgdGhlaXIgdHJhbnNhY3Rpb24gdG8gZG8gYW55dGhpbmcsIGlmIHRoaXMgYXNzdW1wdGlvbhEBaG9sZHMuIEluIGNhc2UgYHdpdG5lc3NfdGFza2AgZG9lcyBub3QgbWF0Y2gsIHRoZSB0cmFuc2FjdGlvbiBmYWlscy4AOQFCYXNlZCBvbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiBbYE1pZ3JhdGlvblRhc2s6Om1pZ3JhdGVfdW50aWxfZXhoYXVzdGlvbmBdLCB0aGVNAXJlY29tbWVuZGVkIHdheSBvZiBkb2luZyB0aGlzIGlzIHRvIHBhc3MgYSBgbGltaXRgIHRoYXQgb25seSBib3VuZHMgYGNvdW50YCwgYXMgdGhlnGBzaXplYCBsaW1pdCBjYW4gYWx3YXlzIGJlIG92ZXJ3cml0dGVuLkhtaWdyYXRlX2N1c3RvbV90b3AIARBrZXlzwQMBMFZlYzxWZWM8dTg+PgABMHdpdG5lc3Nfc2l6ZRABDHUzMgACEAkBTWlncmF0ZSB0aGUgbGlzdCBvZiB0b3Aga2V5cyBieSBpdGVyYXRpbmcgZWFjaCBvZiB0aGVtIG9uZSBieSBvbmUuAFUBVGhpcyBkb2VzIG5vdCBhZmZlY3QgdGhlIGdsb2JhbCBtaWdyYXRpb24gcHJvY2VzcyB0cmFja2VyIChbYE1pZ3JhdGlvblByb2Nlc3NgXSksIGFuZPxzaG91bGQgb25seSBiZSB1c2VkIGluIGNhc2UgYW55IGtleXMgYXJlIGxlZnRvdmVyIGR1ZSB0byBhIGJ1Zy5QbWlncmF0ZV9jdXN0b21fY2hpbGQMARByb290OAEcVmVjPHU4PgABKGNoaWxkX2tleXPBAwEwVmVjPFZlYzx1OD4+AAEodG90YWxfc2l6ZRABDHUzMgADGBEBTWlncmF0ZSB0aGUgbGlzdCBvZiBjaGlsZCBrZXlzIGJ5IGl0ZXJhdGluZyBlYWNoIG9mIHRoZW0gb25lIGJ5IG9uZS4ADQFBbGwgb2YgdGhlIGdpdmVuIGNoaWxkIGtleXMgbXVzdCBiZSBwcmVzZW50IHVuZGVyIG9uZSBgY2hpbGRfcm9vdGAuAFUBVGhpcyBkb2VzIG5vdCBhZmZlY3QgdGhlIGdsb2JhbCBtaWdyYXRpb24gcHJvY2VzcyB0cmFja2VyIChbYE1pZ3JhdGlvblByb2Nlc3NgXSksIGFuZPxzaG91bGQgb25seSBiZSB1c2VkIGluIGNhc2UgYW55IGtleXMgYXJlIGxlZnRvdmVyIGR1ZSB0byBhIGJ1Zy5Uc2V0X3NpZ25lZF9tYXhfbGltaXRzBAEYbGltaXRzeQUBPE1pZ3JhdGlvbkxpbWl0cwAEBLhTZXQgdGhlIG1heGltdW0gbGltaXQgb2YgdGhlIHNpZ25lZCBtaWdyYXRpb24uSGZvcmNlX3NldF9wcm9ncmVzcwgBMHByb2dyZXNzX3RvcIEFATRQcm9ncmVzc09mPFQ+AAE4cHJvZ3Jlc3NfY2hpbGSBBQE0UHJvZ3Jlc3NPZjxUPgAFJMhGb3JjZWZ1bGx5IHNldCB0aGUgcHJvZ3Jlc3MgdGhlIHJ1bm5pbmcgbWlncmF0aW9uLgBdAVRoaXMgaXMgb25seSB1c2VmdWwgaW4gb25lIGNhc2U6IHRoZSBuZXh0IGtleSB0byBtaWdyYXRlIGlzIHRvbyBiaWcgdG8gYmUgbWlncmF0ZWQgd2l0aFUBYSBzaWduZWQgYWNjb3VudCwgaW4gYSBwYXJhY2hhaW4gY29udGV4dCwgYW5kIHdlIHNpbXBseSB3YW50IHRvIHNraXAgaXQuIEEgcmVhc29uYWJsZWEBZXhhbXBsZSBvZiB0aGlzIHdvdWxkIGJlIGA6Y29kZTpgLCB3aGljaCBpcyBib3RoIHZlcnkgZXhwZW5zaXZlIHRvIG1pZ3JhdGUsIGFuZCBjb21tb25seaR1c2VkLCBzbyBwcm9iYWJseSBpdCBpcyBhbHJlYWR5IG1pZ3JhdGVkLgBdAUluIGNhc2UgeW91IG1lc3MgdGhpbmdzIHVwLCB5b3UgY2FuIGFsc28sIGluIHByaW5jaXBsZSwgdXNlIHRoaXMgdG8gcmVzZXQgdGhlIG1pZ3JhdGlvbiBwcm9jZXNzLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy51BQQYT3B0aW9uBARUAXkFAQgQTm9uZQAAABBTb21lBAB5BQAAAQAAeQUMbHBhbGxldF9zdGF0ZV90cmllX21pZ3JhdGlvbhhwYWxsZXQ8TWlncmF0aW9uTGltaXRzAAAIARBzaXplEAEMdTMyAAEQaXRlbRABDHUzMgAAfQUMbHBhbGxldF9zdGF0ZV90cmllX21pZ3JhdGlvbhhwYWxsZXQ0TWlncmF0aW9uVGFzawQEVAAAFAEwcHJvZ3Jlc3NfdG9wgQUBNFByb2dyZXNzT2Y8VD4AAThwcm9ncmVzc19jaGlsZIEFATRQcm9ncmVzc09mPFQ+AAEQc2l6ZRABDHUzMgABJHRvcF9pdGVtcxABDHUzMgABLGNoaWxkX2l0ZW1zEAEMdTMyAACBBQxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldCBQcm9ncmVzcwQkTWF4S2V5TGVuAAEMHFRvU3RhcnQAAAAcTGFzdEtleQQAhQUBZEJvdW5kZWRWZWM8dTgsIE1heEtleUxlbj4AAQAgQ29tcGxldGUAAgAAhQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AACJBQxUcGFsbGV0X2Fzc2V0X3JlZ2lzdHJ5GHBhbGxldBBDYWxsBARUAAEUIHJlZ2lzdGVyJAEgYXNzZXRfaWTNAQFIT3B0aW9uPFQ6OkFzc2V0SWQ+AAEQbmFtZRUBAXBPcHRpb248TmFtZTxUOjpTdHJpbmdMaW1pdD4+AAEoYXNzZXRfdHlwZR0BASRBc3NldFR5cGUAAUxleGlzdGVudGlhbF9kZXBvc2l09AE8T3B0aW9uPEJhbGFuY2U+AAEYc3ltYm9sFQEBeE9wdGlvbjxTeW1ib2w8VDo6U3RyaW5nTGltaXQ+PgABIGRlY2ltYWxzIQEBKE9wdGlvbjx1OD4AASBsb2NhdGlvbo0FAXhPcHRpb248VDo6QXNzZXROYXRpdmVMb2NhdGlvbj4AATh4Y21fcmF0ZV9saW1pdPQBPE9wdGlvbjxCYWxhbmNlPgABNGlzX3N1ZmZpY2llbnQgARBib29sAAAwVFJlZ2lzdGVyIGEgbmV3IGFzc2V0LgDYTmV3IGFzc2V0IGlzIGdpdmVuIGBOZXh0QXNzZXRJZGAgLSBzZXF1ZW50aWFsIGFzc2V0IGlkADkBQXNzZXQncyBpZCBpcyBvcHRpb25hbCBhbmQgaXQgY2FuJ3QgYmUgdXNlZCBieSBhbm90aGVyIGFzc2V0IGlmIGl0J3MgcHJvdmlkZWQu3FByb3ZpZGVkIGBhc3NldF9pZGAgbXVzdCBiZSBmcm9tIHdpdGhpbiByZXNlcnZlZCByYW5nZS4JAUlmIGBhc3NldF9pZGAgaXMgYE5vbmVgLCBuZXcgYXNzZXQgaXMgZ2l2ZW4gaWQgZm9yIHNlcXVlbnRpYWwgaWRzLgBBAUFzc2V0J3MgbmFtZSBpcyBvcHRpb25hbCBhbmQgaXQgY2FuJ3QgYmUgdXNlZCBieSBhbm90aGVyIGFzc2V0IGlmIGl0J3MgcHJvdmlkZWQuWQJBZGRzIG1hcHBpbmcgYmV0d2VlbiBgbmFtZWAgYW5kIGFzc2lnbmVkIGBhc3NldF9pZGAgc28gYXNzZXQgaWQgY2FuIGJlIHJldHJpZXZlZCBieSBuYW1lIHRvbyAoTm90ZTogdGhpcyBhcHByb2FjaCBpcyB1c2VkIGluIEFNTSBpbXBsZW1lbnRhdGlvbiAoeHlrKSkApEVtaXRzICdSZWdpc3RlcmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuGHVwZGF0ZSQBIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAABEG5hbWUVAQFwT3B0aW9uPE5hbWU8VDo6U3RyaW5nTGltaXQ+PgABKGFzc2V0X3R5cGWRBQFET3B0aW9uPEFzc2V0VHlwZT4AAUxleGlzdGVudGlhbF9kZXBvc2l09AE8T3B0aW9uPEJhbGFuY2U+AAE4eGNtX3JhdGVfbGltaXT0ATxPcHRpb248QmFsYW5jZT4AATRpc19zdWZmaWNpZW50lQUBME9wdGlvbjxib29sPgABGHN5bWJvbBUBAXhPcHRpb248U3ltYm9sPFQ6OlN0cmluZ0xpbWl0Pj4AASBkZWNpbWFscyEBAShPcHRpb248dTg+AAEgbG9jYXRpb26NBQF4T3B0aW9uPFQ6OkFzc2V0TmF0aXZlTG9jYXRpb24+AAEoYFVwZGF0ZSByZWdpc3RlcmVkIGFzc2V0LgAlAUFsbCBwYXJhbWV0ZXJlcyBhcmUgb3B0aW9uYWwgYW5kIHZhbHVlIGlzIG5vdCB1cGRhdGVkIGlmIHBhcmFtIGlzIGBOb25lYC4AMQFgZGVjaW1hbHNgIC0gY2FuIGJlIHVwZGF0ZSBieSBgVXBkYXRlT3JpZ2luYCBvbmx5IGlmIGl0IHdhc24ndCBzZXQgeWV0LiBPbmx5AQFgUmVnaXN0cnlPcmlnaW5gIGNhbiB1cGRhdGUgYGRlY2ltYWxzYCBpZiBpdCB3YXMgcHJldmlvdXNseSBzZXQuANRgbG9jYXRpb25gIC0gY2FuIGJlIHVwZGF0ZWQgb25seSBieSBgUmVnaXN0cnlPcmlnaW5gLgCYRW1pdHMgYFVwZGF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5EcmVnaXN0ZXJfZXh0ZXJuYWwEASBsb2NhdGlvbiUBAVhUOjpBc3NldE5hdGl2ZUxvY2F0aW9uAAQAJGJhbl9hc3NldAQBIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAAFACx1bmJhbl9hc3NldAQBIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAAGAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6NBQQYT3B0aW9uBARUASUBAQgQTm9uZQAAABBTb21lBAAlAQAAAQAAkQUEGE9wdGlvbgQEVAEdAQEIEE5vbmUAAAAQU29tZQQAHQEAAAEAAJUFBBhPcHRpb24EBFQBIAEIEE5vbmUAAAAQU29tZQQAIAAAAQAAmQUMNHBhbGxldF9jbGFpbXMYcGFsbGV0EENhbGwEBFQAAQQUY2xhaW0EAUhldGhlcmV1bV9zaWduYXR1cmWdBQE4RWNkc2FTaWduYXR1cmUAAAT0Q2xhaW0geEhEWCBieSBwcm92aWRpbmcgc2lnbmVkIG1lc3NhZ2Ugd2l0aCBFdGhlcmV1bSBhZGRyZXNzLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6dBQw0cGFsbGV0X2NsYWltcxh0cmFpdHM4RWNkc2FTaWduYXR1cmUAAAQAKQUBIFt1ODsgNjVdAAChBQxYcGFsbGV0X2dlbmVzaXNfaGlzdG9yeRhwYWxsZXQQQ2FsbAQEVAABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6lBQw8cGFsbGV0X29tbmlwb29sGHBhbGxldBBDYWxsBARUAAE0JGFkZF90b2tlbhABFGFzc2V0EAEoVDo6QXNzZXRJZAABNGluaXRpYWxfcHJpY2VhAQEUUHJpY2UAASh3ZWlnaHRfY2FwaQEBHFBlcm1pbGwAAThwb3NpdGlvbl9vd25lcgABMFQ6OkFjY291bnRJZAABQB0BQWRkIG5ldyB0b2tlbiB0byBvbW5pcG9vbCBpbiBxdWFudGl0eSBgYW1vdW50YCBhdCBwcmljZSBgaW5pdGlhbF9wcmljZWAAxQFJbml0aWFsIGxpcXVpZGl0eSBtdXN0IGJlIHRyYW5zZmVycmVkIHRvIHBvb2wncyBhY2NvdW50IGZvciB0aGlzIG5ldyB0b2tlbiBtYW51YWxseSBwcmlvciB0byBjYWxsaW5nIGBhZGRfdG9rZW5gLgDkSW5pdGlhbCBsaXF1aWRpdHkgaXMgcG9vbCdzIGFjY291bnQgYmFsYW5jZSBvZiB0aGUgdG9rZW4uAMhQb3NpdGlvbiBORlQgdG9rZW4gaXMgbWludGVkIGZvciBgcG9zaXRpb25fb3duZXJgLgAsUGFyYW1ldGVyczqJAS0gYGFzc2V0YDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIG5ldyBhc3NldCBhZGRlZCB0byB0aGUgcG9vbC4gTXVzdCBiZSByZWdpc3RlcmVkIGluIEFzc2V0IHJlZ2lzdHJ5gC0gYGluaXRpYWxfcHJpY2VgOiBJbml0aWFsIHByaWNlNQEtIGBwb3NpdGlvbl9vd25lcmA6IGFjY291bnQgaWQgZm9yIHdoaWNoIHNoYXJlIGFyZSBkaXN0cmlidXRlZCBpbiBmb3JtIG9uIE5GVIAtIGB3ZWlnaHRfY2FwYDogYXNzZXQgd2VpZ2h0IGNhcACkRW1pdHMgYFRva2VuQWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4ANGFkZF9saXF1aWRpdHkIARRhc3NldBABKFQ6OkFzc2V0SWQAARhhbW91bnQYARxCYWxhbmNlAAJQ/EFkZCBsaXF1aWRpdHkgb2YgYXNzZXQgYGFzc2V0YCBpbiBxdWFudGl0eSBgYW1vdW50YCB0byBPbW5pcG9vbABhAWBhZGRfbGlxdWlkaXR5YCBhZGRzIHNwZWNpZmllZCBhc3NldCBhbW91bnQgdG8gT21uaXBvb2wgYW5kIGluIGV4Y2hhbmdlIGdpdmVzIHRoZSBvcmlnaW7wY29ycmVzcG9uZGluZyBzaGFyZXMgYW1vdW50IGluIGZvcm0gb2YgTkZUIGF0IGN1cnJlbnQgcHJpY2UuAIUBQXNzZXQncyB0cmFkYWJsZSBzdGF0ZSBtdXN0IGNvbnRhaW4gQUREX0xJUVVJRElUWSBmbGFnLCBvdGhlcndpc2UgYE5vdEFsbG93ZWRgIGVycm9yIGlzIHJldHVybmVkLgBhAU5GVCBpcyBtaW50ZWQgdXNpbmcgTlRGSGFuZGxlciB3aGljaCBpbXBsZW1lbnRzIG5vbi1mdW5naWJsZXMgdHJhaXRzIGZyb20gZnJhbWVfc3VwcG9ydC4AWQFBc3NldCB3ZWlnaHQgY2FwIG11c3QgYmUgcmVzcGVjdGVkLCBvdGhlcndpc2UgYEFzc2V0V2VpZ2h0RXhjZWVkZWRgIGVycm9yIGlzIHJldHVybmVkLnkBQXNzZXQgd2VpZ2h0IGlzIHJhdGlvIGJldHdlZW4gbmV3IEh1YkFzc2V0IHJlc2VydmUgYW5kIHRvdGFsIHJlc2VydmUgb2YgSHViIGFzc2V0IGluIE9tbmlwb29sLgDVAUFkZCBsaXF1aWRpdHkgZmFpbHMgaWYgcHJpY2UgZGlmZmVyZW5jZSBiZXR3ZWVuIHNwb3QgcHJpY2UgYW5kIG9yYWNsZSBwcmljZSBpcyBoaWdoZXIgdGhhbiBhbGxvd2VkIGJ5IGBQcmljZUJhcnJpZXJgLgAsUGFyYW1ldGVyczplAS0gYGFzc2V0YDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIG5ldyBhc3NldCBhZGRlZCB0byB0aGUgcG9vbC4gTXVzdCBiZSBhbHJlYWR5IGluIHRoZSBwb29stC0gYGFtb3VudGA6IEFtb3VudCBvZiBhc3NldCBhZGRlZCB0byBvbW5pcG9vbAC0RW1pdHMgYExpcXVpZGl0eUFkZGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAGBhZGRfbGlxdWlkaXR5X3dpdGhfbGltaXQMARRhc3NldBABKFQ6OkFzc2V0SWQAARhhbW91bnQYARxCYWxhbmNlAAFAbWluX3NoYXJlc19saW1pdBgBHEJhbGFuY2UADVwBAUFkZCBsaXF1aWRpdHkgb2YgYXNzZXQgYGFzc2V0YCBpbiBxdWFudGl0eSBgYW1vdW50YCB0byBPbW5pcG9vbC4AcExpbWl0IHByb3RlY3Rpb24gaXMgYXBwbGllZC4AYQFgYWRkX2xpcXVpZGl0eWAgYWRkcyBzcGVjaWZpZWQgYXNzZXQgYW1vdW50IHRvIE9tbmlwb29sIGFuZCBpbiBleGNoYW5nZSBnaXZlcyB0aGUgb3JpZ2lu8GNvcnJlc3BvbmRpbmcgc2hhcmVzIGFtb3VudCBpbiBmb3JtIG9mIE5GVCBhdCBjdXJyZW50IHByaWNlLgCFAUFzc2V0J3MgdHJhZGFibGUgc3RhdGUgbXVzdCBjb250YWluIEFERF9MSVFVSURJVFkgZmxhZywgb3RoZXJ3aXNlIGBOb3RBbGxvd2VkYCBlcnJvciBpcyByZXR1cm5lZC4AYQFORlQgaXMgbWludGVkIHVzaW5nIE5URkhhbmRsZXIgd2hpY2ggaW1wbGVtZW50cyBub24tZnVuZ2libGVzIHRyYWl0cyBmcm9tIGZyYW1lX3N1cHBvcnQuAFkBQXNzZXQgd2VpZ2h0IGNhcCBtdXN0IGJlIHJlc3BlY3RlZCwgb3RoZXJ3aXNlIGBBc3NldFdlaWdodEV4Y2VlZGVkYCBlcnJvciBpcyByZXR1cm5lZC55AUFzc2V0IHdlaWdodCBpcyByYXRpbyBiZXR3ZWVuIG5ldyBIdWJBc3NldCByZXNlcnZlIGFuZCB0b3RhbCByZXNlcnZlIG9mIEh1YiBhc3NldCBpbiBPbW5pcG9vbC4A1QFBZGQgbGlxdWlkaXR5IGZhaWxzIGlmIHByaWNlIGRpZmZlcmVuY2UgYmV0d2VlbiBzcG90IHByaWNlIGFuZCBvcmFjbGUgcHJpY2UgaXMgaGlnaGVyIHRoYW4gYWxsb3dlZCBieSBgUHJpY2VCYXJyaWVyYC4ALFBhcmFtZXRlcnM6ZQEtIGBhc3NldGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBuZXcgYXNzZXQgYWRkZWQgdG8gdGhlIHBvb2wuIE11c3QgYmUgYWxyZWFkeSBpbiB0aGUgcG9vbLQtIGBhbW91bnRgOiBBbW91bnQgb2YgYXNzZXQgYWRkZWQgdG8gb21uaXBvb2yFAS0gYG1pbl9zaGFyZXNfbGltaXRgOiBUaGUgbWluIGFtb3VudCBvZiBkZWx0YSBzaGFyZSBhc3NldCB0aGUgdXNlciBzaG91bGQgcmVjZWl2ZSBpbiB0aGUgcG9zaXRpb24AtEVtaXRzIGBMaXF1aWRpdHlBZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBAcmVtb3ZlX2xpcXVpZGl0eQgBLHBvc2l0aW9uX2lkGAFEVDo6UG9zaXRpb25JdGVtSWQAARhhbW91bnQYARxCYWxhbmNlAANMEQFSZW1vdmUgbGlxdWlkaXR5IG9mIGFzc2V0IGBhc3NldGAgaW4gcXVhbnRpdHkgYGFtb3VudGAgZnJvbSBPbW5pcG9vbABhAWByZW1vdmVfbGlxdWlkaXR5YCByZW1vdmVzIHNwZWNpZmllZCBzaGFyZXMgYW1vdW50IGZyb20gZ2l2ZW4gUG9zaXRpb25JZCAoTkZUIGluc3RhbmNlKS4AkQFBc3NldCdzIHRyYWRhYmxlIHN0YXRlIG11c3QgY29udGFpbiBSRU1PVkVfTElRVUlESVRZIGZsYWcsIG90aGVyd2lzZSBgTm90QWxsb3dlZGAgZXJyb3IgaXMgcmV0dXJuZWQuAF0BaWYgYWxsIHNoYXJlcyBmcm9tIGdpdmVuIHBvc2l0aW9uIGFyZSByZW1vdmVkLCBwb3NpdGlvbiBpcyBkZXN0cm95ZWQgYW5kIE5GVCBpcyBidXJuZWQuAOEBUmVtb3ZlIGxpcXVpZGl0eSBmYWlscyBpZiBwcmljZSBkaWZmZXJlbmNlIGJldHdlZW4gc3BvdCBwcmljZSBhbmQgb3JhY2xlIHByaWNlIGlzIGhpZ2hlciB0aGFuIGFsbG93ZWQgYnkgYFByaWNlQmFycmllcmAuAOUBRHluYW1pYyB3aXRoZHJhd2FsIGZlZSBpcyBhcHBsaWVkIGlmIHdpdGhkcmF3YWwgaXMgbm90IHNhZmUuIEl0IGlzIGNhbGN1bGF0ZWQgdXNpbmcgc3BvdCBwcmljZSBhbmQgZXh0ZXJuYWwgcHJpY2Ugb3JhY2xlLtxXaXRoZHJhd2FsIGlzIGNvbnNpZGVyZWQgc2FmZSB3aGVuIHRyYWRpbmcgaXMgZGlzYWJsZWQuACxQYXJhbWV0ZXJzOjEBLSBgcG9zaXRpb25faWRgOiBUaGUgaWRlbnRpZmllciBvZiBwb3NpdGlvbiB3aGljaCBsaXF1aWRpdHkgaXMgcmVtb3ZlZCBmcm9tLsgtIGBhbW91bnRgOiBBbW91bnQgb2Ygc2hhcmVzIHJlbW92ZWQgZnJvbSBvbW5pcG9vbAC8RW1pdHMgYExpcXVpZGl0eVJlbW92ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AbHJlbW92ZV9saXF1aWRpdHlfd2l0aF9saW1pdAwBLHBvc2l0aW9uX2lkGAFEVDo6UG9zaXRpb25JdGVtSWQAARhhbW91bnQYARxCYWxhbmNlAAEkbWluX2xpbWl0GAEcQmFsYW5jZQAOWBEBUmVtb3ZlIGxpcXVpZGl0eSBvZiBhc3NldCBgYXNzZXRgIGluIHF1YW50aXR5IGBhbW91bnRgIGZyb20gT21uaXBvb2wAcExpbWl0IHByb3RlY3Rpb24gaXMgYXBwbGllZC4AYQFgcmVtb3ZlX2xpcXVpZGl0eWAgcmVtb3ZlcyBzcGVjaWZpZWQgc2hhcmVzIGFtb3VudCBmcm9tIGdpdmVuIFBvc2l0aW9uSWQgKE5GVCBpbnN0YW5jZSkuAJEBQXNzZXQncyB0cmFkYWJsZSBzdGF0ZSBtdXN0IGNvbnRhaW4gUkVNT1ZFX0xJUVVJRElUWSBmbGFnLCBvdGhlcndpc2UgYE5vdEFsbG93ZWRgIGVycm9yIGlzIHJldHVybmVkLgBdAWlmIGFsbCBzaGFyZXMgZnJvbSBnaXZlbiBwb3NpdGlvbiBhcmUgcmVtb3ZlZCwgcG9zaXRpb24gaXMgZGVzdHJveWVkIGFuZCBORlQgaXMgYnVybmVkLgDhAVJlbW92ZSBsaXF1aWRpdHkgZmFpbHMgaWYgcHJpY2UgZGlmZmVyZW5jZSBiZXR3ZWVuIHNwb3QgcHJpY2UgYW5kIG9yYWNsZSBwcmljZSBpcyBoaWdoZXIgdGhhbiBhbGxvd2VkIGJ5IGBQcmljZUJhcnJpZXJgLgDlAUR5bmFtaWMgd2l0aGRyYXdhbCBmZWUgaXMgYXBwbGllZCBpZiB3aXRoZHJhd2FsIGlzIG5vdCBzYWZlLiBJdCBpcyBjYWxjdWxhdGVkIHVzaW5nIHNwb3QgcHJpY2UgYW5kIGV4dGVybmFsIHByaWNlIG9yYWNsZS7cV2l0aGRyYXdhbCBpcyBjb25zaWRlcmVkIHNhZmUgd2hlbiB0cmFkaW5nIGlzIGRpc2FibGVkLgAsUGFyYW1ldGVyczoxAS0gYHBvc2l0aW9uX2lkYDogVGhlIGlkZW50aWZpZXIgb2YgcG9zaXRpb24gd2hpY2ggbGlxdWlkaXR5IGlzIHJlbW92ZWQgZnJvbS7ILSBgYW1vdW50YDogQW1vdW50IG9mIHNoYXJlcyByZW1vdmVkIGZyb20gb21uaXBvb2wFAS0gYG1pbl9saW1pdGA6IFRoZSBtaW4gYW1vdW50IG9mIGFzc2V0IHRvIGJlIHJlbW92ZWQgZm9yIHRoZSB1c2VyALxFbWl0cyBgTGlxdWlkaXR5UmVtb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBIc2FjcmlmaWNlX3Bvc2l0aW9uBAEscG9zaXRpb25faWQYAURUOjpQb3NpdGlvbkl0ZW1JZAAEHJxTYWNyaWZpY2UgTFAgcG9zaXRpb24gaW4gZmF2b3Igb2YgcG9vbC4APQFBIHBvc2l0aW9uIGlzIGRlc3Ryb3llZCBhbmQgbGlxdWlkaXR5IG93bmVkIGJ5IExQIGJlY29tZXMgcG9vbCBvd25lZCBsaXF1aWRpdHkuALxPbmx5IG93bmVyIG9mIHBvc2l0aW9uIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgBoRW1pdHMgYFBvc2l0aW9uRGVzdHJveWVkYC4Qc2VsbBABIGFzc2V0X2luEAEoVDo6QXNzZXRJZAABJGFzc2V0X291dBABKFQ6OkFzc2V0SWQAARhhbW91bnQYARxCYWxhbmNlAAE4bWluX2J1eV9hbW91bnQYARxCYWxhbmNlAAVAtEV4ZWN1dGUgYSBzd2FwIG9mIGBhc3NldF9pbmAgZm9yIGBhc3NldF9vdXRgLgCQUHJpY2UgaXMgZGV0ZXJtaW5lZCBieSB0aGUgT21uaXBvb2wuAHxIdWIgYXNzZXQgaXMgdHJhZGVkIHNlcGFyYXRlbHkuAAUCQXNzZXQncyB0cmFkYWJsZSBzdGF0ZXMgbXVzdCBjb250YWluIFNFTEwgZmxhZyBmb3IgYXNzZXRfaW4gYW5kIEJVWSBmbGFnIGZvciBhc3NldF9vdXQsIG90aGVyd2lzZSBgTm90QWxsb3dlZGAgZXJyb3IgaXMgcmV0dXJuZWQuACxQYXJhbWV0ZXJzOqgtIGBhc3NldF9pbmA6IElEIG9mIGFzc2V0IHNvbGQgdG8gdGhlIHBvb2y8LSBgYXNzZXRfb3V0YDogSUQgb2YgYXNzZXQgYm91Z2h0IGZyb20gdGhlIHBvb2yALSBgYW1vdW50YDogQW1vdW50IG9mIGFzc2V0IHNvbGTYLSBgbWluX2J1eV9hbW91bnRgOiBNaW5pbXVtIGFtb3VudCByZXF1aXJlZCB0byByZWNlaXZlAKxFbWl0cyBgU2VsbEV4ZWN1dGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAAxidXkQASRhc3NldF9vdXQQAShUOjpBc3NldElkAAEgYXNzZXRfaW4QAShUOjpBc3NldElkAAEYYW1vdW50GAEcQmFsYW5jZQABPG1heF9zZWxsX2Ftb3VudBgBHEJhbGFuY2UABkC0RXhlY3V0ZSBhIHN3YXAgb2YgYGFzc2V0X291dGAgZm9yIGBhc3NldF9pbmAuAJBQcmljZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBPbW5pcG9vbC4AfEh1YiBhc3NldCBpcyB0cmFkZWQgc2VwYXJhdGVseS4ABQJBc3NldCdzIHRyYWRhYmxlIHN0YXRlcyBtdXN0IGNvbnRhaW4gU0VMTCBmbGFnIGZvciBhc3NldF9pbiBhbmQgQlVZIGZsYWcgZm9yIGFzc2V0X291dCwgb3RoZXJ3aXNlIGBOb3RBbGxvd2VkYCBlcnJvciBpcyByZXR1cm5lZC4ALFBhcmFtZXRlcnM6qC0gYGFzc2V0X2luYDogSUQgb2YgYXNzZXQgc29sZCB0byB0aGUgcG9vbLwtIGBhc3NldF9vdXRgOiBJRCBvZiBhc3NldCBib3VnaHQgZnJvbSB0aGUgcG9vbIAtIGBhbW91bnRgOiBBbW91bnQgb2YgYXNzZXQgc29sZLwtIGBtYXhfc2VsbF9hbW91bnRgOiBNYXhpbXVtIGFtb3VudCB0byBiZSBzb2xkLgCoRW1pdHMgYEJ1eUV4ZWN1dGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAGBzZXRfYXNzZXRfdHJhZGFibGVfc3RhdGUIASBhc3NldF9pZBABKFQ6OkFzc2V0SWQAARRzdGF0ZWUBASxUcmFkYWJpbGl0eQAHIHhVcGRhdGUgYXNzZXQncyB0cmFkYWJsZSBzdGF0ZS4ALFBhcmFtZXRlcnM6WC0gYGFzc2V0X2lkYDogYXNzZXQgaWRQLSBgc3RhdGVgOiBuZXcgc3RhdGUAzEVtaXRzIGBUcmFkYWJsZVN0YXRlVXBkYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBQcmVmdW5kX3JlZnVzZWRfYXNzZXQMASBhc3NldF9pZBABKFQ6OkFzc2V0SWQAARhhbW91bnQYARxCYWxhbmNlAAEkcmVjaXBpZW50AAEwVDo6QWNjb3VudElkAAgksFJlZnVuZCBnaXZlbiBhbW91bnQgb2YgYXNzZXQgdG8gYSByZWNpcGllbnQuAFkCQSByZWZ1bmQgaXMgbmVlZGVkIHdoZW4gYSB0b2tlbiBpcyByZWZ1c2VkIHRvIGJlIGFkZGVkIHRvIE9tbmlwb29sLCBhbmQgaW5pdGlhbCBsaXF1aWRpdHkgb2YgdGhlIGFzc2V0IGhhcyBiZWVuIGFscmVhZHkgdHJhbnNmZXJyZWQgdG8gcG9vbCdzIGFjY291bnQuAI0BVHJhbnNmZXIgY2FuIGJlIGV4ZWN1dGVkIG9ubHkgaWYgYXNzZXQgaXMgbm90IGluIE9tbmlwb29sIGFuZCBwb29sJ3MgYmFsYW5jZSBoYXMgc3VmZmljaWVudCBhbW91bnQuAMhPbmx5IGBBdXRob3JpdHlPcmlnaW5gIGNhbiBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uLgBURW1pdHMgYEFzc2V0UmVmdW5kZWRgUHNldF9hc3NldF93ZWlnaHRfY2FwCAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAEMY2FwaQEBHFBlcm1pbGwACSBkVXBkYXRlIGFzc2V0J3Mgd2VpZ2h0IGNhcAAsUGFyYW1ldGVyczpYLSBgYXNzZXRfaWRgOiBhc3NldCBpZFwtIGBjYXBgOiBuZXcgd2VpZ2h0IGNhcADQRW1pdHMgYEFzc2V0V2VpZ2h0Q2FwVXBkYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBsd2l0aGRyYXdfcHJvdG9jb2xfbGlxdWlkaXR5EAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAEYYW1vdW50GAEcQmFsYW5jZQABFHByaWNlqQUBSChCYWxhbmNlLCBCYWxhbmNlKQABEGRlc3QAATBUOjpBY2NvdW50SWQACyxsUmVtb3ZlcyBwcm90b2NvbCBsaXF1aWRpdHkuAIUBUHJvdG9jb2wgbGlxdWlkaXR5IGlzIGxpcXVpZGl0eSBmcm9tIHNhY3JpZmljZWQgcG9zaXRpb25zLiBJbiBvcmRlciB0byByZW1vdmUgcHJvdG9jb2wgbGlxdWlkaXR5LHkBd2UgbmVlZCB0aGUga25vdyB0aGUgcHJpY2Ugb2YgdGhlIHBvc2l0aW9uIGF0IHRoZSB0aW1lIG9mIHNhY3JpZmljZS4gSGVuY2UgdGhpcyBzcGVjaWZpYyBjYWxsLgC0T25seSBgQXV0aG9yaXR5T3JpZ2luYCBjYW4gcGVyZm9ybSB0aGlzIGNhbGwuAHkBTm90ZSB0aGF0IHNhY3JpZmljZSBwb3NpdGlvbiB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlLiBUaGVyZSBpcyBubyBsb25nZXIgYSBuZWVkIGZvciB0aGF0LgBhAUl0IHdvcmtzIHRoZSBzYW1lIHdheSBhcyByZW1vdmUgbGlxdWlkaXR5IGNhbGwsIGJ1dCBwb3NpdGlvbiBpcyB0ZW1wb3JhcnkgcmVjb25zdHJ1Y3RlZC4AMHJlbW92ZV90b2tlbggBIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAABLGJlbmVmaWNpYXJ5AAEwVDo6QWNjb3VudElkAAwscFJlbW92ZXMgdG9rZW4gZnJvbSBPbW5pcG9vbC4ARQFBc3NldCdzIHRyYWRhYmlsaXR5IG11c3QgYmUgRlJPWkVOLCBvdGhlcndpc2UgYEFzc2V0Tm90RnJvemVuYCBlcnJvciBpcyByZXR1cm5lZC4AYQFSZW1haW5pbmcgc2hhcmVzIG11c3QgYmVsb25nIHRvIHByb3RvY29sLCBvdGhlcndpc2UgYFNoYXJlc1JlbWFpbmluZ2AgZXJyb3IgaXMgcmV0dXJuZWQuAHkBUHJvdG9jb2wncyBsaXF1aWRpdHkgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIGJlbmVmaWNpYXJ5IGFjY291bnQgYW5kIGh1YiBhc3NldCBhbW91bnQgaXMgYnVybmVkLgC0T25seSBgQXV0aG9yaXR5T3JpZ2luYCBjYW4gcGVyZm9ybSB0aGlzIGNhbGwuAKxFbWl0cyBgVG9rZW5SZW1vdmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLqkFAAAECBgYAK0FDGBwYWxsZXRfdHJhbnNhY3Rpb25fcGF1c2UYcGFsbGV0EENhbGwEBFQAAQhEcGF1c2VfdHJhbnNhY3Rpb24IASxwYWxsZXRfbmFtZTgBHFZlYzx1OD4AATRmdW5jdGlvbl9uYW1lOAEcVmVjPHU4PgAAAEx1bnBhdXNlX3RyYW5zYWN0aW9uCAEscGFsbGV0X25hbWU4ARxWZWM8dTg+AAE0ZnVuY3Rpb25fbmFtZTgBHFZlYzx1OD4AAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMusQUMNHBhbGxldF9kdXN0ZXIYcGFsbGV0EENhbGwEBFQAAQwwZHVzdF9hY2NvdW50CAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABLGN1cnJlbmN5X2lkEAE0VDo6Q3VycmVuY3lJZAAAFFxEdXN0IHNwZWNpZmllZCBhY2NvdW50LnUBSUYgYWNjb3VudCBiYWxhbmNlIGlzIDwgbWluLiBleGlzdGVudGlhbCBkZXBvc2l0IG9mIGdpdmVuIGN1cnJlbmN5LCBhbmQgYWNjb3VudCBpcyBhbGxvd2VkIHRvXQFiZSBkdXN0ZWQsIHRoZSByZW1haW5pbmcgYmFsYW5jZSBpcyB0cmFuc2ZlcnJlZCB0byBzZWxlY3RlZCBhY2NvdW50ICh1c3VhbGx5IHRyZWFzdXJ5KS4A5ENhbGxlciBpcyByZXdhcmRlZCB3aXRoIGNob3NlbiByZXdhcmQgaW4gbmF0aXZlIGN1cnJlbmN5LlxhZGRfbm9uZHVzdGFibGVfYWNjb3VudAQBHGFjY291bnQAATBUOjpBY2NvdW50SWQAAQxVAUFkZCBhY2NvdW50IHRvIGxpc3Qgb2Ygbm9uLWR1c3RhYmxlIGFjY291bnQuIEFjY291bnQgd2hpaGMgYXJlIGV4Y2x1ZGVkIGZyb20gdWRzdGluZy4pAUlmIHN1Y2ggYWNjb3VudCBzaG91bGQgYmUgZHVzdGVkIC0gYEFjY291bnRCbGFja2xpc3RlZGAgZXJyb3IgaXMgcmV0dXJuZWQuiE9ubHkgcm9vdCBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi5ocmVtb3ZlX25vbmR1c3RhYmxlX2FjY291bnQEARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAIEaQFSZW1vdmUgYWNjb3VudCBmcm9tIGxpc3Qgb2Ygbm9uLWR1c3RhYmxlIGFjY291bnRzLiBUaGF0IG1lYW5zIGFjY291bnQgY2FuIGJlIGR1c3RlZCBhZ2Fpbi4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMutQUMXHBhbGxldF9saXF1aWRpdHlfbWluaW5nGHBhbGxldBBDYWxsCARUAARJAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLrkFDIBwYWxsZXRfb21uaXBvb2xfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQQQ2FsbAQEVAABMEhjcmVhdGVfZ2xvYmFsX2Zhcm0gATR0b3RhbF9yZXdhcmRzGAEcQmFsYW5jZQABYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kcxABLFBlcmlvZE9mPFQ+AAFEYmxvY2tzX3Blcl9wZXJpb2QQAURCbG9ja051bWJlckZvcjxUPgABPHJld2FyZF9jdXJyZW5jeRABKFQ6OkFzc2V0SWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABQHlpZWxkX3Blcl9wZXJpb2R9AQEsUGVycXVpbnRpbGwAASxtaW5fZGVwb3NpdBgBHEJhbGFuY2UAAVRscm5hX3ByaWNlX2FkanVzdG1lbnRhAQEkRml4ZWRVMTI4AABw/ENyZWF0ZSBhIG5ldyBsaXF1aWRpdHkgbWluaW5nIHByb2dyYW0gd2l0aCBwcm92aWRlZCBwYXJhbWV0ZXJzLgBFAWBvd25lcmAgYWNjb3VudCBoYXMgdG8gaGF2ZSBhdCBsZWFzdCBgdG90YWxfcmV3YXJkc2AgYmFsYW5jZS4gVGhlc2UgZnVuZHMgd2lsbCBiZaR0cmFuc2ZlcnJlZCBmcm9tIGBvd25lcmAgdG8gZmFybSBhY2NvdW50LgDwVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFQ6OkNyZWF0ZU9yaWdpbmAuVQEhISFXQVJOOiBgVDo6Q3JlYXRlT3JpZ2luYCBoYXMgcG93ZXIgb3ZlciBmdW5kcyBvZiBgb3duZXJgJ3MgYWNjb3VudCBhbmQgaXQgc2hvdWxkIGJl0GNvbmZpZ3VyZWQgdG8gdHJ1c3RlZCBvcmlnaW4gZS5nIFN1ZG8gb3IgR292ZXJuYW5jZS4ALFBhcmFtZXRlcnM6VQEtIGBvcmlnaW5gOiBhY2NvdW50IGFsbG93ZWQgdG8gY3JlYXRlIG5ldyBsaXF1aWRpdHkgbWluaW5nIHByb2dyYW0ocm9vdCwgZ292ZXJuYW5jZSkuNQEtIGB0b3RhbF9yZXdhcmRzYDogdG90YWwgcmV3YXJkcyBwbGFubmVkIHRvIGRpc3RyaWJ1dGUuIFRoZXNlIHJld2FyZHMgd2lsbCBiZdxkaXN0cmlidXRlZCBiZXR3ZWVuIGFsbCB5aWVsZCBmYXJtcyBpbiB0aGUgZ2xvYmFsIGZhcm0uWQEtIGBwbGFubmVkX3lpZWxkaW5nX3BlcmlvZHNgOiBwbGFubmVkIG51bWJlciBvZiBwZXJpb2RzIHRvIGRpc3RyaWJ1dGUgYHRvdGFsX3Jld2FyZHNgLikBV0FSTjogVEhJUyBJUyBOT1QgSEFSRCBERUFETElORS4gTm90IGFsbCByZXdhcmRzIGhhdmUgdG8gYmUgZGlzdHJpYnV0ZWQgaW5dAWBwbGFubmVkX3lpZWxkaW5nX3BlcmlvZHNgLiBSZXdhcmRzIGFyZSBkaXN0cmlidXRlZCBiYXNlZCBvbiB0aGUgc2l0dWF0aW9uIGluIHRoZSB5aWVsZEEBZmFybXMgYW5kIGNhbiBiZSBkaXN0cmlidXRlZCBpbiBhIGxvbmdlciwgdGhvdWdoIG5ldmVyIGluIGEgc2hvcnRlciwgdGltZSBmcmFtZS5ZAS0gYGJsb2Nrc19wZXJfcGVyaW9kYDogIG51bWJlciBvZiBibG9ja3MgaW4gYSBzaW5nbGUgcGVyaW9kLiBNaW4uIG51bWJlciBvZiBibG9ja3MgcGVyMHBlcmlvZCBpcyAxLsAtIGByZXdhcmRfY3VycmVuY3lgOiBwYXlvZmYgY3VycmVuY3kgb2YgcmV3YXJkcy45AS0gYG93bmVyYDogbGlxLiBtaW5pbmcgZmFybSBvd25lci4gVGhpcyBhY2NvdW50IHdpbGwgYmUgYWJsZSB0byBtYW5hZ2UgY3JlYXRlZGRsaXF1aWRpdHkgbWluaW5nIHByb2dyYW0uKQEtIGB5aWVsZF9wZXJfcGVyaW9kYDogcGVyY2VudGFnZSByZXR1cm4gb24gYHJld2FyZF9jdXJyZW5jeWAgb2YgYWxsIGZhcm1zLpEBLSBgbWluX2RlcG9zaXRgOiBtaW5pbXVtIGFtb3VudCBvZiBMUCBzaGFyZXMgdG8gYmUgZGVwb3NpdGVkIGludG8gdGhlIGxpcXVpZGl0eSBtaW5pbmcgYnkgZWFjaCB1c2VyLk0BLSBgbHJuYV9wcmljZV9hZGp1c3RtZW50YDogcHJpY2UgYWRqdXN0bWVudCBiZXR3ZWVuIGBbTFJOQV1gIGFuZCBgcmV3YXJkX2N1cnJlbmN5YC4AqEVtaXRzIGBHbG9iYWxGYXJtQ3JlYXRlZGAgd2hlbiBzdWNjZXNzZnVsLgBUdGVybWluYXRlX2dsb2JhbF9mYXJtBAE4Z2xvYmFsX2Zhcm1faWQQATBHbG9iYWxGYXJtSWQAAjScVGVybWluYXRlIGV4aXN0aW5nIGxpcS4gbWluaW5nIHByb2dyYW0uAKBPbmx5IGZhcm0gb3duZXIgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uABEBV0FSTjogVG8gc3VjY2Vzc2Z1bGx5IHRlcm1pbmF0ZSBhIGdsb2JhbCBmYXJtLCBmYXJtIGhhdmUgdG8gYmUgZW1wdHngKGFsbCB5aWVsZCBmYXJtcyBpbiB0aGUgZ2xvYmFsIGZhcm0gbXVzdCBiZSB0ZXJtaW5hdGVkKS4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIu3C0gYGdsb2JhbF9mYXJtX2lkYDogaWQgb2YgZ2xvYmFsIGZhcm0gdG8gYmUgdGVybWluYXRlZC4AzEVtaXRzIGBHbG9iYWxGYXJtVGVybWluYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBEY3JlYXRlX3lpZWxkX2Zhcm0QAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAABKG11bHRpcGxpZXJhAQE4RmFybU11bHRpcGxpZXIAATRsb3lhbHR5X2N1cnZlgQEBUE9wdGlvbjxMb3lhbHR5Q3VydmU+AANI3ENyZWF0ZSB5aWVsZCBmYXJtIGZvciBnaXZlbiBgYXNzZXRfaWRgIGluIHRoZSBvbW5pcG9vbC4EIKBPbmx5IGZhcm0gb3duZXIgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uAOxBc3NldCB3aXRoIGBhc3NldF9pZGAgaGFzIHRvIGJlIHJlZ2lzdGVyZWQgaW4gdGhlIG9tbmlwb29sLlUBQXQgbW9zdCBvbmUgYGFjdGl2ZWAgeWllbGQgZmFybSBjYW4gZXhpc3QgaW4gb25lIGdsb2JhbCBmYXJtIGZvciB0aGUgc2FtZSBgYXNzZXRfaWRgLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4dAS0gYGdsb2JhbF9mYXJtX2lkYDogZ2xvYmFsIGZhcm0gaWQgdG8gd2hpY2ggYSB5aWVsZCBmYXJtIHdpbGwgYmUgYWRkZWQuHQEtIGBhc3NldF9pZGA6IGlkIG9mIGEgYXNzZXQgaW4gdGhlIG9tbmlwb29sLiBZaWVsZCBmYXJtIHdpbGwgYmUgY3JlYXRlZGEBZm9yIHRoaXMgYXNzZXQgYW5kIHVzZXIgd2lsbCBiZSBhYmxlIHRvIGxvY2sgTFAgc2hhcmVzIGludG8gdGhpcyB5aWVsZCBmYXJtIGltbWVkaWF0ZWx5LqAtIGBtdWx0aXBsaWVyYDogeWllbGQgZmFybSdzIG11bHRpcGxpZXIuXQEtIGBsb3lhbHR5X2N1cnZlYDogY3VydmUgdG8gY2FsY3VsYXRlIGxveWFsdHkgbXVsdGlwbGllciB0byBkaXN0cmlidXRlIHJld2FyZHMgdG8gdXNlcnPgd2l0aCB0aW1lIGluY2VudGl2ZS4gYE5vbmVgIG1lYW5zIG5vIGxveWFsdHkgbXVsdGlwbGllci4AvEVtaXRzIGBZaWVsZEZhcm1DcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAER1cGRhdGVfeWllbGRfZmFybQwBOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAEobXVsdGlwbGllcmEBAThGYXJtTXVsdGlwbGllcgAEMHxVcGRhdGUgeWllbGQgZmFybSdzIG11bHRpcGxpZXIuBCCgT25seSBmYXJtIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4dAS0gYGdsb2JhbF9mYXJtX2lkYDogZ2xvYmFsIGZhcm0gaWQgaW4gd2hpY2ggeWllbGQgZmFybSB3aWxsIGJlIHVwZGF0ZWQuIQEtIGBhc3NldF9pZGA6IGlkIG9mIHRoZSBhc3NldCBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIHRoZSBnbG9iYWwgZmFybS6wLSBgbXVsdGlwbGllcmA6IG5ldyB5aWVsZCBmYXJtJ3MgbXVsdGlwbGllci4AvEVtaXRzIGBZaWVsZEZhcm1VcGRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADxzdG9wX3lpZWxkX2Zhcm0IAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAAFQLhTdG9wIGxpcXVpZGl0eSBtaW1pbmcgZm9yIHNwZWNpZmljIHlpZWxkIGZhcm0uADEBVGhpcyBmdW5jdGlvbiBjbGFpbXMgcmV3YXJkcyBmcm9tIGBHbG9iYWxGYXJtYCBsYXN0IHRpbWUgYW5kIHN0b3AgeWllbGQgZmFybSEBaW5jZW50aXZpemF0aW9uIGZyb20gYSBgR2xvYmFsRmFybWAuIFVzZXJzIHdpbGwgYmUgYWJsZSB0byBvbmx5IHdpdGhkcmF3yHNoYXJlcyh3aXRoIGNsYWltaW5nKSBhZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24u4GBkZXBvc2l0X3NoYXJlcygpYCBpcyBub3QgYWxsb3dlZCBvbiBzdG9wcGVkIHlpZWxkIGZhcm0uBCCgT25seSBmYXJtIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4FAS0gYGdsb2JhbF9mYXJtX2lkYDogZmFybSBpZCBpbiB3aGljaCB5aWVsZCBmYXJtIHdpbGwgYmUgY2FuY2VsZWQuIQEtIGBhc3NldF9pZGA6IGlkIG9mIHRoZSBhc3NldCBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIHRoZSBnbG9iYWwgZmFybS4AvEVtaXRzIGBZaWVsZEZhcm1TdG9wcGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAERyZXN1bWVfeWllbGRfZmFybRABOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZBABLFlpZWxkRmFybUlkAAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAEobXVsdGlwbGllcmEBAThGYXJtTXVsdGlwbGllcgAGTPhSZXN1bWUgaW5jZW50aXZpemF0aW9uIG9mIHRoZSBhc3NldCByZXByZXNlbnRlZCBieSB5aWVsZCBmYXJtLgAtAVRoaXMgZnVuY3Rpb24gcmVzdW1lIGluY2VudGl2aXphdGlvbiBvZiB0aGUgYXNzZXQgZnJvbSB0aGUgYEdsb2JhbEZhcm1gIGFuZDEBcmVzdG9yZSBmdWxsIGZ1bmN0aW9uYWxpdHkgb3IgdGhlIHlpZWxkIGZhcm0uIFVzZXJzIHdpbGwgYmUgYWJsZSB0byBkZXBvc2l0LGRjbGFpbSBhbmQgd2l0aGRyYXcgYWdhaW4uABEBV0FSTjogWWllbGQgZmFybShhbmQgdXNlcnMpIGlzIE5PVCByZXdhcmRlZCBmb3IgdGltZSBpdCB3YXMgc3RvcHBlZC4AoE9ubHkgZmFybSBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuHQEtIGBnbG9iYWxfZmFybV9pZGA6IGdsb2JhbCBmYXJtIGlkIGluIHdoaWNoIHlpZWxkIGZhcm0gd2lsbCBiZSByZXN1bWVkLtgtIGB5aWVsZF9mYXJtX2lkYDogaWQgb2YgdGhlIHlpZWxkIGZhcm0gdG8gYmUgcmVzdW1lZC4hAS0gYGFzc2V0X2lkYDogaWQgb2YgdGhlIGFzc2V0IGlkZW50aWZ5aW5nIHlpZWxkIGZhcm0gaW4gdGhlIGdsb2JhbCBmYXJtLpgtIGBtdWx0aXBsaWVyYDogeWllbGQgZmFybSBtdWx0aXBsaWVyLgC8RW1pdHMgYFlpZWxkRmFybVJlc3VtZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AUHRlcm1pbmF0ZV95aWVsZF9mYXJtDAE4Z2xvYmFsX2Zhcm1faWQQATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkEAEsWWllbGRGYXJtSWQAASBhc3NldF9pZBABKFQ6OkFzc2V0SWQAB1BUVGVybWluYXRlIHlpZWxkIGZhcm0uAIEBVGhpcyBmdW5jdGlvbiBtYXJrcyBhIHlpZWxkIGZhcm0gYXMgcmVhZHkgdG8gYmUgcmVtb3ZlZCBmcm9tIHN0b3JhZ2Ugd2hlbiBpdCdzIGVtcHR5LiBVc2VycyB3aWxsZQFiZSBhYmxlIHRvIG9ubHkgd2l0aGRyYXcgc2hhcmVzKHdpdGhvdXQgY2xhaW1pbmcgcmV3YXJkcyBmcm9tIHlpZWxkIGZhcm0pLiBVbnBhaWQgcmV3YXJkc30Bd2lsbCBiZSB0cmFuc2ZlcnJlZCBiYWNrIHRvIGdsb2JhbCBmYXJtIGFuZCBpdCB3aWxsIGJlIHVzZWQgdG8gZGlzdHJpYnV0ZSB0byBvdGhlciB5aWVsZCBmYXJtcy4A3FlpZWxkIGZhcm0gbXVzdCBiZSBzdG9wcGVkIGJlZm9yZSBpdCBjYW4gYmUgdGVybWluYXRlZC4AcQFPbmx5IGdsb2JhbCBmYXJtJ3Mgb3duZXIgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uIFlpZWxkIGZhcm0gc3RheXMgaW4gdGhlIHN0b3JhZ2UgdW50aWwgaXQnc20BZW1wdHkoYWxsIGZhcm0gZW50cmllcyBhcmUgd2l0aGRyYXduKS4gTGFzdCB3aXRoZHJhd24gZnJvbSB5aWVsZCBmYXJtIHRyaWdnZXIgcmVtb3ZpbmcgZnJvbTB0aGUgc3RvcmFnZS4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuMQEtIGBnbG9iYWxfZmFybV9pZGA6IGdsb2JhbCBmYXJtIGlkIGluIHdoaWNoIHlpZWxkIGZhcm0gc2hvdWxkIGJlIHRlcm1pbmF0ZWQu1C0gYHlpZWxkX2Zhcm1faWRgOiBpZCBvZiB5aWVsZCBmYXJtIHRvIGJlIHRlcm1pbmF0ZWQu1C0gYGFzc2V0X2lkYDogaWQgb2YgdGhlIGFzc2V0IGlkZW50aWZ5aW5nIHlpZWxkIGZhcm0uAMhFbWl0cyBgWWllbGRGYXJtVGVybWluYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4ZGVwb3NpdF9zaGFyZXMMAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQQASxZaWVsZEZhcm1JZAABLHBvc2l0aW9uX2lkGAFEVDo6UG9zaXRpb25JdGVtSWQACDjsRGVwb3NpdCBvbW5pcG9vbCBwb3NpdGlvbihMUCBzaGFyZXMpIHRvIGEgbGlxdWlkaXR5IG1pbmluZy4AcQFUaGlzIGZ1bmN0aW9uIHRyYW5zZmVycyBvbW5pcG9vbCBwb3NpdGlvbiBmcm9tIGBvcmlnaW5gIHRvIHBhbGxldCdzIGFjY291bnQgYW5kIG1pbnQgTkZUIGZvckUBYG9yaWdpbmAgYWNjb3VudC4gTWludGVkIE5GVCByZXByZXNlbnRzIGRlcG9zaXQgaW4gdGhlIGxpcXVpZGl0eSBtaW5pbmcuIFVzZXIgY2FuIQFkZXBvc2l0IG9tbmlwb29sIHBvc2l0aW9uIGFzIGEgd2hvbGUoYWxsIHRoZSBMUCBzaGFyZXMgaW4gdGhlIHBvc2l0aW9uKS4ALFBhcmFtZXRlcnM6QQEtIGBvcmlnaW5gOiBvd25lciBvZiB0aGUgb21uaXBvb2wgcG9zaXRpb24gdG8gZGVwb3NpdCBpbnRvIHRoZSBsaXF1aWRpdHkgbWluaW5nLj0BLSBgZ2xvYmFsX2Zhcm1faWRgOiBpZCBvZiBnbG9iYWwgZmFybSB0byB3aGljaCB1c2VyIHdhbnRzIHRvIGRlcG9zaXQgTFAgc2hhcmVzLsgtIGB5aWVsZF9mYXJtX2lkYDogaWQgb2YgeWllbGQgZmFybSB0byBkZXBvc2l0IHRvLl0BLSBgcG9zaXRpb25faWRgOiBpZCBvZiB0aGUgb21uaXBvb2wgcG9zaXRpb24gdG8gYmUgZGVwb3NpdGVkIGludG8gdGhlIGxpcXVpZGl0eSBtaW5pbmcuALhFbWl0cyBgU2hhcmVzRGVwb3NpdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAEByZWRlcG9zaXRfc2hhcmVzDAE4Z2xvYmFsX2Zhcm1faWQQATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkEAEsWWllbGRGYXJtSWQAAShkZXBvc2l0X2lkGAEkRGVwb3NpdElkAAk88FJlZGVwb3NpdCBMUCBzaGFyZXMgaW4gdGhlIGFscmVhZHkgbG9ja2VkIG9tbmlwb29sIHBvc2l0aW9uLgBRAVRoaXMgZnVuY3Rpb24gY3JlYXRlIHlpZWxkIGZhcm0gZW50cnkgZm9yIGV4aXN0aW5nIGRlcG9zaXQuIEFtb3VudCBvZiByZWRlcG9zaXRlZCBMUC0Bc2hhcmVzIGlzIHNhbWUgYXMgYW1vdW50IHNoYXJlcyB3aGljaCBhcmUgYWxyZWFkeSBkZXBvc2l0ZWQgaW4gdGhlIGRlcG9zaXQuALhUaGlzIGZ1bmN0aW9uIERPRVNOJ1QgY3JlYXRlIG5ldyBkZXBvc2l0KE5GVCkuACxQYXJhbWV0ZXJzOrgtIGBvcmlnaW5gOiBvd25lciBvZiB0aGUgZGVwb3NpdCB0byByZWRlcG9zaXQuVQEtIGBnbG9iYWxfZmFybV9pZGA6IGlkIG9mIHRoZSBnbG9iYWwgZmFybSB0byB3aGljaCB1c2VyIHdhbnRzIHRvIHJlZGVwb3NpdCBMUCBzaGFyZXMu4C0gYHlpZWxkX2Zhcm1faWRgOiBpZCBvZiB0aGUgeWllbGQgZmFybSB0byByZWRlcG9zaXQgdG8u3C0gYGRlcG9zaXRfaWRgOiBpZGVudGlmaWVyIG9mIHRoZSBkZXBvc2l0IHRvIHJlZGVwb3NpdC4AwEVtaXRzIGBTaGFyZXNSZWRlcG9zaXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA0Y2xhaW1fcmV3YXJkcwgBKGRlcG9zaXRfaWQYASREZXBvc2l0SWQAATR5aWVsZF9mYXJtX2lkEAEsWWllbGRGYXJtSWQACjBhAUNsYWltIHJld2FyZHMgZnJvbSBsaXF1aWRpdHkgbWluaW5nIHByb2dyYW0gZm9yIGRlcG9zaXQgcmVwcmVzZW50ZWQgYnkgdGhlIGBkZXBvc2l0X2lkYC4AbQFUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZSB1c2VyIHJld2FyZHMgZnJvbSBsaXF1aWRpdHkgbWluaW5nIGFuZCB0cmFuc2ZlciByZXdhcmRzIHRvIGBvcmlnaW5g/GFjY291bnQuIENsYWltaW5nIG11bHRpcGxlIHRpbWUgdGhlIHNhbWUgcGVyaW9kIGlzIG5vdCBhbGxvd2VkLgAsUGFyYW1ldGVyczp0LSBgb3JpZ2luYDogb3duZXIgb2YgZGVwb3NpdC7cLSBgZGVwb3NpdF9pZGA6IGlkIG9mIHRoZSBkZXBvc2l0IHRvIGNsYWltIHJld2FyZHMgZm9yLvgtIGB5aWVsZF9mYXJtX2lkYDogaWQgb2YgdGhlIHlpZWxkIGZhcm0gdG8gY2xhaW0gcmV3YXJkcyBmcm9tLgCwRW1pdHMgYFJld2FyZENsYWltZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4APHdpdGhkcmF3X3NoYXJlcwgBKGRlcG9zaXRfaWQYASREZXBvc2l0SWQAATR5aWVsZF9mYXJtX2lkEAEsWWllbGRGYXJtSWQAC1BVAVRoaXMgZnVuY3Rpb24gY2xhaW0gcmV3YXJkcyBhbmQgd2l0aGRyYXcgTFAgc2hhcmVzIGZyb20geWllbGQgZmFybS4gT21uaXBvb2wgcG9zaXRpb25RAWlzIHRyYW5zZmVycmVkIHRvIG9yaWdpbiBvbmx5IGlmIHRoaXMgaXMgbGFzdCB3aXRoZHJhdyBpbiB0aGUgZGVwb3NpdCBhbmQgZGVwb3NpdCBpc1EBZGVzdHJveWVkLiBUaGlzIGZ1bmN0aW9uIGNsYWltIHJld2FyZHMgb25seSBpZiB5aWVsZCBmYXJtIGlzIG5vdCB0ZXJtaW5hdGVkIGFuZCB1c2VyvGRpZG4ndCBhbHJlYWR5IGNsYWltIHJld2FyZHMgaW4gY3VycmVudCBwZXJpb2QuAE0BVW5jbGFpbWFibGUgcmV3YXJkcyByZXByZXNlbnRzIHJld2FyZHMgd2hpY2ggdXNlciB3b24ndCBiZSBhYmxlIHRvIGNsYWltIGJlY2F1c2Ugb2ZJAWV4aXRpbmcgZWFybHkgYW5kIHRoZXNlIHJld2FyZHMgd2lsbCBiZSB0cmFuc2ZlcnJlZCBiYWNrIHRvIGdsb2JhbCBmYXJtIGZvciBmdXR1cmU8cmVkaXN0cmlidXRpb24uACxQYXJhbWV0ZXJzOnQtIGBvcmlnaW5gOiBvd25lciBvZiBkZXBvc2l0LtwtIGBkZXBvc2l0X2lkYDogaWQgb2YgdGhlIGRlcG9zaXQgdG8gY2xhaW0gcmV3YXJkcyBmb3Iu+C0gYHlpZWxkX2Zhcm1faWRgOiBpZCBvZiB0aGUgeWllbGQgZmFybSB0byBjbGFpbSByZXdhcmRzIGZyb20uABhFbWl0czrEKiBgUmV3YXJkQ2xhaW1lZGAgZXZlbnQgaWYgY2xhaW1lZCByZXdhcmRzIGlzID4gMKQqIGBTaGFyZXNXaXRoZHJhd25gIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bF0BKiBgRGVwb3NpdERlc3Ryb3llZGAgZXZlbnQgd2hlbiB0aGlzIHdhcyBsYXN0IHdpdGhkcmF3IGZyb20gdGhlIGRlcG9zaXQgYW5kIGRlcG9zaXQgd2FzKGRlc3Ryb3llZC4ASHVwZGF0ZV9nbG9iYWxfZmFybRABOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAFgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzEAFIY3JhdGU6OlBlcmlvZE9mPFQ+AAFAeWllbGRfcGVyX3BlcmlvZH0BASxQZXJxdWludGlsbAABLG1pbl9kZXBvc2l0GAEcQmFsYW5jZQAMONRUaGlzIGV4dHJpbnNpYyB1cGRhdGVzIGdsb2JhbCBmYXJtJ3MgbWFpbiBwYXJhbWV0ZXJzLgDwVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFQ6OkNyZWF0ZU9yaWdpbmAuVQEhISFXQVJOOiBgVDo6Q3JlYXRlT3JpZ2luYCBoYXMgcG93ZXIgb3ZlciBmdW5kcyBvZiBgb3duZXJgJ3MgYWNjb3VudCBhbmQgaXQgc2hvdWxkIGJl0GNvbmZpZ3VyZWQgdG8gdHJ1c3RlZCBvcmlnaW4gZS5nIFN1ZG8gb3IgR292ZXJuYW5jZS4ALFBhcmFtZXRlcnM6VQEtIGBvcmlnaW5gOiBhY2NvdW50IGFsbG93ZWQgdG8gY3JlYXRlIG5ldyBsaXF1aWRpdHkgbWluaW5nIHByb2dyYW0ocm9vdCwgZ292ZXJuYW5jZSku0C0gYGdsb2JhbF9mYXJtX2lkYDogaWQgb2YgdGhlIGdsb2JhbCBmYXJtIHRvIHVwZGF0ZS5ZAS0gYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kc2A6IHBsYW5uZWQgbnVtYmVyIG9mIHBlcmlvZHMgdG8gZGlzdHJpYnV0ZSBgdG90YWxfcmV3YXJkc2AuKQEtIGB5aWVsZF9wZXJfcGVyaW9kYDogcGVyY2VudGFnZSByZXR1cm4gb24gYHJld2FyZF9jdXJyZW5jeWAgb2YgYWxsIGZhcm1zLpEBLSBgbWluX2RlcG9zaXRgOiBtaW5pbXVtIGFtb3VudCBvZiBMUCBzaGFyZXMgdG8gYmUgZGVwb3NpdGVkIGludG8gdGhlIGxpcXVpZGl0eSBtaW5pbmcgYnkgZWFjaCB1c2VyLgDARW1pdHMgYEdsb2JhbEZhcm1VcGRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLr0FDChwYWxsZXRfb3RjGHBhbGxldBBDYWxsBARUAAEQLHBsYWNlX29yZGVyFAEgYXNzZXRfaW4QAShUOjpBc3NldElkAAEkYXNzZXRfb3V0EAEoVDo6QXNzZXRJZAABJGFtb3VudF9pbhgBHEJhbGFuY2UAAShhbW91bnRfb3V0GAEcQmFsYW5jZQABSHBhcnRpYWxseV9maWxsYWJsZSABEGJvb2wAAEhYQ3JlYXRlIGEgbmV3IE9UQyBvcmRlcgQgLFBhcmFtZXRlcnM6pC0gYGFzc2V0X2luYDogQXNzZXQgd2hpY2ggaXMgYmVpbmcgYm91Z2h0oC0gYGFzc2V0X291dGA6IEFzc2V0IHdoaWNoIGlzIGJlaW5nIHNvbGTYLSBgYW1vdW50X2luYDogQW1vdW50IHRoYXQgdGhlIG9yZGVyIGlzIHNlZWtpbmcgdG8gYnV5wC0gYGFtb3VudF9vdXRgOiBBbW91bnQgdGhhdCB0aGUgb3JkZXIgaXMgc2VsbGluZ0kBLSBgcGFydGlhbGx5X2ZpbGxhYmxlYDogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdXNlcnMgY2FuIGZpbGwgdGhlIG9yZGVyIHBhcnRpYWxseQAwVmFsaWRhdGlvbnM6dC0gYXNzZXRfaW4gbXVzdCBiZSByZWdpc3RlcmVkRQEtIGFtb3VudF9pbiBtdXN0IGJlIGhpZ2hlciB0aGFuIHRoZSBleGlzdGVudGlhbCBkZXBvc2l0IG9mIGFzc2V0X2luIG11bHRpcGxpZWQgYnl4ICBFeGlzdGVudGlhbERlcG9zaXRNdWx0aXBsaWVyTQEtIGFtb3VudF9vdXQgbXVzdCBiZSBoaWdoZXIgdGhhbiB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCBvZiBhc3NldF9vdXQgbXVsdGlwbGllZCBieXggIEV4aXN0ZW50aWFsRGVwb3NpdE11bHRpcGxpZXIAHEV2ZW50czqELSBgUGxhY2VkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuSHBhcnRpYWxfZmlsbF9vcmRlcggBIG9yZGVyX2lkEAEcT3JkZXJJZAABJGFtb3VudF9pbhgBHEJhbGFuY2UAATx0RmlsbCBhbiBPVEMgb3JkZXIgKHBhcnRpYWxseSkEICxQYXJhbWV0ZXJzOnQtIGBvcmRlcl9pZGA6IElEIG9mIHRoZSBvcmRlcugtIGBhbW91bnRfaW5gOiBBbW91bnQgd2l0aCB3aGljaCB0aGUgb3JkZXIgaXMgYmVpbmcgZmlsbGVkADBWYWxpZGF0aW9uczqILSBvcmRlciBtdXN0IGJlIHBhcnRpYWxseV9maWxsYWJsZY0BLSBhZnRlciB0aGUgcGFydGlhbF9maWxsLCB0aGUgcmVtYWluaW5nIG9yZGVyLmFtb3VudF9pbiBtdXN0IGJlIGhpZ2hlciB0aGFuIHRoZSBleGlzdGVudGlhbCBkZXBvc2l04CAgb2YgYXNzZXRfaW4gbXVsdGlwbGllZCBieSBFeGlzdGVudGlhbERlcG9zaXRNdWx0aXBsaWVykQEtIGFmdGVyIHRoZSBwYXJ0aWFsX2ZpbGwsIHRoZSByZW1haW5pbmcgb3JkZXIuYW1vdW50X291dCBtdXN0IGJlIGhpZ2hlciB0aGFuIHRoZSBleGlzdGVudGlhbCBkZXBvc2l05CAgb2YgYXNzZXRfb3V0IG11bHRpcGxpZWQgYnkgRXhpc3RlbnRpYWxEZXBvc2l0TXVsdGlwbGllcgAcRXZlbnRzOqBgUGFydGlhbGx5RmlsbGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuKGZpbGxfb3JkZXIEASBvcmRlcl9pZBABHE9yZGVySWQAAhx4RmlsbCBhbiBPVEMgb3JkZXIgKGNvbXBsZXRlbHkpBCAsUGFyYW1ldGVyczp0LSBgb3JkZXJfaWRgOiBJRCBvZiB0aGUgb3JkZXIAHEV2ZW50czp8YEZpbGxlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjBjYW5jZWxfb3JkZXIEASBvcmRlcl9pZBABHE9yZGVySWQAAyxgQ2FuY2VsIGFuIG9wZW4gT1RDIG9yZGVyBCAsUGFyYW1ldGVyczp0LSBgb3JkZXJfaWRgOiBJRCBvZiB0aGUgb3JkZXKYLSBgYXNzZXRgOiBBc3NldCB3aGljaCBpcyBiZWluZyBmaWxsZWSgLSBgYW1vdW50YDogQW1vdW50IHdoaWNoIGlzIGJlaW5nIGZpbGxlZAAwVmFsaWRhdGlvbnM6XC0gY2FsbGVyIGlzIG9yZGVyIG93bmVyAKBFbWl0cyBgQ2FuY2VsbGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLsEFDFhwYWxsZXRfY2lyY3VpdF9icmVha2VyGHBhbGxldBBDYWxsBARUAAEMWHNldF90cmFkZV92b2x1bWVfbGltaXQIASBhc3NldF9pZBABKFQ6OkFzc2V0SWQAAUh0cmFkZV92b2x1bWVfbGltaXSRAQEoKHUzMiwgdTMyKQAAJJBTZXQgdHJhZGUgdm9sdW1lIGxpbWl0IGZvciBhbiBhc3NldC4ALFBhcmFtZXRlcnM6IQEtIGBvcmlnaW5gOiBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwuIE11c3QgYmUgYFRlY2huaWNhbE9yaWdpbmCgLSBgYXNzZXRfaWRgOiBUaGUgaWRlbnRpZmllciBvZiBhbiBhc3NldCkBLSBgdHJhZGVfdm9sdW1lX2xpbWl0YDogTmV3IHRyYWRlIHZvbHVtZSBsaW1pdCByZXByZXNlbnRlZCBhcyBhIHBlcmNlbnRhZ2UA2EVtaXRzIGBUcmFkZVZvbHVtZUxpbWl0Q2hhbmdlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBcc2V0X2FkZF9saXF1aWRpdHlfbGltaXQIASBhc3NldF9pZBABKFQ6OkFzc2V0SWQAATxsaXF1aWRpdHlfbGltaXSVAQFIT3B0aW9uPCh1MzIsIHUzMik+AAEklFNldCBhZGQgbGlxdWlkaXR5IGxpbWl0IGZvciBhbiBhc3NldC4ALFBhcmFtZXRlcnM6IQEtIGBvcmlnaW5gOiBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwuIE11c3QgYmUgYFRlY2huaWNhbE9yaWdpbmCgLSBgYXNzZXRfaWRgOiBUaGUgaWRlbnRpZmllciBvZiBhbiBhc3NldDUBLSBgbGlxdWlkaXR5X2xpbWl0YDogT3B0aW9uYWwgYWRkIGxpcXVpZGl0eSBsaW1pdCByZXByZXNlbnRlZCBhcyBhIHBlcmNlbnRhZ2UA3EVtaXRzIGBBZGRMaXF1aWRpdHlMaW1pdENoYW5nZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AaHNldF9yZW1vdmVfbGlxdWlkaXR5X2xpbWl0CAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAE8bGlxdWlkaXR5X2xpbWl0lQEBSE9wdGlvbjwodTMyLCB1MzIpPgACJKBTZXQgcmVtb3ZlIGxpcXVpZGl0eSBsaW1pdCBmb3IgYW4gYXNzZXQuACxQYXJhbWV0ZXJzOiEBLSBgb3JpZ2luYDogVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsLiBNdXN0IGJlIGBUZWNobmljYWxPcmlnaW5goC0gYGFzc2V0X2lkYDogVGhlIGlkZW50aWZpZXIgb2YgYW4gYXNzZXRBAS0gYGxpcXVpZGl0eV9saW1pdGA6IE9wdGlvbmFsIHJlbW92ZSBsaXF1aWRpdHkgbGltaXQgcmVwcmVzZW50ZWQgYXMgYSBwZXJjZW50YWdlAOhFbWl0cyBgUmVtb3ZlTGlxdWlkaXR5TGltaXRDaGFuZ2VkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7FBQxUcGFsbGV0X3JvdXRlX2V4ZWN1dG9yGHBhbGxldBBDYWxsBARUAAEUEHNlbGwUASBhc3NldF9pbhABKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQQAShUOjpBc3NldElkAAEkYW1vdW50X2luGAEoVDo6QmFsYW5jZQABOG1pbl9hbW91bnRfb3V0GAEoVDo6QmFsYW5jZQABFHJvdXRlYQIBWFZlYzxUcmFkZTxUOjpBc3NldElkPj4AADT8RXhlY3V0ZXMgYSBzZWxsIHdpdGggYSBzZXJpZXMgb2YgdHJhZGVzIHNwZWNpZmllZCBpbiB0aGUgcm91dGUuAQFUaGUgcHJpY2UgZm9yIGVhY2ggdHJhZGUgaXMgZGV0ZXJtaW5lZCBieSB0aGUgY29ycmVzcG9uZGluZyBBTU0uAJQtIGBvcmlnaW5gOiBUaGUgZXhlY3V0b3Igb2YgdGhlIHRyYWRlxC0gYGFzc2V0X2luYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIHNlbGzULSBgYXNzZXRfb3V0YDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIHJlY2VpdmW8LSBgYW1vdW50X2luYDogVGhlIGFtb3VudCBvZiBgYXNzZXRfaW5gIHRvIHNlbGwFAS0gYG1pbl9hbW91bnRfb3V0YDogVGhlIG1pbmltdW0gYW1vdW50IG9mIGBhc3NldF9vdXRgIHRvIHJlY2VpdmUu0QItIGByb3V0ZWA6IFNlcmllcyBvZiBbYFRyYWRlPEFzc2V0SWQ+YF0gdG8gYmUgZXhlY3V0ZWQuIEEgW2BUcmFkZTxBc3NldElkPmBdIHNwZWNpZmllcyB0aGUgYXNzZXQgcGFpciAoYGFzc2V0X2luYCwgYGFzc2V0X291dGApIGFuZCB0aGUgQU1NIChgcG9vbGApIGluIHdoaWNoIHRoZSB0cmFkZSBpcyBleGVjdXRlZC7cCQkgICBJZiBub3Qgc3BlY2lmaWVkLCB0aGFuIHRoZSBvbi1jaGFpbiByb3V0ZSBpcyB1c2VkLhkBCQkgICBJZiBubyBvbi1jaGFpbiBpcyBwcmVzZW50LCB0aGVuIG9tbmlwb29sIHJvdXRlIGlzIHVzZWQgYXMgZGVmYXVsdACYRW1pdHMgYFJvdXRlRXhlY3V0ZWRgIHdoZW4gc3VjY2Vzc2Z1bC4MYnV5FAEgYXNzZXRfaW4QAShUOjpBc3NldElkAAEkYXNzZXRfb3V0EAEoVDo6QXNzZXRJZAABKGFtb3VudF9vdXQYAShUOjpCYWxhbmNlAAE0bWF4X2Ftb3VudF9pbhgBKFQ6OkJhbGFuY2UAARRyb3V0ZWECAVhWZWM8VHJhZGU8VDo6QXNzZXRJZD4+AAE0+EV4ZWN1dGVzIGEgYnV5IHdpdGggYSBzZXJpZXMgb2YgdHJhZGVzIHNwZWNpZmllZCBpbiB0aGUgcm91dGUuAQFUaGUgcHJpY2UgZm9yIGVhY2ggdHJhZGUgaXMgZGV0ZXJtaW5lZCBieSB0aGUgY29ycmVzcG9uZGluZyBBTU0uAJQtIGBvcmlnaW5gOiBUaGUgZXhlY3V0b3Igb2YgdGhlIHRyYWRlKQEtIGBhc3NldF9pbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBzd2FwcGVkIHRvIGJ1eSBgYXNzZXRfb3V0YMQtIGBhc3NldF9vdXRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYnV5wC0gYGFtb3VudF9vdXRgOiBUaGUgYW1vdW50IG9mIGBhc3NldF9vdXRgIHRvIGJ1eREBLSBgbWF4X2Ftb3VudF9pbmA6IFRoZSBtYXggYW1vdW50IG9mIGBhc3NldF9pbmAgdG8gc3BlbmQgb24gdGhlIGJ1eS7RAi0gYHJvdXRlYDogU2VyaWVzIG9mIFtgVHJhZGU8QXNzZXRJZD5gXSB0byBiZSBleGVjdXRlZC4gQSBbYFRyYWRlPEFzc2V0SWQ+YF0gc3BlY2lmaWVzIHRoZSBhc3NldCBwYWlyIChgYXNzZXRfaW5gLCBgYXNzZXRfb3V0YCkgYW5kIHRoZSBBTU0gKGBwb29sYCkgaW4gd2hpY2ggdGhlIHRyYWRlIGlzIGV4ZWN1dGVkLtwJCSAgIElmIG5vdCBzcGVjaWZpZWQsIHRoYW4gdGhlIG9uLWNoYWluIHJvdXRlIGlzIHVzZWQuGQEJCSAgIElmIG5vIG9uLWNoYWluIGlzIHByZXNlbnQsIHRoZW4gb21uaXBvb2wgcm91dGUgaXMgdXNlZCBhcyBkZWZhdWx0AJhFbWl0cyBgUm91dGVFeGVjdXRlZGAgd2hlbiBzdWNjZXNzZnVsLiRzZXRfcm91dGUIAShhc3NldF9wYWlyyQUBVEFzc2V0UGFpcjxUOjpBc3NldElkPgABJG5ld19yb3V0ZWECAVhWZWM8VHJhZGU8VDo6QXNzZXRJZD4+AAJUvFNldHMgdGhlIG9uLWNoYWluIHJvdXRlIGZvciBhIGdpdmVuIGFzc2V0IHBhaXIuAPhUaGUgbmV3IHJvdXRlIGlzIHZhbGlkYXRlZCBieSBiZWluZyBleGVjdXRlZCBpbiBhIGRyeS1ydW4gbW9kZQCFAUlmIHRoZXJlIGlzIG5vIHJvdXRlIGV4cGxpY2l0bHkgc2V0IGZvciBhbiBhc3NldCBwYWlyLCB0aGVuIHdlIHVzZSB0aGUgb21uaXBvb2wgcm91dGUgYXMgZGVmYXVsdC4AKQFXaGVuIGEgbmV3IHJvdXRlIGlzIHNldCwgd2UgY29tcGFyZSBpdCB0byB0aGUgZXhpc3RpbmcgKG9yIGRlZmF1bHQpIHJvdXRlLqEBVGhlIGNvbXBhcmlzb24gaGFwcGVucyBieSBjYWxjdWxhdGluZyBzZWxsIGFtb3VudF9vdXRzIGZvciB0aGUgcm91dGVzLCBidXQgYWxzbyBmb3IgdGhlIGludmVyc2VkIHJvdXRlcy4AZQFUaGUgcm91dGUgaXMgc3RvcmVkIGluIGFuIG9yZGVyZWQgbWFubmVyLCBiYXNlZCBvbiB0aGUgb2RlciBvZiB0aGUgaWRzIGluIHRoZSBhc3NldCBwYWlyLgD0SWYgdGhlIHJvdXRlIGlzIHNldCBzdWNjZXNzZnVsbHksIHRoZW4gdGhlIGZlZSBpcyBwYXllZCBiYWNrLgCoLSBgb3JpZ2luYDogVGhlIG9yaWdpbiBvZiB0aGUgcm91dGUgc2V0dGVyLQEtIGBhc3NldF9wYWlyYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LXBhaXIgZm9yIHdoaWNoIHRoZSByb3V0ZSBpcyBzZXThAi0gYG5ld19yb3V0ZWA6IFNlcmllcyBvZiBbYFRyYWRlPEFzc2V0SWQ+YF0gdG8gYmUgZXhlY3V0ZWQuIEEgW2BUcmFkZTxBc3NldElkPmBdIHNwZWNpZmllcyB0aGUgYXNzZXQgcGFpciAoYGFzc2V0X2luYCwgYGFzc2V0X291dGApIGFuZCB0aGUgQU1NIChgcG9vbGApIGluIHdoaWNoIHRoZSB0cmFkZSBpcyBleGVjdXRlZC4AlEVtaXRzIGBSb3V0ZVVwZGF0ZWRgIHdoZW4gc3VjY2Vzc2Z1bC4AKQFGYWlscyB3aXRoIGBSb3V0ZVVwZGF0ZUlzTm90U3VjY2Vzc2Z1bGAgZXJyb3Igd2hlbiBmYWlsZWQgdG8gc2V0IHRoZSByb3V0ZQBIZm9yY2VfaW5zZXJ0X3JvdXRlCAEoYXNzZXRfcGFpcskFAVRBc3NldFBhaXI8VDo6QXNzZXRJZD4AASRuZXdfcm91dGVhAgFYVmVjPFRyYWRlPFQ6OkFzc2V0SWQ+PgADOJEBRm9yY2UgaW5zZXJ0cyB0aGUgb24tY2hhaW4gcm91dGUgZm9yIGEgZ2l2ZW4gYXNzZXQgcGFpciwgc28gdGhlcmUgaXMgbm8gYW55IHZhbGlkYXRpb24gZm9yIHRoZSByb3V0ZQCYQ2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHRlY2huaWNhbCBvcmlnaW4AZQFUaGUgcm91dGUgaXMgc3RvcmVkIGluIGFuIG9yZGVyZWQgbWFubmVyLCBiYXNlZCBvbiB0aGUgb2RlciBvZiB0aGUgaWRzIGluIHRoZSBhc3NldCBwYWlyLgD0SWYgdGhlIHJvdXRlIGlzIHNldCBzdWNjZXNzZnVsbHksIHRoZW4gdGhlIGZlZSBpcyBwYXllZCBiYWNrLgCoLSBgb3JpZ2luYDogVGhlIG9yaWdpbiBvZiB0aGUgcm91dGUgc2V0dGVyLQEtIGBhc3NldF9wYWlyYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LXBhaXIgZm9yIHdoaWNoIHRoZSByb3V0ZSBpcyBzZXThAi0gYG5ld19yb3V0ZWA6IFNlcmllcyBvZiBbYFRyYWRlPEFzc2V0SWQ+YF0gdG8gYmUgZXhlY3V0ZWQuIEEgW2BUcmFkZTxBc3NldElkPmBdIHNwZWNpZmllcyB0aGUgYXNzZXQgcGFpciAoYGFzc2V0X2luYCwgYGFzc2V0X291dGApIGFuZCB0aGUgQU1NIChgcG9vbGApIGluIHdoaWNoIHRoZSB0cmFkZSBpcyBleGVjdXRlZC4AlEVtaXRzIGBSb3V0ZVVwZGF0ZWRgIHdoZW4gc3VjY2Vzc2Z1bC4AIHNlbGxfYWxsEAEgYXNzZXRfaW4QAShUOjpBc3NldElkAAEkYXNzZXRfb3V0EAEoVDo6QXNzZXRJZAABOG1pbl9hbW91bnRfb3V0GAEoVDo6QmFsYW5jZQABFHJvdXRlYQIBWFZlYzxUcmFkZTxUOjpBc3NldElkPj4ABDj8RXhlY3V0ZXMgYSBzZWxsIHdpdGggYSBzZXJpZXMgb2YgdHJhZGVzIHNwZWNpZmllZCBpbiB0aGUgcm91dGUuxEl0IHNlbGxzIGFsbCByZWR1Y2libGUgdXNlciBiYWxhbmNlIG9mIGBhc3NldF9pbmABAVRoZSBwcmljZSBmb3IgZWFjaCB0cmFkZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBjb3JyZXNwb25kaW5nIEFNTS4AlC0gYG9yaWdpbmA6IFRoZSBleGVjdXRvciBvZiB0aGUgdHJhZGXELSBgYXNzZXRfaW5gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gc2VsbNQtIGBhc3NldF9vdXRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gcmVjZWl2ZQUBLSBgbWluX2Ftb3VudF9vdXRgOiBUaGUgbWluaW11bSBhbW91bnQgb2YgYGFzc2V0X291dGAgdG8gcmVjZWl2ZS7RAi0gYHJvdXRlYDogU2VyaWVzIG9mIFtgVHJhZGU8QXNzZXRJZD5gXSB0byBiZSBleGVjdXRlZC4gQSBbYFRyYWRlPEFzc2V0SWQ+YF0gc3BlY2lmaWVzIHRoZSBhc3NldCBwYWlyIChgYXNzZXRfaW5gLCBgYXNzZXRfb3V0YCkgYW5kIHRoZSBBTU0gKGBwb29sYCkgaW4gd2hpY2ggdGhlIHRyYWRlIGlzIGV4ZWN1dGVkLtwJCSAgIElmIG5vdCBzcGVjaWZpZWQsIHRoYW4gdGhlIG9uLWNoYWluIHJvdXRlIGlzIHVzZWQuGQEJCSAgIElmIG5vIG9uLWNoYWluIGlzIHByZXNlbnQsIHRoZW4gb21uaXBvb2wgcm91dGUgaXMgdXNlZCBhcyBkZWZhdWx0AJhFbWl0cyBgUm91dGVFeGVjdXRlZGAgd2hlbiBzdWNjZXNzZnVsLgAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuyQUMOGh5ZHJhZHhfdHJhaXRzGHJvdXRlciRBc3NldFBhaXIEHEFzc2V0SWQBEAAIASBhc3NldF9pbhABHEFzc2V0SWQAASRhc3NldF9vdXQQARxBc3NldElkAADNBQxMcGFsbGV0X2R5bmFtaWNfZmVlcxhwYWxsZXQQQ2FsbAQEVAABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7RBQw4cGFsbGV0X3N0YWtpbmcYcGFsbGV0EENhbGwEBFQAARRIaW5pdGlhbGl6ZV9zdGFraW5nAAAcRQFTdGFraW5nIHBhbGxldCBpbml0aWFsaXphdGlvbi4gVGhpcyBjYWxsIHdpbGwgcmVzZXJ2ZWQgYHBvdGAncyBiYWxhbmNlIHRvIHByZXZlbnQFAWFjY291bnQgZHVzdGluZyBhbmQgc3RhcnQgY29sbGVjdGluZyBmZWVzIGZyb20gdHJhZGVzIGFzIHJld2FyZHMuAGkBYHBvdGDigJlzIGFjY291bnQgaGFzIHRvIGhhdmUgYSBiYWxhbmNlIHdoaWNoIHdpbGwgYmUgcmVzZXJ2ZWQgdG8gcHJldmVudCBhY2NvdW50IGR1c3RpbmcuAMRFbWl0cyBgU3Rha2luZ0luaXRpYWxpemVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuABRzdGFrZQQBGGFtb3VudBgBHEJhbGFuY2UAATisU3Rha2UgYGFtb3VudGAgaW50byBhIG5ldyBzdGFraW5nIHBvc2l0aW9uLgBZAWBzdGFrZWAgbG9ja3Mgc3BlY2lmaWVkIGBhbW91bnRgIGludG8gc3Rha2luZyBhbmQgY3JlYXRlcyBuZXcgTkZUIHJlcHJlc2VudGluZyBzdGFraW5nJHBvc2l0aW9uLjkBVXNlcnMgY2FuIHN0YWtlIGBOYXRpdmVBc3NldElkYCBiYWxhbmNlIHdoaWNoIGlzIG5vdCB2ZXN0ZWQgb3IgYWxyZWFkeSBzdGFrZWQuADEBU3Rha2luZyBwYWxsZXQgbXVzdCBiZSBpbml0aWFsaXplZCBvdGhlcndpc2UgZXh0cmluc2ljIHdpbGwgZmFpbCB3aXRoIGVycm9yLgAsUGFyYW1ldGVyczpRAS0gYGFtb3VudGA6IEFtb3VudCBvZiBuYXRpdmUgYXNzZXQgdG8gYmUgc3Rha2VkLiBgYW1vdW50YCBjYW4ndCBiZSB2ZXN0ZWQgb3IgYWxyZWFkeRhzdGFrZWQAuEVtaXRzIGBQb3NpdGlvbkNyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOGluY3JlYXNlX3N0YWtlCAEscG9zaXRpb25faWQYAURUOjpQb3NpdGlvbkl0ZW1JZAABGGFtb3VudBgBHEJhbGFuY2UAAkBdAUV4dHJpbnNpYyB0byBpbmNyZWFzZSBzdGFrZWQgYW1vdW50IG9mIGV4aXN0aW5nIHN0YWtpbmcgcG9zaXRpb24gYnkgc3BlY2lmaWVkIGBhbW91bnRgLgBVAWBpbmNyZWFzZV9zdGFrZWAgaW5jcmVhc2VzIHN0YWtlZCBhbW91bnQgb2YgcG9zaXRpb24gc3BlY2lmaWVkIGJ5IGBwb3N0aW9uX2lkYCBieSB0aGV8YGFtb3VudGAgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLjUBU3Rha2luZyBwb3NpdGlvbiBtdXN0IGV4aXN0IGFuZCBgb3JpZ2luYCBoYXMgdG8gYmUgdGhlIG93bmVyIG9mIHRoZSBwb3NpdGlvbi74VXNlcnMgY2FuIHN0YWtlIHRva2VucyB3aGljaCBhcmUgbm90IHZlc3RlZCBvciBhbHJlYWR5IHN0YWtlZC41AVBvc2l0aW9uJ3MgcGFyYW1zIGUuZyBwb2ludHMgYXJlIHVwZGF0ZWQgdG8gb2Zmc2V0IHN0YWtlIGluY3JlYXNlIGFuZCByZXdhcmRz9GFjY3VtdWxhdGVkIHVudGlsIHRoaXMgcG9pbnQgYXJlIHBhaWQgYW5kIGxvY2tlZCB0byB0aGUgdXNlci4ALFBhcmFtZXRlcnM6OQEtIGBwb3NpdGlvbl9pZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBwb3NpdGlvbiB3aGljaCBzdGFrZSB3aWxsIGJlIGluY3JlYXNlZC5xAS0gYGFtb3VudGA6IEFtb3VudCBvZiBuYXRpdmUgYXNzZXQgdG8gYmUgYWRkZWQgdG8gc3Rha2VkIGFtb3VudC4gYGFtb3VudGAgY2FuJ3QgYmUgdmVzdGVkIG9yOGFscmVhZHkgc3Rha2VkAKRFbWl0cyBgU3Rha2VBZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAUY2xhaW0EASxwb3NpdGlvbl9pZBgBRFQ6OlBvc2l0aW9uSXRlbUlkAAM44ENsYWltIHJld2FyZHMgYWNjdW11bGF0ZWQgZm9yIHNwZWNpZmljIHN0YWtpbmcgcG9zaXRpb24uAFEBRnVuY3Rpb24gY2FsY3VsYXRlcyBhbW91bnQgb2YgcmV3YXJkcyB0byBwYXkgZm9yIHNwZWNpZmllZCBzdGFraW5nIHBvc2l0aW9uIGJhc2VkIG9uXQF0aGUgYW1vdW50IG9mIHBvaW50cyBwb3NpdGlvbiBhY2N1bXVsYXRlZC4gRnVuY3Rpb24gYWxzbyB1bmxvY2tzIGFsbCB0aGUgcmV3YXJkcyBsb2NrZWTgZnJvbSBgaW5jcmVhc2Vfc3Rha2VgIGJhc2VkIG9uIHRoZSBhbW91bnQgb2YgdGhlIHBvaW50cy4AaQFUaGlzIGFjdGlvbiBpcyBwZW5hbGl6ZWQgYnkgcmVtb3ZpbmcgYWxsIHRoZSBwb2ludHMgYW5kIHJldHVybmluZyBhbGxvY2F0ZWQgdW5wYWlkIHJld2FyZHNMZm9yIHJlZGlzdHJpYnV0aW9uLgAsUGFyYW1ldGVyczoVAS0gYHBvc2l0aW9uX2lkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHBvc2l0aW9uIHRvIGNsYWltIHJld2FyZHMgZm9yLgC0RW1pdHMgYFJld2FyZHNDbGFpbWVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuABx1bnN0YWtlBAEscG9zaXRpb25faWQYAURUOjpQb3NpdGlvbkl0ZW1JZAAEMEkBRnVuY3Rpb24gcGF5cyByZXdhcmRzLCB1bmxvY2tzIGFsbCB0aGUgc3Rha2VkIGFzc2V0cyBhbmQgZGVzdHJveXMgc3Rha2luZyBwb3NpdGlvbmxzcGVjaWZpZWQgYnkgYHBvc2l0aW9uX2lkYC4AWQFGdW5jdGlvbiBjYWxjdWxhdGVzIGFuZCBwYXlzIGxhdGVzdCByZXdhcmRzLCB1bmxvY2tzIGFsbCB0aGUgbG9ja2VkIHJld2FyZHMgYW5kIHN0YWtlZCEBdG9rZW5zIGZvciBzdGFraW5nIHBvc2l0aW9uIGFuZCBidXJucyBORlQgcmVwcmVzZW50aW5nIHN0YWtpbmcgcG9zaXRpb24uIQFVbnBhaWQgYWxsb2NhdGVkIHJld2FyZHMgYXJlIHJldHVybmVkIHRvIHRoZSBTdGFraW5nIGZvciByZWRpc3RyaWJ1dGlvbi4ALFBhcmFtZXRlcnM6AQEtIGBwb3NpdGlvbl9pZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBwb3NpdGlvbiB0byBiZSBkZXN0cm95ZWQuAPRFbWl0cyBgUmV3YXJkc0NsYWltZWRgIGFuZCBgVW5zdGFrZWRgIGV2ZW50cyB3aGVuIHN1Y2Nlc3NmdWwuAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7VBQxEcGFsbGV0X3N0YWJsZXN3YXAYcGFsbGV0EENhbGwEBFQAASgsY3JlYXRlX3Bvb2wQASxzaGFyZV9hc3NldBABKFQ6OkFzc2V0SWQAARhhc3NldHOdAQE8VmVjPFQ6OkFzc2V0SWQ+AAE0YW1wbGlmaWNhdGlvbtwBDHUxNgABDGZlZWkBARxQZXJtaWxsAAA4vENyZWF0ZSBhIHN0YWJsZSBwb29sIHdpdGggZ2l2ZW4gbGlzdCBvZiBhc3NldHMuAPhBbGwgYXNzZXRzIG11c3QgYmUgY29ycmVjdGx5IHJlZ2lzdGVyZWQgaW4gYFQ6OkFzc2V0UmVnaXN0cnlgLlEBTm90ZSB0aGF0IHRoaXMgZG9lcyBub3Qgc2VlZCB0aGUgcG9vbCB3aXRoIGxpcXVpZGl0eS4gVXNlIGBhZGRfbGlxdWlkaXR5YCB0byBwcm92aWRlSGluaXRpYWwgbGlxdWlkaXR5LgAsUGFyYW1ldGVyczqYLSBgb3JpZ2luYDogTXVzdCBiZSBUOjpBdXRob3JpdHlPcmlnaW7ULSBgc2hhcmVfYXNzZXRgOiBQcmVyZWdpc3RlcmVkIHNoYXJlIGFzc2V0IGlkZW50aWZpZXJ0LSBgYXNzZXRzYDogTGlzdCBvZiBBc3NldCBpZHOULSBgYW1wbGlmaWNhdGlvbmA6IFBvb2wgYW1wbGlmaWNhdGlvbvAtIGBmZWVgOiBmZWUgdG8gYmUgYXBwbGllZCBvbiB0cmFkZSBhbmQgbGlxdWlkaXR5IG9wZXJhdGlvbnMAoEVtaXRzIGBQb29sQ3JlYXRlZGAgZXZlbnQgaWYgc3VjY2Vzc2Z1bC48dXBkYXRlX3Bvb2xfZmVlCAEccG9vbF9pZBABKFQ6OkFzc2V0SWQAAQxmZWVpAQEcUGVybWlsbAABKEhVcGRhdGUgcG9vbCdzIGZlZS4AzGlmIHBvb2wgZG9lcyBub3QgZXhpc3QsIGBQb29sTm90Rm91bmRgIGlzIHJldHVybmVkLgAsUGFyYW1ldGVyczqYLSBgb3JpZ2luYDogTXVzdCBiZSBUOjpBdXRob3JpdHlPcmlnaW5sLSBgcG9vbF9pZGA6IHBvb2wgdG8gdXBkYXRlVC0gYGZlZWA6IG5ldyBwb29sIGZlZQCcRW1pdHMgYEZlZVVwZGF0ZWRgIGV2ZW50IGlmIHN1Y2Nlc3NmdWwuUHVwZGF0ZV9hbXBsaWZpY2F0aW9uEAEccG9vbF9pZBABKFQ6OkFzc2V0SWQAAUxmaW5hbF9hbXBsaWZpY2F0aW9u3AEMdTE2AAEsc3RhcnRfYmxvY2sQAURCbG9ja051bWJlckZvcjxUPgABJGVuZF9ibG9jaxABREJsb2NrTnVtYmVyRm9yPFQ+AAIkcFVwZGF0ZSBwb29sJ3MgYW1wbGlmaWNhdGlvbi4ALFBhcmFtZXRlcnM6mC0gYG9yaWdpbmA6IE11c3QgYmUgVDo6QXV0aG9yaXR5T3JpZ2lubC0gYHBvb2xfaWRgOiBwb29sIHRvIHVwZGF0ZeAtIGBmdXR1cmVfYW1wbGlmaWNhdGlvbmA6IG5ldyBkZXNpcmVkIHBvb2wgYW1wbGlmaWNhdGlvbh0BLSBgZnV0dXJlX2Jsb2NrYDogZnV0dXJlIGJsb2NrIG51bWJlciB3aGVuIHRoZSBhbXBsaWZpY2F0aW9uIGlzIHVwZGF0ZWQAxEVtaXRzIGBBbXBsaWZpY2F0aW9uVXBkYXRlZGAgZXZlbnQgaWYgc3VjY2Vzc2Z1bC40YWRkX2xpcXVpZGl0eQgBHHBvb2xfaWQQAShUOjpBc3NldElkAAEYYXNzZXRzsQEBcFZlYzxBc3NldEFtb3VudDxUOjpBc3NldElkPj4AA0B8QWRkIGxpcXVpZGl0eSB0byBzZWxlY3RlZCBwb29sLgA1AUZpcnN0IGNhbGwgb2YgYGFkZF9saXF1aWRpdHlgIG11c3QgcHJvdmlkZSAiaW5pdGlhbCBsaXF1aWRpdHkiIG9mIGFsbCBhc3NldHMuAIUBSWYgdGhlcmUgaXMgbGlxdWlkaXR5IGFscmVhZHkgaW4gdGhlIHBvb2wsIExQIGNhbiBwcm92aWRlIGxpcXVpZGl0eSBvZiBhbnkgbnVtYmVyIG9mIHBvb2wgYXNzZXRzLgC0TFAgbXVzdCBoYXZlIHN1ZmZpY2llbnQgYW1vdW50IG9mIGVhY2ggYXNzZXQuALxPcmlnaW4gaXMgZ2l2ZW4gY29ycmVzcG9uZGluZyBhbW91bnQgb2Ygc2hhcmVzLgAsUGFyYW1ldGVyczp4LSBgb3JpZ2luYDogbGlxdWlkaXR5IHByb3ZpZGVyUC0gYHBvb2xfaWRgOiBQb29sIElkyC0gYGFzc2V0c2A6IGFzc2V0IGlkIGFuZCBsaXF1aWRpdHkgYW1vdW50IHByb3ZpZGVkALRFbWl0cyBgTGlxdWlkaXR5QWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5QYWRkX2xpcXVpZGl0eV9zaGFyZXMQARxwb29sX2lkEAEoVDo6QXNzZXRJZAABGHNoYXJlcxgBHEJhbGFuY2UAASBhc3NldF9pZBABKFQ6OkFzc2V0SWQAAUBtYXhfYXNzZXRfYW1vdW50GAEcQmFsYW5jZQAEOB0BQWRkIGxpcXVpZGl0eSB0byBzZWxlY3RlZCBwb29sIGdpdmVuIGV4YWN0IGFtb3VudCBvZiBzaGFyZXMgdG8gcmVjZWl2ZS4AOQFTaW1pbGFyIHRvIGBhZGRfbGlxdWlkaXR5YCBidXQgTFAgc3BlY2lmaWVzIGV4YWN0IGFtb3VudCBvZiBzaGFyZXMgdG8gcmVjZWl2ZS4A3QFUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgdXNlZCBtYWlubHkgYnkgb24tY2hhaW4gcm91dGluZyB3aGVuIGEgc3dhcCBiZXR3ZWVuIE9tbmlwb29sIGFzc2V0IGFuZCBzdGFibGUgYXNzZXQgaXMgcGVyZm9ybWVkLgAsUGFyYW1ldGVyczp4LSBgb3JpZ2luYDogbGlxdWlkaXR5IHByb3ZpZGVyUC0gYHBvb2xfaWRgOiBQb29sIElknC0gYHNoYXJlc2A6IGFtb3VudCBvZiBzaGFyZXMgdG8gcmVjZWl2ZegtIGBhc3NldF9pZGA6IGFzc2V0IGlkIG9mIGFuIGFzc2V0IHRvIHByb3ZpZGUgYXMgbGlxdWlkaXR56C0gYG1heF9hc3NldF9hbW91bnRgOiBzbGlwcGFnZSBsaW1pdC4gTWF4IGFtb3VudCBvZiBhc3NldC4AtEVtaXRzIGBMaXF1aWRpdHlBZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLmhyZW1vdmVfbGlxdWlkaXR5X29uZV9hc3NldBABHHBvb2xfaWQQAShUOjpBc3NldElkAAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAEwc2hhcmVfYW1vdW50GAEcQmFsYW5jZQABOG1pbl9hbW91bnRfb3V0GAEcQmFsYW5jZQAFQJBSZW1vdmUgbGlxdWlkaXR5IGZyb20gc2VsZWN0ZWQgcG9vbC4AyFdpdGhkcmF3cyBsaXF1aWRpdHkgb2Ygc2VsZWN0ZWQgYXNzZXQgZnJvbSBhIHBvb2wuADEBU2hhcmUgYW1vdW50IGlzIGJ1cm5lZCBhbmQgTFAgcmVjZWl2ZXMgY29ycmVzcG9uZGluZyBhbW91bnQgb2YgY2hvc2VuIGFzc2V0LgCwV2l0aGRyYXcgZmVlIGlzIGFwcGxpZWQgdG8gdGhlIGFzc2V0IGFtb3VudC4ALFBhcmFtZXRlcnM6eC0gYG9yaWdpbmA6IGxpcXVpZGl0eSBwcm92aWRlclAtIGBwb29sX2lkYDogUG9vbCBJZJAtIGBhc3NldF9pZGA6IGlkIG9mIGFzc2V0IHRvIHJlY2VpdmW4LSAnc2hhcmVfYW1vdW50JzogYW1vdW50IG9mIHNoYXJlcyB0byB3aXRoZHJhd7QtICdtaW5fYW1vdW50X291dCc6IG1pbmltdW0gYW1vdW50IHRvIHJlY2VpdmUAvEVtaXRzIGBMaXF1aWRpdHlSZW1vdmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuVHdpdGhkcmF3X2Fzc2V0X2Ftb3VudBABHHBvb2xfaWQQAShUOjpBc3NldElkAAEgYXNzZXRfaWQQAShUOjpBc3NldElkAAEYYW1vdW50GAEcQmFsYW5jZQABQG1heF9zaGFyZV9hbW91bnQYARxCYWxhbmNlAAYwTQFSZW1vdmUgbGlxdWlkaXR5IGZyb20gc2VsZWN0ZWQgcG9vbCBieSBzcGVjaWZ5aW5nIGV4YWN0IGFtb3VudCBvZiBhc3NldCB0byByZWNlaXZlLgDJAVNpbWlsYXIgdG8gYHJlbW92ZV9saXF1aWRpdHlfb25lX2Fzc2V0YCBidXQgTFAgc3BlY2lmaWVzIGV4YWN0IGFtb3VudCBvZiBhc3NldCB0byByZWNlaXZlIGluc3RlYWQgb2Ygc2hhcmUgYW1vdW50LgAsUGFyYW1ldGVyczp4LSBgb3JpZ2luYDogbGlxdWlkaXR5IHByb3ZpZGVyUC0gYHBvb2xfaWRgOiBQb29sIElkkC0gYGFzc2V0X2lkYDogaWQgb2YgYXNzZXQgdG8gcmVjZWl2ZZgtICdhbW91bnQnOiBhbW91bnQgb2YgYXNzZXQgdG8gcmVjZWl2ZQ0BLSAnbWF4X3NoYXJlX2Ftb3VudCc6IFNsaXBwYWdlIGxpbWl0LiBNYXggYW1vdW50IG9mIHNoYXJlcyB0byBidXJuLgC8RW1pdHMgYExpcXVpZGl0eVJlbW92ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4Qc2VsbBQBHHBvb2xfaWQQAShUOjpBc3NldElkAAEgYXNzZXRfaW4QAShUOjpBc3NldElkAAEkYXNzZXRfb3V0EAEoVDo6QXNzZXRJZAABJGFtb3VudF9pbhgBHEJhbGFuY2UAAThtaW5fYnV5X2Ftb3VudBgBHEJhbGFuY2UABzC0RXhlY3V0ZSBhIHN3YXAgb2YgYGFzc2V0X2luYCBmb3IgYGFzc2V0X291dGAuACxQYXJhbWV0ZXJzOoAtIGBvcmlnaW5gOiBvcmlnaW4gb2YgdGhlIGNhbGxlcmQtIGBwb29sX2lkYDogSWQgb2YgYSBwb29sqC0gYGFzc2V0X2luYDogSUQgb2YgYXNzZXQgc29sZCB0byB0aGUgcG9vbLwtIGBhc3NldF9vdXRgOiBJRCBvZiBhc3NldCBib3VnaHQgZnJvbSB0aGUgcG9vbNQtIGBhbW91bnRfaW5gOiBBbW91bnQgb2YgYXNzZXQgdG8gYmUgc29sZCB0byB0aGUgcG9vbNgtIGBtaW5fYnV5X2Ftb3VudGA6IE1pbmltdW0gYW1vdW50IHJlcXVpcmVkIHRvIHJlY2VpdmUArEVtaXRzIGBTZWxsRXhlY3V0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4ADGJ1eRQBHHBvb2xfaWQQAShUOjpBc3NldElkAAEkYXNzZXRfb3V0EAEoVDo6QXNzZXRJZAABIGFzc2V0X2luEAEoVDo6QXNzZXRJZAABKGFtb3VudF9vdXQYARxCYWxhbmNlAAE8bWF4X3NlbGxfYW1vdW50GAEcQmFsYW5jZQAIMLRFeGVjdXRlIGEgc3dhcCBvZiBgYXNzZXRfaW5gIGZvciBgYXNzZXRfb3V0YC4ALFBhcmFtZXRlcnM6LC0gYG9yaWdpbmA6ZC0gYHBvb2xfaWRgOiBJZCBvZiBhIHBvb2y8LSBgYXNzZXRfb3V0YDogSUQgb2YgYXNzZXQgYm91Z2h0IGZyb20gdGhlIHBvb2yoLSBgYXNzZXRfaW5gOiBJRCBvZiBhc3NldCBzb2xkIHRvIHRoZSBwb29s4C0gYGFtb3VudF9vdXRgOiBBbW91bnQgb2YgYXNzZXQgdG8gcmVjZWl2ZSBmcm9tIHRoZSBwb29s2C0gYG1heF9zZWxsX2Ftb3VudGA6IE1heGltdW0gYW1vdW50IGFsbG93ZWQgdG8gYmUgc29sZACoRW1pdHMgYEJ1eUV4ZWN1dGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAGBzZXRfYXNzZXRfdHJhZGFibGVfc3RhdGUMARxwb29sX2lkEAEoVDo6QXNzZXRJZAABIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAABFHN0YXRluQEBLFRyYWRhYmlsaXR5AAkABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLtkFDDBwYWxsZXRfYm9uZHMYcGFsbGV0EENhbGwEBFQAAQgUaXNzdWUMASBhc3NldF9pZBABHEFzc2V0SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAEgbWF0dXJpdHkwARhNb21lbnQAAFRkSXNzdWUgbmV3IGZ1bmdpYmxlIGJvbmRzLtROZXcgYXNzZXQgaWQgaXMgcmVnaXN0ZXJlZCBhbmQgYXNzaWduZWQgdG8gdGhlIGJvbmRzLlkBVGhlIG51bWJlciBvZiBib25kcyB0aGUgaXNzdWVyIHJlY2VpdmVzIGlzIDE6MSB0byB0aGUgYGFtb3VudGAgb2YgdGhlIHVuZGVybHlpbmcgYXNzZXRcbWludXMgdGhlIHByb3RvY29sIGZlZS4ZAVRoZSBib25kIGFzc2V0IGlzIHJlZ2lzdGVyZWQgd2l0aCB0aGUgZW1wdHkgc3RyaW5nIGZvciB0aGUgYXNzZXQgbmFtZSwFAWFuZCB3aXRoIHRoZSBzYW1lIGV4aXN0ZW50aWFsIGRlcG9zaXQgYXMgb2YgdGhlIHVuZGVybHlpbmcgYXNzZXQu7EJvbmRzIGNhbiBiZSByZWRlZW1lZCBmb3IgdGhlIHVuZGVybHlpbmcgYXNzZXQgb25jZSBtYXR1cmUuLQFQcm90b2NvbCBmZWUgaXMgYXBwbGllZCB0byB0aGUgYW1vdW50LCBhbmQgdHJhbnNmZXJyZWQgdG8gYFQ6OkZlZVJlY2VpdmVyYC5pAVdoZW4gaXNzdWluZyBuZXcgYm9uZHMgd2l0aCB0aGUgdW5kZXJseWluZyBhc3NldCBhbmQgbWF0dXJpdHkgdGhhdCBtYXRjaGVzIGV4aXN0aW5nIGJvbmRzLD0BbmV3IGFtb3VudCBvZiB0aGVzZSBleGlzdGluZyBib25kcyBpcyBpc3N1ZWQsIGluc3RlYWQgb2YgcmVnaXN0ZXJpbmcgbmV3IGJvbmRzLg0BSXQncyBwb3NzaWJsZSB0byBpc3N1ZSBuZXcgYm9uZHMgZm9yIGJvbmRzIHRoYXQgYXJlIGFscmVhZHkgbWF0dXJlLgAsUGFyYW1ldGVyczr0LSBgb3JpZ2luYDogaXNzdWVyIG9mIG5ldyBib25kcywgbmVlZHMgdG8gYmUgYFQ6Oklzc3VlT3JpZ2luYIQtIGBhc3NldF9pZGA6IHVuZGVybHlpbmcgYXNzZXQgaWS4LSBgYW1vdW50YDogdGhlIGFtb3VudCBvZiB0aGUgdW5kZXJseWluZyBhc3NldB0BLSBgbWF0dXJpdHlgOiBVbml4IHRpbWUgaW4gbWlsbGlzZWNvbmRzLCB3aGVuIHRoZSBib25kcyB3aWxsIGJlIG1hdHVyZS4ANQFFbWl0cyBgQm9uZFRva2VuQ3JlYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsIGFuZCBuZXcgYm9uZHMgd2VyZSByZWdpc3RlcmVkLqhFbWl0cyBgQm9uZHNJc3N1ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AGHJlZGVlbQgBHGJvbmRfaWQQARxBc3NldElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQABMJhSZWRlZW0gYm9uZHMgZm9yIHRoZSB1bmRlcmx5aW5nIGFzc2V0LnUBVGhlIGFtb3VudCBvZiB0aGUgdW5kZXJseWluZyBhc3NldCB0aGUgYG9yaWdpbmAgcmVjZWl2ZXMgaXMgMToxIHRvIHRoZSBgYW1vdW50YCBvZiB0aGUgYm9uZHMuyEFueW9uZSB3aG8gaG9sZHMgdGhlIGJvbmRzIGlzIGFibGUgdG8gcmVkZWVtIHRoZW0uuEJvbmRzIGNhbiBiZSBib3RoIHBhcnRpYWxseSBvciBmdWxseSByZWRlZW1lZC4ALFBhcmFtZXRlcnM6WC0gYG9yaWdpbmA6IGFjY291bnQgaWRsLSBgYXNzZXRfaWRgOiBib25kIGFzc2V0IGlkGQEtIGBhbW91bnRgOiB0aGUgYW1vdW50IG9mIHRoZSBib25kcyB0byByZWRlZW0gZm9yIHRoZSB1bmRlcmx5aW5nIGFzc2V0ALBFbWl0cyBgQm9uZHNSZWRlZW1lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu3QUMWHBhbGxldF9vdGNfc2V0dGxlbWVudHMYcGFsbGV0EENhbGwEBFQAAQRAc2V0dGxlX290Y19vcmRlcgwBGG90Y19pZBABHE9yZGVySWQAARhhbW91bnQYARxCYWxhbmNlAAEUcm91dGVhAgFgVmVjPFRyYWRlPEFzc2V0SWRPZjxUPj4+AABQsENsb3NlIGFuIGV4aXN0aW5nIE9UQyBhcmJpdHJhZ2Ugb3Bwb3J0dW5pdHkuANRFeGVjdXRlcyBhIHRyYWRlIGJldHdlZW4gYW4gT1RDIG9yZGVyIGFuZCBzb21lIHJvdXRlLlUBSWYgdGhlIE9UQyBvcmRlciBpcyBwYXJ0aWFsbHkgZmlsbGFibGUsIHRoZSBleHRyaW5zaWMgZmFpbHMgaWYgdGhlIGV4aXN0aW5nIGFyYml0cmFnZdRvcHBvcnR1bml0eSBpcyBub3QgY2xvc2VkIG9yIHJlZHVjZWQgYWZ0ZXIgdGhlIHRyYWRlLmEBSWYgdGhlIE9UQyBvcmRlciBpcyBub3QgcGFydGlhbGx5IGZpbGxhYmxlLCBmYWlscyBpZiB0aGVyZSBpcyBubyBwcm9maXQgYWZ0ZXIgdGhlIHRyYWRlLgARAWBPcmlnaW5gIGNhbGxpbmcgdGhpcyBleHRyaW5zaWMgaXMgbm90IHBheWluZyBvciByZWNlaXZpbmcgYW55dGhpbmcuACUBVGhlIHByb2ZpdCBtYWRlIGJ5IGNsb3NpbmcgdGhlIGFyYml0cmFnZSBpcyB0cmFuc2ZlcnJlZCB0byBgRmVlUmVjZWl2ZXJgLgAsUGFyYW1ldGVyczo5AS0gYG9yaWdpbmA6IFNpZ25lZCBvciB1bnNpZ25lZCBvcmlnaW4uIFVuc2lnbmVkIG9yaWdpbiBkb2Vzbid0IHBheSB0aGUgVFggZmVlLKwJCQlidXQgY2FuIGJlIHN1Ym1pdHRlZCBvbmx5IGJ5IGEgY29sbGF0b3IuEQEtIGBvdGNfaWRgOiBJRCBvZiB0aGUgT1RDIG9yZGVyIHdpdGggZXhpc3RpbmcgYXJiaXRyYWdlIG9wcG9ydHVuaXR5LrgtIGBhbW91bnRgOiBBbW91bnQgbmVjZXNzYXJ5IHRvIGNsb3NlIHRoZSBhcmIuIQEtIGByb3V0ZWA6IFRoZSByb3V0ZSB3ZSB0cmFkZSBhZ2FpbnN0LiBSZXF1aXJlZCBmb3IgdGhlIGZlZSBjYWxjdWxhdGlvbi4AnEVtaXRzIGBFeGVjdXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu4QUMKHBhbGxldF9sYnAYcGFsbGV0EENhbGwEBFQAARgsY3JlYXRlX3Bvb2wsAShwb29sX293bmVyAAEwVDo6QWNjb3VudElkAAEcYXNzZXRfYRABHEFzc2V0SWQAAThhc3NldF9hX2Ftb3VudBgBHEJhbGFuY2UAARxhc3NldF9iEAEcQXNzZXRJZAABOGFzc2V0X2JfYW1vdW50GAEcQmFsYW5jZQABOGluaXRpYWxfd2VpZ2h0EAEkTEJQV2VpZ2h0AAEwZmluYWxfd2VpZ2h0EAEkTEJQV2VpZ2h0AAEwd2VpZ2h0X2N1cnZl0QEBPFdlaWdodEN1cnZlVHlwZQABDGZlZZEBASgodTMyLCB1MzIpAAE0ZmVlX2NvbGxlY3RvcgABMFQ6OkFjY291bnRJZAABMHJlcGF5X3RhcmdldBgBHEJhbGFuY2UAAIT8Q3JlYXRlIGEgbmV3IGxpcXVpZGl0eSBib290c3RyYXBwaW5nIHBvb2wgZm9yIGdpdmVuIGFzc2V0IHBhaXIuANhGb3IgYW55IGFzc2V0IHBhaXIsIG9ubHkgb25lIHBvb2wgY2FuIGV4aXN0IGF0IGEgdGltZS4AAQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgVDo6Q3JlYXRlUG9vbE9yaWdpbmAuVQFUaGUgcG9vbCBpcyBjcmVhdGVkIHdpdGggaW5pdGlhbCBsaXF1aWRpdHkgcHJvdmlkZWQgYnkgdGhlIGBwb29sX293bmVyYCB3aG8gbXVzdCBoYXZlWHN1ZmZpY2llbnQgZnVuZHMgZnJlZS4AoQFUaGUgcG9vbCBzdGFydHMgdW5pbml0aWFsaXplZCBhbmQgdXBkYXRlX3Bvb2wgY2FsbCBzaG91bGQgYmUgY2FsbGVkIG9uY2UgY3JlYXRlZCB0byBzZXQgdGhlIHN0YXJ0IGJsb2NrLgA5AVRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGRpc3BhdGNoZWQgZnJvbSBnb3Zlcm5pbmcgZW50aXR5IGBUOjpDcmVhdGVQb29sT3JpZ2luYAAsUGFyYW1ldGVyczrELSBgcG9vbF9vd25lcmA6IHRoZSBmdXR1cmUgb3duZXIgb2YgdGhlIG5ldyBwb29sLiEBLSBgYXNzZXRfYWA6IHsgYXNzZXRfaWQsIGFtb3VudCB9IEFzc2V0IElEIGFuZCBpbml0aWFsIGxpcXVpZGl0eSBhbW91bnQuIQEtIGBhc3NldF9iYDogeyBhc3NldF9pZCwgYW1vdW50IH0gQXNzZXQgSUQgYW5kIGluaXRpYWwgbGlxdWlkaXR5IGFtb3VudC6hAS0gYGluaXRpYWxfd2VpZ2h0YDogSW5pdGlhbCB3ZWlnaHQgb2YgdGhlIGFzc2V0X2EuIDFfMDAwXzAwMCBjb3JyZXNwb25kaW5nIHRvIDElIGFuZCAxMDBfMDAwXzAwMCB0byAxMDAlnHRoaXMgc2hvdWxkIGJlIGhpZ2hlciB0aGFuIGZpbmFsIHdlaWdodJEBLSBgZmluYWxfd2VpZ2h0YDogRmluYWwgd2VpZ2h0IG9mIHRoZSBhc3NldF9hLiAxXzAwMF8wMDAgY29ycmVzcG9uZGluZyB0byAxJSBhbmQgMTAwXzAwMF8wMDAgdG8gMTAwJaB0aGlzIHNob3VsZCBiZSBsb3dlciB0aGFuIGluaXRpYWwgd2VpZ2h0QQEtIGB3ZWlnaHRfY3VydmVgOiBUaGUgd2VpZ2h0IGZ1bmN0aW9uIHVzZWQgdG8gdXBkYXRlIHRoZSBMQlAgd2VpZ2h0cy4gQ3VycmVudGx5LA0BdGhlcmUgaXMgb25seSBvbmUgd2VpZ2h0IGZ1bmN0aW9uIGltcGxlbWVudGVkLCB0aGUgbGluZWFyIGZ1bmN0aW9uLj0BLSBgZmVlYDogVGhlIHRyYWRpbmcgZmVlIGNoYXJnZWQgb24gZXZlcnkgdHJhZGUgZGlzdHJpYnV0ZWQgdG8gYGZlZV9jb2xsZWN0b3JgLiUBLSBgZmVlX2NvbGxlY3RvcmA6IFRoZSBhY2NvdW50IHRvIHdoaWNoIHRyYWRpbmcgZmVlcyB3aWxsIGJlIHRyYW5zZmVycmVkLp0BLSBgcmVwYXlfdGFyZ2V0YDogVGhlIGFtb3VudCBvZiB0b2tlbnMgdG8gcmVwYXkgdG8gc2VwYXJhdGUgZmVlX2NvbGxlY3RvciBhY2NvdW50LiBVbnRpbCB0aGlzIGFtb3VudCBpc/RyZWFjaGVkLCBmZWUgd2lsbCBiZSBpbmNyZWFzZWQgdG8gMjAlIGFuZCB0YWtlbiBmcm9tIHRoZSBwb29sAKhFbWl0cyBgUG9vbENyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AnQFCRVdBUkU6IFdlIGFyZSB0YWtpbmcgdGhlIGZlZSBmcm9tIHRoZSBhY2N1bXVsYXRlZCBhc3NldC4gSWYgdGhlIGFjY3VtdWxhdGVkIGFzc2V0IGlzIHNvbGQgdG8gdGhlIHBvb2wseQF0aGUgZmVlIGNvc3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHBvb2wuIElmIGl0cyBib3VnaHQgZnJvbSB0aGUgcG9vbCB0aGUgYnV5ZXIgYmVhcnMgdGhlIGNvc3QuaQFUaGlzIGluY3JlYXNlcyB0aGUgcHJpY2Ugb2YgdGhlIHNvbGQgYXNzZXQgb24gZXZlcnkgdHJhZGUuIE1ha2Ugc3VyZSB0byBvbmx5IHJ1biB0aGlzIHdpdGhscHJldmlvdXNseSBpbGxpcXVpZCBhc3NldHMuQHVwZGF0ZV9wb29sX2RhdGEkARxwb29sX2lkAAEkUG9vbElkPFQ+AAEocG9vbF9vd25lcgEBAVBPcHRpb248VDo6QWNjb3VudElkPgABFHN0YXJ0zQEBZE9wdGlvbjxCbG9ja051bWJlckZvcjxUPj4AAQxlbmTNAQFkT3B0aW9uPEJsb2NrTnVtYmVyRm9yPFQ+PgABOGluaXRpYWxfd2VpZ2h0zQEBRE9wdGlvbjxMQlBXZWlnaHQ+AAEwZmluYWxfd2VpZ2h0zQEBRE9wdGlvbjxMQlBXZWlnaHQ+AAEMZmVllQEBSE9wdGlvbjwodTMyLCB1MzIpPgABNGZlZV9jb2xsZWN0b3IBAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AATByZXBheV90YXJnZXT0ATxPcHRpb248QmFsYW5jZT4AAUhsVXBkYXRlIHBvb2wgZGF0YSBvZiBhIHBvb2wuAA0BVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgc2lnbmVkIGJ5IHRoZSBwb29sIG93bmVyLgAFAVRoZSBwb29sIGNhbiBiZSB1cGRhdGVkIG9ubHkgaWYgdGhlIHNhbGUgaGFzIG5vdCBhbHJlYWR5IHN0YXJ0ZWQuABkBQXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmcgb3B0aW9uYWwgcGFyYW1ldGVycyBoYXMgdG8gYmUgc3BlY2lmaWVkLgAsUGFyYW1ldGVyczrYLSBgcG9vbF9pZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBwb29sIHRvIGJlIHVwZGF0ZWQuJQEtIGBzdGFydGA6IFRoZSBuZXcgc3RhcnRpbmcgdGltZSBvZiB0aGUgc2FsZS4gVGhpcyBwYXJhbWV0ZXIgaXMgb3B0aW9uYWwuFQEtIGBlbmRgOiBUaGUgbmV3IGVuZGluZyB0aW1lIG9mIHRoZSBzYWxlLiBUaGlzIHBhcmFtZXRlciBpcyBvcHRpb25hbC4dAS0gYGluaXRpYWxfd2VpZ2h0YDogVGhlIG5ldyBpbml0aWFsIHdlaWdodC4gVGhpcyBwYXJhbWV0ZXIgaXMgb3B0aW9uYWwuDQEtIGBmaW5hbF93ZWlnaHRgOiBUaGUgbmV3IGZpbmFsIHdlaWdodC4gVGhpcyBwYXJhbWV0ZXIgaXMgb3B0aW9uYWwuQQEtIGBmZWVgOiBUaGUgbmV3IHRyYWRpbmcgZmVlIGNoYXJnZWQgb24gZXZlcnkgdHJhZGUuIFRoaXMgcGFyYW1ldGVyIGlzIG9wdGlvbmFsLkEBLSBgZmVlX2NvbGxlY3RvcmA6IFRoZSBuZXcgcmVjZWl2ZXIgb2YgdHJhZGluZyBmZWVzLiBUaGlzIHBhcmFtZXRlciBpcyBvcHRpb25hbC4AqEVtaXRzIGBQb29sVXBkYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjRhZGRfbGlxdWlkaXR5CAEgYW1vdW50X2HlBQFcKEFzc2V0SWQsIEJhbGFuY2VPZjxUPikAASBhbW91bnRfYuUFAVwoQXNzZXRJZCwgQmFsYW5jZU9mPFQ+KQACMGBBZGQgbGlxdWlkaXR5IHRvIGEgcG9vbC4ATQFBc3NldHMgdG8gYWRkIGhhcyB0byBtYXRjaCB0aGUgcG9vbCBhc3NldHMuIEF0IGxlYXN0IG9uZSBhbW91bnQgaGFzIHRvIGJlIG5vbi16ZXJvLgANAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHNpZ25lZCBieSB0aGUgcG9vbCBvd25lci4ALFBhcmFtZXRlcnM6nC0gYHBvb2xfaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgcG9vbAEBLSBgYW1vdW50X2FgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgYW5kIHRoZSBhbW91bnQgdG8gYWRkLh0BLSBgYW1vdW50X2JgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgc2Vjb25kIGFzc2V0IGFuZCB0aGUgYW1vdW50IHRvIGFkZC4AtEVtaXRzIGBMaXF1aWRpdHlBZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLkByZW1vdmVfbGlxdWlkaXR5BAEccG9vbF9pZAABJFBvb2xJZDxUPgADLE0BVHJhbnNmZXIgYWxsIHRoZSBsaXF1aWRpdHkgZnJvbSBhIHBvb2wgYmFjayB0byB0aGUgcG9vbCBvd25lciBhbmQgZGVzdHJveSB0aGUgcG9vbC7AVGhlIHBvb2wgZGF0YSBhcmUgYWxzbyByZW1vdmVkIGZyb20gdGhlIHN0b3JhZ2UuALBUaGUgcG9vbCBjYW4ndCBiZSBkZXN0cm95ZWQgZHVyaW5nIHRoZSBzYWxlLgANAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHNpZ25lZCBieSB0aGUgcG9vbCBvd25lci4ALFBhcmFtZXRlcnM6AQEtIGBhbW91bnRfYWA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBhbmQgdGhlIGFtb3VudCB0byBhZGQuAKRFbWl0cyAnTGlxdWlkaXR5UmVtb3ZlZCcgd2hlbiBzdWNjZXNzZnVsLhBzZWxsEAEgYXNzZXRfaW4QARxBc3NldElkAAEkYXNzZXRfb3V0EAEcQXNzZXRJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgABJG1heF9saW1pdBgBMEJhbGFuY2VPZjxUPgAEOIRUcmFkZSBgYXNzZXRfaW5gIGZvciBgYXNzZXRfb3V0YC4AVQFFeGVjdXRlcyBhIHN3YXAgb2YgYGFzc2V0X2luYCBmb3IgYGFzc2V0X291dGAuIFByaWNlIGlzIGRldGVybWluZWQgYnkgdGhlIHBvb2wgYW5kIGlzJQFhZmZlY3RlZCBieSB0aGUgYW1vdW50IGFuZCBwcm9wb3J0aW9uIG9mIHRoZSBwb29sIGFzc2V0cyBhbmQgdGhlIHdlaWdodHMuANBUcmFkaW5nIGBmZWVgIGlzIGRpc3RyaWJ1dGVkIHRvIHRoZSBgZmVlX2NvbGxlY3RvcmAuACxQYXJhbWV0ZXJzOmUBLSBgYXNzZXRfaW5gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgYmVpbmcgdHJhbnNmZXJyZWQgZnJvbSB0aGUgYWNjb3VudCB0byB0aGUgcG9vbC5pAS0gYGFzc2V0X291dGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBiZWluZyB0cmFuc2ZlcnJlZCBmcm9tIHRoZSBwb29sIHRvIHRoZSBhY2NvdW50LpAtIGBhbW91bnRgOiBUaGUgYW1vdW50IG9mIGBhc3NldF9pbmDtAS0gYG1heF9saW1pdGA6IG1pbmltdW0gYW1vdW50IG9mIGBhc3NldF9vdXRgIC8gYW1vdW50IG9mIGFzc2V0X291dCB0byBiZSBvYnRhaW5lZCBmcm9tIHRoZSBwb29sIGluIGV4Y2hhbmdlIGZvciBgYXNzZXRfaW5gLgCURW1pdHMgYFNlbGxFeGVjdXRlZGAgd2hlbiBzdWNjZXNzZnVsLgxidXkQASRhc3NldF9vdXQQARxBc3NldElkAAEgYXNzZXRfaW4QARxBc3NldElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAEkbWF4X2xpbWl0GAEwQmFsYW5jZU9mPFQ+AAU4hFRyYWRlIGBhc3NldF9pbmAgZm9yIGBhc3NldF9vdXRgLgBVAUV4ZWN1dGVzIGEgc3dhcCBvZiBgYXNzZXRfaW5gIGZvciBgYXNzZXRfb3V0YC4gUHJpY2UgaXMgZGV0ZXJtaW5lZCBieSB0aGUgcG9vbCBhbmQgaXM1AWFmZmVjdGVkIGJ5IHRoZSBhbW91bnQgYW5kIHRoZSBwcm9wb3J0aW9uIG9mIHRoZSBwb29sIGFzc2V0cyBhbmQgdGhlIHdlaWdodHMuANBUcmFkaW5nIGBmZWVgIGlzIGRpc3RyaWJ1dGVkIHRvIHRoZSBgZmVlX2NvbGxlY3RvcmAuACxQYXJhbWV0ZXJzOmUBLSBgYXNzZXRfaW5gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgYmVpbmcgdHJhbnNmZXJyZWQgZnJvbSB0aGUgYWNjb3VudCB0byB0aGUgcG9vbC5pAS0gYGFzc2V0X291dGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBiZWluZyB0cmFuc2ZlcnJlZCBmcm9tIHRoZSBwb29sIHRvIHRoZSBhY2NvdW50LpgtIGBhbW91bnRgOiBUaGUgYW1vdW50IG9mIGBhc3NldF9vdXRgLk0BLSBgbWF4X2xpbWl0YDogbWF4aW11bSBhbW91bnQgb2YgYGFzc2V0X2luYCB0byBiZSBzb2xkIGluIGV4Y2hhbmdlIGZvciBgYXNzZXRfb3V0YC4AkEVtaXRzIGBCdXlFeGVjdXRlZGAgd2hlbiBzdWNjZXNzZnVsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7lBQAABAgQGADpBQwocGFsbGV0X3h5axhwYWxsZXQQQ2FsbAQEVAABFCxjcmVhdGVfcG9vbBABHGFzc2V0X2EQARxBc3NldElkAAEgYW1vdW50X2EYARxCYWxhbmNlAAEcYXNzZXRfYhABHEFzc2V0SWQAASBhbW91bnRfYhgBHEJhbGFuY2UAACSUQ3JlYXRlIG5ldyBwb29sIGZvciBnaXZlbiBhc3NldCBwYWlyLgBRAVJlZ2lzdGVycyBuZXcgcG9vbCBmb3IgZ2l2ZW4gYXNzZXQgcGFpciAoYGFzc2V0IGFgIGFuZCBgYXNzZXQgYmApIGluIGFzc2V0IHJlZ2lzdHJ5LnEBQXNzZXQgcmVnaXN0cnkgY3JlYXRlcyBuZXcgaWQgb3IgcmV0dXJucyBwcmV2aW91c2x5IGNyZWF0ZWQgb25lIGlmIHN1Y2ggcG9vbCBleGlzdGVkIGJlZm9yZS4A8FBvb2wgaXMgY3JlYXRlZCB3aXRoIGluaXRpYWwgbGlxdWlkaXR5IHByb3ZpZGVkIGJ5IGBvcmlnaW5gLnkBU2hhcmVzIGFyZSBpc3N1ZWQgd2l0aCBzcGVjaWZpZWQgaW5pdGlhbCBwcmljZSBhbmQgcmVwcmVzZW50cyBwcm9wb3J0aW9uIG9mIGFzc2V0IGluIHRoZSBwb29sLgCoRW1pdHMgYFBvb2xDcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuNGFkZF9saXF1aWRpdHkQARxhc3NldF9hEAEcQXNzZXRJZAABHGFzc2V0X2IQARxBc3NldElkAAEgYW1vdW50X2EYARxCYWxhbmNlAAFIYW1vdW50X2JfbWF4X2xpbWl0GAEcQmFsYW5jZQABFNBBZGQgbGlxdWlkaXR5IHRvIHByZXZpb3VzbHkgY3JlYXRlZCBhc3NldCBwYWlyIHBvb2wuAJRTaGFyZXMgYXJlIGlzc3VlZCB3aXRoIGN1cnJlbnQgcHJpY2UuALRFbWl0cyBgTGlxdWlkaXR5QWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5AcmVtb3ZlX2xpcXVpZGl0eQwBHGFzc2V0X2EQARxBc3NldElkAAEcYXNzZXRfYhABHEFzc2V0SWQAAUBsaXF1aWRpdHlfYW1vdW50GAEcQmFsYW5jZQACGDEBUmVtb3ZlIGxpcXVpZGl0eSBmcm9tIHNwZWNpZmljIGxpcXVpZGl0eSBwb29sIGluIHRoZSBmb3JtIG9mIGJ1cm5pbmcgc2hhcmVzLgDQSWYgbGlxdWlkaXR5IGluIHRoZSBwb29sIHJlYWNoZXMgMCwgaXQgaXMgZGVzdHJveWVkLgCkRW1pdHMgJ0xpcXVpZGl0eVJlbW92ZWQnIHdoZW4gc3VjY2Vzc2Z1bC60RW1pdHMgJ1Bvb2xEZXN0cm95ZWQnIHdoZW4gcG9vbCBpcyBkZXN0cm95ZWQuEHNlbGwUASBhc3NldF9pbhABHEFzc2V0SWQAASRhc3NldF9vdXQQARxBc3NldElkAAEYYW1vdW50GAEcQmFsYW5jZQABJG1heF9saW1pdBgBHEJhbGFuY2UAASBkaXNjb3VudCABEGJvb2wAAxx0VHJhZGUgYXNzZXQgaW4gZm9yIGFzc2V0IG91dC4AZQFFeGVjdXRlcyBhIHN3YXAgb2YgYGFzc2V0X2luYCBmb3IgYGFzc2V0X291dGAuIFByaWNlIGlzIGRldGVybWluZWQgYnkgdGhlIGxpcXVpZGl0eSBwb29sLgDpAWBtYXhfbGltaXRgIC0gbWluaW11bSBhbW91bnQgb2YgYGFzc2V0X291dGAgLyBhbW91bnQgb2YgYXNzZXRfb3V0IHRvIGJlIG9idGFpbmVkIGZyb20gdGhlIHBvb2wgaW4gZXhjaGFuZ2UgZm9yIGBhc3NldF9pbmAuAJRFbWl0cyBgU2VsbEV4ZWN1dGVkYCB3aGVuIHN1Y2Nlc3NmdWwuDGJ1eRQBJGFzc2V0X291dBABHEFzc2V0SWQAASBhc3NldF9pbhABHEFzc2V0SWQAARhhbW91bnQYARxCYWxhbmNlAAEkbWF4X2xpbWl0GAEcQmFsYW5jZQABIGRpc2NvdW50IAEQYm9vbAAEHHRUcmFkZSBhc3NldCBpbiBmb3IgYXNzZXQgb3V0LgBlAUV4ZWN1dGVzIGEgc3dhcCBvZiBgYXNzZXRfaW5gIGZvciBgYXNzZXRfb3V0YC4gUHJpY2UgaXMgZGV0ZXJtaW5lZCBieSB0aGUgbGlxdWlkaXR5IHBvb2wuAEkBYG1heF9saW1pdGAgLSBtYXhpbXVtIGFtb3VudCBvZiBgYXNzZXRfaW5gIHRvIGJlIHNvbGQgaW4gZXhjaGFuZ2UgZm9yIGBhc3NldF9vdXRgLgCQRW1pdHMgYEJ1eUV4ZWN1dGVkYCB3aGVuIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLu0FDEBwYWxsZXRfcmVmZXJyYWxzGHBhbGxldBBDYWxsBARUAAEUNHJlZ2lzdGVyX2NvZGUEARBjb2Rl3QEBbFJlZmVycmFsQ29kZTxUOjpDb2RlTGVuZ3RoPgAANGxSZWdpc3RlciBuZXcgcmVmZXJyYWwgY29kZS4AjGBvcmlnaW5gIHBheXMgdGhlIHJlZ2lzdHJhdGlvbiBmZWUuqGBjb2RlYCBpcyBhc3NpZ25lZCB0byB0aGUgZ2l2ZW4gYGFjY291bnRgLgDkTGVuZ3RoIG9mIHRoZSBgY29kZWAgbXVzdCBiZSBhdCBsZWFzdCBgVDo6TWluQ29kZUxlbmd0aGAutE1heGltdW0gbGVuZ3RoIGlzIGxpbWl0ZWQgdG8gYFQ6OkNvZGVMZW5ndGhgLpEBYGNvZGVgIG11c3QgY29udGFpbiBvbmx5IGFsZmEtbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCBhbGwgY2hhcmFjdGVycyB3aWxsIGJlIGNvbnZlcnRlZCB0byB1cHBlciBjYXNlLgAsUGFyYW1ldGVyczrkLSBgY29kZWA6IENvZGUgdG8gcmVnaXN0ZXIuIE11c3QgZm9sbG93IHRoZSByZXN0cmljdGlvbnMuALRFbWl0cyBgQ29kZVJlZ2lzdGVyZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4kbGlua19jb2RlBAEQY29kZd0BAWxSZWZlcnJhbENvZGU8VDo6Q29kZUxlbmd0aD4AAShoTGluayBhIGNvZGUgdG8gYW4gYWNjb3VudC4AKQFgQ29kZWAgbXVzdCBiZSB2YWxpZCByZWdpc3RlcmVkIGNvZGUuIE90aGVyd2lzZSBgSW52YWxpZENvZGVgIGlzIHJldHVybmVkLgD0U2lnbmVyIGFjY291bnQgaXMgbGlua2VkIHRvIHRoZSByZWZlcnJhbCBhY2NvdW50IG9mIHRoZSBjb2RlLgAsUGFyYW1ldGVyczrQLSBgY29kZWA6IENvZGUgdG8gdXNlIHRvIGxpbmsgdGhlIHNpZ25lciBhY2NvdW50IHRvLgCkRW1pdHMgYENvZGVMaW5rZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4cY29udmVydAQBIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAACGMBDb252ZXJ0IGFjY3J1ZWQgYXNzZXQgYW1vdW50IHRvIHJld2FyZCBjdXJyZW5jeS4ALFBhcmFtZXRlcnM63C0gYGFzc2V0X2lkYDogSWQgb2YgYW4gYXNzZXQgdG8gY29udmVydCB0byBSZXdhcmRBc3NldC4AoEVtaXRzIGBDb252ZXJ0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC40Y2xhaW1fcmV3YXJkcwADJGRDbGFpbSBhY2N1bXVsYXRlZCByZXdhcmRzAEkBSUYgdGhlcmUgaXMgYW55IGFzc2V0IGluIHRoZSByZXdhcmQgcG90LCBhbGwgaXMgY29udmVydGVkIHRvIFJld2FyZEN1cnJlbmN5IGZpcnN0LgAZAVJld2FyZCBhbW91bnQgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgc2hhcmVzIG9mIHRoZSBzaWduZXIgYWNjb3VudC4A1QFpZiB0aGUgc2lnbmVyIGFjY291bnQgaXMgcmVmZXJyZXIgYWNjb3VudCwgdG90YWwgYWNjdW11bGF0ZWQgcmV3YXJkcyBpcyB1cGRhdGVkIGFzIHdlbGwgYXMgcmVmZXJyZXIgbGV2ZWwgaWYgcmVhY2hlZC4AmEVtaXRzIGBDbGFpbWVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuVHNldF9yZXdhcmRfcGVyY2VudGFnZQwBIGFzc2V0X2lkEAEoVDo6QXNzZXRJZAABFGxldmVs5QEBFExldmVsAAEccmV3YXJkc+kBATxGZWVEaXN0cmlidXRpb24ABCBwU2V0IGFzc2V0IHJld2FyZCBwZXJjZW50YWdlcwAsUGFyYW1ldGVyczpYLSBgYXNzZXRfaWRgOiBhc3NldCBpZEAtIGBsZXZlbGA6IGxldmVsjC0gYHJld2FyZHNgOiByZXdhcmQgZmVlIHBlcmNlbnRhZ2VzAMhFbWl0cyBgQXNzZXRSZXdhcmRzVXBkYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7xBQwsb3JtbF90b2tlbnMYbW9kdWxlEENhbGwEBFQAARQgdHJhbnNmZXIMARBkZXN0AAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAASxjdXJyZW5jeV9pZBABNFQ6OkN1cnJlbmN5SWQAARhhbW91bnRFAQEoVDo6QmFsYW5jZQAANNRUcmFuc2ZlciBzb21lIGxpcXVpZCBmcmVlIGJhbGFuY2UgdG8gYW5vdGhlciBhY2NvdW50LgAFAWB0cmFuc2ZlcmAgd2lsbCBzZXQgdGhlIGBGcmVlQmFsYW5jZWAgb2YgdGhlIHNlbmRlciBhbmQgcmVjZWl2ZXIu4El0IHdpbGwgZGVjcmVhc2UgdGhlIHRvdGFsIGlzc3VhbmNlIG9mIHRoZSBzeXN0ZW0gYnkgdGhl/GBUcmFuc2ZlckZlZWAuIElmIHRoZSBzZW5kZXIncyBhY2NvdW50IGlzIGJlbG93IHRoZSBleGlzdGVudGlhbAEBZGVwb3NpdCBhcyBhIHJlc3VsdCBvZiB0aGUgdHJhbnNmZXIsIHRoZSBhY2NvdW50IHdpbGwgYmUgcmVhcGVkLgDkVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlLHRyYW5zYWN0b3IuAKAtIGBkZXN0YDogVGhlIHJlY2lwaWVudCBvZiB0aGUgdHJhbnNmZXIufC0gYGN1cnJlbmN5X2lkYDogY3VycmVuY3kgdHlwZS6sLSBgYW1vdW50YDogZnJlZSBiYWxhbmNlIGFtb3VudCB0byB0cmFuZmVyLjB0cmFuc2Zlcl9hbGwMARBkZXN0AAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAASxjdXJyZW5jeV9pZBABNFQ6OkN1cnJlbmN5SWQAAShrZWVwX2FsaXZlIAEQYm9vbAABTNBUcmFuc2ZlciBhbGwgcmVtYWluaW5nIGJhbGFuY2UgdG8gdGhlIGdpdmVuIGFjY291bnQuAPBOT1RFOiBUaGlzIGZ1bmN0aW9uIG9ubHkgYXR0ZW1wdHMgdG8gdHJhbnNmZXIgX3RyYW5zZmVyYWJsZV/4YmFsYW5jZXMuIFRoaXMgbWVhbnMgdGhhdCBhbnkgbG9ja2VkLCByZXNlcnZlZCwgb3IgZXhpc3RlbnRpYWwJAWRlcG9zaXRzICh3aGVuIGBrZWVwX2FsaXZlYCBpcyBgdHJ1ZWApLCB3aWxsIG5vdCBiZSB0cmFuc2ZlcnJlZCBiefx0aGlzIGZ1bmN0aW9uLiBUbyBlbnN1cmUgdGhhdCB0aGlzIGZ1bmN0aW9uIHJlc3VsdHMgaW4gYSBraWxsZWT4YWNjb3VudCwgeW91IG1pZ2h0IG5lZWQgdG8gcHJlcGFyZSB0aGUgYWNjb3VudCBieSByZW1vdmluZyBhbnmwcmVmZXJlbmNlIGNvdW50ZXJzLCBzdG9yYWdlIGRlcG9zaXRzLCBldGMuLi4A5FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBTaWduZWRgIGJ5IHRoZSx0cmFuc2FjdG9yLgCgLSBgZGVzdGA6IFRoZSByZWNpcGllbnQgb2YgdGhlIHRyYW5zZmVyLnwtIGBjdXJyZW5jeV9pZGA6IGN1cnJlbmN5IHR5cGUu8C0gYGtlZXBfYWxpdmVgOiBBIGJvb2xlYW4gdG8gZGV0ZXJtaW5lIGlmIHRoZSBgdHJhbnNmZXJfYWxsYAUBICBvcGVyYXRpb24gc2hvdWxkIHNlbmQgYWxsIG9mIHRoZSBmdW5kcyB0aGUgYWNjb3VudCBoYXMsIGNhdXNpbmcFASAgdGhlIHNlbmRlciBhY2NvdW50IHRvIGJlIGtpbGxlZCAoZmFsc2UpLCBvciB0cmFuc2ZlciBldmVyeXRoaW5nCQEgIGV4Y2VwdCBhdCBsZWFzdCB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCwgd2hpY2ggd2lsbCBndWFyYW50ZWUgdG+cICBrZWVwIHRoZSBzZW5kZXIgYWNjb3VudCBhbGl2ZSAodHJ1ZSkuTHRyYW5zZmVyX2tlZXBfYWxpdmUMARBkZXN0AAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAASxjdXJyZW5jeV9pZBABNFQ6OkN1cnJlbmN5SWQAARhhbW91bnRFAQEoVDo6QmFsYW5jZQACLAUBU2FtZSBhcyB0aGUgW2B0cmFuc2ZlcmBdIGNhbGwsIGJ1dCB3aXRoIGEgY2hlY2sgdGhhdCB0aGUgdHJhbnNmZXKEd2lsbCBub3Qga2lsbCB0aGUgb3JpZ2luIGFjY291bnQuALg5OSUgb2YgdGhlIHRpbWUgeW91IHdhbnQgW2B0cmFuc2ZlcmBdIGluc3RlYWQuAORUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUsdHJhbnNhY3Rvci4AoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci58LSBgY3VycmVuY3lfaWRgOiBjdXJyZW5jeSB0eXBlLqwtIGBhbW91bnRgOiBmcmVlIGJhbGFuY2UgYW1vdW50IHRvIHRyYW5mZXIuOGZvcmNlX3RyYW5zZmVyEAEYc291cmNlAAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAARBkZXN0AAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAASxjdXJyZW5jeV9pZBABNFQ6OkN1cnJlbmN5SWQAARhhbW91bnRFAQEoVDo6QmFsYW5jZQADJBEBRXhhY3RseSBhcyBgdHJhbnNmZXJgLCBleGNlcHQgdGhlIG9yaWdpbiBtdXN0IGJlIHJvb3QgYW5kIHRoZSBzb3VyY2VkYWNjb3VudCBtYXkgYmUgc3BlY2lmaWVkLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgCcLSBgc291cmNlYDogVGhlIHNlbmRlciBvZiB0aGUgdHJhbnNmZXIuoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci58LSBgY3VycmVuY3lfaWRgOiBjdXJyZW5jeSB0eXBlLqwtIGBhbW91bnRgOiBmcmVlIGJhbGFuY2UgYW1vdW50IHRvIHRyYW5mZXIuLHNldF9iYWxhbmNlEAEMd2hvAAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAASxjdXJyZW5jeV9pZBABNFQ6OkN1cnJlbmN5SWQAASBuZXdfZnJlZUUBAShUOjpCYWxhbmNlAAEwbmV3X3Jlc2VydmVkRQEBKFQ6OkJhbGFuY2UABCCQU2V0IHRoZSBiYWxhbmNlcyBvZiBhIGdpdmVuIGFjY291bnQuAAkBVGhpcyB3aWxsIGFsdGVyIGBGcmVlQmFsYW5jZWAgYW5kIGBSZXNlcnZlZEJhbGFuY2VgIGluIHN0b3JhZ2UuIGl0zHdpbGwgYWxzbyBkZWNyZWFzZSB0aGUgdG90YWwgaXNzdWFuY2Ugb2YgdGhlIHN5c3RlbQ0BKGBUb3RhbElzc3VhbmNlYCkuIElmIHRoZSBuZXcgZnJlZSBvciByZXNlcnZlZCBiYWxhbmNlIGlzIGJlbG93IHRoZdBleGlzdGVudGlhbCBkZXBvc2l0LCBpdCB3aWxsIHJlYXAgdGhlIGBBY2NvdW50SW5mb2AuALBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgaXMgYHJvb3RgLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy71BQxEcGFsbGV0X2N1cnJlbmNpZXMYbW9kdWxlEENhbGwEBFQAAQwgdHJhbnNmZXIMARBkZXN0AAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAASxjdXJyZW5jeV9pZBABPEN1cnJlbmN5SWRPZjxUPgABGGFtb3VudEUBATBCYWxhbmNlT2Y8VD4AABD0VHJhbnNmZXIgc29tZSBiYWxhbmNlIHRvIGFub3RoZXIgYWNjb3VudCB1bmRlciBgY3VycmVuY3lfaWRgLgDkVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlLHRyYW5zYWN0b3IuYHRyYW5zZmVyX25hdGl2ZV9jdXJyZW5jeQgBEGRlc3QAAYw8VDo6TG9va3VwIGFzIFN0YXRpY0xvb2t1cD46OlNvdXJjZQABGGFtb3VudEUBATBCYWxhbmNlT2Y8VD4AARDEVHJhbnNmZXIgc29tZSBuYXRpdmUgY3VycmVuY3kgdG8gYW5vdGhlciBhY2NvdW50LgDkVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlLHRyYW5zYWN0b3IuOHVwZGF0ZV9iYWxhbmNlDAEMd2hvAAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAASxjdXJyZW5jeV9pZBABPEN1cnJlbmN5SWRPZjxUPgABGGFtb3VudPkBASxBbW91bnRPZjxUPgACDMx1cGRhdGUgYW1vdW50IG9mIGFjY291bnQgYHdob2AgdW5kZXIgYGN1cnJlbmN5X2lkYC4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy75BQwwb3JtbF92ZXN0aW5nGG1vZHVsZRBDYWxsBARUAAEQFGNsYWltAAAAPHZlc3RlZF90cmFuc2ZlcggBEGRlc3QAAYw8VDo6TG9va3VwIGFzIFN0YXRpY0xvb2t1cD46OlNvdXJjZQABIHNjaGVkdWxlAQIBUFZlc3RpbmdTY2hlZHVsZU9mPFQ+AAEAYHVwZGF0ZV92ZXN0aW5nX3NjaGVkdWxlcwgBDHdobwABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAFEdmVzdGluZ19zY2hlZHVsZXP9BQFkVmVjPFZlc3RpbmdTY2hlZHVsZU9mPFQ+PgACACRjbGFpbV9mb3IEARBkZXN0AAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAAwAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu/QUAAAIBAgABBgwocGFsbGV0X2V2bRhwYWxsZXQQQ2FsbAQEVAABECB3aXRoZHJhdwgBHGFkZHJlc3MNAgEQSDE2MAABFHZhbHVlGAEwQmFsYW5jZU9mPFQ+AAAE4FdpdGhkcmF3IGJhbGFuY2UgZnJvbSBFVk0gaW50byBjdXJyZW5jeS9iYWxhbmNlcyBwYWxsZXQuEGNhbGwkARhzb3VyY2UNAgEQSDE2MAABGHRhcmdldA0CARBIMTYwAAEUaW5wdXQ4ARxWZWM8dTg+AAEUdmFsdWVNBAEQVTI1NgABJGdhc19saW1pdDABDHU2NAABPG1heF9mZWVfcGVyX2dhc00EARBVMjU2AAFgbWF4X3ByaW9yaXR5X2ZlZV9wZXJfZ2FzBQYBME9wdGlvbjxVMjU2PgABFG5vbmNlBQYBME9wdGlvbjxVMjU2PgABLGFjY2Vzc19saXN0CQYBWFZlYzwoSDE2MCwgVmVjPEgyNTY+KT4AAQRdAUlzc3VlIGFuIEVWTSBjYWxsIG9wZXJhdGlvbi4gVGhpcyBpcyBzaW1pbGFyIHRvIGEgbWVzc2FnZSBjYWxsIHRyYW5zYWN0aW9uIGluIEV0aGVyZXVtLhhjcmVhdGUgARhzb3VyY2UNAgEQSDE2MAABEGluaXQ4ARxWZWM8dTg+AAEUdmFsdWVNBAEQVTI1NgABJGdhc19saW1pdDABDHU2NAABPG1heF9mZWVfcGVyX2dhc00EARBVMjU2AAFgbWF4X3ByaW9yaXR5X2ZlZV9wZXJfZ2FzBQYBME9wdGlvbjxVMjU2PgABFG5vbmNlBQYBME9wdGlvbjxVMjU2PgABLGFjY2Vzc19saXN0CQYBWFZlYzwoSDE2MCwgVmVjPEgyNTY+KT4AAghRAUlzc3VlIGFuIEVWTSBjcmVhdGUgb3BlcmF0aW9uLiBUaGlzIGlzIHNpbWlsYXIgdG8gYSBjb250cmFjdCBjcmVhdGlvbiB0cmFuc2FjdGlvbiBpbiRFdGhlcmV1bS4cY3JlYXRlMiQBGHNvdXJjZQ0CARBIMTYwAAEQaW5pdDgBHFZlYzx1OD4AARBzYWx0NAEQSDI1NgABFHZhbHVlTQQBEFUyNTYAASRnYXNfbGltaXQwAQx1NjQAATxtYXhfZmVlX3Blcl9nYXNNBAEQVTI1NgABYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhcwUGATBPcHRpb248VTI1Nj4AARRub25jZQUGATBPcHRpb248VTI1Nj4AASxhY2Nlc3NfbGlzdAkGAVhWZWM8KEgxNjAsIFZlYzxIMjU2Pik+AAMEfElzc3VlIGFuIEVWTSBjcmVhdGUyIG9wZXJhdGlvbi4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuBQYEGE9wdGlvbgQEVAFNBAEIEE5vbmUAAAAQU29tZQQATQQAAAEAAAkGAAACDQYADQYAAAQIDQIRAgARBgw8cGFsbGV0X2V0aGVyZXVtGHBhbGxldBBDYWxsBARUAAEEIHRyYW5zYWN0BAEsdHJhbnNhY3Rpb24VBgEsVHJhbnNhY3Rpb24AAASEVHJhbnNhY3QgYW4gRXRoZXJldW0gdHJhbnNhY3Rpb24uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLhUGDCBldGhlcmV1bSx0cmFuc2FjdGlvbjRUcmFuc2FjdGlvblYyAAEMGExlZ2FjeQQAGQYBRExlZ2FjeVRyYW5zYWN0aW9uAAAAHEVJUDI5MzAEACkGAUhFSVAyOTMwVHJhbnNhY3Rpb24AAQAcRUlQMTU1OQQANQYBSEVJUDE1NTlUcmFuc2FjdGlvbgACAAAZBgwgZXRoZXJldW0sdHJhbnNhY3Rpb25ETGVnYWN5VHJhbnNhY3Rpb24AABwBFG5vbmNlTQQBEFUyNTYAASRnYXNfcHJpY2VNBAEQVTI1NgABJGdhc19saW1pdE0EARBVMjU2AAEYYWN0aW9uHQYBRFRyYW5zYWN0aW9uQWN0aW9uAAEUdmFsdWVNBAEQVTI1NgABFGlucHV0OAEUQnl0ZXMAASRzaWduYXR1cmUhBgFQVHJhbnNhY3Rpb25TaWduYXR1cmUAAB0GDCBldGhlcmV1bSx0cmFuc2FjdGlvbkRUcmFuc2FjdGlvbkFjdGlvbgABCBBDYWxsBAANAgEQSDE2MAAAABhDcmVhdGUAAQAAIQYMIGV0aGVyZXVtLHRyYW5zYWN0aW9uUFRyYW5zYWN0aW9uU2lnbmF0dXJlAAAMAQR2JQYBVFRyYW5zYWN0aW9uUmVjb3ZlcnlJZAABBHI0ARBIMjU2AAEEczQBEEgyNTYAACUGDCBldGhlcmV1bSx0cmFuc2FjdGlvblRUcmFuc2FjdGlvblJlY292ZXJ5SWQAAAQAMAEMdTY0AAApBgwgZXRoZXJldW0sdHJhbnNhY3Rpb25IRUlQMjkzMFRyYW5zYWN0aW9uAAAsASBjaGFpbl9pZDABDHU2NAABFG5vbmNlTQQBEFUyNTYAASRnYXNfcHJpY2VNBAEQVTI1NgABJGdhc19saW1pdE0EARBVMjU2AAEYYWN0aW9uHQYBRFRyYW5zYWN0aW9uQWN0aW9uAAEUdmFsdWVNBAEQVTI1NgABFGlucHV0OAEUQnl0ZXMAASxhY2Nlc3NfbGlzdC0GAShBY2Nlc3NMaXN0AAEwb2RkX3lfcGFyaXR5IAEQYm9vbAABBHI0ARBIMjU2AAEEczQBEEgyNTYAAC0GAAACMQYAMQYMIGV0aGVyZXVtLHRyYW5zYWN0aW9uOEFjY2Vzc0xpc3RJdGVtAAAIARxhZGRyZXNzDQIBHEFkZHJlc3MAATBzdG9yYWdlX2tleXMRAgEkVmVjPEgyNTY+AAA1BgwgZXRoZXJldW0sdHJhbnNhY3Rpb25IRUlQMTU1OVRyYW5zYWN0aW9uAAAwASBjaGFpbl9pZDABDHU2NAABFG5vbmNlTQQBEFUyNTYAAWBtYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXNNBAEQVTI1NgABPG1heF9mZWVfcGVyX2dhc00EARBVMjU2AAEkZ2FzX2xpbWl0TQQBEFUyNTYAARhhY3Rpb24dBgFEVHJhbnNhY3Rpb25BY3Rpb24AARR2YWx1ZU0EARBVMjU2AAEUaW5wdXQ4ARRCeXRlcwABLGFjY2Vzc19saXN0LQYBKEFjY2Vzc0xpc3QAATBvZGRfeV9wYXJpdHkgARBib29sAAEEcjQBEEgyNTYAAQRzNAEQSDI1NgAAOQYMTHBhbGxldF9ldm1fYWNjb3VudHMYcGFsbGV0EENhbGwEBFQAARhAYmluZF9ldm1fYWRkcmVzcwAALKRCaW5kcyBhIFN1YnN0cmF0ZSBhZGRyZXNzIHRvIEVWTSBhZGRyZXNzLm0BQWZ0ZXIgYmluZGluZywgdGhlIEVWTSBpcyBhYmxlIHRvIGNvbnZlcnQgYW4gRVZNIGFkZHJlc3MgdG8gdGhlIG9yaWdpbmFsIFN1YnN0cmF0ZSBhZGRyZXNzLq0BV2l0aG91dCBiaW5kaW5nLCB0aGUgRVZNIGNvbnZlcnRzIGFuIEVWTSBhZGRyZXNzIHRvIGEgdHJ1bmNhdGVkIFN1YnN0cmF0ZSBhZGRyZXNzLCB3aGljaCBkb2Vzbid0IGNvcnJlc3BvbmRYdG8gdGhlIG9yaWdpbiBhZGRyZXNzLgAFAUJpbmRpbmcgYW4gYWRkcmVzcyBpcyBub3QgbmVjZXNzYXJ5IGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBFVk0uACxQYXJhbWV0ZXJzOsAtIGBvcmlnaW5gOiBTdWJzdHJhdGUgYWNjb3VudCBiaW5kaW5nIGFuIGFkZHJlc3MAuEVtaXRzIGBFdm1BY2NvdW50Qm91bmRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5UYWRkX2NvbnRyYWN0X2RlcGxveWVyBAEcYWRkcmVzcw0CAShFdm1BZGRyZXNzAAEcYQFBZGRzIGFuIEVWTSBhZGRyZXNzIHRvIHRoZSBsaXN0IG9mIGFkZHJlc3NlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGRlcGxveSBzbWFydCBjb250cmFjdHMuACxQYXJhbWV0ZXJzOkkBLSBgb3JpZ2luYDogU3Vic3RyYXRlIGFjY291bnQgd2hpdGVsaXN0aW5nIGFuIGFkZHJlc3MuIE11c3QgYmUgYENvbnRyb2xsZXJPcmlnaW5gLrAtIGBhZGRyZXNzYDogRVZNIGFkZHJlc3MgdGhhdCBpcyB3aGl0ZWxpc3RlZACwRW1pdHMgYERlcGxveWVyQWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5gcmVtb3ZlX2NvbnRyYWN0X2RlcGxveWVyBAEcYWRkcmVzcw0CAShFdm1BZGRyZXNzAAIcdQFSZW1vdmVzIGFuIEVWTSBhZGRyZXNzIGZyb20gdGhlIGxpc3Qgb2YgYWRkcmVzc2VzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZGVwbG95IHNtYXJ0IGNvbnRyYWN0cy4ALFBhcmFtZXRlcnM6mQEtIGBvcmlnaW5gOiBTdWJzdHJhdGUgYWNjb3VudCByZW1vdmluZyB0aGUgRVZNIGFkZHJlc3MgZnJvbSB0aGUgd2hpdGVsaXN0LiBNdXN0IGJlIGBDb250cm9sbGVyT3JpZ2luYC7sLSBgYWRkcmVzc2A6IEVWTSBhZGRyZXNzIHRoYXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSB3aGl0ZWxpc3QAuEVtaXRzIGBEZXBsb3llclJlbW92ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5ocmVub3VuY2VfY29udHJhY3RfZGVwbG95ZXIAAxyhAVJlbW92ZXMgdGhlIGFjY291bnQncyBFVk0gYWRkcmVzcyBmcm9tIHRoZSBsaXN0IG9mIGFkZHJlc3NlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGRlcGxveSBzbWFydCBjb250cmFjdHMu2QFCYXNlZCBvbiB0aGUgYmVzdCBwcmFjdGljZXMsIHRoaXMgZXh0cmluc2ljIGNhbiBiZSBjYWxsZWQgYnkgYW55IHdoaXRlbGlzdGVkIGFjY291bnQgdG8gcmVub3VuY2UgdGhlaXIgb3duIHBlcm1pc3Npb24uACxQYXJhbWV0ZXJzOjEBLSBgb3JpZ2luYDogU3Vic3RyYXRlIGFjY291bnQgcmVtb3ZpbmcgdGhlaXIgRVZNIGFkZHJlc3MgZnJvbSB0aGUgd2hpdGVsaXN0LgC4RW1pdHMgYERlcGxveWVyUmVtb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLkBhcHByb3ZlX2NvbnRyYWN0BAEcYWRkcmVzcw0CAShFdm1BZGRyZXNzAAQkSQFBZGRzIGFkZHJlc3Mgb2YgdGhlIGNvbnRyYWN0IHRvIHRoZSBsaXN0IG9mIGFwcHJvdmVkIGNvbnRyYWN0cyB0byBtYW5hZ2UgYmFsYW5jZXMuAPxFZmZlY3RpdmVseSBnaXZpbmcgaXQgYWxsb3dhbmNlIHRvIGZvciBhbnkgYmFsYW5jZXMgYW5kIHRva2Vucy4ALFBhcmFtZXRlcnM6oC0gYG9yaWdpbmA6ICBNdXN0IGJlIGBDb250cm9sbGVyT3JpZ2luYC7MLSBgYWRkcmVzc2A6IENvbnRyYWN0IGFkZHJlc3MgdGhhdCB3aWxsIGJlIGFwcHJvdmVkALxFbWl0cyBgQ29udHJhY3RBcHByb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLkxkaXNhcHByb3ZlX2NvbnRyYWN0BAEcYWRkcmVzcw0CAShFdm1BZGRyZXNzAAUcXQFSZW1vdmVzIGFkZHJlc3Mgb2YgdGhlIGNvbnRyYWN0IGZyb20gdGhlIGxpc3Qgb2YgYXBwcm92ZWQgY29udHJhY3RzIHRvIG1hbmFnZSBiYWxhbmNlcy4ALFBhcmFtZXRlcnM6oC0gYG9yaWdpbmA6ICBNdXN0IGJlIGBDb250cm9sbGVyT3JpZ2luYC7YLSBgYWRkcmVzc2A6IENvbnRyYWN0IGFkZHJlc3MgdGhhdCB3aWxsIGJlIGRpc2FwcHJvdmVkAMhFbWl0cyBgQ29udHJhY3REaXNhcHByb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy49BgxscGFsbGV0X3h5a19saXF1aWRpdHlfbWluaW5nGHBhbGxldBBDYWxsBARUAAEwSGNyZWF0ZV9nbG9iYWxfZmFybSQBNHRvdGFsX3Jld2FyZHMYARxCYWxhbmNlAAFgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzEAEsUGVyaW9kT2Y8VD4AAURibG9ja3NfcGVyX3BlcmlvZBABREJsb2NrTnVtYmVyRm9yPFQ+AAFIaW5jZW50aXZpemVkX2Fzc2V0EAEcQXNzZXRJZAABPHJld2FyZF9jdXJyZW5jeRABHEFzc2V0SWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABQHlpZWxkX3Blcl9wZXJpb2R9AQEsUGVycXVpbnRpbGwAASxtaW5fZGVwb3NpdBgBHEJhbGFuY2UAAUBwcmljZV9hZGp1c3RtZW50YQEBJEZpeGVkVTEyOAAAdPRDcmVhdGUgbmV3IGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbSB3aXRoIHByb3ZpZGVkIHBhcmFtZXRlcnMuAD0BYG93bmVyYCBhY2NvdW50IGhhcyB0byBoYXZlIGF0IGxlYXN0IGB0b3RhbF9yZXdhcmRzYCBiYWxhbmNlLiBUaGlzIGZ1bmQgd2lsbCBiZaR0cmFuc2ZlcnJlZCBmcm9tIGBvd25lcmAgdG8gZmFybSBhY2NvdW50LmUBSW4gY2FzZSBvZiBgcmV3YXJkX2N1cnJlbmN5YCBpcyBpbnN1ZmZpY2llbnQgYXNzZXQsIGZhcm0ncyBgb3duZXJgIGhhcyB0byBwYXkgZXhpc3RlbnRpYWwdAWRlcG9zaXQgZm9yIGdsb2JhbCBmYXJtIGFjY291bnQgYW5kIGZvciBsaXF1aWRpdHkgbWluaW5nIGBwb3RgIGFjY291bnQuAPBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgVDo6Q3JlYXRlT3JpZ2luYC5VASEhIVdBUk46IGBUOjpDcmVhdGVPcmlnaW5gIGhhcyBwb3dlciBvdmVyIGZ1bmRzIG9mIGBvd25lcmAncyBhY2NvdW50IGFuZCBpdCBzaG91bGQgYmXQY29uZmlndXJlZCB0byB0cnVzdGVkIG9yaWdpbiBlLmcgU3VkbyBvciBHb3Zlcm5hbmNlLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4xAS0gYHRvdGFsX3Jld2FyZHNgOiB0b3RhbCByZXdhcmRzIHBsYW5uZWQgdG8gZGlzdHJpYnV0ZS4gVGhpcyByZXdhcmRzIHdpbGwgYmXcZGlzdHJpYnV0ZWQgYmV0d2VlbiBhbGwgeWllbGQgZmFybXMgaW4gdGhlIGdsb2JhbCBmYXJtLlkBLSBgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzYDogcGxhbm5lZCBudW1iZXIgb2YgcGVyaW9kcyB0byBkaXN0cmlidXRlIGB0b3RhbF9yZXdhcmRzYC4pAVdBUk46IFRISVMgSVMgTk9UIEhBUkQgREVBRExJTkUuIE5vdCBhbGwgcmV3YXJkcyBoYXZlIHRvIGJlIGRpc3RyaWJ1dGVkIGluXQFgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzYC4gUmV3YXJkcyBhcmUgZGlzdHJpYnV0ZWQgYmFzZWQgb24gdGhlIHNpdHVhdGlvbiBpbiB0aGUgeWllbGRhAWZhcm1zIGFuZCBjYW4gYmUgZGlzdHJpYnV0ZWQgaW4gYSBsb25nZXIgdGltZSBmcmFtZSBidXQgbmV2ZXIgaW4gdGhlIHNob3J0ZXIgdGltZSBmcmFtZS5ZAS0gYGJsb2Nrc19wZXJfcGVyaW9kYDogIG51bWJlciBvZiBibG9ja3MgaW4gYSBzaW5nbGUgcGVyaW9kLiBNaW4uIG51bWJlciBvZiBibG9ja3MgcGVyMHBlcmlvZCBpcyAxLmUBLSBgaW5jZW50aXZpemVkX2Fzc2V0YDogYXNzZXQgdG8gYmUgaW5jZW50aXZpemVkIGluIFhZSyBwb29scy4gQWxsIHlpZWxkIGZhcm1zIGFkZGVkIGludG8RAWxpcS4gbWluaW5nIHByb2dyYW0gaGF2ZSB0byBoYXZlIGBpbmNlbnRpdml6ZWRfYXNzZXRgIGluIHRoZWlyIHBhaXIuwC0gYHJld2FyZF9jdXJyZW5jeWA6IHBheW9mZiBjdXJyZW5jeSBvZiByZXdhcmRzLpQtIGBvd25lcmA6IGxpcS4gbWluaW5nIHByb2dyYW0gb3duZXIuOQEtIGB5aWVsZF9wZXJfcGVyaW9kYDogcGVyY2VudGFnZSByZXR1cm4gb24gYHJld2FyZF9jdXJyZW5jeWAgb2YgYWxsIGZhcm1zIHAuYS4JAS0gYG1pbl9kZXBvc2l0YDogbWluaW11bSBhbW91bnQgd2hpY2ggY2FuIGJlIGRlcG9zaXRlZCB0byB0aGUgZmFybVQtIGBwcmljZV9hZGp1c3RtZW50YDrARW1pdHMgYEdsb2JhbEZhcm1DcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuSHVwZGF0ZV9nbG9iYWxfZmFybQgBOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAFAcHJpY2VfYWRqdXN0bWVudGEBASRGaXhlZFUxMjgAASicVXBkYXRlIGdsb2JhbCBmYXJtJ3MgcHJpY2VzIGFkanVzdG1lbnQuAKhPbmx5IGZhcm0ncyBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuzC0gYGdsb2JhbF9mYXJtX2lkYDogaWQgb2YgdGhlIGdsb2JhbCBmYXJtIHRvIHVwZGF0ZdAtIGBwcmljZV9hZGp1c3RtZW50YDogbmV3IHZhbHVlIGZvciBwcmljZSBhZGp1c3RtZW50AMBFbWl0cyBgR2xvYmFsRmFybVVwZGF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5UdGVybWluYXRlX2dsb2JhbF9mYXJtBAE4Z2xvYmFsX2Zhcm1faWQQATBHbG9iYWxGYXJtSWQAAiycVGVybWluYXRlIGV4aXN0aW5nIGxpcS4gbWluaW5nIHByb2dyYW0uAKBPbmx5IGZhcm0gb3duZXIgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uANEBV0FSTjogVG8gc3VjY2Vzc2Z1bGx5IHRlcm1pbmF0ZSBhIGZhcm0sIGZhcm0gaGF2ZSB0byBiZSBlbXB0eShhbGwgeWllbGQgZmFybXMgaW4gaGUgZ2xvYmFsIGZhcm0gbXVzdCBiZSB0ZXJtaW5hdGVkKS4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIu3C0gYGdsb2JhbF9mYXJtX2lkYDogaWQgb2YgZ2xvYmFsIGZhcm0gdG8gYmUgdGVybWluYXRlZC4AzEVtaXRzIGBHbG9iYWxGYXJtVGVybWluYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLkRjcmVhdGVfeWllbGRfZmFybRABOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAEoYXNzZXRfcGFpckECASRBc3NldFBhaXIAAShtdWx0aXBsaWVyYQEBOEZhcm1NdWx0aXBsaWVyAAE0bG95YWx0eV9jdXJ2ZYEBAVBPcHRpb248TG95YWx0eUN1cnZlPgADSLxBZGQgeWllbGQgZmFybSBmb3IgZ2l2ZW4gYGFzc2V0X3BhaXJgIFhZSyBwb29sLgQgoE9ubHkgZmFybSBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4AVQFPbmx5IFhZS3Mgd2l0aCBgYXNzZXRfcGFpcmAgd2l0aCBgaW5jZW50aXZpemVkX2Fzc2V0YCBjYW4gYmUgYWRkZWQgaW50byB0aGUgZmFybS4gWFlLFQFwb29sIGZvciBgYXNzZXRfcGFpcmAgaGFzIHRvIGV4aXN0IHRvIHN1Y2Nlc3NmdWxseSBjcmVhdGUgeWllbGQgZmFybS4hAVlpZWxkIGZhcm0gZm9yIHNhbWUgYGFzc2V0X3BhaXJgIGNhbiBleGlzdCBvbmx5IG9uY2UgaW4gdGhlIGdsb2JhbCBmYXJtLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4BAS0gYGZhcm1faWRgOiBnbG9iYWwgZmFybSBpZCB0byB3aGljaCBhIHlpZWxkIGZhcm0gd2lsbCBiZSBhZGRlZC5dAS0gYGFzc2V0X3BhaXJgOiBhc3NldCBwYWlyIGlkZW50aWZ5aW5nIHlpZWxkIGZhcm0uIExpcS4gbWluaW5nIHdpbGwgYmUgYWxsb3dlZCBmb3IgdGhpczEBYGFzc2V0X3BhaXJgIGFuZCBvbmUgb2YgdGhlIGFzc2V0cyBpbiB0aGUgcGFpciBtdXN0IGJlIGBpbmNlbnRpdml6ZWRfYXNzZXRgLpgtIGBtdWx0aXBsaWVyYDogeWllbGQgZmFybSBtdWx0aXBsaWVyLl0BLSBgbG95YWx0eV9jdXJ2ZWA6IGN1cnZlIHRvIGNhbGN1bGF0ZSBsb3lhbHR5IG11bHRpcGxpZXIgdG8gZGlzdHJpYnV0ZSByZXdhcmRzIHRvIHVzZXJz4HdpdGggdGltZSBpbmNlbnRpdmUuIGBOb25lYCBtZWFucyBubyBsb3lhbHR5IG11bHRpcGxpZXIuALxFbWl0cyBgWWllbGRGYXJtQ3JlYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLkR1cGRhdGVfeWllbGRfZmFybQwBOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAEoYXNzZXRfcGFpckECASRBc3NldFBhaXIAAShtdWx0aXBsaWVyYQEBOEZhcm1NdWx0aXBsaWVyAAQsdFVwZGF0ZSB5aWVsZCBmYXJtIG11bHRpcGxpZXIuBCCgT25seSBmYXJtIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4dAS0gYGdsb2JhbF9mYXJtX2lkYDogZ2xvYmFsIGZhcm0gaWQgaW4gd2hpY2ggeWllbGQgZmFybSB3aWxsIGJlIHVwZGF0ZWQuBQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIGdsb2JhbCBmYXJtLqgtIGBtdWx0aXBsaWVyYDogbmV3IHlpZWxkIGZhcm0gbXVsdGlwbGllci4AvEVtaXRzIGBZaWVsZEZhcm1VcGRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuPHN0b3BfeWllbGRfZmFybQgBOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAEoYXNzZXRfcGFpckECASRBc3NldFBhaXIABTykU3RvcCBsaXEuIG1pbWluZyBmb3Igc3BlY2lmaWMgeWllbGQgZmFybS4ANQFUaGlzIGZ1bmN0aW9uIGNsYWltcyByZXdhcmRzIGZyb20gYEdsb2JhbEZhcm1gIGxhc3QgdGltZSBhbmQgc3RvcHMgeWllbGQgZmFybSEBaW5jZW50aXZpemF0aW9uIGZyb20gYSBgR2xvYmFsRmFybWAuIFVzZXJzIHdpbGwgYmUgYWJsZSB0byBvbmx5IHdpdGhkcmF3yHNoYXJlcyh3aXRoIGNsYWltaW5nKSBhZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uQQFgZGVwb3NpdF9zaGFyZXMoKWAgYW5kIGBjbGFpbV9yZXdhcmRzKClgIGFyZSBub3QgYWxsb3dlZCBvbiBjYW5jZWxlZCB5aWVsZCBmYXJtLgQgoE9ubHkgZmFybSBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuBQEtIGBnbG9iYWxfZmFybV9pZGA6IGZhcm0gaWQgaW4gd2hpY2ggeWllbGQgZmFybSB3aWxsIGJlIGNhbmNlbGVkLvgtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIHRoZSBmYXJtLgC8RW1pdHMgYFlpZWxkRmFybVN0b3BwZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5EcmVzdW1lX3lpZWxkX2Zhcm0QAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQQASxZaWVsZEZhcm1JZAABKGFzc2V0X3BhaXJBAgEkQXNzZXRQYWlyAAEobXVsdGlwbGllcmEBAThGYXJtTXVsdGlwbGllcgAGRKRSZXN1bWUgeWllbGQgZmFybSBmb3Igc3RvcHBlZCB5aWVsZCBmYXJtLgBVAVRoaXMgZnVuY3Rpb24gcmVzdW1lIGluY2VudGl2aXphdGlvbiBmcm9tIGBHbG9iYWxGYXJtYCBhbmQgcmVzdG9yZSBmdWxsIGZ1bmN0aW9uYWxpdHkhAWZvciB5aWVsZCBmYXJtLiBVc2VycyB3aWxsIGJlIGFibGUgdG8gZGVwb3NpdCwgY2xhaW0gYW5kIHdpdGhkcmF3IGFnYWluLgDkV0FSTjogWWllbGQgZmFybSBpcyBOT1QgcmV3YXJkZWQgZm9yIHRpbWUgaXQgd2FzIHN0b3BwZWQuAKBPbmx5IGZhcm0gb3duZXIgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uACxQYXJhbWV0ZXJzOoAtIGBvcmlnaW5gOiBnbG9iYWwgZmFybSdzIG93bmVyLh0BLSBgZ2xvYmFsX2Zhcm1faWRgOiBnbG9iYWwgZmFybSBpZCBpbiB3aGljaCB5aWVsZCBmYXJtIHdpbGwgYmUgcmVzdW1lZC7ILSBgeWllbGRfZmFybV9pZGA6IGlkIG9mIHlpZWxkIGZhcm0gdG8gYmUgcmVzdW1lZC4FAS0gYGFzc2V0X3BhaXJgOiBhc3NldCBwYWlyIGlkZW50aWZ5aW5nIHlpZWxkIGZhcm0gaW4gZ2xvYmFsIGZhcm0uyC0gYG11bHRpcGxpZXJgOiB5aWVsZCBmYXJtIG11bHRpcGxpZXIgaW4gdGhlIGZhcm0uALxFbWl0cyBgWWllbGRGYXJtUmVzdW1lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLlB0ZXJtaW5hdGVfeWllbGRfZmFybQwBOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZBABLFlpZWxkRmFybUlkAAEoYXNzZXRfcGFpckECASRBc3NldFBhaXIAB0xEUmVtb3ZlIHlpZWxkIGZhcm0AgQFUaGlzIGZ1bmN0aW9uIG1hcmtzIGEgeWllbGQgZmFybSBhcyByZWFkeSB0byBiZSByZW1vdmVkIGZyb20gc3RvcmFnZSB3aGVuIGl0J3MgZW1wdHkuIFVzZXJzIHdpbGxlAWJlIGFibGUgdG8gb25seSB3aXRoZHJhdyBzaGFyZXMod2l0aG91dCBjbGFpbWluZyByZXdhcmRzIGZyb20geWllbGQgZmFybSkuIFVucGFpZCByZXdhcmRzcQF3aWxsIGJlIHRyYW5zZmVycmVkIGJhY2sgdG8gZ2xvYmFsIGZhcm0gYW5kIHdpbGwgYmUgdXNlZCB0byBkaXN0cmlidXRlIHRvIG90aGVyIHlpZWxkIGZhcm1zLgDgWWllbGQgZmFybSBtdXN0IGJlIHN0b3BwZWQgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4AcQFPbmx5IGdsb2JhbCBmYXJtJ3Mgb3duZXIgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uIFlpZWxkIGZhcm0gc3RheXMgaW4gdGhlIHN0b3JhZ2UgdW50aWwgaXQnc20BZW1wdHkoYWxsIGZhcm0gZW50cmllcyBhcmUgd2l0aGRyYXduKS4gTGFzdCB3aXRoZHJhd24gZnJvbSB5aWVsZCBmYXJtIHRyaWdnZXIgcmVtb3ZpbmcgZnJvbTB0aGUgc3RvcmFnZS4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuHQEtIGBnbG9iYWxfZmFybV9pZGA6IGZhcm0gaWQgZnJvbSB3aGljaCB5aWVsZCBmYXJtIHNob3VsZCBiZSB0ZXJtaW5hdGVkLtQtIGB5aWVsZF9mYXJtX2lkYDogaWQgb2YgeWllbGQgZmFybSB0byBiZSB0ZXJtaW5hdGVkLhUBLSBgYXNzZXRfcGFpcmA6IGFzc2V0IHBhaXIgaWRlbnRpZnlpbmcgeWllbGQgZmFybSBpbiB0aGUgZ2xvYmFsIGZhcm0uAMhFbWl0cyBgWWllbGRGYXJtVGVybWluYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjhkZXBvc2l0X3NoYXJlcxABOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZBABLFlpZWxkRmFybUlkAAEoYXNzZXRfcGFpckECASRBc3NldFBhaXIAATRzaGFyZXNfYW1vdW50GAEcQmFsYW5jZQAIOIxEZXBvc2l0IExQIHNoYXJlcyB0byBhIGxpcS4gbWluaW5nLgBRAVRoaXMgZnVuY3Rpb24gdHJhbnNmZXJzIExQIHNoYXJlcyBmcm9tIGBvcmlnaW5gIHRvIHBhbGxldCdzIGFjY291bnQgYW5kIG1pbnQgbmZ0IGZvcg0BYG9yaWdpbmAgYWNjb3VudC4gTWludGVkIG5mdCByZXByZXNlbnRzIGRlcG9zaXQgaW4gdGhlIGxpcS4gbWluaW5nLgAsUGFyYW1ldGVyczotAS0gYG9yaWdpbmA6IGFjY291bnQgZGVwb3NpdGluZyBMUCBzaGFyZXMuIFRoaXMgYWNjb3VudCBoYXMgdG8gaGF2ZSBhdCBsZWFzdHRgc2hhcmVzX2Ftb3VudGAgb2YgTFAgc2hhcmVzLj0BLSBgZ2xvYmFsX2Zhcm1faWRgOiBpZCBvZiBnbG9iYWwgZmFybSB0byB3aGljaCB1c2VyIHdhbnRzIHRvIGRlcG9zaXQgTFAgc2hhcmVzLsgtIGB5aWVsZF9mYXJtX2lkYDogaWQgb2YgeWllbGQgZmFybSB0byBkZXBvc2l0IHRvLh0BLSBgYXNzZXRfcGFpcmA6IGFzc2V0IHBhaXIgaWRlbnRpZnlpbmcgTFAgc2hhcmVzIHVzZXIgd2FudHMgdG8gZGVwb3NpdC70LSBgc2hhcmVzX2Ftb3VudGA6IGFtb3VudCBvZiBMUCBzaGFyZXMgdXNlciB3YW50cyB0byBkZXBvc2l0LgC4RW1pdHMgYFNoYXJlc0RlcG9zaXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLkByZWRlcG9zaXRfc2hhcmVzEAE4Z2xvYmFsX2Zhcm1faWQQATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkEAEsWWllbGRGYXJtSWQAAShhc3NldF9wYWlyQQIBJEFzc2V0UGFpcgABKGRlcG9zaXRfaWQYASREZXBvc2l0SWQACTzkUmVkZXBvc2l0IGFscmVhZHkgbG9ja2VkIExQIHNoYXJlcyB0byBhbm90aGVyIHlpZWxkIGZhcm0uAGUBVGhpcyBmdW5jdGlvbiBjcmVhdGUgeWllbGQgZmFybSBlbnRyeSBmb3IgZXhpc3RpbmcgZGVwb3NpdC4gTFAgc2hhcmVzIGFyZSBub3QgdHJhbnNmZXJyZWTUYW5kIGFtb3VudCBvZiBMUCBzaGFyZXMgaXMgYmFzZWQgb24gZXhpc3RpbmcgZGVwb3NpdC4ApFRoaXMgZnVuY3Rpb24gRE9FU04nVCBjcmVhdGUgbmV3IGRlcG9zaXQuACxQYXJhbWV0ZXJzOjEBLSBgb3JpZ2luYDogYWNjb3VudCBkZXBvc2l0aW5nIExQIHNoYXJlcy4gVGhpcyBhY2NvdW50IGhhdmUgdG8gaGF2ZSBhdCBsZWFzdKwtIGBnbG9iYWxfZmFybV9pZGA6IGdsb2JhbCBmYXJtIGlkZW50aWZpZXIu5C0gYHlpZWxkX2Zhcm1faWRgOiB5aWVsZCBmYXJtIGlkZW50aWZpZXIgcmVkZXBvc2l0aW5nIHRvLhkBLSBgYXNzZXRfcGFpcmA6IGFzc2V0IHBhaXIgaWRlbnRpZnlpbmcgTFAgc2hhcmVzIHVzZXIgd2FudCB0byBkZXBvc2l0LqgtIGBkZXBvc2l0X2lkYDogaWRlbnRpZmllciBvZiB0aGUgZGVwb3NpdC4AwEVtaXRzIGBTaGFyZXNSZWRlcG9zaXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjRjbGFpbV9yZXdhcmRzCAEoZGVwb3NpdF9pZBgBJERlcG9zaXRJZAABNHlpZWxkX2Zhcm1faWQQASxZaWVsZEZhcm1JZAAKLA0BQ2xhaW0gcmV3YXJkcyBmcm9tIGxpcS4gbWluaW5nIGZvciBkZXBvc2l0IHJlcHJlc2VudGVkIGJ5IGBuZnRfaWRgLgBZAVRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlIHVzZXIgcmV3YXJkcyBmcm9tIGxpcS4gbWluaW5nIGFuZCB0cmFuc2ZlciByZXdhcmRzIHRvIGBvcmlnaW5g6GFjY291bnQuIENsYWltaW5nIGluIHRoZSBzYW1lIHBlcmlvZCBpcyBhbGxvd2VkIG9ubHkgb25jZS4ALFBhcmFtZXRlcnM6qC0gYG9yaWdpbmA6IGFjY291bnQgb3duZXIgb2YgZGVwb3NpdChuZnQpLvgtIGBkZXBvc2l0X2lkYDogbmZ0IGlkIHJlcHJlc2VudGluZyBkZXBvc2l0IGluIHRoZSB5aWVsZCBmYXJtLvwtIGB5aWVsZF9mYXJtX2lkYDogeWllbGQgZmFybSBpZGVudGlmaWVyIHRvIGNsYWltIHJld2FyZHMgZnJvbS4AsEVtaXRzIGBSZXdhcmRDbGFpbWVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuPHdpdGhkcmF3X3NoYXJlcwwBKGRlcG9zaXRfaWQYASREZXBvc2l0SWQAATR5aWVsZF9mYXJtX2lkEAEsWWllbGRGYXJtSWQAAShhc3NldF9wYWlyQQIBJEFzc2V0UGFpcgALWBUBV2l0aGRyYXcgTFAgc2hhcmVzIGZyb20gbGlxLiBtaW5pbmcgd2l0aCByZXdhcmQgY2xhaW1pbmcgaWYgcG9zc2libGUuABUBTGlzdCBvZiBwb3NzaWJsZSBjYXNlcyBvZiB0cmFuc2ZlcnMgb2YgTFAgc2hhcmVzIGFuZCBjbGFpbWVkIHJld2FyZHM6AFEBKiB5aWVsZCBmYXJtIGlzIGFjdGl2ZSh5aWVsZCBmYXJtIGlzIG5vdCBzdG9wcGVkKSAtIGNsYWltIGFuZCB0cmFuc2ZlciByZXdhcmRzKGlmIGl02Hdhc24ndCBjbGFpbWVkIGluIHRoaXMgcGVyaW9kKSBhbmQgdHJhbnNmZXIgTFAgc2hhcmVzLuwqIGxpcS4gbWluaW5nIGlzIHN0b3BwZWQgLSBjbGFpbSBhbmQgdHJhbnNmZXIgcmV3YXJkcyhpZiBpdNh3YXNuJ3QgY2xhaW1lZCBpbiB0aGlzIHBlcmlvZCkgYW5kIHRyYW5zZmVyIExQIHNoYXJlcy4FASogeWllbGQgZmFybSB3YXMgdGVybWluYXRlZCAtIG9ubHkgTFAgc2hhcmVzIHdpbGwgYmUgdHJhbnNmZXJyZWQu7CogZmFybSB3YXMgdGVybWluYXRlZCAtIG9ubHkgTFAgc2hhcmVzIHdpbGwgYmUgdHJhbnNmZXJyZWQuADUBVXNlcidzIHVuY2xhaW1hYmxlIHJld2FyZHMgd2lsbCBiZSB0cmFuc2ZlcnJlZCBiYWNrIHRvIGdsb2JhbCBmYXJtJ3MgYWNjb3VudC4ALFBhcmFtZXRlcnM6qC0gYG9yaWdpbmA6IGFjY291bnQgb3duZXIgb2YgZGVwb3NpdChuZnQpLvgtIGBkZXBvc2l0X2lkYDogbmZ0IGlkIHJlcHJlc2VudGluZyBkZXBvc2l0IGluIHRoZSB5aWVsZCBmYXJtLgUBLSBgeWllbGRfZmFybV9pZGA6IHlpZWxkIGZhcm0gaWRlbnRpZmllciB0byBkaXRoZHJhdyBzaGFyZXMgZnJvbS4FAS0gYGFzc2V0X3BhaXJgOiBhc3NldCBwYWlyIGlkZW50aWZ5aW5nIHlpZWxkIGZhcm0gaW4gZ2xvYmFsIGZhcm0uABhFbWl0czqEKiBgUmV3YXJkQ2xhaW1lZGAgaWYgY2xhaW0gaGFwcGVupCogYFNoYXJlc1dpdGhkcmF3bmAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLkEGDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQQQ2FsbAgEVAAESQABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5FBgxYcGFsbGV0X3JlbGF5Y2hhaW5faW5mbxhwYWxsZXQQQ2FsbAQEVAABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5JBgwocGFsbGV0X2RjYRhwYWxsZXQQQ2FsbAQEVAABCCBzY2hlZHVsZQgBIHNjaGVkdWxlTQYB1FNjaGVkdWxlPFQ6OkFjY291bnRJZCwgVDo6QXNzZXRJZCwgQmxvY2tOdW1iZXJGb3I8VD4+AAFUc3RhcnRfZXhlY3V0aW9uX2Jsb2NrzQEBZE9wdGlvbjxCbG9ja051bWJlckZvcjxUPj4AAGA9AUNyZWF0ZXMgYSBuZXcgRENBIChEb2xsYXItQ29zdCBBdmVyYWdpbmcpIHNjaGVkdWxlIGFuZCBwbGFucyB0aGUgbmV4dCBleGVjdXRpb25gZm9yIHRoZSBzcGVjaWZpZWQgYmxvY2suAC0BSWYgdGhlIGJsb2NrIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBleGVjdXRpb24gaXMgcGxhbm5lZCBmb3IgdGhlIG5leHQgYmxvY2suSQFJZiB0aGUgZ2l2ZW4gYmxvY2sgaXMgZnVsbCwgdGhlIGV4ZWN1dGlvbiB3aWxsIGJlIHBsYW5uZWQgaW4gdGhlIHN1YnNlcXVlbnQgYmxvY2suAFEBT25jZSB0aGUgc2NoZWR1bGUgaXMgY3JlYXRlZCwgdGhlIHNwZWNpZmllZCBgdG90YWxfYW1vdW50YCB3aWxsIGJlIHJlc2VydmVkIGZvciBEQ0EuHQFUaGUgcmVzZXJ2YXRpb24gY3VycmVuY3kgd2lsbCBiZSB0aGUgYGFtb3VudF9pbmAgY3VycmVuY3kgb2YgdGhlIG9yZGVyLgDgVHJhZGVzIGFyZSBleGVjdXRlZCBhcyBsb25nIGFzIHRoZXJlIGlzIGJ1ZGdldCByZW1haW5pbmesZnJvbSB0aGUgaW5pdGlhbCBgdG90YWxfYW1vdW50YCBhbGxvY2F0aW9uLgBVAUlmIGEgdHJhZGUgZmFpbHMgZHVlIHRvIHNsaXBwYWdlIGxpbWl0IG9yIHByaWNlIHN0YWJpbGl0eSBlcnJvcnMsIGl0IHdpbGwgYmUgcmV0cmllZC7USWYgdGhlIG51bWJlciBvZiByZXRyaWVzIHJlYWNoZXMgdGhlIG1heGltdW0gYWxsb3dlZCywdGhlIHNjaGVkdWxlIHdpbGwgYmUgdGVybWluYXRlZCBwZXJtYW5lbnRseS74SW4gdGhlIGNhc2Ugb2YgYSBzdWNjZXNzZnVsIHRyYWRlLCB0aGUgcmV0cnkgY291bnRlciBpcyByZXNldC4ALFBhcmFtZXRlcnM6aC0gYG9yaWdpbmA6IHNjaGVkdWxlIG93bmVyeC0gYHNjaGVkdWxlYDogc2NoZWR1bGUgZGV0YWlscykBLSBgc3RhcnRfZXhlY3V0aW9uX2Jsb2NrYDogZmlyc3QgcG9zc2libGUgZXhlY3V0aW9uIGJsb2NrIGZvciB0aGUgc2NoZWR1bGUA/EVtaXRzIGBTY2hlZHVsZWRgIGFuZCBgRXhlY3V0aW9uUGxhbm5lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAkdGVybWluYXRlCAEsc2NoZWR1bGVfaWQQAShTY2hlZHVsZUlkAAFQbmV4dF9leGVjdXRpb25fYmxvY2vNAQFkT3B0aW9uPEJsb2NrTnVtYmVyRm9yPFQ+PgABLAkBVGVybWluYXRlcyBhIERDQSBzY2hlZHVsZSBhbmQgcmVtb3ZlIGl0IGNvbXBsZXRlbHkgZnJvbSB0aGUgY2hhaW4uAEEBVGhpcyBjYW4gYmUgY2FsbGVkIGJ5IGJvdGggc2NoZWR1bGUgb3duZXIgb3IgdGhlIGNvbmZpZ3VyZWQgYFQ6OlRlY2huaWNhbE9yaWdpbmAALFBhcmFtZXRlcnM6aC0gYG9yaWdpbmA6IHNjaGVkdWxlIG93bmVycC0gYHNjaGVkdWxlX2lkYDogc2NoZWR1bGUgaWQVAS0gYG5leHRfZXhlY3V0aW9uX2Jsb2NrYDogYmxvY2sgbnVtYmVyIHdoZXJlIHRoZSBzY2hlZHVsZSBpcyBwbGFubmVkLgCkRW1pdHMgYFRlcm1pbmF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4ABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLk0GDChwYWxsZXRfZGNhFHR5cGVzIFNjaGVkdWxlDCRBY2NvdW50SWQBABxBc3NldElkARAsQmxvY2tOdW1iZXIBEAAcARRvd25lcgABJEFjY291bnRJZAABGHBlcmlvZBABLEJsb2NrTnVtYmVyAAEwdG90YWxfYW1vdW50GAEcQmFsYW5jZQABLG1heF9yZXRyaWVzIQEBKE9wdGlvbjx1OD4AAUxzdGFiaWxpdHlfdGhyZXNob2xkUQYBPE9wdGlvbjxQZXJtaWxsPgABIHNsaXBwYWdlUQYBPE9wdGlvbjxQZXJtaWxsPgABFG9yZGVyUQIBOE9yZGVyPEFzc2V0SWQ+AABRBgQYT3B0aW9uBARUAWkBAQgQTm9uZQAAABBTb21lBABpAQAAAQAAVQYMQHBhbGxldF9zY2hlZHVsZXIYcGFsbGV0EENhbGwEBFQAASggc2NoZWR1bGUQARB3aGVuEAFEQmxvY2tOdW1iZXJGb3I8VD4AAThtYXliZV9wZXJpb2RpY5UBAaxPcHRpb248c2NoZWR1bGU6OlBlcmlvZDxCbG9ja051bWJlckZvcjxUPj4+AAEgcHJpb3JpdHkIAUhzY2hlZHVsZTo6UHJpb3JpdHkAARBjYWxsfQQBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAARwQW5vbnltb3VzbHkgc2NoZWR1bGUgYSB0YXNrLhhjYW5jZWwIARB3aGVuEAFEQmxvY2tOdW1iZXJGb3I8VD4AARRpbmRleBABDHUzMgABBJRDYW5jZWwgYW4gYW5vbnltb3VzbHkgc2NoZWR1bGVkIHRhc2suOHNjaGVkdWxlX25hbWVkFAEIaWQEASBUYXNrTmFtZQABEHdoZW4QAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGljlQEBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGx9BAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgACBFhTY2hlZHVsZSBhIG5hbWVkIHRhc2suMGNhbmNlbF9uYW1lZAQBCGlkBAEgVGFza05hbWUAAwR4Q2FuY2VsIGEgbmFtZWQgc2NoZWR1bGVkIHRhc2suOHNjaGVkdWxlX2FmdGVyEAEUYWZ0ZXIQAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGljlQEBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGx9BAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAEBKhBbm9ueW1vdXNseSBzY2hlZHVsZSBhIHRhc2sgYWZ0ZXIgYSBkZWxheS5Qc2NoZWR1bGVfbmFtZWRfYWZ0ZXIUAQhpZAQBIFRhc2tOYW1lAAEUYWZ0ZXIQAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGljlQEBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGx9BAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAFBJBTY2hlZHVsZSBhIG5hbWVkIHRhc2sgYWZ0ZXIgYSBkZWxheS4kc2V0X3JldHJ5DAEQdGFza5EBAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AARxyZXRyaWVzCAEIdTgAARhwZXJpb2QQAURCbG9ja051bWJlckZvcjxUPgAGMFkBU2V0IGEgcmV0cnkgY29uZmlndXJhdGlvbiBmb3IgYSB0YXNrIHNvIHRoYXQsIGluIGNhc2UgaXRzIHNjaGVkdWxlZCBydW4gZmFpbHMsIGl0IHdpbGxVAWJlIHJldHJpZWQgYWZ0ZXIgYHBlcmlvZGAgYmxvY2tzLCBmb3IgYSB0b3RhbCBhbW91bnQgb2YgYHJldHJpZXNgIHJldHJpZXMgb3IgdW50aWwgaXQkc3VjY2VlZHMuAFUBVGFza3Mgd2hpY2ggbmVlZCB0byBiZSBzY2hlZHVsZWQgZm9yIGEgcmV0cnkgYXJlIHN0aWxsIHN1YmplY3QgdG8gd2VpZ2h0IG1ldGVyaW5nIGFuZFEBYWdlbmRhIHNwYWNlLCBzYW1lIGFzIGEgcmVndWxhciB0YXNrLiBJZiBhIHBlcmlvZGljIHRhc2sgZmFpbHMsIGl0IHdpbGwgYmUgc2NoZWR1bGVkkG5vcm1hbGx5IHdoaWxlIHRoZSB0YXNrIGlzIHJldHJ5aW5nLgBRAVRhc2tzIHNjaGVkdWxlZCBhcyBhIHJlc3VsdCBvZiBhIHJldHJ5IGZvciBhIHBlcmlvZGljIHRhc2sgYXJlIHVubmFtZWQsIG5vbi1wZXJpb2RpYz0BY2xvbmVzIG9mIHRoZSBvcmlnaW5hbCB0YXNrLiBUaGVpciByZXRyeSBjb25maWd1cmF0aW9uIHdpbGwgYmUgZGVyaXZlZCBmcm9tIHRoZU0Bb3JpZ2luYWwgdGFzaydzIGNvbmZpZ3VyYXRpb24sIGJ1dCB3aWxsIGhhdmUgYSBsb3dlciB2YWx1ZSBmb3IgYHJlbWFpbmluZ2AgdGhhbiB0aGVkb3JpZ2luYWwgYHRvdGFsX3JldHJpZXNgLjxzZXRfcmV0cnlfbmFtZWQMAQhpZAQBIFRhc2tOYW1lAAEccmV0cmllcwgBCHU4AAEYcGVyaW9kEAFEQmxvY2tOdW1iZXJGb3I8VD4ABzBdAVNldCBhIHJldHJ5IGNvbmZpZ3VyYXRpb24gZm9yIGEgbmFtZWQgdGFzayBzbyB0aGF0LCBpbiBjYXNlIGl0cyBzY2hlZHVsZWQgcnVuIGZhaWxzLCBpdF0Bd2lsbCBiZSByZXRyaWVkIGFmdGVyIGBwZXJpb2RgIGJsb2NrcywgZm9yIGEgdG90YWwgYW1vdW50IG9mIGByZXRyaWVzYCByZXRyaWVzIG9yIHVudGlsMGl0IHN1Y2NlZWRzLgBVAVRhc2tzIHdoaWNoIG5lZWQgdG8gYmUgc2NoZWR1bGVkIGZvciBhIHJldHJ5IGFyZSBzdGlsbCBzdWJqZWN0IHRvIHdlaWdodCBtZXRlcmluZyBhbmRRAWFnZW5kYSBzcGFjZSwgc2FtZSBhcyBhIHJlZ3VsYXIgdGFzay4gSWYgYSBwZXJpb2RpYyB0YXNrIGZhaWxzLCBpdCB3aWxsIGJlIHNjaGVkdWxlZJBub3JtYWxseSB3aGlsZSB0aGUgdGFzayBpcyByZXRyeWluZy4AUQFUYXNrcyBzY2hlZHVsZWQgYXMgYSByZXN1bHQgb2YgYSByZXRyeSBmb3IgYSBwZXJpb2RpYyB0YXNrIGFyZSB1bm5hbWVkLCBub24tcGVyaW9kaWM9AWNsb25lcyBvZiB0aGUgb3JpZ2luYWwgdGFzay4gVGhlaXIgcmV0cnkgY29uZmlndXJhdGlvbiB3aWxsIGJlIGRlcml2ZWQgZnJvbSB0aGVNAW9yaWdpbmFsIHRhc2sncyBjb25maWd1cmF0aW9uLCBidXQgd2lsbCBoYXZlIGEgbG93ZXIgdmFsdWUgZm9yIGByZW1haW5pbmdgIHRoYW4gdGhlZG9yaWdpbmFsIGB0b3RhbF9yZXRyaWVzYC4wY2FuY2VsX3JldHJ5BAEQdGFza5EBAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4ACASoUmVtb3ZlcyB0aGUgcmV0cnkgY29uZmlndXJhdGlvbiBvZiBhIHRhc2suSGNhbmNlbF9yZXRyeV9uYW1lZAQBCGlkBAEgVGFza05hbWUACQS8Q2FuY2VsIHRoZSByZXRyeSBjb25maWd1cmF0aW9uIG9mIGEgbmFtZWQgdGFzay4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuWQYMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0YcGFsbGV0EENhbGwEBFQAARBMc2V0X3ZhbGlkYXRpb25fZGF0YQQBEGRhdGFdBgFUUGFyYWNoYWluSW5oZXJlbnREYXRhAAAkgFNldCB0aGUgY3VycmVudCB2YWxpZGF0aW9uIGRhdGEuAEEBVGhpcyBzaG91bGQgYmUgaW52b2tlZCBleGFjdGx5IG9uY2UgcGVyIGJsb2NrLiBJdCB3aWxsIHBhbmljIGF0IHRoZSBmaW5hbGl6YXRpb26IcGhhc2UgaWYgdGhlIGNhbGwgd2FzIG5vdCBpbnZva2VkLgDQVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYEluaGVyZW50YAAhAUFzIGEgc2lkZSBlZmZlY3QsIHRoaXMgZnVuY3Rpb24gdXBncmFkZXMgdGhlIGN1cnJlbnQgdmFsaWRhdGlvbiBmdW5jdGlvboRpZiB0aGUgYXBwcm9wcmlhdGUgdGltZSBoYXMgY29tZS5gc3Vkb19zZW5kX3Vwd2FyZF9tZXNzYWdlBAEcbWVzc2FnZTgBNFVwd2FyZE1lc3NhZ2UAAQBEYXV0aG9yaXplX3VwZ3JhZGUIASRjb2RlX2hhc2g0ARxUOjpIYXNoAAE0Y2hlY2tfdmVyc2lvbiABEGJvb2wAAiBhAUF1dGhvcml6ZSBhbiB1cGdyYWRlIHRvIGEgZ2l2ZW4gYGNvZGVfaGFzaGAgZm9yIHRoZSBydW50aW1lLiBUaGUgcnVudGltZSBjYW4gYmUgc3VwcGxpZWQYbGF0ZXIuAF0BVGhlIGBjaGVja192ZXJzaW9uYCBwYXJhbWV0ZXIgc2V0cyBhIGJvb2xlYW4gZmxhZyBmb3Igd2hldGhlciBvciBub3QgdGhlIHJ1bnRpbWUncyBzcGVjYQF2ZXJzaW9uIGFuZCBuYW1lIHNob3VsZCBiZSB2ZXJpZmllZCBvbiB1cGdyYWRlLiBTaW5jZSB0aGUgYXV0aG9yaXphdGlvbiBvbmx5IGhhcyBhIGhhc2gssGl0IGNhbm5vdCBhY3R1YWxseSBwZXJmb3JtIHRoZSB2ZXJpZmljYXRpb24uAHxUaGlzIGNhbGwgcmVxdWlyZXMgUm9vdCBvcmlnaW4uYGVuYWN0X2F1dGhvcml6ZWRfdXBncmFkZQQBEGNvZGU4ARxWZWM8dTg+AAMkVQFQcm92aWRlIHRoZSBwcmVpbWFnZSAocnVudGltZSBiaW5hcnkpIGBjb2RlYCBmb3IgYW4gdXBncmFkZSB0aGF0IGhhcyBiZWVuIGF1dGhvcml6ZWQuAEkBSWYgdGhlIGF1dGhvcml6YXRpb24gcmVxdWlyZWQgYSB2ZXJzaW9uIGNoZWNrLCB0aGlzIGNhbGwgd2lsbCBlbnN1cmUgdGhlIHNwZWMgbmFtZehyZW1haW5zIHVuY2hhbmdlZCBhbmQgdGhhdCB0aGUgc3BlYyB2ZXJzaW9uIGhhcyBpbmNyZWFzZWQuAF0BTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gd2lsbCBub3QgYXBwbHkgdGhlIG5ldyBgY29kZWAsIGJ1dCBvbmx5IGF0dGVtcHQgdG8gc2NoZWR1bGUgdGhldHVwZ3JhZGUgd2l0aCB0aGUgUmVsYXkgQ2hhaW4uAGBBbGwgb3JpZ2lucyBhcmUgYWxsb3dlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuXQYIlGN1bXVsdXNfcHJpbWl0aXZlc19wYXJhY2hhaW5faW5oZXJlbnRUUGFyYWNoYWluSW5oZXJlbnREYXRhAAAQATx2YWxpZGF0aW9uX2RhdGFhBgFcUGVyc2lzdGVkVmFsaWRhdGlvbkRhdGEAAURyZWxheV9jaGFpbl9zdGF0ZWkGAVRzcF90cmllOjpTdG9yYWdlUHJvb2YAAURkb3dud2FyZF9tZXNzYWdlc3EGAWxWZWM8SW5ib3VuZERvd253YXJkTWVzc2FnZT4AAUxob3Jpem9udGFsX21lc3NhZ2VzeQYBpEJUcmVlTWFwPFBhcmFJZCwgVmVjPEluYm91bmRIcm1wTWVzc2FnZT4+AABhBgxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2N1xQZXJzaXN0ZWRWYWxpZGF0aW9uRGF0YQgESAE0BE4BEAAQASxwYXJlbnRfaGVhZGUGASBIZWFkRGF0YQABTHJlbGF5X3BhcmVudF9udW1iZXIQAQROAAFkcmVsYXlfcGFyZW50X3N0b3JhZ2Vfcm9vdDQBBEgAATBtYXhfcG92X3NpemUQAQx1MzIAAGUGDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzIEhlYWREYXRhAAAEADgBHFZlYzx1OD4AAGkGDBxzcF90cmllNHN0b3JhZ2VfcHJvb2YwU3RvcmFnZVByb29mAAAEASh0cmllX25vZGVzbQYBREJUcmVlU2V0PFZlYzx1OD4+AABtBgQgQlRyZWVTZXQEBFQBOAAEAMEDAAAAcQYAAAJ1BgB1BghgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzWEluYm91bmREb3dud2FyZE1lc3NhZ2UELEJsb2NrTnVtYmVyARAACAEcc2VudF9hdBABLEJsb2NrTnVtYmVyAAEMbXNnOAE8RG93bndhcmRNZXNzYWdlAAB5BgQgQlRyZWVNYXAIBEsBgQMEVgF9BgAEAIUGAAAAfQYAAAKBBgCBBghgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzSEluYm91bmRIcm1wTWVzc2FnZQQsQmxvY2tOdW1iZXIBEAAIARxzZW50X2F0EAEsQmxvY2tOdW1iZXIAARBkYXRhOAFQc3Bfc3RkOjp2ZWM6OlZlYzx1OD4AAIUGAAACiQYAiQYAAAQIgQN9BgCNBgxYc3RhZ2luZ19wYXJhY2hhaW5faW5mbxhwYWxsZXQQQ2FsbAQEVAABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6RBgwocGFsbGV0X3hjbRhwYWxsZXQQQ2FsbAQEVAABOBBzZW5kCAEQZGVzdG0DAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEcbWVzc2FnZZUGAVRCb3g8VmVyc2lvbmVkWGNtPCgpPj4AAAA8dGVsZXBvcnRfYXNzZXRzEAEQZGVzdG0DAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnltAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0cx0DAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtEAEMdTMyAAFIEQFUZWxlcG9ydCBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byBzb21lIGRlc3RpbmF0aW9uIGNoYWluLgAdASoqVGhpcyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkOiBVc2UgYGxpbWl0ZWRfdGVsZXBvcnRfYXNzZXRzYCBpbnN0ZWFkLioqAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLiBUaGUgd2VpZ2h0IGxpbWl0IGZvciBmZWVzIGlzIG5vdCBwcm92aWRlZCBhbmQgdGh1cyBpcyB1bmxpbWl0ZWQstHdpdGggYWxsIGZlZXMgdGFrZW4gYXMgbmVlZGVkIGZyb20gdGhlIGFzc2V0LgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGVoICBmZWUgb24gdGhlIGBkZXN0YCBjaGFpbi5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy5ccmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHMQARBkZXN0bQMBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyeW0DAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzHQMBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW0QAQx1MzIAAnhdAVRyYW5zZmVyIHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiB0aHJvdWdoIHRoZWlyIGxvY2FsLHhkZXN0aW5hdGlvbiBvciByZW1vdGUgcmVzZXJ2ZS4APQFgYXNzZXRzYCBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIGFuZCBtYXkgbm90IGJlIHRlbGVwb3J0YWJsZSB0byBgZGVzdGAuTQEgLSBgYXNzZXRzYCBoYXZlIGxvY2FsIHJlc2VydmU6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbk0BICAgY2hhaW4gYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWRsICAgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuVQEgLSBgYXNzZXRzYCBoYXZlIGRlc3RpbmF0aW9uIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvWQEgICBgZGVzdGAgY2hhaW4gdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZIQgICBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC5hASAtIGBhc3NldHNgIGhhdmUgcmVtb3RlIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byByZXNlcnZlIGNoYWluIHRvIG1vdmVhASAgIHJlc2VydmVzIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyIFhDTSB0byBgZGVzdGD0ICAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLgA9ASoqVGhpcyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkOiBVc2UgYGxpbWl0ZWRfcmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHNgIGluc3RlYWQuKioAUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2ZhAWluZGV4IGBmZWVfYXNzZXRfaXRlbWAuIFRoZSB3ZWlnaHQgbGltaXQgZm9yIGZlZXMgaXMgbm90IHByb3ZpZGVkIGFuZCB0aHVzIGlzIHVubGltaXRlZCy0d2l0aCBhbGwgZmVlcyB0YWtlbiBhcyBuZWVkZWQgZnJvbSB0aGUgYXNzZXQuACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb21UICByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZcggIGZlZSBvbiB0aGUgYGRlc3RgIChhbmQgcG9zc2libHkgcmVzZXJ2ZSkgY2hhaW5zLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLhxleGVjdXRlCAEcbWVzc2FnZfkGAbRCb3g8VmVyc2lvbmVkWGNtPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPj4AAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AAMg0EV4ZWN1dGUgYW4gWENNIG1lc3NhZ2UgZnJvbSBhIGxvY2FsLCBzaWduZWQsIG9yaWdpbi4ATQFBbiBldmVudCBpcyBkZXBvc2l0ZWQgaW5kaWNhdGluZyB3aGV0aGVyIGBtc2dgIGNvdWxkIGJlIGV4ZWN1dGVkIGNvbXBsZXRlbHkgb3Igb25seShwYXJ0aWFsbHkuAF0BTm8gbW9yZSB0aGFuIGBtYXhfd2VpZ2h0YCB3aWxsIGJlIHVzZWQgaW4gaXRzIGF0dGVtcHRlZCBleGVjdXRpb24uIElmIHRoaXMgaXMgbGVzcyB0aGFuQQF0aGUgbWF4aW11bSBhbW91bnQgb2Ygd2VpZ2h0IHRoYXQgdGhlIG1lc3NhZ2UgY291bGQgdGFrZSB0byBiZSBleGVjdXRlZCwgdGhlbiBub3xleGVjdXRpb24gYXR0ZW1wdCB3aWxsIGJlIG1hZGUuRGZvcmNlX3hjbV92ZXJzaW9uCAEgbG9jYXRpb259AgE0Qm94PExvY2F0aW9uPgABHHZlcnNpb24QAShYY21WZXJzaW9uAAQYSQFFeHRvbGwgdGhhdCBhIHBhcnRpY3VsYXIgZGVzdGluYXRpb24gY2FuIGJlIGNvbW11bmljYXRlZCB3aXRoIHRocm91Z2ggYSBwYXJ0aWN1bGFyPHZlcnNpb24gb2YgWENNLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLtgtIGBsb2NhdGlvbmA6IFRoZSBkZXN0aW5hdGlvbiB0aGF0IGlzIGJlaW5nIGRlc2NyaWJlZC4RAS0gYHhjbV92ZXJzaW9uYDogVGhlIGxhdGVzdCB2ZXJzaW9uIG9mIFhDTSB0aGF0IGBsb2NhdGlvbmAgc3VwcG9ydHMuZGZvcmNlX2RlZmF1bHRfeGNtX3ZlcnNpb24EAURtYXliZV94Y21fdmVyc2lvbs0BAUhPcHRpb248WGNtVmVyc2lvbj4ABRRZAVNldCBhIHNhZmUgWENNIHZlcnNpb24gKHRoZSB2ZXJzaW9uIHRoYXQgWENNIHNob3VsZCBiZSBlbmNvZGVkIHdpdGggaWYgdGhlIG1vc3QgcmVjZW50tHZlcnNpb24gYSBkZXN0aW5hdGlvbiBjYW4gYWNjZXB0IGlzIHVua25vd24pLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLjkBLSBgbWF5YmVfeGNtX3ZlcnNpb25gOiBUaGUgZGVmYXVsdCBYQ00gZW5jb2RpbmcgdmVyc2lvbiwgb3IgYE5vbmVgIHRvIGRpc2FibGUueGZvcmNlX3N1YnNjcmliZV92ZXJzaW9uX25vdGlmeQQBIGxvY2F0aW9ubQMBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4ABhA5AUFzayBhIGxvY2F0aW9uIHRvIG5vdGlmeSB1cyByZWdhcmRpbmcgdGhlaXIgWENNIHZlcnNpb24gYW5kIGFueSBjaGFuZ2VzIHRvIGl0LgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLlkBLSBgbG9jYXRpb25gOiBUaGUgbG9jYXRpb24gdG8gd2hpY2ggd2Ugc2hvdWxkIHN1YnNjcmliZSBmb3IgWENNIHZlcnNpb24gbm90aWZpY2F0aW9ucy6AZm9yY2VfdW5zdWJzY3JpYmVfdmVyc2lvbl9ub3RpZnkEASBsb2NhdGlvbm0DAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAcYSQFSZXF1aXJlIHRoYXQgYSBwYXJ0aWN1bGFyIGRlc3RpbmF0aW9uIHNob3VsZCBubyBsb25nZXIgbm90aWZ5IHVzIHJlZ2FyZGluZyBhbnkgWENNQHZlcnNpb24gY2hhbmdlcy4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi49AS0gYGxvY2F0aW9uYDogVGhlIGxvY2F0aW9uIHRvIHdoaWNoIHdlIGFyZSBjdXJyZW50bHkgc3Vic2NyaWJlZCBmb3IgWENNIHZlcnNpb26oICBub3RpZmljYXRpb25zIHdoaWNoIHdlIG5vIGxvbmdlciBkZXNpcmUufGxpbWl0ZWRfcmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHMUARBkZXN0bQMBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyeW0DAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzHQMBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW0QAQx1MzIAATB3ZWlnaHRfbGltaXQZAwEsV2VpZ2h0TGltaXQACHhdAVRyYW5zZmVyIHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiB0aHJvdWdoIHRoZWlyIGxvY2FsLHhkZXN0aW5hdGlvbiBvciByZW1vdGUgcmVzZXJ2ZS4APQFgYXNzZXRzYCBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIGFuZCBtYXkgbm90IGJlIHRlbGVwb3J0YWJsZSB0byBgZGVzdGAuTQEgLSBgYXNzZXRzYCBoYXZlIGxvY2FsIHJlc2VydmU6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbk0BICAgY2hhaW4gYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWRsICAgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuVQEgLSBgYXNzZXRzYCBoYXZlIGRlc3RpbmF0aW9uIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvWQEgICBgZGVzdGAgY2hhaW4gdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZIQgICBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC5hASAtIGBhc3NldHNgIGhhdmUgcmVtb3RlIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byByZXNlcnZlIGNoYWluIHRvIG1vdmVhASAgIHJlc2VydmVzIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyIFhDTSB0byBgZGVzdGD0ICAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYCwgdXAgdG8gZW5vdWdoIHRvIHBheSBmb3IgYHdlaWdodF9saW1pdGAgb2Ygd2VpZ2h0LiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS5cbGltaXRlZF90ZWxlcG9ydF9hc3NldHMUARBkZXN0bQMBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyeW0DAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzHQMBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW0QAQx1MzIAATB3ZWlnaHRfbGltaXQZAwEsV2VpZ2h0TGltaXQACUgRAVRlbGVwb3J0IHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHNvbWUgZGVzdGluYXRpb24gY2hhaW4uAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLCB1cCB0byBlbm91Z2ggdG8gcGF5IGZvciBgd2VpZ2h0X2xpbWl0YCBvZiB3ZWlnaHQuIElmIG1vcmUgd2VpZ2h0WQFpcyBuZWVkZWQgdGhhbiBgd2VpZ2h0X2xpbWl0YCwgdGhlbiB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCBhbmQgdGhlIHNlbnQgYXNzZXRzIG1heSBiZSBhdCByaXNrLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGVoICBmZWUgb24gdGhlIGBkZXN0YCBjaGFpbi5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy5FAS0gYHdlaWdodF9saW1pdGA6IFRoZSByZW1vdGUtc2lkZSB3ZWlnaHQgbGltaXQsIGlmIGFueSwgZm9yIHRoZSBYQ00gZmVlIHB1cmNoYXNlLkBmb3JjZV9zdXNwZW5zaW9uBAEkc3VzcGVuZGVkIAEQYm9vbAAKEPRTZXQgb3IgdW5zZXQgdGhlIGdsb2JhbCBzdXNwZW5zaW9uIHN0YXRlIG9mIHRoZSBYQ00gZXhlY3V0b3IuANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4u0C0gYHN1c3BlbmRlZGA6IGB0cnVlYCB0byBzdXNwZW5kLCBgZmFsc2VgIHRvIHJlc3VtZS48dHJhbnNmZXJfYXNzZXRzFAEQZGVzdG0DAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnltAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0cx0DAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtEAEMdTMyAAEwd2VpZ2h0X2xpbWl0GQMBLFdlaWdodExpbWl0AAuEXQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCzQZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUsIG9yIHRocm91Z2ggdGVsZXBvcnRzLgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZjUBaW5kZXggYGZlZV9hc3NldF9pdGVtYCAoaGVuY2UgcmVmZXJyZWQgdG8gYXMgYGZlZXNgKSwgdXAgdG8gZW5vdWdoIHRvIHBheSBmb3JBAWB3ZWlnaHRfbGltaXRgIG9mIHdlaWdodC4gSWYgbW9yZSB3ZWlnaHQgaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhl3G9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4AYQFgYXNzZXRzYCAoZXhjbHVkaW5nIGBmZWVzYCkgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBvciBvdGhlcndpc2UgYmUgdGVsZXBvcnRhYmxlsHRvIGBkZXN0YCwgbm8gbGltaXRhdGlvbnMgaW1wb3NlZCBvbiBgZmVlc2AuTQEgLSBmb3IgbG9jYWwgcmVzZXJ2ZTogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uIGNoYWluIGFuZE0BICAgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG9EICAgYGJlbmVmaWNpYXJ5YC5hASAtIGZvciBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0byBgZGVzdGAgY2hhaW5ZASAgIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmQgZGVwb3NpdCB0aGVtUCAgIHRvIGBiZW5lZmljaWFyeWAuXQEgLSBmb3IgcmVtb3RlIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byByZXNlcnZlIGNoYWluIHRvIG1vdmUgcmVzZXJ2ZXNdASAgIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyIFhDTSB0byBgZGVzdGAgdG8gbWludNQgICBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlEBIC0gZm9yIHRlbGVwb3J0czogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgWENNIHRvIGBkZXN0YCBjaGFpbiB0byBtaW50L3RlbGVwb3J0sCAgIGFzc2V0cyBhbmQgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4tAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgWDIoUGFyZW50LFUBICBQYXJhY2hhaW4oLi4pKWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBYMShQYXJhY2hhaW4oLi4pKWAgdG8gc2VuZGggIGZyb20gcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy5FAS0gYHdlaWdodF9saW1pdGA6IFRoZSByZW1vdGUtc2lkZSB3ZWlnaHQgbGltaXQsIGlmIGFueSwgZm9yIHRoZSBYQ00gZmVlIHB1cmNoYXNlLjBjbGFpbV9hc3NldHMIARhhc3NldHMdAwFQQm94PFZlcnNpb25lZEFzc2V0cz4AASxiZW5lZmljaWFyeW0DAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAwYVQFDbGFpbXMgYXNzZXRzIHRyYXBwZWQgb24gdGhpcyBwYWxsZXQgYmVjYXVzZSBvZiBsZWZ0b3ZlciBhc3NldHMgZHVyaW5nIFhDTSBleGVjdXRpb24uAKwtIGBvcmlnaW5gOiBBbnlvbmUgY2FuIGNhbGwgdGhpcyBleHRyaW5zaWMuXQEtIGBhc3NldHNgOiBUaGUgZXhhY3QgYXNzZXRzIHRoYXQgd2VyZSB0cmFwcGVkLiBVc2UgdGhlIHZlcnNpb24gdG8gc3BlY2lmeSB3aGF0IHZlcnNpb26Yd2FzIHRoZSBsYXRlc3Qgd2hlbiB0aGV5IHdlcmUgdHJhcHBlZC5FAS0gYGJlbmVmaWNpYXJ5YDogVGhlIGxvY2F0aW9uL2FjY291bnQgd2hlcmUgdGhlIGNsYWltZWQgYXNzZXRzIHdpbGwgYmUgZGVwb3NpdGVkLox0cmFuc2Zlcl9hc3NldHNfdXNpbmdfdHlwZV9hbmRfdGhlbhwBEGRlc3RtAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0cx0DAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABUGFzc2V0c190cmFuc2Zlcl90eXBlJQcBREJveDxUcmFuc2ZlclR5cGU+AAE4cmVtb3RlX2ZlZXNfaWQpBwFUQm94PFZlcnNpb25lZEFzc2V0SWQ+AAFIZmVlc190cmFuc2Zlcl90eXBlJQcBREJveDxUcmFuc2ZlclR5cGU+AAFIY3VzdG9tX3hjbV9vbl9kZXN0lQYBVEJveDxWZXJzaW9uZWRYY208KCk+PgABMHdlaWdodF9saW1pdBkDASxXZWlnaHRMaW1pdAANwFUBVHJhbnNmZXIgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiB1c2luZyBleHBsaWNpdCB0cmFuc2Zlcmh0eXBlcyBmb3IgYXNzZXRzIGFuZCBmZWVzLgBZAWBhc3NldHNgIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gb3IgbWF5IGJlIHRlbGVwb3J0YWJsZSB0byBgZGVzdGAuIENhbGxlciBtdXN07HByb3ZpZGUgdGhlIGBhc3NldHNfdHJhbnNmZXJfdHlwZWAgdG8gYmUgdXNlZCBmb3IgYGFzc2V0c2A6UQEgLSBgVHJhbnNmZXJUeXBlOjpMb2NhbFJlc2VydmVgOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlkBIC0gYFRyYW5zZmVyVHlwZTo6RGVzdGluYXRpb25SZXNlcnZlYDogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG9ZASAgIGBkZXN0YCBjaGFpbiB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5khCAgIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLlkBIC0gYFRyYW5zZmVyVHlwZTo6UmVtb3RlUmVzZXJ2ZShyZXNlcnZlKWA6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byBgcmVzZXJ2ZWBhASAgIGNoYWluIHRvIG1vdmUgcmVzZXJ2ZXMgZnJvbSB0aGlzIGNoYWluJ3MgU0EgdG8gYGRlc3RgIGNoYWluJ3MgU0EsIGFuZCBmb3J3YXJkIGFub3RoZXJVASAgIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLiBUeXBpY2FsbHmUICAgdGhlIHJlbW90ZSBgcmVzZXJ2ZWAgaXMgQXNzZXQgSHViLkUBIC0gYFRyYW5zZmVyVHlwZTo6VGVsZXBvcnRgOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBYQ00gdG8gYGRlc3RgIGNoYWluIHRv6CAgIG1pbnQvdGVsZXBvcnQgYXNzZXRzIGFuZCBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC4AVQFPbiB0aGUgZGVzdGluYXRpb24gY2hhaW4sIGFzIHdlbGwgYXMgYW55IGludGVybWVkaWFyeSBob3BzLCBgQnV5RXhlY3V0aW9uYCBpcyB1c2VkIHRvIQFidXkgZXhlY3V0aW9uIHVzaW5nIHRyYW5zZmVycmVkIGBhc3NldHNgIGlkZW50aWZpZWQgYnkgYHJlbW90ZV9mZWVzX2lkYC5ZAU1ha2Ugc3VyZSBlbm91Z2ggb2YgdGhlIHNwZWNpZmllZCBgcmVtb3RlX2ZlZXNfaWRgIGFzc2V0IGlzIGluY2x1ZGVkIGluIHRoZSBnaXZlbiBsaXN0YQFvZiBgYXNzZXRzYC4gYHJlbW90ZV9mZWVzX2lkYCBzaG91bGQgYmUgZW5vdWdoIHRvIHBheSBmb3IgYHdlaWdodF9saW1pdGAuIElmIG1vcmUgd2VpZ2h0WQFpcyBuZWVkZWQgdGhhbiBgd2VpZ2h0X2xpbWl0YCwgdGhlbiB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCBhbmQgdGhlIHNlbnQgYXNzZXRzIG1heSBiZSBhdCByaXNrLgBFAWByZW1vdGVfZmVlc19pZGAgbWF5IHVzZSBkaWZmZXJlbnQgdHJhbnNmZXIgdHlwZSB0aGFuIHJlc3Qgb2YgYGFzc2V0c2AgYW5kIGNhbiBiZZxzcGVjaWZpZWQgdGhyb3VnaCBgZmVlc190cmFuc2Zlcl90eXBlYC4AYQFUaGUgY2FsbGVyIG5lZWRzIHRvIHNwZWNpZnkgd2hhdCBzaG91bGQgaGFwcGVuIHRvIHRoZSB0cmFuc2ZlcnJlZCBhc3NldHMgb25jZSB0aGV5IHJlYWNoQQF0aGUgYGRlc3RgIGNoYWluLiBUaGlzIGlzIGRvbmUgdGhyb3VnaCB0aGUgYGN1c3RvbV94Y21fb25fZGVzdGAgcGFyYW1ldGVyLCB3aGljaPxjb250YWlucyB0aGUgaW5zdHJ1Y3Rpb25zIHRvIGV4ZWN1dGUgb24gYGRlc3RgIGFzIGEgZmluYWwgc3RlcC58ICBUaGlzIGlzIHVzdWFsbHkgYXMgc2ltcGxlIGFzOlEBICBgWGNtKHZlYyFbRGVwb3NpdEFzc2V0IHsgYXNzZXRzOiBXaWxkKEFsbENvdW50ZWQoYXNzZXRzLmxlbigpKSksIGJlbmVmaWNpYXJ5IH1dKWAsMQEgIGJ1dCBjb3VsZCBiZSBzb21ldGhpbmcgbW9yZSBleG90aWMgbGlrZSBzZW5kaW5nIHRoZSBgYXNzZXRzYCBldmVuIGZ1cnRoZXIuACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb209ASAgcmVsYXkgdG8gcGFyYWNoYWluLCBvciBgKHBhcmVudHM6IDIsIChHbG9iYWxDb25zZW5zdXMoLi4pLCAuLikpYCB0byBzZW5kIGZyb230ICBwYXJhY2hhaW4gYWNyb3NzIGEgYnJpZGdlIHRvIGFub3RoZXIgZWNvc3lzdGVtIGRlc3RpbmF0aW9uLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy49AS0gYGFzc2V0c190cmFuc2Zlcl90eXBlYDogVGhlIFhDTSBgVHJhbnNmZXJUeXBlYCB1c2VkIHRvIHRyYW5zZmVyIHRoZSBgYXNzZXRzYC4tAS0gYHJlbW90ZV9mZWVzX2lkYDogT25lIG9mIHRoZSBpbmNsdWRlZCBgYXNzZXRzYCB0byBiZSBiZSB1c2VkIHRvIHBheSBmZWVzLkkBLSBgZmVlc190cmFuc2Zlcl90eXBlYDogVGhlIFhDTSBgVHJhbnNmZXJUeXBlYCB1c2VkIHRvIHRyYW5zZmVyIHRoZSBgZmVlc2AgYXNzZXRzLlkBLSBgY3VzdG9tX3hjbV9vbl9kZXN0YDogVGhlIFhDTSB0byBiZSBleGVjdXRlZCBvbiBgZGVzdGAgY2hhaW4gYXMgdGhlIGxhc3Qgc3RlcCBvZiB0aGVZASAgdHJhbnNmZXIsIHdoaWNoIGFsc28gZGV0ZXJtaW5lcyB3aGF0IGhhcHBlbnMgdG8gdGhlIGFzc2V0cyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMulQYIDHhjbTBWZXJzaW9uZWRYY20ELFJ1bnRpbWVDYWxsAAEMCFYyBACZBgFQdjI6OlhjbTxSdW50aW1lQ2FsbD4AAgAIVjMEAMUGAVB2Mzo6WGNtPFJ1bnRpbWVDYWxsPgADAAhWNAQAsQIBUHY0OjpYY208UnVudGltZUNhbGw+AAQAAJkGDAx4Y20IdjIMWGNtBCxSdW50aW1lQ2FsbAAABACdBgF0VmVjPEluc3RydWN0aW9uPFJ1bnRpbWVDYWxsPj4AAJ0GAAACoQYAoQYMDHhjbQh2MixJbnN0cnVjdGlvbgQsUnVudGltZUNhbGwAAXA0V2l0aGRyYXdBc3NldAQAIQMBLE11bHRpQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAIQMBLE11bHRpQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEACEDASxNdWx0aUFzc2V0cwACADRRdWVyeVJlc3BvbnNlDAEgcXVlcnlfaWQsARxRdWVyeUlkAAEgcmVzcG9uc2WlBgEgUmVzcG9uc2UAAShtYXhfd2VpZ2h0LAEMdTY0AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHMhAwEsTXVsdGlBc3NldHMAASxiZW5lZmljaWFyeTEDATRNdWx0aUxvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzIQMBLE11bHRpQXNzZXRzAAEQZGVzdDEDATRNdWx0aUxvY2F0aW9uAAEMeGNtmQYBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fdHlwZQEDAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdCwBDHU2NAABEGNhbGwFAwFoRG91YmxlRW5jb2RlZDxSdW50aW1lQ2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcjUBAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplNQEBDHUzMgABMG1heF9jYXBhY2l0eTUBAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudDUBAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9yNQEBDHUzMgABGHNlbmRlcjUBAQx1MzIAASRyZWNpcGllbnQ1AQEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EADUDAVRJbnRlcmlvck11bHRpTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IMASBxdWVyeV9pZCwBHFF1ZXJ5SWQAARBkZXN0MQMBNE11bHRpTG9jYXRpb24AAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0LAEMdTY0AAwAMERlcG9zaXRBc3NldAwBGGFzc2V0c7UGAUBNdWx0aUFzc2V0RmlsdGVyAAEobWF4X2Fzc2V0czUBAQx1MzIAASxiZW5lZmljaWFyeTEDATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQQARhhc3NldHO1BgFATXVsdGlBc3NldEZpbHRlcgABKG1heF9hc3NldHM1AQEMdTMyAAEQZGVzdDEDATRNdWx0aUxvY2F0aW9uAAEMeGNtmQYBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAgBEGdpdmW1BgFATXVsdGlBc3NldEZpbHRlcgABHHJlY2VpdmUhAwEsTXVsdGlBc3NldHMADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHO1BgFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmUxAwE0TXVsdGlMb2NhdGlvbgABDHhjbZkGARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHO1BgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3QxAwE0TXVsdGlMb2NhdGlvbgABDHhjbZkGARxYY208KCk+ABEAMFF1ZXJ5SG9sZGluZxABIHF1ZXJ5X2lkLAEcUXVlcnlJZAABEGRlc3QxAwE0TXVsdGlMb2NhdGlvbgABGGFzc2V0c7UGAUBNdWx0aUFzc2V0RmlsdGVyAAFMbWF4X3Jlc3BvbnNlX3dlaWdodCwBDHU2NAASADBCdXlFeGVjdXRpb24IARBmZWVzKQMBKE11bHRpQXNzZXQAATB3ZWlnaHRfbGltaXTBBgEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAJkGAUBYY208UnVudGltZUNhbGw+ABUALFNldEFwcGVuZGl4BACZBgFAWGNtPFJ1bnRpbWVDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHMhAwEsTXVsdGlBc3NldHMAARh0aWNrZXQxAwE0TXVsdGlMb2NhdGlvbgAYABBUcmFwBAAsAQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkLAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHQsAQx1NjQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAAKUGDAx4Y20IdjIgUmVzcG9uc2UAARAQTnVsbAAAABhBc3NldHMEACEDASxNdWx0aUFzc2V0cwABADxFeGVjdXRpb25SZXN1bHQEAKkGAVBPcHRpb248KHUzMiwgRXJyb3IpPgACABxWZXJzaW9uBAAQAThzdXBlcjo6VmVyc2lvbgADAACpBgQYT3B0aW9uBARUAa0GAQgQTm9uZQAAABBTb21lBACtBgAAAQAArQYAAAQIELEGALEGEAx4Y20IdjIYdHJhaXRzFEVycm9yAAFoIE92ZXJmbG93AAAANFVuaW1wbGVtZW50ZWQAAQBgVW50cnVzdGVkUmVzZXJ2ZUxvY2F0aW9uAAIAZFVudHJ1c3RlZFRlbGVwb3J0TG9jYXRpb24AAwBETXVsdGlMb2NhdGlvbkZ1bGwABABoTXVsdGlMb2NhdGlvbk5vdEludmVydGlibGUABQAkQmFkT3JpZ2luAAYAPEludmFsaWRMb2NhdGlvbgAHADRBc3NldE5vdEZvdW5kAAgAVEZhaWxlZFRvVHJhbnNhY3RBc3NldAAJADxOb3RXaXRoZHJhd2FibGUACgBITG9jYXRpb25DYW5ub3RIb2xkAAsAVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQAMAFhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAA0AJFRyYW5zcG9ydAAOAChVbnJvdXRhYmxlAA8AMFVua25vd25DbGFpbQAQADhGYWlsZWRUb0RlY29kZQARAEBNYXhXZWlnaHRJbnZhbGlkABIAOE5vdEhvbGRpbmdGZWVzABMAMFRvb0V4cGVuc2l2ZQAUABBUcmFwBAAwAQx1NjQAFQBMVW5oYW5kbGVkWGNtVmVyc2lvbgAWAEhXZWlnaHRMaW1pdFJlYWNoZWQEADABGFdlaWdodAAXABxCYXJyaWVyABgATFdlaWdodE5vdENvbXB1dGFibGUAGQAAtQYQDHhjbQh2MihtdWx0aWFzc2V0QE11bHRpQXNzZXRGaWx0ZXIAAQggRGVmaW5pdGUEACEDASxNdWx0aUFzc2V0cwAAABBXaWxkBAC5BgE4V2lsZE11bHRpQXNzZXQAAQAAuQYQDHhjbQh2MihtdWx0aWFzc2V0OFdpbGRNdWx0aUFzc2V0AAEIDEFsbAAAABRBbGxPZggBCGlkLQMBHEFzc2V0SWQAAQxmdW69BgE8V2lsZEZ1bmdpYmlsaXR5AAEAAL0GEAx4Y20IdjIobXVsdGlhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAAwQYMDHhjbQh2MixXZWlnaHRMaW1pdAABCCRVbmxpbWl0ZWQAAAAcTGltaXRlZAQALAEMdTY0AAEAAMUGDAx4Y20IdjMMWGNtBBBDYWxsAAAEAMkGAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AADJBgAAAs0GAM0GDAx4Y20IdjMsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQAVQMBLE11bHRpQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAVQMBLE11bHRpQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAFUDASxNdWx0aUFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWQsARxRdWVyeUlkAAEgcmVzcG9uc2XRBgEgUmVzcG9uc2UAAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AAEccXVlcmllcuUGAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c1UDASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ5KQEBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHNVAwEsTXVsdGlBc3NldHMAARBkZXN0KQEBNE11bHRpTG9jYXRpb24AAQx4Y23FBgEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5kAQMBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0KAEYV2VpZ2h0AAEQY2FsbAUDAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXI1AQEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZTUBAQx1MzIAATBtYXhfY2FwYWNpdHk1AQEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnQ1AQEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcjUBAQx1MzIAARhzZW5kZXI1AQEMdTMyAAEkcmVjaXBpZW50NQEBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBAAtAQFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yBADpBgFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRz7QYBQE11bHRpQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeSkBATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHPtBgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3QpAQE0TXVsdGlMb2NhdGlvbgABDHhjbcUGARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZl7QYBQE11bHRpQXNzZXRGaWx0ZXIAARB3YW50VQMBLE11bHRpQXNzZXRzAAEcbWF4aW1hbCABEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHPtBgFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmUpAQE0TXVsdGlMb2NhdGlvbgABDHhjbcUGARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHPtBgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3QpAQE0TXVsdGlMb2NhdGlvbgABDHhjbcUGARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZv6QYBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRz7QYBQE11bHRpQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc10DAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0GQMBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBADFBgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BADFBgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c1UDASxNdWx0aUFzc2V0cwABGHRpY2tldCkBATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEACwBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWQsARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodCgBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BABVAwEsTXVsdGlBc3NldHMAHAAsRXhwZWN0QXNzZXQEAFUDASxNdWx0aUFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAOUGAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEAN0CAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQA9QIBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWU4ARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb+kGAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleDUBAQx1MzIAARBuYW1lOAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABLGNyYXRlX21ham9yNQEBDHUzMgABPG1pbl9jcmF0ZV9taW5vcjUBAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAOkGAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQAMQEBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3JrPQEBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9uLQEBVEludGVyaW9yTXVsdGlMb2NhdGlvbgABDHhjbcUGARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0XQMBKE11bHRpQXNzZXQAASB1bmxvY2tlcikBATRNdWx0aUxvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXRdAwEoTXVsdGlBc3NldAABGHRhcmdldCkBATRNdWx0aUxvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXRdAwEoTXVsdGlBc3NldAABFG93bmVyKQEBNE11bHRpTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0XQMBKE11bHRpQXNzZXQAARhsb2NrZXIpAQE0TXVsdGlMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhdyABEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EACkBATRNdWx0aUxvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdBkDASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbuUGAVRPcHRpb248TXVsdGlMb2NhdGlvbj4ALwAA0QYMDHhjbQh2MyBSZXNwb25zZQABGBBOdWxsAAAAGEFzc2V0cwQAVQMBLE11bHRpQXNzZXRzAAEAPEV4ZWN1dGlvblJlc3VsdAQA3QIBUE9wdGlvbjwodTMyLCBFcnJvcik+AAIAHFZlcnNpb24EABABOHN1cGVyOjpWZXJzaW9uAAMALFBhbGxldHNJbmZvBADVBgGYQm91bmRlZFZlYzxQYWxsZXRJbmZvLCBNYXhQYWxsZXRzSW5mbz4ABAA4RGlzcGF0Y2hSZXN1bHQEAPUCAThNYXliZUVycm9yQ29kZQAFAADVBgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAdkGBFMAAAQA4QYBGFZlYzxUPgAA2QYMDHhjbQh2MyhQYWxsZXRJbmZvAAAYARRpbmRleDUBAQx1MzIAARBuYW1l3QYBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEsbW9kdWxlX25hbWXdBgGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AARRtYWpvcjUBAQx1MzIAARRtaW5vcjUBAQx1MzIAARRwYXRjaDUBAQx1MzIAAN0GDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAA4QYAAALZBgDlBgQYT3B0aW9uBARUASkBAQgQTm9uZQAAABBTb21lBAApAQAAAQAA6QYMDHhjbQh2M0RRdWVyeVJlc3BvbnNlSW5mbwAADAEsZGVzdGluYXRpb24pAQE0TXVsdGlMb2NhdGlvbgABIHF1ZXJ5X2lkLAEcUXVlcnlJZAABKG1heF93ZWlnaHQoARhXZWlnaHQAAO0GEAx4Y20IdjMobXVsdGlhc3NldEBNdWx0aUFzc2V0RmlsdGVyAAEIIERlZmluaXRlBABVAwEsTXVsdGlBc3NldHMAAAAQV2lsZAQA8QYBOFdpbGRNdWx0aUFzc2V0AAEAAPEGEAx4Y20IdjMobXVsdGlhc3NldDhXaWxkTXVsdGlBc3NldAABEAxBbGwAAAAUQWxsT2YIAQhpZGEDARxBc3NldElkAAEMZnVu9QYBPFdpbGRGdW5naWJpbGl0eQABAChBbGxDb3VudGVkBAA1AQEMdTMyAAIAMEFsbE9mQ291bnRlZAwBCGlkYQMBHEFzc2V0SWQAAQxmdW71BgE8V2lsZEZ1bmdpYmlsaXR5AAEUY291bnQ1AQEMdTMyAAMAAPUGEAx4Y20IdjMobXVsdGlhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAA+QYIDHhjbTBWZXJzaW9uZWRYY20ELFJ1bnRpbWVDYWxsAAEMCFYyBAD9BgFQdjI6OlhjbTxSdW50aW1lQ2FsbD4AAgAIVjMEAA0HAVB2Mzo6WGNtPFJ1bnRpbWVDYWxsPgADAAhWNAQAGQcBUHY0OjpYY208UnVudGltZUNhbGw+AAQAAP0GDAx4Y20IdjIMWGNtBCxSdW50aW1lQ2FsbAAABAABBwF0VmVjPEluc3RydWN0aW9uPFJ1bnRpbWVDYWxsPj4AAAEHAAACBQcABQcMDHhjbQh2MixJbnN0cnVjdGlvbgQsUnVudGltZUNhbGwAAXA0V2l0aGRyYXdBc3NldAQAIQMBLE11bHRpQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAIQMBLE11bHRpQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEACEDASxNdWx0aUFzc2V0cwACADRRdWVyeVJlc3BvbnNlDAEgcXVlcnlfaWQsARxRdWVyeUlkAAEgcmVzcG9uc2WlBgEgUmVzcG9uc2UAAShtYXhfd2VpZ2h0LAEMdTY0AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHMhAwEsTXVsdGlBc3NldHMAASxiZW5lZmljaWFyeTEDATRNdWx0aUxvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzIQMBLE11bHRpQXNzZXRzAAEQZGVzdDEDATRNdWx0aUxvY2F0aW9uAAEMeGNtmQYBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fdHlwZQEDAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdCwBDHU2NAABEGNhbGwJBwFoRG91YmxlRW5jb2RlZDxSdW50aW1lQ2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcjUBAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplNQEBDHUzMgABMG1heF9jYXBhY2l0eTUBAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudDUBAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9yNQEBDHUzMgABGHNlbmRlcjUBAQx1MzIAASRyZWNpcGllbnQ1AQEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EADUDAVRJbnRlcmlvck11bHRpTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IMASBxdWVyeV9pZCwBHFF1ZXJ5SWQAARBkZXN0MQMBNE11bHRpTG9jYXRpb24AAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0LAEMdTY0AAwAMERlcG9zaXRBc3NldAwBGGFzc2V0c7UGAUBNdWx0aUFzc2V0RmlsdGVyAAEobWF4X2Fzc2V0czUBAQx1MzIAASxiZW5lZmljaWFyeTEDATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQQARhhc3NldHO1BgFATXVsdGlBc3NldEZpbHRlcgABKG1heF9hc3NldHM1AQEMdTMyAAEQZGVzdDEDATRNdWx0aUxvY2F0aW9uAAEMeGNtmQYBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAgBEGdpdmW1BgFATXVsdGlBc3NldEZpbHRlcgABHHJlY2VpdmUhAwEsTXVsdGlBc3NldHMADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHO1BgFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmUxAwE0TXVsdGlMb2NhdGlvbgABDHhjbZkGARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHO1BgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3QxAwE0TXVsdGlMb2NhdGlvbgABDHhjbZkGARxYY208KCk+ABEAMFF1ZXJ5SG9sZGluZxABIHF1ZXJ5X2lkLAEcUXVlcnlJZAABEGRlc3QxAwE0TXVsdGlMb2NhdGlvbgABGGFzc2V0c7UGAUBNdWx0aUFzc2V0RmlsdGVyAAFMbWF4X3Jlc3BvbnNlX3dlaWdodCwBDHU2NAASADBCdXlFeGVjdXRpb24IARBmZWVzKQMBKE11bHRpQXNzZXQAATB3ZWlnaHRfbGltaXTBBgEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAP0GAUBYY208UnVudGltZUNhbGw+ABUALFNldEFwcGVuZGl4BAD9BgFAWGNtPFJ1bnRpbWVDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHMhAwEsTXVsdGlBc3NldHMAARh0aWNrZXQxAwE0TXVsdGlMb2NhdGlvbgAYABBUcmFwBAAsAQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkLAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHQsAQx1NjQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAAAkHDAx4Y204ZG91YmxlX2VuY29kZWQ0RG91YmxlRW5jb2RlZAQEVAAABAEcZW5jb2RlZDgBHFZlYzx1OD4AAA0HDAx4Y20IdjMMWGNtBBBDYWxsAAAEABEHAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AAARBwAAAhUHABUHDAx4Y20IdjMsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQAVQMBLE11bHRpQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAVQMBLE11bHRpQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAFUDASxNdWx0aUFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWQsARxRdWVyeUlkAAEgcmVzcG9uc2XRBgEgUmVzcG9uc2UAAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AAEccXVlcmllcuUGAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c1UDASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ5KQEBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHNVAwEsTXVsdGlBc3NldHMAARBkZXN0KQEBNE11bHRpTG9jYXRpb24AAQx4Y23FBgEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5kAQMBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0KAEYV2VpZ2h0AAEQY2FsbAkHAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXI1AQEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZTUBAQx1MzIAATBtYXhfY2FwYWNpdHk1AQEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnQ1AQEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcjUBAQx1MzIAARhzZW5kZXI1AQEMdTMyAAEkcmVjaXBpZW50NQEBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBAAtAQFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yBADpBgFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRz7QYBQE11bHRpQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeSkBATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHPtBgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3QpAQE0TXVsdGlMb2NhdGlvbgABDHhjbcUGARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZl7QYBQE11bHRpQXNzZXRGaWx0ZXIAARB3YW50VQMBLE11bHRpQXNzZXRzAAEcbWF4aW1hbCABEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHPtBgFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmUpAQE0TXVsdGlMb2NhdGlvbgABDHhjbcUGARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHPtBgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3QpAQE0TXVsdGlMb2NhdGlvbgABDHhjbcUGARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZv6QYBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRz7QYBQE11bHRpQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc10DAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0GQMBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBAANBwEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BAANBwEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c1UDASxNdWx0aUFzc2V0cwABGHRpY2tldCkBATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEACwBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWQsARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodCgBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BABVAwEsTXVsdGlBc3NldHMAHAAsRXhwZWN0QXNzZXQEAFUDASxNdWx0aUFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAOUGAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEAN0CAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQA9QIBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWU4ARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb+kGAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleDUBAQx1MzIAARBuYW1lOAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABLGNyYXRlX21ham9yNQEBDHUzMgABPG1pbl9jcmF0ZV9taW5vcjUBAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAOkGAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQAMQEBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3JrPQEBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9uLQEBVEludGVyaW9yTXVsdGlMb2NhdGlvbgABDHhjbcUGARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0XQMBKE11bHRpQXNzZXQAASB1bmxvY2tlcikBATRNdWx0aUxvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXRdAwEoTXVsdGlBc3NldAABGHRhcmdldCkBATRNdWx0aUxvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXRdAwEoTXVsdGlBc3NldAABFG93bmVyKQEBNE11bHRpTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0XQMBKE11bHRpQXNzZXQAARhsb2NrZXIpAQE0TXVsdGlMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhdyABEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EACkBATRNdWx0aUxvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdBkDASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbuUGAVRPcHRpb248TXVsdGlMb2NhdGlvbj4ALwAAGQcMLHN0YWdpbmdfeGNtCHY0DFhjbQQQQ2FsbAAABAAdBwFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAAHQcAAAIhBwAhBwwsc3RhZ2luZ194Y20IdjQsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQAvQIBGEFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAL0CARhBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAvQIBGEFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWQsARxRdWVyeUlkAAEgcmVzcG9uc2XZAgEgUmVzcG9uc2UAAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AAEccXVlcmllcv0CAUBPcHRpb248TG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHO9AgEYQXNzZXRzAAEsYmVuZWZpY2lhcnl9AgEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHO9AgEYQXNzZXRzAAEQZGVzdH0CASBMb2NhdGlvbgABDHhjbbECARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmQBAwEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3QoARhXZWlnaHQAARBjYWxsCQcBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcjUBAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplNQEBDHUzMgABMG1heF9jYXBhY2l0eTUBAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudDUBAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9yNQEBDHUzMgABGHNlbmRlcjUBAQx1MzIAASRyZWNpcGllbnQ1AQEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EAIECAUBJbnRlcmlvckxvY2F0aW9uAAsALFJlcG9ydEVycm9yBAAJAwFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzDQMBLEFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnl9AgEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0cw0DASxBc3NldEZpbHRlcgABEGRlc3R9AgEgTG9jYXRpb24AAQx4Y22xAgEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2ZQ0DASxBc3NldEZpbHRlcgABEHdhbnS9AgEYQXNzZXRzAAEcbWF4aW1hbCABEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHMNAwEsQXNzZXRGaWx0ZXIAARxyZXNlcnZlfQIBIExvY2F0aW9uAAEMeGNtsQIBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0cw0DASxBc3NldEZpbHRlcgABEGRlc3R9AgEgTG9jYXRpb24AAQx4Y22xAgEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mbwkDAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0cw0DASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzxQIBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0GQMBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBAAZBwEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BAAZBwEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c70CARhBc3NldHMAARh0aWNrZXR9AgEgTG9jYXRpb24AGAAQVHJhcAQALAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZCwBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0KAEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAL0CARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEAL0CARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBAD9AgFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQA3QIBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBAD1AgE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvCQMBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4NQEBDHUzMgABEG5hbWU4ARxWZWM8dTg+AAEsbW9kdWxlX25hbWU4ARxWZWM8dTg+AAEsY3JhdGVfbWFqb3I1AQEMdTMyAAE8bWluX2NyYXRlX21pbm9yNQEBDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQACQMBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBACJAgEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmuRAgEkTmV0d29ya0lkAAEsZGVzdGluYXRpb26BAgFASW50ZXJpb3JMb2NhdGlvbgABDHhjbbECARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0xQIBFEFzc2V0AAEgdW5sb2NrZXJ9AgEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldMUCARRBc3NldAABGHRhcmdldH0CASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0xQIBFEFzc2V0AAEUb3duZXJ9AgEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0xQIBFEFzc2V0AAEYbG9ja2VyfQIBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3IAEQYm9vbAArACBTZXRUb3BpYwQABAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAfQIBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdBkDASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbv0CAUBPcHRpb248TG9jYXRpb24+AC8AACUHEFBzdGFnaW5nX3hjbV9leGVjdXRvchh0cmFpdHM4YXNzZXRfdHJhbnNmZXIwVHJhbnNmZXJUeXBlAAEQIFRlbGVwb3J0AAAAMExvY2FsUmVzZXJ2ZQABAEhEZXN0aW5hdGlvblJlc2VydmUAAgA0UmVtb3RlUmVzZXJ2ZQQAbQMBRFZlcnNpb25lZExvY2F0aW9uAAMAACkHCAx4Y21AVmVyc2lvbmVkQXNzZXRJZAABCAhWMwQAYQMBLHYzOjpBc3NldElkAAMACFY0BADJAgEsdjQ6OkFzc2V0SWQABAAALQcMSGN1bXVsdXNfcGFsbGV0X3hjbRhwYWxsZXQQQ2FsbAQEVAABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4xBwxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0EENhbGwEBFQAAQgkcmVhcF9wYWdlCAE4bWVzc2FnZV9vcmlnaW59AwFITWVzc2FnZU9yaWdpbk9mPFQ+AAEocGFnZV9pbmRleBABJFBhZ2VJbmRleAAABD0BUmVtb3ZlIGEgcGFnZSB3aGljaCBoYXMgbm8gbW9yZSBtZXNzYWdlcyByZW1haW5pbmcgdG8gYmUgcHJvY2Vzc2VkIG9yIGlzIHN0YWxlLkhleGVjdXRlX292ZXJ3ZWlnaHQQAThtZXNzYWdlX29yaWdpbn0DAUhNZXNzYWdlT3JpZ2luT2Y8VD4AARBwYWdlEAEkUGFnZUluZGV4AAEUaW5kZXgQARxUOjpTaXplAAEwd2VpZ2h0X2xpbWl0KAEYV2VpZ2h0AAE0eEV4ZWN1dGUgYW4gb3ZlcndlaWdodCBtZXNzYWdlLgBNAVRlbXBvcmFyeSBwcm9jZXNzaW5nIGVycm9ycyB3aWxsIGJlIHByb3BhZ2F0ZWQgd2hlcmVhcyBwZXJtYW5lbnQgZXJyb3JzIGFyZSB0cmVhdGVkVGFzIHN1Y2Nlc3MgY29uZGl0aW9uLgB0LSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYC41AS0gYG1lc3NhZ2Vfb3JpZ2luYDogVGhlIG9yaWdpbiBmcm9tIHdoaWNoIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkIGFycml2ZWQuPQEtIGBwYWdlYDogVGhlIHBhZ2UgaW4gdGhlIHF1ZXVlIGluIHdoaWNoIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkIGlzIHNpdHRpbmcuCQEtIGBpbmRleGA6IFRoZSBpbmRleCBpbnRvIHRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZSB0byBiZSBleGVjdXRlZC5ZAS0gYHdlaWdodF9saW1pdGA6IFRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgYWxsb3dlZCB0byBiZSBjb25zdW1lZCBpbiB0aGUgZXhlY3V0aW9uRCAgb2YgdGhlIG1lc3NhZ2UuAPRCZW5jaG1hcmsgY29tcGxleGl0eSBjb25zaWRlcmF0aW9uczogTyhpbmRleCArIHdlaWdodF9saW1pdCkuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLjUHDCBvcm1sX3hjbRhtb2R1bGUQQ2FsbAQEVAABBERzZW5kX2FzX3NvdmVyZWlnbggBEGRlc3RtAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABHG1lc3NhZ2WVBgFUQm94PFZlcnNpb25lZFhjbTwoKT4+AAAErFNlbmQgYW4gWENNIG1lc3NhZ2UgYXMgcGFyYWNoYWluIHNvdmVyZWlnbi4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuOQcMMG9ybWxfeHRva2Vucxhtb2R1bGUQQ2FsbAQEVAABGCB0cmFuc2ZlchABLGN1cnJlbmN5X2lkEAE0VDo6Q3VycmVuY3lJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAARBkZXN0bQMBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AAURkZXN0X3dlaWdodF9saW1pdBkDASxXZWlnaHRMaW1pdAAAMGxUcmFuc2ZlciBuYXRpdmUgY3VycmVuY2llcy4A/GBkZXN0X3dlaWdodF9saW1pdGAgaXMgdGhlIHdlaWdodCBmb3IgWENNIGV4ZWN1dGlvbiBvbiB0aGUgZGVzdAkBY2hhaW4sIGFuZCBpdCB3b3VsZCBiZSBjaGFyZ2VkIGZyb20gdGhlIHRyYW5zZmVycmVkIGFzc2V0cy4gSWYgc2V0BQFiZWxvdyByZXF1aXJlbWVudHMsIHRoZSBleGVjdXRpb24gbWF5IGZhaWwgYW5kIGFzc2V0cyB3b3VsZG4ndCBiZSRyZWNlaXZlZC4AEQFJdCdzIGEgbm8tb3AgaWYgYW55IGVycm9yIG9uIGxvY2FsIFhDTSBleGVjdXRpb24gb3IgbWVzc2FnZSBzZW5kaW5nLvhOb3RlIHNlbmRpbmcgYXNzZXRzIG91dCBwZXIgc2UgZG9lc24ndCBndWFyYW50ZWUgdGhleSB3b3VsZCBiZREBcmVjZWl2ZWQuIFJlY2VpdmluZyBkZXBlbmRzIG9uIGlmIHRoZSBYQ00gbWVzc2FnZSBjb3VsZCBiZSBkZWxpdmVyZWTcYnkgdGhlIG5ldHdvcmssIGFuZCBpZiB0aGUgcmVjZWl2aW5nIGNoYWluIHdvdWxkIGhhbmRsZUxtZXNzYWdlcyBjb3JyZWN0bHkuTHRyYW5zZmVyX211bHRpYXNzZXQMARRhc3NldD0HAUxCb3g8VmVyc2lvbmVkQXNzZXQ+AAEQZGVzdG0DAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAFEZGVzdF93ZWlnaHRfbGltaXQZAwEsV2VpZ2h0TGltaXQAATBEVHJhbnNmZXIgYEFzc2V0YC4A/GBkZXN0X3dlaWdodF9saW1pdGAgaXMgdGhlIHdlaWdodCBmb3IgWENNIGV4ZWN1dGlvbiBvbiB0aGUgZGVzdAkBY2hhaW4sIGFuZCBpdCB3b3VsZCBiZSBjaGFyZ2VkIGZyb20gdGhlIHRyYW5zZmVycmVkIGFzc2V0cy4gSWYgc2V0BQFiZWxvdyByZXF1aXJlbWVudHMsIHRoZSBleGVjdXRpb24gbWF5IGZhaWwgYW5kIGFzc2V0cyB3b3VsZG4ndCBiZSRyZWNlaXZlZC4AEQFJdCdzIGEgbm8tb3AgaWYgYW55IGVycm9yIG9uIGxvY2FsIFhDTSBleGVjdXRpb24gb3IgbWVzc2FnZSBzZW5kaW5nLvhOb3RlIHNlbmRpbmcgYXNzZXRzIG91dCBwZXIgc2UgZG9lc24ndCBndWFyYW50ZWUgdGhleSB3b3VsZCBiZREBcmVjZWl2ZWQuIFJlY2VpdmluZyBkZXBlbmRzIG9uIGlmIHRoZSBYQ00gbWVzc2FnZSBjb3VsZCBiZSBkZWxpdmVyZWTcYnkgdGhlIG5ldHdvcmssIGFuZCBpZiB0aGUgcmVjZWl2aW5nIGNoYWluIHdvdWxkIGhhbmRsZUxtZXNzYWdlcyBjb3JyZWN0bHkuRHRyYW5zZmVyX3dpdGhfZmVlFAEsY3VycmVuY3lfaWQQATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQABDGZlZRgBKFQ6OkJhbGFuY2UAARBkZXN0bQMBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AAURkZXN0X3dlaWdodF9saW1pdBkDASxXZWlnaHRMaW1pdAACVOxUcmFuc2ZlciBuYXRpdmUgY3VycmVuY2llcyBzcGVjaWZ5aW5nIHRoZSBmZWUgYW5kIGFtb3VudCBhcyRzZXBhcmF0ZS4A/GBkZXN0X3dlaWdodF9saW1pdGAgaXMgdGhlIHdlaWdodCBmb3IgWENNIGV4ZWN1dGlvbiBvbiB0aGUgZGVzdAkBY2hhaW4sIGFuZCBpdCB3b3VsZCBiZSBjaGFyZ2VkIGZyb20gdGhlIHRyYW5zZmVycmVkIGFzc2V0cy4gSWYgc2V0BQFiZWxvdyByZXF1aXJlbWVudHMsIHRoZSBleGVjdXRpb24gbWF5IGZhaWwgYW5kIGFzc2V0cyB3b3VsZG4ndCBiZSRyZWNlaXZlZC4ADQFgZmVlYCBpcyB0aGUgYW1vdW50IHRvIGJlIHNwZW50IHRvIHBheSBmb3IgZXhlY3V0aW9uIGluIGRlc3RpbmF0aW9u+GNoYWluLiBCb3RoIGZlZSBhbmQgYW1vdW50IHdpbGwgYmUgc3VidHJhY3RlZCBmb3JtIHRoZSBjYWxsZXJzIGJhbGFuY2UuAA0BSWYgYGZlZWAgaXMgbm90IGhpZ2ggZW5vdWdoIHRvIGNvdmVyIGZvciB0aGUgZXhlY3V0aW9uIGNvc3RzIGluIHRoZeRkZXN0aW5hdGlvbiBjaGFpbiwgdGhlbiB0aGUgYXNzZXRzIHdpbGwgYmUgdHJhcHBlZCBpbiB0aGVEZGVzdGluYXRpb24gY2hhaW4AEQFJdCdzIGEgbm8tb3AgaWYgYW55IGVycm9yIG9uIGxvY2FsIFhDTSBleGVjdXRpb24gb3IgbWVzc2FnZSBzZW5kaW5nLvhOb3RlIHNlbmRpbmcgYXNzZXRzIG91dCBwZXIgc2UgZG9lc24ndCBndWFyYW50ZWUgdGhleSB3b3VsZCBiZREBcmVjZWl2ZWQuIFJlY2VpdmluZyBkZXBlbmRzIG9uIGlmIHRoZSBYQ00gbWVzc2FnZSBjb3VsZCBiZSBkZWxpdmVyZWTcYnkgdGhlIG5ldHdvcmssIGFuZCBpZiB0aGUgcmVjZWl2aW5nIGNoYWluIHdvdWxkIGhhbmRsZUxtZXNzYWdlcyBjb3JyZWN0bHkucHRyYW5zZmVyX211bHRpYXNzZXRfd2l0aF9mZWUQARRhc3NldD0HAUxCb3g8VmVyc2lvbmVkQXNzZXQ+AAEMZmVlPQcBTEJveDxWZXJzaW9uZWRBc3NldD4AARBkZXN0bQMBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AAURkZXN0X3dlaWdodF9saW1pdBkDASxXZWlnaHRMaW1pdAADVOxUcmFuc2ZlciBgQXNzZXRgIHNwZWNpZnlpbmcgdGhlIGZlZSBhbmQgYW1vdW50IGFzIHNlcGFyYXRlLgD8YGRlc3Rfd2VpZ2h0X2xpbWl0YCBpcyB0aGUgd2VpZ2h0IGZvciBYQ00gZXhlY3V0aW9uIG9uIHRoZSBkZXN0CQFjaGFpbiwgYW5kIGl0IHdvdWxkIGJlIGNoYXJnZWQgZnJvbSB0aGUgdHJhbnNmZXJyZWQgYXNzZXRzLiBJZiBzZXQFAWJlbG93IHJlcXVpcmVtZW50cywgdGhlIGV4ZWN1dGlvbiBtYXkgZmFpbCBhbmQgYXNzZXRzIHdvdWxkbid0IGJlJHJlY2VpdmVkLgDYYGZlZWAgaXMgdGhlIEFzc2V0IHRvIGJlIHNwZW50IHRvIHBheSBmb3IgZXhlY3V0aW9uIGluCQFkZXN0aW5hdGlvbiBjaGFpbi4gQm90aCBmZWUgYW5kIGFtb3VudCB3aWxsIGJlIHN1YnRyYWN0ZWQgZm9ybSB0aGURAWNhbGxlcnMgYmFsYW5jZSBGb3Igbm93IHdlIG9ubHkgYWNjZXB0IGZlZSBhbmQgYXNzZXQgaGF2aW5nIHRoZSBzYW1lOGBMb2NhdGlvbmAgaWQuAA0BSWYgYGZlZWAgaXMgbm90IGhpZ2ggZW5vdWdoIHRvIGNvdmVyIGZvciB0aGUgZXhlY3V0aW9uIGNvc3RzIGluIHRoZeRkZXN0aW5hdGlvbiBjaGFpbiwgdGhlbiB0aGUgYXNzZXRzIHdpbGwgYmUgdHJhcHBlZCBpbiB0aGVEZGVzdGluYXRpb24gY2hhaW4AEQFJdCdzIGEgbm8tb3AgaWYgYW55IGVycm9yIG9uIGxvY2FsIFhDTSBleGVjdXRpb24gb3IgbWVzc2FnZSBzZW5kaW5nLvhOb3RlIHNlbmRpbmcgYXNzZXRzIG91dCBwZXIgc2UgZG9lc24ndCBndWFyYW50ZWUgdGhleSB3b3VsZCBiZREBcmVjZWl2ZWQuIFJlY2VpdmluZyBkZXBlbmRzIG9uIGlmIHRoZSBYQ00gbWVzc2FnZSBjb3VsZCBiZSBkZWxpdmVyZWTcYnkgdGhlIG5ldHdvcmssIGFuZCBpZiB0aGUgcmVjZWl2aW5nIGNoYWluIHdvdWxkIGhhbmRsZUxtZXNzYWdlcyBjb3JyZWN0bHkuYHRyYW5zZmVyX211bHRpY3VycmVuY2llcxABKGN1cnJlbmNpZXNBBwGAVmVjPChUOjpDdXJyZW5jeUlkLCBUOjpCYWxhbmNlKT4AASBmZWVfaXRlbRABDHUzMgABEGRlc3RtAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABRGRlc3Rfd2VpZ2h0X2xpbWl0GQMBLFdlaWdodExpbWl0AAQ8BQFUcmFuc2ZlciBzZXZlcmFsIGN1cnJlbmNpZXMgc3BlY2lmeWluZyB0aGUgaXRlbSB0byBiZSB1c2VkIGFzIGZlZQD8YGRlc3Rfd2VpZ2h0X2xpbWl0YCBpcyB0aGUgd2VpZ2h0IGZvciBYQ00gZXhlY3V0aW9uIG9uIHRoZSBkZXN0CQFjaGFpbiwgYW5kIGl0IHdvdWxkIGJlIGNoYXJnZWQgZnJvbSB0aGUgdHJhbnNmZXJyZWQgYXNzZXRzLiBJZiBzZXQFAWJlbG93IHJlcXVpcmVtZW50cywgdGhlIGV4ZWN1dGlvbiBtYXkgZmFpbCBhbmQgYXNzZXRzIHdvdWxkbid0IGJlJHJlY2VpdmVkLgANAWBmZWVfaXRlbWAgaXMgaW5kZXggb2YgdGhlIGN1cnJlbmNpZXMgdHVwbGUgdGhhdCB3ZSB3YW50IHRvIHVzZSBmb3IccGF5bWVudAARAUl0J3MgYSBuby1vcCBpZiBhbnkgZXJyb3Igb24gbG9jYWwgWENNIGV4ZWN1dGlvbiBvciBtZXNzYWdlIHNlbmRpbmcu+E5vdGUgc2VuZGluZyBhc3NldHMgb3V0IHBlciBzZSBkb2Vzbid0IGd1YXJhbnRlZSB0aGV5IHdvdWxkIGJlEQFyZWNlaXZlZC4gUmVjZWl2aW5nIGRlcGVuZHMgb24gaWYgdGhlIFhDTSBtZXNzYWdlIGNvdWxkIGJlIGRlbGl2ZXJlZNxieSB0aGUgbmV0d29yaywgYW5kIGlmIHRoZSByZWNlaXZpbmcgY2hhaW4gd291bGQgaGFuZGxlTG1lc3NhZ2VzIGNvcnJlY3RseS5QdHJhbnNmZXJfbXVsdGlhc3NldHMQARhhc3NldHMdAwFQQm94PFZlcnNpb25lZEFzc2V0cz4AASBmZWVfaXRlbRABDHUzMgABEGRlc3RtAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABRGRlc3Rfd2VpZ2h0X2xpbWl0GQMBLFdlaWdodExpbWl0AAU8+FRyYW5zZmVyIHNldmVyYWwgYEFzc2V0YCBzcGVjaWZ5aW5nIHRoZSBpdGVtIHRvIGJlIHVzZWQgYXMgZmVlAPxgZGVzdF93ZWlnaHRfbGltaXRgIGlzIHRoZSB3ZWlnaHQgZm9yIFhDTSBleGVjdXRpb24gb24gdGhlIGRlc3QJAWNoYWluLCBhbmQgaXQgd291bGQgYmUgY2hhcmdlZCBmcm9tIHRoZSB0cmFuc2ZlcnJlZCBhc3NldHMuIElmIHNldAUBYmVsb3cgcmVxdWlyZW1lbnRzLCB0aGUgZXhlY3V0aW9uIG1heSBmYWlsIGFuZCBhc3NldHMgd291bGRuJ3QgYmUkcmVjZWl2ZWQuAORgZmVlX2l0ZW1gIGlzIGluZGV4IG9mIHRoZSBBc3NldHMgdGhhdCB3ZSB3YW50IHRvIHVzZSBmb3IccGF5bWVudAARAUl0J3MgYSBuby1vcCBpZiBhbnkgZXJyb3Igb24gbG9jYWwgWENNIGV4ZWN1dGlvbiBvciBtZXNzYWdlIHNlbmRpbmcu+E5vdGUgc2VuZGluZyBhc3NldHMgb3V0IHBlciBzZSBkb2Vzbid0IGd1YXJhbnRlZSB0aGV5IHdvdWxkIGJlEQFyZWNlaXZlZC4gUmVjZWl2aW5nIGRlcGVuZHMgb24gaWYgdGhlIFhDTSBtZXNzYWdlIGNvdWxkIGJlIGRlbGl2ZXJlZNxieSB0aGUgbmV0d29yaywgYW5kIGlmIHRoZSByZWNlaXZpbmcgY2hhaW4gd291bGQgaGFuZGxlTG1lc3NhZ2VzIGNvcnJlY3RseS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuPQcIDHhjbThWZXJzaW9uZWRBc3NldAABDAhWMgQAKQMBOHYyOjpNdWx0aUFzc2V0AAEACFYzBABdAwE4djM6Ok11bHRpQXNzZXQAAwAIVjQEAMUCASR2NDo6QXNzZXQABAAAQQcAAALlBQBFBwxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQQQ2FsbAQEVAABJERzZXRfaW52dWxuZXJhYmxlcwQBDG5ld5kDAURWZWM8VDo6QWNjb3VudElkPgAANDEBU2V0IHRoZSBsaXN0IG9mIGludnVsbmVyYWJsZSAoZml4ZWQpIGNvbGxhdG9ycy4gVGhlc2UgY29sbGF0b3JzIG11c3QgZG8gc29tZdBwcmVwYXJhdGlvbiwgbmFtZWx5IHRvIGhhdmUgcmVnaXN0ZXJlZCBzZXNzaW9uIGtleXMuAFkBVGhlIGNhbGwgd2lsbCByZW1vdmUgYW55IGFjY291bnRzIHRoYXQgaGF2ZSBub3QgcmVnaXN0ZXJlZCBrZXlzIGZyb20gdGhlIHNldC4gVGhhdCBpcyxdAWl0IGlzIG5vbi1hdG9taWM7IHRoZSBjYWxsZXIgYWNjZXB0cyBhbGwgYEFjY291bnRJZGBzIHBhc3NlZCBpbiBgbmV3YCBfaW5kaXZpZHVhbGx5XyBhczEBYWNjZXB0YWJsZSBJbnZ1bG5lcmFibGVzLCBhbmQgaXMgbm90IHByb3Bvc2luZyBhIF9zZXRfIG9mIG5ldyBJbnZ1bG5lcmFibGVzLgBZAVRoaXMgY2FsbCBkb2VzIG5vdCBtYWludGFpbiBtdXR1YWwgZXhjbHVzaXZpdHkgb2YgYEludnVsbmVyYWJsZXNgIGFuZCBgQ2FuZGlkYXRlc2AuIEl0YQFpcyByZWNvbW1lbmRlZCB0byB1c2UgYSBiYXRjaCBvZiBgYWRkX2ludnVsbmVyYWJsZWAgYW5kIGByZW1vdmVfaW52dWxuZXJhYmxlYCBpbnN0ZWFkLiBBUQFgYmF0Y2hfYWxsYCBjYW4gYWxzbyBiZSB1c2VkIHRvIGVuZm9yY2UgYXRvbWljaXR5LiBJZiBhbnkgY2FuZGlkYXRlcyBhcmUgaW5jbHVkZWQgaW5NAWBuZXdgLCB0aGV5IHNob3VsZCBiZSByZW1vdmVkIHdpdGggYHJlbW92ZV9pbnZ1bG5lcmFibGVfY2FuZGlkYXRlYCBhZnRlciBleGVjdXRpb24uAJRNdXN0IGJlIGNhbGxlZCBieSB0aGUgYFVwZGF0ZU9yaWdpbmAuWHNldF9kZXNpcmVkX2NhbmRpZGF0ZXMEAQxtYXgQAQx1MzIAARRVAVNldCB0aGUgaWRlYWwgbnVtYmVyIG9mIG5vbi1pbnZ1bG5lcmFibGUgY29sbGF0b3JzLiBJZiBsb3dlcmluZyB0aGlzIG51bWJlciwgdGhlbiB0aGVhAW51bWJlciBvZiBydW5uaW5nIGNvbGxhdG9ycyBjb3VsZCBiZSBoaWdoZXIgdGhhbiB0aGlzIGZpZ3VyZS4gQXNpZGUgZnJvbSB0aGF0IGVkZ2UgY2FzZSw1AXRoZXJlIHNob3VsZCBiZSBubyBvdGhlciB3YXkgdG8gaGF2ZSBtb3JlIGNhbmRpZGF0ZXMgdGhhbiB0aGUgZGVzaXJlZCBudW1iZXIuANBUaGUgb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgYFVwZGF0ZU9yaWdpbmAuSHNldF9jYW5kaWRhY3lfYm9uZAQBEGJvbmQYATBCYWxhbmNlT2Y8VD4AAhx4U2V0IHRoZSBjYW5kaWRhY3kgYm9uZCBhbW91bnQuAFEBSWYgdGhlIGNhbmRpZGFjeSBib25kIGlzIGluY3JlYXNlZCBieSB0aGlzIGNhbGwsIGFsbCBjdXJyZW50IGNhbmRpZGF0ZXMgd2hpY2ggaGF2ZSBhTQFkZXBvc2l0IGxvd2VyIHRoYW4gdGhlIG5ldyBib25kIHdpbGwgYmUga2lja2VkIGZyb20gdGhlIGxpc3QgYW5kIGdldCB0aGVpciBkZXBvc2l0cxRiYWNrLgDQVGhlIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGBVcGRhdGVPcmlnaW5gLlRyZWdpc3Rlcl9hc19jYW5kaWRhdGUAAxBBAVJlZ2lzdGVyIHRoaXMgYWNjb3VudCBhcyBhIGNvbGxhdG9yIGNhbmRpZGF0ZS4gVGhlIGFjY291bnQgbXVzdCAoYSkgYWxyZWFkeSBoYXZlHQFyZWdpc3RlcmVkIHNlc3Npb24ga2V5cyBhbmQgKGIpIGJlIGFibGUgdG8gcmVzZXJ2ZSB0aGUgYENhbmRpZGFjeUJvbmRgLgDcVGhpcyBjYWxsIGlzIG5vdCBhdmFpbGFibGUgdG8gYEludnVsbmVyYWJsZWAgY29sbGF0b3JzLjBsZWF2ZV9pbnRlbnQABBRVAURlcmVnaXN0ZXIgYG9yaWdpbmAgYXMgYSBjb2xsYXRvciBjYW5kaWRhdGUuIE5vdGUgdGhhdCB0aGUgY29sbGF0b3IgY2FuIG9ubHkgbGVhdmUgb24NAXNlc3Npb24gY2hhbmdlLiBUaGUgYENhbmRpZGFjeUJvbmRgIHdpbGwgYmUgdW5yZXNlcnZlZCBpbW1lZGlhdGVseS4AGQFUaGlzIGNhbGwgd2lsbCBmYWlsIGlmIHRoZSB0b3RhbCBudW1iZXIgb2YgY2FuZGlkYXRlcyB3b3VsZCBkcm9wIGJlbG93XGBNaW5FbGlnaWJsZUNvbGxhdG9yc2AuQGFkZF9pbnZ1bG5lcmFibGUEAQx3aG8AATBUOjpBY2NvdW50SWQABRBFAUFkZCBhIG5ldyBhY2NvdW50IGB3aG9gIHRvIHRoZSBsaXN0IG9mIGBJbnZ1bG5lcmFibGVzYCBjb2xsYXRvcnMuIGB3aG9gIG11c3QgaGF2ZR0BcmVnaXN0ZXJlZCBzZXNzaW9uIGtleXMuIElmIGB3aG9gIGlzIGEgY2FuZGlkYXRlLCB0aGV5IHdpbGwgYmUgcmVtb3ZlZC4A0FRoZSBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBgVXBkYXRlT3JpZ2luYC5McmVtb3ZlX2ludnVsbmVyYWJsZQQBDHdobwABMFQ6OkFjY291bnRJZAAGEGEBUmVtb3ZlIGFuIGFjY291bnQgYHdob2AgZnJvbSB0aGUgbGlzdCBvZiBgSW52dWxuZXJhYmxlc2AgY29sbGF0b3JzLiBgSW52dWxuZXJhYmxlc2AgbXVzdChiZSBzb3J0ZWQuANBUaGUgb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgYFVwZGF0ZU9yaWdpbmAuLHVwZGF0ZV9ib25kBAEsbmV3X2RlcG9zaXQYATBCYWxhbmNlT2Y8VD4ABxxdAVVwZGF0ZSB0aGUgY2FuZGlkYWN5IGJvbmQgb2YgY29sbGF0b3IgY2FuZGlkYXRlIGBvcmlnaW5gIHRvIGEgbmV3IGFtb3VudCBgbmV3X2RlcG9zaXRgLgBBAVNldHRpbmcgYSBgbmV3X2RlcG9zaXRgIHRoYXQgaXMgbG93ZXIgdGhhbiB0aGUgY3VycmVudCBkZXBvc2l0IHdoaWxlIGBvcmlnaW5gIGlz4G9jY3VweWluZyBhIHRvcC1gRGVzaXJlZENhbmRpZGF0ZXNgIHNsb3QgaXMgbm90IGFsbG93ZWQuAFkBVGhpcyBjYWxsIHdpbGwgZmFpbCBpZiBgb3JpZ2luYCBpcyBub3QgYSBjb2xsYXRvciBjYW5kaWRhdGUsIHRoZSB1cGRhdGVkIGJvbmQgaXMgbG93ZXIZAXRoYW4gdGhlIG1pbmltdW0gY2FuZGlkYWN5IGJvbmQsIGFuZC9vciB0aGUgYW1vdW50IGNhbm5vdCBiZSByZXNlcnZlZC5MdGFrZV9jYW5kaWRhdGVfc2xvdAgBHGRlcG9zaXQYATBCYWxhbmNlT2Y8VD4AARh0YXJnZXQAATBUOjpBY2NvdW50SWQACBxNAVRoZSBjYWxsZXIgYG9yaWdpbmAgcmVwbGFjZXMgYSBjYW5kaWRhdGUgYHRhcmdldGAgaW4gdGhlIGNvbGxhdG9yIGNhbmRpZGF0ZSBsaXN0IGJ5VQFyZXNlcnZpbmcgYGRlcG9zaXRgLiBUaGUgYW1vdW50IGBkZXBvc2l0YCByZXNlcnZlZCBieSB0aGUgY2FsbGVyIG11c3QgYmUgZ3JlYXRlciB0aGFu4HRoZSBleGlzdGluZyBib25kIG9mIHRoZSB0YXJnZXQgaXQgaXMgdHJ5aW5nIHRvIHJlcGxhY2UuAFkBVGhpcyBjYWxsIHdpbGwgZmFpbCBpZiB0aGUgY2FsbGVyIGlzIGFscmVhZHkgYSBjb2xsYXRvciBjYW5kaWRhdGUgb3IgaW52dWxuZXJhYmxlLCB0aGVVAWNhbGxlciBkb2VzIG5vdCBoYXZlIHJlZ2lzdGVyZWQgc2Vzc2lvbiBrZXlzLCB0aGUgdGFyZ2V0IGlzIG5vdCBhIGNvbGxhdG9yIGNhbmRpZGF0ZSy8YW5kL29yIHRoZSBgZGVwb3NpdGAgYW1vdW50IGNhbm5vdCBiZSByZXNlcnZlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuSQcMOHBhbGxldF9zZXNzaW9uGHBhbGxldBBDYWxsBARUAAEIIHNldF9rZXlzCAEQa2V5c00HARxUOjpLZXlzAAEUcHJvb2Y4ARxWZWM8dTg+AAAk5FNldHMgdGhlIHNlc3Npb24ga2V5KHMpIG9mIHRoZSBmdW5jdGlvbiBjYWxsZXIgdG8gYGtleXNgLh0BQWxsb3dzIGFuIGFjY291bnQgdG8gc2V0IGl0cyBzZXNzaW9uIGtleSBwcmlvciB0byBiZWNvbWluZyBhIHZhbGlkYXRvci7AVGhpcyBkb2Vzbid0IHRha2UgZWZmZWN0IHVudGlsIHRoZSBuZXh0IHNlc3Npb24uANBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSBzaWduZWQuADQjIyBDb21wbGV4aXR5WQEtIGBPKDEpYC4gQWN0dWFsIGNvc3QgZGVwZW5kcyBvbiB0aGUgbnVtYmVyIG9mIGxlbmd0aCBvZiBgVDo6S2V5czo6a2V5X2lkcygpYCB3aGljaCBpcyAgIGZpeGVkLihwdXJnZV9rZXlzAAEwyFJlbW92ZXMgYW55IHNlc3Npb24ga2V5KHMpIG9mIHRoZSBmdW5jdGlvbiBjYWxsZXIuAMBUaGlzIGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW50aWwgdGhlIG5leHQgc2Vzc2lvbi4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBhY2NvdW50IG11c3QgYmUgZWl0aGVyIGJlXQFjb252ZXJ0aWJsZSB0byBhIHZhbGlkYXRvciBJRCB1c2luZyB0aGUgY2hhaW4ncyB0eXBpY2FsIGFkZHJlc3Npbmcgc3lzdGVtICh0aGlzIHVzdWFsbHlRAW1lYW5zIGJlaW5nIGEgY29udHJvbGxlciBhY2NvdW50KSBvciBkaXJlY3RseSBjb252ZXJ0aWJsZSBpbnRvIGEgdmFsaWRhdG9yIElEICh3aGljaJR1c3VhbGx5IG1lYW5zIGJlaW5nIGEgc3Rhc2ggYWNjb3VudCkuADQjIyBDb21wbGV4aXR5PQEtIGBPKDEpYCBpbiBudW1iZXIgb2Yga2V5IHR5cGVzLiBBY3R1YWwgY29zdCBkZXBlbmRzIG9uIHRoZSBudW1iZXIgb2YgbGVuZ3RoIG9mmCAgYFQ6OktleXM6OmtleV9pZHMoKWAgd2hpY2ggaXMgZml4ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLk0HDDxoeWRyYWR4X3J1bnRpbWUYb3BhcXVlLFNlc3Npb25LZXlzAAAEARBhdXJhUQcBxDxBdXJhIGFzICRjcmF0ZTo6Qm91bmRUb1J1bnRpbWVBcHBQdWJsaWM+OjpQdWJsaWMAAFEHEERzcF9jb25zZW5zdXNfYXVyYRxzcjI1NTE5LGFwcF9zcjI1NTE5GFB1YmxpYwAABAAEATxzcjI1NTE5OjpQdWJsaWMAAFUHDERwYWxsZXRfZW1hX29yYWNsZRhwYWxsZXQQQ2FsbAQEVAABCChhZGRfb3JhY2xlCAEYc291cmNl8QEBGFNvdXJjZQABGGFzc2V0c5EBAUgoQXNzZXRJZCwgQXNzZXRJZCkAAAA0cmVtb3ZlX29yYWNsZQgBGHNvdXJjZfEBARhTb3VyY2UAARhhc3NldHORAQFIKEFzc2V0SWQsIEFzc2V0SWQpAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLlkHCDxoeWRyYWR4X3J1bnRpbWUwT3JpZ2luQ2FsbGVyAAEcGHN5c3RlbQQAXQcBdGZyYW1lX3N5c3RlbTo6T3JpZ2luPFJ1bnRpbWU+AAEAHENvdW5jaWwEAGEHAQEBcGFsbGV0X2NvbGxlY3RpdmU6Ok9yaWdpbjxSdW50aW1lLCBwYWxsZXRfY29sbGVjdGl2ZTo6SW5zdGFuY2UxPgAXAEhUZWNobmljYWxDb21taXR0ZWUEAGUHAQEBcGFsbGV0X2NvbGxlY3RpdmU6Ok9yaWdpbjxSdW50aW1lLCBwYWxsZXRfY29sbGVjdGl2ZTo6SW5zdGFuY2UyPgAZACBFdGhlcmV1bQQAaQcBXHBhbGxldF9ldGhlcmV1bTo6T3JpZ2luAFwALFBvbGthZG90WGNtBABtBwFIcGFsbGV0X3hjbTo6T3JpZ2luAGsAKEN1bXVsdXNYY20EAHEHAWhjdW11bHVzX3BhbGxldF94Y206Ok9yaWdpbgBtABBWb2lkBAB1BwFBAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjoKX19wcml2YXRlOjpWb2lkAAYAAF0HDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoJFJhd09yaWdpbgQkQWNjb3VudElkAQABDBBSb290AAAAGFNpZ25lZAQAAAEkQWNjb3VudElkAAEAEE5vbmUAAgAAYQcIRHBhbGxldF9jb2xsZWN0aXZlJFJhd09yaWdpbggkQWNjb3VudElkAQAESQABDBxNZW1iZXJzCAAQASxNZW1iZXJDb3VudAAAEAEsTWVtYmVyQ291bnQAAAAYTWVtYmVyBAAAASRBY2NvdW50SWQAAQAgX1BoYW50b20AAgAAZQcIRHBhbGxldF9jb2xsZWN0aXZlJFJhd09yaWdpbggkQWNjb3VudElkAQAESQABDBxNZW1iZXJzCAAQASxNZW1iZXJDb3VudAAAEAEsTWVtYmVyQ291bnQAAAAYTWVtYmVyBAAAASRBY2NvdW50SWQAAQAgX1BoYW50b20AAgAAaQcIPHBhbGxldF9ldGhlcmV1bSRSYXdPcmlnaW4AAQRMRXRoZXJldW1UcmFuc2FjdGlvbgQADQIBEEgxNjAAAAAAbQcMKHBhbGxldF94Y20YcGFsbGV0GE9yaWdpbgABCAxYY20EAH0CASBMb2NhdGlvbgAAACBSZXNwb25zZQQAfQIBIExvY2F0aW9uAAEAAHEHDEhjdW11bHVzX3BhbGxldF94Y20YcGFsbGV0GE9yaWdpbgABCBRSZWxheQAAAEBTaWJsaW5nUGFyYWNoYWluBACBAwEYUGFyYUlkAAEAAHUHCBxzcF9jb3JlEFZvaWQAAQAAeQcMOHBhbGxldF91dGlsaXR5GHBhbGxldBRFcnJvcgQEVAABBDBUb29NYW55Q2FsbHMAAARcVG9vIG1hbnkgY2FsbHMgYmF0Y2hlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQufQcIPHBhbGxldF9wcmVpbWFnZUBPbGRSZXF1ZXN0U3RhdHVzCCRBY2NvdW50SWQBABxCYWxhbmNlARgBCCxVbnJlcXVlc3RlZAgBHGRlcG9zaXTEAVAoQWNjb3VudElkLCBCYWxhbmNlKQABDGxlbhABDHUzMgAAACRSZXF1ZXN0ZWQMARxkZXBvc2l0gQcBcE9wdGlvbjwoQWNjb3VudElkLCBCYWxhbmNlKT4AARRjb3VudBABDHUzMgABDGxlbs0BASxPcHRpb248dTMyPgABAACBBwQYT3B0aW9uBARUAcQBCBBOb25lAAAAEFNvbWUEAMQAAAEAAIUHCDxwYWxsZXRfcHJlaW1hZ2U0UmVxdWVzdFN0YXR1cwgkQWNjb3VudElkAQAYVGlja2V0AYkHAQgsVW5yZXF1ZXN0ZWQIARh0aWNrZXSNBwFMKEFjY291bnRJZCwgVGlja2V0KQABDGxlbhABDHUzMgAAACRSZXF1ZXN0ZWQMATBtYXliZV90aWNrZXSRBwFsT3B0aW9uPChBY2NvdW50SWQsIFRpY2tldCk+AAEUY291bnQQAQx1MzIAASRtYXliZV9sZW7NAQEsT3B0aW9uPHUzMj4AAQAAiQcUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucyBmdW5naWJsZURIb2xkQ29uc2lkZXJhdGlvbhAEQQAERgAEUgAERAAABAAYAShGOjpCYWxhbmNlAACNBwAABAgAiQcAkQcEGE9wdGlvbgQEVAGNBwEIEE5vbmUAAAAQU29tZQQAjQcAAAEAAJUHAAAECDQQAJkHDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAAnQcMPHBhbGxldF9wcmVpbWFnZRhwYWxsZXQURXJyb3IEBFQAASAYVG9vQmlnAAAEoFByZWltYWdlIGlzIHRvbyBsYXJnZSB0byBzdG9yZSBvbi1jaGFpbi4wQWxyZWFkeU5vdGVkAAEEpFByZWltYWdlIGhhcyBhbHJlYWR5IGJlZW4gbm90ZWQgb24tY2hhaW4uNE5vdEF1dGhvcml6ZWQAAgTIVGhlIHVzZXIgaXMgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIGFjdGlvbi4gTm90Tm90ZWQAAwT8VGhlIHByZWltYWdlIGNhbm5vdCBiZSByZW1vdmVkIHNpbmNlIGl0IGhhcyBub3QgeWV0IGJlZW4gbm90ZWQuJFJlcXVlc3RlZAAEBAkBQSBwcmVpbWFnZSBtYXkgbm90IGJlIHJlbW92ZWQgd2hlbiB0aGVyZSBhcmUgb3V0c3RhbmRpbmcgcmVxdWVzdHMuME5vdFJlcXVlc3RlZAAFBC0BVGhlIHByZWltYWdlIHJlcXVlc3QgY2Fubm90IGJlIHJlbW92ZWQgc2luY2Ugbm8gb3V0c3RhbmRpbmcgcmVxdWVzdHMgZXhpc3QuHFRvb01hbnkABgRVAU1vcmUgdGhhbiBgTUFYX0hBU0hfVVBHUkFERV9CVUxLX0NPVU5UYCBoYXNoZXMgd2VyZSByZXF1ZXN0ZWQgdG8gYmUgdXBncmFkZWQgYXQgb25jZS4YVG9vRmV3AAcE5FRvbyBmZXcgaGFzaGVzIHdlcmUgcmVxdWVzdGVkIHRvIGJlIHVwZ3JhZGVkIChpLmUuIHplcm8pLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6hBwAABAilB7UHAKUHDDxwYWxsZXRfaWRlbnRpdHkUdHlwZXMwUmVnaXN0cmF0aW9uDBxCYWxhbmNlARg0TWF4SnVkZ2VtZW50cwAwSWRlbnRpdHlJbmZvAYkEAAwBKGp1ZGdlbWVudHOpBwH8Qm91bmRlZFZlYzwoUmVnaXN0cmFySW5kZXgsIEp1ZGdlbWVudDxCYWxhbmNlPiksIE1heEp1ZGdlbWVudHM+AAEcZGVwb3NpdBgBHEJhbGFuY2UAARBpbmZviQQBMElkZW50aXR5SW5mbwAAqQcMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGtBwRTAAAEALEHARhWZWM8VD4AAK0HAAAECBAZBQCxBwAAAq0HALUHBBhPcHRpb24EBFQBpAEIEE5vbmUAAAAQU29tZQQApAAAAQAAuQcAAAQIGL0HAL0HDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBAARTAAAEAJkDARhWZWM8VD4AAMEHDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBxQcEUwAABADNBwEYVmVjPFQ+AADFBwQYT3B0aW9uBARUAckHAQgQTm9uZQAAABBTb21lBADJBwAAAQAAyQcMPHBhbGxldF9pZGVudGl0eRR0eXBlczRSZWdpc3RyYXJJbmZvDBxCYWxhbmNlARgkQWNjb3VudElkAQAcSWRGaWVsZAEwAAwBHGFjY291bnQAASRBY2NvdW50SWQAAQxmZWUYARxCYWxhbmNlAAEYZmllbGRzMAEcSWRGaWVsZAAAzQcAAALFBwDRBww8cGFsbGV0X2lkZW50aXR5FHR5cGVzTEF1dGhvcml0eVByb3BlcnRpZXMEGFN1ZmZpeAHVBwAIARhzdWZmaXjVBwEYU3VmZml4AAEoYWxsb2NhdGlvbhABKEFsbG9jYXRpb24AANUHDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAA2QcAAAQIABAA3QcMPHBhbGxldF9pZGVudGl0eRhwYWxsZXQURXJyb3IEBFQAAWhIVG9vTWFueVN1YkFjY291bnRzAAAEXFRvbyBtYW55IHN1YnMtYWNjb3VudHMuIE5vdEZvdW5kAAEEUEFjY291bnQgaXNuJ3QgZm91bmQuIE5vdE5hbWVkAAIEUEFjY291bnQgaXNuJ3QgbmFtZWQuKEVtcHR5SW5kZXgAAwQwRW1wdHkgaW5kZXguKEZlZUNoYW5nZWQABAQ8RmVlIGlzIGNoYW5nZWQuKE5vSWRlbnRpdHkABQRITm8gaWRlbnRpdHkgZm91bmQuPFN0aWNreUp1ZGdlbWVudAAGBERTdGlja3kganVkZ2VtZW50LjhKdWRnZW1lbnRHaXZlbgAHBEBKdWRnZW1lbnQgZ2l2ZW4uQEludmFsaWRKdWRnZW1lbnQACARISW52YWxpZCBqdWRnZW1lbnQuMEludmFsaWRJbmRleAAJBFRUaGUgaW5kZXggaXMgaW52YWxpZC40SW52YWxpZFRhcmdldAAKBFhUaGUgdGFyZ2V0IGlzIGludmFsaWQuRFRvb01hbnlSZWdpc3RyYXJzAAsE6E1heGltdW0gYW1vdW50IG9mIHJlZ2lzdHJhcnMgcmVhY2hlZC4gQ2Fubm90IGFkZCBhbnkgbW9yZS44QWxyZWFkeUNsYWltZWQADARwQWNjb3VudCBJRCBpcyBhbHJlYWR5IG5hbWVkLhhOb3RTdWIADQRwU2VuZGVyIGlzIG5vdCBhIHN1Yi1hY2NvdW50LiBOb3RPd25lZAAOBIhTdWItYWNjb3VudCBpc24ndCBvd25lZCBieSBzZW5kZXIudEp1ZGdlbWVudEZvckRpZmZlcmVudElkZW50aXR5AA8E0FRoZSBwcm92aWRlZCBqdWRnZW1lbnQgd2FzIGZvciBhIGRpZmZlcmVudCBpZGVudGl0eS5YSnVkZ2VtZW50UGF5bWVudEZhaWxlZAAQBPhFcnJvciB0aGF0IG9jY3VycyB3aGVuIHRoZXJlIGlzIGFuIGlzc3VlIHBheWluZyBmb3IganVkZ2VtZW50LjRJbnZhbGlkU3VmZml4ABEEgFRoZSBwcm92aWRlZCBzdWZmaXggaXMgdG9vIGxvbmcuUE5vdFVzZXJuYW1lQXV0aG9yaXR5ABIE4FRoZSBzZW5kZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGlzc3VlIGEgdXNlcm5hbWUuME5vQWxsb2NhdGlvbgATBMRUaGUgYXV0aG9yaXR5IGNhbm5vdCBhbGxvY2F0ZSBhbnkgbW9yZSB1c2VybmFtZXMuQEludmFsaWRTaWduYXR1cmUAFASoVGhlIHNpZ25hdHVyZSBvbiBhIHVzZXJuYW1lIHdhcyBub3QgdmFsaWQuRFJlcXVpcmVzU2lnbmF0dXJlABUECQFTZXR0aW5nIHRoaXMgdXNlcm5hbWUgcmVxdWlyZXMgYSBzaWduYXR1cmUsIGJ1dCBub25lIHdhcyBwcm92aWRlZC48SW52YWxpZFVzZXJuYW1lABYEsFRoZSB1c2VybmFtZSBkb2VzIG5vdCBtZWV0IHRoZSByZXF1aXJlbWVudHMuNFVzZXJuYW1lVGFrZW4AFwR4VGhlIHVzZXJuYW1lIGlzIGFscmVhZHkgdGFrZW4uKE5vVXNlcm5hbWUAGASYVGhlIHJlcXVlc3RlZCB1c2VybmFtZSBkb2VzIG5vdCBleGlzdC4oTm90RXhwaXJlZAAZBC0BVGhlIHVzZXJuYW1lIGNhbm5vdCBiZSBmb3JjZWZ1bGx5IHJlbW92ZWQgYmVjYXVzZSBpdCBjYW4gc3RpbGwgYmUgYWNjZXB0ZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LuEHDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB5QcEUwAABADpBwEYVmVjPFQ+AADlBwAABAwQMQUAAOkHAAAC5QcA7QcAAAQI8QcYAPEHDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBAARTAAAEAJkDARhWZWM8VD4AAPUHDEBwYWxsZXRfZGVtb2NyYWN5FHR5cGVzOFJlZmVyZW5kdW1JbmZvDCxCbG9ja051bWJlcgEQIFByb3Bvc2FsATEFHEJhbGFuY2UBGAEIHE9uZ29pbmcEAPkHAcBSZWZlcmVuZHVtU3RhdHVzPEJsb2NrTnVtYmVyLCBQcm9wb3NhbCwgQmFsYW5jZT4AAAAgRmluaXNoZWQIASBhcHByb3ZlZCABEGJvb2wAAQxlbmQQASxCbG9ja051bWJlcgABAAD5BwxAcGFsbGV0X2RlbW9jcmFjeRR0eXBlc0BSZWZlcmVuZHVtU3RhdHVzDCxCbG9ja051bWJlcgEQIFByb3Bvc2FsATEFHEJhbGFuY2UBGAAUAQxlbmQQASxCbG9ja051bWJlcgABIHByb3Bvc2FsMQUBIFByb3Bvc2FsAAEkdGhyZXNob2xkrAE0Vm90ZVRocmVzaG9sZAABFGRlbGF5EAEsQmxvY2tOdW1iZXIAARR0YWxsef0HAThUYWxseTxCYWxhbmNlPgAA/QcMQHBhbGxldF9kZW1vY3JhY3kUdHlwZXMUVGFsbHkEHEJhbGFuY2UBGAAMARBheWVzGAEcQmFsYW5jZQABEG5heXMYARxCYWxhbmNlAAEcdHVybm91dBgBHEJhbGFuY2UAAAEIDEBwYWxsZXRfZGVtb2NyYWN5EHZvdGUYVm90aW5nEBxCYWxhbmNlARgkQWNjb3VudElkAQAsQmxvY2tOdW1iZXIBECBNYXhWb3RlcwABCBhEaXJlY3QMARR2b3RlcwUIAfRCb3VuZGVkVmVjPChSZWZlcmVuZHVtSW5kZXgsIEFjY291bnRWb3RlPEJhbGFuY2U+KSwgTWF4Vm90ZXM+AAEsZGVsZWdhdGlvbnMRCAFQRGVsZWdhdGlvbnM8QmFsYW5jZT4AARRwcmlvchUIAXxQcmlvckxvY2s8QmxvY2tOdW1iZXIsIEJhbGFuY2U+AAAAKERlbGVnYXRpbmcUARxiYWxhbmNlGAEcQmFsYW5jZQABGHRhcmdldAABJEFjY291bnRJZAABKGNvbnZpY3Rpb249BQEoQ29udmljdGlvbgABLGRlbGVnYXRpb25zEQgBUERlbGVnYXRpb25zPEJhbGFuY2U+AAEUcHJpb3IVCAF8UHJpb3JMb2NrPEJsb2NrTnVtYmVyLCBCYWxhbmNlPgABAAAFCAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQkIBFMAAAQADQgBGFZlYzxUPgAACQgAAAQIELAADQgAAAIJCAARCAxAcGFsbGV0X2RlbW9jcmFjeRR0eXBlcyxEZWxlZ2F0aW9ucwQcQmFsYW5jZQEYAAgBFHZvdGVzGAEcQmFsYW5jZQABHGNhcGl0YWwYARxCYWxhbmNlAAAVCAxAcGFsbGV0X2RlbW9jcmFjeRB2b3RlJFByaW9yTG9jawgsQmxvY2tOdW1iZXIBEBxCYWxhbmNlARgACAAQASxCbG9ja051bWJlcgAAGAEcQmFsYW5jZQAAGQgAAAQIMQWsAB0IAAAECBDxBwAhCAxAcGFsbGV0X2RlbW9jcmFjeRhwYWxsZXQURXJyb3IEBFQAAWAgVmFsdWVMb3cAAAQ0VmFsdWUgdG9vIGxvdzxQcm9wb3NhbE1pc3NpbmcAAQRcUHJvcG9zYWwgZG9lcyBub3QgZXhpc3Q8QWxyZWFkeUNhbmNlbGVkAAIElENhbm5vdCBjYW5jZWwgdGhlIHNhbWUgcHJvcG9zYWwgdHdpY2VERHVwbGljYXRlUHJvcG9zYWwAAwRUUHJvcG9zYWwgYWxyZWFkeSBtYWRlTFByb3Bvc2FsQmxhY2tsaXN0ZWQABARoUHJvcG9zYWwgc3RpbGwgYmxhY2tsaXN0ZWRETm90U2ltcGxlTWFqb3JpdHkABQSoTmV4dCBleHRlcm5hbCBwcm9wb3NhbCBub3Qgc2ltcGxlIG1ham9yaXR5LEludmFsaWRIYXNoAAYEMEludmFsaWQgaGFzaChOb1Byb3Bvc2FsAAcEUE5vIGV4dGVybmFsIHByb3Bvc2FsNEFscmVhZHlWZXRvZWQACASYSWRlbnRpdHkgbWF5IG5vdCB2ZXRvIGEgcHJvcG9zYWwgdHdpY2VEUmVmZXJlbmR1bUludmFsaWQACQSEVm90ZSBnaXZlbiBmb3IgaW52YWxpZCByZWZlcmVuZHVtLE5vbmVXYWl0aW5nAAoEUE5vIHByb3Bvc2FscyB3YWl0aW5nIE5vdFZvdGVyAAsExFRoZSBnaXZlbiBhY2NvdW50IGRpZCBub3Qgdm90ZSBvbiB0aGUgcmVmZXJlbmR1bS4wTm9QZXJtaXNzaW9uAAwEyFRoZSBhY3RvciBoYXMgbm8gcGVybWlzc2lvbiB0byBjb25kdWN0IHRoZSBhY3Rpb24uREFscmVhZHlEZWxlZ2F0aW5nAA0EiFRoZSBhY2NvdW50IGlzIGFscmVhZHkgZGVsZWdhdGluZy5ESW5zdWZmaWNpZW50RnVuZHMADgT8VG9vIGhpZ2ggYSBiYWxhbmNlIHdhcyBwcm92aWRlZCB0aGF0IHRoZSBhY2NvdW50IGNhbm5vdCBhZmZvcmQuNE5vdERlbGVnYXRpbmcADwSgVGhlIGFjY291bnQgaXMgbm90IGN1cnJlbnRseSBkZWxlZ2F0aW5nLihWb3Rlc0V4aXN0ABAIVQFUaGUgYWNjb3VudCBjdXJyZW50bHkgaGFzIHZvdGVzIGF0dGFjaGVkIHRvIGl0IGFuZCB0aGUgb3BlcmF0aW9uIGNhbm5vdCBzdWNjZWVkIHVudGls6HRoZXNlIGFyZSByZW1vdmVkLCBlaXRoZXIgdGhyb3VnaCBgdW52b3RlYCBvciBgcmVhcF92b3RlYC5ESW5zdGFudE5vdEFsbG93ZWQAEQTYVGhlIGluc3RhbnQgcmVmZXJlbmR1bSBvcmlnaW4gaXMgY3VycmVudGx5IGRpc2FsbG93ZWQuIE5vbnNlbnNlABIElERlbGVnYXRpb24gdG8gb25lc2VsZiBtYWtlcyBubyBzZW5zZS48V3JvbmdVcHBlckJvdW5kABMEUEludmFsaWQgdXBwZXIgYm91bmQuPE1heFZvdGVzUmVhY2hlZAAUBIBNYXhpbXVtIG51bWJlciBvZiB2b3RlcyByZWFjaGVkLhxUb29NYW55ABUEgE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHJlYWNoZWQuPFZvdGluZ1BlcmlvZExvdwAWBFRWb3RpbmcgcGVyaW9kIHRvbyBsb3dAUHJlaW1hZ2VOb3RFeGlzdAAXBHBUaGUgcHJlaW1hZ2UgZG9lcyBub3QgZXhpc3QuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LiUIAAACKQgAKQgIZHBhbGxldF9lbGVjdGlvbnNfcGhyYWdtZW4oU2VhdEhvbGRlcggkQWNjb3VudElkAQAcQmFsYW5jZQEYAAwBDHdobwABJEFjY291bnRJZAABFHN0YWtlGAEcQmFsYW5jZQABHGRlcG9zaXQYARxCYWxhbmNlAAAtCAhkcGFsbGV0X2VsZWN0aW9uc19waHJhZ21lbhRWb3RlcggkQWNjb3VudElkAQAcQmFsYW5jZQEYAAwBFHZvdGVzmQMBOFZlYzxBY2NvdW50SWQ+AAEUc3Rha2UYARxCYWxhbmNlAAEcZGVwb3NpdBgBHEJhbGFuY2UAADEIDGRwYWxsZXRfZWxlY3Rpb25zX3BocmFnbWVuGHBhbGxldBRFcnJvcgQEVAABRDBVbmFibGVUb1ZvdGUAAATAQ2Fubm90IHZvdGUgd2hlbiBubyBjYW5kaWRhdGVzIG9yIG1lbWJlcnMgZXhpc3QuHE5vVm90ZXMAAQSUTXVzdCB2b3RlIGZvciBhdCBsZWFzdCBvbmUgY2FuZGlkYXRlLjBUb29NYW55Vm90ZXMAAgSEQ2Fubm90IHZvdGUgbW9yZSB0aGFuIGNhbmRpZGF0ZXMuUE1heGltdW1Wb3Rlc0V4Y2VlZGVkAAMEmENhbm5vdCB2b3RlIG1vcmUgdGhhbiBtYXhpbXVtIGFsbG93ZWQuKExvd0JhbGFuY2UABATEQ2Fubm90IHZvdGUgd2l0aCBzdGFrZSBsZXNzIHRoYW4gbWluaW11bSBiYWxhbmNlLjxVbmFibGVUb1BheUJvbmQABQR4Vm90ZXIgY2FuIG5vdCBwYXkgdm90aW5nIGJvbmQuLE11c3RCZVZvdGVyAAYEQE11c3QgYmUgYSB2b3Rlci5MRHVwbGljYXRlZENhbmRpZGF0ZQAHBIBEdXBsaWNhdGVkIGNhbmRpZGF0ZSBzdWJtaXNzaW9uLkRUb29NYW55Q2FuZGlkYXRlcwAIBJhUb28gbWFueSBjYW5kaWRhdGVzIGhhdmUgYmVlbiBjcmVhdGVkLjBNZW1iZXJTdWJtaXQACQSITWVtYmVyIGNhbm5vdCByZS1zdWJtaXQgY2FuZGlkYWN5LjhSdW5uZXJVcFN1Ym1pdAAKBIhSdW5uZXIgY2Fubm90IHJlLXN1Ym1pdCBjYW5kaWRhY3kuaEluc3VmZmljaWVudENhbmRpZGF0ZUZ1bmRzAAsElENhbmRpZGF0ZSBkb2VzIG5vdCBoYXZlIGVub3VnaCBmdW5kcy4kTm90TWVtYmVyAAwENE5vdCBhIG1lbWJlci5ISW52YWxpZFdpdG5lc3NEYXRhAA0E4FRoZSBwcm92aWRlZCBjb3VudCBvZiBudW1iZXIgb2YgY2FuZGlkYXRlcyBpcyBpbmNvcnJlY3QuQEludmFsaWRWb3RlQ291bnQADgTMVGhlIHByb3ZpZGVkIGNvdW50IG9mIG51bWJlciBvZiB2b3RlcyBpcyBpbmNvcnJlY3QuREludmFsaWRSZW5vdW5jaW5nAA8E/FRoZSByZW5vdW5jaW5nIG9yaWdpbiBwcmVzZW50ZWQgYSB3cm9uZyBgUmVub3VuY2luZ2AgcGFyYW1ldGVyLkhJbnZhbGlkUmVwbGFjZW1lbnQAEAT8UHJlZGljdGlvbiByZWdhcmRpbmcgcmVwbGFjZW1lbnQgYWZ0ZXIgbWVtYmVyIHJlbW92YWwgaXMgd3JvbmcuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LjUIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBNARTAAAEABECARhWZWM8VD4AADkICERwYWxsZXRfY29sbGVjdGl2ZRRWb3RlcwgkQWNjb3VudElkAQAsQmxvY2tOdW1iZXIBEAAUARRpbmRleBABNFByb3Bvc2FsSW5kZXgAASR0aHJlc2hvbGQQASxNZW1iZXJDb3VudAABEGF5ZXOZAwE4VmVjPEFjY291bnRJZD4AARBuYXlzmQMBOFZlYzxBY2NvdW50SWQ+AAEMZW5kEAEsQmxvY2tOdW1iZXIAAD0IDERwYWxsZXRfY29sbGVjdGl2ZRhwYWxsZXQURXJyb3IIBFQABEkAASwkTm90TWVtYmVyAAAEXEFjY291bnQgaXMgbm90IGEgbWVtYmVyRER1cGxpY2F0ZVByb3Bvc2FsAAEEfER1cGxpY2F0ZSBwcm9wb3NhbHMgbm90IGFsbG93ZWQ8UHJvcG9zYWxNaXNzaW5nAAIETFByb3Bvc2FsIG11c3QgZXhpc3QoV3JvbmdJbmRleAADBEBNaXNtYXRjaGVkIGluZGV4NER1cGxpY2F0ZVZvdGUABARYRHVwbGljYXRlIHZvdGUgaWdub3JlZEhBbHJlYWR5SW5pdGlhbGl6ZWQABQSATWVtYmVycyBhcmUgYWxyZWFkeSBpbml0aWFsaXplZCEgVG9vRWFybHkABgQBAVRoZSBjbG9zZSBjYWxsIHdhcyBtYWRlIHRvbyBlYXJseSwgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIHZvdGluZy5AVG9vTWFueVByb3Bvc2FscwAHBPxUaGVyZSBjYW4gb25seSBiZSBhIG1heGltdW0gb2YgYE1heFByb3Bvc2Fsc2AgYWN0aXZlIHByb3Bvc2Fscy5MV3JvbmdQcm9wb3NhbFdlaWdodAAIBNBUaGUgZ2l2ZW4gd2VpZ2h0IGJvdW5kIGZvciB0aGUgcHJvcG9zYWwgd2FzIHRvbyBsb3cuTFdyb25nUHJvcG9zYWxMZW5ndGgACQTQVGhlIGdpdmVuIGxlbmd0aCBib3VuZCBmb3IgdGhlIHByb3Bvc2FsIHdhcyB0b28gbG93LlRQcmltZUFjY291bnROb3RNZW1iZXIACgR0UHJpbWUgYWNjb3VudCBpcyBub3QgYSBtZW1iZXIEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuQQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAE0BFMAAAQAEQIBGFZlYzxUPgAARQgMRHBhbGxldF9jb2xsZWN0aXZlGHBhbGxldBRFcnJvcggEVAAESQABLCROb3RNZW1iZXIAAARcQWNjb3VudCBpcyBub3QgYSBtZW1iZXJERHVwbGljYXRlUHJvcG9zYWwAAQR8RHVwbGljYXRlIHByb3Bvc2FscyBub3QgYWxsb3dlZDxQcm9wb3NhbE1pc3NpbmcAAgRMUHJvcG9zYWwgbXVzdCBleGlzdChXcm9uZ0luZGV4AAMEQE1pc21hdGNoZWQgaW5kZXg0RHVwbGljYXRlVm90ZQAEBFhEdXBsaWNhdGUgdm90ZSBpZ25vcmVkSEFscmVhZHlJbml0aWFsaXplZAAFBIBNZW1iZXJzIGFyZSBhbHJlYWR5IGluaXRpYWxpemVkISBUb29FYXJseQAGBAEBVGhlIGNsb3NlIGNhbGwgd2FzIG1hZGUgdG9vIGVhcmx5LCBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgdm90aW5nLkBUb29NYW55UHJvcG9zYWxzAAcE/FRoZXJlIGNhbiBvbmx5IGJlIGEgbWF4aW11bSBvZiBgTWF4UHJvcG9zYWxzYCBhY3RpdmUgcHJvcG9zYWxzLkxXcm9uZ1Byb3Bvc2FsV2VpZ2h0AAgE0FRoZSBnaXZlbiB3ZWlnaHQgYm91bmQgZm9yIHRoZSBwcm9wb3NhbCB3YXMgdG9vIGxvdy5MV3JvbmdQcm9wb3NhbExlbmd0aAAJBNBUaGUgZ2l2ZW4gbGVuZ3RoIGJvdW5kIGZvciB0aGUgcHJvcG9zYWwgd2FzIHRvbyBsb3cuVFByaW1lQWNjb3VudE5vdE1lbWJlcgAKBHRQcmltZSBhY2NvdW50IGlzIG5vdCBhIG1lbWJlcgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5JCAgscGFsbGV0X3RpcHMcT3BlblRpcBAkQWNjb3VudElkAQAcQmFsYW5jZQEYLEJsb2NrTnVtYmVyARAQSGFzaAE0ABwBGHJlYXNvbjQBEEhhc2gAAQx3aG8AASRBY2NvdW50SWQAARhmaW5kZXIAASRBY2NvdW50SWQAARxkZXBvc2l0GAEcQmFsYW5jZQABGGNsb3Nlc80BAUxPcHRpb248QmxvY2tOdW1iZXI+AAEQdGlwc8ABZFZlYzwoQWNjb3VudElkLCBCYWxhbmNlKT4AASxmaW5kZXJzX2ZlZSABEGJvb2wAAE0IDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3McUGVyY2VudAAABAAIAQh1OAAAUQgMLHBhbGxldF90aXBzGHBhbGxldBRFcnJvcggEVAAESQABHDBSZWFzb25Ub29CaWcAAASEVGhlIHJlYXNvbiBnaXZlbiBpcyBqdXN0IHRvbyBiaWcuMEFscmVhZHlLbm93bgABBIhUaGUgdGlwIHdhcyBhbHJlYWR5IGZvdW5kL3N0YXJ0ZWQuKFVua25vd25UaXAAAgRgVGhlIHRpcCBoYXNoIGlzIHVua25vd24uUE1heFRpcEFtb3VudEV4Y2VlZGVkAAMEfFRoZSB0aXAgZ2l2ZW4gd2FzIHRvbyBnZW5lcm91cy4kTm90RmluZGVyAAQEHQFUaGUgYWNjb3VudCBhdHRlbXB0aW5nIHRvIHJldHJhY3QgdGhlIHRpcCBpcyBub3QgdGhlIGZpbmRlciBvZiB0aGUgdGlwLiRTdGlsbE9wZW4ABQQpAVRoZSB0aXAgY2Fubm90IGJlIGNsYWltZWQvY2xvc2VkIGJlY2F1c2UgdGhlcmUgYXJlIG5vdCBlbm91Z2ggdGlwcGVycyB5ZXQuJFByZW1hdHVyZQAGBDEBVGhlIHRpcCBjYW5ub3QgYmUgY2xhaW1lZC9jbG9zZWQgYmVjYXVzZSBpdCdzIHN0aWxsIGluIHRoZSBjb3VudGRvd24gcGVyaW9kLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5VCAAABAhZCBgAWQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFdCARTAAAEAGEIARhWZWM8VD4AAF0ICDBwYWxsZXRfcHJveHk8UHJveHlEZWZpbml0aW9uDCRBY2NvdW50SWQBACRQcm94eVR5cGUB2CxCbG9ja051bWJlcgEQAAwBIGRlbGVnYXRlAAEkQWNjb3VudElkAAEocHJveHlfdHlwZdgBJFByb3h5VHlwZQABFGRlbGF5EAEsQmxvY2tOdW1iZXIAAGEIAAACXQgAZQgAAAQIaQgYAGkIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBbQgEUwAABABxCAEYVmVjPFQ+AABtCAgwcGFsbGV0X3Byb3h5MEFubm91bmNlbWVudAwkQWNjb3VudElkAQAQSGFzaAE0LEJsb2NrTnVtYmVyARAADAEQcmVhbAABJEFjY291bnRJZAABJGNhbGxfaGFzaDQBEEhhc2gAARhoZWlnaHQQASxCbG9ja051bWJlcgAAcQgAAAJtCAB1CAwwcGFsbGV0X3Byb3h5GHBhbGxldBRFcnJvcgQEVAABIBxUb29NYW55AAAEIQFUaGVyZSBhcmUgdG9vIG1hbnkgcHJveGllcyByZWdpc3RlcmVkIG9yIHRvbyBtYW55IGFubm91bmNlbWVudHMgcGVuZGluZy4gTm90Rm91bmQAAQR0UHJveHkgcmVnaXN0cmF0aW9uIG5vdCBmb3VuZC4gTm90UHJveHkAAgTMU2VuZGVyIGlzIG5vdCBhIHByb3h5IG9mIHRoZSBhY2NvdW50IHRvIGJlIHByb3hpZWQuLFVucHJveHlhYmxlAAMEIQFBIGNhbGwgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIHByb3h5IHR5cGUncyBmaWx0ZXIgd2FzIGF0dGVtcHRlZC4kRHVwbGljYXRlAAQEbEFjY291bnQgaXMgYWxyZWFkeSBhIHByb3h5LjBOb1Blcm1pc3Npb24ABQQVAUNhbGwgbWF5IG5vdCBiZSBtYWRlIGJ5IHByb3h5IGJlY2F1c2UgaXQgbWF5IGVzY2FsYXRlIGl0cyBwcml2aWxlZ2VzLixVbmFubm91bmNlZAAGBNBBbm5vdW5jZW1lbnQsIGlmIG1hZGUgYXQgYWxsLCB3YXMgbWFkZSB0b28gcmVjZW50bHkuLE5vU2VsZlByb3h5AAcEZENhbm5vdCBhZGQgc2VsZiBhcyBwcm94eS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQueQgAAAQIAAQAfQgIPHBhbGxldF9tdWx0aXNpZyBNdWx0aXNpZxAsQmxvY2tOdW1iZXIBEBxCYWxhbmNlARgkQWNjb3VudElkAQAwTWF4QXBwcm92YWxzAAAQARB3aGVu5AFYVGltZXBvaW50PEJsb2NrTnVtYmVyPgABHGRlcG9zaXQYARxCYWxhbmNlAAEkZGVwb3NpdG9yAAEkQWNjb3VudElkAAEkYXBwcm92YWxzgQgBjEJvdW5kZWRWZWM8QWNjb3VudElkLCBNYXhBcHByb3ZhbHM+AACBCAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQAEUwAABACZAwEYVmVjPFQ+AACFCAw8cGFsbGV0X211bHRpc2lnGHBhbGxldBRFcnJvcgQEVAABOEBNaW5pbXVtVGhyZXNob2xkAAAEfFRocmVzaG9sZCBtdXN0IGJlIDIgb3IgZ3JlYXRlci48QWxyZWFkeUFwcHJvdmVkAAEErENhbGwgaXMgYWxyZWFkeSBhcHByb3ZlZCBieSB0aGlzIHNpZ25hdG9yeS5ETm9BcHByb3ZhbHNOZWVkZWQAAgScQ2FsbCBkb2Vzbid0IG5lZWQgYW55IChtb3JlKSBhcHByb3ZhbHMuRFRvb0Zld1NpZ25hdG9yaWVzAAMEqFRoZXJlIGFyZSB0b28gZmV3IHNpZ25hdG9yaWVzIGluIHRoZSBsaXN0LkhUb29NYW55U2lnbmF0b3JpZXMABASsVGhlcmUgYXJlIHRvbyBtYW55IHNpZ25hdG9yaWVzIGluIHRoZSBsaXN0LlRTaWduYXRvcmllc091dE9mT3JkZXIABQQNAVRoZSBzaWduYXRvcmllcyB3ZXJlIHByb3ZpZGVkIG91dCBvZiBvcmRlcjsgdGhleSBzaG91bGQgYmUgb3JkZXJlZC5MU2VuZGVySW5TaWduYXRvcmllcwAGBA0BVGhlIHNlbmRlciB3YXMgY29udGFpbmVkIGluIHRoZSBvdGhlciBzaWduYXRvcmllczsgaXQgc2hvdWxkbid0IGJlLiBOb3RGb3VuZAAHBNxNdWx0aXNpZyBvcGVyYXRpb24gbm90IGZvdW5kIHdoZW4gYXR0ZW1wdGluZyB0byBjYW5jZWwuIE5vdE93bmVyAAgELQFPbmx5IHRoZSBhY2NvdW50IHRoYXQgb3JpZ2luYWxseSBjcmVhdGVkIHRoZSBtdWx0aXNpZyBpcyBhYmxlIHRvIGNhbmNlbCBpdC4sTm9UaW1lcG9pbnQACQQdAU5vIHRpbWVwb2ludCB3YXMgZ2l2ZW4sIHlldCB0aGUgbXVsdGlzaWcgb3BlcmF0aW9uIGlzIGFscmVhZHkgdW5kZXJ3YXkuOFdyb25nVGltZXBvaW50AAoELQFBIGRpZmZlcmVudCB0aW1lcG9pbnQgd2FzIGdpdmVuIHRvIHRoZSBtdWx0aXNpZyBvcGVyYXRpb24gdGhhdCBpcyB1bmRlcndheS5MVW5leHBlY3RlZFRpbWVwb2ludAALBPRBIHRpbWVwb2ludCB3YXMgZ2l2ZW4sIHlldCBubyBtdWx0aXNpZyBvcGVyYXRpb24gaXMgdW5kZXJ3YXkuPE1heFdlaWdodFRvb0xvdwAMBNBUaGUgbWF4aW11bSB3ZWlnaHQgaW5mb3JtYXRpb24gcHJvdmlkZWQgd2FzIHRvbyBsb3cuNEFscmVhZHlTdG9yZWQADQSgVGhlIGRhdGEgdG8gYmUgc3RvcmVkIGlzIGFscmVhZHkgc3RvcmVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6JCAw4cGFsbGV0X3VuaXF1ZXMUdHlwZXNEQ29sbGVjdGlvbkRldGFpbHMIJEFjY291bnRJZAEAOERlcG9zaXRCYWxhbmNlARgAKAEUb3duZXIAASRBY2NvdW50SWQAARhpc3N1ZXIAASRBY2NvdW50SWQAARRhZG1pbgABJEFjY291bnRJZAABHGZyZWV6ZXIAASRBY2NvdW50SWQAATR0b3RhbF9kZXBvc2l0GAE4RGVwb3NpdEJhbGFuY2UAATBmcmVlX2hvbGRpbmcgARBib29sAAEUaXRlbXMQAQx1MzIAAThpdGVtX21ldGFkYXRhcxABDHUzMgABKGF0dHJpYnV0ZXMQAQx1MzIAASRpc19mcm96ZW4gARBib29sAACNCAAABAwAGBgAkQgMOHBhbGxldF91bmlxdWVzFHR5cGVzLEl0ZW1EZXRhaWxzCCRBY2NvdW50SWQBADhEZXBvc2l0QmFsYW5jZQEYABABFG93bmVyAAEkQWNjb3VudElkAAEgYXBwcm92ZWQBAQFET3B0aW9uPEFjY291bnRJZD4AASRpc19mcm96ZW4gARBib29sAAEcZGVwb3NpdBgBOERlcG9zaXRCYWxhbmNlAACVCAw4cGFsbGV0X3VuaXF1ZXMUdHlwZXNIQ29sbGVjdGlvbk1ldGFkYXRhCDhEZXBvc2l0QmFsYW5jZQEYLFN0cmluZ0xpbWl0AAAMARxkZXBvc2l0GAE4RGVwb3NpdEJhbGFuY2UAARBkYXRh7AFsQm91bmRlZFZlYzx1OCwgU3RyaW5nTGltaXQ+AAEkaXNfZnJvemVuIAEQYm9vbAAAmQgMOHBhbGxldF91bmlxdWVzFHR5cGVzMEl0ZW1NZXRhZGF0YQg4RGVwb3NpdEJhbGFuY2UBGCxTdHJpbmdMaW1pdAAADAEcZGVwb3NpdBgBOERlcG9zaXRCYWxhbmNlAAEQZGF0YewBbEJvdW5kZWRWZWM8dTgsIFN0cmluZ0xpbWl0PgABJGlzX2Zyb3plbiABEGJvb2wAAJ0IAAAEDBj0+AChCAAABAj8GAClCAAABAgYAQEAqQgMOHBhbGxldF91bmlxdWVzGHBhbGxldBRFcnJvcggEVAAESQABSDBOb1Blcm1pc3Npb24AAAToVGhlIHNpZ25pbmcgYWNjb3VudCBoYXMgbm8gcGVybWlzc2lvbiB0byBkbyB0aGUgb3BlcmF0aW9uLkRVbmtub3duQ29sbGVjdGlvbgABBHRUaGUgZ2l2ZW4gaXRlbSBJRCBpcyB1bmtub3duLjRBbHJlYWR5RXhpc3RzAAIEuFRoZSBpdGVtIElEIGhhcyBhbHJlYWR5IGJlZW4gdXNlZCBmb3IgYW4gaXRlbS4oV3JvbmdPd25lcgADBOhUaGUgb3duZXIgdHVybmVkIG91dCB0byBiZSBkaWZmZXJlbnQgdG8gd2hhdCB3YXMgZXhwZWN0ZWQuKEJhZFdpdG5lc3MABARsSW52YWxpZCB3aXRuZXNzIGRhdGEgZ2l2ZW4uFEluVXNlAAUEdFRoZSBpdGVtIElEIGlzIGFscmVhZHkgdGFrZW4uGEZyb3plbgAGBIRUaGUgaXRlbSBvciBjb2xsZWN0aW9uIGlzIGZyb3plbi40V3JvbmdEZWxlZ2F0ZQAHBPRUaGUgZGVsZWdhdGUgdHVybmVkIG91dCB0byBiZSBkaWZmZXJlbnQgdG8gd2hhdCB3YXMgZXhwZWN0ZWQuKE5vRGVsZWdhdGUACAR4VGhlcmUgaXMgbm8gZGVsZWdhdGUgYXBwcm92ZWQuKFVuYXBwcm92ZWQACQTETm8gYXBwcm92YWwgZXhpc3RzIHRoYXQgd291bGQgYWxsb3cgdGhlIHRyYW5zZmVyLihVbmFjY2VwdGVkAAoEJQFUaGUgbmFtZWQgb3duZXIgaGFzIG5vdCBzaWduZWQgb3duZXJzaGlwIG9mIHRoZSBjb2xsZWN0aW9uIGlzIGFjY2VwdGFibGUuGExvY2tlZAALBExUaGUgaXRlbSBpcyBsb2NrZWQuQE1heFN1cHBseVJlYWNoZWQADARsQWxsIGl0ZW1zIGhhdmUgYmVlbiBtaW50ZWQuTE1heFN1cHBseUFscmVhZHlTZXQADQSQVGhlIG1heCBzdXBwbHkgaGFzIGFscmVhZHkgYmVlbiBzZXQuRE1heFN1cHBseVRvb1NtYWxsAA4EQQFUaGUgcHJvdmlkZWQgbWF4IHN1cHBseSBpcyBsZXNzIHRvIHRoZSBhbW91bnQgb2YgaXRlbXMgYSBjb2xsZWN0aW9uIGFscmVhZHkgaGFzLixVbmtub3duSXRlbQAPBHRUaGUgZ2l2ZW4gaXRlbSBJRCBpcyB1bmtub3duLihOb3RGb3JTYWxlABAEVEl0ZW0gaXMgbm90IGZvciBzYWxlLiRCaWRUb29Mb3cAEQRwVGhlIHByb3ZpZGVkIGJpZCBpcyB0b28gbG93LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6tCAxUcGFsbGV0X2Fzc2V0X3JlZ2lzdHJ5FHR5cGVzMEFzc2V0RGV0YWlscwQsU3RyaW5nTGltaXQAABwBEG5hbWUVAQFkT3B0aW9uPE5hbWU8U3RyaW5nTGltaXQ+PgABKGFzc2V0X3R5cGUdAQEkQXNzZXRUeXBlAAFMZXhpc3RlbnRpYWxfZGVwb3NpdBgBHEJhbGFuY2UAARhzeW1ib2wVAQFsT3B0aW9uPFN5bWJvbDxTdHJpbmdMaW1pdD4+AAEgZGVjaW1hbHMhAQEoT3B0aW9uPHU4PgABOHhjbV9yYXRlX2xpbWl09AE8T3B0aW9uPEJhbGFuY2U+AAE0aXNfc3VmZmljaWVudCABEGJvb2wAALEIDFRwYWxsZXRfYXNzZXRfcmVnaXN0cnkYcGFsbGV0FEVycm9yBARUAAE8NE5vSWRBdmFpbGFibGUAAARxAUFzc2V0IElEIGlzIG5vdCBhdmFpbGFibGUuIFRoaXMgb25seSBoYXBwZW5zIHdoZW4gaXQgcmVhY2hlcyB0aGUgTUFYIHZhbHVlIG9mIGdpdmVuIGlkIHR5cGUuNEFzc2V0Tm90Rm91bmQAAQR0SW52YWxpZCBhc3NldCBuYW1lIG9yIHN5bWJvbC4gVG9vU2hvcnQAAgTITGVuZ3RoIG9mIG5hbWUgb3Igc3ltYm9sIGlzIGxlc3MgdGhhbiBtaW4uIGxlbmd0aC40SW52YWxpZFN5bWJvbAADBNBBc3NldCdzIHN5bWJvbCBjYW4ndCBjb250YWluIHdoaXRlc3BhY2UgY2hhcmFjdGVycyAuSEFzc2V0Tm90UmVnaXN0ZXJlZAAEBMRBc3NldCBJRCBpcyBub3QgcmVnaXN0ZXJlZCBpbiB0aGUgYXNzZXQtcmVnaXN0cnkuWEFzc2V0QWxyZWFkeVJlZ2lzdGVyZWQABQRwQXNzZXQgaXMgYWxyZWFkeSByZWdpc3RlcmVkLlRJbnZhbGlkU2hhcmVkQXNzZXRMZW4ABgTsSW5jb3JyZWN0IG51bWJlciBvZiBhc3NldHMgcHJvdmlkZWQgdG8gY3JlYXRlIHNoYXJlZCBhc3NldC5QQ2Fubm90VXBkYXRlTG9jYXRpb24ABwR0Q2Fubm90IHVwZGF0ZSBhc3NldCBsb2NhdGlvbi5ITm90SW5SZXNlcnZlZFJhbmdlAAgErFNlbGVjdGVkIGFzc2V0IGlkIGlzIG91dCBvZiByZXNlcnZlZCByYW5nZS5kTG9jYXRpb25BbHJlYWR5UmVnaXN0ZXJlZAAJBMRMb2NhdGlvbiBhbHJlYWR5IHJlZ2lzdGVyZWQgd2l0aCBkaWZmZXJlbnQgYXNzZXQuJEZvcmJpZGRlbgAKBKBPcmlnaW4gaXMgZm9yYmlkZGVuIHRvIHNldC91cGRhdGUgdmFsdWUuTEluc3VmZmljaWVudEJhbGFuY2UACwRAQmFsYW5jZSB0b28gbG93LmhGb3JiaWRkZW5TdWZmaWNpZW5jeUNoYW5nZQAMBMxTdWZmaWNpZW50IGFzc2V0cyBjYW4ndCBiZSBjaGFuZ2VkIHRvIGluc3VmZmljaWVudC5IQXNzZXRBbHJlYWR5QmFubmVkAA0EYEFzc2V0IGlzIGFscmVhZHkgYmFubmVkLjhBc3NldE5vdEJhbm5lZAAOBFBBc3NldCBpcyBub3QgYmFubmVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC61CAw0cGFsbGV0X2NsYWltcxhwYWxsZXQURXJyb3IEBFQAAQxgSW52YWxpZEV0aGVyZXVtU2lnbmF0dXJlAAAEfEV0aGVyZXVtIHNpZ25hdHVyZSBpcyBub3QgdmFsaWRcTm9DbGFpbU9yQWxyZWFkeUNsYWltZWQAAQRIQ2xhaW0gaXMgbm90IHZhbGlkPEJhbGFuY2VPdmVyZmxvdwACBNxWYWx1ZSByZWFjaGVkIG1heGltdW0gYW5kIGNhbm5vdCBiZSBpbmNyZW1lbnRlZCBmdXJ0aGVyBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LrkICFhwYWxsZXRfZ2VuZXNpc19oaXN0b3J5FENoYWluAAAIATBnZW5lc2lzX2hhc2g0ARBIMjU2AAE8bGFzdF9ibG9ja19oYXNoNAEQSDI1NgAAvQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEABFMAAAQAmQMBGFZlYzxUPgAAwQgMXHBhbGxldF9jb2xsYXRvcl9yZXdhcmRzGHBhbGxldBRFcnJvcgQEVAABAASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7FCAw8cGFsbGV0X29tbmlwb29sFHR5cGVzKEFzc2V0U3RhdGUEHEJhbGFuY2UBGAAUASxodWJfcmVzZXJ2ZRgBHEJhbGFuY2UAARhzaGFyZXMYARxCYWxhbmNlAAE8cHJvdG9jb2xfc2hhcmVzGAEcQmFsYW5jZQABDGNhcBgBEHUxMjgAASB0cmFkYWJsZWUBASxUcmFkYWJpbGl0eQAAyQgMPHBhbGxldF9vbW5pcG9vbBR0eXBlczxTaW1wbGVJbWJhbGFuY2UEHEJhbGFuY2UBGAAIARR2YWx1ZRgBHEJhbGFuY2UAASBuZWdhdGl2ZSABEGJvb2wAAM0IDDxwYWxsZXRfb21uaXBvb2wUdHlwZXMgUG9zaXRpb24IHEJhbGFuY2UBGBxBc3NldElkARAAEAEgYXNzZXRfaWQQARxBc3NldElkAAEYYW1vdW50GAEcQmFsYW5jZQABGHNoYXJlcxgBHEJhbGFuY2UAARRwcmljZakFAUgoQmFsYW5jZSwgQmFsYW5jZSkAANEIDDxwYWxsZXRfb21uaXBvb2wYcGFsbGV0FEVycm9yBARUAAGATEluc3VmZmljaWVudEJhbGFuY2UAAAQ8QmFsYW5jZSB0b28gbG93REFzc2V0QWxyZWFkeUFkZGVkAAEEcEFzc2V0IGlzIGFscmVhZHkgaW4gb21uaXBvb2w0QXNzZXROb3RGb3VuZAACBGBBc3NldCBpcyBub3QgaW4gb21uaXBvb2w4TWlzc2luZ0JhbGFuY2UAAwQZAUZhaWxlZCB0byBhZGQgdG9rZW4gdG8gT21uaXBvb2wgZHVlIHRvIGluc3VmZmljaWVudCBpbml0aWFsIGxpcXVpZGl0eS5gSW52YWxpZEluaXRpYWxBc3NldFByaWNlAAQEcEludmFsaWQgaW5pdGlhbCBhc3NldCBwcmljZS5IQnV5TGltaXROb3RSZWFjaGVkAAUE5FNsaXBwYWdlIHByb3RlY3Rpb24gLSBtaW5pbXVtIGxpbWl0IGhhcyBub3QgYmVlbiByZWFjaGVkLkRTZWxsTGltaXRFeGNlZWRlZAAGBNhTbGlwcGFnZSBwcm90ZWN0aW9uIC0gbWF4aW11bSBsaW1pdCBoYXMgYmVlbiBleGNlZWRlZC5AUG9zaXRpb25Ob3RGb3VuZAAHBHBQb3NpdGlvbiBoYXMgbm90IGJlZW4gZm91bmQuSEluc3VmZmljaWVudFNoYXJlcwAIBHxJbnN1ZmZpY2llbnQgc2hhcmVzIGluIHBvc2l0aW9uKE5vdEFsbG93ZWQACQSIQXNzZXQgaXMgbm90IGFsbG93ZWQgdG8gYmUgdHJhZGVkLiRGb3JiaWRkZW4ACgTEU2lnbmVkIGFjY291bnQgaXMgbm90IG93bmVyIG9mIHBvc2l0aW9uIGluc3RhbmNlLlhBc3NldFdlaWdodENhcEV4Y2VlZGVkAAsEjEFzc2V0IHdlaWdodCBjYXAgaGFzIGJlZW4gZXhjZWVkZWQuSEFzc2V0Tm90UmVnaXN0ZXJlZAAMBKRBc3NldCBpcyBub3QgcmVnaXN0ZXJlZCBpbiBhc3NldCByZWdpc3RyeVRJbnN1ZmZpY2llbnRMaXF1aWRpdHkADQTEUHJvdmlkZWQgbGlxdWlkaXR5IGlzIGJlbG93IG1pbmltdW0gYWxsb3dlZCBsaW1pdGRJbnN1ZmZpY2llbnRUcmFkaW5nQW1vdW50AA4EsFRyYWRlZCBhbW91bnQgaXMgYmVsb3cgbWluaW11bSBhbGxvd2VkIGxpbWl0YFNhbWVBc3NldFRyYWRlTm90QWxsb3dlZAAPBLxTZWxsIG9yIGJ1eSB3aXRoIHNhbWUgYXNzZXQgaWRzIGlzIG5vdCBhbGxvd2VkLkxIdWJBc3NldFVwZGF0ZUVycm9yABAEyExSTkEgdXBkYXRlIGFmdGVyIHRyYWRlIHJlc3VsdHMgaW4gcG9zaXRpdmUgdmFsdWUuRFBvc2l0aXZlSW1iYWxhbmNlABEEkEltYmFsYW5jZSByZXN1bHRzIGluIHBvc2l0aXZlIHZhbHVlLkxJbnZhbGlkU2hhcmVzQW1vdW50ABIEmEFtb3VudCBvZiBzaGFyZXMgcHJvdmlkZWQgY2Fubm90IGJlIDAucEludmFsaWRIdWJBc3NldFRyYWRhYmxlU3RhdGUAEwSUSHViIGFzc2V0IGlzIG9ubHkgYWxsb3dlZCB0byBiZSBzb2xkLlRBc3NldFJlZnVuZE5vdEFsbG93ZWQAFASQQXNzZXQgaXMgbm90IGFsbG93ZWQgdG8gYmUgcmVmdW5kZWQuTE1heE91dFJhdGlvRXhjZWVkZWQAFQS8TWF4IGZyYWN0aW9uIG9mIGFzc2V0IHRvIGJ1eSBoYXMgYmVlbiBleGNlZWRlZC5ITWF4SW5SYXRpb0V4Y2VlZGVkABYEwE1heCBmcmFjdGlvbiBvZiBhc3NldCB0byBzZWxsIGhhcyBiZWVuIGV4Y2VlZGVkLlhQcmljZURpZmZlcmVuY2VUb29IaWdoABcEvE1heCBhbGxvd2VkIHByaWNlIGRpZmZlcmVuY2UgaGFzIGJlZW4gZXhjZWVkZWQuSEludmFsaWRPcmFjbGVQcmljZQAYBKBJbnZhbGlkIG9yYWNsZSBwcmljZSAtIGRpdmlzaW9uIGJ5IHplcm8uUEludmFsaWRXaXRoZHJhd2FsRmVlABkEjEZhaWxlZCB0byBjYWxjdWxhdGUgd2l0aGRyYXdhbCBmZWUuMEZlZU92ZXJkcmFmdAAaBNRNb3JlIHRoYW4gYWxsb3dlZCBhbW91bnQgb2YgZmVlIGhhcyBiZWVuIHRyYW5zZmVycmVkLjxTaGFyZXNSZW1haW5pbmcAGwQ9AVRva2VuIGNhbm5vdCBiZSByZW1vdmVkIGZyb20gT21uaXBvb2wgZHVlIHRvIHNoYXJlcyBzdGlsbCBvd25lZCBieSBvdGhlciB1c2Vycy44QXNzZXROb3RGcm96ZW4AHAQJAVRva2VuIGNhbm5vdCBiZSByZW1vdmVkIGZyb20gT21uaXBvb2wgYmVjYXVzZSBhc3NldCBpcyBub3QgZnJvemVuLjRaZXJvQW1vdW50T3V0AB0EuENhbGN1bGF0ZWQgYW1vdW50IG91dCBmcm9tIHNlbGwgdHJhZGUgaXMgemVyby54RXhpc3RlbnRpYWxEZXBvc2l0Tm90QXZhaWxhYmxlAB4EuEV4aXN0ZW50aWFsIGRlcG9zaXQgb2YgYXNzZXQgaXMgbm90IGF2YWlsYWJsZS40U2xpcHBhZ2VMaW1pdAAfBExTbGlwcGFnZSBwcm90ZWN0aW9uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LtUIAAAECNkI2QgA2QgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AADdCAxgcGFsbGV0X3RyYW5zYWN0aW9uX3BhdXNlGHBhbGxldBRFcnJvcgQEVAABDCxDYW5ub3RQYXVzZQAABDRjYW4gbm90IHBhdXNlQEludmFsaWRDaGFyYWN0ZXIAAQRoaW52YWxpZCBjaGFyYWN0ZXIgZW5jb2RpbmcsTmFtZVRvb0xvbmcAAgSgcGFsbGV0IG5hbWUgb3IgZnVuY3Rpb24gbmFtZSBpcyB0b28gbG9uZwSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7hCAw0cGFsbGV0X2R1c3RlchhwYWxsZXQURXJyb3IEBFQAARhIQWNjb3VudEJsYWNrbGlzdGVkAAAEhEFjY291bnQgaXMgZXhjbHVkZWQgZnJvbSBkdXN0aW5nLlRBY2NvdW50Tm90QmxhY2tsaXN0ZWQAAQTAQWNjb3VudCBpcyBub3QgcHJlc2VudCBpbiB0aGUgbm9uLWR1c3RhYmxlIGxpc3QuLFplcm9CYWxhbmNlAAIEUFRoZSBiYWxhbmNlIGlzIHplcm8uREJhbGFuY2VTdWZmaWNpZW50AAMEvFRoZSBiYWxhbmNlIGlzIHN1ZmZpY2llbnQgdG8ga2VlcCBhY2NvdW50IG9wZW4uRER1c3RBY2NvdW50Tm90U2V0AAQEYER1c3QgYWNjb3VudCBpcyBub3Qgc2V0LlBSZXNlcnZlQWNjb3VudE5vdFNldAAFBGxSZXNlcnZlIGFjY291bnQgaXMgbm90IHNldC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu5QgMXHBhbGxldF9saXF1aWRpdHlfbWluaW5nFHR5cGVzOEdsb2JhbEZhcm1EYXRhCARUAARJAABIAQhpZBABMEdsb2JhbEZhcm1JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAEodXBkYXRlZF9hdBABLFBlcmlvZE9mPFQ+AAE4dG90YWxfc2hhcmVzX3oYARxCYWxhbmNlAAE8YWNjdW11bGF0ZWRfcnB6YQEBJEZpeGVkVTEyOAABPHJld2FyZF9jdXJyZW5jeRABKFQ6OkFzc2V0SWQAATxwZW5kaW5nX3Jld2FyZHMYARxCYWxhbmNlAAFgYWNjdW11bGF0ZWRfcGFpZF9yZXdhcmRzGAEcQmFsYW5jZQABQHlpZWxkX3Blcl9wZXJpb2R9AQEsUGVycXVpbnRpbGwAAWBwbGFubmVkX3lpZWxkaW5nX3BlcmlvZHMQASxQZXJpb2RPZjxUPgABRGJsb2Nrc19wZXJfcGVyaW9kEAFEQmxvY2tOdW1iZXJGb3I8VD4AAUhpbmNlbnRpdml6ZWRfYXNzZXQQAShUOjpBc3NldElkAAFUbWF4X3Jld2FyZF9wZXJfcGVyaW9kGAEcQmFsYW5jZQABLG1pbl9kZXBvc2l0GAEcQmFsYW5jZQABWGxpdmVfeWllbGRfZmFybXNfY291bnQQAQx1MzIAAVx0b3RhbF95aWVsZF9mYXJtc19jb3VudBABDHUzMgABQHByaWNlX2FkanVzdG1lbnRhAQEkRml4ZWRVMTI4AAEUc3RhdGXpCAEkRmFybVN0YXRlAADpCAxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcUdHlwZXMkRmFybVN0YXRlAAEMGEFjdGl2ZQAAABxTdG9wcGVkAAEAKFRlcm1pbmF0ZWQAAgAA7QgAAAQMEBAQAPEIDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxR0eXBlczRZaWVsZEZhcm1EYXRhCARUAARJAAAwAQhpZBABGEZhcm1JZAABKHVwZGF0ZWRfYXQQASxQZXJpb2RPZjxUPgABMHRvdGFsX3NoYXJlcxgBHEJhbGFuY2UAAUx0b3RhbF92YWx1ZWRfc2hhcmVzGAEcQmFsYW5jZQABQGFjY3VtdWxhdGVkX3JwdnNhAQEkRml4ZWRVMTI4AAE8YWNjdW11bGF0ZWRfcnB6YQEBJEZpeGVkVTEyOAABNGxveWFsdHlfY3VydmWBAQFQT3B0aW9uPExveWFsdHlDdXJ2ZT4AAShtdWx0aXBsaWVyYQEBOEZhcm1NdWx0aXBsaWVyAAEUc3RhdGXpCAEkRmFybVN0YXRlAAE0ZW50cmllc19jb3VudDABDHU2NAABSGxlZnRfdG9fZGlzdHJpYnV0ZRgBHEJhbGFuY2UAATR0b3RhbF9zdG9wcGVkEAEsUGVyaW9kT2Y8VD4AAPUIDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxR0eXBlcyxEZXBvc2l0RGF0YQgEVAAESQAADAEYc2hhcmVzGAEcQmFsYW5jZQABLGFtbV9wb29sX2lkEAEwVDo6QW1tUG9vbElkAAFIeWllbGRfZmFybV9lbnRyaWVz+QgB9EJvdW5kZWRWZWM8WWllbGRGYXJtRW50cnk8VCwgST4sIFQ6Ok1heEZhcm1FbnRyaWVzUGVyRGVwb3NpdD4AAPkIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB/QgEUwAABAABCQEYVmVjPFQ+AAD9CAxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcUdHlwZXM4WWllbGRGYXJtRW50cnkIBFQABEkAACABOGdsb2JhbF9mYXJtX2lkEAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZBABLFlpZWxkRmFybUlkAAE0dmFsdWVkX3NoYXJlcxgBHEJhbGFuY2UAAUBhY2N1bXVsYXRlZF9ycHZzYQEBJEZpeGVkVTEyOAABbGFjY3VtdWxhdGVkX2NsYWltZWRfcmV3YXJkcxgBHEJhbGFuY2UAAShlbnRlcmVkX2F0EAEsUGVyaW9kT2Y8VD4AASh1cGRhdGVkX2F0EAEsUGVyaW9kT2Y8VD4AAUxzdG9wcGVkX2F0X2NyZWF0aW9uEAEsUGVyaW9kT2Y8VD4AAAEJAAAC/QgABQkMXHBhbGxldF9saXF1aWRpdHlfbWluaW5nGHBhbGxldBRFcnJvcggEVAAESQABdEhHbG9iYWxGYXJtTm90Rm91bmQAAARsR2xvYmFsIGZhcm0gZG9lcyBub3QgZXhpc3QuRFlpZWxkRmFybU5vdEZvdW5kAAEEaFlpZWxkIGZhcm0gZG9lcyBub3QgZXhpc3QuTERvdWJsZUNsYWltSW5QZXJpb2QAAgTITXVsdGlwbGUgY2xhaW1zIGluIHRoZSBzYW1lIHBlcmlvZCBpcyBub3QgYWxsb3dlZC5cTGlxdWlkaXR5TWluaW5nQ2FuY2VsZWQAAwR0TGlxdWlkaXR5IG1pbmluZyBpcyBjYW5jZWxlZC5cTGlxdWlkaXR5TWluaW5nSXNBY3RpdmUABASETGlxdWlkaXR5IG1pbmluZyBpcyBub3QgY2FuY2VsZWQubExpcXVpZGl0eU1pbmluZ0lzTm90U3RvcHBlZAAFBFUBTGlxdWlkaXR5IG1pbmluZyBpcyBpbiBgYWN0aXZlYCBvciBgdGVybWluYXRlZGAgc3RhdGUgYW5kIGFjdGlvbiBjYW5ub3QgYmUgY29tcGxldGVkLlBJbnZhbGlkRGVwb3NpdEFtb3VudAAGBHhMUCBzaGFyZXMgYW1vdW50IGlzIG5vdCB2YWxpZC4kRm9yYmlkZGVuAAcEpEFjY291bnQgaXMgbm90IGFsbG93ZWQgdG8gcGVyZm9ybSBhY3Rpb24uREludmFsaWRNdWx0aXBsaWVyAAgEhFlpZWxkIGZhcm0gbXVsdGlwbGllciBjYW4ndCBiZSAwLlhZaWVsZEZhcm1BbHJlYWR5RXhpc3RzAAkECQFZaWVsZCBmYXJtIHdpdGggZ2l2ZW4gYGFtbV9wb29sX2lkYCBhbHJlYWR5IGV4aXN0cyBpbiBnbG9iYWwgZmFybS54SW52YWxpZEluaXRpYWxSZXdhcmRQZXJjZW50YWdlAAoEPQFMb3lhbHR5IGN1cnZlJ3MgaW5pdGlhbCByZXdhcmQgcGVyY2VudGFnZSBpcyBub3QgdmFsaWQuIFZhbGlkIHJhbmdlIGlzOiBbMCwgMSkuUEdsb2JhbEZhcm1Jc05vdEVtcHR5AAsEtE9uZSBvciBtb3JlIHlpZWxkIGZhcm1zIGV4aXN0IGluIGdsb2JhbCBmYXJtLmBNaXNzaW5nSW5jZW50aXZpemVkQXNzZXQADAT4RmFybSdzIGBpbmNlbnRpdml6ZWRfYXNzZXRgIGlzIG1pc3NpbmcgaW4gcHJvdmlkZWQgYXNzZXQgcGFpci6ESW5zdWZmaWNpZW50UmV3YXJkQ3VycmVuY3lCYWxhbmNlAA0EqFJld2FyZCBjdXJyZW5jeSBiYWxhbmNlIGlzIG5vdCBzdWZmaWNpZW50LlhJbnZhbGlkQmxvY2tzUGVyUGVyaW9kAA4EdEJsb2NrcyBwZXIgcGVyaW9kIGNhbid0IGJlIDAuVEludmFsaWRZaWVsZFBlclBlcmlvZAAPBHBZaWVsZCBwZXIgcGVyaW9kIGNhbid0IGJlIDAuTEludmFsaWRUb3RhbFJld2FyZHMAEATEVG90YWwgcmV3YXJkcyBpcyBsZXNzIHRoYW4gYE1pblRvdGFsRmFybVJld2FyZHNgLnRJbnZhbGlkUGxhbm5lZFlpZWxkaW5nUGVyaW9kcwARBAkBUGxhbm5lZCB5aWVsZGluZyBwZXJpb2RzIGlzIGxlc3MgdGhhbiBgTWluUGxhbm5lZFlpZWxkaW5nUGVyaW9kc2AuUE1heEVudHJpZXNQZXJEZXBvc2l0ABIEsE1heGltdW0gbnVtYmVyIG9mIGxvY2tzIHJlYWNoZWQgZm9yIGRlcG9zaXQuKERvdWJsZUxvY2sAEwTgVHJ5aW5nIHRvIGxvY2sgTFAgc2hhcmVzIGludG8gYWxyZWFkeSBsb2NrZWQgeWllbGQgZmFybS5YWWllbGRGYXJtRW50cnlOb3RGb3VuZAAUBMRZaWVsZCBmYXJtIGVudHJ5IGRvZXNuJ3QgZXhpc3QgZm9yIGdpdmVuIGRlcG9zaXQuQEdsb2JhbEZhcm1Jc0Z1bGwAFQhJAU1heCBudW1iZXIgb2YgeWllbGQgZmFybXMgaW4gZ2xvYmFsIGZhcm0gd2FzIHJlYWNoZWQuIEdsb2JhbCBmYXJtIGNhbid0IGFjY2VwdCBuZXf4eWllbGQgZmFybXMgdW50aWwgc29tZSB5aWVsZCBmYXJtIGlzIG5vdCByZW1vdmVkIGZyb20gc3RvcmFnZS5ESW52YWxpZE1pbkRlcG9zaXQAFgS0SW52YWxpZCBtaW4uIGRlcG9zaXQgd2FzIHNldCBmb3IgZ2xvYmFsIGZhcm0uWEludmFsaWRQcmljZUFkanVzdG1lbnQAFwScUHJpY2UgYWRqdXN0bWVudCBtdWx0aXBsaWVyIGNhbid0IGJlIDAuREVycm9yR2V0QWNjb3VudElkABgEgEFjY291bnQgY3JlYXRpb24gZnJvbSBpZCBmYWlsZWQuVEluY29ycmVjdFZhbHVlZFNoYXJlcwAZBCUBVmFsdWUgb2YgZGVwb3NpdGVkIHNoYXJlcyBhbW91bnQgaW4gcmV3YXJkIGN1cnJlbmN5IGlzIGJlbGxvdyBtaW4uIGxpbWl0LmxSZXdhcmRDdXJyZW5jeU5vdFJlZ2lzdGVyZWQAGgTYYHJld2FyZF9jdXJyZW5jeWAgaXMgbm90IHJlZ2lzdGVyZWQgaW4gYXNzZXQgcmVnaXN0cnkueEluY2VudGl2aXplZEFzc2V0Tm90UmVnaXN0ZXJlZAAbBORgaW5jZW50aXZpemVkX2Fzc2V0YCBpcyBub3QgcmVnaXN0ZXJlZCBpbiBhc3NldCByZWdpc3RyeS5ESW5jb25zaXN0ZW50U3RhdGUEAAkJAVhJbmNvbnNpc3RlbnRTdGF0ZUVycm9yABwIZQFBY3Rpb24gY2Fubm90IGJlIGNvbXBsZXRlZCBiZWNhdXNlIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkLiBUaGlzIHNob3VsZCBiZSByZXBvcnRlZGB0byBwcm90b2NvbCBtYWludGFpbmVycy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuCQkMXHBhbGxldF9saXF1aWRpdHlfbWluaW5nGHBhbGxldFhJbmNvbnNpc3RlbnRTdGF0ZUVycm9yAAFERFlpZWxkRmFybU5vdEZvdW5kAAAASEdsb2JhbEZhcm1Ob3RGb3VuZAABAFBMaXF1aWRpdHlJc05vdEFjdGl2ZQACAFRHbG9iYWxGYXJtSXNOb3RBY3RpdmUAAwA8RGVwb3NpdE5vdEZvdW5kAAQANEludmFsaWRQZXJpb2QABQBsTm90RW5vdWdoUmV3YXJkc0luWWllbGRGYXJtAAYAZEludmFsaWRMaXZlWWllbEZhcm1zQ291bnQABwBsSW52YWxpZFRvdGFsWWllbGRGYXJtc0NvdW50AAgAcEludmFsaWRZaWVsZEZhcm1FbnRyaWVzQ291bnQACQBISW52YWxpZFRvdGFsU2hhcmVzAAoATEludmFsaWRWYWx1ZWRTaGFyZXMACwBMSW52YWxpZFRvdGFsU2hhcmVzWgAMAHRJbnZhbGlkUGFpZEFjY3VtdWxhdGVkUmV3YXJkcwANADRJbnZhbGlkRmFybUlkAA4AYEludmFsaWRMb3lhbHR5TXVsdGlwbGllcgAPAHBOb0V4aXN0ZW50aWFsRGVwb3NpdEZvckFzc2V0ABAAAA0JDDhoeWRyYWR4X3RyYWl0cxhvcmFjbGUwT3JhY2xlUGVyaW9kAAEYJExhc3RCbG9jawAAABRTaG9ydAABAChUZW5NaW51dGVzAAIAEEhvdXIAAwAMRGF5AAQAEFdlZWsABQAAEQkMgHBhbGxldF9vbW5pcG9vbF9saXF1aWRpdHlfbWluaW5nGHBhbGxldBRFcnJvcgQEVAABGDRBc3NldE5vdEZvdW5kAAAEdEFzc2V0IGlzIG5vdCBpbiB0aGUgb21uaXBvb2wuJEZvcmJpZGRlbgABBKxTaWduZWQgYWNjb3VudCBpcyBub3Qgb3duZXIgb2YgdGhlIGRlcG9zaXQuSFplcm9DbGFpbWVkUmV3YXJkcwACBFxSZXdhcmRzIHRvIGNsYWltIGFyZSAwLkRJbmNvbnNpc3RlbnRTdGF0ZQQAFQkBWEluY29uc2lzdGVudFN0YXRlRXJyb3IAAwhlAUFjdGlvbiBjYW5ub3QgYmUgY29tcGxldGVkIGJlY2F1c2UgdW5leHBlY3RlZCBlcnJvciBoYXMgb2NjdXJyZWQuIFRoaXMgc2hvdWxkIGJlIHJlcG9ydGVkYHRvIHByb3RvY29sIG1haW50YWluZXJzLkhPcmFjbGVOb3RBdmFpbGFibGUABAS8T3JhY2xlIGNvdWxkIG5vdCBiZSBmb3VuZCBmb3IgcmVxdWVzdGVkIGFzc2V0cy5sUHJpY2VBZGp1c3RtZW50Tm90QXZhaWxhYmxlAAUEMQFPcmFjbGUgcHJvdmlkaW5nIGBwcmljZV9hZGp1c3RtZW50YCBjb3VsZCBub3QgYmUgZm91bmQgZm9yIHJlcXVlc3RlZCBhc3NldHMuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LhUJDIBwYWxsZXRfb21uaXBvb2xfbGlxdWlkaXR5X21pbmluZxhwYWxsZXRYSW5jb25zaXN0ZW50U3RhdGVFcnJvcgABCERNaXNzaW5nTHBQb3NpdGlvbgAAAExEZXBvc2l0RGF0YU5vdEZvdW5kAAEAABkJCChwYWxsZXRfb3RjFE9yZGVyCCRBY2NvdW50SWQBABxBc3NldElkARAAGAEUb3duZXIAASRBY2NvdW50SWQAASBhc3NldF9pbhABHEFzc2V0SWQAASRhc3NldF9vdXQQARxBc3NldElkAAEkYW1vdW50X2luGAEcQmFsYW5jZQABKGFtb3VudF9vdXQYARxCYWxhbmNlAAFIcGFydGlhbGx5X2ZpbGxhYmxlIAEQYm9vbAAAHQkMKHBhbGxldF9vdGMYcGFsbGV0FEVycm9yBARUAAEgSEFzc2V0Tm90UmVnaXN0ZXJlZAAABIBBc3NldCBkb2VzIG5vdCBleGlzdCBpbiByZWdpc3RyeTRPcmRlck5vdEZvdW5kAAEEVE9yZGVyIGNhbm5vdCBiZSBmb3VuZERPcmRlcklkT3V0T2ZCb3VuZAACBIhTaXplIG9mIG9yZGVyIElEIGV4Y2VlZHMgdGhlIGJvdW5kZE9yZGVyTm90UGFydGlhbGx5RmlsbGFibGUAAwT4Q2Fubm90IHBhcnRpYWxseSBmaWxsIGFuIG9yZGVyIHdoaWNoIGlzIG5vdCBwYXJ0aWFsbHkgZmlsbGFibGVMT3JkZXJBbW91bnRUb29TbWFsbAAEDGEBT3JkZXIgYW1vdW50X2luIGFuZCBhbW91bnRfb3V0IG11c3QgYXQgYWxsIHRpbWVzIGJlIGdyZWF0ZXIgdGhhbiB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdPRmb3IgdGhlIGFzc2V0IG11bHRpcGxpZWQgYnkgdGhlIEV4aXN0ZW50aWFsRGVwb3NpdE11bHRpcGxpZXIu8EEgZmlsbCBvcmRlciBtYXkgbm90IGxlYXZlIGJlaGluZCBhbW91bnRzIHNtYWxsZXIgdGhhbiB0aGlzLiRNYXRoRXJyb3IABQRwRXJyb3Igd2l0aCBtYXRoIGNhbGN1bGF0aW9ucyRGb3JiaWRkZW4ABgToVGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gY29tcGxldGUgdGhlIGFjdGlvbmhJbnN1ZmZpY2llbnRSZXNlcnZlZEFtb3VudAAHBHxSZXNlcnZlZCBhbW91bnQgbm90IHN1ZmZpY2llbnQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LiEJCFhwYWxsZXRfY2lyY3VpdF9icmVha2VyQFRyYWRlVm9sdW1lTGltaXQEBFQAAAwBJHZvbHVtZV9pbhgBKFQ6OkJhbGFuY2UAASh2b2x1bWVfb3V0GAEoVDo6QmFsYW5jZQABFGxpbWl0GAEoVDo6QmFsYW5jZQAAJQkIWHBhbGxldF9jaXJjdWl0X2JyZWFrZXI4TGlxdWlkaXR5TGltaXQEBFQAAAgBJGxpcXVpZGl0eRgBKFQ6OkJhbGFuY2UAARRsaW1pdBgBKFQ6OkJhbGFuY2UAACkJDFhwYWxsZXRfY2lyY3VpdF9icmVha2VyGHBhbGxldBRFcnJvcgQEVAABGERJbnZhbGlkTGltaXRWYWx1ZQAABMhJbnZhbGlkIHZhbHVlIGZvciBhIGxpbWl0LiBMaW1pdCBtdXN0IGJlIG5vbi16ZXJvLnxMaXF1aWRpdHlMaW1pdE5vdFN0b3JlZEZvckFzc2V0AAEEvEFsbG93ZWQgbGlxdWlkaXR5IGxpbWl0IGlzIG5vdCBzdG9yZWQgZm9yIGFzc2V0YFRva2VuT3V0Zmxvd0xpbWl0UmVhY2hlZAACBLhUb2tlbiB0cmFkZSBvdXRmbG93IHBlciBibG9jayBoYXMgYmVlbiByZWFjaGVkXFRva2VuSW5mbHV4TGltaXRSZWFjaGVkAAMEtFRva2VuIHRyYWRlIGluZmx1eCBwZXIgYmxvY2sgaGFzIGJlZW4gcmVhY2hlZIBNYXhMaXF1aWRpdHlMaW1pdFBlckJsb2NrUmVhY2hlZAAEBORNYXhpbXVtIHBvb2wncyBsaXF1aWRpdHkgbGltaXQgcGVyIGJsb2NrIGhhcyBiZWVuIHJlYWNoZWQoTm90QWxsb3dlZAAFBJBBc3NldCBpcyBub3QgYWxsb3dlZCB0byBoYXZlIGEgbGltaXQEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuLQkMVHBhbGxldF9yb3V0ZV9leGVjdXRvchR0eXBlcxhTa2lwRWQAAQwQTG9jawAAADRMb2NrQW5kVW5sb2NrAAEAGFVubG9jawACAAAxCQxUcGFsbGV0X3JvdXRlX2V4ZWN1dG9yGHBhbGxldBRFcnJvcgQEVAABKExUcmFkaW5nTGltaXRSZWFjaGVkAAAEiFRoZSB0cmFkaW5nIGxpbWl0IGhhcyBiZWVuIHJlYWNoZWRETWF4VHJhZGVzRXhjZWVkZWQAAQS0VGhlIHRoZSBtYXggbnVtYmVyIG9mIHRyYWRlcyBsaW1pdCBpcyByZWFjaGVkQFBvb2xOb3RTdXBwb3J0ZWQAAgTIVGhlIEFNTSBwb29sIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGV4ZWN1dGluZyB0cmFkZXNMSW5zdWZmaWNpZW50QmFsYW5jZQADBNBUaGUgdXNlciBoYXMgbm90IGVub3VnaCBiYWxhbmNlIHRvIGV4ZWN1dGUgdGhlIHRyYWRlWFJvdXRlQ2FsY3VsYXRpb25GYWlsZWQABAQNAVRoZSBjYWxjdWxhdGlvbiBvZiByb3V0ZSB0cmFkZSBhbW91bnRzIGZhaWxlZCBpbiB0aGUgdW5kZXJseWluZyBBTU0wSW52YWxpZFJvdXRlAAUEUFRoZSByb3V0ZSBpcyBpbnZhbGlkaFJvdXRlVXBkYXRlSXNOb3RTdWNjZXNzZnVsAAYEjFRoZSByb3V0ZSB1cGRhdGUgd2FzIG5vdCBzdWNjZXNzZnVsQFJvdXRlSGFzTm9PcmFjbGUABwS0Um91dGUgY29udGFpbnMgYXNzZXRzIHRoYXQgaGFzIG5vIG9yYWNsZSBkYXRhVEludmFsaWRSb3V0ZUV4ZWN1dGlvbgAIBMBUaGUgcm91dGUgZXhlY3V0aW9uIGZhaWxlZCBpbiB0aGUgdW5kZXJseWluZyBBTU0oTm90QWxsb3dlZAAJBIxUcmFkaW5nIHNhbWUgYXNzZXRzIGlzIG5vdCBhbGxvd2VkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC41CQxMcGFsbGV0X2R5bmFtaWNfZmVlcxR0eXBlcyBGZWVFbnRyeQgMRmVlAWkBFEJsb2NrARAADAEkYXNzZXRfZmVlaQEBDEZlZQABMHByb3RvY29sX2ZlZWkBAQxGZWUAASR0aW1lc3RhbXAQARRCbG9jawAAOQkMTHBhbGxldF9keW5hbWljX2ZlZXMUdHlwZXMkRmVlUGFyYW1zBAxGZWUBaQEAEAEcbWluX2ZlZWkBAQxGZWUAARxtYXhfZmVlaQEBDEZlZQABFGRlY2F5YQEBJEZpeGVkVTEyOAABNGFtcGxpZmljYXRpb25hAQEkRml4ZWRVMTI4AAA9CQxMcGFsbGV0X2R5bmFtaWNfZmVlcxhwYWxsZXQURXJyb3IEBFQAAQAEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuQQkMOHBhbGxldF9zdGFraW5nFHR5cGVzLFN0YWtpbmdEYXRhAAAMASx0b3RhbF9zdGFrZRgBHEJhbGFuY2UAAXBhY2N1bXVsYXRlZF9yZXdhcmRfcGVyX3N0YWtlYQEBJEZpeGVkVTEyOAABUHBvdF9yZXNlcnZlZF9iYWxhbmNlGAEcQmFsYW5jZQAARQkMOHBhbGxldF9zdGFraW5nFHR5cGVzIFBvc2l0aW9uBCxCbG9ja051bWJlcgEQABwBFHN0YWtlGAEcQmFsYW5jZQABNGFjdGlvbl9wb2ludHMYARRQb2ludAABQHJld2FyZF9wZXJfc3Rha2VhAQEkRml4ZWRVMTI4AAEoY3JlYXRlZF9hdBABLEJsb2NrTnVtYmVyAAFgYWNjdW11bGF0ZWRfc2xhc2hfcG9pbnRzGAEUUG9pbnQAAWhhY2N1bXVsYXRlZF91bnBhaWRfcmV3YXJkcxgBHEJhbGFuY2UAAWhhY2N1bXVsYXRlZF9sb2NrZWRfcmV3YXJkcxgBHEJhbGFuY2UAAEkJDDhwYWxsZXRfc3Rha2luZxR0eXBlcxhWb3RpbmcEIE1heFZvdGVzAAAEARR2b3Rlc00JAbRCb3VuZGVkVmVjPChSZWZlcmVuZHVtSW5kZXgsIFZvdGUpLCBNYXhWb3Rlcz4AAE0JDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBUQkEUwAABABdCQEYVmVjPFQ+AABRCQAABAgQVQkAVQkMOHBhbGxldF9zdGFraW5nFHR5cGVzEFZvdGUAAAgBGGFtb3VudBgBHEJhbGFuY2UAAShjb252aWN0aW9uWQkBKENvbnZpY3Rpb24AAFkJDDhwYWxsZXRfc3Rha2luZxR0eXBlcyhDb252aWN0aW9uAAEcEE5vbmUAAAAgTG9ja2VkMXgAAQAgTG9ja2VkMngAAgAgTG9ja2VkM3gAAwAgTG9ja2VkNHgABAAgTG9ja2VkNXgABQAgTG9ja2VkNngABgAAXQkAAAJRCQBhCQw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzHFBlcmJpbGwAAAQAEAEMdTMyAABlCQw4cGFsbGV0X3N0YWtpbmcYcGFsbGV0FEVycm9yBARUAAE0TEluc3VmZmljaWVudEJhbGFuY2UAAARMQmFsYW5jZSBpcyB0b28gbG93LkRJbnN1ZmZpY2llbnRTdGFrZQABBGRTdGFrZWQgYW1vdW50IGlzIHRvbyBsb3cuQFBvc2l0aW9uTm90Rm91bmQAAgSQU3Rha2luZyBwb3NpdGlvbiBoYXMgbm90IGJlZW4gZm91bmQuPE1heFZvdGVzUmVhY2hlZAADBOhNYXhpbXVtIGFtb3VudCBvZiB2b3RlcyB3ZXJlIHJlYWNoZWQgZm9yIHN0YWtpbmcgcG9zaXRpb24uOE5vdEluaXRpYWxpemVkAAQEbFN0YWtpbmcgaXMgbm90IGluaXRpYWxpemVkLkhBbHJlYWR5SW5pdGlhbGl6ZWQABQR8U3Rha2luZyBpcyBhbHJlYWR5IGluaXRpYWxpemVkLihBcml0aG1ldGljAAYEREFyaXRobWV0aWMgZXJyb3IuRE1pc3NpbmdQb3RCYWxhbmNlAAcEWFBvdCdzIGJhbGFuY2UgaXMgemVyby5UUG9zaXRpb25BbHJlYWR5RXhpc3RzAAgEiEFjY291bnQncyBwb3NpdGlvbiBhbHJlYWR5IGV4aXN0cy4kRm9yYmlkZGVuAAkEvFNpZ25lciBpcyBub3QgYW4gb3duZXIgb2YgdGhlIHN0YWtpbmcgcG9zaXRpb24uNEV4aXN0aW5nVm90ZXMACgSMUG9zaXRpb24gY29udGFpbnMgcmVnaXN0ZXJlZCB2b3Rlcy5YRXhpc3RpbmdQcm9jZXNzZWRWb3RlcwALBIUBUG9zaXRpb24gY29udGFpbnMgcHJvY2Vzc2VkIHZvdGVzLiBSZW1vdmVkIHRoZXNlIHZvdGVzIGZpcnN0IGJlZm9yZSBpbmNyZWFzaW5nIHN0YWtlIG9yIGNsYWltaW5nLkRJbmNvbnNpc3RlbnRTdGF0ZQQAaQkBWEluY29uc2lzdGVudFN0YXRlRXJyb3IADAhlAUFjdGlvbiBjYW5ub3QgYmUgY29tcGxldGVkIGJlY2F1c2UgdW5leHBlY3RlZCBlcnJvciBoYXMgb2NjdXJyZWQuIFRoaXMgc2hvdWxkIGJlIHJlcG9ydGVkYHRvIHByb3RvY29sIG1haW50YWluZXJzLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5pCQw4cGFsbGV0X3N0YWtpbmcYcGFsbGV0WEluY29uc2lzdGVudFN0YXRlRXJyb3IAARRAUG9zaXRpb25Ob3RGb3VuZAAAAFhOZWdhdGl2ZVBlbmRpbmdSZXdhcmRzAAEAVE5lZ2F0aXZlVW5wYWlkUmV3YXJkcwACAEBUb29NYW55UG9zaXRpb25zAAMAKEFyaXRobWV0aWMABAAAbQkMRHBhbGxldF9zdGFibGVzd2FwFHR5cGVzIFBvb2xJbmZvCBxBc3NldElkARAsQmxvY2tOdW1iZXIBEAAYARhhc3NldHNxCQHEQm91bmRlZFZlYzxBc3NldElkLCBDb25zdFUzMjxNQVhfQVNTRVRTX0lOX1BPT0w+PgABVGluaXRpYWxfYW1wbGlmaWNhdGlvbq0BAShOb25aZXJvVTE2AAFMZmluYWxfYW1wbGlmaWNhdGlvbq0BAShOb25aZXJvVTE2AAE0aW5pdGlhbF9ibG9jaxABLEJsb2NrTnVtYmVyAAEsZmluYWxfYmxvY2sQASxCbG9ja051bWJlcgABDGZlZWkBARxQZXJtaWxsAABxCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUARAEUwAABACdAQEYVmVjPFQ+AAB1CQQ4UmFuZ2VJbmNsdXNpdmUEDElkeAGtAQAIARRzdGFydK0BAQxJZHgAAQxlbmStAQEMSWR4AAB5CQxEcGFsbGV0X3N0YWJsZXN3YXAYcGFsbGV0FEVycm9yBARUAAFgPEluY29ycmVjdEFzc2V0cwAABBkBQ3JlYXRpbmcgYSBwb29sIHdpdGggc2FtZSBhc3NldHMgb3IgbGVzcyB0aGFuIDIgYXNzZXRzIGlzIG5vdCBhbGxvd2VkLkRNYXhBc3NldHNFeGNlZWRlZAABBKxNYXhpbXVtIG51bWJlciBvZiBhc3NldHMgaGFzIGJlZW4gZXhjZWVkZWQuMFBvb2xOb3RGb3VuZAACBKBBIHBvb2wgd2l0aCBnaXZlbiBhc3NldHMgZG9lcyBub3QgZXhpc3QuKFBvb2xFeGlzdHMAAwSgQSBwb29sIHdpdGggZ2l2ZW4gYXNzZXRzIGFscmVhZHkgZXhpc3RzLjhBc3NldE5vdEluUG9vbAAEBGRBc3NldCBpcyBub3QgaW4gdGhlIHBvb2wuXFNoYXJlQXNzZXROb3RSZWdpc3RlcmVkAAUEqFNoYXJlIGFzc2V0IGlzIG5vdCByZWdpc3RlcmVkIGluIFJlZ2lzdHJ5LlhTaGFyZUFzc2V0SW5Qb29sQXNzZXRzAAYEyFNoYXJlIGFzc2V0IGlzIGFtb3VudCBhc3NldHMgd2hlbiBjcmVhdGluZyBhIHBvb2wuSEFzc2V0Tm90UmVnaXN0ZXJlZAAHBNhPbmUgb3IgbW9yZSBhc3NldHMgYXJlIG5vdCByZWdpc3RlcmVkIGluIEFzc2V0UmVnaXN0cnlISW52YWxpZEFzc2V0QW1vdW50AAgEAQFJbnZhbGlkIGFzc2V0IGFtb3VudCBwcm92aWRlZC4gQW1vdW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uTEluc3VmZmljaWVudEJhbGFuY2UACQTkQmFsYW5jZSBvZiBhbiBhc3NldCBpcyBub3Qgc3VmZmljaWVudCB0byBwZXJmb3JtIGEgdHJhZGUuSEluc3VmZmljaWVudFNoYXJlcwAKBAUBQmFsYW5jZSBvZiBhIHNoYXJlIGFzc2V0IGlzIG5vdCBzdWZmaWNpZW50IHRvIHdpdGhkcmF3IGxpcXVpZGl0eS5USW5zdWZmaWNpZW50TGlxdWlkaXR5AAsEvExpcXVpZGl0eSBoYXMgbm90IHJlYWNoZWQgdGhlIHJlcXVpcmVkIG1pbmltdW0ueEluc3VmZmljaWVudExpcXVpZGl0eVJlbWFpbmluZwAMBORJbnN1ZmZpY2llbnQgbGlxdWlkaXR5IGxlZnQgaW4gdGhlIHBvb2wgYWZ0ZXIgd2l0aGRyYXdhbC5kSW5zdWZmaWNpZW50VHJhZGluZ0Ftb3VudAANBOhBbW91bnQgaXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtIHRyYWRpbmcgYW1vdW50IGNvbmZpZ3VyZWQuSEJ1eUxpbWl0Tm90UmVhY2hlZAAOBMBNaW5pbXVtIGxpbWl0IGhhcyBub3QgYmVlbiByZWFjaGVkIGR1cmluZyB0cmFkZS5EU2VsbExpbWl0RXhjZWVkZWQADwS0TWF4aW11bSBsaW1pdCBoYXMgYmVlbiBleGNlZWRlZCBkdXJpbmcgdHJhZGUuXEludmFsaWRJbml0aWFsTGlxdWlkaXR5ABAEnEluaXRpYWwgbGlxdWlkaXR5IG9mIGFzc2V0IG11c3QgYmUgPiAwLlBJbnZhbGlkQW1wbGlmaWNhdGlvbgARBKhBbXBsaWZpY2F0aW9uIGlzIG91dHNpZGUgY29uZmlndXJlZCByYW5nZS5gSW5zdWZmaWNpZW50U2hhcmVCYWxhbmNlABIEGQFSZW1haW5pbmcgYmFsYW5jZSBvZiBzaGFyZSBhc3NldCBpcyBiZWxvdyBhc3NldCdzIGV4aXN0ZW50aWFsIGRlcG9zaXQuKE5vdEFsbG93ZWQAEwTMTm90IGFsbG93ZWQgdG8gcGVyZm9ybSBhbiBvcGVyYXRpb24gb24gZ2l2ZW4gYXNzZXQuJFBhc3RCbG9jawAUBIxGdXR1cmUgYmxvY2sgbnVtYmVyIGlzIGluIHRoZSBwYXN0LkRTYW1lQW1wbGlmaWNhdGlvbgAVBMROZXcgYW1wbGlmaWNhdGlvbiBpcyBlcXVhbCB0byB0aGUgcHJldmlvdXMgdmFsdWUuNFNsaXBwYWdlTGltaXQAFgRQU2xpcHBhZ2UgcHJvdGVjdGlvbi48VW5rbm93bkRlY2ltYWxzABcEiEZhaWxlZCB0byByZXRyaWV2ZSBhc3NldCBkZWNpbWFscy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQufQkAAAQIEDAAgQkMMHBhbGxldF9ib25kcxhwYWxsZXQURXJyb3IEBFQAARw0Tm90UmVnaXN0ZXJlZAAABExCb25kIG5vdCByZWdpc3RlcmVkJE5vdE1hdHVyZQABBEhCb25kIGlzIG5vdCBtYXR1cmU8SW52YWxpZE1hdHVyaXR5AAIEYE1hdHVyaXR5IG5vdCBsb25nIGVub3VnaDxEaXNhbGxvd2VkQXNzZXQAAwSsQXNzZXQgdHlwZSBub3QgYWxsb3dlZCBmb3IgdW5kZXJseWluZyBhc3NldDRBc3NldE5vdEZvdW5kAAQEqEFzc2V0IGlzIG5vdCByZWdpc3RlcmVkIGluIGBBc3NldFJlZ2lzdHJ5YDxJbnZhbGlkQm9uZE5hbWUABQRwR2VuZXJhdGVkIG5hbWUgaXMgbm90IHZhbGlkLjxGYWlsVG9QYXJzZU5hbWUABgSYQm9uZCdzIG5hbWUgcGFyc2luZyB3YXMgbm93IHN1Y2Nlc3NmdWwEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuhQkMWHBhbGxldF9vdGNfc2V0dGxlbWVudHMYcGFsbGV0FEVycm9yBARUAAEcNE9yZGVyTm90Rm91bmQAAARMT3RjIG9yZGVyIG5vdCBmb3VuZFBOb3RQYXJ0aWFsbHlGaWxsYWJsZQABBIxPVEMgb3JkZXIgaXMgbm90IHBhcnRpYWxseSBmaWxsYWJsZTBJbnZhbGlkUm91dGUAAgS8UHJvdmlkZWQgcm91dGUgZG9lc24ndCBtYXRjaCB0aGUgZXhpc3Rpbmcgcm91dGVQQmFsYW5jZUluY29uc2lzdGVuY3kAAwScSW5pdGlhbCBhbmQgZmluYWwgYmFsYW5jZSBhcmUgZGlmZmVyZW50SFRyYWRlQW1vdW50VG9vSGlnaAAEBIhUcmFkZSBhbW91bnQgaGlnaGVyIHRoYW4gbmVjZXNzYXJ5RFRyYWRlQW1vdW50VG9vTG93AAUEhFRyYWRlIGFtb3VudCBsb3dlciB0aGFuIG5lY2Vzc2FyeURQcmljZU5vdEF2YWlsYWJsZQAGBIhQcmljZSBmb3IgYSByb3V0ZSBpcyBub3QgYXZhaWxhYmxlBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LokJDChwYWxsZXRfbGJwGHBhbGxldBRFcnJvcgQEVAABXHhDYW5ub3RDcmVhdGVQb29sV2l0aFNhbWVBc3NldHMAAAR8UG9vbCBhc3NldHMgY2FuIG5vdCBiZSB0aGUgc2FtZSBOb3RPd25lcgABBGxBY2NvdW50IGlzIG5vdCBhIHBvb2wgb3duZXIsU2FsZVN0YXJ0ZWQAAgRQU2FsZSBhbHJlYWR5IHN0YXJ0ZWQwU2FsZU5vdEVuZGVkAAMEZFNhbGUgaXMgc3RpbGwgaW4gcHJvZ3Jlc3NAU2FsZUlzTm90UnVubmluZwAEBExTYWxlIGlzIG5vdCBydW5uaW5nXE1heFNhbGVEdXJhdGlvbkV4Y2VlZGVkAAUEZFNhbGUgZHVyYXRpb24gaXMgdG9vIGxvbmdYQ2Fubm90QWRkWmVyb0xpcXVpZGl0eQAGBKBMaXF1aWRpdHkgYmVpbmcgYWRkZWQgc2hvdWxkIG5vdCBiZSB6ZXJvYEluc3VmZmljaWVudEFzc2V0QmFsYW5jZQAHBFRBc3NldCBiYWxhbmNlIHRvbyBsb3cwUG9vbE5vdEZvdW5kAAgETFBvb2wgZG9lcyBub3QgZXhpc3REUG9vbEFscmVhZHlFeGlzdHMACQR0UG9vbCBoYXMgYmVlbiBhbHJlYWR5IGNyZWF0ZWRESW52YWxpZEJsb2NrUmFuZ2UACgRMSW52YWxpZCBibG9jayByYW5nZVhXZWlnaHRDYWxjdWxhdGlvbkVycm9yAAsERENhbGN1bGF0aW9uIGVycm9yNEludmFsaWRXZWlnaHQADARoV2VpZ2h0IHNldCBpcyBvdXQgb2YgcmFuZ2UoWmVyb0Ftb3VudAANBKBDYW4gbm90IHBlcmZvcm0gYSB0cmFkZSB3aXRoIHplcm8gYW1vdW50SE1heEluUmF0aW9FeGNlZWRlZAAOBGBUcmFkZSBhbW91bnQgaXMgdG9vIGhpZ2hMTWF4T3V0UmF0aW9FeGNlZWRlZAAPBGBUcmFkZSBhbW91bnQgaXMgdG9vIGhpZ2hARmVlQW1vdW50SW52YWxpZAAQBEhJbnZhbGlkIGZlZSBhbW91bnRMVHJhZGluZ0xpbWl0UmVhY2hlZAARBFRUcmFkaW5nIGxpbWl0IHJlYWNoZWQgT3ZlcmZsb3cAEgScQW4gdW5leHBlY3RlZCBpbnRlZ2VyIG92ZXJmbG93IG9jY3VycmVkPE5vdGhpbmdUb1VwZGF0ZQATBEROb3RoaW5nIHRvIHVwZGF0ZVRJbnN1ZmZpY2llbnRMaXF1aWRpdHkAFAS8TGlxdWlkaXR5IGhhcyBub3QgcmVhY2hlZCB0aGUgcmVxdWlyZWQgbWluaW11bS5kSW5zdWZmaWNpZW50VHJhZGluZ0Ftb3VudAAVBKhBbW91bnQgaXMgbGVzcyB0aGFuIG1pbmltdW0gdHJhZGluZyBsaW1pdC6ARmVlQ29sbGVjdG9yV2l0aEFzc2V0QWxyZWFkeVVzZWQAFgSwTm90IG1vcmUgdGhhbiBvbmUgZmVlIGNvbGxlY3RvciBwZXIgYXNzZXQgaWQEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQujQkMKHBhbGxldF94eWsYcGFsbGV0FEVycm9yBARUAAFkeENhbm5vdENyZWF0ZVBvb2xXaXRoU2FtZUFzc2V0cwAABNxJdCBpcyBub3QgYWxsb3dlZCB0byBjcmVhdGUgYSBwb29sIGJldHdlZW4gc2FtZSBhc3NldHMuVEluc3VmZmljaWVudExpcXVpZGl0eQABBLxMaXF1aWRpdHkgaGFzIG5vdCByZWFjaGVkIHRoZSByZXF1aXJlZCBtaW5pbXVtLmRJbnN1ZmZpY2llbnRUcmFkaW5nQW1vdW50AAIEmEFtb3VudCBpcyBsZXNzIHRoYW4gbWluIHRyYWRpbmcgbGltaXQuNFplcm9MaXF1aWRpdHkAAwRITGlxdWlkaXR5IGlzIHplcm8uQFplcm9Jbml0aWFsUHJpY2UABAjsSXQgaXMgbm90IGFsbG93ZWQgdG8gY3JlYXRlIGEgcG9vbCB3aXRoIHplcm8gaW5pdGlhbCBwcmljZS6kTm90IHVzZWQsIGtlcHQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlwQ3JlYXRlUG9vbEFzc2V0QW1vdW50SW52YWxpZAAFCCBPdmVyZmxvd6ROb3QgdXNlZCwga2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVhJbnZhbGlkTWludGVkTGlxdWlkaXR5AAYEIE92ZXJmbG93WEludmFsaWRMaXF1aWRpdHlBbW91bnQABwQgT3ZlcmZsb3dgQXNzZXRBbW91bnRFeGNlZWRlZExpbWl0AAgEmEFzc2V0IGFtb3VudCBoYXMgZXhjZWVkZWQgZ2l2ZW4gbGltaXQuaEFzc2V0QW1vdW50Tm90UmVhY2hlZExpbWl0AAkEpEFzc2V0IGFtb3VudCBoYXMgbm90IHJlYWNoZWQgZ2l2ZW4gbGltaXQuYEluc3VmZmljaWVudEFzc2V0QmFsYW5jZQAKBIBBc3NldCBiYWxhbmNlIGlzIG5vdCBzdWZmaWNpZW50LnBJbnN1ZmZpY2llbnRQb29sQXNzZXRCYWxhbmNlAAsEnE5vdCBlbm91Z2ggYXNzZXQgbGlxdWlkaXR5IGluIHRoZSBwb29sLoRJbnN1ZmZpY2llbnROYXRpdmVDdXJyZW5jeUJhbGFuY2UADASwTm90IGVub3VnaCBjb3JlIGFzc2V0IGxpcXVpZGl0eSBpbiB0aGUgcG9vbC5EVG9rZW5Qb29sTm90Rm91bmQADQS8TGlxdWlkaXR5IHBvb2wgZm9yIGdpdmVuIGFzc2V0cyBkb2VzIG5vdCBleGlzdC5YVG9rZW5Qb29sQWxyZWFkeUV4aXN0cwAOBLxMaXF1aWRpdHkgcG9vbCBmb3IgZ2l2ZW4gYXNzZXRzIGFscmVhZHkgZXhpc3RzLlRBZGRBc3NldEFtb3VudEludmFsaWQADwQgT3ZlcmZsb3dgUmVtb3ZlQXNzZXRBbW91bnRJbnZhbGlkABAEIE92ZXJmbG93WFNlbGxBc3NldEFtb3VudEludmFsaWQAEQQgT3ZlcmZsb3dUQnV5QXNzZXRBbW91bnRJbnZhbGlkABIEIE92ZXJmbG93QEZlZUFtb3VudEludmFsaWQAEwQgT3ZlcmZsb3dMQ2Fubm90QXBwbHlEaXNjb3VudAAUBCBPdmVyZmxvd0xNYXhPdXRSYXRpb0V4Y2VlZGVkABUEEQFNYXggZnJhY3Rpb24gb2YgcG9vbCB0byBidXkgaW4gc2luZ2xlIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4Y2VlZGVkLkhNYXhJblJhdGlvRXhjZWVkZWQAFgQVAU1heCBmcmFjdGlvbiBvZiBwb29sIHRvIHNlbGwgaW4gc2luZ2xlIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4Y2VlZGVkLiBPdmVyZmxvdwAXBCBPdmVyZmxvd0BDYW5ub3RDcmVhdGVQb29sABgEuFBvb2wgY2Fubm90IGJlIGNyZWF0ZWQgZHVlIHRvIG91dHNpZGUgZmFjdG9ycy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQukQkAAAQI5QEYAJUJAAAECBDlAQCZCQAABAwQGAAAnQkMQHBhbGxldF9yZWZlcnJhbHMYcGFsbGV0FEVycm9yBARUAAE4HFRvb0xvbmcAAARoUmVmZXJyYWwgY29kZSBpcyB0b28gbG9uZy4gVG9vU2hvcnQAAQRsUmVmZXJyYWwgY29kZSBpcyB0b28gc2hvcnQuQEludmFsaWRDaGFyYWN0ZXIAAgRNAVJlZmVycmFsIGNvZGUgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXIuIE9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYXJlIGFsbG93ZWQuNEFscmVhZHlFeGlzdHMAAwR0UmVmZXJyYWwgY29kZSBhbHJlYWR5IGV4aXN0cy4sSW52YWxpZENvZGUABAQhAVByb3ZpZGVkIHJlZmVycmFsIGNvZGUgaXMgaW52YWxpZC4gRWl0aGVyIGRvZXMgbm90IGV4aXN0IG9yIGlzIHRvbyBsb25nLjRBbHJlYWR5TGlua2VkAAUE2EFjY291bnQgaXMgYWxyZWFkeSBsaW5rZWQgdG8gYW5vdGhlciByZWZlcnJhbCBhY2NvdW50LihaZXJvQW1vdW50AAYEyE5vdGhpbmcgaW4gdGhlIHJlZmVycmFsIHBvdCBhY2NvdW50IGZvciB0aGUgYXNzZXQuOExpbmtOb3RBbGxvd2VkAAcE/ExpbmtpbmcgYW4gYWNjb3VudCB0byB0aGUgc2FtZSByZWZlcnJhbCBhY2NvdW50IGlzIG5vdCBhbGxvd2VkLmhJbmNvcnJlY3RSZXdhcmRDYWxjdWxhdGlvbgAIBJEBQ2FsY3VsYXRlZCByZXdhcmRzIGFyZSBtb3JlIHRoYW4gdGhlIGZlZSBhbW91bnQuIFRoaXMgY2FuIGhhcHBlbiBpZiBwZXJjZW50YWdlcyBhcmUgaW5jb3JyZWN0bHkgc2V0LmRJbmNvcnJlY3RSZXdhcmRQZXJjZW50YWdlAAkE7EdpdmVuIHJlZmVycmVyIGFuZCB0cmFkZXIgcGVyY2VudGFnZXMgZXhjZWVkcyAxMDAlIHBlcmNlbnQuREFscmVhZHlSZWdpc3RlcmVkAAoEqFRoZSBhY2NvdW50IGhhcyBhbHJlYWR5IGEgY29kZSByZWdpc3RlcmVkLjRQcmljZU5vdEZvdW5kAAsElFByaWNlIGZvciBnaXZlbiBhc3NldCBwYWlyIG5vdCBmb3VuZC6QQ29udmVyc2lvbk1pblRyYWRpbmdBbW91bnROb3RSZWFjaGVkAAwE7E1pbmltdW0gdHJhZGluZyBhbW91bnQgZm9yIGNvbnZlcnNpb24gaGFzIG5vdCBiZWVuIHJlYWNoZWQucENvbnZlcnNpb25aZXJvQW1vdW50UmVjZWl2ZWQADQSUWmVybyBhbW91bnQgcmVjZWl2ZWQgZnJvbSBjb252ZXJzaW9uLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6hCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAaUJBFMAAAQAqQkBGFZlYzxUPgAApQkILG9ybWxfdG9rZW5zLEJhbGFuY2VMb2NrBBxCYWxhbmNlARgACAEIaWTxAQE4TG9ja0lkZW50aWZpZXIAARhhbW91bnQYARxCYWxhbmNlAACpCQAAAqUJAK0JCCxvcm1sX3Rva2VucyxBY2NvdW50RGF0YQQcQmFsYW5jZQEYAAwBEGZyZWUYARxCYWxhbmNlAAEgcmVzZXJ2ZWQYARxCYWxhbmNlAAEYZnJvemVuGAEcQmFsYW5jZQAAsQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAG1CQRTAAAEALkJARhWZWM8VD4AALUJCCxvcm1sX3Rva2VucyxSZXNlcnZlRGF0YQhEUmVzZXJ2ZUlkZW50aWZpZXIB8QEcQmFsYW5jZQEYAAgBCGlk8QEBRFJlc2VydmVJZGVudGlmaWVyAAEYYW1vdW50GAEcQmFsYW5jZQAAuQkAAAK1CQC9CQwsb3JtbF90b2tlbnMYbW9kdWxlFEVycm9yBARUAAEgNEJhbGFuY2VUb29Mb3cAAARYVGhlIGJhbGFuY2UgaXMgdG9vIGxvd1xBbW91bnRJbnRvQmFsYW5jZUZhaWxlZAABBJxDYW5ub3QgY29udmVydCBBbW91bnQgaW50byBCYWxhbmNlIHR5cGVUTGlxdWlkaXR5UmVzdHJpY3Rpb25zAAIE0EZhaWxlZCBiZWNhdXNlIGxpcXVpZGl0eSByZXN0cmljdGlvbnMgZHVlIHRvIGxvY2tpbmdATWF4TG9ja3NFeGNlZWRlZAADBLRGYWlsZWQgYmVjYXVzZSB0aGUgbWF4aW11bSBsb2NrcyB3YXMgZXhjZWVkZWQkS2VlcEFsaXZlAAQEjFRyYW5zZmVyL3BheW1lbnQgd291bGQga2lsbCBhY2NvdW50SEV4aXN0ZW50aWFsRGVwb3NpdAAFBOhWYWx1ZSB0b28gbG93IHRvIGNyZWF0ZSBhY2NvdW50IGR1ZSB0byBleGlzdGVudGlhbCBkZXBvc2l0LERlYWRBY2NvdW50AAYEiEJlbmVmaWNpYXJ5IGFjY291bnQgbXVzdCBwcmUtZXhpc3Q8VG9vTWFueVJlc2VydmVzAAcABIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LsEJDERwYWxsZXRfY3VycmVuY2llcxhtb2R1bGUURXJyb3IEBFQAARBcQW1vdW50SW50b0JhbGFuY2VGYWlsZWQAAAS8VW5hYmxlIHRvIGNvbnZlcnQgdGhlIEFtb3VudCB0eXBlIGludG8gQmFsYW5jZS40QmFsYW5jZVRvb0xvdwABBExCYWxhbmNlIGlzIHRvbyBsb3cuNERlcG9zaXRGYWlsZWQAAgR4RGVwb3NpdCByZXN1bHQgaXMgbm90IGV4cGVjdGVkME5vdFN1cHBvcnRlZAADBLBPcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBjdXJyZW5jeQSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7FCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQECBFMAAAQA/QUBGFZlYzxUPgAAyQkMMG9ybWxfdmVzdGluZxhtb2R1bGUURXJyb3IEBFQAARhEWmVyb1Zlc3RpbmdQZXJpb2QAAARYVmVzdGluZyBwZXJpb2QgaXMgemVyb1haZXJvVmVzdGluZ1BlcmlvZENvdW50AAEEXE51bWJlciBvZiB2ZXN0cyBpcyB6ZXJvZEluc3VmZmljaWVudEJhbGFuY2VUb0xvY2sAAgSYSW5zdWZmaWNpZW50IGFtb3VudCBvZiBiYWxhbmNlIHRvIGxvY2tcVG9vTWFueVZlc3RpbmdTY2hlZHVsZXMAAwSwVGhpcyBhY2NvdW50IGhhdmUgdG9vIG1hbnkgdmVzdGluZyBzY2hlZHVsZXMkQW1vdW50TG93AAQElFRoZSB2ZXN0ZWQgdHJhbnNmZXIgYW1vdW50IGlzIHRvbyBsb3dsTWF4VmVzdGluZ1NjaGVkdWxlc0V4Y2VlZGVkAAUE5EZhaWxlZCBiZWNhdXNlIHRoZSBtYXhpbXVtIHZlc3Rpbmcgc2NoZWR1bGVzIHdhcyBleGNlZWRlZASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7NCQgocGFsbGV0X2V2bTBDb2RlTWV0YWRhdGEAAAgBEHNpemUwAQx1NjQAARBoYXNoNAEQSDI1NgAA0QkAAAQIDQI0ANUJDChwYWxsZXRfZXZtGHBhbGxldBRFcnJvcgQEVAABNChCYWxhbmNlTG93AAAEkE5vdCBlbm91Z2ggYmFsYW5jZSB0byBwZXJmb3JtIGFjdGlvbixGZWVPdmVyZmxvdwABBIBDYWxjdWxhdGluZyB0b3RhbCBmZWUgb3ZlcmZsb3dlZDxQYXltZW50T3ZlcmZsb3cAAgSQQ2FsY3VsYXRpbmcgdG90YWwgcGF5bWVudCBvdmVyZmxvd2VkOFdpdGhkcmF3RmFpbGVkAAMETFdpdGhkcmF3IGZlZSBmYWlsZWQ4R2FzUHJpY2VUb29Mb3cABARUR2FzIHByaWNlIGlzIHRvbyBsb3cuMEludmFsaWROb25jZQAFBEBOb25jZSBpcyBpbnZhbGlkOEdhc0xpbWl0VG9vTG93AAYEVEdhcyBsaW1pdCBpcyB0b28gbG93LjxHYXNMaW1pdFRvb0hpZ2gABwRYR2FzIGxpbWl0IGlzIHRvbyBoaWdoLjhJbnZhbGlkQ2hhaW5JZAAIBGBUaGUgY2hhaW4gaWQgaXMgaW52YWxpZC5ASW52YWxpZFNpZ25hdHVyZQAJBGR0aGUgc2lnbmF0dXJlIGlzIGludmFsaWQuKFJlZW50cmFuY3kACgQ4RVZNIHJlZW50cmFuY3loVHJhbnNhY3Rpb25NdXN0Q29tZUZyb21FT0EACwQkRUlQLTM2MDcsJFVuZGVmaW5lZAAMBEBVbmRlZmluZWQgZXJyb3IuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LtkJAAAC3QkA3QkAAAQMFQbhCfUJAOEJCBhmcF9ycGNEVHJhbnNhY3Rpb25TdGF0dXMAABwBQHRyYW5zYWN0aW9uX2hhc2g0ARBIMjU2AAFEdHJhbnNhY3Rpb25faW5kZXgQAQx1MzIAARBmcm9tDQIBHEFkZHJlc3MAAQh0b+UJATxPcHRpb248QWRkcmVzcz4AAUBjb250cmFjdF9hZGRyZXNz5QkBPE9wdGlvbjxBZGRyZXNzPgABEGxvZ3PpCQEgVmVjPExvZz4AAShsb2dzX2Jsb29t7QkBFEJsb29tAADlCQQYT3B0aW9uBARUAQ0CAQgQTm9uZQAAABBTb21lBAANAgAAAQAA6QkAAAIJAgDtCQggZXRoYmxvb20UQmxvb20AAAQA8QkBQFt1ODsgQkxPT01fU0laRV0AAPEJAAADAAEAAAgA9QkMIGV0aGVyZXVtHHJlY2VpcHQkUmVjZWlwdFYzAAEMGExlZ2FjeQQA+QkBREVJUDY1OFJlY2VpcHREYXRhAAAAHEVJUDI5MzAEAPkJAUhFSVAyOTMwUmVjZWlwdERhdGEAAQAcRUlQMTU1OQQA+QkBSEVJUDE1NTlSZWNlaXB0RGF0YQACAAD5CQwgZXRoZXJldW0ccmVjZWlwdERFSVA2NThSZWNlaXB0RGF0YQAAEAEsc3RhdHVzX2NvZGUIAQh1OAABIHVzZWRfZ2FzTQQBEFUyNTYAAShsb2dzX2Jsb29t7QkBFEJsb29tAAEQbG9nc+kJASBWZWM8TG9nPgAA/QkMIGV0aGVyZXVtFGJsb2NrFEJsb2NrBARUARUGAAwBGGhlYWRlcgEKARhIZWFkZXIAATB0cmFuc2FjdGlvbnMJCgEYVmVjPFQ+AAEYb21tZXJzDQoBLFZlYzxIZWFkZXI+AAABCgwgZXRoZXJldW0YaGVhZGVyGEhlYWRlcgAAPAEscGFyZW50X2hhc2g0ARBIMjU2AAEsb21tZXJzX2hhc2g0ARBIMjU2AAEsYmVuZWZpY2lhcnkNAgEQSDE2MAABKHN0YXRlX3Jvb3Q0ARBIMjU2AAFEdHJhbnNhY3Rpb25zX3Jvb3Q0ARBIMjU2AAE0cmVjZWlwdHNfcm9vdDQBEEgyNTYAAShsb2dzX2Jsb29t7QkBFEJsb29tAAEoZGlmZmljdWx0eU0EARBVMjU2AAEYbnVtYmVyTQQBEFUyNTYAASRnYXNfbGltaXRNBAEQVTI1NgABIGdhc191c2VkTQQBEFUyNTYAASR0aW1lc3RhbXAwAQx1NjQAAShleHRyYV9kYXRhOAEUQnl0ZXMAASBtaXhfaGFzaDQBEEgyNTYAARRub25jZQUKAQxINjQAAAUKDDhldGhlcmV1bV90eXBlcxBoYXNoDEg2NAAABADxAQEcW3U4OyA4XQAACQoAAAIVBgANCgAAAgEKABEKAAAC9QkAFQoAAALhCQAZCgw8cGFsbGV0X2V0aGVyZXVtGHBhbGxldBRFcnJvcgQEVAABCEBJbnZhbGlkU2lnbmF0dXJlAAAEVFNpZ25hdHVyZSBpcyBpbnZhbGlkLjBQcmVMb2dFeGlzdHMAAQTYUHJlLWxvZyBpcyBwcmVzZW50LCB0aGVyZWZvcmUgdHJhbnNhY3QgaXMgbm90IGFsbG93ZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lh0KDExwYWxsZXRfZXZtX2FjY291bnRzGHBhbGxldBRFcnJvcgQEVAABEGxUcnVuY2F0ZWRBY2NvdW50QWxyZWFkeVVzZWQAAASIQWN0aXZlIEVWTSBhY2NvdW50IGNhbm5vdCBiZSBib3VuZExBZGRyZXNzQWxyZWFkeUJvdW5kAAEEYEFkZHJlc3MgaXMgYWxyZWFkeSBib3VuZGBCb3VuZEFkZHJlc3NDYW5ub3RCZVVzZWQAAgRwQm91bmQgYWRkcmVzcyBjYW5ub3QgYmUgdXNlZFRBZGRyZXNzTm90V2hpdGVsaXN0ZWQAAwRcQWRkcmVzcyBub3Qgd2hpdGVsaXN0ZWQEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuIQoMbHBhbGxldF94eWtfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXJyb3IEBFQAASxQQ2FudEZpbmREZXBvc2l0T3duZXIAAASITmZ0IHBhbGxldCBkaWRuJ3QgcmV0dXJuIGFuIG93bmVyLnBJbnN1ZmZpY2llbnRYeWtTaGFyZXNCYWxhbmNlAAEE1EFjY291bnQgYmFsYW5jZSBvZiBYWUsgcG9vbCBzaGFyZXMgaXMgbm90IHN1ZmZpY2llbnQuSFh5a1Bvb2xEb2VzbnRFeGlzdAACBFxYWUsgcG9vbCBkb2VzIG5vdCBleGlzdDxOb3REZXBvc2l0T3duZXIAAwR0QWNjb3VudCBpcyBub3QgZGVwb3NpdCBvd25lci5AQ2FudEdldFh5a0Fzc2V0cwAEBKxYWUsgZGlkIG5vdCByZXR1cm4gYXNzZXRzIGZvciBnaXZlbiBwb29sIGlkTERlcG9zaXREYXRhTm90Rm91bmQABQRYRGVwb3NpdCBkYXRhIG5vdCBmb3VuZEhaZXJvQ2xhaW1lZFJld2FyZHMABgSAQ2FsY3VsYXRlZCByZXdhcmQgdG8gY2xhaW0gaXMgMC5MQXNzZXROb3RJbkFzc2V0UGFpcgAHBIBBc3NldCBpcyBub3QgaW4gdGhlIGBBc3NldFBhaXJgLkBJbnZhbGlkQXNzZXRQYWlyAAgEwFByb3ZpZGVkIGBBc3NldFBhaXJgIGlzIG5vdCB1c2VkIGJ5IHRoZSBkZXBvc2l0LkhBc3NldE5vdFJlZ2lzdGVyZWQACQSoQXNzZXQgaXMgbm90IHJlZ2lzdGVyZWQgaW4gYXNzZXQgcmVnaXN0cnkuOEZhaWxUb0dldFBvdElkAAoEkEZhaWxlZCB0byBjYWxjdWxhdGUgYHBvdGAncyBhY2NvdW50LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4lCgxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcUdHlwZXM4R2xvYmFsRmFybURhdGEIBFQABEkAAEgBCGlkEAEwR2xvYmFsRmFybUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAASh1cGRhdGVkX2F0EAEsUGVyaW9kT2Y8VD4AATh0b3RhbF9zaGFyZXNfehgBHEJhbGFuY2UAATxhY2N1bXVsYXRlZF9ycHphAQEkRml4ZWRVMTI4AAE8cmV3YXJkX2N1cnJlbmN5EAEoVDo6QXNzZXRJZAABPHBlbmRpbmdfcmV3YXJkcxgBHEJhbGFuY2UAAWBhY2N1bXVsYXRlZF9wYWlkX3Jld2FyZHMYARxCYWxhbmNlAAFAeWllbGRfcGVyX3BlcmlvZH0BASxQZXJxdWludGlsbAABYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kcxABLFBlcmlvZE9mPFQ+AAFEYmxvY2tzX3Blcl9wZXJpb2QQAURCbG9ja051bWJlckZvcjxUPgABSGluY2VudGl2aXplZF9hc3NldBABKFQ6OkFzc2V0SWQAAVRtYXhfcmV3YXJkX3Blcl9wZXJpb2QYARxCYWxhbmNlAAEsbWluX2RlcG9zaXQYARxCYWxhbmNlAAFYbGl2ZV95aWVsZF9mYXJtc19jb3VudBABDHUzMgABXHRvdGFsX3lpZWxkX2Zhcm1zX2NvdW50EAEMdTMyAAFAcHJpY2VfYWRqdXN0bWVudGEBASRGaXhlZFUxMjgAARRzdGF0ZekIASRGYXJtU3RhdGUAACkKAAAEDAAQEAAtCgxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcUdHlwZXM0WWllbGRGYXJtRGF0YQgEVAAESQAAMAEIaWQQARhGYXJtSWQAASh1cGRhdGVkX2F0EAEsUGVyaW9kT2Y8VD4AATB0b3RhbF9zaGFyZXMYARxCYWxhbmNlAAFMdG90YWxfdmFsdWVkX3NoYXJlcxgBHEJhbGFuY2UAAUBhY2N1bXVsYXRlZF9ycHZzYQEBJEZpeGVkVTEyOAABPGFjY3VtdWxhdGVkX3JwemEBASRGaXhlZFUxMjgAATRsb3lhbHR5X2N1cnZlgQEBUE9wdGlvbjxMb3lhbHR5Q3VydmU+AAEobXVsdGlwbGllcmEBAThGYXJtTXVsdGlwbGllcgABFHN0YXRl6QgBJEZhcm1TdGF0ZQABNGVudHJpZXNfY291bnQwAQx1NjQAAUhsZWZ0X3RvX2Rpc3RyaWJ1dGUYARxCYWxhbmNlAAE0dG90YWxfc3RvcHBlZBABLFBlcmlvZE9mPFQ+AAAxCgxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcUdHlwZXMsRGVwb3NpdERhdGEIBFQABEkAAAwBGHNoYXJlcxgBHEJhbGFuY2UAASxhbW1fcG9vbF9pZAABMFQ6OkFtbVBvb2xJZAABSHlpZWxkX2Zhcm1fZW50cmllczUKAfRCb3VuZGVkVmVjPFlpZWxkRmFybUVudHJ5PFQsIEk+LCBUOjpNYXhGYXJtRW50cmllc1BlckRlcG9zaXQ+AAA1CgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUATkKBFMAAAQAPQoBGFZlYzxUPgAAOQoMXHBhbGxldF9saXF1aWRpdHlfbWluaW5nFHR5cGVzOFlpZWxkRmFybUVudHJ5CARUAARJAAAgAThnbG9iYWxfZmFybV9pZBABMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQQASxZaWVsZEZhcm1JZAABNHZhbHVlZF9zaGFyZXMYARxCYWxhbmNlAAFAYWNjdW11bGF0ZWRfcnB2c2EBASRGaXhlZFUxMjgAAWxhY2N1bXVsYXRlZF9jbGFpbWVkX3Jld2FyZHMYARxCYWxhbmNlAAEoZW50ZXJlZF9hdBABLFBlcmlvZE9mPFQ+AAEodXBkYXRlZF9hdBABLFBlcmlvZE9mPFQ+AAFMc3RvcHBlZF9hdF9jcmVhdGlvbhABLFBlcmlvZE9mPFQ+AAA9CgAAAjkKAEEKDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXJyb3IIBFQABEkAAXRIR2xvYmFsRmFybU5vdEZvdW5kAAAEbEdsb2JhbCBmYXJtIGRvZXMgbm90IGV4aXN0LkRZaWVsZEZhcm1Ob3RGb3VuZAABBGhZaWVsZCBmYXJtIGRvZXMgbm90IGV4aXN0LkxEb3VibGVDbGFpbUluUGVyaW9kAAIEyE11bHRpcGxlIGNsYWltcyBpbiB0aGUgc2FtZSBwZXJpb2QgaXMgbm90IGFsbG93ZWQuXExpcXVpZGl0eU1pbmluZ0NhbmNlbGVkAAMEdExpcXVpZGl0eSBtaW5pbmcgaXMgY2FuY2VsZWQuXExpcXVpZGl0eU1pbmluZ0lzQWN0aXZlAAQEhExpcXVpZGl0eSBtaW5pbmcgaXMgbm90IGNhbmNlbGVkLmxMaXF1aWRpdHlNaW5pbmdJc05vdFN0b3BwZWQABQRVAUxpcXVpZGl0eSBtaW5pbmcgaXMgaW4gYGFjdGl2ZWAgb3IgYHRlcm1pbmF0ZWRgIHN0YXRlIGFuZCBhY3Rpb24gY2Fubm90IGJlIGNvbXBsZXRlZC5QSW52YWxpZERlcG9zaXRBbW91bnQABgR4TFAgc2hhcmVzIGFtb3VudCBpcyBub3QgdmFsaWQuJEZvcmJpZGRlbgAHBKRBY2NvdW50IGlzIG5vdCBhbGxvd2VkIHRvIHBlcmZvcm0gYWN0aW9uLkRJbnZhbGlkTXVsdGlwbGllcgAIBIRZaWVsZCBmYXJtIG11bHRpcGxpZXIgY2FuJ3QgYmUgMC5YWWllbGRGYXJtQWxyZWFkeUV4aXN0cwAJBAkBWWllbGQgZmFybSB3aXRoIGdpdmVuIGBhbW1fcG9vbF9pZGAgYWxyZWFkeSBleGlzdHMgaW4gZ2xvYmFsIGZhcm0ueEludmFsaWRJbml0aWFsUmV3YXJkUGVyY2VudGFnZQAKBD0BTG95YWx0eSBjdXJ2ZSdzIGluaXRpYWwgcmV3YXJkIHBlcmNlbnRhZ2UgaXMgbm90IHZhbGlkLiBWYWxpZCByYW5nZSBpczogWzAsIDEpLlBHbG9iYWxGYXJtSXNOb3RFbXB0eQALBLRPbmUgb3IgbW9yZSB5aWVsZCBmYXJtcyBleGlzdCBpbiBnbG9iYWwgZmFybS5gTWlzc2luZ0luY2VudGl2aXplZEFzc2V0AAwE+EZhcm0ncyBgaW5jZW50aXZpemVkX2Fzc2V0YCBpcyBtaXNzaW5nIGluIHByb3ZpZGVkIGFzc2V0IHBhaXIuhEluc3VmZmljaWVudFJld2FyZEN1cnJlbmN5QmFsYW5jZQANBKhSZXdhcmQgY3VycmVuY3kgYmFsYW5jZSBpcyBub3Qgc3VmZmljaWVudC5YSW52YWxpZEJsb2Nrc1BlclBlcmlvZAAOBHRCbG9ja3MgcGVyIHBlcmlvZCBjYW4ndCBiZSAwLlRJbnZhbGlkWWllbGRQZXJQZXJpb2QADwRwWWllbGQgcGVyIHBlcmlvZCBjYW4ndCBiZSAwLkxJbnZhbGlkVG90YWxSZXdhcmRzABAExFRvdGFsIHJld2FyZHMgaXMgbGVzcyB0aGFuIGBNaW5Ub3RhbEZhcm1SZXdhcmRzYC50SW52YWxpZFBsYW5uZWRZaWVsZGluZ1BlcmlvZHMAEQQJAVBsYW5uZWQgeWllbGRpbmcgcGVyaW9kcyBpcyBsZXNzIHRoYW4gYE1pblBsYW5uZWRZaWVsZGluZ1BlcmlvZHNgLlBNYXhFbnRyaWVzUGVyRGVwb3NpdAASBLBNYXhpbXVtIG51bWJlciBvZiBsb2NrcyByZWFjaGVkIGZvciBkZXBvc2l0LihEb3VibGVMb2NrABME4FRyeWluZyB0byBsb2NrIExQIHNoYXJlcyBpbnRvIGFscmVhZHkgbG9ja2VkIHlpZWxkIGZhcm0uWFlpZWxkRmFybUVudHJ5Tm90Rm91bmQAFATEWWllbGQgZmFybSBlbnRyeSBkb2Vzbid0IGV4aXN0IGZvciBnaXZlbiBkZXBvc2l0LkBHbG9iYWxGYXJtSXNGdWxsABUISQFNYXggbnVtYmVyIG9mIHlpZWxkIGZhcm1zIGluIGdsb2JhbCBmYXJtIHdhcyByZWFjaGVkLiBHbG9iYWwgZmFybSBjYW4ndCBhY2NlcHQgbmV3+HlpZWxkIGZhcm1zIHVudGlsIHNvbWUgeWllbGQgZmFybSBpcyBub3QgcmVtb3ZlZCBmcm9tIHN0b3JhZ2UuREludmFsaWRNaW5EZXBvc2l0ABYEtEludmFsaWQgbWluLiBkZXBvc2l0IHdhcyBzZXQgZm9yIGdsb2JhbCBmYXJtLlhJbnZhbGlkUHJpY2VBZGp1c3RtZW50ABcEnFByaWNlIGFkanVzdG1lbnQgbXVsdGlwbGllciBjYW4ndCBiZSAwLkRFcnJvckdldEFjY291bnRJZAAYBIBBY2NvdW50IGNyZWF0aW9uIGZyb20gaWQgZmFpbGVkLlRJbmNvcnJlY3RWYWx1ZWRTaGFyZXMAGQQlAVZhbHVlIG9mIGRlcG9zaXRlZCBzaGFyZXMgYW1vdW50IGluIHJld2FyZCBjdXJyZW5jeSBpcyBiZWxsb3cgbWluLiBsaW1pdC5sUmV3YXJkQ3VycmVuY3lOb3RSZWdpc3RlcmVkABoE2GByZXdhcmRfY3VycmVuY3lgIGlzIG5vdCByZWdpc3RlcmVkIGluIGFzc2V0IHJlZ2lzdHJ5LnhJbmNlbnRpdml6ZWRBc3NldE5vdFJlZ2lzdGVyZWQAGwTkYGluY2VudGl2aXplZF9hc3NldGAgaXMgbm90IHJlZ2lzdGVyZWQgaW4gYXNzZXQgcmVnaXN0cnkuREluY29uc2lzdGVudFN0YXRlBAAJCQFYSW5jb25zaXN0ZW50U3RhdGVFcnJvcgAcCGUBQWN0aW9uIGNhbm5vdCBiZSBjb21wbGV0ZWQgYmVjYXVzZSB1bmV4cGVjdGVkIGVycm9yIGhhcyBvY2N1cnJlZC4gVGhpcyBzaG91bGQgYmUgcmVwb3J0ZWRgdG8gcHJvdG9jb2wgbWFpbnRhaW5lcnMuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkUKDFhwYWxsZXRfcmVsYXljaGFpbl9pbmZvGHBhbGxldBRFcnJvcgQEVAABAASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5JCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUARAEUwAABACdAQEYVmVjPFQ+AABNCgwocGFsbGV0X2RjYRhwYWxsZXQURXJyb3IEBFQAAUhAU2NoZWR1bGVOb3RGb3VuZAAABEhTY2hlZHVsZSBub3QgZXhpc3RgTWluVHJhZGVBbW91bnROb3RSZWFjaGVkAAEEjFRoZSBtaW4gdHJhZGUgYW1vdW50IGlzIG5vdCByZWFjaGVkJEZvcmJpZGRlbgACBNhGb3JiaWRkZW4gYXMgdGhlIHVzZXIgaXMgbm90IHRoZSBvd25lciBvZiB0aGUgc2NoZWR1bGVgQmxvY2tOdW1iZXJJc05vdEluRnV0dXJlAAME0FRoZSBuZXh0IGV4ZWN1dGlvbiBibG9jayBudW1iZXIgaXMgbm90IGluIHRoZSBmdXR1cmU0UHJpY2VVbnN0YWJsZQAEBDUBUHJpY2UgaXMgdW5zdGFibGUgYXMgcHJpY2UgY2hhbmdlIGZyb20gb3JhY2xlIGRhdGEgaXMgYmlnZ2VyIHRoYW4gbWF4IGFsbG93ZWQYQnVtcGVkAAUEsE9yZGVyIHdhcyByYW5kb21seSByZXNjaGVkdWxlZCB0byBuZXh0IGJsb2NrVENhbGN1bGF0aW5nUHJpY2VFcnJvcgAGBJRFcnJvciBvY2N1cnJlZCB3aGVuIGNhbGN1bGF0aW5nIHByaWNlhFRvdGFsQW1vdW50SXNTbWFsbGVyVGhhbk1pbkJ1ZGdldAAHBOhUaGUgdG90YWwgYW1vdW50IHRvIGJlIHJlc2VydmVkIGlzIHNtYWxsZXIgdGhhbiBtaW4gYnVkZ2V0MEJ1ZGdldFRvb0xvdwAIBNxUaGUgYnVkZ2V0IGlzIHRvbyBsb3cgZm9yIGV4ZWN1dGluZyBhdCBsZWFzdCB0d28gb3JkZXJzQE5vRnJlZUJsb2NrRm91bmQACQTIVGhlcmUgaXMgbm8gZnJlZSBibG9jayBmb3VuZCB0byBwbGFuIERDQSBleGVjdXRpb25ITWFudWFsbHlUZXJtaW5hdGVkAAoEtFRoZSBEQ0Egc2NoZWR1bGUgaGFzIGJlZW4gbWFudWFsbHkgdGVybWluYXRlZDxNYXhSZXRyeVJlYWNoZWQACwSoTWF4IG51bWJlciBvZiByZXRyaWVzIHJlYWNoZWQgZm9yIHNjaGVkdWxlRFRyYWRlTGltaXRSZWFjaGVkAAwEwEFic29sdXRlbHkgdHJhZGUgbGltaXQgcmVhY2hlZCwgbGVhZGluZyB0byByZXRyeVBTbGlwcGFnZUxpbWl0UmVhY2hlZAANBAkBU2xpcHBhZ2UgbGltaXQgY2FsY3VsYXRlZCBmcm9tIG9yYWNsZSBpcyByZWFjaGVkLCBsZWFkaW5nIHRvIHJldHJ5RE5vUGFyZW50SGFzaEZvdW5kAA4EuE5vIHBhcmVudCBoYXNoIGhhcyBiZWVuIGZvdW5kIGZyb20gcmVsYXkgY2hhaW4wSW52YWxpZFN0YXRlAA8EhQFFcnJvciB0aGF0IHNob3VsZCBub3QgcmVhbGx5IGhhcHBlbiBvbmx5IGluIGNhc2Ugb2YgaW52YWxpZCBzdGF0ZSBvZiB0aGUgc2NoZWR1bGUgc3RvcmFnZSBlbnRyaWVzOFBlcmlvZFRvb1Nob3J0ABAElFBlcmlvZCBzaG91bGQgYmUgbG9uZ2VyIHRoYW4gNSBibG9ja3NkU3RhYmlsaXR5VGhyZXNob2xkVG9vSGlnaAARBFkBU3RhYmlsaXR5IHRocmVzaG9sZCBjYW5ub3QgYmUgaGlnaGVyIHRoYW4gYE1heENvbmZpZ3VyYWJsZVByaWNlRGlmZmVyZW5jZUJldHdlZW5CbG9ja2AEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuUQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFVCgRTAAAEAF0KARhWZWM8VD4AAFUKBBhPcHRpb24EBFQBWQoBCBBOb25lAAAAEFNvbWUEAFkKAAABAABZCghAcGFsbGV0X3NjaGVkdWxlciRTY2hlZHVsZWQUEE5hbWUBBBBDYWxsATEFLEJsb2NrTnVtYmVyARA0UGFsbGV0c09yaWdpbgFZByRBY2NvdW50SWQBAAAUASBtYXliZV9pZGkCATBPcHRpb248TmFtZT4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGwxBQEQQ2FsbAABOG1heWJlX3BlcmlvZGljlQEBlE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyPj4AARhvcmlnaW5ZBwE0UGFsbGV0c09yaWdpbgAAXQoAAAJVCgBhCghAcGFsbGV0X3NjaGVkdWxlcixSZXRyeUNvbmZpZwQYUGVyaW9kARAADAE0dG90YWxfcmV0cmllcwgBCHU4AAEkcmVtYWluaW5nCAEIdTgAARhwZXJpb2QQARhQZXJpb2QAAGUKDEBwYWxsZXRfc2NoZWR1bGVyGHBhbGxldBRFcnJvcgQEVAABFEBGYWlsZWRUb1NjaGVkdWxlAAAEZEZhaWxlZCB0byBzY2hlZHVsZSBhIGNhbGwgTm90Rm91bmQAAQR8Q2Fubm90IGZpbmQgdGhlIHNjaGVkdWxlZCBjYWxsLlxUYXJnZXRCbG9ja051bWJlckluUGFzdAACBKRHaXZlbiB0YXJnZXQgYmxvY2sgbnVtYmVyIGlzIGluIHRoZSBwYXN0LkhSZXNjaGVkdWxlTm9DaGFuZ2UAAwTwUmVzY2hlZHVsZSBmYWlsZWQgYmVjYXVzZSBpdCBkb2VzIG5vdCBjaGFuZ2Ugc2NoZWR1bGVkIHRpbWUuFE5hbWVkAAQE0EF0dGVtcHQgdG8gdXNlIGEgbm9uLW5hbWVkIGZ1bmN0aW9uIG9uIGEgbmFtZWQgdGFzay4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuaQoAAAJtCgBtCgx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQgQW5jZXN0b3IEBEgBNAAMATh1c2VkX2JhbmR3aWR0aHEKATRVc2VkQmFuZHdpZHRoAAE4cGFyYV9oZWFkX2hhc2hBBQEkT3B0aW9uPEg+AAFgY29uc3VtZWRfZ29fYWhlYWRfc2lnbmFshQoBjE9wdGlvbjxyZWxheV9jaGFpbjo6VXBncmFkZUdvQWhlYWQ+AABxCgx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQ0VXNlZEJhbmR3aWR0aAAADAE0dW1wX21zZ19jb3VudBABDHUzMgABPHVtcF90b3RhbF9ieXRlcxABDHUzMgABNGhybXBfb3V0Z29pbmd1CgGMQlRyZWVNYXA8UGFyYUlkLCBIcm1wQ2hhbm5lbFVwZGF0ZT4AAHUKBCBCVHJlZU1hcAgESwGBAwRWAXkKAAQAfQoAAAB5Cgx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnRESHJtcENoYW5uZWxVcGRhdGUAAAgBJG1zZ19jb3VudBABDHUzMgABLHRvdGFsX2J5dGVzEAEMdTMyAAB9CgAAAoEKAIEKAAAECIEDeQoAhQoEGE9wdGlvbgQEVAGJCgEIEE5vbmUAAAAQU29tZQQAiQoAAAEAAIkKDExwb2xrYWRvdF9wcmltaXRpdmVzCHY3OFVwZ3JhZGVHb0FoZWFkAAEIFEFib3J0AAAAHEdvQWhlYWQAAQAAjQoMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1IdW5pbmNsdWRlZF9zZWdtZW50OFNlZ21lbnRUcmFja2VyBARIATQADAE4dXNlZF9iYW5kd2lkdGhxCgE0VXNlZEJhbmR3aWR0aAABOGhybXBfd2F0ZXJtYXJrzQEBgE9wdGlvbjxyZWxheV9jaGFpbjo6QmxvY2tOdW1iZXI+AAFgY29uc3VtZWRfZ29fYWhlYWRfc2lnbmFshQoBjE9wdGlvbjxyZWxheV9jaGFpbjo6VXBncmFkZUdvQWhlYWQ+AACRCgQYT3B0aW9uBARUAZUKAQgQTm9uZQAAABBTb21lBACVCgAAAQAAlQoMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjdIVXBncmFkZVJlc3RyaWN0aW9uAAEEHFByZXNlbnQAAAAAmQoMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1QcmVsYXlfc3RhdGVfc25hcHNob3RYTWVzc2FnaW5nU3RhdGVTbmFwc2hvdAAAEAEwZG1xX21xY19oZWFkNAFEcmVsYXlfY2hhaW46Okhhc2gAAZxyZWxheV9kaXNwYXRjaF9xdWV1ZV9yZW1haW5pbmdfY2FwYWNpdHmdCgGMUmVsYXlEaXNwYXRjaFF1ZXVlUmVtYWluaW5nQ2FwYWNpdHkAAUBpbmdyZXNzX2NoYW5uZWxzoQoBiFZlYzwoUGFyYUlkLCBBYnJpZGdlZEhybXBDaGFubmVsKT4AATxlZ3Jlc3NfY2hhbm5lbHOhCgGIVmVjPChQYXJhSWQsIEFicmlkZ2VkSHJtcENoYW5uZWwpPgAAnQoMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1QcmVsYXlfc3RhdGVfc25hcHNob3SMUmVsYXlEaXNwYXRjaFF1ZXVlUmVtYWluaW5nQ2FwYWNpdHkAAAgBPHJlbWFpbmluZ19jb3VudBABDHUzMgABOHJlbWFpbmluZ19zaXplEAEMdTMyAAChCgAAAqUKAKUKAAAECIEDqQoAqQoMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjdMQWJyaWRnZWRIcm1wQ2hhbm5lbAAAGAEwbWF4X2NhcGFjaXR5EAEMdTMyAAE4bWF4X3RvdGFsX3NpemUQAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplEAEMdTMyAAEkbXNnX2NvdW50EAEMdTMyAAEodG90YWxfc2l6ZRABDHUzMgABIG1xY19oZWFkQQUBME9wdGlvbjxIYXNoPgAArQoMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjdkQWJyaWRnZWRIb3N0Q29uZmlndXJhdGlvbgAAKAE0bWF4X2NvZGVfc2l6ZRABDHUzMgABSG1heF9oZWFkX2RhdGFfc2l6ZRABDHUzMgABWG1heF91cHdhcmRfcXVldWVfY291bnQQAQx1MzIAAVRtYXhfdXB3YXJkX3F1ZXVlX3NpemUQAQx1MzIAAVxtYXhfdXB3YXJkX21lc3NhZ2Vfc2l6ZRABDHUzMgABkG1heF91cHdhcmRfbWVzc2FnZV9udW1fcGVyX2NhbmRpZGF0ZRABDHUzMgABiGhybXBfbWF4X21lc3NhZ2VfbnVtX3Blcl9jYW5kaWRhdGUQAQx1MzIAAWx2YWxpZGF0aW9uX3VwZ3JhZGVfY29vbGRvd24QASxCbG9ja051bWJlcgABYHZhbGlkYXRpb25fdXBncmFkZV9kZWxheRABLEJsb2NrTnVtYmVyAAFQYXN5bmNfYmFja2luZ19wYXJhbXOxCgFIQXN5bmNCYWNraW5nUGFyYW1zAACxChBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2NzRhc3luY19iYWNraW5nSEFzeW5jQmFja2luZ1BhcmFtcwAACAFMbWF4X2NhbmRpZGF0ZV9kZXB0aBABDHUzMgABUGFsbG93ZWRfYW5jZXN0cnlfbGVuEAEMdTMyAAC1CgiUY3VtdWx1c19wcmltaXRpdmVzX3BhcmFjaGFpbl9pbmhlcmVudERNZXNzYWdlUXVldWVDaGFpbgAABAA0ASRSZWxheUhhc2gAALkKBCBCVHJlZU1hcAgESwGBAwRWAbUKAAQAvQoAAAC9CgAAAsEKAMEKAAAECIEDtQoAxQoAAALJCgDJCghgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzTE91dGJvdW5kSHJtcE1lc3NhZ2UECElkAYEDAAgBJHJlY2lwaWVudIEDAQhJZAABEGRhdGE4AVBzcF9zdGQ6OnZlYzo6VmVjPHU4PgAAzQoMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0YcGFsbGV0FEVycm9yBARUAAEgTE92ZXJsYXBwaW5nVXBncmFkZXMAAAQZAUF0dGVtcHQgdG8gdXBncmFkZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHdoaWxlIGV4aXN0aW5nIHVwZ3JhZGUgcGVuZGluZy5QUHJvaGliaXRlZEJ5UG9sa2Fkb3QAAQRNAVBvbGthZG90IGN1cnJlbnRseSBwcm9oaWJpdHMgdGhpcyBwYXJhY2hhaW4gZnJvbSB1cGdyYWRpbmcgaXRzIHZhbGlkYXRpb24gZnVuY3Rpb24uGFRvb0JpZwACCEUBVGhlIHN1cHBsaWVkIHZhbGlkYXRpb24gZnVuY3Rpb24gaGFzIGNvbXBpbGVkIGludG8gYSBibG9iIGxhcmdlciB0aGFuIFBvbGthZG90IGlzPHdpbGxpbmcgdG8gcnVuLmhWYWxpZGF0aW9uRGF0YU5vdEF2YWlsYWJsZQADBB0BVGhlIGluaGVyZW50IHdoaWNoIHN1cHBsaWVzIHRoZSB2YWxpZGF0aW9uIGRhdGEgZGlkIG5vdCBydW4gdGhpcyBibG9jay50SG9zdENvbmZpZ3VyYXRpb25Ob3RBdmFpbGFibGUABAQpAVRoZSBpbmhlcmVudCB3aGljaCBzdXBwbGllcyB0aGUgaG9zdCBjb25maWd1cmF0aW9uIGRpZCBub3QgcnVuIHRoaXMgYmxvY2suME5vdFNjaGVkdWxlZAAFBNhObyB2YWxpZGF0aW9uIGZ1bmN0aW9uIHVwZ3JhZGUgaXMgY3VycmVudGx5IHNjaGVkdWxlZC5ETm90aGluZ0F1dGhvcml6ZWQABgSQTm8gY29kZSB1cGdyYWRlIGhhcyBiZWVuIGF1dGhvcml6ZWQuMFVuYXV0aG9yaXplZAAHBLxUaGUgZ2l2ZW4gY29kZSB1cGdyYWRlIGhhcyBub3QgYmVlbiBhdXRob3JpemVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7RCgwocGFsbGV0X3hjbRhwYWxsZXQsUXVlcnlTdGF0dXMELEJsb2NrTnVtYmVyARABDBxQZW5kaW5nEAEkcmVzcG9uZGVybQMBRFZlcnNpb25lZExvY2F0aW9uAAFMbWF5YmVfbWF0Y2hfcXVlcmllctUKAWRPcHRpb248VmVyc2lvbmVkTG9jYXRpb24+AAEwbWF5YmVfbm90aWZ52QoBQE9wdGlvbjwodTgsIHU4KT4AARx0aW1lb3V0EAEsQmxvY2tOdW1iZXIAAAA8VmVyc2lvbk5vdGlmaWVyCAEYb3JpZ2lubQMBRFZlcnNpb25lZExvY2F0aW9uAAEkaXNfYWN0aXZlIAEQYm9vbAABABRSZWFkeQgBIHJlc3BvbnNl4QoBRFZlcnNpb25lZFJlc3BvbnNlAAEIYXQQASxCbG9ja051bWJlcgACAADVCgQYT3B0aW9uBARUAW0DAQgQTm9uZQAAABBTb21lBABtAwAAAQAA2QoEGE9wdGlvbgQEVAHdCgEIEE5vbmUAAAAQU29tZQQA3QoAAAEAAN0KAAAECAgIAOEKCAx4Y21EVmVyc2lvbmVkUmVzcG9uc2UAAQwIVjIEAKUGATB2Mjo6UmVzcG9uc2UAAgAIVjMEANEGATB2Mzo6UmVzcG9uc2UAAwAIVjQEANkCATB2NDo6UmVzcG9uc2UABAAA5QoAAAQIEG0DAOkKAAAEDDAoEADtCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAfEKBFMAAAQA9QoBGFZlYzxUPgAA8QoAAAQIbQMQAPUKAAAC8QoA+QoMKHBhbGxldF94Y20YcGFsbGV0VFZlcnNpb25NaWdyYXRpb25TdGFnZQABEFxNaWdyYXRlU3VwcG9ydGVkVmVyc2lvbgAAAFxNaWdyYXRlVmVyc2lvbk5vdGlmaWVycwABAFBOb3RpZnlDdXJyZW50VGFyZ2V0cwQA/QoBPE9wdGlvbjxWZWM8dTg+PgACAGhNaWdyYXRlQW5kTm90aWZ5T2xkVGFyZ2V0cwADAAD9CgQYT3B0aW9uBARUATgBCBBOb25lAAAAEFNvbWUEADgAAAEAAAELAAAEDBAAKQcABQsMKHBhbGxldF94Y20YcGFsbGV0aFJlbW90ZUxvY2tlZEZ1bmdpYmxlUmVjb3JkCEhDb25zdW1lcklkZW50aWZpZXIBkDBNYXhDb25zdW1lcnMAABABGGFtb3VudBgBEHUxMjgAARRvd25lcm0DAURWZXJzaW9uZWRMb2NhdGlvbgABGGxvY2tlcm0DAURWZXJzaW9uZWRMb2NhdGlvbgABJGNvbnN1bWVycwkLAdBCb3VuZGVkVmVjPChDb25zdW1lcklkZW50aWZpZXIsIHUxMjgpLCBNYXhDb25zdW1lcnM+AAAJCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQ0LBFMAAAQAEQsBGFZlYzxUPgAADQsAAAQIkBgAEQsAAAINCwAVCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUARkLBFMAAAQAHQsBGFZlYzxUPgAAGQsAAAQIGG0DAB0LAAACGQsAIQsMKHBhbGxldF94Y20YcGFsbGV0FEVycm9yBARUAAFgLFVucmVhY2hhYmxlAAAIXQFUaGUgZGVzaXJlZCBkZXN0aW5hdGlvbiB3YXMgdW5yZWFjaGFibGUsIGdlbmVyYWxseSBiZWNhdXNlIHRoZXJlIGlzIGEgbm8gd2F5IG9mIHJvdXRpbmcYdG8gaXQuLFNlbmRGYWlsdXJlAAEIQQFUaGVyZSB3YXMgc29tZSBvdGhlciBpc3N1ZSAoaS5lLiBub3QgdG8gZG8gd2l0aCByb3V0aW5nKSBpbiBzZW5kaW5nIHRoZSBtZXNzYWdlLshQZXJoYXBzIGEgbGFjayBvZiBzcGFjZSBmb3IgYnVmZmVyaW5nIHRoZSBtZXNzYWdlLiBGaWx0ZXJlZAACBJxUaGUgbWVzc2FnZSBleGVjdXRpb24gZmFpbHMgdGhlIGZpbHRlci5IVW53ZWlnaGFibGVNZXNzYWdlAAMEtFRoZSBtZXNzYWdlJ3Mgd2VpZ2h0IGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLmBEZXN0aW5hdGlvbk5vdEludmVydGlibGUABATcVGhlIGRlc3RpbmF0aW9uIGBMb2NhdGlvbmAgcHJvdmlkZWQgY2Fubm90IGJlIGludmVydGVkLhRFbXB0eQAFBIBUaGUgYXNzZXRzIHRvIGJlIHNlbnQgYXJlIGVtcHR5LjhDYW5ub3RSZWFuY2hvcgAGBDUBQ291bGQgbm90IHJlLWFuY2hvciB0aGUgYXNzZXRzIHRvIGRlY2xhcmUgdGhlIGZlZXMgZm9yIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi40VG9vTWFueUFzc2V0cwAHBMRUb28gbWFueSBhc3NldHMgaGF2ZSBiZWVuIGF0dGVtcHRlZCBmb3IgdHJhbnNmZXIuNEludmFsaWRPcmlnaW4ACAR4T3JpZ2luIGlzIGludmFsaWQgZm9yIHNlbmRpbmcuKEJhZFZlcnNpb24ACQQhAVRoZSB2ZXJzaW9uIG9mIHRoZSBgVmVyc2lvbmVkYCB2YWx1ZSB1c2VkIGlzIG5vdCBhYmxlIHRvIGJlIGludGVycHJldGVkLixCYWRMb2NhdGlvbgAKCEEBVGhlIGdpdmVuIGxvY2F0aW9uIGNvdWxkIG5vdCBiZSB1c2VkIChlLmcuIGJlY2F1c2UgaXQgY2Fubm90IGJlIGV4cHJlc3NlZCBpbiB0aGVgZGVzaXJlZCB2ZXJzaW9uIG9mIFhDTSkuOE5vU3Vic2NyaXB0aW9uAAsEvFRoZSByZWZlcmVuY2VkIHN1YnNjcmlwdGlvbiBjb3VsZCBub3QgYmUgZm91bmQuREFscmVhZHlTdWJzY3JpYmVkAAwEEQFUaGUgbG9jYXRpb24gaXMgaW52YWxpZCBzaW5jZSBpdCBhbHJlYWR5IGhhcyBhIHN1YnNjcmlwdGlvbiBmcm9tIHVzLlhDYW5ub3RDaGVja091dFRlbGVwb3J0AA0EKQFDb3VsZCBub3QgY2hlY2stb3V0IHRoZSBhc3NldHMgZm9yIHRlbGVwb3J0YXRpb24gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluLihMb3dCYWxhbmNlAA4EQQFUaGUgb3duZXIgZG9lcyBub3Qgb3duIChhbGwpIG9mIHRoZSBhc3NldCB0aGF0IHRoZXkgd2lzaCB0byBkbyB0aGUgb3BlcmF0aW9uIG9uLjBUb29NYW55TG9ja3MADwTAVGhlIGFzc2V0IG93bmVyIGhhcyB0b28gbWFueSBsb2NrcyBvbiB0aGUgYXNzZXQuTEFjY291bnROb3RTb3ZlcmVpZ24AEAQxAVRoZSBnaXZlbiBhY2NvdW50IGlzIG5vdCBhbiBpZGVudGlmaWFibGUgc292ZXJlaWduIGFjY291bnQgZm9yIGFueSBsb2NhdGlvbi4oRmVlc05vdE1ldAARBCkBVGhlIG9wZXJhdGlvbiByZXF1aXJlZCBmZWVzIHRvIGJlIHBhaWQgd2hpY2ggdGhlIGluaXRpYXRvciBjb3VsZCBub3QgbWVldC4wTG9ja05vdEZvdW5kABIE9EEgcmVtb3RlIGxvY2sgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBkYXRhIGNvdWxkIG5vdCBiZSBmb3VuZC4USW5Vc2UAEwRJAVRoZSB1bmxvY2sgb3BlcmF0aW9uIGNhbm5vdCBzdWNjZWVkIGJlY2F1c2UgdGhlcmUgYXJlIHN0aWxsIGNvbnN1bWVycyBvZiB0aGUgbG9jay5oSW52YWxpZEFzc2V0VW5rbm93blJlc2VydmUAFQTwSW52YWxpZCBhc3NldCwgcmVzZXJ2ZSBjaGFpbiBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCBmb3IgaXQueEludmFsaWRBc3NldFVuc3VwcG9ydGVkUmVzZXJ2ZQAWBEUBSW52YWxpZCBhc3NldCwgZG8gbm90IHN1cHBvcnQgcmVtb3RlIGFzc2V0IHJlc2VydmVzIHdpdGggZGlmZmVyZW50IGZlZXMgcmVzZXJ2ZXMuPFRvb01hbnlSZXNlcnZlcwAXBEkBVG9vIG1hbnkgYXNzZXRzIHdpdGggZGlmZmVyZW50IHJlc2VydmUgbG9jYXRpb25zIGhhdmUgYmVlbiBhdHRlbXB0ZWQgZm9yIHRyYW5zZmVyLmBMb2NhbEV4ZWN1dGlvbkluY29tcGxldGUAGAR8TG9jYWwgWENNIGV4ZWN1dGlvbiBpbmNvbXBsZXRlLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4lCwxMYm91bmRlZF9jb2xsZWN0aW9uc0Rib3VuZGVkX2J0cmVlX3NldDxCb3VuZGVkQlRyZWVTZXQIBFQBgQMEUwAABAApCwEsQlRyZWVTZXQ8VD4AACkLBCBCVHJlZVNldAQEVAGBAwAEAC0LAAAALQsAAAKBAwAxCwAAAjULADULCGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlWE91dGJvdW5kQ2hhbm5lbERldGFpbHMAABQBJHJlY2lwaWVudIEDARhQYXJhSWQAARRzdGF0ZTkLATRPdXRib3VuZFN0YXRlAAE0c2lnbmFsc19leGlzdCABEGJvb2wAASxmaXJzdF9pbmRleNwBDHUxNgABKGxhc3RfaW5kZXjcAQx1MTYAADkLCGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlNE91dGJvdW5kU3RhdGUAAQgIT2sAAAAkU3VzcGVuZGVkAAEAAD0LAAAECIED3ABBCwhkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZTxRdWV1ZUNvbmZpZ0RhdGEAAAwBRHN1c3BlbmRfdGhyZXNob2xkEAEMdTMyAAE4ZHJvcF90aHJlc2hvbGQQAQx1MzIAAUByZXN1bWVfdGhyZXNob2xkEAEMdTMyAABFCwxkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZRhwYWxsZXQURXJyb3IEBFQAAQw4QmFkUXVldWVDb25maWcAAAQRAVNldHRpbmcgdGhlIHF1ZXVlIGNvbmZpZyBmYWlsZWQgc2luY2Ugb25lIG9mIGl0cyB2YWx1ZXMgd2FzIGludmFsaWQuQEFscmVhZHlTdXNwZW5kZWQAAQSMVGhlIGV4ZWN1dGlvbiBpcyBhbHJlYWR5IHN1c3BlbmRlZC44QWxyZWFkeVJlc3VtZWQAAgSEVGhlIGV4ZWN1dGlvbiBpcyBhbHJlYWR5IHJlc3VtZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkkLCFBwYWxsZXRfbWVzc2FnZV9xdWV1ZSRCb29rU3RhdGUENE1lc3NhZ2VPcmlnaW4BfQMAGAEUYmVnaW4QASRQYWdlSW5kZXgAAQxlbmQQASRQYWdlSW5kZXgAARRjb3VudBABJFBhZ2VJbmRleAABQHJlYWR5X25laWdoYm91cnNNCwGET3B0aW9uPE5laWdoYm91cnM8TWVzc2FnZU9yaWdpbj4+AAE0bWVzc2FnZV9jb3VudDABDHU2NAABEHNpemUwAQx1NjQAAE0LBBhPcHRpb24EBFQBUQsBCBBOb25lAAAAEFNvbWUEAFELAAABAABRCwhQcGFsbGV0X21lc3NhZ2VfcXVldWUoTmVpZ2hib3VycwQ0TWVzc2FnZU9yaWdpbgF9AwAIARBwcmV2fQMBNE1lc3NhZ2VPcmlnaW4AARBuZXh0fQMBNE1lc3NhZ2VPcmlnaW4AAFULAAAECH0DEABZCwhQcGFsbGV0X21lc3NhZ2VfcXVldWUQUGFnZQgQU2l6ZQEQIEhlYXBTaXplAAAYASRyZW1haW5pbmcQARBTaXplAAE4cmVtYWluaW5nX3NpemUQARBTaXplAAEsZmlyc3RfaW5kZXgQARBTaXplAAEUZmlyc3QQARBTaXplAAEQbGFzdBABEFNpemUAARBoZWFwXQsBnEJvdW5kZWRWZWM8dTgsIEludG9VMzI8SGVhcFNpemUsIFNpemU+PgAAXQsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AABhCwxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0FEVycm9yBARUAAEkLE5vdFJlYXBhYmxlAAAISQFQYWdlIGlzIG5vdCByZWFwYWJsZSBiZWNhdXNlIGl0IGhhcyBpdGVtcyByZW1haW5pbmcgdG8gYmUgcHJvY2Vzc2VkIGFuZCBpcyBub3Qgb2xkHGVub3VnaC4YTm9QYWdlAAEEhFBhZ2UgdG8gYmUgcmVhcGVkIGRvZXMgbm90IGV4aXN0LiROb01lc3NhZ2UAAgSoVGhlIHJlZmVyZW5jZWQgbWVzc2FnZSBjb3VsZCBub3QgYmUgZm91bmQuQEFscmVhZHlQcm9jZXNzZWQAAwQBAVRoZSBtZXNzYWdlIHdhcyBhbHJlYWR5IHByb2Nlc3NlZCBhbmQgY2Fubm90IGJlIHByb2Nlc3NlZCBhZ2Fpbi4YUXVldWVkAAQErFRoZSBtZXNzYWdlIGlzIHF1ZXVlZCBmb3IgZnV0dXJlIGV4ZWN1dGlvbi5ISW5zdWZmaWNpZW50V2VpZ2h0AAUEGQFUaGVyZSBpcyB0ZW1wb3JhcmlseSBub3QgZW5vdWdoIHdlaWdodCB0byBjb250aW51ZSBzZXJ2aWNpbmcgbWVzc2FnZXMuYFRlbXBvcmFyaWx5VW5wcm9jZXNzYWJsZQAGEKhUaGlzIG1lc3NhZ2UgaXMgdGVtcG9yYXJpbHkgdW5wcm9jZXNzYWJsZS4AWQFTdWNoIGVycm9ycyBhcmUgZXhwZWN0ZWQsIGJ1dCBub3QgZ3VhcmFudGVlZCwgdG8gcmVzb2x2ZSB0aGVtc2VsdmVzIGV2ZW50dWFsbHkgdGhyb3VnaCRyZXRyeWluZy4sUXVldWVQYXVzZWQABwzsVGhlIHF1ZXVlIGlzIHBhdXNlZCBhbmQgbm8gbWVzc2FnZSBjYW4gYmUgZXhlY3V0ZWQgZnJvbSBpdC4AHQFUaGlzIGNhbiBjaGFuZ2UgYXQgYW55IHRpbWUgYW5kIG1heSByZXNvbHZlIGluIHRoZSBmdXR1cmUgYnkgcmUtdHJ5aW5nLkxSZWN1cnNpdmVEaXNhbGxvd2VkAAgEMQFBbm90aGVyIGNhbGwgaXMgaW4gcHJvZ3Jlc3MgYW5kIG5lZWRzIHRvIGZpbmlzaCBiZWZvcmUgdGhpcyBjYWxsIGNhbiBoYXBwZW4uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LmULDCBvcm1sX3hjbRhtb2R1bGUURXJyb3IEBFQAAQwsVW5yZWFjaGFibGUAAAgNAVRoZSBtZXNzYWdlIGFuZCBkZXN0aW5hdGlvbiBjb21iaW5hdGlvbiB3YXMgbm90IHJlY29nbml6ZWQgYXMgYmVpbmcocmVhY2hhYmxlLixTZW5kRmFpbHVyZQABCAUBVGhlIG1lc3NhZ2UgYW5kIGRlc3RpbmF0aW9uIHdhcyByZWNvZ25pemVkIGFzIGJlaW5nIHJlYWNoYWJsZSBidXSUdGhlIG9wZXJhdGlvbiBjb3VsZCBub3QgYmUgY29tcGxldGVkLihCYWRWZXJzaW9uAAII7FRoZSB2ZXJzaW9uIG9mIHRoZSBgVmVyc2lvbmVkYCB2YWx1ZSB1c2VkIGlzIG5vdCBhYmxlIHRvIGJlMGludGVycHJldGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5pCwwwb3JtbF94dG9rZW5zGG1vZHVsZRRFcnJvcgQEVAABUERBc3NldEhhc05vUmVzZXJ2ZQAABHhBc3NldCBoYXMgbm8gcmVzZXJ2ZSBsb2NhdGlvbi5UTm90Q3Jvc3NDaGFpblRyYW5zZmVyAAEEZE5vdCBjcm9zcy1jaGFpbiB0cmFuc2Zlci4sSW52YWxpZERlc3QAAgR0SW52YWxpZCB0cmFuc2ZlciBkZXN0aW5hdGlvbi6ETm90Q3Jvc3NDaGFpblRyYW5zZmVyYWJsZUN1cnJlbmN5AAMEpEN1cnJlbmN5IGlzIG5vdCBjcm9zcy1jaGFpbiB0cmFuc2ZlcmFibGUuSFVud2VpZ2hhYmxlTWVzc2FnZQAEBLRUaGUgbWVzc2FnZSdzIHdlaWdodCBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC5IWGNtRXhlY3V0aW9uRmFpbGVkAAUEVFhDTSBleGVjdXRpb24gZmFpbGVkLjhDYW5ub3RSZWFuY2hvcgAGCOhDb3VsZCBub3QgcmUtYW5jaG9yIHRoZSBhc3NldHMgdG8gZGVjbGFyZSB0aGUgZmVlcyBmb3IgdGhlSGRlc3RpbmF0aW9uIGNoYWluLjxJbnZhbGlkQW5jZXN0cnkABwTEQ291bGQgbm90IGdldCBhbmNlc3RyeSBvZiBhc3NldCByZXNlcnZlIGxvY2F0aW9uLjBJbnZhbGlkQXNzZXQACARUVGhlIEFzc2V0IGlzIGludmFsaWQuYERlc3RpbmF0aW9uTm90SW52ZXJ0aWJsZQAJBNxUaGUgZGVzdGluYXRpb24gYExvY2F0aW9uYCBwcm92aWRlZCBjYW5ub3QgYmUgaW52ZXJ0ZWQuKEJhZFZlcnNpb24ACgjsVGhlIHZlcnNpb24gb2YgdGhlIGBWZXJzaW9uZWRgIHZhbHVlIHVzZWQgaXMgbm90IGFibGUgdG8gYmUwaW50ZXJwcmV0ZWQudERpc3RpbmN0UmVzZXJ2ZUZvckFzc2V0QW5kRmVlAAsI/FdlIHRyaWVkIHNlbmRpbmcgZGlzdGluY3QgYXNzZXQgYW5kIGZlZSBidXQgdGhleSBoYXZlIGRpZmZlcmVudDxyZXNlcnZlIGNoYWlucy4cWmVyb0ZlZQAMBEBUaGUgZmVlIGlzIHplcm8uKFplcm9BbW91bnQADQSUVGhlIHRyYW5zZmVyaW5nIGFzc2V0IGFtb3VudCBpcyB6ZXJvLlhUb29NYW55QXNzZXRzQmVpbmdTZW50AA4E0FRoZSBudW1iZXIgb2YgYXNzZXRzIHRvIGJlIHNlbnQgaXMgb3ZlciB0aGUgbWF4aW11bS5UQXNzZXRJbmRleE5vbkV4aXN0ZW50AA8E2FRoZSBzcGVjaWZpZWQgaW5kZXggZG9lcyBub3QgZXhpc3QgaW4gYSBBc3NldHMgc3RydWN0LjBGZWVOb3RFbm91Z2gAEARIRmVlIGlzIG5vdCBlbm91Z2guUE5vdFN1cHBvcnRlZExvY2F0aW9uABEEWE5vdCBzdXBwb3J0ZWQgTG9jYXRpb25MTWluWGNtRmVlTm90RGVmaW5lZAASBNRNaW5YY21GZWUgbm90IHJlZ2lzdGVyZWQgZm9yIGNlcnRhaW4gcmVzZXJ2ZSBsb2NhdGlvbixSYXRlTGltaXRlZAATBKRBc3NldCB0cmFuc2ZlciBpcyBsaW1pdGVkIGJ5IFJhdGVMaW1pdGVyLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5tCwAABAh9An0CAHELAAAECH0COAB1CwxMb3JtbF91bmtub3duX3Rva2Vucxhtb2R1bGUURXJyb3IEBFQAAQw0QmFsYW5jZVRvb0xvdwAABFxUaGUgYmFsYW5jZSBpcyB0b28gbG93LjxCYWxhbmNlT3ZlcmZsb3cAAQS0VGhlIG9wZXJhdGlvbiB3aWxsIGNhdXNlIGJhbGFuY2UgdG8gb3ZlcmZsb3cuOFVuaGFuZGxlZEFzc2V0AAIEQFVuaGFuZGxlZCBhc3NldC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQueQsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAF9CwRTAAAEAIELARhWZWM8VD4AAH0LDGRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uGHBhbGxldDRDYW5kaWRhdGVJbmZvCCRBY2NvdW50SWQBABxCYWxhbmNlARgACAEMd2hvAAEkQWNjb3VudElkAAEcZGVwb3NpdBgBHEJhbGFuY2UAAIELAAACfQsAhQsMZHBhbGxldF9jb2xsYXRvcl9zZWxlY3Rpb24YcGFsbGV0FEVycm9yBARUAAFERFRvb01hbnlDYW5kaWRhdGVzAAAEjFRoZSBwYWxsZXQgaGFzIHRvbyBtYW55IGNhbmRpZGF0ZXMuXFRvb0Zld0VsaWdpYmxlQ29sbGF0b3JzAAEErExlYXZpbmcgd291bGQgcmVzdWx0IGluIHRvbyBmZXcgY2FuZGlkYXRlcy5AQWxyZWFkeUNhbmRpZGF0ZQACBHxBY2NvdW50IGlzIGFscmVhZHkgYSBjYW5kaWRhdGUuME5vdENhbmRpZGF0ZQADBGxBY2NvdW50IGlzIG5vdCBhIGNhbmRpZGF0ZS5QVG9vTWFueUludnVsbmVyYWJsZXMABASEVGhlcmUgYXJlIHRvbyBtYW55IEludnVsbmVyYWJsZXMuTEFscmVhZHlJbnZ1bG5lcmFibGUABQSMQWNjb3VudCBpcyBhbHJlYWR5IGFuIEludnVsbmVyYWJsZS48Tm90SW52dWxuZXJhYmxlAAYEfEFjY291bnQgaXMgbm90IGFuIEludnVsbmVyYWJsZS5cTm9Bc3NvY2lhdGVkVmFsaWRhdG9ySWQABwScQWNjb3VudCBoYXMgbm8gYXNzb2NpYXRlZCB2YWxpZGF0b3IgSUQuWFZhbGlkYXRvck5vdFJlZ2lzdGVyZWQACASMVmFsaWRhdG9yIElEIGlzIG5vdCB5ZXQgcmVnaXN0ZXJlZC5sSW5zZXJ0VG9DYW5kaWRhdGVMaXN0RmFpbGVkAAkEnENvdWxkIG5vdCBpbnNlcnQgaW4gdGhlIGNhbmRpZGF0ZSBsaXN0LnRSZW1vdmVGcm9tQ2FuZGlkYXRlTGlzdEZhaWxlZAAKBKRDb3VsZCBub3QgcmVtb3ZlIGZyb20gdGhlIGNhbmRpZGF0ZSBsaXN0LjREZXBvc2l0VG9vTG93AAsE9E5ldyBkZXBvc2l0IGFtb3VudCB3b3VsZCBiZSBiZWxvdyB0aGUgbWluaW11bSBjYW5kaWRhY3kgYm9uZC5kVXBkYXRlQ2FuZGlkYXRlTGlzdEZhaWxlZAAMBJBDb3VsZCBub3QgdXBkYXRlIHRoZSBjYW5kaWRhdGUgbGlzdC5ASW5zdWZmaWNpZW50Qm9uZAANBCkBRGVwb3NpdCBhbW91bnQgaXMgdG9vIGxvdyB0byB0YWtlIHRoZSB0YXJnZXQncyBzbG90IGluIHRoZSBjYW5kaWRhdGUgbGlzdC5QVGFyZ2V0SXNOb3RDYW5kaWRhdGUADgQtAVRoZSB0YXJnZXQgYWNjb3VudCB0byBiZSByZXBsYWNlZCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QgaXMgbm90IGEgY2FuZGlkYXRlLkBJZGVudGljYWxEZXBvc2l0AA8EDQFUaGUgdXBkYXRlZCBkZXBvc2l0IGFtb3VudCBpcyBlcXVhbCB0byB0aGUgYW1vdW50IGFscmVhZHkgcmVzZXJ2ZWQuQEludmFsaWRVbnJlc2VydmUAEAQ9AUNhbm5vdCBsb3dlciBjYW5kaWRhY3kgYm9uZCB3aGlsZSBvY2N1cHlpbmcgYSBmdXR1cmUgY29sbGF0b3Igc2xvdCBpbiB0aGUgbGlzdC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuiQsAAAKNCwCNCwAABAgATQcAkQsAAAQIlQs4AJULDBxzcF9jb3JlGGNyeXB0byRLZXlUeXBlSWQAAAQASAEcW3U4OyA0XQAAmQsMOHBhbGxldF9zZXNzaW9uGHBhbGxldBRFcnJvcgQEVAABFDBJbnZhbGlkUHJvb2YAAARgSW52YWxpZCBvd25lcnNoaXAgcHJvb2YuXE5vQXNzb2NpYXRlZFZhbGlkYXRvcklkAAEEnE5vIGFzc29jaWF0ZWQgdmFsaWRhdG9yIElEIGZvciBhY2NvdW50LjREdXBsaWNhdGVkS2V5AAIEZFJlZ2lzdGVyZWQgZHVwbGljYXRlIGtleS4YTm9LZXlzAAMEpE5vIGtleXMgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGFjY291bnQuJE5vQWNjb3VudAAEBBkBS2V5IHNldHRpbmcgYWNjb3VudCBpcyBub3QgbGl2ZSwgc28gaXQncyBpbXBvc3NpYmxlIHRvIGFzc29jaWF0ZSBrZXlzLgR0RXJyb3IgZm9yIHRoZSBzZXNzaW9uIHBhbGxldC6dCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAVEHBFMAAAQAoQsBGFZlYzxUPgAAoQsAAAJRBwClCwhIc3BfY29uc2Vuc3VzX3Nsb3RzEFNsb3QAAAQAMAEMdTY0AACpCwAABAilCxAArQsMTGJvdW5kZWRfY29sbGVjdGlvbnNEYm91bmRlZF9idHJlZV9tYXA8Qm91bmRlZEJUcmVlTWFwDARLAbELBFYBtQsEUwAABADFCwE4QlRyZWVNYXA8SywgVj4AALELAAAECPEBkQEAtQsMRHBhbGxldF9lbWFfb3JhY2xlFHR5cGVzLE9yYWNsZUVudHJ5BCxCbG9ja051bWJlcgEQABABFHByaWNluQsBFFByaWNlAAEYdm9sdW1lvQsBPFZvbHVtZTxCYWxhbmNlPgABJGxpcXVpZGl0ecELAUhMaXF1aWRpdHk8QmFsYW5jZT4AASh1cGRhdGVkX2F0EAEsQmxvY2tOdW1iZXIAALkLDDRoeWRyYV9keF9tYXRoFHJhdGlvFFJhdGlvAAAIAQRuGAEQdTEyOAABBGQYARB1MTI4AAC9Cww4aHlkcmFkeF90cmFpdHMYb3JhY2xlGFZvbHVtZQQcQmFsYW5jZQEYABABEGFfaW4YARxCYWxhbmNlAAEUYl9vdXQYARxCYWxhbmNlAAEUYV9vdXQYARxCYWxhbmNlAAEQYl9pbhgBHEJhbGFuY2UAAMELDDhoeWRyYWR4X3RyYWl0cxhvcmFjbGUkTGlxdWlkaXR5BBxCYWxhbmNlARgACAEEYRgBHEJhbGFuY2UAAQRiGAEcQmFsYW5jZQAAxQsEIEJUcmVlTWFwCARLAbELBFYBtQsABADJCwAAAMkLAAACzQsAzQsAAAQIsQu1CwDRCwAABAzxAZEBDQkA1QsAAAQItQsQANkLDExib3VuZGVkX2NvbGxlY3Rpb25zRGJvdW5kZWRfYnRyZWVfc2V0PEJvdW5kZWRCVHJlZVNldAgEVAGxCwRTAAAEAN0LASxCVHJlZVNldDxUPgAA3QsEIEJUcmVlU2V0BARUAbELAAQA4QsAAADhCwAAArELAOULDERwYWxsZXRfZW1hX29yYWNsZRhwYWxsZXQURXJyb3IEBFQAAQxQVG9vTWFueVVuaXF1ZUVudHJpZXMAAABAT25UcmFkZVZhbHVlWmVybwABADhPcmFjbGVOb3RGb3VuZAACAASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7pCwAABCjtC/EL9Qv5C/0LBQwJDA0MEQwVDADtCxAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnNUY2hlY2tfbm9uX3plcm9fc2VuZGVySENoZWNrTm9uWmVyb1NlbmRlcgQEVAAAAADxCxAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnNIY2hlY2tfc3BlY192ZXJzaW9uQENoZWNrU3BlY1ZlcnNpb24EBFQAAAAA9QsQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zQGNoZWNrX3R4X3ZlcnNpb244Q2hlY2tUeFZlcnNpb24EBFQAAAAA+QsQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zNGNoZWNrX2dlbmVzaXMwQ2hlY2tHZW5lc2lzBARUAAAAAP0LEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uczxjaGVja19tb3J0YWxpdHk4Q2hlY2tNb3J0YWxpdHkEBFQAAAQAAQwBDEVyYQAAAQwQKHNwX3J1bnRpbWUcZ2VuZXJpYwxlcmEMRXJhAAEBBCBJbW1vcnRhbAAAABxNb3J0YWwxBAAIAAABABxNb3J0YWwyBAAIAAACABxNb3J0YWwzBAAIAAADABxNb3J0YWw0BAAIAAAEABxNb3J0YWw1BAAIAAAFABxNb3J0YWw2BAAIAAAGABxNb3J0YWw3BAAIAAAHABxNb3J0YWw4BAAIAAAIABxNb3J0YWw5BAAIAAAJACBNb3J0YWwxMAQACAAACgAgTW9ydGFsMTEEAAgAAAsAIE1vcnRhbDEyBAAIAAAMACBNb3J0YWwxMwQACAAADQAgTW9ydGFsMTQEAAgAAA4AIE1vcnRhbDE1BAAIAAAPACBNb3J0YWwxNgQACAAAEAAgTW9ydGFsMTcEAAgAABEAIE1vcnRhbDE4BAAIAAASACBNb3J0YWwxOQQACAAAEwAgTW9ydGFsMjAEAAgAABQAIE1vcnRhbDIxBAAIAAAVACBNb3J0YWwyMgQACAAAFgAgTW9ydGFsMjMEAAgAABcAIE1vcnRhbDI0BAAIAAAYACBNb3J0YWwyNQQACAAAGQAgTW9ydGFsMjYEAAgAABoAIE1vcnRhbDI3BAAIAAAbACBNb3J0YWwyOAQACAAAHAAgTW9ydGFsMjkEAAgAAB0AIE1vcnRhbDMwBAAIAAAeACBNb3J0YWwzMQQACAAAHwAgTW9ydGFsMzIEAAgAACAAIE1vcnRhbDMzBAAIAAAhACBNb3J0YWwzNAQACAAAIgAgTW9ydGFsMzUEAAgAACMAIE1vcnRhbDM2BAAIAAAkACBNb3J0YWwzNwQACAAAJQAgTW9ydGFsMzgEAAgAACYAIE1vcnRhbDM5BAAIAAAnACBNb3J0YWw0MAQACAAAKAAgTW9ydGFsNDEEAAgAACkAIE1vcnRhbDQyBAAIAAAqACBNb3J0YWw0MwQACAAAKwAgTW9ydGFsNDQEAAgAACwAIE1vcnRhbDQ1BAAIAAAtACBNb3J0YWw0NgQACAAALgAgTW9ydGFsNDcEAAgAAC8AIE1vcnRhbDQ4BAAIAAAwACBNb3J0YWw0OQQACAAAMQAgTW9ydGFsNTAEAAgAADIAIE1vcnRhbDUxBAAIAAAzACBNb3J0YWw1MgQACAAANAAgTW9ydGFsNTMEAAgAADUAIE1vcnRhbDU0BAAIAAA2ACBNb3J0YWw1NQQACAAANwAgTW9ydGFsNTYEAAgAADgAIE1vcnRhbDU3BAAIAAA5ACBNb3J0YWw1OAQACAAAOgAgTW9ydGFsNTkEAAgAADsAIE1vcnRhbDYwBAAIAAA8ACBNb3J0YWw2MQQACAAAPQAgTW9ydGFsNjIEAAgAAD4AIE1vcnRhbDYzBAAIAAA/ACBNb3J0YWw2NAQACAAAQAAgTW9ydGFsNjUEAAgAAEEAIE1vcnRhbDY2BAAIAABCACBNb3J0YWw2NwQACAAAQwAgTW9ydGFsNjgEAAgAAEQAIE1vcnRhbDY5BAAIAABFACBNb3J0YWw3MAQACAAARgAgTW9ydGFsNzEEAAgAAEcAIE1vcnRhbDcyBAAIAABIACBNb3J0YWw3MwQACAAASQAgTW9ydGFsNzQEAAgAAEoAIE1vcnRhbDc1BAAIAABLACBNb3J0YWw3NgQACAAATAAgTW9ydGFsNzcEAAgAAE0AIE1vcnRhbDc4BAAIAABOACBNb3J0YWw3OQQACAAATwAgTW9ydGFsODAEAAgAAFAAIE1vcnRhbDgxBAAIAABRACBNb3J0YWw4MgQACAAAUgAgTW9ydGFsODMEAAgAAFMAIE1vcnRhbDg0BAAIAABUACBNb3J0YWw4NQQACAAAVQAgTW9ydGFsODYEAAgAAFYAIE1vcnRhbDg3BAAIAABXACBNb3J0YWw4OAQACAAAWAAgTW9ydGFsODkEAAgAAFkAIE1vcnRhbDkwBAAIAABaACBNb3J0YWw5MQQACAAAWwAgTW9ydGFsOTIEAAgAAFwAIE1vcnRhbDkzBAAIAABdACBNb3J0YWw5NAQACAAAXgAgTW9ydGFsOTUEAAgAAF8AIE1vcnRhbDk2BAAIAABgACBNb3J0YWw5NwQACAAAYQAgTW9ydGFsOTgEAAgAAGIAIE1vcnRhbDk5BAAIAABjACRNb3J0YWwxMDAEAAgAAGQAJE1vcnRhbDEwMQQACAAAZQAkTW9ydGFsMTAyBAAIAABmACRNb3J0YWwxMDMEAAgAAGcAJE1vcnRhbDEwNAQACAAAaAAkTW9ydGFsMTA1BAAIAABpACRNb3J0YWwxMDYEAAgAAGoAJE1vcnRhbDEwNwQACAAAawAkTW9ydGFsMTA4BAAIAABsACRNb3J0YWwxMDkEAAgAAG0AJE1vcnRhbDExMAQACAAAbgAkTW9ydGFsMTExBAAIAABvACRNb3J0YWwxMTIEAAgAAHAAJE1vcnRhbDExMwQACAAAcQAkTW9ydGFsMTE0BAAIAAByACRNb3J0YWwxMTUEAAgAAHMAJE1vcnRhbDExNgQACAAAdAAkTW9ydGFsMTE3BAAIAAB1ACRNb3J0YWwxMTgEAAgAAHYAJE1vcnRhbDExOQQACAAAdwAkTW9ydGFsMTIwBAAIAAB4ACRNb3J0YWwxMjEEAAgAAHkAJE1vcnRhbDEyMgQACAAAegAkTW9ydGFsMTIzBAAIAAB7ACRNb3J0YWwxMjQEAAgAAHwAJE1vcnRhbDEyNQQACAAAfQAkTW9ydGFsMTI2BAAIAAB+ACRNb3J0YWwxMjcEAAgAAH8AJE1vcnRhbDEyOAQACAAAgAAkTW9ydGFsMTI5BAAIAACBACRNb3J0YWwxMzAEAAgAAIIAJE1vcnRhbDEzMQQACAAAgwAkTW9ydGFsMTMyBAAIAACEACRNb3J0YWwxMzMEAAgAAIUAJE1vcnRhbDEzNAQACAAAhgAkTW9ydGFsMTM1BAAIAACHACRNb3J0YWwxMzYEAAgAAIgAJE1vcnRhbDEzNwQACAAAiQAkTW9ydGFsMTM4BAAIAACKACRNb3J0YWwxMzkEAAgAAIsAJE1vcnRhbDE0MAQACAAAjAAkTW9ydGFsMTQxBAAIAACNACRNb3J0YWwxNDIEAAgAAI4AJE1vcnRhbDE0MwQACAAAjwAkTW9ydGFsMTQ0BAAIAACQACRNb3J0YWwxNDUEAAgAAJEAJE1vcnRhbDE0NgQACAAAkgAkTW9ydGFsMTQ3BAAIAACTACRNb3J0YWwxNDgEAAgAAJQAJE1vcnRhbDE0OQQACAAAlQAkTW9ydGFsMTUwBAAIAACWACRNb3J0YWwxNTEEAAgAAJcAJE1vcnRhbDE1MgQACAAAmAAkTW9ydGFsMTUzBAAIAACZACRNb3J0YWwxNTQEAAgAAJoAJE1vcnRhbDE1NQQACAAAmwAkTW9ydGFsMTU2BAAIAACcACRNb3J0YWwxNTcEAAgAAJ0AJE1vcnRhbDE1OAQACAAAngAkTW9ydGFsMTU5BAAIAACfACRNb3J0YWwxNjAEAAgAAKAAJE1vcnRhbDE2MQQACAAAoQAkTW9ydGFsMTYyBAAIAACiACRNb3J0YWwxNjMEAAgAAKMAJE1vcnRhbDE2NAQACAAApAAkTW9ydGFsMTY1BAAIAAClACRNb3J0YWwxNjYEAAgAAKYAJE1vcnRhbDE2NwQACAAApwAkTW9ydGFsMTY4BAAIAACoACRNb3J0YWwxNjkEAAgAAKkAJE1vcnRhbDE3MAQACAAAqgAkTW9ydGFsMTcxBAAIAACrACRNb3J0YWwxNzIEAAgAAKwAJE1vcnRhbDE3MwQACAAArQAkTW9ydGFsMTc0BAAIAACuACRNb3J0YWwxNzUEAAgAAK8AJE1vcnRhbDE3NgQACAAAsAAkTW9ydGFsMTc3BAAIAACxACRNb3J0YWwxNzgEAAgAALIAJE1vcnRhbDE3OQQACAAAswAkTW9ydGFsMTgwBAAIAAC0ACRNb3J0YWwxODEEAAgAALUAJE1vcnRhbDE4MgQACAAAtgAkTW9ydGFsMTgzBAAIAAC3ACRNb3J0YWwxODQEAAgAALgAJE1vcnRhbDE4NQQACAAAuQAkTW9ydGFsMTg2BAAIAAC6ACRNb3J0YWwxODcEAAgAALsAJE1vcnRhbDE4OAQACAAAvAAkTW9ydGFsMTg5BAAIAAC9ACRNb3J0YWwxOTAEAAgAAL4AJE1vcnRhbDE5MQQACAAAvwAkTW9ydGFsMTkyBAAIAADAACRNb3J0YWwxOTMEAAgAAMEAJE1vcnRhbDE5NAQACAAAwgAkTW9ydGFsMTk1BAAIAADDACRNb3J0YWwxOTYEAAgAAMQAJE1vcnRhbDE5NwQACAAAxQAkTW9ydGFsMTk4BAAIAADGACRNb3J0YWwxOTkEAAgAAMcAJE1vcnRhbDIwMAQACAAAyAAkTW9ydGFsMjAxBAAIAADJACRNb3J0YWwyMDIEAAgAAMoAJE1vcnRhbDIwMwQACAAAywAkTW9ydGFsMjA0BAAIAADMACRNb3J0YWwyMDUEAAgAAM0AJE1vcnRhbDIwNgQACAAAzgAkTW9ydGFsMjA3BAAIAADPACRNb3J0YWwyMDgEAAgAANAAJE1vcnRhbDIwOQQACAAA0QAkTW9ydGFsMjEwBAAIAADSACRNb3J0YWwyMTEEAAgAANMAJE1vcnRhbDIxMgQACAAA1AAkTW9ydGFsMjEzBAAIAADVACRNb3J0YWwyMTQEAAgAANYAJE1vcnRhbDIxNQQACAAA1wAkTW9ydGFsMjE2BAAIAADYACRNb3J0YWwyMTcEAAgAANkAJE1vcnRhbDIxOAQACAAA2gAkTW9ydGFsMjE5BAAIAADbACRNb3J0YWwyMjAEAAgAANwAJE1vcnRhbDIyMQQACAAA3QAkTW9ydGFsMjIyBAAIAADeACRNb3J0YWwyMjMEAAgAAN8AJE1vcnRhbDIyNAQACAAA4AAkTW9ydGFsMjI1BAAIAADhACRNb3J0YWwyMjYEAAgAAOIAJE1vcnRhbDIyNwQACAAA4wAkTW9ydGFsMjI4BAAIAADkACRNb3J0YWwyMjkEAAgAAOUAJE1vcnRhbDIzMAQACAAA5gAkTW9ydGFsMjMxBAAIAADnACRNb3J0YWwyMzIEAAgAAOgAJE1vcnRhbDIzMwQACAAA6QAkTW9ydGFsMjM0BAAIAADqACRNb3J0YWwyMzUEAAgAAOsAJE1vcnRhbDIzNgQACAAA7AAkTW9ydGFsMjM3BAAIAADtACRNb3J0YWwyMzgEAAgAAO4AJE1vcnRhbDIzOQQACAAA7wAkTW9ydGFsMjQwBAAIAADwACRNb3J0YWwyNDEEAAgAAPEAJE1vcnRhbDI0MgQACAAA8gAkTW9ydGFsMjQzBAAIAADzACRNb3J0YWwyNDQEAAgAAPQAJE1vcnRhbDI0NQQACAAA9QAkTW9ydGFsMjQ2BAAIAAD2ACRNb3J0YWwyNDcEAAgAAPcAJE1vcnRhbDI0OAQACAAA+AAkTW9ydGFsMjQ5BAAIAAD5ACRNb3J0YWwyNTAEAAgAAPoAJE1vcnRhbDI1MQQACAAA+wAkTW9ydGFsMjUyBAAIAAD8ACRNb3J0YWwyNTMEAAgAAP0AJE1vcnRhbDI1NAQACAAA/gAkTW9ydGFsMjU1BAAIAAD/AAAFDBAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnMsY2hlY2tfbm9uY2UoQ2hlY2tOb25jZQQEVAAABAA1AQEgVDo6Tm9uY2UAAAkMEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uczBjaGVja193ZWlnaHQsQ2hlY2tXZWlnaHQEBFQAAAAADQwIaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50YENoYXJnZVRyYW5zYWN0aW9uUGF5bWVudAQEVAAABABFAQEwQmFsYW5jZU9mPFQ+AAARDAg0cGFsbGV0X2NsYWltczRWYWxpZGF0ZUNsYWltBARUAAAAABUMCHRmcmFtZV9tZXRhZGF0YV9oYXNoX2V4dGVuc2lvbkRDaGVja01ldGFkYXRhSGFzaAQEVAAABAEQbW9kZRkMARBNb2RlAAAZDAh0ZnJhbWVfbWV0YWRhdGFfaGFzaF9leHRlbnNpb24QTW9kZQABCCBEaXNhYmxlZAAAABxFbmFibGVkAAEAAB0MCDxoeWRyYWR4X3J1bnRpbWUcUnVudGltZQAAAAAhDBAoc3BfcnVudGltZRxnZW5lcmljFGJsb2NrFEJsb2NrCBhIZWFkZXIBJQwkRXh0cmluc2ljASkMAAgBGGhlYWRlciUMARhIZWFkZXIAAShleHRyaW5zaWNzMQwBOFZlYzxFeHRyaW5zaWM+AAAlDBAoc3BfcnVudGltZRxnZW5lcmljGGhlYWRlchhIZWFkZXIIGE51bWJlcgEQEEhhc2gAABQBLHBhcmVudF9oYXNoNAEwSGFzaDo6T3V0cHV0AAEYbnVtYmVyNQEBGE51bWJlcgABKHN0YXRlX3Jvb3Q0ATBIYXNoOjpPdXRwdXQAATxleHRyaW5zaWNzX3Jvb3Q0ATBIYXNoOjpPdXRwdXQAARhkaWdlc3Q8ARhEaWdlc3QAACkMDERmcF9zZWxmX2NvbnRhaW5lZEx1bmNoZWNrZWRfZXh0cmluc2ljSFVuY2hlY2tlZEV4dHJpbnNpYxAcQWRkcmVzcwEAEENhbGwBfQQkU2lnbmF0dXJlASEFFEV4dHJhAekLAAQALQwBJQFzcF9ydW50aW1lOjpnZW5lcmljOjpVbmNoZWNrZWRFeHRyaW5zaWM8QWRkcmVzcywgQ2FsbCwgU2lnbmF0dXJlLCBFeHRyYQo+AAAtDBAoc3BfcnVudGltZRxnZW5lcmljTHVuY2hlY2tlZF9leHRyaW5zaWNIVW5jaGVja2VkRXh0cmluc2ljEBxBZGRyZXNzAQAQQ2FsbAF9BCRTaWduYXR1cmUBIQUURXh0cmEB6QsABAA4AAAAMQwAAAIpDAA1DAgoc3BfcnVudGltZVhFeHRyaW5zaWNJbmNsdXNpb25Nb2RlAAEINEFsbEV4dHJpbnNpY3MAAAA0T25seUluaGVyZW50cwABAAA5DAgcc3BfY29yZThPcGFxdWVNZXRhZGF0YQAABAA4ARxWZWM8dTg+AAA9DAQYT3B0aW9uBARUATkMAQgQTm9uZQAAABBTb21lBAA5DAAAAQAAQQwEGFJlc3VsdAgEVAGYBEUBRQwBCAhPawQAmAAAAAAMRXJyBABFDAAAAQAARQwMKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlgVHJhbnNhY3Rpb25WYWxpZGl0eUVycm9yAAEIHEludmFsaWQEAEkMAUhJbnZhbGlkVHJhbnNhY3Rpb24AAAAcVW5rbm93bgQATQwBSFVua25vd25UcmFuc2FjdGlvbgABAABJDAwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eUhJbnZhbGlkVHJhbnNhY3Rpb24AASwQQ2FsbAAAABxQYXltZW50AAEAGEZ1dHVyZQACABRTdGFsZQADACBCYWRQcm9vZgAEAERBbmNpZW50QmlydGhCbG9jawAFAERFeGhhdXN0c1Jlc291cmNlcwAGABhDdXN0b20EAAgBCHU4AAcAMEJhZE1hbmRhdG9yeQAIAExNYW5kYXRvcnlWYWxpZGF0aW9uAAkAJEJhZFNpZ25lcgAKAABNDAwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eUhVbmtub3duVHJhbnNhY3Rpb24AAQwwQ2Fubm90TG9va3VwAAAATE5vVW5zaWduZWRWYWxpZGF0b3IAAQAYQ3VzdG9tBAAIAQh1OAACAABRDAgwc3BfaW5oZXJlbnRzMEluaGVyZW50RGF0YQAABAEQZGF0YVUMAZRCVHJlZU1hcDxJbmhlcmVudElkZW50aWZpZXIsIFZlYzx1OD4+AABVDAQgQlRyZWVNYXAIBEsB8QEEVgE4AAQAWQwAAABZDAAAAl0MAF0MAAAECPEBOABhDAgwc3BfaW5oZXJlbnRzUENoZWNrSW5oZXJlbnRzUmVzdWx0AAAMARBva2F5IAEQYm9vbAABLGZhdGFsX2Vycm9yIAEQYm9vbAABGGVycm9yc1EMATBJbmhlcmVudERhdGEAAGUMDChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5RFRyYW5zYWN0aW9uU291cmNlAAEMHEluQmxvY2sAAAAUTG9jYWwAAQAgRXh0ZXJuYWwAAgAAaQwEGFJlc3VsdAgEVAFtDARFAUUMAQgIT2sEAG0MAAAAAAxFcnIEAEUMAAABAABtDAwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eUBWYWxpZFRyYW5zYWN0aW9uAAAUASBwcmlvcml0eTABTFRyYW5zYWN0aW9uUHJpb3JpdHkAASByZXF1aXJlc8EDAUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEgcHJvdmlkZXPBAwFMVmVjPFRyYW5zYWN0aW9uVGFnPgABJGxvbmdldml0eTABUFRyYW5zYWN0aW9uTG9uZ2V2aXR5AAEkcHJvcGFnYXRlIAEQYm9vbAAAcQwEGE9wdGlvbgQEVAF1DAEIEE5vbmUAAAAQU29tZQQAdQwAAAEAAHUMAAACeQwAeQwAAAQIOJULAH0MCEhzcF9jb25zZW5zdXNfc2xvdHMwU2xvdER1cmF0aW9uAAAEADABDHU2NAAAgQwIXGN1bXVsdXNfcHJpbWl0aXZlc19jb3JlNENvbGxhdGlvbkluZm8AABgBPHVwd2FyZF9tZXNzYWdlc8EDAUhWZWM8VXB3YXJkTWVzc2FnZT4AAUxob3Jpem9udGFsX21lc3NhZ2VzxQoBYFZlYzxPdXRib3VuZEhybXBNZXNzYWdlPgABTG5ld192YWxpZGF0aW9uX2NvZGWFDAGMT3B0aW9uPHJlbGF5X2NoYWluOjpWYWxpZGF0aW9uQ29kZT4AAWxwcm9jZXNzZWRfZG93bndhcmRfbWVzc2FnZXMQAQx1MzIAAThocm1wX3dhdGVybWFyaxABYHJlbGF5X2NoYWluOjpCbG9ja051bWJlcgABJGhlYWRfZGF0YWUGASBIZWFkRGF0YQAAhQwEGE9wdGlvbgQEVAGJDAEIEE5vbmUAAAAQU29tZQQAiQwAAAEAAIkMDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzOFZhbGlkYXRpb25Db2RlAAAEADgBHFZlYzx1OD4AAI0MCIRwYWxsZXRfY3VycmVuY2llc19ycGNfcnVudGltZV9hcGksQWNjb3VudERhdGEEHEJhbGFuY2UBGAAMARBmcmVlGAEcQmFsYW5jZQABIHJlc2VydmVkGAEcQmFsYW5jZQABGGZyb3plbhgBHEJhbGFuY2UAAJEMAAAClQwAlQwAAAQIEI0MAJkMDGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudBR0eXBlc0xSdW50aW1lRGlzcGF0Y2hJbmZvCBxCYWxhbmNlARgYV2VpZ2h0ASgADAEYd2VpZ2h0KAEYV2VpZ2h0AAEUY2xhc3NgATREaXNwYXRjaENsYXNzAAEscGFydGlhbF9mZWUYARxCYWxhbmNlAACdDAxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQUdHlwZXMoRmVlRGV0YWlscwQcQmFsYW5jZQEYAAgBNGluY2x1c2lvbl9mZWWhDAF0T3B0aW9uPEluY2x1c2lvbkZlZTxCYWxhbmNlPj4AAQx0aXAYARxCYWxhbmNlAAChDAQYT3B0aW9uBARUAaUMAQgQTm9uZQAAABBTb21lBAClDAAAAQAApQwMaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50FHR5cGVzMEluY2x1c2lvbkZlZQQcQmFsYW5jZQEYAAwBIGJhc2VfZmVlGAEcQmFsYW5jZQABHGxlbl9mZWUYARxCYWxhbmNlAAFMYWRqdXN0ZWRfd2VpZ2h0X2ZlZRgBHEJhbGFuY2UAAKkMDAxldm0cYmFja2VuZBRCYXNpYwAACAEcYmFsYW5jZU0EARBVMjU2AAEUbm9uY2VNBAEQVTI1NgAArQwEGE9wdGlvbgQEVAEJBgEIEE5vbmUAAAAQU29tZQQACQYAAAEAALEMBBhSZXN1bHQIBFQBtQwERQFoAQgIT2sEALUMAAAAAAxFcnIEAGgAAAEAALUMCBhmcF9ldm08RXhlY3V0aW9uSW5mb1YyBARUATgAFAEsZXhpdF9yZWFzb24ZAgEoRXhpdFJlYXNvbgABFHZhbHVlOAEEVAABIHVzZWRfZ2FzuQwBHFVzZWRHYXMAASx3ZWlnaHRfaW5mb70MAUhPcHRpb248V2VpZ2h0SW5mbz4AARBsb2dz6QkBIFZlYzxMb2c+AAC5DAgYZnBfZXZtHFVzZWRHYXMAAAgBIHN0YW5kYXJkTQQBEFUyNTYAASRlZmZlY3RpdmVNBAEQVTI1NgAAvQwEGE9wdGlvbgQEVAHBDAEIEE5vbmUAAAAQU29tZQQAwQwAAAEAAMEMCBhmcF9ldm0oV2VpZ2h0SW5mbwAAEAE4cmVmX3RpbWVfbGltaXTFDAEsT3B0aW9uPHU2ND4AAUBwcm9vZl9zaXplX2xpbWl0xQwBLE9wdGlvbjx1NjQ+AAE4cmVmX3RpbWVfdXNhZ2XFDAEsT3B0aW9uPHU2ND4AAUBwcm9vZl9zaXplX3VzYWdlxQwBLE9wdGlvbjx1NjQ+AADFDAQYT3B0aW9uBARUATABCBBOb25lAAAAEFNvbWUEADAAAAEAAMkMBBhSZXN1bHQIBFQBzQwERQFoAQgIT2sEAM0MAAAAAAxFcnIEAGgAAAEAAM0MCBhmcF9ldm08RXhlY3V0aW9uSW5mb1YyBARUAQ0CABQBLGV4aXRfcmVhc29uGQIBKEV4aXRSZWFzb24AARR2YWx1ZQ0CAQRUAAEgdXNlZF9nYXO5DAEcVXNlZEdhcwABLHdlaWdodF9pbmZvvQwBSE9wdGlvbjxXZWlnaHRJbmZvPgABEGxvZ3PpCQEgVmVjPExvZz4AANEMBBhPcHRpb24EBFQB/QkBCBBOb25lAAAAEFNvbWUEAP0JAAABAADVDAQYT3B0aW9uBARUAREKAQgQTm9uZQAAABBTb21lBAARCgAAAQAA2QwEGE9wdGlvbgQEVAEVCgEIEE5vbmUAAAAQU29tZQQAFQoAAAEAAN0MAAAEDNEM1QzZDADhDAAABAjRDNkMAOUMBBhSZXN1bHQIBFQB6QwERQHtDAEICE9rBADpDAAAAAAMRXJyBADtDAAAAQAA6QwAAAIpBwDtDAhseGNtX2ZlZV9wYXltZW50X3J1bnRpbWVfYXBpFEVycm9yAAEYNFVuaW1wbGVtZW50ZWQAAABkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABAExXZWlnaHROb3RDb21wdXRhYmxlAAIATFVuaGFuZGxlZFhjbVZlcnNpb24AAwA0QXNzZXROb3RGb3VuZAAEAChVbnJvdXRhYmxlAAUAAPEMBBhSZXN1bHQIBFQBKARFAe0MAQgIT2sEACgAAAAADEVycgQA7QwAAAEAAPUMBBhSZXN1bHQIBFQBGARFAe0MAQgIT2sEABgAAAAADEVycgQA7QwAAAEAAPkMBBhSZXN1bHQIBFQBHQMERQHtDAEICE9rBAAdAwAAAAAMRXJyBADtDAAAAQAA/QwEGFJlc3VsdAgEVAGQBEUBLQIBCAhPawQAkAAAAAAMRXJyBAAtAgAAAQAAAQ0EGE9wdGlvbgQEVAEtAgEIEE5vbmUAAAAQU29tZQQALQIAAAEAAAUNAAACLQIACQ0IPGh5ZHJhZHhfcnVudGltZTBSdW50aW1lRXJyb3IAAeAYU3lzdGVtBADxAwFwZnJhbWVfc3lzdGVtOjpFcnJvcjxSdW50aW1lPgABACBCYWxhbmNlcwQAQQQBfHBhbGxldF9iYWxhbmNlczo6RXJyb3I8UnVudGltZT4ABwBcTXVsdGlUcmFuc2FjdGlvblBheW1lbnQEAFUEAcBwYWxsZXRfdHJhbnNhY3Rpb25fbXVsdGlfcGF5bWVudDo6RXJyb3I8UnVudGltZT4AywAgVHJlYXN1cnkEAHEEAXxwYWxsZXRfdHJlYXN1cnk6OkVycm9yPFJ1bnRpbWU+AAsAHFV0aWxpdHkEAHkHAXhwYWxsZXRfdXRpbGl0eTo6RXJyb3I8UnVudGltZT4ADQAgUHJlaW1hZ2UEAJ0HAXxwYWxsZXRfcHJlaW1hZ2U6OkVycm9yPFJ1bnRpbWU+AA8AIElkZW50aXR5BADdBwF8cGFsbGV0X2lkZW50aXR5OjpFcnJvcjxSdW50aW1lPgARACREZW1vY3JhY3kEACEIAYBwYWxsZXRfZGVtb2NyYWN5OjpFcnJvcjxSdW50aW1lPgATACRFbGVjdGlvbnMEADEIAaRwYWxsZXRfZWxlY3Rpb25zX3BocmFnbWVuOjpFcnJvcjxSdW50aW1lPgAVABxDb3VuY2lsBAA9CAH8cGFsbGV0X2NvbGxlY3RpdmU6OkVycm9yPFJ1bnRpbWUsIHBhbGxldF9jb2xsZWN0aXZlOjpJbnN0YW5jZTE+ABcASFRlY2huaWNhbENvbW1pdHRlZQQARQgB/HBhbGxldF9jb2xsZWN0aXZlOjpFcnJvcjxSdW50aW1lLCBwYWxsZXRfY29sbGVjdGl2ZTo6SW5zdGFuY2UyPgAZABBUaXBzBABRCAFscGFsbGV0X3RpcHM6OkVycm9yPFJ1bnRpbWU+ABsAFFByb3h5BAB1CAFwcGFsbGV0X3Byb3h5OjpFcnJvcjxSdW50aW1lPgAdACBNdWx0aXNpZwQAhQgBfHBhbGxldF9tdWx0aXNpZzo6RXJyb3I8UnVudGltZT4AHwAcVW5pcXVlcwQAqQgBeHBhbGxldF91bmlxdWVzOjpFcnJvcjxSdW50aW1lPgAgAEhTdGF0ZVRyaWVNaWdyYXRpb24EAA0BAaxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb246OkVycm9yPFJ1bnRpbWU+ACMANEFzc2V0UmVnaXN0cnkEALEIAZRwYWxsZXRfYXNzZXRfcmVnaXN0cnk6OkVycm9yPFJ1bnRpbWU+ADMAGENsYWltcwQAtQgBdHBhbGxldF9jbGFpbXM6OkVycm9yPFJ1bnRpbWU+ADUAPENvbGxhdG9yUmV3YXJkcwQAwQgBnHBhbGxldF9jb2xsYXRvcl9yZXdhcmRzOjpFcnJvcjxSdW50aW1lPgA5ACBPbW5pcG9vbAQA0QgBfHBhbGxldF9vbW5pcG9vbDo6RXJyb3I8UnVudGltZT4AOwBAVHJhbnNhY3Rpb25QYXVzZQQA3QgBoHBhbGxldF90cmFuc2FjdGlvbl9wYXVzZTo6RXJyb3I8UnVudGltZT4APAAYRHVzdGVyBADhCAF0cGFsbGV0X2R1c3Rlcjo6RXJyb3I8UnVudGltZT4APQBMT21uaXBvb2xXYXJlaG91c2VMTQQABQkBSQF3YXJlaG91c2VfbGlxdWlkaXR5X21pbmluZzo6RXJyb3I8UnVudGltZSwgd2FyZWhvdXNlX2xpcXVpZGl0eV9taW5pbmc6OgpJbnN0YW5jZTE+AD4AXE9tbmlwb29sTGlxdWlkaXR5TWluaW5nBAARCQHAcGFsbGV0X29tbmlwb29sX2xpcXVpZGl0eV9taW5pbmc6OkVycm9yPFJ1bnRpbWU+AD8ADE9UQwQAHQkBaHBhbGxldF9vdGM6OkVycm9yPFJ1bnRpbWU+AEAAOENpcmN1aXRCcmVha2VyBAApCQGYcGFsbGV0X2NpcmN1aXRfYnJlYWtlcjo6RXJyb3I8UnVudGltZT4AQQAYUm91dGVyBAAxCQGUcGFsbGV0X3JvdXRlX2V4ZWN1dG9yOjpFcnJvcjxSdW50aW1lPgBDACxEeW5hbWljRmVlcwQAPQkBjHBhbGxldF9keW5hbWljX2ZlZXM6OkVycm9yPFJ1bnRpbWU+AEQAHFN0YWtpbmcEAGUJAXhwYWxsZXRfc3Rha2luZzo6RXJyb3I8UnVudGltZT4ARQAoU3RhYmxlc3dhcAQAeQkBhHBhbGxldF9zdGFibGVzd2FwOjpFcnJvcjxSdW50aW1lPgBGABRCb25kcwQAgQkBcHBhbGxldF9ib25kczo6RXJyb3I8UnVudGltZT4ARwA4T3RjU2V0dGxlbWVudHMEAIUJAZhwYWxsZXRfb3RjX3NldHRsZW1lbnRzOjpFcnJvcjxSdW50aW1lPgBIAAxMQlAEAIkJAWhwYWxsZXRfbGJwOjpFcnJvcjxSdW50aW1lPgBJAAxYWUsEAI0JAWhwYWxsZXRfeHlrOjpFcnJvcjxSdW50aW1lPgBKACRSZWZlcnJhbHMEAJ0JAYBwYWxsZXRfcmVmZXJyYWxzOjpFcnJvcjxSdW50aW1lPgBLABhUb2tlbnMEAL0JAWxvcm1sX3Rva2Vuczo6RXJyb3I8UnVudGltZT4ATQAoQ3VycmVuY2llcwQAwQkBhHBhbGxldF9jdXJyZW5jaWVzOjpFcnJvcjxSdW50aW1lPgBPABxWZXN0aW5nBADJCQFwb3JtbF92ZXN0aW5nOjpFcnJvcjxSdW50aW1lPgBRAAxFVk0EANUJAWhwYWxsZXRfZXZtOjpFcnJvcjxSdW50aW1lPgBaACBFdGhlcmV1bQQAGQoBfHBhbGxldF9ldGhlcmV1bTo6RXJyb3I8UnVudGltZT4AXAAsRVZNQWNjb3VudHMEAB0KAYxwYWxsZXRfZXZtX2FjY291bnRzOjpFcnJvcjxSdW50aW1lPgBdAEhYWUtMaXF1aWRpdHlNaW5pbmcEACEKAaxwYWxsZXRfeHlrX2xpcXVpZGl0eV9taW5pbmc6OkVycm9yPFJ1bnRpbWU+AF8AOFhZS1dhcmVob3VzZUxNBABBCgFJAXdhcmVob3VzZV9saXF1aWRpdHlfbWluaW5nOjpFcnJvcjxSdW50aW1lLCB3YXJlaG91c2VfbGlxdWlkaXR5X21pbmluZzo6Ckluc3RhbmNlMj4AYAA4UmVsYXlDaGFpbkluZm8EAEUKAZhwYWxsZXRfcmVsYXljaGFpbl9pbmZvOjpFcnJvcjxSdW50aW1lPgDJAAxEQ0EEAE0KAWhwYWxsZXRfZGNhOjpFcnJvcjxSdW50aW1lPgBCACRTY2hlZHVsZXIEAGUKAYBwYWxsZXRfc2NoZWR1bGVyOjpFcnJvcjxSdW50aW1lPgAFADxQYXJhY2hhaW5TeXN0ZW0EAM0KAbxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtOjpFcnJvcjxSdW50aW1lPgBnACxQb2xrYWRvdFhjbQQAIQsBaHBhbGxldF94Y206OkVycm9yPFJ1bnRpbWU+AGsAJFhjbXBRdWV1ZQQARQsBpGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWU6OkVycm9yPFJ1bnRpbWU+AG8AME1lc3NhZ2VRdWV1ZQQAYQsBkHBhbGxldF9tZXNzYWdlX3F1ZXVlOjpFcnJvcjxSdW50aW1lPgByABxPcm1sWGNtBABlCwFgb3JtbF94Y206OkVycm9yPFJ1bnRpbWU+AIcAHFhUb2tlbnMEAGkLAXBvcm1sX3h0b2tlbnM6OkVycm9yPFJ1bnRpbWU+AIkANFVua25vd25Ub2tlbnMEAHULAYxvcm1sX3Vua25vd25fdG9rZW5zOjpFcnJvcjxSdW50aW1lPgCLAERDb2xsYXRvclNlbGVjdGlvbgQAhQsBpHBhbGxldF9jb2xsYXRvcl9zZWxlY3Rpb246OkVycm9yPFJ1bnRpbWU+AKMAHFNlc3Npb24EAJkLAXhwYWxsZXRfc2Vzc2lvbjo6RXJyb3I8UnVudGltZT4ApQAkRW1hT3JhY2xlBADlCwGEcGFsbGV0X2VtYV9vcmFjbGU6OkVycm9yPFJ1bnRpbWU+AMoAAAkBGFN5c3RlbQEYU3lzdGVtSBxBY2NvdW50AQEEAgAMQQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAToIFRoZSBmdWxsIGFjY291bnQgaW5mb3JtYXRpb24gZm9yIGEgcGFydGljdWxhciBhY2NvdW50IElELjhFeHRyaW5zaWNDb3VudAAAEAQABLggVG90YWwgZXh0cmluc2ljcyBjb3VudCBmb3IgdGhlIGN1cnJlbnQgYmxvY2suQEluaGVyZW50c0FwcGxpZWQBACAEAASkIFdoZXRoZXIgYWxsIGluaGVyZW50cyBoYXZlIGJlZW4gYXBwbGllZC4sQmxvY2tXZWlnaHQBACQYAAAAAAAABIggVGhlIGN1cnJlbnQgd2VpZ2h0IGZvciB0aGUgYmxvY2suQEFsbEV4dHJpbnNpY3NMZW4AABAEAARBASBUb3RhbCBsZW5ndGggKGluIGJ5dGVzKSBmb3IgYWxsIGV4dHJpbnNpY3MgcHV0IHRvZ2V0aGVyLCBmb3IgdGhlIGN1cnJlbnQgYmxvY2suJEJsb2NrSGFzaAEBBAUQNIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASYIE1hcCBvZiBibG9jayBudW1iZXJzIHRvIGJsb2NrIGhhc2hlcy40RXh0cmluc2ljRGF0YQEBBAUQOAQABD0BIEV4dHJpbnNpY3MgZGF0YSBmb3IgdGhlIGN1cnJlbnQgYmxvY2sgKG1hcHMgYW4gZXh0cmluc2ljJ3MgaW5kZXggdG8gaXRzIGRhdGEpLhhOdW1iZXIBABAQAAAAAAQJASBUaGUgY3VycmVudCBibG9jayBudW1iZXIgYmVpbmcgcHJvY2Vzc2VkLiBTZXQgYnkgYGV4ZWN1dGVfYmxvY2tgLihQYXJlbnRIYXNoAQA0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAgSGFzaCBvZiB0aGUgcHJldmlvdXMgYmxvY2suGERpZ2VzdAEAPAQABPAgRGlnZXN0IG9mIHRoZSBjdXJyZW50IGJsb2NrLCBhbHNvIHBhcnQgb2YgdGhlIGJsb2NrIGhlYWRlci4YRXZlbnRzAQBMBAAcoCBFdmVudHMgZGVwb3NpdGVkIGZvciB0aGUgY3VycmVudCBibG9jay4AHQEgTk9URTogVGhlIGl0ZW0gaXMgdW5ib3VuZCBhbmQgc2hvdWxkIHRoZXJlZm9yZSBuZXZlciBiZSByZWFkIG9uIGNoYWluLtAgSXQgY291bGQgb3RoZXJ3aXNlIGluZmxhdGUgdGhlIFBvViBzaXplIG9mIGEgYmxvY2suAC0BIEV2ZW50cyBoYXZlIGEgbGFyZ2UgaW4tbWVtb3J5IHNpemUuIEJveCB0aGUgZXZlbnRzIHRvIG5vdCBnbyBvdXQtb2YtbWVtb3J5/CBqdXN0IGluIGNhc2Ugc29tZW9uZSBzdGlsbCByZWFkcyB0aGVtIGZyb20gd2l0aGluIHRoZSBydW50aW1lLihFdmVudENvdW50AQAQEAAAAAAEuCBUaGUgbnVtYmVyIG9mIGV2ZW50cyBpbiB0aGUgYEV2ZW50czxUPmAgbGlzdC4sRXZlbnRUb3BpY3MBAQQCNKkDBAAoJQEgTWFwcGluZyBiZXR3ZWVuIGEgdG9waWMgKHJlcHJlc2VudGVkIGJ5IFQ6Okhhc2gpIGFuZCBhIHZlY3RvciBvZiBpbmRleGVzlCBvZiBldmVudHMgaW4gdGhlIGA8RXZlbnRzPFQ+PmAgbGlzdC4AUQEgQWxsIHRvcGljIHZlY3RvcnMgaGF2ZSBkZXRlcm1pbmlzdGljIHN0b3JhZ2UgbG9jYXRpb25zIGRlcGVuZGluZyBvbiB0aGUgdG9waWMuIFRoaXNFASBhbGxvd3MgbGlnaHQtY2xpZW50cyB0byBsZXZlcmFnZSB0aGUgY2hhbmdlcyB0cmllIHN0b3JhZ2UgdHJhY2tpbmcgbWVjaGFuaXNtIGFuZOQgaW4gY2FzZSBvZiBjaGFuZ2VzIGZldGNoIHRoZSBsaXN0IG9mIGV2ZW50cyBvZiBpbnRlcmVzdC4AWQEgVGhlIHZhbHVlIGhhcyB0aGUgdHlwZSBgKEJsb2NrTnVtYmVyRm9yPFQ+LCBFdmVudEluZGV4KWAgYmVjYXVzZSBpZiB3ZSB1c2VkIG9ubHkganVzdE0BIHRoZSBgRXZlbnRJbmRleGAgdGhlbiBpbiBjYXNlIGlmIHRoZSB0b3BpYyBoYXMgdGhlIHNhbWUgY29udGVudHMgb24gdGhlIG5leHQgYmxvY2sBASBubyBub3RpZmljYXRpb24gd2lsbCBiZSB0cmlnZ2VyZWQgdGh1cyB0aGUgZXZlbnQgbWlnaHQgYmUgbG9zdC5ITGFzdFJ1bnRpbWVVcGdyYWRlAACtAwQABFUBIFN0b3JlcyB0aGUgYHNwZWNfdmVyc2lvbmAgYW5kIGBzcGVjX25hbWVgIG9mIHdoZW4gdGhlIGxhc3QgcnVudGltZSB1cGdyYWRlIGhhcHBlbmVkLlRVcGdyYWRlZFRvVTMyUmVmQ291bnQBACAEAARNASBUcnVlIGlmIHdlIGhhdmUgdXBncmFkZWQgc28gdGhhdCBgdHlwZSBSZWZDb3VudGAgaXMgYHUzMmAuIEZhbHNlIChkZWZhdWx0KSBpZiBub3QuYFVwZ3JhZGVkVG9UcmlwbGVSZWZDb3VudAEAIAQACF0BIFRydWUgaWYgd2UgaGF2ZSB1cGdyYWRlZCBzbyB0aGF0IEFjY291bnRJbmZvIGNvbnRhaW5zIHRocmVlIHR5cGVzIG9mIGBSZWZDb3VudGAuIEZhbHNlSCAoZGVmYXVsdCkgaWYgbm90LjhFeGVjdXRpb25QaGFzZQAApQMEAASIIFRoZSBleGVjdXRpb24gcGhhc2Ugb2YgdGhlIGJsb2NrLkRBdXRob3JpemVkVXBncmFkZQAAsQMEAAS4IGBTb21lYCBpZiBhIGNvZGUgdXBncmFkZSBoYXMgYmVlbiBhdXRob3JpemVkLgG1AwFYGDBCbG9ja1dlaWdodHPFA4UBYk0YbAAHAIhSanQCAEABA8jONVvpsAEHODp5C1QaT+cAAQcA5r1PVwIA8AABAAADyM41W+mwAQc43A0mcRpPNwEBBwCIUmp0AgBAAQEHAKKUGh0CAFAAA8jONVvpsAAAAATQIEJsb2NrICYgZXh0cmluc2ljcyB3ZWlnaHRzOiBiYXNlIHZhbHVlcyBhbmQgbGltaXRzLixCbG9ja0xlbmd0aNUDMAAAPAAAAFAAAABQAASoIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGJsb2NrIChpbiBieXRlcykuOEJsb2NrSGFzaENvdW50EBBgCQAABFUBIE1heGltdW0gbnVtYmVyIG9mIGJsb2NrIG51bWJlciB0byBibG9jayBoYXNoIG1hcHBpbmdzIHRvIGtlZXAgKG9sZGVzdCBwcnVuZWQgZmlyc3QpLiBEYldlaWdodN0DQEB4fQEAAAAAAOH1BQAAAAAECQEgVGhlIHdlaWdodCBvZiBydW50aW1lIGRhdGFiYXNlIG9wZXJhdGlvbnMgdGhlIHJ1bnRpbWUgY2FuIGludm9rZS4cVmVyc2lvbuEDiQMcaHlkcmFkeBxoeWRyYWR4AQAAAAgBAAAAAAAAQN9qy2iZB2CbBQAAADfjl/x8kfXkAgAAAED+OtQB+JWaBgAAANK8mJfu0I8VAwAAAPeLJ4vlP0VMAgAAAKs8BXIpH+uLAQAAAN1xjVzFMmLUAQAAAOqT4/FvPWliAgAAAJr4Z1G3DBEtAQAAALydiZBPW5I/AQAAADfIuxNQqaKoBAAAAFgiEfZbsUuJBQAAAOZbAORs7dCqAgAAAAu2elL80ED/AQAAAG/1LuhY5sW9AQAAAPvFd7nXR+/WAQAAAAEAAAABBIQgR2V0IHRoZSBjaGFpbidzIGluLWNvZGUgdmVyc2lvbi4oU1M1OFByZWZpeNwIPwAUqCBUaGUgZGVzaWduYXRlZCBTUzU4IHByZWZpeCBvZiB0aGlzIGNoYWluLgA5ASBUaGlzIHJlcGxhY2VzIHRoZSAic3M1OEZvcm1hdCIgcHJvcGVydHkgZGVjbGFyZWQgaW4gdGhlIGNoYWluIHNwZWMuIFJlYXNvbiBpczEBIHRoYXQgdGhlIHJ1bnRpbWUgc2hvdWxkIGtub3cgYWJvdXQgdGhlIHByZWZpeCBpbiBvcmRlciB0byBtYWtlIHVzZSBvZiBpdCBhc3AgYW4gaWRlbnRpZmllciBvZiB0aGUgY2hhaW4uAfEDAQAkVGltZXN0YW1wASRUaW1lc3RhbXAIDE5vdwEAMCAAAAAAAAAAAASgIFRoZSBjdXJyZW50IHRpbWUgZm9yIHRoZSBjdXJyZW50IGJsb2NrLiREaWRVcGRhdGUBACAEABDYIFdoZXRoZXIgdGhlIHRpbWVzdGFtcCBoYXMgYmVlbiB1cGRhdGVkIGluIHRoaXMgYmxvY2suAFUBIFRoaXMgdmFsdWUgaXMgdXBkYXRlZCB0byBgdHJ1ZWAgdXBvbiBzdWNjZXNzZnVsIHN1Ym1pc3Npb24gb2YgYSB0aW1lc3RhbXAgYnkgYSBub2RlLkUBIEl0IGlzIHRoZW4gY2hlY2tlZCBhdCB0aGUgZW5kIG9mIGVhY2ggYmxvY2sgZXhlY3V0aW9uIGluIHRoZSBgb25fZmluYWxpemVgIGhvb2suAfUDAAQ0TWluaW11bVBlcmlvZDAgcBcAAAAAAAAYjCBUaGUgbWluaW11bSBwZXJpb2QgYmV0d2VlbiBibG9ja3MuAE0BIEJlIGF3YXJlIHRoYXQgdGhpcyBpcyBkaWZmZXJlbnQgdG8gdGhlICpleHBlY3RlZCogcGVyaW9kIHRoYXQgdGhlIGJsb2NrIHByb2R1Y3Rpb25JASBhcHBhcmF0dXMgcHJvdmlkZXMuIFlvdXIgY2hvc2VuIGNvbnNlbnN1cyBzeXN0ZW0gd2lsbCBnZW5lcmFsbHkgd29yayB3aXRoIHRoaXMgdG9hASBkZXRlcm1pbmUgYSBzZW5zaWJsZSBibG9jayB0aW1lLiBGb3IgZXhhbXBsZSwgaW4gdGhlIEF1cmEgcGFsbGV0IGl0IHdpbGwgYmUgZG91YmxlIHRoaXNwIHBlcmlvZCBvbiBkZWZhdWx0IHNldHRpbmdzLgADACBCYWxhbmNlcwEgQmFsYW5jZXMcNFRvdGFsSXNzdWFuY2UBABhAAAAAAAAAAAAAAAAAAAAAAASYIFRoZSB0b3RhbCB1bml0cyBpc3N1ZWQgaW4gdGhlIHN5c3RlbS5ASW5hY3RpdmVJc3N1YW5jZQEAGEAAAAAAAAAAAAAAAAAAAAAABAkBIFRoZSB0b3RhbCB1bml0cyBvZiBvdXRzdGFuZGluZyBkZWFjdGl2YXRlZCBiYWxhbmNlIGluIHRoZSBzeXN0ZW0uHEFjY291bnQBAQQCABQBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBgCQEgVGhlIEJhbGFuY2VzIHBhbGxldCBleGFtcGxlIG9mIHN0b3JpbmcgdGhlIGJhbGFuY2Ugb2YgYW4gYWNjb3VudC4AKCAjIEV4YW1wbGUANCBgYGBub2NvbXBpbGWwICBpbXBsIHBhbGxldF9iYWxhbmNlczo6Q29uZmlnIGZvciBSdW50aW1lIHsZAiAgICB0eXBlIEFjY291bnRTdG9yZSA9IFN0b3JhZ2VNYXBTaGltPFNlbGY6OkFjY291bnQ8UnVudGltZT4sIGZyYW1lX3N5c3RlbTo6UHJvdmlkZXI8UnVudGltZT4sIEFjY291bnRJZCwgU2VsZjo6QWNjb3VudERhdGE8QmFsYW5jZT4+DCAgfRAgYGBgABUBIFlvdSBjYW4gYWxzbyBzdG9yZSB0aGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50IGluIHRoZSBgU3lzdGVtYCBwYWxsZXQuACggIyBFeGFtcGxlADQgYGBgbm9jb21waWxlsCAgaW1wbCBwYWxsZXRfYmFsYW5jZXM6OkNvbmZpZyBmb3IgUnVudGltZSB7dCAgIHR5cGUgQWNjb3VudFN0b3JlID0gU3lzdGVtDCAgfRAgYGBgAFEBIEJ1dCB0aGlzIGNvbWVzIHdpdGggdHJhZGVvZmZzLCBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlIHN5c3RlbSBwYWxsZXQgc3RvcmVzbQEgYGZyYW1lX3N5c3RlbWAgZGF0YSBhbG9uZ3NpZGUgdGhlIGFjY291bnQgZGF0YSBjb250cmFyeSB0byBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlKQEgYEJhbGFuY2VzYCBwYWxsZXQsIHdoaWNoIHVzZXMgYSBgU3RvcmFnZU1hcGAgdG8gc3RvcmUgYmFsYW5jZXMgZGF0YSBvbmx5LkEBIE5PVEU6IFRoaXMgaXMgb25seSB1c2VkIGluIHRoZSBjYXNlIHRoYXQgdGhpcyBwYWxsZXQgaXMgdXNlZCB0byBzdG9yZSBiYWxhbmNlcy4UTG9ja3MBAQQCAPkDBAAQuCBBbnkgbGlxdWlkaXR5IGxvY2tzIG9uIHNvbWUgYWNjb3VudCBiYWxhbmNlcy4lASBOT1RFOiBTaG91bGQgb25seSBiZSBhY2Nlc3NlZCB3aGVuIHNldHRpbmcsIGNoYW5naW5nIGFuZCBmcmVlaW5nIGEgbG9jay4ArQEgVXNlIG9mIGxvY2tzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGZyZWV6ZXMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYCBSZXNlcnZlcwEBBAIACQQEAAykIE5hbWVkIHJlc2VydmVzIG9uIHNvbWUgYWNjb3VudCBiYWxhbmNlcy4AsQEgVXNlIG9mIHJlc2VydmVzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGhvbGRzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AUSG9sZHMBAQQCABUEBAAEbCBIb2xkcyBvbiBhY2NvdW50IGJhbGFuY2VzLhxGcmVlemVzAQEEAgAtBAQABIggRnJlZXplIGxvY2tzIG9uIGFjY291bnQgYmFsYW5jZXMuATkEAXwQSEV4aXN0ZW50aWFsRGVwb3NpdBhAABCl1OgAAAAAAAAAAAAAACBBASBUaGUgbWluaW11bSBhbW91bnQgcmVxdWlyZWQgdG8ga2VlcCBhbiBhY2NvdW50IG9wZW4uIE1VU1QgQkUgR1JFQVRFUiBUSEFOIFpFUk8hAFkBIElmIHlvdSAqcmVhbGx5KiBuZWVkIGl0IHRvIGJlIHplcm8sIHlvdSBjYW4gZW5hYmxlIHRoZSBmZWF0dXJlIGBpbnNlY3VyZV96ZXJvX2VkYCBmb3JhASB0aGlzIHBhbGxldC4gSG93ZXZlciwgeW91IGRvIHNvIGF0IHlvdXIgb3duIHJpc2s6IHRoaXMgd2lsbCBvcGVuIHVwIGEgbWFqb3IgRG9TIHZlY3Rvci5ZASBJbiBjYXNlIHlvdSBoYXZlIG11bHRpcGxlIHNvdXJjZXMgb2YgcHJvdmlkZXIgcmVmZXJlbmNlcywgeW91IG1heSBhbHNvIGdldCB1bmV4cGVjdGVkjCBiZWhhdmlvdXIgaWYgeW91IHNldCB0aGlzIHRvIHplcm8uAPAgQm90dG9tIGxpbmU6IERvIHlvdXJzZWxmIGEgZmF2b3VyIGFuZCBtYWtlIGl0IGF0IGxlYXN0IG9uZSEgTWF4TG9ja3MQEDIAAAAQ9CBUaGUgbWF4aW11bSBudW1iZXIgb2YgbG9ja3MgdGhhdCBzaG91bGQgZXhpc3Qgb24gYW4gYWNjb3VudC7cIE5vdCBzdHJpY3RseSBlbmZvcmNlZCwgYnV0IHVzZWQgZm9yIHdlaWdodCBlc3RpbWF0aW9uLgCtASBVc2Ugb2YgbG9ja3MgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgZnJlZXplcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gLE1heFJlc2VydmVzEBAyAAAADA0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBuYW1lZCByZXNlcnZlcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50LgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYChNYXhGcmVlemVzEBAAAAAABGEBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbmRpdmlkdWFsIGZyZWV6ZSBsb2NrcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50IGF0IGFueSB0aW1lLgFBBAcASFRyYW5zYWN0aW9uUGF5bWVudAFIVHJhbnNhY3Rpb25QYXltZW50CEROZXh0RmVlTXVsdGlwbGllcgEAYQFAAABkp7O24A0AAAAAAAAAAAA4U3RvcmFnZVZlcnNpb24BAEUEBAAAAAGEBGBPcGVyYXRpb25hbEZlZU11bHRpcGxpZXIIBABUWQEgQSBmZWUgbXVsdGlwbGllciBmb3IgYE9wZXJhdGlvbmFsYCBleHRyaW5zaWNzIHRvIGNvbXB1dGUgInZpcnR1YWwgdGlwIiB0byBib29zdCB0aGVpciwgYHByaW9yaXR5YABRASBUaGlzIHZhbHVlIGlzIG11bHRpcGxpZWQgYnkgdGhlIGBmaW5hbF9mZWVgIHRvIG9idGFpbiBhICJ2aXJ0dWFsIHRpcCIgdGhhdCBpcyBsYXRlcvQgYWRkZWQgdG8gYSB0aXAgY29tcG9uZW50IGluIHJlZ3VsYXIgYHByaW9yaXR5YCBjYWxjdWxhdGlvbnMuTQEgSXQgbWVhbnMgdGhhdCBhIGBOb3JtYWxgIHRyYW5zYWN0aW9uIGNhbiBmcm9udC1ydW4gYSBzaW1pbGFybHktc2l6ZWQgYE9wZXJhdGlvbmFsYEEBIGV4dHJpbnNpYyAod2l0aCBubyB0aXApLCBieSBpbmNsdWRpbmcgYSB0aXAgdmFsdWUgZ3JlYXRlciB0aGFuIHRoZSB2aXJ0dWFsIHRpcC4APCBgYGBydXN0LGlnbm9yZUAgLy8gRm9yIGBOb3JtYWxgjCBsZXQgcHJpb3JpdHkgPSBwcmlvcml0eV9jYWxjKHRpcCk7AFQgLy8gRm9yIGBPcGVyYXRpb25hbGARASBsZXQgdmlydHVhbF90aXAgPSAoaW5jbHVzaW9uX2ZlZSArIHRpcCkgKiBPcGVyYXRpb25hbEZlZU11bHRpcGxpZXI7xCBsZXQgcHJpb3JpdHkgPSBwcmlvcml0eV9jYWxjKHRpcCArIHZpcnR1YWxfdGlwKTsQIGBgYABRASBOb3RlIHRoYXQgc2luY2Ugd2UgdXNlIGBmaW5hbF9mZWVgIHRoZSBtdWx0aXBsaWVyIGFwcGxpZXMgYWxzbyB0byB0aGUgcmVndWxhciBgdGlwYF0BIHNlbnQgd2l0aCB0aGUgdHJhbnNhY3Rpb24uIFNvLCBub3Qgb25seSBkb2VzIHRoZSB0cmFuc2FjdGlvbiBnZXQgYSBwcmlvcml0eSBidW1wIGJhc2VkYQEgb24gdGhlIGBpbmNsdXNpb25fZmVlYCwgYnV0IHdlIGFsc28gYW1wbGlmeSB0aGUgaW1wYWN0IG9mIHRpcHMgYXBwbGllZCB0byBgT3BlcmF0aW9uYWxgOCB0cmFuc2FjdGlvbnMuAAkAXE11bHRpVHJhbnNhY3Rpb25QYXltZW50AVxNdWx0aVRyYW5zYWN0aW9uUGF5bWVudBBIQWNjb3VudEN1cnJlbmN5TWFwAAEEAgAQBAAEVCBBY2NvdW50IGN1cnJlbmN5IG1hcEhBY2NlcHRlZEN1cnJlbmNpZXMAAQQFEGEBBAAEZQEgQ3VyYXRlZCBsaXN0IG9mIGN1cnJlbmNpZXMgd2hpY2ggZmVlcyBjYW4gYmUgcGFpZCBtYXBwZWQgdG8gY29ycmVzcG9uZGluZyBmYWxsYmFjayBwcmljZVRBY2NlcHRlZEN1cnJlbmN5UHJpY2UAAQQFEGEBBAAEIQIgQXNzZXQgcHJpY2VzIGZyb20gdGhlIHNwb3QgcHJpY2UgcHJvdmlkZXIgb3IgdGhlIGZhbGxiYWNrIHByaWNlIGlmIHRoZSBwcmljZSBpcyBub3QgYXZhaWxhYmxlLiBVcGRhdGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgZXZlcnkgYmxvY2subFRyYW5zYWN0aW9uQ3VycmVuY3lPdmVycmlkZQABBAUAEAQAAAFJBAGIDDROYXRpdmVBc3NldElkEBAAAAAABDQgTmF0aXZlIEFzc2V0VFBvbGthZG90TmF0aXZlQXNzZXRJZBAQBQAAAARwIFBvbGthZG90IE5hdGl2ZSBBc3NldCAoRE9UKShFdm1Bc3NldElkEBAUAAAABCggRVZNIEFzc2V0AVUEywAgVHJlYXN1cnkBIFRyZWFzdXJ5GDRQcm9wb3NhbENvdW50AQAQEAAAAAAEpCBOdW1iZXIgb2YgcHJvcG9zYWxzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuJFByb3Bvc2FscwABBAUQWQQEAAR8IFByb3Bvc2FscyB0aGF0IGhhdmUgYmVlbiBtYWRlLixEZWFjdGl2YXRlZAEAGEAAAAAAAAAAAAAAAAAAAAAABPAgVGhlIGFtb3VudCB3aGljaCBoYXMgYmVlbiByZXBvcnRlZCBhcyBpbmFjdGl2ZSB0byBDdXJyZW5jeS4kQXBwcm92YWxzAQBdBAQABPggUHJvcG9zYWwgaW5kaWNlcyB0aGF0IGhhdmUgYmVlbiBhcHByb3ZlZCBidXQgbm90IHlldCBhd2FyZGVkLihTcGVuZENvdW50AQAQEAAAAAAEpCBUaGUgY291bnQgb2Ygc3BlbmRzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuGFNwZW5kcwABBAUQYQQEAATQIFNwZW5kcyB0aGF0IGhhdmUgYmVlbiBhcHByb3ZlZCBhbmQgYmVpbmcgcHJvY2Vzc2VkLgFpBAGMIDBQcm9wb3NhbEJvbmRpARAwdQAACFUBIEZyYWN0aW9uIG9mIGEgcHJvcG9zYWwncyB2YWx1ZSB0aGF0IHNob3VsZCBiZSBib25kZWQgaW4gb3JkZXIgdG8gcGxhY2UgdGhlIHByb3Bvc2FsLhEBIEFuIGFjY2VwdGVkIHByb3Bvc2FsIGdldHMgdGhlc2UgYmFjay4gQSByZWplY3RlZCBwcm9wb3NhbCBkb2VzIG5vdC5MUHJvcG9zYWxCb25kTWluaW11bRhAAADBb/KGIwAAAAAAAAAAAARJASBNaW5pbXVtIGFtb3VudCBvZiBmdW5kcyB0aGF0IHNob3VsZCBiZSBwbGFjZWQgaW4gYSBkZXBvc2l0IGZvciBtYWtpbmcgYSBwcm9wb3NhbC5MUHJvcG9zYWxCb25kTWF4aW11bfREAQAAxS68orEAAAAAAAAAAAAESQEgTWF4aW11bSBhbW91bnQgb2YgZnVuZHMgdGhhdCBzaG91bGQgYmUgcGxhY2VkIGluIGEgZGVwb3NpdCBmb3IgbWFraW5nIGEgcHJvcG9zYWwuLFNwZW5kUGVyaW9kEBAgHAAABIggUGVyaW9kIGJldHdlZW4gc3VjY2Vzc2l2ZSBzcGVuZHMuEEJ1cm5pARAAAAAABBEBIFBlcmNlbnRhZ2Ugb2Ygc3BhcmUgZnVuZHMgKGlmIGFueSkgdGhhdCBhcmUgYnVybnQgcGVyIHNwZW5kIHBlcmlvZC4gUGFsbGV0SWRtBCBweS90cnNyeQQZASBUaGUgdHJlYXN1cnkncyBwYWxsZXQgaWQsIHVzZWQgZm9yIGRlcml2aW5nIGl0cyBzb3ZlcmVpZ24gYWNjb3VudCBJRC4wTWF4QXBwcm92YWxzEBBkAAAADBUBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBhcHByb3ZhbHMgdGhhdCBjYW4gd2FpdCBpbiB0aGUgc3BlbmRpbmcgcXVldWUuAE0BIE5PVEU6IFRoaXMgcGFyYW1ldGVyIGlzIGFsc28gdXNlZCB3aXRoaW4gdGhlIEJvdW50aWVzIFBhbGxldCBleHRlbnNpb24gaWYgZW5hYmxlZC4wUGF5b3V0UGVyaW9kEBDASwMABBkBIFRoZSBwZXJpb2QgZHVyaW5nIHdoaWNoIGFuIGFwcHJvdmVkIHRyZWFzdXJ5IHNwZW5kIGhhcyB0byBiZSBjbGFpbWVkLgFxBAsAHFV0aWxpdHkAAXUEAZQETGJhdGNoZWRfY2FsbHNfbGltaXQQEKoqAAAEqCBUaGUgbGltaXQgb24gdGhlIG51bWJlciBvZiBiYXRjaGVkIGNhbGxzLgF5Bw0AIFByZWltYWdlASBQcmVpbWFnZQwkU3RhdHVzRm9yAAEEBjR9BwQABJAgVGhlIHJlcXVlc3Qgc3RhdHVzIG9mIGEgZ2l2ZW4gaGFzaC5AUmVxdWVzdFN0YXR1c0ZvcgABBAY0hQcEAASQIFRoZSByZXF1ZXN0IHN0YXR1cyBvZiBhIGdpdmVuIGhhc2guLFByZWltYWdlRm9yAAEEBpUHmQcEAAABgQQBnAABnQcPACBJZGVudGl0eQEgSWRlbnRpdHkcKElkZW50aXR5T2YAAQQFAKEHBAAQaQEgSW5mb3JtYXRpb24gdGhhdCBpcyBwZXJ0aW5lbnQgdG8gaWRlbnRpZnkgdGhlIGVudGl0eSBiZWhpbmQgYW4gYWNjb3VudC4gRmlyc3QgaXRlbSBpcyB0aGXgIHJlZ2lzdHJhdGlvbiwgc2Vjb25kIGlzIHRoZSBhY2NvdW50J3MgcHJpbWFyeSB1c2VybmFtZS4AwCBUV09YLU5PVEU6IE9LIOKAlSBgQWNjb3VudElkYCBpcyBhIHNlY3VyZSBoYXNoLhxTdXBlck9mAAEEAgAVBQQACGEBIFRoZSBzdXBlci1pZGVudGl0eSBvZiBhbiBhbHRlcm5hdGl2ZSAic3ViIiBpZGVudGl0eSB0b2dldGhlciB3aXRoIGl0cyBuYW1lLCB3aXRoaW4gdGhhdFEBIGNvbnRleHQuIElmIHRoZSBhY2NvdW50IGlzIG5vdCBzb21lIG90aGVyIGFjY291bnQncyBzdWItaWRlbnRpdHksIHRoZW4ganVzdCBgTm9uZWAuGFN1YnNPZgEBBAUAuQdEAAAAAAAAAAAAAAAAAAAAAAAUuCBBbHRlcm5hdGl2ZSAic3ViIiBpZGVudGl0aWVzIG9mIHRoaXMgYWNjb3VudC4AHQEgVGhlIGZpcnN0IGl0ZW0gaXMgdGhlIGRlcG9zaXQsIHRoZSBzZWNvbmQgaXMgYSB2ZWN0b3Igb2YgdGhlIGFjY291bnRzLgDAIFRXT1gtTk9URTogT0sg4oCVIGBBY2NvdW50SWRgIGlzIGEgc2VjdXJlIGhhc2guKFJlZ2lzdHJhcnMBAMEHBAAQTQEgVGhlIHNldCBvZiByZWdpc3RyYXJzLiBOb3QgZXhwZWN0ZWQgdG8gZ2V0IHZlcnkgYmlnIGFzIGNhbiBvbmx5IGJlIGFkZGVkIHRocm91Z2ggYaggc3BlY2lhbCBvcmlnaW4gKGxpa2VseSBhIGNvdW5jaWwgbW90aW9uKS4AKQEgVGhlIGluZGV4IGludG8gdGhpcyBjYW4gYmUgY2FzdCB0byBgUmVnaXN0cmFySW5kZXhgIHRvIGdldCBhIHZhbGlkIHZhbHVlLkxVc2VybmFtZUF1dGhvcml0aWVzAAEEBQDRBwQABPQgQSBtYXAgb2YgdGhlIGFjY291bnRzIHdobyBhcmUgYXV0aG9yaXplZCB0byBncmFudCB1c2VybmFtZXMuREFjY291bnRPZlVzZXJuYW1lAAEEAqQABAAUbQEgUmV2ZXJzZSBsb29rdXAgZnJvbSBgdXNlcm5hbWVgIHRvIHRoZSBgQWNjb3VudElkYCB0aGF0IGhhcyByZWdpc3RlcmVkIGl0LiBUaGUgdmFsdWUgc2hvdWxkZQEgYmUgYSBrZXkgaW4gdGhlIGBJZGVudGl0eU9mYCBtYXAsIGJ1dCBpdCBtYXkgbm90IGlmIHRoZSB1c2VyIGhhcyBjbGVhcmVkIHRoZWlyIGlkZW50aXR5LgBpASBNdWx0aXBsZSB1c2VybmFtZXMgbWF5IG1hcCB0byB0aGUgc2FtZSBgQWNjb3VudElkYCwgYnV0IGBJZGVudGl0eU9mYCB3aWxsIG9ubHkgbWFwIHRvIG9uZUggcHJpbWFyeSB1c2VybmFtZS5AUGVuZGluZ1VzZXJuYW1lcwABBAKk2QcEABhtASBVc2VybmFtZXMgdGhhdCBhbiBhdXRob3JpdHkgaGFzIGdyYW50ZWQsIGJ1dCB0aGF0IHRoZSBhY2NvdW50IGNvbnRyb2xsZXIgaGFzIG5vdCBjb25maXJtZWRxASB0aGF0IHRoZXkgd2FudCBpdC4gVXNlZCBwcmltYXJpbHkgaW4gY2FzZXMgd2hlcmUgdGhlIGBBY2NvdW50SWRgIGNhbm5vdCBwcm92aWRlIGEgc2lnbmF0dXJlXQEgYmVjYXVzZSB0aGV5IGFyZSBhIHB1cmUgcHJveHksIG11bHRpc2lnLCBldGMuIEluIG9yZGVyIHRvIGNvbmZpcm0gaXQsIHRoZXkgc2hvdWxkIGNhbGxsIFtgQ2FsbDo6YWNjZXB0X3VzZXJuYW1lYF0uAB0BIEZpcnN0IHR1cGxlIGl0ZW0gaXMgdGhlIGFjY291bnQgYW5kIHNlY29uZCBpcyB0aGUgYWNjZXB0YW5jZSBkZWFkbGluZS4BhQQBoCAwQmFzaWNEZXBvc2l0GEAAQGNSv8YBAAAAAAAAAAAABNggVGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQgZm9yIGEgcmVnaXN0ZXJlZCBpZGVudGl0eS4sQnl0ZURlcG9zaXQYQACgck4YCQAAAAAAAAAAAAAEHQEgVGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQgcGVyIGVuY29kZWQgYnl0ZSBmb3IgYSByZWdpc3RlcmVkIGlkZW50aXR5LkRTdWJBY2NvdW50RGVwb3NpdBhAAEBjUr/GAQAAAAAAAAAAAAxlASBUaGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdCBmb3IgYSByZWdpc3RlcmVkIHN1YmFjY291bnQuIFRoaXMgc2hvdWxkIGFjY291bnQgZm9yIHRoZSBmYWN0ZQEgdGhhdCBvbmUgc3RvcmFnZSBpdGVtJ3MgdmFsdWUgd2lsbCBpbmNyZWFzZSBieSB0aGUgc2l6ZSBvZiBhbiBhY2NvdW50IElELCBhbmQgdGhlcmUgd2lsbDUBIGJlIGFub3RoZXIgdHJpZSBpdGVtIHdob3NlIHZhbHVlIGlzIHRoZSBzaXplIG9mIGFuIGFjY291bnQgSUQgcGx1cyAzMiBieXRlcy44TWF4U3ViQWNjb3VudHMQEGQAAAAEDQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHN1Yi1hY2NvdW50cyBhbGxvd2VkIHBlciBpZGVudGlmaWVkIGFjY291bnQuNE1heFJlZ2lzdHJhcnMQEBQAAAAITQEgTWF4aW11bSBudW1iZXIgb2YgcmVnaXN0cmFycyBhbGxvd2VkIGluIHRoZSBzeXN0ZW0uIE5lZWRlZCB0byBib3VuZCB0aGUgY29tcGxleGl0eXwgb2YsIGUuZy4sIHVwZGF0aW5nIGp1ZGdlbWVudHMuZFBlbmRpbmdVc2VybmFtZUV4cGlyYXRpb24QEODEAAAEFQEgVGhlIG51bWJlciBvZiBibG9ja3Mgd2l0aGluIHdoaWNoIGEgdXNlcm5hbWUgZ3JhbnQgbXVzdCBiZSBhY2NlcHRlZC48TWF4U3VmZml4TGVuZ3RoEBAHAAAABIAgVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgc3VmZml4LkRNYXhVc2VybmFtZUxlbmd0aBAQIAAAAARhASBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSB1c2VybmFtZSwgaW5jbHVkaW5nIGl0cyBzdWZmaXggYW5kIGFueSBzeXN0ZW0tYWRkZWQgZGVsaW1pdGVycy4B3QcRACREZW1vY3JhY3kBJERlbW9jcmFjeTA8UHVibGljUHJvcENvdW50AQAQEAAAAAAE9CBUaGUgbnVtYmVyIG9mIChwdWJsaWMpIHByb3Bvc2FscyB0aGF0IGhhdmUgYmVlbiBtYWRlIHNvIGZhci4sUHVibGljUHJvcHMBAOEHBAAEBQEgVGhlIHB1YmxpYyBwcm9wb3NhbHMuIFVuc29ydGVkLiBUaGUgc2Vjb25kIGl0ZW0gaXMgdGhlIHByb3Bvc2FsLiREZXBvc2l0T2YAAQQFEO0HBAAMhCBUaG9zZSB3aG8gaGF2ZSBsb2NrZWQgYSBkZXBvc2l0LgDYIFRXT1gtTk9URTogU2FmZSwgYXMgaW5jcmVhc2luZyBpbnRlZ2VyIGtleXMgYXJlIHNhZmUuPFJlZmVyZW5kdW1Db3VudAEAEBAAAAAABDEBIFRoZSBuZXh0IGZyZWUgcmVmZXJlbmR1bSBpbmRleCwgYWthIHRoZSBudW1iZXIgb2YgcmVmZXJlbmRhIHN0YXJ0ZWQgc28gZmFyLjRMb3dlc3RVbmJha2VkAQAQEAAAAAAIJQEgVGhlIGxvd2VzdCByZWZlcmVuZHVtIGluZGV4IHJlcHJlc2VudGluZyBhbiB1bmJha2VkIHJlZmVyZW5kdW0uIEVxdWFsIHRv3CBgUmVmZXJlbmR1bUNvdW50YCBpZiB0aGVyZSBpc24ndCBhIHVuYmFrZWQgcmVmZXJlbmR1bS5AUmVmZXJlbmR1bUluZm9PZgABBAUQ9QcEAAy0IEluZm9ybWF0aW9uIGNvbmNlcm5pbmcgYW55IGdpdmVuIHJlZmVyZW5kdW0uAAkBIFRXT1gtTk9URTogU0FGRSBhcyBpbmRleGVzIGFyZSBub3QgdW5kZXIgYW4gYXR0YWNrZXLigJlzIGNvbnRyb2wuIFZvdGluZ09mAQEEBQABCNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQXQEgQWxsIHZvdGVzIGZvciBhIHBhcnRpY3VsYXIgdm90ZXIuIFdlIHN0b3JlIHRoZSBiYWxhbmNlIGZvciB0aGUgbnVtYmVyIG9mIHZvdGVzIHRoYXQgd2VdASBoYXZlIHJlY29yZGVkLiBUaGUgc2Vjb25kIGl0ZW0gaXMgdGhlIHRvdGFsIGFtb3VudCBvZiBkZWxlZ2F0aW9ucywgdGhhdCB3aWxsIGJlIGFkZGVkLgDoIFRXT1gtTk9URTogU0FGRSBhcyBgQWNjb3VudElkYHMgYXJlIGNyeXB0byBoYXNoZXMgYW55d2F5LlRMYXN0VGFibGVkV2FzRXh0ZXJuYWwBACAEAAhZASBUcnVlIGlmIHRoZSBsYXN0IHJlZmVyZW5kdW0gdGFibGVkIHdhcyBzdWJtaXR0ZWQgZXh0ZXJuYWxseS4gRmFsc2UgaWYgaXQgd2FzIGEgcHVibGljKCBwcm9wb3NhbC4wTmV4dEV4dGVybmFsAAAZCAQAEFkBIFRoZSByZWZlcmVuZHVtIHRvIGJlIHRhYmxlZCB3aGVuZXZlciBpdCB3b3VsZCBiZSB2YWxpZCB0byB0YWJsZSBhbiBleHRlcm5hbCBwcm9wb3NhbC5VASBUaGlzIGhhcHBlbnMgd2hlbiBhIHJlZmVyZW5kdW0gbmVlZHMgdG8gYmUgdGFibGVkIGFuZCBvbmUgb2YgdHdvIGNvbmRpdGlvbnMgYXJlIG1ldDqkIC0gYExhc3RUYWJsZWRXYXNFeHRlcm5hbGAgaXMgYGZhbHNlYDsgb3JoIC0gYFB1YmxpY1Byb3BzYCBpcyBlbXB0eS4kQmxhY2tsaXN0AAEEBjQdCAQACFEBIEEgcmVjb3JkIG9mIHdobyB2ZXRvZWQgd2hhdC4gTWFwcyBwcm9wb3NhbCBoYXNoIHRvIGEgcG9zc2libGUgZXhpc3RlbnQgYmxvY2sgbnVtYmVy6CAodW50aWwgd2hlbiBpdCBtYXkgbm90IGJlIHJlc3VibWl0dGVkKSBhbmQgd2hvIHZldG9lZCBpdC40Q2FuY2VsbGF0aW9ucwEBBAY0IAQABCkBIFJlY29yZCBvZiBhbGwgcHJvcG9zYWxzIHRoYXQgaGF2ZSBiZWVuIHN1YmplY3QgdG8gZW1lcmdlbmN5IGNhbmNlbGxhdGlvbi4oTWV0YWRhdGFPZgABBAK4NAQAGOwgR2VuZXJhbCBpbmZvcm1hdGlvbiBjb25jZXJuaW5nIGFueSBwcm9wb3NhbCBvciByZWZlcmVuZHVtLkkBIFRoZSBgSGFzaGAgcmVmZXJzIHRvIHRoZSBwcmVpbWFnZSBvZiB0aGUgYFByZWltYWdlc2AgcHJvdmlkZXIgd2hpY2ggY2FuIGJlIGEgSlNPToggZHVtcCBvciBJUEZTIGhhc2ggb2YgYSBKU09OIGZpbGUuAHUBIENvbnNpZGVyIGEgZ2FyYmFnZSBjb2xsZWN0aW9uIGZvciBhIG1ldGFkYXRhIG9mIGZpbmlzaGVkIHJlZmVyZW5kdW1zIHRvIGB1bnJlcXVlc3RgIChyZW1vdmUpRCBsYXJnZSBwcmVpbWFnZXMuAS0FAagwPEVuYWN0bWVudFBlcmlvZBAQIBwAABToIFRoZSBwZXJpb2QgYmV0d2VlbiBhIHByb3Bvc2FsIGJlaW5nIGFwcHJvdmVkIGFuZCBlbmFjdGVkLgAxASBJdCBzaG91bGQgZ2VuZXJhbGx5IGJlIGEgbGl0dGxlIG1vcmUgdGhhbiB0aGUgdW5zdGFrZSBwZXJpb2QgdG8gZW5zdXJlIHRoYXRRASB2b3Rpbmcgc3Rha2VycyBoYXZlIGFuIG9wcG9ydHVuaXR5IHRvIHJlbW92ZSB0aGVtc2VsdmVzIGZyb20gdGhlIHN5c3RlbSBpbiB0aGUgY2FzZbQgd2hlcmUgdGhleSBhcmUgb24gdGhlIGxvc2luZyBzaWRlIG9mIGEgdm90ZS4wTGF1bmNoUGVyaW9kEBBgVAAABOQgSG93IG9mdGVuIChpbiBibG9ja3MpIG5ldyBwdWJsaWMgcmVmZXJlbmRhIGFyZSBsYXVuY2hlZC4wVm90aW5nUGVyaW9kEBBgVAAABLggSG93IG9mdGVuIChpbiBibG9ja3MpIHRvIGNoZWNrIGZvciBuZXcgdm90ZXMuRFZvdGVMb2NraW5nUGVyaW9kEBDAqAAAEJAgVGhlIG1pbmltdW0gcGVyaW9kIG9mIHZvdGUgbG9ja2luZy4AZQEgSXQgc2hvdWxkIGJlIG5vIHNob3J0ZXIgdGhhbiBlbmFjdG1lbnQgcGVyaW9kIHRvIGVuc3VyZSB0aGF0IGluIHRoZSBjYXNlIG9mIGFuIGFwcHJvdmFsLEkBIHRob3NlIHN1Y2Nlc3NmdWwgdm90ZXJzIGFyZSBsb2NrZWQgaW50byB0aGUgY29uc2VxdWVuY2VzIHRoYXQgdGhlaXIgdm90ZXMgZW50YWlsLjhNaW5pbXVtRGVwb3NpdBhAAACKXXhFYwEAAAAAAAAAAAQ1ASBUaGUgbWluaW11bSBhbW91bnQgdG8gYmUgdXNlZCBhcyBhIGRlcG9zaXQgZm9yIGEgcHVibGljIHJlZmVyZW5kdW0gcHJvcG9zYWwuOEluc3RhbnRBbGxvd2VkIAQBDFUBIEluZGljYXRvciBmb3Igd2hldGhlciBhbiBlbWVyZ2VuY3kgb3JpZ2luIGlzIGV2ZW4gYWxsb3dlZCB0byBoYXBwZW4uIFNvbWUgY2hhaW5zIG1heWEBIHdhbnQgdG8gc2V0IHRoaXMgcGVybWFuZW50bHkgdG8gYGZhbHNlYCwgb3RoZXJzIG1heSB3YW50IHRvIGNvbmRpdGlvbiBpdCBvbiB0aGluZ3Mgc3VjaKAgYXMgYW4gdXBncmFkZSBoYXZpbmcgaGFwcGVuZWQgcmVjZW50bHkuVEZhc3RUcmFja1ZvdGluZ1BlcmlvZBAQhAMAAATsIE1pbmltdW0gdm90aW5nIHBlcmlvZCBhbGxvd2VkIGZvciBhIGZhc3QtdHJhY2sgcmVmZXJlbmR1bS40Q29vbG9mZlBlcmlvZBAQ4MQAAARhASBQZXJpb2QgaW4gYmxvY2tzIHdoZXJlIGFuIGV4dGVybmFsIHByb3Bvc2FsIG1heSBub3QgYmUgcmUtc3VibWl0dGVkIGFmdGVyIGJlaW5nIHZldG9lZC4gTWF4Vm90ZXMQEGQAAAAQsCBUaGUgbWF4aW11bSBudW1iZXIgb2Ygdm90ZXMgZm9yIGFuIGFjY291bnQuANQgQWxzbyB1c2VkIHRvIGNvbXB1dGUgd2VpZ2h0LCBhbiBvdmVybHkgYmlnIHZhbHVlIGNhbhUBIGxlYWQgdG8gZXh0cmluc2ljIHdpdGggdmVyeSBiaWcgd2VpZ2h0OiBzZWUgYGRlbGVnYXRlYCBmb3IgaW5zdGFuY2UuME1heFByb3Bvc2FscxAQZAAAAAQNASBUaGUgbWF4aW11bSBudW1iZXIgb2YgcHVibGljIHByb3Bvc2FscyB0aGF0IGNhbiBleGlzdCBhdCBhbnkgdGltZS4sTWF4RGVwb3NpdHMQEGQAAAAEHQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGRlcG9zaXRzIGEgcHVibGljIHByb3Bvc2FsIG1heSBoYXZlIGF0IGFueSB0aW1lLjhNYXhCbGFja2xpc3RlZBAQZAAAAATYIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpdGVtcyB3aGljaCBjYW4gYmUgYmxhY2tsaXN0ZWQuASEIEwAkRWxlY3Rpb25zASRFbGVjdGlvbnMUHE1lbWJlcnMBACUIBAAMdCBUaGUgY3VycmVudCBlbGVjdGVkIG1lbWJlcnMuALggSW52YXJpYW50OiBBbHdheXMgc29ydGVkIGJhc2VkIG9uIGFjY291bnQgaWQuJFJ1bm5lcnNVcAEAJQgEABCEIFRoZSBjdXJyZW50IHJlc2VydmVkIHJ1bm5lcnMtdXAuAFkBIEludmFyaWFudDogQWx3YXlzIHNvcnRlZCBiYXNlZCBvbiByYW5rICh3b3JzZSB0byBiZXN0KS4gVXBvbiByZW1vdmFsIG9mIGEgbWVtYmVyLCB0aGW8IGxhc3QgKGkuZS4gX2Jlc3RfKSBydW5uZXItdXAgd2lsbCBiZSByZXBsYWNlZC4oQ2FuZGlkYXRlcwEAwAQAGFkBIFRoZSBwcmVzZW50IGNhbmRpZGF0ZSBsaXN0LiBBIGN1cnJlbnQgbWVtYmVyIG9yIHJ1bm5lci11cCBjYW4gbmV2ZXIgZW50ZXIgdGhpcyB2ZWN0b3LQIGFuZCBpcyBhbHdheXMgaW1wbGljaXRseSBhc3N1bWVkIHRvIGJlIGEgY2FuZGlkYXRlLgB8IFNlY29uZCBlbGVtZW50IGlzIHRoZSBkZXBvc2l0LgC4IEludmFyaWFudDogQWx3YXlzIHNvcnRlZCBiYXNlZCBvbiBhY2NvdW50IGlkLjhFbGVjdGlvblJvdW5kcwEAEBAAAAAABEEBIFRoZSB0b3RhbCBudW1iZXIgb2Ygdm90ZSByb3VuZHMgdGhhdCBoYXZlIGhhcHBlbmVkLCBleGNsdWRpbmcgdGhlIHVwY29taW5nIG9uZS4YVm90aW5nAQEEBQAtCIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMuCBWb3RlcyBhbmQgbG9ja2VkIHN0YWtlIG9mIGEgcGFydGljdWxhciB2b3Rlci4AxCBUV09YLU5PVEU6IFNBRkUgYXMgYEFjY291bnRJZGAgaXMgYSBjcnlwdG8gaGFzaC4BRQUBvCggUGFsbGV0SWTxASBwaHJlbGVjdATQIElkZW50aWZpZXIgZm9yIHRoZSBlbGVjdGlvbnMtcGhyYWdtZW4gcGFsbGV0J3MgbG9jazRDYW5kaWRhY3lCb25kGEAAQGNSv8YBAAAAAAAAAAAABAUBIEhvdyBtdWNoIHNob3VsZCBiZSBsb2NrZWQgdXAgaW4gb3JkZXIgdG8gc3VibWl0IG9uZSdzIGNhbmRpZGFjeS44Vm90aW5nQm9uZEJhc2UYQAAQpdToAAAAAAAAAAAAAAAQlCBCYXNlIGRlcG9zaXQgYXNzb2NpYXRlZCB3aXRoIHZvdGluZy4AVQEgVGhpcyBzaG91bGQgYmUgc2Vuc2libHkgaGlnaCB0byBlY29ub21pY2FsbHkgZW5zdXJlIHRoZSBwYWxsZXQgY2Fubm90IGJlIGF0dGFja2VkIGJ5lCBjcmVhdGluZyBhIGdpZ2FudGljIG51bWJlciBvZiB2b3Rlcy5AVm90aW5nQm9uZEZhY3RvchhAABCl1OgAAAAAAAAAAAAAAAQRASBUaGUgYW1vdW50IG9mIGJvbmQgdGhhdCBuZWVkIHRvIGJlIGxvY2tlZCBmb3IgZWFjaCB2b3RlICgzMiBieXRlcykuOERlc2lyZWRNZW1iZXJzEBANAAAABHAgTnVtYmVyIG9mIG1lbWJlcnMgdG8gZWxlY3QuQERlc2lyZWRSdW5uZXJzVXAQEA8AAAAEeCBOdW1iZXIgb2YgcnVubmVyc191cCB0byBrZWVwLjBUZXJtRHVyYXRpb24QEODEAAAMUQEgSG93IGxvbmcgZWFjaCBzZWF0IGlzIGtlcHQuIFRoaXMgZGVmaW5lcyB0aGUgbmV4dCBibG9jayBudW1iZXIgYXQgd2hpY2ggYW4gZWxlY3Rpb25dASByb3VuZCB3aWxsIGhhcHBlbi4gSWYgc2V0IHRvIHplcm8sIG5vIGVsZWN0aW9ucyBhcmUgZXZlciB0cmlnZ2VyZWQgYW5kIHRoZSBtb2R1bGUgd2lsbFAgYmUgaW4gcGFzc2l2ZSBtb2RlLjRNYXhDYW5kaWRhdGVzEBBkAAAAGOQgVGhlIG1heGltdW0gbnVtYmVyIG9mIGNhbmRpZGF0ZXMgaW4gYSBwaHJhZ21lbiBlbGVjdGlvbi4AXQEgV2FybmluZzogVGhpcyBpbXBhY3RzIHRoZSBzaXplIG9mIHRoZSBlbGVjdGlvbiB3aGljaCBpcyBydW4gb25jaGFpbi4gQ2hvc2Ugd2lzZWx5LCBhbmQBASBjb25zaWRlciBob3cgaXQgd2lsbCBpbXBhY3QgYFQ6OldlaWdodEluZm86OmVsZWN0aW9uX3BocmFnbWVuYC4AMQEgV2hlbiB0aGlzIGxpbWl0IGlzIHJlYWNoZWQgbm8gbW9yZSBjYW5kaWRhdGVzIGFyZSBhY2NlcHRlZCBpbiB0aGUgZWxlY3Rpb24uJE1heFZvdGVycxAQAAMAABj4IFRoZSBtYXhpbXVtIG51bWJlciBvZiB2b3RlcnMgdG8gYWxsb3cgaW4gYSBwaHJhZ21lbiBlbGVjdGlvbi4AXQEgV2FybmluZzogVGhpcyBpbXBhY3RzIHRoZSBzaXplIG9mIHRoZSBlbGVjdGlvbiB3aGljaCBpcyBydW4gb25jaGFpbi4gQ2hvc2Ugd2lzZWx5LCBhbmQBASBjb25zaWRlciBob3cgaXQgd2lsbCBpbXBhY3QgYFQ6OldlaWdodEluZm86OmVsZWN0aW9uX3BocmFnbWVuYC4A2CBXaGVuIHRoZSBsaW1pdCBpcyByZWFjaGVkIHRoZSBuZXcgdm90ZXJzIGFyZSBpZ25vcmVkLkBNYXhWb3Rlc1BlclZvdGVyEBAKAAAAEJAgTWF4aW11bSBudW1iZXJzIG9mIHZvdGVzIHBlciB2b3Rlci4AXQEgV2FybmluZzogVGhpcyBpbXBhY3RzIHRoZSBzaXplIG9mIHRoZSBlbGVjdGlvbiB3aGljaCBpcyBydW4gb25jaGFpbi4gQ2hvc2Ugd2lzZWx5LCBhbmQBASBjb25zaWRlciBob3cgaXQgd2lsbCBpbXBhY3QgYFQ6OldlaWdodEluZm86OmVsZWN0aW9uX3BocmFnbWVuYC4BMQgVABxDb3VuY2lsARxDb3VuY2lsGCRQcm9wb3NhbHMBADUIBAAEkCBUaGUgaGFzaGVzIG9mIHRoZSBhY3RpdmUgcHJvcG9zYWxzLihQcm9wb3NhbE9mAAEEBjR9BAQABMwgQWN0dWFsIHByb3Bvc2FsIGZvciBhIGdpdmVuIGhhc2gsIGlmIGl0J3MgY3VycmVudC4YVm90aW5nAAEEBjQ5CAQABLQgVm90ZXMgb24gYSBnaXZlbiBwcm9wb3NhbCwgaWYgaXQgaXMgb25nb2luZy40UHJvcG9zYWxDb3VudAEAEBAAAAAABEggUHJvcG9zYWxzIHNvIGZhci4cTWVtYmVycwEAmQMEAAQ5ASBUaGUgY3VycmVudCBtZW1iZXJzIG9mIHRoZSBjb2xsZWN0aXZlLiBUaGlzIGlzIHN0b3JlZCBzb3J0ZWQgKGp1c3QgYnkgdmFsdWUpLhRQcmltZQAAAAQABGEBIFRoZSBwcmltZSBtZW1iZXIgdGhhdCBoZWxwcyBkZXRlcm1pbmUgdGhlIGRlZmF1bHQgdm90ZSBiZWhhdmlvciBpbiBjYXNlIG9mIGFic3RlbnRpb25zLgFNBQHIBERNYXhQcm9wb3NhbFdlaWdodCgoBwBEKTU6AgCgAAQlASBUaGUgbWF4aW11bSB3ZWlnaHQgb2YgYSBkaXNwYXRjaCBjYWxsIHRoYXQgY2FuIGJlIHByb3Bvc2VkIGFuZCBleGVjdXRlZC4BPQgXAEhUZWNobmljYWxDb21taXR0ZWUBSFRlY2huaWNhbENvbW1pdHRlZRgkUHJvcG9zYWxzAQBBCAQABJAgVGhlIGhhc2hlcyBvZiB0aGUgYWN0aXZlIHByb3Bvc2Fscy4oUHJvcG9zYWxPZgABBAY0fQQEAATMIEFjdHVhbCBwcm9wb3NhbCBmb3IgYSBnaXZlbiBoYXNoLCBpZiBpdCdzIGN1cnJlbnQuGFZvdGluZwABBAY0OQgEAAS0IFZvdGVzIG9uIGEgZ2l2ZW4gcHJvcG9zYWwsIGlmIGl0IGlzIG9uZ29pbmcuNFByb3Bvc2FsQ291bnQBABAQAAAAAARIIFByb3Bvc2FscyBzbyBmYXIuHE1lbWJlcnMBAJkDBAAEOQEgVGhlIGN1cnJlbnQgbWVtYmVycyBvZiB0aGUgY29sbGVjdGl2ZS4gVGhpcyBpcyBzdG9yZWQgc29ydGVkIChqdXN0IGJ5IHZhbHVlKS4UUHJpbWUAAAAEAARhASBUaGUgcHJpbWUgbWVtYmVyIHRoYXQgaGVscHMgZGV0ZXJtaW5lIHRoZSBkZWZhdWx0IHZvdGUgYmVoYXZpb3IgaW4gY2FzZSBvZiBhYnN0ZW50aW9ucy4BUQUBzARETWF4UHJvcG9zYWxXZWlnaHQoKAcARCk1OgIAoAAEJQEgVGhlIG1heGltdW0gd2VpZ2h0IG9mIGEgZGlzcGF0Y2ggY2FsbCB0aGF0IGNhbiBiZSBwcm9wb3NlZCBhbmQgZXhlY3V0ZWQuAUUIGQAQVGlwcwEQVGlwcwgQVGlwcwABBAU0SQgEAAxlASBUaXBzTWFwIHRoYXQgYXJlIG5vdCB5ZXQgY29tcGxldGVkLiBLZXllZCBieSB0aGUgaGFzaCBvZiBgKHJlYXNvbiwgd2hvKWAgZnJvbSB0aGUgdmFsdWUuPQEgVGhpcyBoYXMgdGhlIGluc2VjdXJlIGVudW1lcmFibGUgaGFzaCBmdW5jdGlvbiBzaW5jZSB0aGUga2V5IGl0c2VsZiBpcyBhbHJlYWR5gCBndWFyYW50ZWVkIHRvIGJlIGEgc2VjdXJlIGhhc2guHFJlYXNvbnMAAQQGNDgEAAhJASBTaW1wbGUgcHJlaW1hZ2UgbG9va3VwIGZyb20gdGhlIHJlYXNvbidzIGhhc2ggdG8gdGhlIG9yaWdpbmFsIGRhdGEuIEFnYWluLCBoYXMgYW5hASBpbnNlY3VyZSBlbnVtZXJhYmxlIGhhc2ggc2luY2UgdGhlIGtleSBpcyBndWFyYW50ZWVkIHRvIGJlIHRoZSByZXN1bHQgb2YgYSBzZWN1cmUgaGFzaC4BVQUB0BhMTWF4aW11bVJlYXNvbkxlbmd0aBAQAAQAAAyIIE1heGltdW0gYWNjZXB0YWJsZSByZWFzb24gbGVuZ3RoLgBlASBCZW5jaG1hcmtzIGRlcGVuZCBvbiB0aGlzIHZhbHVlLCBiZSBzdXJlIHRvIHVwZGF0ZSB3ZWlnaHRzIGZpbGUgd2hlbiBjaGFuZ2luZyB0aGlzIHZhbHVlSERhdGFEZXBvc2l0UGVyQnl0ZRhAABCl1OgAAAAAAAAAAAAAAARhASBUaGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdCBwZXIgYnl0ZSB3aXRoaW4gdGhlIHRpcCByZXBvcnQgcmVhc29uIG9yIGJvdW50eSBkZXNjcmlwdGlvbi4wVGlwQ291bnRkb3duEBAgHAAABEUBIFRoZSBwZXJpb2QgZm9yIHdoaWNoIGEgdGlwIHJlbWFpbnMgb3BlbiBhZnRlciBpcyBoYXMgYWNoaWV2ZWQgdGhyZXNob2xkIHRpcHBlcnMuNFRpcEZpbmRlcnNGZWVNCAQBBDUBIFRoZSBwZXJjZW50IG9mIHRoZSBmaW5hbCB0aXAgd2hpY2ggZ29lcyB0byB0aGUgb3JpZ2luYWwgcmVwb3J0ZXIgb2YgdGhlIHRpcC5QVGlwUmVwb3J0RGVwb3NpdEJhc2UYQACAxqR+jQMAAAAAAAAAAAAE+CBUaGUgbm9uLXplcm8gYW1vdW50IGhlbGQgb24gZGVwb3NpdCBmb3IgcGxhY2luZyBhIHRpcCByZXBvcnQuME1heFRpcEFtb3VudBhAAAD0RIKRY0UAAAAAAAAAAASUIFRoZSBtYXhpbXVtIGFtb3VudCBmb3IgYSBzaW5nbGUgdGlwLgFRCBsAFFByb3h5ARRQcm94eQgcUHJveGllcwEBBAUAVQhEAAAAAAAAAAAAAAAAAAAAAAAIRQEgVGhlIHNldCBvZiBhY2NvdW50IHByb3hpZXMuIE1hcHMgdGhlIGFjY291bnQgd2hpY2ggaGFzIGRlbGVnYXRlZCB0byB0aGUgYWNjb3VudHMhASB3aGljaCBhcmUgYmVpbmcgZGVsZWdhdGVkIHRvLCB0b2dldGhlciB3aXRoIHRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0LjRBbm5vdW5jZW1lbnRzAQEEBQBlCEQAAAAAAAAAAAAAAAAAAAAAAASsIFRoZSBhbm5vdW5jZW1lbnRzIG1hZGUgYnkgdGhlIHByb3h5IChrZXkpLgFZBQHUGEBQcm94eURlcG9zaXRCYXNlGEAA4BECHrYAAAAAAAAAAAAAEBEBIFRoZSBiYXNlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgdG8gcmVzZXJ2ZSBmb3IgY3JlYXRpbmcgYSBwcm94eS4AAQEgVGhpcyBpcyBoZWxkIGZvciBhbiBhZGRpdGlvbmFsIHN0b3JhZ2UgaXRlbSB3aG9zZSB2YWx1ZSBzaXplIGlzJQEgYHNpemVvZihCYWxhbmNlKWAgYnl0ZXMgYW5kIHdob3NlIGtleSBzaXplIGlzIGBzaXplb2YoQWNjb3VudElkKWAgYnl0ZXMuSFByb3h5RGVwb3NpdEZhY3RvchhAACyZgOYAAAAAAAAAAAAAABS8IFRoZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHBlciBwcm94eSBhZGRlZC4ANQEgVGhpcyBpcyBoZWxkIGZvciBhZGRpbmcgMzIgYnl0ZXMgcGx1cyBhbiBpbnN0YW5jZSBvZiBgUHJveHlUeXBlYCBtb3JlIGludG8gYWEBIHByZS1leGlzdGluZyBzdG9yYWdlIHZhbHVlLiBUaHVzLCB3aGVuIGNvbmZpZ3VyaW5nIGBQcm94eURlcG9zaXRGYWN0b3JgIG9uZSBzaG91bGQgdGFrZfQgaW50byBhY2NvdW50IGAzMiArIHByb3h5X3R5cGUuZW5jb2RlKCkubGVuKClgIGJ5dGVzIG9mIGRhdGEuKE1heFByb3hpZXMQECAAAAAE8CBUaGUgbWF4aW11bSBhbW91bnQgb2YgcHJveGllcyBhbGxvd2VkIGZvciBhIHNpbmdsZSBhY2NvdW50LihNYXhQZW5kaW5nEBAgAAAABEUBIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB0aW1lLWRlbGF5ZWQgYW5ub3VuY2VtZW50cyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIHBlbmRpbmcuXEFubm91bmNlbWVudERlcG9zaXRCYXNlGEAA4BECHrYAAAAAAAAAAAAAEDEBIFRoZSBiYXNlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgdG8gcmVzZXJ2ZSBmb3IgY3JlYXRpbmcgYW4gYW5ub3VuY2VtZW50LgBJASBUaGlzIGlzIGhlbGQgd2hlbiBhIG5ldyBzdG9yYWdlIGl0ZW0gaG9sZGluZyBhIGBCYWxhbmNlYCBpcyBjcmVhdGVkICh0eXBpY2FsbHkgMTYgIGJ5dGVzKS5kQW5ub3VuY2VtZW50RGVwb3NpdEZhY3RvchhAAFgyAc0BAAAAAAAAAAAAABDUIFRoZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHBlciBhbm5vdW5jZW1lbnQgbWFkZS4AWQEgVGhpcyBpcyBoZWxkIGZvciBhZGRpbmcgYW4gYEFjY291bnRJZGAsIGBIYXNoYCBhbmQgYEJsb2NrTnVtYmVyYCAodHlwaWNhbGx5IDY4IGJ5dGVzKYwgaW50byBhIHByZS1leGlzdGluZyBzdG9yYWdlIHZhbHVlLgF1CB0AIE11bHRpc2lnASBNdWx0aXNpZwQkTXVsdGlzaWdzAAEIBQJ5CH0IBAAElCBUaGUgc2V0IG9mIG9wZW4gbXVsdGlzaWcgb3BlcmF0aW9ucy4BYQUB4AwsRGVwb3NpdEJhc2UYQACgN81MuAAAAAAAAAAAAAAYWQEgVGhlIGJhc2UgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCB0byByZXNlcnZlIGZvciBjcmVhdGluZyBhIG11bHRpc2lnIGV4ZWN1dGlvbiBvciB0b4Qgc3RvcmUgYSBkaXNwYXRjaCBjYWxsIGZvciBsYXRlci4AAQEgVGhpcyBpcyBoZWxkIGZvciBhbiBhZGRpdGlvbmFsIHN0b3JhZ2UgaXRlbSB3aG9zZSB2YWx1ZSBzaXplIGlzMQEgYDQgKyBzaXplb2YoKEJsb2NrTnVtYmVyLCBCYWxhbmNlLCBBY2NvdW50SWQpKWAgYnl0ZXMgYW5kIHdob3NlIGtleSBzaXplIGlzgCBgMzIgKyBzaXplb2YoQWNjb3VudElkKWAgYnl0ZXMuNERlcG9zaXRGYWN0b3IYQACAdYTfAAAAAAAAAAAAAAAMVQEgVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgcGVyIHVuaXQgdGhyZXNob2xkIHdoZW4gY3JlYXRpbmcgYSBtdWx0aXNpZyBleGVjdXRpb24uACUBIFRoaXMgaXMgaGVsZCBmb3IgYWRkaW5nIDMyIGJ5dGVzIG1vcmUgaW50byBhIHByZS1leGlzdGluZyBzdG9yYWdlIHZhbHVlLjhNYXhTaWduYXRvcmllcxAQZAAAAATsIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBzaWduYXRvcmllcyBhbGxvd2VkIGluIHRoZSBtdWx0aXNpZy4BhQgfABxVbmlxdWVzARxVbmlxdWVzKBRDbGFzcwABBAIYiQgEAARkIERldGFpbHMgb2YgYSBjb2xsZWN0aW9uLkxPd25lcnNoaXBBY2NlcHRhbmNlAAEEAgAYBAAEKQEgVGhlIGNvbGxlY3Rpb24sIGlmIGFueSwgb2Ygd2hpY2ggYW4gYWNjb3VudCBpcyB3aWxsaW5nIHRvIHRha2Ugb3duZXJzaGlwLhxBY2NvdW50AAEMAgICjQiQBAAIWQEgVGhlIGl0ZW1zIGhlbGQgYnkgYW55IGdpdmVuIGFjY291bnQ7IHNldCBvdXQgdGhpcyB3YXkgc28gdGhhdCBpdGVtcyBvd25lZCBieSBhIHNpbmdsZWwgYWNjb3VudCBjYW4gYmUgZW51bWVyYXRlZC4wQ2xhc3NBY2NvdW50AAEIAgLEkAQACGkBIFRoZSBjb2xsZWN0aW9ucyBvd25lZCBieSBhbnkgZ2l2ZW4gYWNjb3VudDsgc2V0IG91dCB0aGlzIHdheSBzbyB0aGF0IGNvbGxlY3Rpb25zIG93bmVkIGJ5kCBhIHNpbmdsZSBhY2NvdW50IGNhbiBiZSBlbnVtZXJhdGVkLhRBc3NldAABCAICqQWRCAQABNAgVGhlIGl0ZW1zIGluIGV4aXN0ZW5jZSBhbmQgdGhlaXIgb3duZXJzaGlwIGRldGFpbHMuPENsYXNzTWV0YWRhdGFPZgABBAIYlQgEAARoIE1ldGFkYXRhIG9mIGEgY29sbGVjdGlvbi5ISW5zdGFuY2VNZXRhZGF0YU9mAAEIAgKpBZkIBAAEVCBNZXRhZGF0YSBvZiBhbiBpdGVtLiRBdHRyaWJ1dGUAAQwCAgKdCKEIBAAEcCBBdHRyaWJ1dGVzIG9mIGEgY29sbGVjdGlvbi4sSXRlbVByaWNlT2YAAQgCAqkFpQgEAARwIFByaWNlIG9mIGFuIGFzc2V0IGluc3RhbmNlLkxDb2xsZWN0aW9uTWF4U3VwcGx5AAEEAhgQBAAE8CBLZWVwcyB0cmFjayBvZiB0aGUgbnVtYmVyIG9mIGl0ZW1zIGEgY29sbGVjdGlvbiBtaWdodCBoYXZlLgFpBQHoIERDb2xsZWN0aW9uRGVwb3NpdBhAAAAAAAAAAAAAAAAAAAAAAAQBASBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCBmb3IgY29sbGVjdGlvbi4sSXRlbURlcG9zaXQYQAAAAAAAAAAAAAAAAAAAAAAE9CBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCBmb3IgYW4gaXRlbS5MTWV0YWRhdGFEZXBvc2l0QmFzZRhAAIDGpH6NAwAAAAAAAAAAAARNASBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCB3aGVuIGFkZGluZyBtZXRhZGF0YSB0byB5b3VyIGl0ZW0uUEF0dHJpYnV0ZURlcG9zaXRCYXNlGEAAEKXU6AAAAAAAAAAAAAAABFUBIFRoZSBiYXNpYyBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIHdoZW4gYWRkaW5nIGFuIGF0dHJpYnV0ZSB0byBhbiBpdGVtLjhEZXBvc2l0UGVyQnl0ZRhAABCl1OgAAAAAAAAAAAAAAAhZASBUaGUgYWRkaXRpb25hbCBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIHRoZSBudW1iZXIgb2YgYnl0ZXMgc3RvcmUgaW4gbWV0YWRhdGEswCBlaXRoZXIgIm5vcm1hbCIgbWV0YWRhdGEgb3IgYXR0cmlidXRlIG1ldGFkYXRhLixTdHJpbmdMaW1pdBAQSAAAAASwIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBkYXRhIHN0b3JlZCBvbi1jaGFpbi4gS2V5TGltaXQQEAABAAAEoCBUaGUgbWF4aW11bSBsZW5ndGggb2YgYW4gYXR0cmlidXRlIGtleS4oVmFsdWVMaW1pdBAQAAQAAASoIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBhdHRyaWJ1dGUgdmFsdWUuAakIIABIU3RhdGVUcmllTWlncmF0aW9uAUhTdGF0ZVRyaWVNaWdyYXRpb24MQE1pZ3JhdGlvblByb2Nlc3MBAH0FOAAAAAAAAAAAAAAAAAAAEFAgTWlncmF0aW9uIHByb2dyZXNzLgBdASBUaGlzIHN0b3JlcyB0aGUgc25hcHNob3Qgb2YgdGhlIGxhc3QgbWlncmF0ZWQga2V5cy4gSXQgY2FuIGJlIHNldCBpbnRvIG1vdGlvbiBhbmQgbW92ZdQgZm9yd2FyZCBieSBhbnkgb2YgdGhlIG1lYW5zIHByb3ZpZGVkIGJ5IHRoaXMgcGFsbGV0LihBdXRvTGltaXRzAQB1BQQADNQgVGhlIGxpbWl0cyB0aGF0IGFyZSBpbXBvc2VkIG9uIGF1dG9tYXRpYyBtaWdyYXRpb25zLgDUIElmIHNldCB0byBOb25lLCB0aGVuIG5vIGF1dG9tYXRpYyBtaWdyYXRpb24gaGFwcGVucy5gU2lnbmVkTWlncmF0aW9uTWF4TGltaXRzAAB5BQQADOAgVGhlIG1heGltdW0gbGltaXRzIHRoYXQgdGhlIHNpZ25lZCBtaWdyYXRpb24gY291bGQgdXNlLgC0IElmIG5vdCBzZXQsIG5vIHNpZ25lZCBzdWJtaXNzaW9uIGlzIGFsbG93ZWQuAXEFAQUBBCRNYXhLZXlMZW4QEAACAABUtCBNYXhpbWFsIG51bWJlciBvZiBieXRlcyB0aGF0IGEga2V5IGNhbiBoYXZlLgCwIEZSQU1FIGl0c2VsZiBkb2VzIG5vdCBsaW1pdCB0aGUga2V5IGxlbmd0aC4BASBUaGUgY29uY3JldGUgdmFsdWUgbXVzdCB0aGVyZWZvcmUgZGVwZW5kIG9uIHlvdXIgc3RvcmFnZSB1c2FnZS5ZASBBIFtgZnJhbWVfc3VwcG9ydDo6c3RvcmFnZTo6U3RvcmFnZU5NYXBgXSBmb3IgZXhhbXBsZSBjYW4gaGF2ZSBhbiBhcmJpdHJhcnkgbnVtYmVyIG9mRQEga2V5cyB3aGljaCBhcmUgdGhlbiBoYXNoZWQgYW5kIGNvbmNhdGVuYXRlZCwgcmVzdWx0aW5nIGluIGFyYml0cmFyaWx5IGxvbmcga2V5cy4AQQEgVXNlIHRoZSAqc3RhdGUgbWlncmF0aW9uIFJQQyogdG8gcmV0cmlldmUgdGhlIGxlbmd0aCBvZiB0aGUgbG9uZ2VzdCBrZXkgaW4geW91cgEBIHN0b3JhZ2U6IDxodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvaXNzdWVzLzExNjQyPgApASBUaGUgbWlncmF0aW9uIHdpbGwgaGFsdCB3aXRoIGEgYEhhbHRlZGAgZXZlbnQgaWYgdGhpcyB2YWx1ZSBpcyB0b28gc21hbGwuSQEgU2luY2UgdGhlcmUgaXMgbm8gcmVhbCBwZW5hbHR5IGZyb20gb3Zlci1lc3RpbWF0aW5nLCBpdCBpcyBhZHZpc2VkIHRvIHVzZSBhIGxhcmdlgCB2YWx1ZS4gVGhlIGRlZmF1bHQgaXMgNTEyIGJ5dGUuAIAgU29tZSBrZXkgbGVuZ3RocyBmb3IgcmVmZXJlbmNlOtAgLSBbYGZyYW1lX3N1cHBvcnQ6OnN0b3JhZ2U6OlN0b3JhZ2VWYWx1ZWBdOiAzMiBieXRlyCAtIFtgZnJhbWVfc3VwcG9ydDo6c3RvcmFnZTo6U3RvcmFnZU1hcGBdOiA2NCBieXRl4CAtIFtgZnJhbWVfc3VwcG9ydDo6c3RvcmFnZTo6U3RvcmFnZURvdWJsZU1hcGBdOiA5NiBieXRlAEggRm9yIG1vcmUgaW5mbyBzZWVJASA8aHR0cHM6Ly93d3cuc2hhd250YWJyaXppLmNvbS9ibG9nL3N1YnN0cmF0ZS9xdWVyeWluZy1zdWJzdHJhdGUtc3RvcmFnZS12aWEtcnBjLz4BDQEjADRBc3NldFJlZ2lzdHJ5ATRBc3NldFJlZ2lzdHJ5HBhBc3NldHMAAQQCEK0IBAAEVCBEZXRhaWxzIG9mIGFuIGFzc2V0LixOZXh0QXNzZXRJZAEAEBABAAAABF0BIE5leHQgYXZhaWxhYmxlIGFzc2V0IGlkLiBUaGlzIGlzIHNlcXVlbnRpYWwgaWQgYXNzaWduZWQgZm9yIGVhY2ggbmV3IHJlZ2lzdGVyZWQgYXNzZXQuIEFzc2V0SWRzAAEEAhkBEAQABKQgTWFwcGluZyBiZXR3ZWVuIGFzc2V0IG5hbWUgYW5kIGFzc2V0IGlkLjhBc3NldExvY2F0aW9ucwABBAIQJQEEAAR0IE5hdGl2ZSBsb2NhdGlvbiBvZiBhbiBhc3NldC4wQmFubmVkQXNzZXRzAAEEAhCQBAAEsCBOb24tbmF0aXZlIGFzc2V0cyB3aGljaCB0cmFuc2ZlciBpcyBiYW5uZWQuOExvY2F0aW9uQXNzZXRzAAEEAiUBEAQABIQgTG9jYWwgYXNzZXQgZm9yIG5hdGl2ZSBsb2NhdGlvbi5kRXhpc3RlbnRpYWxEZXBvc2l0Q291bnRlcgEAGEAAAAAAAAAAAAAAAAAAAAAACC0BIE51bWJlciBvZiBhY2NvdW50cyB0aGF0IHBhaWQgZXhpc3RlbnRpYWwgZGVwb3NpdHMgZm9yIGluc3VmZmljaWVudCBhc3NldHMusCBUaGlzIHN0b3JhZ2UgaXMgdXNlZCBieSBgU3VmZmljaWVuY3lDaGVja2AuAYkFAREBEExTZXF1ZW50aWFsSWRTdGFydEF0EBBAQg8AACxTdHJpbmdMaW1pdBAQIAAAAATgIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIG5hbWUgb3Igc3ltYm9sIHN0b3JlZCBvbi1jaGFpbi44TWluU3RyaW5nTGltaXQQEAMAAAAE0CBUaGUgbWluIGxlbmd0aCBvZiBhIG5hbWUgb3Igc3ltYm9sIHN0b3JlZCBvbi1jaGFpbi5sUmVnRXh0ZXJuYWxXZWlnaHRNdWx0aXBsaWVyMCAKAAAAAAAAAATQIFdlaWdodCBtdWx0aXBsaWVyIGZvciBgcmVnaXN0ZXJfZXh0ZXJuYWxgIGV4dHJpbnNpYwGxCDMAGENsYWltcwEYQ2xhaW1zBBhDbGFpbXMBAQQCVQEYQAAAAAAAAAAAAAAAAAAAAAAEnCBBc3NldCBpZCBzdG9yYWdlIGZvciBlYWNoIHNoYXJlZCB0b2tlbgGZBQFRAQABtQg1ADhHZW5lc2lzSGlzdG9yeQE4R2VuZXNpc0hpc3RvcnkENFByZXZpb3VzQ2hhaW4BALkIAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhBQAAADcAPENvbGxhdG9yUmV3YXJkcwE8Q29sbGF0b3JSZXdhcmRzBCRDb2xsYXRvcnMBAQQFEL0IBAAEqCBTdG9yZXMgdGhlIGNvbGxhdG9ycyBwZXIgc2Vzc2lvbiAoaW5kZXgpLgABWQEIRFJld2FyZFBlckNvbGxhdG9yGEB4+ot1KJ4BAAAAAAAAAAAABIAgUmV3YXJkIGFtb3VudCBwZXIgb25lIGNvbGxhdG9yLkBSZXdhcmRDdXJyZW5jeUlkEBAAAAAABEAgUmV3YXJkIEFzc2V0IElkAcEIOQAgT21uaXBvb2wBIE9tbmlwb29sFBhBc3NldHMAAQQCEMUIBAAEiCBTdGF0ZSBvZiBhbiBhc3NldCBpbiB0aGUgb21uaXBvb2xESHViQXNzZXRJbWJhbGFuY2UBAMkIRAAAAAAAAAAAAAAAAAAAAAABBFwgSW1iYWxhbmNlIG9mIGh1YiBhc3NldExIdWJBc3NldFRyYWRhYmlsaXR5AQBlAQQBBHQgVHJhZGFibGUgc3RhdGUgb2YgaHViIGFzc2V0LiRQb3NpdGlvbnMAAQQCGM0IBAAE9CBMUCBwb3NpdGlvbnMuIE1hcHMgTkZUIGluc3RhbmNlIGlkIHRvIGNvcnJlc3BvbmRpbmcgcG9zaXRpb244TmV4dFBvc2l0aW9uSWQBABhAAAAAAAAAAAAAAAAAAAAAAARcIFBvc2l0aW9uIGlkcyBzZXF1ZW5jZXIBpQUBXQEgKEhkeEFzc2V0SWQQEAAAAAAEQCBOYXRpdmUgQXNzZXQgSUQoSHViQXNzZXRJZBAQAQAAAAQ0IEh1YiBBc3NldCBJREBNaW5XaXRoZHJhd2FsRmVlaQEQZAAAAARcIE1pbmltdW0gd2l0aGRyYXdhbCBmZWVMTWluaW11bVRyYWRpbmdMaW1pdBhA6AMAAAAAAAAAAAAAAAAAAARYIE1pbmltdW0gdHJhZGluZyBsaW1pdFBNaW5pbXVtUG9vbExpcXVpZGl0eRhAQEIPAAAAAAAAAAAAAAAAAASoIE1pbmltdW0gcG9vbCBsaXF1aWRpdHkgd2hpY2ggY2FuIGJlIGFkZGVkKE1heEluUmF0aW8YQAMAAAAAAAAAAAAAAAAAAAAE8CBNYXggZnJhY3Rpb24gb2YgYXNzZXQgcmVzZXJ2ZSB0byBzZWxsIGluIHNpbmdsZSB0cmFuc2FjdGlvbixNYXhPdXRSYXRpbxhAAwAAAAAAAAAAAAAAAAAAAATsIE1heCBmcmFjdGlvbiBvZiBhc3NldCByZXNlcnZlIHRvIGJ1eSBpbiBzaW5nbGUgdHJhbnNhY3Rpb248TkZUQ29sbGVjdGlvbklkGEA5BQAAAAAAAAAAAAAAAAAABFggTm9uIGZ1bmdpYmxlIGNsYXNzIGlkAdEIOwBAVHJhbnNhY3Rpb25QYXVzZQFAVHJhbnNhY3Rpb25QYXVzZQRIUGF1c2VkVHJhbnNhY3Rpb25zAAEEBdUIkAQADGwgVGhlIHBhdXNlZCB0cmFuc2FjdGlvbiBtYXAA3CBtYXAgKFBhbGxldE5hbWVCeXRlcywgRnVuY3Rpb25OYW1lQnl0ZXMpID0+IE9wdGlvbjwoKT4BrQUBbQEAAd0IPAAYRHVzdGVyARhEdXN0ZXIMQEFjY291bnRCbGFja2xpc3QAAQQCAJAEAASAIEFjY291bnRzIGV4Y2x1ZGVkIGZyb20gZHVzdGluZy40UmV3YXJkQWNjb3VudAAAAAQABHQgQWNjb3VudCB0byB0YWtlIHJld2FyZCBmcm9tLixEdXN0QWNjb3VudAAAAAQABGQgQWNjb3VudCB0byBzZW5kIGR1c3QgdG8uAbEFAXEBDBhSZXdhcmQYQAAAAAAAAAAAAAAAAAAAAAAEOCBSZXdhcmQgYW1vdW50QE5hdGl2ZUN1cnJlbmN5SWQQEAAAAAAEQCBOYXRpdmUgQXNzZXQgSWREVHJlYXN1cnlBY2NvdW50SWQAgG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAABC0BIERlZmF1bHQgYWNjb3VudCBmb3IgYHJld2FyZF9hY2NvdW50YCBhbmQgYGR1c3RfYWNjb3VudGAgaW4gZ2VuZXNpcyBjb25maWcuAeEIPQBMT21uaXBvb2xXYXJlaG91c2VMTQFMT21uaXBvb2xXYXJlaG91c2VMTRg0RmFybVNlcXVlbmNlcgEAEBAAAAAABLwgSWQgc2VxdWVuY2VyIGZvciBgR2xvYmFsRmFybWAgYW5kIGBZaWVsZEZhcm1gLkBEZXBvc2l0U2VxdWVuY2VyAQAYQAAAAAAAAAAAAAAAAAAAAAAAKEdsb2JhbEZhcm0AAQQCEOUIBAAAJFlpZWxkRmFybQABDAICAu0I8QgEAARQIFlpZWxkIGZhcm0gZGV0YWlscy4cRGVwb3NpdAABBAUY9QgEAAREIERlcG9zaXQgZGV0YWlscy48QWN0aXZlWWllbGRGYXJtAAEIAgKRARAEAAT4IEFjdGl2ZShmYXJtcyBhYmxlIHRvIHJlY2VpdmUgTFAgc2hhcmVzIGRlcG9zaXRzKSB5aWVsZCBmYXJtcy4BtQUBdQEYIFBhbGxldElkbQQgT21uaVdoTE0ELCBQYWxsZXQgaWQuRFRyZWFzdXJ5QWNjb3VudElkAIBtb2RscHkvdHJzcnkAAAAAAAAAAAAAAAAAAAAAAAAAAAToIFRyZWFzdXJ5IGFjY291bnQgdG8gcmVjZWl2ZSBjbGFpbWVkIHJld2FyZHMgbG93ZXIgdGhhbiBFRExNaW5Ub3RhbEZhcm1SZXdhcmRzGEAAEKXU6AAAAAAAAAAAAAAABDkBIE1pbmltdW0gdG90YWwgcmV3YXJkcyB0byBkaXN0cmlidXRlIGZyb20gZ2xvYmFsIGZhcm0gZHVyaW5nIGxpcXVpZGl0eSBtaW5pbmcuZE1pblBsYW5uZWRZaWVsZGluZ1BlcmlvZHMQEGg4AAAE7CBNaW5pbXVtIG51bWJlciBvZiBwZXJpb2RzIHRvIHJ1biBsaXF1aWRpdHkgbWluaW5nIHByb2dyYW0uYE1heEZhcm1FbnRyaWVzUGVyRGVwb3NpdBAQBQAAAAhlASBNYXhpbXVtIG51bWJlciBvZiB5aWVsZCBmYXJtcyBzYW1lIExQIHNoYXJlcyBjYW4gYmUgcmUvZGVwb3NpdGVkIGludG8uIFRoaXMgdmFsdWUgYWx3YXlzXCBNVVNUIEJFID49IDEuICAgICAgICAgaE1heFlpZWxkRmFybXNQZXJHbG9iYWxGYXJtEBAyAAAACE0BIE1heCBudW1iZXIgb2YgeWllbGQgZmFybXMgY2FuIGV4aXN0IGluIGdsb2JhbCBmYXJtLiBUaGlzIGluY2x1ZGVzIGFsbCBmYXJtcyBpbiB0aGWYIHN0b3JhZ2UoYWN0aXZlLCBzdG9wcGVkLCB0ZXJtaW5hdGVkKS4BBQk+AFxPbW5pcG9vbExpcXVpZGl0eU1pbmluZwFcT21uaXBvb2xMaXF1aWRpdHlNaW5pbmcEOE9tbmlQb3NpdGlvbklkAAEEAhgYBAAE0CBNYXAgb2Ygb21uaXBvb2wgcG9zaXRpb24ncyBpZHMgdG8gTE0ncyBkZXBvc2l0IGlkcy4BuQUBeQEMPE5GVENvbGxlY3Rpb25JZBhAGAoAAAAAAAAAAAAAAAAAAATcIE5GVCBjb2xsZWN0aW9uIGlkIGZvciBsaXF1aWRpdHkgbWluaW5nJ3MgZGVwb3NpdCBuZnRzLjBPcmFjbGVTb3VyY2XxASBvbW5pcG9vbASEIElkZW50aWZpZXIgb2Ygb3JhY2xlIGRhdGEgc29ydWNlME9yYWNsZVBlcmlvZA0JBAIEjCBPcmFjbGUncyBwcmljZSBhZ2dyZWdhdGlvbiBwZXJpb2QuAREJPwAMT1RDAQxPVEMILE5leHRPcmRlcklkAQAQEAAAAAAEYCBJRCBzZXF1ZW5jZXIgZm9yIE9yZGVycxhPcmRlcnMAAQQCEBkJBAAAAb0FAYkBDHBFeGlzdGVudGlhbERlcG9zaXRNdWx0aXBsaWVyCAQFBEEBIE11bHRpcGxpZXIgdXNlZCB0byBjb21wdXRlIG1pbmltYWwgYW1vdW50cyBvZiBhc3NldF9pbiBhbmQgYXNzZXRfb3V0IGluIGFuIE9UQy4MRmVlaQEQ6AMAAAR4IEZlZSBkZWR1Y3RlZCBmcm9tIGFtb3VudF9vdXQuLEZlZVJlY2VpdmVyAIBtb2RscHkvdHJzcnkAAAAAAAAAAAAAAAAAAAAAAAAAAAQ4IEZlZSByZWNlaXZlci4BHQlAADhDaXJjdWl0QnJlYWtlcgE4Q2lyY3VpdEJyZWFrZXIYYFRyYWRlVm9sdW1lTGltaXRQZXJBc3NldAEBBAIQkQEgiBMAABAnAAAI9CBUcmFkZSB2b2x1bWUgbGltaXRzIG9mIGFzc2V0cyBzZXQgYnkgc2V0X3RyYWRlX3ZvbHVtZV9saW1pdC6cIElmIG5vdCBzZXQsIHJldHVybnMgdGhlIGRlZmF1bHQgbGltaXQufEFsbG93ZWRUcmFkZVZvbHVtZUxpbWl0UGVyQXNzZXQAAQQCECEJBAAEYCBUcmFkZSB2b2x1bWVzIHBlciBhc3NldGRMaXF1aWRpdHlBZGRMaW1pdFBlckFzc2V0AQEEAhCVASQB9AEAABAnAAAIxCBMaXF1aWRpdHkgbGltaXRzIG9mIGFzc2V0cyBmb3IgYWRkaW5nIGxpcXVpZGl0eS6cIElmIG5vdCBzZXQsIHJldHVybnMgdGhlIGRlZmF1bHQgbGltaXQuhEFsbG93ZWRBZGRMaXF1aWRpdHlBbW91bnRQZXJBc3NldAABBAIQJQkEAASAIEFkZCBsaXF1aWRpdHkgdm9sdW1lcyBwZXIgYXNzZXRwTGlxdWlkaXR5UmVtb3ZlTGltaXRQZXJBc3NldAEBBAIQlQEkAfQBAAAQJwAACMwgTGlxdWlkaXR5IGxpbWl0cyBvZiBhc3NldHMgZm9yIHJlbW92aW5nIGxpcXVpZGl0eS6cIElmIG5vdCBzZXQsIHJldHVybnMgdGhlIGRlZmF1bHQgbGltaXQukEFsbG93ZWRSZW1vdmVMaXF1aWRpdHlBbW91bnRQZXJBc3NldAABBAIQJQkEAASMIFJlbW92ZSBsaXF1aWRpdHkgdm9sdW1lcyBwZXIgYXNzZXQBwQUBjQEMlERlZmF1bHRNYXhOZXRUcmFkZVZvbHVtZUxpbWl0UGVyQmxvY2uRASCIEwAAECcAAAgxASBUaGUgbWF4aW11bSBwZXJjZW50YWdlIG9mIGEgcG9vbCdzIGxpcXVpZGl0eSB0aGF0IGNhbiBiZSB0cmFkZWQgaW4gYSBibG9jay51ASBSZXByZXNlbnRlZCBhcyBhIG5vbi16ZXJvIGZyYWN0aW9uIChub21pbmF0b3IsIGRlbm9taW5hdG9yKSB3aXRoIHRoZSBtYXggdmFsdWUgYmVpbmcgMTBfMDAwLoxEZWZhdWx0TWF4QWRkTGlxdWlkaXR5TGltaXRQZXJCbG9ja5UBJAH0AQAAECcAAAwtASBUaGUgbWF4aW11bSBwZXJjZW50YWdlIG9mIGEgcG9vbCdzIGxpcXVpZGl0eSB0aGF0IGNhbiBiZSBhZGRlZCBpbiBhIGJsb2NrLp0BIFJlcHJlc2VudGVkIGFzIGFuIG9wdGlvbmFsIG5vbi16ZXJvIGZyYWN0aW9uIChub21pbmF0b3IsIGRlbm9taW5hdG9yKSB3aXRoIHRoZSBtYXggdmFsdWUgYmVpbmcgMTBfMDAwLrQgSWYgc2V0IHRvIE5vbmUsIHRoZSBsaW1pdHMgYXJlIG5vdCBlbmZvcmNlZC6YRGVmYXVsdE1heFJlbW92ZUxpcXVpZGl0eUxpbWl0UGVyQmxvY2uVASQB9AEAABAnAAAMNQEgVGhlIG1heGltdW0gcGVyY2VudGFnZSBvZiBhIHBvb2wncyBsaXF1aWRpdHkgdGhhdCBjYW4gYmUgcmVtb3ZlZCBpbiBhIGJsb2NrLp0BIFJlcHJlc2VudGVkIGFzIGFuIG9wdGlvbmFsIG5vbi16ZXJvIGZyYWN0aW9uIChub21pbmF0b3IsIGRlbm9taW5hdG9yKSB3aXRoIHRoZSBtYXggdmFsdWUgYmVpbmcgMTBfMDAwLrQgSWYgc2V0IHRvIE5vbmUsIHRoZSBsaW1pdHMgYXJlIG5vdCBlbmZvcmNlZC4BKQlBABhSb3V0ZXIBGFJvdXRlcggYU2tpcEVkAAAtCQQABKRGbGFnIHRvIGluZGljYXRlIHdoZW4gdG8gc2tpcCBFRCBoYW5kbGluZxhSb3V0ZXMAAQQCyQVVAgQABHwgU3RvcmluZyByb3V0ZXMgZm9yIGFzc2V0IHBhaXJzAcUFAZkBCDROYXRpdmVBc3NldElkEBAAAAAABEAgTmF0aXZlIEFzc2V0IElkME9yYWNsZVBlcmlvZA0JBAIEjCBPcmFjbGUncyBwcmljZSBhZ2dyZWdhdGlvbiBwZXJpb2QuATEJQwAsRHluYW1pY0ZlZXMBLER5bmFtaWNGZWVzBCBBc3NldEZlZQABBAUQNQkEAAhJASBTdG9yZXMgbGFzdCBjYWxjdWxhdGVkIGZlZSBvZiBhbiBhc3NldCBhbmQgYmxvY2sgbnVtYmVyIGluIHdoaWNoIGl0IHdhcyBjaGFuZ2VkLi7IIFN0b3JlZCBhcyAoQXNzZXQgZmVlLCBQcm90b2NvbCBmZWUsIEJsb2NrIG51bWJlcikBzQUBoQEISEFzc2V0RmVlUGFyYW1ldGVyczkJoMQJAABQwwAAAKByThgJAAAAAAAAAAAAAAAAyE5nbcEbAAAAAAAAAAAAVFByb3RvY29sRmVlUGFyYW1ldGVyczkJoPQBAADoAwAAAFA5J4wEAAAAAAAAAAAAAAAAZKeztuANAAAAAAAAAAAAAT0JRAAcU3Rha2luZwEcU3Rha2luZxQcU3Rha2luZwEAQQnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFggR2xvYmFsIHN0YWtpbmcgc3RhdGUuJFBvc2l0aW9ucwABBAIYRQkEAARcIFVzZXIncyBwb3NpdGlvbiBzdGF0ZS44TmV4dFBvc2l0aW9uSWQBABhAAAAAAAAAAAAAAAAAAAAAAARgIFBvc2l0aW9uIGlkcyBzZXF1ZW5jZXIuNFBvc2l0aW9uVm90ZXMBAQQCGEkJBAAEYCBMaXN0IG9mIHBvc2l0aW9uIHZvdGVzLjhQcm9jZXNzZWRWb3RlcwABCAIC2QdVCQQABJ0BIExpc3Qgb2YgcHJvY2Vzc2VkIHZvdGUuIFVzZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSB2b3RlIHNob3VsZCBiZSBsb2NrZWQgaW4gY2FzZSBvZiB2b3Rpbmcgbm90IGluIGZhdm9yLgHRBQGlASwwUGVyaW9kTGVuZ3RoEBAgHAAABIQgU3Rha2luZyBwZXJpb2QgbGVuZ3RoIGluIGJsb2Nrcy4gUGFsbGV0SWRtBCBzdGFraW5nIwQsIFBhbGxldCBpZC40TmF0aXZlQXNzZXRJZBAQAAAAAAREIE5hdGl2ZSBBc3NldCBJRC4gTWluU3Rha2UYQACAxqR+jQMAAAAAAAAAAAAEcCBNaW4gYW1vdW50IHVzZXIgbXVzdCBzdGFrZS5AVGltZVBvaW50c1dlaWdodGkBEEBCDwAE4CBXZWlnaHQgb2YgdGhlIHRpbWUgcG9pbnRzIGluIHRvdGFsIHBvaW50cyBjYWxjdWxhdGlvbnMuSEFjdGlvblBvaW50c1dlaWdodGEJEADC6wsE6CBXZWlnaHQgb2YgdGhlIGFjdGlvbiBwb2ludHMgaW4gdG90YWwgcG9pbnRzIGNhbGN1bGF0aW9ucy5MVGltZVBvaW50c1BlclBlcmlvZAgEAQTUIE51bWJlciBvZiB0aW1lIHBvaW50cyB1c2VycyByZWNlaXZlIGZvciBlYWNoIHBlcmlvZC5IVW5jbGFpbWFibGVQZXJpb2RzGEABAAAAAAAAAAAAAAAAAAAACHUBIE51bWJlciBvZiBwZXJpb2RzIHVzZXIgY2FuJ3QgY2xhaW0gcmV3YXJkcyBmb3IuIFVzZXIgY2FuIGV4aXQgYnV0IHdvbid0IHJlY2VpdmUgYW55IHJld2FyZHMucQEgSWYgaGUgc3RheSBsb25nZXIgdGhhbiBgVW5jbGFpbWFibGVQZXJpb2RzYCBoZSB3aWxsIHJlY2VpdmUgcmV3YXJkcyBhbHNvIGZvciB0aGVzZSBwZXJpb2RzLkhDdXJyZW50U3Rha2VXZWlnaHQIBAIEsQEgV2VpZ2h0IG9mIHRoZSBhY3R1YWwgc3Rha2UgaW4gc2xhc2ggcG9pbnRzIGNhbGN1bGF0aW9uLiBCaWdnZXIgdGhlIHZhbHVlIGxvd2VyIHRoZSBjYWxjdWxhdGVkIHNsYXNoIHBvaW50cy4gTWF4Vm90ZXMQEGQAAAAEzCBNYXggYW1vdW50IG9mIHZvdGVzIHRoZSB1c2VyIGNhbiBoYXZlIGF0IGFueSB0aW1lLjxORlRDb2xsZWN0aW9uSWQYQK4IAAAAAAAAAAAAAAAAAAAETCBORlQgY29sbGVjdGlvbiBpZC4BZQlFAChTdGFibGVzd2FwAShTdGFibGVzd2FwCBRQb29scwABBAIQbQkEAAQ8IEV4aXN0aW5nIHBvb2xzQEFzc2V0VHJhZGFiaWxpdHkBAQgCApEBuQEEDwSIIFRyYWRhYmlsaXR5IHN0YXRlIG9mIHBvb2wgYXNzZXRzLgHVBQGpAQxATWluUG9vbExpcXVpZGl0eRhAQEIPAAAAAAAAAAAAAAAAAARcIE1pbmltdW0gcG9vbCBsaXF1aWRpdHk8TWluVHJhZGluZ0xpbWl0GEDoAwAAAAAAAAAAAAAAAAAABFwgTWluaW11bSB0cmFkaW5nIGFtb3VudEhBbXBsaWZpY2F0aW9uUmFuZ2V1CRACABAnBD0BIEFtcGxpZmljYXRpb24gaW5jbHVzaXZlIHJhbmdlLiBQb29sJ3MgYW1wIGNhbiBiZSBzZWxlY3RlZCBmcm9tIHRoZSByYW5nZSBvbmx5LgF5CUYAFEJvbmRzARRCb25kcwgcQm9uZElkcwABBAJ9CRAEAAhUIFJlZ2lzdGVyZWQgYm9uZCBpZHMuwCBNYXBzICh1bmRlcmx5aW5nIGFzc2V0IElELCBtYXR1cml0eSkgLT4gYm9uZCBJRBRCb25kcwABBAIQfQkEAAhIIFJlZ2lzdGVyZWQgYm9uZHMuwCBNYXBzIGJvbmQgSUQgLT4gKHVuZGVybHlpbmcgYXNzZXQgSUQsIG1hdHVyaXR5KQHZBQG9AQwgUGFsbGV0SWRtBCBwbHRib25kcwTsIFRoZSBwYWxsZXQgaWQsIHVzZWQgZm9yIGRlcml2aW5nIGl0cyBzb3ZlcmVpZ24gYWNjb3VudCBJRC4sUHJvdG9jb2xGZWVpARAgTgAABDggUHJvdG9jb2wgZmVlLixGZWVSZWNlaXZlcgCAbW9kbHB5L3Ryc3J5AAAAAAAAAAAAAAAAAAAAAAAAAAAEXCBQcm90b2NvbCBmZWUgcmVjZWl2ZXIuAYEJRwA4T3RjU2V0dGxlbWVudHMAAd0FAcEBFDhQcm9maXRSZWNlaXZlcgCAbW9kbHB5L3Ryc3J5AAAAAAAAAAAAAAAAAAAAAAAAAAAEhCBBY2NvdW50IHdobyByZWNlaXZlcyB0aGUgcHJvZml0LkxNaW5Qcm9maXRQZXJjZW50YWdlYQkQECcAAAScIE1pbmltdW0gcHJvZml0IGluIHRlcm1zIG9mIHBlcmNlbnRhZ2UuOFByaWNlUHJlY2lzaW9uYQFAAADBb/KGIwAAAAAAAAAAAATQIERldGVybWluZXMgd2hlbiB3ZSBjb25zaWRlciBhbiBhcmJpdHJhZ2UgYXMgY2xvc2VkLjxNaW5UcmFkaW5nTGltaXQYQOgDAAAAAAAAAAAAAAAAAAAEXCBNaW5pbXVtIHRyYWRpbmcgbGltaXQuNE1heEl0ZXJhdGlvbnMQECgAAAAEbQEgTWF4aW11bSBudW1iZXIgb2YgaXRlcmF0aW9ucyB1c2VkIGluIHRoZSBiaW5hcnkgc2VhcmNoIGFsZ29yaXRobSB0byBmaW5kIHRoZSB0cmFkZSBhbW91bnQuAYUJSAAMTEJQAQxMQlAIIFBvb2xEYXRhAAEEAgDJAQQABEwgRGV0YWlscyBvZiBhIHBvb2wuVEZlZUNvbGxlY3RvcldpdGhBc3NldAEBCAIC2QcgBAAIyCBTdG9yYWdlIHVzZWQgZm9yIHRyYWNraW5nIGV4aXN0aW5nIGZlZSBjb2xsZWN0b3JzzCBOb3QgbW9yZSB0aGFuIG9uZSBmZWUgY29sbGVjdG9yIHBlciBhc3NldCBwb3NzaWJsZQHhBQHFARQ8TWluVHJhZGluZ0xpbWl0GEDoAwAAAAAAAAAAAAAAAAAABCEBIE1pbmltdW0gdHJhZGluZyBsaW1pdCwgc29sZSBwdXJwb3NlIG9mIHRoaXMgaXMgdG8ga2VlcCB0aGUgbWF0aCB3b3JraW5nQE1pblBvb2xMaXF1aWRpdHkYQEBCDwAAAAAAAAAAAAAAAAAEJQEgTWluaW11bSBwb29sIGxpcXVpZGl0eSwgc29sZSBwdXJwb3NlIG9mIHRoaXMgaXMgdG8ga2VlcCB0aGUgbWF0aCB3b3JraW5nKE1heEluUmF0aW8YQAMAAAAAAAAAAAAAAAAAAAAEzCBNYXggZnJhY3Rpb24gb2YgcG9vbCB0byBzZWxsIGluIHNpbmdsZSB0cmFuc2FjdGlvbixNYXhPdXRSYXRpbxhAAwAAAAAAAAAAAAAAAAAAAATIIE1heCBmcmFjdGlvbiBvZiBwb29sIHRvIGJ1eSBpbiBzaW5nbGUgdHJhbnNhY3Rpb24kcmVwYXlfZmVlkQEgAgAAAAoAAAAAAYkJSQAMWFlLAQxYWUsMKFNoYXJlVG9rZW4BAQQCABAQAAAAAASgIEFzc2V0IGlkIHN0b3JhZ2UgZm9yIHNoYXJlZCBwb29sIHRva2VuczhUb3RhbExpcXVpZGl0eQEBBAIAGEAAAAAAAAAAAAAAAAAAAAAABGwgVG90YWwgbGlxdWlkaXR5IGluIGEgcG9vbC4oUG9vbEFzc2V0cwABBAIAkQEEAARYIEFzc2V0IHBhaXIgaW4gYSBwb29sLgHpBQHVARw0TmF0aXZlQXNzZXRJZBAQAAAAAARAIE5hdGl2ZSBBc3NldCBJZDhHZXRFeGNoYW5nZUZlZZEBIAMAAADoAwAABEQgVHJhZGluZyBmZWUgcmF0ZTxNaW5UcmFkaW5nTGltaXQYQOgDAAAAAAAAAAAAAAAAAAAEWCBNaW5pbXVtIHRyYWRpbmcgbGltaXRATWluUG9vbExpcXVpZGl0eRhAQEIPAAAAAAAAAAAAAAAAAARcIE1pbmltdW0gcG9vbCBsaXF1aWRpdHkoTWF4SW5SYXRpbxhAAwAAAAAAAAAAAAAAAAAAAATMIE1heCBmcmFjdGlvbiBvZiBwb29sIHRvIHNlbGwgaW4gc2luZ2xlIHRyYW5zYWN0aW9uLE1heE91dFJhdGlvGEADAAAAAAAAAAAAAAAAAAAABMggTWF4IGZyYWN0aW9uIG9mIHBvb2wgdG8gYnV5IGluIHNpbmdsZSB0cmFuc2FjdGlvbjBPcmFjbGVTb3VyY2XxASBoeWRyYXh5awSoIE9yYWNsZSBzb3VyY2UgaWRlbnRpZmllciBmb3IgdGhpcyBwYWxsZXQuAY0JSgAkUmVmZXJyYWxzASRSZWZlcnJhbHMoNFJlZmVycmFsQ29kZXMAAQQC3QEABAAIPCBSZWZlcnJhbCBjb2Rlc5AgTWFwcyBhIHJlZmVycmFsIGNvZGUgdG8gYW4gYWNjb3VudC5AUmVmZXJyYWxBY2NvdW50cwABBAIA3QEEAAhIIFJlZmVycmFsIGFjY291bnRzkCBNYXBzIGFuIGFjY291bnQgdG8gYSByZWZlcnJhbCBjb2RlLjhMaW5rZWRBY2NvdW50cwABBAIAAAQACEQgTGlua2VkIGFjY291bnRzLpwgTWFwcyBhbiBhY2NvdW50IHRvIGEgcmVmZXJyYWwgYWNjb3VudC44UmVmZXJyZXJTaGFyZXMBAQQCABhAAAAAAAAAAAAAAAAAAAAAAAR0IFNoYXJlcyBvZiBhIHJlZmVycmFsIGFjY291bnQwVHJhZGVyU2hhcmVzAQEEAgAYQAAAAAAAAAAAAAAAAAAAAAAEbCBTaGFyZXMgb2YgYSB0cmFkZXIgYWNjb3VudCxUb3RhbFNoYXJlcwEAGEAAAAAAAAAAAAAAAAAAAAAABFggVG90YWwgc2hhcmUgaXNzdWFuY2UuIFJlZmVycmVyAAEEAgCRCQQADNwgUmVmZXJlciBsZXZlbCBhbmQgdG90YWwgYWNjdW11bGF0ZWQgcmV3YXJkcyBvdmVyIHRpbWUu1QEgTWFwcyByZWZlcnJlciBhY2NvdW50IHRvIChMZXZlbCwgQmFsYW5jZSkuIExldmVsIGluZGljYXRlcyBjdXJyZW50IHJld2FyZHMgYW5kIEJhbGFuY2UgaXMgdXNlZCB0byB1bmxvY2sgbmV4dCBsZXZlbC65ASBEZXYgbm90ZTogd2UgdXNlIE9wdGlvblF1ZXJ5IGhlcmUgYmVjYXVzZSB0aGlzIGhlbHBzIHRvIGVhc2lseSBkZXRlcm1pbmUgdGhhdCBhbiBhY2NvdW50IGlmIHJlZmVycmVyIGFjY291bnQuMEFzc2V0UmV3YXJkcwABCAIClQnpAQQACLAgQXNzZXQgZmVlIGRpc3RyaWJ1dGlvbiByZXdhcmRzIGluZm9ybWF0aW9uLtAgTWFwcyAoYXNzZXRfaWQsIGxldmVsKSB0byBhc3NldCByZXdhcmQgcGVyY2VudGFnZXMuSFBlbmRpbmdDb252ZXJzaW9ucwABBAIQkAQACAEBIEluZm9ybWF0aW9uIGFib3V0IGFzc2V0cyB0aGF0IGFyZSBjdXJyZW50bHkgaW4gdGhlIHJld2FyZHMgcG90Lg0BIFVzZWQgdG8gZWFzaWx5IGRldGVybWluZSBsaXN0IG9mIGFzc2V0cyB0aGF0IG5lZWQgdG8gYmUgY29udmVydGVkLnBDb3VudGVyRm9yUGVuZGluZ0NvbnZlcnNpb25zAQAQEAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAB7QUB2QEYLFJld2FyZEFzc2V0EBAAAAAABNggSUQgb2YgYW4gYXNzZXQgdGhhdCBpcyB1c2VkIHRvIGRpc3RyaWJ1dGUgcmV3YXJkcyBpbi4gUGFsbGV0SWRtBCByZWZlcnJhbARFASBQYWxsZXQgaWQuIERldGVybWluZXMgYWNjb3VudCB3aGljaCBob2xkcyBhY2N1bXVsYXRlZCByZXdhcmRzIGluIHZhcmlvdXMgYXNzZXRzLjxSZWdpc3RyYXRpb25GZWWZCdAAAAAAAOAjZ+jJAAAAAAAAAAAAAG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAACGggUmVnaXN0cmF0aW9uIGZlZSBkZXRhaWxzLiUBIChJRCBvZiBhbiBhc3NldCB3aGljaCBmZWUgaXMgdG8gYmUgcGFpZCBpbiwgQW1vdW50LCBCZW5lZmljaWFyeSBhY2NvdW50KShDb2RlTGVuZ3RoEBAKAAAABHggTWF4aW11bSByZWZlcnJhbCBjb2RlIGxlbmd0aC40TWluQ29kZUxlbmd0aBAQBAAAAAR4IE1pbmltdW0gcmVmZXJyYWwgY29kZSBsZW5ndGguQFNlZWROYXRpdmVBbW91bnQYQACgck4YCQAAAAAAAAAAAAAEtCBTZWVkIGFtb3VudCB0aGF0IHdhcyBzZW50IHRvIHRoZSByZXdhcmQgcG90LgGdCUsAGFRva2VucwEYVG9rZW5zEDRUb3RhbElzc3VhbmNlAQEEBRAYQAAAAAAAAAAAAAAAAAAAAAAEkCBUaGUgdG90YWwgaXNzdWFuY2Ugb2YgYSB0b2tlbiB0eXBlLhRMb2NrcwEBCAIF2QehCQQACNggQW55IGxpcXVpZGl0eSBsb2NrcyBvZiBhIHRva2VuIHR5cGUgdW5kZXIgYW4gYWNjb3VudC4lASBOT1RFOiBTaG91bGQgb25seSBiZSBhY2Nlc3NlZCB3aGVuIHNldHRpbmcsIGNoYW5naW5nIGFuZCBmcmVlaW5nIGEgbG9jay4gQWNjb3VudHMBAQgCBdkHrQnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGLggVGhlIGJhbGFuY2Ugb2YgYSB0b2tlbiB0eXBlIHVuZGVyIGFuIGFjY291bnQuAPwgTk9URTogSWYgdGhlIHRvdGFsIGlzIGV2ZXIgemVybywgZGVjcmVhc2UgYWNjb3VudCByZWYgYWNjb3VudC4AGQEgTk9URTogVGhpcyBpcyBvbmx5IHVzZWQgaW4gdGhlIGNhc2UgdGhhdCB0aGlzIG1vZHVsZSBpcyB1c2VkIHRvIHN0b3JlKCBiYWxhbmNlcy4gUmVzZXJ2ZXMBAQgCBdkHsQkEAASkIE5hbWVkIHJlc2VydmVzIG9uIHNvbWUgYWNjb3VudCBiYWxhbmNlcy4B8QUB7QEIIE1heExvY2tzEBAyAAAAACxNYXhSZXNlcnZlcxAQMgAAAAQNASBUaGUgbWF4aW11bSBudW1iZXIgb2YgbmFtZWQgcmVzZXJ2ZXMgdGhhdCBjYW4gZXhpc3Qgb24gYW4gYWNjb3VudC4BvQlNAChDdXJyZW5jaWVzAAH1BQH1AQRMR2V0TmF0aXZlQ3VycmVuY3lJZBAQAAAAAAABwQlPABxWZXN0aW5nARxWZXN0aW5nBEBWZXN0aW5nU2NoZWR1bGVzAQEEAgDFCQQADIQgVmVzdGluZyBzY2hlZHVsZXMgb2YgYW4gYWNjb3VudC4A4CBWZXN0aW5nU2NoZWR1bGVzOiBtYXAgQWNjb3VudElkID0+IFZlYzxWZXN0aW5nU2NoZWR1bGU+AfkFAf0BBERNaW5WZXN0ZWRUcmFuc2ZlchhAZAAAAAAAAAAAAAAAAAAAAAToIFRoZSBtaW5pbXVtIGFtb3VudCB0cmFuc2ZlcnJlZCB0byBjYWxsIGB2ZXN0ZWRfdHJhbnNmZXJgLgHJCVEADEVWTQEMRVZNEDBBY2NvdW50Q29kZXMBAQQCDQI4BAAAUEFjY291bnRDb2Rlc01ldGFkYXRhAAEEAg0CzQkEAAA8QWNjb3VudFN0b3JhZ2VzAQEIAgLRCTSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFN1aWNpZGVkAAEEAg0CkAQAAAEBBgEFAgAB1QlaAChFVk1DaGFpbklkAShFVk1DaGFpbklkBBxDaGFpbklkAQAwIAAAAAAAAAAABEggVGhlIEVWTSBjaGFpbiBJRC4AAAAAWwAgRXRoZXJldW0BIEV0aGVyZXVtFBxQZW5kaW5nAQDZCQQABNAgQ3VycmVudCBidWlsZGluZyBibG9jaydzIHRyYW5zYWN0aW9ucyBhbmQgcmVjZWlwdHMuMEN1cnJlbnRCbG9jawAA/QkEAARwIFRoZSBjdXJyZW50IEV0aGVyZXVtIGJsb2NrLjxDdXJyZW50UmVjZWlwdHMAABEKBAAEfCBUaGUgY3VycmVudCBFdGhlcmV1bSByZWNlaXB0cy5oQ3VycmVudFRyYW5zYWN0aW9uU3RhdHVzZXMAABUKBAAEiCBUaGUgY3VycmVudCB0cmFuc2FjdGlvbiBzdGF0dXNlcy4kQmxvY2tIYXNoAQEEBU0ENIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEQYBFQIAARkKXAAsRVZNQWNjb3VudHMBLEVWTUFjY291bnRzDEBBY2NvdW50RXh0ZW5zaW9uAAEEAg0CwQQEAAQFASBNYXBzIGFuIEVWTSBhZGRyZXNzIHRvIHRoZSBsYXN0IDEyIGJ5dGVzIG9mIGEgc3Vic3RyYXRlIGFjY291bnQuQENvbnRyYWN0RGVwbG95ZXIAAQQCDQKQBAAECQEgV2hpdGVsaXN0ZWQgYWRkcmVzc2VzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZGVwbG95IHNtYXJ0IGNvbnRyYWN0cy5AQXBwcm92ZWRDb250cmFjdAABBAINApAEAAQZASBXaGl0ZWxpc3RlZCBjb250cmFjdHMgdGhhdCBhcmUgYWxsb3dlZCB0byBtYW5hZ2UgYmFsYW5jZXMgYW5kIHRva2Vucy4BOQYBOQIENEZlZU11bHRpcGxpZXIQEDIAAAAEtCBGZWUgbXVsdGlwbGllciBmb3IgdGhlIGJpbmRpbmcgb2YgYWRkcmVzc2VzLgEdCl0ANER5bmFtaWNFdm1GZWUBNER5bmFtaWNFdm1GZWUENEJhc2VGZWVQZXJHYXMBAE0EgAAk9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEQgQmFzZSBmZWUgcGVyIGdhcwAABCxXZXRoQXNzZXRJZBAQFAAAAAQ4IFdFVEggQXNzZXQgSWQAXgBIWFlLTGlxdWlkaXR5TWluaW5nAAE9BgE9AgQ8TkZUQ29sbGVjdGlvbklkGEANFQAAAAAAAAAAAAAAAAAABNwgTkZUIGNvbGxlY3Rpb24gaWQgZm9yIGxpcXVpZGl0eSBtaW5pbmcncyBkZXBvc2l0IG5mdHMuASEKXwA4WFlLV2FyZWhvdXNlTE0BOFhZS1dhcmVob3VzZUxNGDRGYXJtU2VxdWVuY2VyAQAQEAAAAAAEvCBJZCBzZXF1ZW5jZXIgZm9yIGBHbG9iYWxGYXJtYCBhbmQgYFlpZWxkRmFybWAuQERlcG9zaXRTZXF1ZW5jZXIBABhAAAAAAAAAAAAAAAAAAAAAAAAoR2xvYmFsRmFybQABBAIQJQoEAAAkWWllbGRGYXJtAAEMAgICKQotCgQABFAgWWllbGQgZmFybSBkZXRhaWxzLhxEZXBvc2l0AAEEBRgxCgQABEQgRGVwb3NpdCBkZXRhaWxzLjxBY3RpdmVZaWVsZEZhcm0AAQgCAtkHEAQABPggQWN0aXZlKGZhcm1zIGFibGUgdG8gcmVjZWl2ZSBMUCBzaGFyZXMgZGVwb3NpdHMpIHlpZWxkIGZhcm1zLgFBBgFFAhggUGFsbGV0SWRtBCB4eWtMTXBJRAQsIFBhbGxldCBpZC5EVHJlYXN1cnlBY2NvdW50SWQAgG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAABOggVHJlYXN1cnkgYWNjb3VudCB0byByZWNlaXZlIGNsYWltZWQgcmV3YXJkcyBsb3dlciB0aGFuIEVETE1pblRvdGFsRmFybVJld2FyZHMYQAAQpdToAAAAAAAAAAAAAAAEOQEgTWluaW11bSB0b3RhbCByZXdhcmRzIHRvIGRpc3RyaWJ1dGUgZnJvbSBnbG9iYWwgZmFybSBkdXJpbmcgbGlxdWlkaXR5IG1pbmluZy5kTWluUGxhbm5lZFlpZWxkaW5nUGVyaW9kcxAQaDgAAATsIE1pbmltdW0gbnVtYmVyIG9mIHBlcmlvZHMgdG8gcnVuIGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbS5gTWF4RmFybUVudHJpZXNQZXJEZXBvc2l0EBAFAAAACGUBIE1heGltdW0gbnVtYmVyIG9mIHlpZWxkIGZhcm1zIHNhbWUgTFAgc2hhcmVzIGNhbiBiZSByZS9kZXBvc2l0ZWQgaW50by4gVGhpcyB2YWx1ZSBhbHdheXNcIE1VU1QgQkUgPj0gMS4gICAgICAgICBoTWF4WWllbGRGYXJtc1Blckdsb2JhbEZhcm0QEDIAAAAITQEgTWF4IG51bWJlciBvZiB5aWVsZCBmYXJtcyBjYW4gZXhpc3QgaW4gZ2xvYmFsIGZhcm0uIFRoaXMgaW5jbHVkZXMgYWxsIGZhcm1zIGluIHRoZZggc3RvcmFnZShhY3RpdmUsIHN0b3BwZWQsIHRlcm1pbmF0ZWQpLgFBCmAAOFJlbGF5Q2hhaW5JbmZvAAFFBgFJAgABRQrJAAxEQ0EBDERDQRhMU2NoZWR1bGVJZFNlcXVlbmNlcgEAEBAAAAAABGwgSWQgc2VxdWVuY2VyIGZvciBzY2hlZHVsZXMkU2NoZWR1bGVzAAEEAhBNBgQABGQgU3RvcmluZyBzY2hlZHVsZSBkZXRhaWxzRFNjaGVkdWxlT3duZXJzaGlwAAEIAgXZB5AEAARsIFN0b3Jpbmcgc2NoZWR1bGUgb3duZXJzaGlwQFJlbWFpbmluZ0Ftb3VudHMAAQQCEBgEAAT8IEtlZXAgdHJhY2tpbmcgdGhlIHJlbWFpbmluZyBhbW91bnRzIHRvIHNwZW5kIGZvciBEQ0Egc2NoZWR1bGVzOFJldHJpZXNPbkVycm9yAQEEAhAIBAAE4CBLZWVwIHRyYWNraW5nIHRoZSByZXRyeSBvbiBlcnJvciBmbGFnIGZvciBEQ0Egc2NoZWR1bGVzTFNjaGVkdWxlSWRzUGVyQmxvY2sBAQQCEEkKBAAE+CBLZWVwIHRyYWNraW5nIG9mIHRoZSBzY2hlZHVsZSBpZHMgdG8gYmUgZXhlY3V0ZWQgaW4gdGhlIGJsb2NrAUkGAU0CMHxNYXhQcmljZURpZmZlcmVuY2VCZXR3ZWVuQmxvY2tzaQEQmDoAAASsTWF4IHByaWNlIGRpZmZlcmVuY2UgYWxsb3dlZCBiZXR3ZWVuIGJsb2Nrc6xNYXhDb25maWd1cmFibGVQcmljZURpZmZlcmVuY2VCZXR3ZWVuQmxvY2tzaQEQUMMAAATgTWF4IGNvbmZpZ3VyYWJsZSBwcmljZSBkaWZmZXJlbmNlIGFsbG93ZWQgYmV0d2VlbiBibG9ja3NMTWF4U2NoZWR1bGVQZXJCbG9jaxAQFAAAAATQVGhlIG51bWJlciBvZiBtYXggc2NoZWR1bGVzIHRvIGJlIGV4ZWN1dGVkIHBlciBibG9ja2RNYXhOdW1iZXJPZlJldHJpZXNPbkVycm9yCAQDBNhUaGUgbnVtYmVyIG9mIG1heCByZXRyaWVzIGluIGNhc2Ugb2YgdHJhZGUgbGltaXQgZXJyb3I0TWluaW1hbFBlcmlvZBAQBQAAAASETWluaW1hbCBwZXJpb2QgYmV0d2VlbiBleGVjdXRpb25zKEJ1bXBDaGFuY2VNCAQRBIRDaGFuY2Ugb2YgdGhlIHJhbmRvbSByZXNjaGVkdWxpbmdMTWluaW11bVRyYWRpbmdMaW1pdBhA6AMAAAAAAAAAAAAAAAAAAASkIE1pbmltdW0gdHJhZGluZyBsaW1pdCBmb3IgYSBzaW5nbGUgdHJhZGU0TmF0aXZlQXNzZXRJZBAQAAAAAARAIE5hdGl2ZSBBc3NldCBJZFRQb2xrYWRvdE5hdGl2ZUFzc2V0SWQQEAUAAAAEfCBQb2xrYWRvdCBOYXRpdmUgQXNzZXQgSWQgKERPVClkTWluQnVkZ2V0SW5OYXRpdmVDdXJyZW5jeRhAAIDGpH6NAwAAAAAAAAAAAAQlAU1pbmltdW0gYnVkZ2V0IHRvIGJlIGFibGUgdG8gc2NoZWR1bGUgYSBEQ0EsIHNwZWNpZmllZCBpbiBuYXRpdmUgY3VycmVuY3ksRmVlUmVjZWl2ZXIAgG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAABJRUaGUgZmVlIHJlY2VpdmVyIGZvciB0cmFuc2FjdGlvbiBmZWVzOE5hbWVkUmVzZXJ2ZUlk8QEgZGNhb3JkZXIEKQEgTmFtZWQgcmVzZXJ2ZSBpZGVudGlmaWVyIHRvIHN0b3JlIG5hbWVkIHJlc2VydmVzIGZvciBvcmRlcnMgb2YgZWFjaCB1c2VycwFNCkIAJFNjaGVkdWxlcgEkU2NoZWR1bGVyEDxJbmNvbXBsZXRlU2luY2UAABAEAAAYQWdlbmRhAQEEBRBRCgQABE0BIEl0ZW1zIHRvIGJlIGV4ZWN1dGVkLCBpbmRleGVkIGJ5IHRoZSBibG9jayBudW1iZXIgdGhhdCB0aGV5IHNob3VsZCBiZSBleGVjdXRlZCBvbi4cUmV0cmllcwABBAKRAWEKBAAEIQEgUmV0cnkgY29uZmlndXJhdGlvbnMgZm9yIGl0ZW1zIHRvIGJlIGV4ZWN1dGVkLCBpbmRleGVkIGJ5IHRhc2sgYWRkcmVzcy4YTG9va3VwAAEEBQSRAQQAEPggTG9va3VwIGZyb20gYSBuYW1lIHRvIHRoZSBibG9jayBudW1iZXIgYW5kIGluZGV4IG9mIHRoZSB0YXNrLgBZASBGb3IgdjMgLT4gdjQgdGhlIHByZXZpb3VzbHkgdW5ib3VuZGVkIGlkZW50aXRpZXMgYXJlIEJsYWtlMi0yNTYgaGFzaGVkIHRvIGZvcm0gdGhlIHY0MCBpZGVudGl0aWVzLgFVBgFlAgg0TWF4aW11bVdlaWdodCgoBwCg2yFdAgAAAQQpASBUaGUgbWF4aW11bSB3ZWlnaHQgdGhhdCBtYXkgYmUgc2NoZWR1bGVkIHBlciBibG9jayBmb3IgYW55IGRpc3BhdGNoYWJsZXMuUE1heFNjaGVkdWxlZFBlckJsb2NrEBAyAAAAFB0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzY2hlZHVsZWQgY2FsbHMgaW4gdGhlIHF1ZXVlIGZvciBhIHNpbmdsZSBibG9jay4AGCBOT1RFOlEBICsgRGVwZW5kZW50IHBhbGxldHMnIGJlbmNobWFya3MgbWlnaHQgcmVxdWlyZSBhIGhpZ2hlciBsaW1pdCBmb3IgdGhlIHNldHRpbmcuIFNldCBhxCBoaWdoZXIgbGltaXQgdW5kZXIgYHJ1bnRpbWUtYmVuY2htYXJrc2AgZmVhdHVyZS4BZQoFADxQYXJhY2hhaW5TeXN0ZW0BPFBhcmFjaGFpblN5c3RlbWBEVW5pbmNsdWRlZFNlZ21lbnQBAGkKBAAYSQEgTGF0ZXN0IGluY2x1ZGVkIGJsb2NrIGRlc2NlbmRhbnRzIHRoZSBydW50aW1lIGFjY2VwdGVkLiBJbiBvdGhlciB3b3JkcywgdGhlc2UgYXJlYQEgYW5jZXN0b3JzIG9mIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIGJsb2NrIHdoaWNoIGhhdmUgbm90IGJlZW4gaW5jbHVkZWQgaW4gdGhlIG9ic2VydmVkTCByZWxheS1jaGFpbiBzdGF0ZS4AdQEgVGhlIHNlZ21lbnQgbGVuZ3RoIGlzIGxpbWl0ZWQgYnkgdGhlIGNhcGFjaXR5IHJldHVybmVkIGZyb20gdGhlIFtgQ29uc2Vuc3VzSG9va2BdIGNvbmZpZ3VyZWQ8IGluIHRoZSBwYWxsZXQubEFnZ3JlZ2F0ZWRVbmluY2x1ZGVkU2VnbWVudAAAjQoEAAxpASBTdG9yYWdlIGZpZWxkIHRoYXQga2VlcHMgdHJhY2sgb2YgYmFuZHdpZHRoIHVzZWQgYnkgdGhlIHVuaW5jbHVkZWQgc2VnbWVudCBhbG9uZyB3aXRoIHRoZS0BIGxhdGVzdCBIUk1QIHdhdGVybWFyay4gVXNlZCBmb3IgbGltaXRpbmcgdGhlIGFjY2VwdGFuY2Ugb2YgbmV3IGJsb2NrcyB3aXRokCByZXNwZWN0IHRvIHJlbGF5IGNoYWluIGNvbnN0cmFpbnRzLlRQZW5kaW5nVmFsaWRhdGlvbkNvZGUBADgEABhZASBJbiBjYXNlIG9mIGEgc2NoZWR1bGVkIHVwZ3JhZGUsIHRoaXMgc3RvcmFnZSBmaWVsZCBjb250YWlucyB0aGUgdmFsaWRhdGlvbiBjb2RlIHRvIGJlJCBhcHBsaWVkLgA9ASBBcyBzb29uIGFzIHRoZSByZWxheSBjaGFpbiBnaXZlcyB1cyB0aGUgZ28tYWhlYWQgc2lnbmFsLCB3ZSB3aWxsIG92ZXJ3cml0ZSB0aGVxASBbYDpjb2RlYF1bc3BfY29yZTo6c3RvcmFnZTo6d2VsbF9rbm93bl9rZXlzOjpDT0RFXSB3aGljaCB3aWxsIHJlc3VsdCB0aGUgbmV4dCBibG9jayBwcm9jZXNzCQEgd2l0aCB0aGUgbmV3IHZhbGlkYXRpb24gY29kZS4gVGhpcyBjb25jbHVkZXMgdGhlIHVwZ3JhZGUgcHJvY2Vzcy5ETmV3VmFsaWRhdGlvbkNvZGUAADgEABRdASBWYWxpZGF0aW9uIGNvZGUgdGhhdCBpcyBzZXQgYnkgdGhlIHBhcmFjaGFpbiBhbmQgaXMgdG8gYmUgY29tbXVuaWNhdGVkIHRvIGNvbGxhdG9yIGFuZHggY29uc2VxdWVudGx5IHRoZSByZWxheS1jaGFpbi4AZQEgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrIGlmIG5vIG90aGVyIHBhbGxldCBhbHJlYWR5IHNldCwgdGhlIHZhbHVlLjhWYWxpZGF0aW9uRGF0YQAAYQYEAAzQIFRoZSBbYFBlcnNpc3RlZFZhbGlkYXRpb25EYXRhYF0gc2V0IGZvciB0aGlzIGJsb2NrLi0BIFRoaXMgdmFsdWUgaXMgZXhwZWN0ZWQgdG8gYmUgc2V0IG9ubHkgb25jZSBwZXIgYmxvY2sgYW5kIGl0J3MgbmV2ZXIgc3RvcmVkNCBpbiB0aGUgdHJpZS5QRGlkU2V0VmFsaWRhdGlvbkNvZGUBACAEAATgIFdlcmUgdGhlIHZhbGlkYXRpb24gZGF0YSBzZXQgdG8gbm90aWZ5IHRoZSByZWxheSBjaGFpbj9kTGFzdFJlbGF5Q2hhaW5CbG9ja051bWJlcgEAEBAAAAAADB0BIFRoZSByZWxheSBjaGFpbiBibG9jayBudW1iZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBsYXN0IHBhcmFjaGFpbiBibG9jay4AiCBUaGlzIGlzIHVwZGF0ZWQgaW4gYG9uX2ZpbmFsaXplYC5gVXBncmFkZVJlc3RyaWN0aW9uU2lnbmFsAQCRCgQAHHUBIEFuIG9wdGlvbiB3aGljaCBpbmRpY2F0ZXMgaWYgdGhlIHJlbGF5LWNoYWluIHJlc3RyaWN0cyBzaWduYWxsaW5nIGEgdmFsaWRhdGlvbiBjb2RlIHVwZ3JhZGUuYQEgSW4gb3RoZXIgd29yZHMsIGlmIHRoaXMgaXMgYFNvbWVgIGFuZCBbYE5ld1ZhbGlkYXRpb25Db2RlYF0gaXMgYFNvbWVgIHRoZW4gdGhlIHByb2R1Y2VkbCBjYW5kaWRhdGUgd2lsbCBiZSBpbnZhbGlkLgBxASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBhIG1pcnJvciBvZiB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgcGFyYWNoYWluIGZyb20gdGhlbQEgcmVsYXktY2hhaW4uIFRoaXMgdmFsdWUgaXMgZXBoZW1lcmFsIHdoaWNoIG1lYW5zIGl0IGRvZXNuJ3QgaGl0IHRoZSBzdG9yYWdlLiBUaGlzIHZhbHVlIGlzYCBzZXQgYWZ0ZXIgdGhlIGluaGVyZW50LjhVcGdyYWRlR29BaGVhZAEAhQoEABTcIE9wdGlvbmFsIHVwZ3JhZGUgZ28tYWhlYWQgc2lnbmFsIGZyb20gdGhlIHJlbGF5LWNoYWluLgBxASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBhIG1pcnJvciBvZiB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgcGFyYWNoYWluIGZyb20gdGhlbQEgcmVsYXktY2hhaW4uIFRoaXMgdmFsdWUgaXMgZXBoZW1lcmFsIHdoaWNoIG1lYW5zIGl0IGRvZXNuJ3QgaGl0IHRoZSBzdG9yYWdlLiBUaGlzIHZhbHVlIGlzYCBzZXQgYWZ0ZXIgdGhlIGluaGVyZW50LjxSZWxheVN0YXRlUHJvb2YAAGkGBAAYxCBUaGUgc3RhdGUgcHJvb2YgZm9yIHRoZSBsYXN0IHJlbGF5IHBhcmVudCBibG9jay4AbQEgVGhpcyBmaWVsZCBpcyBtZWFudCB0byBiZSB1cGRhdGVkIGVhY2ggYmxvY2sgd2l0aCB0aGUgdmFsaWRhdGlvbiBkYXRhIGluaGVyZW50LiBUaGVyZWZvcmUsTQEgYmVmb3JlIHByb2Nlc3Npbmcgb2YgdGhlIGluaGVyZW50LCBlLmcuIGluIGBvbl9pbml0aWFsaXplYCB0aGlzIGRhdGEgbWF5IGJlIHN0YWxlLgCsIFRoaXMgZGF0YSBpcyBhbHNvIGFic2VudCBmcm9tIHRoZSBnZW5lc2lzLlhSZWxldmFudE1lc3NhZ2luZ1N0YXRlAACZCgQAHGUBIFRoZSBzbmFwc2hvdCBvZiBzb21lIHN0YXRlIHJlbGF0ZWQgdG8gbWVzc2FnaW5nIHJlbGV2YW50IHRvIHRoZSBjdXJyZW50IHBhcmFjaGFpbiBhcyBwZXJIIHRoZSByZWxheSBwYXJlbnQuAG0BIFRoaXMgZmllbGQgaXMgbWVhbnQgdG8gYmUgdXBkYXRlZCBlYWNoIGJsb2NrIHdpdGggdGhlIHZhbGlkYXRpb24gZGF0YSBpbmhlcmVudC4gVGhlcmVmb3JlLE0BIGJlZm9yZSBwcm9jZXNzaW5nIG9mIHRoZSBpbmhlcmVudCwgZS5nLiBpbiBgb25faW5pdGlhbGl6ZWAgdGhpcyBkYXRhIG1heSBiZSBzdGFsZS4ArCBUaGlzIGRhdGEgaXMgYWxzbyBhYnNlbnQgZnJvbSB0aGUgZ2VuZXNpcy5ESG9zdENvbmZpZ3VyYXRpb24AAK0KBAAYKQEgVGhlIHBhcmFjaGFpbiBob3N0IGNvbmZpZ3VyYXRpb24gdGhhdCB3YXMgb2J0YWluZWQgZnJvbSB0aGUgcmVsYXkgcGFyZW50LgBtASBUaGlzIGZpZWxkIGlzIG1lYW50IHRvIGJlIHVwZGF0ZWQgZWFjaCBibG9jayB3aXRoIHRoZSB2YWxpZGF0aW9uIGRhdGEgaW5oZXJlbnQuIFRoZXJlZm9yZSxNASBiZWZvcmUgcHJvY2Vzc2luZyBvZiB0aGUgaW5oZXJlbnQsIGUuZy4gaW4gYG9uX2luaXRpYWxpemVgIHRoaXMgZGF0YSBtYXkgYmUgc3RhbGUuAKwgVGhpcyBkYXRhIGlzIGFsc28gYWJzZW50IGZyb20gdGhlIGdlbmVzaXMuOExhc3REbXFNcWNIZWFkAQC1CoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABD0IFRoZSBsYXN0IGRvd253YXJkIG1lc3NhZ2UgcXVldWUgY2hhaW4gaGVhZCB3ZSBoYXZlIG9ic2VydmVkLgBlASBUaGlzIHZhbHVlIGlzIGxvYWRlZCBiZWZvcmUgYW5kIHNhdmVkIGFmdGVyIHByb2Nlc3NpbmcgaW5ib3VuZCBkb3dud2FyZCBtZXNzYWdlcyBjYXJyaWVkYCBieSB0aGUgc3lzdGVtIGluaGVyZW50LkBMYXN0SHJtcE1xY0hlYWRzAQC5CgQAEEkBIFRoZSBtZXNzYWdlIHF1ZXVlIGNoYWluIGhlYWRzIHdlIGhhdmUgb2JzZXJ2ZWQgcGVyIGVhY2ggY2hhbm5lbCBpbmNvbWluZyBjaGFubmVsLgBlASBUaGlzIHZhbHVlIGlzIGxvYWRlZCBiZWZvcmUgYW5kIHNhdmVkIGFmdGVyIHByb2Nlc3NpbmcgaW5ib3VuZCBkb3dud2FyZCBtZXNzYWdlcyBjYXJyaWVkYCBieSB0aGUgc3lzdGVtIGluaGVyZW50LmRQcm9jZXNzZWREb3dud2FyZE1lc3NhZ2VzAQAQEAAAAAAMyCBOdW1iZXIgb2YgZG93bndhcmQgbWVzc2FnZXMgcHJvY2Vzc2VkIGluIGEgYmxvY2suAOwgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrLjRIcm1wV2F0ZXJtYXJrAQAQEAAAAAAMoCBIUk1QIHdhdGVybWFyayB0aGF0IHdhcyBzZXQgaW4gYSBibG9jay4A7CBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25faW5pdGlhbGl6ZWAgb2YgZWFjaCBuZXcgYmxvY2suUEhybXBPdXRib3VuZE1lc3NhZ2VzAQDFCgQADKQgSFJNUCBtZXNzYWdlcyB0aGF0IHdlcmUgc2VudCBpbiBhIGJsb2NrLgDsIFRoaXMgd2lsbCBiZSBjbGVhcmVkIGluIGBvbl9pbml0aWFsaXplYCBvZiBlYWNoIG5ldyBibG9jay44VXB3YXJkTWVzc2FnZXMBAMEDBAAMrCBVcHdhcmQgbWVzc2FnZXMgdGhhdCB3ZXJlIHNlbnQgaW4gYSBibG9jay4A7CBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25faW5pdGlhbGl6ZWAgb2YgZWFjaCBuZXcgYmxvY2suVFBlbmRpbmdVcHdhcmRNZXNzYWdlcwEAwQMEAAQxASBVcHdhcmQgbWVzc2FnZXMgdGhhdCBhcmUgc3RpbGwgcGVuZGluZyBhbmQgbm90IHlldCBzZW5kIHRvIHRoZSByZWxheSBjaGFpbi5cVXB3YXJkRGVsaXZlcnlGZWVGYWN0b3IBAGEBQAAAZKeztuANAAAAAAAAAAAE5CBUaGUgZmFjdG9yIHRvIG11bHRpcGx5IHRoZSBiYXNlIGRlbGl2ZXJ5IGZlZSBieSBmb3IgVU1QLoRBbm5vdW5jZWRIcm1wTWVzc2FnZXNQZXJDYW5kaWRhdGUBABAQAAAAAAhlASBUaGUgbnVtYmVyIG9mIEhSTVAgbWVzc2FnZXMgd2Ugb2JzZXJ2ZWQgaW4gYG9uX2luaXRpYWxpemVgIGFuZCB0aHVzIHVzZWQgdGhhdCBudW1iZXIgZm9y8CBhbm5vdW5jaW5nIHRoZSB3ZWlnaHQgb2YgYG9uX2luaXRpYWxpemVgIGFuZCBgb25fZmluYWxpemVgLmhSZXNlcnZlZFhjbXBXZWlnaHRPdmVycmlkZQAAKAQACF0BIFRoZSB3ZWlnaHQgd2UgcmVzZXJ2ZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBibG9jayBmb3IgcHJvY2Vzc2luZyBYQ01QIG1lc3NhZ2VzLiBUaGlzuCBvdmVycmlkZXMgdGhlIGFtb3VudCBzZXQgaW4gdGhlIENvbmZpZyB0cmFpdC5kUmVzZXJ2ZWREbXBXZWlnaHRPdmVycmlkZQAAKAQACFkBIFRoZSB3ZWlnaHQgd2UgcmVzZXJ2ZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBibG9jayBmb3IgcHJvY2Vzc2luZyBETVAgbWVzc2FnZXMuIFRoaXO4IG92ZXJyaWRlcyB0aGUgYW1vdW50IHNldCBpbiB0aGUgQ29uZmlnIHRyYWl0LmBDdXN0b21WYWxpZGF0aW9uSGVhZERhdGEAADgEAAwpASBBIGN1c3RvbSBoZWFkIGRhdGEgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgYXMgcmVzdWx0IG9mIGB2YWxpZGF0ZV9ibG9ja2AuABEBIFNlZSBgUGFsbGV0OjpzZXRfY3VzdG9tX3ZhbGlkYXRpb25faGVhZF9kYXRhYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4BWQYBbQIEKFNlbGZQYXJhSWSBAxDyBwAABLggUmV0dXJucyB0aGUgcGFyYWNoYWluIElEIHdlIGFyZSBydW5uaW5nIHdpdGguAc0KZwA0UGFyYWNoYWluSW5mbwE0UGFyYWNoYWluSW5mbwQsUGFyYWNoYWluSWQBAIEDEGQAAAAAAY0GAAAAaQAsUG9sa2Fkb3RYY20BLFBvbGthZG90WGNtMDBRdWVyeUNvdW50ZXIBADAgAAAAAAAAAAAEiCBUaGUgbGF0ZXN0IGF2YWlsYWJsZSBxdWVyeSBpbmRleC4cUXVlcmllcwABBAIw0QoEAARUIFRoZSBvbmdvaW5nIHF1ZXJpZXMuKEFzc2V0VHJhcHMBAQQGNBAQAAAAABBoIFRoZSBleGlzdGluZyBhc3NldCB0cmFwcy4AYQEgS2V5IGlzIHRoZSBibGFrZTIgMjU2IGhhc2ggb2YgKG9yaWdpbiwgdmVyc2lvbmVkIGBBc3NldHNgKSBwYWlyLiBWYWx1ZSBpcyB0aGUgbnVtYmVyIG9mHQEgdGltZXMgdGhpcyBwYWlyIGhhcyBiZWVuIHRyYXBwZWQgKHVzdWFsbHkganVzdCAxIGlmIGl0IGV4aXN0cyBhdCBhbGwpLjhTYWZlWGNtVmVyc2lvbgAAEAQACGEBIERlZmF1bHQgdmVyc2lvbiB0byBlbmNvZGUgWENNIHdoZW4gbGF0ZXN0IHZlcnNpb24gb2YgZGVzdGluYXRpb24gaXMgdW5rbm93bi4gSWYgYE5vbmVgLD0BIHRoZW4gdGhlIGRlc3RpbmF0aW9ucyB3aG9zZSBYQ00gdmVyc2lvbiBpcyB1bmtub3duIGFyZSBjb25zaWRlcmVkIHVucmVhY2hhYmxlLkBTdXBwb3J0ZWRWZXJzaW9uAAEIBQLlChAEAATwIFRoZSBMYXRlc3QgdmVyc2lvbnMgdGhhdCB3ZSBrbm93IHZhcmlvdXMgbG9jYXRpb25zIHN1cHBvcnQuQFZlcnNpb25Ob3RpZmllcnMAAQgFAuUKMAQABAUBIEFsbCBsb2NhdGlvbnMgdGhhdCB3ZSBoYXZlIHJlcXVlc3RlZCB2ZXJzaW9uIG5vdGlmaWNhdGlvbnMgZnJvbS5QVmVyc2lvbk5vdGlmeVRhcmdldHMAAQgFAuUK6QoEAAhxASBUaGUgdGFyZ2V0IGxvY2F0aW9ucyB0aGF0IGFyZSBzdWJzY3JpYmVkIHRvIG91ciB2ZXJzaW9uIGNoYW5nZXMsIGFzIHdlbGwgYXMgdGhlIG1vc3QgcmVjZW50lCBvZiBvdXIgdmVyc2lvbnMgd2UgaW5mb3JtZWQgdGhlbSBvZi5UVmVyc2lvbkRpc2NvdmVyeVF1ZXVlAQDtCgQADGUBIERlc3RpbmF0aW9ucyB3aG9zZSBsYXRlc3QgWENNIHZlcnNpb24gd2Ugd291bGQgbGlrZSB0byBrbm93LiBEdXBsaWNhdGVzIG5vdCBhbGxvd2VkLCBhbmRxASB0aGUgYHUzMmAgY291bnRlciBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgYSBzZW5kIHRvIHRoZSBkZXN0aW5hdGlvbiBoYXMgYmVlbiBhdHRlbXB0ZWQsjCB3aGljaCBpcyB1c2VkIGFzIGEgcHJpb3JpdGl6YXRpb24uQEN1cnJlbnRNaWdyYXRpb24AAPkKBAAEnCBUaGUgY3VycmVudCBtaWdyYXRpb24ncyBzdGFnZSwgaWYgYW55LlRSZW1vdGVMb2NrZWRGdW5naWJsZXMAAQwFAgIBCwULBAAE8CBGdW5naWJsZSBhc3NldHMgd2hpY2ggd2Uga25vdyBhcmUgbG9ja2VkIG9uIGEgcmVtb3RlIGNoYWluLjxMb2NrZWRGdW5naWJsZXMAAQQCABULBAAE4CBGdW5naWJsZSBhc3NldHMgd2hpY2ggd2Uga25vdyBhcmUgbG9ja2VkIG9uIHRoaXMgY2hhaW4uVFhjbUV4ZWN1dGlvblN1c3BlbmRlZAEAIAQABLQgR2xvYmFsIHN1c3BlbnNpb24gc3RhdGUgb2YgdGhlIFhDTSBleGVjdXRvci4BkQYBcQIAASELawAoQ3VtdWx1c1hjbQABLQcBcQMAAG0AJFhjbXBRdWV1ZQEkWGNtcFF1ZXVlHFBJbmJvdW5kWGNtcFN1c3BlbmRlZAEAJQsEACANASBUaGUgc3VzcGVuZGVkIGluYm91bmQgWENNUCBjaGFubmVscy4gQWxsIG90aGVycyBhcmUgbm90IHN1c3BlbmRlZC4AcQEgVGhpcyBpcyBhIGBTdG9yYWdlVmFsdWVgIGluc3RlYWQgb2YgYSBgU3RvcmFnZU1hcGAgc2luY2Ugd2UgZXhwZWN0IG11bHRpcGxlIHJlYWRzIHBlciBibG9ja2kBIHRvIGRpZmZlcmVudCBrZXlzIHdpdGggYSBvbmUgYnl0ZSBwYXlsb2FkLiBUaGUgYWNjZXNzIHRvIGBCb3VuZGVkQlRyZWVTZXRgIHdpbGwgYmUgY2FjaGVkFQEgd2l0aGluIHRoZSBibG9jayBhbmQgdGhlcmVmb3JlIG9ubHkgaW5jbHVkZWQgb25jZSBpbiB0aGUgcHJvb2Ygc2l6ZS4AZQEgTk9URTogVGhlIFBvViBiZW5jaG1hcmtpbmcgY2Fubm90IGtub3cgdGhpcyBhbmQgd2lsbCBvdmVyLWVzdGltYXRlLCBidXQgdGhlIGFjdHVhbCBwcm9vZkQgd2lsbCBiZSBzbWFsbGVyLkhPdXRib3VuZFhjbXBTdGF0dXMBADELBAAYXQEgVGhlIG5vbi1lbXB0eSBYQ01QIGNoYW5uZWxzIGluIG9yZGVyIG9mIGJlY29taW5nIG5vbi1lbXB0eSwgYW5kIHRoZSBpbmRleCBvZiB0aGUgZmlyc3RRASBhbmQgbGFzdCBvdXRib3VuZCBtZXNzYWdlLiBJZiB0aGUgdHdvIGluZGljZXMgYXJlIGVxdWFsLCB0aGVuIGl0IGluZGljYXRlcyBhbiBlbXB0eVkBIHF1ZXVlIGFuZCB0aGVyZSBtdXN0IGJlIGEgbm9uLWBPa2AgYE91dGJvdW5kU3RhdHVzYC4gV2UgYXNzdW1lIHF1ZXVlcyBncm93IG5vIGdyZWF0ZXJZASB0aGFuIDY1NTM1IGl0ZW1zLiBRdWV1ZSBpbmRpY2VzIGZvciBub3JtYWwgbWVzc2FnZXMgYmVnaW4gYXQgb25lOyB6ZXJvIGlzIHJlc2VydmVkIGluEQEgY2FzZSBvZiB0aGUgbmVlZCB0byBzZW5kIGEgaGlnaC1wcmlvcml0eSBzaWduYWwgbWVzc2FnZSB0aGlzIGJsb2NrLgkBIFRoZSBib29sIGlzIHRydWUgaWYgdGhlcmUgaXMgYSBzaWduYWwgbWVzc2FnZSB3YWl0aW5nIHRvIGJlIHNlbnQuUE91dGJvdW5kWGNtcE1lc3NhZ2VzAQEIAgU9CzgEAAS8IFRoZSBtZXNzYWdlcyBvdXRib3VuZCBpbiBhIGdpdmVuIFhDTVAgY2hhbm5lbC44U2lnbmFsTWVzc2FnZXMBAQQCgQM4BAAEoCBBbnkgc2lnbmFsIG1lc3NhZ2VzIHdhaXRpbmcgdG8gYmUgc2VudC4sUXVldWVDb25maWcBAEELMCAAAAAwAAAACAAAAAQVASBUaGUgY29uZmlndXJhdGlvbiB3aGljaCBjb250cm9scyB0aGUgZHluYW1pY3Mgb2YgdGhlIG91dGJvdW5kIHF1ZXVlLjhRdWV1ZVN1c3BlbmRlZAEAIAQABEEBIFdoZXRoZXIgb3Igbm90IHRoZSBYQ01QIHF1ZXVlIGlzIHN1c3BlbmRlZCBmcm9tIGV4ZWN1dGluZyBpbmNvbWluZyBYQ01zIG9yIG5vdC5ERGVsaXZlcnlGZWVGYWN0b3IBAQQFgQNhAUAAAGSns7bgDQAAAAAAAAAABMQgVGhlIGZhY3RvciB0byBtdWx0aXBseSB0aGUgYmFzZSBkZWxpdmVyeSBmZWUgYnkuAAF1AwRMTWF4SW5ib3VuZFN1c3BlbmRlZBAQ6AMAABRJASBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5ib3VuZCBYQ01QIGNoYW5uZWxzIHRoYXQgY2FuIGJlIHN1c3BlbmRlZCBzaW11bHRhbmVvdXNseS4AXQEgQW55IGZ1cnRoZXIgY2hhbm5lbCBzdXNwZW5zaW9ucyB3aWxsIGZhaWwgYW5kIG1lc3NhZ2VzIG1heSBnZXQgZHJvcHBlZCB3aXRob3V0IGZ1cnRoZXJFASBub3RpY2UuIENob29zaW5nIGEgaGlnaCB2YWx1ZSAoMTAwMCkgaXMgb2theTsgdGhlIHRyYWRlLW9mZiB0aGF0IGlzIGRlc2NyaWJlZCBpbtggW2BJbmJvdW5kWGNtcFN1c3BlbmRlZGBdIHN0aWxsIGFwcGxpZXMgYXQgdGhhdCBzY2FsZS4BRQtvADBNZXNzYWdlUXVldWUBME1lc3NhZ2VRdWV1ZQwwQm9va1N0YXRlRm9yAQEEBX0DSQt0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEzCBUaGUgaW5kZXggb2YgdGhlIGZpcnN0IGFuZCBsYXN0IChub24tZW1wdHkpIHBhZ2VzLixTZXJ2aWNlSGVhZAAAfQMEAAS8IFRoZSBvcmlnaW4gYXQgd2hpY2ggd2Ugc2hvdWxkIGJlZ2luIHNlcnZpY2luZy4UUGFnZXMAAQgFBVULWQsEAASIIFRoZSBtYXAgb2YgcGFnZSBpbmRpY2VzIHRvIHBhZ2VzLgExBwF5AxAgSGVhcFNpemUQEAAMAgAUPQEgVGhlIHNpemUgb2YgdGhlIHBhZ2U7IHRoaXMgaW1wbGllcyB0aGUgbWF4aW11bSBtZXNzYWdlIHNpemUgd2hpY2ggY2FuIGJlIHNlbnQuAFkBIEEgZ29vZCB2YWx1ZSBkZXBlbmRzIG9uIHRoZSBleHBlY3RlZCBtZXNzYWdlIHNpemVzLCB0aGVpciB3ZWlnaHRzLCB0aGUgd2VpZ2h0IHRoYXQgaXNdASBhdmFpbGFibGUgZm9yIHByb2Nlc3NpbmcgdGhlbSBhbmQgdGhlIG1heGltYWwgbmVlZGVkIG1lc3NhZ2Ugc2l6ZS4gVGhlIG1heGltYWwgbWVzc2FnZREBIHNpemUgaXMgc2xpZ2h0bHkgbG93ZXIgdGhhbiB0aGlzIGFzIGRlZmluZWQgYnkgW2BNYXhNZXNzYWdlTGVuT2ZgXS4gTWF4U3RhbGUQEAgAAAAMXQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHN0YWxlIHBhZ2VzIChpLmUuIG9mIG92ZXJ3ZWlnaHQgbWVzc2FnZXMpIGFsbG93ZWQgYmVmb3JlIGN1bGxpbmdRASBjYW4gaGFwcGVuLiBPbmNlIHRoZXJlIGFyZSBtb3JlIHN0YWxlIHBhZ2VzIHRoYW4gdGhpcywgdGhlbiBoaXN0b3JpY2FsIHBhZ2VzIG1heSBiZfwgZHJvcHBlZCwgZXZlbiBpZiB0aGV5IGNvbnRhaW4gdW5wcm9jZXNzZWQgb3ZlcndlaWdodCBtZXNzYWdlcy40U2VydmljZVdlaWdodNEDLAEHAKKUGh0CAFAAGEEBIFRoZSBhbW91bnQgb2Ygd2VpZ2h0IChpZiBhbnkpIHdoaWNoIHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgbWVzc2FnZSBxdWV1ZSBmb3KoIHNlcnZpY2luZyBlbnF1ZXVlZCBpdGVtcyBgb25faW5pdGlhbGl6ZWAuAPwgVGhpcyBtYXkgYmUgbGVnaXRpbWF0ZWx5IGBOb25lYCBpbiB0aGUgY2FzZSB0aGF0IHlvdSB3aWxsIGNhbGxdASBgU2VydmljZVF1ZXVlczo6c2VydmljZV9xdWV1ZXNgIG1hbnVhbGx5IG9yIHNldCBbYFNlbGY6OklkbGVNYXhTZXJ2aWNlV2VpZ2h0YF0gdG8gaGF2ZVQgaXQgcnVuIGluIGBvbl9pZGxlYC5QSWRsZU1heFNlcnZpY2VXZWlnaHTRAywBBwCilBodAgBQABRdASBUaGUgbWF4aW11bSBhbW91bnQgb2Ygd2VpZ2h0IChpZiBhbnkpIHRvIGJlIHVzZWQgZnJvbSByZW1haW5pbmcgd2VpZ2h0IGBvbl9pZGxlYCB3aGljaEEBIHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgbWVzc2FnZSBxdWV1ZSBmb3Igc2VydmljaW5nIGVucXVldWVkIGl0ZW1zIGBvbl9pZGxlYC49ASBVc2VmdWwgZm9yIHBhcmFjaGFpbnMgdG8gcHJvY2VzcyBtZXNzYWdlcyBhdCB0aGUgc2FtZSBibG9jayB0aGV5IGFyZSByZWNlaXZlZC4AKQEgSWYgYE5vbmVgLCBpdCB3aWxsIG5vdCBjYWxsIGBTZXJ2aWNlUXVldWVzOjpzZXJ2aWNlX3F1ZXVlc2AgaW4gYG9uX2lkbGVgLgFhC3IAHE9ybWxYY20AATUHAYkDAAFlC4cAHFhUb2tlbnMAATkHAY0DDDBTZWxmTG9jYXRpb259AhQBAQDJHwRUIFNlbGYgY2hhaW4gbG9jYXRpb24uNEJhc2VYY21XZWlnaHQoFAKE1xcAEEQgQmFzZSBYQ00gd2VpZ2h0LgD4IFRoZSBhY3R1YWxseSB3ZWlnaHQgZm9yIGFuIFhDTSBtZXNzYWdlIGlzIGBUOjpCYXNlWGNtV2VpZ2h0ICtsIFQ6OldlaWdoZXI6OndlaWdodCgmbXNnKWAuNFJhdGVMaW1pdGVySWSQAARsIFRoZSBpZCBvZiB0aGUgUmF0ZUxpbWl0ZXIuAWkLiQA0VW5rbm93blRva2VucwE0VW5rbm93blRva2VucwhgQ29uY3JldGVGdW5naWJsZUJhbGFuY2VzAQEIAgJtCxhAAAAAAAAAAAAAAAAAAAAAABAFASBDb25jcmV0ZSBmdW5naWJsZSBiYWxhbmNlcyB1bmRlciBhIGdpdmVuIGxvY2F0aW9uIGFuZCBhIGNvbmNyZXRlNCBmdW5naWJsZSBpZC4AiCBkb3VibGVfbWFwOiB3aG8sIGFzc2V0X2lkID0+IHUxMjhgQWJzdHJhY3RGdW5naWJsZUJhbGFuY2VzAQEIAgJxCxhAAAAAAAAAAAAAAAAAAAAAABAFASBBYnN0cmFjdCBmdW5naWJsZSBiYWxhbmNlcyB1bmRlciBhIGdpdmVuIGxvY2F0aW9uIGFuZCBhIGFic3RyYWN0NCBmdW5naWJsZSBpZC4AiCBkb3VibGVfbWFwOiB3aG8sIGFzc2V0X2lkID0+IHUxMjgAAZEDAAF1C4sAKEF1dGhvcnNoaXABKEF1dGhvcnNoaXAEGEF1dGhvcgAAAAQABGQgQXV0aG9yIG9mIGN1cnJlbnQgYmxvY2suAAAAAKEARENvbGxhdG9yU2VsZWN0aW9uAURDb2xsYXRvclNlbGVjdGlvbhQ0SW52dWxuZXJhYmxlcwEAvQgEAAQRASBUaGUgaW52dWxuZXJhYmxlLCBwZXJtaXNzaW9uZWQgY29sbGF0b3JzLiBUaGlzIGxpc3QgbXVzdCBiZSBzb3J0ZWQuNENhbmRpZGF0ZUxpc3QBAHkLBAAUaQEgVGhlIChjb21tdW5pdHksIGxpbWl0ZWQpIGNvbGxhdGlvbiBjYW5kaWRhdGVzLiBgQ2FuZGlkYXRlc2AgYW5kIGBJbnZ1bG5lcmFibGVzYCBzaG91bGQgYmVQIG11dHVhbGx5IGV4Y2x1c2l2ZS4AdQEgVGhpcyBsaXN0IGlzIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIgYnkgZGVwb3NpdCBhbmQgd2hlbiB0aGUgZGVwb3NpdHMgYXJlIGVxdWFsLCB0aGUgbGVhc3SgIHJlY2VudGx5IHVwZGF0ZWQgaXMgY29uc2lkZXJlZCBncmVhdGVyLkRMYXN0QXV0aG9yZWRCbG9jawEBBAUAEBAAAAAABIQgTGFzdCBibG9jayBhdXRob3JlZCBieSBjb2xsYXRvci5ERGVzaXJlZENhbmRpZGF0ZXMBABAQAAAAAAx4IERlc2lyZWQgbnVtYmVyIG9mIGNhbmRpZGF0ZXMuAHUBIFRoaXMgc2hvdWxkIGlkZWFsbHkgYWx3YXlzIGJlIGxlc3MgdGhhbiBbYENvbmZpZzo6TWF4Q2FuZGlkYXRlc2BdIGZvciB3ZWlnaHRzIHRvIGJlIGNvcnJlY3QuNENhbmRpZGFjeUJvbmQBABhAAAAAAAAAAAAAAAAAAAAAAAy4IEZpeGVkIGFtb3VudCB0byBkZXBvc2l0IHRvIGJlY29tZSBhIGNvbGxhdG9yLgBBASBXaGVuIGEgY29sbGF0b3IgY2FsbHMgYGxlYXZlX2ludGVudGAgdGhleSBpbW1lZGlhdGVseSByZWNlaXZlIHRoZSBkZXBvc2l0IGJhY2suAUUHAZUDAAGFC6MAHFNlc3Npb24BHFNlc3Npb24cKFZhbGlkYXRvcnMBAJkDBAAEfCBUaGUgY3VycmVudCBzZXQgb2YgdmFsaWRhdG9ycy4wQ3VycmVudEluZGV4AQAQEAAAAAAEeCBDdXJyZW50IGluZGV4IG9mIHRoZSBzZXNzaW9uLjRRdWV1ZWRDaGFuZ2VkAQAgBAAIOQEgVHJ1ZSBpZiB0aGUgdW5kZXJseWluZyBlY29ub21pYyBpZGVudGl0aWVzIG9yIHdlaWdodGluZyBiZWhpbmQgdGhlIHZhbGlkYXRvcnOkIGhhcyBjaGFuZ2VkIGluIHRoZSBxdWV1ZWQgdmFsaWRhdG9yIHNldC4oUXVldWVkS2V5cwEAiQsEAAg9ASBUaGUgcXVldWVkIGtleXMgZm9yIHRoZSBuZXh0IHNlc3Npb24uIFdoZW4gdGhlIG5leHQgc2Vzc2lvbiBiZWdpbnMsIHRoZXNlIGtleXPgIHdpbGwgYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHZhbGlkYXRvcidzIHNlc3Npb24ga2V5cy5IRGlzYWJsZWRWYWxpZGF0b3JzAQCdAQQAFIAgSW5kaWNlcyBvZiBkaXNhYmxlZCB2YWxpZGF0b3JzLgA9ASBUaGUgdmVjIGlzIGFsd2F5cyBrZXB0IHNvcnRlZCBzbyB0aGF0IHdlIGNhbiBmaW5kIHdoZXRoZXIgYSBnaXZlbiB2YWxpZGF0b3IgaXM9ASBkaXNhYmxlZCB1c2luZyBiaW5hcnkgc2VhcmNoLiBJdCBnZXRzIGNsZWFyZWQgd2hlbiBgb25fc2Vzc2lvbl9lbmRpbmdgIHJldHVybnNkIGEgbmV3IHNldCBvZiBpZGVudGl0aWVzLiBOZXh0S2V5cwABBAUATQcEAAScIFRoZSBuZXh0IHNlc3Npb24ga2V5cyBmb3IgYSB2YWxpZGF0b3IuIEtleU93bmVyAAEEBZELAAQABAkBIFRoZSBvd25lciBvZiBhIGtleS4gVGhlIGtleSBpcyB0aGUgYEtleVR5cGVJZGAgKyB0aGUgZW5jb2RlZCBrZXkuAUkHAZ0DAAGZC6UAEEF1cmEBEEF1cmEILEF1dGhvcml0aWVzAQCdCwQABGwgVGhlIGN1cnJlbnQgYXV0aG9yaXR5IHNldC4sQ3VycmVudFNsb3QBAKULIAAAAAAAAAAADIAgVGhlIGN1cnJlbnQgc2xvdCBvZiB0aGlzIGJsb2NrLgCUIFRoaXMgd2lsbCBiZSBzZXQgaW4gYG9uX2luaXRpYWxpemVgLgAABDBTbG90RHVyYXRpb24wIOAuAAAAAAAAEA0BIFRoZSBzbG90IGR1cmF0aW9uIEF1cmEgc2hvdWxkIHJ1biB3aXRoLCBleHByZXNzZWQgaW4gbWlsbGlzZWNvbmRzLj0BIFRoZSBlZmZlY3RpdmUgdmFsdWUgb2YgdGhpcyB0eXBlIHNob3VsZCBub3QgY2hhbmdlIHdoaWxlIHRoZSBjaGFpbiBpcyBydW5uaW5nLgA1ASBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZWl0aGVyIHVzZSBbYE1pbmltdW1QZXJpb2RUaW1lc1R3b2BdIG9yIGEgY29uc3QuAKcAHEF1cmFFeHQBHEF1cmFFeHQILEF1dGhvcml0aWVzAQCdCwQAFJQgU2VydmVzIGFzIGNhY2hlIGZvciB0aGUgYXV0aG9yaXRpZXMuAHEBIFRoZSBhdXRob3JpdGllcyBpbiBBdVJhIGFyZSBvdmVyd3JpdHRlbiBpbiBgb25faW5pdGlhbGl6ZWAgd2hlbiB3ZSBzd2l0Y2ggdG8gYSBuZXcgc2Vzc2lvbixdASBidXQgd2UgcmVxdWlyZSB0aGUgb2xkIGF1dGhvcml0aWVzIHRvIHZlcmlmeSB0aGUgc2VhbCB3aGVuIHZhbGlkYXRpbmcgYSBQb1YuIFRoaXMgd2lsbA0BIGFsd2F5cyBiZSB1cGRhdGVkIHRvIHRoZSBsYXRlc3QgQXVSYSBhdXRob3JpdGllcyBpbiBgb25fZmluYWxpemVgLiBTbG90SW5mbwAAqQsEAAzYIEN1cnJlbnQgc2xvdCBwYWlyZWQgd2l0aCBhIG51bWJlciBvZiBhdXRob3JlZCBibG9ja3MuAJggVXBkYXRlZCBvbiBlYWNoIGJsb2NrIGluaXRpYWxpemF0aW9uLgAAAACpACRFbWFPcmFjbGUBJEVtYU9yYWNsZQwsQWNjdW11bGF0b3IBAK0LBAAEcQEgQWNjdW11bGF0b3IgZm9yIG9yYWNsZSBkYXRhIGluIGN1cnJlbnQgYmxvY2sgdGhhdCB3aWxsIGJlIHJlY29yZGVkIGF0IHRoZSBlbmQgb2YgdGhlIGJsb2NrLhxPcmFjbGVzAAEMBQUF0QvVCwQADHUBIE9yYWNsZSBzdG9yYWdlIGtleWVkIGJ5IGRhdGEgc291cmNlLCBpbnZvbHZlZCBhc3NldCBpZHMgYW5kIHRoZSBwZXJpb2QgbGVuZ3RoIG9mIHRoZSBvcmFjbGUuAGUBIFN0b3JlcyB0aGUgZGF0YSBlbnRyeSBhcyB3ZWxsIGFzIHRoZSBibG9jayBudW1iZXIgd2hlbiB0aGUgb3JhY2xlIHdhcyBmaXJzdCBpbml0aWFsaXplZC5EV2hpdGVsaXN0ZWRBc3NldHMBANkLBAAE3CBBc3NldHMgdGhhdCBhcmUgd2hpdGVsaXN0ZWQgYW5kIHRyYWNrZWQgYnkgdGhlIHBhbGxldC4BVQcBoQMEQE1heFVuaXF1ZUVudHJpZXMQECgAAAAE/CBNYXhpbXVtIG51bWJlciBvZiB1bmlxdWUgb3JhY2xlIGVudHJpZXMgZXhwZWN0ZWQgaW4gb25lIGJsb2NrLgHlC8oABAB9BCEF6QsoSENoZWNrTm9uWmVyb1NlbmRlcu0LkEBDaGVja1NwZWNWZXJzaW9u8QsQOENoZWNrVHhWZXJzaW9u9QsQMENoZWNrR2VuZXNpc/kLNDhDaGVja01vcnRhbGl0ef0LNChDaGVja05vbmNlBQyQLENoZWNrV2VpZ2h0CQyQYENoYXJnZVRyYW5zYWN0aW9uUGF5bWVudA0MkDRWYWxpZGF0ZUNsYWltEQyQRENoZWNrTWV0YWRhdGFIYXNoFQxpAh0MQBBDb3JlDBx2ZXJzaW9uAOEDBJAgUmV0dXJucyB0aGUgdmVyc2lvbiBvZiB0aGUgcnVudGltZS40ZXhlY3V0ZV9ibG9jawQUYmxvY2shDJAEZCBFeGVjdXRlIHRoZSBnaXZlbiBibG9jay5AaW5pdGlhbGl6ZV9ibG9jawQYaGVhZGVyJQw1DARBASBJbml0aWFsaXplIGEgYmxvY2sgd2l0aCB0aGUgZ2l2ZW4gaGVhZGVyIGFuZCByZXR1cm4gdGhlIHJ1bnRpbWUgZXhlY3V0aXZlIG1vZGUuBCEBIFRoZSBgQ29yZWAgcnVudGltZSBhcGkgdGhhdCBldmVyeSBTdWJzdHJhdGUgcnVudGltZSBuZWVkcyB0byBpbXBsZW1lbnQuIE1ldGFkYXRhDCBtZXRhZGF0YQA5DASMIFJldHVybnMgdGhlIG1ldGFkYXRhIG9mIGEgcnVudGltZS5MbWV0YWRhdGFfYXRfdmVyc2lvbgQcdmVyc2lvbhA9DBCkIFJldHVybnMgdGhlIG1ldGFkYXRhIGF0IGEgZ2l2ZW4gdmVyc2lvbi4ABQEgSWYgdGhlIGdpdmVuIGB2ZXJzaW9uYCBpc24ndCBzdXBwb3J0ZWQsIHRoaXMgd2lsbCByZXR1cm4gYE5vbmVgLnUBIFVzZSBbYFNlbGY6Om1ldGFkYXRhX3ZlcnNpb25zYF0gdG8gZmluZCBvdXQgYWJvdXQgc3VwcG9ydGVkIG1ldGFkYXRhIHZlcnNpb24gb2YgdGhlIHJ1bnRpbWUuRG1ldGFkYXRhX3ZlcnNpb25zAJ0BDKQgUmV0dXJucyB0aGUgc3VwcG9ydGVkIG1ldGFkYXRhIHZlcnNpb25zLgDAIFRoaXMgY2FuIGJlIHVzZWQgdG8gY2FsbCBgbWV0YWRhdGFfYXRfdmVyc2lvbmAuBAEBIFRoZSBgTWV0YWRhdGFgIGFwaSB0cmFpdCB0aGF0IHJldHVybnMgbWV0YWRhdGEgZm9yIHRoZSBydW50aW1lLjBCbG9ja0J1aWxkZXIQPGFwcGx5X2V4dHJpbnNpYwQkZXh0cmluc2ljKQxBDBBsIEFwcGx5IHRoZSBnaXZlbiBleHRyaW5zaWMuADkBIFJldHVybnMgYW4gaW5jbHVzaW9uIG91dGNvbWUgd2hpY2ggc3BlY2lmaWVzIGlmIHRoaXMgZXh0cmluc2ljIGlzIGluY2x1ZGVkIGluTCB0aGlzIGJsb2NrIG9yIG5vdC44ZmluYWxpemVfYmxvY2sAJQwEaCBGaW5pc2ggdGhlIGN1cnJlbnQgYmxvY2suTGluaGVyZW50X2V4dHJpbnNpY3MEIGluaGVyZW50UQwxDAQ9ASBHZW5lcmF0ZSBpbmhlcmVudCBleHRyaW5zaWNzLiBUaGUgaW5oZXJlbnQgZGF0YSB3aWxsIHZhcnkgZnJvbSBjaGFpbiB0byBjaGFpbi48Y2hlY2tfaW5oZXJlbnRzCBRibG9jayEMEGRhdGFRDGEMBFUBIENoZWNrIHRoYXQgdGhlIGluaGVyZW50cyBhcmUgdmFsaWQuIFRoZSBpbmhlcmVudCBkYXRhIHdpbGwgdmFyeSBmcm9tIGNoYWluIHRvIGNoYWluLgRxASBUaGUgYEJsb2NrQnVpbGRlcmAgYXBpIHRyYWl0IHRoYXQgcHJvdmlkZXMgdGhlIHJlcXVpcmVkIGZ1bmN0aW9uYWxpdHkgZm9yIGJ1aWxkaW5nIGEgYmxvY2suWFRhZ2dlZFRyYW5zYWN0aW9uUXVldWUEUHZhbGlkYXRlX3RyYW5zYWN0aW9uDBhzb3VyY2VlDAh0eCkMKGJsb2NrX2hhc2g0aQwkaCBWYWxpZGF0ZSB0aGUgdHJhbnNhY3Rpb24uAGUBIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYnkgdGhlIHRyYW5zYWN0aW9uIHBvb2wgdG8gbGVhcm4gZGV0YWlscyBhYm91dCBnaXZlbiB0cmFuc2FjdGlvbi5FASBUaGUgaW1wbGVtZW50YXRpb24gc2hvdWxkIG1ha2Ugc3VyZSB0byB2ZXJpZnkgdGhlIGNvcnJlY3RuZXNzIG9mIHRoZSB0cmFuc2FjdGlvbk0BIGFnYWluc3QgY3VycmVudCBzdGF0ZS4gVGhlIGdpdmVuIGBibG9ja19oYXNoYCBjb3JyZXNwb25kcyB0byB0aGUgaGFzaCBvZiB0aGUgYmxvY2t8IHRoYXQgaXMgdXNlZCBhcyBjdXJyZW50IHN0YXRlLgBFASBOb3RlIHRoYXQgdGhpcyBjYWxsIG1heSBiZSBwZXJmb3JtZWQgYnkgdGhlIHBvb2wgbXVsdGlwbGUgdGltZXMgYW5kIHRyYW5zYWN0aW9uc6QgbWlnaHQgYmUgdmVyaWZpZWQgaW4gYW55IHBvc3NpYmxlIG9yZGVyLgRNASBUaGUgYFRhZ2dlZFRyYW5zYWN0aW9uUXVldWVgIGFwaSB0cmFpdCBmb3IgaW50ZXJmZXJpbmcgd2l0aCB0aGUgdHJhbnNhY3Rpb24gcXVldWUuRE9mZmNoYWluV29ya2VyQXBpBDxvZmZjaGFpbl93b3JrZXIEGGhlYWRlciUMkATIIFN0YXJ0cyB0aGUgb2ZmLWNoYWluIHRhc2sgZm9yIGdpdmVuIGJsb2NrIGhlYWRlci4EZCBUaGUgb2ZmY2hhaW4gd29ya2VyIGFwaS4sU2Vzc2lvbktleXMIVGdlbmVyYXRlX3Nlc3Npb25fa2V5cwQQc2VlZP0KOBwVASBHZW5lcmF0ZSBhIHNldCBvZiBzZXNzaW9uIGtleXMgd2l0aCBvcHRpb25hbGx5IHVzaW5nIHRoZSBnaXZlbiBzZWVkLgkBIFRoZSBrZXlzIHNob3VsZCBiZSBzdG9yZWQgd2l0aGluIHRoZSBrZXlzdG9yZSBleHBvc2VkIHZpYSBydW50aW1lPCBleHRlcm5hbGl0aWVzLgCwIFRoZSBzZWVkIG5lZWRzIHRvIGJlIGEgdmFsaWQgYHV0ZjhgIHN0cmluZy4A0CBSZXR1cm5zIHRoZSBjb25jYXRlbmF0ZWQgU0NBTEUgZW5jb2RlZCBwdWJsaWMga2V5cy5MZGVjb2RlX3Nlc3Npb25fa2V5cwQcZW5jb2RlZDhxDAyYIERlY29kZSB0aGUgZ2l2ZW4gcHVibGljIHNlc3Npb24ga2V5cy4A3CBSZXR1cm5zIHRoZSBsaXN0IG9mIHB1YmxpYyByYXcgcHVibGljIGtleXMgKyBrZXkgdHlwZS4EaCBTZXNzaW9uIGtleXMgcnVudGltZSBhcGkuHEF1cmFBcGkINHNsb3RfZHVyYXRpb24AfQwMkCBSZXR1cm5zIHRoZSBzbG90IGR1cmF0aW9uIGZvciBBdXJhLgAlASBDdXJyZW50bHksIG9ubHkgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoaXMgdHlwZSBhdCBnZW5lc2lzIHdpbGwgYmUgdXNlZC4sYXV0aG9yaXRpZXMAoQsEnCBSZXR1cm4gdGhlIGN1cnJlbnQgc2V0IG9mIGF1dGhvcml0aWVzLgS4IEFQSSBuZWNlc3NhcnkgZm9yIGJsb2NrIGF1dGhvcnNoaXAgd2l0aCBhdXJhLlBDb2xsZWN0Q29sbGF0aW9uSW5mbwRYY29sbGVjdF9jb2xsYXRpb25faW5mbwQYaGVhZGVyJQyBDBCcIENvbGxlY3QgaW5mb3JtYXRpb24gYWJvdXQgYSBjb2xsYXRpb24uAPQgVGhlIGdpdmVuIGBoZWFkZXJgIGlzIHRoZSBoZWFkZXIgb2YgdGhlIGJ1aWx0IGJsb2NrIGZvciB0aGF0qCB3ZSBhcmUgY29sbGVjdGluZyB0aGUgY29sbGF0aW9uIGluZm8gZm9yLgTYIFJ1bnRpbWUgYXBpIHRvIGNvbGxlY3QgaW5mb3JtYXRpb24gYWJvdXQgYSBjb2xsYXRpb24uNEN1cnJlbmNpZXNBcGkMHGFjY291bnQIIGFzc2V0X2lkEAx3aG8AjQwAIGFjY291bnRzBAx3aG8AkQwAMGZyZWVfYmFsYW5jZQggYXNzZXRfaWQQDHdobwAYAAA8QWNjb3VudE5vbmNlQXBpBDRhY2NvdW50X25vbmNlBBxhY2NvdW50ABAEwCBHZXQgY3VycmVudCBhY2NvdW50IG5vbmNlIG9mIGdpdmVuIGBBY2NvdW50SWRgLgSAIFRoZSBBUEkgdG8gcXVlcnkgYWNjb3VudCBub25jZS5UVHJhbnNhY3Rpb25QYXltZW50QXBpEChxdWVyeV9pbmZvCAx1eHQpDAxsZW4QmQwARHF1ZXJ5X2ZlZV9kZXRhaWxzCAx1eHQpDAxsZW4QnQwATHF1ZXJ5X3dlaWdodF90b19mZWUEGHdlaWdodCgYAExxdWVyeV9sZW5ndGhfdG9fZmVlBBhsZW5ndGgQGAAAVEV0aGVyZXVtUnVudGltZVJQQ0FwaUQgY2hhaW5faWQAMAS0IFJldHVybnMgcnVudGltZSBkZWZpbmVkIHBhbGxldF9ldm06OkNoYWluSWQuNGFjY291bnRfYmFzaWMEHGFkZHJlc3MNAqkMBKQgUmV0dXJucyBwYWxsZXRfZXZtOjpBY2NvdW50cyBieSBhZGRyZXNzLiRnYXNfcHJpY2UATQQElCBSZXR1cm5zIEZpeGVkR2FzUHJpY2U6Om1pbl9nYXNfcHJpY2U8YWNjb3VudF9jb2RlX2F0BBxhZGRyZXNzDQI4BPwgRm9yIGEgZ2l2ZW4gYWNjb3VudCBhZGRyZXNzLCByZXR1cm5zIHBhbGxldF9ldm06OkFjY291bnRDb2Rlcy4YYXV0aG9yAA0CBPAgUmV0dXJucyB0aGUgY29udmVydGVkIEZpbmRBdXRob3I6OmZpbmRfYXV0aG9yIGF1dGhvcml0eSBpZC4oc3RvcmFnZV9hdAgcYWRkcmVzcw0CFGluZGV4TQQ0BDEBIEZvciBhIGdpdmVuIGFjY291bnQgYWRkcmVzcyBhbmQgaW5kZXgsIHJldHVybnMgcGFsbGV0X2V2bTo6QWNjb3VudFN0b3JhZ2VzLhBjYWxsKBBmcm9tDQIIdG8NAhBkYXRhOBR2YWx1ZU0EJGdhc19saW1pdE0EPG1heF9mZWVfcGVyX2dhcwUGYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhcwUGFG5vbmNlBQYgZXN0aW1hdGUgLGFjY2Vzc19saXN0rQyxDAAYY3JlYXRlJBBmcm9tDQIQZGF0YTgUdmFsdWVNBCRnYXNfbGltaXRNBDxtYXhfZmVlX3Blcl9nYXMFBmBtYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXMFBhRub25jZQUGIGVzdGltYXRlICxhY2Nlc3NfbGlzdK0MyQwANGN1cnJlbnRfYmxvY2sA0QwEaCBSZXR1cm4gdGhlIGN1cnJlbnQgYmxvY2suQGN1cnJlbnRfcmVjZWlwdHMA1QwEcCBSZXR1cm4gdGhlIGN1cnJlbnQgcmVjZWlwdC5wY3VycmVudF90cmFuc2FjdGlvbl9zdGF0dXNlcwDZDAScIFJldHVybiB0aGUgY3VycmVudCB0cmFuc2FjdGlvbiBzdGF0dXMuLGN1cnJlbnRfYWxsAN0MAEBleHRyaW5zaWNfZmlsdGVyBAx4dHMxDAkKBDUBIFJlY2VpdmVzIGEgYFZlYzxPcGFxdWVFeHRyaW5zaWM+YCBhbmQgZmlsdGVycyBhbGwgdGhlIGV0aGVyZXVtIHRyYW5zYWN0aW9ucy4oZWxhc3RpY2l0eQBRBgSIIFJldHVybiB0aGUgZWxhc3RpY2l0eSBtdWx0aXBsaWVyLnBnYXNfbGltaXRfbXVsdGlwbGllcl9zdXBwb3J0AJAIdQEgVXNlZCB0byBkZXRlcm1pbmUgaWYgZ2FzIGxpbWl0IG11bHRpcGxpZXIgZm9yIG5vbi10cmFuc2FjdGlvbmFsIGNhbGxzIChldGhfY2FsbC9lc3RpbWF0ZUdhcyk4IGlzIHN1cHBvcnRlZC40cGVuZGluZ19ibG9jawQMeHRzMQzhDARoIFJldHVybiB0aGUgcGVuZGluZyBibG9jay5gaW5pdGlhbGl6ZV9wZW5kaW5nX2Jsb2NrBBhoZWFkZXIlDJAEdCBpbml0aWFsaXplIHRoZSBwZW5kaW5nIGJsb2NrBMAgQVBJIG5lY2Vzc2FyeSBmb3IgRXRoZXJldW0tY29tcGF0aWJpbGl0eSBsYXllci5wQ29udmVydFRyYW5zYWN0aW9uUnVudGltZUFwaQRMY29udmVydF90cmFuc2FjdGlvbgQsdHJhbnNhY3Rpb24VBikMAAA4RXZtQWNjb3VudHNBcGkMLGV2bV9hZGRyZXNzBChhY2NvdW50X2lkAA0CBMAgZ2V0IHRoZSBFVk0gYWRkcmVzcyBmcm9tIHRoZSBzdWJzdHJhdGUgYWRkcmVzcy5AYm91bmRfYWNjb3VudF9pZAQsZXZtX2FkZHJlc3MNAgEBBFUBIFJldHVybiB0aGUgU3Vic3RyYXRlIGFkZHJlc3MgYm91bmQgdG8gdGhlIEVWTSBhY2NvdW50LiBJZiBub3QgYm91bmQsIHJldHVybnMgYE5vbmVgLihhY2NvdW50X2lkBCxldm1fYWRkcmVzcw0CAAjAIEdldCB0aGUgU3Vic3RyYXRlIGFkZHJlc3MgZnJvbSB0aGUgRVZNIGFkZHJlc3MuJQEgUmV0dXJucyB0aGUgdHJ1bmNhdGVkIHZlcnNpb24gb2YgdGhlIGFkZHJlc3MgaWYgdGhlIGFkZHJlc3Mgd2Fzbid0IGJpbmQuBKggVGhlIEFQSSB0byBxdWVyeSBFVk0gYWNjb3VudCBjb252ZXJzaW9ucy40WGNtUGF5bWVudEFwaRB8cXVlcnlfYWNjZXB0YWJsZV9wYXltZW50X2Fzc2V0cwQseGNtX3ZlcnNpb24Q5QwUtCBSZXR1cm5zIGEgbGlzdCBvZiBhY2NlcHRhYmxlIHBheW1lbnQgYXNzZXRzLgAwICMgQXJndW1lbnRzAGggKiBgeGNtX3ZlcnNpb25gOiBWZXJzaW9uLkBxdWVyeV94Y21fd2VpZ2h0BBxtZXNzYWdllQbxDBSoIFJldHVybnMgYSB3ZWlnaHQgbmVlZGVkIHRvIGV4ZWN1dGUgYSBYQ00uADAgIyBBcmd1bWVudHMAdCAqIGBtZXNzYWdlYDogYFZlcnNpb25lZFhjbWAuZHF1ZXJ5X3dlaWdodF90b19hc3NldF9mZWUIGHdlaWdodCgUYXNzZXQpB/UMGOggQ29udmVydHMgYSB3ZWlnaHQgaW50byBhIGZlZSBmb3IgdGhlIHNwZWNpZmllZCBgQXNzZXRJZGAuADAgIyBBcmd1bWVudHMAiCAqIGB3ZWlnaHRgOiBjb252ZXJ0aWJsZSBgV2VpZ2h0YC58ICogYGFzc2V0YDogYFZlcnNpb25lZEFzc2V0SWRgLkxxdWVyeV9kZWxpdmVyeV9mZWVzCCxkZXN0aW5hdGlvbm0DHG1lc3NhZ2WVBvkMIB0BIEdldCBkZWxpdmVyeSBmZWVzIGZvciBzZW5kaW5nIGEgc3BlY2lmaWMgYG1lc3NhZ2VgIHRvIGEgYGRlc3RpbmF0aW9uYC70IFRoZXNlIGFsd2F5cyBjb21lIGluIGEgc3BlY2lmaWMgYXNzZXQsIGRlZmluZWQgYnkgdGhlIGNoYWluLgAwICMgQXJndW1lbnRzgQEgKiBgbWVzc2FnZWA6IFRoZSBtZXNzYWdlIHRoYXQnbGwgYmUgc2VudCwgbmVjZXNzYXJ5IGJlY2F1c2UgbW9zdCBkZWxpdmVyeSBmZWVzIGFyZSBiYXNlZCBvbiB0aGVcICAgc2l6ZSBvZiB0aGUgbWVzc2FnZS5hASAqIGBkZXN0aW5hdGlvbmA6IFRoZSBkZXN0aW5hdGlvbiB0byBzZW5kIHRoZSBtZXNzYWdlIHRvLiBEaWZmZXJlbnQgZGVzdGluYXRpb25zIG1heSB1c2XAICAgZGlmZmVyZW50IHNlbmRlcnMgdGhhdCBjaGFyZ2UgZGlmZmVyZW50IGZlZXMuLHAgQSB0cmFpdCBvZiBYQ00gcGF5bWVudCBBUEkuAKggQVBJIHByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkgZm9yIG9idGFpbmluZzoAxCAqIHRoZSB3ZWlnaHQgcmVxdWlyZWQgdG8gZXhlY3V0ZSBhbiBYQ00gbWVzc2FnZSwFASAqIGEgbGlzdCBvZiBhY2NlcHRhYmxlIGBBc3NldElkYHMgZm9yIG1lc3NhZ2UgZXhlY3V0aW9uIHBheW1lbnQsAQEgKiB0aGUgY29zdCBvZiB0aGUgd2VpZ2h0IGluIHRoZSBzcGVjaWZpZWQgYWNjZXB0YWJsZSBgQXNzZXRJZGAuoCAqIHRoZSBmZWVzIGZvciBhbiBYQ00gbWVzc2FnZSBkZWxpdmVyeS4A8CBUbyBkZXRlcm1pbmUgdGhlIGV4ZWN1dGlvbiB3ZWlnaHQgb2YgdGhlIGNhbGxzIHJlcXVpcmVkIGZvcnUBIFtgeGNtOjpsYXRlc3Q6Okluc3RydWN0aW9uOjpUcmFuc2FjdGBdIGluc3RydWN0aW9uLCBgVHJhbnNhY3Rpb25QYXltZW50Q2FsbEFwaWAgY2FuIGJlIHVzZWQuOEdlbmVzaXNCdWlsZGVyDCxidWlsZF9zdGF0ZQQQanNvbjj9DCRlASBCdWlsZCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZyb20gYSBKU09OIGJsb2Igbm90IHVzaW5nIGFueSBkZWZhdWx0cyBhbmQgc3RvcmUgaXQgaW4gdGhlJCBzdG9yYWdlLgD5ASBJbiB0aGUgY2FzZSBvZiBhIEZSQU1FLWJhc2VkIHJ1bnRpbWUsIHRoaXMgZnVuY3Rpb24gZGVzZXJpYWxpemVzIHRoZSBmdWxsIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgZnJvbSB0aGUgZ2l2ZW4gSlNPTiBibG9iIGFuZFkBIHB1dHMgaXQgaW50byB0aGUgc3RvcmFnZS4gSWYgdGhlIHByb3ZpZGVkIEpTT04gYmxvYiBpcyBpbmNvcnJlY3Qgb3IgaW5jb21wbGV0ZSBvciB0aGW0IGRlc2VyaWFsaXphdGlvbiBmYWlscywgYW4gZXJyb3IgaXMgcmV0dXJuZWQuAF0BIFBsZWFzZSBub3RlIHRoYXQgcHJvdmlkZWQgSlNPTiBibG9iIG11c3QgY29udGFpbiBhbGwgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBmaWVsZHMsIG5vXCBkZWZhdWx0cyB3aWxsIGJlIHVzZWQuKGdldF9wcmVzZXQECGlkAQ39CjhhASBSZXR1cm5zIGEgSlNPTiBibG9iIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBidWlsdC1pbiBgUnVudGltZUdlbmVzaXNDb25maWdgIGlkZW50aWZpZWQgYnkYIGBpZGAuAD0BIElmIGBpZGAgaXMgYE5vbmVgIHRoZSBmdW5jdGlvbiByZXR1cm5zIEpTT04gYmxvYiByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGVmYXVsdEkBIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2Agc3RydWN0IG9mIHRoZSBydW50aW1lLiBJbXBsZW1lbnRhdGlvbiBtdXN0IHByb3ZpZGUgZGVmYXVsdGAgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYC4AIQEgT3RoZXJ3aXNlIGZ1bmN0aW9uIHJldHVybnMgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBidWlsdC1pbiwgbmFtZWRRASBgUnVudGltZUdlbmVzaXNDb25maWdgIHByZXNldCBpZGVudGlmaWVkIGJ5IGBpZGAsIG9yIGBOb25lYCBpZiBzdWNoIHByZXNldCBkb2VzIG5vdGUBIGV4aXN0cy4gUmV0dXJuZWQgYFZlYzx1OD5gIGNvbnRhaW5zIGJ5dGVzIG9mIEpTT04gYmxvYiAocGF0Y2gpIHdoaWNoIGNvbXByaXNlcyBhIGxpc3Qgb2ZNASAocG90ZW50aWFsbHkgbmVzdGVkKSBrZXktdmFsdWUgcGFpcnMgdGhhdCBhcmUgaW50ZW5kZWQgZm9yIGN1c3RvbWl6aW5nIHRoZSBkZWZhdWx0ZQEgcnVudGltZSBnZW5lc2lzIGNvbmZpZy4gVGhlIHBhdGNoIHNoYWxsIGJlIG1lcmdlZCAocmZjNzM4Nikgd2l0aCB0aGUgSlNPTiByZXByZXNlbnRhdGlvbmEBIG9mIHRoZSBkZWZhdWx0IGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgdG8gY3JlYXRlIGEgY29tcHJlaGVuc2l2ZSBnZW5lc2lzIGNvbmZpZyB0aGF0IGNhboQgYmUgdXNlZCBpbiBgYnVpbGRfc3RhdGVgIG1ldGhvZC4wcHJlc2V0X25hbWVzAAUNEFEBIFJldHVybnMgYSBsaXN0IG9mIGlkZW50aWZpZXJzIGZvciBhdmFpbGFibGUgYnVpbHRpbiBgUnVudGltZUdlbmVzaXNDb25maWdgIHByZXNldHMuAGEBIFRoZSBwcmVzZXRzIGZyb20gdGhlIGxpc3QgY2FuIGJlIHF1ZXJpZWQgd2l0aCBbYEdlbmVzaXNCdWlsZGVyOjpnZXRfcHJlc2V0YF0gbWV0aG9kLiBJZgEBIG5vIG5hbWVkIHByZXNldHMgYXJlIHByb3ZpZGVkIGJ5IHRoZSBydW50aW1lIHRoZSBsaXN0IGlzIGVtcHR5LgToIEFQSSB0byBpbnRlcmFjdCB3aXRoIFJ1bnRpbWVHZW5lc2lzQ29uZmlnIGZvciB0aGUgcnVudGltZX0EVAkNAA==",G=A;export{G as default};
|