IyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKIyBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlIGRpc3RyaWJ1dGVkIHdpdGgKIyB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuCiMgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUgdG8gWW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAKIyAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aAojIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCmFwcGxpY2F0aW9uQ29udGV4dC5hZGRGaWx0ZXIuaXNlID0gTm8gc2UgcHVlZGVuIGFcdTAwRjFhZGlyIGZpbHRyb3MgYWwgY29udGV4dG8gezB9IHlhIHF1ZSBcdTAwRTlzdGUgaGEgc2lkbyBpbmljaWFsaXphZG8KYXBwbGljYXRpb25Db250ZXh0LmFkZExpc3RlbmVyLmlhZS5jbmZlID0gTm8gcHVlZG8gY3JlYXIgdW5hIGluc3RhbmNpYSBkZWwgdGlwbyBbezB9XQphcHBsaWNhdGlvbkNvbnRleHQuYWRkTGlzdGVuZXIuaWFlLndyb25nVHlwZSA9IEVsIHRpcG8gZXNwZWNpZmljYWRvIFt7MH1dIG5vIGVzIHVubyBkZSBsb3MgdGlwb3MgZGUgZXNjdWNoYWRvciBlc3BlcmFkb3MKYXBwbGljYXRpb25Db250ZXh0LmFkZExpc3RlbmVyLmlhZS5zY2xOb3RBbGxvd2VkID0gVW5hIHZleiBxdWUgZWwgcHJpbWVyIFNlcnZsZXRDb250ZXh0TGlzdGVuZXIgaGEgc2lkbyBsbGFtYWRvLCBubyBzZSBwdWVkZW4gYVx1MDBGMWFkaXIgbVx1MDBFMXMgU2VydmxldENvbnRleHRMaXN0ZW5lcnMuCmFwcGxpY2F0aW9uQ29udGV4dC5hZGRMaXN0ZW5lci5pc2UgPSBObyBzZSBwdWVkZW4gYVx1MDBGMWFkaXIgZXNjdWNoYWRvcmVzIGFsIGNvbnRleHRvIHswfSwgdW5hIHZleiBxdWUgaGEgc2lkbyBpbmljaWFsaXphZG8uCmFwcGxpY2F0aW9uQ29udGV4dC5hZGRSb2xlLmlzZSA9IE5vIHNlIHB1ZWRlbiBhXHUwMEYxYWRpciByb2xlcyBhbCBjb250ZXh0byB7MH0sIHVuYSB2ZXogcXVlIGhhIHNpZG8gaW5pY2lhbGl6YWRvLgphcHBsaWNhdGlvbkNvbnRleHQuYWRkU2VydmxldC5pc2UgPSBObyBzZSBwdWVkZW4gYVx1MDBGMWFkaXIgc2VydmxldHMgYWwgY29udGV4dG8gezB9LCB1bmEgdmV6IHF1ZSBoYSBzaWRvIGluaWNpYWxpemFkby4KYXBwbGljYXRpb25Db250ZXh0LmF0dHJpYnV0ZUV2ZW50ID0gRXhjZXBjaVx1MDBGM24gbGFuemFkYSBwb3IgZXNjdWNoYWRvciBkZSBldmVudG9zIGRlIGF0cmlidXRvcwphcHBsaWNhdGlvbkNvbnRleHQubWFwcGluZy5lcnJvciA9IEVycm9yIGR1cmFudGUgbWFwZW8KYXBwbGljYXRpb25Db250ZXh0LnJlcXVlc3REaXNwYXRjaGVyLmlhZSA9IExhIFRyYXllY3RvcmlhIHswfSBubyBjb21pZW56YSBjb24gY2FyXHUwMEUxY3RlciAiLyIKYXBwbGljYXRpb25Db250ZXh0LnJlc291cmNlUGF0aHMuaWFlID0gTGEgVHJheWVjdG9yaWEgezB9IG5vIGNvbWllbnphIGNvbiBjYXJcdTAwRTFjdGVyICIvIgphcHBsaWNhdGlvbkNvbnRleHQucm9sZS5pYWUgPSBVbiByb2wgaW5kaXZpZHVhbCBxdWUgc2UgaGEgZGUgZGVjbGFyYXIgcGFyYSBlbCBjb250ZXh0byBbezB9XSBubyBwdWVkZSBzZXIgbnVsbyBvIGNhZGVuYSB2YWNcdTAwRURhCmFwcGxpY2F0aW9uQ29udGV4dC5yb2xlcy5pYWUgPSBVbiBhcnJlZ2xvIGRlIHJvbGVzIHF1ZSBzZSBoYSBkZSBkZWNsYXJhciBwYXJhIGVsIGNvbnRleHRvIFt7MH1dIG5vIHB1ZWRlIHNlciBudWxvIG8gY2FkZW5hIHZhY1x1MDBFRGEKYXBwbGljYXRpb25Db250ZXh0LnNldEF0dHJpYnV0ZS5uYW1lbnVsbCA9IEVsIG5vbWJyZSBubyBwdWVkZSBzZXIgbnVsbwphcHBsaWNhdGlvbkNvbnRleHQuc2V0U2Vzc2lvblRyYWNraW5nLmlzZSA9IE5vIHNlIHB1ZWRlbiBwb25lciBsb3MgbW9kb3MgZGUgc2VndWltaWVudG8gZGUgc2VzaVx1MDBGM24gcGFyYSBlbCBjb250ZXh0byB7MH0gbWllbnRyYXMgZWwgY29udGV4dG8gc2UgZXN0XHUwMEUxIGVqZWN1dGFuZG8uCmFwcGxpY2F0aW9uQ29udGV4dC5zZXRTZXNzaW9uVHJhY2tpbmcuaWFlLmludmFsaWQgPSBFbCBtb2RvIGRlIHNlZ3VpbWllbnRvIGRlIHNlc2lcdTAwRjNuIHswfSByZXF1ZXJpZG8gcGFyYSBlbCBjb250ZXh0byB7MX0gbm8gZXN0XHUwMEUxIHNvcG9ydGFkbyBwb3IgZXN0ZSBjb250ZXh0bwphcHBsaWNhdGlvbkNvbnRleHQuc2V0U2Vzc2lvblRyYWNraW5nLmlhZS5zc2wgPSBMb3MgbW9kb3MgZGUgc2VndWltaWVudG8gZGUgc2VzaVx1MDBGM24gcmVxdWVyaWRvcyBwYXJhIGVsIGNvbnRleHRvIHswfSwgaW5jbHV5XHUwMEYzIFNTTCB5IGFsIG1lbm9zIG90cm8gbW9kby4gU1NMIG5vIHNlIHB1ZWRlIGNvbmZpZ3VyYXIgY29uIG90cm9zIG1vZG9zLgphcHBsaWNhdGlvbkNvbnRleHQubG9va3VwLmVycm9yID0gTm8gcHVkZSBsb2NhbGl6YXIgZWwgcmVjdXJzbyBbezB9XSBlbiBlbCBjb250ZXh0byBbezF9XQphcHBsaWNhdGlvbkRpc3BhdGNoZXIuYWxsb2NhdGVFeGNlcHRpb24gPSBFeGNlcGNpXHUwMEYzbiBkZSByZXNlcnZhIGRlIGVzcGFjaW8gcGFyYSBzZXJ2bGV0IHswfQphcHBsaWNhdGlvbkRpc3BhdGNoZXIuZGVhbGxvY2F0ZUV4Y2VwdGlvbiA9IEV4Y2VwY2lcdTAwRjNuIGRlIHJlY3VwZXJhY2lcdTAwRjNuIGRlIGVzcGFjaW8gcGFyYSBzZXJ2bGV0IHswfQphcHBsaWNhdGlvbkRpc3BhdGNoZXIuZm9yd2FyZC5pc2UgPSBObyBwdWVkbyByZWVudmlhciBkZXNwdVx1MDBFOXMgZGUgcXVlIGxhIHJlc3B1ZXN0YSBzZSBoYXlhIGxsZXZhZG8gYSBjYWJvLgphcHBsaWNhdGlvbkRpc3BhdGNoZXIuaXNVbmF2YWlsYWJsZSA9IEVsIFNlcnZsZXQgezB9IG5vIGVzdFx1MDBFMSBkaXNwb25pYmxlIGVuIGVzdGUgbW9tZW50bwphcHBsaWNhdGlvbkRpc3BhdGNoZXIuc2VydmljZUV4Y2VwdGlvbiA9IEVsIFNlcnZsZXQuc2VydmljZSgpIHBhcmEgc2VydmxldCB7MH0gbGFuelx1MDBGMyB1bmEgZXhjZXBjaVx1MDBGM24KYXBwbGljYXRpb25EaXNwYXRjaGVyLnNwZWNWaW9sYXRpb24ucmVxdWVzdCA9IFNldmxldFJlcXVlc3Qgb3JpZ2luYWwgbyBTZXJ2bGV0UmVxdWVzdCBvcmlnaW5hbCBhcnJvcGFkbyBubyBwYXNcdTAwRjMgYSBSZXF1ZXN0RGlzcGF0Y2hlciBlbiB2aW9sYWNpXHUwMEYzbiBkZSBTUlYuOC4yIHkgU1JWLjE0LjIuNS4xCmFwcGxpY2F0aW9uRGlzcGF0Y2hlci5zcGVjVmlvbGF0aW9uLnJlc3BvbnNlID0gU2V2bGV0UmVzcG9uc2Ugb3JpZ2luYWwgbyBTZXJ2bGV0UmVzcG9uc2Ugb3JpZ2luYWwgYXJyb3BhZG8gbm8gcGFzXHUwMEYzIGEgUmVxdWVzdERpc3BhdGNoZXIgZW4gdmlvbGFjaVx1MDBGM24gZGUgU1JWLjguMiB5IFNSVi4xNC4yLjUuMQphcHBsaWNhdGlvbkZpbHRlckNvbmZpZy5qbXhSZWdpc3RlckZhaWwgPSBIYSBmYWxsYWRvIGVsIHJlZ2lzdHJvIEpNWCBwYXJhIGVsIGZpbHRybyBkZWwgdGlwbyBbezB9XSB5IG5vbWJyZSBbezF9XQphcHBsaWNhdGlvbkZpbHRlckNvbmZpZy5qbXhVbnJlZ2lzdGVyID0gU2UgaGEgY29tcGxldGFkbyBlbCBkZXNyZWdpc3RybyBKTVggcGFyYSBlbCBmaWx0cm8gZGVsIHRpcG8gW3swfV0geSBub21icmUgW3sxfV0KYXBwbGljYXRpb25GaWx0ZXJDb25maWcuam14VW5yZWdpc3RlckZhaWwgPSBIYSBmYWxsYWRvIGVsIGRlc3JlZ2lzdHJvIEpNWCBwYXJhIGVsIGZpbHRybyBkZWwgdGlwbyBbezB9XSB5IG5vbWJyZSBbezF9XQphcHBsaWNhdGlvbkZpbHRlclJlZ2lzdHJhdGlvbi5udWxsSW5pdFBhcmFtID0gTm8gcHVlZG8gcG9uZXIgZWwgcGFyXHUwMEUxbWV0cm8gZGUgaW5pY2lhbGl6YWNpXHUwMEYzbiBwYXJhIGVsIGZpbHRybyBkZWJpZG8gYSB1biBub21icmUgbnVsbyB5L28gdmFsb3IuIE5vbWJyZSBbezB9XSwgVmFsb3IgW3sxfV0KYXBwbGljYXRpb25GaWx0ZXJSZWdpc3RyYXRpb24ubnVsbEluaXRQYXJhbXMgPSBObyBwdWVkbyBwb25lciBsb3MgcGFyXHUwMEUxbWV0cm9zIGRlIGluaWNpYWxpemFjaVx1MDBGM24gcGFyYSBlbCBmaWx0cm8gZGViaWRvIGEgdW4gbm9tYnJlIG51bG8geS9vIHZhbG9yLiBOb21icmUgW3swfV0sIFZhbG9yIFt7MX1dCmFwcGxpY2F0aW9uU2VydmxldFJlZ2lzdHJhdGlvbi5zZXRTZXJ2bGV0U2VjdXJpdHkuaWFlID0gU2UgaGEgZXNwZWNpZmljYWRvIHJlc3RyaWNjaVx1MDBGM24gTnVsbCBwYXJhIGVsIHNlcnZsZXQgW3swfV0gZGVzcGxlZ2FkbyBlbiBlbCBjb250ZXh0byBjb24gZWwgbm9tYnJlIFt7MX1dCmFwcGxpY2F0aW9uU2VydmxldFJlZ2lzdHJhdGlvbi5zZXRTZXJ2bGV0U2VjdXJpdHkuaXNlID0gTm8gc2UgcHVlZGVuIGFcdTAwRjFhZGlyIHJlc3RyaWNjaW9uZXMgZGUgc2VndXJpZGFkIGFsIHNlcnZsZXQgW3swfV0gZGVzcGxlZ2FkbyBlbiBlbCBjb250ZXh0byBjb24gZWwgbm9tYnJlIFt7MX1dIHlhIHF1ZSBlbCBjb250ZXh0byB5YSBoYSBzaWRvIGluaWNpYWxpemFkby4KYXByTGlzdGVuZXIuYXBySW5pdCA9IExhIGJpYmxpb3RlY2EgbmF0aXZhIGRlIEFwYWNoZSBUb21jYXQgYmFzYWRhIGVuIEFSUCBxdWUgcGVybWl0ZSB1biByZW5kaW1pZW50byBcdTAwRjNwdGltbyBlbiBlbnRvcm5vcyBkZSBkZXNhcnJvbGxvIG5vIGhhIHNpZG8gaGFsbGFkYSBlbiBqYXZhLmxpYnJhcnkucGF0aFw6IHswfQphcHJMaXN0ZW5lci50Y25JbnZhbGlkID0gU2UgZW5jdWVudHJhIGluc3RhbGFkYSB1bmEgdmVyc2lcdTAwRjNuIGluY29tcGF0aWJsZSB7MH0gZGUgbGEgYmlibGlvdGVjYSBuYXRpdmEgQVBSIGRlIEFwYWNoZSBUb21jYXQsIG1pZW50cmFzIHF1ZSBUb21jYXQgbmVjZXNpdGEgbGEgdmVyc2lcdTAwRjNuIHsxfQphcHJMaXN0ZW5lci50Y25WZXJzaW9uID0gU2UgZW5jdWVudHJhIGluc3RhbGFkYSB1bmEgdmVyc2lcdTAwRjNuIG11eSB2aWVqYSB7MH0gZGUgbGEgYmlibGlvdGVjYSBuYXRpdmEgQVBSIGRlIEFwYWNoZSBUb21jYXQsIG1pZW50cmFzIHF1ZSBUb21jYXQgcmVjb21pZW5kYSB1bmEgdmVyc2lcdTAwRjNuIG1heW9yIGRlIHsxfQphcHJMaXN0ZW5lci5hcHJEZXN0cm95ID0gTm8gcHVkZSBhcGFnYXIgbGEgYmlibGlvdGVjYSBuYXRpdmEgZGUgQXBhY2hlIFRvbWNhdAphcHJMaXN0ZW5lci5zc2xJbml0ID0gTm8gcHVkZSBpbmljaWFsaXphciBlbCBTU0xFbmdpbmUgKE1vdG9yIFNTTCkKYXByTGlzdGVuZXIudGNuVmFsaWQgPSBDYXJnYWRhIGxhIGJpYmxpb3RlY2EgbmF0aXZhIEFQUiBkZSBBcGFjaGUgVG9tY2F0IHswfSBjb24gbGEgdmVyc2nzbiBBUFIgezF9LgphcHJMaXN0ZW5lci5mbGFncyA9IENhcGFjaWRhZGVzIEFQUlw6IElQdjYgW3swfV0sIGVudmlhciBmaWNoZXJvIFt7MX1dLCBhY2VwdGFyIGZpbHRyb3MgW3syfV0sIGFsZWF0b3JpbyBbezN9XS4KYXByTGlzdGVuZXIuaW5pdGlhbGl6ZWRPcGVuU1NMPU9wZW5TU0wgaW5pY2lhbGl6YWRvIGNvcnJlY3RhbWVudGUgKHswfSkKYXN5bmNDb250ZXh0SW1wbC5yZXF1ZXN0RW5kZWQgPSBFbCByZXF1ZXJpbWllbnRvIGFzb2NpYWRvIGNvbiBBc3luY0NvbnRleHQgeWEgaGEgY29tcGxldGFkbyBzdSBwcm9jZXNhbWllbnRvLgpjb250YWluZXJCYXNlLmJhY2tncm91bmRQcm9jZXNzLmNsdXN0ZXIgPSBFeGNlcGNpXHUwMEYzbiBhbCBwcm9jZXNhciBjbFx1MDBGQXN0ZXIgezB9IGRlIHByb2Nlc28gZW4gc2VndW5kbyBwbGFubwpjb250YWluZXJCYXNlLmJhY2tncm91bmRQcm9jZXNzLnJlYWxtID0gRXhjZXBjaVx1MDBGM24gYWwgcHJvY2VzYXIgcmVpbm8gezB9IGRlIHByb2Nlc28gZW4gc2VndW5kbyBwbGFubwpjb250YWluZXJCYXNlLmJhY2tncm91bmRQcm9jZXNzLnZhbHZlID0gRXhjZXBjaVx1MDBGM24gYWwgcHJvY2VzYXIgdlx1MDBFMWx2dWxhIHswfSBkZSBwcm9jZXNvIGVuIHNlZ3VuZG8gcGxhbm8KZmlsdGVyQ2hhaW4uZmlsdGVyID0gTGEgZWplY3VjaVx1MDBGM24gZGVsIEZpbHRybyBsYW56XHUwMEYzIHVuYSBleGNlcGNpXHUwMEYzbgpmaWx0ZXJDaGFpbi5zZXJ2bGV0ID0gTGEgZWplY3VjaVx1MDBGM24gZGVsIFNlcnZsZXQgbGFuelx1MDBGMyB1bmEgZXhjZXBjaVx1MDBGM24KanJlTGVha0xpc3RlbmVyLmdjRGFlbW9uRmFpbCA9IE5vIHB1ZGUgZGlzcGFyYXIgbGEgY3JlYWNpXHUwMEYzbiBkZWwgaGlsbyBEYWVtb24gR0MgZHVyYW50ZSBlbCBhcnJhbnF1ZSBkZSBUb21jYXQgcGFyYSBwcmV2ZW5pciBwb3NpYmxlcyBmYWxsb3MgZGUgbWVtb3JpYS4gRXN0byBlcyBsbyBlc3BlcmFkbyBlbiBKVk1zIG5vIFN1bi4KanJlTGVha0xpc3RlbmVyLmphclVybENvbm5DYWNoZUZhaWwgPSBObyBwdWRlIGRlc2FjdGl2YXIgbGEgY2FjaFx1MDBFOSBkZSBjb25leGlcdTAwRjNuIFVSTCBkZSBKYXIgcG9yIGRlZmVjdG8KanJlTGVha0xpc3RlbmVyLnhtbFBhcnNlRmFpbCA9IEVycm9yIG1pZW50cmFzIGludGVudGFiYSBwcmV2ZW5pciBmYWxsb3MgZGUgbWVtb3JpYSBkdXJhbnRlIGVsIGFuXHUwMEUxbGlzaXMgWE1MCmpyZUxlYWtMaXN0ZW5lci5hdXRoUG9saWN5RmFpbCA9IEVycm9yIG1pZW50cmFzIGludGVudGFiYSBwcmV2ZW5pciBmYWxsb3MgZGUgbWVtb3JpYSBlbiBqYXZheC5zZWN1cml0eS5hdXRoLlBvbGljeSBjbGFzcwpqcmVMZWFrTGlzdGVuZXIubGRhcFBvb2xNYW5hZ2VyRmFpbCA9IE5vIHB1ZGUgZGlzcGFyYXIgbGEgY3JlYWNpXHUwMEYzbiBkZSBsYSBjbGFzZSBjb20uc3VuLmpuZGkubGRhcC5MZGFwUG9vbE1hbmFnZXIgZHVyYW50ZSBlbCBhcnJhbnF1ZSBkZSBUb21jYXQgcGFyYSBwcmV2ZW5pciBwb3NpYmxlcyBmYWxsb3MgZGUgbWVtb3JpYS4gRXN0byBlcyBsbyBxdWUgc2UgZXNwZXJhIHNpIGxhcyBKVk1zIG5vIHNvbiBTdW4uCm5hbWluZy53c2RsRmFpbGVkID0gTm8gcHVkZSBoYWxsYXIgZmljaGVybyB3c2RsXDogezB9Cm5hbWluZy5iaW5kRmFpbGVkID0gTm8gcHVkZSBjYW1iaWFyIChiaW5kKSBvYmpldG9cOiB7MH0KbmFtaW5nLmpteFJlZ2lzdHJhdGlvbkZhaWxlZCA9IE5vIHB1ZGUgcmVnaXN0cmFyIGVuIEpNWFw6IHswfQpuYW1pbmcudW5iaW5kRmFpbGVkID0gTm8gcHVkZSBkZXNjYW1iaWFyICh1bmJpbmQpIG9iamVjdG9cOiB7MH0KbmFtaW5nLmludmFsaWRFbnZFbnRyeVR5cGUgPSBMYSBlbnRyYWRhIGRlIEVudG9ybm8gezB9IHRpZW5lIHVuIHRpcG8gaW52XHUwMEUxbGlkbwpuYW1pbmcuaW52YWxpZEVudkVudHJ5VmFsdWUgPSBMYSBlbnRyYWRhIGRlIEVudG9ybm8gezB9IHRpZW5lIHVuIHZhbG9yIGludlx1MDBFMWxpZG8KbmFtaW5nLm5hbWluZ0NvbnRleHRDcmVhdGlvbkZhaWxlZCA9IEZhbGxcdTAwRjMgbGEgY3JlYWNpXHUwMEYzbiBkZWwgY29udGV4dG8gZGUgbm9tYnJlcyAobmFtaW5nKVw6IHswfQpzdGFuZGFyZENvbnRleHQuaW52YWxpZFdyYXBwZXJDbGFzcyA9IHswfSBubyBlcyB1bmEgc3ViY2xhc2UgZGUgU3RhbmRhcmRXcmFwcGVyCnN0YW5kYXJkQ29udGV4dC5hcHBsaWNhdGlvbkxpc3RlbmVyID0gRXJyb3IgY29uZmlndXJhbmRvIGVzY3VjaGFkb3IgZGUgYXBsaWNhY2lcdTAwRjNuIGRlIGNsYXNlIHswfQpzdGFuZGFyZENvbnRleHQuYXBwbGljYXRpb25Ta2lwcGVkID0gU2UgaGEgc2FsdGFkbyBsYSBpbnN0YWxhY2lcdTAwRjNuIGRlIGVzY3VjaGFkb3JlcyBkZSBhcGxpY2FjaVx1MDBGM24gZGViaWRvIGEgZXJyb3IoZXMpIHByZXZpbyhzKQpzdGFuZGFyZENvbnRleHQuYmFja2dyb3VuZFByb2Nlc3MubG9hZGVyID0gRXhjZXBjaVx1MDBGM24gYWwgcHJvY2VzYXIgY2FyZ2Fkb3IgezB9IGRlIHByb2Nlc28gZW4gc2VndW5kbyBwbGFubwpzdGFuZGFyZENvbnRleHQuYmFja2dyb3VuZFByb2Nlc3MubWFuYWdlciA9IEV4Y2VwY2lcdTAwRjNuIGFsIHByb2Nlc2FyIGdlc3RvciB7MH0gZGUgcHJvY2VzbyBlbiBzZWd1bmRvIHBsYW5vCnN0YW5kYXJkQ29udGV4dC5jbHVzdGVyLm5vTWFuYWdlciA9IE5vIHNlIGhhIGhhbGxhZG8gZWwgZ2VzdG9yLiBSZXZpc2FuZG8gc2kgaGF5IHF1ZSB1c2FyIGVsIGdlc3RvciBkZSBjbFx1MDBGQXN0ZXIuIENsXHUwMEZBc3RlciBjb25maWd1cmFkb1w6IFt7MH1dLCBBcGxpY2FjaVx1MDBGM24gZGlzdHJpYnVcdTAwRURibGVcOiBbezF9XQpzdGFuZGFyZENvbnRleHQuZHVwbGljYXRlTGlzdGVuZXIgPSBFbCBlc2N1Y2hhZG9yICJ7MH0iIHlhIGVzdFx1MDBFMSBjb25maWd1cmFkbyBwYXJhIGVzdGUgY29udGV4dG8uIExhIGRlZmluaWNpXHUwMEYzbiBkdXBsaWNhZGEgaGEgc2lkbyBpZ25vcmFkYS4Kc3RhbmRhcmRDb250ZXh0LmVycm9yUGFnZS5lcnJvciA9IExhIGxvY2FsaXphY2lcdTAwRjNuIGRlIGxhIHBcdTAwRTFnaW5hIGRlIGVycm9yIDB9IGRlYmUgZGUgY29tZW56YXIgY29uICcnLycnCnN0YW5kYXJkQ29udGV4dC5lcnJvclBhZ2UucmVxdWlyZWQgPSBFcnJvclBhZ2Ugbm8gcHVlZGUgc2VyIG51bG8Kc3RhbmRhcmRDb250ZXh0LmVycm9yUGFnZS53YXJuaW5nID0gQVZJU09cOiBMYSBsb2NhbGl6YWNpXHUwMEYzbiBkZSBsYSBwXHUwMEUxZ2luYSBkZSBlcnJvciB7MH0gZGViZSBkZSBjb21lbnphciBjb24gJycvJycgZW4gU2VydmxldCAyLjQKc3RhbmRhcmRDb250ZXh0LmZpbHRlck1hcC5laXRoZXIgPSBFbCBtYXBlbyBkZSBmaWx0cm8gZGViZSBkZSBlc3BlY2lmaWNhciBvIHVuIDx1cmwtcGF0dGVybj4gbyB1biA8c2VydmxldC1uYW1lPgpzdGFuZGFyZENvbnRleHQuZmlsdGVyTWFwLm5hbWUgPSBFbCBtYXBlbyBkZSBmaWx0cm8gZXNwZWNpZmljYSB1biBub21icmUgZGVzY29ub2NpZG8gZGUgZmlsdHJvIHswfQpzdGFuZGFyZENvbnRleHQuZmlsdGVyTWFwLnBhdHRlcm4gPSA8dXJsLXBhdHRlcm4+IHswfSBpbnZcdTAwRTFsaWRvIGVuIG1hcGVvIGRlIGZpbHRybwpzdGFuZGFyZENvbnRleHQuZmlsdGVyU3RhcnQgPSBFeGNlcGNpXHUwMEYzbiBhcnJhbmNhbmRvIGZpbHRybyB7MH0Kc3RhbmRhcmRDb250ZXh0LnJlcXVlc3RMaXN0ZW5lci5yZXF1ZXN0SW5pdCA9IFVuYSBleGNlcGNpXHUwMEYzbiBkdXJhbnRlIGVsIGVudlx1MDBFRG8gZGUgcmVxdWVyaW1pZW50byBoYSBpbmljaWFkbyB1biBldmVudG8gZGUgY2ljbG8gZGUgdmlkYSAobGlmZWN5Y2xlIGV2ZW50KSBwYXJhIGxhIGluc3RhbmNpYSBkZSBjbGFzZSBhIGxhIGVzY3VjaGEgKGxpc3RlbmVyKSB7MH0Kc3RhbmRhcmRDb250ZXh0LmlzVW5hdmFpbGFibGUgPSBFc3RhIGFwbGljYWNpXHUwMEYzbiBubyBlc3RcdTAwRTEgZGlzcG9uaWJsZSBlbiBlc3RlIG1vbWVudG8Kc3RhbmRhcmRDb250ZXh0Lmxpc3RlbmVyU3RhcnQgPSBFeGNlcGNpXHUwMEYzbiBlbnZpYW5kbyBldmVudG8gaW5pY2lhbGl6YWRvIGRlIGNvbnRleHRvIGEgaW5zdGFuY2lhIGRlIGVzY3VjaGFkb3IgZGUgY2xhc2UgezB9CnN0YW5kYXJkQ29udGV4dC5saXN0ZW5lclN0b3AgPSBFeGNlcGNpXHUwMEYzbiBlbnZpYW5kbyBldmVudG8gZGUgY29udGV4dG8gZGVzdHJ1XHUwMEVEZG8gYSBpbnN0YW5jaWEgZGUgZXNjdWNoYWRvciBkZSBjbGFzZSB7MH0Kc3RhbmRhcmRDb250ZXh0LmxvZ2luQ29uZmlnLmVycm9yUGFnZSA9IExhIFBcdTAwRTFnaW5hIGRlIGVycm9yIGRlIEZvcm11bGFyaW8gezB9IGRlYmUgZGUgY29tZW56YXIgY29uICcnLycKc3RhbmRhcmRDb250ZXh0LmxvZ2luQ29uZmlnLmVycm9yV2FybmluZyA9IEFWSVNPXDogTGEgcFx1MDBFMWdpbmEgZGUgZXJyb3IgZGUgRm9ybXVsYXJpbyB7MH0gZGViZSBkZSBjb21lbnphciBjb24gJycvJycgZW4gU2VydmxldCAyLjQKc3RhbmRhcmRDb250ZXh0LmxvZ2luQ29uZmlnLmxvZ2luUGFnZSA9IExhIHBcdTAwRTFnaW5hIGRlIGxvZ2luIGRlIEZvcm11bGFyaW8gezB9IGRlYmUgZGUgY29tZW56YXIgY29uICcnLycKc3RhbmRhcmRDb250ZXh0LmxvZ2luQ29uZmlnLmxvZ2luV2FybmluZyA9IEFWSVNPXDogTGEgcFx1MDBFMWdpbmEgZGUgbG9naW4gZGUgRm9ybXVsYXJpbyB7MH0gZGViZSBkZSBjb21lbnphciBjb24gJycvJycgZW4gU2VydmxldCAyLjQKc3RhbmRhcmRDb250ZXh0LmxvZ2luQ29uZmlnLnJlcXVpcmVkID0gTG9naW5Db25maWcgbm8gcHVlZGUgc2VyIG51bGEKc3RhbmRhcmRDb250ZXh0Lm1hbmFnZXIgPSBDb25maWd1cmFkbyB1biBnZXN0b3IgZGUgbGEgY2xhc2UgW3swfV0Kc3RhbmRhcmRDb250ZXh0Lm5hbWluZ1Jlc291cmNlLmluaXQuZmFpbCA9IE5vIHB1ZGUgaW5pY2lhbGl6YXIgcmVjdXJzb3MgZGUgbnVldm8gbm9tYnJlCnN0YW5kYXJkQ29udGV4dC5uYW1pbmdSZXNvdXJjZS5kZXN0cm95LmZhaWwgPSBObyBwdWRlIGRlc3RydWlyIHJlY3Vyc29zIGRlIHZpZWpvIG5vbWJyZQpzdGFuZGFyZENvbnRleHQubm9SZXNvdXJjZUphciA9IExvcyBKQVJzIGRlIHJlY3Vyc28gbm8gZXN0XHUwMEUxbiBzb3BvcnRhZG9zLiBFbCBKQVIgaGFsbGFkbyBlbiBbezB9XSBubyBzZSB1dGlsaXphclx1MDBFMSBwYXJhIHByb3ZlZXIgZGUgY29udGVuaWRvIGVzdFx1MDBFMXRpY28gcGFyYSBlbCBjb250ZXh0byBjb24gbm9tYnJlIFt7MX1dCnN0YW5kYXJkQ29udGV4dC5ub3RTdGFydGVkID0gQVx1MDBGQW4gbm8gc2UgaGEgYXJyYW5jYWRvIGVsIENvbnRleHRvIFt7MH1dCnN0YW5kYXJkQ29udGV4dC5ub3RXcmFwcGVyID0gRWwgSGlqbyBkZSB1biBDb250ZXh0byBkZWJlIGRlIHNlciB1biBBcnJvcGFkb3IgKFdyYXBwZXIpCnN0YW5kYXJkQ29udGV4dC5wYXJhbWV0ZXIuZHVwbGljYXRlID0gRHVwbGljYWRvIHBhclx1MDBFMW1ldHJvIGRlIGluaWNpYWxpemFjaVx1MDBGM24gZGUgY29udGV4dG8gW3swfV0Kc3RhbmRhcmRDb250ZXh0LnBhcmFtZXRlci5yZXF1aXJlZCA9IEVzIG5lY2VzYXJpbyBwb25lciBub21icmUgZGUgcGFyXHUwMEUxbWV0cm8geSB2YWxvciBkZSBwYXJcdTAwRTFtZXRybwpzdGFuZGFyZENvbnRleHQucGF0aEludmFsaWQgPSBVbmEgcnV0YSBkZSBjb250ZXh0byBkZWJlIGRlIHNlciBvIHVuYSBjYWRlbmEgdmFjXHUwMEVEYSBvIGNvbWVuemFyIGNvbiAiLyIuIExhIHJ1dGEgW3swfV0gbm8gY3VtcGxlIGNvbiBlc3RvcyBjcml0ZXJpb3MgeSBoYSBzaWRvIGNhbWJpYWRhIHBvciBbezF9XQpzdGFuZGFyZENvbnRleHQucmVsb2FkaW5nQ29tcGxldGVkID0gU2UgaGEgY29tcGxldGFkbyBsYSByZWNhcmdhIGRlIGVzdGUgQ29udGV4dG8Kc3RhbmRhcmRDb250ZXh0LnJlbG9hZGluZ1N0YXJ0ZWQgPSBIYSBjb21lbnphZG8gbGEgcmVjYXJnYSBkZSBDb250ZXh0byBbezB9XQpzdGFuZGFyZENvbnRleHQucmVzb3VyY2VzU3RhcnQgPSBFcnJvciBhcnJhbmNhbmRvIFJlY3Vyc29zIGVzdFx1MDBFMXRpY29zCnN0YW5kYXJkQ29udGV4dC5zZWN1cml0eUNvbnN0cmFpbnQubWl4SHR0cE1ldGhvZCA9IE5vIGVzdFx1MDBFMSBwZXJtaXRpZG8gbWV6Y2xhciA8aHR0cC1tZXRob2Q+IHkgPGh0dHAtbWV0aG9kLW9taXNzaW9uPiBpZW4gbGEgbWlzbWEgIGNvbGVjY2lcdTAwRjNuIGRlIHJlY3Vyc29zIHdlYgpzdGFuZGFyZENvbnRleHQuc2VjdXJpdHlDb25zdHJhaW50LnBhdHRlcm4gPSA8dXJsLXBhdHRlcm4+IHswfSBpbnZcdTAwRTFsaWRhIGVuIHJlc3RyaWNjaVx1MDBGM24gZGUgc2VndXJpZGFkCnN0YW5kYXJkQ29udGV4dC5zZXJ2bGV0TWFwLm5hbWUgPSBFbCBtYXBlbyBkZSBTZXJ2bGV0IGVzcGVjaWZpY2EgdW4gbm9tYnJlIGRlIHNlcnZsZXQgZGVzY29ub2NpZG8gezB9CnN0YW5kYXJkQ29udGV4dC5zZXJ2bGV0TWFwLnBhdHRlcm4gPSA8dXJsLXBhdHRlcm4+IHswfSBpbnZcdTAwRTFsaWRhIGVuIG1hcGVvIGRlIHNlcnZsZXQKc3RhbmRhcmRDb250ZXh0LnN0YXJ0RmFpbGVkID0gRmFsbFx1MDBGMyBlbiBhcnJhbnF1ZSBkZWwgQ29udGV4dG8gW3swfV0gZGViaWRvIGEgZXJyb3JlcyBwcmV2aW9zCnN0YW5kYXJkQ29udGV4dC5zdGFydGluZ0NvbnRleHQgPSBFeGNlcGNpXHUwMEYzbiBhcnJhbmNhbmRvIENvbnRleHRvIGNvbiBub21icmUgW3swfV0Kc3RhbmRhcmRDb250ZXh0LnN0b3BwaW5nQ29udGV4dCA9IEV4Y2VwY2lcdTAwRjNuIHBhcmFuZG8gQ29udGV4dCBbezB9XQpzdGFuZGFyZENvbnRleHQudXJsUGF0dGVybi5wYXR0ZXJuV2FybmluZyA9IEFWSVNPXDogZWwgcGF0clx1MDBGM24gVVJMIHswfSBkZWJlIGRlIGNvbWVuemFyIGNvbiAnJy8nJyBlbiBTZXJ2bGV0IDIuNApzdGFuZGFyZENvbnRleHQud29ya1BhdGggPSBFeGNlcGNpXHUwMEYzbiBvYnRlbmllbmRvIHJ1dGEgZGUgdHJhYmFqbyBwYXJhIGVsIGNvbnRleHRvIFt7MH1dCnN0YW5kYXJkQ29udGV4dC53b3JrQ3JlYXRlRXhjZXB0aW9uID0gTm8gcHVkZSBkZXRlcm1pbmFyIGRpcmVjdG9yaW8gYWJzb2x1dG8gZGUgdHJhYmFqbyBhIHBhcnRpciBkZWwgZGlyZWN0b3JpbyBbezB9XSB5ICBDQVRBTElOQV9IT01FIFt7MX1dIHBhcmEgZWwgY29udGV4dG8gW3syfV0Kc3RhbmRhcmRDb250ZXh0LndvcmtDcmVhdGVGYWlsID0gTm8gcHVkZSBjcmVhciBlbCBkaXJlY3RvcmlvIGRlIHRyYWJham8gW3swfV0gcGFyYSBlbCBjb250ZXh0byBbezF9XQpzdGFuZGFyZENvbnRleHRWYWx2ZS5hY2tub3dsZWRnZUV4Y2VwdGlvbiA9IE5vIHB1ZGUgcmVjb25vY2VyIGVsIHJlcXVlcmltaWVudG8gY29uIHVuYSByZXNwdWVzdGEgMTAwIChDb250aW51YXIpCnN0YW5kYXJkRW5naW5lLmp2bVJvdXRlRmFpbCA9IE5vIHB1ZGUgcG9uZXIgZWwgYXRyaWJ1dG8ganZtUm91dGUgZGVsIE1vdG9yIHBhcmEgbGEgcHJvcGllZGFkIGRlbCBzaXN0ZW1hCnN0YW5kYXJkRW5naW5lLm5vSG9zdCA9IE5vIGhheSBNXHUwMEUxcXVpbmEgcXVlIGNvaW5jaWRhIGNvbiBub21icmUgZGUgc2Vydmlkb3IgezB9CnN0YW5kYXJkRW5naW5lLm5vdEhvc3QgPSBFbCBIaWpvIGRlIHVuIE1vdG9yIGRlYmUgZGUgc2VyIHVuIE1cdTAwRTFxdWluYQpzdGFuZGFyZEVuZ2luZS5ub3RQYXJlbnQgPSBFbCBNb3RvciBubyBwdWVkZSB0ZW5lciB1biBDb250ZW5lZG9yIHBhZHJlCnN0YW5kYXJkSG9zdC5jbGllbnRBYm9ydCA9IEVsIENsaWVudGUgUmVtb3RvIEFib3J0XHUwMEYzIGVsIFJlcXVlcmltaWVudG8sIElPRXhjZXB0aW9uXDogezB9CnN0YW5kYXJkSG9zdC5pbnZhbGlkRXJyb3JSZXBvcnRWYWx2ZUNsYXNzID0gTm8gcHVkZSBjYXJnYXIgY2xhc2UgZXNwZWNpZmlhZGEgZGUgdlx1MDBFMWx2dWxhIGRlIGluZm9ybWUgZGUgZXJyb3JcOiB7MH0Kc3RhbmRhcmRIb3N0Lm5vQ29udGV4dCA9IE5vIHNlIGhhIGNvbmZpZ3VyYWRvIENvbnRleHRvIHBhcmEgcHJvY2VzYXIgZXN0ZSByZXF1ZXJpbWllbnRvCnN0YW5kYXJkSG9zdC5ub3RDb250ZXh0ID0gRWwgSGlqbyBkZSB1bmEgTVx1MDBFMXF1aW5hIGRlYmUgZGUgc2VyIHVuIENvbnRleHRvCnN0YW5kYXJkSG9zdC5udWxsTmFtZSA9IEVzIG5lY2VzYXJpbyBwb25lciBlbCBub21icmUgZGUgTVx1MDBFMXF1aW5hCnN0YW5kYXJkU2VydmVyLnNodXRkb3duVmlhUG9ydCA9IFNlIGhhIHJlY2liaWRvIHVuIGNvbWFuZG8gZGUgYXBhZ2FkbyBhIHRyYXZcdTAwRTlzIGRlbCBwdWVydG8gZGUgYXBhZ2Fkby4gUGFyYW5kbyBsYSBpbnN0YW5jaWEgZGVsIFNlcnZpZG9yLgpzdGFuZGFyZFNlcnZpY2UuY29ubmVjdG9yLmluaXRGYWlsZWQgPSBObyBwdWRlIGluaWNpYWxpemFyIGVsIGNvbmVjdG9yIFt7MH1dCnN0YW5kYXJkU2VydmljZS5jb25uZWN0b3IucGF1c2VGYWlsZWQgPSBObyBwdWRlIHBhdXNhciBlbCBjb25lY3RvciBbezB9XQpzdGFuZGFyZFNlcnZpY2UuY29ubmVjdG9yLnN0YXJ0RmFpbGVkID0gTm8gcHVkZSBhcnJhbmNhciBlbCBjb25lY3RvciBbezB9XQpzdGFuZGFyZFNlcnZpY2UuY29ubmVjdG9yLnN0b3BGYWlsZWQgPSBObyBwdWRlIHBhcmFyIGVsIGNvbmVjdG9yIFt7MH1dCnN0YW5kYXJkU2VydmljZS5zdGFydC5uYW1lID0gQXJyYW5jYW5kbyBzZXJ2aWNpbyB7MH0Kc3RhbmRhcmRTZXJ2aWNlLnN0b3AubmFtZSA9IFBhcmFuZG8gc2VydmljaW8gezB9CnN0YW5kYXJkV3JhcHBlci5hbGxvY2F0ZSA9IEVycm9yIHJlc2VydmFuZG8gZXNwYWNpbyBwYXJhIHVuYSBpbnN0YW5jaWEgZGUgc2VydmxldApzdGFuZGFyZFdyYXBwZXIuYWxsb2NhdGVFeGNlcHRpb24gPSBFeGNlcGNpXHUwMEYzbiBkZSByZXNlcnZhIGRlIGVzcGFjaW8gcGFyYSBzZXJ2bGV0IHswfQpzdGFuZGFyZFdyYXBwZXIuZGVhbGxvY2F0ZUV4Y2VwdGlvbiA9IEV4Y2VwY2lcdTAwRjNuIGRlIHJlY3VwZXJhY2lcdTAwRjNuIGRlIGVzcGFjaW8gcGFyYSBzZXJ2bGV0IHswfQpzdGFuZGFyZFdyYXBwZXIuZGVzdHJveUV4Y2VwdGlvbiA9IFNlcnZsZXQuZGVzdHJveSgpIHBhcmEgc2VydmxldCB7MH0gbGFuelx1MDBGMyBleGNlcGNpXHUwMEYzbgpzdGFuZGFyZFdyYXBwZXIuaW5pdEV4Y2VwdGlvbiA9IFNlcnZsZXQuaW5pdCgpIHBhcmEgc2VydmxldCB7MH0gbGFuelx1MDBGMyBleGNlcGNpXHUwMEYzbgpzdGFuZGFyZFdyYXBwZXIuaW5zdGFudGlhdGUgPSBFcnJvciBpbnN0YW5jaWFuZG8gY2xhc2UgZGUgc2VydmxldCB7MH0Kc3RhbmRhcmRXcmFwcGVyLmlzVW5hdmFpbGFibGUgPSBFbCBTZXJ2bGV0IHswfSBubyBlc3RcdTAwRTEgZGlzcG9uaWJsZSBlbiBlc3RlIG1vbWVudG8Kc3RhbmRhcmRXcmFwcGVyLm5vdENoaWxkID0gRWwgY29udGVuZWRvciBkZSBBcnJvcGFkb3IgKFdyYXBwZXIpIG5vIHB1ZWRlIHRlbmVyIGNvbnRlbmVkb3JlcyBoaWpvCnN0YW5kYXJkV3JhcHBlci5ub3RDbGFzcyA9IE5vIHNlIGhhIGVzcGVjaWZpY2FkbyBjbGFzZSBkZSBzZXJ2bGV0IHBhcmEgc2VydmxldCB7MH0Kc3RhbmRhcmRXcmFwcGVyLm5vdENvbnRleHQgPSBFbCBjb250ZW5lZG9yIHBhZHJlIHBhcmEgdW4gQXJyb3BhZG9yIChXcmFwcGVyKSBkZWJlIGRlIHNlciB1biBDb250ZXh0bwpzdGFuZGFyZFdyYXBwZXIubm90Rm91bmQgPSBObyBlc3RcdTAwRTEgZGlzcG9uaWJsZSBlbCBTZXJ2bGV0IHswfQpzdGFuZGFyZFdyYXBwZXIubm90U2VydmxldCA9IExhIENsYXNlIHswfSBubyBlcyB1biBTZXJ2bGV0CnN0YW5kYXJkV3JhcHBlci5yZWxlYXNlRmlsdGVycyA9IEV4Y2VwY2lcdTAwRjNuIGRlIExpYmVyYWNpXHUwMEYzbiBkZSBmaWx0cm9zIHBhcmEgc2VydmxldCB7MH0Kc3RhbmRhcmRXcmFwcGVyLnNlcnZpY2VFeGNlcHRpb24gPSBTZXJ2bGV0LnNlcnZpY2UoKSBwYXJhIHNlcnZsZXQgezB9IGxhbnpcdTAwRjMgZXhjZXBjaVx1MDBGM24Kc3RhbmRhcmRXcmFwcGVyLnNlcnZpY2VFeGNlcHRpb25Sb290ID0gRWwgU2VydmxldC5zZXJ2aWNlKCkgcGFyYSBlbCBzZXJ2bGV0IFt7MH1dIGVuIGVsIGNvbnRleHRvIGNvbiBydXRhIFt7MX1dIGxhbnpcdTAwRjMgbGEgZXhjZXBjaVx1MDBGM24gW3syfV0gY29uIGNhdXNhIHJhXHUwMEVEegpzdGFuZGFyZFdyYXBwZXIudW5hdmFpbGFibGUgPSBNYXJjYW5kbyBlbCBzZXJ2bGV0IHswfSBjb21vIG5vIGRpc3BvbmlibGUKc3RhbmRhcmRXcmFwcGVyLnVubG9hZEV4Y2VwdGlvbiA9IEVsIFNlcnZsZXQgezB9IGxhbnpcdTAwRjMgZXhjZXBjaVx1MDBGM24gdW5sb2FkKCkKc3RhbmRhcmRXcmFwcGVyLnVubG9hZGluZyA9IE5vIHB1ZWRvIHJlc2VydmFyIGVzcGFjaW8gcGFyYSBzZXJ2bGV0IHswfSBwb3JxdWUgZXN0XHUwMEUxIHNpZW5kbyBkZXNjYXJnYWRvCnN0YW5kYXJkV3JhcHBlci53YWl0aW5nID0gRXNwZXJhbmRvIHBvciB7MH0gaW5zdGFuY2lhKHMpIHBhcmEgcmVjdXBlcmFyIHN1IGVzcGFjaW8gcmVzZXJ2YWRvCnRocmVhZExvY2FsTGVha1ByZXZlbnRpb25MaXN0ZW5lci5saWZlY3ljbGVFdmVudC5lcnJvciA9IEV4Y2VwY2lcdTAwRjNuIHByb2Nlc2FuZG8gZXZlbnRvIGRlIGNpY2xvIGRlIHZpZGEgezB9CnRocmVhZExvY2FsTGVha1ByZXZlbnRpb25MaXN0ZW5lci5jb250YWluZXJFdmVudC5lcnJvciA9IEV4Y2VwY2lcdTAwRjNuIHByb2Nlc2FuZG8gZXZlbnRvIGRlIGNvbnRlbmVkb3IgezB9CmRlZmF1bHRJbnN0YW5jZU1hbmFnZXIucmVzdHJpY3RlZFNlcnZsZXRzUmVzb3VyY2UgPSBObyBzZSBoYSBoYWxsYWRvIGVsIGZpY2hlcm8gZGUgcHJvcGllZGFkZXMgcmVzdHJpbmdpZGFzIGRlIHNlcnZsZXRzCmRlZmF1bHRJbnN0YW5jZU1hbmFnZXIucmVzdHJpY3RlZEZpbHRlcnNSZXNvdXJjZSA9IE5vIHNlIGhhIGhhbGxhZG8gZWwgZmljaGVybyBkZSBwcm9waWVkYWRlcyByZXN0cmluZ2lkYXMgZGUgZmlsdHJvcwpkZWZhdWx0SW5zdGFuY2VNYW5hZ2VyLnJlc3RyaWN0ZWRMaXN0ZW5lcnNSZXNvdXJjZXMgPSBObyBzZSBoYSBoYWxsYWRvIGVsIGZpY2hlcm8gZGUgcHJvcGllZGFkZXMgcmVzdHJpbmdpZGFzIGRlIGVzY3VjaGFkb3Jlcwo=