IwojICAgUGFydHMgb2YgdGhlIGRldmVsb3BtZW50IGVmZm9ydCBmb3IgdGhpcyBwcm9qZWN0IGhhdmUgYmVlbgojICAgc3BvbnNvcmVkIGJ5IFNJRU1FTlMgQUcsIEF1c3RyaWEuIFRoYW5rcyB0byBTSUVNRU5TIGZvcgojICAgc3VwcG9ydGluZyBhbiBPcGVuIFNvdXJjZSBwcm9qZWN0IQojCiMKIyAgIFRoaXMgaXMgYXQgbGVhc3QgYSBwYXJ0aWFsIGNyZWRpdHMtZmlsZSBvZiBpbmRpdmlkdWFsIHBlb3BsZSB0aGF0CiMgICBoYXZlIGNvbnRyaWJ1dGVkIHRvIHRoZSBiYXJlYm94IHByb2plY3QuIEl0IGlzIHNvcnRlZCBieSBuYW1lIGFuZAojICAgZm9ybWF0dGVkIHRvIGFsbG93IGVhc3kgZ3JlcHBpbmcgYW5kIGJlYXV0aWZpY2F0aW9uIGJ5IHNjcmlwdHMuCiMgICBUaGUgZmllbGRzIGFyZTogbmFtZSAoTiksIGVtYWlsIChFKSwgd2ViLWFkZHJlc3MgKFcpLCBQR1Aga2V5IElECiMgICBhbmQgZmluZ2VycHJpbnQgKFApLCBkZXNjcmlwdGlvbiAoRCksIGFuZCBzbmFpbC1tYWlsIGFkZHJlc3MgKFMpLgojICAgVGhhbmtzLAojCiMgICAgICAgICAgICAgICAgICAgICAgIFdvbGZnYW5nIERlbmsKIy0tLS0tLS0tLS0KCk46IERyLiBCcnVubyBBY2hhdWVyCkU6IGJydW5vQGV4ZXQtYWcuZGUKRDogU3VwcG9ydCBmb3IgTmV0QlNEIChib3RoIGFzIGhvc3QgYW5kIHRhcmdldCBzeXN0ZW0pCgpOOiBHdWlsbGF1bWUgQWxleGFuZHJlCkU6IGd1aWxsYXVtZS5hbGV4YW5kcmVAZ2VzcGFjLmNoCkQ6IEFkZCBQQ0lQUEM2IGNvbmZpZ3VyYXRpb24KCk46IFN3ZW4gQW5kZXJzb24KRTogc2FuZEBwZXBwZXJjb24uZGUKRDogRVJJQyBTdXBwb3J0CgpOOiBQYW50ZWxpcyBBbnRvbmlvdQpFOiBwYW50b0BpbnRyYWNvbS5ncgpEOiBORVRWSUEgJiBORVRQSE9ORSBib2FyZCBzdXBwb3J0LCBBUlRPUyBzdXBwb3J0LgpEOiBTdXBwb3J0IGZvciBTaWxpY29uIFR1cm5rZXkgZVhwcmVzcyBYVGMKCk46IFBpZXJyZSBBdWJlcnQKRTogPHAuYXViZXJ0QHN0YXVibGkuY29tPgpEOiBTdXBwb3J0IGZvciBSUFhDbGFzc2ljIGJvYXJkCgpOOiBZdWxpIEJhcmNvaGVuCkU6IHl1bGlAYXJhYmVsbGFzdy5jb20KRDogVW5pZmllZCBzdXBwb3J0IGZvciBNb3Rvcm9sYSBNUEM4MjZ4QURTL01QQzgyNzJBRFMvUFEyRkFEUyBib2FyZHMuCkQ6IFN1cHBvcnQgZm9yIFplcGh5ciBFbmdpbmVlcmluZyBaUEMuMTkwMCBib2FyZC4KRDogU3VwcG9ydCBmb3IgSW50ZXJwaGFzZSBpU1BBTiBib2FyZHMuCkQ6IFN1cHBvcnQgZm9yIEFuYWxvZ3VlJk1pY3JvIEFkZGVyIGJvYXJkcy4KRDogU3VwcG9ydCBmb3IgQW5hbG9ndWUmTWljcm8gUmF0dGxlciBib2FyZHMuClc6IGh0dHA6Ly93d3cuYXJhYmVsbGFzdy5jb20KCk46IEplcnJ5IHZhbiBCYXJlbgpFOiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRDogQmVkQnVnIHBvcnQgdG8gNjAzZSBjb3JlIChNUEM4Mnh4KS4gQ29kZSBmb3IgZW5oYW5jZWQgbWVtb3J5IHRlc3QuCgpOOiBQYXZlbCBCYXJ0dXNlawpFOiA8cGJhQHN5c2dvLmNvbT4KRDogUmVpc2VyZnMgc3VwcG9ydApXOiBodHRwOi8vd3d3LmVsaW5vcy5jb20KCk46IEFuZHJlIEJlYXVkaW4KRTogPGFuZHJlLmJlYXVkaW5AY29sdWJyaXMuY29tPgpEOiBQQ01DSUEsIEV0aGVybmV0LCBURlRQCgpOOiBKb24gQmVuZWRpa3Rzc29uCkU6IGpvbmJAbWFyZWwuaXMKRDogU3VwcG9ydCBmb3IgTWFyZWwgVjM3IGJvYXJkCgpOOiBSYXBoYWVsIEJvc3NlawpFOiByYXBoYWVsLmJvc3Nla0Bzb2x1dGlvbnM0bGludXguZGUKRDogOHh4cm9tLTAuMy4wCgpOOiBDbGlmZiBCcmFrZQpFOiBjbGlmZi5icmFrZUBnbWFpbC5jb20KRDogUG9ydCB0byBWaWJyZW4gUFhBMjU1IElEUCBwbGF0Zm9ybQpXOiBodHRwOi8vd3d3LnZpYnJlbi5jb20KVzogaHR0cDovL2JlYy1zeXN0ZW1zLmNvbQoKTjogUmljayBCcm9uc29uCkU6IHJpY2tAZWZuLm9yZwpEOiBBdG1lbCBBVDkxUk05MjAwREsgYW5kIE5BTkQgc3VwcG9ydAoKTjogRGF2aWQgQnJvd24KRTogREJyb3duMDNAaGFycmlzLmNvbQpEOiBFeHRlbnNpb25zIHRvIDh4eHJvbS0wLjMuMAoKTjogT2xpdmVyIEJyb3duCkU6IG9icm93bkBhZHZlbnRuZXR3b3Jrcy5jb20KRDogUG9ydCB0byB0aGUgZ3c4MjYwIGJvYXJkCgpOOiBDdXJ0IEJydW5lCkU6IGN1cnRAY3VjeS5jb20KRDogQWRkZWQgc3VwcG9ydCBmb3IgU2Ftc3VuZyBTM0M0NTEwQiBDUFUgKEFSTTd0ZG1pIGJhc2VkIFNvQykKRDogQWRkZWQgc3VwcG9ydCBmb3IgRVNQRC1JbmMuIEVWQjQ1MTAgQm9hcmQKVzogaHR0cDovL3d3dy5jdWN5LmNvbQoKTjogSm9uYXRoYW4gRGUgQnJ1eW5lCkU6IGpvbmF0aGFuLmRlYnJ1eW5lQHNpZW1lbnMuYXRlYS5iZQpEOiBQb3J0IHRvIFNpZW1lbnMgSUFEMjEwIGJvYXJkCgpOOiBLZW4gQ2hvdQpFOiBrY2hvdUBpZWVlLm9yZwpEOiBTdXBwb3J0IGZvciBBMzAwMCBTQkMgYm9hcmQKCk46IENvbm4gQ2xhcmsKRTogY2xhcmtAZXN0ZWVtLmNvbQpEOiBFU1RFRU0xOTJFIHN1cHBvcnQKCk46IE1hZ251cyBEYW1tCkU6IGRhbW1Ab3BlbnNvdXJjZS5zZQpEOiA4eHhyb20KCk46IFJpY2hhcmQgRGFudGVyCkU6IHJpY2hhcmQuZGFudGVyQHdpbmRyaXZlci5jb20KRDogU3VwcG9ydCBmb3IgV2luZCBSaXZlciBQUE1DIDd4eC83NHh4IGJvYXJkcwoKTjogR2VvcmdlIEcuIERhdmlzCkU6IGdkYXZpc0BtdmlzdGEuY29tCkQ6IEJvYXJkIHBvcnRzIGZvciBBRFMgR3JhcGhpY3NDbGllbnQrIGFuZCBJbnRlbCBBc3NhYmV0CgpOOiBBcnVuIERoYXJhbmthcgpFOiBBRGhhcmFua2FyQEFUVEJJLkNvbQpEOiB0aHJlYWRzIC8gc2NoZWR1bGVyIGV4YW1wbGUgY29kZQoKTjogS+FyaSBEYXbt8HNzb24KRToga2RAZmxhZ2EuaXMKRDogRkxBR0EgRE0gU3VwcG9ydAoKTjogV29sZmdhbmcgRGVuawpFOiB3ZEBkZW54LmRlCkQ6IGJhcmVib3ggaW5pdGlhbCB2ZXJzaW9uLCBjb250aW51aW5nIG1haW50ZW5hbmNlLCBBUk1Cb290IG1lcmdlClc6IGh0dHA6Ly93d3cuZGVueC5kZQoKTjogRGFuIEEuIERpY2tleQpFOiBkZGlja2V5QGNoYXJ0ZXIubmV0CkQ6IEZBRFMgU3VwcG9ydAoKTjogSmFtZXMgRi4gRG91Z2hlcnR5CkU6IGpmZEBHaWdhYml0TmV0d29ya3MuQ09NCkQ6IFBvcnQgdG8gdGhlIE1PVVNTRSBib2FyZAoKTjogRGF2ZSBFbGxpcwpFOiBER0VAc2l4bmV0aW8uY29tCkQ6IEVFUFJPTSBTcGVlZHVwLCBTWE5JODU1VCBwb3J0CgpOOiBUaG9tYXMgRWxzdGUKRTogaW5mb0BlbHN0ZS5vcmcKRDogUG9ydCBmb3IgdGhlIE1vZE5FVDUwIEJvYXJkLCBORVQrNTAgQ1BVIFBvcnQKVzogaHR0cDovL3d3dy5pbW1zLmRlCgpOOiBEYW5pZWwgRW5nc3Ry9m0KRTogZGFuaWVsQG9taWNyb24uc2UKRDogeDg2IHBvcnQsIFN1cHBvcnQgZm9yIHNjNTIwX2NkcCBib2FyZAoKTjogRHIuIFdvbGZnYW5nIEdyYW5kZWdnZXIKRTogd2dAZGVueC5kZQpEOiBTdXBwb3J0IGZvciBJbnRlcnBoYXNlIDQ1MzkgVDEvRTEvSjEgUE1DLCBQTjYyLCBDQ00sIFNDTSBib2FyZHMKVzogd3d3LmRlbnguZGUKCk46IFBldGVyIEZpZ3VsaQpFOiBwZXBvc2hAZXRjLnNrCkQ6IFN1cHBvcnQgZm9yIFdFUCBFUDI1MCAoUFhBKSBib2FyZAoKTjogVGhvbWFzIEZyaWVkZW4KRTogVGhvbWFzRkBoeXBlcmlvbi1lbnRlcnRhaW5tZW50LmNvbQpEOiBTdXBwb3J0IGZvciBBbWlnYU9uZQoKTjogRnJhbmsgR290dHNjaGxpbmcKRTogZmdvdHRzY2hsaW5nQGVsdGVjLmRlCkQ6IFN1cHBvcnQgZm9yIEVMVEVDIE1IUEMvQkFCN3h4L0VMUFBDIGJvYXJkcywgY2ZiLWNvbnNvbGUsIGk4MDQyLCBTTUkgTHlueEVNClc6IHd3dy5lbHRlYy5kZQoKTjogTWFyaXVzIEdyb2VnZXIKRTogbWdyb2VnZXJAc3lzZ28uZGUKRDogTUJYIFN1cHBvcnQsIGJvYXJkIHNwZWNpZmljIGZ1bmN0aW9uIGludGVyZmFjZSwgRVNUIFNCQzgyNjAgc3VwcG9ydDsgaW5pdGlhbCBzdXBwb3J0IGZvciBTdHJvbmdBUk0gKExBUlQpLCBBUk03MjBURE1JIChpbXBsZW1lbnRhIEE3KQpXOiB3d3cuZWxpbm9zLmNvbQoKTjogS2lyayBIYWRlcmxpZQpFOiBraGFkZXJsaWVAdml2aWRpbWFnZS5jb20KRDogQWRkZWQgVEZUUCB0byA4eHhyb20gKC0+IDAuMy4xKQoKTjogQ2hyaXMgSGFsbGluYW4KRTogY2xoQG5ldDFwbHVzLmNvbQpEOiBESENQIFN1cHBvcnQKCk46IEFubmUtU29waGllIEhhcm5vaXMKRTogQW5uZS1Tb3BoaWUuSGFybm9pc0BuZXh0cmVhbS5mcgpEOiBQb3J0IHRvIFdhbG51dDQwNSBib2FyZAoKTjogQW5kcmVhcyBIZXBwZWwKRTogYWhlcHBlbEBzeXNnby5kZQpEOiBDUFUgU3VwcG9ydCBmb3IgTVBDIDc1eDsgYm9hcmQgc3VwcG9ydCBmb3IgRWx0ZWMgQkFCNzUwIFtvYnNvbGV0ZSFdCgpOOiBBdWd1c3QgSG9lcmFlbmRsCkU6IGF1Z3VzdC5ob2VyYW5kbEBnbXguYXQKRDogU3VwcG9ydCBmb3IgdGhlIGxvZ29kbCBib2FyZCAoUFhBMnh4KQoKTjogSm9zaCBIdWJlcgpFOiBodWJlckBhbHVtLndwaS5lZHUKRDogUG9ydCB0byB0aGUgR2FsaWxlbyBFdmFsdWF0aW9uIEJvYXJkLCBhbmQgdGhlIE1QQzc0eHggY3B1IHNlcmllcy4KVzogaHR0cDovL3d3dy5tY2x4LmNvbS8KCkg6IFN0dWFydCBIdWdoZXMKRTogc3R1YXJ0aEBsaW5lby5jb20KRDogUG9ydCB0byBNUEM4MjYwQURTIGJvYXJkCgpIOiBSaWNoIElyZWxhbmQKRTogci5pcmVsYW5kQGNvbXB1dGVyLm9yZwpEOiBGUEdBIGRldmljZSBjb25maWd1cmF0aW9uIGRyaXZlcgoKTjogR2FyeSBKZW5uZWpvaG4KRTogZ2FyeWpAamVubmVqb2huLm9yZywgZ2pAZGVueC5kZQpEOiBTdXBwb3J0IGZvciBTYW1zdW5nIEFSTTkyMFQgUzNDMjQwMFgsIEFSTTkyMFQgIlRSQUIiClc6IHd3dy5kZW54LmRlCgpOOiBNdXJyYXkgSmVuc2VuCkU6IE11cnJheS5KZW5zZW5AY3Npcm8uYXUKRDogSW5pdGlhbCA4MjYwIHN1cHBvcnQ7IEdEQiBzdXBwb3J0CkQ6IFBvcnQgdG8gQ29nZW50K0h5bW9kIGJvYXJkczsgSHltb2QgQm9hcmQgRGF0YWJhc2UKCk46IFlvby4gSm9uZ2hvb24KRTogeW9vdGhAaXBvbmUuY28ua3IKRDogQWRkZWQgcG9ydCB0byB0aGUgUlBYbGl0ZSBib2FyZAoKTjogTWFyayBKb25hcwpFOiBtYXJrLmpvbmFzQGZyZWVzY2FsZS5jb20KRDogU3VwcG9ydCBmb3IgRnJlZXNjYWxlIFRvdGFsNTIwMCBwbGF0Zm9ybQpXOiBodHRwOi8vd3d3Lm1vYmlsZWd0LmNvbS8KCk46IFNhbSBTb25nCkU6IHNhbXNvbmdzaHVAeWFob28uY29tLmNuCkQ6IFBvcnQgdG8gdGhlIFJQWGxpdGVfRFcgYm9hcmQKCk46IEJyYWQgS2VtcApFOiBCcmFkLktlbXBAc2VyYW5vYS5jb20KRDogUG9ydCB0byBXaW5kcml2ZXIgcHBtYzgyNjAgYm9hcmQKCk46IFNhbmdtb29uIEtpbQpFOiBkb2dvaWxAZXRpbnN5cy5jb20KRDogU3VwcG9ydCBmb3IgZGVicmlzIGJvYXJkCkQ6IFN1cHBvcnQgZm9yIEtWTUUwODAgYm9hcmQKCk46IEZyZWRlcmljayBXLiBLbGF0dApFOiBmcmVkLmtsYXR0QHdpbmRyaXZlci5jb20KRDogU3VwcG9ydCBmb3IgV2luZCBSaXZlciBTQkM4NTQwL1NCQzg1NjAgYm9hcmRzCgpOOiBUaG9tYXMgS29lbGxlcgpFOiB0a29lbGxlckBnbXgubmV0CkQ6IFBvcnQgdG8gTW90b3JvbGEgU2FuZHBvaW50IDMgKE1QQzgyNDApCgpOOiBSYWdodSBLcmlzaG5hcHJhc2FkCkU6IFJhZ2h1LktyaXNobmFwcmFzYWRAZmNpLmNvbQpEOiBTdXBwb3J0IGZvciBBZGRlci1JSSBNUEM4NTJUIGV2YWx1YXRpb24gYm9hcmQKVzogaHR0cDovL3d3dy5mb3JjZWNvbXB1dGVycy5jb20KCk46IEJlcm5oYXJkIEt1aG4KRTogYmt1aG5AbWV0cm93ZXJrcy5jb20KRCBTdXBwb3J0IGZvciBDb2xkZmlyZSBDUFU7IFN1cHBvcnQgZm9yIE1vdG9yb2xhIE01MjcyQzMgYW5kIE01MjgyRVZCIGJvYXJkcwoKTjogUHJha2FzaCBLdW1hcgpFOiBwcmFrYXNoQGVtYmVkeC5jb20KRCAgU3VwcG9ydCBmb3IgSW50cmluc3ljIENFUkYgUFhBMjUwIGJvYXJkLgoKTjogVGhvbWFzIExhbmdlCkU6IHRob21hc0Bjb3JlbGF0dXMuc2UKRDogU3VwcG9ydCBmb3IgR1RILCBHVEgyIGFuZCBkYmF1MXgwMCBib2FyZHM7IGxvdHMgb2YgUENNQ0lBIGZpeGVzCgpOOiBNYXJjIExlZW1hbgpFOiBtYXJjLmxlZW1hbkBiYXJjby5jb20KRDogU3VwcG9ydCBmb3IgQmFyY28gU3RyZWFtaW5nIFZpZGVvIENhcmQgKFNWQykgYW5kIFNhbXBsZSBDb21wcmVzcyBOZXR3b3JrIChTQ04pClc6IHd3dy5iYXJjby5jb20KCk46IFRoZSBMRU9YIHRlYW0KRTogdGVhbUBsZW94Lm9yZwpEOiBTdXBwb3J0IGZvciBMRU9YIGJvYXJkcywgRFMxNjR4IFJUQwpXOiBodHRwOi8vd3d3Lmxlb3gub3JnCgpOOiBMZWlmIExpbmRob2xtCkU6IGxlaWYubGluZGhvbG1AaTNtaWNyby5jb20KRDogU3VwcG9ydCBmb3IgQU1EIGRiYXUxNTUwIGJvYXJkLgoKTjogU3RlcGhhbiBMaW56CkU6IGxpbnpAbGktcHJvLm5ldApEOiBTdXBwb3J0IGZvciBOaW9zIFN0cmF0aXggRGV2ZWxvcG1lbnQgS2l0IChESy0xUzEwKQpEOiBTdXBwb3J0IGZvciBTU1YgQUROUC9FU0MxIChOaW9zIEN5Y2xvbmUpClc6IGh0dHA6Ly93d3cubGktcHJvLm5ldAoKTjogUmF5bW9uZCBMbwpFOiBsb0Byb3V0ZWZyZWUuY29tCkQ6IFN1cHBvcnQgZm9yIERPUyBwYXJ0aXRpb25zCgpOOiBEYW4gTWFsZWsKRTogZGFuQGVtYmVkZGVkYWxsZXkuY29tCkQ6IEZBRFNST00sIHRoZSBncmFuZGZhdGhlciBvZiBhbGwgb2YgdGhpcwpEOiBTdXBwb3J0IGZvciBTaWxpY29uIFR1cm5rZXkgZVhwcmVzcyBYVGMKCk46IEFuZHJlYSAibGxhbmRyZSIgTWFyc29uCkU6IGFuZHJlYS5tYXJzb25AZGF2ZS10ZWNoLml0CkQ6IFBvcnQgdG8gUFBDaGFtZWxlb25FVkIgYm9hcmQKVzogd3d3LmRhdmUtdGVjaC5pdAoKTjogUmVpbmhhcmQgTWV5ZXIKRTogci5tZXllckBlbWstZWxla3Ryb25pay5kZQpEOiBQb3J0IHRvIEVNSyBUT1A4NjAgTW9kdWxlCgpOOiBKYXkgTW9ua21hbgpFOiBqdG1Ac21vb3Roc21vb3RoaWUuY29tCkQ6IEVTVCBTQkM4MjYwIHN1cHBvcnQKCk46IEZyYW5rIE1vcmF1ZgpFOiBmcmFuay5tb3JhdWZAc2FsemJyZW5uZXIuY29tCkQ6IFN1cHBvcnQgZm9yIEVtYmVkZGVkIFBsYW5ldCBSUFggU3VwZXIgQm9hcmQKCk46IERhdmlkIE38bGxlcgpFOiBkLm11ZWxsZXJAZWxzb2Z0LmNoCkQ6IFN1cHBvcnQgZm9yIFNhbXN1bmcgQVJNOTIwVCBTTURLMjQxMCBldmFsIGJvYXJkCgpOOiBTY290dCBNY051dHQKRTogc21jbnV0dEBwc3llbnQuY29tCkQ6IFN1cHBvcnQgZm9yIEFsdGVyYSBOaW9zLTMyIENQVQpEOiBTdXBwb3J0IGZvciBBbHRlcmEgTmlvcy1JSSBDUFUKRDogU3VwcG9ydCBmb3IgTmlvcyBDeWNsb25lIERldmVsb3BtZW50IEtpdCAoREstMUMyMCkKVzogaHR0cDovL3d3dy5wc3llbnQuY29tCgpOOiBSb2xmIE9mZmVybWFubnMKRTogcm9mQHN5c2dvLmRlCkQ6IEluaXRpYWwgc3VwcG9ydCBmb3IgU1NWLUROUDExMTAsIFNNQzkxMTExIGRyaXZlcgpXOiB3d3cuZWxpbm9zLmNvbQoKTjogSm9obiBPdGtlbgpFOiBqb3RrZW5Ac29mdGFkdmFuY2VzLmNvbQpEOiBTdXBwb3J0IGZvciBBTUNDIEx1YW4gNDQwU1AgYm9hcmQKCk46IFRvbHVuYXkgT3JrdW4KRTogdG9ya3VuQG5leHRpby5jb20KRDogU3VwcG9ydCBmb3IgQ29nZW50IENTQjI3MiAmIENTQjQ3MiBib2FyZHMKCk46IEtlaXRoIE91dHdhdGVyCkU6IGtlaXRoX291dHdhdGVyQG12aXMuY29tCkQ6IFN1cHBvcnQgZm9yIGdlbmVyaWMvY3VzdG9tIE1QQzg2MFQgYm9hcmRzIChHRU44NjBULCBHRU44NjBUX1NDKQoKTjogRnJhbmsgUGFubm8KRTogZnBhbm5vQGRlbHBoaW50ZWNoLmNvbQpEOiBTdXBwb3J0IGZvciBFbWJlZGRlZCBQbGFuZXQgRVA4MjYwIEJvYXJkCgpOOiBEZW5pcyBQZXRlcgpFOiBkLnBldGVyQG1wbC5jaApEOiBTdXBwb3J0IGZvciA0eHggU0NTSSwgZmxvcHB5LCBDRFJPTSwgQ1Q2OTAwMCB2aWRlbywgLi4uCkQ6IFN1cHBvcnQgZm9yIFBJUDQwNSBib2FyZApEOiBTdXBwb3J0IGZvciBNSVA0MDUgYm9hcmQKCk46IERhdmUgUGV2ZXJsZXkKRTogZHBldmVybGV5QG1wYy1kYXRhLmNvLnVrClc6IGh0dHA6Ly93d3cubXBjLWRhdGEuY28udWsKRDogT01BUDczMCBQMiBib2FyZCBzdXBwb3J0CgpOOiBCaWxsIFBpdHRzCkU6IHdscEBtaW5kc3ByaW5nLmNvbQpEOiBCZWRCdWcgZW1iZWRkZWQgZGVidWdnZXIgY29kZQoKTjogRGFuaWVsIFBvaXJvdApFOiBkYW4ucG9pcm90QHdpbmRyaXZlci5jb20KRDogU3VwcG9ydCBmb3IgdGhlIFdpbmQgUml2ZXIgc2JjNDA1LCBzYmM4MjQwIGJvYXJkClc6IGh0dHA6Ly93d3cud2luZHJpdmVyLmNvbQoKTjogU3RlZmFuIFJvZXNlCkU6IHN0ZWZhbi5yb2VzZUBlc2QtZWxlY3Ryb25pY3MuY29tCkQ6IEFNQ0MgUFBDNDAxLzQwMy80MDVHUCBTdXBwb3J0OyBXaW5kb3dzIGVudmlyb25tZW50IHN1cHBvcnQKCk46IEVyd2luIFJvbApFOiBlcndpbkBtdWZmaW4ub3JnCkQ6IGJvb3Qgc3VwcG9ydCBmb3IgUlRFTVMKCk46IFBhdWwgUnVobGFuZApFOiBwcnVobGFuZEByb2NoZXN0ZXIucnIuY29tCkQ6IFBvcnQgdG8gTG9naWMgWm9vbSBMSDdBNDB4IFNESyBib2FyZChzKQoKTjogTmVpbCBSdXNzZWxsCkU6IGNhcmV0QGMtc2lkZS5jb20KRDogQXV0aG9yIG9mIExpTW9uLTEuNC4yLCB3aGljaCBjb250cmlidXRlZCBzb21lIGlkZWFzCgpOOiBUcmF2aXMgQi4gU2F3eWVyCkU6IHRyYXZpcy5zYXd5ZXJAc2FuZGJ1cnN0LmNvbQpEOiBTdXBwb3J0IGZvciBBTUNDIFBQQzQ0MEdYLCBYRVMgWFBlZGl0ZTEwMDAgNDQwR1ggUHJQTUMgYm9hcmQuICBBTUNDIDQ0MGd4IFJlZiBQbGF0Zm9ybSAoT2NvdGVhKQoKTjogUGFvbG8gU2NhZmZhcmRpCkU6IGFyc2VuaW9AdGluLml0CkQ6IEZBRFM4MjMgY29uZmlndXJhdGlvbiwgTVBDODIzIHZpZGVvIHN1cHBvcnQsIEkyQywgd2lyZWxlc3Mga2V5Ym9hcmQsIGxvdHMgbW9yZQoKTjogUm9iZXJ0IFNjaHdlYmVsCkU6IHIuc2Nod2ViZWxAcGVuZ3V0cm9uaXguZGUKRDogU3VwcG9ydCBmb3IgY3NiMjI2LCBsb2dvZGwgYW5kIGlubm9rb20gYm9hcmRzIChQWEEyeHgpCgpOOiBBYXJvbiBTZWxscwpFOiBzZWxsc2FAZW1iZWRkZWRwbGFuZXQuY29tCkQ6IFN1cHBvcnQgZm9yIEVQODJ4eE0KCk46IEFydCBTaGlwa293c2tpCkU6IGFydEB2aWRlb24tY2VudHJhbC5jb20KRDogU3VwcG9ydCBmb3IgTmV0U2lsaWNvbiBOUzc1MjAKCk46IFlhc3VzaGkgU2hvamkKRTogeWFzaGlAYXRtYXJrLXRlY2huby5jb20KRDogU3VwcG9ydCBmb3IgWGlsaW54IE1pY3JvQmxhemUsIGZvciBBdG1hcmsgVGVjaG5vIFNVWkFLVSBGUEdBIGJvYXJkCgpOOiBLdXJ0IFN0cmVtZXJjaApFOiBrdXJ0QGV4eXMuYmUKRDogU3VwcG9ydCBmb3IgRXh5cyBYU0VuZ2luZSBib2FyZAoKTjogQW5kcmVhIFNjaWFuCkU6IGFuZHJlYS5zY2lhbkBkYXZlLXRlY2guaXQKRDogUG9ydCB0byBCMiBib2FyZApXOiB3d3cuZGF2ZS10ZWNoLml0CgpOOiBSb2IgVGF5bG9yCkU6IHJvYnRAZmx5aW5ncGlnLmNvbQpEOiBQb3J0IHRvIE1CWDg2MFQgYW5kIFNhbmRwb2ludDgyNDAKCk46IEVyaWsgVGhlaXNlbgpFOiBldGhlaXNlbkBtaW5kc3ByaW5nLmNvbQpEOiBNQlg4eHggYW5kIG1hbnkgb3RoZXIgcGF0Y2hlcwoKTjogSmltIFRob21wc29uCkU6IGppbUBtdXNlbmtpLmNvbQpEOiBTdXBwb3J0IGZvciBNVVNFTktJIGJvYXJkCgpOOiBSdW5lIFRvcmdlcnNlbgpFOiA8cnVuZXRAaW5ub3ZzeXMuY29tPgpEOiBTdXBwb3J0IGZvciBNb3Rvcm9sYSBNUEM4MjY2QURTIGJvYXJkCgpOOiBHcmVnIFVuZ2VyZXIKRTogZ3JlZy51bmdlcmVyQG9wZW5nZWFyLmNvbQpEOiBTdXBwb3J0IGZvciBrczg2OTUgQ1BVLCBhbmQgT3BlbkdlYXIgY21YWFhYIGJvYXJkcwoKTjogRGF2aWQgVXBkZWdyYWZmCkU6IGRhdmVAY3JheS5jb20KRDogUG9ydCB0byBDcmF5IEwxIGJvYXJkOyBESENQIHZlbmRvciBleHRlbnNpb25zCgpOOiBDaHJpc3RpYW4gVmVqbGJvCkU6IGNocmlzdGlhbi52ZWpsYm9AdGVsbGFicy5jb20KRDogRkFEUzg2MFQgZXRoZXJuZXQgc3VwcG9ydAoKTjogUm9iZXJ0IFdoYWxleQpFOiByd2hhbGV5QGFwcGxpZWRkYXRhLm5ldApEOiBQb3J0IHRvIEFSTSBQWEEyN3ggYWRzdml4IFNCQwoKTjogTWFydGluIFdpbmlzdG9lcmZlcgpFOiBtYXJ0aW53aW5pc3RvZXJmZXJAZ214LmNoCkQ6IFBvcnQgdG8gTVBDNTU1LzU1NiBtaWNyb2NvbnRyb2xsZXJzIGFuZCBzdXBwb3J0IGZvciBjbWkgYm9hcmQKCk46IE1pbmctTGVuIFd1CkU6IG1pbmdsZW5fd3VAdGVjaHdhcmUuY29tLnR3CkQ6IE1vdG9yb2xhIE1YMUFEUyBib2FyZCBzdXBwb3J0Clc6IGh0dHA6Ly93d3cudGVjaHdhcmUuY29tLnR3LwoKTjogWGlhbmdodWEgWGlhbwpFOiB4LnhpYW9AbW90b3JvbGEuY29tCkQ6IFN1cHBvcnQgZm9yIE1vdG9yb2xhIDg1eHgoUG93ZXJRVUlDQyBJSUkpIGNoaXAsIE1QQzg1NDBBRFMgYW5kIE1QQzg1NjBBRFMgYm9hcmRzLgoKTjogSm9obiBaaGFuCkU6IHpoYW56QHNpbm92ZWUuY29tCkQ6IFN1cHBvcnQgZm9yIFNpbm9WZWUgTWljcm9zeXN0ZW1zIFNDOHh4IFNCQwoKTjogQWxleCBadWVwa2UKRTogYXp1QHN5c2dvLmRlCkQ6IE92ZXJhbGwgaW1wcm92ZW1lbnRzIG9uIFN0cm9uZ0FSTSwgQVJNNzIwVERNSTsgU3VwcG9ydCBmb3IgVHV4c2NyZWVuOyBpbml0aWFsIFBDTUNJQSBzdXBwb3J0IGZvciBBUk0KVzogd3d3LmVsaW5vcy5jb20KCk46IEphbWVzIE1hY0F1bGF5CkU6IGphbWVzLm1hY2F1bGF5QGFtaXJpeC5jb20KRDogU3VwcHBvcnQgZm9yIEFtaXJpeCBBUDEwMDAKVzogd3d3LmFtaXJpeC5jb20KCk46IFRpbXVyIFRhYmkKRTogdGltdXJAZnJlZXNjYWxlLmNvbQpEOiBTdXBwb3J0IGZvciBNUEM4MzQ5RS1tSVRYClc6IHd3dy5mcmVlc2NhbGUuY29tCg==