Mw0NCgdae2NQVwAA4wAAAAAAAAAAAAAAABsAAABAAAAAc4ICAABkAFoAZDFaAWQEagJlA2UEZQGDAoMBWgVkA2QFbAZaBmQDZAVsB1oHZQZqCGQDGQBkBmsCWgllCXI+ZQRaCmUGagtqDGQHgwFyiGQDZAVsC1oLZQtqDYMAZAYZAGQDGQBaDmUOagxkCIMBcnJkCVoPcY5lDmoMZAqDAXKCZAtaD3GOZAxaD24GZQZqC1oPZDJkDmQPhAFaEGQzZBBkEYQBWhFkNGQSZBOEAVoSZDVkFGQVhAFaE2Q2ZBdkGIQBWhRkN2QZZBqEAVoVRwBkG2QchABkHGUWgwNaF2QdZB6EAFoYZB9kIIQAWhlkIWQihABaGmQjZCSEAFobZQ9kCWsCkAFyhHkQZANkBWwcWh1lGVoeVwBubgQAZR9rCpABcoIBAAEAAQB5FGQDZCVsIG0hWiEBAGUaWh5XAG5CBABlH2sKkAFyfAEAAQABAHkQZANkBWwiWiNlG1oeVwBuGgQAZR9rCpABcnYBAAEAAQBlGFoeWQBuAlgAWQBuAlgAWQBuAlgAZSRkJmsCkAJyfmQnWiVkKFomZDhaJ2UoZCmDAQEAZRdlJWUmZCpkK40DWil4JGUnRABdHFoqZShkLGUqZStlKWUqgwJmAhYAgwEBAJABcbZXAGUoZC2DAQEAZRdlJWUmgwJaKXgkZSdEAF0cWiplKGQsZSplK2UpZSqDAmYCFgCDAQEAkAFx7lcAZShkLoMBAQBlF2UlgwFaKXgkZSdEAF0cWiplKGQsZSplK2UpZSqDAmYCFgCDAQEAkAJxJFcAZShkL4MBAQBlF2UlZA1kMI0CWil4JGUnRABdHFoqZShkLGUqZStlKWUqgwJmAhYAgwEBAJACcV5XAGQFUwApOXp5VXRpbGl0aWVzIGZvciBkZXRlcm1pbmluZyBhcHBsaWNhdGlvbi1zcGVjaWZpYyBkaXJzLgoKU2VlIDxodHRwOi8vZ2l0aHViLmNvbS9BY3RpdmVTdGF0ZS9hcHBkaXJzPiBmb3IgZGV0YWlscyBhbmQgdXNhZ2UuCukBAAAA6QQAAADpAAAAANoBLk7pAwAAANoEamF2YdoHV2luZG93c9oFd2luMzJaA01hY9oGZGFyd2luWgZsaW51eDJGYwQAAAAAAAAABgAAAAQAAABDAAAAc8YAAAB0AGQBawJyXnwBZAJrCHIUfAB9AXwDchxkA3AeZAR9BHQBagJqA3QEfASDAYMBfQV8AHKsfAFkBWsJck50AWoCagV8BXwBfACDA30Fcax0AWoCagV8BXwAgwJ9BW5OdABkBmsCcoZ0AWoCagZkB4MBfQV8AHKsdAFqAmoFfAV8AIMCfQVuJnQBagdkCHQBagJqBmQJgwGDAn0FfAByrHQBagJqBXwFfACDAn0FfABywnwCcsJ0AWoCagV8BXwCgwJ9BXwFUwApCmFKBwAAUmV0dXJuIGZ1bGwgcGF0aCB0byB0aGUgdXNlci1zcGVjaWZpYyBkYXRhIGRpciBmb3IgdGhpcyBhcHBsaWNhdGlvbi4KCiAgICAgICAgImFwcG5hbWUiIGlzIHRoZSBuYW1lIG9mIGFwcGxpY2F0aW9uLgogICAgICAgICAgICBJZiBOb25lLCBqdXN0IHRoZSBzeXN0ZW0gZGlyZWN0b3J5IGlzIHJldHVybmVkLgogICAgICAgICJhcHBhdXRob3IiIChvbmx5IHVzZWQgb24gV2luZG93cykgaXMgdGhlIG5hbWUgb2YgdGhlCiAgICAgICAgICAgIGFwcGF1dGhvciBvciBkaXN0cmlidXRpbmcgYm9keSBmb3IgdGhpcyBhcHBsaWNhdGlvbi4gVHlwaWNhbGx5CiAgICAgICAgICAgIGl0IGlzIHRoZSBvd25pbmcgY29tcGFueSBuYW1lLiBUaGlzIGZhbGxzIGJhY2sgdG8gYXBwbmFtZS4gWW91IG1heQogICAgICAgICAgICBwYXNzIEZhbHNlIHRvIGRpc2FibGUgaXQuCiAgICAgICAgInZlcnNpb24iIGlzIGFuIG9wdGlvbmFsIHZlcnNpb24gcGF0aCBlbGVtZW50IHRvIGFwcGVuZCB0byB0aGUKICAgICAgICAgICAgcGF0aC4gWW91IG1pZ2h0IHdhbnQgdG8gdXNlIHRoaXMgaWYgeW91IHdhbnQgbXVsdGlwbGUgdmVyc2lvbnMKICAgICAgICAgICAgb2YgeW91ciBhcHAgdG8gYmUgYWJsZSB0byBydW4gaW5kZXBlbmRlbnRseS4gSWYgdXNlZCwgdGhpcwogICAgICAgICAgICB3b3VsZCB0eXBpY2FsbHkgYmUgIjxtYWpvcj4uPG1pbm9yPiIuCiAgICAgICAgICAgIE9ubHkgYXBwbGllZCB3aGVuIGFwcG5hbWUgaXMgcHJlc2VudC4KICAgICAgICAicm9hbWluZyIgKGJvb2xlYW4sIGRlZmF1bHQgRmFsc2UpIGNhbiBiZSBzZXQgVHJ1ZSB0byB1c2UgdGhlIFdpbmRvd3MKICAgICAgICAgICAgcm9hbWluZyBhcHBkYXRhIGRpcmVjdG9yeS4gVGhhdCBtZWFucyB0aGF0IGZvciB1c2VycyBvbiBhIFdpbmRvd3MKICAgICAgICAgICAgbmV0d29yayBzZXR1cCBmb3Igcm9hbWluZyBwcm9maWxlcywgdGhpcyB1c2VyIGRhdGEgd2lsbCBiZQogICAgICAgICAgICBzeW5jJ2Qgb24gbG9naW4uIFNlZQogICAgICAgICAgICA8aHR0cDovL3RlY2huZXQubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2NjNzY2NDg5KFdTLjEwKS5hc3B4PgogICAgICAgICAgICBmb3IgYSBkaXNjdXNzaW9uIG9mIGlzc3Vlcy4KCiAgICBUeXBpY2FsIHVzZXIgZGF0YSBkaXJlY3RvcmllcyBhcmU6CiAgICAgICAgTWFjIE9TIFg6ICAgICAgICAgICAgICAgfi9MaWJyYXJ5L0FwcGxpY2F0aW9uIFN1cHBvcnQvPEFwcE5hbWU+CiAgICAgICAgVW5peDogICAgICAgICAgICAgICAgICAgfi8ubG9jYWwvc2hhcmUvPEFwcE5hbWU+ICAgICMgb3IgaW4gJFhER19EQVRBX0hPTUUsIGlmIGRlZmluZWQKICAgICAgICBXaW4gWFAgKG5vdCByb2FtaW5nKTogICBDOlxEb2N1bWVudHMgYW5kIFNldHRpbmdzXDx1c2VybmFtZT5cQXBwbGljYXRpb24gRGF0YVw8QXBwQXV0aG9yPlw8QXBwTmFtZT4KICAgICAgICBXaW4gWFAgKHJvYW1pbmcpOiAgICAgICBDOlxEb2N1bWVudHMgYW5kIFNldHRpbmdzXDx1c2VybmFtZT5cTG9jYWwgU2V0dGluZ3NcQXBwbGljYXRpb24gRGF0YVw8QXBwQXV0aG9yPlw8QXBwTmFtZT4KICAgICAgICBXaW4gNyAgKG5vdCByb2FtaW5nKTogICBDOlxVc2Vyc1w8dXNlcm5hbWU+XEFwcERhdGFcTG9jYWxcPEFwcEF1dGhvcj5cPEFwcE5hbWU+CiAgICAgICAgV2luIDcgIChyb2FtaW5nKTogICAgICAgQzpcVXNlcnNcPHVzZXJuYW1lPlxBcHBEYXRhXFJvYW1pbmdcPEFwcEF1dGhvcj5cPEFwcE5hbWU+CgogICAgRm9yIFVuaXgsIHdlIGZvbGxvdyB0aGUgWERHIHNwZWMgYW5kIHN1cHBvcnQgJFhER19EQVRBX0hPTUUuCiAgICBUaGF0IG1lYW5zLCBieSBkZWZhdWx0ICJ+Ly5sb2NhbC9zaGFyZS88QXBwTmFtZT4iLgogICAgcggAAABO2g1DU0lETF9BUFBEQVRB2hNDU0lETF9MT0NBTF9BUFBEQVRBRnIJAAAAeh5+L0xpYnJhcnkvQXBwbGljYXRpb24gU3VwcG9ydC/aDVhER19EQVRBX0hPTUV6Dn4vLmxvY2FsL3NoYXJlKQjaBnN5c3RlbdoCb3PaBHBhdGjaCG5vcm1wYXRo2g9fZ2V0X3dpbl9mb2xkZXLaBGpvaW7aCmV4cGFuZHVzZXLaBmdldGVudikG2gdhcHBuYW1l2glhcHBhdXRob3LaB3ZlcnNpb27aB3JvYW1pbmfaBWNvbnN0cg8AAACpAHIaAAAA+kMvdG1wL3BpcC1idWlsZC16aG8xODI4bC9zZXR1cHRvb2xzL3BrZ19yZXNvdXJjZXMvX3ZlbmRvci9hcHBkaXJzLnB52g11c2VyX2RhdGFfZGlyLAAAAHMmAAAAACAIAQgBBAEMARABBAEIARICEAEIAQwBBAEQAhQBBAEOAQgBDgFyHAAAAGMEAAAAAAAAAAYAAAAFAAAAAwAAAHMKAQAAdABkAWsCclJ8AWQCawhyFIgAfQF0AWoCagN0BGQDgwGDAX0EiABy7nwBZARrCXJCdAFqAmoFfAR8AYgAgwN9BHHudAFqAmoFfASIAIMCfQRunHQAZAVrAnJ6dAFqAmoGZAaDAX0EiABy7nQBagJqBXwEiACDAn0EbnR0AWoHZAd0AWoIagVkCGQJZwKDAYMCfQRkCmQLhAB8BGoJdAFqCIMBRACDAX0FiABy0HwCcr50AWoCagWIAHwCgwKJAIcAZgFkDGQLhAh8BUQAgwF9BXwDcuJ0AWoIagV8BYMBfQRuCHwFZA0ZAH0EfARTAIgAb/R8ApABcgZ0AWoCagV8BHwCgwJ9BHwEUwApDmFpBgAAUmV0dXJuIGZ1bGwgcGF0aCB0byB0aGUgdXNlci1zaGFyZWQgZGF0YSBkaXIgZm9yIHRoaXMgYXBwbGljYXRpb24uCgogICAgICAgICJhcHBuYW1lIiBpcyB0aGUgbmFtZSBvZiBhcHBsaWNhdGlvbi4KICAgICAgICAgICAgSWYgTm9uZSwganVzdCB0aGUgc3lzdGVtIGRpcmVjdG9yeSBpcyByZXR1cm5lZC4KICAgICAgICAiYXBwYXV0aG9yIiAob25seSB1c2VkIG9uIFdpbmRvd3MpIGlzIHRoZSBuYW1lIG9mIHRoZQogICAgICAgICAgICBhcHBhdXRob3Igb3IgZGlzdHJpYnV0aW5nIGJvZHkgZm9yIHRoaXMgYXBwbGljYXRpb24uIFR5cGljYWxseQogICAgICAgICAgICBpdCBpcyB0aGUgb3duaW5nIGNvbXBhbnkgbmFtZS4gVGhpcyBmYWxscyBiYWNrIHRvIGFwcG5hbWUuIFlvdSBtYXkKICAgICAgICAgICAgcGFzcyBGYWxzZSB0byBkaXNhYmxlIGl0LgogICAgICAgICJ2ZXJzaW9uIiBpcyBhbiBvcHRpb25hbCB2ZXJzaW9uIHBhdGggZWxlbWVudCB0byBhcHBlbmQgdG8gdGhlCiAgICAgICAgICAgIHBhdGguIFlvdSBtaWdodCB3YW50IHRvIHVzZSB0aGlzIGlmIHlvdSB3YW50IG11bHRpcGxlIHZlcnNpb25zCiAgICAgICAgICAgIG9mIHlvdXIgYXBwIHRvIGJlIGFibGUgdG8gcnVuIGluZGVwZW5kZW50bHkuIElmIHVzZWQsIHRoaXMKICAgICAgICAgICAgd291bGQgdHlwaWNhbGx5IGJlICI8bWFqb3I+LjxtaW5vcj4iLgogICAgICAgICAgICBPbmx5IGFwcGxpZWQgd2hlbiBhcHBuYW1lIGlzIHByZXNlbnQuCiAgICAgICAgIm11bHRpcGF0aCIgaXMgYW4gb3B0aW9uYWwgcGFyYW1ldGVyIG9ubHkgYXBwbGljYWJsZSB0byAqbml4CiAgICAgICAgICAgIHdoaWNoIGluZGljYXRlcyB0aGF0IHRoZSBlbnRpcmUgbGlzdCBvZiBkYXRhIGRpcnMgc2hvdWxkIGJlCiAgICAgICAgICAgIHJldHVybmVkLiBCeSBkZWZhdWx0LCB0aGUgZmlyc3QgaXRlbSBmcm9tIFhER19EQVRBX0RJUlMgaXMKICAgICAgICAgICAgcmV0dXJuZWQsIG9yICcvdXNyL2xvY2FsL3NoYXJlLzxBcHBOYW1lPicsCiAgICAgICAgICAgIGlmIFhER19EQVRBX0RJUlMgaXMgbm90IHNldAoKICAgIFR5cGljYWwgdXNlciBkYXRhIGRpcmVjdG9yaWVzIGFyZToKICAgICAgICBNYWMgT1MgWDogICAvTGlicmFyeS9BcHBsaWNhdGlvbiBTdXBwb3J0LzxBcHBOYW1lPgogICAgICAgIFVuaXg6ICAgICAgIC91c3IvbG9jYWwvc2hhcmUvPEFwcE5hbWU+IG9yIC91c3Ivc2hhcmUvPEFwcE5hbWU+CiAgICAgICAgV2luIFhQOiAgICAgQzpcRG9jdW1lbnRzIGFuZCBTZXR0aW5nc1xBbGwgVXNlcnNcQXBwbGljYXRpb24gRGF0YVw8QXBwQXV0aG9yPlw8QXBwTmFtZT4KICAgICAgICBWaXN0YTogICAgICAoRmFpbCEgIkM6XFByb2dyYW1EYXRhIiBpcyBhIGhpZGRlbiAqc3lzdGVtKiBkaXJlY3Rvcnkgb24gVmlzdGEuKQogICAgICAgIFdpbiA3OiAgICAgIEM6XFByb2dyYW1EYXRhXDxBcHBBdXRob3I+XDxBcHBOYW1lPiAgICMgSGlkZGVuLCBidXQgd3JpdGVhYmxlIG9uIFdpbiA3LgoKICAgIEZvciBVbml4LCB0aGlzIGlzIHVzaW5nIHRoZSAkWERHX0RBVEFfRElSU1swXSBkZWZhdWx0LgoKICAgIFdBUk5JTkc6IERvIG5vdCB1c2UgdGhpcyBvbiBXaW5kb3dzLiBTZWUgdGhlIFZpc3RhLUZhaWwgbm90ZSBhYm92ZSBmb3Igd2h5LgogICAgcggAAABO2hRDU0lETF9DT01NT05fQVBQREFUQUZyCQAAAHocL0xpYnJhcnkvQXBwbGljYXRpb24gU3VwcG9ydNoNWERHX0RBVEFfRElSU3oQL3Vzci9sb2NhbC9zaGFyZXoKL3Vzci9zaGFyZWMBAAAAAAAAAAIAAAAFAAAAUwAAAHMgAAAAZwB8AF0YfQF0AGoBagJ8AWoDdABqBIMBgwGRAnEEUwByGgAAACkFcg4AAAByDwAAAHITAAAA2gZyc3RyaXDaA3NlcCkC2gIuMNoBeHIaAAAAchoAAAByGwAAAPoKPGxpc3Rjb21wPpQAAABzAgAAAAYAeiFzaXRlX2RhdGFfZGlyLjxsb2NhbHM+LjxsaXN0Y29tcD5jAQAAAAAAAAACAAAABQAAABMAAABzHAAAAGcAfABdFH0BdABqAWoCfAGIAGcCgwGRAnEEUwByGgAAACkDcg4AAAByIAAAAHISAAAAKQJyIQAAAHIiAAAAKQFyFQAAAHIaAAAAchsAAAByIwAAAJgAAABzAgAAAAYAcgMAAAApCnINAAAAcg4AAAByDwAAAHIQAAAAchEAAAByEgAAAHITAAAAchQAAADaB3BhdGhzZXDaBXNwbGl0KQZyFQAAAHIWAAAAchcAAADaCW11bHRpcGF0aHIPAAAA2ghwYXRobGlzdHIaAAAAKQFyFQAAAHIbAAAA2g1zaXRlX2RhdGFfZGlyYwAAAHM0AAAAAB8IAQgBBAEQAQQBCAESAhABCAEMAQQBEAQGARIBFgEEAQQBDgESAgQBDgIIAQQCCgEOAXIoAAAAYwQAAAAAAAAABQAAAAUAAABDAAAAc1gAAAB0AGQGawZyGHQBfAB8AWQDfAODBH0EbiZ0AmoDZAR0AmoEagVkBYMBgwJ9BHwAcj50AmoEagZ8BHwAgwJ9BHwAclR8AnJUdAJqBGoGfAR8AoMCfQR8BFMAKQdh0gUAAFJldHVybiBmdWxsIHBhdGggdG8gdGhlIHVzZXItc3BlY2lmaWMgY29uZmlnIGRpciBmb3IgdGhpcyBhcHBsaWNhdGlvbi4KCiAgICAgICAgImFwcG5hbWUiIGlzIHRoZSBuYW1lIG9mIGFwcGxpY2F0aW9uLgogICAgICAgICAgICBJZiBOb25lLCBqdXN0IHRoZSBzeXN0ZW0gZGlyZWN0b3J5IGlzIHJldHVybmVkLgogICAgICAgICJhcHBhdXRob3IiIChvbmx5IHVzZWQgb24gV2luZG93cykgaXMgdGhlIG5hbWUgb2YgdGhlCiAgICAgICAgICAgIGFwcGF1dGhvciBvciBkaXN0cmlidXRpbmcgYm9keSBmb3IgdGhpcyBhcHBsaWNhdGlvbi4gVHlwaWNhbGx5CiAgICAgICAgICAgIGl0IGlzIHRoZSBvd25pbmcgY29tcGFueSBuYW1lLiBUaGlzIGZhbGxzIGJhY2sgdG8gYXBwbmFtZS4gWW91IG1heQogICAgICAgICAgICBwYXNzIEZhbHNlIHRvIGRpc2FibGUgaXQuCiAgICAgICAgInZlcnNpb24iIGlzIGFuIG9wdGlvbmFsIHZlcnNpb24gcGF0aCBlbGVtZW50IHRvIGFwcGVuZCB0byB0aGUKICAgICAgICAgICAgcGF0aC4gWW91IG1pZ2h0IHdhbnQgdG8gdXNlIHRoaXMgaWYgeW91IHdhbnQgbXVsdGlwbGUgdmVyc2lvbnMKICAgICAgICAgICAgb2YgeW91ciBhcHAgdG8gYmUgYWJsZSB0byBydW4gaW5kZXBlbmRlbnRseS4gSWYgdXNlZCwgdGhpcwogICAgICAgICAgICB3b3VsZCB0eXBpY2FsbHkgYmUgIjxtYWpvcj4uPG1pbm9yPiIuCiAgICAgICAgICAgIE9ubHkgYXBwbGllZCB3aGVuIGFwcG5hbWUgaXMgcHJlc2VudC4KICAgICAgICAicm9hbWluZyIgKGJvb2xlYW4sIGRlZmF1bHQgRmFsc2UpIGNhbiBiZSBzZXQgVHJ1ZSB0byB1c2UgdGhlIFdpbmRvd3MKICAgICAgICAgICAgcm9hbWluZyBhcHBkYXRhIGRpcmVjdG9yeS4gVGhhdCBtZWFucyB0aGF0IGZvciB1c2VycyBvbiBhIFdpbmRvd3MKICAgICAgICAgICAgbmV0d29yayBzZXR1cCBmb3Igcm9hbWluZyBwcm9maWxlcywgdGhpcyB1c2VyIGRhdGEgd2lsbCBiZQogICAgICAgICAgICBzeW5jJ2Qgb24gbG9naW4uIFNlZQogICAgICAgICAgICA8aHR0cDovL3RlY2huZXQubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2NjNzY2NDg5KFdTLjEwKS5hc3B4PgogICAgICAgICAgICBmb3IgYSBkaXNjdXNzaW9uIG9mIGlzc3Vlcy4KCiAgICBUeXBpY2FsIHVzZXIgZGF0YSBkaXJlY3RvcmllcyBhcmU6CiAgICAgICAgTWFjIE9TIFg6ICAgICAgICAgICAgICAgc2FtZSBhcyB1c2VyX2RhdGFfZGlyCiAgICAgICAgVW5peDogICAgICAgICAgICAgICAgICAgfi8uY29uZmlnLzxBcHBOYW1lPiAgICAgIyBvciBpbiAkWERHX0NPTkZJR19IT01FLCBpZiBkZWZpbmVkCiAgICAgICAgV2luICo6ICAgICAgICAgICAgICAgICAgc2FtZSBhcyB1c2VyX2RhdGFfZGlyCgogICAgRm9yIFVuaXgsIHdlIGZvbGxvdyB0aGUgWERHIHNwZWMgYW5kIHN1cHBvcnQgJFhER19DT05GSUdfSE9NRS4KICAgIFRoYXQgbWVhbnMsIGJ5IGRlYWZ1bHQgIn4vLmNvbmZpZy88QXBwTmFtZT4iLgogICAgcggAAAByCQAAAE7aD1hER19DT05GSUdfSE9NRXoJfi8uY29uZmlnKQJyCAAAAHIJAAAAKQdyDQAAAHIcAAAAcg4AAAByFAAAAHIPAAAAchMAAAByEgAAACkFchUAAAByFgAAAHIXAAAAchgAAAByDwAAAHIaAAAAchoAAAByGwAAANoPdXNlcl9jb25maWdfZGlypQAAAHMQAAAAAB0IARACFAEEAQ4BCAEOAXIqAAAAYwQAAAAAAAAABgAAAAMAAAADAAAAc5IAAAB0AGQJawZyKnQBiAB8AYMCfQSIAHKOfAJyjnQCagNqBHwEfAKDAn0EbmR0AmoFZANkBIMCfQRkBWQGhAB8BGoGdAJqB4MBRACDAX0FiABydHwCcmJ0AmoDagSIAHwCgwKJAIcAZgFkB2QGhAh8BUQAgwF9BXwDcoZ0AmoHagR8BYMBfQRuCHwFZAgZAH0EfARTACkKYQUGAABSZXR1cm4gZnVsbCBwYXRoIHRvIHRoZSB1c2VyLXNoYXJlZCBkYXRhIGRpciBmb3IgdGhpcyBhcHBsaWNhdGlvbi4KCiAgICAgICAgImFwcG5hbWUiIGlzIHRoZSBuYW1lIG9mIGFwcGxpY2F0aW9uLgogICAgICAgICAgICBJZiBOb25lLCBqdXN0IHRoZSBzeXN0ZW0gZGlyZWN0b3J5IGlzIHJldHVybmVkLgogICAgICAgICJhcHBhdXRob3IiIChvbmx5IHVzZWQgb24gV2luZG93cykgaXMgdGhlIG5hbWUgb2YgdGhlCiAgICAgICAgICAgIGFwcGF1dGhvciBvciBkaXN0cmlidXRpbmcgYm9keSBmb3IgdGhpcyBhcHBsaWNhdGlvbi4gVHlwaWNhbGx5CiAgICAgICAgICAgIGl0IGlzIHRoZSBvd25pbmcgY29tcGFueSBuYW1lLiBUaGlzIGZhbGxzIGJhY2sgdG8gYXBwbmFtZS4gWW91IG1heQogICAgICAgICAgICBwYXNzIEZhbHNlIHRvIGRpc2FibGUgaXQuCiAgICAgICAgInZlcnNpb24iIGlzIGFuIG9wdGlvbmFsIHZlcnNpb24gcGF0aCBlbGVtZW50IHRvIGFwcGVuZCB0byB0aGUKICAgICAgICAgICAgcGF0aC4gWW91IG1pZ2h0IHdhbnQgdG8gdXNlIHRoaXMgaWYgeW91IHdhbnQgbXVsdGlwbGUgdmVyc2lvbnMKICAgICAgICAgICAgb2YgeW91ciBhcHAgdG8gYmUgYWJsZSB0byBydW4gaW5kZXBlbmRlbnRseS4gSWYgdXNlZCwgdGhpcwogICAgICAgICAgICB3b3VsZCB0eXBpY2FsbHkgYmUgIjxtYWpvcj4uPG1pbm9yPiIuCiAgICAgICAgICAgIE9ubHkgYXBwbGllZCB3aGVuIGFwcG5hbWUgaXMgcHJlc2VudC4KICAgICAgICAibXVsdGlwYXRoIiBpcyBhbiBvcHRpb25hbCBwYXJhbWV0ZXIgb25seSBhcHBsaWNhYmxlIHRvICpuaXgKICAgICAgICAgICAgd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhlIGVudGlyZSBsaXN0IG9mIGNvbmZpZyBkaXJzIHNob3VsZCBiZQogICAgICAgICAgICByZXR1cm5lZC4gQnkgZGVmYXVsdCwgdGhlIGZpcnN0IGl0ZW0gZnJvbSBYREdfQ09ORklHX0RJUlMgaXMKICAgICAgICAgICAgcmV0dXJuZWQsIG9yICcvZXRjL3hkZy88QXBwTmFtZT4nLCBpZiBYREdfQ09ORklHX0RJUlMgaXMgbm90IHNldAoKICAgIFR5cGljYWwgdXNlciBkYXRhIGRpcmVjdG9yaWVzIGFyZToKICAgICAgICBNYWMgT1MgWDogICBzYW1lIGFzIHNpdGVfZGF0YV9kaXIKICAgICAgICBVbml4OiAgICAgICAvZXRjL3hkZy88QXBwTmFtZT4gb3IgJFhER19DT05GSUdfRElSU1tpXS88QXBwTmFtZT4gZm9yIGVhY2ggdmFsdWUgaW4KICAgICAgICAgICAgICAgICAgICAkWERHX0NPTkZJR19ESVJTCiAgICAgICAgV2luICo6ICAgICAgc2FtZSBhcyBzaXRlX2RhdGFfZGlyCiAgICAgICAgVmlzdGE6ICAgICAgKEZhaWwhICJDOlxQcm9ncmFtRGF0YSIgaXMgYSBoaWRkZW4gKnN5c3RlbSogZGlyZWN0b3J5IG9uIFZpc3RhLikKCiAgICBGb3IgVW5peCwgdGhpcyBpcyB1c2luZyB0aGUgJFhER19DT05GSUdfRElSU1swXSBkZWZhdWx0LCBpZiBtdWx0aXBhdGg9RmFsc2UKCiAgICBXQVJOSU5HOiBEbyBub3QgdXNlIHRoaXMgb24gV2luZG93cy4gU2VlIHRoZSBWaXN0YS1GYWlsIG5vdGUgYWJvdmUgZm9yIHdoeS4KICAgIHIIAAAAcgkAAADaD1hER19DT05GSUdfRElSU3oIL2V0Yy94ZGdjAQAAAAAAAAACAAAABQAAAFMAAABzIAAAAGcAfABdGH0BdABqAWoCfAFqA3QAagSDAYMBkQJxBFMAchoAAAApBXIOAAAAcg8AAAByEwAAAHIfAAAAciAAAAApAnIhAAAAciIAAAByGgAAAHIaAAAAchsAAAByIwAAAPMAAABzAgAAAAYAeiNzaXRlX2NvbmZpZ19kaXIuPGxvY2Fscz4uPGxpc3Rjb21wPmMBAAAAAAAAAAIAAAAFAAAAEwAAAHMcAAAAZwB8AF0UfQF0AGoBagJ8AYgAZwKDAZECcQRTAHIaAAAAKQNyDgAAAHIgAAAAchIAAAApAnIhAAAAciIAAAApAXIVAAAAchoAAAByGwAAAHIjAAAA9wAAAHMCAAAABgByAwAAACkCcggAAAByCQAAACkIcg0AAAByKAAAAHIOAAAAcg8AAAByEgAAAHIUAAAAciUAAAByJAAAACkGchUAAAByFgAAAHIXAAAAciYAAAByDwAAAHInAAAAchoAAAApAXIVAAAAchsAAADaD3NpdGVfY29uZmlnX2Rpcs0AAABzHAAAAAAeCAEKAQgBEAQMARYBBAEEAQ4BEgIEAQ4CCAFyLAAAAFRjBAAAAAAAAAAFAAAABAAAAEMAAABzzAAAAHQAZAFrAnJkfAFkAmsIchR8AH0BdAFqAmoDdARkA4MBgwF9BHwAcrJ8AWQEawlyQnQBagJqBXwEfAF8AIMDfQRuDnQBagJqBXwEfACDAn0EfANysnQBagJqBXwEZAWDAn0Ebk50AGQGawJyjHQBagJqBmQHgwF9BHwAcrJ0AWoCagV8BHwAgwJ9BG4mdAFqB2QIdAFqAmoGZAmDAYMCfQR8AHKydAFqAmoFfAR8AIMCfQR8AHLIfAJyyHQBagJqBXwEfAKDAn0EfARTACkKYQQHAABSZXR1cm4gZnVsbCBwYXRoIHRvIHRoZSB1c2VyLXNwZWNpZmljIGNhY2hlIGRpciBmb3IgdGhpcyBhcHBsaWNhdGlvbi4KCiAgICAgICAgImFwcG5hbWUiIGlzIHRoZSBuYW1lIG9mIGFwcGxpY2F0aW9uLgogICAgICAgICAgICBJZiBOb25lLCBqdXN0IHRoZSBzeXN0ZW0gZGlyZWN0b3J5IGlzIHJldHVybmVkLgogICAgICAgICJhcHBhdXRob3IiIChvbmx5IHVzZWQgb24gV2luZG93cykgaXMgdGhlIG5hbWUgb2YgdGhlCiAgICAgICAgICAgIGFwcGF1dGhvciBvciBkaXN0cmlidXRpbmcgYm9keSBmb3IgdGhpcyBhcHBsaWNhdGlvbi4gVHlwaWNhbGx5CiAgICAgICAgICAgIGl0IGlzIHRoZSBvd25pbmcgY29tcGFueSBuYW1lLiBUaGlzIGZhbGxzIGJhY2sgdG8gYXBwbmFtZS4gWW91IG1heQogICAgICAgICAgICBwYXNzIEZhbHNlIHRvIGRpc2FibGUgaXQuCiAgICAgICAgInZlcnNpb24iIGlzIGFuIG9wdGlvbmFsIHZlcnNpb24gcGF0aCBlbGVtZW50IHRvIGFwcGVuZCB0byB0aGUKICAgICAgICAgICAgcGF0aC4gWW91IG1pZ2h0IHdhbnQgdG8gdXNlIHRoaXMgaWYgeW91IHdhbnQgbXVsdGlwbGUgdmVyc2lvbnMKICAgICAgICAgICAgb2YgeW91ciBhcHAgdG8gYmUgYWJsZSB0byBydW4gaW5kZXBlbmRlbnRseS4gSWYgdXNlZCwgdGhpcwogICAgICAgICAgICB3b3VsZCB0eXBpY2FsbHkgYmUgIjxtYWpvcj4uPG1pbm9yPiIuCiAgICAgICAgICAgIE9ubHkgYXBwbGllZCB3aGVuIGFwcG5hbWUgaXMgcHJlc2VudC4KICAgICAgICAib3BpbmlvbiIgKGJvb2xlYW4pIGNhbiBiZSBGYWxzZSB0byBkaXNhYmxlIHRoZSBhcHBlbmRpbmcgb2YKICAgICAgICAgICAgIkNhY2hlIiB0byB0aGUgYmFzZSBhcHAgZGF0YSBkaXIgZm9yIFdpbmRvd3MuIFNlZQogICAgICAgICAgICBkaXNjdXNzaW9uIGJlbG93LgoKICAgIFR5cGljYWwgdXNlciBjYWNoZSBkaXJlY3RvcmllcyBhcmU6CiAgICAgICAgTWFjIE9TIFg6ICAgfi9MaWJyYXJ5L0NhY2hlcy88QXBwTmFtZT4KICAgICAgICBVbml4OiAgICAgICB+Ly5jYWNoZS88QXBwTmFtZT4gKFhERyBkZWZhdWx0KQogICAgICAgIFdpbiBYUDogICAgIEM6XERvY3VtZW50cyBhbmQgU2V0dGluZ3NcPHVzZXJuYW1lPlxMb2NhbCBTZXR0aW5nc1xBcHBsaWNhdGlvbiBEYXRhXDxBcHBBdXRob3I+XDxBcHBOYW1lPlxDYWNoZQogICAgICAgIFZpc3RhOiAgICAgIEM6XFVzZXJzXDx1c2VybmFtZT5cQXBwRGF0YVxMb2NhbFw8QXBwQXV0aG9yPlw8QXBwTmFtZT5cQ2FjaGUKCiAgICBPbiBXaW5kb3dzIHRoZSBvbmx5IHN1Z2dlc3Rpb24gaW4gdGhlIE1TRE4gZG9jcyBpcyB0aGF0IGxvY2FsIHNldHRpbmdzIGdvIGluCiAgICB0aGUgYENTSURMX0xPQ0FMX0FQUERBVEFgIGRpcmVjdG9yeS4gVGhpcyBpcyBpZGVudGljYWwgdG8gdGhlIG5vbi1yb2FtaW5nCiAgICBhcHAgZGF0YSBkaXIgKHRoZSBkZWZhdWx0IHJldHVybmVkIGJ5IGB1c2VyX2RhdGFfZGlyYCBhYm92ZSkuIEFwcHMgdHlwaWNhbGx5CiAgICBwdXQgY2FjaGUgZGF0YSBzb21ld2hlcmUgKnVuZGVyKiB0aGUgZ2l2ZW4gZGlyIGhlcmUuIFNvbWUgZXhhbXBsZXM6CiAgICAgICAgLi4uXE1vemlsbGFcRmlyZWZveFxQcm9maWxlc1w8UHJvZmlsZU5hbWU+XENhY2hlCiAgICAgICAgLi4uXEFjbWVcU3VwZXJBcHBcQ2FjaGVcMS4wCiAgICBPUElOSU9OOiBUaGlzIGZ1bmN0aW9uIGFwcGVuZHMgIkNhY2hlIiB0byB0aGUgYENTSURMX0xPQ0FMX0FQUERBVEFgIHZhbHVlLgogICAgVGhpcyBjYW4gYmUgZGlzYWJsZWQgd2l0aCB0aGUgYG9waW5pb249RmFsc2VgIG9wdGlvbi4KICAgIHIIAAAATnILAAAARtoFQ2FjaGVyCQAAAHoQfi9MaWJyYXJ5L0NhY2hlc9oOWERHX0NBQ0hFX0hPTUV6CH4vLmNhY2hlKQhyDQAAAHIOAAAAcg8AAAByEAAAAHIRAAAAchIAAAByEwAAAHIUAAAAKQVyFQAAAHIWAAAAchcAAADaB29waW5pb25yDwAAAHIaAAAAchoAAAByGwAAANoOdXNlcl9jYWNoZV9kaXIAAQAAcygAAAAAIQgBCAEEARABBAEIARICDgEEARABCAEMAQQBEAIUAQQBDgEIAQ4BcjAAAABjBAAAAAAAAAAFAAAABAAAAEMAAABziAAAAHQAZAFrAnIgdAFqAmoDdAFqAmoEZAKDAXwAgwJ9BG5OdABkA2sCckx0BXwAfAF8AoMDfQRkBH0CfANybnQBagJqA3wEZAWDAn0EbiJ0BnwAfAF8AoMDfQRkBH0CfANybnQBagJqA3wEZAaDAn0EfAByhHwCcoR0AWoCagN8BHwCgwJ9BHwEUwApB2G/BgAAUmV0dXJuIGZ1bGwgcGF0aCB0byB0aGUgdXNlci1zcGVjaWZpYyBsb2cgZGlyIGZvciB0aGlzIGFwcGxpY2F0aW9uLgoKICAgICAgICAiYXBwbmFtZSIgaXMgdGhlIG5hbWUgb2YgYXBwbGljYXRpb24uCiAgICAgICAgICAgIElmIE5vbmUsIGp1c3QgdGhlIHN5c3RlbSBkaXJlY3RvcnkgaXMgcmV0dXJuZWQuCiAgICAgICAgImFwcGF1dGhvciIgKG9ubHkgdXNlZCBvbiBXaW5kb3dzKSBpcyB0aGUgbmFtZSBvZiB0aGUKICAgICAgICAgICAgYXBwYXV0aG9yIG9yIGRpc3RyaWJ1dGluZyBib2R5IGZvciB0aGlzIGFwcGxpY2F0aW9uLiBUeXBpY2FsbHkKICAgICAgICAgICAgaXQgaXMgdGhlIG93bmluZyBjb21wYW55IG5hbWUuIFRoaXMgZmFsbHMgYmFjayB0byBhcHBuYW1lLiBZb3UgbWF5CiAgICAgICAgICAgIHBhc3MgRmFsc2UgdG8gZGlzYWJsZSBpdC4KICAgICAgICAidmVyc2lvbiIgaXMgYW4gb3B0aW9uYWwgdmVyc2lvbiBwYXRoIGVsZW1lbnQgdG8gYXBwZW5kIHRvIHRoZQogICAgICAgICAgICBwYXRoLiBZb3UgbWlnaHQgd2FudCB0byB1c2UgdGhpcyBpZiB5b3Ugd2FudCBtdWx0aXBsZSB2ZXJzaW9ucwogICAgICAgICAgICBvZiB5b3VyIGFwcCB0byBiZSBhYmxlIHRvIHJ1biBpbmRlcGVuZGVudGx5LiBJZiB1c2VkLCB0aGlzCiAgICAgICAgICAgIHdvdWxkIHR5cGljYWxseSBiZSAiPG1ham9yPi48bWlub3I+Ii4KICAgICAgICAgICAgT25seSBhcHBsaWVkIHdoZW4gYXBwbmFtZSBpcyBwcmVzZW50LgogICAgICAgICJvcGluaW9uIiAoYm9vbGVhbikgY2FuIGJlIEZhbHNlIHRvIGRpc2FibGUgdGhlIGFwcGVuZGluZyBvZgogICAgICAgICAgICAiTG9ncyIgdG8gdGhlIGJhc2UgYXBwIGRhdGEgZGlyIGZvciBXaW5kb3dzLCBhbmQgImxvZyIgdG8gdGhlCiAgICAgICAgICAgIGJhc2UgY2FjaGUgZGlyIGZvciBVbml4LiBTZWUgZGlzY3Vzc2lvbiBiZWxvdy4KCiAgICBUeXBpY2FsIHVzZXIgY2FjaGUgZGlyZWN0b3JpZXMgYXJlOgogICAgICAgIE1hYyBPUyBYOiAgIH4vTGlicmFyeS9Mb2dzLzxBcHBOYW1lPgogICAgICAgIFVuaXg6ICAgICAgIH4vLmNhY2hlLzxBcHBOYW1lPi9sb2cgICMgb3IgdW5kZXIgJFhER19DQUNIRV9IT01FIGlmIGRlZmluZWQKICAgICAgICBXaW4gWFA6ICAgICBDOlxEb2N1bWVudHMgYW5kIFNldHRpbmdzXDx1c2VybmFt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