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Rm9yIG90aGVyIG5vbi1QT1NJWCBwbGF0Zm9ybXMsIGN1cnJlbnRseSBqdXN0IHJldHVybnMgJ3N5cy5wbGF0Zm9ybScuCgogICAg2gJudNoFYW1kNjT6CXdpbi1hbWQ2NHoFKGFybSn6CXdpbi1hcm0zMnoHKGFybTY0KfoJd2luLWFybTY02hVfUFlUSE9OX0hPU1RfUExBVEZPUk3aBXBvc2l42gV1bmFtZfoBL9oA+gEg2gFf+gEtTukFAAAA2gVsaW51eHoFJXMtJXPaBXN1bm9zcgEAAADaATXaB3NvbGFyaXN6BSVkLiVz6QMAAADpAgAAANoFMzJiaXTaBTY0Yml0KQJp////f2wFAAAA/3//f/9//38HAHoDLiVz2gNhaXhyBwAAACkB2gxhaXhfcGxhdGZvcm3pBgAAANoGY3lnd2luegZbXGQuXSvaBmRhcndpbnoIJXMtJXMtJXMpGNoCb3PaBG5hbWXaA3N5c9oHdmVyc2lvbtoFbG93ZXLaCHBsYXRmb3Jt2gdlbnZpcm9u2gdoYXNhdHRychAAAADaB3JlcGxhY2XaA2ludNoHbWF4c2l6ZdoKcHkzOGNvbXBhdHIgAAAA2gJyZdoHY29tcGlsZdoFQVNDSUnaBW1hdGNo2gVncm91cNoMX29zeF9zdXBwb3J02hNkaXN0dXRpbHMuc3lzY29uZmln2hBnZXRfcGxhdGZvcm1fb3N42glzeXNjb25maWfaD2dldF9jb25maWdfdmFycykL2gZvc25hbWXaBGhvc3TaB3JlbGVhc2VyJwAAANoHbWFjaGluZdoHYml0bmVzc3IgAAAA2gZyZWxfcmXaAW1yNQAAANoJZGlzdHV0aWxzqQByQgAAAPplL3Jvb3QvZ2YxODAtZGVtby9jYXJhdmVsX3VzZXJfcHJvamVjdC92ZW52L2xpYi9weXRob24zLjEwL3NpdGUtcGFja2FnZXMvc2V0dXB0b29scy9fZGlzdHV0aWxzL3V0aWwucHnaEWdldF9ob3N0X3BsYXRmb3JtFAAAAHNUAAAAChQOAQQBDgEEAQ4BBAEGAQoDCgEUAgYDEgQQBAwBDAEQAgwEEAEMAQQBIAEKBBIBAoAQAgwBDAEQAQQBDgEKAQQBCAECgBABEAEEAQgBBgEK/g4EckQAAABjAAAAAAAAAAAAAAAAAQAAAAUA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YW55IGZpbGVzIHRoYXQgZG9uJ3QgZW5kIGluICIucHkiIGFyZSBzaWxlbnRseQogICAgc2tpcHBlZC4gICdvcHRpbWl6ZScgbXVzdCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKICAgICAgMCAtIGRvbid0IG9wdGltaXplCiAgICAgIDEgLSBub3JtYWwgb3B0aW1pemF0aW9uIChsaWtlICJweXRob24gLU8iKQogICAgICAyIC0gZXh0cmEgb3B0aW1pemF0aW9uIChsaWtlICJweXRob24gLU9PIikKICAgIElmICdmb3JjZScgaXMgdHJ1ZSwgYWxsIGZpbGVzIGFyZSByZWNvbXBpbGVkIHJlZ2FyZGxlc3Mgb2YKICAgIHRpbWVzdGFtcHMuCgogICAgVGhlIHNvdXJjZSBmaWxlbmFtZSBlbmNvZGVkIGluIGVhY2ggYnl0ZWNvZGUgZmlsZSBkZWZhdWx0cyB0byB0aGUKICAgIGZpbGVuYW1lcyBsaXN0ZWQgaW4gJ3B5X2ZpbGVzJzsgeW91IGNhbiBtb2RpZnkgdGhlc2Ugd2l0aCAncHJlZml4JyBhbmQKICAgICdiYXNlZGlyJy4gICdwcmVmaXgnIGlzIGEgc3RyaW5nIHRoYXQgd2lsbCBiZSBzdHJpcHBlZCBvZmYgb2YgZWFjaAogICAgc291cmNlIGZpbGVuYW1lLCBhbmQgJ2Jhc2VfZGlyJyBpcyBhIGRpcmVjdG9yeSBuYW1lIHRoYXQgd2lsbCBiZQogICAgcHJlcGVuZGVkIChhZnRlciAncHJlZml4JyBpcyBzdHJpcHBlZCkuICBZb3UgY2FuIHN1cHBseSBlaXRoZXIgb3IgYm90aAogICAgKG9yIG5laXRoZXIpIG9mICdwcmVmaXgnIGFuZCAnYmFzZV9kaXInLCBhcyB5b3Ugd2lzaC4KCiAgICBJZiAnZHJ5X3J1bicgaXMgdHJ1ZSwgZG9lc24ndCBhY3R1YWxseSBkbyBhbnl0aGluZyB0aGF0IHdvdWxkCiAgICBhZmZlY3QgdGhlIGZpbGVzeXN0ZW0uCgogICAgQnl0ZS1jb21waWxhdGlvbiBpcyBlaXRoZXIgZG9uZSBkaXJlY3RseSBpbiB0aGlzIGludGVycHJldGVyIHByb2Nlc3MKICAgIHdpdGggdGhlIHN0YW5kYXJkIHB5X2NvbXBpbGUgbW9kdWxlLCBvciBpbmRpcmVjdGx5IGJ5IHdyaXRpbmcgYQogICAgdGVtcG9yYXJ5IHNjcmlwdCBhbmQgZXhlY3V0aW5nIGl0LiAgTm9ybWFsbHksIHlvdSBzaG91bGQgbGV0CiAgICAnYnl0ZV9jb21waWxlKCknIGZpZ3VyZSBvdXQgdG8gdXNlIGRpcmVjdCBjb21waWxhdGlvbiBvciBub3QgKHNlZQogICAgdGhlIHNvdXJjZSBmb3IgZGV0YWlscykuICBUaGUgJ2RpcmVjdCcgZmxhZyBpcyB1c2VkIGJ5IHRoZSBzY3JpcHQKICAgIGdlbmVyYXRlZCBpbiBpbmRpcmVjdCBtb2RlOyB1bmxlc3MgeW91IGtub3cgd2hhdCB5b3UncmUgZG9pbmcsIGxlYXZlCiAgICBpdCBzZXQgdG8gTm9uZS4KICAgIHIBAAAATnobYnl0ZS1jb21waWxpbmcgaXMgZGlzYWJsZWQuVCkB2gdta3N0ZW1wegMucHkpAdoGbWt0ZW1weiR3cml0aW5nIGJ5dGUtY29tcGlsYXRpb24gc2NyaXB0ICclcyfaAXd6MmZyb20gZGlzdHV0aWxzLnV0aWwgaW1wb3J0IGJ5dGVfY29tcGlsZQpmaWxlcyA9IFsKegIsCnoCXQp6jApieXRlX2NvbXBpbGUoZmlsZXMsIG9wdGltaXplPSVyLCBmb3JjZT0lciwKICAgICAgICAgICAgIHByZWZpeD0lciwgYmFzZV9kaXI9JXIsCiAgICAgICAgICAgICB2ZXJib3NlPSVyLCBkcnlfcnVuPTAsCiAgICAgICAgICAgICBkaXJlY3Q9MSkKKQFysAAAAHoLcmVtb3ZpbmcgJXMpAXIxAAAA6f3///9yEgAAACkB2gxvcHRpbWl6YXRpb256MWludmFsaWQgcHJlZml4OiBmaWxlbmFtZSAlciBkb2Vzbid0IHN0YXJ0IHdpdGggJXJ6F2J5dGUtY29tcGlsaW5nICVzIHRvICVzeiVza2lwcGluZyBieXRlLWNvbXBpbGF0aW9uIG9mICVzIHRvICVzKSPaCnN1YnByb2Nlc3NyJgAAANoTZG9udF93cml0ZV9ieXRlY29kZXIGAAAA2gh0ZW1wZmlsZXK/AAAAcngAAABywAAAAHIFAAAAcqsAAAByJAAAANoGZmRvcGVu2gRvcGVu2gV3cml0ZXJoAAAA2gNtYXDaBHJlcHLaCmV4ZWN1dGFibGXaBmV4dGVuZHIIAAAAcqAAAAByBAAAAHKxAAAAcmUAAADaCnB5X2NvbXBpbGVyMQAAANoJaW1wb3J0bGli2gR1dGls2hFjYWNoZV9mcm9tX3NvdXJjZXKfAAAAcmQAAAByZwAAANoIYmFzZW5hbWVyAwAAANoFZGVidWcpFdoIcHlfZmlsZXPaCG9wdGltaXpl2gVmb3JjZXKTAAAA2ghiYXNlX2RpcnKvAAAAcrAAAADaBmRpcmVjdHLEAAAAcr8AAADaCXNjcmlwdF9mZNoLc2NyaXB0X25hbWVywAAAANoGc2NyaXB02gNjbWRyMQAAANoEZmlsZdoDb3B02gVjZmlsZdoFZGZpbGXaCmNmaWxlX2Jhc2VyQgAAAHJCAAAAckMAAADaDGJ5dGVfY29tcGlsZYkBAABzfgAAAAgkBgMIAQgMCAEEBAIBDAEQAQwBDAESAQL+DAMEAQgBDgEKAgYCCgEaEwYBDAUI+xzrCBwMAQoBDAEQAQIBCv8MCAgCEAECAwgFEAEGAQQBCP8MAwQBBAEUAQQBBgEG/xACBAEOAQwCBgESAQ4BBgEMAQKABgIEAQT/AoAE4XLiAAAAYwEAAAAAAAAAAAAAAAMAAAADAAAAQwAAAHMYAAAAfACgAGQBoQF9AWQCfQJ8AqABfAGhAVMAKQN6jFJldHVybiBhIHZlcnNpb24gb2YgdGhlIHN0cmluZyBlc2NhcGVkIGZvciBpbmNsdXNpb24gaW4gYW4KICAgIFJGQy04MjIgaGVhZGVyLCBieSBlbnN1cmluZyB0aGVyZSBhcmUgOCBzcGFjZXMgc3BhY2UgYWZ0ZXIgZWFjaCBuZXdsaW5lLgogICAg2gEKegkKICAgICAgICApAnJgAAAAcmgAAAApA9oGaGVhZGVy2gVsaW5lc3JjAAAAckIAAAByQgAAAHJDAAAA2g1yZmM4MjJfZXNjYXBlHgIAAHMGAAAACgQEAQoBcuYAAAApAXKRAAAAKQNOcgEAAAByAQAAACkHcgEAAAByAQAAAE5OcgcAAAByAQAAAE4pK9oHX19kb2NfX3IkAAAAcjAAAADaDmltcG9ydGxpYi51dGlscs8AAABylQAAAHImAAAA2hBkaXN0dXRpbHMuZXJyb3JzcgIAAADaEmRpc3R1dGlscy5kZXBfdXRpbHIDAAAA2g9kaXN0dXRpbHMuc3Bhd25yBAAAAHJBAAAAcgUAAAByBgAAANoKcHkzNWNvbXBhdHIIAAAAckQAAAByTQAAAHIpAAAAck8AAAByUgAAAHJQAAAAclQAAAByWwAAAHJXAAAAcmsAAABycQAAAHJ0AAAAcnoAAAByiAAAAHKDAAAAcpQAAABylwAAAHKYAAAAcpkAAABymgAAAHKnAAAAcrEAAAByvgAAAHLiAAAAcuYAAAByQgAAAHJCAAAAckIAAAByQwAAANoIPG1vZHVsZT4BAAAAc1AAAAAEAAgGCAEIAQgBCAEMAQwBDAEMAQwBDAEIAwhQCg0EAQQBCAIIBQgLCBwIBQgcBBYIAQgbCBUKEQwICAEIBgo9CBMCEQIBAgECAQr8AH8MFg==