<?xml version="1.0" encoding="utf-8" ?>
<otrs_package version="1.1">
    <Name>OAuth2</Name>
    <Version>11.0.2</Version>
    <Vendor>Rother OSS GmbH</Vendor>
    <URL>https://otobo.io/</URL>
    <License>GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007</License>
    <ChangeLog Date="2026-10-29 14:56:39" Version="11.0.2">Logging improvements; bugfixes; added translations.</ChangeLog>
    <ChangeLog Date="2026-01-28 10:52:14" Version="11.0.1">Initial Release.</ChangeLog>
    <Description Lang="en">OAuth2/OpenIDConnect Token Management.</Description>
    <Framework>11.0.x</Framework>
    <BuildCommitID>834a0b9ce43db9a92824310892ef672dbd279bc6</BuildCommitID>
    <BuildDate>2026-10-29 14:56:44</BuildDate>
    <BuildHost>opms.rother-oss.com</BuildHost>
    <Filelist>
        <File Location="var/httpd/htdocs/js/Core.Agent.Admin.GenericInterfaceTransportHTTPRESTWebserviceTicketInvoker.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAyMCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNiBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vICRvcmlnaW46IG90b2JvIC0gNmVmZGM3YmYyYTMzMjUyNzdjZDc5YTYwZjBmMjQwN2Y4YWQ1OWU4NyAtIHZhci9odHRwZC9odGRvY3MvanMvQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1RXZWJzZXJ2aWNlVGlja2V0SW52b2tlci5qcwovLyAtLQovLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgovLyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQovLyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgovLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKLy8gQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKLy8gRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIENvcmUgPSBDb3JlIHx8IHt9OwpDb3JlLkFnZW50ID0gQ29yZS5BZ2VudCB8fCB7fTsKQ29yZS5BZ2VudC5BZG1pbiA9IENvcmUuQWdlbnQuQWRtaW4gfHwge307CgovKioKICogQG5hbWVzcGFjZSBDb3JlLkFnZW50LkFkbWluLkdlbmVyaWNJbnRlcmZhY2VUcmFuc3BvcnRIVFRQUkVTVFdlYnNlcnZpY2VUaWNrZXRJbnZva2VyCiAqIEBtZW1iZXJvZiBDb3JlLkFnZW50LkFkbWluCiAqIEBhdXRob3IgUm90aGVyIE9TUyBHbWJICiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIHRoZSBHZW5lcmljSW50ZXJmYWNlIFRyYW5zcG9ydCBIVFRQIFJFU1QgbW9kdWxlLgogKi8KQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1RXZWJzZXJ2aWNlVGlja2V0SW52b2tlciA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICAvKioKICAgICAqIEBuYW1lIFJlbW92ZVZhbHVlCiAgICAgKiBAbWVtYmVyb2YgQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1RXZWJzZXJ2aWNlVGlja2V0SW52b2tlcgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gUmV0dXJucyBmYWxzZS4KICAgICAqIEBwYXJhbSB7U3RyaW5nfSBJRFNlbGVjdG9yIC0gSUQgb2YgdGhlIHByZXNzZWQgcmVtb3ZlIHZhbHVlIGJ1dHRvbi4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgYSB2YWx1ZSBmcm9tIGhlYWRlciBsaXN0CiAgICAgKi8KICAgIFRhcmdldE5TLlJlbW92ZVZhbHVlID0gZnVuY3Rpb24gKElEU2VsZWN0b3IpewoKICAgICAgICAvLyByZW1vdmUgZW50cnkKICAgICAgICAkKCcjJyArIElEU2VsZWN0b3IpLnBhcmVudCgpLnJlbW92ZSgpOwoKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9OwoKICAgIC8qKgogICAgICogQG5hbWUgUmVtb3ZlQ29udGFpbmVyCiAgICAgKiBAbWVtYmVyb2YgQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1RXZWJzZXJ2aWNlVGlja2V0SW52b2tlcgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gUmV0dXJucyBmYWxzZS4KICAgICAqIEBwYXJhbSB7U3RyaW5nfSBJRFNlbGVjdG9yIC0gSUQgb2YgdGhlIHByZXNzZWQgcmVtb3ZlIHZhbHVlIGJ1dHRvbi4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgYSBoZWFkZXIgY29udGFpbmVyCiAgICAgKi8KICAgIFRhcmdldE5TLlJlbW92ZUNvbnRhaW5lciA9IGZ1bmN0aW9uIChJRFNlbGVjdG9yKXsKCiAgICAgICAgLy8gY2xlYW51cCBvcGVyYXRpb24gc2VsZWN0aW9uCiAgICAgICAgdmFyIE9wZXJhdGlvbiA9ICQoJyMnICsgSURTZWxlY3RvcikucGFyZW50KCkucGFyZW50KCkuZmluZCgnW25hbWU9T3BlcmF0aW9uXScpLnZhbCgpOwogICAgICAgICQoJyNPdXRib3VuZEhlYWRlcnNPcGVyYXRpb25TZWxlY3Rpb24gb3B0aW9uW3ZhbHVlPSInICsgT3BlcmF0aW9uICsnIl0nKS5hdHRyKCdzZWxlY3RlZCcsIGZhbHNlKS5hdHRyKCdkaXNhYmxlZCcsIGZhbHNlKTsKICAgICAgICAkKCcjT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU2VsZWN0aW9uJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKTsKCgogICAgICAgIC8vIHJlbW92ZSBlbnRyeQogICAgICAgICQoJyNPcGVyYXRpb25PdXRib3VuZEhlYWRlcnMnICsgT3BlcmF0aW9uKS5yZXBsYWNlV2l0aCgnPGRpdiBjbGFzcz0iSGVhZGVyQ29udGFpbmVyIiBpZD0iT3BlcmF0aW9uT3V0Ym91bmRIZWFkZXJzJyArIE9wZXJhdGlvbiArICciPjwvZGl2PicpOwoKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9OwoKICAgIC8qKgogICAgICogQG5hbWUgQWRkQWRkaXRpb25hbFZhbHVlCiAgICAgKiBAbWVtYmVyb2YgQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1RXZWJzZXJ2aWNlVGlja2V0SW52b2tlcgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gUmV0dXJucyBmYWxzZQogICAgICogQHBhcmFtIHtPYmplY3R9IFZhbHVlSW5zZXJ0IC0gSFRNTCBjb250YWluZXIgb2YgdGhlIHZhbHVlIG1hcHBpbmcgcm93LgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gYWRkcyBhIG5ldyB2YWx1ZSB0byB0aGUgcG9zc2libGUgdmFsdWVzIGxpc3QKICAgICAqLwogICAgVGFyZ2V0TlMuQWRkQWRkaXRpb25hbFZhbHVlID0gZnVuY3Rpb24gKFZhbHVlSW5zZXJ0KSB7CgogICAgICAgIC8vIGNsb25lIGtleSBkaWFsb2cKICAgICAgICB2YXIgJENsb25lID0gJCgnLlZhbHVlVGVtcGxhdGUnKS5jbG9uZSgpLAogICAgICAgICAgICBWYWx1ZUNvdW50ZXIgPSAkKCcjVmFsdWVDb3VudGVyJykudmFsKCk7CgogICAgICAgIC8vIGluY3JlbWVudCBrZXkgY291bnRlcgogICAgICAgIFZhbHVlQ291bnRlcisrOwoKICAgICAgICAvLyByZW1vdmUgdW5uZWNlc3NhcnkgY2xhc3NlcwogICAgICAgICRDbG9uZS5yZW1vdmVDbGFzcygnSGlkZGVuIFZhbHVlVGVtcGxhdGUnKTsKCiAgICAgICAgLy8gYWRkIG5lZWRlZCBjbGFzcwogICAgICAgICRDbG9uZS5hZGRDbGFzcygnVmFsdWVSb3cnKTsKCiAgICAgICAgLy8gY29weSB2YWx1ZXMgYW5kIGNoYW5nZSBpZHMgYW5kIG5hbWVzCiAgICAgICAgJENsb25lLmZpbmQoJzppbnB1dCwgYS5SZW1vdmVCdXR0b24nKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHZhciBJRCA9ICQodGhpcykuYXR0cignaWQnKTsKICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdpZCcsIElEICsgJ18nICsgVmFsdWVDb3VudGVyKTsKICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCduYW1lJywgSUQgKyAnXycgKyBWYWx1ZUNvdW50ZXIpOwoKICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKCiAgICAgICAgICAgIC8vIHNldCBlcnJvciBjb250cm9scwogICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJyMnICsgSUQgKyAnRXJyb3InKS5hdHRyKCdpZCcsIElEICsgJ18nICsgVmFsdWVDb3VudGVyICsgJ0Vycm9yJyk7CiAgICAgICAgICAgICQodGhpcykucGFyZW50KCkuZmluZCgnIycgKyBJRCArICdFcnJvcicpLmF0dHIoJ25hbWUnLCBJRCArICdfJyArIFZhbHVlQ291bnRlciArICdFcnJvcicpOwoKICAgICAgICAgICAgJCh0aGlzKS5wYXJlbnQoKS5maW5kKCcjJyArIElEICsgJ1NlcnZlckVycm9yJykuYXR0cignaWQnLCBJRCArICdfJyArIFZhbHVlQ291bnRlciArICdTZXJ2ZXJFcnJvcicpOwogICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJyMnICsgSUQgKyAnU2VydmVyRXJyb3InKS5hdHRyKCduYW1lJywgSUQgKyAnXycgKyBWYWx1ZUNvdW50ZXIgKyAnU2VydmVyRXJyb3InKTsKCiAgICAgICAgICAgIC8vIGFkZCBldmVudCBoYW5kbGVyIHRvIHJlbW92ZSBidXR0b24KICAgICAgICAgICAgaWYoJCh0aGlzKS5oYXNDbGFzcygnUmVtb3ZlQnV0dG9uJykpIHsKICAgICAgICAgICAgICAgIC8vIGJpbmQgY2xpY2sgZnVuY3Rpb24gdG8gcmVtb3ZlIGJ1dHRvbgogICAgICAgICAgICAgICAgJCh0aGlzKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgVGFyZ2V0TlMuUmVtb3ZlVmFsdWUoJCh0aGlzKS5hdHRyKCdpZCcpKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAkQ2xvbmUuZmluZCgnbGFiZWwnKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHZhciBGT1IgPSAkKHRoaXMpLmF0dHIoJ2ZvcicpOwogICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ2ZvcicsIEZPUiArICdfJyArIFZhbHVlQ291bnRlcik7CiAgICAgICAgfSk7CiAgICAgICAgLy8gcHJlcGVuZCB0byBjb250YWluZXIKICAgICAgICBWYWx1ZUluc2VydC5wcmVwZW5kKCRDbG9uZSk7CgogICAgICAgIC8vIHNldCBuZXcgdmFsdWUgZm9yIEtleU5hbWUKICAgICAgICAkKCcjVmFsdWVDb3VudGVyJykudmFsKFZhbHVlQ291bnRlcik7CgogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAbmFtZSBBZGRWYWx1ZQogICAgICogQG1lbWJlcm9mIENvcmUuQWdlbnQuQWRtaW4uR2VuZXJpY0ludGVyZmFjZVRyYW5zcG9ydEhUVFBSRVNUV2Vic2VydmljZVRpY2tldEludm9rZXIKICAgICAqIEBmdW5jdGlvbgogICAgICogQHJldHVybnMge0Jvb2xlYW59IFJldHVybnMgZmFsc2UKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBWYWx1ZUluc2VydCAtIEhUTUwgY29udGFpbmVyIG9mIHRoZSB2YWx1ZSBtYXBwaW5nIHJvdy4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGFkZHMgYSBuZXcgdmFsdWUgdG8gdGhlIGhlYWRlciBsaXN0CiAgICAgKi8KICAgIFRhcmdldE5TLkFkZFZhbHVlID0gZnVuY3Rpb24gKFZhbHVlSW5zZXJ0KSB7CgogICAgICAgIC8vIGNsb25lIGtleSBkaWFsb2cKICAgICAgICB2YXIgJENsb25lID0gVmFsdWVJbnNlcnQucGFyZW50KCkuZmluZCgnLlZhbHVlVGVtcGxhdGUnKS5jbG9uZSgpLAogICAgICAgICAgICBWYWx1ZUNvdW50ZXIgPSBWYWx1ZUluc2VydC5wYXJlbnQoKS5maW5kKCcuVmFsdWVDb3VudGVyJykudmFsKCk7CgogICAgICAgIC8vIGluY3JlbWVudCBrZXkgY291bnRlcgogICAgICAgIFZhbHVlQ291bnRlcisrOwoKICAgICAgICAvLyByZW1vdmUgdW5uZWNlc3NhcnkgY2xhc3NlcwogICAgICAgICRDbG9uZS5yZW1vdmVDbGFzcygnSGlkZGVuIFZhbHVlVGVtcGxhdGUnKTsKCiAgICAgICAgLy8gY29weSB2YWx1ZXMgYW5kIGNoYW5nZSBpZHMgYW5kIG5hbWVzCiAgICAgICAgJENsb25lLmZpbmQoJzppbnB1dCwgYS5SZW1vdmVCdXR0b24nKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHZhciBJRCA9ICQodGhpcykuYXR0cignaWQnKTsKICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdpZCcsIElEICsgJ18nICsgVmFsdWVDb3VudGVyKTsKICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCduYW1lJywgSUQgKyAnXycgKyBWYWx1ZUNvdW50ZXIpOwoKICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKCiAgICAgICAgICAgIC8vIHNldCBlcnJvciBjb250cm9scwogICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJyMnICsgSUQgKyAnRXJyb3InKS5hdHRyKCdpZCcsIElEICsgJ18nICsgVmFsdWVDb3VudGVyICsgJ0Vycm9yJyk7CiAgICAgICAgICAgICQodGhpcykucGFyZW50KCkuZmluZCgnIycgKyBJRCArICdFcnJvcicpLmF0dHIoJ25hbWUnLCBJRCArICdfJyArIFZhbHVlQ291bnRlciArICdFcnJvcicpOwoKICAgICAgICAgICAgJCh0aGlzKS5wYXJlbnQoKS5maW5kKCcjJyArIElEICsgJ1NlcnZlckVycm9yJykuYXR0cignaWQnLCBJRCArICdfJyArIFZhbHVlQ291bnRlciArICdTZXJ2ZXJFcnJvcicpOwogICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJyMnICsgSUQgKyAnU2VydmVyRXJyb3InKS5hdHRyKCduYW1lJywgSUQgKyAnXycgKyBWYWx1ZUNvdW50ZXIgKyAnU2VydmVyRXJyb3InKTsKCiAgICAgICAgICAgIC8vIGFkZCBldmVudCBoYW5kbGVyIHRvIHJlbW92ZSBidXR0b24KICAgICAgICAgICAgaWYoJCh0aGlzKS5oYXNDbGFzcygnUmVtb3ZlQnV0dG9uJykpIHsKICAgICAgICAgICAgICAgIC8vIGJpbmQgY2xpY2sgZnVuY3Rpb24gdG8gcmVtb3ZlIGJ1dHRvbgogICAgICAgICAgICAgICAgJCh0aGlzKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgVGFyZ2V0TlMuUmVtb3ZlVmFsdWUoJCh0aGlzKS5hdHRyKCdpZCcpKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAkQ2xvbmUuZmluZCgnbGFiZWwnKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHZhciBGT1IgPSAkKHRoaXMpLmF0dHIoJ2ZvcicpOwogICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ2ZvcicsIEZPUiArICdfJyArIFZhbHVlQ291bnRlcik7CiAgICAgICAgfSk7CgogICAgICAgIC8vIGFwcGVuZCB0byBjb250YWluZXIKICAgICAgICBWYWx1ZUluc2VydC5maW5kKCcuVmFsdWVSb3dzJykuYXBwZW5kKCRDbG9uZSk7CgogICAgICAgIC8vIHNldCBuZXcgdmFsdWUgZm9yIEtleU5hbWUKICAgICAgICBWYWx1ZUluc2VydC5wYXJlbnQoKS5maW5kKCcuVmFsdWVDb3VudGVyJykudmFsKFZhbHVlQ291bnRlcik7CgogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAbmFtZSBBZGRDb250YWluZXIKICAgICAqIEBtZW1iZXJvZiBDb3JlLkFnZW50LkFkbWluLkdlbmVyaWNJbnRlcmZhY2VUcmFuc3BvcnRIVFRQUkVTVFdlYnNlcnZpY2VUaWNrZXRJbnZva2VyCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEByZXR1cm5zIHtCb29sZWFufSBSZXR1cm5zIGZhbHNlCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gT3BlcmF0aW9uIC0gY29udGFpbnMgc2VsZWN0ZWQgb3BlcmF0aW9uIGlkZW50aWZpZXIKICAgICAqIEBwYXJhbSB7U3RyaW5nfSBPcGVyYXRpb25OYW1lIC0gY29udGFpbnMgc2VsZWN0ZWQgb3BlcmF0aW9uIG5hbWUKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGFkZHMgYSBuZXcgY29udGFpbmVyIGZvciBzcGVjaWZpYyBoZWFkZXJzCiAgICAgKi8KICAgIFRhcmdldE5TLkFkZENvbnRhaW5lciA9IGZ1bmN0aW9uIChPcGVyYXRpb24sIE9wZXJhdGlvbk5hbWUpIHsKCiAgICAgICAgdmFyICRDbG9uZSwgQWN0aXZlSUQsICRJbnB1dExpc3RDb250YWluZXJPYmo7CgogICAgICAgIGlmICghT3BlcmF0aW9uIHx8ICQoJyNPcGVyYXRpb25PdXRib3VuZEhlYWRlcnMnICsgT3BlcmF0aW9uKS5oYXNDbGFzcygnSGVhZGVyQ29udGFpbmVyQWN0aXZlJykpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgLy8gY2xvbmUgYm94CiAgICAgICAgJENsb25lID0gJCgnLkNvbnRhaW5lclZhbHVlVGVtcGxhdGUnKS5jbG9uZSgpOwoKICAgICAgICAvLyByZW1vdmUgdW5uZWNlc3NhcnkgY2xhc3NlcwogICAgICAgICRDbG9uZS5yZW1vdmVDbGFzcygnSGlkZGVuIENvbnRhaW5lclZhbHVlVGVtcGxhdGUnKS5hZGRDbGFzcygnSGVhZGVyQ29udGFpbmVyQWN0aXZlJyk7CgogICAgICAgIC8vIGNoYW5nZSBpZHMgYW5kIG5hbWVzLCBzZXQgdmFsdWVzCiAgICAgICAgJENsb25lLmF0dHIoJ2lkJywgJ09wZXJhdGlvbk91dGJvdW5kSGVhZGVycycgKyBPcGVyYXRpb24pOwoKICAgICAgICBBY3RpdmVJRCA9ICRDbG9uZS5maW5kKCcuT3BlcmF0aW9uT3V0Ym91bmRIZWFkZXJzQWN0aXZlVGVtcGxhdGUnKTsKICAgICAgICBBY3RpdmVJRC5hdHRyKCdpZCcsICdPcGVyYXRpb25PdXRib3VuZEhlYWRlcnNBY3RpdmUnICsgT3BlcmF0aW9uKTsKICAgICAgICBBY3RpdmVJRC5hdHRyKCduYW1lJywgJ09wZXJhdGlvbk91dGJvdW5kSGVhZGVyc0FjdGl2ZScpOwogICAgICAgIEFjdGl2ZUlELnZhbChPcGVyYXRpb24pOwogICAgICAgIEFjdGl2ZUlELnJlbW92ZUNsYXNzKCdPcGVyYXRpb25PdXRib3VuZEhlYWRlcnNBY3RpdmVUZW1wbGF0ZScpOwoKICAgICAgICAkQ2xvbmUuZmluZCgnLlZhbHVlQ291bnRlcicpLnZhbCgnMCcpOwogICAgICAgICRDbG9uZS5maW5kKCcuT3BlcmF0aW9uJykuaHRtbChPcGVyYXRpb25OYW1lKTsKICAgICAgICAkQ2xvbmUuZmluZCgnW25hbWU9T3BlcmF0aW9uXScpLmF0dHIoJ2lkJywgJ09wZXJhdGlvbicgKyBPcGVyYXRpb24pLnZhbChPcGVyYXRpb24pOwoKICAgICAgICAkQ2xvbmUuZmluZCgnZGl2ID4gOmlucHV0LCBkaXYgPiBhLlJlbW92ZUJ1dHRvbiwgZGl2ID4gYS5BZGRWYWx1ZScpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyIElEID0gJCh0aGlzKS5hdHRyKCdpZCcpOwogICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ2lkJywgJ091dGJvdW5kSGVhZGVycycgKyBPcGVyYXRpb24gKyBJRCk7CiAgICAgICAgICAgICQodGhpcykuYXR0cignbmFtZScsICdPdXRib3VuZEhlYWRlcnMnICsgT3BlcmF0aW9uICsgSUQpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBiaW5kIGNsaWNrIGZ1bmN0aW9uIHRvIGFkZCBidXR0b24KICAgICAgICAkQ2xvbmUuZmluZCgnI091dGJvdW5kSGVhZGVycycgKyBPcGVyYXRpb24gKyAnQWRkVmFsdWUnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIFRhcmdldE5TLkFkZFZhbHVlKAogICAgICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCcuVmFsdWVJbnNlcnQnKQogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgIC8vIGJpbmQgY2xpY2sgZnVuY3Rpb24gdG8gcmVtb3ZlIGFsbCBidXR0b24KICAgICAgICAkQ2xvbmUuZmluZCgnI091dGJvdW5kSGVhZGVycycgKyBPcGVyYXRpb24gKyAnVmFsdWVSZW1vdmVBbGwnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIFRhcmdldE5TLlJlbW92ZUNvbnRhaW5lcigkKHRoaXMpLmF0dHIoJ2lkJykpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgIC8vIGFwcGVuZCB0byBjb250YWluZXIKICAgICAgICAkKCcjT3BlcmF0aW9uT3V0Ym91bmRIZWFkZXJzJyArIE9wZXJhdGlvbikucmVwbGFjZVdpdGgoJENsb25lKTsKCiAgICAgICAgLy8gY2xlYW51cCBvcGVyYXRpb24gc2VsZWN0aW9uCiAgICAgICAgJElucHV0TGlzdENvbnRhaW5lck9iaiA9ICQoJ2JvZHkgPiAuSW5wdXRGaWVsZF9MaXN0Q29udGFpbmVyJykuZmlyc3QoKS5maW5kKCcjT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU2VsZWN0aW9uX1NlbGVjdCcpOwogICAgICAgICRJbnB1dExpc3RDb250YWluZXJPYmouanN0cmVlKCdkZXNlbGVjdF9ub2RlJywgJElucHV0TGlzdENvbnRhaW5lck9iai5qc3RyZWUoJ2dldF9zZWxlY3RlZCcpKTsKCiAgICAgICAgJCgnI091dGJvdW5kSGVhZGVyc09wZXJhdGlvblNlbGVjdGlvbiBvcHRpb25bdmFsdWU9IicgKyBPcGVyYXRpb24gKyciXScpLmF0dHIoJ3NlbGVjdGVkJywgZmFsc2UpLmF0dHIoJ2Rpc2FibGVkJywgdHJ1ZSk7CiAgICAgICAgJCgnI091dGJvdW5kSGVhZGVyc09wZXJhdGlvblNlbGVjdGlvbicpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJyk7CgogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbWVtYmVyb2YgQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1RXZWJzZXJ2aWNlVGlja2V0SW52b2tlcgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBiaW5kcyBldmVudHMgdG8gY2VydGFpbiBhY3Rpb25zCiAgICAgKi8KICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgIC8vIGJpbmQgY2hhbmdlIGZ1bmN0aW9uIHRvIEF1dGhlbnRpY2F0aW9uIGZpZWxkCiAgICAgICAgJCgnI0F1dGhUeXBlJykub24oJ2NoYW5nZScsIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIGlmICgkKHRoaXMpLnZhbCgpID09PSAnQmFzaWNBdXRoJykgewogICAgICAgICAgICAgICAgJCgnLkJhc2ljQXV0aEZpZWxkJykucmVtb3ZlQ2xhc3MoJ0hpZGRlbicpOwogICAgICAgICAgICAgICAgJCgnLkJhc2ljQXV0aEZpZWxkJykuZmluZCgnI0Jhc2ljQXV0aFVzZXInKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgJCgnLktlcmJlcm9zRmllbGQnKS5hZGRDbGFzcygnSGlkZGVuJyk7CiAgICAgICAgICAgICAgICAkKCcuS2VyYmVyb3NGaWVsZCcpLmZpbmQoJyNLZXJiZXJvc1VzZXInKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKICAgICAgICAgICAgICAgIH0pOwovLyBSb3RoZXIgT1NTIC8gT0F1dGgyCiAgICAgICAgICAgICAgICAkKCcuT0F1dGhBdXRoRmllbGQnKS5hZGRDbGFzcygnSGlkZGVuJyk7Ci8vIEVPIC8gT0F1dGgyCiAgICAgICAgICAgIH0KICAgICAgICAgICBlbHNlIGlmICgkKHRoaXMpLnZhbCgpID09PSAnS2VyYmVyb3MnKSB7CiAgICAgICAgICAgICAgICAkKCcuS2VyYmVyb3NGaWVsZCcpLnJlbW92ZUNsYXNzKCdIaWRkZW4nKTsKICAgICAgICAgICAgICAgICQoJy5LZXJiZXJvc0ZpZWxkJykuZmluZCgnI0tlcmJlcm9zVXNlcicpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAkKCcuQmFzaWNBdXRoRmllbGQnKS5hZGRDbGFzcygnSGlkZGVuJyk7CiAgICAgICAgICAgICAgICAkKCcuQmFzaWNBdXRoRmllbGQnKS5maW5kKCcjQmFzaWNBdXRoVXNlcicpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgICAgICAgICAgfSk7Ci8vIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICAgICAgICAgICQoJy5PQXV0aEF1dGhGaWVsZCcpLmFkZENsYXNzKCdIaWRkZW4nKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmICgkKHRoaXMpLnZhbCgpID09PSAnT0F1dGgnKSB7CiAgICAgICAgICAgICAgICAkKCcuT0F1dGhBdXRoRmllbGQnKS5yZW1vdmVDbGFzcygnSGlkZGVuJyk7CgogICAgICAgICAgICAgICAgJCgnLkJhc2ljQXV0aEZpZWxkJykuYWRkQ2xhc3MoJ0hpZGRlbicpOwogICAgICAgICAgICAgICAgJCgnLkJhc2ljQXV0aEZpZWxkJykuZmluZCgnI0Jhc2ljQXV0aFVzZXInKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgJCgnLktlcmJlcm9zRmllbGQnKS5hZGRDbGFzcygnSGlkZGVuJyk7CiAgICAgICAgICAgICAgICAkKCcuS2VyYmVyb3NGaWVsZCcpLmZpbmQoJyNLZXJiZXJvc1VzZXInKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgQ29yZS5VSS5JbnB1dEZpZWxkcy5Jbml0U2VsZWN0KCAkKCcjT0F1dGhBY2NvdW50TmFtZScpICk7Ci8vIEVPIC8gT0F1dGgyCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkKCcuQmFzaWNBdXRoRmllbGQnKS5hZGRDbGFzcygnSGlkZGVuJyk7CiAgICAgICAgICAgICAgICAkKCcuQmFzaWNBdXRoRmllbGQnKS5maW5kKCcjQmFzaWNBdXRoVXNlcicpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAkKCcuS2VyYmVyb3NGaWVsZCcpLmFkZENsYXNzKCdIaWRkZW4nKTsKICAgICAgICAgICAgICAgICQoJy5LZXJiZXJvc0ZpZWxkJykuZmluZCgnI0tlcmJlcm9zVXNlcicpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgICAgICAgICAgfSk7Ci8vIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICAgICAgICAgICQoJy5PQXV0aEF1dGhGaWVsZCcpLmFkZENsYXNzKCdIaWRkZW4nKTsKLy8gRU8gLyBPQXV0aDIKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvLyBiaW5kIGNoYW5nZSBmdW5jdGlvbiB0byBVc2UgUHJveHkgZmllbGQKICAgICAgICAkKCcjVXNlUHJveHknKS5vbignY2hhbmdlJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgaWYgKCQodGhpcykudmFsKCkgPT09ICdZZXMnKSB7CiAgICAgICAgICAgICAgICAkKCcuUHJveHlGaWVsZCcpLnJlbW92ZUNsYXNzKCdIaWRkZW4nKTsKICAgICAgICAgICAgICAgICQoJyNQcm94eUV4Y2x1ZGUnKS5hZGRDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKICAgICAgICAgICAgICAgIENvcmUuVUkuSW5wdXRGaWVsZHMuQWN0aXZhdGUoJCgnLlByb3h5RmllbGQnKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkKCcuUHJveHlGaWVsZCcpLmFkZENsYXNzKCdIaWRkZW4nKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvLyBiaW5kIGNoYW5nZSBmdW5jdGlvbiB0byBVc2UgU1NMIGZpZWxkCiAgICAgICAgJCgnI1VzZVNTTCcpLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbigpewogICAgICAgICAgICBpZiAoJCh0aGlzKS52YWwoKSA9PT0gJ1llcycpIHsKICAgICAgICAgICAgICAgICQoJy5TU0xGaWVsZCcpLnJlbW92ZUNsYXNzKCdIaWRkZW4nKTsKCiAgICAgICAgICAgICAgICAvLyBpbml0aWFsaXplIG1vZGVybml6ZWQgc2VsZWN0aW9ucwogICAgICAgICAgICAgICAgQ29yZS5VSS5JbnB1dEZpZWxkcy5BY3RpdmF0ZSgkKCcuU1NMRmllbGQnKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJCgnLlNTTEZpZWxkJykuYWRkQ2xhc3MoJ0hpZGRlbicpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIHNwZWNpYWwgaGFuZGxpbmcgZm9yIHZhbHVlIGNvdW50ZXIKICAgICAgICAkKCcuVmFsdWVSb3cgOmlucHV0W25hbWVePSJLZXkiXScpLmVhY2goZnVuY3Rpb24oaSl7CgogICAgICAgICAgICAvLyBzZXQgdmFsdWUgY291bnRlcgogICAgICAgICAgICAkKCcjVmFsdWVDb3VudGVyJykudmFsKGkgKyAxKTsKICAgICAgICB9KQoKICAgICAgICAvL2JpbmQgY2xpY2sgZnVuY3Rpb24gdG8gYWRkIGJ1dHRvbgogICAgICAgICQoJyNBZGRWYWx1ZScpLm9uKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgVGFyZ2V0TlMuQWRkQWRkaXRpb25hbFZhbHVlKAogICAgICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCdmaWVsZHNldCcpLmZpbmQoJy5WYWx1ZUluc2VydCcpCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKCiAgICAgICAgLy9iaW5kIGNsaWNrIGZ1bmN0aW9uIHRvIHJlbW92ZSBidXR0b24KICAgICAgICAkKCcuVmFsdWVSZW1vdmUnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIFRhcmdldE5TLlJlbW92ZVZhbHVlKCQodGhpcykuYXR0cignaWQnKSk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gYmluZCBjaGFuZ2UgZnVuY3Rpb24gdG8gb3BlcmF0aW9uIHNlbGVjdGlvbiBmaWVsZAogICAgICAgICQoJyNPdXRib3VuZEhlYWRlcnNPcGVyYXRpb25TZWxlY3Rpb24nKS5vbignY2hhbmdlJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgVGFyZ2V0TlMuQWRkQ29udGFpbmVyKAogICAgICAgICAgICAgICAgJCh0aGlzKS52YWwoKSwKICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc1t0aGlzLnNlbGVjdGVkSW5kZXhdLnRleHQKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0pOwoKICAgICAgICAvL2JpbmQgY2xpY2sgZnVuY3Rpb24gdG8gYWRkIGJ1dHRvbnMKICAgICAgICAkKCcuQWRkVmFsdWUnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIFRhcmdldE5TLkFkZFZhbHVlKAogICAgICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCcuVmFsdWVJbnNlcnQnKQogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgIC8vYmluZCBjbGljayBmdW5jdGlvbiB0byByZW1vdmUgYnV0dG9uCiAgICAgICAgJCgnLlZhbHVlUmVtb3ZlJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICBUYXJnZXROUy5SZW1vdmVWYWx1ZSgkKHRoaXMpLmF0dHIoJ2lkJykpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgIC8vIGJpbmQgY2xpY2sgZnVuY3Rpb24gdG8gcmVtb3ZlIGFsbCBidXR0b24KICAgICAgICAkKCcuVmFsdWVSZW1vdmVBbGwnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIFRhcmdldE5TLlJlbW92ZUNvbnRhaW5lcigkKHRoaXMpLmF0dHIoJ2lkJykpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1RXZWJzZXJ2aWNlVGlja2V0SW52b2tlciB8fCB7fSkpOwo=</File>
        <File Location="var/httpd/htdocs/js/Core.Agent.Admin.OAuth2Module.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAyMCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNSBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgQ29yZSA9IENvcmUgfHwge307CkNvcmUuQWdlbnQgPSBDb3JlLkFnZW50IHx8IHt9OwpDb3JlLkFnZW50LkFkbWluID0gQ29yZS5BZ2VudC5BZG1pbiB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlIG9yZS5BZ2VudC5BZG1pbi5PQXV0aDJNb2R1bGUKICogQG1lbWJlcm9mIENvcmUuQWdlbnQuQWRtaW4KICogQGF1dGhvciBSb3RoZXIgT1NTIEdtYkgKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgdGhlIE9BdXRoMiBUb2tlbiBTdG9yZS4KICovCkNvcmUuQWdlbnQuQWRtaW4uT0F1dGgyTW9kdWxlID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIHZhciBUb2dnbGVHcmFudFR5cGUgPSBmdW5jdGlvbigpIHsKCiAgICAgICAgaWYoICQoJyNHcmFudFR5cGUnKS5sZW5ndGggPT0gMCkgcmV0dXJuOwoKICAgICAgICB2YXIgR3JhbnRUeXBlID0gJCgnI0dyYW50VHlwZScpWzBdLnZhbHVlOwogICAgICAgIGlmKEdyYW50VHlwZSA9PSAncGFzc3dvcmQnKSB7CgogICAgICAgICAgICAkKCJbZm9yfD0nVXNlcm5hbWUnXSIpLnNob3coKTsKICAgICAgICAgICAgJCgiW2Zvcnw9J1Bhc3N3b3JkJ10iKS5zaG93KCk7CiAgICAgICAgICAgICQoJyNVc2VybmFtZUZpZWxkJykuc2hvdygpOwogICAgICAgICAgICAkKCcjUGFzc3dvcmRGaWVsZCcpLnNob3coKTsKCiAgICAgICAgICAgICQoJyNVc2VybmFtZScpLmFkZENsYXNzKCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgICAgICAkKCcjUGFzc3dvcmQnKS5hZGRDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAkKCJbZm9yfD0nVXNlcm5hbWUnXSIpLmhpZGUoKQogICAgICAgICAgICAkKCJbZm9yfD0nUGFzc3dvcmQnXSIpLmhpZGUoKTsKICAgICAgICAgICAgJCgnI1VzZXJuYW1lRmllbGQnKS5oaWRlKCk7CiAgICAgICAgICAgICQoJyNQYXNzd29yZEZpZWxkJykuaGlkZSgpOwoKICAgICAgICAgICAgJCgnI1VzZXJuYW1lJykucmVtb3ZlQ2xhc3MoJ1ZhbGlkYXRlX1JlcXVpcmVkJyk7CiAgICAgICAgICAgICQoJyNQYXNzd29yZCcpLnJlbW92ZUNsYXNzKCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgIH0KICAgIH07CgogICAgdmFyIENvcHkyQ2xpcGJvYXJkID0gZnVuY3Rpb24odmFsdWUpIHsKCiAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodmFsdWUpLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGFsZXJ0KCJUb2tlbiBjb3BpZWQgdG8gY2xpcGJvYXJkISIpOwogICAgICAgIH0sIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICBhbGVydCgiRmFpbGVkIHRvIGNvcHkgVG9rZW4gdG8gY2xpcGJvYXJkISIpOwogICAgICAgIH0pOwogICAgfTsKCiAgICAvKioKICAgICAqIEBuYW1lIEluaXQKICAgICAqIEBtZW1iZXJvZiBDb3JlLkFnZW50LkFkbWluLk9BdXRoMk1vZHVsZQogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBiaW5kcyBldmVudHMgdG8gY2VydGFpbiBhY3Rpb25zCiAgICAgKi8KICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgIFRvZ2dsZUdyYW50VHlwZSgpOwoKICAgICAgICAkKCcjR3JhbnRUeXBlJykub24oICdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgVG9nZ2xlR3JhbnRUeXBlKCk7CiAgICAgICAgfSk7CgogICAgICAgICQoJy5Db3B5VG9rZW4nKS5vbiggJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIENvcHkyQ2xpcGJvYXJkKHRoaXMuZ2V0QXR0cmlidXRlKCd0b2tlbicpKTsKICAgICAgICB9KTsKCiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oQ29yZS5BZ2VudC5BZG1pbi5PQXV0aDJNb2R1bGUgfHwge30pKTsK</File>
        <File Location="Kernel/Language/de_OAuth2.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOeKAkzIwMjEgRWZmbHV4IEdtYkgsIGh0dHBzOi8vZWZmbHV4LmRlLwojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjpkZV9PQXV0aDI7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIEFkbWluT0F1dGhUb2tlblN0b3JlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50IE5hbWUgaXMgbWlzc2luZyEnfSA9ICdLb250byBOYW1lIGlzdCBlcmZvcmRlcmxpY2ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ1VzZXJuYW1lIGlzdCBlcmZvcmRlcmxpY2ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bhc3N3b3JkIGlzIHJlcXVpcmVkISd9ID0gJ1Bhc3N3b3JkIGlzdCBlcmZvcmRlcmxpY2ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjY291bnQgTmFtZSBpcyB0YWtlbiEnfSA9ICdLb250byBOYW1lIGlzdCBiZXJlaXRzIHZlcmdlYmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciBjcmVhdGluZy91cGRhdGluZyAlcyEnfSA9ICdGZWhsZXIgYmVpbSBFcnN0ZWxsZW4vQWt0dWFsaXNpZXJlbiB2b24gJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBnZW5lcmF0ZSBPSURDIFByb3ZpZGVyIEF1dGhlbnRpY2F0aW9uIFVSTCBmb3IgTG9naW4uIEludmFsaWQgT0lDRCBDb25maWd1cmF0aW9uISd9ID0gJ0RlciBPSURDIFByb3ZpZGVyIEF1dGhlbnRpY2F0aW9uIFVSTCB6dW0gTG9naW4ga29ubnRlIG5pY2h0IGdlbmVyaWVydCB3ZXJkZW4uIEludmFsaWRlIE9JQ0QgS29uZmlndXJhdGlvbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudCAlcyBkZWxldGVkISd9ID0gJ0tvbnRvICVzIGdlbMO2c2NodCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9rZW4gJXMgdXBkYXRlZCEnfSA9ICdUb2tlbiAlcyBha3R1YWxpc2llcnQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgT0F1dGggU3RhdGUhJ30gPSAnSW52YWxpZGVyIE9BdXRoIFN0YXRlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIEFjY291bnQgJXMgZm9yIFRva2VuISInfSA9ICdJbnZhbGlkZXMgS29udG8gJXMgZsO8ciBUb2tlbiEiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgSXNzdWVyICVzIGZvciBUb2tlbiAlcyEnfSA9ICdJbnZhbGlkZXIgSXNzdWVyICVzIGbDvHIgVG9rZW4gJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIGZldGNoaW5nIGluaXRpYWwgVG9rZW4gZm9yICVzISd9ID0gJ0ZlaGxlciBiZWltIGJlcmVpdHN0ZWxsZW4gZGVzIGluaXRpYWxlbiBUb2tlbnMgZsO8ciAlcyEnOwoKICAgICMgVG9rZW5Qcm92aWRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudElEICVzIG5vdCBmb3VuZCEnfSA9ICdLb250byBtaXQgSUQgJXMgbmljaHQgZ2VmdW5kZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZhbGlkIHJlZnJlc2hfdG9rZW4gZm9yIEFjY291bnQgJXMgdXNpbmcgZ3JhbnRfdHB5ZSBcJ2F1dGhvcml6YXRpb24gY29kZVwnICEnfSA9ICdFcyBleGlzaXRpZXIga2VpbiB2YWxpZGVzIHJlZnJlc2hfdG9rZW4gZsO8ciBkYXMgS29udG8gJXMgdW5kIGdyYW50X3RweWUgXCdhdXRob3JpemF0aW9uIGNvZGVcJyAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgZnVuY3Rpb25hbCBhY2NvdW50IEludm9rZXIgc2V0dGluZ3MgaW4gU3lzQ29uZmlnIGZvciAlcy4nfSA9ICdGZWhsZW5kZSBFaW5zdGVsbHVuZ2VuIGbDvHIgZGFzIGZ1bmt0aW9uYWxlIEtvbnRvICVzIGluIGRlciBTeXN0ZW0gS29uZmlndXJhdGlvbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGdldCB0aGUgT0F1dGgyIHRva2VuX2VuZHBvaW50IGZvciBJbnZva2VyLid9ID0gJ0RlciBPQXV0aDIgdG9rZW5fZW5kcG9pbnQga29ubnRlIG5pY2h0IGJlcmVpdCBnZXN0ZWxsdCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIGZldGNoaW5nIFRva2VuIGZvciBJbnZva2VyOiAlcyd9ID0gJ0ZlaGxlciBiZWltIEFiaG9sZW4gZGVzIE9BdXRoMiBUb2tlbiBmb3IgSW52b2tlcjogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGlkIG5vdCByZWNlaXZlIHRoZSBkZXNpcmVkIFRva2VuVHlwZSBcJyVzXCcgaW4gT0lEQyBwcm92aWRlciByZXNwb25zZSBmb3IgSW52b2tlciAlcyEnfSA9ICdEZXIgZXJ3YXJ0ZXRlIFRva2VuIFR5cCBcJyVzXCcgZsO8ciAlcyB3YXIgaW4gZGVyIE9JREMgUHJvdmlkZXIgQW50d29ydCBuaWNodCBlbnRoYWx0ZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgbGVmdCBvbiBmcmVzaCB0b2tlbiBpczogJXMgcyBmb3IgSW52b2tlciAlcyEnfSA9ICdWZXJibGVpYmVuZGUgWmVpdCBmw7xyIGFrdHVlbGxlcyBUb2tlbiBpc3Q6ICVzIHMgZsO8ciBJbnZva2VyICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIENsaWVudElEIGFuZCBDbGllbnRTZWNyZXQhJ30gPSAnQ2xpZW50SUQgYW5kIENsaWVudFNlY3JldCBmZWhsZW4gaW4gZGVyIE9JREMgUHJvZmlsIEtvbmZpZ3VyYXRpb24hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvdCBubyBjb250ZW50IHdoZW4gcmVxdWVzdGluZyBUb2tlbi4gUmVzcG9uc2UgQ29kZTogJXMnfSA9ICdMZWVyZSBBbnR3b3J0IGluIGRlciBUb2tlbiBBbmZyYWdlLiBSZXNwb25zZSBDb2RlOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHb3Qgbm8gSlNPTiBvYmplY3Qgd2hlbiByZXF1ZXN0aW5nIFRva2VuLiBSZXNwb25zZTogJXMnfSA9ICdEaWUgQW50d29ydCBpbiBkZXIgVG9rZW4gQWJyYWdlIGVudGhpZWx0IGtlaW4gSlNPTiBPYmpla3QuIFJlc3BvbnNlOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogJXMuIERlc2NyaXB0aW9uOiAlcyd9ID0gJ0ZlaGxlcjogJXMuIEJlc2NocmVpYnVuZzogJXMnOwoKICAgICMgSy9HSS9PL1MvQ29tbW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVuSUQgQ29ubmVjdCBDb25maWcgaXMgSW52YWxpZC4nfSA9ICdPcGVuSUQgQ29ubmVjdCBLb25maWd1cmF0aW9uIGlzdCBpbnZhbGlkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE9wZW5JRCBDb25uZWN0IENvbmZpZyAtIG1pc3NpbmcgJE5lZWRlZC4nfSA9ICdJbnZhbGlkZSBPcGVuSUQgQ29ubmVjdCBLb25maWd1cmF0aW9uIC0gZXMgZmVobHQgJXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rva2VuIGludmFsaWQ6IGNsYWltICVzIG5vdCBpbmNsdWRlZC4nfSA9ICdUb2tlbiBpbnZhbGlkOiBjbGFpbSAlcyBuaWNodCBlbnRoYWx0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzxpYXQ+IGNsYWltIGludmFsaWQuIFRva2VuIGNyZWF0aW9uIHRpbWUgaXMgaW4gdGhlIGZ1dHVyZS4gVG9rZW46ICVzOyBDdXJyZW50OiAkJXM7J30gPSAnPGlhdD4gY2xhaW0gaW52YWxpZC4gRXJzdGVsbHVuZ3N6ZWl0IGRlcyBUb2tlbnMgaXN0IGluIGRlciBadWt1bmZ0LiBUb2tlbjogJXM7IEpldHp0OiAkJXM7JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzxleHA+IGludmFsaWQuIFRva2VuIGV4cGlyZWQuIEV4cGlyYXRpb24gVGltZTogJXM7IEN1cnJlbnQ6ICVzOyd9ID0gJzxleHA+IGludmFsaWQuIFRva2VuIGFiZ2VsYXVmZW4uIEFibGF1ZnplaXRwdW5rdDogJXM7IEpldHp0OiAlczsnOwoKICAgICMgSy9HSS9UL0gvUkVTVC5wbQoKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIGZldGNoaW5nIHRoZSBPQXV0aDIgVG9rZW4nfSA9ICdGZWhsZXIgYmVpbSBBYmhvbGVuIGRlcyBPQXV0aDIgVG9rZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXR0YWNoZWQgT0F1dGgyIEJlYXJlciBUb2tlbid9ID0gJ09BdXRoMiBCZWFyZXIgVG9rZW4gaGluenVnZWbDvGd0JzsKCiAgICAjIEFkbWluT0F1dGhUb2tlblN0b3JlLnR0CgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT0F1dGgyIFRva2VuIE1hbmFnZW1lbnQgKE9JREMpJ30gPSAnT0F1dGgyIFRva2VuIE1hbmFnZW1lbnQgKE9JREMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wZW5JRCBDb25uZWN0IEZ1bmN0aW9uYWwgT0F1dGgyIEFjY291bnQgTWFuYWdlbWVudCd9ID0gJ09wZW5JRCBDb25uZWN0IE1hbmFnZW1lbnQgZsO8ciBGdW5rdGlvbmFsZSBLb250ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEFjY291bnQnfSA9ICdLb250byBoaW56dWbDvGhnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBBY2NvdW50ICd9ID0gJ0tvbnRvIGJlYXJiZWl0ZW46ICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBYm91dCBPSURDIEZ1bmN0aW9uYWwgQWNjb3VudHMnfSA9ICdPSURDIEZ1bmt0aW9uYWxlIEtvbnRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHBhZ2UgZGlzcGxheXMgYW4gb3ZlcnZpZXcgb2YgY29uZmlndXJlZCBmdW5jdGlvbmFsIE9BdXRoIEFjY291bnRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIFRva2VuIFN0YXR1cy4nfSA9ICfDnGJlcmJsaWNrIMO8YmVyIGRpZSBrb25maWd1cmllcnRlbiBmdW5rdGlvaW5hbGVuIE9BdXRoMiBLb250ZW4gdW5kIGRlcmVuIGFrdHVlbGxlbSBUb2tlbiBTdGF0dXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IllvdSBjYW4gdGVzdCB5b3VyIENvbmZpZ3VyYXRpb24gd2l0aCBhIGNsaWNrIG9uIHRoZSAnUmVuZXcnIEJ1dHRvbiwgd2hpY2ggd2lsbCB0cnkgdG8gZmV0Y2ggb3IgcmVmcmVzaCBhIG5ldyBUb2tlbi4ifSA9ICdNaXQgZWluZW0gS2xpY2sgYXVmIGRlbiBcJ0FrdHVhbGlzaWVyZW5cJyBCdXR0b24ga2FubiBkaWUgamV3ZWlsaWdlIEtvbmZpZ3VyYXRpdW9uIMO8YmVycHLDvGZ0IHdlcmRlbi4nOwojICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCd9ID0gJ0FkZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWNjb3VudCd9ID0gJ0tvbnRvIEzDtnNjaGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09BdXRoMiBUb2tlbiBiYWNrZWQgQWNjb3VudHMnfSA9ICdPQXV0aDIgVG9rZW4gYmFzaWVyZW5kZSBmdW5rdGlvbmFsZSBLb250ZW4nOwojICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3RvdGFsJ30gPSAndG90YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgYXJlIG5vIE9BdXRoMiBhY2NvdW50cyBkZWZpbmVkLid9ID0gJ0VzIHNpbmQgbm9jaCBrZWluZSBmdW5rdGlvbmFsZW4gT0F1dGgyIEtvbnRlbiBkZWZpbmllcnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjY291bnQgTmFtZSd9ID0gJ0tvbnRvIE5hbWUnOwojICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zsb3cnfSA9ICdGbG93JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hhcyBUb2tlbj8nfSA9ICdUb2tlbiB2b3JoYW5kZW4/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZnJlc2ggVG9rZW4gRXhwaXJlcyd9ID0gJ1JlZnJlc2ggVG9rZW4gR8O8bHRpZyBiaXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVuZXcgVG9rZW4nfSA9ICdBa3R1YWxpc2llcmUgVG9rZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVuZXcnfSA9ICdBa3R1YWxpc2llcmVuJzsKIyAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBtYXRjaGVzIGZvdW5kLid9ID0gJ05vIG1hdGNoZXMgZm91bmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJbnZva2VyIEFjY291bnQnfSA9ICdJbnZva2VyIEtvbnRvIGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2tlciBBY2NvdW50J30gPSAnSW52b2tlciBLb250byBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB1bmlxdWUgbmFtZSBmb3IgdGhpcyBBY2NvdW50Lid9ID0gJ0RlciBlaW5kZXV0aWdlIE5hbWUgZsO8ciBkaWVzZXMgS29udG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBPcGVuSUQgQ29ubmVjdCd9ID0gJ0RlciBPcGVuSUQgQ29ubmVjdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd0byB1c2UgZm9yIHRoaXMgZnVuY3Rpb25hbCBhY2NvdW50Lid9ID0gJ2RlciBmw7xyIGRpZXNlcyBmdW5rdGlvbmFsZSBLb250byBiZW51dHp0IHdlcmRlbiBzb2xsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgT0F1dGgyIGdyYW50X3R5cGUgdG8gdXNlIGZvciBhY3F1aXJpbmcgdG9rZW5zIGZvciB0aGlzIGFjY291bnQuJ30gPSAnRGVyIE9BdXRoMiBncmFudF90eXBlIGbDvHIgZGllc2VzIEtvbnRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTZWxlY3RpbmcgJ2F1dGhvcml6YXRpb25fY29kZScgd2lsbCByZWRpcmVjdCB5b3UgdG8geW91ciBPcGVuSUQgQ29ubmVjdCBQcm92aWRlcidzIExvZ2luIFBhZ2UgdG8gdmFsaWRhdGUgeW91ciBhY2NvdW50IG9uY2UgeW91IGNsaWNrICdTYXZlJy4ifSA9ICJEaWUgQXVzd2FobCB2b24gJ2F1dGhvcml6YXRpb25fY29kZScgbMO2c3QgZWluZW4gQnJvd3NlciBSZWRpcmVjdCB6dXIgTG9naW4gU2VpdGUgSWhyZXMgT0lEQyBQcm92aWRlcnMuIjsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09JREMgUHJvZmlsZSd9ID0gJ09JREMgUHJvZmlsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW50IFR5cGUnfSA9ICdHcmFudCBUeXBlJzsKIyAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VybmFtZSd9ID0gJ1VzZXJuYW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB1c2VybmFtZSBpZiBncmFudCB0eXBlIGlzIFwncGFzc3dvcmQuXCcuJ30gPSAnRGVyIFVzZXJuYW1lIGJlaSBncmFudCB0eXBlIGdsZWljaCBcJ3Bhc3N3b3JkXCcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwYXNzd29yZCB0byB1c2UgaWYgZ3JhbnQgdHlwZSBpcyBcJ3Bhc3N3b3JkXCcuJ30gPSAnRGFzIFBhc3N3b3J0IGJlaSBncmFudCB0eXBlIGdsZWljaCBcJ3Bhc3N3b3JkXCcuJzsKCiMgICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFzc3dvcmQnfSA9ICdQYXNzd29yZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPQXV0aDIgU2NvcGVzJ30gPSAnT0F1dGgyIFNjb3Blcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGFjZSBzZXBhcmF0ZSBsaXN0IG9mIE9BdXRoMiBzY29wZXMgdG8gdXNlLiBVc3VhbCB2YWx1ZXMgaW5jbHVkZSBvcGVuaWQsIGVtYWlsLCBwcm9maWxlLCBhbmQgcm9sZXMuJ30gPSAnTGVlcnplaWNoZW4gZ2V0cmVubnRlIExpc3RlIHZvbiBPQXV0aDIgc2NvcGVzLiDDnGJsaWNoZSBXZXJ0ZSBzaW5kIG9wZW5pZCwgZW1haWwsIHByb2ZpbGUsIHVuZCByb2xlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWR2YW5jZWQgSW52b2tlciBTZXR0aW5ncyd9ID0gJ0Vyd2VpdGVydGUgSW52b2tlciBFaW5zdGVsbHVuZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc291cmNlcyd9ID0gJ1Jlc291cmNlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcHRpb25hbCAoc3BhY2Ugc2VwZXJhdGVkIGxpc3QpIGZvciB0aGUgcmVzb3VyY2UgcGFyYW1hdGVyIGlmIHJlcXVpcmVkLiBMZWF2ZSBlbXB0eSB1bmxlc3MgaW5zdHJ1Y3RlZCBvdGhlcndpc2UuJ30gPSAnT3B0aW9uYWxlLCBMZWVyemVpY2hlbiBnZXRyZW5udGUgTGlzdGUgZsO8ciBkZW4gUmVzb3VyY2UgUGFyYW1hdGVyLCBzb2Zlcm4gYmVuw7Z0aWd0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNvdXJjZSBQYXJhbWV0ZXIgTmFtZSd9ID0gJ1Jlc291cmNlIFBhcmFtZXRlciBOYW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05hbWUgb2YgdGhlIHJlc291cmNlIHBhcmFtZXRlciB0byB1c2UuIERlZmF1bHRzIHRvIFwncmVzb3VyY2VcJy4gRG8gbm90IGNoYW5nZSB1bmxlc3MgaW5zdHJ1Y3RlZC4nfSA9ICdOYW1lIGRlcyBSZXNvdXJjZSBQYXJhbWV0ZXJzLiBWb3JlaW5nZXN0ZWxsdCBpc3QgXCdyZXNvdXJjZVwnLiDDhG5kZXJuIFNpZSBkaWVzZW4gV2VydCBudXIgYXVmIEFuZnJhZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rva2VuIFR5cGUnfSA9ICdUb2tlbiBUeXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRva2VuIHR5cGUgdG8gdXNlIGZvciBleHRlcm5hbGwgQVBJIGNhbGxzLiBVc3VhbGx5IFwnYWNjZXNzX3Rva2VuXCcuJ30gPSAnRGVyIFRva2VuIFR5cCBkZXIgZsO8ciBhdXNnZWhlbmRlIFdlYlNlcnZpY2UgQXVmcnVmZSB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwuIMOcYmxpY2hlcndlaXNlIFwnYWNjZXNzX3Rva2VuXCcuJzsKCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJZb3UgY2FuIGNyZWF0ZSBPSURDIFByb2ZpbGVzIHRvIGNvbm5lY3QgdG8geW91ciBPSURDIEZ1bmN0aW9uYWwgQWNjb3VudCJ9ID0gJ1VtIG5ldWUgT0lEQyBQcm9maWxlIHp1bSBWZXJrbsO8cGZlbiBtaXQgRnVuY3Rpb25hbCBBY2NvdW50cyB6dSBlcnN0ZWxsZW4sIGtsaWNrZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJoZXJlIn0gPSAnaGllcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTaW5jZSB5b3UgZG8gbm90IGhhdmUgYW55IE9JREMgUHJvdmlkZXIgcHJvZmlsZXMgY29uZmlndXJlZCwgeW91IGNhbm5vdCBhZGQgYW4gT0F1dGgyIEZ1bmN0aW9uYWwgQWNjb3VudC4gWG91IGhhdmUgdG8gZmlyc3QgY29uZmlndXJlIGF0IGxlYXN0IG9uZSBPSURDIFByb3ZpZGVyIHByb2ZpbGUifSA9ICdEYSBub2NrIGtlaW5lIE9JREMgUHJvZmlsZSBoaW50ZXJsZWd0IHNpbmQsIGthbm4ga2VpbiBuZXVlciBGdW5jdGlvbmFsIEFjY291bnQgYW5nZWxlZ3Qgd2VyZGVuLiBVbSBlaW4gbmV1ZXMgT0lEQyBQcm9maWwgenUgZXJzdGxsZW4sIGtsaWNrZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJQcm9maWxlIE5hbWUifSA9ICdQcm9maWwgTmFtZSc7CgogICAgIyBBZG1pbk9JRENQcm9maWxlcy50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiT3BlbklEIENvbm5lY3QgUHJvdmlkZXIgUHJvZmlsZXMgTWFuYWdlbWVudCJ9ID0gJ09wZW5JRCBDb25uZWN0IFByb3ZpZGVyIFByb2ZpbCBNYW5hZ2VtZW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9maWxlJ30gPSAnUHJvZmlsIGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvZmlsZSd9ID0gJ1Byb2ZpbCBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IkFib3V0IE9JREMgUHJvdmlkZXIgUHJvZmlsZXMifSA9ICJPSURDIFByb3ZpZGVyIFByb2ZpbGUiOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiVGhpcyBwYWdlIGRpc3BsYXlzIGFuIG92ZXJ2aWV3IG9mIGNvbmZpZ3VyZWQgT0lEQyBQcm92aWRlciBQcm9maWxlcy4ifSA9ICfDnGJlcmJsaWNrIMO8YmVyIGRpZSBrb25maWd1cmllcnRlbiBPSURDIFByb3ZpZGVyIFByb2ZpbGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gY29ubmVjdCBPSURDIFByb2ZpbGVzIHdpdGggYSBPSURDIEZ1bmN0aW9uYWwgQWNjb3VudCd9ID0gJ1VtIE9JREMgUHJvZmlsZSBtaXQgZWluZW0gRnVua3Rpb25hbGVuIEFjY291bnQgenUgdmVya27DvHBmZW4sIGtsaWNrZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJEZWxldGUgUHJvZmlsZSJ9ID0gIlByb2ZpbCBsw7ZzY2hlbiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVuSUQgQ29ubmVjdCBQcm92aWRlciBQcm9maWxlcyBmb3Igb3V0Z29pbmcgV2Vic2VydmljZSBjYWxscyAoR2VuZXJpY0ludGVyZmFjZSBJbnZva2VyKSd9ID0gJ09wZW5JRCBDb25uZWN0IFByb3ZpZGVyIFByb2ZpbGUgZsO8ciBhdXNnZWhlbmRlIFdlYnNlcnZpY2VzIChHZW5lcmljSW50ZXJmYWNlIEludm9rZXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGFyZSBubyBPSURDIFByb3ZpZGVyIHByb2ZpbGVzIGRlZmluZWQuJ30gPSAnRXMgc2luZCBrZWluZSBPSURDIFByb3ZpZGVyIFByb2ZpbGUgZGVmaW5pZXJ0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlByb2ZpbGUgTmFtZSJ9ID0gJ1Byb2ZpbCBOYW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IkNsaWVudCBJRCJ9ID0gIkNsaWVudCBJRCI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJQcm92aWRlciJ9ID0gIlByb3ZpZGVyIjsKIyAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJWYWxpZCJ9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJBZGQgT0lEQyBQcm92aWRlciBQcm9maWxlIn0gPSAnT0lEQyBQcm92aWRlciBQcm9maWwgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiRWRpdCBPSURDIFByb3ZpZGVyIFByb2ZpbGUifSA9ICdPSURDIFByb3ZpZGVyIFByb2ZpbCBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlNpbmNlIHlvdSBhcmUgdXNpbmcgT0lEQyBhcyBBdXRoZW50aWNhdGlvbiBtb2R1bGUsIHRoZXNlIHZhbHVlcyBoYXZlIGJlZW4gcHJlLXBvcHVsYXRlZCB3aXRoIHRoZSBPSURDIFByb3ZpZGVyIENvbmZpZ3VyYXRpb24gdXNlZCBmb3IgTG9naW4uIn0gPSAnRGEgT0lEQyBmw7xyIGRlbiBMb2dpbiB2ZXJ3ZW5kZXQgd2lyZCwgd3VyZGVuIGVpbmlnZSBQYXJhbWV0ZXIgYmFzaWVyZW5kIGF1ZiBpaHJlciBPSURDIExvZ2luIEtvbmZpZ3VyYXRpb24gdm9yLWF1c2dlZsO8bGx0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJUaGUgdW5pcXVlIG5hbWUgZm9yIHRoaXMgUHJvZmlsZS4ifSA9ICdEZXIgZWluZGV1dGlnZSBOYW1lIGbDvHIgZGllc2VzIFByb2ZpbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiTWV0YWRhdGEgVXJsLiJ9ID0gIk1ldGFkYXRhIFVybC4iOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiVGhlIFdlbGwtS25vd24gUHJvdmlkZXIgTWV0YWRhdGEgVXJsLiJ9ID0gIkRlciAnV2VsbC1Lbm93bicgUHJvdmlkZXIgTWV0YWRhdGEgVXJsLiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJUaGUgQ2xpZW50IElEIG9mIHlvdXIgT0F1dGgyIGFwcGxpY2F0aW9uLiJ9ID0gIkRpZSAnQ2xpZW50IElEJyBJaHJlciBPQXV0aDIgQXBwbGlrYXRpb24uIjsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlRoZSBDbGllbnQgU2VjcmV0IG9mIHlvdXIgT0F1dGgyIGFwcGxpY2F0aW9uLiJ9ID0gIkRhcyAnQ2xpZW50IFNlY3JldCcgSWhyZXIgT0F1dGgyIEFwcGxpa2F0aW9uLiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJDYWNoZSBUVEwifSA9ICJDYWNoZSBUVEwiOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiVGltZSBpbiBzZWNvbmRzIGZvciBjYWNoaW5nIHByb3ZpZGVyIGRhdGEuIn0gPSAnWmVpdCBpbiBTZWt1bmRlbiBmw7xyIGRpZSBQcm92aWRlciBEYXRlbiBnZWNhY2hlZCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlNTTCBPcHRpb25zIChPcHRpb25hbCkifSA9ICJTU0wgT3B0aW9uZW4gKE9wdGlvbmFsKSI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgQ2VydGlmaWNhdGUifSA9ICJTU0wgWmVydGlmaWthdCI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgY2VydGlmaWNhdGUgcGF0aC4ifSA9ICJTU0wgWmVydGlmaWthdCBQZmFkLiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgQ2VydGlmaWNhdGUgS2V5In0gPSAiU1NMIFplcnRpZmlrYXQgU2NobMO8c3NlbC4iOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiU1NMIGNlcnRpZmljYXRlIHByaXZhdGUga2V5IHBhdGguIn0gPSAiUGZhZCB6dW0gU1NMIFplcnRpZmlrYXQgU2NobMO8c3NlbCAocHJpdmF0ZSBrZXkpLiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgUGFzc3dvcmQifSA9ICJTU0wgUGFzc3dvcnQiOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiVGhlIFNTTCBwYXNzd29yZC4ifSA9ICJEYXMgU1NMIFBhc3N3b3J0LiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgQ0EgRmlsZSJ9ID0gIlNTTCBDQSBEYXRlaSI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IGZpbGUgcGF0aC4ifSA9ICJQZmFkIHp1ciBTU0wgWmVydGlmaWthdHMgQXV0aG9yaXR5IERhdGVpIChDQSkuIjsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlNTTCBDQSBEaXJlY3RvcnkifSA9ICJTU0wgQ0EgVmVyemVpY2huaXMiOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiU1NMIENlcnRpZmljYXRlIEF1dGhvcml0eSBkaXJlY3RvcnkgcGF0aC4ifSA9ICdQZmFkIHp1bSBWZXJ6ZWNobmlzIG1pdCBkZW4gU1NMIFplcnRpZmlrYXRzIEF1dGhvcml0eSBEYXRlaWVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgVmVyaWZ5IEhvc3RuYW1lIn0gPSAiU1NMIFZlcmlmaXppZXJ1bmcgZGVzIEhvc3RuYW1lcyI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJFbmFibGUgb3IgZGlzYWJsZSBTU0wgaG9zdG5hbWUgdmVyaWZpY2F0aW9uLiBPbmx5IGRpc2FibGUgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyEifSA9ICdadW0gVGVzdGVuIG9kZXIgenVyIEZlaGxlcnN1Y2hlIGthbm4gZGllIFZlcmlmaXppZXJ1bmcgdm9uIFNTTCBIb3N0bmFtZW4gZGVha3RpdmllcnQgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgVmVyaWZ5IE1vZGUifSA9ICdTU0wgVmVyaWZpemllcnVuZ3Ntb2R1cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJFbmFibGUgb3IgZGlzYWJsZSBTU0wgdmVyaWZpY2F0aW9uLiBPbmx5IGRpc2FibGUgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyEifSA9ICdadW0gVGVzdGVuIG9kZXIgenVyIEZlaGxlcnN1Y2hlIGthbm4gZGllIFZlcmlmaXppZXJ1bmcgdm9uIFNTTCBaZXJ0aWZpa2F0ZW4gZGVha3RpdmllcnQgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJNaXNjIE9wdGlvbnMgKE9wdGlvbmFsKSJ9ID0gJ0Vyd2VpdGVydGUgT3B0aW9uZW4gKE9wdGlvbmFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJVc2UgTm9uY2UifSA9ICdCZW51dHplIE5vbmNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IkRvIG5vdCB1c2UgTm9uY2UifSA9ICdLZWluZSBOb25jZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJSYW5kIExlbmd0aCJ9ID0gJ1p1ZmFsbHN6ZWljaGVuZm9sZ2VubMOkbmdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlJhbmRvbSBzdHJpbmcgbGVuZ3RoIHVzZWQgZm9yIHN0YXRlIGFuZCBub25jZSBwYXJhbWV0ZXJzLiBEZWZhdWx0IGlzICcyMicuIn0gPSAiWnVmYWxsc3plaWNoZW5mb2xnZW5sw6RuZ2UgYmVudXR6IHp1bSBFcnN0ZWxsZW4gdm9uIE5vbmNlIHVuZCBTdGF0ZSBadWZhbGxzZm9sZ2VuLiBEZXIgRGVmYXVsdCBXZXJ0IGlzdCAnMjInLiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJSYW5kIFRUTCJ9ID0gJ0F1dGhlbnRpZml6aWVydW5ncy1UaW1lb3V0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlRpbWUtdG8tbGl2ZSBmb3Igc3RhdGUgYW5kIG5vbmNlIGluIHNlY29uZHMuIERlZmF1bHQgaXMgJzMwMCcgKDUgbWluKS4ifSA9ICJMZWJlbnNkYXVlciBmw7xyIFN0YXRlIHVuZCBOb25jZSBadWZhbGxzd2VydGUgYmVpbSBMb2dpbi4gRGVyIERlZmF1bHQgaXMgJzMwMCcgKDUgTWluKS4iOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVld2F5J30gPSAnU3BpZWxyYXVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlRpbWUgZHJpZnQgYWxsb3dhbmNlIGJldHdlZW4gc2VydmVycyB0byBiZSBhbGxvd2VkLiBEZWZhdWx0ICcyJyBzZWNvbmRzLiJ9ID0gJ1RvbGVyaWVydGUgWmVpdGFid2VpY2h1bmcgYmVpbSBBYmdsZWljaCB2b24gWmVpdHN0ZW1wZWxuIHZvbiB2ZXJzaWVkZW5lbiBTZXJ2ZXJuLiBEZXIgRGVmYXVsdCBXZXJ0IGlzdCAycy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiU2tpcCJ9ID0gJ0RlYWt0aXZpZXJlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJWZXJpZnkgSG9zdG5hbWUifSA9ICdBa3RpdmllcmVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlZlcmlmeSBDZXJ0aWZpY2F0ZXMifSA9ICdBa3RpdmllcmVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlByb2ZpbGUgJXMgY291bGQgbm90IGJlIGRlbGV0ZWQgLSBkbyB5b3UgaGF2ZSBhbnkgRnVuY3Rpb25hbCBBY2NvdW50cyByZWZlcmVuY2luZyB0aGlzIFByb2ZpbGU/In0gPSAiUHJvZmlsICVzIGtvbm50ZSBuaWNodCBnZWzDtnNjaHQgd2VyZGVuLiBTaW5kIG5vY2ggRnVua3Rpb25hbGUgQWNjb3VudHMga29uZmlndXJpZXJ0LCBkaWUgZGllc2VzIFByb2ZpbCB2ZXJ3ZW5kZW4/IjsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlByb2ZpbGUgJXMgZGVsZXRlZCEifSA9ICJQcm9maWwgJXMgZ2Vsw7ZzY2h0LiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJFcnJvciBjcmVhdGluZy91cGRhdGluZyBQcm9maWxlICVzISJ9ID0gIkZlaGxlciBiZWltIEVyc3RlbGxlbi9CZWFyYmVpdGVuIGRlcyBQcm9maWxzICVzLiI7CgogICAgIyBBZG1pbk9JRENQcm9maWxlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvZmlsZSBOYW1lIGlzIG1pc3NpbmchJ30gPSAnUHJvZmlsIE5hbWUgZmVobHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb3ZpZGVyIG1ldGFkYXRhIHVybCBpcyBtaXNzaW5nJ30gPSAnRGVyIFVSTCB6dSBkZW4gUHJvdmlkZXIgTWV0YWRhdGVuIGZlaGx0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm92aWRlciBjbGllbnQgaWQgaXMgbWlzc2luZyEnfSA9ICdEaWUgQ2xpZW50IElEIGZlaGx0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm92aWRlciBjbGllbnQgc2VjcmV0IGlzIG1pc3NpbmchJ30gPSAnRGFzIENsaWVudCBTZWNyZXQgZmVodGwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2ZpbGUgTmFtZSBpcyB0YWtlbiEnfSA9ICdEZXIgUHJvZmlsIE5hbWUgaXN0IGJlcmVpdHMgdmVyZ2ViZW4uJzsKCiAgICAjIEFkbWluR2VuZXJpY0ludGVyZmFjZVRyYW5zcG9ydEhUVFBSRVNULnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPQXV0aDIgRnVuY3Rpb25hbCBBY2NvdW50J30gPSAnT0F1dGgyIEtvbnRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCB0aGUnfSA9ICdBdXN3YWhsIGRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50IHRvIHVzZSBmb3IgT0F1dGgyIGF1dGhlbnRpY2F0aW9uLid9ID0gJ0tvbnRvcyBmw7xyIGRpZSBPQXV0aDIgQXV0aGVudGlmaXppZXJ1bmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09BdXRoIEZ1bmN0aW9uYWwgQWNjb3VudHMnfSA9ICdPQXV0aCBGdW5rdGlvbmFsZSBBY2NvdW50cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdW5jdGlvbmFsIEFjY291bnQgYW5kIFRva2VuIE1hbmFnZW1lbnQuJ30gPSAnRnVua3Rpb25hbGUgQWNjb3VudCB1bmQgT0F1dGggVG9rZW5zIHZlcndhbHRlbi4nOwoKICAgICMgU3lzQ29uZiB4bWwKCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPSURDIFByb2ZpbGUgTWFuYWdlbWVudCd9ID0gJ09JREMgUHJvZmlsIFZlcndhbHR1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIE9wZW5kSUQgQ29ubmVjdCBPQXV0aDIgUHJvZmlsZXMuJ30gPSAnT3BlbklEIENvbm5lY3QgUHJvZmlsZSBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09BdXRoIEZ1bmN0aW9uYWwgQWNjb3VudHMnfSA9ICdPQXV0aCBGdW5rdGlvbmFsZSBBY2NvdW50cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdW5jdGlvbmFsIEFjY291bnQgYW5kIFRva2VuIE1hbmFnZW1lbnQuJ30gPSAnRnVua3Rpb25hbGUgQWNjb3VudHMgdW5kIE9BdXRoMiBUb2tlbnMnOwp9CgoxOwo=</File>
        <File Location="Kernel/Modules/AdminOAuthTokenStore.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWRtaW5PQXV0aFRva2VuU3RvcmU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRMYW5ndWFnZU9iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Okxhbmd1YWdlJyk7CiAgICBteSAkTG9nT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJENhY2hlT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRUb2tlblJlcG9zaXRvcnkgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5Jyk7CiAgICBteSAkVG9rZW5Qcm92aWRlciAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuUHJvdmlkZXInKTsKICAgIG15ICRGdW5jdGlvbmFsQWNjb3VudHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRzJyk7CiAgICBteSAkQ29uZmlndXJhdGlvbiAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nKTsKICAgIG15ICRMYXlvdXRPYmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJUVycm9ycyA9ICgpOwoKICAgIG15ICRQcm9maWxlcyA9ICRDb25maWd1cmF0aW9uLT5HZXRPQXV0aFByb2ZpbGVzKCk7CgogICAgbXkgJEhhc1Byb2ZpbGVzID0gc2NhbGFyIEAkUHJvZmlsZXM7CgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBBZGRJbnZva2VyCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkSW52b2tlcicgKSB7CgogICAgICAgIG15ICVHZXRQYXJhbSA9ICgpOwoKICAgICAgICAkR2V0UGFyYW17QWNjb3VudE5hbWV9ICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWNjb3VudE5hbWUnICk7CiAgICAgICAgJEdldFBhcmFte0dyYW50VHlwZX0gICAgID0gJ2NsaWVudF9jcmVkZW50aWFscyc7CiAgICAgICAgJEdldFBhcmFte0ludm9rZXJTY29wZXN9ID0gJ29wZW5pZCBvZmZsaW5lX2FjY2Vzcyc7CiAgICAgICAgJEdldFBhcmFte1Rva2VuVHlwZX0gICAgID0gJ2FjY2Vzc190b2tlbic7CgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkU2VsZi0+X0VkaXRJbnZva2VyKAogICAgICAgICAgICBBY3Rpb24gPT4gJ0FkZEludm9rZXInLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbk9BdXRoVG9rZW5TdG9yZScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEVkaXQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0JyApIHsKCiAgICAgICAgbXkgJUdldFBhcmFtID0gKCk7CiAgICAgICAgJEdldFBhcmFte0FjY291bnROYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdBY2NvdW50TmFtZScgKTsKCiAgICAgICAgbXkgJEFjY291bnQgPSAkRnVuY3Rpb25hbEFjY291bnRzLT5HZXRBY2NvdW50KCBOYW1lID0+ICRHZXRQYXJhbXtBY2NvdW50TmFtZX0gKTsKCiAgICAgICAgJEdldFBhcmFte1Byb3ZpZGVySUR9ID0gJEFjY291bnQtPntPSURDUHJvZmlsZUlEfTsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICAgICAkR2V0UGFyYW17R3JhbnRUeXBlfSA9ICRBY2NvdW50LT57R3JhbnRUeXBlfTsKCiAgICAgICAgaWYgKCAkR2V0UGFyYW17R3JhbnRUeXBlfSBlcSAncGFzc3dvcmQnICkgewoKICAgICAgICAgICAgJEdldFBhcmFte1VzZXJuYW1lfSA9ICRBY2NvdW50LT57VXNlcm5hbWV9OwogICAgICAgICAgICAkR2V0UGFyYW17UGFzc3dvcmR9ID0gJEFjY291bnQtPntQYXNzd29yZH07CiAgICAgICAgfQoKICAgICAgICAkR2V0UGFyYW17SW52b2tlclNjb3Blc30gPSAkQWNjb3VudC0+e1Njb3BlfTsKICAgICAgICAkR2V0UGFyYW17UmVzb3VyY2VzfSAgICAgPSAkQWNjb3VudC0+e1Jlc291cmNlc307CiAgICAgICAgJEdldFBhcmFte1Jlc291cmNlUGFyYW19ID0gJEFjY291bnQtPntSZXNvdXJjZVBhcmFtTmFtZX07CiAgICAgICAgJEdldFBhcmFte1Rva2VuVHlwZX0gICAgID0gJEFjY291bnQtPntUb2tlblR5cGV9OwoKICAgICAgICAkU2VsZi0+X0VkaXRJbnZva2VyKAogICAgICAgICAgICBBY3Rpb24gPT4gJ0VkaXRJbnZva2VyJywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICk7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25EZWxldGUnLAogICAgICAgICAgICBEYXRhID0+IFwlR2V0UGFyYW0KICAgICAgICApOwoKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbk9BdXRoVG9rZW5TdG9yZScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEFkZEludm9rZXJBY3Rpb24gYW5kIEVkaXRJbnZva2VyQWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkSW52b2tlckFjdGlvbicgfHwgJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0SW52b2tlckFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgICMgZmV0Y2ggYW5kIHZhbGlkYXRlIHBhcmFtZXRlcnMKICAgICAgICBteSAlR2V0UGFyYW0gPSAoKTsKCiAgICAgICAgJEdldFBhcmFte0FjY291bnROYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdBY2NvdW50TmFtZScgKTsKCiAgICAgICAgaWYgKCAhJEdldFBhcmFte0FjY291bnROYW1lfSApIHsKICAgICAgICAgICAgJEVycm9yc3tBY2NvdW50TmFtZVNlcnZlckVycm9yfSA9ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCdBY2NvdW50IE5hbWUgaXMgbWlzc2luZyEnKTsKICAgICAgICB9CgogICAgICAgICRHZXRQYXJhbXtQcm92aWRlcklEfSAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm92aWRlcklEJyApOwogICAgICAgICRHZXRQYXJhbXtHcmFudFR5cGV9ICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdHcmFudFR5cGUnICk7CiAgICAgICAgJEdldFBhcmFte1VzZXJuYW1lfSAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1VzZXJuYW1lJyApOwogICAgICAgICRHZXRQYXJhbXtQYXNzd29yZH0gICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQYXNzd29yZCcgKTsKICAgICAgICAkR2V0UGFyYW17VG9rZW5UeXBlfSAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVG9rZW5UeXBlJyApOwogICAgICAgICRHZXRQYXJhbXtJbnZva2VyU2NvcGVzfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJbnZva2VyU2NvcGVzJyApOwogICAgICAgICRHZXRQYXJhbXtSZXNvdXJjZXN9ICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdSZXNvdXJjZXMnICk7CiAgICAgICAgJEdldFBhcmFte1Jlc291cmNlUGFyYW19ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Jlc291cmNlUGFyYW0nICk7CgogICAgICAgIGlmICggJEdldFBhcmFte0dyYW50VHlwZX0gZXEgJ3Bhc3N3b3JkJyApIHsKICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFte1VzZXJuYW1lfSAmJiAkR2V0UGFyYW17RW5hYmxlSW52b2tlcn0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1VzZXJuYW1lU2VydmVyRXJyb3J9ID0gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJ1VzZXJuYW1lIGlzIHJlcXVpcmVkIScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXtQYXNzd29yZH0gJiYgJEdldFBhcmFte0VuYWJsZUludm9rZXJ9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3tQYXNzd29yZFNlcnZlckVycm9yfSA9ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCdQYXNzd29yZCBpcyByZXF1aXJlZCEnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBwcmV2ZW50IGR1cGxpY2F0ZSBhY2NvdW50IG5hbWVzCiAgICAgICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZEludm9rZXJBY3Rpb24nICkgewoKICAgICAgICAgICAgbXkgJEV4aXN0aW5nQWNjb3VudCA9ICRGdW5jdGlvbmFsQWNjb3VudHMtPkdldEFjY291bnQoIE5hbWUgPT4gJEdldFBhcmFte0FjY291bnROYW1lfSApOwoKICAgICAgICAgICAgaWYgKCRFeGlzdGluZ0FjY291bnQpIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7QWNjb3VudE5hbWVTZXJ2ZXJFcnJvcn0gPSAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSgnQWNjb3VudCBOYW1lIGlzIHRha2VuIScpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHJldHVybiBpZiB3ZSBoYXZlIGZvcm0gdmFsaWRhdGUgZXJyb3JzCiAgICAgICAgaWYgKCBzY2FsYXIga2V5cyAlRXJyb3JzICkgewoKICAgICAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAgICAgICAgICRTZWxmLT5fRWRpdEludm9rZXIoCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRJbnZva2VyQWN0aW9uJyA/ICdBZGRJbnZva2VyJyA6ICdFZGl0SW52b2tlcicsCiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluT0F1dGhUb2tlblN0b3JlJywKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICAgICApOwogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgfQoKICAgICAgICAjIGRvIHNhdmUgY29uZmlnCgogICAgICAgICMgY2xlYW4gY2FjaGUgYW5kIGRhdGFiYXNlCiAgICAgICAgJFRva2VuUmVwb3NpdG9yeS0+RGVsZXRlVG9rZW4oCiAgICAgICAgICAgIEFjY291bnROYW1lID0+ICRHZXRQYXJhbXtBY2NvdW50TmFtZX0sCiAgICAgICAgKTsKCiAgICAgICAgJFRva2VuUHJvdmlkZXItPkVtcHR5Q2FjaGUoCiAgICAgICAgICAgIEFjY291bnROYW1lID0+ICRHZXRQYXJhbXtBY2NvdW50TmFtZX0KICAgICAgICApOwoKICAgICAgICAjIGFjdHVhbGx5IHBlcnNpc3QgdGhlIGRhdGEgaW4gREIKICAgICAgICBteSAkU3VjY2VzcyA9ICRGdW5jdGlvbmFsQWNjb3VudHMtPlNhdmVBY2NvdW50KAogICAgICAgICAgICBOYW1lICAgICAgICAgICAgICA9PiAkR2V0UGFyYW17QWNjb3VudE5hbWV9LAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIE9JRENQcm9maWxlSUQgICAgID0+ICRHZXRQYXJhbXtQcm92aWRlcklEfSwKICAgICAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJEdldFBhcmFte0ludm9rZXJTY29wZXN9LAogICAgICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkR2V0UGFyYW17UmVzb3VyY2VQYXJhbX0sCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBjcmVhdGluZy91cGRhdGluZyBPQXV0aDIgQWNjb3VudCAiIC4gJEdldFBhcmFte0FjY291bnROYW1lfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgSW5mbyAgICAgPT4gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoICJFcnJvciBjcmVhdGluZy91cGRhdGluZyAlcyEiLCAkR2V0UGFyYW17QWNjb3VudE5hbWV9ICksCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHBvc3Qgc2F2ZSBhY3Rpb25zIC0gYXR0ZW1wdCB0byByZWZyZXNoIHRva2VuCiAgICAgICAgaWYgKCAkR2V0UGFyYW17R3JhbnRUeXBlfSBlcSAnYXV0aG9yaXphdGlvbl9jb2RlJyApIHsKCiAgICAgICAgICAgICMgZm9yIGF1dGhvcml6YXRpb25fY29kZSByZWRpcmVjdCB0aGUgYnJvd3NlcgogICAgICAgICAgICBteSAkQXV0aFVSTCA9ICRUb2tlblByb3ZpZGVyLT5HZXRBdXRoVVJMKAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgQWNjb3VudE5hbWUgPT4gJEdldFBhcmFte0FjY291bnROYW1lfSwKICAgICAgICAgICAgICAgIFByb21wdCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBTdWJhY3Rpb24gICA9PiAkU2VsZi0+e1N1YmFjdGlvbn0sCiAgICAgICAgICAgICAgICBSZWRpcmVjdFVSSSA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0h0dHBUeXBlJykKICAgICAgICAgICAgICAgICAgICAuICc6Ly8nCiAgICAgICAgICAgICAgICAgICAgLiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZRRE4nKQogICAgICAgICAgICAgICAgICAgIC4gJy8nCiAgICAgICAgICAgICAgICAgICAgLiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1NjcmlwdEFsaWFzJykKICAgICAgICAgICAgICAgICAgICAuICdpbmRleC5wbD9BY3Rpb249QWRtaW5PQXV0aFRva2VuU3RvcmUmU3ViYWN0aW9uPU9BdXRoJwogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRBdXRoVVJMKSB7CgogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAgIEV4dFVSTCA9PiAkQXV0aFVSTAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICMgb2ggYm95LCB3ZSBjYW5ub3QgZXZlbnQgZ2VuZXJhdGUgYSB2YWxpZCByZWRpcmVjdCB1cmwuIGludmFsaWQgdXNzZXIgY29uZmlnIQoKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVuYWJsZSB0byBnZW5lcmF0ZSBPSURDIFByb3ZpZGVyIEF1dGhlbnRpY2F0aW9uIFVSTCBmb3IgTG9naW4uIEludmFsaWQgT0lDRCBDb25maWd1cmF0aW9uISIsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgICAgIEluZm8gICAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCdVbmFibGUgdG8gZ2VuZXJhdGUgT0lEQyBQcm92aWRlciBBdXRoZW50aWNhdGlvbiBVUkwgZm9yIExvZ2luLiBJbnZhbGlkIE9JQ0QgQ29uZmlndXJhdGlvbiEnKSwKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRTZWxmLT5fRWRpdEludm9rZXIoCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uID0+ICdFZGl0SW52b2tlcicsCiAgICAgICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgICAgIFRva2VuRXJyb3IgPT4gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJ1VuYWJsZSB0byBnZW5lcmF0ZSBPSURDIFByb3ZpZGVyIEF1dGhlbnRpY2F0aW9uIFVSTCBmb3IgTG9naW4uIEludmFsaWQgT0lDRCBDT25maWd1cmF0aW9uIScpLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25EZWxldGUnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gXCVHZXRQYXJhbQogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluT0F1dGhUb2tlblN0b3JlJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgcG9zdCBzYXZlIGFjdGlvbiBpZiBncmFudF90eXBlIGlzIG5vdCAnYXV0aG9yaXphdGlvbl9jb2RlJwogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBqdXN0IGZldGNoIHRoZSB0b2tlbgogICAgICAgICAgICBteSAkVG9rZW5SZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2goIEFjY291bnROYW1lID0+ICRHZXRQYXJhbXtBY2NvdW50TmFtZX0gKTsKCiAgICAgICAgICAgICMgb2ggZ2lybCwgZmV0Y2ggdG9rZW4gZmFpbGVkLCBpbnZhbGlkIHVzZXIgY29uZmlnIQogICAgICAgICAgICBpZiAoICEkVG9rZW5SZXN1bHQtPntTdWNjZXNzfSApIHsKCiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRUb2tlblJlc3VsdC0+e0Vycm9yfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJE5vdGlmaWNhdGlvbiA9ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgICAgICBJbmZvICAgICA9PiAkVG9rZW5SZXN1bHQtPntFcnJvcn0sCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJwogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICROb3RpZmljYXRpb247CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uRGVsZXRlJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IFwlR2V0UGFyYW0KICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJFNlbGYtPl9FZGl0SW52b2tlcigKICAgICAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJ0VkaXRJbnZva2VyJywKICAgICAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAgICAgVG9rZW5FcnJvciA9PiAkVG9rZW5SZXN1bHQtPntFcnJvcn0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5PQXV0aFRva2VuU3RvcmUnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBEZWxldGUKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdEZWxldGUnICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkQWNjb3VudE5hbWUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWNjb3VudE5hbWUnICkgfHwgJyc7CgogICAgICAgIG15ICRTdWNjZXNzID0gJEZ1bmN0aW9uYWxBY2NvdW50cy0+RGVsZXRlQWNjb3VudCgKICAgICAgICAgICAgTmFtZSAgID0+ICRBY2NvdW50TmFtZSwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoJFN1Y2Nlc3MpIHsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICBJbmZvICAgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSggIkFjY291bnQgJXMgZGVsZXRlZCEiLCAkQWNjb3VudE5hbWUgKSwKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdTdWNjZXNzJwogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJGYWlsZWQgdG8gZGVsZXRlIE9BdXRoMiBBY2NvdW50ICIgLiAkQWNjb3VudE5hbWUsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgUmVmcmVzaAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1JlZnJlc2gnICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkQWNjb3VudE5hbWUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWNjb3VudE5hbWUnICkgfHwgJyc7CgogICAgICAgIG15ICRBY2NvdW50ID0gJEZ1bmN0aW9uYWxBY2NvdW50cy0+R2V0QWNjb3VudCggTmFtZSA9PiAkQWNjb3VudE5hbWUgKTsKCiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkQWNjb3VudCkgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEdyYW50VHlwZSA9ICRBY2NvdW50LT57R3JhbnRUeXBlfTsKCiAgICAgICAgICAgICMgY2xlYW4gY2FjaGUgYW5kIGRhdGFiYXNlCiAgICAgICAgICAgICRUb2tlblJlcG9zaXRvcnktPkRlbGV0ZVRva2VuKAogICAgICAgICAgICAgICAgQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJFRva2VuUHJvdmlkZXItPkVtcHR5Q2FjaGUoCiAgICAgICAgICAgICAgICBBY2NvdW50TmFtZSA9PiAkQWNjb3VudE5hbWUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGF1dGhvcml6YXRpb25fY29kZSB1c2VzIGJyb3dzZXIgYmFzZWQgZmxvdwogICAgICAgICAgICAjIHJlZGlyZWN0IHRoZSBicm93c2VyIHRvIHRoZSBpZGVudGl0eSBwcm92aWRlcgogICAgICAgICAgICAjIGxvZ2luIHBhZ2UKICAgICAgICAgICAgaWYgKCAkR3JhbnRUeXBlIGVxICdhdXRob3JpemF0aW9uX2NvZGUnICkgewoKICAgICAgICAgICAgICAgIG15ICRBdXRoVVJMID0gJFRva2VuUHJvdmlkZXItPkdldEF1dGhVUkwoCiAgICAgICAgICAgICAgICAgICAgQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgICAgICAgICAgICAgIFByb21wdCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgU3ViYWN0aW9uICAgPT4gJ1JlZnJlc2gnLAogICAgICAgICAgICAgICAgICAgIFJlZGlyZWN0VVJJID0+ICRDb25maWdPYmplY3QtPkdldCgnSHR0cFR5cGUnKQogICAgICAgICAgICAgICAgICAgICAgICAuICc6Ly8nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJENvbmZpZ09iamVjdC0+R2V0KCdGUUROJykKICAgICAgICAgICAgICAgICAgICAgICAgLiAnLycKICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1NjcmlwdEFsaWFzJykKICAgICAgICAgICAgICAgICAgICAgICAgLiAnaW5kZXgucGw/QWN0aW9uPUFkbWluT0F1dGhUb2tlblN0b3JlJlN1YmFjdGlvbj1PQXV0aCcKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAgIEV4dFVSTCA9PiAkQXV0aFVSTAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBmb3IgY2xpZW50X2NyZWRlbnRpYWxzIGFuZCBwYXNzd29yZCBmbG93cywKICAgICAgICAgICAgIyB3ZSBjYW4ganVzdCBmZXRjaCBhbiBuZXcgdG9rZW4gcmlnaHQgbm93CiAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgIG15ICRUb2tlblJlc3VsdCA9ICRUb2tlblByb3ZpZGVyLT5GZXRjaCggQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lICk7CgogICAgICAgICAgICAgICAgaWYgKCAkVG9rZW5SZXN1bHQtPntTdWNjZXNzfSApIHsKCiAgICAgICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgICAgIEluZm8gICAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAiVG9rZW4gJXMgdXBkYXRlZCEiLCAkQWNjb3VudE5hbWUgKSwKICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ1N1Y2Nlc3MnCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICAgICAkVG9rZW5SZXBvc2l0b3J5LT5EZWxldGVUb2tlbigKICAgICAgICAgICAgICAgICAgICAgICAgQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRmFpbGVkIHRvIHJlZnJlc2ggT0F1dGgyIFRva2VuIGZvciBBY2NvdW50ICIgLiAkQWNjb3VudE5hbWUsCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgICAgIEluZm8gICAgID0+ICRUb2tlblJlc3VsdC0+e0Vycm9yfSwKICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJwogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBvYXV0aCBhY3Rpb24gLSBjYWxsYmFjayB3aGVuIHVzaW5nIGF1dGhvcml6YXRpb25fY29kZQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ09BdXRoJyApIHsKCiAgICAgICAgbXkgJFN0YXRlICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdzdGF0ZScgKTsKICAgICAgICBteSAkQ29kZSAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ2NvZGUnICk7CiAgICAgICAgbXkgJElzc3VlciA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdpc3MnICk7CgogICAgICAgIG15ICRDYWNoZWRTdGF0ZSA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgICAgICAgICBUeXBlID0+ICdUb2tlblByb3ZpZGVyJywKICAgICAgICAgICAgS2V5ICA9PiAiVG9rZW5Qcm92aWRlcjo6T0F1dGgyU3RhdGU6OiRTdGF0ZSIsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJENhY2hlZFN0YXRlICkgewoKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkludmFsaWQgT0F1dGggU3RhdGUgJFN0YXRlIGZyb20gJElzc3VlciIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gam9pbiAnJywKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkhlYWRlciggVGl0bGUgPT4gJ0Vycm9yJyApLAogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+V2FybmluZygKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCdJbnZhbGlkIE9BdXRoIFN0YXRlIScpCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgfQoKICAgICAgICBteSAkQWNjb3VudE5hbWUgPSAkQ2FjaGVkU3RhdGUtPntBY2NvdW50TmFtZX07CiAgICAgICAgbXkgJFJlZGlyZWN0VVJMID0gJENhY2hlZFN0YXRlLT57UmVkaXJlY3RVUkx9OwogICAgICAgIG15ICRTdWJhY3Rpb24gICA9ICRDYWNoZWRTdGF0ZS0+e1N1YmFjdGlvbn07CgogICAgICAgIG15ICRBY2NvdW50ID0gJEZ1bmN0aW9uYWxBY2NvdW50cy0+R2V0QWNjb3VudCggTmFtZSA9PiAkQWNjb3VudE5hbWUgKTsKCiAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJEFjY291bnQpICkKICAgICAgICB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbnZhbGlkIEFjY291bnQgZm9yIFRva2VuOiAiIC4gJEFjY291bnROYW1lLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuIGpvaW4gJycsCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoIFRpdGxlID0+ICdFcnJvcicgKSwKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPldhcm5pbmcoCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSggIkludmFsaWQgQWNjb3VudCAlcyBmb3IgVG9rZW4hIiwgJEFjY291bnROYW1lICkKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICB9CgogICAgICAgICMgdmFsaWRhdGUgdGhlIGlzc3VlcgogICAgICAgIGlmICgkSXNzdWVyKSB7CiAgICAgICAgICAgIG15ICRQcm92aWRlcklzc3VlciA9ICRGdW5jdGlvbmFsQWNjb3VudHMtPkdldElzc3VlcigKICAgICAgICAgICAgICAgIE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAkSXNzdWVyIG5lICRQcm92aWRlcklzc3VlciApIHsKCiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbnZhbGlkIElzc3VlciAkSXNzdWVyIGZvciBBY2NvdW50ICRBY2NvdW50TmFtZSIsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIHJldHVybiBqb2luICcnLAogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkhlYWRlciggVGl0bGUgPT4gJ0Vycm9yJyApLAogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPldhcm5pbmcoCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoICJJbnZhbGlkIElzc3VlciAlcyBmb3IgVG9rZW4gJXMhIiwgJElzc3VlciwgJEFjY291bnROYW1lICkKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAkVG9rZW5SZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2hUb2tlbigKICAgICAgICAgICAgQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgICAgICBDb2RlICAgICAgICA9PiAkQ29kZSwKICAgICAgICAgICAgUmVkaXJlY3RVUkwgPT4gJFJlZGlyZWN0VVJMLAogICAgICAgICk7CgogICAgICAgIGlmICggJFRva2VuUmVzdWx0LT57U3VjY2Vzc30gKSB7CgogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgIEluZm8gICAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAiVG9rZW4gJXMgdXBkYXRlZCEiLCAkQWNjb3VudE5hbWUgKSwKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdTdWNjZXNzJwogICAgICAgICAgICApOwoKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3IgZmV0Y2hpbmcgaW5pdGlhbCBUb2tlbiBmb3IgJEFjY291bnROYW1lISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgSW5mbyAgICAgPT4gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoIkVycm9yIGZldGNoaW5nIGluaXRpYWwgVG9rZW4gZm9yICRBY2NvdW50TmFtZSEiKSwKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uRGVsZXRlJywKICAgICAgICAgICAgICAgIERhdGEgPT4gXCUkQ2FjaGVkU3RhdGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkU2VsZi0+X0VkaXRJbnZva2VyKAogICAgICAgICAgICAgICAgJSRDYWNoZWRTdGF0ZSwKICAgICAgICAgICAgICAgIFRva2VuRXJyb3IgPT4gJFRva2VuUmVzdWx0LT57RXJyb3J9LAogICAgICAgICAgICAgICAgQWN0aW9uICAgICA9PiAnRWRpdEludm9rZXInLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluT0F1dGhUb2tlblN0b3JlJywKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJSRDYWNoZWRTdGF0ZSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgIH0KICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHNob3cgb3ZlcnZpZXcgYWN0aW9ucyAtIGFzc2VtYmxlIEFjY291bnQgT3ZlcnZpZXcgZGF0YQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3JywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgSGFzUHJvZmlsZXMgPT4gJEhhc1Byb2ZpbGVzLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfQogICAgKTsKCiAgICBpZiAoJEhhc1Byb2ZpbGVzKSB7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25BZGRJbnZva2VyJyApOwogICAgfQoKICAgICMgR2V0IExpc3Qgb2YgcmVmcmVzaGFibGUgVG9rZW5zIGZyb20gREIKICAgIG15ICRHZW5lcmljSW50ZXJmYWNlVG9rZW5zID0gJFRva2VuUmVwb3NpdG9yeS0+R2V0TGlzdCggVG9rZW5UeXBlID0+ICdhbGwnICk7CgogICAgIyBCdWlsZCBhIGxvb2t1cCBpbmRleCBhcyB3ZSBtYXAgVG9rZW5zIHRvIHRoZWlyCiAgICAjIGNvbmZpZ3VyZWQgRnVuY3Rpb25hbCBBY2NvdW50cwogICAgbXkgJUdlbmVyaWNJbnRlcmZhY2VUb2tlbkxvb2t1cCA9ICgpOwoKICAgIGZvciBteSAkR2VuZXJpY0ludGVyZmFjZVRva2VuIChAJEdlbmVyaWNJbnRlcmZhY2VUb2tlbnMpIHsKCiAgICAgICAgaWYgKCAhZXhpc3RzICRHZW5lcmljSW50ZXJmYWNlVG9rZW5Mb29rdXB7ICRHZW5lcmljSW50ZXJmYWNlVG9rZW4tPntBY2NvdW50SUR9IH0gKQogICAgICAgIHsKICAgICAgICAgICAgJEdlbmVyaWNJbnRlcmZhY2VUb2tlbkxvb2t1cHsgJEdlbmVyaWNJbnRlcmZhY2VUb2tlbi0+e0FjY291bnRJRH0gfSA9IHt9OwogICAgICAgIH0KCiAgICAgICAgJEdlbmVyaWNJbnRlcmZhY2VUb2tlbkxvb2t1cHsgJEdlbmVyaWNJbnRlcmZhY2VUb2tlbi0+e0FjY291bnRJRH0gfS0+eyAkR2VuZXJpY0ludGVyZmFjZVRva2VuLT57VG9rZW5UeXBlfSB9ID0gJEdlbmVyaWNJbnRlcmZhY2VUb2tlbjsKICAgIH0KCiAgICAjIFByZXBhcmUgdmlldyBkYXRhCiAgICBteSBAQWNjb3VudHNGb3JEaXNwbGF5OwoKICAgICMgR2V0IE9BdXRoIEludm9rZXIgYWNjb3VudHMgZnJvbSBDb25maWcKICAgIG15ICRJbnZva2VyQWNjb3VudHMgPSAkRnVuY3Rpb25hbEFjY291bnRzLT5HZXRBY2NvdW50cygpOwoKICAgIE9BVVRIQUNDT1VOVDoKICAgIGZvciBteSAkQWNjb3VudCAoQCRJbnZva2VyQWNjb3VudHMpIHsKCiAgICAgICAgbXkgJEFjY291bnROYW1lID0gJEFjY291bnQtPntOYW1lfTsKICAgICAgICBteSAkQWNjb3VudElEICAgPSAkQWNjb3VudC0+e0FjY291bnRJRH07CgogICAgICAgIG15ICRHcmFudFR5cGUgPSAkQWNjb3VudC0+e0dyYW50VHlwZX07CiAgICAgICAgbXkgJEhhc1Rva2VuICA9IGV4aXN0cyAkR2VuZXJpY0ludGVyZmFjZVRva2VuTG9va3VweyRBY2NvdW50SUR9OwogICAgICAgIG15ICRDb3B5VG9rZW4gPSAkSGFzVG9rZW4gPyAnQ29weVRva2VuJyA6ICcnOwoKICAgICAgICBteSAkVG9rZW4gPSAkR2VuZXJpY0ludGVyZmFjZVRva2VuTG9va3VweyRBY2NvdW50SUR9LT57cmVmcmVzaF90b2tlbn07CiAgICAgICAgbXkgJFRpbWUgID0gIiI7CgogICAgICAgIGlmICggJFRva2VuICYmICRUb2tlbi0+e0V4cGlyZXNBdH0gKSB7CgogICAgICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgIEVwb2NoID0+ICRUb2tlbi0+e0V4cGlyZXNBdH0sCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREYXRlVGltZU9iamVjdC0+VG9UaW1lWm9uZSgKICAgICAgICAgICAgICAgIFRpbWVab25lID0+ICRTZWxmLT57VXNlclRpbWVab25lfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgJFRpbWUgPSAkRGF0ZVRpbWVPYmplY3QtPkZvcm1hdCggRm9ybWF0ID0+ICclWS0lbS0lZCAlSDolTTolUycgKTsKICAgICAgICB9CgogICAgICAgICRIYXNUb2tlbiA9ICRIYXNUb2tlbiA/ICdZZXMnIDogJ05vJzsKCiAgICAgICAgbXkgJEFjY291bnREYXRhID0gewogICAgICAgICAgICBBY2NvdW50TmFtZSA9PiAkQWNjb3VudE5hbWUsCiAgICAgICAgICAgIFByb2ZpbGVOYW1lID0+ICRBY2NvdW50LT57T0lEQ1Byb2ZpbGV9LT57UHJvdmlkZXJTZXR0aW5nc30tPntOYW1lfSwKICAgICAgICAgICAgRmxvdyAgICAgICAgPT4gJEdyYW50VHlwZSwKICAgICAgICAgICAgVG9rZW5JRCAgICAgPT4gJFRva2VuLT57VG9rZW5JRH0sCiAgICAgICAgICAgIFRva2VuICAgICAgID0+ICRUb2tlbi0+e1Rva2VufSwKICAgICAgICAgICAgSGFzVG9rZW4gICAgPT4gJEhhc1Rva2VuLAogICAgICAgICAgICBDb3B5VG9rZW4gICA9PiAkQ29weVRva2VuLAogICAgICAgICAgICBOZWVkVG9rZW4gICA9PiAkR3JhbnRUeXBlIGVxICdhdXRob3JpemF0aW9uX2NvZGUnICYmICEkSGFzVG9rZW4gPyAnRXJyb3InIDogJycsCiAgICAgICAgICAgIEV4cGlyZXNBdCAgID0+ICRUaW1lLAogICAgICAgICAgICBJc0ludm9rZXIgICA9PiAxLAogICAgICAgIH07CgogICAgICAgIHB1c2ggQEFjY291bnRzRm9yRGlzcGxheSwgJEFjY291bnREYXRhOwogICAgfQoKICAgIG15ICRMaXN0U2l6ZSA9IGtleXMgQEFjY291bnRzRm9yRGlzcGxheTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld0hlYWRlcicsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIEFsbEl0ZW1zQ291bnQgPT4gJExpc3RTaXplLAogICAgICAgICAgICBIYXNQcm9maWxlcyAgID0+ICRIYXNQcm9maWxlcywKICAgICAgICAgICAgJUVycm9ycywKICAgICAgICB9LAogICAgKTsKCiAgICAjIGlmIHRoZXJlIGlzIGRhdGEgYXZhaWxhYmxlLCBpdCBpcyBzaG93bgogICAgaWYgKCRMaXN0U2l6ZSkgewoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHQnLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgZm9yIG15ICRBY2NvdW50IChAQWNjb3VudHNGb3JEaXNwbGF5KSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0Um93JywKICAgICAgICAgICAgICAgIERhdGEgPT4gJEFjY291bnQsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgb3RoZXJ3aXNlLCBhIG1lc3NhZ2UgaXMgZGlzcGxheWVkCiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9BY2NvdW50c0RlZmluZWQnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbk9BdXRoVG9rZW5TdG9yZScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9FZGl0SW52b2tlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRPSURDQ29uZmlndXJhdGlvbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpDb25maWd1cmF0aW9uJyk7CiAgICBteSAkT0lEQ1Byb2ZpbGVzICAgICAgPSAkT0lEQ0NvbmZpZ3VyYXRpb24tPkdldE9BdXRoUHJvZmlsZXMoKTsKCiAgICBteSAlUHJvZmlsZXM7CiAgICBmb3IgbXkgJFByb2ZpbGUgKEAkT0lEQ1Byb2ZpbGVzKSB7CgogICAgICAgICRQcm9maWxlc3sgJFByb2ZpbGUtPntQcm9maWxlSUR9IH0gPSAkUHJvZmlsZS0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57TmFtZX07CiAgICB9CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJFBhcmFte1Byb3ZpZGVyTmFtZXN9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBcJVByb2ZpbGVzLAogICAgICAgIE5hbWUgICAgICAgPT4gJ1Byb3ZpZGVySUQnLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17UHJvdmlkZXJJRH0sCiAgICApOwoKICAgICRQYXJhbXtHcmFudFR5cGVzfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gWyAnY2xpZW50X2NyZWRlbnRpYWxzJywgJ3Bhc3N3b3JkJywgJ2F1dGhvcml6YXRpb25fY29kZScgXSwKICAgICAgICBOYW1lICAgICAgID0+ICdHcmFudFR5cGUnLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17R3JhbnRUeXBlfSB8fCAnY2xpZW50X2NyZWRlbnRpYWxzJywKICAgICk7CgogICAgJFBhcmFte1Rva2VuVHlwZX0gICAgID0gJFBhcmFte1Rva2VuVHlwZX0gICAgIHx8ICdhY2Nlc3NfdG9rZW4nOwogICAgJFBhcmFte1Jlc291cmNlUGFyYW19ID0gJFBhcmFte1Jlc291cmNlUGFyYW19IHx8ICdyZXNvdXJjZSc7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdVcGRhdGVJbnZva2VyJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Location="Kernel/Modules/AdminOIDCProfiles.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWRtaW5PSURDUHJvZmlsZXM7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJExhbmd1YWdlT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpMYW5ndWFnZScpOwogICAgbXkgJExvZ09iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJENhY2hlT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CiAgICBteSAkUGFyYW1PYmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkUHJvZmlsZVJlcG9zaXRvcnkgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6UHJvZmlsZVJlcG9zaXRvcnknKTsKICAgIG15ICRDb25maWd1cmF0aW9uICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpDb25maWd1cmF0aW9uJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJUVycm9ycyA9ICgpOwoKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgQWRkUHJvZmlsZQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFByb2ZpbGUnICkgewoKICAgICAgICBteSAlR2V0UGFyYW0gPSAkU2VsZi0+X0dldERlZmF1bHRzKCktPiUqOwoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9FZGl0UHJvZmlsZSgKICAgICAgICAgICAgQWN0aW9uID0+ICdBZGRQcm9maWxlJywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5PSURDUHJvZmlsZXMnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBFZGl0CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRWRpdCcgKSB7CgogICAgICAgIG15ICVHZXRQYXJhbSA9ICgpOwoKICAgICAgICAkR2V0UGFyYW17UHJvZmlsZU5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb2ZpbGVOYW1lJyApOwogICAgICAgIG15ICRQcm9maWxlID0gJFByb2ZpbGVSZXBvc2l0b3J5LT5HZXRQcm9maWxlKCBOYW1lID0+ICRHZXRQYXJhbXtQcm9maWxlTmFtZX0gKTsKCiAgICAgICAgJEdldFBhcmFte1ZhbGlkSUR9ICAgICAgICAgICAgID0gJFByb2ZpbGUtPntWYWxpZH07CiAgICAgICAgJEdldFBhcmFte0NsaWVudElEfSAgICAgICAgICAgID0gJFByb2ZpbGUtPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRJRH07CiAgICAgICAgJEdldFBhcmFte0NsaWVudFNlY3JldH0gICAgICAgID0gJFByb2ZpbGUtPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRTZWNyZXR9OwogICAgICAgICRHZXRQYXJhbXtSZWRpcmVjdFVSSX0gICAgICAgICA9ICRQcm9maWxlLT57Q2xpZW50U2V0dGluZ3N9LT57UmVkaXJlY3RVUkl9OwogICAgICAgICRHZXRQYXJhbXtQcm92aWRlck1ldGFkYXRhVXJsfSA9ICRQcm9maWxlLT57UHJvdmlkZXJTZXR0aW5nc30tPntPcGVuSURDb25maWd1cmF0aW9ufTsKICAgICAgICAkR2V0UGFyYW17Q2FjaGVUVEx9ICAgICAgICAgICAgPSAkUHJvZmlsZS0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57VFRMfTsKICAgICAgICAkR2V0UGFyYW17U1NMQ2VydGlmaWNhdGV9ICAgICAgPSAkUHJvZmlsZS0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57U1NMT3B0aW9uc30tPntTU0xDZXJ0aWZpY2F0ZX07CiAgICAgICAgJEdldFBhcmFte1NTTEtleX0gICAgICAgICAgICAgID0gJFByb2ZpbGUtPntQcm92aWRlclNldHRpbmdzfS0+e1NTTE9wdGlvbnN9LT57U1NMS2V5fTsKICAgICAgICAkR2V0UGFyYW17U1NMUGFzc3dvcmR9ICAgICAgICAgPSAkUHJvZmlsZS0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57U1NMT3B0aW9uc30tPntTU0xQYXNzd29yZH07CiAgICAgICAgJEdldFBhcmFte1NTTENBRmlsZX0gICAgICAgICAgID0gJFByb2ZpbGUtPntQcm92aWRlclNldHRpbmdzfS0+e1NTTE9wdGlvbnN9LT57U1NMQ0FGaWxlfTsKICAgICAgICAkR2V0UGFyYW17U1NMQ0FEaXJ9ICAgICAgICAgICAgPSAkUHJvZmlsZS0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57U1NMT3B0aW9uc30tPntTU0xDQURpcn07CiAgICAgICAgJEdldFBhcmFte1NTTFZlcmlmeUhvc3RuYW1lfSAgID0gJFByb2ZpbGUtPntQcm92aWRlclNldHRpbmdzfS0+e1NTTE9wdGlvbnN9LT57U1NMVmVyaWZ5SG9zdG5hbWV9OwogICAgICAgICRHZXRQYXJhbXtTU0xWZXJpZnlNb2RlfSAgICAgICA9ICRQcm9maWxlLT57UHJvdmlkZXJTZXR0aW5nc30tPntTU0xPcHRpb25zfS0+e1NTTFZlcmlmeU1vZGV9OwogICAgICAgICRHZXRQYXJhbXtVc2VOb25jZX0gICAgICAgICAgICA9ICRQcm9maWxlLT57TWlzY30tPntVc2VOb25jZX07CiAgICAgICAgJEdldFBhcmFte1JhbmRMZW5ndGh9ICAgICAgICAgID0gJFByb2ZpbGUtPntNaXNjfS0+e1JhbmRMZW5ndGh9OwogICAgICAgICRHZXRQYXJhbXtSYW5kVFRMfSAgICAgICAgICAgICA9ICRQcm9maWxlLT57TWlzY30tPntSYW5kVFRMfTsKICAgICAgICAkR2V0UGFyYW17TGVld2F5fSAgICAgICAgICAgICAgPSAkUHJvZmlsZS0+e01pc2N9LT57TGVld2F5fTsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICAgICAkU2VsZi0+X0VkaXRQcm9maWxlKAogICAgICAgICAgICBBY3Rpb24gPT4gJ0VkaXRQcm9maWxlJywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICk7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25EZWxldGUnLAogICAgICAgICAgICBEYXRhID0+IFwlR2V0UGFyYW0KICAgICAgICApOwoKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbk9JRENQcm9maWxlcycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEFkZFByb2ZpbGVBY3Rpb24gYW5kIEVkaXRQcm9maWxlQWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkUHJvZmlsZUFjdGlvbicgfHwgJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0UHJvZmlsZUFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgICMgZmV0Y2ggYW5kIHZhbGlkYXRlIHBhcmFtZXRlcnMKICAgICAgICBteSAlR2V0UGFyYW0gPSAoKTsKCiAgICAgICAgJEdldFBhcmFte1Byb2ZpbGVOYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm9maWxlTmFtZScgKTsKICAgICAgICBpZiAoICEkR2V0UGFyYW17UHJvZmlsZU5hbWV9ICkgewogICAgICAgICAgICAkRXJyb3Jze1Byb2ZpbGVOYW1lU2VydmVyRXJyb3J9ID0gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJ1Byb2ZpbGUgTmFtZSBpcyBtaXNzaW5nIScpOwogICAgICAgIH0KCiAgICAgICAgJEdldFBhcmFte1Byb3ZpZGVyTWV0YWRhdGFVcmx9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb3ZpZGVyTWV0YWRhdGFVcmwnICk7CiAgICAgICAgaWYgKCAhJEdldFBhcmFte1Byb3ZpZGVyTWV0YWRhdGFVcmx9ICkgewogICAgICAgICAgICAkRXJyb3Jze1Byb3ZpZGVyTWV0YWRhdGFVcmxTZXJ2ZXJFcnJvcn0gPSAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSgnUHJvdmlkZXIgbWV0YWRhdGEgdXJsIGlzIG1pc3NpbmchJyk7CiAgICAgICAgfQoKICAgICAgICAkR2V0UGFyYW17Q2xpZW50SUR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NsaWVudElEJyApOwogICAgICAgIGlmICggISRHZXRQYXJhbXtDbGllbnRJRH0gKSB7CiAgICAgICAgICAgICRFcnJvcnN7Q2xpZW50SURTZXJ2ZXJFcnJvcn0gPSAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSgnUHJvdmlkZXIgY2xpZW50IGlkIGlzIG1pc3NpbmchJyk7CiAgICAgICAgfQoKICAgICAgICAkR2V0UGFyYW17Q2xpZW50U2VjcmV0fSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDbGllbnRTZWNyZXQnICk7CiAgICAgICAgaWYgKCAhJEdldFBhcmFte0NsaWVudFNlY3JldH0gKSB7CiAgICAgICAgICAgICRFcnJvcnN7Q2xpZW50U2VjcmV0U2VydmVyRXJyb3J9ID0gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJ1Byb3ZpZGVyIGNsaWVudCBzZWNyZXQgaXMgbWlzc2luZyEnKTsKICAgICAgICB9CgogICAgICAgICMgdGhlIHJlbWFpbmluZyBvbmVzIGhhdmUgcmVhc29uYWJsZSBkZWZhdWx0cywgbm8gdmFsaWRhdGlvbgogICAgICAgICRHZXRQYXJhbXtDYWNoZVRUTH0gICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ2FjaGVUVEwnICkgfHwgNjAgKiAzMDsKICAgICAgICAkR2V0UGFyYW17U1NMQ2VydGlmaWNhdGV9ICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NTTENlcnRpZmljYXRlJyApOwogICAgICAgICRHZXRQYXJhbXtTU0xLZXl9ICAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU1NMS2V5JyApOwogICAgICAgICRHZXRQYXJhbXtTU0xQYXNzd29yZH0gICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU1NMUGFzc3dvcmQnICk7CiAgICAgICAgJEdldFBhcmFte1NTTENBRmlsZX0gICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTU0xDQUZpbGUnICk7CiAgICAgICAgJEdldFBhcmFte1NTTENBRGlyfSAgICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTU0xDQURpcicgKTsKICAgICAgICAkR2V0UGFyYW17U1NMVmVyaWZ5SG9zdG5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NTTFZlcmlmeUhvc3RuYW1lJyApOwogICAgICAgICRHZXRQYXJhbXtTU0xWZXJpZnlNb2RlfSAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU1NMVmVyaWZ5TW9kZScgKTsKICAgICAgICAkR2V0UGFyYW17VXNlTm9uY2V9ICAgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1VzZU5vbmNlJyApOwogICAgICAgICRHZXRQYXJhbXtSYW5kTGVuZ3RofSAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUmFuZExlbmd0aCcgKSB8fCAyMjsKICAgICAgICAkR2V0UGFyYW17UmFuZFRUTH0gICAgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1JhbmRUVEwnICkgICAgfHwgNjAgKiA1OwogICAgICAgICRHZXRQYXJhbXtMZWV3YXl9ICAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTGVld2F5JyApICAgICB8fCAyOwoKICAgICAgICAjIHByZXZlbnQgZHVwbGljYXRlIGFjY291bnQgbmFtZXMKICAgICAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkUHJvZmlsZUFjdGlvbicgKSB7CgogICAgICAgICAgICBteSAkRXhpc3RpbmcgPSAkUHJvZmlsZVJlcG9zaXRvcnktPkV4aXN0cyggTmFtZSA9PiAkR2V0UGFyYW17UHJvZmlsZU5hbWV9ICk7CgogICAgICAgICAgICBpZiAoJEV4aXN0aW5nKSB7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Byb2ZpbGVOYW1lU2VydmVyRXJyb3J9ID0gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJ1Byb2ZpbGUgTmFtZSBpcyB0YWtlbiEnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyByZXR1cm4gaWYgd2UgaGF2ZSBmb3JtIHZhbGlkYXRlIGVycm9ycwogICAgICAgIGlmICggc2NhbGFyIGtleXMgJUVycm9ycyApIHsKCiAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgICAgICAgICAkU2VsZi0+X0VkaXRQcm9maWxlKAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkUHJvZmlsZUFjdGlvbicgPyAnQWRkUHJvZmlsZScgOiAnRWRpdFByb2ZpbGUnLAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgJUVycm9ycywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbk9JRENQcm9maWxlcycsCiAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgIH0KCiAgICAgICAgIyBkbyBzYXZlIGNvbmZpZwoKICAgICAgICBteSAkUHJvZmlsZSA9IHsKCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICRHZXRQYXJhbXtQcm9maWxlTmFtZX0sCiAgICAgICAgICAgIENsaWVudFNldHRpbmdzID0+IHsKICAgICAgICAgICAgICAgIENsaWVudFNlY3JldCA9PiAkR2V0UGFyYW17Q2xpZW50U2VjcmV0fSwKICAgICAgICAgICAgICAgIENsaWVudElEICAgICA9PiAkR2V0UGFyYW17Q2xpZW50SUR9LAogICAgICAgICAgICAgICAgUmVkaXJlY3RVUkkgID0+ICRHZXRQYXJhbXtSZWRpcmVjdFVSSX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFByb3ZpZGVyU2V0dGluZ3MgPT4gewogICAgICAgICAgICAgICAgT3BlbklEQ29uZmlndXJhdGlvbiA9PiAkR2V0UGFyYW17UHJvdmlkZXJNZXRhZGF0YVVybH0sCiAgICAgICAgICAgICAgICBUVEwgICAgICAgICAgICAgICAgID0+ICRHZXRQYXJhbXtDYWNoZVRUTH0sCiAgICAgICAgICAgICAgICBTU0xPcHRpb25zICAgICAgICAgID0+IHsKICAgICAgICAgICAgICAgICAgICBTU0xDZXJ0aWZpY2F0ZSAgICA9PiAkR2V0UGFyYW17U1NMQ2VydGlmaWNhdGV9LAogICAgICAgICAgICAgICAgICAgIFNTTEtleSAgICAgICAgICAgID0+ICRHZXRQYXJhbXtTU0xLZXl9LAogICAgICAgICAgICAgICAgICAgIFNTTFBhc3N3b3JkICAgICAgID0+ICRHZXRQYXJhbXtTU0xQYXNzd29yZH0sCiAgICAgICAgICAgICAgICAgICAgU1NMQ0FGaWxlICAgICAgICAgPT4gJEdldFBhcmFte1NTTENBRmlsZX0sCiAgICAgICAgICAgICAgICAgICAgU1NMQ0FEaXIgICAgICAgICAgPT4gJEdldFBhcmFte1NTTENBRGlyfSwKICAgICAgICAgICAgICAgICAgICBTU0xWZXJpZnlIb3N0bmFtZSA9PiAkR2V0UGFyYW17U1NMVmVyaWZ5SG9zdG5hbWV9LAogICAgICAgICAgICAgICAgICAgIFNTTFZlcmlmeU1vZGUgICAgID0+ICRHZXRQYXJhbXtTU0xWZXJpZnlNb2RlfSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWlzYyA9PiB7CiAgICAgICAgICAgICAgICBVc2VOb25jZSAgID0+ICRHZXRQYXJhbXtVc2VOb25jZX0sCiAgICAgICAgICAgICAgICBSYW5kTGVuZ3RoID0+ICRHZXRQYXJhbXtSYW5kTGVuZ3RofSwKICAgICAgICAgICAgICAgIFJhbmRUVEwgICAgPT4gJEdldFBhcmFte1JhbmRUVEx9LAogICAgICAgICAgICAgICAgTGVld2F5ICAgICA9PiAkR2V0UGFyYW17TGVld2F5fSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgVmFsaWQgID0+ICRHZXRQYXJhbXtWYWxpZElEfSAvLyAxLAogICAgICAgIH07CgogICAgICAgIG15ICRTdWNjZXNzOwogICAgICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRQcm9maWxlQWN0aW9uJyApIHsKCiAgICAgICAgICAgICRTdWNjZXNzID0gJFByb2ZpbGVSZXBvc2l0b3J5LT5BZGRQcm9maWxlKCUkUHJvZmlsZSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkUHJvZmlsZVJlcG9zaXRvcnktPlVwZGF0ZVByb2ZpbGUoJSRQcm9maWxlKTsKICAgICAgICB9CgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgIEluZm8gICAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAiRXJyb3IgY3JlYXRpbmcvdXBkYXRpbmcgUHJvZmlsZSAlcyEiLCAkR2V0UGFyYW17UHJvZmlsZU5hbWV9ICksCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgRGVsZXRlCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRGVsZXRlJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJFByb2ZpbGVOYW1lID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb2ZpbGVOYW1lJyApIHx8ICcnOwoKICAgICAgICBteSAkU3VjY2VzcyA9ICRQcm9maWxlUmVwb3NpdG9yeS0+RGVsZXRlUHJvZmlsZSggTmFtZSA9PiAkUHJvZmlsZU5hbWUgKTsKCiAgICAgICAgaWYgKCRTdWNjZXNzKSB7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgSW5mbyAgICAgPT4gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoICJQcm9maWxlICVzIGRlbGV0ZWQhIiwgJFByb2ZpbGVOYW1lICksCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnU3VjY2VzcycKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgSW5mbyAgICAgPT4gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoICJQcm9maWxlICVzIGNvdWxkIG5vdCBiZSBkZWxldGVkIC0gZG8geW91IGhhdmUgYW55IEZ1bmN0aW9uYWwgQWNjb3VudHMgcmVmZXJlbmNpbmcgdGhpcyBQcm9maWxlPyIsICRQcm9maWxlTmFtZSApLAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgIExpbmsgICAgID0+ICRDb25maWdPYmplY3QtPkdldCgnSHR0cFR5cGUnKQogICAgICAgICAgICAgICAgICAgIC4gJzovLycKICAgICAgICAgICAgICAgICAgICAuICRDb25maWdPYmplY3QtPkdldCgnRlFETicpCiAgICAgICAgICAgICAgICAgICAgLiAnLycKICAgICAgICAgICAgICAgICAgICAuICRDb25maWdPYmplY3QtPkdldCgnU2NyaXB0QWxpYXMnKQogICAgICAgICAgICAgICAgICAgIC4gJ2luZGV4LnBsP0FjdGlvbj1BZG1pbk9BdXRoVG9rZW5TdG9yZScsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc2hvdyBvdmVydmlldyBhY3Rpb25zIC0gYXNzZW1ibGUgUHJvZmlsZSBPdmVydmlldyBkYXRhCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgIyBQcmVwYXJlIHZpZXcgZGF0YQoKICAgIG15ICRQcm9maWxlcyA9ICRDb25maWd1cmF0aW9uLT5HZXRPQXV0aFByb2ZpbGVzKCk7CgogICAgbXkgQFZpZXdEYXRhOwoKICAgIFBST0ZJTEU6CiAgICBmb3IgbXkgJFByb2ZpbGUgKEAkUHJvZmlsZXMpIHsKCiAgICAgICAgbXkgJFByb2ZpbGVOYW1lID0gJFByb2ZpbGUtPntQcm92aWRlclNldHRpbmdzfS0+e05hbWV9OwogICAgICAgIG15ICRDbGllbnRJRCAgICA9ICRQcm9maWxlLT57Q2xpZW50U2V0dGluZ3N9LT57Q2xpZW50SUR9OwogICAgICAgIG15ICRNZXRhZGF0YVVybCA9ICRQcm9maWxlLT57UHJvdmlkZXJTZXR0aW5nc30tPntPcGVuSURDb25maWd1cmF0aW9ufTsKICAgICAgICBteSAkVmFsaWQgICAgICAgPSAkUHJvZmlsZS0+e1ZhbGlkfSA9PSAxID8gJ1ZhbGlkJyA6ICdJbnZhbGlkJzsKCiAgICAgICAgcHVzaCBAVmlld0RhdGEsIHsKICAgICAgICAgICAgUHJvZmlsZU5hbWUgPT4gJFByb2ZpbGVOYW1lLAogICAgICAgICAgICBDbGllbnRJRCAgICA9PiAkQ2xpZW50SUQsCiAgICAgICAgICAgIE1ldGFkYXRhVXJsID0+ICRNZXRhZGF0YVVybCwKICAgICAgICAgICAgVmFsaWQgICAgICAgPT4gJFZhbGlkLAogICAgICAgIH07CiAgICB9CgogICAgbXkgJExpc3RTaXplID0gc2NhbGFyIEBWaWV3RGF0YTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlldycsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIEFsbEl0ZW1zQ291bnQgPT4gJExpc3RTaXplLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbkFkZFByb2ZpbGUnICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdIZWFkZXInLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBBbGxJdGVtc0NvdW50ID0+ICRMaXN0U2l6ZSwKICAgICAgICAgICAgJUVycm9ycywKICAgICAgICB9LAogICAgKTsKCiAgICAjIGlmIHRoZXJlIGlzIGRhdGEgYXZhaWxhYmxlLCBpdCBpcyBzaG93bgogICAgaWYgKCRMaXN0U2l6ZSkgewoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHQnLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgZm9yIG15ICREYXRhIChAVmlld0RhdGEpIHsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRSb3cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiAkRGF0YSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBvdGhlcndpc2UsIGEgbWVzc2FnZSBpcyBkaXNwbGF5ZWQKICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb0FjY291bnRzRGVmaW5lZCcsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluT0lEQ1Byb2ZpbGVzJywKICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX0VkaXRQcm9maWxlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJE9JRENDb25maWd1cmF0aW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nKTsKICAgIG15ICRPSURDUHJvZmlsZXMgICAgICA9ICRPSURDQ29uZmlndXJhdGlvbi0+R2V0T0F1dGhQcm9maWxlcygpOwoKICAgIG15ICVQcm9maWxlczsKICAgIGZvciBteSAkUHJvZmlsZSAoQCRPSURDUHJvZmlsZXMpIHsKCiAgICAgICAgJFByb2ZpbGVzeyAkUHJvZmlsZS0+e1Byb2ZpbGVJRH0gfSA9ICRQcm9maWxlLT57UHJvdmlkZXJTZXR0aW5nc30tPntOYW1lfTsKICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlldycsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAjIGdldCB2YWxpZCBsaXN0CiAgICBteSAlVmFsaWRMaXN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoKTsKICAgIG15ICVWYWxpZExpc3RSZXZlcnNlID0gcmV2ZXJzZSAlVmFsaWRMaXN0OwoKICAgICRQYXJhbXtWYWxpZE9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+IFwlVmFsaWRMaXN0LAogICAgICAgIE5hbWUgICAgICAgPT4gJ1ZhbGlkSUQnLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17VmFsaWRJRH0gfHwgJFZhbGlkTGlzdFJldmVyc2V7dmFsaWR9LAogICAgKTsKCiAgICAkUGFyYW17U1NMVmVyaWZ5SG9zdG5hbWVPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIDEgPT4gJ1ZlcmlmeSBIb3N0bmFtZScsCiAgICAgICAgICAgIDAgPT4gJ1NraXAnLAogICAgICAgIH0sCiAgICAgICAgTmFtZSAgICAgICA9PiAnU1NMVmVyaWZ5SG9zdG5hbWUnLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17U1NMVmVyaWZ5SG9zdG5hbWV9IC8vIDEsCiAgICApOwoKICAgICRQYXJhbXtTU0xWZXJpZnlNb2RlT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAxID0+ICdWZXJpZnkgQ2VydGlmaWNhdGVzJywKICAgICAgICAgICAgMCA9PiAnU2tpcCcsCiAgICAgICAgfSwKICAgICAgICBOYW1lICAgICAgID0+ICdTU0xWZXJpZnlNb2RlJywKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte1NTTFZlcmlmeU1vZGV9IC8vIDEsCiAgICApOwoKICAgICRQYXJhbXtVc2VOb25jZU9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgMSA9PiAnVXNlIE5vbmNlJywKICAgICAgICAgICAgMCA9PiAnRG8gbm90IHVzZSBOb25jZScsCiAgICAgICAgfSwKICAgICAgICBOYW1lICAgICAgID0+ICdVc2VOb25jZScsCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtVc2VOb25jZX0gLy8gMSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdVcGRhdGVQcm9maWxlJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgIHJldHVybiAxOwp9CgpzdWIgX0dldERlZmF1bHRzIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREZWZhdWx0cyA9IHsKICAgICAgICBDbGllbnRJRCAgICAgPT4gJycsCiAgICAgICAgQ2xpZW50U2VjcmV0ID0+ICcnLAoKICAgICAgICAjICAgICAgICAkR2V0UGFyYW17UmVkaXJlY3RVUkl9ICAgICAgICAgPSAkUHJvZmlsZS0+e0NsaWVudFNldHRpbmdzfS0+e1JlZGlyZWN0VVJJfTsKICAgICAgICBQcm92aWRlck1ldGFkYXRhVXJsID0+ICcnLAogICAgICAgIENhY2hlVFRMICAgICAgICAgICAgPT4gNjAgKiAzMCwKICAgICAgICBVc2VOb25jZSAgICAgICAgICAgID0+IDEsCiAgICAgICAgUmFuZExlbmd0aCAgICAgICAgICA9PiAyMiwKICAgICAgICBSYW5kVFRMICAgICAgICAgICAgID0+IDMwMCwKICAgICAgICBMZWV3YXkgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgU1NMVmVyaWZ5SG9zdG5hbWUgICA9PiAxLAogICAgICAgIFNTTFZlcmlmeU1vZGUgICAgICAgPT4gMSwKICAgICAgICBTU0xDZXJ0aWZpY2F0ZSAgICAgID0+ICcnLAogICAgICAgIFNTTEtleSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgU1NMUGFzc3dvcmQgICAgICAgICA9PiAnJywKICAgICAgICBTU0xDQUZpbGUgICAgICAgICAgID0+ICcnLAogICAgICAgIFNTTENBRGlyICAgICAgICAgICAgPT4gJycsCiAgICB9OwoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJE9wZW5JRENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnQXV0aE1vZHVsZTo6T3BlbklEQ29ubmVjdDo6Q29uZmlnJyk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJE9wZW5JRENvbmZpZykgKSB7CiAgICAgICAgcmV0dXJuICREZWZhdWx0czsKICAgIH0KCiAgICAkRGVmYXVsdHMgPSB7CiAgICAgICAgQ2xpZW50SUQgPT4gJE9wZW5JRENvbmZpZy0+e0NsaWVudFNldHRpbmdzfS0+e0NsaWVudElEfSwKCiAgICAgICAgIyB3b3VsZCBiZSBjb252aW5pZW50LCBidXQgd2UgZG8gbm90IGRvIGl0IGZvciBzZWN1cml0eSBwdXJwb3NlcwogICAgICAgICMgQ2xpZW50U2VjcmV0ID0+ICRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRTZWNyZXR9LAoKICAgICAgICBQcm92aWRlck1ldGFkYXRhVXJsID0+ICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e09wZW5JRENvbmZpZ3VyYXRpb259LAogICAgICAgIENhY2hlVFRMICAgICAgICAgICAgPT4gJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57VFRMfSB8fCA2MCAqIDMwLAogICAgICAgIFVzZU5vbmNlICAgICAgICAgICAgPT4gJE9wZW5JRENvbmZpZy0+e01pc2N9LT57VXNlTm9uY2V9IC8vIDEsCiAgICAgICAgUmFuZExlbmd0aCAgICAgICAgICA9PiAkT3BlbklEQ29uZmlnLT57TWlzY30tPntSYW5kTGVuZ3RofSB8fCAyMiwKICAgICAgICBSYW5kVFRMICAgICAgICAgICAgID0+ICRPcGVuSURDb25maWctPntNaXNjfS0+e1JhbmRUVEx9ICAgIHx8IDMwMCwKICAgICAgICBMZWV3YXkgICAgICAgICAgICAgID0+ICRPcGVuSURDb25maWctPntNaXNjfS0+e0xlZXdheX0gICAgIHx8IDIsCiAgICAgICAgU1NMVmVyaWZ5SG9zdG5hbWUgICA9PiAkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc30tPntTU0xPcHRpb25zfS0+e1NTTFZlcmlmeUhvc3RuYW1lfSAvLyAxLAogICAgICAgIFNTTFZlcmlmeU1vZGUgICAgICAgPT4gJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57U1NMT3B0aW9uc30tPntTU0xWZXJpZnlNb2RlfSAgICAgLy8gMSwKICAgICAgICBTU0xDZXJ0aWZpY2F0ZSAgICAgID0+ICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e1NTTE9wdGlvbnN9LT57U1NMQ2VydGlmaWNhdGV9IHx8ICcnLAogICAgICAgIFNTTEtleSAgICAgICAgICAgICAgPT4gJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57U1NMT3B0aW9uc30tPntTU0xLZXl9ICAgICAgICAgfHwgJycsCiAgICAgICAgU1NMUGFzc3dvcmQgICAgICAgICA9PiAkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc30tPntTU0xPcHRpb25zfS0+e1NTTFBhc3N3b3JkfSAgICB8fCAnJywKICAgICAgICBTU0xDQUZpbGUgICAgICAgICAgID0+ICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e1NTTE9wdGlvbnN9LT57U1NMQ0FGaWxlfSAgICAgIHx8ICcnLAogICAgICAgIFNTTENBRGlyICAgICAgICAgICAgPT4gJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57U1NMT3B0aW9uc30tPntTU0xDQURpcn0gICAgICAgfHwgJycsCiAgICAgICAgSGFzRGVmYXVsdCAgICAgICAgICA9PiAxLAogICAgfTsKCiAgICByZXR1cm4gJERlZmF1bHRzOwp9CgoxOwo=</File>
        <File Location="Kernel/Config/Files/XML/OAuth2.xml" Permission="660" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdG9ib19jb25maWcgdmVyc2lvbj0iMi4wIiBpbml0PSJBcHBsaWNhdGlvbiI+CgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FkbWluT0F1dGhUb2tlblN0b3JlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPkFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+T0F1dGggVG9rZW5zPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+QWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFkbWluT0F1dGhUb2tlblN0b3JlIyMjMDAxLUZyYW1ld29yayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkFnZW50LkFkbWluLk9BdXRoMk1vZHVsZS5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWRtaW5PQXV0aFRva2VuU3RvcmUjIyMwMDEtRnJhbWV3b3JrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJlZ2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgoKICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uTW9kdWxlIyMjQWRtaW5PQXV0aFRva2VuU3RvcmUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWRtaW4gYXJlYSBuYXZpZ2F0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb246OkFkbWluT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok5hdkJhcjo6TW9kdWxlQWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+T0F1dGggRnVuY3Rpb25hbCBBY2NvdW50czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPkFkbWluaXN0cmF0aW9uPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5GdW5jdGlvbmFsIEFjY291bnQgYW5kIFRva2VuIE1hbmFnZW1lbnQuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJY29uQmlnIj5mYS1jaXJjbGUtbzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSWNvblNtYWxsIj48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgoKCgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FkbWluT0lEQ1Byb2ZpbGVzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPkFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+T0lEQyBQcm9maWxlczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPkFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KCiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FkbWluT0lEQ1Byb2ZpbGVzIyMjMDAxLUZyYW1ld29yayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KCgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb25Nb2R1bGUjIyNBZG1pbk9JRENQcm9maWxlcyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BZG1pbiBhcmVhIG5hdmlnYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6QWRtaW5PdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5hZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6TmF2QmFyOjpNb2R1bGVBZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5PSURDIFByb2ZpbGUgTWFuYWdlbWVudDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPkFkbWluaXN0cmF0aW9uPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5NYW5hZ2UgT3BlbmRJRCBDb25uZWN0IE9BdXRoMiBQcm9maWxlcy48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikljb25CaWciPmZhLWNpcmNsZS1vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJY29uU21hbGwiPjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CgogICAgIDxTZXR0aW5nIE5hbWU9IkRhZW1vbjo6U2NoZWR1bGVyQ3JvblRhc2tNYW5hZ2VyOjpUYXNrIyMjVG9rZW5TdG9yZVVwZGF0ZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSIgQ29uZmlnTGV2ZWw9IjEwMCI+CiAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkV4ZWN1dGVzIGEgY3VzdG9tIGNvbW1hbmQgb3IgbW9kdWxlLiBOb3RlOiBpZiBtb2R1bGUgaXMgdXNlZCwgZnVuY3Rpb24gaXMgcmVxdWlyZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgPE5hdmlnYXRpb24+RGFlbW9uOjpTY2hlZHVsZXJDcm9uVGFza01hbmFnZXI6OlRhc2s8L05hdmlnYXRpb24+CiAgICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGFza05hbWUiPlRva2VuU3RvcmVVcGRhdGVyPC9JdGVtPgogICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU2NoZWR1bGUiPjAgKiAqICogKjwvSXRlbT4KICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuU3RvcmVVcGRhdGVyPC9JdGVtPgogICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRnVuY3Rpb24iPlJ1bjwvSXRlbT4KICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1heGltdW1QYXJhbGxlbEluc3RhbmNlcyI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBhcmFtcyI+CiAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SW50ZXJ2YWw8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPjM2MDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICA8L1ZhbHVlPgogICAgIDwvU2V0dGluZz4KCjwvb3RvYm9fY29uZmlnPgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AdminOAuthTokenStore.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlldyIpICVdCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIk9BdXRoMiBUb2tlbiBNYW5hZ2VtZW50IChPSURDKSIpIHwgaHRtbCAlXTwvaDE+CgogICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdPcGVuSUQgQ29ubmVjdCBGdW5jdGlvbmFsIE9BdXRoMiBBY2NvdW50IE1hbmFnZW1lbnQnKSwKICAgICAgICAgICAgICAgIExpbmsgPT4gRW52KCJBY3Rpb24iKSwKICAgICAgICAgICAgfSwKICAgICAgICBdCiAgICAlXQoKICAgIFslIFNXSVRDSCBEYXRhLkFjdGlvbiAlXQogICAgICAgIFslIENBU0UgJ0FkZCcgJV0KICAgICAgICAgICAgWyUgQnJlYWRjcnVtYlBhdGgucHVzaCh7IE5hbWUgPT4gVHJhbnNsYXRlKCdBZGQgQWNjb3VudCcpLH0pICVdCiAgICAgICAgWyUgQ0FTRSAnRWRpdCcgJV0KICAgICAgICAgICAgWyUgVVNFIEVkaXRUaXRsZSA9IFN0cmluZyhUcmFuc2xhdGUoIkVkaXQgQWNjb3VudCAiKSkgJV0KICAgICAgICAgICAgWyUgQnJlYWRjcnVtYlBhdGgucHVzaCh7IE5hbWUgPT4gRWRpdFRpdGxlLmFwcGVuZCggJzogJywgRGF0YS5BY2NvdW50TmFtZSApIH0pICVdCiAgICBbJSBFTkQgJV0KCiAgICBbJSBJTkNMVURFICJCcmVhZGNydW1iLnR0IiBQYXRoID0gQnJlYWRjcnVtYlBhdGggJV0KCiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPjxiPlslIFRyYW5zbGF0ZSgiQWJvdXQgT0lEQyBGdW5jdGlvbmFsIEFjY291bnRzIikgfCBodG1sICVdPC9iPjwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50IEZhdm91cml0ZUxpc3QiPgogICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGlzIHBhZ2UgZGlzcGxheXMgYW4gb3ZlcnZpZXcgb2YgY29uZmlndXJlZCBmdW5jdGlvbmFsIE9BdXRoIEFjY291bnRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIFRva2VuIFN0YXR1cy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiWW91IGNhbiB0ZXN0IHlvdXIgQ29uZmlndXJhdGlvbiB3aXRoIGEgY2xpY2sgb24gdGhlICdSZW5ldycgQnV0dG9uLCB3aGljaCB3aWxsIHRyeSB0byBmZXRjaCBvciByZWZyZXNoIGEgbmV3IFRva2VuLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJZb3UgY2FuIGNyZWF0ZSBPSURDIFByb2ZpbGVzIHRvIGNvbm5lY3QgdG8geW91ciBPSURDIEZ1bmN0aW9uYWwgQWNjb3VudCIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9BY3Rpb249QWRtaW5PSURDUHJvZmlsZXMiPlslIFRyYW5zbGF0ZSgiaGVyZSIpIHwgaHRtbCAlXTwvYT4uCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICA8YnI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRJbnZva2VyIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1BZGRJbnZva2VyIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPlslIFRyYW5zbGF0ZSgiQWRkIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkSW52b2tlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkRlbGV0ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IlByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iRGVsZXRlIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY2NvdW50TmFtZSIgdmFsdWU9IlslIERhdGEuQWNjb3VudE5hbWUgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIFByaW1hcnkiIGlkPSJTdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiRGVsZXRlIEFjY291bnQiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiRGVsZXRlIEFjY291bnQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25EZWxldGUiKSAlXQoKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3SGVhZGVyIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIk9JREMgRnVuY3Rpb25hbCBBY2NvdW50cyBhbmQgdGhlaXIgYWN0aXZlIE9BdXRoMiBUb2tlbnMiKSB8IGh0bWwgJV0gKFslIERhdGEuQWxsSXRlbXNDb3VudCB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJ0b3RhbCIpIHwgaHRtbCAlXSk8L2gyPgogICAgICAgICAgICAgICAgWyUgSUYgRGF0YS5IYXNQcm9maWxlcyA9PSAwICVdCiAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlNpbmNlIHlvdSBkbyBub3QgaGF2ZSBhbnkgT0lEQyBQcm92aWRlciBwcm9maWxlcyBjb25maWd1cmVkLCB5b3UgY2Fubm90IGFkZCBhbiBPQXV0aDIgRnVuY3Rpb25hbCBBY2NvdW50LiBYb3UgaGF2ZSB0byBmaXJzdCBjb25maWd1cmUgYXQgbGVhc3Qgb25lIE9JREMgUHJvdmlkZXIgcHJvZmlsZSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9BY3Rpb249QWRtaW5PSURDUHJvZmlsZXMiPmhlcmU8L2E+LgogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1Rva2Vuc0RlZmluZWQiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhlcmUgYXJlIG5vIE9BdXRoMiBhY2NvdW50cyBkZWZpbmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1Rva2Vuc0RlZmluZWQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdCIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJUb2tlbnMiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQWNjb3VudCBOYW1lIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlByb2ZpbGUgTmFtZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJGbG93IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkhhcyBUb2tlbj8iKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUmVmcmVzaCBUb2tlbiBFeHBpcmVzIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlJlbmV3IFRva2VuKHMpIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgY2xhc3M9IkFzQmxvY2siIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1FZGl0O0FjY291bnROYW1lPVslIERhdGEuQWNjb3VudE5hbWUgfCB1cmkgJV0iPlslIERhdGEuQWNjb3VudE5hbWUgfCBodG1sICVdPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9J1slIERhdGEuTmVlZFRva2VuIHwgdXJpICVdJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSc/QWN0aW9uPUFkbWluT0lEQ1Byb2ZpbGVzJlN1YmFjdGlvbj1FZGl0JlByb2ZpbGVOYW1lPVslIERhdGEuUHJvZmlsZU5hbWUgfCB1cmkgJV0nPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUHJvZmlsZU5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0nWyUgRGF0YS5OZWVkVG9rZW4gfCB1cmkgJV0nPlslIERhdGEuRmxvdyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSdbJSBEYXRhLk5lZWRUb2tlbiB8IHVyaSAlXSc+WyUgVHJhbnNsYXRlKCBEYXRhLkhhc1Rva2VuICkgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkV4cGlyZXNBdCB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXT9BY3Rpb249QWRtaW5PQXV0aFRva2VuU3RvcmUiIG1ldGhvZD0icG9zdCIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjBweDsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgfCB1cmkgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJSZWZyZXNoIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWNjb3VudE5hbWUiIHZhbHVlPSJbJSBEYXRhLkFjY291bnROYW1lIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLklzSW52b2tlciAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdFslIERhdGEuQWNjb3VudE5hbWUgfCB1cmkgJV0iIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiUmVuZXciKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiUmVuZXciKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkZpbHRlck1lc3NhZ2UgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI1Ij5bJSBUcmFuc2xhdGUoIk5vIG1hdGNoZXMgZm91bmQuIikgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZUludm9rZXIiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgWyUgSUYgRGF0YS5BY3Rpb24gPT0gJ0FkZEludm9rZXInICVdCiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWRkIEludm9rZXIgQWNjb3VudCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRWRpdCBJbnZva2VyIEFjY291bnQiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuQWN0aW9uIHwgdXJpICVdQWN0aW9uIi8+CiAgICAgICAgICAgICAgICAgICAgWyUgSUYgRGF0YS5BY3Rpb24gPT0gJ0NoYW5nZScgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ29udGludWVBZnRlclNhdmUiIGlkPSJDb250aW51ZUFmdGVyU2F2ZSIgdmFsdWU9IiIvPgogICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJFcnJvciI+WyUgRGF0YS5Ub2tlbkVycm9yIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJBY2NvdW50TmFtZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJBY2NvdW50IE5hbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkFjdGlvbiA9PSAnQWRkSW52b2tlcicgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJBY2NvdW50TmFtZSIgdmFsdWU9IlslIERhdGEuQWNjb3VudE5hbWUgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRXJyb3IiPlslIERhdGEuQWNjb3VudE5hbWVTZXJ2ZXJFcnJvciAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoZSB1bmlxdWUgbmFtZSBmb3IgdGhpcyBBY2NvdW50LiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICAgICAgWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IkFjY291bnROYW1lIiB2YWx1ZT0iWyUgRGF0YS5BY2NvdW50TmFtZSB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIgcmVhZG9ubHk9InJlYWRvbmx5IiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIHVuaXF1ZSBuYW1lIGZvciB0aGlzIEFjY291bnQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iUHJvdmlkZXJJRCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJPSURDIFByb2ZpbGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qcm92aWRlck5hbWVzICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgT3BlbklEIENvbm5lY3QiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9J19ibGFuaycgaHJlZj0iP0FjdGlvbj1BZG1pblN5c3RlbUNvbmZpZ3VyYXRpb25Hcm91cDtSb290TmF2aWdhdGlvbj1Db3JlOjpBdXRoOjpPcGVuSURDb25uZWN0Ij5Qcm92aWRlcjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoInRvIHVzZSBmb3IgdGhpcyBmdW5jdGlvbmFsIGFjY291bnQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJHcmFudFR5cGUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiR3JhbnQgVHlwZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkdyYW50VHlwZXMgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoZSBPQXV0aDIgZ3JhbnRfdHlwZSB0byB1c2UgZm9yIGFjcXVpcmluZyB0b2tlbnMgZm9yIHRoaXMgYWNjb3VudC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTZWxlY3RpbmcgJ2F1dGhvcml6YXRpb25fY29kZScgd2lsbCByZWRpcmVjdCB5b3UgdG8geW91ciBPcGVuSUQgQ29ubmVjdCBQcm92aWRlcidzIExvZ2luIFBhZ2UgdG8gdmFsaWRhdGUgeW91ciBhY2NvdW50IG9uY2UgeW91IGNsaWNrICdTYXZlJy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlVzZXJuYW1lIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlVzZXJuYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIiBpZD0iVXNlcm5hbWVGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iVXNlcm5hbWUiIGlkPSJVc2VybmFtZSIgdmFsdWU9IlslIERhdGEuVXNlcm5hbWUgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5Vc2VybmFtZUludmFsaWQgfCBodG1sICVdIiBtYXhsZW5ndGg9IjIwMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkVycm9yIj5bJSBEYXRhLlVzZXJuYW1lU2VydmVyRXJyb3IgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgdXNlcm5hbWUgaWYgZ3JhbnQgdHlwZSBpcyAncGFzc3dvcmQnLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iUGFzc3dvcmQiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiUGFzc3dvcmQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJQYXNzd29yZEZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0iUGFzc3dvcmQiIGlkPSJQYXNzd29yZCIgdmFsdWU9IlslIERhdGEuUGFzc3dvcmQgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5QYXNzd29yZEludmFsaWQgfCBodG1sICVdIiBtYXhsZW5ndGg9IjIwMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkVycm9yIj5bJSBEYXRhLlBhc3N3b3JkU2VydmVyRXJyb3IgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgcGFzc3dvcmQgdG8gdXNlIGlmIGdyYW50IHR5cGUgaXMgJ3Bhc3N3b3JkJy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ikludm9rZXJTY29wZXMiPlslIFRyYW5zbGF0ZSgiT0F1dGgyIFNjb3BlcyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iSW52b2tlclNjb3BlcyIgaWQ9Ikludm9rZXJTY29wZXMiIHZhbHVlPSJbJSBEYXRhLkludm9rZXJTY29wZXMgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIG1heGxlbmd0aD0iMjUwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTcGFjZSBzZXBhcmF0ZSBsaXN0IG9mIE9BdXRoMiBzY29wZXMgdG8gdXNlLiBVc3VhbCB2YWx1ZXMgaW5jbHVkZSBvcGVuaWQsIGVtYWlsLCBwcm9maWxlLCBhbmQgcm9sZXMuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBZHZhbmNlZCBJbnZva2VyIFNldHRpbmdzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUmVzb3VyY2VzIj5bJSBUcmFuc2xhdGUoIlJlc291cmNlcyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iUmVzb3VyY2VzIiBpZD0iUmVzb3VyY2VzIiB2YWx1ZT0iWyUgRGF0YS5SZXNvdXJjZXMgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIG1heGxlbmd0aD0iMjUwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJPcHRpb25hbCAoc3BhY2Ugc2VwZXJhdGVkIGxpc3QpIGZvciB0aGUgcmVzb3VyY2UgcGFyYW1hdGVyIGlmIHJlcXVpcmVkLiBMZWF2ZSBlbXB0eSB1bmxlc3MgaW5zdHJ1Y3RlZCBvdGhlcndpc2UuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJSZXNvdXJjZVBhcmFtIj5bJSBUcmFuc2xhdGUoIlJlc291cmNlIFBhcmFtZXRlciBOYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJSZXNvdXJjZVBhcmFtIiBpZD0iUmVzb3VyY2VQYXJhbSIgdmFsdWU9IlslIERhdGEuUmVzb3VyY2VQYXJhbSB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIgbWF4bGVuZ3RoPSIyNTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5hbWUgb2YgdGhlIHJlc291cmNlIHBhcmFtZXRlciB0byB1c2UuIERlZmF1bHRzIHRvICdyZXNvdXJjZScuIERvIG5vdCBjaGFuZ2UgdW5sZXNzIGluc3RydWN0ZWQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJUb2tlblR5cGUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiVG9rZW4gVHlwZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iVG9rZW5UeXBlIiBpZD0iVG9rZW5UeXBlIiB2YWx1ZT0iWyUgRGF0YS5Ub2tlblR5cGUgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIG1heGxlbmd0aD0iMjUwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgdG9rZW4gdHlwZSB0byB1c2UgZm9yIGV4dGVybmFsbCBBUEkgY2FsbHMuIFVzdWFsbHkgJ2FjY2Vzc190b2tlbicuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3VXBkYXRlSW52b2tlciIpICVdCgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXciKSAlXQo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AdminOIDCProfiles.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlldyIpICVdCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIk9wZW5JRCBDb25uZWN0IFByb2ZpbGVzICIpIHwgaHRtbCAlXTwvaDE+CgogICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdPcGVuSUQgQ29ubmVjdCBQcm92aWRlciBQcm9maWxlcyBNYW5hZ2VtZW50JyksCiAgICAgICAgICAgICAgICBMaW5rID0+IEVudigiQWN0aW9uIiksCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgJV0KCiAgICBbJSBTV0lUQ0ggRGF0YS5BY3Rpb24gJV0KICAgICAgICBbJSBDQVNFICdBZGQnICVdCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IFRyYW5zbGF0ZSgnQWRkIFByb2ZpbGUnKSx9KSAlXQogICAgICAgIFslIENBU0UgJ0VkaXQnICVdCiAgICAgICAgICAgIFslIFVTRSBFZGl0VGl0bGUgPSBTdHJpbmcoVHJhbnNsYXRlKCJFZGl0IFByb2ZpbGUgIikpICVdCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IEVkaXRUaXRsZS5hcHBlbmQoICc6ICcsIERhdGEuUHJvZmlsZU5hbWUgKSB9KSAlXQogICAgWyUgRU5EICVdCgogICAgWyUgSU5DTFVERSAiQnJlYWRjcnVtYi50dCIgUGF0aCA9IEJyZWFkY3J1bWJQYXRoICVdCgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj48Yj5bJSBUcmFuc2xhdGUoIkFib3V0IE9JREMgUHJvdmlkZXIgUHJvZmlsZXMiKSB8IGh0bWwgJV08L2I+PC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgRmF2b3VyaXRlTGlzdCI+CiAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoaXMgcGFnZSBkaXNwbGF5cyBhbiBvdmVydmlldyBvZiBjb25maWd1cmVkIE9JREMgUHJvdmlkZXIgUHJvZmlsZXMuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIFslIElGIERhdGEuQWxsSXRlbXNDb3VudCAhPSAwICVdCiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJZb3UgY2FuIGNvbm5lY3QgT0lEQyBQcm9maWxlcyB3aXRoIGEgT0lEQyBGdW5jdGlvbmFsIEFjY291bnQiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/QWN0aW9uPUFkbWluT0F1dGhUb2tlblN0b3JlIj5bJSBUcmFuc2xhdGUoImhlcmUiKSB8IGh0bWwgJV08L2E+LgogICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICA8YnI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkFkZFByb2ZpbGUiKSAlXQogICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUFkZFByb2ZpbGUiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkUHJvZmlsZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkRlbGV0ZSIpICVdCiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IlByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJEZWxldGUiLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJQcm9maWxlTmFtZSIgdmFsdWU9IlslIERhdGEuUHJvZmlsZU5hbWUgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJEZWxldGUgUHJvZmlsZSIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJEZWxldGUgUHJvZmlsZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Zvcm0+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25EZWxldGUiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdIZWFkZXIiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiT3BlbklEIENvbm5lY3QgUHJvdmlkZXIgUHJvZmlsZXMgZm9yIG91dGdvaW5nIFdlYnNlcnZpY2UgY2FsbHMgKEdlbmVyaWNJbnRlcmZhY2UgSW52b2tlcikiKSB8IGh0bWwgJV0gKFslIERhdGEuQWxsSXRlbXNDb3VudCB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJ0b3RhbCIpIHwgaHRtbCAlXSk8L2gyPgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3SGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9Ub2tlbnNEZWZpbmVkIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoZXJlIGFyZSBubyBPSURDIFByb3ZpZGVyIHByb2ZpbGVzIGRlZmluZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vVG9rZW5zRGVmaW5lZCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0IikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSIgaWQ9IlRva2VucyI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJQcm9maWxlIE5hbWUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ2xpZW50IElEIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlByb3ZpZGVyIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhbGlkIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgY2xhc3M9IkFzQmxvY2siIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1FZGl0O1Byb2ZpbGVOYW1lPVslIERhdGEuUHJvZmlsZU5hbWUgfCB1cmkgJV0iPlslIERhdGEuUHJvZmlsZU5hbWUgfCBodG1sICVdPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9Jyc+WyUgRGF0YS5DbGllbnRJRCB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPScnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJbJSBEYXRhLk1ldGFkYXRhVXJsIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCAiUHJvdmlkZXIiICkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBUcmFuc2xhdGUoRGF0YS5WYWxpZCkgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNSI+WyUgVHJhbnNsYXRlKCJObyBtYXRjaGVzIGZvdW5kLiIpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHQiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdVcGRhdGVQcm9maWxlIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIFslIElGIERhdGEuQWN0aW9uID09ICdBZGRQcm9maWxlJyAlXQogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFkZCBPSURDIFByb3ZpZGVyIFByb2ZpbGUiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkVkaXQgT0lEQyBQcm92aWRlciBQcm9maWxlIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJbJSBEYXRhLkFjdGlvbiB8IHVyaSAlXUFjdGlvbiIvPgogICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuQWN0aW9uID09ICdDaGFuZ2UnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNvbnRpbnVlQWZ0ZXJTYXZlIiBpZD0iQ29udGludWVBZnRlclNhdmUiIHZhbHVlPSIiLz4KICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgogICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkhhc0RlZmF1bHQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+WyUgVHJhbnNsYXRlKCJOb3RlIikgfCBodG1sICVdOjwvYj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTaW5jZSB5b3UgYXJlIHVzaW5nIE9JREMgYXMgQXV0aGVudGljYXRpb24gbW9kdWxlLCB0aGVzZSB2YWx1ZXMgaGF2ZSBiZWVuIHByZS1wb3B1bGF0ZWQgd2l0aCB0aGUgT0lEQyBQcm92aWRlciBDb25maWd1cmF0aW9uIHVzZWQgZm9yIExvZ2luLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlByb2ZpbGVOYW1lIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlByb2ZpbGUgTmFtZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuQWN0aW9uID09ICdBZGRQcm9maWxlJyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlByb2ZpbGVOYW1lIiB2YWx1ZT0iWyUgRGF0YS5Qcm9maWxlTmFtZSB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJFcnJvciI+WyUgRGF0YS5Qcm9maWxlTmFtZVNlcnZlckVycm9yICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIHVuaXF1ZSBuYW1lIGZvciB0aGlzIFByb2ZpbGUuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CgogICAgICAgICAgICAgICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iUHJvZmlsZU5hbWUiIHZhbHVlPSJbJSBEYXRhLlByb2ZpbGVOYW1lIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiByZWFkb25seT0icmVhZG9ubHkiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgdW5pcXVlIG5hbWUgZm9yIHRoaXMgUHJvZmlsZS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJQcm92aWRlck1ldGFkYXRhVXJsIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIk1ldGFkYXRhIFVybC4iKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJQcm92aWRlck1ldGFkYXRhVXJsRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlByb3ZpZGVyTWV0YWRhdGFVcmwiIGlkPSJQcm92aWRlck1ldGFkYXRhVXJsIiB2YWx1ZT0iWyUgRGF0YS5Qcm92aWRlck1ldGFkYXRhVXJsIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuUHJvdmlkZXJNZXRhZGF0YVVybEludmFsaWQgfCBodG1sICVdIiBtYXhsZW5ndGg9IjQwOTYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJFcnJvciI+WyUgRGF0YS5Qcm92aWRlck1ldGFkYXRhVXJsU2VydmVyRXJyb3IgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgV2VsbC1Lbm93biBQcm92aWRlciBNZXRhZGF0YSBVcmwuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJDbGllbnRJRCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJDbGllbnQgSUQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJDbGllbnRJREZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJDbGllbnRJRCIgaWQ9IkNsaWVudElEIiB2YWx1ZT0iWyUgRGF0YS5DbGllbnRJRCB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkNsaWVudElESW52YWxpZCB8IGh0bWwgJV0iIG1heGxlbmd0aD0iNDA5NiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkVycm9yIj5bJSBEYXRhLkNsaWVudElEU2VydmVyRXJyb3IgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgQ2xpZW50IElEIG9mIHlvdXIgT0F1dGgyIGFwcGxpY2F0aW9uLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iQ2xpZW50U2VjcmV0Ij48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkNsaWVudCBTZWNyZXQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJDbGllbnRTZWNyZXRGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9IkNsaWVudFNlY3JldCIgaWQ9IkNsaWVudFNlY3JldCIgdmFsdWU9IlslIERhdGEuQ2xpZW50U2VjcmV0IHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuQ2xpZW50U2VjcmV0SW52YWxpZCB8IGh0bWwgJV0iIG1heGxlbmd0aD0iNDA5NiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkVycm9yIj5bJSBEYXRhLkNsaWVudFNlY3JldFNlcnZlckVycm9yICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIENsaWVudCBTZWNyZXQgb2YgeW91ciBPQXV0aDIgYXBwbGljYXRpb24uIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJDYWNoZVRUTCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJDYWNoZSBUVEwiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJDYWNoZVRUTEZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJDYWNoZVRUTCIgaWQ9IkNhY2hlVFRMIiB2YWx1ZT0iWyUgRGF0YS5DYWNoZVRUTCB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkNhY2hlVFRMSW52YWxpZCB8IGh0bWwgJV0iIG1heGxlbmd0aD0iNDA5NiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkVycm9yIj5bJSBEYXRhLkNhY2hlVFRMU2VydmVyRXJyb3IgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaW1lIGluIHNlY29uZHMgZm9yIGNhY2hpbmcgcHJvdmlkZXIgZGF0YS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlZhbGlkSUQiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiVmFsaWRpdHkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWxpZE9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgoKCiAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgbmFtZT0iZGV0YWlscyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiU1NMIE9wdGlvbnMgKE9wdGlvbmFsKSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3N1bW1hcnk+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJTU0xDZXJ0aWZpY2F0ZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJTU0wgQ2VydGlmaWNhdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCIgaWQ9IlNTTENlcnRpZmljYXRlRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iU1NMQ2VydGlmaWNhdGUiIGlkPSJTU0xDZXJ0aWZpY2F0ZSIgdmFsdWU9IlslIERhdGEuU1NMQ2VydGlmaWNhdGUgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIG1heGxlbmd0aD0iMjA0OCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNTTCBjZXJ0aWZpY2F0ZSBwYXRoLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJTU0xLZXkiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiU1NMIENlcnRpZmljYXRlIEtleSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIiBpZD0iU1NMS2V5RmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iU1NMS2V5IiBpZD0iU1NMS2V5IiB2YWx1ZT0iWyUgRGF0YS5TU0xLZXkgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIG1heGxlbmd0aD0iMjA0OCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNTTCBjZXJ0aWZpY2F0ZSBwcml2YXRlIGtleSBwYXRoLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJTU0xQYXNzd29yZCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJTU0wgUGFzc3dvcmQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCIgaWQ9IlNTTFBhc3N3b3JkRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iU1NMUGFzc3dvcmQiIGlkPSJTU0xQYXNzd29yZCIgdmFsdWU9IlslIERhdGEuU1NMUGFzc3dvcmQgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIG1heGxlbmd0aD0iMjA0OCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoZSBTU0wgcGFzc3dvcmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlNTTENBRmlsZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJTU0wgQ0EgRmlsZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIiBpZD0iU1NMQ0FGaWxlRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iU1NMQ0FGaWxlIiBpZD0iU1NMQ0FGaWxlIiB2YWx1ZT0iWyUgRGF0YS5TU0xDQUZpbGUgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIG1heGxlbmd0aD0iMjA0OCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNTTCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgZmlsZSBwYXRoLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJTU0xDQURpciI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJTU0wgQ0EgRGlyZWN0b3J5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJTU0xDQURpckZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlNTTENBRGlyIiBpZD0iU1NMQ0FEaXIiIHZhbHVlPSJbJSBEYXRhLlNTTENBRGlyIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjIwNDgiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTU0wgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IGRpcmVjdG9yeSBwYXRoLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJTU0xWZXJpZnlIb3N0bmFtZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJTU0wgVmVyaWZ5IEhvc3RuYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJTU0xWZXJpZnlIb3N0bmFtZUZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TU0xWZXJpZnlIb3N0bmFtZU9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkVuYWJsZSBvciBkaXNhYmxlIFNTTCBob3N0bmFtZSB2ZXJpZmljYXRpb24uIE9ubHkgZGlzYWJsZSBmb3IgZGVidWdnaW5nIHB1cnBvc2VzISIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJTU0xWZXJpZnlNb2RlIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlNTTCBWZXJpZnkgTW9kZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIiBpZD0iU1NMVmVyaWZ5TW9kZUZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TU0xWZXJpZnlNb2RlT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRW5hYmxlIG9yIGRpc2FibGUgU1NMIHZlcmlmaWNhdGlvbi4gT25seSBkaXNhYmxlIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMhIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgPGJyPgoKICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBuYW1lPSJkZXRhaWxzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTWlzYyBPcHRpb25zIChPcHRpb25hbCkiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdW1tYXJ5PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlVzZU5vbmNlIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlVzZSBOb25jZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVXNlTm9uY2VPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlJhbmRMZW5ndGgiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiUmFuZCBMZW5ndGgiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIiBpZD0iUmFuZExlbmd0aEZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iUmFuZExlbmd0aCIgaWQ9IlJhbmRMZW5ndGgiIHZhbHVlPSJbJSBEYXRhLlJhbmRMZW5ndGggfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIG1heGxlbmd0aD0iMTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUmFuZG9tIHN0cmluZyBsZW5ndGggdXNlZCBmb3Igc3RhdGUgYW5kIG5vbmNlIHBhcmFtZXRlcnMuIERlZmF1bHQgaXMgJzIyJy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJSYW5kVFRMIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlJhbmQgVFRMIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCIgaWQ9IlJhbmRUVExGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlJhbmRUVEwiIGlkPSJSYW5kVFRMIiB2YWx1ZT0iWyUgRGF0YS5SYW5kVFRMIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjEwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRpbWUtdG8tbGl2ZSBmb3Igc3RhdGUgYW5kIG5vbmNlIGluIHNlY29uZHMuIERlZmF1bHQgaXMgJzMwMCcgKDUgbWluKS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJMZWV3YXkiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiTGVld2F5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCIgaWQ9IkxlZXdheUZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iTGVld2F5IiBpZD0iTGVld2F5IiB2YWx1ZT0iWyUgRGF0YS5MZWV3YXkgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIG1heGxlbmd0aD0iMTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGltZSBkcmlmdCBhbGxvd2FuY2UgYmV0d2VlbiBzZXJ2ZXJzIHRvIGJlIGFsbG93ZWQuIERlZmF1bHQgJzInIHNlY29uZHMuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIFByaW1hcnkiIGlkPSJTdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdVcGRhdGVQcm9maWxlIikgJV0KCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlldyIpICVdCg==</File>
        <File Location="Kernel/System/Console/Command/Admin/OAuth2/ImportUser.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpDb21tYW5kOjpBZG1pbjo6T0F1dGgyOjpJbXBvcnRVc2VyOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgSlNPTjsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCnVzZSBwYXJlbnQgcXcoS2VybmVsOjpTeXN0ZW06OkNvbnNvbGU6OkJhc2VDb21tYW5kKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TWFpbicsCiAgICAnS2VybmVsOjpTeXN0ZW06OlVzZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlbicsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuUHJvdmlkZXInLAopOwoKc3ViIENvbmZpZ3VyZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5EZXNjcmlwdGlvbignSW1wb3J0IGEgRnVuY3Rpb25hbCBVc2VyIEFjY291bnQgZnJvbSBhbiBPcGVuSUQgQ29ubmVjdCBQcm92aWRlci4nKTsKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ29wZW5pZC1jb25maWcnLAogICAgICAgIERlc2NyaXB0aW9uID0+CiAgICAgICAgICAgICJUaGUgbmFtZSBvZiBPcGVuSUQgQ29uZmlnIHRvIHVzZS4gRGVmYXVsdHMgdG8gJ0F1dGhNb2R1bGU6Ok9wZW5JRENvbm5lY3QnIGZvciB1c2luZyB0aGUgZGVmYXVsdCBPSURDIGxvZ2luIHByb3ZpZGVyIGlmIHRoaXMgc3lzdGVtIHVzZXMgT0lEQyBmb3IgbG9naW4gcHVycG9zZXMuIE90aGVyd2lzZSB1c2Ugb25lIG9mICdPcGVuSURDb25uZWN0OjpVc2VyTWFwcGluZyMjI0N1c3RvbTEnIC4uLiBDdXN0b21OIEtleXMuICIsCiAgICAgICAgUmVxdWlyZWQgICA9PiAwLAogICAgICAgIEhhc1ZhbHVlICAgPT4gMSwKICAgICAgICBWYWx1ZVJlZ2V4ID0+IHFyLy4qL3NteCwKICAgICk7CiAgICAkU2VsZi0+QWRkT3B0aW9uKAogICAgICAgIE5hbWUgICAgICAgID0+ICdncmFudC10eXBlJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgT0F1dGgyIGdyYW50LXR5cGUgKG9uZSBvZiBwYXNzd29yZHxjbGllbnRfY3JlZGVudGlhbHMpLiIsCiAgICAgICAgUmVxdWlyZWQgICAgPT4gMSwKICAgICAgICBIYXNWYWx1ZSAgICA9PiAxLAogICAgICAgIFZhbHVlUmVnZXggID0+IHFyL14ocGFzc3dvcmQpfChjbGllbnRfY3JlZGVudGlhbHMpJC9zbXgsCiAgICApOwoKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3VzZXJuYW1lJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgT0F1dGgyIHVzZXJuYW1lIGlmIGdyYW50LXR5cGUgaXMgJ3Bhc3N3b3JkJy4iLAogICAgICAgIFJlcXVpcmVkICAgID0+IDAsCiAgICAgICAgSGFzVmFsdWUgICAgPT4gMSwKICAgICAgICBWYWx1ZVJlZ2V4ICA9PiBxci8uKi9zbXgsCiAgICApOwoKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3Bhc3N3b3JkJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgT0F1dGgyIHBhc3N3b3JkIGlmIGdyYW50LXR5cGUgaXMgJ3Bhc3N3b3JkJy4iLAogICAgICAgIFJlcXVpcmVkICAgID0+IDAsCiAgICAgICAgSGFzVmFsdWUgICAgPT4gMSwKICAgICAgICBWYWx1ZVJlZ2V4ICA9PiBxci8vc214LAogICAgKTsKCiAgICAkU2VsZi0+QWRkT3B0aW9uKAogICAgICAgIE5hbWUgICAgICAgID0+ICdzY29wZScsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gIlNwZWNpZnkgdGhlIE9BdXRoMiBzY29wZShzKSBhcyBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0LiBvcHRpb25hbC4iLAogICAgICAgIFJlcXVpcmVkICAgID0+IDAsCiAgICAgICAgSGFzVmFsdWUgICAgPT4gMSwKICAgICAgICBWYWx1ZVJlZ2V4ICA9PiBxci8uKi9zbXgsCiAgICApOwoKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3Jlc291cmNlJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgT0F1dGgyIHJlc291cmNlIHBhcmFtZXRlciBhcyBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0LiBvcHRpb25hbC4iLAogICAgICAgIFJlcXVpcmVkICAgID0+IDAsCiAgICAgICAgSGFzVmFsdWUgICAgPT4gMSwKICAgICAgICBWYWx1ZVJlZ2V4ICA9PiBxci8uKi9zbXgsCiAgICApOwoKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3Jlc291cmNlLXBhcmFtLW5hbWUnLAogICAgICAgIERlc2NyaXB0aW9uID0+ICJTcGVjaWZ5IHRoZSBPQXV0aDIgcmVzb3VyY2UgcGFyYW1ldGVyIG5hbWUsIHRoYXQgaXMgdGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciBpdHNlbGYuIG9wdGlvbmFsLCBkZWZhdWx0cyB0byAncmVzb3VyY2UnIiwKICAgICAgICBSZXF1aXJlZCAgICA9PiAwLAogICAgICAgIEhhc1ZhbHVlICAgID0+IDEsCiAgICAgICAgVmFsdWVSZWdleCAgPT4gcXIvLiovc214LAogICAgKTsKCiAgICAkU2VsZi0+QWRkT3B0aW9uKAogICAgICAgIE5hbWUgICAgICAgID0+ICd0b2tlbi10eXBlJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgT0F1dGgyIHRva2VuIHR5cGUsIGNhbiBiZSAnYWNjZXNzX3Rva2VuJyBvciAnaWRfdG9rZW4nLiBkZWZhdWx0cyB0byAnaWRfdG9rZW4nLiIsCiAgICAgICAgUmVxdWlyZWQgICAgPT4gMCwKICAgICAgICBIYXNWYWx1ZSAgICA9PiAxLAogICAgICAgIFZhbHVlUmVnZXggID0+IHFyL14oYWNjZXNzX3Rva2VuKXwoaWRfdG9rZW4pJC9zbXgsCiAgICApOwoKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3VzZXItbWFwJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgVXNlck1hcCBzeXN0ZW0gY29uZmlndXJhdGlvbiBzZXR0aW5nLiBkZWZhdWx0cyB0byAnQXV0aE1vZHVsZTo6T3BlbklEQ29ubmVjdDo6VXNlck1hcCcuIiwKICAgICAgICBSZXF1aXJlZCAgICA9PiAwLAogICAgICAgIEhhc1ZhbHVlICAgID0+IDEsCiAgICAgICAgVmFsdWVSZWdleCAgPT4gcXIvLiovc214LAogICAgKTsKCiAgICAkU2VsZi0+QWRkT3B0aW9uKAogICAgICAgIE5hbWUgICAgICAgID0+ICdyb2xlLW1hcCcsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gIlNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIFJvbGVNYXAgc3lzdGVtIGNvbmZpZ3VyYXRpb24gc2V0dGluZy4gZGVmYXVsdHMgdG8gJ0F1dGhNb2R1bGU6Ok9wZW5JRENvbm5lY3Q6OlJvbGVNYXAnLiIsCiAgICAgICAgUmVxdWlyZWQgICAgPT4gMCwKICAgICAgICBIYXNWYWx1ZSAgICA9PiAxLAogICAgICAgIFZhbHVlUmVnZXggID0+IHFyLy4qL3NteCwKICAgICk7CgogICAgJFNlbGYtPkFkZE9wdGlvbigKICAgICAgICBOYW1lICAgICAgICA9PiAndWlkJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgbmFtZSBvZiBqd3QgdG9rZW4gY2xhaW0gdG8gYmUgbWFwcGVkIHRvIHRoZSBPdG9ibyBVc2VyTG9naW4uIERlZmF1bHRzIHRvICdzdWInIiwKICAgICAgICBSZXF1aXJlZCAgICA9PiAwLAogICAgICAgIEhhc1ZhbHVlICAgID0+IDEsCiAgICAgICAgVmFsdWVSZWdleCAgPT4gcXIvLiovc214LAogICAgKTsKCiAgICAkU2VsZi0+QWRkT3B0aW9uKAogICAgICAgIE5hbWUgICAgICAgID0+ICdkcnktcnVuJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU2ltdWxhdGUgYWN0aW9ucywgZG8gbm90IGFjdHVhbGx5IGFkZCB1c2VyIiwKICAgICAgICBSZXF1aXJlZCAgICA9PiAwLAogICAgICAgIEhhc1ZhbHVlICAgID0+IDAsCiAgICAgICAgVmFsdWVSZWdleCAgPT4gcXIvL3NteCwKICAgICk7CgogICAgcmV0dXJuOwp9CgpzdWIgUHJlUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPlByaW50KCI8Z3JlZW4+SW1wb3J0aW5nIEZ1bmN0aW9uYWwgQWNjb3VudC4uLjwvZ3JlZW4+XG4iKTsKCiAgICBpZiAoICRTZWxmLT5HZXRPcHRpb24oJ2RyeS1ydW4nKSApIHsKCiAgICAgICAgJFNlbGYtPlByaW50KCI8eWVsbG93PmRyeS1ydW4gbW9kZTogbm90IHBlcmZvcm1pbmcgYW55IGFjdHVhbCBjaGFuZ2VzLjwveWVsbG93PlxuIik7CiAgICB9CgogICAgIyBnYXRoZXIgcGFyYW1ldGVyIHZhbHVlcwogICAgbXkgJE9wZW5JRFByb2ZpbGVOYW1lID0gJFNlbGYtPkdldE9wdGlvbignb3BlbmlkLWNvbmZpZycpIHx8ICdBdXRoTW9kdWxlOjpPcGVuSURDb25uZWN0JzsKICAgIG15ICRPcGVuSURDb25maWdOYW1lICA9ICRPcGVuSURQcm9maWxlTmFtZSAuICc6OkNvbmZpZyc7CgogICAgIyAgICBteSAkT0lEQ0NvbmZpZ3VyYXRpb25PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6Q29uZmlndXJhdGlvbicpOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJE9wZW5JRENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgkT3BlbklEQ29uZmlnTmFtZSk7CiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkT3BlbklEQ29uZmlnKSApIHsKCiAgICAgICAgJFNlbGYtPlByaW50RXJyb3IoJ0ludmFsaWQgT3BlbklEQ29uZmlnIScpOwogICAgICAgIHJldHVybiAkU2VsZi0+RXhpdENvZGVFcnJvcigpOwogICAgfQoKICAgIG15ICRHcmFudFR5cGUgPSAkU2VsZi0+R2V0T3B0aW9uKCdncmFudC10eXBlJyk7CiAgICBpZiAoICRHcmFudFR5cGUgZXEgJ3Bhc3N3b3JkJyApIHsKICAgICAgICBpZiAoICEkU2VsZi0+R2V0T3B0aW9uKCd1c2VybmFtZScpICkgewoKICAgICAgICAgICAgJFNlbGYtPlByaW50RXJyb3IoIk5lZWQgLS11c2VybmFtZSAoYW5kIHByb2JhYmx5IC0tcGFzc3dvcmQpIGZvciBncmFudC10eXBlICdwYXNzd29yZCcuIik7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+RXhpdENvZGVFcnJvcigpOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkVG9rZW5UeXBlID0gJFNlbGYtPkdldE9wdGlvbigndG9rZW4tdHlwZScpIHx8ICdpZF90b2tlbic7CiAgICBteSAkVUlEICAgICAgID0gJFNlbGYtPkdldE9wdGlvbigndWlkJykgICAgICAgIHx8ICdzdWInOwogICAgbXkgJFVzZXJNYXAgICA9ICRDb25maWdPYmplY3QtPkdldCggJFNlbGYtPkdldE9wdGlvbigndXNlci1tYXAnKSB8fCAkT3BlbklEUHJvZmlsZU5hbWUgLiAnOjpVc2VyTWFwJyApOwogICAgbXkgJFJvbGVNYXAgICA9ICRDb25maWdPYmplY3QtPkdldCggJFNlbGYtPkdldE9wdGlvbigncm9sZS1tYXAnKSB8fCAkT3BlbklEUHJvZmlsZU5hbWUgLiAnOjpSb2xlTWFwJyApOwoKICAgICMgbm93IHVzZSBUb2tlblByb3ZpZGVyIHRvIGRvIHRoZSBUb2tlbiBmZXRjaGluZyBmb3IgdXMKICAgIG15ICRUb2tlblByb3ZpZGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuUHJvdmlkZXInKTsKCiAgICBteSAkUmVzdWx0ID0gJFRva2VuUHJvdmlkZXItPkZldGNoVG9rZW5Gcm9tQ29uZmlnKAogICAgICAgIFRva2VuVHlwZSAgICAgICAgID0+ICRTZWxmLT5HZXRPcHRpb24oJ3Rva2VuLXR5cGUnKSAgICAgICAgICB8fCAnYWNjZXNzX3Rva2VuJywKICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkU2VsZi0+R2V0T3B0aW9uKCdyZXNvdXJjZS1wYXJhbS1uYW1lJykgfHwgJ3Jlc291cmNlJywKICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAkU2VsZi0+R2V0T3B0aW9uKCdyZXNvdXJjZScpLAogICAgICAgIFNjb3BlICAgICAgICAgICAgID0+ICRTZWxmLT5HZXRPcHRpb24oJ3Njb3BlJyksCiAgICAgICAgT3BlbklEQ29uZmlnICAgICAgPT4gJE9wZW5JRENvbmZpZywKICAgICAgICBHcmFudFR5cGUgICAgICAgICA9PiAkR3JhbnRUeXBlLAogICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRTZWxmLT5HZXRPcHRpb24oJ3VzZXJuYW1lJyksCiAgICAgICAgUGFzc3dvcmQgICAgICAgICAgPT4gJFNlbGYtPkdldE9wdGlvbigncGFzc3dvcmQnKSwKICAgICk7CgogICAgaWYgKCAhJFJlc3VsdC0+e1N1Y2Nlc3N9ICkgewogICAgICAgICRTZWxmLT5QcmludEVycm9yKCAnRXJyb3IgRmV0Y2hpbmcgVG9rZW46ICcgLiAkUmVzdWx0LT57RXJyb3J9ICk7CiAgICAgICAgcmV0dXJuICRTZWxmLT5FeGl0Q29kZUVycm9yKCk7CiAgICB9CgogICAgbXkgJFRva2VuID0gJFJlc3VsdC0+e0RlY29kZWRDb250ZW50fS0+eyRUb2tlblR5cGV9OwogICAgaWYgKCAhJFRva2VuICkgewoKICAgICAgICAkU2VsZi0+UHJpbnRFcnJvcigiRGlkIG5vdCByZWNlaXZlIGRlc2lyZWQgdG9rZW4gdHlwZSAnJFRva2VuVHlwZScuIik7CiAgICAgICAgcmV0dXJuICRTZWxmLT5FeGl0Q29kZUVycm9yKCk7CiAgICB9CgogICAgIyBpbnNwZWN0IHRoZSBUb2tlbiBwYXlsb2FkCiAgICBteSAkVG9rZW5PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW4nKTsKICAgIG15ICRUb2tlbkRhdGEgICA9ICRUb2tlbk9iamVjdC0+SW5zcGVjdCggVG9rZW4gPT4gJFRva2VuICk7CgogICAgJFNlbGYtPlByaW50KCBlbmNvZGVfanNvbigkVG9rZW5EYXRhKSAuICJcbiIgKTsKCiAgICAjIGRldGVybWluZSBqd3QgY2xhaW4gdG8gb3RvYm8gVXNlckxvZ2luIG1hcHBpbmcKICAgIG15ICRVc2VyTG9naW4gPSAkVG9rZW5EYXRhLT57JFVJRH07CiAgICBpZiAoICEkVXNlckxvZ2luICkgewoKICAgICAgICAkU2VsZi0+UHJpbnRFcnJvcigiVG9rZW4gcmVjZWl2ZWQgYnV0IFVJRCB3YXMgbm90IHByb3ZpZGVkIGluICckVUlEJy4iKTsKICAgICAgICByZXR1cm4gJFNlbGYtPkV4aXRDb2RlRXJyb3IoKTsKICAgIH0KCiAgICAjIFJvbGVzCiAgICBteSAlUm9sZXM7CiAgICBpZiAoJFJvbGVNYXApIHsKICAgICAgICAlUm9sZXMgPSAkU2VsZi0+X0V4dHJhY3RNYXAoCiAgICAgICAgICAgIE1hcCAgPT4gJFJvbGVNYXAsCiAgICAgICAgICAgIERhdGEgPT4gJFRva2VuRGF0YSwKICAgICAgICApOwogICAgfQoKICAgICMgaWYgT3BlbklEQ29ubmVjdCBpcyBjb25maWd1cmVkIHRvIHByb3ZpZGUgYXV0aG9yaXphdGlvbiBidXQgdGhlIHVzZXIgaGFzIG5vIHJpZ2h0cyByZXR1cm4KICAgIGlmICggJFJvbGVNYXAgJiYgISVSb2xlcyApIHsKCiAgICAgICAgJFNlbGYtPlByaW50RXJyb3IoIlVuYXV0aG9yaXplZCBhcyBwZXIgUm9sZU1hcC4iKTsKICAgICAgICByZXR1cm4gJFNlbGYtPkV4aXRDb2RlRXJyb3IoKTsKICAgIH0KCiAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CiAgICBteSAlVXNlciAgICAgICA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSggVXNlciA9PiAkVXNlckxvZ2luICk7CiAgICBteSAkVXNlcklEOwoKICAgICMgY3JlYXRlIGFuZCBlZGl0IHVzZXJzCiAgICBpZiAoJFVzZXJNYXApIHsKCiAgICAgICAgbXkgJVVzZXJEYXRhID0gbWFwIHsgJFVzZXJNYXAtPnskX30gPT4gJFRva2VuRGF0YS0+eyRffSB9IGtleXMgJXskVXNlck1hcH07CgogICAgICAgICMgZG9uJ3QgbWVzcyB3aXRoIHNvbWUgZGF0YSBoZXJlCiAgICAgICAgZGVsZXRlICRVc2VyRGF0YXtVc2VySUR9OwogICAgICAgIGRlbGV0ZSAkVXNlckRhdGF7VXNlclB3fTsKCiAgICAgICAgJFVzZXJEYXRhe1VzZXJGaXJzdG5hbWV9ID0gJFVzZXJEYXRhe1VzZXJGaXJzdG5hbWV9IHx8ICRUb2tlbkRhdGEtPnthenB9ICAgICAgICAgICAgICAgIHx8ICdvdG9ibyc7CiAgICAgICAgJFVzZXJEYXRhe1VzZXJMYXN0bmFtZX0gID0gJFVzZXJEYXRhe1VzZXJMYXN0bmFtZX0gIHx8ICRUb2tlbkRhdGEtPntwcmVmZXJyZWRfdXNlcm5hbWV9IHx8ICdib3QnOwogICAgICAgICRVc2VyRGF0YXtVc2VyRW1haWx9ICAgICA9ICRUb2tlbkRhdGEtPntlbWFpbH0gICAgICB8fCAkVXNlckRhdGF7VXNlckVtYWlsfSAgICAgICAgICAgICB8fCAnc3lzdGVtdXNlckBvdG9iby5sb2NhbCc7CgogICAgICAgIGlmICggISVVc2VyICkgewoKICAgICAgICAgICAgJFNlbGYtPlByaW50KCI8eWVsbG93PkFkZGluZyBVc2VyICAkVXNlckxvZ2luIDwveWVsbG93PlxuIik7CgogICAgICAgICAgICBmb3IgbXkgJEtleSAoIGtleXMgJVVzZXJEYXRhICkgewogICAgICAgICAgICAgICAgJFNlbGYtPlByaW50KCAiICAgIDx5ZWxsb3c+JEtleSA6ICIgLiAkVXNlckRhdGF7JEtleX0gLiAiPC95ZWxsb3c+XG4iICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggISRTZWxmLT5HZXRPcHRpb24oJ2RyeS1ydW4nKSApIHsKICAgICAgICAgICAgICAgICRVc2VySUQgPSAkVXNlck9iamVjdC0+VXNlckFkZCgKICAgICAgICAgICAgICAgICAgICBVc2VyRmlyc3RuYW1lID0+ICctJywKICAgICAgICAgICAgICAgICAgICBVc2VyTGFzdG5hbWUgID0+ICctJywKICAgICAgICAgICAgICAgICAgICAlVXNlckRhdGEsCiAgICAgICAgICAgICAgICAgICAgVXNlckxvZ2luICAgID0+ICRVc2VyTG9naW4sCiAgICAgICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICRTZWxmLT5QcmludCgiPHllbGxvdz5VcGRhdGluZyBVc2VyICAkVXNlckxvZ2luIDwveWVsbG93PlxuIik7CgogICAgICAgICAgICBmb3IgbXkgJEtleSAoIGtleXMgJVVzZXJEYXRhICkgewogICAgICAgICAgICAgICAgJFNlbGYtPlByaW50KCAiICAgIDx5ZWxsb3c+JEtleSA6ICIgLiAkVXNlckRhdGF7JEtleX0gLiAiPC95ZWxsb3c+XG4iICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRVcGRhdGU7CiAgICAgICAgICAgIEtFWToKICAgICAgICAgICAgZm9yIG15ICRLZXkgKCBrZXlzICVVc2VyRGF0YSApIHsKICAgICAgICAgICAgICAgIGlmICggJFVzZXJEYXRheyRLZXl9IG5lICRVc2VyeyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICRVcGRhdGUgPSAxOwoKICAgICAgICAgICAgICAgICAgICBsYXN0IEtFWTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCAkVXBkYXRlICYmICEkU2VsZi0+R2V0T3B0aW9uKCdkcnktcnVuJykgKSB7CiAgICAgICAgICAgICAgICAkVXNlck9iamVjdC0+VXNlclVwZGF0ZSgKICAgICAgICAgICAgICAgICAgICAlVXNlciwKICAgICAgICAgICAgICAgICAgICAlVXNlckRhdGEsCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICRVc2VySUQgLy89ICRVc2Vye1VzZXJJRH07CgogICAgaWYgKCAhJFVzZXJJRCAmJiAkU2VsZi0+R2V0T3B0aW9uKCdkcnktcnVuJykgIT0gMSApIHsKCiAgICAgICAgJFNlbGYtPlByaW50RXJyb3IoIk5vIFVzZXJJZCBmb3IgJFVzZXJMb2dpbi4gQWJvcnRpbmcuIik7CiAgICAgICAgcmV0dXJuICRTZWxmLT5FeGl0Q29kZUVycm9yKCk7CiAgICB9CiAgICBpZiAoJFVzZXJJRCkgewogICAgICAgICRTZWxmLT5QcmludCgiPHllbGxvdz5cblVzZXJJRDogJFVzZXJJRFxuPC95ZWxsb3c+XG4iKTsKICAgIH0KCiAgICAjIHN1Y2Nlc3NmdWwgcmV0dXJuIGlmIG5vIGF1dGhvcml6YXRpb24gaGFzIHRvIGJlIGRvbmUKCiAgICByZXR1cm4gJFVzZXJMb2dpbiBpZiAhJFJvbGVNYXA7CgogICAgbXkgJEdyb3VwT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgaWYgKCRSb2xlTWFwKSB7CiAgICAgICAgbXkgJUFsbFJvbGVzID0gcmV2ZXJzZSAkR3JvdXBPYmplY3QtPlJvbGVMaXN0KAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlIHVzZXIgcm9sZXMKICAgICAgICBmb3IgbXkgJFJvbGVOYW1lICgga2V5cyAlQWxsUm9sZXMgKSB7CgogICAgICAgICAgICAkU2VsZi0+UHJpbnQoIjx5ZWxsb3c+ICBDaGVjayBSb2xlOiAkUm9sZU5hbWU8L3llbGxvdz5cbiIpOwoKICAgICAgICAgICAgaWYgKCAhJFNlbGYtPkdldE9wdGlvbignZHJ5LXJ1bicpICkgewogICAgICAgICAgICAgICAgJEdyb3VwT2JqZWN0LT5QZXJtaXNzaW9uUm9sZVVzZXJBZGQoCiAgICAgICAgICAgICAgICAgICAgVUlEICAgID0+ICRVc2VySUQsCiAgICAgICAgICAgICAgICAgICAgUklEICAgID0+ICRBbGxSb2xlc3skUm9sZU5hbWV9LAogICAgICAgICAgICAgICAgICAgIEFjdGl2ZSA9PiAkUm9sZXN7JFJvbGVOYW1lfSB8fCAwLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAkU2VsZi0+UHJpbnQoIjxncmVlbj5Eb25lLjwvZ3JlZW4+XG4iKTsKICAgIHJldHVybiAkU2VsZi0+RXhpdENvZGVPaygpOwp9CgpzdWIgX0V4dHJhY3RNYXAgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKICAgIG15ICVSZXR1cm4gPSAoKTsKCiAgICBLRVk6CiAgICBmb3IgbXkgJEtleSAoIGtleXMgJXsgJFBhcmFte01hcH0gfSApIHsKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17TWFwfXskS2V5fSApICkgewogICAgICAgICAgICBuZXh0IEtFWSB1bmxlc3MgZGVmaW5lZCAkUGFyYW17RGF0YX17JEtleX07CgogICAgICAgICAgICAlUmV0dXJuID0gKAogICAgICAgICAgICAgICAgJVJldHVybiwKICAgICAgICAgICAgICAgICRTZWxmLT5fRXh0cmFjdE1hcCgKICAgICAgICAgICAgICAgICAgICBNYXAgID0+ICRQYXJhbXtNYXB9eyRLZXl9LAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gJFBhcmFte0RhdGF9eyRLZXl9LAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG5leHQgS0VZIGlmIHJlZiAkUGFyYW17TWFwfXskS2V5fTsKCiAgICAgICAgbXkgQERhdGEgPSBJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtEYXRhfSApID8gQHsgJFBhcmFte0RhdGF9IH0gOgogICAgICAgICAgICAhcmVmICRQYXJhbXtEYXRhfSA/ICggJFBhcmFte0RhdGF9ICkgOiAoKTsKCiAgICAgICAgZm9yIG15ICRPcGVuSURBdHRyaWJ1dGUgKEBEYXRhKSB7CiAgICAgICAgICAgIG15ICRPVE9CT0F0dHJpYnV0ZSA9ICRQYXJhbXtNYXB9eyRPcGVuSURBdHRyaWJ1dGV9OwoKICAgICAgICAgICAgaWYgKCRPVE9CT0F0dHJpYnV0ZSkgewogICAgICAgICAgICAgICAgJFJldHVybnskT1RPQk9BdHRyaWJ1dGV9ID0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJVJldHVybjsKfQoKMTsK</File>
        <File Location="Kernel/System/OpenIDConnect/Authenticator.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6QXV0aGVudGljYXRvcjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCnVzZSBuYW1lc3BhY2U6OmF1dG9jbGVhbjsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VXNlckltcG9ydCcsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkF1dGhlbnRpY2F0b3IKCj1mb3Igc3RvcHdvcmRzIE9JREMKCmF1dGhlbnRpY2F0ZSBpbmNvbWluZyBPSURDIE9BdXRoMiBUb2tlbnMKCj1oZWFkMSBTWU5PUFNJUwoKYXV0aGVudGljYXRlIGluY29taW5nIE9JREMgT0F1dGgyIFRva2VucyBiYXNlZCBvbiB0aGUgT3RvYm8gQXV0aE1vZHVsZXMKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRBdXRoZW50aWNhdG9yT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkF1dGhlbnRpY2F0b3InKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgQXV0aGVudGljYXRlKCkKCiAgICBBdXRoZW50aWNhdGVzIGFuIGluY29taW5nIEJlYXJlciBUb2tlbgoKICAgIG15ICRSZXN1bHQgPSAkQXV0aGVudGljYXRvck9iamVjdC0+QXV0aGVudGljYXRlKAogICAgICAgIFRva2VuICA9PiAkVG9rZW4sCiAgICAgICAgTGVld2F5ID0+ICRBbGxvd2VkU2Vjb25kc1RpbWVEcmlmdCwgICAgIyBvcHRpb25hbAogICAgKTsKCiAgICB3aGVyZQoKICAgIG15ICRSZXN1bHQgPSB7CiAgICAgICAgICAgIFN1Y2Nlc3MgICA9PiAxLAogICAgICAgICAgICBUb2tlbkRhdGEgPT4gJFRva2VuRGF0YSwKICAgICAgICAgICAgVXNlckRhdGEgID0+IFwlVXNlckRhdGEsCiAgICB9OwoKPWN1dAoKc3ViIEF1dGhlbnRpY2F0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRCZWFyZXJUb2tlbiA9ICRQYXJhbXtUb2tlbn07CgogICAgbXkgJFJlc3VsdCA9IHsgU3VjY2VzcyA9PiAwIH07CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBsb2FkIGF1dGggbW9kdWxlcwogICAgQ09VTlQ6CiAgICBmb3IgbXkgJENvdW50ICggJycsIDEgLi4gMTAgKSB7CgogICAgICAgIG15ICRHZW5lcmljTW9kdWxlID0gJENvbmZpZ09iamVjdC0+R2V0KCJBdXRoTW9kdWxlJENvdW50Iik7CgogICAgICAgIG5leHQgQ09VTlQgaWYgISRHZW5lcmljTW9kdWxlOwoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkF1dGhlbnRpY2F0ZSBPQXV0aDIgVG9rZW4gd2l0aCBBdXRoTW9kdWxlICdBdXRoTW9kdWxlJENvdW50JyIsCiAgICAgICAgKTsKCiAgICAgICAgJEdlbmVyaWNNb2R1bGUgPX4gcy9eS2VybmVsOjpTeXN0ZW06OkF1dGg6Oi8vOwoKICAgICAgICBteSAkT3BlbklEQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCAiQXV0aE1vZHVsZSRDb3VudCIgLiAiOjoiIC4gJEdlbmVyaWNNb2R1bGUgLiAiOjpDb25maWciICk7CgogICAgICAgIG5leHQgQ09VTlQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCRPcGVuSURDb25maWcpOwoKICAgICAgICAjIHZhbGlkYXRlIHRoZSB0b2tlbgogICAgICAgIG15ICRUb2tlblJlc3VsdCA9ICRTZWxmLT5fVmFsaWRhdGVUb2tlbigKICAgICAgICAgICAgQWNjb3VudE5hbWUgID0+ICJBdXRoTW9kdWxlJENvdW50IiAuICI6OiIgLiAkR2VuZXJpY01vZHVsZSwKICAgICAgICAgICAgT3BlbklEQ29uZmlnID0+ICRPcGVuSURDb25maWcsCiAgICAgICAgICAgIFRva2VuICAgICAgICA9PiAkQmVhcmVyVG9rZW4sCiAgICAgICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgIyBpZiB0b2tlbiBub3QgdmFsaWRhdGVkLCB0cnkgbmV4dCB0b2tlbgogICAgICAgIGlmICggISRUb2tlblJlc3VsdC0+e1N1Y2Nlc3N9ICkgewoKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkZhaWxlZCB0byBhdXRoZW50aWNhdGUgT0F1dGgyIFRva2VuIHdpdGggQXV0aE1vZHVsZSAnQXV0aE1vZHVsZSRDb3VudDogJFRva2VuUmVzdWx0LT57RXJyb3J9ICIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IENPVU5UOwogICAgICAgIH0KCiAgICAgICAgIyBsb29rdXAgdGhlIFVzZXJMb2dpbiBmcm9tIHRoZSBUb2tlbiBkYXRhCiAgICAgICAgbXkgJElES2V5ID0gJENvbmZpZ09iamVjdC0+R2V0KCAiQXV0aE1vZHVsZSRDb3VudCIgLiAiOjoiIC4gJEdlbmVyaWNNb2R1bGUgLiAiOjpVSUQiICkgfHwgJ3N1Yic7CgogICAgICAgIG15ICRVc2VyTG9naW4gPSAkVG9rZW5SZXN1bHQtPntUb2tlbkRhdGF9LT57JElES2V5fTsKCiAgICAgICAgaWYgKCAhSXNTdHJpbmdXaXRoRGF0YSgkVXNlckxvZ2luKSApIHsKCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJGYWlsZWQgdG8gYXV0aGVudGljYXRlIE9BdXRoMiBUb2tlbiB3aXRoIEF1dGhNb2R1bGUgJ0F1dGhNb2R1bGUkQ291bnQnIC0gbm8gVXNlckxvZ2luIGZvdW5kLiIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IENPVU5UOwogICAgICAgIH0KCiAgICAgICAgIyBzZWUgaWYgdGhlIHVzZXIgbG9naW4gbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgbG9naW4KICAgICAgICBteSAkV2Vic2VydmljZVJlc3RyaWN0aW9ucyA9ICRDb25maWdPYmplY3QtPkdldCggIkF1dGhNb2R1bGUkQ291bnQiIC4gIjo6IiAuICRHZW5lcmljTW9kdWxlIC4gJzo6V2Vic2VydmljZTo6UmVzdHJpY3Rpb25zJyApIHx8IHt9OwoKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRXZWJzZXJ2aWNlUmVzdHJpY3Rpb25zKSAmJiAkV2Vic2VydmljZVJlc3RyaWN0aW9ucy0+e1VzZXJMb2dpbn0gKSB7CiAgICAgICAgICAgIGlmICggJFdlYnNlcnZpY2VSZXN0cmljdGlvbnMtPntVc2VyTG9naW59IG5lICRVc2VyTG9naW4gKSB7CgogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRmFpbGVkIHRvIGF1dGhlbnRpY2F0ZSBPQXV0aDIgVG9rZW4gd2l0aCBBdXRoTW9kdWxlICdBdXRoTW9kdWxlJENvdW50JyBkdWUgdG8gV2Vic2VydmljZVJlc3RyaWN0aW9uLiIsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgQ09VTlQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgcmVzb2x2ZSBVc2VyTG9naW4gZnJvbSBvdG9ibyB1c2VyIGRiIHRhYmxlCiAgICAgICAgbXkgJVVzZXJEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXIgID0+ICRVc2VyTG9naW4sCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBhc3NlcnQgdGhlIHVzZXIgYWN0dWFsbHkgZXhpc3RzIGluIGRhdGFiYXNlCiAgICAgICAgaWYgKCAhJFVzZXJEYXRhe1VzZXJJRH0gKSB7CgogICAgICAgICAgICAjIHRyeSBvbi10aGUtZmx5IGltcG9ydAogICAgICAgICAgICBteSAkVXNlckltcG9ydE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpVc2VySW1wb3J0Jyk7CiAgICAgICAgICAgIG15ICRSZXN1bHQgICAgICAgICAgID0gJFVzZXJJbXBvcnRPYmplY3QtPkltcG9ydFVzZXIoCiAgICAgICAgICAgICAgICBUb2tlbkRhdGEgICAgICAgID0+ICRUb2tlblJlc3VsdC0+e1Rva2VuRGF0YX0sCiAgICAgICAgICAgICAgICBPcGVuSURDb25maWdOYW1lID0+ICRHZW5lcmljTW9kdWxlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAhJFJlc3VsdC0+e1N1Y2Nlc3N9ICkgewoKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkZhaWxlZCB0byBpbXBvcnQgVXNlciBiYXNlZCBvbiBmcmVzaCBPQXV0aDIgVG9rZW4gd2l0aCBBdXRoTW9kdWxlICdBdXRoTW9kdWxlJENvdW50JzogIiAuICRSZXN1bHQtPntFcnJvcn0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgQ09VTlQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICVVc2VyRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgVXNlciAgPT4gJFVzZXJMb2dpbiwKICAgICAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHJlcG9ydCBzdWNjZXNzIQogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgICA9PiAxLAogICAgICAgICAgICBUb2tlbkRhdGEgPT4gJFRva2VuUmVzdWx0LT57VG9rZW5EYXRhfSwKICAgICAgICAgICAgVXNlckRhdGEgID0+IFwlVXNlckRhdGEsCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gJFJlc3VsdDsKfQoKIyB2YWxpZGF0ZQoKc3ViIF9WYWxpZGF0ZVRva2VuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFJldHVybiA9IHsgU3VjY2VzcyA9PiAwIH07CgogICAgZm9yIG15ICROZWVkZWQgKHF3L1Rva2VuIE9wZW5JRENvbmZpZyBBY2NvdW50TmFtZS8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybiAkUmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkT3BlbklEQ29uZmlnICAgPSAkUGFyYW17T3BlbklEQ29uZmlnfTsKICAgIG15ICRBY2NvdW50TmFtZSAgICA9ICRQYXJhbXtBY2NvdW50TmFtZX07CiAgICBteSAkQ29uZmlnT2JqZWN0ICAgPSAkUGFyYW17Q29uZmlnT2JqZWN0fTsKICAgIG15ICRDbGllbnRTZXR0aW5ncyA9ICRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc307CiAgICBteSAkVmFsaWRhdGVUb2tlbiAgPSAkT3BlbklEQ29uZmlnLT57TWlzY30tPntWYWxpZGF0ZVRva2VufSAvLyAxOwoKICAgIG15ICRXZWJzZXJ2aWNlUmVzdHJpY3Rpb25zID0gJENvbmZpZ09iamVjdC0+R2V0KCAkQWNjb3VudE5hbWUgLiAnOjpXZWJzZXJ2aWNlOjpSZXN0cmljdGlvbnMnICkgfHwge307CgogICAgbXkgJEV4cGVjdGVkQXVkaWVuY2UgPSAkV2Vic2VydmljZVJlc3RyaWN0aW9ucy0+e0F1ZGllbmNlfSAvLyAkQ2xpZW50U2V0dGluZ3MtPntDbGllbnRJRH07CiAgICBteSAkQXV0aG9yaXplZFBhcnR5ICA9ICRXZWJzZXJ2aWNlUmVzdHJpY3Rpb25zLT57QXV0aG9yaXplZFBhcnR5fTsKICAgIG15ICRFeHBlY3RlZFNjb3BlcyAgID0gJFdlYnNlcnZpY2VSZXN0cmljdGlvbnMtPntTY29wZX07CgogICAgbXkgJFRva2VuT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJyk7CgogICAgaWYgKCRWYWxpZGF0ZVRva2VuKSB7CgogICAgICAgIG15ICRSZXN1bHQgPSAkVG9rZW5PYmplY3QtPlZhbGlkYXRlKAogICAgICAgICAgICBUb2tlbiAgICAgICAgICAgID0+ICRQYXJhbXtUb2tlbn0sCiAgICAgICAgICAgIE9wZW5JRENvbmZpZyAgICAgPT4gJE9wZW5JRENvbmZpZywKICAgICAgICAgICAgRXhwZWN0ZWRBdWRpZW5jZSA9PiAkRXhwZWN0ZWRBdWRpZW5jZSwKICAgICAgICAgICAgQXV0aG9yaXplZFBhcnR5ICA9PiAkQXV0aG9yaXplZFBhcnR5LAogICAgICAgICAgICBFeHBlY3RlZFNjb3BlcyAgID0+ICRFeHBlY3RlZFNjb3BlcywKICAgICAgICAgICAgTGVld2F5ICAgICAgICAgICA9PiAkUGFyYW17TGVld2F5fSAvLyAkT3BlbklEQ29uZmlnLT57TWlzY30tPntMZWV3YXl9IC8vIDIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRSZXN1bHQ7CiAgICB9CgogICAgbXkgJFRva2VuRGF0YSA9ICRUb2tlbk9iamVjdC0+SW5zcGVjdCgKICAgICAgICBUb2tlbiAgPT4gJFBhcmFte1Rva2VufSwKICAgICAgICBMZWV3YXkgPT4gJFBhcmFte0xlZXdheX0gLy8gJE9wZW5JRENvbmZpZy0+e01pc2N9LT57TGVld2F5fSAvLyAyLAogICAgKTsKCiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgICA9PiBkZWZpbmVkICRUb2tlbkRhdGEgPyAxIDogMCwKICAgICAgICBUb2tlbkRhdGEgPT4gJFRva2VuRGF0YSwKICAgIH07Cn0KCjE7Cg==</File>
        <File Location="Kernel/System/OpenIDConnect/Configuration.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6Q29uZmlndXJhdGlvbjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKdXNlIExXUDo6U2ltcGxlOwp1c2UgTFdQOjpVc2VyQWdlbnQ7CnVzZSBIVFRQOjpSZXF1ZXN0OjpDb21tb247CnVzZSBVUkk6OkVzY2FwZSBxdyh1cmlfZXNjYXBlX3V0ZjgpOwp1c2UgQ3J5cHQ6OkpXVCAgcXcoZGVjb2RlX2p3dCk7CnVzZSBKU09OOwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCnVzZSBuYW1lc3BhY2U6OmF1dG9jbGVhbjsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpKU09OJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6UHJvZmlsZVJlcG9zaXRvcnknLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpDb25maWd1cmF0aW9uCgo9Zm9yIHN0b3B3b3JkcyBPSURDCm1hbmFnZSBPSURDIENvbmZpZ3VyYXRpb24gYW5kIFByb2ZpbGVzCgo9aGVhZDEgU1lOT1BTSVMKCkNvbmZpZ3VyYXRpb24gUHJvZmlsZXMgZm9yIE9wZW5JRCBDb25uZWN0CgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkT0lEQ0NvbmZpZ3VyYXRpb25PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6Q29uZmlndXJhdGlvbicpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7CiAgICAgICAgU1NMT3B0aW9uTWFwID0+IHsKICAgICAgICAgICAgU1NMQ2VydGlmaWNhdGUgICAgPT4gJ1NTTF9jZXJ0X2ZpbGUnLAogICAgICAgICAgICBTU0xLZXkgICAgICAgICAgICA9PiAnU1NMX2tleV9maWxlJywKICAgICAgICAgICAgU1NMUGFzc3dvcmQgICAgICAgPT4gJ1NTTF9wYXNzd2RfY2InLAogICAgICAgICAgICBTU0xDQUZpbGUgICAgICAgICA9PiAnU1NMX2NhX2ZpbGUnLAogICAgICAgICAgICBTU0xDQURpciAgICAgICAgICA9PiAnU1NMX2NhX3BhdGgnLAogICAgICAgICAgICBTU0xWZXJpZnlIb3N0bmFtZSA9PiAndmVyaWZ5X2hvc3RuYW1lJywKICAgICAgICAgICAgU1NMVmVyaWZ5TW9kZSAgICAgPT4gJ1NTTF92ZXJpZnlfbW9kZScsCiAgICAgICAgfSwKICAgIH07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgR2V0T0F1dGhQcm9maWxlcygpCgpSZXR1cm5zIGEgbGlzdCBvZiB0aGUgTmFtZSBvZiB0aGUgT3BlbklEIENvbm5lY3QgUHJvZmlsZXMKdXNlZCBmb3IgKm91dGdvaW5nKiBjYWxscyAoSW52b2tlcikgZnJvbSBkYXRhYmFzZQp3aXRoIHRoZWlyIE9BdXRoMiBQcm92aWRlciBhbmQgQ2xpZW50IFNldHRpbmdzLgoKVGhlc2UgJ1Byb2ZpbGVzJyBtaXJyb3IgdGhlIGRhdGEgc3RydWN0dXJlIHVzZWQgZm9yIHRoZQpPcGVuSURDb25uZWN0IEF1dGggTW9kdWxlIHVzZWQgYnkgQXV0aGVudGljYXRvci4KCiAgICBteSAkUHJvZmlsZXMgPSAkT0lEQ0NvbmZpZ3VyYXRpb25PYmplY3QtPkdldE9BdXRoUHJvZmlsZXMoKTsKCj1jdXQKCnN1YiBHZXRPQXV0aFByb2ZpbGVzIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRQcm9maWxlUmVwb3NpdG9yeSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpQcm9maWxlUmVwb3NpdG9yeScpOwoKICAgIHJldHVybiAkUHJvZmlsZVJlcG9zaXRvcnktPkdldExpc3QoKTsKfQoKPWhlYWQyIEdldFByb3ZpZGVyRGF0YSgpCgpSZXR1cm5zIHRoZSBPcGVuSWQgZHluYW1pYyBQcm92aWRlciBEYXRhIGZvciBhIG5hbWVkIE9BdXRoIEZ1bmN0aW9uYWwgYWNjb3VudHMgY29uZmlndXJlZCBpbiBTeXNDb25maWcuCgogICAgbXkgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRPSURDQ29uZmlndXJhdGlvbk9iamVjdC0+R2V0UHJvdmlkZXJEYXRhKAogICAgICAgIE9wZW5JRENvbmZpZyA9PiB7CiAgICAgICAgICAgIC4uLiBmcm9tIENvbmZpZy5wbSBhdXRobW9kdWxlLCBlZyAnQXV0aE1vZHVsZTo6T3BlbklEQ29ubmVjdDo6Q29uZmlnJwogICAgICAgICAgICAuLi4gb3IgZm9yIEludm9rZXJzIGZyb20gdGhlIERCIFByb2ZpbGVSZXBvc2l0b3J5LT5HZXRQcm9maWxlKC4uLikKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBHZXRQcm92aWRlckRhdGEgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3L09wZW5JRENvbmZpZy8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE9wZW5JRENvbmZpZyA9ICRQYXJhbXtPcGVuSURDb25maWd9OwogICAgcmV0dXJuIHVubGVzcyBJc0hhc2hSZWZXaXRoRGF0YSgkT3BlbklEQ29uZmlnKTsKCiAgICBteSAkUHJvdmlkZXJLZXkgPSAnUHJvdmlkZXJEYXRhJyAuICggJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9e05hbWV9IC8vICcnICk7CgogICAgbXkgJE9wZW5JRFByb3ZpZGVyRGF0YTsKCiAgICBpZiAoICEkUGFyYW17Tm9DYWNoZX0gKSB7CiAgICAgICAgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgICAgIFR5cGUgPT4gJ09wZW5JRENvbm5lY3QnLAogICAgICAgICAgICBLZXkgID0+ICRQcm92aWRlcktleSwKICAgICAgICApOwogICAgfQoKICAgICMgaWYgbm90aGluZyBpcyBjYWNoZWQsIGdldCB0aGUgZGF0YQogICAgaWYgKCAhJE9wZW5JRFByb3ZpZGVyRGF0YSApIHsKCiAgICAgICAgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRTZWxmLT5fUHJvdmlkZXJEYXRhR2V0KAogICAgICAgICAgICBPcGVuSURDb25maWcgPT4gJE9wZW5JRENvbmZpZywKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAkT3BlbklEUHJvdmlkZXJEYXRhOwp9Cgo9aGVhZDIgR2V0SXNzdWVyKCkKCj1mb3Igc3RvcHdvcmRzIGlzcwoKUmV0dXJucyB0aGUgT3BlbklkIGR5bmFtaWMgUHJvdmlkZXIgSXNzdWVyIHZhbHVlIGZvciBhIG5hbWVkIE9BdXRoIEZ1bmN0aW9uYWwgYWNjb3VudHMgY29uZmlndXJlZCBpbiBTeXNDb25maWcuClRoaXMgY2FuIGJlIHVzZWQgdG8gdmFsaWRhdGUgYW4gJ2lzcycgcmVxdWVzdCBwYXJhbWV0ZXIgZm9yIGluY29taW5nIE9BdXRoIGF1dGhvcml6YXRpb25fY29kZSBjYWxsYmFja3MuCgogICAgbXkgJElzc3VlciA9ICRPSURDQ29uZmlndXJhdGlvbk9iamVjdC0+R2V0SXNzdWVyKAogICAgICAgIE9wZW5JRENvbmZpZyA9PiB7CiAgICAgICAgICAgIC4uLiBmcm9tIENvbmZpZy5wbSBhdXRobW9kdWxlLCBlZyAnQXV0aE1vZHVsZTo6T3BlbklEQ29ubmVjdDo6Q29uZmlnJwogICAgICAgICAgICAuLi4gb3IgZm9yIEludm9rZXJzIGZyb20gdGhlIERCIFByb2ZpbGVSZXBvc2l0b3J5LT5HZXRQcm9maWxlKC4uLikKICAgICAgICB9LAogICAgKTsKCiAgICB0aGlzIG1ldGhvZCByZXR1cm5zIGEgc2ltcGxlIHN0cmluZy4KCj1jdXQKCnN1YiBHZXRJc3N1ZXIgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3L09wZW5JRENvbmZpZy8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRTZWxmLT5HZXRQcm92aWRlckRhdGEoJVBhcmFtKTsKICAgIHJldHVybiB1bmxlc3MgSXNIYXNoUmVmV2l0aERhdGEoJE9wZW5JRFByb3ZpZGVyRGF0YSk7CgogICAgcmV0dXJuICRPcGVuSURQcm92aWRlckRhdGEtPntPcGVuSURDb25maWd1cmF0aW9ufS0+e2lzc3Vlcn07Cn0KCj1oZWFkMiBHZXRUb2tlbkVuZHBvaW50KCkKCgpSZXR1cm5zIHRoZSB0b2tlbiBlbmRwb2ludCBmb3IgdGhpcyBPcGVuSURDb25maWcuCgogICAgbXkgJElzc3VlciA9ICRPSURDQ29uZmlndXJhdGlvbk9iamVjdC0+R2V0VG9rZW5FbmRwb2ludCgKICAgICAgICBPcGVuSURDb25maWcgPT4gewogICAgICAgICAgICAuLi4gZnJvbSBDb25maWcucG0gYXV0aG1vZHVsZSwgZWcgJ0F1dGhNb2R1bGU6Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZycKICAgICAgICAgICAgLi4uIG9yIGZvciBJbnZva2VycyBmcm9tIHRoZSBEQiBQcm9maWxlUmVwb3NpdG9yeS0+R2V0UHJvZmlsZSguLi4pCiAgICAgICAgfSwKICAgICk7CgogICAgdGhpcyBtZXRob2QgcmV0dXJucyBhIHNpbXBsZSBzdHJpbmcuCgo9Y3V0CgpzdWIgR2V0VG9rZW5FbmRwb2ludCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT3BlbklEQ29uZmlnICAgICA9ICRQYXJhbXtPcGVuSURDb25maWd9OwogICAgbXkgJENsaWVudFNldHRpbmdzICAgPSAkT3BlbklEQ29uZmlnLT57Q2xpZW50U2V0dGluZ3N9OwogICAgbXkgJFByb3ZpZGVyU2V0dGluZ3MgPSAkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc307CgogICAgbXkgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRTZWxmLT5HZXRQcm92aWRlckRhdGEoCiAgICAgICAgT3BlbklEQ29uZmlnID0+ICRPcGVuSURDb25maWcsCiAgICApOwoKICAgICMgZmV0Y2ggb3BlbmlkIHRva2VuIGVuZHBvaW50CgogICAgcmV0dXJuICRPcGVuSURQcm92aWRlckRhdGEtPntPcGVuSURDb25maWd1cmF0aW9ufS0+e3Rva2VuX2VuZHBvaW50fTsKfQoKPWhlYWQyIEdldEF1dGhvcml6YXRpb25FbmRwb2ludCgpCgoKUmV0dXJucyB0aGUgYXV0aG9yaXphdGlvbiAoYWthIGxvZ2luKSBlbmRwb2ludCBmb3IgdGhpcyBPcGVuSURDb25maWcuCgogICAgbXkgJElzc3VlciA9ICRPSURDQ29uZmlndXJhdGlvbk9iamVjdC0+R2V0QXV0aG9yaXphdGlvbkVuZHBvaW50KAogICAgICAgIE9wZW5JRENvbmZpZyA9PiB7CiAgICAgICAgICAgIC4uLiBmcm9tIENvbmZpZy5wbSBhdXRobW9kdWxlLCBlZyAnQXV0aE1vZHVsZTo6T3BlbklEQ29ubmVjdDo6Q29uZmlnJwogICAgICAgICAgICAuLi4gb3IgZm9yIEludm9rZXJzIGZyb20gdGhlIERCIFByb2ZpbGVSZXBvc2l0b3J5LT5HZXRQcm9maWxlKC4uLikKICAgICAgICB9LAogICAgKTsKCiAgICB0aGlzIG1ldGhvZCByZXR1cm5zIGEgc2ltcGxlIHN0cmluZy4KCj1jdXQKCnN1YiBHZXRBdXRob3JpemF0aW9uRW5kcG9pbnQgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJE9wZW5JRENvbmZpZyAgICAgPSAkUGFyYW17T3BlbklEQ29uZmlnfTsKICAgIG15ICRDbGllbnRTZXR0aW5ncyAgID0gJE9wZW5JRENvbmZpZy0+e0NsaWVudFNldHRpbmdzfTsKICAgIG15ICRQcm92aWRlclNldHRpbmdzID0gJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9OwoKICAgIG15ICRPcGVuSURQcm92aWRlckRhdGEgPSAkU2VsZi0+R2V0UHJvdmlkZXJEYXRhKAogICAgICAgIE9wZW5JRENvbmZpZyA9PiAkT3BlbklEQ29uZmlnLAogICAgKTsKCiAgICByZXR1cm4gJE9wZW5JRFByb3ZpZGVyRGF0YS0+e09wZW5JRENvbmZpZ3VyYXRpb259LT57YXV0aG9yaXphdGlvbl9lbmRwb2ludH07Cn0KCnN1YiBfUHJvdmlkZXJEYXRhR2V0IHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRPcGVuSURDb25maWcgICAgID0gJFBhcmFte09wZW5JRENvbmZpZ307CiAgICBteSAkQ2xpZW50U2V0dGluZ3MgICA9ICRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc307CiAgICBteSAkUHJvdmlkZXJTZXR0aW5ncyA9ICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfTsKCiAgICBteSAkSlNPTk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpKU09OJyk7CgogICAgaWYgKCAhJFByb3ZpZGVyU2V0dGluZ3MtPntPcGVuSURDb25maWd1cmF0aW9ufSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgT3BlbklEQ29uZmlndXJhdGlvbiBpbiBwcm92aWRlciBzZXR0aW5ncyEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkVXNlckFnZW50ID0gTFdQOjpVc2VyQWdlbnQtPm5ldygpOwoKICAgIGlmICggJFByb3ZpZGVyU2V0dGluZ3MtPntTU0xPcHRpb25zfSApIHsKICAgICAgICBPUFRJT046CiAgICAgICAgZm9yIG15ICRLZXkgKCBrZXlzICRQcm92aWRlclNldHRpbmdzLT57U1NMT3B0aW9uc30tPiUqICkgewogICAgICAgICAgICBuZXh0IE9QVElPTiBpZiAhJFNlbGYtPntTU0xPcHRpb25NYXB9eyRLZXl9OwoKICAgICAgICAgICAgaWYgKCAkS2V5IGVxICdTU0xQYXNzd29yZCcgKSB7CiAgICAgICAgICAgICAgICAkVXNlckFnZW50LT5zc2xfb3B0cygKICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e1NTTE9wdGlvbk1hcH17JEtleX0gPT4gc3ViIHsgJFByb3ZpZGVyU2V0dGluZ3MtPntTU0xPcHRpb25zfXskS2V5fSB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBuZXh0IE9QVElPTjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFVzZXJBZ2VudC0+c3NsX29wdHMoCiAgICAgICAgICAgICAgICAkU2VsZi0+e1NTTE9wdGlvbk1hcH17JEtleX0gPT4gJFByb3ZpZGVyU2V0dGluZ3MtPntTU0xPcHRpb25zfXskS2V5fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJFJlc3BvbnNlID0gJFVzZXJBZ2VudC0+Z2V0KCAkUHJvdmlkZXJTZXR0aW5ncy0+e09wZW5JRENvbmZpZ3VyYXRpb259ICk7CiAgICBteSAkQ29udGVudCAgPSAkUmVzcG9uc2UtPmNvbnRlbnQ7CgogICAgaWYgKCAhJFJlc3BvbnNlLT5pc19zdWNjZXNzIHx8ICEkQ29udGVudCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIGluIHJldHJpZXZpbmcgT3BlbklEQ29uZmlndXJhdGlvbjogIiAuICRSZXNwb25zZS0+c3RhdHVzX2xpbmUsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRPcGVuSURDb25maWd1cmF0aW9uID0gJEpTT05PYmplY3QtPkRlY29kZSgKICAgICAgICBEYXRhID0+ICRDb250ZW50LAogICAgKTsKCiAgICBpZiAoICEkT3BlbklEQ29uZmlndXJhdGlvbiB8fCAhJE9wZW5JRENvbmZpZ3VyYXRpb24tPntqd2tzX3VyaX0gfHwgISRPcGVuSURDb25maWd1cmF0aW9uLT57aXNzdWVyfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0Vycm9uZW91cyBPcGVuSURDb25maWd1cmF0aW9uIScsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICRSZXNwb25zZSA9ICRVc2VyQWdlbnQtPmdldCggJE9wZW5JRENvbmZpZ3VyYXRpb24tPntqd2tzX3VyaX0gKTsKICAgICRDb250ZW50ICA9ICRSZXNwb25zZS0+Y29udGVudDsKCiAgICBpZiAoICEkUmVzcG9uc2UtPmlzX3N1Y2Nlc3MgfHwgISRDb250ZW50ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3IgaW4gcmV0cmlldmluZyBqd2tzOiAiIC4gJFJlc3BvbnNlLT5zdGF0dXNfbGluZSwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJEtleURhdGEgPSAkSlNPTk9iamVjdC0+RGVjb2RlKAogICAgICAgIERhdGEgPT4gJENvbnRlbnQsCiAgICApOwoKICAgIGlmICggISRLZXlEYXRhICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnRXJyb3IgaW4gcmV0cmlldmluZyBrZXkgZGF0YSEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkUmV0dXJuID0gewogICAgICAgIE9wZW5JRENvbmZpZ3VyYXRpb24gPT4gJE9wZW5JRENvbmZpZ3VyYXRpb24sCiAgICAgICAgS2V5RGF0YSAgICAgICAgICAgICA9PiAkS2V5RGF0YSwKICAgIH07CgogICAgIyBzdG9yZSBpbiAkU2VsZgogICAgbXkgJFByb3ZpZGVyS2V5ID0gJ1Byb3ZpZGVyRGF0YScgLiAoICRQcm92aWRlclNldHRpbmdzLT57TmFtZX0gLy8gJycgKTsKICAgICRTZWxmLT57T3BlbklEUHJvdmlkZXJEYXRhfXskUHJvdmlkZXJLZXl9ID0gJFJldHVybjsKCiAgICAjIHNldCBjYWNoZSBmb3IgMzAgbWludXRlcyBvciBjb25maWd1cmVkIHRpbWUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJ09wZW5JRENvbm5lY3QnLAogICAgICAgIEtleSAgID0+ICdQcm92aWRlckRhdGEnIC4gKCAkUHJvdmlkZXJTZXR0aW5ncy0+e05hbWV9IC8vICcnICksCiAgICAgICAgVmFsdWUgPT4gJFJldHVybiwKICAgICAgICBUVEwgICA9PiAkUHJvdmlkZXJTZXR0aW5ncy0+e1RUTH0gLy8gMTgwMCwKICAgICk7CgogICAgcmV0dXJuICRSZXR1cm47Cn0KCjE7Cg==</File>
        <File Location="Kernel/System/OpenIDConnect/FunctionalAccounts.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRzOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBjb3JlIG1vZHVsZXMKCiMgQ1BBTiBtb2R1bGVzCgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKdXNlIG5hbWVzcGFjZTo6YXV0b2NsZWFuOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpQcm9maWxlUmVwb3NpdG9yeScsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeScsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuUmVwb3NpdG9yeScsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkZ1bmN0aW9uYWxBY2NvdW50cwoKPWZvciBzdG9wd29yZHMgT0lEQwoKbWFuYWdlIE9BdXRoMi9PSURDIGJhY2tlZCBGdW5jdGlvbmFsIEFjY291bnRzLgpDdXJyZW50bHkgaW1wbGVtZW50ZWQgYXJlIGFjY291bnRzIGZvcgpJbnZva2VycyBhbmQgUHJvdmlkZXJzLiBNYWlsQWNjb3VudHMgbmV4dC4KCj1oZWFkMSBTWU5PUFNJUwoKRnVuY3Rpb25hbCBhY2NvdW50IGZ1bmN0aW9ucyBmb3IgT3BlbklEIENvbm5lY3QKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRGdW5jdGlvbmFsQWNjb3VudHNPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRzJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIEdldEFjY291bnRzKCkKClJldHVybnMgdGhlIE9BdXRoIEZ1bmN0aW9uYWwgYWNjb3VudHMgZm9yIEludm9rZXJzIGZyb20gREIKCiAgICBteSAkQWNjb3VudHMgPSAkRnVuY3Rpb25hbEFjY291bnRzT2JqZWN0LT5HZXRBY2NvdW50cygKICAgICAgICBWYWxpZCA9PiAxICMgb3B0aW9uYWwKICAgICk7CgogICAgcmV0dXJucyBbCiAgICAgICAgewogICAgICAgICAgICBBY2NvdW50SUQgPT4gZGF0YWJhc2UgaWQsCiAgICAgICAgICAgIE5hbWUgPT4gJE5hbWUsCiAgICAgICAgICAgIE9JRENQcm9maWxlSUQsCiAgICAgICAgICAgIE9wZW5JRENvbmZpZywKICAgICAgICAgICAgT0lEQ1Byb2ZpbGUgPT4gewogICAgICAgICAgICAgICAgUHJvZmlsZUlEID0+ICRJRCwKICAgICAgICAgICAgICAgIFVJRCA9PiAkVUlELAogICAgICAgICAgICAgICAgVmFsaWQgPT4gJFZhbGlkLAogICAgICAgICAgICAgICAgQ2xpZW50U2V0dGluZ3MgPT4gewoKICAgICAgICAgICAgICAgICAgICBDbGllbnRJRCAgPT4gJENsaWVudElELAogICAgICAgICAgICAgICAgICAgIENsaWVudFNlY3JldCA9PiAkQ2xpZW50U2VjcmV0LAogICAgICAgICAgICAgICAgICAgIFJlZGlyZWN0VVJJID0+ICRSZWRpcmVjdFVSSSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBQcm92aWRlclNldHRpbmdzID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVuSURDb25maWd1cmF0aW9uID0+ICRPcGVuSURDb25maWcsCiAgICAgICAgICAgICAgICAgICAgVFRMID0+ICRUVEwsCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAkTmFtZSwKICAgICAgICAgICAgICAgICAgICBTU0xPcHRpb25zID0+ICRZQU1MT2JqZWN0LT5Mb2FkKCBEYXRhID0+ICRTU0xPcHRpb25zIHx8IHt9ICksCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgTWlzYyA9PiAkWUFNTE9iamVjdC0+TG9hZCggRGF0YSA9PiAkTWlzYyB8fCB7fSApLAogICAgICAgICAgICB9LAogICAgICAgICAgICBHcmFudFR5cGUsCiAgICAgICAgICAgIFNjb3BlLAogICAgICAgICAgICBSZXNvdXJjZXMsCiAgICAgICAgICAgIFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgICAgICBUb2tlblR5cGUsCiAgICAgICAgICAgIFZhbGlkCiAgICAgICAgfSwgLi4uCiAgICBdOwo9Y3V0CgpzdWIgR2V0QWNjb3VudHMgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnknKTsKICAgIG15ICRQcm9maWxlUmVwb3NpdG9yeSAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6UHJvZmlsZVJlcG9zaXRvcnknKTsKCiAgICBteSAkVmFsaWQgPSAkUGFyYW17VmFsaWR9OwoKICAgIG15ICRBY2NvdW50cyA9ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnktPkdldExpc3QoKTsKCiAgICBteSBAUmVzdWx0OwoKICAgIGZvciBteSAkQWNjb3VudCAoQCRBY2NvdW50cykgewogICAgICAgIGlmICggKCAhZGVmaW5lZCAkVmFsaWQgKSB8fCAoICRBY2NvdW50LT57VmFsaWR9ID09ICRWYWxpZCApICkgewoKICAgICAgICAgICAgbXkgJE9JRENQcm9maWxlID0gJFByb2ZpbGVSZXBvc2l0b3J5LT5HZXRQcm9maWxlKCBQcm9maWxlSUQgPT4gJEFjY291bnQtPntPSURDUHJvZmlsZUlEfSApOwoKICAgICAgICAgICAgJEFjY291bnQtPntPSURDUHJvZmlsZX0gPSAkT0lEQ1Byb2ZpbGU7CgogICAgICAgICAgICBwdXNoIEBSZXN1bHQsICRBY2NvdW50OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXEBSZXN1bHQ7Cn0KCj1oZWFkMiBHZXRBY2NvdW50KCkKClJldHVybnMgYSBuYW1lZCBPQXV0aCBGdW5jdGlvbmFsIGFjY291bnRzIGZvciBJbnZva2VycyBmcm9tIERCCgogICAgbXkgJEFjY291bnQgPSAkRnVuY3Rpb25hbEFjY291bnRzT2JqZWN0LT5HZXRBY2NvdW50KAogICAgICAgIE5hbWUgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICApOwoKICAgIHJldHVybnMKICAgIHsKICAgICAgICBBY2NvdW50SUQgPT4gJElELAogICAgICAgIFZhbGlkID0+ICRWYWxpZCwKICAgICAgICBOYW1lID0+ICROYW1lLAogICAgICAgIE9JRENQcm9maWxlSUQgPT4gJE9JRENQcm9maWxlSUQsCiAgICAgICAgT0lEQ1Byb2ZpbGUgPT4gewogICAgICAgICAgICBQcm9maWxlSUQgPT4gJElELAogICAgICAgICAgICBVSUQgPT4gJFVJRCwKICAgICAgICAgICAgVmFsaWQgPT4gJFZhbGlkLAogICAgICAgICAgICBDbGllbnRTZXR0aW5ncyA9PiB7CgogICAgICAgICAgICAgICAgQ2xpZW50SUQgID0+ICRDbGllbnRJRCwKICAgICAgICAgICAgICAgIENsaWVudFNlY3JldCA9PiAkQ2xpZW50U2VjcmV0LAogICAgICAgICAgICAgICAgUmVkaXJlY3RVUkkgPT4gJFJlZGlyZWN0VVJJLAogICAgICAgICAgICB9LAogICAgICAgICAgICBQcm92aWRlclNldHRpbmdzID0+IHsKICAgICAgICAgICAgICAgIE9wZW5JRENvbmZpZ3VyYXRpb24gPT4gJE9wZW5JRENvbmZpZywKICAgICAgICAgICAgICAgIFRUTCA9PiAkVFRMLAogICAgICAgICAgICAgICAgTmFtZSA9PiAkTmFtZSwKICAgICAgICAgICAgICAgIFNTTE9wdGlvbnMgPT4gJFlBTUxPYmplY3QtPkxvYWQoIERhdGEgPT4gJFNTTE9wdGlvbnMgfHwge30gKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWlzYyA9PiAkWUFNTE9iamVjdC0+TG9hZCggRGF0YSA9PiAkTWlzYyB8fCB7fSApLAogICAgICAgIH0sCiAgICAgICAgR3JhbnRUeXBlID0+ICRHcmFudFR5cGUsCiAgICAgICAgU2NvcGUgPT4gJFNjb3BlLAogICAgICAgIFJlc291cmNlcyA9PiAkUmVzb3VyY2VzLAogICAgICAgIFJlc291cmNlUGFyYW1OYW1lID0+ICRSZXNvdXJjZVBhcmFtTmFtZSwKICAgICAgICBUb2tlblR5cGUgPT4gJFRva2VuVHlwZSwKICAgIH07Cgo9Y3V0CgpzdWIgR2V0QWNjb3VudCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvTmFtZS8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJEZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnknKTsKCiAgICBteSAkQWNjb3VudCA9ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnktPkdldEFjY291bnQoIE5hbWUgPT4gJFBhcmFte05hbWV9ICk7CiAgICByZXR1cm4gaWYgISRBY2NvdW50OwoKICAgIG15ICRQcm9maWxlUmVwb3NpdG9yeSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpQcm9maWxlUmVwb3NpdG9yeScpOwogICAgbXkgJE9JRENQcm9maWxlICAgICAgID0gJFByb2ZpbGVSZXBvc2l0b3J5LT5HZXRQcm9maWxlKCBQcm9maWxlSUQgPT4gJEFjY291bnQtPntPSURDUHJvZmlsZUlEfSApOwoKICAgICRBY2NvdW50LT57T0lEQ1Byb2ZpbGV9ID0gJE9JRENQcm9maWxlOwogICAgcmV0dXJuICRBY2NvdW50Owp9Cgo9aGVhZDIgU2F2ZUFjY291bnQoKQoKUGVyc2lzdHMgYSBGdW5jdGlvbmFsIEFjY291bnQgaW4gREIuIFRoaXMgaW1wbGVtZW50cyBTYXZlLW9yLVVwZGF0ZS4KCiAgICBteSAkU3VjY2VzcyA9ICRGdW5jdGlvbmFsQWNjb3VudHNPYmplY3QtPlNhdmVBY2NvdW50KAogICAgICAgIE5hbWUgICAgICAgICAgICAgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICAgICAgT0lEQ1Byb2ZpbGVJRCAgICAgPT4gJFBhcmFte1Byb3ZpZGVyTmFtZX0sCiAgICAgICAgR3JhbnRUeXBlICAgICAgICAgPT4gJFBhcmFte0dyYW50VHlwZX0sCiAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJFBhcmFte0ludm9rZXJTY29wZXN9LAogICAgICAgIFJlc291cmNlcyAgICAgICAgID0+ICRQYXJhbXtSZXNvdXJjZXN9LAogICAgICAgIFJlc291cmNlUGFyYW1OYW1lID0+ICRQYXJhbXtSZXNvdXJjZVBhcmFtfSwKICAgICAgICBUb2tlbiAgICAgICAgICAgICA9PiAkUGFyYW17VG9rZW5UeXBlfSwKICAgICAgICBVc2VybmFtZSAgICAgICAgICA9PiAkUGFyYW17VXNlcm5hbWV9LAogICAgICAgIFBhc3N3b3JkICAgICAgICAgID0+ICRQYXJhbXtQYXNzd29yZH0sCiAgICAgICAgVmFsaWQgICAgICAgICAgICAgPT4gMSwKICAgICAgICBVc2VySUQgICAgICAgICAgICA9PiAjIHVzZXJpZCBtYWtpbmcgY2hhbmdlcwogICAgKTsKCj1jdXQKCnN1YiBTYXZlQWNjb3VudCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvTmFtZSBPSURDUHJvZmlsZUlEIEdyYW50VHlwZSBVc2VySUQvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICROYW1lID0gJFBhcmFte05hbWV9OwoKICAgIG15ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnkgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5Jyk7CgogICAgbXkgJEV4aXN0cyA9ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnktPkV4aXN0cyggTmFtZSA9PiAkTmFtZSApOwogICAgaWYgKCRFeGlzdHMpIHsKCiAgICAgICAgcmV0dXJuICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnktPlVwZGF0ZUFjY291bnQoJVBhcmFtKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIHJldHVybiAkRnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5LT5BZGRBY2NvdW50KCVQYXJhbSk7CiAgICB9Cn0KCj1oZWFkMiBEZWxldGVBY2NvdW50KCkKCkRlbGV0ZXMgYW4gRnVuY3Rpb25hbCBhY2NvdW50cyBmcm9tIERCLiBEZWxldGluZyBhbiBBY2NvdW50IHdpbGwgcmVtb3ZlCmFuZCBhc3NvY2lhdGVkIFRva2VucyEKCiAgICBteSAkQWNjb3VudCA9ICRGdW5jdGlvbmFsQWNjb3VudHNPYmplY3QtPkRlbGV0ZUFjY291bnQoCiAgICAgICAgTmFtZSAgPT4gJzxTb21lQWNjb3VudE5hbWU+JywKICAgICAgICBVc2VySUQgICAgID0+ICMgVXNlcklEIG1ha2luZyBjaGFuZ2VzCiAgICApOwoKPWN1dAoKc3ViIERlbGV0ZUFjY291bnQgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3L05hbWUgVXNlcklELykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkTmFtZSA9ICRQYXJhbXtOYW1lfTsKCiAgICBteSAkVG9rZW5SZXBvc2l0b3J5ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuUmVwb3NpdG9yeScpOwoKICAgICRUb2tlblJlcG9zaXRvcnktPkRlbGV0ZVRva2VuKAogICAgICAgIEFjY291bnROYW1lID0+ICROYW1lLAogICAgKTsKCiAgICBteSAkRnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeScpOwoKICAgIHJldHVybiAkRnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5LT5EZWxldGVBY2NvdW50KCBOYW1lID0+ICROYW1lICk7Cn0KCj1oZWFkMiBHZXRQcm92aWRlckRhdGEoKQoKUmV0dXJucyB0aGUgT3BlbklkIGR5bmFtaWMgUHJvdmlkZXIgRGF0YSBmb3IgYSBGdW5jdGlvbmFsIGFjY291bnQgZm9yIEludm9rZXJzCgogICAgbXkgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRGdW5jdGlvbmFsQWNjb3VudHNPYmplY3QtPkdldFByb3ZpZGVyRGF0YSgKICAgICAgICBOYW1lICA9PiAnPFNvbWVBY2NvdW50TmFtZT4nLAogICAgKTsKCj1jdXQKCnN1YiBHZXRQcm92aWRlckRhdGEgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEFjY291bnQgPSAkU2VsZi0+R2V0QWNjb3VudCglUGFyYW0pOwoKICAgIG15ICRPSURDUHJvZmlsZSA9ICRBY2NvdW50LT57T0lEQ1Byb2ZpbGV9OwoKICAgIG15ICRPSURDQ29uZmlndXJhdGlvbiAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6Q29uZmlndXJhdGlvbicpOwogICAgbXkgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRPSURDQ29uZmlndXJhdGlvbi0+R2V0UHJvdmlkZXJEYXRhKAogICAgICAgIE9wZW5JRENvbmZpZyA9PiAkT0lEQ1Byb2ZpbGUKICAgICk7CgogICAgcmV0dXJuICRPcGVuSURQcm92aWRlckRhdGE7Cn0KCj1oZWFkMiBHZXRJc3N1ZXIoKQoKPWZvciBzdG9wd29yZHMgaXNzCgpSZXR1cm5zIHRoZSBPcGVuSWQgZHluYW1pYyBQcm92aWRlciBJc3N1ZXIgdmFsdWUgZm9yIGEgRnVuY3Rpb25hbCBhY2NvdW50IGZvciBJbnZva2Vycy4KVGhpcyBjYW4gYmUgdXNlZCB0byB2YWxpZGF0ZSBhbiAnaXNzJyByZXF1ZXN0IHBhcmFtZXRlciBmb3IgaW5jb21pbmcgT0F1dGggYXV0aG9yaXphdGlvbl9jb2RlIGNhbGxiYWNrcy4KCiAgICBteSAkSXNzdWVyID0gJEZ1bmN0aW9uYWxBY2NvdW50c09iamVjdC0+R2V0SXNzdWVyKAogICAgICAgIE5hbWUgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICApOwoKICAgIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzaW1wbGUgc3RyaW5nLgoKPWN1dAoKc3ViIEdldElzc3VlciB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT3BlbklEUHJvdmlkZXJEYXRhID0gJFNlbGYtPkdldFByb3ZpZGVyRGF0YSglUGFyYW0pOwogICAgcmV0dXJuIHVubGVzcyBJc0hhc2hSZWZXaXRoRGF0YSgkT3BlbklEUHJvdmlkZXJEYXRhKTsKCiAgICByZXR1cm4gJE9wZW5JRFByb3ZpZGVyRGF0YS0+e09wZW5JRENvbmZpZ3VyYXRpb259LT57aXNzdWVyfTsKfQoKPWhlYWQyIEdldFRva2VuRW5kcG9pbnQoKQoKUmV0dXJucyB0aGUgdG9rZW4gZW5kcG9pbnQgZm9yIHRoaXMgRnVuY3Rpb25hbCBBY2NvdW50LgoKICAgIG15ICRJc3N1ZXIgPSAkRnVuY3Rpb25hbEFjY291bnRzT2JqZWN0LT5HZXRUb2tlbkVuZHBvaW50KAogICAgICAgIE5hbWUgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICAgKTsKCiAgICB0aGlzIG1ldGhvZCByZXR1cm5zIGEgc2ltcGxlIHN0cmluZy4KCj1jdXQKCnN1YiBHZXRUb2tlbkVuZHBvaW50IHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRPcGVuSURQcm92aWRlckRhdGEgPSAkU2VsZi0+R2V0UHJvdmlkZXJEYXRhKCVQYXJhbSk7CgogICAgcmV0dXJuICRPcGVuSURQcm92aWRlckRhdGEtPntPcGVuSURDb25maWd1cmF0aW9ufS0+e3Rva2VuX2VuZHBvaW50fTsKfQoKPWhlYWQyIEdldEF1dGhvcml6YXRpb25FbmRwb2ludCgpCgpSZXR1cm5zIHRoZSBhdXRob3JpemF0aW9uIChsb2dpbikgZW5kcG9pbnQgZm9yIHRoaXMgRnVuY3Rpb25hbCBBY2NvdW50LgoKICAgIG15ICRJc3N1ZXIgPSAkRnVuY3Rpb25hbEFjY291bnRzT2JqZWN0LT5HZXRBdXRob3JpemF0aW9uRW5kcG9pbnQoCiAgICAgICAgTmFtZSAgPT4gJzxTb21lQWNjb3VudE5hbWU+JywKICAgICApOwoKICAgIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzaW1wbGUgc3RyaW5nLgoKPWN1dAoKc3ViIEdldEF1dGhvcml6YXRpb25FbmRwb2ludCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT3BlbklEUHJvdmlkZXJEYXRhID0gJFNlbGYtPkdldFByb3ZpZGVyRGF0YSglUGFyYW0pOwoKICAgIHJldHVybiAkT3BlbklEUHJvdmlkZXJEYXRhLT57T3BlbklEQ29uZmlndXJhdGlvbn0tPnthdXRob3JpemF0aW9uX2VuZHBvaW50fTsKfQoKPWhlYWQyIENsZWFyQ2FjaGUoKQoKQ2xlYXJzIHRoZSBjYWNoZWQgT0lEQyBQcm92aWRlZXIgZGF0YSBmb3IgdGhpcyBmdW5jdGlvbmFsIGFjY291bnQKCiAgICAkRnVuY3Rpb25hbEFjY291bnRzT2JqZWN0LT5DbGVhckNhY2hlKAogICAgICAgIE5hbWUgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICAgKTsKCj1jdXQKCnN1YiBDbGVhckNhY2hlIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRBY2NvdW50ID0gJFNlbGYtPkdldEFjY291bnQoJVBhcmFtKTsKCiAgICBteSAkT0lEQ1Byb2ZpbGUgPSAkQWNjb3VudC0+e09JRENQcm9maWxlfTsKCiAgICAjICAgIG15ICRPcGVuSURDb25maWcgPSAkU2VsZi0+R2V0T3BlbklEQ29uZmlnKCVQYXJhbSk7CgogICAgbXkgJFByb3ZpZGVyS2V5ID0gJ1Byb3ZpZGVyRGF0YScgLiAoICRPSURDUHJvZmlsZS0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57TmFtZX0gLy8gJycgKTsKCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgIFR5cGUgPT4gJ09wZW5JRENvbm5lY3QnLAogICAgICAgIEtleSAgPT4gJFByb3ZpZGVyS2V5LAogICAgKTsKCiAgICByZXR1cm47Cn0KCjE7Cg==</File>
        <File Location="Kernel/System/OpenIDConnect/FunctionalAccountRepository.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBjb3JlIG1vZHVsZXMKCiMgQ1BBTiBtb2R1bGVzCgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKdXNlIG5hbWVzcGFjZTo6YXV0b2NsZWFuOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OllBTUwnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCgogICAgIyAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5IC0gREIgYmFja2VuZCBmb3IgT0lEQyBGdW5jdGlvbmFsIEFjY291bnQgZm9yIEludm9rZXJzIChvdXRnb2luZyBjYWxscykKCj1mb3Igc3RvcHdvcmRzIE9JREMKCj1oZWFkMSBTWU5PUFNJUwoKRnVuY3Rpb25hIEFjY291bnRzIERCIGFic3RyYWN0aW9uIGZvciBPcGVuSUQgQ29ubmVjdAoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJEZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnknKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CgogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIEdldExpc3QoKQoKUmV0dXJucyBhIGxpc3Qgb2YgT0lEQyBGdW5jdGlvbmFsIEFjY291bnRzLiBVc2FnZToKCiAgICBteSAkTGlzdCA9ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnlPYmplY3QtPkdldExpc3QoKTsKCiAgICB3aGVyZQoKICAgIG15ICRMaXN0ID0gWwogICAgICAgIHsKICAgICAgICAgICAgQWNjb3VudElEID0+IGRhdGFiYXNlIGlkLAogICAgICAgICAgICBOYW1lID0+ICROYW1lLAogICAgICAgICAgICBPSURDUHJvZmlsZUlELAogICAgICAgICAgICBHcmFudFR5cGUsCiAgICAgICAgICAgIFNjb3BlLAogICAgICAgICAgICBSZXNvdXJjZXMsCiAgICAgICAgICAgIFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgICAgICBUb2tlblR5cGUsCiAgICAgICAgICAgIFZhbGlkCiAgICAgICAgfSwKICAgICAgICAuLi4KICAgIF07Cgo9Y3V0CgpzdWIgR2V0TGlzdCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkREJPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwogICAgbXkgJFlBTUxPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6WUFNTCcpOwoKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCwgdmFsaWRfaWQsIG5hbWUsIG9pZGNfcHJvZmlsZV9pZCwgZ3JhbnRfdHlwZSwKICAgICAgICAgICAgICAgICAgICBzY29wZXMsIHJlc291cmNlcywgcmVzb3VyY2VfcGFyYW1fbmFtZSwgdG9rZW5fdHlwZSwKICAgICAgICAgICAgICAgICAgICB1c2VybmFtZSwgcGFzc3dkCiAgICAgICAgICAgICAgICAgICAgRlJPTSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgIiwKICAgICk7CgogICAgbXkgQFJlc3VsdDsKICAgIHdoaWxlICgKICAgICAgICBteSAoCiAgICAgICAgICAgICRJRCwgICAgICAgJFZhbGlkLCAgICAgJE5hbWUsICRPSURDUHJvZmlsZUlELCAkR3JhbnRUeXBlLAogICAgICAgICAgICAkU2NvcGUsICAgICRSZXNvdXJjZXMsICRSZXNvdXJjZVBhcmFtTmFtZSwgJFRva2VuVHlwZSwKICAgICAgICAgICAgJFVzZXJuYW1lLCAkUGFzc3dvcmQKICAgICAgICApID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5CiAgICAgICAgKQogICAgewoKICAgICAgICBteSAkSXRlbSA9IHsKICAgICAgICAgICAgQWNjb3VudElEICAgICAgICAgPT4gJElELAogICAgICAgICAgICBWYWxpZCAgICAgICAgICAgICA9PiAkVmFsaWQsCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgID0+ICROYW1lLAogICAgICAgICAgICBPSURDUHJvZmlsZUlEICAgICA9PiAkT0lEQ1Byb2ZpbGVJRCwKICAgICAgICAgICAgR3JhbnRUeXBlICAgICAgICAgPT4gJEdyYW50VHlwZSwKICAgICAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJFNjb3BlLAogICAgICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAkUmVzb3VyY2VzLAogICAgICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkUmVzb3VyY2VQYXJhbU5hbWUsCiAgICAgICAgICAgIFRva2VuVHlwZSAgICAgICAgID0+ICRUb2tlblR5cGUsCiAgICAgICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRVc2VybmFtZSwKICAgICAgICAgICAgUGFzc3dvcmQgICAgICAgICAgPT4gJFBhc3N3b3JkLAogICAgICAgIH07CgogICAgICAgIHB1c2ggQFJlc3VsdCwgJEl0ZW07CiAgICB9CgogICAgcmV0dXJuIFxAUmVzdWx0Owp9Cgo9aGVhZDIgR2V0QWNjb3VudCgpCgpSZXR1cm5zIGEgc3BlY2lmaWMgT0lEQyBGdW5jdGlvbmFsIEFjY291bnQgYnkgbmFtZS4gVXNhZ2U6CgogICAgbXkgJFByb2ZpbGUgPSAkRnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5T2JqZWN0LT5HZXRBY2NvdW50KCBOYW1lID0+ICc8RnVuY3Rpb25hbEFjY291bnROYW1lPicgKTsKCiAgICB3aGVyZQoKICAgIG15ICRQcm9maWxlID0gewogICAgICAgIEFjY291bnRJRCA9PiBkYXRhYmFzZSBpZCwKICAgICAgICBOYW1lID0+ICROYW1lLAogICAgICAgIE9JRENQcm9maWxlSUQsCiAgICAgICAgR3JhbnRUeXBlLAogICAgICAgIFNjb3BlLAogICAgICAgIFJlc291cmNlcywKICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSwKICAgICAgICBUb2tlblR5cGUsCiAgICAgICAgVmFsaWQKICAgIH07Cgo9Y3V0CgpzdWIgR2V0QWNjb3VudCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvTmFtZS8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE5hbWUgPSAkUGFyYW17TmFtZX07CgogICAgbXkgJERCT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKICAgIG15ICRZQU1MT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OllBTUwnKTsKCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgaWQsIHZhbGlkX2lkLCBuYW1lLCBvaWRjX3Byb2ZpbGVfaWQsCiAgICAgICAgICAgICAgICAgICAgZ3JhbnRfdHlwZSwgc2NvcGVzLCByZXNvdXJjZXMsIHJlc291cmNlX3BhcmFtX25hbWUsCiAgICAgICAgICAgICAgICAgICAgdG9rZW5fdHlwZSwgdXNlcm5hbWUsIHBhc3N3ZAogICAgICAgICAgICAgICAgICAgIEZST00gb2lkY19mdW5jdGlvbmFsX2FjY291bnRzIFdIRVJFIG5hbWUgPSA/ICIsCiAgICAgICAgQmluZCA9PiBbIFwkTmFtZSBdLAogICAgKTsKCiAgICBpZiAoCiAgICAgICAgbXkgKAogICAgICAgICAgICAkSUQsICAgICAgICRWYWxpZCwgICAgICROYW1lLCAkT0lEQ1Byb2ZpbGVJRCwgJEdyYW50VHlwZSwKICAgICAgICAgICAgJFNjb3BlLCAgICAkUmVzb3VyY2VzLCAkUmVzb3VyY2VQYXJhbU5hbWUsICRUb2tlblR5cGUsCiAgICAgICAgICAgICRVc2VybmFtZSwgJFBhc3N3b3JkCiAgICAgICAgKSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpCiAgICAgICAgKQogICAgewoKICAgICAgICBteSAkSXRlbSA9IHsKICAgICAgICAgICAgQWNjb3VudElEICAgICAgICAgPT4gJElELAogICAgICAgICAgICBWYWxpZCAgICAgICAgICAgICA9PiAkVmFsaWQsCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgID0+ICROYW1lLAogICAgICAgICAgICBPSURDUHJvZmlsZUlEICAgICA9PiAkT0lEQ1Byb2ZpbGVJRCwKICAgICAgICAgICAgR3JhbnRUeXBlICAgICAgICAgPT4gJEdyYW50VHlwZSwKICAgICAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJFNjb3BlLAogICAgICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAkUmVzb3VyY2VzLAogICAgICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkUmVzb3VyY2VQYXJhbU5hbWUsCiAgICAgICAgICAgIFRva2VuVHlwZSAgICAgICAgID0+ICRUb2tlblR5cGUsCiAgICAgICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRVc2VybmFtZSwKICAgICAgICAgICAgUGFzc3dvcmQgICAgICAgICAgPT4gJFBhc3N3b3JkLAogICAgICAgIH07CgogICAgICAgIHJldHVybiAkSXRlbTsKICAgIH0KCiAgICByZXR1cm47Cn0KCj1oZWFkMiBHZXRCeUlEKCkKClJldHVybnMgYSBzcGVjaWZpYyBPSURDIEZ1bmN0aW9uYWwgQWNjb3VudCBieSBBY2NvdW50SUQuIFVzYWdlOgoKICAgIG15ICRQcm9maWxlID0gJEZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeU9iamVjdC0+R2V0QnlJRCggQWNjb3VudElEID0+IDxGdW5jdGlvbmFsQWNjb3VudElEPiApOwoKICAgIHdoZXJlCgogICAgbXkgJFByb2ZpbGUgPSB7CiAgICAgICAgQWNjb3VudElEID0+IGRhdGFiYXNlIGlkLAogICAgICAgIE5hbWUgPT4gJE5hbWUsCiAgICAgICAgT0lEQ1Byb2ZpbGVJRCwKICAgICAgICBHcmFudFR5cGUsCiAgICAgICAgU2NvcGUsCiAgICAgICAgUmVzb3VyY2VzLAogICAgICAgIFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgIFRva2VuVHlwZSwKICAgICAgICBWYWxpZAogICAgfTsKCj1jdXQKCnN1YiBHZXRCeUlEIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdy9BY2NvdW50SUQvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRBY2NvdW50SUQgPSAkUGFyYW17QWNjb3VudElEfTsKCiAgICBteSAkREJPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwogICAgbXkgJFlBTUxPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6WUFNTCcpOwoKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCwgdmFsaWRfaWQsIG5hbWUsIG9pZGNfcHJvZmlsZV9pZCwKICAgICAgICAgICAgICAgICAgICBncmFudF90eXBlLCBzY29wZXMsIHJlc291cmNlcywgcmVzb3VyY2VfcGFyYW1fbmFtZSwKICAgICAgICAgICAgICAgICAgICB0b2tlbl90eXBlLCB1c2VybmFtZSwgcGFzc3dkCiAgICAgICAgICAgICAgICAgICAgRlJPTSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgV0hFUkUgaWQgPSA/ICIsCiAgICAgICAgQmluZCA9PiBbIFwkQWNjb3VudElEIF0sCgogICAgICAgICMgICAgICAgICAgICBMaW1pdCA9PiAxCiAgICApOwoKICAgIGlmICgKICAgICAgICBteSAoCiAgICAgICAgICAgICRJRCwgICAgICAgJFZhbGlkLCAgICAgJE5hbWUsICRPSURDUHJvZmlsZUlELCAkR3JhbnRUeXBlLAogICAgICAgICAgICAkU2NvcGUsICAgICRSZXNvdXJjZXMsICRSZXNvdXJjZVBhcmFtTmFtZSwgJFRva2VuVHlwZSwKICAgICAgICAgICAgJFVzZXJuYW1lLCAkUGFzc3dvcmQKICAgICAgICApID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5CiAgICAgICAgKQogICAgewoKICAgICAgICBteSAkSXRlbSA9IHsKICAgICAgICAgICAgQWNjb3VudElEICAgICAgICAgPT4gJElELAogICAgICAgICAgICBWYWxpZCAgICAgICAgICAgICA9PiAkVmFsaWQsCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgID0+ICROYW1lLAogICAgICAgICAgICBPSURDUHJvZmlsZUlEICAgICA9PiAkT0lEQ1Byb2ZpbGVJRCwKICAgICAgICAgICAgR3JhbnRUeXBlICAgICAgICAgPT4gJEdyYW50VHlwZSwKICAgICAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJFNjb3BlLAogICAgICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAkUmVzb3VyY2VzLAogICAgICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkUmVzb3VyY2VQYXJhbU5hbWUsCiAgICAgICAgICAgIFRva2VuVHlwZSAgICAgICAgID0+ICRUb2tlblR5cGUsCiAgICAgICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRVc2VybmFtZSwKICAgICAgICAgICAgUGFzc3dvcmQgICAgICAgICAgPT4gJFBhc3N3b3JkLAogICAgICAgIH07CgogICAgICAgIHJldHVybiAkSXRlbTsKICAgIH0KCiAgICByZXR1cm47Cn0KCj1oZWFkMiBFeGlzdHMoKQoKICAgIENoZWNrcyB3aGV0aGVyIGEgbmFtZWQgRnVuY3Rpb25hbCBBY2NvdW50IGV4aXN0cy4KCiAgICBteSAkRXhpc3RzID0gJEZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeU9iamVjdC0+RXhpc3RzKCBOYW1lID0+ICROYW1lICk7CgogICAgcmV0dXJucyBhIGJvb2xlYW4KCj1jdXQKCnN1YiBFeGlzdHMgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3L05hbWUvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICROYW1lID0gJFBhcmFte05hbWV9OwoKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgID0+ICJTRUxFQ1QgaWQgRlJPTSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgV0hFUkUgbmFtZSA9ID8gIiwKICAgICAgICBCaW5kID0+IFsgXCROYW1lIF0sCgogICAgICAgICMgICAgICAgICAgICBMaW1pdCA9PiAxCiAgICApOwoKICAgIGlmICggbXkgKCRJRCkgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkgKSB7CiAgICAgICAgcmV0dXJuICRJRDsKICAgIH0KCiAgICByZXR1cm47Cn0KCj1oZWFkMiBBZGRBY2NvdW50KCkKCiAgICBJbnNlcnQgYSBuZXcgRnVuY3Rpb25hbCBBY2NvdW50IGludG8gREIuCgogICAgTm90ZSB5b3UgbmVlZCB0byBnaXZlIHRoZSBPSURDUHJvZmlsZUlEIGFzIHBhcmFtZXRlci4KCiAgICBteSAkU3VjY2VzcyA9ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnlPYmplY3QtPkFkZEFjY291bnQoCgogICAgICAgIE5hbWUgPT4gJE5hbWUsCiAgICAgICAgT0lEQ1Byb2ZpbGVJRCwKICAgICAgICBHcmFudFR5cGUsCiAgICAgICAgU2NvcGUsCiAgICAgICAgUmVzb3VyY2VzLAogICAgICAgIFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgIFRva2VuVHlwZSwKICAgICAgICBWYWxpZCwKICAgICAgICBVc2VySUQsCiAgICAgICAgVXNlcm5hbWUsICMgb3B0aW9uYWwsIGdyYW50X3R5cGUgcGFzc3dvcmQgb25seQogICAgICAgIFBhc3N3b3JkLCAjIG9wdGlvbmFsLCBncmFudF90eXBlIHBhc3N3b3JkIG9ubHkKICAgICk7Cgo9Y3V0CgpzdWIgQWRkQWNjb3VudCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREQk9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CiAgICBteSAkWUFNTE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJyk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3L05hbWUgT0lEQ1Byb2ZpbGVJRCBHcmFudFR5cGUgVXNlcklELykgewogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICROYW1lICAgICAgICAgICAgICA9ICRQYXJhbXtOYW1lfTsKICAgIG15ICRPSURDUHJvZmlsZUlEICAgICA9ICRQYXJhbXtPSURDUHJvZmlsZUlEfTsKICAgIG15ICRHcmFudFR5cGUgICAgICAgICA9ICRQYXJhbXtHcmFudFR5cGV9OwogICAgbXkgJFNjb3BlICAgICAgICAgICAgID0gJFBhcmFte1Njb3BlfSAgICAgICAgICAgICB8fCAnJzsKICAgIG15ICRSZXNvdXJjZXMgICAgICAgICA9ICRQYXJhbXtSZXNvdXJjZXN9ICAgICAgICAgfHwgJyc7CiAgICBteSAkUmVzb3VyY2VQYXJhbU5hbWUgPSAkUGFyYW17UmVzb3VyY2VQYXJhbU5hbWV9IHx8ICdyZXNvdXJjZSc7CiAgICBteSAkVG9rZW5UeXBlICAgICAgICAgPSAkUGFyYW17VG9rZW5UeXBlfSAgICAgICAgIHx8ICdhY2Nlc3NfdG9rZW4nOwogICAgbXkgJFZhbGlkICAgICAgICAgICAgID0gJFBhcmFte1ZhbGlkfSAgICAgICAgICAgICB8fCAxOwogICAgbXkgJFVzZXJuYW1lICAgICAgICAgID0gJFBhcmFte1VzZXJuYW1lfTsKICAgIG15ICRQYXNzd29yZCAgICAgICAgICA9ICRQYXJhbXtQYXNzd29yZH07CiAgICBteSAkVXNlcklEICAgICAgICAgICAgPSAkUGFyYW17VXNlcklEfTsKCiAgICBteSBAQmluZCA9ICgKICAgICAgICBcJE5hbWUsICAgICAgXCRPSURDUHJvZmlsZUlELCAgICAgXCRHcmFudFR5cGUsIFwkU2NvcGUsCiAgICAgICAgXCRSZXNvdXJjZXMsIFwkUmVzb3VyY2VQYXJhbU5hbWUsIFwkVG9rZW5UeXBlLCBcJFZhbGlkLAogICAgICAgIFwkVXNlcklELCAgICBcJFVzZXJJRAogICAgKTsKCiAgICBteSAkU1FMID0gIklOU0VSVCBJTlRPIG9pZGNfZnVuY3Rpb25hbF9hY2NvdW50cwogICAgICAgICggbmFtZSwgb2lkY19wcm9maWxlX2lkLCBncmFudF90eXBlLCBzY29wZXMsIHJlc291cmNlcywgcmVzb3VyY2VfcGFyYW1fbmFtZSwKICAgICAgICAgIHRva2VuX3R5cGUsIHZhbGlkX2lkLCBjcmVhdGVfdGltZSwgY3JlYXRlX2J5LCBjaGFuZ2VfdGltZSwgY2hhbmdlX2J5ICI7CgogICAgaWYgKCRVc2VybmFtZSkgewogICAgICAgICRTUUwgLj0gIiwgdXNlcm5hbWUsIHBhc3N3ZCAiOwogICAgfQoKICAgICRTUUwgLj0gIiApIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPywgPywgY3VycmVudF90aW1lc3RhbXAsID8sIGN1cnJlbnRfdGltZXN0YW1wLCA/ICI7CgogICAgaWYgKCRVc2VybmFtZSkgewogICAgICAgICRTUUwgLj0gIiwgPywgPyAiOwogICAgICAgIHB1c2ggQEJpbmQsIFwkVXNlcm5hbWU7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXNzd29yZDsKICAgIH0KCiAgICAkU1FMIC49ICIpICI7CgogICAgbXkgJEluc2VydFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+IFxAQmluZCwKICAgICk7CgogICAgcmV0dXJuICRJbnNlcnRTdWNjZXNzOwp9Cgo9aGVhZDIgVXBkYXRlQWNjb3VudCgpCgogICAgVXBkYXRlIGEgRnVuY3Rpb25hbCBBY2NvdW50IGluIHRoZSBEQi4KCiAgICBOb3RlIHlvdSBuZWVkIHRvIGdpdmUgdGhlIE9JRENQcm9maWxlSUQgYXMgcGFyYW1ldGVyLgoKICAgIG15ICRTdWNjZXNzID0gJEZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeU9iamVjdC0+VXBkYXRlQWNjb3VudCgKCiAgICAgICAgTmFtZSA9PiAkTmFtZSwKICAgICAgICBPSURDUHJvZmlsZUlELAogICAgICAgIEdyYW50VHlwZSwKICAgICAgICBTY29wZSwKICAgICAgICBSZXNvdXJjZXMsCiAgICAgICAgUmVzb3VyY2VQYXJhbU5hbWUsCiAgICAgICAgVG9rZW5UeXBlLAogICAgICAgIFZhbGlkLAogICAgICAgIFVzZXJJRCwKICAgICAgICBVc2VybmFtZSwgIyBvcHRpb25hbCwgZ3JhbnRfdHlwZSBwYXNzd29yZCBvbmx5CiAgICAgICAgUGFzc3dvcmQsICMgb3B0aW9uYWwsIGdyYW50X3R5cGUgcGFzc3dvcmQgb25seQogICAgKTsKCj1jdXQKCnN1YiBVcGRhdGVBY2NvdW50IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJERCT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKICAgIG15ICRZQU1MT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OllBTUwnKTsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvTmFtZSBPSURDUHJvZmlsZUlEIEdyYW50VHlwZSBVc2VySUQvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICROYW1lICAgICAgICAgICAgICA9ICRQYXJhbXtOYW1lfTsKICAgIG15ICRPSURDUHJvZmlsZUlEICAgICA9ICRQYXJhbXtPSURDUHJvZmlsZUlEfTsKICAgIG15ICRHcmFudFR5cGUgICAgICAgICA9ICRQYXJhbXtHcmFudFR5cGV9OwogICAgbXkgJFNjb3BlICAgICAgICAgICAgID0gJFBhcmFte1Njb3BlfSAgICAgICAgICAgICB8fCAnJzsKICAgIG15ICRSZXNvdXJjZXMgICAgICAgICA9ICRQYXJhbXtSZXNvdXJjZXN9ICAgICAgICAgfHwgJyc7CiAgICBteSAkUmVzb3VyY2VQYXJhbU5hbWUgPSAkUGFyYW17UmVzb3VyY2VQYXJhbU5hbWV9IHx8ICdyZXNvdXJjZSc7CiAgICBteSAkVG9rZW5UeXBlICAgICAgICAgPSAkUGFyYW17VG9rZW5UeXBlfSAgICAgICAgIHx8ICdhY2Nlc3NfdG9rZW4nOwogICAgbXkgJFZhbGlkICAgICAgICAgICAgID0gJFBhcmFte1ZhbGlkfSAgICAgICAgICAgICB8fCAxOwogICAgbXkgJFVzZXJuYW1lICAgICAgICAgID0gJFBhcmFte1VzZXJuYW1lfTsKICAgIG15ICRQYXNzd29yZCAgICAgICAgICA9ICRQYXJhbXtQYXNzd29yZH07CgogICAgbXkgJFVzZXJJRCA9ICRQYXJhbXtVc2VySUR9OwoKICAgIG15IEBCaW5kID0gKAogICAgICAgIFwkT0lEQ1Byb2ZpbGVJRCwgXCRHcmFudFR5cGUsIFwkU2NvcGUsCiAgICAgICAgXCRSZXNvdXJjZXMsICAgICBcJFJlc291cmNlUGFyYW1OYW1lLCBcJFRva2VuVHlwZSwgXCRWYWxpZCwKICAgICAgICBcJFVzZXJJRAogICAgKTsKCiAgICBteSAkU1FMID0gIlVQREFURSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgU0VUIG9pZGNfcHJvZmlsZV9pZCA9ID8sCiAgICAgICAgZ3JhbnRfdHlwZSA9ID8sIHNjb3BlcyA9ID8sIHJlc291cmNlcyA9ID8sIHJlc291cmNlX3BhcmFtX25hbWUgPSA/LAogICAgICAgIHRva2VuX3R5cGUgPSA/LCB2YWxpZF9pZCA9ID8sIGNoYW5nZV90aW1lID0gY3VycmVudF90aW1lc3RhbXAsCiAgICAgICAgY2hhbmdlX2J5ID0gPyAiOwoKICAgIGlmICgkVXNlcm5hbWUpIHsKICAgICAgICAkU1FMIC49ICIsIHVzZXJuYW1lID0gPywgcGFzc3dkID0gPyAiOwogICAgICAgIHB1c2ggQEJpbmQsIFwkVXNlcm5hbWU7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXNzd29yZDsKICAgIH0KCiAgICBwdXNoIEBCaW5kLCBcJE5hbWU7CiAgICAkU1FMIC49ICIgV0hFUkUgbmFtZSA9ID8gIjsKCiAgICBteSAkVXBkYXRlU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gXEBCaW5kLAogICAgKTsKCiAgICByZXR1cm4gJFVwZGF0ZVN1Y2Nlc3M7Cn0KCj1oZWFkMiBEZWxldGVBY2NvdW50KCkKCiAgICBEZWxldGUgYSBGdW5jdGlvbmFsIEFjY291bnQgZnJvbSBEQi4KCiAgICBteSAkU3VjY2VzcyA9ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnlPYmplY3QtPkRlbGV0ZUFjY291bnQoIE5hbWUgPT4gJE5hbWUgKTsKCj1jdXQKCnN1YiBEZWxldGVBY2NvdW50IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3L05hbWUvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICROYW1lID0gJFBhcmFte05hbWV9OwoKICAgIG15ICRTUUwgID0gIkRFTEVURSBGUk9NIG9pZGNfZnVuY3Rpb25hbF9hY2NvdW50cyBXSEVSRSBuYW1lID0gPyAiOwogICAgbXkgJEJpbmQgPSBbIFwkTmFtZSwgXTsKCiAgICBteSAkRGVsZXRlU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gJEJpbmQsCiAgICApOwoKICAgIHJldHVybiAkRGVsZXRlU3VjY2VzczsKfQoKMTsK</File>
        <File Location="Kernel/System/OpenIDConnect/OAuth2.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6T0F1dGgyOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBjb3JlIG1vZHVsZXMKCiMgQ1BBTiBtb2R1bGVzCgp1c2UgTFdQOjpTaW1wbGU7CnVzZSBMV1A6OlVzZXJBZ2VudDsKdXNlIEhUVFA6OlJlcXVlc3Q6OkNvbW1vbjsKdXNlIFVSSTo6RXNjYXBlIHF3KHVyaV9lc2NhcGVfdXRmOCk7CnVzZSBDcnlwdDo6SldUICBxdyhkZWNvZGVfand0KTsKdXNlIEpTT047CgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKdXNlIG5hbWVzcGFjZTo6YXV0b2NsZWFuOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6TGFuZ3VhZ2UnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpNYWluJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SlNPTicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlbicsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6Ok9BdXRoMiAtIG1ldGhvZHMgZm9yIE9wZW5JRENvbm5lY3Q6Ok9BdXRoMgoKPWhlYWQxIFNZTk9QU0lTCgpPQXV0aDIgYmFzaWMgZnVuY3Rpb25hbGl0eQotIG1ha2UgZW5kcG9pbnQgUE9TVCBjYWxscwotIGJ1aWxkIGxvZ2luIHJlZGlyZWN0IHVybCBmb3IgYXV0aG9yaXphdGlvbl9jb2RlIGZsb3cKLSBidWlsZCBsb2dvdXQgdXJsCgo9Zm9yIHN0b3B3b3JkcyBPSURDCgp0aGlzIGlzIGEgbG93IGxldmVsIGludGVyZmFjZSB0aGF0IG9ubHkga25vd3MgYWJvdXQgT0F1dGgyLApidXQgaXMgY29tcGxldGVseSBpZ25vcmFudCBvZiBPSURDIHN0dWZmLiBhbGwgbmVjZXNzYXJ5IHBhcmFtcwpoYXZlIHRvIGJlIHBhc3NlZCBpbi4KCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRPQXV0aDJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6T0F1dGgyJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHsKICAgICAgICBTU0xPcHRpb25NYXAgPT4gewogICAgICAgICAgICBTU0xDZXJ0aWZpY2F0ZSAgICA9PiAnU1NMX2NlcnRfZmlsZScsCiAgICAgICAgICAgIFNTTEtleSAgICAgICAgICAgID0+ICdTU0xfa2V5X2ZpbGUnLAogICAgICAgICAgICBTU0xQYXNzd29yZCAgICAgICA9PiAnU1NMX3Bhc3N3ZF9jYicsCiAgICAgICAgICAgIFNTTENBRmlsZSAgICAgICAgID0+ICdTU0xfY2FfZmlsZScsCiAgICAgICAgICAgIFNTTENBRGlyICAgICAgICAgID0+ICdTU0xfY2FfcGF0aCcsCiAgICAgICAgICAgIFNTTFZlcmlmeUhvc3RuYW1lID0+ICd2ZXJpZnlfaG9zdG5hbWUnLAogICAgICAgICAgICBTU0xWZXJpZnlNb2RlICAgICA9PiAnU1NMX3ZlcmlmeV9tb2RlJywKICAgICAgICB9LAogICAgfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBSZXF1ZXN0VG9rZW4oKQoKUmVxdWVzdCBhIFRva2VuIGZyb20gdG9rZW4gZW5kcG9pbnQKCiAgICBteSAkVG9rZW5SZXN1bHQgPSAkT0F1dGgyT2JqZWN0LT5SZXF1ZXN0VG9rZW4oCiAgICAgICAgVG9rZW5FbmRwb2ludCAgICAgPT4gJEVuZHBvaW50LCAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdXN1YWxseSBmcm9tIE9wZW5JRENvbmZpZwogICAgICAgIENsaWVudElEICAgICAgICAgID0+ICc8b2F1dGggY2xpZW50IGlkPicsCiAgICAgICAgQ2xpZW50U2VjcmV0ICAgICAgPT4gJzxhb3V0aCBjbGllbnQgc2VjcmV0PicsCiAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gPHNwYWNlIHNlcGFyYXRlIGxpc3Q+LAogICAgICAgIFJlc291cmNlcyAgICAgICAgID0+ICc8c3BhY2Ugc2VwYXJhdGVkIGxpc3Q+JywgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgUmVzb3VyY2VQYXJhbU5hbWUgPT4gJ3Jlc291cmNlJywgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICBHcmFudFR5cGUgICAgICAgICA9PiAnY2xpZW50X2NyZWRlbnRpYWxzJyB8ICdhdXRob3JpemF0aW9uX2NvZGUnIHwgJ3Bhc3N3b3JkJyB8ICdyZWZyZXNoX3Rva2VuJywKICAgICAgICBVc2VybmFtZSAgICAgICAgICA9PiAnJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmb3IgcGFzc3dvcmQgZ3JhbnQKICAgICAgICBQYXNzd29yZCAgICAgICAgICA9PiAnJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmb3IgcGFzc3dvcmQgZ3JhbnQKICAgICAgICBSZWZyZXNoVG9rZW4gICAgICA9PiAkUmVmcmVzaFRva2VuLCAgICAgICAgICAgICAgICAgICAgICAgIyB0aGUgcmVmcmVzaF90b2tlbiB0byB1c2UgZm9yICdyZWZyZXNoX3Rva2VuJyBncmFudAogICAgICAgIENvZGUgICAgICAgICAgICAgID0+ICc8Y29kZSBmcm9tIGF1dGhvcml6YXRpb24gY2FsbGJhY2s+LCAjIGZvciBhdXRob3JpemF0aW9uX2NvZGUgIGdyYW50JywKICAgICAgICBSZWRpcmVjdFVSTCAgICAgICA9PiAnPHRoZSByZWRpcmVjdCB1c2VkJywgICAgICAgICAgICAgICAgIyAtLi0KICAgICAgICBTU0xPcHRpb25zICAgICAgICA9PiB7XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI29wdGlvbmFsCiAgICApOwoKPWN1dAoKc3ViIFJlcXVlc3RUb2tlbiB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvVG9rZW5FbmRwb2ludCBDbGllbnRJRCBDbGllbnRTZWNyZXQgR3JhbnRUeXBlLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yICAgPT4gIkludmFsaWQgUGFyYW1ldGVycyAhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJExhbmd1YWdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpMYW5ndWFnZScpOwogICAgbXkgJFRva2VuT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJyk7CgogICAgbXkgJFNjb3BlICAgICAgICAgICAgID0gJFBhcmFte1Njb3BlfTsKICAgIG15ICRSZXNvdXJjZUlkcyAgICAgICA9ICRQYXJhbXtSZXNvdXJjZXN9OwogICAgbXkgJFJlc291cmNlUGFyYW1OYW1lID0gJFBhcmFte1Jlc291cmNlUGFyYW1OYW1lfSB8fCAncmVzb3VyY2UnOwoKICAgICMgcHJlcGFyZSB0aGUgZmV0Y2ggdG9rZW4gcmVxdWVzdAogICAgbXkgJFVzZXJBZ2VudCA9ICRTZWxmLT5fR2V0VXNlckFnZW50KCBTU0xPcHRpb25zID0+ICRQYXJhbXtTU0xPcHRpb25zfSApOwoKICAgICMgcHJlcGFyZSBwb3N0IGRhdGEKICAgIG15ICRQb3N0RGF0YTsKCiAgICBpZiAoICRQYXJhbXtSZWZyZXNoVG9rZW59ICkgewoKICAgICAgICAjIHJlZnJlc2hfdG9rZW4gZmxvdwogICAgICAgICRQb3N0RGF0YSA9IFsKICAgICAgICAgICAgZ3JhbnRfdHlwZSAgICA9PiAncmVmcmVzaF90b2tlbicsCiAgICAgICAgICAgIHJlZnJlc2hfdG9rZW4gPT4gJFBhcmFte1JlZnJlc2hUb2tlbn0sCiAgICAgICAgXTsKICAgIH0KICAgIGVsc2lmICgKICAgICAgICAkUGFyYW17R3JhbnRUeXBlfSBlcSAncGFzc3dvcmQnCiAgICAgICAgJiYKICAgICAgICBJc1N0cmluZ1dpdGhEYXRhKCAkUGFyYW17VXNlcm5hbWV9ICkgJiYKICAgICAgICBJc1N0cmluZ1dpdGhEYXRhKCAkUGFyYW17UGFzc3dvcmR9ICkKICAgICAgICApCiAgICB7CgogICAgICAgICMgcGFzc3dvcmQgZmxvdwogICAgICAgICRQb3N0RGF0YSA9IFsKICAgICAgICAgICAgZ3JhbnRfdHlwZSA9PiAncGFzc3dvcmQnLAogICAgICAgICAgICB1c2VybmFtZSAgID0+ICRQYXJhbXtVc2VybmFtZX0sCiAgICAgICAgICAgIHBhc3N3b3JkICAgPT4gJFBhcmFte1Bhc3N3b3JkfSwKICAgICAgICBdOwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17R3JhbnRUeXBlfSBlcSAnY2xpZW50X2NyZWRlbnRpYWxzJyApIHsKCiAgICAgICAgIyBjbGllbnRfY3JlZGVudGlhbHMgZmxvdwogICAgICAgICRQb3N0RGF0YSA9IFsKICAgICAgICAgICAgZ3JhbnRfdHlwZSA9PiAnY2xpZW50X2NyZWRlbnRpYWxzJywKICAgICAgICBdOwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17Q29kZX0gJiYgJFBhcmFte0dyYW50VHlwZX0gZXEgJ2F1dGhvcml6YXRpb25fY29kZScgKSB7CgogICAgICAgICMgYXV0aG9yaXphdGlvbiBjb2RlCiAgICAgICAgJFBvc3REYXRhID0gWwogICAgICAgICAgICBncmFudF90eXBlICAgPT4gJ2F1dGhvcml6YXRpb25fY29kZScsCiAgICAgICAgICAgIGNvZGUgICAgICAgICA9PiAkUGFyYW17Q29kZX0sCiAgICAgICAgICAgIHJlZGlyZWN0X3VyaSA9PiAkUGFyYW17UmVkaXJlY3RVUkx9LAogICAgICAgIF07CiAgICB9CgogICAgaWYgKCAhJFBhcmFte1JlZnJlc2hUb2tlbn0gJiYgJFJlc291cmNlSWRzICYmICRSZXNvdXJjZUlkcyBuZSAnJyApIHsKCiAgICAgICAgcHVzaCBAJFBvc3REYXRhLCAiJFJlc291cmNlUGFyYW1OYW1lIiA9PiAkUmVzb3VyY2VJZHM7CiAgICB9CgogICAgaWYgKCAhJFBhcmFte1JlZnJlc2hUb2tlbn0gJiYgJFNjb3BlICYmICRTY29wZSBuZSAnJyApIHsKCiAgICAgICAgcHVzaCBAJFBvc3REYXRhLCBzY29wZSA9PiAkU2NvcGU7CiAgICB9CgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICBNZXNzYWdlICA9PiAiVXNpbmcgVG9rZW5FbmRwb2ludCAkUGFyYW17VG9rZW5FbmRwb2ludH0gISIsCiAgICApOwoKICAgICMgYWN0dWFsbHkgc2VuZCB0aGUgcmVxdWVzdAogICAgbXkgJFJlc3BvbnNlID0gJFNlbGYtPl9TZW5kUmVxdWVzdCgKICAgICAgICBDbGllbnRJRCAgICAgPT4gJFBhcmFte0NsaWVudElEfSwKICAgICAgICBDbGllbnRTZWNyZXQgPT4gJFBhcmFte0NsaWVudFNlY3JldH0sCiAgICAgICAgVXNlckFnZW50ICAgID0+ICRVc2VyQWdlbnQsCiAgICAgICAgRW5kcG9pbnQgICAgID0+ICRQYXJhbXtUb2tlbkVuZHBvaW50fSwKICAgICAgICBQb3N0RGF0YSAgICAgPT4gJFBvc3REYXRhLAogICAgKTsKCiAgICBpZiAoICEkUmVzcG9uc2UtPntTdWNjZXNzfSApIHsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICBFcnJvciAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAiRXJyb3IgZmV0Y2hpbmcgVG9rZW46ICVzIiwgJFJlc3BvbnNlLT57RXJyb3J9ICksCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgICAgICAgID0+IDEsCiAgICAgICAgRGVjb2RlZENvbnRlbnQgPT4gJFJlc3BvbnNlLT57Q29udGVudH0KICAgIH07Cn0KCj1oZWFkMiBHZXRBdXRoVVJMKCkKCkJ1aWxkIHRoZSBVUkwgdG8gcmVxdWVzdCBhbiBhdXRob3JpemF0aW9uIGNvZGUuCgpFeGFtcGxlOgogICAgbXkgJEF1dGhVUkwgPSAkT0F1dGgyT2JqZWN0LT5HZXRBdXRoVVJMKAoKICAgICAgICBBdXRob3JpemF0aW9uRW5kcG9pbnQgPT4gJEVuZHBvaW50LCAgICAgICAgICAgICAgICAgICAgICAgIyB1c3VhbGx5IGZyb20gT3BlbklEQ29uZmlnCiAgICAgICAgQ2xpZW50SUQgICAgICAgICAgPT4gJzxvYXV0aCBjbGllbnQgaWQ+JywKICAgICAgICBSZXNwb25zZVR5cGUgICAgICA9PiAnY29kZScsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCwgZGVmYXVsdHMgdG8gY29kZQogICAgICAgIFNjb3BlICAgICAgICAgICAgID0+IDxzcGFjZSBzZXBhcmF0ZSBsaXN0PiwKICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAnPHNwYWNlIHNlcGFyYXRlZCBsaXN0PicsICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgIFJlc291cmNlUGFyYW1OYW1lID0+ICdyZXNvdXJjZScsICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgTG9naW4gICAgICAgICAgICAgPT4gJzxsb2dpbl9oaW50PicsICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICBQcm9tcHQgICAgICAgICAgICA9PiAnPHByb21wdD1sb2dpbj4nLCAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCwgZm9yY2VzIGxvZ2luCiAgICAgICAgTm9uY2UgICAgICAgICAgICAgPT4gJzxub25jZT4nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICBSYW5kTGVuZ3RoICAgICAgICA9PiA8bGVuZ3RoIGZvciByYW5kb20gc3RhdGUgYW5kIG5vbmNlcz4gIyBvcHRpb25hbAogICAgICAgIFJhbmRUVEwgICAgICAgICAgID0+IDx0aW1lb3V0IGZvciBsb2dpbiBwdXJwb3Nlcz4gICAgICAgICAjIG9wdGlvbmFsCgogICAgICAgIFJlZGlyZWN0VVJMID0+ICdodHRwczovL3lvdXIub3RvYm8udXJsL290b2JvL2luZGV4LnBsP0FjdGlvbj1BZG1pbk9BdXRoVG9rZW5TdG9yZSZTdWJhY3Rpb249T0F1dGgnCgogICAgICAgIFN0YXRlICAgICAgICAgICAgID0+ICc8dXNlIHRoaXMgdmFsZSBmb3Igc3RhdGUgaW5zdGVhZCBvZiByYW5kb20gc3RyaW5nPicsICMgb3B0aW9uYWwKICAgICk7CgpSZXR1cm5zOgogICAgJEF1dGhVUkwgPSBodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vY29tbW9uL29hdXRoMi92Mi4wL2F1dGhvcml6ZT9jbGllbnRfaWQ9MDc3ZDIwNTktMjE5Li4uCgo9Y3V0CgpzdWIgR2V0QXV0aFVSTCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdy9BdXRob3JpemF0aW9uRW5kcG9pbnQgQ2xpZW50SUQgLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIENyZWF0ZSBhIHJhbmRvbSBzdHJpbmcgdG8gcHJldmVudCBjcm9zcy1zaXRlIHJlcXVlc3RzLgogICAgbXkgJFJhbmRvbVN0cmluZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPkdlbmVyYXRlUmFuZG9tU3RyaW5nKAogICAgICAgIExlbmd0aCA9PiAkUGFyYW17UmFuZExlbmd0aH0gfHwgMjIKICAgICk7CgogICAgbXkgJFJlc291cmNlUGFyYW1OYW1lID0gJFBhcmFte1Jlc291cmNlUGFyYW1OYW1lfSB8fCAncmVzb3VyY2UnOwogICAgbXkgJFN0YXRlICAgICAgICAgICAgID0gJFBhcmFte1N0YXRlfSAgICAgICAgICAgICB8fCAkUmFuZG9tU3RyaW5nOwoKICAgIG15ICRSZXNwb25zZVR5cGUgPSAkUGFyYW17UmVzcG9uc2VUeXBlfSB8fCBbJ2NvZGUnXTsKICAgIGlmICggcmVmICRSZXNwb25zZVR5cGUgbmUgJ0FSUkFZJyApIHsKICAgICAgICAkUmVzcG9uc2VUeXBlID0gWyRSZXNwb25zZVR5cGVdOwogICAgfQoKICAgIG15ICRSZWRpcmVjdFVSTCA9ICRQYXJhbXtBdXRob3JpemF0aW9uRW5kcG9pbnR9OwogICAgJFJlZGlyZWN0VVJMIC49ICc/cmVzcG9uc2VfdHlwZT0nIC4gam9pbiggJyUyMCcsIEB7JFJlc3BvbnNlVHlwZX0gKTsKCiAgICBpZiAoICRQYXJhbXtTY29wZX0gKSB7CiAgICAgICAgJFJlZGlyZWN0VVJMIC49ICcmc2NvcGU9JyAuIHVyaV9lc2NhcGVfdXRmOCggJFBhcmFte1Njb3BlfSApOwogICAgfQoKICAgICRSZWRpcmVjdFVSTCAuPSAnJmNsaWVudF9pZD0nIC4gdXJpX2VzY2FwZV91dGY4KCAkUGFyYW17Q2xpZW50SUR9ICk7CgogICAgaWYgKCAkUGFyYW17UmVzb3VyY2VzfSApIHsKICAgICAgICAkUmVkaXJlY3RVUkwgLj0gIiYiIC4gdXJpX2VzY2FwZV91dGY4KCRSZXNvdXJjZVBhcmFtTmFtZSkKICAgICAgICAgICAgLiAiPSIgLiB1cmlfZXNjYXBlX3V0ZjgoICRQYXJhbXtSZXNvdXJjZXN9ICk7CiAgICB9CgogICAgaWYgKCAkUGFyYW17Tm9uY2V9ICkgewogICAgICAgICRSZWRpcmVjdFVSTCAuPSAnJm5vbmNlPScgLiB1cmlfZXNjYXBlX3V0ZjgoICRQYXJhbXtOb25jZX0gKTsKICAgIH0KCiAgICAjIGh5YnJpZCBtb2RlCiAgICAjIGlmICggZ3JlcCB7ICRfIGVxICdpZF90b2tlbicgfSBAeyRSZXNwb25zZVR5cGV9ICkgewogICAgIyAgICAkUmVkaXJlY3RVUkwgLj0gJyZyZXNwb25zZV9tb2RlPWZvcm1fcG9zdCc7CiAgICAjIH0KCiAgICBpZiAoICRQYXJhbXtMb2dpbn0gKSB7CiAgICAgICAgJFJlZGlyZWN0VVJMIC49ICcmbG9naW5faGludD0nIC4gdXJpX2VzY2FwZV91dGY4KCAkUGFyYW17TG9naW59ICk7CiAgICB9CgogICAgaWYgKCAkUGFyYW17UHJvbXB0fSApIHsKICAgICAgICAkUmVkaXJlY3RVUkwgLj0gJyZwcm9tcHQ9bG9naW4nOwogICAgfQoKICAgICRSZWRpcmVjdFVSTCAuPSAnJnN0YXRlPScgLiB1cmlfZXNjYXBlX3V0ZjgoJFN0YXRlKTsKICAgICRSZWRpcmVjdFVSTCAuPSAnJnJlZGlyZWN0X3VyaT0nIC4gdXJpX2VzY2FwZV91dGY4KCAkUGFyYW17UmVkaXJlY3RVUkx9ICk7CgogICAgIyBTYXZlIGFsbCBwYXJhbWV0ZXJzIHRvIHVzZSBhZnRlciBzdWNjZXNzZnVsIGF1dGhvcml6YXRpb24uCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+U2V0KAogICAgICAgIFR5cGUgID0+ICdUb2tlblByb3ZpZGVyJywKICAgICAgICBUVEwgICA9PiAkUGFyYW17UmFuZFRUTH0gfHwgNjAgKiAxNSwKICAgICAgICBLZXkgICA9PiAiVG9rZW5Qcm92aWRlcjo6T0F1dGgyU3RhdGU6OiRTdGF0ZSIsCiAgICAgICAgVmFsdWUgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICBNZXNzYWdlICA9PiAiT0F1dGgyIGF1dGhlbnRpY2F0aW9uIHJlZGlyZWN0IFVSTDogJFJlZGlyZWN0VVJMICEiLAogICAgKTsKCiMgVE9ETzogZW5kc2Vzc2lvbl9lbmRwb2ludCBpbiBwcm92aWRlciBpbmZvID8KIyBteSAkTG9nb3V0VVJMID0gImh0dHBzOi8va2V5Y2xvYWs6ODQ0My9yZWFsbXMvbWFzdGVyL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2xvZ291dD9jbGllbnRfaWQ9b3RvYm8mcG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpPSI7CiMgJExvZ291dFVSTCAuPSB1cmlfZXNjYXBlX3V0ZjgoJFJlZGlyZWN0VVJMKTsKIyBodHRwczovL2F1dGgtc2VydmVyL2F1dGgvcmVhbG1zL3tyZWFsbS1uYW1lfS9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC9sb2dvdXQ/cmVkaXJlY3RfdXJpPWh0dHBzOi8vYXV0aC1zZXJ2ZXIvYXV0aC9yZWFsbXMve3JlYWxtLW5hbWV9L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2F1dGg/Y2xpZW50X2lkPWNsaWVudF9pZCZyZWRpcmVjdF91cmkKIyBwcmludCBTVERFUlIgIldSQVBQRUQ6ICRMb2dvdXRVUkxcbiI7CgogICAgcmV0dXJuICRSZWRpcmVjdFVSTDsKfQoKc3ViIF9HZXRVc2VyQWdlbnQgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFNTTE9wdGlvbnMgPSAkUGFyYW17U1NMT3B0aW9uc307CgogICAgIyBwcmVwYXJlIHRoZSBmZXRjaCB0b2tlbiByZXF1ZXN0CiAgICBteSAkVXNlckFnZW50ID0gTFdQOjpVc2VyQWdlbnQtPm5ldygpOwoKICAgICMgU1NMIG9wdGlvbnMKICAgIGlmICgkU1NMT3B0aW9ucykgewogICAgICAgIE9QVElPTjoKICAgICAgICBmb3IgbXkgJEtleSAoIGtleXMgJFNTTE9wdGlvbnMtPiUqICkgewogICAgICAgICAgICBuZXh0IE9QVElPTiBpZiAhJFNlbGYtPntTU0xPcHRpb25NYXB9eyRLZXl9OwoKICAgICAgICAgICAgaWYgKCAkS2V5IGVxICdTU0xQYXNzd29yZCcgKSB7CiAgICAgICAgICAgICAgICAkVXNlckFnZW50LT5zc2xfb3B0cygKICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e1NTTE9wdGlvbk1hcH17JEtleX0gPT4gc3ViIHsgJFNTTE9wdGlvbnMtPnskS2V5fSB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBuZXh0IE9QVElPTjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFVzZXJBZ2VudC0+c3NsX29wdHMoCiAgICAgICAgICAgICAgICAkU2VsZi0+e1NTTE9wdGlvbk1hcH17JEtleX0gPT4gJFNTTE9wdGlvbnMtPnskS2V5fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICRVc2VyQWdlbnQ7Cn0KCnN1YiBfU2VuZFJlcXVlc3QgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEVuZHBvaW50ICAgICA9ICRQYXJhbXtFbmRwb2ludH07CiAgICBteSAkQ2xpZW50SUQgICAgID0gJFBhcmFte0NsaWVudElEfTsKICAgIG15ICRDbGllbnRTZWNyZXQgPSAkUGFyYW17Q2xpZW50U2VjcmV0fTsKICAgIG15ICRVc2VyQWdlbnQgICAgPSAkUGFyYW17VXNlckFnZW50fTsKICAgIG15ICRQb3N0RGF0YSAgICAgPSAkUGFyYW17UG9zdERhdGF9OwoKICAgICMgc2VuZCB0aGUgZGF0YSBmb3JtLWVuY29kZWQKICAgIG15ICRSZXF1ZXN0ID0gUE9TVCgKICAgICAgICAkRW5kcG9pbnQsCiAgICAgICAgJFBvc3REYXRhCiAgICApOwoKICAgIG15ICRMYW5ndWFnZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6TGFuZ3VhZ2UnKTsKCiAgICAjIGFkZCBjbGllbnRfaWQgYW5kIGNsaWVudF9zZWNyZXQgdG8gYXV0aGVudGljYXRlIHRoZSBjbGllbnQKICAgIGlmICggISRDbGllbnRJRCB8fCAhJENsaWVudFNlY3JldCApIHsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICBFcnJvciAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCdOZWVkIENsaWVudElEIGFuZCBDbGllbnRTZWNyZXQhJyksCiAgICAgICAgfTsKICAgIH0KCiAgICAkUmVxdWVzdC0+YXV0aG9yaXphdGlvbl9iYXNpYyggJENsaWVudElELCAkQ2xpZW50U2VjcmV0ICk7CgogICAgIyBleGVjdXRlIHJlcXVlc3QKICAgIG15ICRSZXNwb25zZSA9ICRVc2VyQWdlbnQtPnJlcXVlc3QoJFJlcXVlc3QpOwogICAgbXkgJENvbnRlbnQgID0gJFJlc3BvbnNlLT5jb250ZW50KCk7CgogICAgaWYgKCAhJENvbnRlbnQgKSB7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgRXJyb3IgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSggIkdvdCBubyBjb250ZW50IHdoZW4gcmVxdWVzdGluZyBUb2tlbi4gUmVzcG9uc2UgQ29kZTogJXMiLCAkUmVzcG9uc2UtPmNvZGUoKSApLAogICAgICAgIH07CiAgICB9CgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICBNZXNzYWdlICA9PiAiUmVjZWl2ZWQgQ29udGVudDogJENvbnRlbnQiLAogICAgKTsKCiAgICAjIGRlY29kZSBjb250ZW50CiAgICBteSAkRGVjb2RlZENvbnRlbnQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SlNPTicpLT5EZWNvZGUoCiAgICAgICAgRGF0YSA9PiAkQ29udGVudCwKICAgICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJERlY29kZWRDb250ZW50KSApIHsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICBFcnJvciAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAiR290IG5vIEpTT04gb2JqZWN0IHdoZW4gcmVxdWVzdGluZyBUb2tlbi4gUmVzcG9uc2U6ICVzIiwgJENvbnRlbnQgKSwKICAgICAgICB9OwogICAgfQoKICAgICMgZmV0Y2ggdGhlIGRlc2lyZWQgdG9rZW4gKGFjY2Vzc190b2tlbiAoZGVmYXVsdCkgb3IgaWRfdG9rZW4pCiAgICBpZiAoICREZWNvZGVkQ29udGVudC0+e2Vycm9yfSApIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgIEVycm9yICAgPT4gIkVycm9yOiAiIC4gJERlY29kZWRDb250ZW50LT57ZXJyb3J9IC4gIi4gRGVzY3JpcHRpb246ICIgLiAkRGVjb2RlZENvbnRlbnQtPntlcnJvcl9kZXNjcmlwdGlvbn0sCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICBDb250ZW50ID0+ICREZWNvZGVkQ29udGVudCwKICAgIH07Cn0KCjE7Cg==</File>
        <File Location="Kernel/System/OpenIDConnect/ProfileRepository.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6UHJvZmlsZVJlcG9zaXRvcnk7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgp1c2UgbmFtZXNwYWNlOjphdXRvY2xlYW47CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRCJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6WUFNTCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6UHJvZmlsZVJlcG9zaXRvcnkgLSBEQiBiYWNrZW5kIGZvciBPSURDIFByb2ZpbGVzIGZvciBJbnZva2VycyAob3V0Z29pbmcgY2FsbHMpCgo9aGVhZDEgU1lOT1BTSVMKClByb2ZpbGVzIERCIGFic3RyYWN0aW9uIGZvciBPcGVuSUQgQ29ubmVjdAoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJFByb2ZpbGVSZXBvc2l0b3J5T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlByb2ZpbGVSZXBvc2l0b3J5Jyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwoKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBHZXRMaXN0KCkKCnJldHVybiBhIExpc3Qgb2YgUHJvZmlsZXMKCj1mb3Igc3RvcHdvcmRzIG9wZW5pZCBUVEwgc3NsCgpteSAkQXJyYXlSZWYgPSAkUHJvZmlsZVJlcG9zaXRvcnlPYmplY3QtPkdldExpc3QoKTsKCnJldHVybnMKCm15ICRBcnJheVJlZiA9IFsKewogICBQcm9maWxlSUQgPT4gZGF0YWJhc2UgaWQsCiAgICBDbGllbnRTZXR0aW5ncyA9PiB7CiAgICAgIENsaWVudFNlY3JldCA9PiAnJywKICAgICAgQ2xpZW50SUQgPT4gJycsCiAgICAgIFJlZGlyZWN0VVJJID0+ICcnLAogICAgfSwKICAgIFByb3ZpZGVyU2V0dGluZ3MgPT4gewogICAgICAgT3BlbklEQ29uZmlndXJhdGlvbiA9PiAnaHR0cHM6Ly9rZXljbG9hazo4MDgwL2F1dGgvcmVhbG1zL015UmVhbG0vLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24nLAogICAgICAgVFRMICAgICAgICAgICAgICAgICA9PiA2MCAqIDMwLCAgICAgICMgb3B0aW9uYWw6IHRpbWUgcGVyaW9kIHRoZSBleHRyYWN0ZWQgb3BlbmlkLWNvbmZpZ3VyYXRpb24gaXMgY2FjaGVkCiAgICAgICBOYW1lICAgICAgICAgICAgICAgID0+ICdJbnRlcm40JywgICAgIyBvcHRpb25hbDogbmVjZXNzYXJ5IG9ubHkgaWYgb25lIG5lZWRzIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBVc2VyIGFuZCBDdXN0b21lclVzZXIgY29uZmlndXJhdGlvbiBlLmcuCiAgICAgICBTU0xPcHRpb25zICAgICAgICAgID0+IHsgICAgICAgICAgICAgIyBpZiBzcGVjaWFsIHNzbCBvcHRpb25zIGFyZSBuZWVkZWQ7IFNTTFZlcmlmeUhvc3RuYW1lID0+IDAgYW5kIFNTTFZlcmlmeU1vZGUgPT4gMCBhcmUgYWxzbyBwb3NzaWJsZSBidXQgc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgdGVzdGluZyBwdXJwb3NlcwogICAgICAgICAgIFNTTENlcnRpZmljYXRlID0+ICdTU0xfY2VydF9maWxlJywgICAgICMgY2xpZW50IGNlcnRpZmljYXRlCiAgICAgICAgICAgU1NMS2V5ICAgICAgICAgPT4gJ1NTTF9rZXlfZmlsZScsICAgICAgIyBjbGllbnQgY2VydCBrZXkKICAgICAgICAgICBTU0xQYXNzd29yZCAgICA9PiAnU1NMX3Bhc3N3ZF9jYicsICAgICAjIHBhc3N3b3JkIGZvciBjbGllbnQgY2VydCBrZXkKICAgICAgICAgICBTU0xDQUZpbGUgICAgICA9PiAnU1NMX2NhX2ZpbGUnLCAgICAgICAjIENBIGNlcnRpZmljYXRlCiAgICAgICAgICAgU1NMQ0FEaXIgICAgICAgPT4gJ1NTTF9jYV9wYXRoJywgICAgICAgIyBDQSBjZXJ0IGRpcmVjdG9yeQogICAgICAgICAgIFNTTFZlcmlmeUhvc3RuYW1lID0+IDAsCiAgICAgICAgICAgU1NMVmVyaWZ5TW9kZSA9PiAwCiAgICAgICB9CiAgICB9LAogICAgTWlzYyA9PiB7CiAgICAgICAgVXNlTm9uY2UgICA9PiAxLCAgICAgICMgYWRkIGEgbm9uY2UgdG8gcmVxdWVzdCBhbmQgdG9rZW4gKHRoaXMgaXMgcHJpbWFyaWx5IGltcG9ydGFudCBmb3IgdGhlIGltcGxpY2l0IGZsb3cgd2hlcmUgaXQgaXMgZW5hYmxlZCBieSBkZWZhdWx0KQogICAgICAgIFJhbmRMZW5ndGggPT4gMjIsICAgICAjIGxlbmd0aCBmb3Igc3RhdGUgYW5kIG5vbmNlIHJhbmRvbSBzdHJpbmdzIC0gZGVmYXVsdDogMjIKICAgICAgICBSYW5kVFRMICAgID0+IDYwICogNSwgIyB2YWxpZCB0aW1lIHBlcmlvZCBmb3Igc3RhdGUgYW5kIG5vbmNlIChyb3VnaGx5IHRoZSB0aW1lIGEgdXNlciBjYW4gdGFrZSB0byBhdXRoZW50aWNhdGUpIC0gZGVmYXVsdDogMzAwIHMKICAgICAgICBMZWV3YXkgICAgID0+IDIsICAgICAgIyBsZWV3YXkgZm9yIHNtYWxsIHRpbWUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgT1RPQk8gc2VydmVyIGFuZCB0aGUgT3BlbklEIHByb3ZpZGVyIC0gZGVmYXVsdDogMiBzCiAgICB9LAp9LAouLi4KXTsKCj1jdXQKCnN1YiBHZXRMaXN0IHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREQk9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CiAgICBteSAkWUFNTE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJyk7CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIGlkLCB2YWxpZF9pZCwgbmFtZSwgY2xpZW50X2lkLCBjbGllbnRfc2VjcmV0LAogICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0X3VyaSwgb3BlbmlkX2NvbmZpZywgdHRsLCBzc2xfb3B0aW9ucywgbWlzYwogICAgICAgICAgICAgICAgRlJPTSBvaWRjX3Byb2ZpbGVzICIsCiAgICApOwoKICAgIG15IEBSZXN1bHQ7CiAgICB3aGlsZSAoIG15ICggJElELCAkVmFsaWQsICROYW1lLCAkQ2xpZW50SUQsICRDbGllbnRTZWNyZXQsICRSZWRpcmVjdFVSSSwgJE9wZW5JRENvbmZpZywgJFRUTCwgJFNTTE9wdGlvbnMsICRNaXNjICkgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkgKSB7CgogICAgICAgIG15ICRJdGVtID0gewogICAgICAgICAgICBQcm9maWxlSUQgICAgICA9PiAkSUQsCiAgICAgICAgICAgIFZhbGlkICAgICAgICAgID0+ICRWYWxpZCwKICAgICAgICAgICAgQ2xpZW50U2V0dGluZ3MgPT4gewoKICAgICAgICAgICAgICAgIENsaWVudElEICAgICA9PiAkQ2xpZW50SUQsCiAgICAgICAgICAgICAgICBDbGllbnRTZWNyZXQgPT4gJENsaWVudFNlY3JldCwKICAgICAgICAgICAgICAgIFJlZGlyZWN0VVJJICA9PiAkUmVkaXJlY3RVUkksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFByb3ZpZGVyU2V0dGluZ3MgPT4gewogICAgICAgICAgICAgICAgT3BlbklEQ29uZmlndXJhdGlvbiA9PiAkT3BlbklEQ29uZmlnLAogICAgICAgICAgICAgICAgVFRMICAgICAgICAgICAgICAgICA9PiAkVFRMLAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICA9PiAkTmFtZSwKICAgICAgICAgICAgICAgIFNTTE9wdGlvbnMgICAgICAgICAgPT4gJFlBTUxPYmplY3QtPkxvYWQoIERhdGEgPT4gJFNTTE9wdGlvbnMgfHwge30gKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWlzYyA9PiAkWUFNTE9iamVjdC0+TG9hZCggRGF0YSA9PiAkTWlzYyB8fCB7fSApLAogICAgICAgIH07CgogICAgICAgIHB1c2ggQFJlc3VsdCwgJEl0ZW07CiAgICB9CgogICAgcmV0dXJuIFxAUmVzdWx0Owp9Cgo9aGVhZDIgR2V0UHJvZmlsZSgpCgogICAgUmV0dXJuIGFuIE9JREMgUHJvZmlsZSBmcm9tIERCIG55IE5hbWUgb3IgUHJvZmlsZUlECgogICAgbXkgJFByb2ZpbGUgPSAkUHJvZmlsZVJlcG9zaXRvcnlPYmplY3QtPkdldFByb2ZpbGUoIE5hbWUgPT4gJE5hbWUgKTsKCiAgICBvcgoKICAgIG15ICRQcm9maWxlID0gJFByb2ZpbGVSZXBvc2l0b3J5T2JqZWN0LT5HZXRQcm9maWxlKCBQcm9maWxlSUQgPT4gJElEICk7CgogICAgc2VlIEdldExpc3QoKSBhYm92ZSBmb3IgcmVzcG9uc2UgZm9ybWFudCAoc2luZ2xlIGVudGl0eSkuCgo9Y3V0CgpzdWIgR2V0UHJvZmlsZSB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTmFtZSAgICAgID0gJFBhcmFte05hbWV9OwogICAgbXkgJFByb2ZpbGVJRCA9ICRQYXJhbXtQcm9maWxlSUR9OwoKICAgIGlmICggJE5hbWUgJiYgJFByb2ZpbGVJRCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgZWl0aGVyIE5hbWUgb3IgUHJvZmlsZUlEIGJ1dCBnb3QgYm90aCEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAoICEkTmFtZSAmJiAhJFByb2ZpbGVJRCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgZWl0aGVyIE5hbWUgb3IgUHJvZmlsZUlEISIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICREQk9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CiAgICBteSAkWUFNTE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJyk7CgogICAgbXkgJFNRTCA9ICJTRUxFQ1QgaWQsIHZhbGlkX2lkLCBuYW1lLCBjbGllbnRfaWQsIGNsaWVudF9zZWNyZXQsIHJlZGlyZWN0X3VyaSwgb3BlbmlkX2NvbmZpZywgdHRsLCBzc2xfb3B0aW9ucywgbWlzYwogICAgICAgICAgICAgICAgRlJPTSBvaWRjX3Byb2ZpbGVzIFdIRVJFIDE9MSBBTkQgIjsKCiAgICBteSBAQmluZDsKCiAgICBpZiAoJE5hbWUpIHsKICAgICAgICAkU1FMIC49ICJuYW1lID0gPyAiOwogICAgICAgIHB1c2ggQEJpbmQsIFwkTmFtZTsKICAgIH0KICAgIGVsc2lmICgkUHJvZmlsZUlEKSB7CiAgICAgICAgJFNRTCAuPSAiaWQgPSA/ICI7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQcm9maWxlSUQ7CiAgICB9CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+IFxAQmluZCwKCiAgICAgICAgIyAgICAgICAgICAgIExpbWl0ID0+IDEKICAgICk7CgogICAgaWYgKCBteSAoICRJRCwgJFZhbGlkLCAkTmFtZSwgJENsaWVudElELCAkQ2xpZW50U2VjcmV0LCAkUmVkaXJlY3RVUkksICRPcGVuSURDb25maWcsICRUVEwsICRTU0xPcHRpb25zLCAkTWlzYyApID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5ICkgewoKICAgICAgICBteSAkSXRlbSA9IHsKICAgICAgICAgICAgUHJvZmlsZUlEICAgICAgPT4gJElELAogICAgICAgICAgICBWYWxpZCAgICAgICAgICA9PiAkVmFsaWQsCiAgICAgICAgICAgIENsaWVudFNldHRpbmdzID0+IHsKCiAgICAgICAgICAgICAgICBDbGllbnRJRCAgICAgPT4gJENsaWVudElELAogICAgICAgICAgICAgICAgQ2xpZW50U2VjcmV0ID0+ICRDbGllbnRTZWNyZXQsCiAgICAgICAgICAgICAgICBSZWRpcmVjdFVSSSAgPT4gJFJlZGlyZWN0VVJJLAogICAgICAgICAgICB9LAogICAgICAgICAgICBQcm92aWRlclNldHRpbmdzID0+IHsKICAgICAgICAgICAgICAgIE9wZW5JRENvbmZpZ3VyYXRpb24gPT4gJE9wZW5JRENvbmZpZywKICAgICAgICAgICAgICAgIFRUTCAgICAgICAgICAgICAgICAgPT4gJFRUTCwKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgPT4gJE5hbWUsCiAgICAgICAgICAgICAgICBTU0xPcHRpb25zICAgICAgICAgID0+ICRZQU1MT2JqZWN0LT5Mb2FkKCBEYXRhID0+ICRTU0xPcHRpb25zIHx8IHt9ICksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1pc2MgPT4gJFlBTUxPYmplY3QtPkxvYWQoIERhdGEgPT4gJE1pc2MgfHwge30gKSwKICAgICAgICB9OwoKICAgICAgICByZXR1cm4gJEl0ZW07CiAgICB9CgogICAgcmV0dXJuOwp9Cgo9aGVhZDIgRXhpc3RzKCkKCiAgICBDaGVja3Mgd2hldGhlciBhIG5hbWVkIE9JREMgUHJvZmlsZSBhbHJlYWR5IGV4aXN0cy4KCiAgICBteSAkRXhpc3RzID0gJFByb2ZpbGVSZXBvc2l0b3J5T2JqZWN0LT5FeGlzdHMoIE5hbWUgPT4gJE5hbWUgKTsKCj1jdXQKCnN1YiBFeGlzdHMgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3L05hbWUvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICROYW1lID0gJFBhcmFte05hbWV9OwoKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgID0+ICJTRUxFQ1QgaWQgRlJPTSBvaWRjX3Byb2ZpbGVzIFdIRVJFIG5hbWUgPSA/ICIsCiAgICAgICAgQmluZCA9PiBbIFwkTmFtZSBdLAoKICAgICAgICAjICAgICAgICAgICAgTGltaXQgPT4gMQogICAgKTsKCiAgICBpZiAoIG15ICgkSUQpID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5ICkgewogICAgICAgIHJldHVybiAkSUQ7CiAgICB9CgogICAgcmV0dXJuOwp9Cgo9aGVhZDIgQWRkUHJvZmlsZSgpCgogICAgSW5zZXJ0IGEgbmV3IE9JREMgUHJvZmlsZSByZWNvcmQgaW50byBEQi4KCiAgICBteSAkU3VjY2VzcyA9ICRQcm9maWxlUmVwb3NpdG9yeU9iamVjdC0+QWRkUHJvZmlsZSgKCiAgICAgICAgTmFtZSA9PiAnPFVuaXF1ZSBOYW1lPicsCiAgICAgICAgQ2xpZW50U2V0dGluZ3MgPT4gewogICAgICAgICAgICBDbGllbnRTZWNyZXQgPT4gJycsCiAgICAgICAgICAgIENsaWVudElEID0+ICcnLAogICAgICAgICAgICBSZWRpcmVjdFVSSSA9PiAnJywKICAgICAgICB9LAogICAgICAgIFByb3ZpZGVyU2V0dGluZ3MgPT4gewogICAgICAgICAgICBPcGVuSURDb25maWd1cmF0aW9uID0+ICdodHRwczovL2tleWNsb2FrOjgwODAvYXV0aC9yZWFsbXMvTXlSZWFsbS8ud2VsbC1rbm93bi9vcGVuaWQtY29uZmlndXJhdGlvbicsCiAgICAgICAgICAgIFRUTCAgICAgICAgICAgICAgICAgPT4gNjAgKiAzMCwgICAgICAjIG9wdGlvbmFsOiB0aW1lIHBlcmlvZCB0aGUgZXh0cmFjdGVkIG9wZW5pZC1jb25maWd1cmF0aW9uIGlzIGNhY2hlZAogICAgICAgICAgICBTU0xPcHRpb25zICAgICAgICAgID0+IHsgICAgICAgICAgICAgIyBpZiBzcGVjaWFsIHNzbCBvcHRpb25zIGFyZSBuZWVkZWQ7IFNTTFZlcmlmeUhvc3RuYW1lID0+IDAgYW5kIFNTTFZlcmlmeU1vZGUgPT4gMCBhcmUgYWxzbyBwb3NzaWJsZSBidXQgc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgdGVzdGluZyBwdXJwb3NlcwogICAgICAgICAgICAgICAgU1NMQ2VydGlmaWNhdGUgPT4gJ1NTTF9jZXJ0X2ZpbGUnLCAgICAgIyBjbGllbnQgY2VydGlmaWNhdGUKICAgICAgICAgICAgICAgIFNTTEtleSAgICAgICAgID0+ICdTU0xfa2V5X2ZpbGUnLCAgICAgICMgY2xpZW50IGNlcnQga2V5CiAgICAgICAgICAgICAgICBTU0xQYXNzd29yZCAgICA9PiAnU1NMX3Bhc3N3ZF9jYicsICAgICAjIHBhc3N3b3JkIGZvciBjbGllbnQgY2VydCBrZXkKICAgICAgICAgICAgICAgIFNTTENBRmlsZSAgICAgID0+ICdTU0xfY2FfZmlsZScsICAgICAgICMgQ0EgY2VydGlmaWNhdGUKICAgICAgICAgICAgICAgIFNTTENBRGlyICAgICAgID0+ICdTU0xfY2FfcGF0aCcsICAgICAgICMgQ0EgY2VydCBkaXJlY3RvcnkKICAgICAgICAgICAgICAgIFNTTFZlcmlmeUhvc3RuYW1lID0+IDAsCiAgICAgICAgICAgICAgICBTU0xWZXJpZnlNb2RlID0+IDAKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgTWlzYyA9PiB7CiAgICAgICAgICAgICAgICAgICAgVXNlTm9uY2UgICA9PiAxLCAgICAgICMgYWRkIGEgbm9uY2UgdG8gcmVxdWVzdCBhbmQgdG9rZW4gKHRoaXMgaXMgcHJpbWFyaWx5IGltcG9ydGFudCBmb3IgdGhlIGltcGxpY2l0IGZsb3cgd2hlcmUgaXQgaXMgZW5hYmxlZCBieSBkZWZhdWx0KQogICAgICAgICAgICAgICAgICAgIFJhbmRMZW5ndGggPT4gMjIsICAgICAjIGxlbmd0aCBmb3Igc3RhdGUgYW5kIG5vbmNlIHJhbmRvbSBzdHJpbmdzIC0gZGVmYXVsdDogMjIKICAgICAgICAgICAgICAgICAgICBSYW5kVFRMICAgID0+IDYwICogNSwgIyB2YWxpZCB0aW1lIHBlcmlvZCBmb3Igc3RhdGUgYW5kIG5vbmNlIChyb3VnaGx5IHRoZSB0aW1lIGEgdXNlciBjYW4gdGFrZSB0byBhdXRoZW50aWNhdGUpIC0gZGVmYXVsdDogMzAwIHMKICAgICAgICAgICAgICAgICAgICBMZWV3YXkgICAgID0+IDIsICAgICAgIyBsZWV3YXkgZm9yIHNtYWxsIHRpbWUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgT1RPQk8gc2VydmVyIGFuZCB0aGUgT3BlbklEIHByb3ZpZXIgLSBkZWZhdWx0OiAyIHMKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkVXNlcklECiAgICApOwoKPWN1dAoKc3ViIEFkZFByb2ZpbGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkREJPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwogICAgbXkgJFlBTUxPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6WUFNTCcpOwoKICAgIGZvciBteSAkTmVlZGVkIChxdy9OYW1lIENsaWVudFNldHRpbmdzIFByb3ZpZGVyU2V0dGluZ3MvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICROYW1lICAgPSAkUGFyYW17TmFtZX07CiAgICBteSAkVmFsaWQgID0gJFBhcmFte1ZhbGlkfTsKICAgIG15ICRVc2VySUQgPSAkUGFyYW17VXNlcklEfTsKCiAgICBteSAkQ2xpZW50U2V0dGluZ3MgICA9ICRQYXJhbXtDbGllbnRTZXR0aW5nc30gICAvLyB7fTsKICAgIG15ICRQcm92aWRlclNldHRpbmdzID0gJFBhcmFte1Byb3ZpZGVyU2V0dGluZ3N9IC8vIHt9OwoKICAgIG15ICRDbGllbnRJRCAgICAgPSAkQ2xpZW50U2V0dGluZ3MtPntDbGllbnRJRH07CiAgICBteSAkQ2xpZW50U2VjcmV0ID0gJENsaWVudFNldHRpbmdzLT57Q2xpZW50U2VjcmV0fTsKICAgIG15ICRSZWRpcmVjdFVSSSAgPSAkQ2xpZW50U2V0dGluZ3MtPntSZWRpcmVjdFVSSX0gLy8gJyc7CgogICAgbXkgJE9wZW5JRENvbmZpZ3VyYXRpb24gPSAkUHJvdmlkZXJTZXR0aW5ncy0+e09wZW5JRENvbmZpZ3VyYXRpb259OwogICAgbXkgJFRUTCAgICAgICAgICAgICAgICAgPSAkUHJvdmlkZXJTZXR0aW5ncy0+e1RUTH0gLy8gNjAgKiAzMDsKICAgIG15ICRTU0xPcHRpb25zICAgICAgICAgID0gJFlBTUxPYmplY3QtPkR1bXAoIERhdGEgPT4gJFByb3ZpZGVyU2V0dGluZ3MtPntTU0xPcHRpb25zfSAvLyB7fSApOwoKICAgIG15ICRNaXNjID0gJFlBTUxPYmplY3QtPkR1bXAoIERhdGEgPT4gJFBhcmFte01pc2N9IC8vIHt9ICk7CgogICAgbXkgJFNRTCA9ICJJTlNFUlQgSU5UTyBvaWRjX3Byb2ZpbGVzCiAgICAgICAgKCBuYW1lLCBjbGllbnRfaWQsIGNsaWVudF9zZWNyZXQsIHJlZGlyZWN0X3VyaSwgb3BlbmlkX2NvbmZpZywgdHRsLAogICAgICAgICAgc3NsX29wdGlvbnMsIG1pc2MsIHZhbGlkX2lkLCBjcmVhdGVfdGltZSwgY3JlYXRlX2J5LCBjaGFuZ2VfdGltZSwgY2hhbmdlX2J5ICkKICAgICAgICBWQUxVRVMgKD8sID8sID8sID8sID8sID8sID8sID8sID8sIGN1cnJlbnRfdGltZXN0YW1wLCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgPyApICI7CgogICAgbXkgJEluc2VydFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCROYW1lLCAgICAgICAgICAgICAgICBcJENsaWVudElELCBcJENsaWVudFNlY3JldCwgXCRSZWRpcmVjdFVSSSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWd1cmF0aW9uLCBcJFRUTCwgICAgICBcJFNTTE9wdGlvbnMsCiAgICAgICAgICAgIFwkTWlzYywgICAgICAgICAgICAgICAgXCRWYWxpZCwgICAgXCRVc2VySUQsIFwkVXNlcklELAogICAgICAgIF0sCiAgICApOwoKICAgIHJldHVybiAkSW5zZXJ0U3VjY2VzczsKfQoKPWhlYWQyIFVwZGF0ZVByb2ZpbGUoKQoKICAgIFVwZGF0ZSBhbiBleGlzdGluZyBPSURDIFByb2ZpbGUgcmVjb3JkIGluIERCLgoKICAgIG15ICRTdWNjZXNzID0gJFByb2ZpbGVSZXBvc2l0b3J5T2JqZWN0LT5VcGRhdGVQcm9maWxlKAoKICAgICAgICBOYW1lID0+ICc8VW5pcXVlIE5hbWU+JywKICAgICAgICBDbGllbnRTZXR0aW5ncyA9PiB7CiAgICAgICAgICAgIENsaWVudFNlY3JldCA9PiAnJywKICAgICAgICAgICAgQ2xpZW50SUQgPT4gJycsCiAgICAgICAgICAgIFJlZGlyZWN0VVJJID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgUHJvdmlkZXJTZXR0aW5ncyA9PiB7CiAgICAgICAgICAgIE9wZW5JRENvbmZpZ3VyYXRpb24gPT4gJ2h0dHBzOi8va2V5Y2xvYWs6ODA4MC9hdXRoL3JlYWxtcy9NeVJlYWxtLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uJywKICAgICAgICAgICAgVFRMICAgICAgICAgICAgICAgICA9PiA2MCAqIDMwLCAgICAgICMgb3B0aW9uYWw6IHRpbWUgcGVyaW9kIHRoZSBleHRyYWN0ZWQgb3BlbmlkLWNvbmZpZ3VyYXRpb24gaXMgY2FjaGVkCiAgICAgICAgICAgIFNTTE9wdGlvbnMgICAgICAgICAgPT4geyAgICAgICAgICAgICAjIGlmIHNwZWNpYWwgc3NsIG9wdGlvbnMgYXJlIG5lZWRlZDsgU1NMVmVyaWZ5SG9zdG5hbWUgPT4gMCBhbmQgU1NMVmVyaWZ5TW9kZSA9PiAwIGFyZSBhbHNvIHBvc3NpYmxlIGJ1dCBzaG91bGQgb25seSBiZSB1c2VkIGZvciB0ZXN0aW5nIHB1cnBvc2VzCiAgICAgICAgICAgICAgICBTU0xDZXJ0aWZpY2F0ZSA9PiAnU1NMX2NlcnRfZmlsZScsICAgICAjIGNsaWVudCBjZXJ0aWZpY2F0ZQogICAgICAgICAgICAgICAgU1NMS2V5ICAgICAgICAgPT4gJ1NTTF9rZXlfZmlsZScsICAgICAgIyBjbGllbnQgY2VydCBrZXkKICAgICAgICAgICAgICAgIFNTTFBhc3N3b3JkICAgID0+ICdTU0xfcGFzc3dkX2NiJywgICAgICMgcGFzc3dvcmQgZm9yIGNsaWVudCBjZXJ0IGtleQogICAgICAgICAgICAgICAgU1NMQ0FGaWxlICAgICAgPT4gJ1NTTF9jYV9maWxlJywgICAgICAgIyBDQSBjZXJ0aWZpY2F0ZQogICAgICAgICAgICAgICAgU1NMQ0FEaXIgICAgICAgPT4gJ1NTTF9jYV9wYXRoJywgICAgICAgIyBDQSBjZXJ0IGRpcmVjdG9yeQogICAgICAgICAgICAgICAgU1NMVmVyaWZ5SG9zdG5hbWUgPT4gMCwKICAgICAgICAgICAgICAgIFNTTFZlcmlmeU1vZGUgPT4gMAogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBNaXNjID0+IHsKICAgICAgICAgICAgICAgICAgICBVc2VOb25jZSAgID0+IDEsICAgICAgIyBhZGQgYSBub25jZSB0byByZXF1ZXN0IGFuZCB0b2tlbiAodGhpcyBpcyBwcmltYXJpbHkgaW1wb3J0YW50IGZvciB0aGUgaW1wbGljaXQgZmxvdyB3aGVyZSBpdCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQpCiAgICAgICAgICAgICAgICAgICAgUmFuZExlbmd0aCA9PiAyMiwgICAgICMgbGVuZ3RoIGZvciBzdGF0ZSBhbmQgbm9uY2UgcmFuZG9tIHN0cmluZ3MgLSBkZWZhdWx0OiAyMgogICAgICAgICAgICAgICAgICAgIFJhbmRUVEwgICAgPT4gNjAgKiA1LCAjIHZhbGlkIHRpbWUgcGVyaW9kIGZvciBzdGF0ZSBhbmQgbm9uY2UgKHJvdWdobHkgdGhlIHRpbWUgYSB1c2VyIGNhbiB0YWtlIHRvIGF1dGhlbnRpY2F0ZSkgLSBkZWZhdWx0OiAzMDAgcwogICAgICAgICAgICAgICAgICAgIExlZXdheSAgICAgPT4gMiwgICAgICAjIGxlZXdheSBmb3Igc21hbGwgdGltZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBPVE9CTyBzZXJ2ZXIgYW5kIHRoZSBPcGVuSUQgcHJvdmllciAtIGRlZmF1bHQ6IDIgcwogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRVc2VySUQKICAgICk7Cgo9Y3V0CgpzdWIgVXBkYXRlUHJvZmlsZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREQk9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CiAgICBteSAkWUFNTE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJyk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3L05hbWUgQ2xpZW50U2V0dGluZ3MgUHJvdmlkZXJTZXR0aW5ncy8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE5hbWUgICA9ICRQYXJhbXtOYW1lfTsKICAgIG15ICRWYWxpZCAgPSAkUGFyYW17VmFsaWR9OwogICAgbXkgJFVzZXJJRCA9ICRQYXJhbXtVc2VySUR9OwoKICAgIG15ICRDbGllbnRTZXR0aW5ncyAgID0gJFBhcmFte0NsaWVudFNldHRpbmdzfSAgIC8vIHt9OwogICAgbXkgJFByb3ZpZGVyU2V0dGluZ3MgPSAkUGFyYW17UHJvdmlkZXJTZXR0aW5nc30gLy8ge307CgogICAgbXkgJENsaWVudElEICAgICA9ICRDbGllbnRTZXR0aW5ncy0+e0NsaWVudElEfTsKICAgIG15ICRDbGllbnRTZWNyZXQgPSAkQ2xpZW50U2V0dGluZ3MtPntDbGllbnRTZWNyZXR9OwogICAgbXkgJFJlZGlyZWN0VVJJICA9ICRDbGllbnRTZXR0aW5ncy0+e1JlZGlyZWN0VVJJfSAvLyAnJzsKCiAgICBteSAkT3BlbklEQ29uZmlndXJhdGlvbiA9ICRQcm92aWRlclNldHRpbmdzLT57T3BlbklEQ29uZmlndXJhdGlvbn07CiAgICBteSAkVFRMICAgICAgICAgICAgICAgICA9ICRQcm92aWRlclNldHRpbmdzLT57VFRMfSAvLyA2MCAqIDMwOwogICAgbXkgJFNTTE9wdGlvbnMgICAgICAgICAgPSAkWUFNTE9iamVjdC0+RHVtcCggRGF0YSA9PiAkUHJvdmlkZXJTZXR0aW5ncy0+e1NTTE9wdGlvbnN9IC8vIHt9ICk7CgogICAgbXkgJE1pc2MgPSAkWUFNTE9iamVjdC0+RHVtcCggRGF0YSA9PiAkUGFyYW17TWlzY30gLy8ge30gKTsKCiAgICBteSAkU1FMID0gIlVQREFURSBvaWRjX3Byb2ZpbGVzIFNFVCBjbGllbnRfaWQgPSA/LCBjbGllbnRfc2VjcmV0ID0gPywgcmVkaXJlY3RfdXJpID0gPywgb3BlbmlkX2NvbmZpZyA9ID8sCiAgICAgICAgdHRsID0gPywgc3NsX29wdGlvbnMgPSA/LCBtaXNjID0gPywgdmFsaWRfaWQgPSA/LCBjaGFuZ2VfdGltZSA9IGN1cnJlbnRfdGltZXN0YW1wLCBjaGFuZ2VfYnkgPSA/CiAgICAgICAgV0hFUkUgbmFtZSA9ID8gIjsKCiAgICBteSAkVXBkYXRlU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJENsaWVudElELCAgICAgICAgICAgIFwkQ2xpZW50U2VjcmV0LCBcJFJlZGlyZWN0VVJJLAogICAgICAgICAgICBcJE9wZW5JRENvbmZpZ3VyYXRpb24sIFwkVFRMLCAgICAgICAgICBcJFNTTE9wdGlvbnMsCiAgICAgICAgICAgIFwkTWlzYywgICAgICAgICAgICAgICAgXCRWYWxpZCwgICAgICAgIFwkVXNlcklELCBcJE5hbWUKICAgICAgICBdLAogICAgKTsKCiAgICByZXR1cm4gJFVwZGF0ZVN1Y2Nlc3M7Cn0KCj1oZWFkMiBEZWxldGVQcm9maWxlKCkKCiAgICBSZW1vdmVzIGFuIG5hbWVkIE9JREMgUHJvZmlsZSByZWNvcmQgZnJvbSBEQi4KCiAgICBUaGlzIHdpbGwgZXJyb3Igb3V0IGVhcmx5IGlmIHRoZXJlIGFyZSBhbnkgcmVmZXJlbmNlcyB0byB0aGlzIFByb2ZpbGUKICAgIGZyb20gRnVuY3Rpb25hbCBBY2NvdW50cy4gVGhlIFByb2ZpbGUgd2lsbCAqbm90KiBiZSBkZWxldGVkIGluIHRoYXQgY2FzZS4KCiAgICBteSAkU3VjY2VzcyA9ICRQcm9maWxlUmVwb3NpdG9yeU9iamVjdC0+RGVsZXRlUHJvZmlsZSggTmFtZSA9PiAkTmFtZSApOwoKPWN1dAoKc3ViIERlbGV0ZVByb2ZpbGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvTmFtZS8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE5hbWUgPSAkUGFyYW17TmFtZX07CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIENPVU5UKG9wLmlkKQogICAgICAgICAgICAgICAgRlJPTSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgb2ZhCiAgICAgICAgICAgICAgICBMRUZUIEpPSU4gb2lkY19wcm9maWxlcyBvcAogICAgICAgICAgICAgICAgT04gb3AuaWQgPSBvZmEub2lkY19wcm9maWxlX2lkCiAgICAgICAgICAgICAgICBXSEVSRSBvcC5uYW1lID0gPyAiLAogICAgICAgIEJpbmQgPT4gWyBcJE5hbWUgXSwKICAgICk7CgogICAgbXkgKCRDT1VOVCkgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKTsKCiAgICBpZiAoICRDT1VOVCA+IDAgKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRTUUwgID0gIkRFTEVURSBGUk9NIG9pZGNfcHJvZmlsZXMgV0hFUkUgbmFtZSA9ID8gIjsKICAgIG15ICRCaW5kID0gWyBcJE5hbWUsIF07CgogICAgbXkgJERlbGV0ZVN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+ICRCaW5kLAogICAgKTsKCiAgICByZXR1cm4gJERlbGV0ZVN1Y2Nlc3M7Cn0KCjE7Cg==</File>
        <File Location="Kernel/System/OpenIDConnect/Token.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW47Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKCnVzZSBDcnlwdDo6SldUIHF3KGRlY29kZV9qd3QpOwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCnVzZSBuYW1lc3BhY2U6OmF1dG9jbGVhbjsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlbgoKSW5zcGVjdCBhbmQgVmFsaWRhdGUgT0F1dGgyIFRva2VucwoKPWhlYWQxIFNZTk9QU0lTCgpPQXV0aDIgVG9rZW5zIGZvciBPcGVuSUQgQ29ubmVjdAoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJFRva2VuT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIEluc3BlY3QoKQoKICAgIEluc3BlY3QgVG9rZW4gcGF5bG9hZCB3aXRob3V0IHZhbGlkYXRpbmcgdGhlIHNpZ25hdHVyZS4KCiAgICBteSAkVG9rZW5EYXRhID0gJFRva2VuT2JqZWN0LT5JbnNwZWN0KAogICAgICAgIFRva2VuID0+ICRUb2tlbiwKICAgICAgICBMZWV3YXkgPT4gJEFsbG93ZWRTZWNvbmRzVGltZURyaWZ0LCAgICAgICAjIG9wdGlvbmFsCiAgICApOwoKPWN1dAoKc3ViIEluc3BlY3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvVG9rZW4vKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRUb2tlbkRhdGE7CiAgICBldmFsIHsKICAgICAgICAkVG9rZW5EYXRhID0gZGVjb2RlX2p3dCgKICAgICAgICAgICAgdG9rZW4gICAgICAgICAgICA9PiAkUGFyYW17VG9rZW59LAogICAgICAgICAgICBpZ25vcmVfc2lnbmF0dXJlID0+IDEsCiAgICAgICAgICAgIGlnbm9yZV9jbGFpbXMgICAgPT4gMSwKICAgICAgICAgICAgbGVld2F5ICAgICAgICAgICA9PiAkUGFyYW17TGVld2F5fSAvLyAyLAogICAgICAgICk7CiAgICB9OwogICAgaWYgKCRAKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJEZWNvZGluZyBKV1QgZmFpbGVkOiAkQCIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHJldHVybiAkVG9rZW5EYXRhOwp9Cgo9aGVhZDIgc3ViIElzVG9rZW5TdGlsbFZhbGlkKCkKCiAgICBSZXR1cm4gdHJ1ZSBpZiBhIFRva2VuIGlzIHN0aWxsIHZhbGlkCgogICAgbXkgJEJvb2xlYW4gPSAkVG9rZW5PYmplY3QtPklzVG9rZW5TdGlsbFZhbGlkKCBUb2tlbiA9PiAkVG9rZW4gKTsKCj1jdXQKCnN1YiBJc1Rva2VuU3RpbGxWYWxpZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdy9Ub2tlbi8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE1pblRpbWVUaWxsRXhwaXJlZCA9ICRQYXJhbXtNaW5UaW1lVGlsbEV4cGlyZWR9IHx8IDMwOwogICAgbXkgJFRva2VuICAgICAgICAgICAgICA9ICRQYXJhbXtUb2tlbn07CgogICAgbXkgJFRpbWVMZWZ0ID0gJFNlbGYtPlRpbWVMZWZ0KAogICAgICAgIFRva2VuID0+ICRUb2tlbiwKICAgICk7CgogICAgaWYgKCAkVGltZUxlZnQgPiAkTWluVGltZVRpbGxFeHBpcmVkICkgewogICAgICAgIHJldHVybiAkVG9rZW4gaWYgJFRpbWVMZWZ0ID4gJE1pblRpbWVUaWxsRXhwaXJlZDsKICAgIH0KCiAgICByZXR1cm47Cn0KCj1oZWFkMiBUaW1lTGVmdCgpCgpSZXR1cm5zIHRoZSB0aW1lIGluIHNlY29uZHMgYSB0b2tlbiBpcyBzdGlsbCB2YWxpZAoKICAgIG15ICRUaW1lTGVmdCA9ICRUb2tlblByb3ZpZGVyT2JqZWN0LT5UaW1lTGVmdCgKICAgICAgICBUb2tlbiAgICAgICAgICA9PiAkVG9rZW4sCiAgICApOwoKPWN1dAoKc3ViIFRpbWVMZWZ0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3L1Rva2VuLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRUb2tlbkRhdGEgPSAkU2VsZi0+SW5zcGVjdCglUGFyYW0pOwogICAgaWYgKCAhJFRva2VuRGF0YSApIHsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBpZiAoICEkVG9rZW5EYXRhLT57ZXhwfSApIHsKICAgICAgICByZXR1cm4gNjAwOyAgICAjIG9mZmxpbmVfdG9rZW4gaGFzIG5vdCBleHBpcnkKICAgIH0KCiAgICAjIHRpbWUgd2luZG93CiAgICBteSAkQ3VycmVudFRpbWUgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKS0+VG9FcG9jaCgpOwoKICAgIHJldHVybiAkVG9rZW5EYXRhLT57ZXhwfSAtICRDdXJyZW50VGltZTsKfQoKPWhlYWQyIFZhbGlkYXRlKCkKCiAgICBWYWxpZGF0ZXMgYSBUb2tlbgoKICAgIG15ICRSZXN1bHQgPSAkVG9rZW5PYmplY3QtPlZhbGlkYXRlKAogICAgICAgIFRva2VuICAgICAgICAgICAgID0+ICRUb2tlbiwKICAgICAgICBPcGVuSURDb25maWcgICAgICA9PiAkT3BlbklEQ29uZmlnLAogICAgICAgIEV4cGVjdGVkU2NvcGVzICAgID0+IDxzcGFjZSBzZXBhcmF0ZWQgbGlzdD4sICMgb3B0aW9uYWwKICAgICAgICBFeHBlY3RlZEF1ZGllbmNlcyA9PiA8c3BhY2Ugc2VwYXJhdGVkIGxpc3Q+LCAjIG9wdGlvbmFsCiAgICAgICAgQXV0aG9yaXplZFBhcnR5ICAgPT4gJzxpZGVudGlmaWVyPicsICAgICAgICAgIyBvcHRpb25hbAogICAgKTsKCiAgICByZXR1cm5zCgogICAgeyBTdWNjZXNzID0+IDAsIEVycm9yID0+ICdtc2cnIH0KCiAgICBvcgoKICAgIHsgU3VjY2VzcyA9PiAxLCBUb2tlbkRhdGEgPT4gey4uLn0gfQoKPWN1dAoKc3ViIFZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFJldHVybiA9IHsgU3VjY2VzcyA9PiAwIH07CiAgICBmb3IgbXkgJE5lZWRlZCAocXcvVG9rZW4gT3BlbklEQ29uZmlnLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvciAgID0+ICJOZWVkICROZWVkZWQhIgogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICBteSAkT3BlbklEQ29uZmlnICAgICA9ICRQYXJhbXtPcGVuSURDb25maWd9OwogICAgbXkgJENsaWVudFNldHRpbmdzICAgPSAkT3BlbklEQ29uZmlnLT57Q2xpZW50U2V0dGluZ3N9OwogICAgbXkgJEV4cGVjdGVkQXVkaWVuY2UgPSAkUGFyYW17RXhwZWN0ZWRBdWRpZW5jZX07CiAgICBteSAkQXV0aG9yaXplZFBhcnR5ICA9ICRQYXJhbXtBdXRob3JpemVkUGFydHl9OwogICAgbXkgJEV4cGVjdGVkU2NvcGVzICAgPSAkUGFyYW17RXhwZWN0ZWRTY29wZXN9OwogICAgbXkgJExlZXdheSAgICAgICAgICAgPSAkUGFyYW17TGVld2F5fSAvLyAkT3BlbklEQ29uZmlnLT57TWlzY30tPntMZWV3YXl9IC8vIDI7CgogICAgbXkgJFRva2VuRGF0YSA9ICRTZWxmLT5EZWNvZGVUb2tlbigKICAgICAgICBUb2tlbiAgICAgICAgPT4gJFBhcmFte1Rva2VufSwKICAgICAgICBPcGVuSURDb25maWcgPT4gJE9wZW5JRENvbmZpZywKICAgICAgICBMZWV3YXkgICAgICAgPT4gJExlZXdheSwKICAgICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFRva2VuRGF0YSkgKSB7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgRXJyb3IgICA9PiAiRGVjb2RlIFRva2VuIGZhaWxlZCEuIgogICAgICAgIH07CiAgICB9CgogICAgZm9yIG15ICROZWVkZWQgKHF3L2lzcyBzdWIgYXVkIGV4cCBpYXQvKSB7CgogICAgICAgIGlmICggISRUb2tlbkRhdGEtPnskTmVlZGVkfSApIHsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvciAgID0+ICJUb2tlbiBpbnZhbGlkOiA8JE5lZWRlZD4gbm90IGluY2x1ZGVkLiIKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE9JRENDb25maWd1cmF0aW9uT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nKTsKICAgIG15ICRPcGVuSURQcm92aWRlckRhdGEgICAgICA9ICRPSURDQ29uZmlndXJhdGlvbk9iamVjdC0+R2V0UHJvdmlkZXJEYXRhKAogICAgICAgIE9wZW5JRENvbmZpZyA9PiAkT3BlbklEQ29uZmlnLAogICAgKTsKCiAgICBteSAkSXNzdWVyID0gJE9wZW5JRFByb3ZpZGVyRGF0YS0+e09wZW5JRENvbmZpZ3VyYXRpb259e2lzc3Vlcn07CgogICAgIyBkbyB0aGUgdmFsaWRhdGlvbgogICAgaWYgKCAkVG9rZW5EYXRhLT57aXNzfSBuZSAkSXNzdWVyICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgIEVycm9yICAgPT4gIjxpc3M+IHdyb25nLiBUb2tlbiBpcyBpc3N1ZWQgYnkgJyRUb2tlbkRhdGEtPntpc3N9JywgYnV0ICckSXNzdWVyJyBpcyByZXF1aXJlZC4iCiAgICAgICAgfTsKICAgIH0KCiAgICBteSBAQXVkaWVuY2UgPSByZWYgJFRva2VuRGF0YS0+e2F1ZH0gPyBAeyAkVG9rZW5EYXRhLT57YXVkfSB9IDogKCAkVG9rZW5EYXRhLT57YXVkfSApOwoKICAgIGlmICgkRXhwZWN0ZWRBdWRpZW5jZSkgewoKICAgICAgICBpZiAoICFncmVwIHsgJF8gPX4gbS8kRXhwZWN0ZWRBdWRpZW5jZS8gfSBAQXVkaWVuY2UgKSB7CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3IgICA9PiAiPGF1ZD4gd3JvbmcuIFRva2VuIGlzIGFkZHJlc3NlZCB0byAnQEF1ZGllbmNlJyB3aGljaCBkb2VzIG5vdCBjb250YWluICckRXhwZWN0ZWRBdWRpZW5jZScuIgogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoIHJlZiAkVG9rZW5EYXRhLT57YXVkfSAmJiAhJFRva2VuRGF0YS0+e2F6cH0gKSB7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgRXJyb3IgICA9PiAiPGF1ZD4gaXMgYW4gYXJyYXkgYnV0IDxhenA+IG5vdCBwcmVzZW50LiIKICAgICAgICB9OwogICAgfQoKICAgIGlmICggJEF1dGhvcml6ZWRQYXJ0eSAmJiAkVG9rZW5EYXRhLT57YXpwfSAmJiAkQXV0aG9yaXplZFBhcnR5ICF+ICRUb2tlbkRhdGEtPnthenB9ICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgIEVycm9yICAgPT4gIjxhenA+IHByZXNlbnQgYW5kIHdyb25nLiBBdXRob3JpemVkIHBhcnR5IGlzIHNwZWNpZmllZCBhcyAnJFRva2VuRGF0YS0+e2F6cH0nLCB3ZSBhcmUgJyRDbGllbnRTZXR0aW5ncy0+e0NsaWVudElEfScuIgogICAgICAgIH07CiAgICB9CgogICAgaWYgKCAkRXhwZWN0ZWRTY29wZXMgJiYgJFRva2VuRGF0YS0+e3Njb3BlfSApIHsKCiAgICAgICAgbXkgQFNjb3BlcyA9IHNwbGl0IC8gKy8sICRFeHBlY3RlZFNjb3BlczsKICAgICAgICBmb3IgbXkgJFNjb3BlIChAU2NvcGVzKSB7CiAgICAgICAgICAgIG15ICRSZWdleCA9IHFyL1xiJFNjb3BlXGIvOwogICAgICAgICAgICBpZiAoICRUb2tlbkRhdGEtPntzY29wZX0gIX4gLyRSZWdleC8gKSB7CgogICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgICAgICAgICAgRXJyb3IgICA9PiAiPHNjb3BlPiBpbnZhbGlkLiAnIiAuICRUb2tlbkRhdGEtPntzY29wZX0gLiAiJyBkb2VzIG5vdCBpbmNsdWRlICRTY29wZSIKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbXkgJEN1cnJlbnRUaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyktPlRvRXBvY2goKTsKICAgIGlmICggJFRva2VuRGF0YS0+e2lhdH0gLSAkTGVld2F5ID4gJEN1cnJlbnRUaW1lICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgIEVycm9yICAgPT4gIjxpYXQ+IGludmFsaWQuIFRva2VuIGNyZWF0aW9uIHRpbWUgaXMgaW4gdGhlIGZ1dHVyZS4gVG9rZW46ICRUb2tlbkRhdGEtPntpYXR9OyBDdXJyZW50OiAkQ3VycmVudFRpbWU7IgogICAgICAgIH07CiAgICB9CgogICAgaWYgKCAkVG9rZW5EYXRhLT57ZXhwfSArICRMZWV3YXkgPD0gJEN1cnJlbnRUaW1lICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgIEVycm9yICAgPT4gIjxleHA+IGludmFsaWQuIFRva2VuIGV4cGlyZWQuIEV4cGlyYXRpb24gVGltZTogJFRva2VuRGF0YS0+e2V4cH07IEN1cnJlbnQ6ICRDdXJyZW50VGltZTsiCiAgICAgICAgfTsKICAgIH0KCiAgICBpZiAoICRQYXJhbXtVc2VOb25jZX0gKSB7CiAgICAgICAgaWYgKCAhJFRva2VuRGF0YS0+e25vbmNlfSApIHsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvciAgID0+ICJObyBub25jZSBpbiBUb2tlbi4iCiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICBteSAkQ2FjaGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKICAgICAgICBteSAlTm9uY2UgICAgICAgPSAoCiAgICAgICAgICAgIFR5cGUgPT4gJ09wZW5JRENvbm5lY3RfTm9uY2UnLAogICAgICAgICAgICBLZXkgID0+ICRUb2tlbkRhdGEtPntub25jZX0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkQ2FjaGVPYmplY3QtPkdldCglTm9uY2UpICkgewogICAgICAgICAgICAkQ2FjaGVPYmplY3QtPkRlbGV0ZSglTm9uY2UpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvciAgID0+ICI8bm9uY2U+IGludmFsaWQuIgogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgICA9PiAxLAogICAgICAgIFRva2VuRGF0YSA9PiAkVG9rZW5EYXRhLAogICAgfTsKfQoKPWhlYWQyIERlY29kZVRva2VuKCkKClJldHVybnMgdGhlIGRlY29kZWQgdG9rZW4KCiAgICBteSAkVG9rZW5EYXRhID0gJFRva2VuT2JqZWN0LT5EZWNvZGVUb2tlbigKICAgICAgICBUb2tlbiAgICAgICAgICA9PiAkVG9rZW4sCiAgICAgICAgT3BlbklEQ29uZmlnICAgPT4gJE9wZW5JRENvbmZpZywKICAgICk7Cgo9Y3V0CgpzdWIgRGVjb2RlVG9rZW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvVG9rZW4gT3BlbklEQ29uZmlnLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRPSURDQ29uZmlndXJhdGlvbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpDb25maWd1cmF0aW9uJyk7CiAgICBteSAkTGVld2F5ICAgICAgICAgICAgICAgICAgPSAkUGFyYW17T3BlbklEQ29uZmlnfS0+e01pc2N9LT57TGVld2F5fSAvLyAyOwogICAgbXkgJE9wZW5JRFByb3ZpZGVyRGF0YSAgICAgID0gJE9JRENDb25maWd1cmF0aW9uT2JqZWN0LT5HZXRQcm92aWRlckRhdGEoCiAgICAgICAgT3BlbklEQ29uZmlnID0+ICRQYXJhbXtPcGVuSURDb25maWd9LAogICAgKTsKCiAgICAjIGdldCB0aGUgT3BlbklEQ29uZmlndXJhdGlvbiBhbmQgS2V5cwogICAgbXkgJFRyeSA9IDA7CgogICAgIyBkZWNvZGUgdGhlIHRva2VuOyByZXRyeSBvbmNlIGlmIGl0IGRvZXNuJ3Qgd29yayBmb3IgY2FjaGVkIGNvbmZpZwogICAgbXkgJFRva2VuRGF0YTsKICAgIHdoaWxlICggJFRyeSsrIDwgMiApIHsKICAgICAgICBteSAkRXJyb3I7CgogICAgICAgICMgZGVjb2RlIGlkX3Rva2VuLCBjaGVjayBrZXkKICAgICAgICBldmFsIHsKICAgICAgICAgICAgJFRva2VuRGF0YSA9IGRlY29kZV9qd3QoCiAgICAgICAgICAgICAgICB0b2tlbiAgICA9PiAkUGFyYW17VG9rZW59LAogICAgICAgICAgICAgICAga2lkX2tleXMgPT4gJE9wZW5JRFByb3ZpZGVyRGF0YS0+e0tleURhdGF9LAogICAgICAgICAgICAgICAgbGVld2F5ICAgPT4gJExlZXdheSwKICAgICAgICAgICAgKSAvLyB7fTsKICAgICAgICB9OwogICAgICAgIGlmICgkQCkgewogICAgICAgICAgICAkVG9rZW5EYXRhID0gdW5kZWY7CiAgICAgICAgICAgICRFcnJvciAgICAgPSAkQDsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgd2hldGhlciB0aGUgdG9rZW4gY291bGQgYmUgZGVjb2RlZCBhbmQgdGhlIGlzc3VlciBpcyBjb3JyZWN0IC0gaWYgbm90IHRoZSBjYWNoZWQgZGF0YSBtaWdodCBqdXN0IGJlIG91dGRhdGVkCiAgICAgICAgaWYgKCAkVG9rZW5EYXRhICYmICRUb2tlbkRhdGEtPntpc3N9ICYmICRUb2tlbkRhdGEtPntpc3N9IGVxICRPcGVuSURQcm92aWRlckRhdGEtPntPcGVuSURDb25maWd1cmF0aW9ufXtpc3N1ZXJ9ICkgewogICAgICAgICAgICAkVHJ5ID0gMTAwOwogICAgICAgIH0KCiAgICAgICAgIyByZW5ldyB0aGUgcHJvdmlkZXIgZGF0YSBvbmNlCiAgICAgICAgZWxzaWYgKCAkVHJ5IDwgMiApIHsKICAgICAgICAgICAgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRPSURDQ29uZmlndXJhdGlvbk9iamVjdC0+R2V0UHJvdmlkZXJEYXRhKAogICAgICAgICAgICAgICAgT3BlbklEQ29uZmlnID0+ICRQYXJhbXtPcGVuSURDb25maWd9LAogICAgICAgICAgICAgICAgTm9DYWNoZSAgICAgID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFRva2VuRGF0YSA9IHVuZGVmOwogICAgICAgICAgICAkRXJyb3IgLy89ICRUb2tlbkRhdGEtPntpc3N9CiAgICAgICAgICAgICAgICA/ICJXcm9uZyBpc3N1ZXIhICRUb2tlbkRhdGEtPntpc3N9IChUb2tlbik7ICRPcGVuSURQcm92aWRlckRhdGEtPntPcGVuSURDb25maWd1cmF0aW9ufXtpc3N1ZXJ9IChQcm92aWRlciBDb25maWcpOyIKICAgICAgICAgICAgICAgIDogJ1Vua25vd24gRXJyb3IuJzsKCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJEZWNvZGluZyBKV1QgZmFpbGVkOiAkQCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkVG9rZW5EYXRhOwp9CgoxOwo=</File>
        <File Location="Kernel/System/OpenIDConnect/TokenProvider.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5Qcm92aWRlcjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCnVzZSBuYW1lc3BhY2U6OmF1dG9jbGVhbjsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6Okxhbmd1YWdlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TWFpbicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkpTT04nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW4nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpPQXV0aDInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpDb25maWd1cmF0aW9uJywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5JywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRzJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5Qcm92aWRlciAtIG1ldGhvZHMgZm9yIE9wZW5JRENvbm5lY3Q6OlRva2VuUHJvdmlkZXIKCj1oZWFkMSBTWU5PUFNJUwoKSGlnaCBsZXZlbCBpbnRlcmZhY2UgZm9yIEludm9rZXIgYW5kIG91dGdvaW5nIGNhbGxzIHRvIGZldGNoIGEgdmFsaWQgYWNjZXNzX3Rva2VuCihvciBpZF90b2tlbikgdG8gcGFzcyBhbG9uZy4KCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRUb2tlblByb3ZpZGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuUHJvdmlkZXInKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgRmV0Y2goKQoKTWFpbiBpbnRlcmZhY2UgZm9yIGNsaWVudCBjb2RlLiBKdXN0IHVzZSBmZXRjaCB0byBnZXQgYSB2YWxpZCB0b2tlbiBmcm9tIGNhY2hlLCBmcm9tIERCLCB2aWEgcmVmcmVzaF90b2tlbiwKb3IgZnJvbSBzY3JhdGNoIGlmIGNyZWRlbnRpYWxzIGFyZSBrbm93biAobGlrZSBmb3IgcGFzc3dvcmQgYW5kIGNsaWVudF9jcmVkZW50aWFsIGdyYW50cykuCgpBY2NvdW50cyB1c2luZyBhaHRvcml6YXRpb25fY29kZSBncmFudCBtaWdodCBnZXQgdW5kZWYgYW5kIHRoZW4gaGF2ZSB0byBpbml0aWF0ZSBhIGJyb3dzZXIgYmFzZWQgZmxvdyByZWRpcmVjdGluZwp0aGUgY2xpZW50cyBicm93c2VyIHRvIHRoZSByZXN1bHQgZnJvbSBHZXRBdXRoVVJMKCkKCkZPciBub3cgb25seSBQcm92aWRlciBhbmQgSW52b2tlciAgYWNjb3VudHMgYXJlIGFsbG93ZWQuCgogICAgbXkgJFRva2VuUmVzdWx0ID0gJFRva2VuUHJvdmlkZXJPYmplY3QtPkZldGNoKAogICAgICAgIEFjY291bnROYW1lICA9PiAnPFNvbWVBY2NvdW50TmFtZT4nLAogICAgKTsKCiAgICB3aGVyZSBUb2tlblJlc3VsdDoKCiAgICBteSAkVG9rZW5SZXN1bHQgPSB7CiAgICAgICAgU3VjY2VzcyA9PiAwfDEsCiAgICAgICAgVG9rZW4gICA9PiA8dG9rZW4gdmFsdWUgb24gc3VjY2Vzcz4sCiAgICAgICAgRXJyb3IgICA9PiA8RXJyb3IgbXNnIG9uIGVycm9yPgogICAgfTsKPWN1dAoKc3ViIEZldGNoIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdy9BY2NvdW50TmFtZS8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvciAgID0+ICJJbnZhbGlkIFBhcmFtZXRlcnMiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICBteSAkQWNjb3VudE5hbWUgPSAkUGFyYW17QWNjb3VudE5hbWV9OwoKICAgIG15ICRMYW5ndWFnZU9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Okxhbmd1YWdlJyk7CiAgICBteSAkRnVuY3Rpb25hbEFjY291bnRzT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkZ1bmN0aW9uYWxBY2NvdW50cycpOwogICAgbXkgJFRva2VuT2JqZWN0ICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlbicpOwogICAgbXkgJEFjY291bnQgICAgICAgICAgICAgICAgICA9ICRGdW5jdGlvbmFsQWNjb3VudHNPYmplY3QtPkdldEFjY291bnQoIE5hbWUgPT4gJEFjY291bnROYW1lICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJEFjY291bnQpICkgewoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkludm9rZXIgQWNjb3VudE5hbWUgJEFjY291bnROYW1lIG5vdCBmb3VuZCEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgRXJyb3IgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSggIkFjY291bnROYW1lICVzIG5vdCBmb3VuZCEiLCAkQWNjb3VudE5hbWUgKSwKICAgICAgICB9OwogICAgfQoKICAgIG15ICRUb2tlblR5cGUgPSAkUGFyYW17VG9rZW5UeXBlfSB8fCAkQWNjb3VudC0+e1Rva2VuVHlwZX0gfHwgJ2FjY2Vzc190b2tlbic7CgogICAgIyAxKSB0cnkgZmV0Y2ggZnJvbSBDYWNoZQoKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgTWVzc2FnZSAgPT4gIlRyeSBmZXRjaCBPQXV0aDIgVG9rZW4gZnJvbSBDYWNoZSBmb3IgQWNjb3VudCAkQWNjb3VudE5hbWUiLAogICAgKTsKCiAgICBteSAkVG9rZW4gPSAkU2VsZi0+X0ZldGNoVG9rZW5Gcm9tQ2FjaGUoCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgIFRva2VuVHlwZSAgID0+ICRUb2tlblR5cGUsCiAgICApOwoKICAgIGlmICgkVG9rZW4pIHsKCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJGb3VuZCBPQXV0aDIgVG9rZW4gaW4gQ2FjaGUgZm9yIEFjY291bnQgJEFjY291bnROYW1lIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgICAgIFRva2VuICAgPT4gJFRva2VuLAogICAgICAgICAgICBPcmlnaW4gID0+ICdjYWNoZScsCiAgICAgICAgfTsKICAgIH0KCiAgICAjIDIpIHRyeSBmZXRjaCBmcm9tIERCCgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICBNZXNzYWdlICA9PiAiVHJ5IGZldGNoIE9BdXRoMiBUb2tlbiBmcm9tIERCIGZvciBBY2NvdW50ICRBY2NvdW50TmFtZSIsCiAgICApOwoKICAgIG15ICRUb2tlblJlcG9zaXRvcnkgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5Jyk7CgogICAgbXkgJFRva2VuRGF0YSA9ICRUb2tlblJlcG9zaXRvcnktPkdldFRva2VuKAogICAgICAgIEFjY291bnROYW1lID0+ICRBY2NvdW50TmFtZSwKICAgICAgICBUb2tlblR5cGUgICA9PiAkVG9rZW5UeXBlLAogICAgKTsKCiAgICBpZiAoICRUb2tlbkRhdGEgJiYgJFRva2VuRGF0YS0+e1Rva2VufSApIHsKCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJGb3VuZCBPQXV0aDIgVG9rZW4gaW4gREIgZm9yIEFjY291bnQgJEFjY291bnROYW1lIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgICAgIFRva2VuICAgPT4gJFRva2VuRGF0YS0+e1Rva2VufSwKICAgICAgICAgICAgT3JpZ2luICA9PiAnZGInLAogICAgICAgIH07CiAgICB9CgogICAgIyAzKSB0cnkgcmVmcmVzaF90b2tlbiwgaWYgYW55CgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICBNZXNzYWdlICA9PiAiVHJ5IGZldGNoIE9BdXRoMiBUb2tlbiB2aWEgcmVmcmVzaF90b2tlbiBmb3IgQWNjb3VudCAkQWNjb3VudE5hbWUiLAogICAgKTsKCiAgICBteSAkUmVmcmVzaFRva2VuID0gJFRva2VuUmVwb3NpdG9yeS0+R2V0VG9rZW4oCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgIFRva2VuVHlwZSAgID0+ICdyZWZyZXNoX3Rva2VuJywKICAgICk7CgogICAgaWYgKCAkUmVmcmVzaFRva2VuICYmICRSZWZyZXNoVG9rZW4tPntUb2tlbn0gKSB7CgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVHJhZGluZyBpbiByZWZyZXNoX3Rva2VuIGZvciBBY2NvdW50ICRBY2NvdW50TmFtZSIsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFJlc3VsdCA9ICRTZWxmLT5GZXRjaFRva2VuKAogICAgICAgICAgICBBY2NvdW50TmFtZSAgPT4gJEFjY291bnROYW1lLAogICAgICAgICAgICBUb2tlblR5cGUgICAgPT4gJFRva2VuVHlwZSwKICAgICAgICAgICAgUmVmcmVzaFRva2VuID0+ICRSZWZyZXNoVG9rZW4tPntUb2tlbn0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkUmVzdWx0LT57U3VjY2Vzc30gJiYgJFJlc3VsdC0+e1Rva2VufSApIHsKCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJHb3QgT0F1dGgyIFRva2VuIHZpYSByZWZyZXNoX3Rva2VuIGZvciBBY2NvdW50ICRBY2NvdW50TmFtZSIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgICAgICAgICAgICAgVG9rZW4gICA9PiAkUmVzdWx0LT57VG9rZW59LAogICAgICAgICAgICAgICAgT3JpZ2luICA9PiAncmVmcmVzaF90b2tlbicKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyA0KSBpZiBncmFudF90eXBlIGlzIG5vdCAnYXV0aG9yaXphdGlvbl9jb2RlJyB0cnkgZmV0Y2ggZnJlc2ggdG9rZW4KICAgICMgdXNpbmcgY29uZmlndXJlZCBjcmVkZW50aWFscwoKICAgIGlmICggJEFjY291bnQtPntHcmFudFR5cGV9IGVxICdhdXRob3JpemF0aW9uX2NvZGUnICkgewoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIHZhbGlkIHJlZnJlc2hfdG9rZW4gZm9yIEFjY291bnQgJEFjY291bnROYW1lIHVzaW5nIGdyYW50X3RweWUgJ2F1dGhvcml6YXRpb24gY29kZScgISIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICBFcnJvciAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAiTm8gdmFsaWQgcmVmcmVzaF90b2tlbiBmb3IgQWNjb3VudCAlcyB1c2luZyBncmFudF90cHllICdhdXRob3JpemF0aW9uIGNvZGUnICEiLCAkQWNjb3VudE5hbWUgKSwKICAgICAgICB9OwogICAgfQoKICAgIHJldHVybiAkU2VsZi0+RmV0Y2hUb2tlbigKICAgICAgICBBY2NvdW50TmFtZSA9PiAkQWNjb3VudE5hbWUsCiAgICAgICAgVG9rZW5UeXBlICAgPT4gJFRva2VuVHlwZSwKICAgICk7Cn0KCj1oZWFkMiBzdWIgRmV0Y2hUb2tlbigpCgogICAgQ2FsbGVkIGludGVybmFseSB3aGVuIHBhc3N3b3JkIG9yIGNsaWVudF9jcmVkZW50aWFsIGdyYW50IGFyZSBjb25maWd1cmVkLgogICAgQWxzbyBjYWxsZWQgaW50ZXJuYWx5IHdoZW4gcmVmcmVzaGluZyB2aWEgcmVmcmVzaF90b2tlbi4KCiAgICBDYWxsbGVkIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUgd2hlbiBjb21wbGV0aW5nIHRoZSBhdXRob3JpemF0aW9uX2NvZGUKICAgIGJyb3dzZXIgZmxvdywgcGFzc2luZyB0aGUgcmVjZWl2ZWQgQ29kZSBwYXJhbWV0ZXIuCgogICAgbXkgJFRva2VuUmVzdWx0ID0gJFRva2VuUHJvdmlkZXJPYmplY3QtPkZldGNoVG9rZW4oCiAgICAgICAgQWNjb3VudE5hbWUgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICApOwoKICAgIG9yCgogICAgbXkgJFRva2VuUmVzdWx0ID0gJFRva2VuUHJvdmlkZXJPYmplY3QtPkZldGNoVG9rZW4oCiAgICAgICAgQWNjb3VudE5hbWUgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICAgICAgUmVmcmVzaFRva2VuID0+ICRUb2tlbiwKICAgICk7CgogICAgb3IKCiAgICBteSAkVG9rZW5SZXN1bHQgPSAkVG9rZW5Qcm92aWRlck9iamVjdC0+RmV0Y2hUb2tlbigKICAgICAgICBBY2NvdW50TmFtZSAgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICAgICAgQ29kZSAgICAgICAgPT4gJzxhdXRob3JpemF0aW9uX2NvZGUgImNvZGUiIHF1ZXJ5IHBhcmFtZXRlciB2YWx1ZT4nLAogICAgICAgIFJlZGlyZWN0VVJMID0+ICRSZWRpcmVjdFVSTCwgIyByZWRpcmVjdCB1cmwgdXNlZCB3aGVuIGluaXRpYXRpbmcgdGhlIGJyb3dzZXIgZmxvdwogICAgKTsKCgogICAgd2hlcmUgVG9rZW5SZXN1bHQ6CgogICAgbXkgJFRva2VuUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMHwxLAogICAgICAgIFRva2VuICAgPT4gPHRva2VuIHZhbHVlIG9uIHN1Y2Nlc3M+LAogICAgICAgIEVycm9yICAgPT4gPEVycm9yIG1zZyBvbiBlcnJvcj4KICAgIH07Cgo9Y3V0CgpzdWIgRmV0Y2hUb2tlbiB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvQWNjb3VudE5hbWUvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3IgICA9PiAiSW52YWxpZCBQYXJhbWV0ZXJzICEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICBteSAkTGFuZ3VhZ2VPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpMYW5ndWFnZScpOwogICAgbXkgJFRva2VuT2JqZWN0ICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlbicpOwogICAgbXkgJEZ1bmN0aW9uYWxBY2NvdW50c09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpGdW5jdGlvbmFsQWNjb3VudHMnKTsKCiAgICAjIEZldGNoIGNvbmZpZyBkYXRhIGZyb20gYWNjb3VudAogICAgbXkgJEFjY291bnROYW1lID0gJFBhcmFte0FjY291bnROYW1lfTsKICAgIG15ICRBY2NvdW50ICAgICA9ICRGdW5jdGlvbmFsQWNjb3VudHNPYmplY3QtPkdldEFjY291bnQoIE5hbWUgPT4gJEFjY291bnROYW1lICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJEFjY291bnQpICkgewoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgZnVuY3Rpb25hbCBhY2NvdW50IEludm9rZXIgc2V0dGluZ3MgaW4gU3lzQ29uZmlnIGZvciAkQWNjb3VudE5hbWUuIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgIEVycm9yICAgPT4gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoICJOZWVkIGZ1bmN0aW9uYWwgYWNjb3VudCBJbnZva2VyIHNldHRpbmdzIGluIFN5c0NvbmZpZyBmb3IgJXMuIiwgJEFjY291bnROYW1lICksCiAgICAgICAgfTsKICAgIH0KCiAgICBteSAkVG9rZW5UeXBlID0gJEFjY291bnQtPntUb2tlblR5cGV9IHx8ICdhY2Nlc3NfdG9rZW4nOwoKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgTWVzc2FnZSAgPT4gIlJldHJpZXZlIE9BdXRoMiBUb2tlbiAkVG9rZW5UeXBlIGZvciBBY2NvdW50ICRBY2NvdW50TmFtZSIsCiAgICApOwoKICAgIG15ICRPcGVuSURDb25maWcgPSAkQWNjb3VudC0+e09JRENQcm9maWxlfTsKCiAgICAjIGZldGNoIHRoZSB0b2tlbgogICAgbXkgJFJlc3VsdCA9ICRTZWxmLT5GZXRjaFRva2VuRnJvbUNvbmZpZygKICAgICAgICBUb2tlblR5cGUgICAgICAgICA9PiAkVG9rZW5UeXBlLAogICAgICAgIE9wZW5JRENvbmZpZyAgICAgID0+ICRPcGVuSURDb25maWcsCiAgICAgICAgUmVzb3VyY2VQYXJhbU5hbWUgPT4gJEFjY291bnQtPntSZXNvdXJjZVBhcmFtTmFtZX0gfHwgJ3Jlc291cmNlJywKICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAkQWNjb3VudC0+e1Jlc291cmNlc30sCiAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJEFjY291bnQtPntTY29wZX0sCiAgICAgICAgR3JhbnRUeXBlICAgICAgICAgPT4gJEFjY291bnQtPntHcmFudFR5cGV9LAogICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRBY2NvdW50LT57VXNlcm5hbWV9LAogICAgICAgIFBhc3N3b3JkICAgICAgICAgID0+ICRBY2NvdW50LT57UGFzc3dvcmR9LAogICAgICAgIFJlZnJlc2hUb2tlbiAgICAgID0+ICRQYXJhbXtSZWZyZXNoVG9rZW59LAogICAgICAgIENvZGUgICAgICAgICAgICAgID0+ICRQYXJhbXtDb2RlfSwKICAgICAgICBSZWRpcmVjdFVSTCAgICAgICA9PiAkUGFyYW17UmVkaXJlY3RVUkx9LAogICAgKTsKCiAgICBpZiAoICEkUmVzdWx0LT57U3VjY2Vzc30gKSB7CgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRmFpbGVkIHRvIHRldHJpZXZlIE9BdXRoMiBUb2tlbiBmcm9tIFByb3ZpZGVyIGZvciBBY2NvdW50ICRBY2NvdW50TmFtZSIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRSZXN1bHQ7CiAgICB9CgogICAgbXkgJERlY29kZWRDb250ZW50ID0gJFJlc3VsdC0+e0RlY29kZWRDb250ZW50fTsKCiAgICBteSAkVG9rZW4gPSAkRGVjb2RlZENvbnRlbnQtPnskVG9rZW5UeXBlfTsKICAgIGlmICggISRUb2tlbiApIHsKCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJEaWQgbm90IHJlY2VpdmUgdGhlIGRlc2lyZWQgVG9rZW5UeXBlICckVG9rZW5UeXBlJyBpbiBwcm92aWRlciByZXNwb25zZSEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgRXJyb3IgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSggIkRpZCBub3QgcmVjZWl2ZSB0aGUgZGVzaXJlZCBUb2tlblR5cGUgJyVzJyBpbiBPSURDIHByb3ZpZGVyIHJlc3BvbnNlIGZvciBJbnZva2VyICVzISIsICRUb2tlblR5cGUsICRBY2NvdW50TmFtZSApLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayB0aW1lIGxlZnQKICAgIG15ICRUaW1lTGVmdCA9ICRUb2tlbk9iamVjdC0+VGltZUxlZnQoCiAgICAgICAgVG9rZW4gPT4gJFRva2VuLAogICAgKTsKCiAgICBpZiAoICEkVGltZUxlZnQgfHwgJFRpbWVMZWZ0IDwgMSApIHsKCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaW1lIGxlZnQgb24gZnJlc2ggdG9rZW4gaXM6ICRUaW1lTGVmdCBzISIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICBFcnJvciAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAiVGltZSBsZWZ0IG9uIGZyZXNoIHRva2VuIGlzOiAlcyBzIGZvciBJbnZva2VyICVzISIsICRUaW1lTGVmdCwgJEFjY291bnROYW1lICksCiAgICAgICAgfTsKICAgIH0KCiAgICAjIHByb2Nlc3MgYW5kIHBlcnNpc3QgdGhlIFRva2VucwogICAgaWYgKCAkRGVjb2RlZENvbnRlbnQtPntpZF90b2tlbn0gKSB7CgogICAgICAgIG15ICRSZXN1bHQgPSAkU2VsZi0+X1Byb2Nlc3NOZXdUb2tlbigKICAgICAgICAgICAgT3BlbklEQ29uZmlnID0+ICRPcGVuSURDb25maWcsCiAgICAgICAgICAgIEFjY291bnROYW1lICA9PiAkQWNjb3VudE5hbWUsCiAgICAgICAgICAgIEFjY291bnQgICAgICA9PiAkQWNjb3VudCwKICAgICAgICAgICAgVG9rZW5UeXBlICAgID0+ICdpZF90b2tlbicsCiAgICAgICAgICAgIFRva2VuICAgICAgICA9PiAkRGVjb2RlZENvbnRlbnQtPntpZF90b2tlbn0sCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICBFcnJvciAgID0+ICJDb3VsZCBub3QgcHJvY2VzcyB0b2tlbi4gUGxlYXNlIGNoZWNrIHRoZSBsb2dzLiIsCiAgICAgICAgfSBpZiAhJFJlc3VsdDsKICAgIH0KCiAgICBpZiAoICREZWNvZGVkQ29udGVudC0+e2FjY2Vzc190b2tlbn0gKSB7CgogICAgICAgICRTZWxmLT5fUHJvY2Vzc05ld1Rva2VuKAogICAgICAgICAgICBPcGVuSURDb25maWcgPT4gJE9wZW5JRENvbmZpZywKICAgICAgICAgICAgQWNjb3VudE5hbWUgID0+ICRBY2NvdW50TmFtZSwKICAgICAgICAgICAgQWNjb3VudCAgICAgID0+ICRBY2NvdW50LAogICAgICAgICAgICBUb2tlblR5cGUgICAgPT4gJ2FjY2Vzc190b2tlbicsCiAgICAgICAgICAgIFRva2VuICAgICAgICA9PiAkRGVjb2RlZENvbnRlbnQtPnthY2Nlc3NfdG9rZW59LAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkRGVjb2RlZENvbnRlbnQtPntyZWZyZXNoX3Rva2VufSApIHsKCiAgICAgICAgJFNlbGYtPl9Qcm9jZXNzTmV3VG9rZW4oCiAgICAgICAgICAgIE9wZW5JRENvbmZpZyA9PiAkT3BlbklEQ29uZmlnLAogICAgICAgICAgICBBY2NvdW50TmFtZSAgPT4gJEFjY291bnROYW1lLAogICAgICAgICAgICBBY2NvdW50ICAgICAgPT4gJEFjY291bnQsCiAgICAgICAgICAgIFRva2VuVHlwZSAgICA9PiAncmVmcmVzaF90b2tlbicsCiAgICAgICAgICAgIFRva2VuICAgICAgICA9PiAkRGVjb2RlZENvbnRlbnQtPntyZWZyZXNoX3Rva2VufSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiB7CiAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgICAgIFRva2VuICAgPT4gJFRva2VuLAogICAgICAgIE9yaWdpbiAgPT4gJ2ZyZXNoX3Rva2VuJywKICAgIH07Cn0KCj1oZWFkMiBzdWIgRmV0Y2hUb2tlbkZyb21Db25maWcoKQoKTG93IGxldmVsIEZldGNoVG9rZW4gaGVscGVyCgpUaGlzIGZldGNoZXMgdG9rZW4gb25seSBiYXNlZCBvbiBPcGVuSURDb25maWcgKyBQYXJhbWV0ZXJzLApubyBkZXBlbmRlbmN5IG9uIEZ1bmN0aW9uYWwgQWNjb3VudHMuCgpVc2VkIGludGVybmFsbHkgYnkgRmV0Y2hUb2tlbigpIGFib3ZlLCBidXQgYWxzbyBmcm9tCktlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpDb21tYW5kOjpBZG1pbjo6T0F1dGgyOjpJbXBvcnRVc2VyLnBtCgpyZXR1cm5zIHRoZSBKU09OIHJlc3BvbnNlIGRlY29kZWQgYXMgYSBQZXJsIGRhdGEgc3RydWN0dXJlLAphbnkgZnVydGhlciB2YWxpZGF0aW9uIGlzIHN1cHBvc2VkIHRvIGhhcHBlbiBieSB0aGUgY2FsbGVyLgoKCiAgICBteSAkUmVzdWx0ID0gJFRva2VuUHJvdmlkZXJPYmplY3QtPkZldGNoVG9rZW5Gcm9tQ29uZmlnKAoKICAgICAgICBPcGVuSURDb25maWcgICAgICA9PiAkT3BlbklEQ29uZmlnLCAjIGZyb20gU3lzU2V0dGluZwogICAgICAgIEdyYW50VHlwZSAgICAgICAgID0+ICdjbGllbnRfY3JlZGVudGlhbCcgfCAnYXV0aG9yaXphdGlvbl9jb2RlJyB8ICdwYXNzd29yZCcgfCAncmVmcmVzaF90b2tlbicKICAgICAgICBUb2tlblR5cGUgICAgICAgICA9PiAnYWNjZXNzX3Rva2VuJyB8ICdpZF90b2tlbicsCiAgICAgICAgUmVzb3VyY2VQYXJhbU5hbWUgPT4gJ3Jlc291cmNlJywgICAgICAgICAgICAgICAgICMgZGVmYXVsdHMKICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAnPHNwYWNlIHNlcGFyYXRlZCBsaXN0PicsCiAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJzxzcGFjZSBzZXBhcmF0ZWQgbGlzdD4nLAogICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICcnLAogICAgICAgIFBhc3N3b3JkICAgICAgICAgID0+ICcnLAogICAgICAgIFJlZnJlc2hUb2tlbiAgICAgID0+ICRSZWZyZXNoVG9rZW4sICMgb3B0aW9uYWwKICAgICAgICBDb2RlICAgICAgICAgICAgICA9PiAnPHRoZSBjb2RlIGZyb20gb2F1dGggY2FsbGJhY2s+JywKICAgICAgICBSZWRpcmVjdFVSTCAgICAgICA9PiAndGhlIHJlZGlyZWN0IHVybCB1c2VkIHdpdGggYXV0b3JpemF0aW9uIGVuZHBvaW50JywKICAgICk7CgogICAgd2l0aDoKCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICBEZWNvZGVkQ29udGVudCA9PiB7fSAjIEpTT04gcmVzdWx0IGZyb20gdG9rZW4gcmVxdWVzdCwgZGVjb2RlZCB0byBQZXJsCiAgICB9OwoKPWN1dAoKc3ViIEZldGNoVG9rZW5Gcm9tQ29uZmlnIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdy9PcGVuSURDb25maWcgR3JhbnRUeXBlLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yICAgPT4gIkludmFsaWQgUGFyYW1ldGVycyAhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJExhbmd1YWdlT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpMYW5ndWFnZScpOwogICAgbXkgJE9JRENDb25maWd1cmF0aW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nKTsKCiAgICBteSAkUmVzb3VyY2VQYXJhbU5hbWUgPSAkUGFyYW17UmVzb3VyY2VQYXJhbU5hbWV9IHx8ICdyZXNvdXJjZSc7CiAgICBteSAkT3BlbklEQ29uZmlnICAgICAgPSAkUGFyYW17T3BlbklEQ29uZmlnfTsKCiAgICBteSAkVG9rZW5FbmRwb2ludCA9ICRPSURDQ29uZmlndXJhdGlvbi0+R2V0VG9rZW5FbmRwb2ludCgKICAgICAgICBPcGVuSURDb25maWcgPT4gJE9wZW5JRENvbmZpZywKICAgICk7CiAgICBpZiAoICEkVG9rZW5FbmRwb2ludCApIHsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICBFcnJvciAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCJDb3VsZCBub3QgZ2V0IHRoZSBPQXV0aDIgdG9rZW5fZW5kcG9pbnQgZm9yIEludm9rZXIgIiksCiAgICAgICAgfTsKICAgIH0KCiAgICBteSAkT0F1dGgyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6Ok9BdXRoMicpOwoKICAgIHJldHVybiAkT0F1dGgyT2JqZWN0LT5SZXF1ZXN0VG9rZW4oCiAgICAgICAgVG9rZW5FbmRwb2ludCAgICAgPT4gJFRva2VuRW5kcG9pbnQsCiAgICAgICAgQ2xpZW50SUQgICAgICAgICAgPT4gJE9wZW5JRENvbmZpZy0+e0NsaWVudFNldHRpbmdzfXtDbGllbnRJRH0sCiAgICAgICAgQ2xpZW50U2VjcmV0ICAgICAgPT4gJE9wZW5JRENvbmZpZy0+e0NsaWVudFNldHRpbmdzfXtDbGllbnRTZWNyZXR9LAogICAgICAgIFNjb3BlICAgICAgICAgICAgID0+ICRQYXJhbXtTY29wZX0sCiAgICAgICAgUmVzb3VyY2VzICAgICAgICAgPT4gJFBhcmFte1Jlc291cmNlc30sCiAgICAgICAgUmVzb3VyY2VQYXJhbU5hbWUgPT4gJFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgIEdyYW50VHlwZSAgICAgICAgID0+ICRQYXJhbXtHcmFudFR5cGV9LAogICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRQYXJhbXtVc2VybmFtZX0sCiAgICAgICAgUGFzc3dvcmQgICAgICAgICAgPT4gJFBhcmFte1Bhc3N3b3JkfSwKICAgICAgICBSZWZyZXNoVG9rZW4gICAgICA9PiAkUGFyYW17UmVmcmVzaFRva2VufSwKICAgICAgICBDb2RlICAgICAgICAgICAgICA9PiAkUGFyYW17Q29kZX0sCiAgICAgICAgUmVkaXJlY3RVUkwgICAgICAgPT4gJFBhcmFte1JlZGlyZWN0VVJMfSwKICAgICAgICBTU0xPcHRpb25zICAgICAgICA9PiAkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc317U1NMT3B0aW9uc30sCiAgICApOwp9Cgo9aGVhZDIgR2V0QXV0aFVSTCgpCgpCdWlsZCB0aGUgVVJMIHRvIHJlcXVlc3QgYW4gYXV0aG9yaXphdGlvbiBjb2RlLgoKRXhhbXBsZToKICAgIG15ICRBdXRoVVJMID0gJFRva2VuUHJvdmlkZXJPYmplY3QtPkdldEF1dGhVUkwoCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJzxGdW5jdGlvbmFsQWNjb3VudE5hbWU+JywKICAgICAgICBSZWRpcmVjdFVSSSA9PiAnaHR0cHM6Ly95b3VyLm90b2JvLnVybC9vdG9iby9pbmRleC5wbD9BY3Rpb249QWRtaW5PQXV0aFRva2VuU3RvcmUmU3ViYWN0aW9uPU9BdXRoJywKICAgICAgICBOb25jZSA9PiAkTm9uY2UsICMgb3B0aW9uYWwKICAgICAgICBTdGF0ZSA9PiAkU3RhdGUsICMgb3B0aW9uYWwsIHVzZXMgdGhpcyBzdGF0ZSBpbnN0ZWFkIG9mIHJhbmRvbSBzdHJpbmcgKGZvciB0ZXN0aW5nKQogICAgKTsKClJldHVybnM6CiAgICAkQXV0aFVSTCA9IGh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS9jb21tb24vb2F1dGgyL3YyLjAvYXV0aG9yaXplP2NsaWVudF9pZD0wNzdkMjA1OS0yMTkuLi4KCj1jdXQKCnN1YiBHZXRBdXRoVVJMIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3L0FjY291bnROYW1lLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkQWNjb3VudE5hbWUgPSAkUGFyYW17QWNjb3VudE5hbWV9OwoKICAgIG15ICRGdW5jdGlvbmFsQWNjb3VudHNPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRzJyk7CiAgICBteSAkQWNjb3VudCAgICAgICAgICAgICAgICAgID0gJEZ1bmN0aW9uYWxBY2NvdW50c09iamVjdC0+R2V0QWNjb3VudCggTmFtZSA9PiAkQWNjb3VudE5hbWUgKTsKCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkQWNjb3VudCkgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIGZ1bmN0aW9uYWwgYWNjb3VudCBJbnZva2VyIHNldHRpbmdzIGluIFN5c0NvbmZpZy4nLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkUmVzb3VyY2VQYXJhbU5hbWUgPSAkQWNjb3VudC0+e1Jlc291cmNlUGFyYW1OYW1lfSB8fCAncmVzb3VyY2UnOwogICAgbXkgJE9wZW5JRENvbmZpZyAgICAgID0gJEFjY291bnQtPntPSURDUHJvZmlsZX07CiAgICBteSAkVXNlTm9uY2UgICAgICAgICAgPSAkUGFyYW17Tm9uY2V9IC8vICRPcGVuSURDb25maWctPntNaXNjfS0+e1VzZU5vbmNlfTsKCiAgICBteSAkQXV0aEVuZHBvaW50ID0gJEZ1bmN0aW9uYWxBY2NvdW50c09iamVjdC0+R2V0QXV0aG9yaXphdGlvbkVuZHBvaW50KAogICAgICAgIE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgKTsKCiAgICBteSAkT0F1dGgyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6Ok9BdXRoMicpOwoKICAgIHJldHVybiAkT0F1dGgyT2JqZWN0LT5HZXRBdXRoVVJMKAogICAgICAgICVQYXJhbSwKICAgICAgICBBdXRob3JpemF0aW9uRW5kcG9pbnQgPT4gJEF1dGhFbmRwb2ludCwKICAgICAgICBDbGllbnRJRCAgICAgICAgICAgICAgPT4gJE9wZW5JRENvbmZpZy0+e0NsaWVudFNldHRpbmdzfXtDbGllbnRJRH0sCiAgICAgICAgUmVzcG9uc2VUeXBlICAgICAgICAgID0+ICdjb2RlJywKICAgICAgICBTY29wZSAgICAgICAgICAgICAgICAgPT4gJEFjY291bnQtPntTY29wZX0sCiAgICAgICAgUmVzb3VyY2VzICAgICAgICAgICAgID0+ICRBY2NvdW50LT57UmVzb3VyY2VzfSwKICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSAgICAgPT4gJFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgIExvZ2luICAgICAgICAgICAgICAgICA9PiAkUGFyYW17TG9naW59LAogICAgICAgIFByb21wdCAgICAgICAgICAgICAgICA9PiAkUGFyYW17UHJvbXB0fSwKICAgICAgICBOb25jZSAgICAgICAgICAgICAgICAgPT4gJFVzZU5vbmNlLAogICAgICAgIFJhbmRMZW5ndGggICAgICAgICAgICA9PiAkT3BlbklEQ29uZmlnLT57TWlzY30tPntSYW5kTGVuZ3RofSwKICAgICAgICBSYW5kVFRMICAgICAgICAgICAgICAgPT4gJE9wZW5JRENvbmZpZy0+e01pc2N9LT57UmFuZFRUTH0sCiAgICAgICAgUmVkaXJlY3RVUkwgICAgICAgICAgID0+ICRQYXJhbXtSZWRpcmVjdFVSSX0sCiAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtTdGF0ZX0sCiAgICApOwp9Cgo9aGVhZDIgRW1wdHlDYWNoZSgpCgpFbXB0eSBjYWNoZWQgdG9rZW5zIGFuZCBwcm92aWRlciBkYXRhIGluIGNhc2Ugb2YgcmUtY29uZmlndXJhdGlvbgoKRXhhbXBsZToKICAgICRUb2tlblByb3ZpZGVyT2JqZWN0LT5FbXB0eUNhY2hlKAogICAgICAgIEFjY291bnROYW1lICAgPT4gJzxGdW5jdGlvbmFsQWNjb3VudE5hbWU+JywKICAgICk7CgoKPWN1dAoKc3ViIEVtcHR5Q2FjaGUgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3L0FjY291bnROYW1lLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkQWNjb3VudE5hbWUgPSAkUGFyYW17QWNjb3VudE5hbWV9OwoKICAgIG15ICRDYWNoZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwoKICAgIGZvciBteSAkVG9rZW5UeXBlIChxdy9hY2Nlc3NfdG9rZW4gaWRfdG9rZW4gcmVmcmVzaF90b2tlbi8pIHsKCiAgICAgICAgbXkgJENhY2hlVHlwZSA9ICJUb2tlblByb3ZpZGVyIjsKICAgICAgICBteSAkQ2FjaGVLZXkgID0gam9pbiggJywnLCAnSW52b2tlcicsICRBY2NvdW50TmFtZSwgJFRva2VuVHlwZSApOwoKICAgICAgICBteSAkVG9rZW4gPSAkQ2FjaGVPYmplY3QtPkRlbGV0ZSgKICAgICAgICAgICAgVHlwZSA9PiAkQ2FjaGVUeXBlLAogICAgICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICAgICApOwogICAgfQoKICAgICMgY2xlYXIgcHJvdmlkZXIgZGF0YSBjYWNoZSBhcyB3ZWxsCiAgICBteSAkRnVuY3Rpb25hbEFjY291bnRzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkZ1bmN0aW9uYWxBY2NvdW50cycpOwogICAgJEZ1bmN0aW9uYWxBY2NvdW50cy0+Q2xlYXJDYWNoZSgKICAgICAgICBOYW1lID0+ICRBY2NvdW50TmFtZSwKICAgICk7CgogICAgcmV0dXJuOwp9CgojIGhlbHBlcnMKCnN1YiBfRmV0Y2hUb2tlbkZyb21DYWNoZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdy9BY2NvdW50TmFtZSBUb2tlblR5cGUvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRBY2NvdW50TmFtZSA9ICRQYXJhbXtBY2NvdW50TmFtZX07CiAgICBteSAkVG9rZW5UeXBlICAgPSAkUGFyYW17VG9rZW5UeXBlfTsKCiAgICBteSAkQ2FjaGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKCiAgICBteSAkQ2FjaGVUeXBlID0gIlRva2VuUHJvdmlkZXIiOwogICAgbXkgJENhY2hlS2V5ICA9IGpvaW4oICcsJywgJ0ludm9rZXInLCAkQWNjb3VudE5hbWUsICRUb2tlblR5cGUgKTsKCiAgICBteSAkVG9rZW4gPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICBUeXBlID0+ICRDYWNoZVR5cGUsCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICApOwoKICAgIGlmICggISRUb2tlbiApIHsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJFRva2VuT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJyk7CiAgICBpZiAoICRUb2tlbk9iamVjdC0+SXNUb2tlblN0aWxsVmFsaWQoIFRva2VuID0+ICRUb2tlbiApICkgewoKICAgICAgICByZXR1cm4gJFRva2VuOwogICAgfQoKICAgICRDYWNoZU9iamVjdC0+RGVsZXRlKAogICAgICAgIFR5cGUgPT4gJENhY2hlVHlwZSwKICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICk7CgogICAgcmV0dXJuOwp9CgpzdWIgX1BvcHVsYXRlQ2FjaGUgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3L0FjY291bnROYW1lIFRva2VuVHlwZSBUb2tlbi8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJEFjY291bnROYW1lID0gJFBhcmFte0FjY291bnROYW1lfTsKICAgIG15ICRUb2tlblR5cGUgICA9ICRQYXJhbXtUb2tlblR5cGV9OwogICAgbXkgJFRva2VuICAgICAgID0gJFBhcmFte1Rva2VufTsKICAgIG15ICRFeHBpcmVzQXQgICA9ICRQYXJhbXtFeHBpcmVzQXR9IHx8IDYwMDsgICAgIyAxMCBtaW5zCgogICAgbXkgJENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CiAgICBteSAkVG9rZW5PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW4nKTsKCiAgICBteSAkQ2FjaGVUeXBlID0gIlRva2VuUHJvdmlkZXIiOwogICAgbXkgJENhY2hlS2V5ICA9IGpvaW4oICcsJywgJ0ludm9rZXInLCAkQWNjb3VudE5hbWUsICRUb2tlblR5cGUgKTsKCiAgICAjIGNoZWNrIHRpbWUgbGVmdAogICAgbXkgJFRpbWVMZWZ0ID0gJFRva2VuT2JqZWN0LT5UaW1lTGVmdCgKICAgICAgICBUb2tlbiA9PiAkVG9rZW4sCiAgICApOwoKICAgIGlmICggISRUaW1lTGVmdCB8fCAkVGltZUxlZnQgPCAxICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVGltZSBsZWZ0IG9uIGZyZXNoIHRva2VuIGlzOiAkVGltZUxlZnQgcyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICRDYWNoZU9iamVjdC0+U2V0KAogICAgICAgIFR5cGUgID0+ICRDYWNoZVR5cGUsCiAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgIFZhbHVlID0+ICRUb2tlbiwKICAgICAgICBUVEwgICA9PiAkVGltZUxlZnQsCiAgICApOwoKICAgIHJldHVybiAkVG9rZW47Cn0KCnN1YiBfUHJvY2Vzc05ld1Rva2VuIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRBY2NvdW50ICAgICAgPSAkUGFyYW17QWNjb3VudH07CiAgICBteSAkQWNjb3VudE5hbWUgID0gJFBhcmFte0FjY291bnROYW1lfTsKICAgIG15ICRPcGVuSURDb25maWcgPSAkUGFyYW17T3BlbklEQ29uZmlnfTsKICAgIG15ICRUb2tlblR5cGUgICAgPSAkUGFyYW17VG9rZW5UeXBlfTsKICAgIG15ICRUb2tlbiAgICAgICAgPSAkUGFyYW17VG9rZW59OwoKICAgIG15ICRUb2tlbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlbicpOwoKICAgIG15ICRUb2tlbkRhdGE7CgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICBNZXNzYWdlICA9PiAiUHJvY2VzcyBuZXcgT0F1dGgyIFRva2VuICRUb2tlblR5cGUgZm9yIEFjY291bnQgJEFjY291bnROYW1lIiwKICAgICk7CgogICAgaWYgKCAkVG9rZW5UeXBlIGVxICdyZWZyZXNoX3Rva2VuJyApIHsKCiAgICAgICAgIyBza2lwCiAgICB9CiAgICBlbHNpZiAoICRUb2tlblR5cGUgZXEgJ2FjY2Vzc190b2tlbicgKSB7CgogICAgICAgICRUb2tlbkRhdGEgPSAkVG9rZW5PYmplY3QtPkluc3BlY3QoCiAgICAgICAgICAgIFRva2VuICA9PiAkVG9rZW4sCiAgICAgICAgICAgIExlZXdheSA9PiAkQWNjb3VudC0+e01pc2N9LT57TGVld2F5fQogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgbXkgJFJlc3VsdCA9ICRUb2tlbk9iamVjdC0+VmFsaWRhdGUoCiAgICAgICAgICAgIFRva2VuICAgICAgICAgICAgPT4gJFRva2VuLAogICAgICAgICAgICBPcGVuSURDb25maWcgICAgID0+ICRPcGVuSURDb25maWcsCiAgICAgICAgICAgIEV4cGVjdGVkQXVkaWVuY2UgPT4gJFRva2VuVHlwZSBlcSAnaWRfdG9rZW4nID8gJE9wZW5JRENvbmZpZy0+e0NsaWVudFNldHRpbmdzfS0+e0NsaWVudElEfSA6IHVuZGVmLAogICAgICAgICAgICBBdXRob3JpemVkUGFydHkgID0+ICRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRJRH0sCiAgICAgICAgICAgIEV4cGVjdGVkU2NvcGVzICAgPT4gJEFjY291bnQtPntTY29wZX0sCiAgICAgICAgICAgIExlZXdheSAgICAgICAgICAgPT4gJEFjY291bnQtPntNaXNjfS0+e0xlZXdheX0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkUmVzdWx0LT57U3VjY2Vzc30gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJWYWxpZGF0ZWQgSURUb2tlbiBmb3IgQWNjb3VudCAkQWNjb3VudE5hbWUuIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG15ICRNZXNzYWdlID0gIkludmFsaWQgSURUb2tlbiBmb3IgQWNjb3VudCAkQWNjb3VudE5hbWUhIjsKCiAgICAgICAgICAgIGlmICggJFJlc3VsdC0+e0Vycm9yfSApIHsKICAgICAgICAgICAgICAgICRNZXNzYWdlIC49ICcgJyAuICRSZXN1bHQtPntFcnJvcn07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ25vdGljZScsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAkTWVzc2FnZSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiB1bmxlc3MgJFJlc3VsdC0+e1N1Y2Nlc3N9OwoKICAgICAgICAkVG9rZW5EYXRhID0gJFJlc3VsdC0+e1Rva2VuRGF0YX07CiAgICB9CgogICAgbXkgJEV4cGlyZXNBdCA9ICRUb2tlbkRhdGEtPntleHB9OwoKICAgIG15ICRUb2tlblJlcG9zaXRvcnkgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5Jyk7CgogICAgbXkgJFN1Y2Nlc3MgPSAkVG9rZW5SZXBvc2l0b3J5LT5TYXZlVG9rZW4oCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgIEFjY291bnRJRCAgID0+ICRBY2NvdW50LT57QWNjb3VudElEfSwKICAgICAgICBUb2tlblR5cGUgICA9PiAkVG9rZW5UeXBlLAogICAgICAgIFRva2VuICAgICAgID0+ICRUb2tlbiwKICAgICAgICBFeHBpcmVzQXQgICA9PiAkRXhwaXJlc0F0LAogICAgKTsKCiAgICByZXR1cm4gdW5sZXNzICRTdWNjZXNzOwoKICAgIGlmICggJFRva2VuVHlwZSBuZSAncmVmcmVzaF90b2tlbicgKSB7CiAgICAgICAgJFNlbGYtPl9Qb3B1bGF0ZUNhY2hlKAogICAgICAgICAgICBBY2NvdW50TmFtZSA9PiAkQWNjb3VudE5hbWUsCiAgICAgICAgICAgIFRva2VuVHlwZSAgID0+ICRUb2tlblR5cGUsCiAgICAgICAgICAgIFRva2VuICAgICAgID0+ICRUb2tlbiwKICAgICAgICAgICAgRXhwaXJlc0F0ICAgPT4gJEV4cGlyZXNBdCwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Location="Kernel/System/OpenIDConnect/TokenRepository.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBjb3JlIG1vZHVsZXMKCiMgQ1BBTiBtb2R1bGVzCgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKdXNlIG5hbWVzcGFjZTo6YXV0b2NsZWFuOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW4nLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblJlcG9zaXRvcnkgLSBEQiBiYWNrZW5kIGZvciBUb2tlblN0b3JhZ2UKCj1oZWFkMSBTWU5PUFNJUwoKRnVuY3Rpb25hbCBhY2NvdW50IGZ1bmN0aW9ucyBmb3IgT3BlbklEIENvbm5lY3QKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRUb2tlblJlcG9zaXRvcnlPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5Jyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwoKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBTYXZlVG9rZW4oKQoKICAgIFBlcnNpc3QgYSBUb2tlbiBpbiBEQgoKICAgIG15ICRTdWNjZXNzID0gJFRva2VuUmVwb3NpdG9yeU9iamVjdC0+U2F2ZVRva2VuKAogICAgICAgIEFjY291bnRJRCAgPT4gPEZ1bmN0aW9uYWxBY2NvdW50SUQ+LCAgICAjIEZ1bmN0aW9uYWxBY2NvdW50IGlkCiAgICAgICAgVG9rZW5UeXBlICA9PiAncmVmcmVzaCcsICAgICAgICAgICAgICAgICMgYWNjZXNzX3Rva2VufGlkX3Rva2VufHJlZnJlc2hfdG9rZW4KICAgICAgICBUb2tlbiAgICAgID0+ICc8VG9rZW4+JywgICAgICAgICAgICAgICAgIyBhcyByZWNlaXZlZCBmcm9tIHRva2VuIGVuZHBvaW50CiAgICAgICAgRXhwaXJlc0F0ICA9PiAnPHNlY29uZHMgZXBvY2g+JywgICAgICAgICMgZXhwaXJlcyBhdCBVTklYIGVwb2NoIHRpbWVzdGFtcC4gY2FuIGJlIG51bGwgZm9yIG9mZmxpbmVfYWNjZXNzIHRva2VucwogICAgKTsKCj1jdXQKCnN1YiBTYXZlVG9rZW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvQWNjb3VudElEIFRva2VuVHlwZSBUb2tlbi8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgJFNlbGYtPkRlbGV0ZVRva2VuKCVQYXJhbSk7CgogICAgbXkgJEFjY291bnRJRCA9ICRQYXJhbXtBY2NvdW50SUR9OwogICAgbXkgJFRva2VuVHlwZSA9ICRQYXJhbXtUb2tlblR5cGV9OwogICAgbXkgJFRva2VuICAgICA9ICRQYXJhbXtUb2tlbn07CiAgICBteSAkRXhwaXJlc0F0ID0gJFBhcmFte0V4cGlyZXNBdH07CgogICAgbXkgJEluc2VydFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCAgPT4gIklOU0VSVCBJTlRPIG9hdXRoMl90b2tlbl9zdG9yYWdlIChvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudF9pZCwgdG9rZW5fdHlwZSwgdG9rZW4sIGV4cGlyZXNfYXQpIFZBTFVFUyAoPywgPywgPywgPykiLAogICAgICAgIEJpbmQgPT4gWyBcJEFjY291bnRJRCwgXCRUb2tlblR5cGUsIFwkVG9rZW4sIFwkRXhwaXJlc0F0IF0sCiAgICApOwoKICAgIHJldHVybiAkSW5zZXJ0U3VjY2VzczsKfQoKPWhlYWQyIERlbGV0ZVRva2VuKCkKCiAgICBEZWxldGUgYSBUb2tlbiByZWNvcmQgaW4gREIuCgogICAgbXkgJFN1Y2Nlc3MgPSAkVG9rZW5SZXBvc2l0b3J5T2JqZWN0LT5EZWxldGVUb2tlbigKICAgICAgICBBY2NvdW50SUQgICA9PiA8RnVuY3Rpb25hbEFjY291bnRJRD4sCiAgICAgICAgVG9rZW5UeXBlICAgPT4gJ3JlZnJlc2gnLCAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgKTsKCiAgICBvcgoKICAgIG15ICRTdWNjZXNzID0gJFRva2VuUmVwb3NpdG9yeU9iamVjdC0+RGVsZXRlVG9rZW4oCiAgICAgICAgQWNjb3VudE5hbWUgPT4gPEZ1bmN0aW9uYWxBY2NvdW50SUQ+LAogICAgICAgIFRva2VuVHlwZSAgID0+ICdyZWZyZXNoJywgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICk7CgogICAgb3IKCiAgICBteSAkU3VjY2VzcyA9ICRUb2tlblJlcG9zaXRvcnlPYmplY3QtPkRlbGV0ZVRva2VuKAogICAgICAgIFRva2VuSUQgPT4gPGlkPgogICAgKTsKCj1jdXQKCnN1YiBEZWxldGVUb2tlbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIGlmICggJFBhcmFte1Rva2VuSUR9ICkgewoKICAgICAgICBteSAkVG9rZW5JRCA9ICRQYXJhbXtUb2tlbklEfTsKCiAgICAgICAgbXkgJERlbGV0ZVN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSBvYXV0aDJfdG9rZW5fc3RvcmFnZSBXSEVSRSBpZCA9ID8iLAogICAgICAgICAgICBCaW5kID0+IFsgXCRUb2tlbklEIF0sCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICREZWxldGVTdWNjZXNzOwogICAgfQoKICAgIGlmICggJFBhcmFte0FjY291bnROYW1lfSApIHsKCiAgICAgICAgbXkgJEFjY291bnROYW1lID0gJFBhcmFte0FjY291bnROYW1lfTsKCiAgICAgICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgICA9PiAiU0VMRUNUIGlkIEZST00gb2lkY19mdW5jdGlvbmFsX2FjY291bnRzIFdIRVJFIG5hbWUgPSA/ICAiLAogICAgICAgICAgICBCaW5kICA9PiBbIFwkQWNjb3VudE5hbWUgXSwKICAgICAgICAgICAgTGltaXQgPT4gMQogICAgICAgICk7CgogICAgICAgIGlmICggbXkgKCRBY2NvdW50SUQpID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5ICkgewoKICAgICAgICAgICAgbXkgJFNRTCAgPSAiREVMRVRFIEZST00gb2F1dGgyX3Rva2VuX3N0b3JhZ2UgV0hFUkUgb2lkY19mdW5jdGlvbmFsX2FjY291bnRfaWQgPSA/ICI7CiAgICAgICAgICAgIG15ICRCaW5kID0gWyBcJEFjY291bnRJRCBdOwoKICAgICAgICAgICAgbXkgJFRva2VuVHlwZSA9ICRQYXJhbXtUb2tlblR5cGV9OwogICAgICAgICAgICBpZiAoJFRva2VuVHlwZSkgewogICAgICAgICAgICAgICAgJFNRTCAuPSAiIEFORCB0b2tlbl90eXBlID0gPyAiOwogICAgICAgICAgICAgICAgcHVzaCBAJEJpbmQsIFwkVG9rZW5UeXBlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkRGVsZXRlU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgICAgICAgICBCaW5kID0+ICRCaW5kLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuICREZWxldGVTdWNjZXNzOwogICAgICAgIH0KICAgICAgICByZXR1cm47CiAgICB9CgogICAgZm9yIG15ICROZWVkZWQgKHF3L0FjY291bnRJRC8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJFRva2VuVHlwZSA9ICRQYXJhbXtUb2tlblR5cGV9OwoKICAgIGlmICggJFRva2VuVHlwZSAmJiAhJFNlbGYtPlZhbGlkYXRlVG9rZW5UeXBlKCVQYXJhbSkgKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRBY2NvdW50SUQgPSAkUGFyYW17QWNjb3VudElEfTsKCiAgICBteSAkU1FMICA9ICJERUxFVEUgRlJPTSBvYXV0aDJfdG9rZW5fc3RvcmFnZSBXSEVSRSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudF9pZCA9ID8gIjsKICAgIG15ICRCaW5kID0gWyBcJEFjY291bnRJRCwgXTsKCiAgICBpZiAoJFRva2VuVHlwZSkgewogICAgICAgICRTUUwgLj0gIkFORCB0b2tlbl90eXBlID0gPyAiOwogICAgICAgIHB1c2ggQCRCaW5kLCBcJFRva2VuVHlwZTsKICAgIH0KCiAgICBteSAkRGVsZXRlU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gJEJpbmQsCiAgICApOwoKICAgIHJldHVybiAkRGVsZXRlU3VjY2VzczsKfQoKPWhlYWQyIENsZWFudXAoKQoKICAgIFRoaXMgcHVyZ2VzIGFueSBleHBpcmVkIFRva2VucyBmcm9tIERCLgoKICAgIG15ICRTdWNjZXNzID0gJFRva2VuUmVwb3NpdG9yeU9iamVjdC0+Q2xlYW51cCgpOwoKPWN1dAoKc3ViIENsZWFudXAgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJwogICAgKTsKCiAgICAkRGF0ZVRpbWVPYmplY3QtPlRvVGltZVpvbmUoCiAgICAgICAgVGltZVpvbmUgPT4gJ1VUQycKICAgICk7CgogICAgbXkgJEVwb2NoID0gJERhdGVUaW1lT2JqZWN0LT5Ub0Vwb2NoKCk7CgogICAgbXkgJFNRTCAgPSAiREVMRVRFIEZST00gb2F1dGgyX3Rva2VuX3N0b3JhZ2UgV0hFUkUgZXhwaXJlc19hdCBJUyBOT1QgTlVMTCBhbmQgZXhwaXJlc19hdCAhPSAwIEFORCBleHBpcmVzX2F0IDwgPyAiOwogICAgbXkgJEJpbmQgPSBbIFwkRXBvY2ggXTsKCiAgICBteSAkRGVsZXRlU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gJEJpbmQsCiAgICApOwoKICAgIHJldHVybiAkRGVsZXRlU3VjY2VzczsKfQoKPWhlYWQyIEdldFRva2VuKCkKCiAgICBSZXRyaXZlIGEgVG9rZW4gcmVjb3JkIGZyb20gREIuCgogICAgbXkgJFRva2VuRGF0YSA9ICRUb2tlblJlcG9zaXRvcnlPYmplY3QtPkdldFRva2VuKAogICAgICAgIEFjY291bnRJRCAgPT4gPEZ1bmN0aW9uYWxBY2NvdW50SUQ+LAogICAgICAgIFRva2VuVHlwZSAgPT4gJ3JlZnJlc2gnLAogICAgKTsKCiAgICBvcgoKICAgIG15ICRUb2tlbkRhdGEgPSAkVG9rZW5SZXBvc2l0b3J5T2JqZWN0LT5HZXRUb2tlbigKICAgICAgICBBY2NvdW50TmFtZSAgPT4gPEZ1bmN0aW9uYWxBY2NvdW50SUQ+LAogICAgICAgIFRva2VuVHlwZSAgICA9PiAncmVmcmVzaCcsCiAgICApOwoKICAgIG9yCgogICAgbXkgJFRva2VuRGF0YSA9ICRUb2tlblJlcG9zaXRvcnlPYmplY3QtPkdldFRva2VuKAogICAgICAgIFRva2VuSUQgPT4gPGlkPgogICAgKTsKCiAgICB3aGVyZToKCiAgICAkVG9rZW5EYXRhID0gewogICAgICAgIFRva2VuSUQgPT4gPGlkPiwKICAgICAgICBBY2NvdW50SUQgPT4gJzxBY2NvdW50SUQ+JywKICAgICAgICBUb2tlblR5cGUgPT4gJ3JlZnJlc2hfdG9rZW4nLAogICAgICAgIFRva2VuID0+ICc8VG9rZW4+JywKICAgICAgICBFeHBpcmVzQXQgPT4gMTIzNCwgIyB1bml4IGVwb2NoIHRzCiAgICB9OwoKPWN1dAoKc3ViIEdldFRva2VuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPkNsZWFudXAoKTsKCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICBpZiAoICRQYXJhbXtUb2tlbklEfSApIHsKCiAgICAgICAgbXkgJFRva2VuSUQgPSAkUGFyYW17VG9rZW5JRH07CgogICAgICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICJTRUxFQ1QgaWQsIG9pZGNfZnVuY3Rpb25hbF9hY2NvdW50X2lkLCB0b2tlbl90eXBlLCB0b2tlbiwgZXhwaXJlc19hdAogICAgICAgICAgICAgICAgICAgICAgRlJPTSBvYXV0aDJfdG9rZW5fc3RvcmFnZSBXSEVSRSBpZCA9ID8gICIsCiAgICAgICAgICAgIEJpbmQgID0+IFsgXCRUb2tlbklEIF0sCiAgICAgICAgICAgIExpbWl0ID0+IDEKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17QWNjb3VudE5hbWV9ICkgewoKICAgICAgICBteSAkQWNjb3VudE5hbWUgPSAkUGFyYW17QWNjb3VudE5hbWV9OwogICAgICAgIG15ICRUb2tlblR5cGUgICA9ICRQYXJhbXtUb2tlblR5cGV9OwoKICAgICAgICBteSAkU1FMID0gIlNFTEVDVCBvdHMuaWQsIG90cy5vaWRjX2Z1bmN0aW9uYWxfYWNjb3VudF9pZCwgb3RzLnRva2VuX3R5cGUsIG90cy50b2tlbiwgb3RzLmV4cGlyZXNfYXQKICAgICAgICAgICAgICAgICAgICBGUk9NIG9hdXRoMl90b2tlbl9zdG9yYWdlIG90cwogICAgICAgICAgICAgICAgICAgIExFRlQgSk9JTiBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgb2ZhCiAgICAgICAgICAgICAgICAgICAgT04gb3RzLm9pZGNfZnVuY3Rpb25hbF9hY2NvdW50X2lkID0gb2ZhLmlkCiAgICAgICAgICAgICAgICAgICAgV0hFUkUgb2ZhLm5hbWUgPSA/ICAiOwoKICAgICAgICBteSAkQmluZCA9IFsgXCRBY2NvdW50TmFtZSBdOwoKICAgICAgICBpZiAoJFRva2VuVHlwZSkgewogICAgICAgICAgICAkU1FMIC49ICIgQU5EIG90cy50b2tlbl90eXBlID0gPyAiOwogICAgICAgICAgICBwdXNoIEAkQmluZCwgXCRUb2tlblR5cGU7CiAgICAgICAgfQoKICAgICAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCAgID0+ICRTUUwsCiAgICAgICAgICAgIEJpbmQgID0+ICRCaW5kLAogICAgICAgICAgICBMaW1pdCA9PiAxCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICBmb3IgbXkgJE5lZWRlZCAocXcvQWNjb3VudElEIFRva2VuVHlwZS8pIHsKICAgICAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFNlbGYtPlZhbGlkYXRlVG9rZW5UeXBlKCVQYXJhbSkgKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIG15ICRBY2NvdW50SUQgPSAkUGFyYW17QWNjb3VudElEfTsKICAgICAgICBteSAkVG9rZW5UeXBlID0gJFBhcmFte1Rva2VuVHlwZX07CgogICAgICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICJTRUxFQ1QgaWQsIG9pZGNfZnVuY3Rpb25hbF9hY2NvdW50X2lkLCB0b2tlbl90eXBlLCB0b2tlbiwgZXhwaXJlc19hdAogICAgICAgICAgICAgICAgICAgICAgRlJPTSBvYXV0aDJfdG9rZW5fc3RvcmFnZQogICAgICAgICAgICAgICAgICAgICAgV0hFUkUgb2lkY19mdW5jdGlvbmFsX2FjY291bnRfaWQgPSA/IEFORCB0b2tlbl90eXBlID0gPyAiLAogICAgICAgICAgICBCaW5kICA9PiBbIFwkQWNjb3VudElELCBcJFRva2VuVHlwZSBdLAogICAgICAgICAgICBMaW1pdCA9PiAxCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoIG15ICggJFRva2VuSUQsICRBY2NvdW50SUQsICRUb2tlblR5cGUsICRUb2tlbiwgJEV4cGlyZXNBdCApID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5ICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBUb2tlbklEICAgPT4gJFRva2VuSUQsCiAgICAgICAgICAgIEFjY291bnRJRCA9PiAkQWNjb3VudElELAogICAgICAgICAgICBUb2tlblR5cGUgPT4gJFRva2VuVHlwZSwKICAgICAgICAgICAgVG9rZW4gICAgID0+ICRUb2tlbiwKICAgICAgICAgICAgRXhwaXJlc0F0ID0+ICRFeHBpcmVzQXQsCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm47Cn0KCj1oZWFkMiBHZXRMaXN0KCkKCiAgICBHZXQgYSBsaXN0IG9mIFRva2VucyBmb3IgRGlzcGxheS4KCiAgICBteSAkVG9rZW5zID0gJFRva2VuUmVwb3NpdG9yeU9iamVjdC0+R2V0TGlzdCgKICAgICAgICBFeHBpcmVzQWZ0ZXIgPT4gVW5peCBlcG9jaCB0aW1lc3RhbXAsICMgb3B0aW9uYWwKICAgICAgICBUb2tlblR5cGUgICAgPT4gJ3JlZnJlc2hfdG9rZW4nLCAgICAgICMgb3B0aW9uYWwsIGRlZmF1bHRzIHRvICdyZWZyZXNoX3Rva2VuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgY2FuIGJlICdyZWZyZXNoX3Rva2VuJyBvciAnYWNjZXNzX3Rva2VuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvciAnaWRfdG9rZW4nIG9yICdhbGwnCiAgICApOwoKICAgIHdoZXJlOgoKICAgIG15ICRUb2tlbnMgPSBbCiAgICAgICAgewogICAgICAgICAgICBUb2tlbklEICAgID0+IDEsCiAgICAgICAgICAgIEFjY291bnRJRCAgPT4gPEZ1bmN0aW9uYWxBY2NvdW5ndElEPiwKICAgICAgICAgICAgVG9rZW5UeXBlICA9PiAncmVmcmVzaF90b2tlbicsCiAgICAgICAgICAgIFRva2VuICAgICAgPT4gPFRva2VuRGF0YT4sCiAgICAgICAgICAgIEV4cGlyZXNBdCAgPT4gVU5JWCBlcG9jaCB0aW1lc3RhbXAsCiAgICAgICAgfSwKICAgICAgICAuLi4KICAgIF07Cgo9Y3V0CgpzdWIgR2V0TGlzdCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+Q2xlYW51cCgpOwoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIG15ICRFeHBpcmVzQWZ0ZXIgPSAkUGFyYW17RXhwaXJlc0FmdGVyfTsKICAgIG15ICRUb2tlblR5cGUgICAgPSAkUGFyYW17VG9rZW5UeXBlfSB8fCAncmVmcmVzaF90b2tlbic7CgogICAgbXkgJFNRTCAgPSAiU0VMRUNUIGlkLCBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudF9pZCwgdG9rZW5fdHlwZSwgdG9rZW4sIGV4cGlyZXNfYXQgRlJPTSBvYXV0aDJfdG9rZW5fc3RvcmFnZSBXSEVSRSAxPTEgIjsKICAgIG15ICRCaW5kID0gW107CgogICAgaWYgKCAkVG9rZW5UeXBlIG5lICdhbGwnICkgewogICAgICAgICRTUUwgLj0gIkFORCB0b2tlbl90eXBlID0gPyAiOwogICAgICAgIHB1c2ggQCRCaW5kLCBcJFRva2VuVHlwZTsKICAgIH0KCiAgICBpZiAoJEV4cGlyZXNBZnRlcikgewoKICAgICAgICAkU1FMIC49ICJBTkQgZXhwaXJlc19hdCBJUyBOVUxMIE9SIGV4cGlyZXNfYXQgPSAwIE9SIGV4cGlyZXNfYXQgPCA/ICI7CiAgICAgICAgcHVzaCBAJEJpbmQsIFwkRXhwaXJlc0FmdGVyOwogICAgfQoKICAgICRTUUwgLj0gIk9SREVSIEJZIG9pZGNfZnVuY3Rpb25hbF9hY2NvdW50X2lkLCBleHBpcmVzX2F0ICI7CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+ICRCaW5kLAogICAgKTsKCiAgICBteSBAUmVzdWx0OwogICAgd2hpbGUgKCBteSAoICRUb2tlbklELCAkQWNjb3VudElELCAkVG9rZW5UeXBlLCAkVG9rZW4sICRFeHBpcmVzQXQgKSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSApIHsKCiAgICAgICAgcHVzaCBAUmVzdWx0LCB7CiAgICAgICAgICAgIFRva2VuSUQgICA9PiAkVG9rZW5JRCwKICAgICAgICAgICAgQWNjb3VudElEID0+ICRBY2NvdW50SUQsCiAgICAgICAgICAgIFRva2VuVHlwZSA9PiAkVG9rZW5UeXBlLAogICAgICAgICAgICBUb2tlbiAgICAgPT4gJFRva2VuLAogICAgICAgICAgICBFeHBpcmVzQXQgPT4gJEV4cGlyZXNBdCwKICAgICAgICB9OwogICAgfQoKICAgIHJldHVybiBcQFJlc3VsdDsKfQoKPWhlYWQyIFZhbGlkYXRlVG9rZW5UeXBlKCkKCiAgICBWYWxpZGF0ZSBUb2tlblR5cGUgdmFsdWUuCgogICAgbXkgJEJvb2xlYW4gPSAkVG9rZW5SZXBvc2l0b3J5T2JqZWN0LT5WYWxpZGF0ZVRva2VuVHlwZSggVG9rZW5UeXBlID0+ICdyZWZyZXNoX3Rva2VuJyApOwoKICAgIHJldHVybnMgdHJ1ZSBpZiBUb2tlblR5cGUgaXMgb25lIG9mIGFjY2Vzc190b2tlbnxpZF90b2tlbnxyZWZyZXNoX3Rva2VuLCBmYWxzZSBvdGhlcndpc2UuCgo9Y3V0CgpzdWIgVmFsaWRhdGVUb2tlblR5cGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoCiAgICAgICAgJFBhcmFte1Rva2VuVHlwZX0gbmUgJ2FjY2Vzc190b2tlbicgJiYKICAgICAgICAkUGFyYW17VG9rZW5UeXBlfSBuZSAnaWRfdG9rZW4nICAgICAmJgogICAgICAgICRQYXJhbXtUb2tlblR5cGV9IG5lICdyZWZyZXNoX3Rva2VuJwogICAgICAgICkKICAgIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRva2VuVHlwZSBtdXN0IGJlIG9uZSBvZiAnYWNjZXNzX3Rva2VuLGlkX3Rva2VuLHJlZnJlc2hfdG9rZW4nLCBidXQgd2FzICckUGFyYW17VG9rZW5UeXBlfScuXG4iLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Location="Kernel/System/OpenIDConnect/TokenStoreUpdater.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblN0b3JlVXBkYXRlcjsKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpNYWluJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblByb3ZpZGVyJywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5JywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5JywKCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuU3RvcmVVcGRhdGVyIC0gcmVmcmVzaCBPQXV0aCBUb2tlbnMgdmlhIGNyb24gc2NoZWR1bGVyCgo9aGVhZDEgREVTQ1JJUFRJT04KClJlZnJlc2hlcyBPQXV0aCBUb2tlbnMgdmlhIGNyb24gc2NoZWR1bGVyCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPWhlYWQyIG5ldygpCgpjcmVhdGUgYSBUb2tlblNUb3JlVXBkYXRlciBvYmplY3QuIERvIG5vdCB1c2UgaXQgZGlyZWN0bHksIGluc3RlYWQgdXNlOgoKICAgICBteSAkVG9rZW5TdG9yZVVwZGF0ZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5TdG9yZVVwZGF0ZXInKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRNYWluT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkTG9nRGlyICAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdIb21lJykgLiAnL3Zhci9sb2cvJzsKCiAgICBteSAkTG9nID0gIlRva2VuU3RvcmFnZVVwZGF0ZXIgaGFzIGJlZW4gY2FsbGVkIHdpdGg6XG4iOwoKICAgICRMb2cgLj0gJE1haW5PYmplY3QtPkR1bXAoIFwlUGFyYW0gKTsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgKTsKCiAgICBteSAkU3VjY2VzcyA9ICREYXRlVGltZU9iamVjdC0+VG9UaW1lWm9uZSgKICAgICAgICBUaW1lWm9uZSA9PiAnVVRDJwogICAgKTsKCiAgICBteSAkVGltZSA9ICREYXRlVGltZU9iamVjdC0+Rm9ybWF0KCBGb3JtYXQgPT4gJyVZLSVtLSVkICVIOiVNOiVTJyApOwoKICAgICRMb2cgLj0gImF0ICRUaW1lLlxuIjsKCiAgICBteSAkVG9rZW5zOwogICAgZXZhbCB7CgogICAgICAgICRUb2tlbnMgPSAkU2VsZi0+UmVuZXdUb2tlbnMoJVBhcmFtKTsKICAgIH07CiAgICBpZiAoJEApIHsKCiAgICAgICAgJExvZyAuPSAkTWFpbk9iamVjdC0+RHVtcCgkQCk7CiAgICB9CgogICAgaWYgKCRUb2tlbnMpIHsKICAgICAgICAkTG9nIC49ICRNYWluT2JqZWN0LT5EdW1wKCRUb2tlbnMpOwogICAgfQoKICAgIG15ICRGaWxlTG9jYXRpb24gPSAkTWFpbk9iamVjdC0+RmlsZVdyaXRlKAogICAgICAgIERpcmVjdG9yeSA9PiAkTG9nRGlyLAogICAgICAgIEZpbGVuYW1lICA9PiAndG9rZW51cGRhdGVyLmxvZycsCiAgICAgICAgQ29udGVudCAgID0+IFwkTG9nLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKIyBoZWxwZXIKCnN1YiBSZW5ld1Rva2VucyB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkSW50ZXJ2YWwgPSAkUGFyYW17SW50ZXJ2YWx9OwoKICAgIG15ICRUb2tlblByb3ZpZGVyICAgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5Qcm92aWRlcicpOwogICAgbXkgJFRva2VuUmVwb3NpdG9yeSAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblJlcG9zaXRvcnknKTsKICAgIG15ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnkgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5Jyk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICk7CgogICAgbXkgJFN1Y2Nlc3MgPSAkRGF0ZVRpbWVPYmplY3QtPlRvVGltZVpvbmUoCiAgICAgICAgVGltZVpvbmUgPT4gJ1VUQycKICAgICk7CgogICAgbXkgJEVwb2NoID0gJERhdGVUaW1lT2JqZWN0LT5Ub0Vwb2NoKCkgKyAkSW50ZXJ2YWw7CgogICAgbXkgJFRva2VucyA9ICRUb2tlblJlcG9zaXRvcnktPkdldExpc3QoCiAgICAgICAgRXhwaXJlc0FmdGVyID0+ICRFcG9jaAogICAgKTsKCiAgICBUT0tFTjoKICAgIGZvciBteSAkVG9rZW4gKEAkVG9rZW5zKSB7CgogICAgICAgIG15ICRBY2NvdW50ID0gJEZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeS0+R2V0QnlJRCggQWNjb3VudElEID0+ICRUb2tlbi0+e0FjY291bnRJRH0gKTsKCiAgICAgICAgbXkgJFJlc3VsdCA9ICRUb2tlblByb3ZpZGVyLT5GZXRjaFRva2VuKAoKICAgICAgICAgICAgQWNjb3VudE5hbWUgID0+ICRBY2NvdW50LT57TmFtZX0sCiAgICAgICAgICAgIFJlZnJlc2hUb2tlbiA9PiAkVG9rZW4tPntUb2tlbn0sCiAgICAgICAgKTsKCiAgICAgICAgJFRva2VuLT57UmVzdWx0fSA9IHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAkUmVzdWx0LT57U3VjY2Vzc30sCiAgICAgICAgICAgIEVycm9yICAgPT4gJFJlc3VsdC0+e0Vycm9yfSwKICAgICAgICB9OwogICAgfQoKICAgIHJldHVybiAkVG9rZW5zOwp9CgoxOwo=</File>
        <File Location="Kernel/System/OpenIDConnect/UserImport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VXNlckltcG9ydDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCnVzZSBuYW1lc3BhY2U6OmF1dG9jbGVhbjsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VXNlckltcG9ydAoKPWZvciBzdG9wd29yZHMgT0lEQwoKSW1wb3J0IHVzZXJzIGludG8gT3RvYm8gYmFzZWQgb24gdmFsaWQgT3BlbklEIENvbm5lY3QgVG9rZW4uCgo9aGVhZDEgU1lOT1BTSVMKCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkVXNlckltcG9ydE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpVc2VySW1wb3J0Jyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIEltcG9ydFVzZXIoKQoKSW1wb3J0IGFuIFVzZXIgaW50byBPdG9ibyBiYXNlZCBvbiB2YWxpZCBPSURDIFRva2VuCgogICAgbXkgJFN1Y2Nlc3MgPSAkVXNlckltcG9ydE9iamVjdC0+SW1wb3J0VXNlcigKICAgICAgICBUb2tlbiA9PiAkVG9rZW4sICAgICAgICAgICAgICAgICAgICAgICAgIyBUb2tlbiB3aXRoIHVzZXIgZGV0YWlscyB0byBtYXAKICAgICAgICBPcGVuSURDb25maWdOYW1lID0+ICRPcGVuSURDb25maWdOYW1lLCAgIyBPcGVuSURDb25maWdOYW1lIHRvIGxvb2t1cCBPSURDIEF1dGggTW9kdWxlIGZyb20gQ29uZmlnLnBtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb2Z0ZW4gJ0F1dGhNb2R1bGU6Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZycKICAgICk7Cgo9Y3V0CgpzdWIgSW1wb3J0VXNlciB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkVG9rZW5EYXRhICAgICAgICA9ICRQYXJhbXtUb2tlbkRhdGF9OwogICAgbXkgJE9wZW5JRENvbmZpZ05hbWUgPSAkUGFyYW17T3BlbklEQ29uZmlnTmFtZX07CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBjaGVjayBpZiB0aGVyZSBpcyBhIHNwZWNpZmljIFVzZXIgYW5kIFJvbGVNYXAgZm9yIHRoaXMgT0lEQyBjb25maWcsCiAgICAjIG90aGVyd2lzZSBzZWUgaWYgdGhlcmUgaXMgYSBkZWZhdWx0IG9uZQogICAgbXkgJFVJRCAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoICRPcGVuSURDb25maWdOYW1lIC4gJzo6VUlEJyApICAgICB8fCAnc3ViJzsKICAgIG15ICRVc2VyTWFwID0gJENvbmZpZ09iamVjdC0+R2V0KCAkT3BlbklEQ29uZmlnTmFtZSAuICc6OlVzZXJNYXAnICkgfHwgJENvbmZpZ09iamVjdC0+R2V0KCdBdXRoTW9kdWxlOjpPcGVuSURDb25uZWN0OjpVc2VyTWFwJyk7CiAgICBteSAkUm9sZU1hcCA9ICRDb25maWdPYmplY3QtPkdldCggJE9wZW5JRENvbmZpZ05hbWUgLiAnOjpSb2xlTWFwJyApIHx8ICRDb25maWdPYmplY3QtPkdldCgnQXV0aE1vZHVsZTo6T3BlbklEQ29ubmVjdDo6Um9sZU1hcCcpOwoKICAgICMgZGV0ZXJtaW5lIGp3dCBjbGFpbiB0byBvdG9ibyBVc2VyTG9naW4gbWFwcGluZwogICAgbXkgJFVzZXJMb2dpbiA9ICRUb2tlbkRhdGEtPnskVUlEfTsKICAgIGlmICggISRVc2VyTG9naW4gKSB7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgRXJyb3IgICA9PiAiVG9rZW4gcmVjZWl2ZWQgYnV0IFVJRCB3YXMgbm90IHByb3ZpZGVkIGluICckVUlEJy4iLAogICAgICAgIH07CiAgICB9CgogICAgIyBSb2xlcwogICAgbXkgJVJvbGVzOwogICAgaWYgKCRSb2xlTWFwKSB7CiAgICAgICAgJVJvbGVzID0gJFNlbGYtPl9FeHRyYWN0TWFwKAogICAgICAgICAgICBNYXAgID0+ICRSb2xlTWFwLAogICAgICAgICAgICBEYXRhID0+ICRUb2tlbkRhdGEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGlmIE9wZW5JRENvbm5lY3QgaXMgY29uZmlndXJlZCB0byBwcm92aWRlIGF1dGhvcml6YXRpb24gYnV0IHRoZSB1c2VyIGhhcyBubyByaWdodHMgcmV0dXJuCiAgICBpZiAoICRSb2xlTWFwICYmICElUm9sZXMgKSB7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgRXJyb3IgICA9PiAiVW5hdXRob3JpemVkIGFzIHBlciBSb2xlTWFwLiIsCiAgICAgICAgfTsKICAgIH0KCiAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgbXkgJVVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoIFVzZXIgPT4gJFVzZXJMb2dpbiApOwogICAgbXkgJFVzZXJJRDsKCiAgICAjIGNyZWF0ZSBhbmQgZWRpdCB1c2VycwogICAgaWYgKCRVc2VyTWFwKSB7CgogICAgICAgIG15ICVVc2VyRGF0YSA9IG1hcCB7ICRVc2VyTWFwLT57JF99ID0+ICRUb2tlbkRhdGEtPnskX30gfSBrZXlzICV7JFVzZXJNYXB9OwoKICAgICAgICAjIGRvbid0IG1lc3Mgd2l0aCBzb21lIGRhdGEgaGVyZQogICAgICAgIGRlbGV0ZSAkVXNlckRhdGF7VXNlcklEfTsKICAgICAgICBkZWxldGUgJFVzZXJEYXRhe1VzZXJQd307CgogICAgICAgICMgdXNlcmRhdGEsIHdpdGggcmVhc29uYWJsZSBkZWZhdWx0cwogICAgICAgICRVc2VyRGF0YXtVc2VyRmlyc3RuYW1lfSA9ICRVc2VyRGF0YXtVc2VyRmlyc3RuYW1lfSB8fCAkVG9rZW5EYXRhLT57YXpwfSAgICAgICAgICAgICAgICB8fCAnb3RvYm8nOwogICAgICAgICRVc2VyRGF0YXtVc2VyTGFzdG5hbWV9ICA9ICRVc2VyRGF0YXtVc2VyTGFzdG5hbWV9ICB8fCAkVG9rZW5EYXRhLT57cHJlZmVycmVkX3VzZXJuYW1lfSB8fCAnYm90JzsKICAgICAgICAkVXNlckRhdGF7VXNlckVtYWlsfSAgICAgPSAkVG9rZW5EYXRhLT57ZW1haWx9ICAgICAgfHwgJFVzZXJEYXRhe1VzZXJFbWFpbH0gICAgICAgICAgICAgfHwgJ3N5c3RlbXVzZXJAb3RvYm8ubG9jYWwnOwoKICAgICAgICBpZiAoICElVXNlciApIHsKCiAgICAgICAgICAgICMgYWRkdXNlcgogICAgICAgICAgICAkVXNlcklEID0gJFVzZXJPYmplY3QtPlVzZXJBZGQoCiAgICAgICAgICAgICAgICBVc2VyRmlyc3RuYW1lID0+ICctJywKICAgICAgICAgICAgICAgIFVzZXJMYXN0bmFtZSAgPT4gJy0nLAogICAgICAgICAgICAgICAgJVVzZXJEYXRhLAogICAgICAgICAgICAgICAgVXNlckxvZ2luICAgID0+ICRVc2VyTG9naW4sCiAgICAgICAgICAgICAgICBWYWxpZElEICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZVVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIHVwZGF0ZSBleGlzdGluZyB1c2VyCiAgICAgICAgICAgIG15ICRVcGRhdGU7CiAgICAgICAgICAgIEtFWToKICAgICAgICAgICAgZm9yIG15ICRLZXkgKCBrZXlzICVVc2VyRGF0YSApIHsKICAgICAgICAgICAgICAgIGlmICggJFVzZXJEYXRheyRLZXl9IG5lICRVc2VyeyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICRVcGRhdGUgPSAxOwoKICAgICAgICAgICAgICAgICAgICBsYXN0IEtFWTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCRVcGRhdGUpIHsKICAgICAgICAgICAgICAgICRVc2VyT2JqZWN0LT5Vc2VyVXBkYXRlKAogICAgICAgICAgICAgICAgICAgICVVc2VyLAogICAgICAgICAgICAgICAgICAgICVVc2VyRGF0YSwKICAgICAgICAgICAgICAgICAgICBDaGFuZ2VVc2VySUQgPT4gMSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgJFVzZXJJRCAvLz0gJFVzZXJ7VXNlcklEfTsKCiAgICBpZiAoICEkVXNlcklEICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgIEVycm9yICAgPT4gIk5vIFVzZXJJRCBmb3IgJFVzZXJMb2dpbi4gQWJvcnRpbmcuIiwKICAgICAgICB9OwoKICAgIH0KCiAgICAjIHN1Y2Nlc3NmdWwgcmV0dXJuIGlmIG5vIGF1dGhvcml6YXRpb24gaGFzIHRvIGJlIGRvbmUKCiAgICByZXR1cm4gcmV0dXJuIHsKICAgICAgICBTdWNjZXNzICAgPT4gMSwKICAgICAgICBVc2VySUQgICAgPT4gJFVzZXJJRCwKICAgICAgICBVc2VyTG9naW4gPT4gJFVzZXJMb2dpbiwKICAgIH0gaWYgISRSb2xlTWFwOwoKICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgIGlmICgkUm9sZU1hcCkgewoKICAgICAgICBteSAlQWxsUm9sZXMgPSByZXZlcnNlICRHcm91cE9iamVjdC0+Um9sZUxpc3QoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyB1cGRhdGUgdXNlciByb2xlcwogICAgICAgIGZvciBteSAkUm9sZU5hbWUgKCBrZXlzICVBbGxSb2xlcyApIHsKCiAgICAgICAgICAgICRHcm91cE9iamVjdC0+UGVybWlzc2lvblJvbGVVc2VyQWRkKAogICAgICAgICAgICAgICAgVUlEICAgID0+ICRVc2VySUQsCiAgICAgICAgICAgICAgICBSSUQgICAgPT4gJEFsbFJvbGVzeyRSb2xlTmFtZX0sCiAgICAgICAgICAgICAgICBBY3RpdmUgPT4gJFJvbGVzeyRSb2xlTmFtZX0gfHwgMCwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgICA9PiAxLAogICAgICAgIFVzZXJJRCAgICA9PiAkVXNlcklELAogICAgICAgIFVzZXJMb2dpbiA9PiAkVXNlckxvZ2luLAogICAgfTsKfQoKc3ViIF9FeHRyYWN0TWFwIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CiAgICBteSAlUmV0dXJuID0gKCk7CgogICAgS0VZOgogICAgZm9yIG15ICRLZXkgKCBrZXlzICV7ICRQYXJhbXtNYXB9IH0gKSB7CiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte01hcH17JEtleX0gKSApIHsKICAgICAgICAgICAgbmV4dCBLRVkgdW5sZXNzIGRlZmluZWQgJFBhcmFte0RhdGF9eyRLZXl9OwoKICAgICAgICAgICAgJVJldHVybiA9ICgKICAgICAgICAgICAgICAgICVSZXR1cm4sCiAgICAgICAgICAgICAgICAkU2VsZi0+X0V4dHJhY3RNYXAoCiAgICAgICAgICAgICAgICAgICAgTWFwICA9PiAkUGFyYW17TWFwfXskS2V5fSwKICAgICAgICAgICAgICAgICAgICBEYXRhID0+ICRQYXJhbXtEYXRhfXskS2V5fSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBuZXh0IEtFWSBpZiByZWYgJFBhcmFte01hcH17JEtleX07CgogICAgICAgIG15IEBEYXRhID0gSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17RGF0YX0gKSA/IEB7ICRQYXJhbXtEYXRhfSB9IDoKICAgICAgICAgICAgIXJlZiAkUGFyYW17RGF0YX0gPyAoICRQYXJhbXtEYXRhfSApIDogKCk7CgogICAgICAgIGZvciBteSAkT3BlbklEQXR0cmlidXRlIChARGF0YSkgewogICAgICAgICAgICBteSAkT1RPQk9BdHRyaWJ1dGUgPSAkUGFyYW17TWFwfXskT3BlbklEQXR0cmlidXRlfTsKCiAgICAgICAgICAgIGlmICgkT1RPQk9BdHRyaWJ1dGUpIHsKICAgICAgICAgICAgICAgICRSZXR1cm57JE9UT0JPQXR0cmlidXRlfSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVSZXR1cm47Cn0KCjE7Cg==</File>
        <File Location="Custom/Kernel/Modules/AdminGenericInterfaceTransportHTTPREST.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL01vZHVsZXMvQWRtaW5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1QucG0KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluR2VuZXJpY0ludGVyZmFjZVRyYW5zcG9ydEhUVFBSRVNUOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgU2V0IHBvc3NpYmxlIHZhbHVlcyBoYW5kbGluZyBzdHJpbmdzLgogICAgJFNlbGYtPntFbXB0eVN0cmluZ30gICAgID0gJ19BZGRpdGlvbmFsSGVhZGVyc19FbXB0eVN0cmluZ19Eb250X1VzZV9JdF9TdHJpbmdfUGxlYXNlJzsKICAgICRTZWxmLT57RHVwbGljYXRlU3RyaW5nfSA9ICdfQWRkaXRpb25hbEhlYWRlcnNfRHVwbGljYXRlZFN0cmluZ19Eb250X1VzZV9JdF9TdHJpbmdfUGxlYXNlJzsKICAgICRTZWxmLT57RGVsZXRlZFN0cmluZ30gICA9ICdfQWRkaXRpb25hbEhlYWRlcnNfRGVsZXRlZFN0cmluZ19Eb250X1VzZV9JdF9TdHJpbmdfUGxlYXNlJzsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkUGFyYW1PYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRMYXlvdXRPYmplY3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFdlYnNlcnZpY2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJpY0ludGVyZmFjZTo6V2Vic2VydmljZScpOwoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiAgICBteSAkQ29uZmlnT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkVG9rZW5Qcm92aWRlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblByb3ZpZGVyJyk7CiMgRU8gT0F1dGgyCgogICAgbXkgJFdlYnNlcnZpY2VJRCAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1dlYnNlcnZpY2VJRCcgKSAgICAgIHx8ICcnOwogICAgbXkgJENvbW11bmljYXRpb25UeXBlID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NvbW11bmljYXRpb25UeXBlJyApIHx8ICcnOwoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKIyBFTyBPQXV0aDIKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1Yi1hY3Rpb24gQ2hhbmdlOiBsb2FkIHdlYiBzZXJ2aWNlIGFuZCBzaG93IGVkaXQgc2NyZWVuCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkJyB8fCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0NoYW5nZScgKSB7CgogICAgICAgICMgQ2hlY2sgZm9yIFdlYnNlcnZpY2VJRC4KICAgICAgICBpZiAoICEkV2Vic2VydmljZUlEICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCBXZWJzZXJ2aWNlSUQhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIEdldCB3ZWIgc2VydmljZSBjb25maWd1cmF0aW9uLgogICAgICAgIG15ICRXZWJzZXJ2aWNlRGF0YSA9ICRXZWJzZXJ2aWNlT2JqZWN0LT5XZWJzZXJ2aWNlR2V0KCBJRCA9PiAkV2Vic2VydmljZUlEICk7CgogICAgICAgICMgQ2hlY2sgZm9yIHZhbGlkIHdlYiBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uCiAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFdlYnNlcnZpY2VEYXRhKSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdDb3VsZCBub3QgZ2V0IGRhdGEgZm9yIFdlYnNlcnZpY2VJRCAlcycsICRXZWJzZXJ2aWNlSUQgKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkU2VsZi0+X1Nob3dFZGl0KAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFdlYnNlcnZpY2VJRCAgICAgID0+ICRXZWJzZXJ2aWNlSUQsCiAgICAgICAgICAgIFdlYnNlcnZpY2VEYXRhICAgID0+ICRXZWJzZXJ2aWNlRGF0YSwKICAgICAgICAgICAgQ29tbXVuaWNhdGlvblR5cGUgPT4gJENvbW11bmljYXRpb25UeXBlLAogICAgICAgICAgICBBY3Rpb24gICAgICAgICAgICA9PiAnQ2hhbmdlJywKCiMgUm90aGVyIE9TUyAvIE9BdXRoMgogICAgICAgICAgICBPdXRwdXQgICAgICAgPT4gJE91dHB1dCwKICAgICAgICAgICAgTGF5b3V0T2JqZWN0ID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAojIEVPIC8gT0F1dGgyCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGludmFsaWQgc3ViLWFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gbmUgJ0NoYW5nZUFjdGlvbicgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCB2YWxpZCBTdWJhY3Rpb24hJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1Yi1hY3Rpb24gQ2hhbmdlQWN0aW9uOiB3cml0ZSBjb25maWcgYW5kIHJldHVybiB0byBvdmVydmlldwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgICMgQ2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24uCiAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgIyBDaGVjayBmb3IgV2Vic2VydmljZUlELgogICAgaWYgKCAhJFdlYnNlcnZpY2VJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIFdlYnNlcnZpY2VJRCEnKSwKICAgICAgICApOwogICAgfQoKICAgICMgR2V0IHdlYiBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uCiAgICBteSAkV2Vic2VydmljZURhdGEgPSAkV2Vic2VydmljZU9iamVjdC0+V2Vic2VydmljZUdldCgKICAgICAgICBJRCA9PiAkV2Vic2VydmljZUlELAogICAgKTsKCiAgICAjIENoZWNrIGZvciB2YWxpZCB3ZWIgc2VydmljZSBjb25maWd1cmF0aW9uLgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFdlYnNlcnZpY2VEYXRhKSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0NvdWxkIG5vdCBnZXQgZGF0YSBmb3IgV2Vic2VydmljZUlEICVzJywgJFdlYnNlcnZpY2VJRCApLAogICAgICAgICk7CiAgICB9CgogICAgIyBHZXQgcGFyYW1ldGVyIGZyb20gd2ViIGJyb3dzZXIuCiAgICBteSAkR2V0UGFyYW0gPSAkU2VsZi0+X0dldFBhcmFtcygpOwoKICAgICMgQ2hlY2sgcmVxdWlyZWQgcGFyYW1ldGVycy4KICAgIG15ICVFcnJvcjsKCiAgICAjIFRvIHN0b3JlIHRoZSBjbGVhbiBuZXcgY29uZmlndXJhdGlvbiBsb2NhbGx5LgogICAgbXkgJFRyYW5zcG9ydENvbmZpZzsKCiAgICAjIEdldCByZXF1ZXN0ZXIgc3BlY2lmaWMgc2V0dGluZ3MuCiAgICBpZiAoICRDb21tdW5pY2F0aW9uVHlwZSBlcSAnUmVxdWVzdGVyJyApIHsKCiAgICAgICAgTkVFREVEOgogICAgICAgIGZvciBteSAkTmVlZGVkIChxdyggSG9zdCBEZWZhdWx0Q29tbWFuZCBUaW1lb3V0ICkpIHsKICAgICAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+eyROZWVkZWR9ID0gJEdldFBhcmFtLT57JE5lZWRlZH07CiAgICAgICAgICAgIG5leHQgTkVFREVEIGlmIGRlZmluZWQgJEdldFBhcmFtLT57JE5lZWRlZH07CgogICAgICAgICAgICAkRXJyb3J7ICROZWVkZWQgLiAnU2VydmVyRXJyb3InIH0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yeyAkTmVlZGVkIC4gJ1NlcnZlckVycm9yTWVzc2FnZScgfSA9IFRyYW5zbGF0YWJsZSgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcpOwogICAgICAgIH0KCiAgICAgICAgIyBTZXQgZXJyb3IgZm9yIG5vbiBpbnRlZ2VyIGNvbnRlbnQuCiAgICAgICAgaWYgKCAkR2V0UGFyYW0tPntUaW1lb3V0fSAmJiAhSXNJbnRlZ2VyKCAkR2V0UGFyYW0tPntUaW1lb3V0fSApICkgewogICAgICAgICAgICAkRXJyb3J7VGltZW91dFNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3J7VGltZW91dFNlcnZlckVycm9yTWVzc2FnZX0gPSBUcmFuc2xhdGFibGUoJ1RoaXMgZmllbGQgc2hvdWxkIGJlIGFuIGludGVnZXIuJyk7CiAgICAgICAgfQoKICAgICAgICAjIENoZWNrIGF1dGhlbnRpY2F0aW9uIG9wdGlvbnMuCiAgICAgICAgaWYgKCAkR2V0UGFyYW0tPntBdXRoVHlwZX0gJiYgJEdldFBhcmFtLT57QXV0aFR5cGV9IGVxICdCYXNpY0F1dGgnICkgewoKICAgICAgICAgICAgIyBHZXQgQmFzaWNBdXRoIHNldHRpbmdzLgogICAgICAgICAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoIEF1dGhUeXBlIEJhc2ljQXV0aFVzZXIgQmFzaWNBdXRoUGFzc3dvcmQgKSkgewogICAgICAgICAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+e0F1dGhlbnRpY2F0aW9ufS0+eyRQYXJhbU5hbWV9ID0gJEdldFBhcmFtLT57JFBhcmFtTmFtZX07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgTkVFREVEOgogICAgICAgICAgICBmb3IgbXkgJE5lZWRlZCAocXcoIEJhc2ljQXV0aFVzZXIgQmFzaWNBdXRoUGFzc3dvcmQgKSkgewogICAgICAgICAgICAgICAgbmV4dCBORUVERUQgaWYgZGVmaW5lZCAkR2V0UGFyYW0tPnskTmVlZGVkfSAmJiBsZW5ndGggJEdldFBhcmFtLT57JE5lZWRlZH07CgogICAgICAgICAgICAgICAgJEVycm9yeyAkTmVlZGVkIC4gJ1NlcnZlckVycm9yJyB9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3J7ICROZWVkZWQgLiAnU2VydmVyRXJyb3JNZXNzYWdlJyB9ID0gVHJhbnNsYXRhYmxlKCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW0tPntBdXRoVHlwZX0gJiYgJEdldFBhcmFtLT57QXV0aFR5cGV9IGVxICdLZXJiZXJvcycgKSB7CgogICAgICAgICAgICAjIEdldCBCYXNpY0F1dGggc2V0dGluZ3MuCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1OYW1lIChxdyggQXV0aFR5cGUgS2VyYmVyb3NVc2VyIEtlcmJlcm9zS2V5dGFiICkpIHsKICAgICAgICAgICAgICAgICRUcmFuc3BvcnRDb25maWctPntBdXRoZW50aWNhdGlvbn0tPnskUGFyYW1OYW1lfSA9ICRHZXRQYXJhbS0+eyRQYXJhbU5hbWV9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIE5FRURFRDoKICAgICAgICAgICAgZm9yIG15ICROZWVkZWQgKHF3KCBLZXJiZXJvc1VzZXIgS2VyYmVyb3NLZXl0YWIgKSkgewogICAgICAgICAgICAgICAgbmV4dCBORUVERUQgaWYgZGVmaW5lZCAkR2V0UGFyYW0tPnskTmVlZGVkfSAmJiBsZW5ndGggJEdldFBhcmFtLT57JE5lZWRlZH07CgogICAgICAgICAgICAgICAgJEVycm9yeyAkTmVlZGVkIC4gJ1NlcnZlckVycm9yJyB9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3J7ICROZWVkZWQgLiAnU2VydmVyRXJyb3JNZXNzYWdlJyB9ID0gVHJhbnNsYXRhYmxlKCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgojIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICBlbHNpZiAoICRHZXRQYXJhbS0+e0F1dGhUeXBlfSAmJiAkR2V0UGFyYW0tPntBdXRoVHlwZX0gZXEgJ09BdXRoJyApIHsKCiAgICAgICAgICAgICMgR2V0IE9BdXRoIHNldHRpbmdzLgogICAgICAgICAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoIEF1dGhUeXBlIE9BdXRoQWNjb3VudE5hbWUgKSkgewogICAgICAgICAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+e0F1dGhlbnRpY2F0aW9ufS0+eyRQYXJhbU5hbWV9ID0gJEdldFBhcmFtLT57JFBhcmFtTmFtZX07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRUb2tlbiA9ICRUb2tlblByb3ZpZGVyLT5GZXRjaCggQWNjb3VudE5hbWUgPT4gJEdldFBhcmFtLT57T0F1dGhBY2NvdW50TmFtZX0gKTsKCiAgICAgICAgICAgIGlmICggISRUb2tlbi0+e1N1Y2Nlc3N9ICkgewogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgSW5mbyAgICA9PiAkVG9rZW4tPntFcnJvcn0sCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgICAgICBMaW5rICAgICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0h0dHBUeXBlJykKICAgICAgICAgICAgICAgICAgICAgICAgLiAnOi8vJwogICAgICAgICAgICAgICAgICAgICAgICAuICRDb25maWdPYmplY3QtPkdldCgnRlFETicpCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJy8nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJENvbmZpZ09iamVjdC0+R2V0KCdTY3JpcHRBbGlhcycpCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJ2luZGV4LnBsP0FjdGlvbj1BZG1pbk9BdXRoVG9rZW5TdG9yZScsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRFcnJvcntPQXV0aEVycm9yfSA9ICRUb2tlbi0+e0Vycm9yfTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiMgRU8gT0F1dGgyCgogICAgICAgICMgQ2hlY2sgcHJveHkgb3B0aW9ucy4KICAgICAgICBpZiAoICRHZXRQYXJhbS0+e1VzZVByb3h5fSAmJiAkR2V0UGFyYW0tPntVc2VQcm94eX0gZXEgJ1llcycgKSB7CgogICAgICAgICAgICAjIEdldCBQcm94eSBzZXR0aW5ncy4KICAgICAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KCBVc2VQcm94eSBQcm94eUhvc3QgUHJveHlVc2VyIFByb3h5UGFzc3dvcmQgUHJveHlFeGNsdWRlICkpIHsKICAgICAgICAgICAgICAgICRUcmFuc3BvcnRDb25maWctPntQcm94eX0tPnskUGFyYW1OYW1lfSA9ICRHZXRQYXJhbS0+eyRQYXJhbU5hbWV9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIENoZWNrIFNTTCBvcHRpb25zLgogICAgICAgIGlmICggJEdldFBhcmFtLT57VXNlU1NMfSAmJiAkR2V0UGFyYW0tPntVc2VTU0x9IGVxICdZZXMnICkgewoKICAgICAgICAgICAgIyBHZXQgU1NMIGF1dGhlbnRpY2F0aW9uIHNldHRpbmdzLgogICAgICAgICAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoIFVzZVNTTCBTU0xQYXNzd29yZCBTU0xWZXJpZnlIb3N0bmFtZSBTU0xWZXJpZnlNb2RlICkpIHsKICAgICAgICAgICAgICAgICRUcmFuc3BvcnRDb25maWctPntTU0x9LT57JFBhcmFtTmFtZX0gPSAkR2V0UGFyYW0tPnskUGFyYW1OYW1lfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBQQVJBTU5BTUU6CiAgICAgICAgICAgIGZvciBteSAkUGFyYW1OYW1lIChxdyggU1NMQ2VydGlmaWNhdGUgU1NMS2V5IFNTTENBRmlsZSBTU0xDQURpciApKSB7CiAgICAgICAgICAgICAgICAkVHJhbnNwb3J0Q29uZmlnLT57U1NMfS0+eyRQYXJhbU5hbWV9ID0gJEdldFBhcmFtLT57JFBhcmFtTmFtZX07CgogICAgICAgICAgICAgICAgIyBDaGVjayBpZiBmaWxlL2RpcmVjdG9yeSBleGlzdHMgYW5kIGlzIGFjY2Vzc2libGUuCiAgICAgICAgICAgICAgICBuZXh0IFBBUkFNTkFNRSBpZiAhJEdldFBhcmFtLT57JFBhcmFtTmFtZX07CiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbU5hbWUgZXEgJ1NTTENBRGlyJyApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IFBBUkFNTkFNRSBpZiAtZCAkR2V0UGFyYW0tPnskUGFyYW1OYW1lfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIG5leHQgUEFSQU1OQU1FIGlmIC1mICRHZXRQYXJhbS0+eyRQYXJhbU5hbWV9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJEVycm9yeyAkUGFyYW1OYW1lIC4gJ1NlcnZlckVycm9yJyB9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3J7ICRQYXJhbU5hbWUgLiAnU2VydmVyRXJyb3JNZXNzYWdlJyB9ID0gVHJhbnNsYXRhYmxlKCdGaWxlIG9yIERpcmVjdG9yeSBub3QgZm91bmQuJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICRJbnZva2VycyA9ICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPnskQ29tbXVuaWNhdGlvblR5cGV9LT57SW52b2tlcn07CgogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJEludm9rZXJzKSApIHsKCiAgICAgICAgICAgIElOVk9LRVI6CiAgICAgICAgICAgIGZvciBteSAkQ3VycmVudEludm9rZXIgKCBzb3J0IGtleXMgJXskSW52b2tlcnN9ICkgewoKICAgICAgICAgICAgICAgIG15ICRDb250cm9sbGVyID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSgKICAgICAgICAgICAgICAgICAgICBQYXJhbSA9PiAnSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nJyAuICRDdXJyZW50SW52b2tlciwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCAhJENvbnRyb2xsZXIgKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yeyAnSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nJyAuICRDdXJyZW50SW52b2tlciAuICdTZXJ2ZXJFcnJvcicgfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yewogICAgICAgICAgICAgICAgICAgICAgICAnSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ3VycmVudEludm9rZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ1NlcnZlckVycm9yTWVzc2FnZScKICAgICAgICAgICAgICAgICAgICB9ID0gVHJhbnNsYXRhYmxlKCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJyk7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJTlZPS0VSOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRUcmFuc3BvcnRDb25maWctPntJbnZva2VyQ29udHJvbGxlck1hcHBpbmd9LT57JEN1cnJlbnRJbnZva2VyfS0+e0NvbnRyb2xsZXJ9ID0gJENvbnRyb2xsZXI7CgogICAgICAgICAgICAgICAgbXkgJENvbW1hbmQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKAogICAgICAgICAgICAgICAgICAgIFBhcmFtID0+ICdDb21tYW5kJyAuICRDdXJyZW50SW52b2tlcgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIG5leHQgSU5WT0tFUiBpZiAhJENvbW1hbmQ7CgogICAgICAgICAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+e0ludm9rZXJDb250cm9sbGVyTWFwcGluZ30tPnskQ3VycmVudEludm9rZXJ9LT57Q29tbWFuZH0gPSAkQ29tbWFuZDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIEdldCBwcm92aWRlciBzcGVjaWZpYyBzZXR0aW5ncy4KICAgIGVsc2UgewoKICAgICAgICBORUVERUQ6CiAgICAgICAgZm9yIG15ICROZWVkZWQgKHF3KCBNYXhMZW5ndGggS2VlcEFsaXZlICkpIHsKICAgICAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+eyROZWVkZWR9ID0gJEdldFBhcmFtLT57JE5lZWRlZH07CiAgICAgICAgICAgIG5leHQgTkVFREVEIGlmIGRlZmluZWQgJEdldFBhcmFtLT57JE5lZWRlZH07CgogICAgICAgICAgICAkRXJyb3J7ICROZWVkZWQgLiAnU2VydmVyRXJyb3InIH0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yeyAkTmVlZGVkIC4gJ1NlcnZlckVycm9yTWVzc2FnZScgfSA9IFRyYW5zbGF0YWJsZSgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcpOwogICAgICAgIH0KCiAgICAgICAgIyBTZXQgZXJyb3IgZm9yIG5vbiBpbnRlZ2VyIGNvbnRlbnQuCiAgICAgICAgaWYgKCAkR2V0UGFyYW0tPntNYXhMZW5ndGh9ICYmICFJc0ludGVnZXIoICRHZXRQYXJhbS0+e01heExlbmd0aH0gKSApIHsKICAgICAgICAgICAgJEVycm9ye01heExlbmd0aFNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3J7TWF4TGVuZ3RoU2VydmVyRXJyb3JNZXNzYWdlfSA9IFRyYW5zbGF0YWJsZSgnVGhpcyBmaWVsZCBzaG91bGQgYmUgYW4gaW50ZWdlci4nKTsKICAgICAgICB9CgogICAgICAgIG15ICRPcGVyYXRpb25zID0gJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+eyRDb21tdW5pY2F0aW9uVHlwZX0tPntPcGVyYXRpb259OwoKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRPcGVyYXRpb25zKSApIHsKCiAgICAgICAgICAgIE9QRVJBVElPTjoKICAgICAgICAgICAgZm9yIG15ICRDdXJyZW50T3BlcmF0aW9uICggc29ydCBrZXlzICV7JE9wZXJhdGlvbnN9ICkgewoKICAgICAgICAgICAgICAgIG15ICRSb3V0ZSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oCiAgICAgICAgICAgICAgICAgICAgUGFyYW0gPT4gJ1JvdXRlT3BlcmF0aW9uTWFwcGluZycgLiAkQ3VycmVudE9wZXJhdGlvbiwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCAhJFJvdXRlICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnsgJ1JvdXRlT3BlcmF0aW9uTWFwcGluZycgLiAkQ3VycmVudE9wZXJhdGlvbiAuICdTZXJ2ZXJFcnJvcicgfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgICRFcnJvcnsgJ1JvdXRlT3BlcmF0aW9uTWFwcGluZycgLiAkQ3VycmVudE9wZXJhdGlvbiAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnIH0gPSBUcmFuc2xhdGFibGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnKTsKICAgICAgICAgICAgICAgICAgICBuZXh0IE9QRVJBVElPTjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkVHJhbnNwb3J0Q29uZmlnLT57Um91dGVPcGVyYXRpb25NYXBwaW5nfS0+eyRDdXJyZW50T3BlcmF0aW9ufS0+e1JvdXRlfSA9ICRSb3V0ZTsKCiAgICAgICAgICAgICAgICBteSBAUmVxdWVzdE1ldGhvZCA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoCiAgICAgICAgICAgICAgICAgICAgUGFyYW0gPT4gJ1JlcXVlc3RNZXRob2QnIC4gJEN1cnJlbnRPcGVyYXRpb24sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgbmV4dCBPUEVSQVRJT04gaWYgIXNjYWxhciBAUmVxdWVzdE1ldGhvZDsKCiAgICAgICAgICAgICAgICAkVHJhbnNwb3J0Q29uZmlnLT57Um91dGVPcGVyYXRpb25NYXBwaW5nfS0+eyRDdXJyZW50T3BlcmF0aW9ufS0+e1JlcXVlc3RNZXRob2R9ID0gXEBSZXF1ZXN0TWV0aG9kOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIEdldCBhZGRpdGlvbmFsIGhlYWRlcnMuCiAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+e0FkZGl0aW9uYWxIZWFkZXJzfSA9ICRTZWxmLT5fR2V0QWRkaXRpb25hbEhlYWRlcnMoKTsKICAgIH0KCiAgICBteSAkT3BlcmF0aW9uVHlwZSA9ICRDb21tdW5pY2F0aW9uVHlwZSBlcSAnUmVxdWVzdGVyJyA/ICdJbnZva2VyJyA6ICdPcGVyYXRpb24nOwoKICAgICMgR2V0IG9wZXJhdGlvbnMgd2l0aCAocG90ZW50aWFsKSBzcGVjaWZpYyBoZWFkZXJzLgogICAgbXkgQE9wZXJhdGlvbk91dGJvdW5kSGVhZGVycyA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICdPcGVyYXRpb25PdXRib3VuZEhlYWRlcnNBY3RpdmUnICk7CgogICAgIyBDcmVhdGUgbG9va3VwIGZvciBNRDUgb3BlcmF0aW9uIG5hbWVzLgogICAgbXkgJU9wZXJhdGlvbk1ENUxvb2t1cDsKICAgIG15ICRNYWluT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKICAgIGZvciBteSAkT3BlcmF0aW9uICggc29ydCBrZXlzICV7ICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ317JENvbW11bmljYXRpb25UeXBlfXskT3BlcmF0aW9uVHlwZX0gLy8ge30gfSApIHsKICAgICAgICBteSAkT3BlcmF0aW9uTUQ1ID0gJE1haW5PYmplY3QtPk1ENXN1bSgKICAgICAgICAgICAgU3RyaW5nID0+IFwkT3BlcmF0aW9uLAogICAgICAgICk7CiAgICAgICAgJE9wZXJhdGlvbk1ENUxvb2t1cHskT3BlcmF0aW9uTUQ1fSA9ICRPcGVyYXRpb247CiAgICB9CgogICAgIyBHZXQgY29tbW9uIGFuZCBvcGVyYXRpb24gc3BlY2lmaWMgaGVhZGVycy4KICAgIG15IEBIZWFkZXJCbGFja2xpc3QgPSBAeyAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoICdHZW5lcmljSW50ZXJmYWNlOjonIC4gJE9wZXJhdGlvblR5cGUgLiAnOjpPdXRib3VuZEhlYWRlckJsYWNrbGlzdCcgKSAvLyBbXSB9OwoKICAgIG15ICVFcnJvckhlYWRlcnM7CiAgICBteSAlSGVhZGVyczsKICAgIE9QRVJBVElPTjoKICAgIGZvciBteSAkT3BlcmF0aW9uICggJycsIEBPcGVyYXRpb25PdXRib3VuZEhlYWRlcnMgKSB7CgogICAgICAgIG15ICRWYWx1ZUNvdW50ZXIgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKAogICAgICAgICAgICBQYXJhbSA9PiAnT3V0Ym91bmRIZWFkZXJzJyAuICRPcGVyYXRpb24gLiAnVmFsdWVDb3VudGVyJwogICAgICAgICk7CgogICAgICAgIG5leHQgT1BFUkFUSU9OIGlmICEkVmFsdWVDb3VudGVyOwoKICAgICAgICBteSAlVXNlZEtleXM7CiAgICAgICAgbXkgJEVycm9yVmFsdWVDb3VudGVyID0gMDsKICAgICAgICBJTkRFWDoKICAgICAgICBmb3IgbXkgJEluZGV4ICggMSAuLiAkVmFsdWVDb3VudGVyICkgewoKICAgICAgICAgICAgbXkgJEtleVBhcmFtICAgPSAnT3V0Ym91bmRIZWFkZXJzJyAuICRPcGVyYXRpb24gLiAnS2V5XycgLiAkSW5kZXg7CiAgICAgICAgICAgIG15ICRWYWx1ZVBhcmFtID0gJ091dGJvdW5kSGVhZGVycycgLiAkT3BlcmF0aW9uIC4gJ1ZhbHVlXycgLiAkSW5kZXg7CgogICAgICAgICAgICAjIFNraXAgZGVsZXRlZCBlbnRyaWVzLgogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAhZGVmaW5lZCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkS2V5UGFyYW0gKQogICAgICAgICAgICAgICAgJiYgIWRlZmluZWQgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFZhbHVlUGFyYW0gKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IElOREVYOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgKyskRXJyb3JWYWx1ZUNvdW50ZXI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRLZXlFcnJvclBhcmFtICAgPSAnT3V0Ym91bmRIZWFkZXJzJyAuICRPcGVyYXRpb24gLiAnS2V5XycgLiAkRXJyb3JWYWx1ZUNvdW50ZXI7CiAgICAgICAgICAgIG15ICRWYWx1ZUVycm9yUGFyYW0gPSAnT3V0Ym91bmRIZWFkZXJzJyAuICRPcGVyYXRpb24gLiAnVmFsdWVfJyAuICRFcnJvclZhbHVlQ291bnRlcjsKICAgICAgICAgICAgbXkgJEtleSAgICAgICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRLZXlQYXJhbSApICAgLy8gJyc7CiAgICAgICAgICAgIG15ICRWYWx1ZSAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkVmFsdWVQYXJhbSApIC8vICcnOwoKICAgICAgICAgICAgIyBSZW1lbWJlciB2YWx1ZXMgZm9yIGVkaXQgc2NyZWVuIChpbiBjYXNlIG9mIGVycm9ycykuCiAgICAgICAgICAgIGlmICgkT3BlcmF0aW9uKSB7CiAgICAgICAgICAgICAgICBwdXNoIEB7ICRFcnJvckhlYWRlcnN7U3BlY2lmaWN9eyRPcGVyYXRpb259IH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBLZXkgICA9PiAkS2V5LAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWUsCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHB1c2ggQHsgJEVycm9ySGVhZGVyc3tDb21tb259IH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBLZXkgICA9PiAkS2V5LAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWUsCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBEdXBsaWNhdGUga2V5IGRldGVjdGlvbi4KICAgICAgICAgICAgaWYgKCRLZXkpIHsKICAgICAgICAgICAgICAgIGlmICggJFVzZWRLZXlzeyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnsgJEtleUVycm9yUGFyYW0gLiAnU2VydmVyRXJyb3InIH0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICAkRXJyb3J7ICRLZXlFcnJvclBhcmFtIC4gJ1NlcnZlckVycm9yTWVzc2FnZScgfSA9IFRyYW5zbGF0YWJsZSgnVGhpcyBrZXkgaXMgYWxyZWFkeSB1c2VkJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoIGdyZXAgeyAkXyBlcSAkS2V5IH0gQEhlYWRlckJsYWNrbGlzdCApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3J7ICRLZXlFcnJvclBhcmFtIC4gJ1NlcnZlckVycm9yJyB9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yeyAkS2V5RXJyb3JQYXJhbSAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnIH0gPSBUcmFuc2xhdGFibGUoJ1RoaXMga2V5IGlzIG5vdCBhbGxvd2VkJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkVXNlZEtleXN7JEtleX0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIEVtcHR5IGtleS4KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkRXJyb3J7ICRLZXlFcnJvclBhcmFtIC4gJ1NlcnZlckVycm9yJyB9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3J7ICRLZXlFcnJvclBhcmFtIC4gJ1NlcnZlckVycm9yTWVzc2FnZScgfSA9IFRyYW5zbGF0YWJsZSgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoICFJc1N0cmluZ1dpdGhEYXRhKCRWYWx1ZSkgKSB7CiAgICAgICAgICAgICAgICAkRXJyb3J7ICRWYWx1ZUVycm9yUGFyYW0gLiAnU2VydmVyRXJyb3InIH0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRFcnJvcnsgJFZhbHVlRXJyb3JQYXJhbSAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnIH0gPSBUcmFuc2xhdGFibGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbmV4dCBJTkRFWAogICAgICAgICAgICAgICAgaWYgJEVycm9yeyAkS2V5RXJyb3JQYXJhbSAuICdTZXJ2ZXJFcnJvcicgfQogICAgICAgICAgICAgICAgfHwgJEVycm9yeyAkVmFsdWVFcnJvclBhcmFtIC4gJ1NlcnZlckVycm9yJyB9OwoKICAgICAgICAgICAgIyBPcGVyYXRpb24gc3BlY2lmaWMgaGVhZGVyCiAgICAgICAgICAgIGlmICgkT3BlcmF0aW9uKSB7CiAgICAgICAgICAgICAgICAkSGVhZGVyc3tTcGVjaWZpY317ICRPcGVyYXRpb25NRDVMb29rdXB7JE9wZXJhdGlvbn0gfS0+eyRLZXl9ID0gJFZhbHVlOwogICAgICAgICAgICAgICAgbmV4dCBJTkRFWDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBDb21tb24gaGVhZGVycwogICAgICAgICAgICAkSGVhZGVyc3tDb21tb259eyRLZXl9ID0gJFZhbHVlOwogICAgICAgIH0KICAgIH0KICAgICRUcmFuc3BvcnRDb25maWctPntPdXRib3VuZEhlYWRlcnN9ID0gXCVIZWFkZXJzOwoKICAgICMgU2V0IG5ldyBjb25maWd1cmF0aW9uLgogICAgJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfXskQ29tbXVuaWNhdGlvblR5cGV9e1RyYW5zcG9ydH17Q29uZmlnfSA9ICRUcmFuc3BvcnRDb25maWc7CgogICAgIyBJZiB0aGVyZSBpcyBhbiBlcnJvciByZXR1cm4gdG8gZWRpdCBzY3JlZW4uCiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCBcJUVycm9yICkgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fU2hvd0VkaXQoCiAgICAgICAgICAgICVFcnJvciwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBXZWJzZXJ2aWNlSUQgICAgICA9PiAkV2Vic2VydmljZUlELAogICAgICAgICAgICBXZWJzZXJ2aWNlRGF0YSAgICA9PiAkV2Vic2VydmljZURhdGEsCiAgICAgICAgICAgIENvbW11bmljYXRpb25UeXBlID0+ICRDb21tdW5pY2F0aW9uVHlwZSwKICAgICAgICAgICAgQWN0aW9uICAgICAgICAgICAgPT4gJ0NoYW5nZScsCgojIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICAgICAgT3V0cHV0ICAgICAgID0+ICRPdXRwdXQsCiAgICAgICAgICAgIExheW91dE9iamVjdCA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKCiMgRU8gLyBPQXV0aDIKICAgICAgICApOwogICAgfQoKICAgICMgT3RoZXJ3aXNlIHNhdmUgY29uZmlndXJhdGlvbiBhbmQgcmV0dXJuIHRvIG92ZXJ2aWV3IHNjcmVlbi4KICAgIG15ICRTdWNjZXNzID0gJFdlYnNlcnZpY2VPYmplY3QtPldlYnNlcnZpY2VVcGRhdGUoCiAgICAgICAgSUQgICAgICA9PiAkV2Vic2VydmljZUlELAogICAgICAgIE5hbWUgICAgPT4gJFdlYnNlcnZpY2VEYXRhLT57TmFtZX0sCiAgICAgICAgQ29uZmlnICA9PiAkV2Vic2VydmljZURhdGEtPntDb25maWd9LAogICAgICAgIFZhbGlkSUQgPT4gJFdlYnNlcnZpY2VEYXRhLT57VmFsaWRJRH0sCiAgICAgICAgVXNlcklEICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgSWYgdGhlIHVzZXIgd291bGQgbGlrZSB0byBjb250aW51ZSBlZGl0aW5nIHRoZSB0cmFuc3BvcnQgY29uZmlnLCBqdXN0IHJlZGlyZWN0IHRvIHRoZSBlZGl0IHNjcmVlbi4KICAgIGlmICgKICAgICAgICBkZWZpbmVkICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDb250aW51ZUFmdGVyU2F2ZScgKQogICAgICAgICYmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NvbnRpbnVlQWZ0ZXJTYXZlJyApIGVxICcxJyApCiAgICAgICAgKQogICAgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1DaGFuZ2U7V2Vic2VydmljZUlEPSRXZWJzZXJ2aWNlSUQ7Q29tbXVuaWNhdGlvblR5cGU9JENvbW11bmljYXRpb25UeXBlOyIsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIE90aGVyd2lzZSByZXR1cm4gdG8gb3ZlcnZpZXcuCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFkbWluR2VuZXJpY0ludGVyZmFjZVdlYnNlcnZpY2U7U3ViYWN0aW9uPUNoYW5nZTtXZWJzZXJ2aWNlSUQ9JFdlYnNlcnZpY2VJRDsiLAogICAgICAgICk7CiAgICB9Cn0KCnN1YiBfU2hvd0VkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiMgUm90aGVyIE9TUyAvIE9BdXRoMgojICAgIG15ICRMYXlvdXRPYmplY3QgPSAkUGFyYW17TGF5b3V0T2JqZWN0fTsKIwojICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKIyAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICBteSAkT3V0cHV0ICAgICAgID0gJFBhcmFte091dHB1dH07CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJFBhcmFte0NvbmZpZ09iamVjdH07CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJFBhcmFte0xheW91dE9iamVjdH07CiMgRU8gLyBPQXV0aDIKCiAgICAkUGFyYW17VHlwZX0gICAgICAgICAgID0gJ0hUVFA6OlJFU1QnOwogICAgJFBhcmFte1dlYnNlcnZpY2VOYW1lfSA9ICRQYXJhbXtXZWJzZXJ2aWNlRGF0YX0tPntOYW1lfTsKICAgIG15ICRUcmFuc3BvcnRDb25maWcgPSAkUGFyYW17V2Vic2VydmljZURhdGF9LT57Q29uZmlnfS0+eyAkUGFyYW17Q29tbXVuaWNhdGlvblR5cGV9IH0tPntUcmFuc3BvcnR9LT57Q29uZmlnfTsKCiAgICAjIEV4dHJhY3QgZGlzcGxheSBwYXJhbWV0ZXJzIGZyb20gdHJhbnNwb3J0IGNvbmZpZy4KICAgIGZvciBteSAkUGFyYW1OYW1lICgKICAgICAgICBxdygKICAgICAgICAgICAgSG9zdCBEZWZhdWx0Q29tbWFuZCBLZWVwQWxpdmUgTWF4TGVuZ3RoIFRpbWVvdXQKICAgICAgICAgICAgQWRkaXRpb25hbEhlYWRlcnMKICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgICRQYXJhbXskUGFyYW1OYW1lfSA9ICRUcmFuc3BvcnRDb25maWctPnskUGFyYW1OYW1lfTsKICAgIH0KCiMgUm90aGVyIE9TUyAvIE9BdXRoMgojICAgIGZvciBteSAkUGFyYW1OYW1lIChxdyggQXV0aFR5cGUgQmFzaWNBdXRoVXNlciBCYXNpY0F1dGhQYXNzd29yZCBLZXJiZXJvc1VzZXIgS2VyYmVyb3NLZXl0YWIpKSB7CiAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoIEF1dGhUeXBlIEJhc2ljQXV0aFVzZXIgQmFzaWNBdXRoUGFzc3dvcmQgS2VyYmVyb3NVc2VyIEtlcmJlcm9zS2V5dGFiIE9BdXRoQWNjb3VudE5hbWUpKSB7CiMgRU8gLyBPQXV0aDIKICAgICAgICAkUGFyYW17JFBhcmFtTmFtZX0gPSAkVHJhbnNwb3J0Q29uZmlnLT57QXV0aGVudGljYXRpb259LT57JFBhcmFtTmFtZX07CiAgICB9CiAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoIFVzZVNTTCBTU0xDZXJ0aWZpY2F0ZSBTU0xLZXkgU1NMUGFzc3dvcmQgU1NMQ0FGaWxlIFNTTENBRGlyIFNTTFZlcmlmeUhvc3RuYW1lIFNTTFZlcmlmeU1vZGUgKSkgewogICAgICAgICRQYXJhbXskUGFyYW1OYW1lfSA9ICRUcmFuc3BvcnRDb25maWctPntTU0x9LT57JFBhcmFtTmFtZX07CiAgICB9CiAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoIFVzZVByb3h5IFByb3h5SG9zdCBQcm94eVVzZXIgUHJveHlQYXNzd29yZCBQcm94eUV4Y2x1ZGUgKSkgewogICAgICAgICRQYXJhbXskUGFyYW1OYW1lfSA9ICRUcmFuc3BvcnRDb25maWctPntQcm94eX0tPnskUGFyYW1OYW1lfTsKICAgIH0KCiAgICBteSBAUG9zc2libGVSZXF1ZXN0TWV0aG9kcyA9IHF3KEdFVCBQT1NUIFBVVCBQQVRDSCBERUxFVEUgSEVBRCBPUFRJT05TIENPTk5FQ1QgVFJBQ0UpOwoKICAgICMgQ2hlY2sgaWYgY29tbXVuaWNhdGlvbiB0eXBlIGlzIHJlcXVlc3Rlci4KICAgIGlmICggJFBhcmFte0NvbW11bmljYXRpb25UeXBlfSBlcSAnUmVxdWVzdGVyJyApIHsKCiAgICAgICAgIyBjcmVhdGUgZGVmYXVsdCBjb21tYW5kIHR5cGVzIHNlbGVjdAogICAgICAgICRQYXJhbXtEZWZhdWx0Q29tbWFuZFN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIERhdGEgICAgICAgICAgPT4gXEBQb3NzaWJsZVJlcXVlc3RNZXRob2RzLAogICAgICAgICAgICBOYW1lICAgICAgICAgID0+ICdEZWZhdWx0Q29tbWFuZCcsCiAgICAgICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFBhcmFte0RlZmF1bHRDb21tYW5kfSB8fCAnR0VUJywKICAgICAgICAgICAgU29ydCAgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICBDbGFzcyAgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIFRpbWVvdXQgc2VsZWN0LgogICAgICAgICRQYXJhbXtUaW1lb3V0U3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgICA9PiBbICczMCcsICc2MCcsICc5MCcsICcxMjAnLCAnMTUwJywgJzE4MCcsICcyMTAnLCAnMjQwJywgJzI3MCcsICczMDAnIF0sCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1RpbWVvdXQnLAogICAgICAgICAgICBTZWxlY3RlZFZhbHVlID0+ICRQYXJhbXtUaW1lb3V0fSB8fCAnMTIwJywKICAgICAgICAgICAgU29ydCAgICAgICAgICA9PiAnTnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgQ2xhc3MgICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiAgICAgICAgbXkgJEZ1bmN0aW9uYWxBY2NvdW50cyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpGdW5jdGlvbmFsQWNjb3VudHMnKTsKCiAgICAgICAgbXkgQE9BdXRoQWNjb3VudE5hbWVzOwogICAgICAgIG15ICRPQXV0aEFjY291bnRzID0gJEZ1bmN0aW9uYWxBY2NvdW50cy0+R2V0QWNjb3VudHMoKTsKCiAgICAgICAgZm9yIG15ICRBY2NvdW50IChAJE9BdXRoQWNjb3VudHMpIHsKICAgICAgICAgICAgcHVzaCBAT0F1dGhBY2NvdW50TmFtZXMsICRBY2NvdW50LT57TmFtZX07CiAgICAgICAgfQojIEVPIC8gT0F1dGgyCgogICAgICAgICMgQ3JlYXRlIEF1dGhlbnRpY2F0aW9uIHR5cGVzIHNlbGVjdC4KICAgICAgICAkUGFyYW17QXV0aGVudGljYXRpb25TdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiMgICAgICAgICAgICBEYXRhICAgICAgICAgID0+IFsgJ0Jhc2ljQXV0aCcsICdLZXJiZXJvcycgXSwKICAgICAgICAgICAgRGF0YSA9PiBbICdCYXNpY0F1dGgnLCAnS2VyYmVyb3MnLCAnT0F1dGgnIF0sCiMgRU8gLyBPQXV0aDIKICAgICAgICAgICAgTmFtZSAgICAgICAgICA9PiAnQXV0aFR5cGUnLAogICAgICAgICAgICBTZWxlY3RlZFZhbHVlID0+ICRQYXJhbXtBdXRoVHlwZX0gfHwgJy0nLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgID0+IDEsCiAgICAgICAgICAgIFNvcnQgICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgQ2xhc3MgICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiAgICAgICAgJFBhcmFte09BdXRoQWNjb3VudE5hbWVzU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgICA9PiBcQE9BdXRoQWNjb3VudE5hbWVzLAogICAgICAgICAgICBOYW1lICAgICAgICAgID0+ICdPQXV0aEFjY291bnROYW1lJywKICAgICAgICAgICAgU2VsZWN0ZWRWYWx1ZSA9PiAkUGFyYW17T0F1dGhBY2NvdW50TmFtZX0gfHwgJE9BdXRoQWNjb3VudE5hbWVzWzBdLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgID0+IDAsCiAgICAgICAgICAgIFNvcnQgICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgQ2xhc3MgICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwojIEVPIC8gT0F1dGgyCgogICAgICAgICMgSGlkZSBhbmQgZGlzYWJsZSBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGlmIHRoZXkgYXJlIG5vdCBzZWxlY3RlZC4KICAgICAgICAkUGFyYW17QmFzaWNBdXRoSGlkZGVufSA9ICdIaWRkZW4nOwogICAgICAgICRQYXJhbXtLZXJiZXJvc0hpZGRlbn0gID0gJ0hpZGRlbic7CgojIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICAkUGFyYW17T0F1dGhIaWRkZW59ID0gJ0hpZGRlbic7CiMgRU8gLyBPQXV0aDIKCiAgICAgICAgaWYgKCAkUGFyYW17QXV0aFR5cGV9ICYmICRQYXJhbXtBdXRoVHlwZX0gZXEgJ0Jhc2ljQXV0aCcgKSB7CiAgICAgICAgICAgICRQYXJhbXtCYXNpY0F1dGhIaWRkZW59ICAgICAgICAgICAgICAgICAgID0gJyc7CiAgICAgICAgICAgICRQYXJhbXtCYXNpY0F1dGhVc2VyU2VydmVyRXJyb3J9ICAgICAgICAgID0gJ1ZhbGlkYXRlX1JlcXVpcmVkJzsKICAgICAgICAgICAgJFBhcmFte0Jhc2ljQXV0aFBhc3N3b3JkVmFsaWRhdGVSZXF1aXJlZH0gPSAnVmFsaWRhdGVfUmVxdWlyZWQnOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRQYXJhbXtBdXRoVHlwZX0gJiYgJFBhcmFte0F1dGhUeXBlfSBlcSAnS2VyYmVyb3MnICkgewogICAgICAgICAgICAkUGFyYW17S2VyYmVyb3NIaWRkZW59ICAgICAgICAgICAgICAgICA9ICcnOwogICAgICAgICAgICAkUGFyYW17S2VyYmVyb3NVc2VyU2VydmVyRXJyb3J9ICAgICAgICA9ICdWYWxpZGF0ZV9SZXF1aXJlZCc7CiAgICAgICAgICAgICRQYXJhbXtLZXJiZXJvc0tleXRhYlZhbGlkYXRlUmVxdWlyZWR9ID0gJ1ZhbGlkYXRlX1JlcXVpcmVkJzsKICAgICAgICB9CgojIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICBlbHNpZiAoICRQYXJhbXtBdXRoVHlwZX0gJiYgJFBhcmFte0F1dGhUeXBlfSBlcSAnT0F1dGgnICkgewogICAgICAgICAgICAkUGFyYW17T0F1dGhIaWRkZW59ID0gJyc7CiAgICAgICAgfQojIEVPIC8gT0F1dGgyCgogICAgICAgICMgQ3JlYXRlIHVzZSBQcm94eSBzZWxlY3QuCiAgICAgICAgJFBhcmFte1VzZVByb3h5U3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAnTm8nICA9PiBUcmFuc2xhdGFibGUoJ05vJyksCiAgICAgICAgICAgICAgICAnWWVzJyA9PiBUcmFuc2xhdGFibGUoJ1llcycpLAogICAgICAgICAgICB9LAogICAgICAgICAgICBOYW1lICAgICAgICAgID0+ICdVc2VQcm94eScsCiAgICAgICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFBhcmFte1VzZVByb3h5fSB8fCBUcmFuc2xhdGFibGUoJ05vJyksCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgPT4gMCwKICAgICAgICAgICAgU29ydCAgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICBDbGFzcyAgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIFByb3h5IGV4Y2x1ZGUgc2VsZWN0LgogICAgICAgICRQYXJhbXtQcm94eUV4Y2x1ZGVTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICdObycgID0+IFRyYW5zbGF0YWJsZSgnTm8nKSwKICAgICAgICAgICAgICAgICdZZXMnID0+IFRyYW5zbGF0YWJsZSgnWWVzJyksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1Byb3h5RXhjbHVkZScsCiAgICAgICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFBhcmFte1Byb3h5RXhjbHVkZX0gfHwgVHJhbnNsYXRhYmxlKCdObycpLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgID0+IDAsCiAgICAgICAgICAgIFNvcnQgICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgQ2xhc3MgICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwoKICAgICAgICAjIEhpZGUgYW5kIGRpc2FibGUgUHJveHkgb3B0aW9ucyBpZiB0aGV5IGFyZSBub3Qgc2VsZWN0ZWQuCiAgICAgICAgJFBhcmFte1Byb3h5SGlkZGVufSA9ICdIaWRkZW4nOwogICAgICAgIGlmICggJFBhcmFte1VzZVByb3h5fSAmJiAkUGFyYW17VXNlUHJveHl9IGVxICdZZXMnICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtQcm94eUhpZGRlbn0gPSAnJzsKICAgICAgICB9CgogICAgICAgICMgQ3JlYXRlIHVzZSBTU0wgc2VsZWN0LgogICAgICAgICRQYXJhbXtVc2VTU0xTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICdObycgID0+IFRyYW5zbGF0YWJsZSgnTm8nKSwKICAgICAgICAgICAgICAgICdZZXMnID0+IFRyYW5zbGF0YWJsZSgnWWVzJyksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1VzZVNTTCcsCiAgICAgICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFBhcmFte1VzZVNTTH0gfHwgVHJhbnNsYXRhYmxlKCdObycpLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgID0+IDAsCiAgICAgICAgICAgIFNvcnQgICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgQ2xhc3MgICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSBub3ZlcmlmeV9ob3N0bmFtZSBzZWxlY3Rpb24uCiAgICAgICAgJFBhcmFte1NTTFZlcmlmeUhvc3RTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICdZZXMnID0+IFRyYW5zbGF0YWJsZSgnWWVzJyksCiAgICAgICAgICAgICAgICAnTm8nICA9PiBUcmFuc2xhdGFibGUoJ05vJyksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1NTTFZlcmlmeUhvc3RuYW1lJywKICAgICAgICAgICAgU2VsZWN0ZWRWYWx1ZSA9PiAkUGFyYW17U1NMVmVyaWZ5SG9zdG5hbWV9IHx8IFRyYW5zbGF0YWJsZSgnWWVzJyksCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgPT4gMCwKICAgICAgICAgICAgU29ydCAgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICBDbGFzcyAgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIG5vdmVyaWZ5X21vZGUgc2VsZWN0aW9uLgogICAgICAgICRQYXJhbXtTU0xWZXJpZnlNb2RlU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAnWWVzJyA9PiBUcmFuc2xhdGFibGUoJ1llcycpLAogICAgICAgICAgICAgICAgJ05vJyAgPT4gVHJhbnNsYXRhYmxlKCdObycpLAogICAgICAgICAgICB9LAogICAgICAgICAgICBOYW1lICAgICAgICAgID0+ICdTU0xWZXJpZnlNb2RlJywKICAgICAgICAgICAgU2VsZWN0ZWRWYWx1ZSA9PiAkUGFyYW17U1NMVmVyaWZ5TW9kZX0gfHwgVHJhbnNsYXRhYmxlKCdZZXMnKSwKICAgICAgICAgICAgUG9zc2libGVOb25lICA9PiAwLAogICAgICAgICAgICBTb3J0ICAgICAgICAgID0+ICdBbHBoYW51bWVyaWNWYWx1ZScsCiAgICAgICAgICAgIENsYXNzICAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgKTsKCiAgICAgICAgIyBIaWRlIGFuZCBkaXNhYmxlIFNTTCBvcHRpb25zIGlmIHRoZXkgYXJlIG5vdCBzZWxlY3RlZC4KICAgICAgICAkUGFyYW17U1NMSGlkZGVufSA9ICdIaWRkZW4nOwogICAgICAgIGlmICggJFBhcmFte1VzZVNTTH0gJiYgJFBhcmFte1VzZVNTTH0gZXEgJ1llcycgKQogICAgICAgIHsKICAgICAgICAgICAgJFBhcmFte1NTTEhpZGRlbn0gPSAnJzsKICAgICAgICB9CgogICAgICAgIG15ICRJbnZva2VycyA9ICRQYXJhbXtXZWJzZXJ2aWNlRGF0YX0tPntDb25maWd9LT57ICRQYXJhbXtDb21tdW5pY2F0aW9uVHlwZX0gfS0+e0ludm9rZXJ9OwogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJEludm9rZXJzKSApIHsKCiAgICAgICAgICAgIGZvciBteSAkQ3VycmVudEludm9rZXIgKCBzb3J0IGtleXMgJXskSW52b2tlcnN9ICkgewoKICAgICAgICAgICAgICAgIG15ICRDb21tYW5kU3RyZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICAgPT4gXEBQb3NzaWJsZVJlcXVlc3RNZXRob2RzLAogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0NvbW1hbmQnIC4gJEN1cnJlbnRJbnZva2VyLAogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkVmFsdWUgPT4KICAgICAgICAgICAgICAgICAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+e0ludm9rZXJDb250cm9sbGVyTWFwcGluZ30tPnskQ3VycmVudEludm9rZXJ9LT57Q29tbWFuZH0KICAgICAgICAgICAgICAgICAgICAgICAgfHwgJy0nLAogICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgICAgIFNvcnQgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgSW52b2tlciAgICAgICAgICAgID0+ICRDdXJyZW50SW52b2tlciwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlciAgICAgICAgID0+ICRUcmFuc3BvcnRDb25maWctPntJbnZva2VyQ29udHJvbGxlck1hcHBpbmd9LT57JEN1cnJlbnRJbnZva2VyfS0+e0NvbnRyb2xsZXJ9LAogICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kU3RyZyAgICAgICAgPT4gJENvbW1hbmRTdHJnLAogICAgICAgICAgICAgICAgICAgICAgICBTZXJ2ZXJFcnJvciAgICAgICAgPT4gJFBhcmFteyAnSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nJyAuICRDdXJyZW50SW52b2tlciAuICdTZXJ2ZXJFcnJvcicgfSB8fCAnJywKICAgICAgICAgICAgICAgICAgICAgICAgU2VydmVyRXJyb3JNZXNzYWdlID0+ICRQYXJhbXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdJbnZva2VyQ29udHJvbGxlck1hcHBpbmcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ3VycmVudEludm9rZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAnJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIENoZWNrIGlmIGNvbW11bmljYXRpb24gdHlwZSBpcyByZXF1ZXN0ZXIuCiAgICBlbHNpZiAoICRQYXJhbXtDb21tdW5pY2F0aW9uVHlwZX0gZXEgJ1Byb3ZpZGVyJyApIHsKICAgICAgICBteSAkT3BlcmF0aW9ucyA9ICRQYXJhbXtXZWJzZXJ2aWNlRGF0YX0tPntDb25maWd9LT57ICRQYXJhbXtDb21tdW5pY2F0aW9uVHlwZX0gfS0+e09wZXJhdGlvbn07CiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkT3BlcmF0aW9ucykgKSB7CgogICAgICAgICAgICBmb3IgbXkgJEN1cnJlbnRPcGVyYXRpb24gKCBzb3J0IGtleXMgJXskT3BlcmF0aW9uc30gKSB7CgogICAgICAgICAgICAgICAgbXkgJFJlcXVlc3RNZXRob2RTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgICA9PiBcQFBvc3NpYmxlUmVxdWVzdE1ldGhvZHMsCiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICA9PiAnUmVxdWVzdE1ldGhvZCcgLiAkQ3VycmVudE9wZXJhdGlvbiwKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZFZhbHVlID0+ICRUcmFuc3BvcnRDb25maWctPntSb3V0ZU9wZXJhdGlvbk1hcHBpbmd9LT57JEN1cnJlbnRPcGVyYXRpb259LT57UmVxdWVzdE1ldGhvZH0KICAgICAgICAgICAgICAgICAgICAgICAgfHwgWyctJ10sCiAgICAgICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgICAgICAgICAgTXVsdGlwbGUgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgU29ydCAgICAgICAgID0+ICdBbHBoYW51bWVyaWNWYWx1ZScsCiAgICAgICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSb3V0ZU9wZXJhdGlvbk1hcHBpbmcnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb24gICAgICAgICAgPT4gJEN1cnJlbnRPcGVyYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgIFJvdXRlICAgICAgICAgICAgICA9PiAkVHJhbnNwb3J0Q29uZmlnLT57Um91dGVPcGVyYXRpb25NYXBwaW5nfS0+eyRDdXJyZW50T3BlcmF0aW9ufS0+e1JvdXRlfSwKICAgICAgICAgICAgICAgICAgICAgICAgUmVxdWVzdE1ldGhvZFN0cmcgID0+ICRSZXF1ZXN0TWV0aG9kU3RyZywKICAgICAgICAgICAgICAgICAgICAgICAgU2VydmVyRXJyb3IgICAgICAgID0+ICRQYXJhbXsgJ1JvdXRlT3BlcmF0aW9uTWFwcGluZycgLiAkQ3VycmVudE9wZXJhdGlvbiAuICdTZXJ2ZXJFcnJvcicgfSB8fCAnJywKICAgICAgICAgICAgICAgICAgICAgICAgU2VydmVyRXJyb3JNZXNzYWdlID0+ICRQYXJhbXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSb3V0ZU9wZXJhdGlvbk1hcHBpbmcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ3VycmVudE9wZXJhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ1NlcnZlckVycm9yTWVzc2FnZScKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkUGFyYW17S2VlcEFsaXZlU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAwID0+IFRyYW5zbGF0YWJsZSgnTm8nKSwKICAgICAgICAgICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCdZZXMnKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdLZWVwQWxpdmUnLAogICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJFBhcmFte0tlZXBBbGl2ZX0gfHwgMCwKICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDAsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAxLAogICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIENvbW1vbiBwYXJhbXMgZmlyc3QuCiAgICBteSBAQ29tbW9uSGVhZGVyczsKICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17RXJyb3JIZWFkZXJzfXtDb21tb259ICkgKSB7CiAgICAgICAgQENvbW1vbkhlYWRlcnMgPSBAeyAkUGFyYW17RXJyb3JIZWFkZXJzfXtDb21tb259IH07CiAgICB9CgogICAgIyBGYWxsYmFjayBmb3IgcHJldmlvdXNseSB1c2VkICdhZGRpdGlvbmFsIHJlc3BvbnNlIGhlYWRlcnMnLgogICAgZWxzaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFRyYW5zcG9ydENvbmZpZy0+e0FkZGl0aW9uYWxIZWFkZXJzfSApICkgewogICAgICAgIEBDb21tb25IZWFkZXJzID0gbWFwIHsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJF8sCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVHJhbnNwb3J0Q29uZmlnLT57QWRkaXRpb25hbEhlYWRlcnN9eyRffQogICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc29ydCBrZXlzICV7ICRUcmFuc3BvcnRDb25maWctPntBZGRpdGlvbmFsSGVhZGVyc30gfTsKICAgIH0KICAgIGVsc2lmICgKICAgICAgICBJc0hhc2hSZWZXaXRoRGF0YSggJFRyYW5zcG9ydENvbmZpZy0+e091dGJvdW5kSGVhZGVyc317Q29tbW9ufSApCiAgICAgICAgKQogICAgewogICAgICAgIEBDb21tb25IZWFkZXJzID0gbWFwIHsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJF8sCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVHJhbnNwb3J0Q29uZmlnLT57T3V0Ym91bmRIZWFkZXJzfXtDb21tb259eyRffQogICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc29ydCBrZXlzICV7ICRUcmFuc3BvcnRDb25maWctPntPdXRib3VuZEhlYWRlcnN9e0NvbW1vbn0gfTsKICAgIH0KCiAgICAkUGFyYW17T3V0Ym91bmRIZWFkZXJzVmFsdWVDb3VudGVyfSA9CiAgICAgICAgQENvbW1vbkhlYWRlcnMgPyBzY2FsYXIgQENvbW1vbkhlYWRlcnMgOiAwOwoKICAgICMgR2VuZXJhdGUgcGFyYW1zIGZvciBvdXRib3VuZCBoZWFkZXJzLgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3V0Ym91bmRIZWFkZXJzJywKICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCB9LAogICAgKTsKCiAgICBpZiAoQENvbW1vbkhlYWRlcnMpIHsKICAgICAgICBteSAkVmFsdWVDb3VudGVyID0gMDsKCiAgICAgICAgZm9yIG15ICRSb3cgKEBDb21tb25IZWFkZXJzKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3V0Ym91bmRIZWFkZXJzVmFsdWVSb3cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgIEtleSAgICAgICAgICA9PiAkUm93LT57S2V5fSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZUNvdW50ZXIgPT4gKyskVmFsdWVDb3VudGVyLAogICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICA9PiAkUm93LT57VmFsdWV9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgfQoKICAgICMgTm93IG9wZXJhdGlvbiBzcGVjaWZpYyBoZWFkZXJzLgogICAgbXkgJE9wZXJhdGlvbnNGb3JPdXRib3VuZEhlYWRlcnM7CiAgICBpZiAoICRQYXJhbXtDb21tdW5pY2F0aW9uVHlwZX0gZXEgJ1JlcXVlc3RlcicgKSB7CiAgICAgICAgJE9wZXJhdGlvbnNGb3JPdXRib3VuZEhlYWRlcnMgPQogICAgICAgICAgICAkUGFyYW17V2Vic2VydmljZURhdGF9e0NvbmZpZ317UmVxdWVzdGVyfXtJbnZva2VyfTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRPcGVyYXRpb25zRm9yT3V0Ym91bmRIZWFkZXJzID0KICAgICAgICAgICAgJFBhcmFte1dlYnNlcnZpY2VEYXRhfXtDb25maWd9e1Byb3ZpZGVyfXtPcGVyYXRpb259OwogICAgfQoKICAgIG15ICVTcGVjaWZpY0hlYWRlcnM7CiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17RXJyb3JIZWFkZXJzfXtTcGVjaWZpY30gKSApIHsKICAgICAgICAlU3BlY2lmaWNIZWFkZXJzID0gJXsgJFBhcmFte0Vycm9ySGVhZGVyc317U3BlY2lmaWN9IH07CiAgICB9CiAgICBlbHNpZiAoCiAgICAgICAgSXNIYXNoUmVmV2l0aERhdGEoICRUcmFuc3BvcnRDb25maWctPntPdXRib3VuZEhlYWRlcnN9e1NwZWNpZmljfSApCiAgICAgICAgKQogICAgewogICAgICAgIGZvciBteSAkT3BlcmF0aW9uICgKICAgICAgICAgICAgc29ydCBrZXlzICV7ICRUcmFuc3BvcnRDb25maWctPntPdXRib3VuZEhlYWRlcnN9e1NwZWNpZmljfSB9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRTcGVjaWZpY0hlYWRlcnN7JE9wZXJhdGlvbn0gPSBbCiAgICAgICAgICAgICAgICBtYXAgewogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gJF8sCiAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRUcmFuc3BvcnRDb25maWctPntPdXRib3VuZEhlYWRlcnN9e1NwZWNpZmljfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyRPcGVyYXRpb259eyRffQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBzb3J0IGtleXMgJXsKICAgICAgICAgICAgICAgICAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+e091dGJvdW5kSGVhZGVyc317U3BlY2lmaWN9CiAgICAgICAgICAgICAgICAgICAgICAgIHskT3BlcmF0aW9ufQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkT3BlcmF0aW9uc0Zvck91dGJvdW5kSGVhZGVycykgKSB7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdXRib3VuZEhlYWRlcnNPcGVyYXRpb25TcGVjaWZpYycsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sIH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJE1haW5PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpOwogICAgICAgIG15IEBTZWxlY3Rpb25EYXRhOwogICAgICAgIE9QRVJBVElPTjoKICAgICAgICBmb3IgbXkgJE9wZXJhdGlvbiAoIHNvcnQga2V5cyAleyRPcGVyYXRpb25zRm9yT3V0Ym91bmRIZWFkZXJzfSApIHsKICAgICAgICAgICAgbXkgJE9wZXJhdGlvbk1ENSA9ICRNYWluT2JqZWN0LT5NRDVzdW0oCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gXCRPcGVyYXRpb24sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSAkSGF2ZU9wZXJhdGlvbkNvbmZpZyA9CiAgICAgICAgICAgICAgICBJc0FycmF5UmVmV2l0aERhdGEoICRTcGVjaWZpY0hlYWRlcnN7JE9wZXJhdGlvbn0gKSA/IDEgOiAwOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdXRib3VuZEhlYWRlcnNPcGVyYXRpb25TcGVjaWZpY0VudHJ5JywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvbiA9PiAkT3BlcmF0aW9uTUQ1LAogICAgICAgICAgICAgICAgICAgIEFjdGl2ZSAgICA9PiAkSGF2ZU9wZXJhdGlvbkNvbmZpZwogICAgICAgICAgICAgICAgICAgID8gJ0hlYWRlckNvbnRhaW5lckFjdGl2ZScKICAgICAgICAgICAgICAgICAgICA6ICcnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICggISRIYXZlT3BlcmF0aW9uQ29uZmlnICkgewogICAgICAgICAgICAgICAgcHVzaCBAU2VsZWN0aW9uRGF0YSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICRPcGVyYXRpb25NRDUsCiAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRPcGVyYXRpb24sCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIG5leHQgT1BFUkFUSU9OOwogICAgICAgICAgICB9CgogICAgICAgICAgICBwdXNoIEBTZWxlY3Rpb25EYXRhLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEtleSAgICAgID0+ICRPcGVyYXRpb25NRDUsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gJE9wZXJhdGlvbiwKICAgICAgICAgICAgICAgICAgICBEaXNhYmxlZCA9PiAxLAogICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIG15ICRWYWx1ZXNVc2VkQ291bnQgPSBAeyAkU3BlY2lmaWNIZWFkZXJzeyRPcGVyYXRpb259IH07CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU3BlY2lmaWNFbnRyeVZhbHVlJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvbiAgICAgPT4gJE9wZXJhdGlvbk1ENSwKICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25OYW1lID0+ICRPcGVyYXRpb24sCiAgICAgICAgICAgICAgICAgICAgVmFsdWVDb3VudGVyICA9PiAkVmFsdWVzVXNlZENvdW50LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15ICRWYWx1ZUNvdW50ZXIgPSAwOwogICAgICAgICAgICBmb3IgbXkgJFJvdyAoIEB7ICRTcGVjaWZpY0hlYWRlcnN7JE9wZXJhdGlvbn0gfSApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ091dGJvdW5kSGVhZGVyc09wZXJhdGlvblNwZWNpZmljRW50cnlWYWx1ZVJvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uICAgID0+ICRPcGVyYXRpb25NRDUsCiAgICAgICAgICAgICAgICAgICAgICAgIEtleSAgICAgICAgICA9PiAkUm93LT57S2V5fSwKICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVDb3VudGVyID0+ICsrJFZhbHVlQ291bnRlciwKICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgICAgID0+ICRSb3ctPntWYWx1ZX0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgR2VuZXJhdGUgbGlzdCBvZiBhdmFpbGFibGUgKHVudXNlZCkgb3BlcmF0aW9ucyBmb3Igb3V0Ym91bmQgaGVhZGVyIHNlbGVjdGlvbi4KICAgICAgICAkUGFyYW17T3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU2VsZWN0aW9uU3RyZ30gPQogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcQFNlbGVjdGlvbkRhdGEsCiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ091dGJvdW5kSGVhZGVyc09wZXJhdGlvblNlbGVjdGlvbicsCiAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU2VsZWN0aW9uJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgfSwKICAgICAgICApOwogICAgfQoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1QnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7ICVQYXJhbSwgfSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX0dldFBhcmFtcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICBteSAkR2V0UGFyYW07CgogICAgIyBHZXQgcGFyYW1ldGVycyBmcm9tIHdlYiBicm93c2VyLgogICAgZm9yIG15ICRQYXJhbU5hbWUgKAoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiMgICAgICAgIHF3KAojICAgICAgICAgICAgSG9zdCBEZWZhdWx0Q29tbWFuZCBNYXhMZW5ndGggS2VlcEFsaXZlIFRpbWVvdXQKIyAgICAgICAgICAgIEF1dGhUeXBlIENyZWRlbnRpYWxJRCBCYXNpY0F1dGhVc2VyIEJhc2ljQXV0aFBhc3N3b3JkCiMgICAgICAgICAgICBLZXJiZXJvc1VzZXIgS2VyYmVyb3NLZXl0YWIgQmVhcmVyQXV0aFRva2VuIFVzZVByb3h5CiMgICAgICAgICAgICBQcm94eUhvc3QgUHJveHlVc2VyIFByb3h5UGFzc3dvcmQgUHJveHlFeGNsdWRlIFVzZVNTTAojICAgICAgICAgICAgU1NMQ2VydGlmaWNhdGUgU1NMS2V5IFNTTFBhc3N3b3JkIFNTTENBRmlsZSBTU0xDQURpcgojICAgICAgICAgICAgU1NMVmVyaWZ5SG9zdG5hbWUgU1NMVmVyaWZ5TW9kZQojICAgICAgICApCiAgICAgICAgcXcoCiAgICAgICAgICAgIEhvc3QgRGVmYXVsdENvbW1hbmQgTWF4TGVuZ3RoIEtlZXBBbGl2ZSBUaW1lb3V0CiAgICAgICAgICAgIEF1dGhUeXBlIENyZWRlbnRpYWxJRCBCYXNpY0F1dGhVc2VyIEJhc2ljQXV0aFBhc3N3b3JkCiAgICAgICAgICAgIEtlcmJlcm9zVXNlciBLZXJiZXJvc0tleXRhYiBCZWFyZXJBdXRoVG9rZW4gVXNlUHJveHkKICAgICAgICAgICAgUHJveHlIb3N0IFByb3h5VXNlciBQcm94eVBhc3N3b3JkIFByb3h5RXhjbHVkZSBVc2VTU0wKICAgICAgICAgICAgU1NMQ2VydGlmaWNhdGUgU1NMS2V5IFNTTFBhc3N3b3JkIFNTTENBRmlsZSBTU0xDQURpcgogICAgICAgICAgICBTU0xWZXJpZnlIb3N0bmFtZSBTU0xWZXJpZnlNb2RlIE9BdXRoQWNjb3VudE5hbWUKICAgICAgICApCiMgRU8gLyBPQXV0aDIKICAgICAgICApCiAgICB7CiAgICAgICAgJEdldFBhcmFtLT57JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICkgfHwgJyc7CiAgICB9CiAgICByZXR1cm4gJEdldFBhcmFtOwp9CgpzdWIgX0dldEFkZGl0aW9uYWxIZWFkZXJzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgR2V0IFZhbHVlQ291bnRlcnMuCiAgICBteSAkVmFsdWVDb3VudGVyID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1ZhbHVlQ291bnRlcicgKSB8fCAwOwoKICAgICMgR2V0IHBvc3NpYmxlIHZhbHVlcy4KICAgIG15ICRBZGRpdGlvbmFsSGVhZGVyQ29uZmlnOwogICAgVkFMVUVJTkRFWDoKICAgIGZvciBteSAkVmFsdWVJbmRleCAoIDEgLi4gJFZhbHVlQ291bnRlciApIHsKICAgICAgICBteSAkS2V5ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0tleScgLiAnXycgLiAkVmFsdWVJbmRleCApIC8vICcnOwoKICAgICAgICAjIENoZWNrIGlmIGtleSB3YXMgZGVsZXRlZCBieSB0aGUgdXNlciBhbmQgc2tpcCBpdC4KICAgICAgICBuZXh0IFZBTFVFSU5ERVggaWYgJEtleSBlcSAkU2VsZi0+e0RlbGV0ZWRTdHJpbmd9OwoKICAgICAgICAjIFNraXAgZW1wdHkga2V5LgogICAgICAgIG5leHQgVkFMVUVJTkRFWCBpZiAkS2V5IGVxICcnOwoKICAgICAgICBteSAkVmFsdWUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVmFsdWUnIC4gJ18nIC4gJFZhbHVlSW5kZXggKSAvLyAnJzsKICAgICAgICAkQWRkaXRpb25hbEhlYWRlckNvbmZpZy0+eyRLZXl9ID0gJFZhbHVlOwogICAgfQoKICAgIHJldHVybiAkQWRkaXRpb25hbEhlYWRlckNvbmZpZzsKfQoKMTsK</File>
        <File Location="Custom/Kernel/Output/HTML/Templates/Standard/AdminGenericInterfaceTransportHTTPREST.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSBkY2ZiMDhjNDQ0MTQzM2Y5OTkyY2QwYTBjNmNhNmUyNDBhYTU2YTQ2IC0gS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbkdlbmVyaWNJbnRlcmZhY2VUcmFuc3BvcnRIVFRQUkVTVC50dAojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QgQWRtaW5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1QiPgogICAgPGgxIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoICJHZW5lcmljSW50ZXJmYWNlIFdlYiBTZXJ2aWNlIE1hbmFnZW1lbnQiICkgfCBodG1sICVdPC9oMT4KCiAgICBbJSBVU0UgQnJlYWRjcnVtYkxpbmsgPSBTdHJpbmcoICJBZG1pbkdlbmVyaWNJbnRlcmZhY2VXZWJzZXJ2aWNlIiApICVdCiAgICBbJSBVU0UgSFRUUFJFU1ROYW1lICAgPSBTdHJpbmcoIERhdGEuQ29tbXVuaWNhdGlvblR5cGUgKSAlXQoKICAgIFslIEJyZWFkY3J1bWJQYXRoID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lID0+IFRyYW5zbGF0ZSggJ1dlYiBTZXJ2aWNlIE1hbmFnZW1lbnQnICksCiAgICAgICAgICAgICAgICBMaW5rID0+IEJyZWFkY3J1bWJMaW5rLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lID0+IERhdGEuV2Vic2VydmljZU5hbWUsCiAgICAgICAgICAgICAgICBMaW5rID0+IEJyZWFkY3J1bWJMaW5rLmNvcHkuYXBwZW5kKCAiO1N1YmFjdGlvbj0iLCBEYXRhLkFjdGlvbiwgIjtXZWJzZXJ2aWNlSUQ9IiwgRGF0YS5XZWJzZXJ2aWNlSUQgKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSA9PiBIVFRQUkVTVE5hbWUuYXBwZW5kKCAiIFRyYW5zcG9ydCAiLCBEYXRhLlR5cGUgKSwKICAgICAgICAgICAgfQogICAgICAgIF0KICAgICVdCgogICAgWyUgSU5DTFVERSAiQnJlYWRjcnVtYi50dCIgUGF0aCA9IEJyZWFkY3J1bWJQYXRoICVdCgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluR2VuZXJpY0ludGVyZmFjZVdlYnNlcnZpY2U7U3ViYWN0aW9uPUNoYW5nZTtXZWJzZXJ2aWNlSUQ9WyUgRGF0YS5XZWJzZXJ2aWNlSUQgfCB1cmkgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT4gWyUgVHJhbnNsYXRlKCJHbyBiYWNrIHRvIHdlYiBzZXJ2aWNlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTmV0d29yayBUcmFuc3BvcnQiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8aDM+WyUgVHJhbnNsYXRlKCJQcm9wZXJ0aWVzIikgfCBodG1sICVdPC9oMz4KICAgICAgICAgICAgICAgIDxmb3JtIGlkPSJUcmFuc3BvcnRDb25maWdGb3JtIiBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJbJSBEYXRhLkFjdGlvbiB8IGh0bWwgJV1BY3Rpb24iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJXZWJzZXJ2aWNlSUQiIHZhbHVlPSJbJSBEYXRhLldlYnNlcnZpY2VJRCB8IGh0bWwgJV0iIGlkPSJXZWJzZXJ2aWNlSUQiLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDb21tdW5pY2F0aW9uVHlwZSIgdmFsdWU9IlslIERhdGEuQ29tbXVuaWNhdGlvblR5cGUgfCBodG1sICVdIiBpZD0iQ29tbXVuaWNhdGlvblR5cGUiLz4KICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkFjdGlvbiA9PSAnQ2hhbmdlJyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDb250aW51ZUFmdGVyU2F2ZSIgaWQ9IkNvbnRpbnVlQWZ0ZXJTYXZlIiB2YWx1ZT0iIi8+CiAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTGF5b3V0R3JpZCBDb2x1bW5zV2l0aFNwYWNpbmciPgogICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiVHlwZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPlslIERhdGEuVHlwZSB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KClslIElGIERhdGEuQ29tbXVuaWNhdGlvblR5cGUgPT0gJ1Byb3ZpZGVyJyAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUm91dGVPcGVyYXRpb25NYXBwaW5nIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlJvdXRlT3BlcmF0aW9uTWFwcGluZ1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIlJvdXRlIG1hcHBpbmcgZm9yIE9wZXJhdGlvbiIpIHwgaHRtbCAlXSAnWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdJzo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iUm91dGVPcGVyYXRpb25NYXBwaW5nWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5TZXJ2ZXJFcnJvciB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjUwIiB2YWx1ZT0iWyUgRGF0YS5Sb3V0ZSB8IGh0bWwgJV0iIG5hbWU9IlJvdXRlT3BlcmF0aW9uTWFwcGluZ1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlJvdXRlT3BlcmF0aW9uTWFwcGluZ1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSb3V0ZU9wZXJhdGlvbk1hcHBpbmdbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLlNlcnZlckVycm9yTWVzc2FnZSkgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJEZWZpbmUgdGhlIHJvdXRlIHRoYXQgc2hvdWxkIGdldCBtYXBwZWQgdG8gdGhpcyBvcGVyYXRpb24uIFZhcmlhYmxlcyBtYXJrZWQgYnkgYSAnOicgd2lsbCBnZXQgbWFwcGVkIHRvIHRoZSBlbnRlcmVkIG5hbWUgYW5kIHBhc3NlZCBhbG9uZyB3aXRoIHRoZSBvdGhlcnMgdG8gdGhlIG1hcHBpbmcuIChlLmcuIC9UaWNrZXQvOlRpY2tldElEKS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlJlcXVlc3RNZXRob2RbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZSgiVmFsaWQgcmVxdWVzdCBtZXRob2RzIGZvciBPcGVyYXRpb24iKSB8IGh0bWwgJV0gJ1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXSc6PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlJlcXVlc3RNZXRob2RTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkxpbWl0IHRoaXMgT3BlcmF0aW9uIHRvIHNwZWNpZmljIHJlcXVlc3QgbWV0aG9kcy4gSWYgbm8gbWV0aG9kIGlzIHNlbGVjdGVkIGFsbCByZXF1ZXN0cyB3aWxsIGJlIGFjY2VwdGVkLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUm91dGVPcGVyYXRpb25NYXBwaW5nIikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJNYXhMZW5ndGgiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJNYXhpbXVtIG1lc3NhZ2UgbGVuZ3RoIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJNYXhMZW5ndGgiIGNsYXNzPSJXMjVwYyBWYWxpZGF0ZV9SZXF1aXJlZCBWYWxpZGF0ZV9OdW1iZXIgWyUgRGF0YS5NYXhMZW5ndGhTZXJ2ZXJFcnJvciB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMTAiIHZhbHVlPSJbJSBEYXRhLk1heExlbmd0aCB8IGh0bWwgJV0iIG5hbWU9Ik1heExlbmd0aCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik1heExlbmd0aEVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIHNob3VsZCBiZSBhbiBpbnRlZ2VyIG51bWJlci4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTWF4TGVuZ3RoU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5NYXhMZW5ndGhTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiSGVyZSB5b3UgY2FuIHNwZWNpZnkgdGhlIG1heGltdW0gc2l6ZSAoaW4gYnl0ZXMpIG9mIFJFU1QgbWVzc2FnZXMgdGhhdCBPVE9CTyB3aWxsIHByb2Nlc3MuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iS2VlcEFsaXZlIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiU2VuZCBLZWVwLUFsaXZlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5LZWVwQWxpdmVTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2VlcEFsaXZlRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgc2hvdWxkIGJlIGFuIGludGVnZXIgbnVtYmVyLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJLZWVwQWxpdmVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLk1heExlbmd0aFNlcnZlckVycm9yTWVzc2FnZSkgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGlzIGNvbmZpZ3VyYXRpb24gZGVmaW5lcyBpZiBpbmNvbWluZyBjb25uZWN0aW9ucyBzaG91bGQgZ2V0IGNsb3NlZCBvciBrZXB0IGFsaXZlLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBFTkQgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkFkZGl0aW9uYWxIZWFkZXJzIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQWRkaXRpb25hbCByZXNwb25zZSBoZWFkZXJzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFZhbHVlSW5zZXJ0Ij4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJWYWx1ZUNvdW50ZXIiIHZhbHVlPSJbJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGlkPSJWYWx1ZUNvdW50ZXIiIGNsYXNzPSJWYWx1ZUNvdW50ZXIiIC8+ClslIFJlbmRlckJsb2NrU3RhcnQoIlZhbHVlUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVlUm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0iS2V5X1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgaWQ9IktleV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGNsYXNzPSJEZWZhdWx0VmFsdWVLZXlJdGVtIFZhbGlkYXRlX1JlcXVpcmVkIFcyMHBjIFslIERhdGEuS2V5RXJyb3IgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjE1MCIgdmFsdWU9IlslIERhdGEuS2V5IHwgaHRtbCAlXSIgc3R5bGU9IndpZHRoOjI1MHB4Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5X1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJLZXlfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5LZXlFcnJvclN0cmcpIHwgaHRtbCAlXTwvcD48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiVmFsdWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0iVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBpZD0iVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBjbGFzcz0iRGVmYXVsdFZhbHVlSXRlbSBWYWxpZGF0ZV9SZXF1aXJlZCBXMjBwYyBbJSBEYXRhLlZhbHVlRXJyb3IgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjE1MCIgdmFsdWU9IlslIERhdGEuVmFsdWUgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlZhbHVlX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9IlJlbW92ZVZhbHVlX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgY2xhc3M9IlJlbW92ZUJ1dHRvbiBWYWx1ZVJlbW92ZSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHZhbHVlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wTWluaSIgPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJWYWx1ZVJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJBZGRWYWx1ZSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gQWRkQnV0dG9uIElubGluZSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlLW8iPiZuYnNwOzwvaT5bJSBUcmFuc2xhdGUoIkFkZCByZXNwb25zZSBoZWFkZXIiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVmFsdWVUZW1wbGF0ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJWYWx1ZVRlbXBsYXRlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9IktleV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGlkPSJLZXkiIGNsYXNzPSJEZWZhdWx0VmFsdWVLZXlJdGVtIFcyMHBjIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjE1MCIgdmFsdWU9IlslIERhdGEuS2V5IHwgaHRtbCAlXSIgc3R5bGU9IndpZHRoOjI1MHB4Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IktleVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKERhdGEuS2V5RXJyb3JTdHJnKSB8IGh0bWwgJV08L3A+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlZhbHVlIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiVmFsdWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0iVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBpZD0iVmFsdWUiIGNsYXNzPSJEZWZhdWx0VmFsdWVJdGVtIFcyMHBjIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjE1MCIgdmFsdWU9IlslIERhdGEuVmFsdWUgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVmFsdWVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVmFsdWVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJSZW1vdmVWYWx1ZV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGNsYXNzPSJSZW1vdmVCdXR0b24gVmFsdWVSZW1vdmUiPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSB2YWx1ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcE1pbmkiID48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVmFsdWVUZW1wbGF0ZSIpICVdCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRGVsZXRlZFZhbHVlIiB2YWx1ZT0iWyUgRGF0YS5EZWxldGVkU3RyaW5nIHwgaHRtbCAlXSIgaWQ9IkRlbGV0ZWRWYWx1ZSIgY2xhc3M9IkRlbGV0ZWRWYWx1ZSIgLz4KCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJBZGRpdGlvbmFsSGVhZGVycyIpICVdCgojIHJlcXVlc3RlciBzcGVjaWZpYyBjb25maWd1cmF0aW9uClslIElGIERhdGEuQ29tbXVuaWNhdGlvblR5cGUgPT0gJ1JlcXVlc3RlcicgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ikhvc3QiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJFbmRwb2ludCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iSG9zdCIgY2xhc3M9Ilc1MHBjIFslIERhdGEuSG9zdFNlcnZlckVycm9yIHwgaHRtbCAlXSBWYWxpZGF0ZV9SZXF1aXJlZCIgdHlwZT0idGV4dCIgdmFsdWU9IlslIERhdGEuSG9zdCB8IGh0bWwgJV0iIG5hbWU9Ikhvc3QiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJIb3N0RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ikhvc3RTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLkhvc3RTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVVJJIHRvIGluZGljYXRlIHNwZWNpZmljIGxvY2F0aW9uIGZvciBhY2Nlc3NpbmcgYSB3ZWIgc2VydmljZS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJlLmcuIGh0dHBzOi8vd3d3Lm90b2JvLmRlOjEwNzQ1L2FwaS92MS4wICh3aXRob3V0IHRyYWlsaW5nIGJhY2tzbGFzaCkiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJUaW1lb3V0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlRpbWVvdXQiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVGltZW91dFN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lb3V0RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVvdXRTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLlRpbWVvdXRTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGltZW91dCB2YWx1ZSBmb3IgcmVxdWVzdHMuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICBmb3I9IkF1dGhUeXBlIj5bJSBUcmFuc2xhdGUoIkF1dGhlbnRpY2F0aW9uIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5BdXRoZW50aWNhdGlvblN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQW4gb3B0aW9uYWwgYXV0aGVudGljYXRpb24gbWVjaGFuaXNtIHRvIGFjY2VzcyB0aGUgcmVtb3RlIHN5c3RlbS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJCYXNpY0F1dGhGaWVsZCBbJSBEYXRhLkJhc2ljQXV0aEhpZGRlbiB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkJhc2ljQXV0aFVzZXIiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiQmFzaWNBdXRoIFVzZXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJCYXNpY0F1dGhVc2VyIiBjbGFzcz0iVzUwcGMgWyUgRGF0YS5CYXNpY0F1dGhVc2VyVmFsaWRhdGVSZXF1aXJlZCB8IGh0bWwgJV0gWyUgRGF0YS5CYXNpY0F1dGhVc2VyU2VydmVyRXJyb3IgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjI1MCIgdmFsdWU9IlslIERhdGEuQmFzaWNBdXRoVXNlciB8IGh0bWwgJV0iIG5hbWU9IkJhc2ljQXV0aFVzZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkJhc2ljQXV0aFVzZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJCYXNpY0F1dGhVc2VyU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5CYXNpY0F1dGhVc2VyU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgdXNlciBuYW1lIHRvIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSByZW1vdGUgc3lzdGVtLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iQmFzaWNBdXRoUGFzc3dvcmQiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJCYXNpY0F1dGggUGFzc3dvcmQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJCYXNpY0F1dGhQYXNzd29yZCIgY2xhc3M9Ilc1MHBjIFslIERhdGEuQmFzaWNBdXRoUGFzc3dvcmRWYWxpZGF0ZVJlcXVpcmVkIHwgaHRtbCAlXSBbJSBEYXRhLkJhc2ljQXV0aFBhc3N3b3JkU2VydmVyRXJyb3IgfCBodG1sICVdIiB0eXBlPSJwYXNzd29yZCIgbWF4bGVuZ3RoPSIyNTAiIHZhbHVlPSJbJSBEYXRhLkJhc2ljQXV0aFBhc3N3b3JkIHwgaHRtbCAlXSIgbmFtZT0iQmFzaWNBdXRoUGFzc3dvcmQiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkJhc2ljQXV0aFBhc3N3b3JkRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQmFzaWNBdXRoUGFzc3dvcmRTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLkJhc2ljQXV0aFBhc3N3b3JkU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgcGFzc3dvcmQgZm9yIHRoZSBwcml2aWxlZ2VkIHVzZXIuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iS2VyYmVyb3NGaWVsZCBbJSBEYXRhLktlcmJlcm9zSGlkZGVuIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iS2VyYmVyb3NVc2VyIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIktlcmJlcm9zIFVzZXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJLZXJiZXJvc1VzZXIiIGNsYXNzPSJXNTBwYyBbJSBEYXRhLktlcmJlcm9zVXNlclZhbGlkYXRlUmVxdWlyZWQgfCBodG1sICVdIFslIERhdGEuS2VyYmVyb3NVc2VyU2VydmVyRXJyb3IgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjI1MCIgdmFsdWU9IlslIERhdGEuS2VyYmVyb3NVc2VyIHwgaHRtbCAlXSIgbmFtZT0iS2VyYmVyb3NVc2VyIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJLZXJiZXJvc1VzZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJLZXJiZXJvc1VzZXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLktlcmJlcm9zVXNlclNlcnZlckVycm9yTWVzc2FnZSkgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIHVzZXIgbmFtZSB0byBiZSB1c2VkIHRvIGFjY2VzcyB0aGUgcmVtb3RlIHN5c3RlbS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IktlcmJlcm9zS2V5dGFiIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiS2VyYmVyb3Mga2V5dGFiIGZpbGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJLZXJiZXJvc0tleXRhYiIgY2xhc3M9Ilc1MHBjIFslIERhdGEuS2VyYmVyb3NLZXl0YWJWYWxpZGF0ZVJlcXVpcmVkIHwgaHRtbCAlXSBbJSBEYXRhLktlcmJlcm9zS2V5dGFiU2VydmVyRXJyb3IgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjI1MCIgdmFsdWU9IlslIERhdGEuS2VyYmVyb3NLZXl0YWIgfCBodG1sICVdIiBuYW1lPSJLZXJiZXJvc0tleXRhYiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2VyYmVyb3NLZXl0YWJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJLZXJiZXJvc0tleXRhYlNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKERhdGEuS2VyYmVyb3NLZXl0YWJTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoZSBLZXJiZXJvcyBrZXl0YWIgZmlsZSBmb3IgdGhlIHByaXZpbGVnZWQgdXNlci4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiMgUm90aGVyIE9TUyAvIE9hdXRoMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iT0F1dGhBdXRoRmllbGQgWyUgRGF0YS5PQXV0aEhpZGRlbiB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ik9BdXRoQWNjb3VudE5hbWUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiT0F1dGgyIEZ1bmN0aW9uYWwgQWNjb3VudCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk9BdXRoQWNjb3VudE5hbWVzU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTZWxlY3QgdGhlIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iP0FjdGlvbj1BZG1pbk9BdXRoVG9rZW5TdG9yZSI+T0lEQzwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQWNjb3VudCB0byB1c2UgZm9yIE9BdXRoMiBhdXRoZW50aWNhdGlvbi4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiMgRU8gLyBPQXV0aDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlVzZVByb3h5Ij48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiVXNlIFByb3h5IE9wdGlvbnMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlVzZVByb3h5U3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTaG93IG9yIGhpZGUgUHJveHkgb3B0aW9ucyB0byBjb25uZWN0IHRvIHRoZSByZW1vdGUgc3lzdGVtLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlByb3h5RmllbGQgWyUgRGF0YS5Qcm94eUhpZGRlbiB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlByb3h5SG9zdCI+WyUgVHJhbnNsYXRlKCJQcm94eSBTZXJ2ZXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJQcm94eUhvc3QiIGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyNTAiIHZhbHVlPSJbJSBEYXRhLlByb3h5SG9zdCB8IGh0bWwgJV0iIG5hbWU9IlByb3h5SG9zdCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVVJJIG9mIGEgcHJveHkgc2VydmVyIHRvIGJlIHVzZWQgKGlmIG5lZWRlZCkuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoImUuZy4gaHR0cDovL3Byb3h5X2hvc3RuYW1lOjgwODAiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUHJveHlVc2VyIj5bJSBUcmFuc2xhdGUoIlByb3h5IFVzZXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJQcm94eVVzZXIiIGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyNTAiIHZhbHVlPSJbJSBEYXRhLlByb3h5VXNlciB8IGh0bWwgJV0iIG5hbWU9IlByb3h5VXNlciIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIHVzZXIgbmFtZSB0byBiZSB1c2VkIHRvIGFjY2VzcyB0aGUgcHJveHkgc2VydmVyLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUHJveHlQYXNzd29yZCI+WyUgVHJhbnNsYXRlKCJQcm94eSBQYXNzd29yZCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IlByb3h5UGFzc3dvcmQiIGNsYXNzPSJXNTBwYyIgdHlwZT0icGFzc3dvcmQiIG1heGxlbmd0aD0iMjUwIiB2YWx1ZT0iWyUgRGF0YS5Qcm94eVBhc3N3b3JkIHwgaHRtbCAlXSIgbmFtZT0iUHJveHlQYXNzd29yZCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIHBhc3N3b3JkIGZvciB0aGUgcHJveHkgdXNlci4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iUHJveHlFeGNsdWRlIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiU2tpcCBQcm94eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByb3h5RXhjbHVkZVN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNraXAgcHJveHkgc2VydmVycyB0aGF0IG1pZ2h0IGJlIGNvbmZpZ3VyZWQgZ2xvYmFsbHk/IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJVc2VTU0wiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJVc2UgU1NMIE9wdGlvbnMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlVzZVNTTFN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiU2hvdyBvciBoaWRlIFNTTCBvcHRpb25zIHRvIGNvbm5lY3QgdG8gdGhlIHJlbW90ZSBzeXN0ZW0uIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU1NMRmllbGQgWyUgRGF0YS5TU0xIaWRkZW4gfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJTU0xDZXJ0aWZpY2F0ZSI+WyUgVHJhbnNsYXRlKCJDbGllbnQgQ2VydGlmaWNhdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJTU0xDZXJ0aWZpY2F0ZSIgY2xhc3M9Ilc1MHBjIFslIERhdGEuU1NMQ2VydGlmaWNhdGVTZXJ2ZXJFcnJvciB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjUwIiB2YWx1ZT0iWyUgRGF0YS5TU0xDZXJ0aWZpY2F0ZSB8IGh0bWwgJV0iIG5hbWU9IlNTTENlcnRpZmljYXRlIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTU0xDZXJ0aWZpY2F0ZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKERhdGEuU1NMQ2VydGlmaWNhdGVTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoZSBmdWxsIHBhdGggYW5kIG5hbWUgb2YgdGhlIFNTTCBjbGllbnQgY2VydGlmaWNhdGUgZmlsZSAobXVzdCBiZSBpbiBQRU0sIERFUiBvciBQS0NTIzEyIGZvcm1hdCkuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoImUuZy4gL29wdC9vdG9iby92YXIvY2VydGlmaWNhdGVzL1NPQVAvY2VydGlmaWNhdGUucGVtIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJTU0xLZXkiPlslIFRyYW5zbGF0ZSgiQ2xpZW50IENlcnRpZmljYXRlIEtleSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IlNTTEtleSIgY2xhc3M9Ilc1MHBjIFslIERhdGEuU1NMS2V5U2VydmVyRXJyb3IgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjI1MCIgdmFsdWU9IlslIERhdGEuU1NMS2V5IHwgaHRtbCAlXSIgbmFtZT0iU1NMS2V5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTU0xLZXlTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLlNTTEtleVNlcnZlckVycm9yTWVzc2FnZSkgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIGZ1bGwgcGF0aCBhbmQgbmFtZSBvZiB0aGUgU1NMIGNsaWVudCBjZXJ0aWZpY2F0ZSBrZXkgZmlsZSAoaWYgbm90IGFscmVhZHkgaW5jbHVkZWQgaW4gY2VydGlmaWNhdGUgZmlsZSkuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoImUuZy4gL29wdC9vdG9iby92YXIvY2VydGlmaWNhdGVzL1NPQVAva2V5LnBlbSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU1NMUGFzc3dvcmQiPlslIFRyYW5zbGF0ZSgiQ2xpZW50IENlcnRpZmljYXRlIEtleSBQYXNzd29yZCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IlNTTFBhc3N3b3JkIiBjbGFzcz0iVzUwcGMiIHR5cGU9InBhc3N3b3JkIiBtYXhsZW5ndGg9IjI1MCIgdmFsdWU9IlslIERhdGEuU1NMUGFzc3dvcmQgfCBodG1sICVdIiBuYW1lPSJTU0xQYXNzd29yZCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIHBhc3N3b3JkIHRvIG9wZW4gdGhlIFNTTCBjZXJ0aWZpY2F0ZSBpZiB0aGUga2V5IGlzIGVuY3J5cHRlZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNTTENBRmlsZSI+WyUgVHJhbnNsYXRlKCJDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAoQ0EpIENlcnRpZmljYXRlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iU1NMQ0FGaWxlIiBjbGFzcz0iVzUwcGMgWyUgRGF0YS5TU0xDQUZpbGVTZXJ2ZXJFcnJvciB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjUwIiB2YWx1ZT0iWyUgRGF0YS5TU0xDQUZpbGUgfCBodG1sICVdIiBuYW1lPSJTU0xDQUZpbGUiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlNTTENBRmlsZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKERhdGEuU1NMQ0FGaWxlU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgZnVsbCBwYXRoIGFuZCBuYW1lIG9mIHRoZSBjZXJ0aWZpY2F0aW9uIGF1dGhvcml0eSBjZXJ0aWZpY2F0ZSBmaWxlIHRoYXQgdmFsaWRhdGVzIFNTTCBjZXJ0aWZpY2F0ZS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiZS5nLiAvb3B0L290b2JvL3Zhci9jZXJ0aWZpY2F0ZXMvU09BUC9DQS9jYS5wZW0iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNTTENBRGlyIj5bJSBUcmFuc2xhdGUoIkNlcnRpZmljYXRpb24gQXV0aG9yaXR5IChDQSkgRGlyZWN0b3J5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iU1NMQ0FEaXIiIGNsYXNzPSJXNTBwYyBbJSBEYXRhLlNTTENBRGlyU2VydmVyRXJyb3IgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjI1MCIgdmFsdWU9IlslIERhdGEuU1NMQ0FEaXIgfCBodG1sICVdIiBuYW1lPSJTU0xDQURpciIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iU1NMQ0FEaXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLlNTTENBRGlyU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgZnVsbCBwYXRoIG9mIHRoZSBjZXJ0aWZpY2F0aW9uIGF1dGhvcml0eSBkaXJlY3Rvcnkgd2hlcmUgdGhlIENBIGNlcnRpZmljYXRlcyBhcmUgc3RvcmVkIGluIHRoZSBmaWxlIHN5c3RlbS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiZS5nLiAvb3B0L290b2JvL3Zhci9jZXJ0aWZpY2F0ZXMvU09BUC9DQSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU1NMVmVyaWZ5SG9zdG5hbWUiPlslIFRyYW5zbGF0ZSgiU1NMIGhvc3RuYW1lIHZlcmlmaWNhdGlvbiIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlNTTFZlcmlmeUhvc3RTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJBYm9ydCB0aGUgcmVxdWVzdCBpZiB0aGUgaG9zdG5hbWUgY2Fubm90IGJlIHZlcmlmaWVkLiBEaXNhYmxlIHdpdGggY2F1dGlvbiEgU2tpcHBpbmcgdmVyaWZpY2F0aW9uIGlzIGEgc2VjdXJpdHkgcmlzayEgTWFpbmx5IGZvciB0ZXN0aW5nIHB1cnBvc2VzIGluIGNhc2Ugb2Ygc2VsZi1zaWduZWQgU1NMIGNlcnRpZmljYXRlcywgb3IgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU1NMVmVyaWZ5TW9kZSI+WyUgVHJhbnNsYXRlKCJTU0wgdmVyaWZ5IG1vZGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TU0xWZXJpZnlNb2RlU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQWJvcnQgdGhlIHJlcXVlc3QgaWYgU1NMIHZlcmlmaWNhdGlvbiBmYWlscy4gRGlzYWJsaW5nIHNraXBzIFNTTCB2ZXJpZmljYXRpb24gZW50aXJlbHkuIERpc2FibGUgd2l0aCBjYXV0aW9uISBTa2lwcGluZyB2ZXJpZmljYXRpb24gaXMgYSBzZWN1cml0eSByaXNrISBNYWlubHkgZm9yIHRlc3RpbmcgcHVycG9zZXMgaW4gY2FzZSBvZiBzZWxmLXNpZ25lZCBTU0wgY2VydGlmaWNhdGVzLCBvciBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ikludm9rZXJDb250cm9sbGVyTWFwcGluZ1slIERhdGEuSW52b2tlciB8IGh0bWwgJV0iPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJDb250cm9sbGVyIG1hcHBpbmcgZm9yIEludm9rZXIiKSB8IGh0bWwgJV0gJ1slIERhdGEuSW52b2tlciB8IGh0bWwgJV0nOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJJbnZva2VyQ29udHJvbGxlck1hcHBpbmdbJSBEYXRhLkludm9rZXIgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5TZXJ2ZXJFcnJvciB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjUwIiB2YWx1ZT0iWyUgRGF0YS5Db250cm9sbGVyIHwgaHRtbCAlXSIgbmFtZT0iSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nWyUgRGF0YS5JbnZva2VyIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ikludm9rZXJDb250cm9sbGVyTWFwcGluZ1slIERhdGEuSW52b2tlciB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nWyUgRGF0YS5JbnZva2VyIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKERhdGEuU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoZSBjb250cm9sbGVyIHRoYXQgdGhlIGludm9rZXIgc2hvdWxkIHNlbmQgcmVxdWVzdHMgdG8uIFZhcmlhYmxlcyBtYXJrZWQgYnkgYSAnOicgd2lsbCBnZXQgcmVwbGFjZWQgYnkgdGhlIGRhdGEgdmFsdWUgYW5kIHBhc3NlZCBhbG9uZyB3aXRoIHRoZSByZXF1ZXN0LiAoZS5nLiAvVGlja2V0LzpUaWNrZXRJRD9Vc2VyTG9naW49OlVzZXJMb2dpbiZQYXNzd29yZD06UGFzc3dvcmQpLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQ29tbWFuZFslIERhdGEuSW52b2tlciB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZSgiVmFsaWQgcmVxdWVzdCBjb21tYW5kIGZvciBJbnZva2VyIikgfCBodG1sICVdICdbJSBEYXRhLkludm9rZXIgfCBodG1sICVdJzo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ29tbWFuZFN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQSBzcGVjaWZpYyBIVFRQIGNvbW1hbmQgdG8gdXNlIGZvciB0aGUgcmVxdWVzdHMgd2l0aCB0aGlzIEludm9rZXIgKG9wdGlvbmFsKS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkludm9rZXJDb250cm9sbGVyTWFwcGluZyIpICVdCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iRGVmYXVsdENvbW1hbmQiPlslIFRyYW5zbGF0ZSgiRGVmYXVsdCBjb21tYW5kIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EZWZhdWx0Q29tbWFuZFN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIGRlZmF1bHQgSFRUUCBjb21tYW5kIHRvIHVzZSBmb3IgdGhlIHJlcXVlc3RzLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKWyUgRU5EICVdCgojIGFkZGVkIGZvciBPVE9CT1RpY2tldEludm9rZXIKClslIElGIERhdGEuQ29tbXVuaWNhdGlvblR5cGUgPT0gJ1JlcXVlc3RlcicgJV0KWyUgVVNFIEhlYWRlcnNUaXRsZUNvbW1vbiAgICA9IFN0cmluZyhUcmFuc2xhdGUoIkFkZGl0aW9uYWwgcmVxdWVzdCBoZWFkZXJzIChhbGwgaW52b2tlcnMpIikpICVdClslIFVTRSBIZWFkZXJzVGl0bGVTcGVjaWZpYyAgPSBTdHJpbmcoVHJhbnNsYXRlKCJBZGRpdGlvbmFsIHJlcXVlc3QgaGVhZGVycyAoaW52b2tlciBzcGVjaWZpYykiKSkgJV0KWyUgVVNFIEhlYWRlcnNSZW1vdmVTcGVjaWZpYyA9IFN0cmluZyhUcmFuc2xhdGUoIlJlbW92ZSBhbGwgaGVhZGVycyBmb3IgdGhpcyBpbnZva2VyIikpICVdClslIFVTRSBIZWFkZXJzSW5mb1NwZWNpZmljICAgPSBTdHJpbmcoVHJhbnNsYXRlKCJIZWFkZXJzIGZvciBpbnZva2VyIikpICVdClslIEVMU0UgJV0KWyUgVVNFIEhlYWRlcnNUaXRsZUNvbW1vbiAgICA9IFN0cmluZyhUcmFuc2xhdGUoIkFkZGl0aW9uYWwgcmVzcG9uc2UgaGVhZGVycyAoYWxsIG9wZXJhdGlvbnMpIikpICVdClslIFVTRSBIZWFkZXJzVGl0bGVTcGVjaWZpYyAgPSBTdHJpbmcoVHJhbnNsYXRlKCJBZGRpdGlvbmFsIHJlc3BvbnNlIGhlYWRlcnMgKG9wZXJhdGlvbiBzcGVjaWZpYykiKSkgJV0KWyUgVVNFIEhlYWRlcnNSZW1vdmVTcGVjaWZpYyA9IFN0cmluZyhUcmFuc2xhdGUoIlJlbW92ZSBhbGwgaGVhZGVycyBmb3IgdGhpcyBvcGVyYXRpb24iKSkgJV0KWyUgVVNFIEhlYWRlcnNJbmZvU3BlY2lmaWMgICA9IFN0cmluZyhUcmFuc2xhdGUoIkhlYWRlcnMgZm9yIG9wZXJhdGlvbiIpKSAlXQpbJSBFTkQgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk91dGJvdW5kSGVhZGVycyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgSGVhZGVyc1RpdGxlQ29tbW9uIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXJDb250YWluZXIiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSXRlbSBWYWx1ZUluc2VydCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJPdXRib3VuZEhlYWRlcnNWYWx1ZUNvdW50ZXIiIHZhbHVlPSJbJSBEYXRhLk91dGJvdW5kSGVhZGVyc1ZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGlkPSJPdXRib3VuZEhlYWRlcnNWYWx1ZUNvdW50ZXIiIGNsYXNzPSJWYWx1ZUNvdW50ZXIiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPlslIFRyYW5zbGF0ZSgiQ29tbW9uIGhlYWRlcnMiKSB8IGh0bWwgJV08L3N0cm9uZz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJWYWx1ZVJvd3MiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdXRib3VuZEhlYWRlcnNWYWx1ZVJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9Ik91dGJvdW5kSGVhZGVyc0tleV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGlkPSJPdXRib3VuZEhlYWRlcnNLZXlfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBjbGFzcz0iVmFsaWRhdGVfUmVxdWlyZWQgT3V0Ym91bmRIZWFkZXJLZXkgWyUgRGF0YS5pdGVtKCAnT3V0Ym91bmRIZWFkZXJzS2V5XycgXyBEYXRhLlZhbHVlQ291bnRlciBfICdTZXJ2ZXJFcnJvcicgKSB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMTUwIiB2YWx1ZT0iWyUgRGF0YS5LZXkgfCBodG1sICVdIiBwbGFjZWhvbGRlcj0iWyUgVHJhbnNsYXRlKCJIZWFkZXIgTmFtZSIpIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJPdXRib3VuZEhlYWRlcnNLZXlfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJPdXRib3VuZEhlYWRlcnNLZXlfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBEYXRhLml0ZW0oICdPdXRib3VuZEhlYWRlcnNLZXlfJyBfIERhdGEuVmFsdWVDb3VudGVyIF8gJ1NlcnZlckVycm9yTWVzc2FnZScgKSB8IFRyYW5zbGF0ZSB8IGh0bWwgJV08L3A+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0iT3V0Ym91bmRIZWFkZXJzVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBpZD0iT3V0Ym91bmRIZWFkZXJzVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBjbGFzcz0iVmFsaWRhdGVfUmVxdWlyZWQgT3V0Ym91bmRIZWFkZXJWYWx1ZSBbJSBEYXRhLml0ZW0oICdPdXRib3VuZEhlYWRlcnNWYWx1ZV8nIF8gRGF0YS5WYWx1ZUNvdW50ZXIgXyAnU2VydmVyRXJyb3InICkgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjE1MzYiIHZhbHVlPSJbJSBEYXRhLlZhbHVlIHwgaHRtbCAlXSIgcGxhY2Vob2xkZXI9IlslIFRyYW5zbGF0ZSgiVmFsdWUiKSB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iT3V0Ym91bmRIZWFkZXJzVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJPdXRib3VuZEhlYWRlcnNWYWx1ZV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iT3V0Ym91bmRIZWFkZXJzVmFsdWVSZW1vdmVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBjbGFzcz0iUmVtb3ZlQnV0dG9uIFZhbHVlUmVtb3ZlIFNwYWNpbmdMZWZ0Ij48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJSZW1vdmUgaGVhZGVyIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcE1pbmkiID48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk91dGJvdW5kSGVhZGVyc1ZhbHVlUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJPdXRib3VuZEhlYWRlcnNBZGRWYWx1ZSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gQWRkVmFsdWUiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+Jm5ic3A7PC9pPlslIFRyYW5zbGF0ZSgiQWRkIGhlYWRlciIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVlVGVtcGxhdGUgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iT3V0Ym91bmRIZWFkZXJzS2V5IiBjbGFzcz0iT3V0Ym91bmRIZWFkZXJLZXkiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMTUwIiB2YWx1ZT0iWyUgRGF0YS5LZXkgfCBodG1sICVdIiBwbGFjZWhvbGRlcj0iWyUgVHJhbnNsYXRlKCJIZWFkZXIgTmFtZSIpIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iT3V0Ym91bmRIZWFkZXJzVmFsdWUiIGNsYXNzPSJPdXRib3VuZEhlYWRlclZhbHVlIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjE1MzYiIHZhbHVlPSJbJSBEYXRhLlZhbHVlIHwgaHRtbCAlXSIgcGxhY2Vob2xkZXI9IlslIFRyYW5zbGF0ZSgiVmFsdWUiKSB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik91dGJvdW5kSGVhZGVyc1ZhbHVlRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iT3V0Ym91bmRIZWFkZXJzVmFsdWVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9Ik91dGJvdW5kSGVhZGVyc1ZhbHVlUmVtb3ZlIiBjbGFzcz0iUmVtb3ZlQnV0dG9uIFZhbHVlUmVtb3ZlIFNwYWNpbmdMZWZ0Ij48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJSZW1vdmUgdmFsdWUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcE1pbmkiID48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIFNwYWNpbmdCb3R0b20iPjwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU3BlY2lmaWMiKSAlXQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBIZWFkZXJzVGl0bGVTcGVjaWZpYyB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIE1ldGFIZWFkZXJDb250YWluZXIiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU2VsZWN0aW9uIikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5PdXRib3VuZEhlYWRlcnNPcGVyYXRpb25TZWxlY3Rpb25TdHJnICVdCgpbJSBSZW5kZXJCbG9ja0VuZCgiT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU2VsZWN0aW9uIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk91dGJvdW5kSGVhZGVyc09wZXJhdGlvblNwZWNpZmljRW50cnkiKSAlXQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXJDb250YWluZXIgWyUgRGF0YS5BY3RpdmUgfCBodG1sICVdIiBpZD0iT3BlcmF0aW9uT3V0Ym91bmRIZWFkZXJzWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU3BlY2lmaWNFbnRyeVZhbHVlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iT3BlcmF0aW9uIiB2YWx1ZT0iWyUgRGF0YS5PcGVyYXRpb24gJV0iIGlkPSJPcGVyYXRpb25bJSBEYXRhLk9wZXJhdGlvbiAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJPcGVyYXRpb25PdXRib3VuZEhlYWRlcnNBY3RpdmUiIHZhbHVlPSJbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV0iIGlkPSJPcGVyYXRpb25PdXRib3VuZEhlYWRlcnNBY3RpdmVbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV0iLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Ikl0ZW0gVmFsdWVJbnNlcnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iT3V0Ym91bmRIZWFkZXJzWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdVmFsdWVDb3VudGVyIiB2YWx1ZT0iWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBpZD0iT3V0Ym91bmRIZWFkZXJzWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdVmFsdWVDb3VudGVyIiBjbGFzcz0iVmFsdWVDb3VudGVyIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9Ik91dGJvdW5kSGVhZGVyc1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXVZhbHVlUmVtb3ZlQWxsIiBjbGFzcz0iUmVtb3ZlQnV0dG9uIFZhbHVlUmVtb3ZlQWxsIFNwYWNpbmdMZWZ0Ij48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgSGVhZGVyc1JlbW92ZVNwZWNpZmljIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBIZWFkZXJzSW5mb1NwZWNpZmljIHwgaHRtbCAlXSAnPHN0cm9uZyBjbGFzcz0iT3BlcmF0aW9uIj5bJSBEYXRhLk9wZXJhdGlvbk5hbWUgfCBodG1sICVdPC9zdHJvbmc+JwoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJWYWx1ZVJvd3MiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdXRib3VuZEhlYWRlcnNPcGVyYXRpb25TcGVjaWZpY0VudHJ5VmFsdWVSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPSJPdXRib3VuZEhlYWRlcnNbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV1LZXlfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBpZD0iT3V0Ym91bmRIZWFkZXJzWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdS2V5X1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgY2xhc3M9IlZhbGlkYXRlX1JlcXVpcmVkIE91dGJvdW5kSGVhZGVyS2V5IFslIERhdGEuaXRlbSggJ091dGJvdW5kSGVhZGVycycgXyBEYXRhLk9wZXJhdGlvbiBfICdLZXlfJyBfIERhdGEuVmFsdWVDb3VudGVyIF8gJ1NlcnZlckVycm9yJyApIHwgaHRtbCAlXSIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIxNTAiIHZhbHVlPSJbJSBEYXRhLktleSB8IGh0bWwgJV0iIHBsYWNlaG9sZGVyPSJbJSBUcmFuc2xhdGUoIkhlYWRlciBOYW1lIikgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik91dGJvdW5kSGVhZGVyc1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXUtleV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik91dGJvdW5kSGVhZGVyc1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXUtleV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIERhdGEuaXRlbSggICdPdXRib3VuZEhlYWRlcnMnIF8gRGF0YS5PcGVyYXRpb24gXyAnS2V5XycgXyBEYXRhLlZhbHVlQ291bnRlciBfICdTZXJ2ZXJFcnJvck1lc3NhZ2UnICkgfCBUcmFuc2xhdGUgfCBodG1sICVdPC9wPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9Ik91dGJvdW5kSGVhZGVyc1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXVZhbHVlX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgaWQ9Ik91dGJvdW5kSGVhZGVyc1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXVZhbHVlX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgY2xhc3M9IlZhbGlkYXRlX1JlcXVpcmVkIE91dGJvdW5kSGVhZGVyVmFsdWUgWyUgRGF0YS5pdGVtKCAnT3V0Ym91bmRIZWFkZXJzJyBfIERhdGEuT3BlcmF0aW9uIF8gJ1ZhbHVlXycgXyBEYXRhLlZhbHVlQ291bnRlciBfICdTZXJ2ZXJFcnJvcicgKSB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMTUzNiIgdmFsdWU9IlslIERhdGEuVmFsdWUgfCBodG1sICVdIiBwbGFjZWhvbGRlcj0iWyUgVHJhbnNsYXRlKCJWYWx1ZSIpIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJPdXRib3VuZEhlYWRlcnNbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV1WYWx1ZV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik91dGJvdW5kSGVhZGVyc1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXVZhbHVlX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJPdXRib3VuZEhlYWRlcnNbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV1WYWx1ZVJlbW92ZV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGNsYXNzPSJSZW1vdmVCdXR0b24gVmFsdWVSZW1vdmUgU3BhY2luZ0xlZnQiPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSBoZWFkZXIiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wTWluaSIgPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU3BlY2lmaWNFbnRyeVZhbHVlUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJPdXRib3VuZEhlYWRlcnNbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV1BZGRWYWx1ZSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gQWRkVmFsdWUiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+Jm5ic3A7PC9pPlslIFRyYW5zbGF0ZSgiQWRkIGhlYWRlciIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVlVGVtcGxhdGUgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iT3V0Ym91bmRIZWFkZXJzWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdS2V5IiBjbGFzcz0iT3V0Ym91bmRIZWFkZXJLZXkiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMTUwIiBwbGFjZWhvbGRlcj0iWyUgVHJhbnNsYXRlKCJIZWFkZXIgTmFtZSIpIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iT3V0Ym91bmRIZWFkZXJzWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdVmFsdWUiIGNsYXNzPSJPdXRib3VuZEhlYWRlclZhbHVlIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjE1MzYiIHBsYWNlaG9sZGVyPSJbJSBUcmFuc2xhdGUoIlZhbHVlIikgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJWYWx1ZUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlZhbHVlU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJPdXRib3VuZEhlYWRlcnNbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV1WYWx1ZVJlbW92ZSIgY2xhc3M9IlJlbW92ZUJ1dHRvbiBWYWx1ZVJlbW92ZSBTcGFjaW5nTGVmdCI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHZhbHVlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3BNaW5pIiA+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tFbmQoIk91dGJvdW5kSGVhZGVyc09wZXJhdGlvblNwZWNpZmljRW50cnlWYWx1ZSIpICVdCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tFbmQoIk91dGJvdW5kSGVhZGVyc09wZXJhdGlvblNwZWNpZmljRW50cnkiKSAlXQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXJDb250YWluZXIgSGlkZGVuIENvbnRhaW5lclZhbHVlVGVtcGxhdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJPcGVyYXRpb24iIHZhbHVlPSIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgY2xhc3M9Ik9wZXJhdGlvbk91dGJvdW5kSGVhZGVyc0FjdGl2ZVRlbXBsYXRlIi8+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJJdGVtIFZhbHVlSW5zZXJ0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJWYWx1ZUNvdW50ZXIiIGNsYXNzPSJWYWx1ZUNvdW50ZXIiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iVmFsdWVSZW1vdmVBbGwiIGNsYXNzPSJSZW1vdmVCdXR0b24gVmFsdWVSZW1vdmVBbGwgU3BhY2luZ0xlZnQiPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBIZWFkZXJzUmVtb3ZlU3BlY2lmaWMgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEhlYWRlcnNJbmZvU3BlY2lmaWMgfCBodG1sICVdICc8c3Ryb25nIGNsYXNzPSJPcGVyYXRpb24iPjwvc3Ryb25nPicKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJWYWx1ZVJvd3MiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJBZGRWYWx1ZSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gQWRkVmFsdWUiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+Jm5ic3A7PC9pPlslIFRyYW5zbGF0ZSgiQWRkIGhlYWRlciIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVlVGVtcGxhdGUgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iS2V5IiBjbGFzcz0iT3V0Ym91bmRIZWFkZXJLZXkiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMTUwIiBwbGFjZWhvbGRlcj0iWyUgVHJhbnNsYXRlKCJIZWFkZXIgTmFtZSIpIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5LZXlFcnJvclN0cmcpIHwgaHRtbCAlXTwvcD48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IlZhbHVlIiBjbGFzcz0iT3V0Ym91bmRIZWFkZXJWYWx1ZSIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIxNTM2IiBwbGFjZWhvbGRlcj0iWyUgVHJhbnNsYXRlKCJWYWx1ZSIpIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVmFsdWVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJWYWx1ZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iVmFsdWVSZW1vdmUiIGNsYXNzPSJSZW1vdmVCdXR0b24gVmFsdWVSZW1vdmUgU3BhY2luZ0xlZnQiPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSB2YWx1ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wTWluaSIgPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgpbJSBSZW5kZXJCbG9ja0VuZCgiT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU3BlY2lmaWMiKSAlXQoKWyUgUmVuZGVyQmxvY2tFbmQoIk91dGJvdW5kSGVhZGVycyIpICVdCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgSUYgRGF0YS5BY3Rpb24gPT0gJ0NoYW5nZScgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0QW5kQ29udGludWUiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUgYW5kIGZpbmlzaCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pbkdlbmVyaWNJbnRlcmZhY2VXZWJzZXJ2aWNlO1N1YmFjdGlvbj1DaGFuZ2U7V2Vic2VydmljZUlEPVslIERhdGEuV2Vic2VydmljZUlEIHwgdXJpICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8L2Rpdj4K</File>
        <File Location="Custom/Kernel/GenericInterface/Operation/Ticket/TicketUpdate.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSAxZWNmYTMwMTY2OGFiODJhYjBlOWI1ODhjOTIzMTdkYjEwYjU0MTIzIC0gS2VybmVsL0dlbmVyaWNJbnRlcmZhY2UvT3BlcmF0aW9uL1RpY2tldC9UaWNrZXRVcGRhdGUucG0KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6VGlja2V0OjpUaWNrZXRVcGRhdGU7Cgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBwYXJlbnQgcXcoCiAgICBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6Q29tbW9uCiAgICBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6VGlja2V0OjpDb21tb24KKTsKCiMgY29yZSBtb2R1bGVzCnVzZSBTY2FsYXI6OlV0aWwgcXcocmVmdHlwZSk7CnVzZSBNSU1FOjpCYXNlNjQgcXcoZW5jb2RlX2Jhc2U2NCk7CgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEgSXNIYXNoUmVmV2l0aERhdGEgSXNTdHJpbmcgSXNTdHJpbmdXaXRoRGF0YSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OlRpY2tldDo6VGlja2V0VXBkYXRlIC0gR2VuZXJpY0ludGVyZmFjZSBUaWNrZXQgVGlja2V0VXBkYXRlIE9wZXJhdGlvbiBiYWNrZW5kCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPWhlYWQyIG5ldygpCgp1c3VhbGx5LCB5b3Ugd2FudCB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhpcwpieSB1c2luZyBDPEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uLT5uZXcoKTs+LgoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRTZWxmID0gYmxlc3Mge30sICRUeXBlOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkTmVlZGVkIChxdyggRGVidWdnZXJPYmplY3QgV2Vic2VydmljZUlEICkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiR290IG5vICROZWVkZWQhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgICRTZWxmLT57JE5lZWRlZH0gPSAkUGFyYW17JE5lZWRlZH07CiAgICB9CgogICAgJFNlbGYtPntDb25maWd9ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OlRpY2tldFVwZGF0ZScpOwogICAgJFNlbGYtPntPcGVyYXRpb259ID0gJFBhcmFte09wZXJhdGlvbn07CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgUnVuKCkKCnBlcmZvcm0gVGlja2V0VXBkYXRlIE9wZXJhdGlvbi4gVGhpcyB3aWxsIHJldHVybiB0aGUgdXBkYXRlZCBUaWNrZXRJRCBhbmQKaWYgYXBwbGljYWJsZSB0aGUgY3JlYXRlZCBBcnRpY2xlSUQuCgogICAgbXkgJFJlc3VsdCA9ICRPcGVyYXRpb25PYmplY3QtPlJ1bigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgVXNlckxvZ2luICAgICAgICAgPT4gJ3NvbWUgYWdlbnQgbG9naW4nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFVzZXJMb2dpbiBvciBDdXN0b21lclVzZXJMb2dpbiBvciBTZXNzaW9uSUQgaXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgcmVxdWlyZWQKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyTG9naW4gPT4gJ3NvbWUgY3VzdG9tZXIgbG9naW4nLAogICAgICAgICAgICBTZXNzaW9uSUQgICAgICAgICA9PiAxMjMsCgogICAgICAgICAgICBQYXNzd29yZCAgPT4gJ3NvbWUgcGFzc3dvcmQnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgVXNlckxvZ2luIG9yIGN1c3RvbWVyVXNlckxvZ2luIGlzIHNlbnQgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICBQYXNzd29yZCBpcyByZXF1aXJlZAoKICAgICAgICAgICAgVGlja2V0SUQgICAgID0+IDEyMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRpY2tldElEIG9yIFRpY2tldE51bWJlciBpcyByZXF1aXJlZAogICAgICAgICAgICBUaWNrZXROdW1iZXIgPT4gJzIwMDQwNDA1MTA0NDA0ODUnLAoKICAgICAgICAgICAgVGlja2V0IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgID0+ICdzb21lIHRpY2tldCB0aXRsZScsCgogICAgICAgICAgICAgICAgUXVldWVJRCAgICAgICA9PiAxMjMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgT3B0aW9uYWwKICAgICAgICAgICAgICAgIFF1ZXVlICAgICAgICAgPT4gJ3NvbWUgcXVldWUgbmFtZScsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIE9wdGlvbmFsCiAgICAgICAgICAgICAgICBMb2NrSUQgICAgICAgID0+IDEyMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgTG9jayAgICAgICAgICA9PiAnc29tZSBsb2NrIG5hbWUnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICAgICAgICAgIFR5cGVJRCAgICAgICAgPT4gMTIzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgID0+ICdzb21lIHR5cGUgbmFtZScsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgU2VydmljZUlEICAgICA9PiAxMjMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICAgICAgICAgIFNlcnZpY2UgICAgICAgPT4gJ3NvbWUgc2VydmljZSBuYW1lJywgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBTTEFJRCAgICAgICAgID0+IDEyMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgU0xBICAgICAgICAgICA9PiAnc29tZSBTTEEgbmFtZScsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICAgICAgICAgIFN0YXRlSUQgICAgICAgPT4gMTIzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBTdGF0ZSAgICAgICAgID0+ICdzb21lIHN0YXRlIG5hbWUnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgUHJpb3JpdHlJRCAgICA9PiAxMjMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICAgICAgICAgIFByaW9yaXR5ICAgICAgPT4gJ3NvbWUgcHJpb3JpdHkgbmFtZScsICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBPd25lcklEICAgICAgID0+IDEyMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgT3duZXIgICAgICAgICA9PiAnc29tZSB1c2VyIGxvZ2luJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICAgICAgICAgIFJlc3BvbnNpYmxlSUQgPT4gMTIzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBSZXNwb25zaWJsZSAgID0+ICdzb21lIHVzZXIgbG9naW4nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VyICA9PiAnc29tZSBjdXN0b21lciB1c2VyIGxvZ2luJywKCiAgICAgICAgICAgICAgICBQZW5kaW5nVGltZSB7ICAgICAgICMgb3B0aW9uYWwKICAgICAgICAgICAgICAgICAgICBZZWFyICAgPT4gMjAxMSwKICAgICAgICAgICAgICAgICAgICBNb250aCAgPT4gMTIKICAgICAgICAgICAgICAgICAgICBEYXkgICAgPT4gMDMsCiAgICAgICAgICAgICAgICAgICAgSG91ciAgID0+IDIzLAogICAgICAgICAgICAgICAgICAgIE1pbnV0ZSA9PiAwNSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAjIG9yCiAgICAgICAgICAgICAgICAjIFBlbmRpbmdUaW1lIHsKICAgICAgICAgICAgICAgICMgICAgIERpZmYgPT4gMTAwODAsICMgUGVuZGluZyB0aW1lIGluIG1pbnV0ZXMKICAgICAgICAgICAgICAgICN9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBBcnRpY2xlID0+IHsKICAgICAgICAgICAgICAgIENvbW11bmljYXRpb25DaGFubmVsICAgICAgICAgICAgPT4gJ0VtYWlsJywgICAgICAgICAgICAgICAgICAgICMgQ29tbXVuaWNhdGlvbkNoYW5uZWwgb3IgQ29tbXVuaWNhdGlvbkNoYW5uZWxJRCBtdXN0IGJlIHByb3ZpZGVkLgogICAgICAgICAgICAgICAgQ29tbXVuaWNhdGlvbkNoYW5uZWxJRCAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgSXNWaXNpYmxlRm9yQ3VzdG9tZXIgICAgICAgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgU2VuZGVyVHlwZUlEICAgICAgICAgICAgICAgICAgICA9PiAxMjMsICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAnc29tZSBzZW5kZXIgdHlwZSBuYW1lJywgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgQXV0b1Jlc3BvbnNlVHlwZSAgICAgICAgICAgICAgICA9PiAnc29tZSBhdXRvIHJlc3BvbnNlIHR5cGUnLCAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgRnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAnc29tZSBmcm9tIHN0cmluZycsICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAnc29tZSBzdWJqZWN0JywKICAgICAgICAgICAgICAgIEJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gJ3NvbWUgYm9keScsCgogICAgICAgICAgICAgICAgQ29udGVudFR5cGUgICAgICAgICAgICAgICAgICAgICA9PiAnc29tZSBjb250ZW50IHR5cGUnLCAgICAgICAgIyBDb250ZW50VHlwZSBvciBNaW1lVHlwZSBhbmQgQ2hhcnNldCBpcyByZXF1aXJlZAogICAgICAgICAgICAgICAgTWltZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICA9PiAnc29tZSBtaW1lIHR5cGUnLAogICAgICAgICAgICAgICAgQ2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAnc29tZSBjaGFyc2V0JywKCiAgICAgICAgICAgICAgICBIaXN0b3J5VHlwZSAgICAgICAgICAgICAgICAgICAgID0+ICdzb21lIGhpc3RvcnkgdHlwZScsICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBIaXN0b3J5Q29tbWVudCAgICAgICAgICAgICAgICAgID0+ICdTb21lICBoaXN0b3J5IGNvbW1lbnQnLCAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBUaW1lVW5pdCAgICAgICAgICAgICAgICAgICAgICAgID0+IDEyMywgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBOb0FnZW50Tm90aWZ5ICAgICAgICAgICAgICAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBGb3JjZU5vdGlmaWNhdGlvblRvVXNlcklEICAgICAgID0+IFsxLCAyLCAzXSAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBFeGNsdWRlTm90aWZpY2F0aW9uVG9Vc2VySUQgICAgID0+IFsxLCAyLCAzXSAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBFeGNsdWRlTXV0ZU5vdGlmaWNhdGlvblRvVXNlcklEID0+IFsxLCAyLCAzXSAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiMgUm90aGVyIE9TUyAvIE9BdXRoMgogICAgICAgICAgICAgICAgU2VuZEVtYWlsICAgICAgICAgICAgICAgICAgICAgICA9PiAxICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCwgZGVmYXVsdHMgdG8gMC4KICAgICAgICAgICAgICAgIEVtYWlsU2VjdXJpdHkgMD4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCB0byBlbmFibGUgc2lnbmluZy9lbmNyeXB0aW9uCiAgICAgICAgICAgICAgICAgICAgQmFja2VuZCA9PiAnU01JTUUnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEJhY2tlbmQsIG9ubHkgU01JTUUgc3VwcG9ydGVkIGZvciBub3cKICAgICAgICAgICAgICAgICAgICBTaWduID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCwgd2hldGhlciB0byB0aGUgc2lnbiB0aGUgZW1haWwuIG5lZWRzIHZhbGlkIFNNSU1FIGNlcnQgZm9yIHRoZSBxdWV1ZQogICAgICAgICAgICAgICAgICAgIEVuY3J5cHQgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwsd2hldGhlciB0byBlbmNyeXB0IHRoZSBlbWFpbC4gbmVlZHMgdmFsaWQgY3VzdG9tZXIgU01JTUUgY2VydCAoZm9yIHRoZSBUTyBhZGRyKQogICAgICAgICAgICAgICAgfQojIEVPIE9BdXRoMgogICAgICAgICAgICB9LAoKICAgICAgICAgICAgRHluYW1pY0ZpZWxkID0+IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgPT4gJ3NvbWUgbmFtZScsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgID0+ICRWYWx1ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHZhbHVlIHR5cGUgZGVwZW5kcyBvbiB0aGUgZHluYW1pYyBmaWVsZAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICMgLi4uCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICMgb3IKICAgICAgICAgICAgIyBEeW5hbWljRmllbGQgewogICAgICAgICAgICAjICAgIE5hbWUgICA9PiAnc29tZSBuYW1lJywKICAgICAgICAgICAgIyAgICBWYWx1ZSAgPT4gJFZhbHVlLAogICAgICAgICAgICAjfSwKCiAgICAgICAgICAgIEF0dGFjaG1lbnQgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICdjb250ZW50JyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYmFzZTY0IGVuY29kZWQKICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAnc29tZSBjb250ZW50IHR5cGUnCiAgICAgICAgICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gJ3NvbWUgZmluZSBuYW1lJwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICMgLi4uCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICNvcgogICAgICAgICAgICAjQXR0YWNobWVudCA9PiB7CiAgICAgICAgICAgICMgICAgQ29udGVudCAgICAgPT4gJ2NvbnRlbnQnCiAgICAgICAgICAgICMgICAgQ29udGVudFR5cGUgPT4gJ3NvbWUgY29udGVudCB0eXBlJwogICAgICAgICAgICAjICAgIEZpbGVuYW1lICAgID0+ICdzb21lIGZpbmUgbmFtZScKICAgICAgICAgICAgI30sCiAgICAgICAgfSwKICAgICk7CgogICAgJFJlc3VsdCA9IHsKICAgICAgICBTdWNjZXNzICAgICAgICAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICMgMCBvciAxCiAgICAgICAgRXJyb3JNZXNzYWdlICAgID0+ICcnLCAgICAgICAgICAgICAgICAgICAgICAjIGluIGNhc2Ugb2YgZXJyb3IKICAgICAgICBEYXRhICAgICAgICAgICAgPT4geyAgICAgICAgICAgICAgICAgICAgICAgICMgcmVzdWx0IGRhdGEgcGF5bG9hZCBhZnRlciBPcGVyYXRpb24KICAgICAgICAgICAgVGlja2V0SUQgICAgPT4gMTIzLCAgICAgICAgICAgICAgICAgICAgICMgVGlja2V0ICBJRCBudW1iZXIgaW4gT1RPQk8gKGhlbHAgZGVzayBzeXN0ZW0pCiAgICAgICAgICAgIEFydGljbGVJRCAgID0+IDQzLCAgICAgICAgICAgICAgICAgICAgICAjIEFydGljbGUgSUQgbnVtYmVyIGluIE9UT0JPIChoZWxwIGRlc2sgc3lzdGVtKQogICAgICAgICAgICBFcnJvciA9PiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzaG91bGQgbm90IHJldHVybiBlcnJvcnMKICAgICAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5FcnJvckNvZGUnCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdFcnJvciBEZXNjcmlwdGlvbicKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICMgSWYgSW5jbHVkZVRpY2tldERhdGEgaXMgZW5hYmxlZAogICAgICAgICAgICBUaWNrZXQgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICA9PiAnMjAxMDEwMjcwMDAwMDEnLAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICA9PiAnc29tZSB0aXRsZScsCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgICAgID0+IDEyMywKICAgICAgICAgICAgICAgICAgICBTdGF0ZSAgICAgICAgICAgICAgPT4gJ3NvbWUgc3RhdGUnLAogICAgICAgICAgICAgICAgICAgIFN0YXRlSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgID0+ICdzb21lIHN0YXRlIHR5cGUnLAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICA9PiAnc29tZSBwcmlvcml0eScsCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHlJRCAgICAgICAgID0+IDEyMywKICAgICAgICAgICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICAgICAgICAgIExvY2tJRCAgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgID0+ICdzb21lIHF1ZXVlJywKICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgICAgICAgICAgICAgIEN1c3RvbWVySUQgICAgICAgICA9PiAnY3VzdG9tZXJfaWRfMTIzJywKICAgICAgICAgICAgICAgICAgICBDdXN0b21lclVzZXJJRCAgICAgPT4gJ2N1c3RvbWVyX3VzZXJfaWRfMTIzJywKICAgICAgICAgICAgICAgICAgICBPd25lciAgICAgICAgICAgICAgPT4gJ3NvbWVfb3duZXJfbG9naW4nLAogICAgICAgICAgICAgICAgICAgIE93bmVySUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgID0+ICdzb21lIHRpY2tldCB0eXBlJywKICAgICAgICAgICAgICAgICAgICBUeXBlSUQgICAgICAgICAgICAgPT4gMTIzLAogICAgICAgICAgICAgICAgICAgIFNMQSAgICAgICAgICAgICAgICA9PiAnc29tZSBzbGEnLAogICAgICAgICAgICAgICAgICAgIFNMQUlEICAgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgICAgICAgICAgICAgU2VydmljZSAgICAgICAgICAgID0+ICdzb21lIHNlcnZpY2UnLAogICAgICAgICAgICAgICAgICAgIFNlcnZpY2VJRCAgICAgICAgICA9PiAxMjMsCiAgICAgICAgICAgICAgICAgICAgUmVzcG9uc2libGUgICAgICAgID0+ICdzb21lX3Jlc3BvbnNpYmxlX2xvZ2luJywKICAgICAgICAgICAgICAgICAgICBSZXNwb25zaWJsZUlEICAgICAgPT4gMTIzLAogICAgICAgICAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICA9PiAzNDU2LAogICAgICAgICAgICAgICAgICAgIENyZWF0ZWQgICAgICAgICAgICA9PiAnMjAxMC0xMC0yNyAyMDoxNTowMCcKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgICAgICAgPT4gMTIzLAogICAgICAgICAgICAgICAgICAgIENoYW5nZWQgICAgICAgICAgICA9PiAnMjAxMC0xMC0yNyAyMDoxNToxNScsCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlQnkgICAgICAgICAgID0+IDEyMywKICAgICAgICAgICAgICAgICAgICBBcmNoaXZlRmxhZyAgICAgICAgPT4gJ3knLAoKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGQgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lICA9PiAnc29tZSBuYW1lJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICdzb21lIHZhbHVlJywKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBdLAoKICAgICAgICAgICAgICAgICAgICAjICh0aW1lIHN0YW1wcyBvZiBleHBlY3RlZCBlc2NhbGF0aW9ucykKICAgICAgICAgICAgICAgICAgICBFc2NhbGF0aW9uUmVzcG9uc2VUaW1lICAgICAgICAgICAodW5peCB0aW1lIHN0YW1wIG9mIHJlc3BvbnNlIHRpbWUgZXNjYWxhdGlvbikKICAgICAgICAgICAgICAgICAgICBFc2NhbGF0aW9uVXBkYXRlVGltZSAgICAgICAgICAgICAodW5peCB0aW1lIHN0YW1wIG9mIHVwZGF0ZSB0aW1lIGVzY2FsYXRpb24pCiAgICAgICAgICAgICAgICAgICAgRXNjYWxhdGlvblNvbHV0aW9uVGltZSAgICAgICAgICAgKHVuaXggdGltZSBzdGFtcCBvZiBzb2x1dGlvbiB0aW1lIGVzY2FsYXRpb24pCgogICAgICAgICAgICAgICAgICAgICMgKGdlbmVyYWwgZXNjYWxhdGlvbiBpbmZvIG9mIG5lYXJlc3QgZXNjYWxhdGlvbiB0eXBlKQogICAgICAgICAgICAgICAgICAgIEVzY2FsYXRpb25EZXN0aW5hdGlvbkluICAgICAgICAgIChlc2NhbGF0aW9uIGluIGUuIGcuIDFoIDRtKQogICAgICAgICAgICAgICAgICAgIEVzY2FsYXRpb25EZXN0aW5hdGlvblRpbWUgICAgICAgIChkYXRlIG9mIGVzY2FsYXRpb24gaW4gdW5peCB0aW1lLCBlLiBnLiA3MjE5MzI5MikKICAgICAgICAgICAgICAgICAgICBFc2NhbGF0aW9uRGVzdGluYXRpb25EYXRlICAgICAgICAoZGF0ZSBvZiBlc2NhbGF0aW9uLCBlLiBnLiAiMjAwOS0wMi0xNCAxODowMDowMCIpCiAgICAgICAgICAgICAgICAgICAgRXNjYWxhdGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgKHNlY29uZHMgb2Ygd29ya2luZy9zZXJ2aWNlIHRpbWUgdGlsbCBlc2NhbGF0aW9uLCBlLiBnLiAiMTgwMCIpCiAgICAgICAgICAgICAgICAgICAgRXNjYWxhdGlvblRpbWUgICAgICAgICAgICAgICAgICAgKHNlY29uZHMgdG90YWwgdGlsbCBlc2NhbGF0aW9uIG9mIG5lYXJlc3QgZXNjYWxhdGlvbiB0aW1lIHR5cGUgLSByZXNwb25zZSwgdXBkYXRlIG9yIHNvbHV0aW9uIHRpbWUsIGUuIGcuICIzNjAwIikKCiAgICAgICAgICAgICAgICAgICAgIyAoZGV0YWlsZWQgZXNjYWxhdGlvbiBpbmZvIGFib3V0IGZpcnN0IHJlc3BvbnNlLCB1cGRhdGUgYW5kIHNvbHV0aW9uIHRpbWUpCiAgICAgICAgICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVFc2NhbGF0aW9uICAgICAgKGlmIHRydWUsIHRpY2tldCBpcyBlc2NhbGF0ZWQpCiAgICAgICAgICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVOb3RpZmljYXRpb24gICAgKGlmIHRydWUsIG5vdGlmeSAtIHglIG9mIGVzY2FsYXRpb24gaGFzIHJlYWNoZWQpCiAgICAgICAgICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvblRpbWUgKGRhdGUgb2YgZXNjYWxhdGlvbiBpbiB1bml4IHRpbWUsIGUuIGcuIDcyMTkzMjkyKQogICAgICAgICAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25EYXRlIChkYXRlIG9mIGVzY2FsYXRpb24sIGUuIGcuICIyMDA5LTAyLTE0IDE4OjAwOjAwIikKICAgICAgICAgICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZVdvcmtpbmdUaW1lICAgICAoc2Vjb25kcyBvZiB3b3JraW5nL3NlcnZpY2UgdGltZSB0aWxsIGVzY2FsYXRpb24sIGUuIGcuICIxODAwIikKICAgICAgICAgICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZSAgICAgICAgICAgICAgICAoc2Vjb25kcyB0b3RhbCB0aWxsIGVzY2FsYXRpb24sIGUuIGcuICIzNjAwIikKCiAgICAgICAgICAgICAgICAgICAgVXBkYXRlVGltZUVzY2FsYXRpb24gICAgICAgICAgICAgKGlmIHRydWUsIHRpY2tldCBpcyBlc2NhbGF0ZWQpCiAgICAgICAgICAgICAgICAgICAgVXBkYXRlVGltZU5vdGlmaWNhdGlvbiAgICAgICAgICAgKGlmIHRydWUsIG5vdGlmeSAtIHglIG9mIGVzY2FsYXRpb24gaGFzIHJlYWNoZWQpCiAgICAgICAgICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uVGltZSAgICAgICAgKGRhdGUgb2YgZXNjYWxhdGlvbiBpbiB1bml4IHRpbWUsIGUuIGcuIDcyMTkzMjkyKQogICAgICAgICAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICAgIChkYXRlIG9mIGVzY2FsYXRpb24sIGUuIGcuICIyMDA5LTAyLTE0IDE4OjAwOjAwIikKICAgICAgICAgICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICAoc2Vjb25kcyBvZiB3b3JraW5nL3NlcnZpY2UgdGltZSB0aWxsIGVzY2FsYXRpb24sIGUuIGcuICIxODAwIikKICAgICAgICAgICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICAoc2Vjb25kcyB0b3RhbCB0aWxsIGVzY2FsYXRpb24sIGUuIGcuICIzNjAwIikKCiAgICAgICAgICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgKGlmIHRydWUsIHRpY2tldCBpcyBlc2NhbGF0ZWQpCiAgICAgICAgICAgICAgICAgICAgU29sdXRpb25UaW1lTm90aWZpY2F0aW9uICAgICAgICAgKGlmIHRydWUsIG5vdGlmeSAtIHglIG9mIGVzY2FsYXRpb24gaGFzIHJlYWNoZWQpCiAgICAgICAgICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgKGRhdGUgb2YgZXNjYWxhdGlvbiBpbiB1bml4IHRpbWUsIGUuIGcuIDcyMTkzMjkyKQogICAgICAgICAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgIChkYXRlIG9mIGVzY2FsYXRpb24sIGUuIGcuICIyMDA5LTAyLTE0IDE4OjAwOjAwIikKICAgICAgICAgICAgICAgICAgICBTb2x1dGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgICAoc2Vjb25kcyBvZiB3b3JraW5nL3NlcnZpY2UgdGltZSB0aWxsIGVzY2FsYXRpb24sIGUuIGcuICIxODAwIikKICAgICAgICAgICAgICAgICAgICBTb2x1dGlvblRpbWUgICAgICAgICAgICAgICAgICAgICAoc2Vjb25kcyB0b3RhbCB0aWxsIGVzY2FsYXRpb24sIGUuIGcuICIzNjAwIikKCiAgICAgICAgICAgICAgICAgICAgQXJ0aWNsZSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFydGljbGVJRAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENjCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCb2R5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXBseVRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlSUQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluUmVwbHlUbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZGVyVHlwZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZGVyVHlwZUlECiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tdW5pY2F0aW9uQ2hhbm5lbElECiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJc1Zpc2libGVGb3JDdXN0b21lcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbWVUeXBlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmNvbWluZ1RpbWUKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGQgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgPT4gJ3NvbWUgbmFtZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICdzb21lIHZhbHVlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRhY2htZW50ID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgICAgICAgICAgICA9PiAieHh4eCIsICAgICAjIGFjdHVhbCBhdHRhY2htZW50IGNvbnRlbnRzLCBiYXNlNjQgZW5jb25kZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudEFsdGVybmF0aXZlID0+ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50SUQgICAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlICAgICAgICA9PiAiYXBwbGljYXRpb24vcGRmIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZW5hbWUgICAgICAgICAgID0+ICJTdGRBdHRhY2htZW50LVRlc3QxLnBkZiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVzaXplICAgICAgICAgICA9PiAiNC42IEtCeXRlcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVzaXplUmF3ICAgICAgICA9PiA0NzIyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICB9OwoKPWN1dAoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRSZXN1bHQgPSAkU2VsZi0+SW5pdCgKICAgICAgICBXZWJzZXJ2aWNlSUQgPT4gJFNlbGYtPntXZWJzZXJ2aWNlSUR9LAogICAgKTsKCiAgICBpZiAoICEkUmVzdWx0LT57U3VjY2Vzc30gKSB7CiAgICAgICAgJFNlbGYtPlJldHVybkVycm9yKAogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1dlYnNlcnZpY2UuSW52YWxpZENvbmZpZ3VyYXRpb24nLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJFJlc3VsdC0+e0Vycm9yTWVzc2FnZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtEYXRhfSApICkgewogICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkVtcHR5UmVxdWVzdCcsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBUaGUgcmVxdWVzdCBkYXRhIGlzIGludmFsaWQhIiwKICAgICAgICApOwogICAgfQoKICAgIGlmICggISRQYXJhbXtEYXRhfS0+e1RpY2tldElEfSAmJiAhJFBhcmFte0RhdGF9LT57VGlja2V0TnVtYmVyfSApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPlJldHVybkVycm9yKAogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IFRpY2tldElEIG9yIFRpY2tldE51bWJlciBpcyByZXF1aXJlZCEiLAogICAgICAgICk7CiAgICB9CgogICAgaWYgKAogICAgICAgICEkUGFyYW17RGF0YX0tPntVc2VyTG9naW59CiAgICAgICAgJiYgISRQYXJhbXtEYXRhfS0+e0N1c3RvbWVyVXNlckxvZ2lufQogICAgICAgICYmICEkUGFyYW17RGF0YX0tPntTZXNzaW9uSUR9CiAgICAgICAgKQogICAgewogICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLk1pc3NpbmdQYXJhbWV0ZXInLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogVXNlckxvZ2luLCBDdXN0b21lclVzZXJMb2dpbiBvciBTZXNzaW9uSUQgaXMgcmVxdWlyZWQhIiwKICAgICAgICApOwogICAgfQoKICAgIGlmICggJFBhcmFte0RhdGF9LT57VXNlckxvZ2lufSB8fCAkUGFyYW17RGF0YX0tPntDdXN0b21lclVzZXJMb2dpbn0gKSB7CiAgICAgICAgaWYgKCAhJFBhcmFte0RhdGF9LT57UGFzc3dvcmR9ICkgewogICAgICAgICAgICByZXR1cm4gJFNlbGYtPlJldHVybkVycm9yKAogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogUGFzc3dvcmQgb3IgU2Vzc2lvbklEIGlzIHJlcXVpcmVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgYXV0aGVudGljYXRlIHVzZXIKICAgIG15ICggJFVzZXJJRCwgJFVzZXJUeXBlICkgPSAkU2VsZi0+QXV0aCgKICAgICAgICAlUGFyYW0sCiAgICApOwoKICAgIGlmICggISRVc2VySUQgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuQXV0aEZhaWwnLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogVXNlciBjb3VsZCBub3QgYmUgYXV0aGVudGljYXRlZCEiLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFBlcm1pc3Npb25Vc2VySUQgPSAkVXNlcklEOwoKICAgIGlmICggJFVzZXJUeXBlIGVxICdDdXN0b21lcicgKSB7CiAgICAgICAgJFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnQ3VzdG9tZXJQYW5lbFVzZXJJRCcpOwogICAgfQoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgIyBjaGVjayBUaWNrZXRJRAogICAgbXkgJFRpY2tldElEOwogICAgaWYgKCAkUGFyYW17RGF0YX0tPntUaWNrZXROdW1iZXJ9ICkgewogICAgICAgICRUaWNrZXRJRCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldElETG9va3VwKAogICAgICAgICAgICBUaWNrZXROdW1iZXIgPT4gJFBhcmFte0RhdGF9LT57VGlja2V0TnVtYmVyfSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRVc2VySUQsCiAgICAgICAgKTsKCiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkVGlja2V0SUQgPSAkUGFyYW17RGF0YX0tPntUaWNrZXRJRH07CiAgICB9CgogICAgaWYgKCAhKCRUaWNrZXRJRCkgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuQWNjZXNzRGVuaWVkJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IFVzZXIgZG9lcyBub3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIHRpY2tldCEiLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJVRpY2tldERhdGEgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgVGlja2V0SUQgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAwLAogICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFVzZXJJRCwKICAgICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoIFwlVGlja2V0RGF0YSApICkgewogICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkFjY2Vzc0RlbmllZCcsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBVc2VyIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHRoZSB0aWNrZXQhIiwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgYmFzaWMgbmVlZGVkIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzID0gJFNlbGYtPkNoZWNrQWNjZXNzUGVybWlzc2lvbnMoCiAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgIFVzZXJJRCAgID0+ICRQZXJtaXNzaW9uVXNlcklELAogICAgICAgIFVzZXJUeXBlID0+ICRVc2VyVHlwZSwKICAgICk7CgogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPlJldHVybkVycm9yKAogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5BY2Nlc3NEZW5pZWQnLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogVXNlciBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byB0aGUgdGlja2V0ISIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIG9wdGlvbmFsIGhhc2hlcwogICAgZm9yIG15ICRPcHRpb25hbCAocXcoVGlja2V0IEFydGljbGUpKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgICBkZWZpbmVkICRQYXJhbXtEYXRhfS0+eyRPcHRpb25hbH0KICAgICAgICAgICAgJiYgIUlzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17RGF0YX0tPnskT3B0aW9uYWx9ICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6ICRPcHRpb25hbCBwYXJhbWV0ZXIgaXMgbm90IHZhbGlkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgb3B0aW9uYWwgYXJyYXkvaGFzaGVzCiAgICBmb3IgbXkgJE9wdGlvbmFsIChxdyhEeW5hbWljRmllbGQgQXR0YWNobWVudCkpIHsKICAgICAgICBpZiAoCiAgICAgICAgICAgIGRlZmluZWQgJFBhcmFte0RhdGF9LT57JE9wdGlvbmFsfQogICAgICAgICAgICAmJiAhSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtEYXRhfS0+eyRPcHRpb25hbH0gKQogICAgICAgICAgICAmJiAhSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17RGF0YX0tPnskT3B0aW9uYWx9ICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLk1pc3NpbmdQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6ICRPcHRpb25hbCBwYXJhbWV0ZXIgaXMgbWlzc2luZyBvciBub3QgdmFsaWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJFRpY2tldDsKICAgIGlmICggZGVmaW5lZCAkUGFyYW17RGF0YX0tPntUaWNrZXR9ICkgewoKICAgICAgICAjIGlzb2xhdGUgdGlja2V0IHBhcmFtZXRlcgogICAgICAgICRUaWNrZXQgPSAkUGFyYW17RGF0YX0tPntUaWNrZXR9OwoKICAgICAgICAkVGlja2V0LT57VXNlcklEfSA9ICRVc2VySUQ7CgogICAgICAgICMgcmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNwYWNlcwogICAgICAgIGZvciBteSAkQXR0cmlidXRlICggc29ydCBrZXlzICRUaWNrZXQtPiUqICkgewogICAgICAgICAgICBpZiAoICFyZWZ0eXBlICRUaWNrZXQtPnskQXR0cmlidXRlfSApIHsKCiAgICAgICAgICAgICAgICAjcmVtb3ZlIGxlYWRpbmcgc3BhY2VzCiAgICAgICAgICAgICAgICAkVGlja2V0LT57JEF0dHJpYnV0ZX0gPX4gc3tcQVxzK317fTsKCiAgICAgICAgICAgICAgICAjcmVtb3ZlIHRyYWlsaW5nIHNwYWNlcwogICAgICAgICAgICAgICAgJFRpY2tldC0+eyRBdHRyaWJ1dGV9ID1+IHN7XHMrXHp9e307CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFRpY2tldC0+e1BlbmRpbmdUaW1lfSApICkgewogICAgICAgICAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAkVGlja2V0LT57UGVuZGluZ1RpbWV9LT4lKiApIHsKICAgICAgICAgICAgICAgIGlmICggIXJlZnR5cGUgJFRpY2tldC0+e1BlbmRpbmdUaW1lfS0+eyRBdHRyaWJ1dGV9ICkgewoKICAgICAgICAgICAgICAgICAgICAjcmVtb3ZlIGxlYWRpbmcgc3BhY2VzCiAgICAgICAgICAgICAgICAgICAgJFRpY2tldC0+e1BlbmRpbmdUaW1lfS0+eyRBdHRyaWJ1dGV9ID1+IHN7XEFccyt9e307CgogICAgICAgICAgICAgICAgICAgICNyZW1vdmUgdHJhaWxpbmcgc3BhY2VzCiAgICAgICAgICAgICAgICAgICAgJFRpY2tldC0+e1BlbmRpbmdUaW1lfS0+eyRBdHRyaWJ1dGV9ID1+IHN7XHMrXHp9e307CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgY2hlY2sgVGlja2V0IGF0dHJpYnV0ZSB2YWx1ZXMKICAgICAgICBteSAkVGlja2V0Q2hlY2sgPSAkU2VsZi0+X0NoZWNrVGlja2V0KAogICAgICAgICAgICBUaWNrZXQgICAgPT4gJFRpY2tldCwKICAgICAgICAgICAgT2xkVGlja2V0ID0+IFwlVGlja2V0RGF0YSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkVGlja2V0Q2hlY2stPntTdWNjZXNzfSApIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvciggJXskVGlja2V0Q2hlY2t9ICk7CiAgICAgICAgfQogICAgfQoKICAgIG15ICRBcnRpY2xlOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtEYXRhfS0+e0FydGljbGV9ICkgewoKICAgICAgICAkQXJ0aWNsZSA9ICRQYXJhbXtEYXRhfS0+e0FydGljbGV9OwogICAgICAgICRBcnRpY2xlLT57VXNlclR5cGV9ID0gJFVzZXJUeXBlOwoKICAgICAgICAjIHJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZXMKICAgICAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAkQXJ0aWNsZS0+JSogKSB7CiAgICAgICAgICAgIGlmICggIXJlZnR5cGUgJEFydGljbGUtPnskQXR0cmlidXRlfSApIHsKCiAgICAgICAgICAgICAgICAjcmVtb3ZlIGxlYWRpbmcgc3BhY2VzCiAgICAgICAgICAgICAgICAkQXJ0aWNsZS0+eyRBdHRyaWJ1dGV9ID1+IHN7XEFccyt9e307CgogICAgICAgICAgICAgICAgI3JlbW92ZSB0cmFpbGluZyBzcGFjZXMKICAgICAgICAgICAgICAgICRBcnRpY2xlLT57JEF0dHJpYnV0ZX0gPX4gc3tccytcen17fTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkQXJ0aWNsZS0+e09yaWdIZWFkZXJ9ICkgKSB7CiAgICAgICAgICAgIGZvciBteSAkQXR0cmlidXRlICggc29ydCBrZXlzICRBcnRpY2xlLT57T3JpZ0hlYWRlcn0tPiUqICkgewogICAgICAgICAgICAgICAgaWYgKCAhcmVmdHlwZSAkQXJ0aWNsZS0+e09yaWdIZWFkZXJ9LT57JEF0dHJpYnV0ZX0gKSB7CgogICAgICAgICAgICAgICAgICAgICNyZW1vdmUgbGVhZGluZyBzcGFjZXMKICAgICAgICAgICAgICAgICAgICAkQXJ0aWNsZS0+e09yaWdIZWFkZXJ9LT57JEF0dHJpYnV0ZX0gPX4gc3tcQVxzK317fTsKCiAgICAgICAgICAgICAgICAgICAgI3JlbW92ZSB0cmFpbGluZyBzcGFjZXMKICAgICAgICAgICAgICAgICAgICAkQXJ0aWNsZS0+e09yaWdIZWFkZXJ9LT57JEF0dHJpYnV0ZX0gPX4gc3tccytcen17fTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBhdHRyaWJ1dGVzIHRoYXQgY2FuIGJlIHNldCBieSBzeXNjb25maWcuCiAgICAgICAgaWYgKCAhJEFydGljbGUtPntBdXRvUmVzcG9uc2VUeXBlfSApIHsKICAgICAgICAgICAgJEFydGljbGUtPntBdXRvUmVzcG9uc2VUeXBlfSA9ICRTZWxmLT57Q29uZmlnfS0+e0F1dG9SZXNwb25zZVR5cGV9IHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJEFydGljbGUtPntDb21tdW5pY2F0aW9uQ2hhbm5lbElEfSAmJiAhJEFydGljbGUtPntDb21tdW5pY2F0aW9uQ2hhbm5lbH0gKSB7CiAgICAgICAgICAgICRBcnRpY2xlLT57Q29tbXVuaWNhdGlvbkNoYW5uZWx9ID0gJ0ludGVybmFsJzsKICAgICAgICB9CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkQXJ0aWNsZS0+e0lzVmlzaWJsZUZvckN1c3RvbWVyfSApIHsKICAgICAgICAgICAgJEFydGljbGUtPntJc1Zpc2libGVGb3JDdXN0b21lcn0gPSAkU2VsZi0+e0NvbmZpZ30tPntJc1Zpc2libGVGb3JDdXN0b21lcn0gLy8gMTsKICAgICAgICB9CiAgICAgICAgaWYgKCAhJEFydGljbGUtPntTZW5kZXJUeXBlSUR9ICYmICEkQXJ0aWNsZS0+e1NlbmRlclR5cGV9ICkgewogICAgICAgICAgICAkQXJ0aWNsZS0+e1NlbmRlclR5cGV9ID0gJFVzZXJUeXBlIGVxICdVc2VyJyA/ICdhZ2VudCcgOiAnY3VzdG9tZXInOwogICAgICAgIH0KICAgICAgICBpZiAoICEkQXJ0aWNsZS0+e0hpc3RvcnlUeXBlfSApIHsKICAgICAgICAgICAgJEFydGljbGUtPntIaXN0b3J5VHlwZX0gPSAkU2VsZi0+e0NvbmZpZ30tPntIaXN0b3J5VHlwZX0gfHwgJyc7CiAgICAgICAgfQogICAgICAgIGlmICggISRBcnRpY2xlLT57SGlzdG9yeUNvbW1lbnR9ICkgewogICAgICAgICAgICAkQXJ0aWNsZS0+e0hpc3RvcnlDb21tZW50fSA9ICRTZWxmLT57Q29uZmlnfS0+e0hpc3RvcnlDb21tZW50fSB8fCAnJzsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgQXJ0aWNsZSBhdHRyaWJ1dGUgdmFsdWVzCiAgICAgICAgbXkgJEFydGljbGVDaGVjayA9ICRTZWxmLT5fQ2hlY2tBcnRpY2xlKCBBcnRpY2xlID0+ICRBcnRpY2xlICk7CgogICAgICAgIGlmICggISRBcnRpY2xlQ2hlY2stPntTdWNjZXNzfSApIHsKICAgICAgICAgICAgaWYgKCAhJEFydGljbGVDaGVjay0+e0Vycm9yQ29kZX0gKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgICAgICAgICAleyRBcnRpY2xlQ2hlY2t9LAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJFNlbGYtPlJldHVybkVycm9yKCAleyRBcnRpY2xlQ2hlY2t9ICk7CiAgICAgICAgfQogICAgfQoKICAgIG15IEBEeW5hbWljRmllbGRMaXN0OwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtEYXRhfS0+e0R5bmFtaWNGaWVsZH0gKSB7CgogICAgICAgICMgaXNvbGF0ZSBEeW5hbWljRmllbGQgcGFyYW1ldGVyCiAgICAgICAgbXkgJER5bmFtaWNGaWVsZCA9ICRQYXJhbXtEYXRhfS0+e0R5bmFtaWNGaWVsZH07CgogICAgICAgICMgaG9tb2dlbmF0ZSBpbnB1dCB0byBhcnJheQogICAgICAgIGlmICggcmVmICREeW5hbWljRmllbGQgZXEgJ0hBU0gnICkgewogICAgICAgICAgICBwdXNoIEBEeW5hbWljRmllbGRMaXN0LCAkRHluYW1pY0ZpZWxkOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgQER5bmFtaWNGaWVsZExpc3QgPSAkRHluYW1pY0ZpZWxkLT5AKjsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgRHluYW1pY0ZpZWxkIGludGVybmFsIHN0cnVjdHVyZQogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkSXRlbSAoQER5bmFtaWNGaWVsZExpc3QpIHsKICAgICAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZEl0ZW0pICkgewogICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAgICAgIlRpY2tldFVwZGF0ZTogVGlja2V0LT5EeW5hbWljRmllbGQgcGFyYW1ldGVyIGlzIGludmFsaWQhIiwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNwYWNlcwogICAgICAgICAgICBBVFRSSUJVVEU6CiAgICAgICAgICAgIGZvciBteSAkQXR0cmlidXRlICggc29ydCBrZXlzICV7JER5bmFtaWNGaWVsZEl0ZW19ICkgewogICAgICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgcmVmdHlwZSAkRHluYW1pY0ZpZWxkSXRlbS0+eyRBdHRyaWJ1dGV9OwoKICAgICAgICAgICAgICAgICMgVE9ETzogdGhpcyBtaWdodCBiZSBhIGNhc2Ugd2hlcmUgaW5wdXQgZGF0YSBpcyBtb2RpZmllZAogICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZEl0ZW0tPnskQXR0cmlidXRlfSA9fiBze1xBXHMrfXt9OwogICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZEl0ZW0tPnskQXR0cmlidXRlfSA9fiBze1xzK1x6fXt9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIER5bmFtaWNGaWVsZCBhdHRyaWJ1dGUgdmFsdWVzCiAgICAgICAgICAgIG15ICREeW5hbWljRmllbGRDaGVjayA9ICRTZWxmLT5fQ2hlY2tEeW5hbWljRmllbGQoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGQgPT4gJER5bmFtaWNGaWVsZEl0ZW0sCiAgICAgICAgICAgICAgICBBcnRpY2xlICAgICAgPT4gJEFydGljbGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICEkRHluYW1pY0ZpZWxkQ2hlY2stPntTdWNjZXNzfSApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoICV7JER5bmFtaWNGaWVsZENoZWNrfSApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIG15IEBBdHRhY2htZW50TGlzdDsKICAgIGlmICggZGVmaW5lZCAkUGFyYW17RGF0YX0tPntBdHRhY2htZW50fSApIHsKCiAgICAgICAgIyBpc29sYXRlIEF0dGFjaG1lbnQgcGFyYW1ldGVyCiAgICAgICAgbXkgJEF0dGFjaG1lbnQgPSAkUGFyYW17RGF0YX0tPntBdHRhY2htZW50fTsKCiAgICAgICAgIyBob21vZ2VuYXRlIGlucHV0IHRvIGFycmF5CiAgICAgICAgaWYgKCByZWYgJEF0dGFjaG1lbnQgZXEgJ0hBU0gnICkgewogICAgICAgICAgICBwdXNoIEBBdHRhY2htZW50TGlzdCwgJEF0dGFjaG1lbnQ7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBAQXR0YWNobWVudExpc3QgPSBAeyRBdHRhY2htZW50fTsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgQXR0YWNobWVudCBpbnRlcm5hbCBzdHJ1Y3R1cmUKICAgICAgICBmb3IgbXkgJEF0dGFjaG1lbnRJdGVtIChAQXR0YWNobWVudExpc3QpIHsKICAgICAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJEF0dGFjaG1lbnRJdGVtKSApIHsKICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgICAgICJUaWNrZXRVcGRhdGU6IFRpY2tldC0+QXR0YWNobWVudCBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyByZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2VzCiAgICAgICAgICAgIGZvciBteSAkQXR0cmlidXRlICggc29ydCBrZXlzICRBdHRhY2htZW50SXRlbS0+JSogKSB7CiAgICAgICAgICAgICAgICBpZiAoICFyZWZ0eXBlICRBdHRhY2htZW50SXRlbS0+eyRBdHRyaWJ1dGV9ICkgewoKICAgICAgICAgICAgICAgICAgICAjcmVtb3ZlIGxlYWRpbmcgc3BhY2VzCiAgICAgICAgICAgICAgICAgICAgJEF0dGFjaG1lbnRJdGVtLT57JEF0dHJpYnV0ZX0gPX4gc3tcQVxzK317fTsKCiAgICAgICAgICAgICAgICAgICAgI3JlbW92ZSB0cmFpbGluZyBzcGFjZXMKICAgICAgICAgICAgICAgICAgICAkQXR0YWNobWVudEl0ZW0tPnskQXR0cmlidXRlfSA9fiBze1xzK1x6fXt9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIEF0dGFjaG1lbnQgYXR0cmlidXRlIHZhbHVlcwogICAgICAgICAgICBteSAkQXR0YWNobWVudENoZWNrID0gJFNlbGYtPl9DaGVja0F0dGFjaG1lbnQoCiAgICAgICAgICAgICAgICBBdHRhY2htZW50ID0+ICRBdHRhY2htZW50SXRlbSwKICAgICAgICAgICAgICAgIEFydGljbGUgICAgPT4gJEFydGljbGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICEkQXR0YWNobWVudENoZWNrLT57U3VjY2Vzc30gKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJFNlbGYtPlJldHVybkVycm9yKCAleyRBdHRhY2htZW50Q2hlY2t9ICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICRTZWxmLT5fVGlja2V0VXBkYXRlKAogICAgICAgIFRpY2tldElEICAgICAgICAgPT4gJFRpY2tldElELAogICAgICAgIFRpY2tldCAgICAgICAgICAgPT4gJFRpY2tldCwKICAgICAgICBBcnRpY2xlICAgICAgICAgID0+ICRBcnRpY2xlLAogICAgICAgIER5bmFtaWNGaWVsZExpc3QgPT4gXEBEeW5hbWljRmllbGRMaXN0LAogICAgICAgIEF0dGFjaG1lbnRMaXN0ICAgPT4gXEBBdHRhY2htZW50TGlzdCwKICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRVc2VySUQsCiAgICAgICAgVXNlclR5cGUgICAgICAgICA9PiAkVXNlclR5cGUsCiAgICApOwp9Cgo9YmVnaW4gSW50ZXJuYWw6Cgo9aGVhZDIgX0NoZWNrVGlja2V0KCkKCmNoZWNrcyBpZiB0aGUgZ2l2ZW4gdGlja2V0IHBhcmFtZXRlcnMgYXJlIHZhbGlkLgoKICAgIG15ICRUaWNrZXRDaGVjayA9ICRPcGVyYXRpb25PYmplY3QtPl9DaGVja1RpY2tldCgKICAgICAgICBUaWNrZXQgPT4gJFRpY2tldCwgICAgICAgICAgICAgICAgICAgICAgICAgICMgYWxsIHRpY2tldCBwYXJhbWV0ZXJzCiAgICApOwoKcmV0dXJuczoKCiAgICAkVGlja2V0Q2hlY2sgPSB7CiAgICAgICAgU3VjY2VzcyA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlmIGV2ZXJ5dGhpbmcgaXMgT0sKICAgIH0KCm9yCgogICAgJFRpY2tldENoZWNrID0gewogICAgICAgIEVycm9yQ29kZSAgICA9PiAnRnVuY3Rpb24uRXJyb3InLCAgICAgICAgICAgIyBpZiBlcnJvcgogICAgICAgIEVycm9yTWVzc2FnZSA9PiAnRXJyb3IgZGVzY3JpcHRpb24nLAogICAgfQoKPWN1dAoKc3ViIF9DaGVja1RpY2tldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRUaWNrZXQgICAgPSAkUGFyYW17VGlja2V0fTsKICAgIG15ICRPbGRUaWNrZXQgPSAkUGFyYW17T2xkVGlja2V0fTsKCiAgICAjIGNoZWNrIFRpY2tldC0+Q3VzdG9tZXJVc2VyCiAgICBpZiAoCiAgICAgICAgJFRpY2tldC0+e0N1c3RvbWVyVXNlcn0KICAgICAgICAmJiAhJFNlbGYtPlZhbGlkYXRlQ3VzdG9tZXIoICV7JFRpY2tldH0gKQogICAgICAgICkKICAgIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAiVGlja2V0VXBkYXRlOiBUaWNrZXQtPkN1c3RvbWVyVXNlciBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBUaWNrZXQtPlF1ZXVlCiAgICBpZiAoICRUaWNrZXQtPntRdWV1ZUlEfSB8fCAkVGlja2V0LT57UXVldWV9ICkgewogICAgICAgIGlmICggISRTZWxmLT5WYWxpZGF0ZVF1ZXVlKCAleyRUaWNrZXR9ICkgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBUaWNrZXQtPlF1ZXVlSUQgb3IgVGlja2V0LT5RdWV1ZSBwYXJhbWV0ZXIgaXMiCiAgICAgICAgICAgICAgICAgICAgLiAiIGludmFsaWQhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBUaWNrZXQtPkxvY2sKICAgIGlmICggJFRpY2tldC0+e0xvY2tJRH0gfHwgJFRpY2tldC0+e0xvY2t9ICkgewogICAgICAgIGlmICggISRTZWxmLT5WYWxpZGF0ZUxvY2soICV7JFRpY2tldH0gKSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IFRpY2tldC0+TG9ja0lEIG9yIFRpY2tldC0+TG9jayBwYXJhbWV0ZXIgaXMiCiAgICAgICAgICAgICAgICAgICAgLiAiIGludmFsaWQhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBUaWNrZXQtPlR5cGUKICAgIGlmICggJFRpY2tldC0+e1R5cGVJRH0gfHwgJFRpY2tldC0+e1R5cGV9ICkgewogICAgICAgIGlmICggISRTZWxmLT5WYWxpZGF0ZVR5cGUoICV7JFRpY2tldH0gKSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgIlRpY2tldFVwZGF0ZTogVGlja2V0LT5UeXBlSUQgb3IgVGlja2V0LT5UeXBlIHBhcmFtZXRlciBpcyBpbnZhbGlkISIsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgVGlja2V0LT5TZXJ2aWNlCiAgICBpZiAoICRUaWNrZXQtPntTZXJ2aWNlSUR9IHx8ICRUaWNrZXQtPntTZXJ2aWNlfSApIHsKCiAgICAgICAgIyBzZXQgY3VzdG9tZXIgdXNlciBmcm9tIG9sZCB0aWNrZXQgaWYgbm8gbmV3IGN1c3RvbWVyIHVzZXIgaXMgdG8gYmUgc2V0CiAgICAgICAgbXkgJEN1c3RvbWVyVXNlciA9ICRUaWNrZXQtPntDdXN0b21lclVzZXJ9IHx8ICcnOwogICAgICAgIGlmICggISRDdXN0b21lclVzZXIgKSB7CiAgICAgICAgICAgICRDdXN0b21lclVzZXIgPSAkT2xkVGlja2V0LT57Q3VzdG9tZXJVc2VySUR9OwogICAgICAgIH0KICAgICAgICBpZiAoCiAgICAgICAgICAgICEkU2VsZi0+VmFsaWRhdGVTZXJ2aWNlKAogICAgICAgICAgICAgICAgJXskVGlja2V0fSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAkQ3VzdG9tZXJVc2VyLAogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICJUaWNrZXRVcGRhdGU6IFRpY2tldC0+U2VydmljZUlEIG9yIFRpY2tldC0+U2VydmljZSBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIFRpY2tldC0+U0xBCiAgICBpZiAoICRUaWNrZXQtPntTTEFJRH0gfHwgJFRpY2tldC0+e1NMQX0gKSB7CgogICAgICAgICMgc2V0IFNlcnZpY2VJRCBmcm9tIG9sZCB0aWNrZXQgaWYgbm8gbmV3IFNlcnZpY2VJRCBvciBTZXJ2aWNlIGlzIHRvIGJlIHNldAogICAgICAgIG15ICRTZXJ2aWNlICAgPSAkVGlja2V0LT57U2VydmljZX0gICB8fCAnJzsKICAgICAgICBteSAkU2VydmljZUlEID0gJFRpY2tldC0+e1NlcnZpY2VJRH0gfHwgJyc7CiAgICAgICAgaWYgKCAhJFNlcnZpY2VJRCAmJiAhJFNlcnZpY2UgKSB7CiAgICAgICAgICAgICRTZXJ2aWNlSUQgPSAkT2xkVGlja2V0LT57U2VydmljZUlEfTsKICAgICAgICB9CgogICAgICAgIGlmICgKICAgICAgICAgICAgISRTZWxmLT5WYWxpZGF0ZVNMQSgKICAgICAgICAgICAgICAgICV7JFRpY2tldH0sCiAgICAgICAgICAgICAgICBTZXJ2aWNlICAgPT4gJFNlcnZpY2UsCiAgICAgICAgICAgICAgICBTZXJ2aWNlSUQgPT4gJFNlcnZpY2VJRCwKICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAiVGlja2V0VXBkYXRlOiBUaWNrZXQtPlNMQUlEIG9yIFRpY2tldC0+U0xBIHBhcmFtZXRlciBpcyBpbnZhbGlkISIsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgVGlja2V0LT5TdGF0ZQogICAgaWYgKCAkVGlja2V0LT57U3RhdGVJRH0gfHwgJFRpY2tldC0+e1N0YXRlfSApIHsKICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVTdGF0ZSggJXskVGlja2V0fSApICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogVGlja2V0LT5TdGF0ZUlEIG9yIFRpY2tldC0+U3RhdGUgcGFyYW1ldGVyIGlzIgogICAgICAgICAgICAgICAgICAgIC4gIiBpbnZhbGlkISIsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgVGlja2V0LT5Qcmlvcml0eQogICAgaWYgKCAkVGlja2V0LT57UHJpb3JpdHlJRH0gfHwgJFRpY2tldC0+e1ByaW9yaXR5fSApIHsKICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVQcmlvcml0eSggJXskVGlja2V0fSApICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogVGlja2V0LT5Qcmlvcml0eUlEIG9yIFRpY2tldC0+UHJpb3JpdHkgcGFyYW1ldGVyIGlzIgogICAgICAgICAgICAgICAgICAgIC4gIiBpbnZhbGlkISIsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgVGlja2V0LT5Pd25lcgogICAgaWYgKCAkVGlja2V0LT57T3duZXJJRH0gfHwgJFRpY2tldC0+e093bmVyfSApIHsKICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVPd25lciggJXskVGlja2V0fSApICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAiVGlja2V0VXBkYXRlOiBUaWNrZXQtPk93bmVySUQgb3IgVGlja2V0LT5Pd25lciBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIFRpY2tldC0+UmVzcG9uc2libGUKICAgIGlmICggJFRpY2tldC0+e1Jlc3BvbnNpYmxlSUR9IHx8ICRUaWNrZXQtPntSZXNwb25zaWJsZX0gKSB7CiAgICAgICAgaWYgKCAhJFNlbGYtPlZhbGlkYXRlUmVzcG9uc2libGUoICV7JFRpY2tldH0gKSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IFRpY2tldC0+UmVzcG9uc2libGVJRCBvciBUaWNrZXQtPlJlc3BvbnNpYmxlIgogICAgICAgICAgICAgICAgICAgIC4gIiBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIFRpY2tldC0+UGVuZGluZ1RpbWUKICAgIGlmICggJFRpY2tldC0+e1BlbmRpbmdUaW1lfSApIHsKICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVQZW5kaW5nVGltZSggJXskVGlja2V0fSApICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogVGlja2V0LT5QZW5kaW5nVGltZSBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGlmIGV2ZXJ5dGhpbmcgaXMgT0sgdGhlbiByZXR1cm4gU3VjY2VzcwogICAgcmV0dXJuIHsKICAgICAgICBTdWNjZXNzID0+IDEsCiAgICB9Owp9Cgo9aGVhZDIgX0NoZWNrQXJ0aWNsZSgpCgpjaGVja3MgaWYgdGhlIGdpdmVuIGFydGljbGUgcGFyYW1ldGVyIGlzIHZhbGlkLgoKICAgIG15ICRBcnRpY2xlQ2hlY2sgPSAkT3BlcmF0aW9uT2JqZWN0LT5fQ2hlY2tBcnRpY2xlKAogICAgICAgIEFydGljbGUgPT4gJEFydGljbGUsICAgICAgICAgICAgICAgICAgICAgICAgIyBhbGwgYXJ0aWNsZSBwYXJhbWV0ZXJzCiAgICApOwoKICAgIHJldHVybnM6CgogICAgJEFydGljbGVDaGVjayA9IHsKICAgICAgICBTdWNjZXNzID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgZXZlcnl0aGluZyBpcyBPSwogICAgfQoKICAgICRBcnRpY2xlQ2hlY2sgPSB7CiAgICAgICAgRXJyb3JDb2RlICAgID0+ICdGdW5jdGlvbi5FcnJvcicsICAgICAgICAgICAjIGlmIGVycm9yCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdFcnJvciBkZXNjcmlwdGlvbicsCiAgICB9Cgo9Y3V0CgpzdWIgX0NoZWNrQXJ0aWNsZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRBcnRpY2xlID0gJFBhcmFte0FydGljbGV9OwoKICAgICMgY2hlY2sgdGlja2V0IGludGVybmFsbHkKICAgIGZvciBteSAkTmVlZGVkIChxdyhTdWJqZWN0IEJvZHkgQXV0b1Jlc3BvbnNlVHlwZSkpIHsKICAgICAgICBpZiAoICEkQXJ0aWNsZS0+eyROZWVkZWR9ICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogQXJ0aWNsZS0+JE5lZWRlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZyEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIEFydGljbGUtPkF1dG9SZXNwb25zZVR5cGUKICAgIGlmICggISRBcnRpY2xlLT57QXV0b1Jlc3BvbnNlVHlwZX0gKSB7CgogICAgICAgICMgcmV0dXJuIGludGVybmFsIHNlcnZlciBlcnJvcgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT5BdXRvUmVzcG9uc2VUeXBlIHBhcmFtZXRlciBpcyByZXF1aXJlZCBhbmQiLAogICAgICAgIH07CiAgICB9CgogICAgaWYgKCAhJFNlbGYtPlZhbGlkYXRlQXV0b1Jlc3BvbnNlVHlwZSggJXskQXJ0aWNsZX0gKSApIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEFydGljbGUtPkF1dG9SZXNwb25zZVR5cGUgcGFyYW1ldGVyIGlzIGludmFsaWQhIiwKICAgICAgICB9OwogICAgfQoKICAgICMgY2hlY2sgQXJ0aWNsZS0+Q29tbXVuaWNhdGlvbkNoYW5uZWwKICAgIGlmICggISRBcnRpY2xlLT57Q29tbXVuaWNhdGlvbkNoYW5uZWx9ICYmICEkQXJ0aWNsZS0+e0NvbW11bmljYXRpb25DaGFubmVsSUR9ICkgewoKICAgICAgICAjIHJldHVybiBpbnRlcm5hbCBzZXJ2ZXIgZXJyb3IKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogQXJ0aWNsZS0+Q29tbXVuaWNhdGlvbkNoYW5uZWxJRCBvciBBcnRpY2xlLT5Db21tdW5pY2F0aW9uQ2hhbm5lbCBwYXJhbWV0ZXIiCiAgICAgICAgICAgICAgICAuICIgaXMgcmVxdWlyZWQgYW5kIFN5c2NvbmZpZyBDb21tdW5pY2F0aW9uQ2hhbm5lbElEIHNldHRpbmcgY291bGQgbm90IGJlIHJlYWQhIgogICAgICAgIH07CiAgICB9CiAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVBcnRpY2xlQ29tbXVuaWNhdGlvbkNoYW5uZWwoICV7JEFydGljbGV9ICkgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT5Db21tdW5pY2F0aW9uQ2hhbm5lbCBvciBBcnRpY2xlLT5Db21tdW5pY2F0aW9uQ2hhbm5lbElEIHBhcmFtZXRlciIKICAgICAgICAgICAgICAgIC4gIiBpcyBpbnZhbGlkIG9yIG5vdCBzdXBwb3J0ZWQhIiwKICAgICAgICB9OwogICAgfQoKICAgICMgY2hlY2sgQXJ0aWNsZS0+U2VuZGVyVHlwZQogICAgaWYgKCAhJEFydGljbGUtPntTZW5kZXJUeXBlSUR9ICYmICEkQXJ0aWNsZS0+e1NlbmRlclR5cGV9ICkgewoKICAgICAgICAjIHJldHVybiBpbnRlcm5hbCBzZXJ2ZXIgZXJyb3IKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogQXJ0aWNsZS0+U2VuZGVyVHlwZUlEIG9yIEFydGljbGUtPlNlbmRlclR5cGUgcGFyYW1ldGVyIgogICAgICAgICAgICAgICAgLiAiIGlzIHJlcXVpcmVkIGFuZCBTeXNjb25maWcgU2VuZGVyVHlwZUlEIHNldHRpbmcgY291bGQgbm90IGJlIHJlYWQhIgogICAgICAgIH07CiAgICB9CiAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVTZW5kZXJUeXBlKCAleyRBcnRpY2xlfSApICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogQXJ0aWNsZS0+U2VuZGVyVHlwZUlEIG9yIFRpY2tldC0+U2VuZGVyVHlwZSBwYXJhbWV0ZXIiCiAgICAgICAgICAgICAgICAuICIgaXMgaW52YWxpZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBBcnRpY2xlLT5Gcm9tCiAgICBpZiAoICRBcnRpY2xlLT57RnJvbX0gKSB7CiAgICAgICAgaWYgKCAhJFNlbGYtPlZhbGlkYXRlRnJvbSggJXskQXJ0aWNsZX0gKSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEFydGljbGUtPkZyb20gcGFyYW1ldGVyIGlzIGludmFsaWQhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBBcnRpY2xlLT5Db250ZW50VHlwZSB2cyBBcnRpY2xlLT5NaW1lVHlwZSBhbmQgQXJ0aWNsZS0+Q2hhcnNldAogICAgaWYgKCAhJEFydGljbGUtPntDb250ZW50VHlwZX0gJiYgISRBcnRpY2xlLT57TWltZVR5cGV9ICYmICEkQXJ0aWNsZS0+e0NoYXJzZXR9ICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLk1pc3NpbmdQYXJhbWV0ZXInLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogQXJ0aWNsZS0+Q29udGVudFR5cGUgb3IgVGlja2V0LT5NaW1lVHlwZSBhbmQiCiAgICAgICAgICAgICAgICAuICIgQXJ0aWNsZS0+Q2hhcnNldCBwYXJhbWV0ZXJzIGFyZSByZXF1aXJlZCEiLAogICAgICAgIH07CiAgICB9CgogICAgaWYgKCAkQXJ0aWNsZS0+e01pbWVUeXBlfSAmJiAhJEFydGljbGUtPntDaGFyc2V0fSApIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEFydGljbGUtPkNoYXJzZXQgaXMgcmVxdWlyZWQhIiwKICAgICAgICB9OwogICAgfQoKICAgIGlmICggJEFydGljbGUtPntDaGFyc2V0fSAmJiAhJEFydGljbGUtPntNaW1lVHlwZX0gKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT5NaW1lVHlwZSBpcyByZXF1aXJlZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBBcnRpY2xlLT5NaW1lVHlwZQogICAgaWYgKCAkQXJ0aWNsZS0+e01pbWVUeXBlfSApIHsKCiAgICAgICAgJEFydGljbGUtPntNaW1lVHlwZX0gPSBsYyAkQXJ0aWNsZS0+e01pbWVUeXBlfTsKCiAgICAgICAgaWYgKCAhJFNlbGYtPlZhbGlkYXRlTWltZVR5cGUoICRBcnRpY2xlLT4lKiApICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogQXJ0aWNsZS0+TWltZVR5cGUgaXMgaW52YWxpZCEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIEFydGljbGUtPk1pbWVUeXBlCiAgICBpZiAoICRBcnRpY2xlLT57Q2hhcnNldH0gKSB7CgogICAgICAgICRBcnRpY2xlLT57Q2hhcnNldH0gPSBsYyAkQXJ0aWNsZS0+e0NoYXJzZXR9OwoKICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVDaGFyc2V0KCAkQXJ0aWNsZS0+JSogKSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEFydGljbGUtPkNoYXJzZXQgaXMgaW52YWxpZCEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIEFydGljbGUtPkNvbnRlbnRUeXBlCiAgICBpZiAoICRBcnRpY2xlLT57Q29udGVudFR5cGV9ICkgewoKICAgICAgICAjIFRoZSBNSU1FIGhlYWRlciBmaWVsZCBDb250ZW50LVR5cGUgaXMgb25seSBpbiBzb21lIHBhcnRzIGNhc2UgaW5zZW5zaXRpdmUsCiAgICAgICAgIyBidXQgbG93ZXJjYXNpbmcgdGhlIHdob2xlIHN0cmluZyBzaW1wbGlmaWVzIHRoZSBoYW5kbGluZyBpbiBPVE9CTy4KICAgICAgICAkQXJ0aWNsZS0+e0NvbnRlbnRUeXBlfSA9IGxjICRBcnRpY2xlLT57Q29udGVudFR5cGV9OwoKICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVDb250ZW50VHlwZSggQ29udGVudFR5cGUgPT4gJEFydGljbGUtPntDb250ZW50VHlwZX0gKSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEFydGljbGUtPkNvbnRlbnRUeXBlIGlzIGludmFsaWQhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBBcnRpY2xlLT5IaXN0b3J5VHlwZQogICAgaWYgKCAhJEFydGljbGUtPntIaXN0b3J5VHlwZX0gKSB7CgogICAgICAgICMgcmV0dXJuIGludGVybmFsIHNlcnZlciBlcnJvcgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT4gSGlzdG9yeVR5cGUgaXMgcmVxdWlyZWQgYW5kIFN5c2NvbmZpZyIKICAgICAgICAgICAgICAgIC4gIiBIaXN0b3J5VHlwZSBzZXR0aW5nIGNvdWxkIG5vdCBiZSByZWFkISIKICAgICAgICB9OwogICAgfQogICAgaWYgKCAhJFNlbGYtPlZhbGlkYXRlSGlzdG9yeVR5cGUoICV7JEFydGljbGV9ICkgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT5IaXN0b3J5VHlwZSBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBBcnRpY2xlLT5IaXN0b3J5Q29tbWVudAogICAgaWYgKCAhJEFydGljbGUtPntIaXN0b3J5Q29tbWVudH0gKSB7CgogICAgICAgICMgcmV0dXJuIGludGVybmFsIHNlcnZlciBlcnJvcgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT5IaXN0b3J5Q29tbWVudCBpcyByZXF1aXJlZCBhbmQgU3lzY29uZmlnIgogICAgICAgICAgICAgICAgLiAiIEhpc3RvcnlDb21tZW50IHNldHRpbmcgY291bGQgbm90IGJlIHJlYWQhIgogICAgICAgIH07CiAgICB9CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBjaGVjayBBcnRpY2xlLT5UaW1lVW5pdAogICAgIyBUaW1lVW5pdCBjb3VsZCBiZSByZXF1aXJlZCBvciBub3QgZGVwZW5kaW5nIG9uIHN5c2NvbmZpZyBvcHRpb24KICAgIGlmICgKICAgICAgICAoICFkZWZpbmVkICRBcnRpY2xlLT57VGltZVVuaXR9IHx8ICFJc1N0cmluZ1dpdGhEYXRhKCAkQXJ0aWNsZS0+e1RpbWVVbml0fSApICkKICAgICAgICAmJiAkQ29uZmlnT2JqZWN0LT57J1RpY2tldDo6RnJvbnRlbmQ6OkFjY291bnRUaW1lJ30KICAgICAgICAmJiAkQ29uZmlnT2JqZWN0LT57J1RpY2tldDo6RnJvbnRlbmQ6Ok5lZWRBY2NvdW50ZWRUaW1lJ30KICAgICAgICApCiAgICB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT5UaW1lVW5pdCBpcyByZXF1aXJlZCBieSBzeXNjb25maWcgb3B0aW9uISIsCiAgICAgICAgfTsKICAgIH0KICAgIGlmICggJEFydGljbGUtPntUaW1lVW5pdH0gKSB7CiAgICAgICAgaWYgKCAhJFNlbGYtPlZhbGlkYXRlVGltZVVuaXQoICV7JEFydGljbGV9ICkgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT5UaW1lVW5pdCBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIEFydGljbGUtPk5vQWdlbnROb3RpZnkKICAgIGlmICggJEFydGljbGUtPntOb0FnZW50Tm90aWZ5fSAmJiAkQXJ0aWNsZS0+e05vQWdlbnROb3RpZnl9IG5lICcxJyApIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEFydGljbGUtPk5vQWdlbnQgcGFyYW1ldGVyIGlzIGludmFsaWQhIiwKICAgICAgICB9OwogICAgfQoKICAgICMgY2hlY2sgQXJ0aWNsZSBhcnJheSBwYXJhbWV0ZXJzCiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoCiAgICAgICAgcXcoIEZvcmNlTm90aWZpY2F0aW9uVG9Vc2VySUQgRXhjbHVkZU5vdGlmaWNhdGlvblRvVXNlcklEIEV4Y2x1ZGVNdXRlTm90aWZpY2F0aW9uVG9Vc2VySUQgKQogICAgICAgICkKICAgIHsKICAgICAgICBpZiAoIGRlZmluZWQgJEFydGljbGUtPnskQXR0cmlidXRlfSApIHsKCiAgICAgICAgICAgICMgY2hlY2sgc3RydWN0dXJlCiAgICAgICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRBcnRpY2xlLT57JEF0dHJpYnV0ZX0gKSApIHsKICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEFydGljbGUtPiRBdHRyaWJ1dGUgcGFyYW1ldGVyIGlzIGludmFsaWQhIiwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoICFJc0FycmF5UmVmV2l0aERhdGEoICRBcnRpY2xlLT57JEF0dHJpYnV0ZX0gKSApIHsKICAgICAgICAgICAgICAgICAgICAkQXJ0aWNsZS0+eyRBdHRyaWJ1dGV9ID0gWyAkQXJ0aWNsZS0+eyRBdHRyaWJ1dGV9IF07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIEB7ICRBcnRpY2xlLT57JEF0dHJpYnV0ZX0gfSApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVVc2VySUQoIFVzZXJJRCA9PiAkVXNlcklEICkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT4kQXR0cmlidXRlIFVzZXJJRD0kVXNlcklEIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIiBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGlmIGV2ZXJ5dGhpbmcgaXMgT0sgdGhlbiByZXR1cm4gU3VjY2VzcwogICAgcmV0dXJuIHsKICAgICAgICBTdWNjZXNzID0+IDEsCiAgICB9Owp9Cgo9aGVhZDIgX0NoZWNrRHluYW1pY0ZpZWxkKCkKCmNoZWNrcyBpZiB0aGUgZ2l2ZW4gZHluYW1pYyBmaWVsZCBwYXJhbWV0ZXIgaXMgdmFsaWQuCgogICAgbXkgJER5bmFtaWNGaWVsZENoZWNrID0gJE9wZXJhdGlvbk9iamVjdC0+X0NoZWNrRHluYW1pY0ZpZWxkKAogICAgICAgIER5bmFtaWNGaWVsZCA9PiAkRHluYW1pY0ZpZWxkLCAgICAgICAgICAgICAgIyBhbGwgZHluYW1pYyBmaWVsZCBwYXJhbWV0ZXJzCiAgICApOwoKICAgIHJldHVybnM6CgogICAgJER5bmFtaWNGaWVsZENoZWNrID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBldmVyeXRoaW5nIGlzIE9LCiAgICB9CgogICAgJER5bmFtaWNGaWVsZENoZWNrID0gewogICAgICAgIEVycm9yQ29kZSAgICA9PiAnRnVuY3Rpb24uRXJyb3InLCAgICAgICAgICAgIyBpZiBlcnJvcgogICAgICAgIEVycm9yTWVzc2FnZSA9PiAnRXJyb3IgZGVzY3JpcHRpb24nLAogICAgfQoKPWN1dAoKc3ViIF9DaGVja0R5bmFtaWNGaWVsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREeW5hbWljRmllbGQgPSAkUGFyYW17RHluYW1pY0ZpZWxkfTsKICAgIG15ICRBcnRpY2xlRGF0YSAgPSAkUGFyYW17QXJ0aWNsZX07CgogICAgbXkgJEFydGljbGU7CiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRBcnRpY2xlRGF0YSkgKSB7CiAgICAgICAgJEFydGljbGUgPSAxOwogICAgfQoKICAgICMgY2hlY2sgRHluYW1pY0ZpZWxkIGl0ZW0gaW50ZXJuYWxseQogICAgZm9yIG15ICROZWVkZWQgKHF3KE5hbWUgVmFsdWUpKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgICAhZGVmaW5lZCAkRHluYW1pY0ZpZWxkLT57JE5lZWRlZH0KICAgICAgICAgICAgfHwgKCAhSXNTdHJpbmcoICREeW5hbWljRmllbGQtPnskTmVlZGVkfSApICYmIHJlZiAkRHluYW1pY0ZpZWxkLT57JE5lZWRlZH0gbmUgJ0FSUkFZJyApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBEeW5hbWljRmllbGQtPiROZWVkZWQgcGFyYW1ldGVyIGlzIG1pc3NpbmchIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBEeW5hbWljRmllbGQtPk5hbWUKICAgIGlmICggISRTZWxmLT5WYWxpZGF0ZUR5bmFtaWNGaWVsZE5hbWUoICV7JER5bmFtaWNGaWVsZH0gKSApIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IER5bmFtaWNGaWVsZC0+TmFtZSBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBvYmplY3RUeXBlIGZvciBkeW5hbWljIGZpZWxkCiAgICBpZiAoCiAgICAgICAgISRTZWxmLT5WYWxpZGF0ZUR5bmFtaWNGaWVsZE9iamVjdFR5cGUoCiAgICAgICAgICAgICV7JER5bmFtaWNGaWVsZH0sCiAgICAgICAgICAgIEFydGljbGUgPT4gJEFydGljbGUsCiAgICAgICAgKQogICAgICAgICkKICAgIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAiVGlja2V0VXBkYXRlOiBUbyBjcmVhdGUgYW4gYXJ0aWNsZSBEeW5hbWljRmllbGQgYW4gYXJ0aWNsZSBpcyByZXF1aXJlZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBEeW5hbWljRmllbGQtPlZhbHVlCiAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVEeW5hbWljRmllbGRWYWx1ZSggJXskRHluYW1pY0ZpZWxkfSApICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogRHluYW1pY0ZpZWxkLT5WYWx1ZSBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBpZiBldmVyeXRoaW5nIGlzIE9LIHRoZW4gcmV0dXJuIFN1Y2Nlc3MKICAgIHJldHVybiB7CiAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgfTsKfQoKPWhlYWQyIF9DaGVja0F0dGFjaG1lbnQoKQoKY2hlY2tzIGlmIHRoZSBnaXZlbiBhdHRhY2htZW50IHBhcmFtZXRlciBpcyB2YWxpZC4KCiAgICBteSAkQXR0YWNobWVudENoZWNrID0gJE9wZXJhdGlvbk9iamVjdC0+X0NoZWNrQXR0YWNobWVudCgKICAgICAgICBBdHRhY2htZW50ID0+ICRBdHRhY2htZW50LCAgICAgICAgICAgICAgICAgICMgYWxsIGF0dGFjaG1lbnQgcGFyYW1ldGVycwogICAgKTsKCiAgICByZXR1cm5zOgoKICAgICRBdHRhY2htZW50Q2hlY2sgPSB7CiAgICAgICAgU3VjY2VzcyA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlmIGV2ZXJ5dGhpbmcgaXMgT0sKICAgIH0KCiAgICAkQXR0YWNobWVudENoZWNrID0gewogICAgICAgIEVycm9yQ29kZSAgICA9PiAnRnVuY3Rpb24uRXJyb3InLCAgICAgICAgICAgIyBpZiBlcnJvcgogICAgICAgIEVycm9yTWVzc2FnZSA9PiAnRXJyb3IgZGVzY3JpcHRpb24nLAogICAgfQoKPWN1dAoKc3ViIF9DaGVja0F0dGFjaG1lbnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQXR0YWNobWVudCA9ICRQYXJhbXtBdHRhY2htZW50fTsKICAgIG15ICRBcnRpY2xlICAgID0gJFBhcmFte0FydGljbGV9OwoKICAgICMgY2hlY2sgaWYgYXJ0aWNsZSBpcyBnb2luZyB0byBiZSBjcmVhdGVkCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkQXJ0aWNsZSkgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBUbyBjcmVhdGUgYW4gYXR0YWNobWVudCBhbiBhcnRpY2xlIGlzIG5lZWRlZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBhdHRhY2htZW50IGl0ZW0gaW50ZXJuYWxseQogICAgZm9yIG15ICROZWVkZWQgKHF3KENvbnRlbnQgQ29udGVudFR5cGUgRmlsZW5hbWUpKSB7CiAgICAgICAgaWYgKCAhSXNTdHJpbmdXaXRoRGF0YSggJEF0dGFjaG1lbnQtPnskTmVlZGVkfSApICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogQXR0YWNobWVudC0+JE5lZWRlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZyEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIEF0dGFjaG1lbnQtPkNvbnRlbnRUeXBlCiAgICBpZiAoICRBdHRhY2htZW50LT57Q29udGVudFR5cGV9ICkgewoKICAgICAgICAjIFRoZSBNSU1FIGhlYWRlciBmaWVsZCBDb250ZW50LVR5cGUgaXMgb25seSBpbiBzb21lIHBhcnRzIGNhc2UgaW5zZW5zaXRpdmUsCiAgICAgICAgIyBidXQgbG93ZXJjYXNpbmcgdGhlIHdob2xlIHN0cmluZyBzaW1wbGlmaWVzIHRoZSBoYW5kbGluZyBpbiBPVE9CTy4KICAgICAgICAkQXR0YWNobWVudC0+e0NvbnRlbnRUeXBlfSA9IGxjICRBdHRhY2htZW50LT57Q29udGVudFR5cGV9OwoKICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVDb250ZW50VHlwZSggQ29udGVudFR5cGUgPT4gJEF0dGFjaG1lbnQtPntDb250ZW50VHlwZX0gKSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEF0dGFjaG1lbnQtPkNvbnRlbnRUeXBlIGlzIGludmFsaWQhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBpZiBldmVyeXRoaW5nIGlzIE9LIHRoZW4gcmV0dXJuIFN1Y2Nlc3MKICAgIHJldHVybiB7CiAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgfTsKfQoKPWhlYWQyIF9DaGVja1VwZGF0ZVBlcm1pc3Npb25zKCkKCmNoZWNrIGlmIHVzZXIgaGFzIHBlcm1pc3Npb25zIHRvIHVwZGF0ZSB0aWNrZXQgYXR0cmlidXRlcy4KCiAgICBteSAkUmVzcG9uc2UgPSAkT3BlcmF0aW9uT2JqZWN0LT5fQ2hlY2tVcGRhdGVQZXJtaXNzaW9ucygKICAgICAgICBUaWNrZXRJRCAgICAgPT4gMTIzCiAgICAgICAgVGlja2V0ICAgICAgID0+ICRUaWNrZXQsICAgICAgICAgICAgICAgICAgIyBhbGwgdGlja2V0IHBhcmFtZXRlcnMKICAgICAgICBBcnRpY2xlICAgICAgPT4gJFRpY2tldCwgICAgICAgICAgICAgICAgICAjIGFsbCBhdHRhY2htZW50IHBhcmFtZXRlcnMKICAgICAgICBEeW5hbWljRmllbGQgPT4gJFRpY2tldCwgICAgICAgICAgICAgICAgICAjIGFsbCBkeW5hbWljIGZpZWxkIHBhcmFtZXRlcnMKICAgICAgICBBdHRhY2htZW50ICAgPT4gJFRpY2tldCwgICAgICAgICAgICAgICAgICAjIGFsbCBhdHRhY2htZW50IHBhcmFtZXRlcnMKICAgICAgICBVc2VySUQgICAgICAgPT4gMTIzLAogICAgKTsKCnJldHVybnM6CgogICAgJFJlc3BvbnNlID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBldmVyeXRoaW5nIGlzIE9LCiAgICB9CgpvcgoKICAgICRSZXNwb25zZSA9IHsKICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICBFcnJvckNvZGUgICAgPT4gImZ1bmN0aW9uLmVycm9yIiwgICAgICAgICAgICMgaWYgZXJyb3IKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIkVycm9yIGRlc2NyaXB0aW9uIgogICAgfQoKPWN1dAoKc3ViIF9DaGVja1VwZGF0ZVBlcm1pc3Npb25zIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFRpY2tldElEICAgICAgICAgPSAkUGFyYW17VGlja2V0SUR9OwogICAgbXkgJFRpY2tldCAgICAgICAgICAgPSAkUGFyYW17VGlja2V0fTsKICAgIG15ICRBcnRpY2xlICAgICAgICAgID0gJFBhcmFte0FydGljbGV9OwogICAgbXkgJER5bmFtaWNGaWVsZExpc3QgPSAkUGFyYW17RHluYW1pY0ZpZWxkTGlzdH07CgogICAgIyBnZXQgdGlja2V0IG9iamVjdAogICAgbXkgJFRpY2tldE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKCiAgICAjIGNoZWNrIEFydGljbGUgcGVybWlzc2lvbnMKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJEFydGljbGUpICkgewogICAgICAgIG15ICRBY2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgICAgICBUeXBlICAgICA9PiAnbm90ZScsCiAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuQWNjZXNzRGVuaWVkJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBEb2VzIG5vdCBoYXZlIHBlcm1pc3Npb25zIHRvIGNyZWF0ZSBuZXcgYXJ0aWNsZXMhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBkeW5hbWljIGZpZWxkIHBlcm1pc3Npb25zCiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkTGlzdCkgKSB7CiAgICAgICAgbXkgJEFjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdydycsCiAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuQWNjZXNzRGVuaWVkJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBEb2VzIG5vdCBoYXZlIHBlcm1pc3Npb25zIHRvIHVwZGF0ZSBkeW5hbWljIGZpZWxkcyEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIHF1ZXVlIHBlcm1pc3Npb25zCiAgICBpZiAoICRUaWNrZXQtPntRdWV1ZX0gfHwgJFRpY2tldC0+e1F1ZXVlSUR9ICkgewogICAgICAgIG15ICRBY2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgICAgICBUeXBlICAgICA9PiAnbW92ZScsCiAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuQWNjZXNzRGVuaWVkJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBEb2VzIG5vdCBoYXZlIHBlcm1pc3Npb25zIHRvIHVwZGF0ZSBxdWV1ZSEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIG93bmVyIHBlcm1pc3Npb25zCiAgICBpZiAoICRUaWNrZXQtPntPd25lcn0gfHwgJFRpY2tldC0+e093bmVySUR9ICkgewogICAgICAgIG15ICRBY2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgICAgICBUeXBlICAgICA9PiAnb3duZXInLAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkFjY2Vzc0RlbmllZCcsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogRG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9ucyB0byB1cGRhdGUgb3duZXIhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayByZXNwb25zaWJsZSBwZXJtaXNzaW9ucwogICAgaWYgKCAkVGlja2V0LT57UmVzcG9uc2libGV9IHx8ICRUaWNrZXQtPntSZXNwb25zaWJsZUlEfSApIHsKICAgICAgICBteSAkQWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0UGVybWlzc2lvbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ3Jlc3BvbnNpYmxlJywKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5BY2Nlc3NEZW5pZWQnLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IERvZXMgbm90IGhhdmUgcGVybWlzc2lvbnMgdG8gdXBkYXRlIHJlc3BvbnNpYmUhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBwcmlvcml0eSBwZXJtaXNzaW9ucwogICAgaWYgKCAkVGlja2V0LT57UHJpb3JpdHl9IHx8ICRUaWNrZXQtPntQcmlvcml0eUlEfSApIHsKICAgICAgICBteSAkQWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0UGVybWlzc2lvbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ3ByaW9yaXR5JywKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5BY2Nlc3NEZW5pZWQnLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IERvZXMgbm90IGhhdmUgcGVybWlzc2lvbnMgdG8gdXBkYXRlIHByaW9yaXR5ISIsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgc3RhdGUgcGVybWlzc2lvbnMKICAgIGlmICggJFRpY2tldC0+e1N0YXRlfSB8fCAkVGlja2V0LT57U3RhdGVJRH0gKSB7CgogICAgICAgICMgZ2V0IFN0YXRlIERhdGEKICAgICAgICBteSAlU3RhdGVEYXRhOwogICAgICAgIG15ICRTdGF0ZUlEOwoKICAgICAgICAjIGdldCBzdGF0ZSBvYmplY3QKICAgICAgICBteSAkU3RhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3RhdGUnKTsKCiAgICAgICAgaWYgKCAkVGlja2V0LT57U3RhdGVJRH0gKSB7CiAgICAgICAgICAgICRTdGF0ZUlEID0gJFRpY2tldC0+e1N0YXRlSUR9OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFN0YXRlSUQgPSAkU3RhdGVPYmplY3QtPlN0YXRlTG9va3VwKAogICAgICAgICAgICAgICAgU3RhdGUgPT4gJFRpY2tldC0+e1N0YXRlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICVTdGF0ZURhdGEgPSAkU3RhdGVPYmplY3QtPlN0YXRlR2V0KAogICAgICAgICAgICBJRCA9PiAkU3RhdGVJRCwKICAgICAgICApOwoKICAgICAgICBteSAkQWNjZXNzID0gMTsKCiAgICAgICAgaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXmNsb3NlL2kgKSB7CiAgICAgICAgICAgICRBY2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgVHlwZSAgICAgPT4gJ2Nsb3NlJywKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgcGVuZGluZyB0aW1lCiAgICAgICAgZWxzaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXnBlbmRpbmcvaSApIHsKICAgICAgICAgICAgJEFjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgICAgICAgICBUeXBlICAgICA9PiAnY2xvc2UnLAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5BY2Nlc3NEZW5pZWQnLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IERvZXMgbm90IGhhdmUgcGVybWlzc2lvbnMgdG8gdXBkYXRlIHN0YXRlISIsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiB7CiAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgfTsKfQoKPWhlYWQyIF9UaWNrZXRVcGRhdGUoKQoKdXBkYXRlcyBhIHRpY2tldCBhbmQgY3JlYXRlcyBhbiBhcnRpY2xlIGFuZCBzZXRzIGR5bmFtaWMgZmllbGRzIGFuZCBhdHRhY2htZW50cyBpZiBzcGVjaWZpZWQuCgogICAgbXkgJFJlc3BvbnNlID0gJE9wZXJhdGlvbk9iamVjdC0+X1RpY2tldFVwZGF0ZSgKICAgICAgICBUaWNrZXRJRCAgICAgPT4gMTIzCiAgICAgICAgVGlja2V0ICAgICAgID0+ICRUaWNrZXQsICAgICAgICAgICAgICAgICAgIyBhbGwgdGlja2V0IHBhcmFtZXRlcnMKICAgICAgICBBcnRpY2xlICAgICAgPT4gJEFydGljbGUsICAgICAgICAgICAgICAgICAjIGFsbCBhdHRhY2htZW50IHBhcmFtZXRlcnMKICAgICAgICBEeW5hbWljRmllbGQgPT4gJER5bmFtaWNGaWVsZCwgICAgICAgICAgICAjIGFsbCBkeW5hbWljIGZpZWxkIHBhcmFtZXRlcnMKICAgICAgICBBdHRhY2htZW50ICAgPT4gJEF0dGFjaG1lbnQsICAgICAgICAgICAgICAjIGFsbCBhdHRhY2htZW50IHBhcmFtZXRlcnMKICAgICAgICBVc2VySUQgICAgICAgPT4gMTIzLAogICAgICAgIFVzZXJUeXBlICAgICA9PiAnQWdlbnQnICAgICAgICAgICAgICAgICAgICMgfHwgJ0N1c3RvbWVyCiAgICApOwoKICAgIHJldHVybnM6CgogICAgJFJlc3BvbnNlID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBldmVyeXRoaW5nIGlzIE9LCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAxMjMsCiAgICAgICAgICAgIFRpY2tldE51bWJlciA9PiAnVE4zNDIyMzMyJywKICAgICAgICAgICAgQXJ0aWNsZUlEICAgID0+IDEyMywgICAgICAgICAgICAgICAgICAgICMgaWYgbmV3IGFydGljbGUgd2FzIGNyZWF0ZWQKICAgICAgICB9CiAgICB9CgogICAgJFJlc3BvbnNlID0gewogICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAjIGlmIHVuZXhwZWN0ZWQgZXJyb3IKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIiRQYXJhbXtFcnJvckNvZGV9OiAkUGFyYW17RXJyb3JNZXNzYWdlfSIsCiAgICB9Cgo9Y3V0CgpzdWIgX1RpY2tldFVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRUaWNrZXRJRCAgICAgICAgID0gJFBhcmFte1RpY2tldElEfTsKICAgIG15ICRUaWNrZXQgICAgICAgICAgID0gJFBhcmFte1RpY2tldH07CiAgICBteSAkQXJ0aWNsZSAgICAgICAgICA9ICRQYXJhbXtBcnRpY2xlfTsKICAgIG15ICREeW5hbWljRmllbGRMaXN0ID0gJFBhcmFte0R5bmFtaWNGaWVsZExpc3R9OwogICAgbXkgJEF0dGFjaG1lbnRMaXN0ICAgPSAkUGFyYW17QXR0YWNobWVudExpc3R9OwoKICAgIG15ICRBY2Nlc3MgPSAkU2VsZi0+X0NoZWNrVXBkYXRlUGVybWlzc2lvbnMoJVBhcmFtKTsKCiAgICAjIGlmIG5vIHBlcm1pc3Npb25zIHJldHVybiBlcnJvcgogICAgaWYgKCAhJEFjY2Vzcy0+e1N1Y2Nlc3N9ICkgewogICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoICV7JEFjY2Vzc30gKTsKICAgIH0KCiAgICBteSAlQ3VzdG9tZXJVc2VyRGF0YTsKCiAgICAjIGdldCBjdXN0b21lciBpbmZvcm1hdGlvbgogICAgaWYgKCAkVGlja2V0LT57Q3VzdG9tZXJVc2VyfSApIHsKICAgICAgICAlQ3VzdG9tZXJVc2VyRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInKS0+Q3VzdG9tZXJVc2VyRGF0YUdldCgKICAgICAgICAgICAgVXNlciA9PiAkVGlja2V0LT57Q3VzdG9tZXJVc2VyfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgIyBnZXQgY3VycmVudCB0aWNrZXQgZGF0YQogICAgbXkgJVRpY2tldERhdGEgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgVGlja2V0SUQgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAwLAogICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgdXBkYXRlIHRpY2tldCBwYXJhbWV0ZXJzCiAgICAjIHVwZGF0ZSBUaWNrZXQtPlRpdGxlCiAgICBpZiAoCiAgICAgICAgZGVmaW5lZCAkVGlja2V0LT57VGl0bGV9CiAgICAgICAgJiYgJFRpY2tldC0+e1RpdGxlfSBuZSAnJwogICAgICAgICYmICRUaWNrZXQtPntUaXRsZX0gbmUgJFRpY2tldERhdGF7VGl0bGV9CiAgICAgICAgKQogICAgewogICAgICAgIG15ICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0VGl0bGVVcGRhdGUoCiAgICAgICAgICAgIFRpdGxlICAgID0+ICRUaWNrZXQtPntUaXRsZX0sCiAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JtZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgJ1RpY2tldCB0aXRsZSBjb3VsZCBub3QgYmUgdXBkYXRlZCwgcGxlYXNlIGNvbnRhY3Qgc3lzdGVtIGFkbWluaXN0cmF0b3IhJywKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyB1cGRhdGUgVGlja2V0LT5RdWV1ZQogICAgaWYgKCAkVGlja2V0LT57UXVldWV9IHx8ICRUaWNrZXQtPntRdWV1ZUlEfSApIHsKICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICBpZiAoIGRlZmluZWQgJFRpY2tldC0+e1F1ZXVlfSAmJiAkVGlja2V0LT57UXVldWV9IG5lICRUaWNrZXREYXRhe1F1ZXVlfSApIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRRdWV1ZVNldCgKICAgICAgICAgICAgICAgIFF1ZXVlICAgID0+ICRUaWNrZXQtPntRdWV1ZX0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCBkZWZpbmVkICRUaWNrZXQtPntRdWV1ZUlEfSAmJiAkVGlja2V0LT57UXVldWVJRH0gbmUgJFRpY2tldERhdGF7UXVldWVJRH0gKSB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0UXVldWVTZXQoCiAgICAgICAgICAgICAgICBRdWV1ZUlEICA9PiAkVGlja2V0LT57UXVldWVJRH0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGRhdGEgaXMgdGhlIHNhbWUgYXMgaW4gdGlja2V0IG5vdGhpbmcgdG8gZG8KICAgICAgICAgICAgJFN1Y2Nlc3MgPSAxOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICdUaWNrZXQgcXVldWUgY291bGQgbm90IGJlIHVwZGF0ZWQsIHBsZWFzZSBjb250YWN0IHN5c3RlbSBhZG1pbmlzdHJhdG9yIScsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgdXBkYXRlIFRpY2tldC0+TG9jawogICAgaWYgKCAkVGlja2V0LT57TG9ja30gfHwgJFRpY2tldC0+e0xvY2tJRH0gKSB7CiAgICAgICAgbXkgJFN1Y2Nlc3M7CiAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXQtPntMb2NrfSAmJiAkVGlja2V0LT57TG9ja30gbmUgJFRpY2tldERhdGF7TG9ja30gKSB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICRUaWNrZXQtPntMb2NrfSwKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoIGRlZmluZWQgJFRpY2tldC0+e0xvY2tJRH0gJiYgJFRpY2tldC0+e0xvY2tJRH0gbmUgJFRpY2tldERhdGF7TG9ja0lEfSApIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgTG9ja0lEICAgPT4gJFRpY2tldC0+e0xvY2tJRH0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGRhdGEgaXMgdGhlIHNhbWUgYXMgaW4gdGlja2V0IG5vdGhpbmcgdG8gZG8KICAgICAgICAgICAgJFN1Y2Nlc3MgPSAxOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9ybWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICdUaWNrZXQgbG9jayBjb3VsZCBub3QgYmUgdXBkYXRlZCwgcGxlYXNlIGNvbnRhY3Qgc3lzdGVtIGFkbWluaXN0cmF0b3IhJywKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyB1cGRhdGUgVGlja2V0LT5UeXBlCiAgICBpZiAoICRUaWNrZXQtPntUeXBlfSB8fCAkVGlja2V0LT57VHlwZUlEfSApIHsKICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICBpZiAoIGRlZmluZWQgJFRpY2tldC0+e1R5cGV9ICYmICRUaWNrZXQtPntUeXBlfSBuZSAkVGlja2V0RGF0YXtUeXBlfSApIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRUeXBlU2V0KAogICAgICAgICAgICAgICAgVHlwZSAgICAgPT4gJFRpY2tldC0+e1R5cGV9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggZGVmaW5lZCAkVGlja2V0LT57VHlwZUlEfSAmJiAkVGlja2V0LT57VHlwZUlEfSBuZSAkVGlja2V0RGF0YXtUeXBlSUR9ICkKICAgICAgICB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0VHlwZVNldCgKICAgICAgICAgICAgICAgIFR5cGVJRCAgID0+ICRUaWNrZXQtPntUeXBlSUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBkYXRhIGlzIHRoZSBzYW1lIGFzIGluIHRpY2tldCBub3RoaW5nIHRvIGRvCiAgICAgICAgICAgICRTdWNjZXNzID0gMTsKICAgICAgICB9CgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvcm1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAnVGlja2V0IHR5cGUgY291bGQgbm90IGJlIHVwZGF0ZWQsIHBsZWFzZSBjb250YWN0IHN5c3RlbSBhZG1pbmlzdHJhdG9yIScsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgdXBkYXRlIFRpY2tldD5TdGF0ZQogICAgIyBkZXBlbmRpbmcgb24gdGhlIHN0YXRlLCBtaWdodCByZXF1aXJlIHRvIHVubG9jayB0aWNrZXQgb3IgZW5hYmxlcyBwZW5kaW5nIHRpbWUgc2V0CiAgICBpZiAoICRUaWNrZXQtPntTdGF0ZX0gfHwgJFRpY2tldC0+e1N0YXRlSUR9ICkgewoKICAgICAgICAjIGdldCBTdGF0ZSBEYXRhCiAgICAgICAgbXkgJVN0YXRlRGF0YTsKICAgICAgICBteSAkU3RhdGVJRDsKCiAgICAgICAgIyBnZXQgc3RhdGUgb2JqZWN0CiAgICAgICAgbXkgJFN0YXRlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0YXRlJyk7CgogICAgICAgIGlmICggJFRpY2tldC0+e1N0YXRlSUR9ICkgewogICAgICAgICAgICAkU3RhdGVJRCA9ICRUaWNrZXQtPntTdGF0ZUlEfTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTdGF0ZUlEID0gJFN0YXRlT2JqZWN0LT5TdGF0ZUxvb2t1cCgKICAgICAgICAgICAgICAgIFN0YXRlID0+ICRUaWNrZXQtPntTdGF0ZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAlU3RhdGVEYXRhID0gJFN0YXRlT2JqZWN0LT5TdGF0ZUdldCgKICAgICAgICAgICAgSUQgPT4gJFN0YXRlSUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBmb3JjZSB1bmxvY2sgaWYgc3RhdGUgdHlwZSBpcyBjbG9zZQogICAgICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15jbG9zZS9pICkgewoKICAgICAgICAgICAgIyBzZXQgbG9jawogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IHBlbmRpbmcgdGltZQogICAgICAgIGVsc2lmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15wZW5kaW5nL2kgKSB7CgogICAgICAgICAgICAjIHNldCBwZW5kaW5nIHRpbWUKICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXQtPntQZW5kaW5nVGltZX0gKSB7CiAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFBlbmRpbmdUaW1lU2V0KAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICAgICAleyAkVGlja2V0LT57UGVuZGluZ1RpbWV9IH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBFcnJvcm1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUaWNrZXQgcGVuZGlnIHRpbWUgY291bGQgbm90IGJlIHVwZGF0ZWQsIHBsZWFzZSBjb250YWN0IHN5c3RlbScKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyBhZG1pbmlzdHJhdG9yIScsCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdDYW5cJ3Qgc2V0IGEgdGlja2V0IG9uIGEgcGVuZGluZyBzdGF0ZSB3aXRob3V0IHBlbmRpZyB0aW1lIScKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICRTdWNjZXNzOwogICAgICAgIGlmICggZGVmaW5lZCAkVGlja2V0LT57U3RhdGV9ICYmICRUaWNrZXQtPntTdGF0ZX0gbmUgJFRpY2tldERhdGF7U3RhdGV9ICkgewogICAgICAgICAgICAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFN0YXRlU2V0KAogICAgICAgICAgICAgICAgU3RhdGUgICAgPT4gJFRpY2tldC0+e1N0YXRlfSwKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoIGRlZmluZWQgJFRpY2tldC0+e1N0YXRlSUR9ICYmICRUaWNrZXQtPntTdGF0ZUlEfSBuZSAkVGlja2V0RGF0YXtTdGF0ZUlEfSApCiAgICAgICAgewogICAgICAgICAgICAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFN0YXRlU2V0KAogICAgICAgICAgICAgICAgU3RhdGVJRCAgPT4gJFRpY2tldC0+e1N0YXRlSUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBkYXRhIGlzIHRoZSBzYW1lIGFzIGluIHRpY2tldCBub3RoaW5nIHRvIGRvCiAgICAgICAgICAgICRTdWNjZXNzID0gMTsKICAgICAgICB9CgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvcm1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAnVGlja2V0IHN0YXRlIGNvdWxkIG5vdCBiZSB1cGRhdGVkLCBwbGVhc2UgY29udGFjdCBzeXN0ZW0gYWRtaW5pc3RyYXRvciEnLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIHVwZGF0ZSBUaWNrZXQtPlNlcnZpY2UKICAgICMgdGhpcyBtaWdodCByZXNldCBTTEEgaWYgY3VycmVudCBTTEEgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIG5ldyBzZXJ2aWNlCiAgICBpZiAoICRUaWNrZXQtPntTZXJ2aWNlfSB8fCAkVGlja2V0LT57U2VydmljZUlEfSApIHsKCiAgICAgICAgIyBjaGVjayBpZiB0aWNrZXQgaGFzIGEgU0xBIGFzc2lnbmVkCiAgICAgICAgaWYgKCAkVGlja2V0RGF0YXtTTEFJRH0gKSB7CgogICAgICAgICAgICAjIGNoZWNrIGlmIG9sZCBTTEEgaXMgc3RpbGwgdmFsaWQKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgISRTZWxmLT5WYWxpZGF0ZVNMQSgKICAgICAgICAgICAgICAgICAgICBTTEFJRCAgICAgPT4gJFRpY2tldERhdGF7U0xBSUR9LAogICAgICAgICAgICAgICAgICAgIFNlcnZpY2UgICA9PiAkVGlja2V0LT57U2VydmljZX0gICB8fCAnJywKICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlSUQgPT4gJFRpY2tldC0+e1NlcnZpY2VJRH0gfHwgJycsCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIHJlbW92ZSBjdXJyZW50IFNMQSBpZiBpcyBub3QgY29tcGF0aWJsZSB3aXRoIG5ldyBzZXJ2aWNlCiAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNMQVNldCgKICAgICAgICAgICAgICAgICAgICBTTEFJRCAgICA9PiAnJywKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAkU3VjY2VzczsKCiAgICAgICAgIyBwcmV2ZW50IGNvbXBhcmlzb24gZXJyb3JzIG9uIHVuZGVmaW5lZCB2YWx1ZXMKICAgICAgICBpZiAoICFkZWZpbmVkICRUaWNrZXREYXRhe1NlcnZpY2V9ICkgewogICAgICAgICAgICAkVGlja2V0RGF0YXtTZXJ2aWNlfSA9ICcnOwogICAgICAgIH0KICAgICAgICBpZiAoICFkZWZpbmVkICRUaWNrZXREYXRhe1NlcnZpY2VJRH0gKSB7CiAgICAgICAgICAgICRUaWNrZXREYXRhe1NlcnZpY2VJRH0gPSAnJzsKICAgICAgICB9CgogICAgICAgIGlmICggZGVmaW5lZCAkVGlja2V0LT57U2VydmljZX0gJiYgJFRpY2tldC0+e1NlcnZpY2V9IG5lICRUaWNrZXREYXRhe1NlcnZpY2V9ICkgewogICAgICAgICAgICAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlcnZpY2VTZXQoCiAgICAgICAgICAgICAgICBTZXJ2aWNlICA9PiAkVGlja2V0LT57U2VydmljZX0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCBkZWZpbmVkICRUaWNrZXQtPntTZXJ2aWNlSUR9ICYmICRUaWNrZXQtPntTZXJ2aWNlSUR9IG5lICRUaWNrZXREYXRhe1NlcnZpY2VJRH0gKQogICAgICAgIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTZXJ2aWNlU2V0KAogICAgICAgICAgICAgICAgU2VydmljZUlEID0+ICRUaWNrZXQtPntTZXJ2aWNlSUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGRhdGEgaXMgdGhlIHNhbWUgYXMgaW4gdGlja2V0IG5vdGhpbmcgdG8gZG8KICAgICAgICAgICAgJFN1Y2Nlc3MgPSAxOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9ybWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICdUaWNrZXQgc2VydmljZSBjb3VsZCBub3QgYmUgdXBkYXRlZCwgcGxlYXNlIGNvbnRhY3Qgc3lzdGVtIGFkbWluaXN0cmF0b3IhJywKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyB1cGRhdGUgVGlja2V0LT5TTEEKICAgIGlmICggJFRpY2tldC0+e1NMQX0gfHwgJFRpY2tldC0+e1NMQUlEfSApIHsKICAgICAgICBteSAkU3VjY2VzczsKCiAgICAgICAgIyBwcmV2ZW50IGNvbXBhcmlzb24gZXJyb3JzIG9uIHVuZGVmaW5lZCB2YWx1ZXMKICAgICAgICBpZiAoICFkZWZpbmVkICRUaWNrZXREYXRhe1NMQX0gKSB7CiAgICAgICAgICAgICRUaWNrZXREYXRhe1NMQX0gPSAnJzsKICAgICAgICB9CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkVGlja2V0RGF0YXtTTEFJRH0gKSB7CiAgICAgICAgICAgICRUaWNrZXREYXRhe1NMQUlEfSA9ICcnOwogICAgICAgIH0KCiAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXQtPntTTEF9ICYmICRUaWNrZXQtPntTTEF9IG5lICRUaWNrZXREYXRhe1NMQX0gKSB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0U0xBU2V0KAogICAgICAgICAgICAgICAgU0xBICAgICAgPT4gJFRpY2tldC0+e1NMQX0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCBkZWZpbmVkICRUaWNrZXQtPntTTEFJRH0gJiYgJFRpY2tldC0+e1NMQUlEfSBuZSAkVGlja2V0RGF0YXtTTEFJRH0gKQogICAgICAgIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTTEFTZXQoCiAgICAgICAgICAgICAgICBTTEFJRCAgICA9PiAkVGlja2V0LT57U0xBSUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBkYXRhIGlzIHRoZSBzYW1lIGFzIGluIHRpY2tldCBub3RoaW5nIHRvIGRvCiAgICAgICAgICAgICRTdWNjZXNzID0gMTsKICAgICAgICB9CgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvcm1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAnVGlja2V0IFNMQSBjb3VsZCBub3QgYmUgdXBkYXRlZCwgcGxlYXNlIGNvbnRhY3Qgc3lzdGVtIGFkbWluaXN0cmF0b3IhJywKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyB1cGRhdGUgVGlja2V0LT5DdXN0b21lclVzZXIgJiYgVGlja2V0LT5DdXN0b21lcklECiAgICBpZiAoICRUaWNrZXQtPntDdXN0b21lclVzZXJ9IHx8ICRUaWNrZXQtPntDdXN0b21lcklEfSApIHsKCiAgICAgICAgIyBzZXQgdmFsdWVzIHRvIGVtcHR5IGlmIHRoZXkgYXJlIG5vdCBkZWZpbmVkCiAgICAgICAgJFRpY2tldERhdGF7Q3VzdG9tZXJVc2VySUR9ID0gJFRpY2tldERhdGF7Q3VzdG9tZXJVc2VySUR9IHx8ICcnOwogICAgICAgICRUaWNrZXREYXRhe0N1c3RvbWVySUR9ICAgICA9ICRUaWNrZXREYXRhe0N1c3RvbWVySUR9ICAgICB8fCAnJzsKICAgICAgICAkVGlja2V0LT57Q3VzdG9tZXJVc2VyfSAgICAgPSAkVGlja2V0LT57Q3VzdG9tZXJVc2VyfSAgICAgfHwgJyc7CiAgICAgICAgJFRpY2tldC0+e0N1c3RvbWVySUR9ICAgICAgID0gJFRpY2tldC0+e0N1c3RvbWVySUR9ICAgICAgIHx8ICcnOwoKICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICBpZiAoCiAgICAgICAgICAgICRUaWNrZXQtPntDdXN0b21lclVzZXJ9IG5lICRUaWNrZXREYXRhe0N1c3RvbWVyVXNlcklEfQogICAgICAgICAgICB8fCAkVGlja2V0LT57Q3VzdG9tZXJJRH0gbmUgJFRpY2tldERhdGF7Q3VzdG9tZXJJRH0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEN1c3RvbWVySUQgPSAkQ3VzdG9tZXJVc2VyRGF0YXtVc2VyQ3VzdG9tZXJJRH0gfHwgJyc7CgogICAgICAgICAgICAjIHVzZSB1c2VyIGRlZmluZWQgQ3VzdG9tZXJJRCBpZiBkZWZpbmVkCiAgICAgICAgICAgIGlmICggZGVmaW5lZCAkVGlja2V0LT57Q3VzdG9tZXJJRH0gJiYgJFRpY2tldC0+e0N1c3RvbWVySUR9IG5lICcnICkgewogICAgICAgICAgICAgICAgJEN1c3RvbWVySUQgPSAkVGlja2V0LT57Q3VzdG9tZXJJRH07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0Q3VzdG9tZXJTZXQoCiAgICAgICAgICAgICAgICBObyAgICAgICA9PiAkQ3VzdG9tZXJJRCwKICAgICAgICAgICAgICAgIFVzZXIgICAgID0+ICRUaWNrZXQtPntDdXN0b21lclVzZXJ9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBkYXRhIGlzIHRoZSBzYW1lIGFzIGluIHRpY2tldCBub3RoaW5nIHRvIGRvCiAgICAgICAgICAgICRTdWNjZXNzID0gMTsKICAgICAgICB9CgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvcm1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAnVGlja2V0IGN1c3RvbWVyIHVzZXIgY291bGQgbm90IGJlIHVwZGF0ZWQsIHBsZWFzZSBjb250YWN0IHN5c3RlbSBhZG1pbmlzdHJhdG9yIScsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgdXBkYXRlIFRpY2tldC0+UHJpb3JpdHkKICAgIGlmICggJFRpY2tldC0+e1ByaW9yaXR5fSB8fCAkVGlja2V0LT57UHJpb3JpdHlJRH0gKSB7CiAgICAgICAgbXkgJFN1Y2Nlc3M7CiAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXQtPntQcmlvcml0eX0gJiYgJFRpY2tldC0+e1ByaW9yaXR5fSBuZSAkVGlja2V0RGF0YXtQcmlvcml0eX0gKSB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0UHJpb3JpdHlTZXQoCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAkVGlja2V0LT57UHJpb3JpdHl9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggZGVmaW5lZCAkVGlja2V0LT57UHJpb3JpdHlJRH0gJiYgJFRpY2tldC0+e1ByaW9yaXR5SUR9IG5lICRUaWNrZXREYXRhe1ByaW9yaXR5SUR9ICkKICAgICAgICB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0UHJpb3JpdHlTZXQoCiAgICAgICAgICAgICAgICBQcmlvcml0eUlEID0+ICRUaWNrZXQtPntQcmlvcml0eUlEfSwKICAgICAgICAgICAgICAgIFRpY2tldElEICAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGRhdGEgaXMgdGhlIHNhbWUgYXMgaW4gdGlja2V0IG5vdGhpbmcgdG8gZG8KICAgICAgICAgICAgJFN1Y2Nlc3MgPSAxOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9ybWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICdUaWNrZXQgcHJpb3JpdHkgY291bGQgbm90IGJlIHVwZGF0ZWQsIHBsZWFzZSBjb250YWN0IHN5c3RlbSBhZG1pbmlzdHJhdG9yIScsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgIG15ICRVbmxvY2tPbkF3YXkgPSAxOwoKICAgICMgdXBkYXRlIFRpY2tldC0+T3duZXIKICAgIGlmICggJFRpY2tldC0+e093bmVyfSB8fCAkVGlja2V0LT57T3duZXJJRH0gKSB7CiAgICAgICAgbXkgJFN1Y2Nlc3M7CiAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXQtPntPd25lcn0gJiYgJFRpY2tldC0+e093bmVyfSBuZSAkVGlja2V0RGF0YXtPd25lcn0gKSB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICBOZXdVc2VyICA9PiAkVGlja2V0LT57T3duZXJ9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRVbmxvY2tPbkF3YXkgPSAwOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoIGRlZmluZWQgJFRpY2tldC0+e093bmVySUR9ICYmICRUaWNrZXQtPntPd25lcklEfSBuZSAkVGlja2V0RGF0YXtPd25lcklEfSApCiAgICAgICAgewogICAgICAgICAgICAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldE93bmVyU2V0KAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRUaWNrZXQtPntPd25lcklEfSwKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRVbmxvY2tPbkF3YXkgPSAwOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgZGF0YSBpcyB0aGUgc2FtZSBhcyBpbiB0aWNrZXQgbm90aGluZyB0byBkbwogICAgICAgICAgICAkU3VjY2VzcyA9IDE7CiAgICAgICAgfQoKICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JtZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgJ1RpY2tldCBvd25lciBjb3VsZCBub3QgYmUgdXBkYXRlZCwgcGxlYXNlIGNvbnRhY3Qgc3lzdGVtIGFkbWluaXN0cmF0b3IhJywKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyB1cGRhdGUgVGlja2V0LT5SZXNwb25zaWJsZQogICAgaWYgKCAkVGlja2V0LT57UmVzcG9uc2libGV9IHx8ICRUaWNrZXQtPntSZXNwb25zaWJsZUlEfSApIHsKICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICBpZiAoCiAgICAgICAgICAgIGRlZmluZWQgJFRpY2tldC0+e1Jlc3BvbnNpYmxlfQogICAgICAgICAgICAmJiAkVGlja2V0LT57UmVzcG9uc2libGV9IG5lICRUaWNrZXREYXRhe1Jlc3BvbnNpYmxlfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFJlc3BvbnNpYmxlU2V0KAogICAgICAgICAgICAgICAgTmV3VXNlciAgPT4gJFRpY2tldC0+e1Jlc3BvbnNpYmxlfSwKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgIGRlZmluZWQgJFRpY2tldC0+e1Jlc3BvbnNpYmxlSUR9CiAgICAgICAgICAgICYmICRUaWNrZXQtPntSZXNwb25zaWJsZUlEfSBuZSAkVGlja2V0RGF0YXtSZXNwb25zaWJsZUlEfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFJlc3BvbnNpYmxlU2V0KAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRUaWNrZXQtPntSZXNwb25zaWJsZUlEfSwKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBkYXRhIGlzIHRoZSBzYW1lIGFzIGluIHRpY2tldCBub3RoaW5nIHRvIGRvCiAgICAgICAgICAgICRTdWNjZXNzID0gMTsKICAgICAgICB9CgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvcm1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAnVGlja2V0IHJlc3BvbnNpYmxlIGNvdWxkIG5vdCBiZSB1cGRhdGVkLCBwbGVhc2UgY29udGFjdCBzeXN0ZW0gYWRtaW5pc3RyYXRvciEnLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICBteSAkQXJ0aWNsZUlEOwogICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkQXJ0aWNsZSkgKSB7CgogICAgICAgICMgc2V0IEFydGljbGUgRnJvbQogICAgICAgIG15ICRGcm9tOwogICAgICAgIGlmICggJEFydGljbGUtPntGcm9tfSApIHsKICAgICAgICAgICAgJEZyb20gPSAkQXJ0aWNsZS0+e0Zyb219OwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRQYXJhbXtVc2VyVHlwZX0gZXEgJ0N1c3RvbWVyJyApIHsKCiAgICAgICAgICAgICMgdXNlIGRhdGEgZnJvbSBjdXN0b21lciB1c2VyIChpZiBjdXN0b21lciB1c2VyIGlzIGluIGRhdGFiYXNlKQogICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCBcJUN1c3RvbWVyVXNlckRhdGEgKSApIHsKICAgICAgICAgICAgICAgICRGcm9tID0gJyInCiAgICAgICAgICAgICAgICAgICAgLiAkQ3VzdG9tZXJVc2VyRGF0YXtVc2VyRnVsbG5hbWV9IC4gJyInCiAgICAgICAgICAgICAgICAgICAgLiAnIDwnIC4gJEN1c3RvbWVyVXNlckRhdGF7VXNlckVtYWlsfSAuICc+JzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBvdGhlcndpc2UgdXNlIGN1c3RvbWVyIHVzZXIgYXMgc2VudCBmcm9tIHRoZSByZXF1ZXN0IChpdCBzaG91bGQgYmUgYW4gZW1haWwpCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJEZyb20gPSAkVGlja2V0LT57Q3VzdG9tZXJVc2VyfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJVVzZXJEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CgojIFJvdGhlciBPU1MgLyBPQXV0aDIKIyAgICAgICAgICAgJEZyb20gPSAkVXNlckRhdGF7VXNlckZ1bGxuYW1lfTsKCiAgICAgICAgICAgIGlmICggJEFydGljbGUtPntTZW5kRW1haWx9ICkgewoKICAgICAgICAgICAgICAgIGlmICggJEFydGljbGUtPntGcm9tfSApIHsKICAgICAgICAgICAgICAgICAgICAkRnJvbSA9ICRBcnRpY2xlLT57RnJvbX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBteSAlVGlja2V0RGF0YSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgU2lsZW50ICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIG15ICVBZGRyZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJyktPkdldFN5c3RlbUFkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgPT4gJFRpY2tldERhdGF7UXVldWVJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgJEZyb20gPSAkQWRkcmVzc3tFbWFpbH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkRnJvbSA9ICRVc2VyRGF0YXtVc2VyRnVsbG5hbWV9OwogICAgICAgICAgICB9CiMgRU8gLyBPQXV0aDIKICAgICAgICB9CgogICAgICAgICMgU2V0IEFydGljbGUgVG8sIENjLCBCY2MuCiAgICAgICAgbXkgKCAkVG8sICRDYywgJEJjYyApOwogICAgICAgIGlmICggJEFydGljbGUtPntUb30gKSB7CiAgICAgICAgICAgICRUbyA9ICRBcnRpY2xlLT57VG99OwogICAgICAgIH0KICAgICAgICBpZiAoICRBcnRpY2xlLT57Q2N9ICkgewogICAgICAgICAgICAkQ2MgPSAkQXJ0aWNsZS0+e0NjfTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkQXJ0aWNsZS0+e0JjY30gKSB7CiAgICAgICAgICAgICRCY2MgPSAkQXJ0aWNsZS0+e0JjY307CiAgICAgICAgfQoKICAgICAgICAjIEZhbGxiYWNrIGZvciBUbwogICAgICAgIGlmICggISRUbyAmJiAkQXJ0aWNsZS0+e0NvbW11bmljYXRpb25DaGFubmVsfSBlcSAnRW1haWwnICkgewoKICAgICAgICAgICAgIyBVc2UgZGF0YSBmcm9tIGN1c3RvbWVyIHVzZXIgKGlmIGN1c3RvbWVyIHVzZXIgaXMgaW4gZGF0YWJhc2UpLgogICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCBcJUN1c3RvbWVyVXNlckRhdGEgKSApIHsKICAgICAgICAgICAgICAgICRUbyA9ICciJyAuICRDdXN0b21lclVzZXJEYXRhe1VzZXJGdWxsbmFtZX0gLiAnIicKICAgICAgICAgICAgICAgICAgICAuICcgPCcgLiAkQ3VzdG9tZXJVc2VyRGF0YXtVc2VyRW1haWx9IC4gJz4nOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIE90aGVyd2lzZSB1c2UgY3VzdG9tZXIgdXNlciBhcyBzZW50IGZyb20gdGhlIHJlcXVlc3QgKGl0IHNob3VsZCBiZSBhbiBlbWFpbCkuCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFRvID0gJFRpY2tldC0+e0N1c3RvbWVyVXNlcn0gLy8gJFRpY2tldERhdGF7Q3VzdG9tZXJVc2VySUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoICEkQXJ0aWNsZS0+e0NvbW11bmljYXRpb25DaGFubmVsfSApIHsKCiAgICAgICAgICAgIG15ICVDb21tdW5pY2F0aW9uQ2hhbm5lbCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDb21tdW5pY2F0aW9uQ2hhbm5lbCcpLT5DaGFubmVsR2V0KAogICAgICAgICAgICAgICAgQ2hhbm5lbElEID0+ICRBcnRpY2xlLT57Q29tbXVuaWNhdGlvbkNoYW5uZWxJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRBcnRpY2xlLT57Q29tbXVuaWNhdGlvbkNoYW5uZWx9ID0gJENvbW11bmljYXRpb25DaGFubmVse0NoYW5uZWxOYW1lfTsKICAgICAgICB9CgogICAgICAgIG15ICRBcnRpY2xlQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkFydGljbGUnKS0+QmFja2VuZEZvckNoYW5uZWwoCiAgICAgICAgICAgIENoYW5uZWxOYW1lID0+ICRBcnRpY2xlLT57Q29tbXVuaWNhdGlvbkNoYW5uZWx9LAogICAgICAgICk7CgogICAgICAgIG15ICRQbGFpbkJvZHkgPSAkQXJ0aWNsZS0+e0JvZHl9OwoKICAgICAgICAjIENvbnZlcnQgYXJ0aWNsZSBib2R5IHRvIHBsYWluIHRleHQsIGlmIEhUTUwgY29udGVudCB3YXMgc3VwcGxpZWQuIFRoaXMgaXMgbmVjZXNzYXJ5IHNpbmNlIGF1dG8gcmVzcG9uc2UgY29kZQogICAgICAgICMgICBleHBlY3RzIHBsYWluIHRleHQgY29udGVudC4gUGxlYXNlIHNlZSBidWcjMTMzOTcgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICAgICAgaWYgKAogICAgICAgICAgICAoICRBcnRpY2xlLT57Q29udGVudFR5cGV9IC8vICcnICkgPX4gL3RleHRcL2h0bWwvaQogICAgICAgICAgICB8fAogICAgICAgICAgICAoICRBcnRpY2xlLT57TWltZVR5cGV9IC8vICcnICkgPX4gL3RleHRcL2h0bWwvaQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGxhaW5Cb2R5ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpLT5Ub0FzY2lpKAogICAgICAgICAgICAgICAgU3RyaW5nID0+ICRBcnRpY2xlLT57Qm9keX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiMgICAgICAgICMgQ3JlYXRlIGFydGljbGUuCiMgICAgICAgICRBcnRpY2xlSUQgPSAkQXJ0aWNsZUJhY2tlbmRPYmplY3QtPkFydGljbGVDcmVhdGUoCgogICAgICAgICMgQ3JlYXRlIGFydGljbGUgYW5kIG9wdGlvbmFsbHkgc2VuZCBlbWFpbC4KICAgICAgICBteSAkU2hhbGxTZW5kRW1haWwgPSAkQXJ0aWNsZS0+e1NlbmRFbWFpbH0gJiYKICAgICAgICAgICAgJEFydGljbGUtPntTZW5kZXJUeXBlfSBlcSAnYWdlbnQnICYmCiAgICAgICAgICAgICRBcnRpY2xlLT57Q29tbXVuaWNhdGlvbkNoYW5uZWx9IGVxICdFbWFpbCc7CgogICAgICAgIG15ICRBcnRpY2xlTWV0aG9kUmVmID0gJFNoYWxsU2VuZEVtYWlsCiAgICAgICAgICAgID8KICAgICAgICAgICAgJEFydGljbGVCYWNrZW5kT2JqZWN0LT5jYW4oJ0FydGljbGVTZW5kJykKICAgICAgICAgICAgOgogICAgICAgICAgICAkQXJ0aWNsZUJhY2tlbmRPYmplY3QtPmNhbignQXJ0aWNsZUNyZWF0ZScpOwoKICAgICAgICBteSAkVG4gICAgICA9ICRUaWNrZXRPYmplY3QtPlRpY2tldE51bWJlckxvb2t1cCggVGlja2V0SUQgPT4gJFRpY2tldElEICk7CiAgICAgICAgbXkgJFN1YmplY3QgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTdWJqZWN0QnVpbGQoCiAgICAgICAgICAgIFRpY2tldE51bWJlciA9PiAkVG4sCiAgICAgICAgICAgIFN1YmplY3QgICAgICA9PiAkQXJ0aWNsZS0+e1N1YmplY3R9IHx8ICcnLAogICAgICAgICk7CgogICAgICAgICMgc3VwcG9ydCBmb3IgU01JTUUgZW5jcnlwdGlvbiBhbmQgc2lnbmluZwogICAgICAgIG15ICVFbWFpbFNlY3VyaXR5T3B0aW9uczsKCiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2hhbGxTZW5kRW1haWwKICAgICAgICAgICAgJiYgJEFydGljbGUtPntFbWFpbFNlY3VyaXR5fQogICAgICAgICAgICAmJgogICAgICAgICAgICAkQXJ0aWNsZS0+e0VtYWlsU2VjdXJpdHl9LT57QmFja2VuZH0gZXEgJ1NNSU1FJwogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgbXkgJEVtYWlsU2VjdXJpdHkgPSB7CiAgICAgICAgICAgICAgICBCYWNrZW5kICAgICA9PiAnU01JTUUnLAogICAgICAgICAgICAgICAgU2lnbktleSAgICAgPT4gdW5kZWYsCiAgICAgICAgICAgICAgICBFbmNyeXB0S2V5cyA9PiB1bmRlZiwKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIG15ICRTTUlNRU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDcnlwdDo6U01JTUUnKTsKCiAgICAgICAgICAgIGlmICggJEFydGljbGUtPntFbWFpbFNlY3VyaXR5fS0+e1NpZ259ICkgewoKICAgICAgICAgICAgICAgIG15IEBSZXN1bHQgPSAkU01JTUVPYmplY3QtPkNlcnRpZmljYXRlU2VhcmNoKAogICAgICAgICAgICAgICAgICAgIFNlYXJjaCA9PiAkRnJvbSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCBzY2FsYXIgQFJlc3VsdCA9PSAxICkgewoKICAgICAgICAgICAgICAgICAgICAkRW1haWxTZWN1cml0eS0+e1NpZ25LZXl9ID0gJFJlc3VsdFswXS0+e0ZpbGVuYW1lfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdBcnRpY2xlIGNvdWxkIG5vdCBiZSBzZW5kLCBTTUlNRSBTaWduaW5nIHdhcyByZXF1ZXN0ZWQgYnV0IG5vIFNNSU1FIHNpZ25pbmcgY2VydGlmaWNhdGUgaXMgYXZhaWwuJwogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkQXJ0aWNsZS0+e0VtYWlsU2VjdXJpdHl9LT57RW5jcnlwdH0gKSB7CgogICAgICAgICAgICAgICAgbXkgQFJlc3VsdCA9ICRTTUlNRU9iamVjdC0+Q2VydGlmaWNhdGVTZWFyY2goCiAgICAgICAgICAgICAgICAgICAgU2VhcmNoID0+ICRUbywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCBzY2FsYXIgQFJlc3VsdCA9PSAxICkgewoKICAgICAgICAgICAgICAgICAgICAkRW1haWxTZWN1cml0eS0+e0VuY3J5cHRLZXlzfSA9IFsgJFJlc3VsdFswXS0+e0ZpbGVuYW1lfSBdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJ0FydGljbGUgY291bGQgbm90IGJlIHNlbmQsIFNNSU1FIEVuY3J5cHRpb24gd2FzIHJlcXVlc3RlZCBidXQgbm8gdW5pcXVlIFNNSU1FIGNlcnRpZmljYXRlIGZvciBlbmNyeXB0aW9uIGNvdWxkIGJlIGlkZW50aWZpZWQuJwogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRFbWFpbFNlY3VyaXR5T3B0aW9uc3tFbWFpbFNlY3VyaXR5fSA9ICRFbWFpbFNlY3VyaXR5OwogICAgICAgIH0KCiAgICAgICAgIyBwcmV0dGlmeSBGUk9NCiAgICAgICAgaWYgKCRTaGFsbFNlbmRFbWFpbCkgewogICAgICAgICAgICAkRnJvbSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUZW1wbGF0ZUdlbmVyYXRvcicpLT5TZW5kZXIoCiAgICAgICAgICAgICAgICBRdWV1ZUlEID0+ICRUaWNrZXREYXRhe1F1ZXVlSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICRBcnRpY2xlSUQgPSAkQXJ0aWNsZU1ldGhvZFJlZi0+KAogICAgICAgICAgICAkQXJ0aWNsZUJhY2tlbmRPYmplY3QsCiMgRU8gT0F1dGgyCgogICAgICAgICAgICBOb0FnZW50Tm90aWZ5ICAgICAgICA9PiAkQXJ0aWNsZS0+e05vQWdlbnROb3RpZnl9IHx8IDAsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgU2VuZGVyVHlwZUlEICAgICAgICAgPT4gJEFydGljbGUtPntTZW5kZXJUeXBlSUR9IHx8ICcnLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICA9PiAkQXJ0aWNsZS0+e1NlbmRlclR5cGV9ICAgfHwgJycsCiAgICAgICAgICAgIElzVmlzaWJsZUZvckN1c3RvbWVyID0+ICRBcnRpY2xlLT57SXNWaXNpYmxlRm9yQ3VzdG9tZXJ9LAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICA9PiAkRnJvbSwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgPT4gJFRvLAogICAgICAgICAgICBDYyAgICAgICAgICAgICAgICAgICA9PiAkQ2MsCiAgICAgICAgICAgIEJjYyAgICAgICAgICAgICAgICAgID0+ICRCY2MsCiMgUm90aGVyIE9TUyAvIE9BdXRoMgojICAgICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICA9PiAkQXJ0aWNsZS0+e1N1YmplY3R9LAogICAgICAgICAgICBTdWJqZWN0ID0+ICRTdWJqZWN0LAojIEVPIE9BdXRoMgogICAgICAgICAgICBCb2R5ICAgICAgICAgICAgID0+ICRBcnRpY2xlLT57Qm9keX0sCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgPT4gJEFydGljbGUtPntNaW1lVHlwZX0gICAgfHwgJycsCiAgICAgICAgICAgIENoYXJzZXQgICAgICAgICAgPT4gJEFydGljbGUtPntDaGFyc2V0fSAgICAgfHwgJycsCiAgICAgICAgICAgIENvbnRlbnRUeXBlICAgICAgPT4gJEFydGljbGUtPntDb250ZW50VHlwZX0gfHwgJycsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgICAgPT4gJEFydGljbGUtPntIaXN0b3J5VHlwZX0sCiAgICAgICAgICAgIEhpc3RvcnlDb21tZW50ICAgPT4gJEFydGljbGUtPntIaXN0b3J5Q29tbWVudH0gfHwgJyUlJywKICAgICAgICAgICAgQXV0b1Jlc3BvbnNlVHlwZSA9PiAkQXJ0aWNsZS0+e0F1dG9SZXNwb25zZVR5cGV9LAogICAgICAgICAgICBVbmxvY2tPbkF3YXkgICAgID0+ICRVbmxvY2tPbkF3YXksCiAgICAgICAgICAgIE9yaWdIZWFkZXIgICAgICAgPT4gewogICAgICAgICAgICAgICAgRnJvbSAgICA9PiAkRnJvbSwKICAgICAgICAgICAgICAgIFRvICAgICAgPT4gJFRvLAogICAgICAgICAgICAgICAgU3ViamVjdCA9PiAkQXJ0aWNsZS0+e1N1YmplY3R9LAogICAgICAgICAgICAgICAgQm9keSAgICA9PiAkUGxhaW5Cb2R5LAogICAgICAgICAgICB9LAojIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICAgICAgJUVtYWlsU2VjdXJpdHlPcHRpb25zCiMgRU8gT0F1dGgyCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJEFydGljbGVJRCApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgJ0FydGljbGUgY291bGQgbm90IGJlIGNyZWF0ZWQsIHBsZWFzZSBjb250YWN0IHRoZSBzeXN0ZW0gYWRtaW5pc3RyYXRvcicKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgICMgdGltZSBhY2NvdW50aW5nCiAgICAgICAgaWYgKCAkQXJ0aWNsZS0+e1RpbWVVbml0fSApIHsKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0QWNjb3VudFRpbWUoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlSUQsCiAgICAgICAgICAgICAgICBUaW1lVW5pdCAgPT4gJEFydGljbGUtPntUaW1lVW5pdH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGR5bmFtaWMgZmllbGRzCiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZCAoIEB7JER5bmFtaWNGaWVsZExpc3R9ICkgewogICAgICAgIG15ICRSZXN1bHQgPSAkU2VsZi0+U2V0RHluYW1pY0ZpZWxkVmFsdWUoCiAgICAgICAgICAgICV7JER5bmFtaWNGaWVsZH0sCiAgICAgICAgICAgIFRpY2tldElEICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZUlEIHx8ICcnLAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJFJlc3VsdC0+e1N1Y2Nlc3N9ICkgewogICAgICAgICAgICBteSAkRXJyb3JNZXNzYWdlID0KICAgICAgICAgICAgICAgICRSZXN1bHQtPntFcnJvck1lc3NhZ2V9IHx8ICJEeW5hbWljIEZpZWxkICREeW5hbWljRmllbGQtPntOYW1lfSBjb3VsZCBub3QgYmUgc2V0LCIKICAgICAgICAgICAgICAgIC4gIiBwbGVhc2UgY29udGFjdCB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3IiOwoKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGF0dGFjaG1lbnRzCgogICAgZm9yIG15ICRBdHRhY2htZW50ICggQHskQXR0YWNobWVudExpc3R9ICkgewogICAgICAgIG15ICRSZXN1bHQgPSAkU2VsZi0+Q3JlYXRlQXR0YWNobWVudCgKICAgICAgICAgICAgQXR0YWNobWVudCA9PiAkQXR0YWNobWVudCwKICAgICAgICAgICAgVGlja2V0SUQgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgIEFydGljbGVJRCAgPT4gJEFydGljbGVJRCB8fCAnJywKICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfQogICAgICAgICk7CgogICAgICAgIGlmICggISRSZXN1bHQtPntTdWNjZXNzfSApIHsKICAgICAgICAgICAgbXkgJEVycm9yTWVzc2FnZSA9CiAgICAgICAgICAgICAgICAkUmVzdWx0LT57RXJyb3JNZXNzYWdlfSB8fCAiQXR0YWNobWVudCBjb3VsZCBub3QgYmUgY3JlYXRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlICIKICAgICAgICAgICAgICAgIC4gIiBzeXN0ZW0gYWRtaW5pc3RyYXRvciI7CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgd2ViIHNlcnZpY2UgY29uZmlndXJhdGlvbgogICAgbXkgJFdlYnNlcnZpY2UgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJpY0ludGVyZmFjZTo6V2Vic2VydmljZScpLT5XZWJzZXJ2aWNlR2V0KAogICAgICAgIElEID0+ICRTZWxmLT57V2Vic2VydmljZUlEfSwKICAgICk7CgogICAgbXkgJEluY2x1ZGVUaWNrZXREYXRhOwoKICAgICMgR2V0IG9wZXJhdGlvbiBjb25maWcsIGlmIG9wZXJhdGlvbiBuYW1lIHdhcyBzdXBwbGllZC4KICAgIGlmICggJFNlbGYtPntPcGVyYXRpb259ICkgewogICAgICAgIG15ICRPcGVyYXRpb25Db25maWcgPSAkV2Vic2VydmljZS0+e0NvbmZpZ30tPntQcm92aWRlcn0tPntPcGVyYXRpb259LT57ICRTZWxmLT57T3BlcmF0aW9ufSB9OwogICAgICAgICRJbmNsdWRlVGlja2V0RGF0YSA9ICRPcGVyYXRpb25Db25maWctPntJbmNsdWRlVGlja2V0RGF0YX07CiAgICB9CgogICAgaWYgKCAhJEluY2x1ZGVUaWNrZXREYXRhICkgewogICAgICAgIGlmICgkQXJ0aWNsZUlEKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgICAgICAgICBEYXRhICAgID0+IHsKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgICAgIFRpY2tldE51bWJlciA9PiAkVGlja2V0RGF0YXtUaWNrZXROdW1iZXJ9LAogICAgICAgICAgICAgICAgICAgIEFydGljbGVJRCAgICA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgICAgICAgICBEYXRhICAgID0+IHsKICAgICAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBUaWNrZXROdW1iZXIgPT4gJFRpY2tldERhdGF7VGlja2V0TnVtYmVyfSwKICAgICAgICAgICAgfSwKICAgICAgICB9OwogICAgfQoKICAgICMgZ2V0IHVwZGF0ZWQgVGlja2V0RGF0YQogICAgJVRpY2tldERhdGEgPSAoKTsKICAgICVUaWNrZXREYXRhID0gJFRpY2tldE9iamVjdC0+VGlja2V0R2V0KAogICAgICAgIFRpY2tldElEICAgICAgPT4gJFRpY2tldElELAogICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMSwKICAgICAgICBVc2VySUQgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGV4dHJhY3QgYWxsIGR5bmFtaWMgZmllbGRzIGZyb20gbWFpbiB0aWNrZXQgaGFzaC4KICAgIG15ICVUaWNrZXREeW5hbWljRmllbGRzOwogICAgVElDS0VUQVRUUklCVVRFOgogICAgZm9yIG15ICRUaWNrZXRBdHRyaWJ1dGUgKCBzb3J0IGtleXMgJVRpY2tldERhdGEgKSB7CiAgICAgICAgaWYgKCAkVGlja2V0QXR0cmlidXRlID1+IG17XEEgRHluYW1pY0ZpZWxkXyguKikgXHp9bXN4ICkgewogICAgICAgICAgICAkVGlja2V0RHluYW1pY0ZpZWxkc3skMX0gPSB7CiAgICAgICAgICAgICAgICBOYW1lICA9PiAkMSwKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRUaWNrZXREYXRheyRUaWNrZXRBdHRyaWJ1dGV9LAogICAgICAgICAgICB9OwogICAgICAgICAgICBkZWxldGUgJFRpY2tldERhdGF7JFRpY2tldEF0dHJpYnV0ZX07CiAgICAgICAgfQogICAgfQoKICAgICMgYWRkIGR5bmFtaWMgZmllbGRzIGFzIGFycmF5IGludG8gJ0R5bmFtaWNGaWVsZCcgaGFzaCBrZXkgaWYgYW55CiAgICBpZiAoJVRpY2tldER5bmFtaWNGaWVsZHMpIHsKICAgICAgICAkVGlja2V0RGF0YXtEeW5hbWljRmllbGR9ID0gWyBzb3J0IHsgJGEtPntOYW1lfSBjbXAgJGItPntOYW1lfSB9IHZhbHVlcyAlVGlja2V0RHluYW1pY0ZpZWxkcyBdOwogICAgfQoKICAgICMgZ2V0IGxhc3QgQXJ0aWNsZUlECiAgICBteSAkQXJ0aWNsZU9iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlJyk7CiAgICBteSAkQXJ0aWNsZUJhY2tlbmRPYmplY3QgPSAkQXJ0aWNsZU9iamVjdC0+QmFja2VuZEZvckFydGljbGUoCiAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlSUQsCiAgICAgICAgVGlja2V0SUQgID0+ICRUaWNrZXRJRAogICAgKTsKCiAgICBteSBAQXJ0aWNsZXMgPSAkQXJ0aWNsZU9iamVjdC0+QXJ0aWNsZUxpc3QoCiAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgIE9ubHlMYXN0ID0+IDEsCiAgICApOwoKICAgIG15ICRMYXN0QXJ0aWNsZUlEID0gJEFydGljbGVzWzBdLT57QXJ0aWNsZUlEfTsKCiAgICAjIHJldHVybiB0aWNrZXQgZGF0YSBpZiB3ZSBoYXZlIG5vIGFydGljbGUgZGF0YQogICAgaWYgKCAhJEFydGljbGVJRCAmJiAhJExhc3RBcnRpY2xlSUQgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgICAgICAgICBEYXRhICAgID0+IHsKICAgICAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBUaWNrZXROdW1iZXIgPT4gJFRpY2tldERhdGF7VGlja2V0TnVtYmVyfSwKICAgICAgICAgICAgICAgIFRpY2tldCAgICAgICA9PiBcJVRpY2tldERhdGEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIGdldCBBcnRpY2xlIGFuZCBBcnRpY2xlQXR0YWNoZW1lbnQKICAgIG15ICVBcnRpY2xlRGF0YSA9ICRBcnRpY2xlQmFja2VuZE9iamVjdC0+QXJ0aWNsZUdldCgKICAgICAgICBBcnRpY2xlSUQgICAgID0+ICRBcnRpY2xlSUQgfHwgJExhc3RBcnRpY2xlSUQsCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLAogICAgICAgIFRpY2tldElEICAgICAgPT4gJFRpY2tldElELAogICAgKTsKCiAgICAjIHByZXBhcmUgQXJ0aWNsZSBEeW5hbWljRmllbGRzCiAgICBteSBAQXJ0aWNsZUR5bmFtaWNGaWVsZHM7CgogICAgIyByZW1vdmUgYWxsIGR5bmFtaWMgZmllbGRzIGZyb20gbWFpbiB0aWNrZXQgaGFzaCBhbmQgc2V0IHRoZW0gaW50byBhbiBhcnJheS4KICAgIEFSVElDTEVBVFRSSUJVVEU6CiAgICBmb3IgbXkgJEFydGljbGVBdHRyaWJ1dGUgKCBzb3J0IGtleXMgJUFydGljbGVEYXRhICkgewogICAgICAgIGlmICggJEFydGljbGVBdHRyaWJ1dGUgPX4gbXtcQSBEeW5hbWljRmllbGRfKC4qKSBcen1tc3ggKSB7CiAgICAgICAgICAgIGlmICggIWV4aXN0cyAkVGlja2V0RHluYW1pY0ZpZWxkc3skMX0gKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBBcnRpY2xlRHluYW1pY0ZpZWxkcywgewogICAgICAgICAgICAgICAgICAgIE5hbWUgID0+ICQxLAogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRBcnRpY2xlRGF0YXskQXJ0aWNsZUF0dHJpYnV0ZX0sCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBkZWxldGUgJEFydGljbGVEYXRheyRBcnRpY2xlQXR0cmlidXRlfTsKICAgICAgICB9CiAgICB9CgogICAgIyBhZGQgZHluYW1pYyBmaWVsZHMgYXJyYXkgaW50byAnRHluYW1pY0ZpZWxkJyBoYXNoIGtleSBpZiBhbnkKICAgIGlmIChAQXJ0aWNsZUR5bmFtaWNGaWVsZHMpIHsKICAgICAgICAkQXJ0aWNsZURhdGF7RHluYW1pY0ZpZWxkfSA9IFxAQXJ0aWNsZUR5bmFtaWNGaWVsZHM7CiAgICB9CgogICAgIyBhZGQgYXR0YWNobWVudCBpZiB0aGUgcmVxdWVzdCBpbmNsdWRlcyBhdHRhY2htZW50cwogICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoJEF0dGFjaG1lbnRMaXN0KSApIHsKICAgICAgICBteSAlQXR0YWNobWVudEluZGV4ID0gJEFydGljbGVCYWNrZW5kT2JqZWN0LT5BcnRpY2xlQXR0YWNobWVudEluZGV4KAogICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVEYXRhe0FydGljbGVJRH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgQEF0dGFjaG1lbnRzOwogICAgICAgIEFUVEFDSE1FTlQ6CiAgICAgICAgZm9yIG15ICRGaWxlSUQgKCBzb3J0IGtleXMgJUF0dGFjaG1lbnRJbmRleCApIHsKICAgICAgICAgICAgbmV4dCBBVFRBQ0hNRU5UIGlmICEkRmlsZUlEOwogICAgICAgICAgICBteSAlQXR0YWNobWVudCA9ICRBcnRpY2xlQmFja2VuZE9iamVjdC0+QXJ0aWNsZUF0dGFjaG1lbnQoCiAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVEYXRhe0FydGljbGVJRH0sCiAgICAgICAgICAgICAgICBGaWxlSUQgICAgPT4gJEZpbGVJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgQVRUQUNITUVOVCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoIFwlQXR0YWNobWVudCApOwoKICAgICAgICAgICAgIyBjb252ZXJ0IGNvbnRlbnQgdG8gYmFzZTY0LCBidXQgcHJldmVudCA3NiBjaGFycyBicmFrZSwgc2VlIGJ1ZyMxNDUwMC4KICAgICAgICAgICAgJEF0dGFjaG1lbnR7Q29udGVudH0gPSBlbmNvZGVfYmFzZTY0KCAkQXR0YWNobWVudHtDb250ZW50fSwgJycgKTsKICAgICAgICAgICAgcHVzaCBAQXR0YWNobWVudHMsIHslQXR0YWNobWVudH07CiAgICAgICAgfQoKICAgICAgICAjIHNldCBBdHRhY2htZW50cyBkYXRhCiAgICAgICAgaWYgKEBBdHRhY2htZW50cykgewogICAgICAgICAgICAkQXJ0aWNsZURhdGF7QXR0YWNobWVudH0gPSBcQEF0dGFjaG1lbnRzOwogICAgICAgIH0KICAgIH0KCiAgICAkVGlja2V0RGF0YXtBcnRpY2xlfSA9IFwlQXJ0aWNsZURhdGE7CgogICAgIyByZXR1cm4gdGlja2V0IGRhdGEgYW5kIGFydGljbGUgZGF0YQogICAgcmV0dXJuIHsKICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgRGF0YSAgICA9PiB7CiAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgIFRpY2tldE51bWJlciA9PiAkVGlja2V0RGF0YXtUaWNrZXROdW1iZXJ9LAogICAgICAgICAgICBBcnRpY2xlSUQgICAgPT4gJEFydGljbGVEYXRhe0FydGljbGVJRH0sCiAgICAgICAgICAgIFRpY2tldCAgICAgICA9PiBcJVRpY2tldERhdGEsCiAgICAgICAgfSwKICAgIH07Cn0KCj1lbmQgSW50ZXJuYWw6Cgo9Y3V0CgoxOwo=</File>
        <File Location="Custom/Kernel/GenericInterface/Operation/Session/SessionCreate.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSBmZjllMjk3YmFmMjg3ZTE2MDcxZDNhYzZhZDdmNmMxM2YxMWFjN2ZhIC0gS2VybmVsL0dlbmVyaWNJbnRlcmZhY2UvT3BlcmF0aW9uL1Nlc3Npb24vU2Vzc2lvbkNyZWF0ZS5wbQojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpTZXNzaW9uOjpTZXNzaW9uQ3JlYXRlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KElzU3RyaW5nV2l0aERhdGEgSXNIYXNoUmVmV2l0aERhdGEpOwoKdXNlIHBhcmVudCBxdygKICAgIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpDb21tb24KICAgIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpTZXNzaW9uOjpDb21tb24KKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6U2Vzc2lvbjo6U2Vzc2lvbkNyZWF0ZSAtIEdlbmVyaWNJbnRlcmZhY2UgU2Vzc2lvbiBDcmVhdGUgT3BlcmF0aW9uIGJhY2tlbmQKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgbmV3KCkKCnVzdWFsbHksIHlvdSB3YW50IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGlzCmJ5IHVzaW5nIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uLT5uZXcoKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkTmVlZGVkICgKICAgICAgICBxdyhEZWJ1Z2dlck9iamVjdCBXZWJzZXJ2aWNlSUQpCiAgICAgICAgKQogICAgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiR290IG5vICROZWVkZWQhIgogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgJFNlbGYtPnskTmVlZGVkfSA9ICRQYXJhbXskTmVlZGVkfTsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBSdW4oKQoKUmV0cmlldmUgYSBuZXcgc2Vzc2lvbiBpZCB2YWx1ZS4KCiAgICBteSAkUmVzdWx0ID0gJE9wZXJhdGlvbk9iamVjdC0+UnVuKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBVc2VyTG9naW4gICAgICAgICA9PiAnQWdlbnQxJywKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyTG9naW4gPT4gJ0N1c3RvbWVyMScsICAgICAgICMgb3B0aW9uYWwsIHByb3ZpZGUgVXNlckxvZ2luIG9yIEN1c3RvbWVyVXNlckxvZ2luCiAgICAgICAgICAgIFBhc3N3b3JkICAgICAgICAgID0+ICdzb21lIHBhc3N3b3JkJywgICAjIHBsYWluIHRleHQgcGFzc3dvcmQKICAgICAgICB9LAogICAgKTsKCiAgICAkUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAwIG9yIDEKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJycsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgSW4gY2FzZSBvZiBhbiBlcnJvcgogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgIFNlc3Npb25JRCA9PiAkU2Vzc2lvbklELAogICAgICAgIH0sCiAgICB9OwoKPWN1dAoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte0RhdGF9ICkgKSB7CgogICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnU2Vzc2lvbkNyZWF0ZS5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJTZXNzaW9uQ3JlYXRlOiBUaGUgcmVxdWVzdCBpcyBlbXB0eSEiLAogICAgICAgICk7CiAgICB9CgogICAgZm9yIG15ICROZWVkZWQgKHF3KCBQYXNzd29yZCApKSB7CiAgICAgICAgaWYgKCAhJFBhcmFte0RhdGF9LT57JE5lZWRlZH0gKSB7CgojIFJvdGhlciBPU1MgLyBPQXV0aDIKIyAgICAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKIyAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnU2Vzc2lvbkNyZWF0ZS5NaXNzaW5nUGFyYW1ldGVyJywKIyAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiU2Vzc2lvbkNyZWF0ZTogJE5lZWRlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZyEiLAojICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAhJFBhcmFte0RhdGF9LT57QmVhcmVyVG9rZW59ICkgewogICAgICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1Nlc3Npb25DcmVhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJTZXNzaW9uQ3JlYXRlOiAkTmVlZGVkIHBhcmFtZXRlciBpcyBtaXNzaW5nISIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgojIEVPIE9BdXRoMgogICAgICAgIH0KICAgIH0KCiAgICBteSAkU2Vzc2lvbklEID0gJFNlbGYtPkNyZWF0ZVNlc3Npb25JRCgKICAgICAgICAlUGFyYW0sCiMgUm90aGVyIE9TUyAvIE9BdXRoMgogICAgICAgIERlYnVnZ2VyT2JqZWN0ID0+ICRTZWxmLT57RGVidWdnZXJPYmplY3R9CiMgRU8gT0F1dGgyCiAgICApOwoKICAgIGlmICggISRTZXNzaW9uSUQgKSB7CgogICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnU2Vzc2lvbkNyZWF0ZS5BdXRoRmFpbCcsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiU2Vzc2lvbkNyZWF0ZTogQXV0aG9yaXphdGlvbiBmYWlsaW5nISIsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICBEYXRhICAgID0+IHsKICAgICAgICAgICAgU2Vzc2lvbklEID0+ICRTZXNzaW9uSUQsCiAgICAgICAgfSwKICAgIH07Cn0KCjE7Cg==</File>
        <File Location="Custom/Kernel/GenericInterface/Operation/Session/Common.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSBmZjllMjk3YmFmMjg3ZTE2MDcxZDNhYzZhZDdmNmMxM2YxMWFjN2ZhIC0gS2VybmVsL0dlbmVyaWNJbnRlcmZhY2UvT3BlcmF0aW9uL1Nlc3Npb24vQ29tbW9uLnBtCiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgojIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKIyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwojIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OlNlc3Npb246OkNvbW1vbjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgICAgICAgICAgICAgIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OlNlc3Npb246OkNvbW1vbiAtIEJhc2UgY2xhc3MgZm9yIFNlc3Npb24gT3BlcmF0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBDcmVhdGVTZXNzaW9uSUQoKQoKcGVyZm9ybXMgdXNlciBhdXRoZW50aWNhdGlvbiBhbmQgcmV0dXJuIGEgbmV3IFNlc3Npb25JRCB2YWx1ZQoKICAgIG15ICRTZXNzaW9uSUQgPSAkQ29tbW9uT2JqZWN0LT5DcmVhdGVTZXNzaW9uSUQoCiAgICAgICAgRGF0YSB7CiAgICAgICAgICAgIFVzZXJMb2dpbiAgICAgICAgID0+ICdBZ2VudDEnLAogICAgICAgICAgICBDdXN0b21lclVzZXJMb2dpbiA9PiAnQ3VzdG9tZXIxJywgICAgICAgIyBvcHRpb25hbCwgcHJvdmlkZSBVc2VyTG9naW4gb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICBDdXN0b21lclVzZXJMb2dpbgogICAgICAgICAgICBQYXNzd29yZCAgICAgICAgICA9PiAnc29tZSBwYXNzd29yZCcsICAgIyBwbGFpbiB0ZXh0IHBhc3N3b3JkCiAgICAgICAgfQogICAgKTsKClJldHVybnMgdW5kZWYgb24gZmFpbHVyZSBvcgoKICAgICRTZXNzaW9uSUQgPSAnQVZhbGlkU2Vzc2lvbklEVmFsdWUnOyAgICAgICAgICMgdGhlIG5ldyBzZXNzaW9uIGlkIHZhbHVlCgo9Y3V0CgpzdWIgQ3JlYXRlU2Vzc2lvbklEIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFVzZXI7CiAgICBteSAlVXNlckRhdGE7CiAgICBteSAkVXNlclR5cGU7CgojIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICMgc3BlY2lhbCBjYXNlIGZvciBzZXNzaW9uIGNyZWF0aW9uIGJhc2VkIG9uIE9BdXRoIEJlYXJlciB0b2tlbgogICAgaWYgKCAkUGFyYW17RGF0YX0tPntCZWFyZXJUb2tlbn0gKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fQ3JlYXRlU2Vzc2lvbklERnJvbUJlYXJlclRva2VuKCVQYXJhbSk7CiAgICB9CiMgRU8gLyBPQXV0aDIKCiAgICAjIGdldCBwYXJhbXMKICAgIG15ICRQb3N0UHcgPSAkUGFyYW17RGF0YX0tPntQYXNzd29yZH0gfHwgJyc7CgogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtEYXRhfS0+e1VzZXJMb2dpbn0gJiYgJFBhcmFte0RhdGF9LT57VXNlckxvZ2lufSApIHsKCiAgICAgICAgIyBpZiBVc2VyTG9naW4KICAgICAgICBteSAkUG9zdFVzZXIgPSAkUGFyYW17RGF0YX0tPntVc2VyTG9naW59IHx8ICcnOwoKICAgICAgICAjIGNoZWNrIHN1Ym1pdHRlZCBkYXRhCiAgICAgICAgJFVzZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aCcpLT5BdXRoKAogICAgICAgICAgICBVc2VyID0+ICRQb3N0VXNlciwKICAgICAgICAgICAgUHcgICA9PiAkUG9zdFB3LAogICAgICAgICk7CiAgICAgICAgJVVzZXJEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXIgID0+ICRVc2VyLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFVzZXJUeXBlID0gJ1VzZXInOwogICAgfQogICAgZWxzaWYgKCBkZWZpbmVkICRQYXJhbXtEYXRhfS0+e0N1c3RvbWVyVXNlckxvZ2lufSAmJiAkUGFyYW17RGF0YX0tPntDdXN0b21lclVzZXJMb2dpbn0gKSB7CgogICAgICAgICMgaWYgVXNlckN1c3RvbWVyTG9naW4KICAgICAgICBteSAkUG9zdFVzZXIgPSAkUGFyYW17RGF0YX0tPntDdXN0b21lclVzZXJMb2dpbn0gfHwgJyc7CgogICAgICAgICMgY2hlY2sgc3VibWl0dGVkIGRhdGEKICAgICAgICAkVXNlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lckF1dGgnKS0+QXV0aCgKICAgICAgICAgICAgVXNlciA9PiAkUG9zdFVzZXIsCiAgICAgICAgICAgIFB3ICAgPT4gJFBvc3RQdywKICAgICAgICApOwogICAgICAgICVVc2VyRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInKS0+Q3VzdG9tZXJVc2VyRGF0YUdldCgKICAgICAgICAgICAgVXNlciAgPT4gJFBvc3RVc2VyLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFVzZXJUeXBlID0gJ0N1c3RvbWVyJzsKICAgIH0KCiAgICAjIGxvZ2luIGlzIGludmFsaWQKICAgIHJldHVybiBpZiAhJFVzZXI7CgogICAgIyBjcmVhdGUgbmV3IHNlc3Npb24gaWQKICAgIG15ICROZXdTZXNzaW9uSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+Q3JlYXRlU2Vzc2lvbklEKAogICAgICAgICVVc2VyRGF0YSwKICAgICAgICBVc2VyTGFzdFJlcXVlc3QgPT4gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyktPlRvRXBvY2goKSwKICAgICAgICBVc2VyVHlwZSAgICAgICAgPT4gJFVzZXJUeXBlLAogICAgICAgIFNlc3Npb25Tb3VyY2UgICA9PiAnR2VuZXJpY0ludGVyZmFjZScsCiAgICApOwoKICAgIHJldHVybiAkTmV3U2Vzc2lvbklEIGlmICgkTmV3U2Vzc2lvbklEKTsKCiAgICByZXR1cm47Cn0KCiMgUm90aGVyIE9TUyAvIE9BdXRoMgpzdWIgX0NyZWF0ZVNlc3Npb25JREZyb21CZWFyZXJUb2tlbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRBdXRoZW50aWNhdG9yID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkF1dGhlbnRpY2F0b3InKTsKICAgIG15ICRSZXN1bHQgICAgICAgID0gJEF1dGhlbnRpY2F0b3ItPkF1dGhlbnRpY2F0ZSgKICAgICAgICBUb2tlbiA9PiAkUGFyYW17RGF0YX0tPntCZWFyZXJUb2tlbn0sCiAgICApOwoKICAgIGlmICggJFJlc3VsdC0+e1N1Y2Nlc3N9ICkgewoKICAgICAgICAjIHJlcG9ydCBzdWNjZXNzIQogICAgICAgICRQYXJhbXtEZWJ1Z2dlck9iamVjdH0tPkRlYnVnKAogICAgICAgICAgICBTdW1tYXJ5ID0+ICdCZWFyZXIgVG9rZW4gZGVjb2RlZDonLAogICAgICAgICAgICBEYXRhICAgID0+ICRSZXN1bHQtPntUb2tlbkRhdGF9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIG5ldyBzZXNzaW9uIGlkCiAgICAgICAgbXkgJE5ld1Nlc3Npb25JRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpLT5DcmVhdGVTZXNzaW9uSUQoCiAgICAgICAgICAgICRSZXN1bHQtPntVc2VyRGF0YX0tPiUqLAogICAgICAgICAgICBVc2VyTGFzdFJlcXVlc3QgPT4gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyktPlRvRXBvY2goKSwKICAgICAgICAgICAgVXNlclR5cGUgICAgICAgID0+ICdVc2VyJywKICAgICAgICAgICAgU2Vzc2lvblNvdXJjZSAgID0+ICdHZW5lcmljSW50ZXJmYWNlJywKICAgICAgICApOwoKICAgICAgICAjIGlmIHdlIGhhdmUgYSB2YWxpcyBzZXNzaW9uLCB3ZSBhcmUgZG9uZS4KICAgICAgICByZXR1cm4gJE5ld1Nlc3Npb25JRCBpZiAoJE5ld1Nlc3Npb25JRCk7CgogICAgICAgICMgb3RoZXJ3aXNlIHRyeSBuZXh0IGFjY291bnQKICAgICAgICBuZXh0IEFDQ09VTlROQU1FOwogICAgfQoKICAgIHJldHVybjsKfQojIEVPIC8gT0F1dGgyCgoxOwo=</File>
        <File Location="Custom/Kernel/GenericInterface/Transport/HTTP/REST.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL0dlbmVyaWNJbnRlcmZhY2UvVHJhbnNwb3J0L0hUVFAvUkVTVC5wbQojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6VHJhbnNwb3J0OjpIVFRQOjpSRVNUOwoKdXNlIHY1LjI0Owp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSBuYW1lc3BhY2U6OmF1dG9jbGVhbjsKCiMgY29yZSBtb2R1bGVzCnVzZSBNSU1FOjpCYXNlNjQgcXcoZW5jb2RlX2Jhc2U2NCk7CgojIENQQU4gbW9kdWxlcwp1c2UgSFRUUDo6U3RhdHVzICAgIHF3KHN0YXR1c19tZXNzYWdlKTsKdXNlIFJFU1Q6OkNsaWVudCAgICAoKTsKdXNlIFVSSTo6RXNjYXBlICAgICBxdyh1cmlfZXNjYXBlX3V0ZjggdXJpX3VuZXNjYXBlKTsKdXNlIFBsYWNrOjpSZXNwb25zZSAoKTsKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgIHF3KDphbGwpOwp1c2UgS2VybmVsOjpTeXN0ZW06OldlYjo6RXhjZXB0aW9uICgpOwoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKIyBFTyBPQXV0aDIKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6OlRyYW5zcG9ydDo6SFRUUDo6UkVTVCAtIEdlbmVyaWNJbnRlcmZhY2UgbmV0d29yayB0cmFuc3BvcnQgaW50ZXJmYWNlIGZvciBIVFRQOjpSRVNUCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPWhlYWQyIG5ldygpCgp1c3VhbGx5LCB5b3Ugd2FudCB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhpcwpieSB1c2luZyBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6OlRyYW5zcG9ydC0+bmV3KCk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBBbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0LgogICAgbXkgJFNlbGYgPSBibGVzcyB7fSwgJFR5cGU7CgogICAgIyBDaGVjayBuZWVkZWQgb2JqZWN0cy4KICAgIGZvciBteSAkTmVlZGVkIChxdyhEZWJ1Z2dlck9iamVjdCBUcmFuc3BvcnRDb25maWcpKSB7CiAgICAgICAgJFNlbGYtPnskTmVlZGVkfSA9ICRQYXJhbXskTmVlZGVkfSB8fCBkaWUgIkdvdCBubyAkTmVlZGVkISI7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgUHJvdmlkZXJQcm9jZXNzUmVxdWVzdCgpCgpQcm9jZXNzIGFuIGluY29taW5nIHdlYiBzZXJ2aWNlIHJlcXVlc3QuIFRoaXMgZnVuY3Rpb24gaGFzIHRvIHJlYWQgdGhlIHJlcXVlc3QgZGF0YQpmcm9tIGZyb20gdGhlIHdlYiBzZXJ2ZXIgcHJvY2Vzcy4KCkJhc2VkIG9uIHRoZSByZXF1ZXN0IHRoZSBPcGVyYXRpb24gdG8gYmUgdXNlZCBpcyBkZXRlcm1pbmVkLgoKTm8gb3V0LWJvdW5kIGNvbW11bmljYXRpb24gaXMgZG9uZSBoZXJlLCBleGNlcHQgZnJvbSBjb250aW51ZSByZXF1ZXN0cy4KCkluIGNhc2Ugb2YgYW4gZXJyb3IsIHRoZSByZXN1bHRpbmcgaHR0cCBlcnJvciBjb2RlIGFuZCBtZXNzYWdlIGFyZSByZW1lbWJlcmVkIGZvciB0aGUgcmVzcG9uc2UuCgogICAgbXkgJFJlc3VsdCA9ICRUcmFuc3BvcnRPYmplY3QtPlByb3ZpZGVyUHJvY2Vzc1JlcXVlc3QoKTsKCiAgICAkUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICMgMCBvciAxCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICcnLCAgICAgICAgICAgICAgICAgIyBpbiBjYXNlIG9mIGVycm9yCiAgICAgICAgT3BlcmF0aW9uICAgID0+ICdEZXNpcmVkT3BlcmF0aW9uJywgIyBuYW1lIG9mIHRoZSBvcGVyYXRpb24gdG8gcGVyZm9ybQogICAgICAgIERhdGEgICAgICAgICA9PiB7ICAgICAgICAgICAgICAgICAgICMgZGF0YSBwYXlsb2FkIG9mIHJlcXVlc3QKICAgICAgICAgICAgLi4uCiAgICAgICAgfSwKICAgIH07Cgo9Y3V0CgpzdWIgUHJvdmlkZXJQcm9jZXNzUmVxdWVzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgQ2hlY2sgdHJhbnNwb3J0IGNvbmZpZy4KICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e1RyYW5zcG9ydENvbmZpZ30gKSApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9FcnJvcigKICAgICAgICAgICAgU3VtbWFyeSAgID0+ICdSRVNUIFRyYW5zcG9ydDogSGF2ZSBubyBUcmFuc3BvcnRDb25maWcnLAogICAgICAgICAgICBIVFRQRXJyb3IgPT4gNTAwLAogICAgICAgICk7CiAgICB9CiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJFNlbGYtPntUcmFuc3BvcnRDb25maWd9LT57Q29uZmlnfSApICkgewogICAgICAgIHJldHVybiAkU2VsZi0+X0Vycm9yKAogICAgICAgICAgICBTdW1tYXJ5ICAgPT4gJ1Jlc3QgVHJhbnNwb3J0OiBIYXZlIG5vIENvbmZpZycsCiAgICAgICAgICAgIEhUVFBFcnJvciA9PiA1MDAsCiAgICAgICAgKTsKICAgIH0KICAgIG15ICRDb25maWcgPSAkU2VsZi0+e1RyYW5zcG9ydENvbmZpZ30tPntDb25maWd9OwogICAgJFNlbGYtPntLZWVwQWxpdmV9ID0gJENvbmZpZy0+e0tlZXBBbGl2ZX0gfHwgMDsKCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJENvbmZpZy0+e1JvdXRlT3BlcmF0aW9uTWFwcGluZ30gKSApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9FcnJvcigKICAgICAgICAgICAgU3VtbWFyeSAgID0+ICJIVFRQOjpSRVNUIENhbid0IGZpbmQgUm91dGVPcGVyYXRpb25NYXBwaW5nIGluIENvbmZpZyIsCiAgICAgICAgICAgIEhUVFBFcnJvciA9PiA1MDAsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIFRoZSBIVFRQOjpSRVNUIHN1cHBvcnQgd29ya3Mgd2l0aCBhIHJlcXVlc3Qgb2JqZWN0LgogICAgIyBKdXN0IGxpa2UgS2VybmVsOjpTeXN0ZW06OldlYjo6SW50ZXJmYWNlQWdlbnQuCiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgbXkgJEVuY29kZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpFbmNvZGUnKTsKCiAgICBteSAkUmVxdWVzdFVSSSA9ICRQYXJhbU9iamVjdC0+UmVxdWVzdFVSSTsKICAgICRSZXF1ZXN0VVJJID1+IHN7LipXZWJzZXJ2aWNlKD86SUQpP1wvW15cL10rKFwvLiopJH17JDF9eG1zOwoKICAgICMgUmVtb3ZlIGFueSBxdWVyeSBwYXJhbWV0ZXIgZnJvbSB0aGUgVVJMCiAgICAjICAgZS5nLiBmcm9tIC9UaWNrZXQvMS8yP1VzZXJMb2dpbj11c2VyJlBhc3N3b3JkPXNlY3JldAogICAgIyAgIHRvIC9UaWNrZXQvMS8yPy4KICAgIG15ICRRdWVyeVBhcmFtc1N0ciA9ICcnOwogICAgaWYgKCAkUmVxdWVzdFVSSSA9fiBzeyhbXj9dKykoLispP317JDF9ICkgewoKICAgICAgICAjIFJlbWVtYmVyIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIGUuZy4gP1VzZXJMb2dpbj11c2VyJlBhc3N3b3JkPXNlY3JldC4KICAgICAgICAjIEl0IGlzIGZpbmUgd2hlbiAkMiBpcyBub3QgZGVmaW5lZCwgdGhhdCBpcyB3aGVuIHRoZXJlIGlzIG5vICc/JyBpbiAkUmVxdWVzdFVSSQogICAgICAgICRRdWVyeVBhcmFtc1N0ciA9ICQyOwogICAgfQoKICAgIG15ICVRdWVyeVBhcmFtczsKCiMgUm90aGVyIE9TUyAvIE9BdXRoMgogICAgIyBBdXRoZW50aGVudGljYXRpb24gaGVhZGVyCiAgICBteSAkQXV0aGVudGljYXRpb25IZWFkZXIgPSAkUGFyYW1PYmplY3QtPkhlYWRlcignQXV0aG9yaXphdGlvbicpIC8vICcnOwogICAgJEF1dGhlbnRpY2F0aW9uSGVhZGVyID1+IHMvXlxzK3xccyskLy9nOyAjIHRyaW0gd2hpdGVzcGFjZQoKICAgIGlmICggJEF1dGhlbnRpY2F0aW9uSGVhZGVyICYmIGxjKCRBdXRoZW50aWNhdGlvbkhlYWRlcikgPX4gL15iZWFyZXIgLyApIHsKCiAgICAgICAgbXkgJFRva2VuID0gc3Vic3RyKCAkQXV0aGVudGljYXRpb25IZWFkZXIsIDcgKTsKICAgICAgICAkVG9rZW4gPX4gcy9eXHMrfFxzKyQvL2c7ICMgdHJpbSB3aGl0ZXNwYWNlCgogICAgICAgIG15ICRBdXRoZW50aWNhdG9yT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkF1dGhlbnRpY2F0b3InKTsKICAgICAgICBteSAkUmVzdWx0ICAgICAgICAgICAgICA9ICRBdXRoZW50aWNhdG9yT2JqZWN0LT5BdXRoZW50aWNhdGUoIFRva2VuID0+ICRUb2tlbiApOwoKICAgICAgICBpZiAoICRSZXN1bHQtPntTdWNjZXNzfSApIHsKCiAgICAgICAgICAgICMgcmVwb3J0IHN1Y2Nlc3MhCiAgICAgICAgICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5EZWJ1ZygKICAgICAgICAgICAgICAgIFN1bW1hcnkgPT4gJ0JlYXJlciBUb2tlbiBkZWNvZGVkOicsCiAgICAgICAgICAgICAgICBEYXRhICAgID0+ICRSZXN1bHQtPntUb2tlbkRhdGF9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBjcmVhdGUgbmV3IHNlc3Npb24gaWQKICAgICAgICAgICAgbXkgJE5ld1Nlc3Npb25JRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpLT5DcmVhdGVTZXNzaW9uSUQoCiAgICAgICAgICAgICAgICAkUmVzdWx0LT57VXNlckRhdGF9LT4lKiwKICAgICAgICAgICAgICAgIFVzZXJMYXN0UmVxdWVzdCA9PiAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKS0+VG9FcG9jaCgpLAogICAgICAgICAgICAgICAgVXNlclR5cGUgICAgICAgID0+ICdVc2VyJywKICAgICAgICAgICAgICAgIFNlc3Npb25Tb3VyY2UgICA9PiAnR2VuZXJpY0ludGVyZmFjZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkUXVlcnlQYXJhbXN7U2Vzc2lvbklEfSA9ICROZXdTZXNzaW9uSUQ7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyByZXBvcnQgZmFpbHVyZSEKICAgICAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkRlYnVnKAogICAgICAgICAgICAgICAgU3VtbWFyeSA9PiAnQXV0aG9yaXphdGlvbiBCZWFyZXIgVG9rZW4gcHJlc2VudCBidXQgaW52YWxpZCEnLAogICAgICAgICAgICAgICAgRGF0YSAgICA9PiAkVG9rZW4sCiAgICAgICAgICAgICk7CgogICAgICAgIH0KICAgIH0KIyBFTyBPQXV0aDIKCiAgICBpZiAoJFF1ZXJ5UGFyYW1zU3RyKSB7CgogICAgICAgICMgUmVtb3ZlIHF1ZXN0aW9uIG1hcmsgJz8nIGluIHRoZSBiZWdpbm5pbmcuCiAgICAgICAgc3Vic3RyICRRdWVyeVBhcmFtc1N0ciwgMCwgMSwgJyc7CgogICAgICAgICMgQ29udmVydCBxdWVyeSBwYXJhbWV0ZXJzIGludG8gYSBoYXNoCiAgICAgICAgIyAgIGUuZy4gZnJvbSBVc2VyTG9naW49dXNlciZQYXNzd29yZD1zZWNyZXQKICAgICAgICAjICAgdG8gKAogICAgICAgICMgICAgICAgIFVzZXJMb2dpbiA9PiAndXNlcicsCiAgICAgICAgIyAgICAgICAgUGFzc3dvcmQgID0+ICdzZWNyZXQnLAogICAgICAgICMgICAgICApOwogICAgICAgIGZvciBteSAkUXVlcnlQYXJhbSAoIHNwbGl0IC9bOyZdLywgJFF1ZXJ5UGFyYW1zU3RyICkgewogICAgICAgICAgICBteSAoICRLZXksICRWYWx1ZSApID0gc3BsaXQgLz0vLCAkUXVlcnlQYXJhbTsKCiAgICAgICAgICAgICMgQ29udmVydCArIGNoYXJhY3RlcnMgdG8gaXRzIGVuY29kZWQgcmVwcmVzZW50YXRpb24sIHNlZSBidWcjMTE5MTcuCiAgICAgICAgICAgICRWYWx1ZSA9fiBze1wrfXslMjB9ZzsKCiAgICAgICAgICAgICMgVW5lc2NhcGUgVVJJIHN0cmluZ3MgaW4gcXVlcnkgcGFyYW1ldGVycy4KICAgICAgICAgICAgJEtleSAgID0gdXJpX3VuZXNjYXBlKCRLZXkpOwogICAgICAgICAgICAkVmFsdWUgPSB1cmlfdW5lc2NhcGUoJFZhbHVlKTsKCiAgICAgICAgICAgICMgRW5jb2RlIHZhcmlhYmxlcy4KICAgICAgICAgICAgJEVuY29kZU9iamVjdC0+RW5jb2RlSW5wdXQoIFwkS2V5ICk7CiAgICAgICAgICAgICRFbmNvZGVPYmplY3QtPkVuY29kZUlucHV0KCBcJFZhbHVlICk7CgogICAgICAgICAgICBpZiAoICFkZWZpbmVkICRRdWVyeVBhcmFtc3skS2V5fSApIHsKICAgICAgICAgICAgICAgICRRdWVyeVBhcmFtc3skS2V5fSA9ICRWYWx1ZSB8fCAnJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBFbGVtZW50cyBzcGVjaWZpZWQgbXVsdGlwbGUgdGltZXMgd2lsbCBiZSBhZGRlZCBhcyBhcnJheSByZWZlcmVuY2UuCiAgICAgICAgICAgIGVsc2lmICggcmVmICRRdWVyeVBhcmFtc3skS2V5fSBlcSAnJyApIHsKICAgICAgICAgICAgICAgICRRdWVyeVBhcmFtc3skS2V5fSA9IFsgJFF1ZXJ5UGFyYW1zeyRLZXl9LCAkVmFsdWUgXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHB1c2ggQHsgJFF1ZXJ5UGFyYW1zeyRLZXl9IH0sICRWYWx1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBteSAkT3BlcmF0aW9uOwogICAgbXkgJVVSSURhdGE7CiAgICBteSAkUmVxdWVzdE1ldGhvZCA9ICRQYXJhbU9iamVjdC0+UmVxdWVzdE1ldGhvZCgpIHx8ICdHRVQnOwogICAgUk9VVEU6CiAgICBmb3IgbXkgJEN1cnJlbnRPcGVyYXRpb24gKCBzb3J0IGtleXMgJXsgJENvbmZpZy0+e1JvdXRlT3BlcmF0aW9uTWFwcGluZ30gfSApIHsKCiAgICAgICAgbmV4dCBST1VURSBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICRDb25maWctPntSb3V0ZU9wZXJhdGlvbk1hcHBpbmd9LT57JEN1cnJlbnRPcGVyYXRpb259ICk7CgogICAgICAgIG15ICVSb3V0ZU1hcHBpbmcgPSAleyAkQ29uZmlnLT57Um91dGVPcGVyYXRpb25NYXBwaW5nfS0+eyRDdXJyZW50T3BlcmF0aW9ufSB9OwoKICAgICAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJFJvdXRlTWFwcGluZ3tSZXF1ZXN0TWV0aG9kfSApICkgewogICAgICAgICAgICBuZXh0IFJPVVRFIGlmICFncmVwIHsgJFJlcXVlc3RNZXRob2QgZXEgJF8gfSBAeyAkUm91dGVNYXBwaW5ne1JlcXVlc3RNZXRob2R9IH07CiAgICAgICAgfQoKICAgICAgICAjIENvbnZlcnQgdGhlIGNvbmZpZ3VyZWQgcm91dGUgd2l0aCB0aGUgaGVscCBvZiBleHRlbmRlZCByZWdleHAgcGF0dGVybnMKICAgICAgICAjICAgdG8gYSByZWdleHAuIFRoaXMgZ2VuZXJhdGVkIHJlZ2V4cCBpcyB1c2VkIHRvOgogICAgICAgICMgICAxLikgRGV0ZXJtaW5lIHRoZSBPcGVyYXRpb24gZm9yIHRoZSByZXF1ZXN0CiAgICAgICAgIyAgIDIuKSBFeHRyYWN0IGFkZGl0aW9uYWwgcGFyYW1ldGVycyBmcm9tIHRoZSBSZXF1ZXN0VVJJCiAgICAgICAgIyAgIEZvciBmdXJ0aGVyIGluZm9ybWF0aW9uOiBodHRwOi8vcGVybGRvYy5wZXJsLm9yZy9wZXJscmUuaHRtbCNFeHRlbmRlZC1QYXR0ZXJucwogICAgICAgICMKICAgICAgICAjICAgRm9yIGV4YW1wbGUsIGZyb20gdGhlIFJlcXVlc3RVUkk6IC9UaWNrZXQvMS8yCiAgICAgICAgIyAgICAgICBhbmQgdGhlIHJvdXRlIHNldHRpbmc6ICAgICAgICAvVGlja2V0LzpUaWNrZXRJRC86T3RoZXIKICAgICAgICAjICAgICAgICVVUklEYXRhIHdpbGwgdGhlbiBjb250YWluOgogICAgICAgICMgICAgICAgKAogICAgICAgICMgICAgICAgICAgIFRpY2tldElEID0+IDEsCiAgICAgICAgIyAgICAgICAgICAgT3RoZXIgICAgPT4gMiwKICAgICAgICAjICAgICAgICk7CiAgICAgICAgbXkgJFJvdXRlUmVnRXggPSAkUm91dGVNYXBwaW5ne1JvdXRlfTsKICAgICAgICAkUm91dGVSZWdFeCA9fiBzezooW15cL10rKX17KD88JDE+W15cL10rKX14bXNnOwoKICAgICAgICBuZXh0IFJPVVRFIGlmICEoICRSZXF1ZXN0VVJJID1+IG17XiAkUm91dGVSZWdFeCAkfXhtcyApOwoKICAgICAgICAjIEltcG9ydCBVUkkgcGFyYW1zLgogICAgICAgIGZvciBteSAkVVJJS2V5ICggc29ydCBrZXlzICUrICkgewogICAgICAgICAgICBteSAkVVJJVmFsdWUgPSAkK3skVVJJS2V5fTsKCiAgICAgICAgICAgICMgVW5lc2NhcGUgdmFsdWUKICAgICAgICAgICAgJFVSSVZhbHVlID0gdXJpX3VuZXNjYXBlKCRVUklWYWx1ZSk7CgogICAgICAgICAgICAjIEVuY29kZSB2YWx1ZS4KICAgICAgICAgICAgJEVuY29kZU9iamVjdC0+RW5jb2RlSW5wdXQoIFwkVVJJVmFsdWUgKTsKCiAgICAgICAgICAgICMgQWRkIHRvIFVSSSBkYXRhLgogICAgICAgICAgICAkVVJJRGF0YXskVVJJS2V5fSA9ICRVUklWYWx1ZTsKICAgICAgICB9CgogICAgICAgICRPcGVyYXRpb24gPSAkQ3VycmVudE9wZXJhdGlvbjsKCiAgICAgICAgIyBMZWF2ZSB3aXRoIHRoZSBmaXJzdCBtYXRjaGluZyByZWdleHAuCiAgICAgICAgbGFzdCBST1VURTsKICAgIH0KCiAgICAjIENvbWJpbmUgcXVlcnkgcGFyYW1zIHdpdGggVVJJRGF0YSBwYXJhbXMsIFVSSURhdGEgaGFzIG1vcmUgcHJlY2VkZW5jZS4KICAgIGlmICglUXVlcnlQYXJhbXMpIHsKICAgICAgICAlVVJJRGF0YSA9ICggJVF1ZXJ5UGFyYW1zLCAlVVJJRGF0YSwgKTsKICAgIH0KCiAgICBpZiAoICEkT3BlcmF0aW9uICkgewogICAgICAgIHJldHVybiAkU2VsZi0+X0Vycm9yKAogICAgICAgICAgICBTdW1tYXJ5ICAgPT4gIkhUVFA6OlJFU1QgRXJyb3Igd2hpbGUgZGV0ZXJtaW5lIE9wZXJhdGlvbiBmb3IgcmVxdWVzdCBVUkkgJyRSZXF1ZXN0VVJJJy4iLAogICAgICAgICAgICBIVFRQRXJyb3IgPT4gNTAwLAogICAgICAgICk7CiAgICB9CgogICAgIyBUaGUgYm9keSBzdXBwbGllZCBieSBQT1NULCBQVVQsIGFuZCBQQVRDSCBoYXMgYWxyZWFkeSBiZWVuIHJlYWQgaW4uIFRoaXMgc2hvdWxkIGJlIHNhZmUKICAgICMgYXMgJENHSTo6UE9TVF9NQVggaGFzIGJlZW4gc2V0IGFzIGFuIGVtZXJnZW5jeSBicmFrZS4KICAgICMgRm9yIENoZWNraW5nIHRoZSBsZW5ndGggd2UgY2FuIHRoZXJlZm9yIHVzZSB0aGUgYWN0dWFsIGxlbmd0aC4KICAgIG15ICRDb250ZW50ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gdWMoJFJlcXVlc3RNZXRob2QpIC4gJ0RBVEEnICk7CiAgICBteSAkTGVuZ3RoICA9IGxlbmd0aCAkQ29udGVudDsKCiAgICAjIE5vIGxlbmd0aCBwcm92aWRlZCwgcmV0dXJuIHRoZSBpbmZvcm1hdGlvbiB3ZSBoYXZlLgogICAgIyBBbHNvIHJldHVybiBmb3IgJ0dFVCcgbWV0aG9kIGJlY2F1c2UgaXQgZG9lcyBub3QgYWxsb3cgc2VuZGluZyBhbiBlbnRpdHktYm9keSBpbiByZXF1ZXN0cy4KICAgICMgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwczovL2J1Z3Mub3Rycy5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjAzLgogICAgaWYgKCAhJExlbmd0aCB8fCAkUmVxdWVzdE1ldGhvZCBlcSAnR0VUJyApIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzICAgPT4gMSwKICAgICAgICAgICAgT3BlcmF0aW9uID0+ICRPcGVyYXRpb24sCiAgICAgICAgICAgIERhdGEgICAgICA9PiB7CiAgICAgICAgICAgICAgICAlVVJJRGF0YSwKICAgICAgICAgICAgICAgIFJlcXVlc3RNZXRob2QgPT4gJFJlcXVlc3RNZXRob2QsCiAgICAgICAgICAgIH0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIFJlcXVlc3QgYmlnZ2VyIHRoYW4gYWxsb3dlZC4KICAgIGlmICggSXNJbnRlZ2VyKCAkQ29uZmlnLT57TWF4TGVuZ3RofSApICYmICRMZW5ndGggPiAkQ29uZmlnLT57TWF4TGVuZ3RofSApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9FcnJvcigKICAgICAgICAgICAgU3VtbWFyeSAgID0+IHN0YXR1c19tZXNzYWdlKDQxMyksCiAgICAgICAgICAgIEhUVFBFcnJvciA9PiA0MTMsICAgICAgICAgICAgICAgICAgICMgSFRUUF9QQVlMT0FEX1RPT19MQVJHRQogICAgICAgICk7CiAgICB9CgogICAgIyBUaGVyZSBtaWdodCBiZSBhIGRpZmZlcmVudCByZXF1ZXN0IG1ldGhvZC4KICAgICMgTk9URTogdGhpcyBpcyByZWR1bmRhbnQgYW5kIGtlcHQgb25seSBmb3IgY29tcGF0YWJpbGl0eSB3aXRoIG9sZGVyIHZlcnNpb25zCiAgICBpZiAoICFJc1N0cmluZ1dpdGhEYXRhKCRDb250ZW50KSAmJiAkUmVxdWVzdE1ldGhvZCBuZSAnR0VUJyApIHsKICAgICAgICBteSAkUGFyYW1OYW1lID0gJFJlcXVlc3RNZXRob2QgLiAnREFUQSc7CiAgICAgICAgJENvbnRlbnQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKAogICAgICAgICAgICBQYXJhbSA9PiAkUGFyYW1OYW1lLAogICAgICAgICk7CiAgICB9CgogICAgIyBDaGVjayBpZiB3ZSBoYXZlIGNvbnRlbnQuCiAgICBpZiAoICFJc1N0cmluZ1dpdGhEYXRhKCRDb250ZW50KSApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9FcnJvcigKICAgICAgICAgICAgU3VtbWFyeSAgID0+ICdDb3VsZCBub3QgcmVhZCBpbnB1dCBkYXRhJywKICAgICAgICAgICAgSFRUUEVycm9yID0+IDUwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEhUVFBfSU5URVJOQUxfU0VSVkVSX0VSUk9SCiAgICAgICAgKTsKICAgIH0KCiAgICAjIENvbnZlcnQgY2hhcnNldCBpZiBuZWNlc3NhcnkuCiAgICB7CiAgICAgICAgbXkgJENvbnRlbnRUeXBlID0gJFBhcmFtT2JqZWN0LT5Db250ZW50VHlwZSgpOwogICAgICAgIG15ICgkQ29udGVudENoYXJzZXQpID0gJENvbnRlbnRUeXBlID1+IG17IFxBIC4qIGNoYXJzZXQ9IFsiJ10/ICggW14iJ10rICkgWyInXT8gXHogfXhtc2k7CiAgICAgICAgaWYgKCAkQ29udGVudENoYXJzZXQgJiYgJENvbnRlbnRDaGFyc2V0ICF+IG17IFxBIHV0ZiBbLV0/IDggXHogfXhtc2kgKSB7CiAgICAgICAgICAgICRDb250ZW50ID0gJEVuY29kZU9iamVjdC0+Q29udmVydDJDaGFyc2V0SW50ZXJuYWwoCiAgICAgICAgICAgICAgICBUZXh0ID0+ICRDb250ZW50LAogICAgICAgICAgICAgICAgRnJvbSA9PiAkQ29udGVudENoYXJzZXQsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAjIHRoaXMgc2V0cyB0aGUgVVRGLTggZmxhZwogICAgICAgICAgICAkRW5jb2RlT2JqZWN0LT5FbmNvZGVJbnB1dCggXCRDb250ZW50ICk7CiAgICAgICAgfQogICAgfQoKICAgICMgU2VuZCByZWNlaXZlZCBkYXRhIHRvIGRlYnVnZ2VyLgogICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkRlYnVnKAogICAgICAgIFN1bW1hcnkgPT4gJ1JlY2VpdmVkIGRhdGEgYnkgcHJvdmlkZXIgZnJvbSByZW1vdGUgc3lzdGVtJywKICAgICAgICBEYXRhICAgID0+ICRDb250ZW50LAogICAgKTsKCiAgICBteSAkQ29udGVudERlY29kZWQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SlNPTicpLT5EZWNvZGUoCiAgICAgICAgRGF0YSA9PiAkQ29udGVudCwKICAgICk7CgogICAgaWYgKCAhJENvbnRlbnREZWNvZGVkICkgewogICAgICAgIHJldHVybiAkU2VsZi0+X0Vycm9yKAogICAgICAgICAgICBTdW1tYXJ5ICAgPT4gJ0Vycm9yIHdoaWxlIGRlY29kaW5nIHJlcXVlc3QgY29udGVudC4nLAogICAgICAgICAgICBIVFRQRXJyb3IgPT4gNTAwLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFJldHVybkRhdGE7CiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRDb250ZW50RGVjb2RlZCkgKSB7CgogICAgICAgICRSZXR1cm5EYXRhID0gJENvbnRlbnREZWNvZGVkOwogICAgICAgIEB7JFJldHVybkRhdGF9eyBrZXlzICVVUklEYXRhIH0gPSB2YWx1ZXMgJVVSSURhdGE7CiAgICB9CiAgICBlbHNpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSgkQ29udGVudERlY29kZWQpICkgewoKICAgICAgICBFTEVNRU5UOgogICAgICAgIGZvciBteSAkQ3VycmVudEVsZW1lbnQgKCBAeyRDb250ZW50RGVjb2RlZH0gKSB7CgogICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRDdXJyZW50RWxlbWVudCkgKSB7CiAgICAgICAgICAgICAgICBAeyRDdXJyZW50RWxlbWVudH17IGtleXMgJVVSSURhdGEgfSA9IHZhbHVlcyAlVVJJRGF0YTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcHVzaCBAeyRSZXR1cm5EYXRhfSwgJEN1cnJlbnRFbGVtZW50OwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgIHJldHVybiAkU2VsZi0+X0Vycm9yKAogICAgICAgICAgICBTdW1tYXJ5ICAgPT4gJ1Vuc3VwcG9ydGVkIHJlcXVlc3QgY29udGVudCBzdHJ1Y3R1cmUuJywKICAgICAgICAgICAgSFRUUEVycm9yID0+IDUwMCwKICAgICAgICApOwogICAgfQoKICAgICMgQWxsIE9LIC0gcmV0dXJuIGRhdGEKICAgIHJldHVybiB7CiAgICAgICAgU3VjY2VzcyAgID0+IDEsCiAgICAgICAgT3BlcmF0aW9uID0+ICRPcGVyYXRpb24sCiAgICAgICAgRGF0YSAgICAgID0+ICRSZXR1cm5EYXRhLAogICAgfTsKfQoKPWhlYWQyIFByb3ZpZGVyR2VuZXJhdGVSZXNwb25zZSgpCgpHZW5lcmF0ZXMgcmVzcG9uc2UgZm9yIGFuIGluY29taW5nIHdlYiBzZXJ2aWNlIHJlcXVlc3QuCgpUaHJvd3MgYSBMPEtlcm5lbDo6U3lzdGVtOjpXZWI6OkV4Y2VwdGlvbj4gd2hpY2ggY29udGFpbnMgYSBQbGFjayByZXNwb25zZSBvYmplY3QuCgpUaGUgSFRUUCBjb2RlIG9mIHRoZSByZXNwb25zZSBvYmplY3QgaXMgc2V0IGFjY29yZGluZ2x5Ci0gQzwyMDA+IGZvciAoc3ludGFjdGljYWxseSkgY29ycmVjdCBtZXNzYWdlcwotIEM8NHh4PiBmb3IgaHR0cCBlcnJvcnMKLSBDPDUwMD4gZm9yIGNvbnRlbnQgc3ludGF4IGVycm9ycwoKICAgICRUcmFuc3BvcnRPYmplY3QtPlByb3ZpZGVyR2VuZXJhdGVSZXNwb25zZSgKICAgICAgICBTdWNjZXNzID0+IDEKICAgICAgICBPcGVyYXRpb24gPT4gJ1RpY2tldFVwZGF0ZScsICMgbmVlZGVkIGZvciBkZXRlcm1pbmluZyBvdXRib3VuZCBoZWFkZXJzCiAgICAgICAgRGF0YSAgICAgID0+IHsgIyBkYXRhIHBheWxvYWQgZm9yIHJlc3BvbnNlLCBvcHRpb25hbAogICAgICAgICAgICAuLi4KICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBQcm92aWRlckdlbmVyYXRlUmVzcG9uc2UgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIERvIHdlIGhhdmUgYSBodHRwIGVycm9yIG1lc3NhZ2UgdG8gcmV0dXJuLgogICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkU2VsZi0+e0hUVFBFcnJvcn0gKSAmJiBJc1N0cmluZ1dpdGhEYXRhKCAkU2VsZi0+e0hUVFBNZXNzYWdlfSApICkgewogICAgICAgICRTZWxmLT5fVGhyb3dXZWJFeGNlcHRpb24oCiAgICAgICAgICAgIEhUVFBDb2RlID0+ICRTZWxmLT57SFRUUEVycm9yfSwKICAgICAgICAgICAgQ29udGVudCAgPT4gJFNlbGYtPntIVFRQTWVzc2FnZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIENoZWNrIGRhdGEgcGFyYW0uCiAgICBpZiAoIGRlZmluZWQgJFBhcmFte0RhdGF9ICYmIHJlZiAkUGFyYW17RGF0YX0gbmUgJ0hBU0gnICYmIHJlZiAkUGFyYW17RGF0YX0gbmUgJ0FSUkFZJyApIHsKICAgICAgICAkU2VsZi0+X1Rocm93V2ViRXhjZXB0aW9uKAogICAgICAgICAgICBIVFRQQ29kZSA9PiA1MDAsCiAgICAgICAgICAgIENvbnRlbnQgID0+ICdJbnZhbGlkIGRhdGEnLAogICAgICAgICk7CiAgICB9CgogICAgIyBDaGVjayBzdWNjZXNzIHBhcmFtLgogICAgbXkgJEhUVFBDb2RlID0gMjAwOwogICAgaWYgKCAhJFBhcmFte1N1Y2Nlc3N9ICkgewoKICAgICAgICAjIENyZWF0ZSBGYXVsdCBzdHJ1Y3R1cmUuCiAgICAgICAgbXkgJEZhdWx0U3RyaW5nID0gJFBhcmFte0Vycm9yTWVzc2FnZX0gfHwgJ1Vua25vd24nOwogICAgICAgICRQYXJhbXtEYXRhfSA9IHsKICAgICAgICAgICAgZmF1bHRjb2RlICAgPT4gJ1NlcnZlcicsCiAgICAgICAgICAgIGZhdWx0c3RyaW5nID0+ICRGYXVsdFN0cmluZywKICAgICAgICB9OwoKICAgICAgICAjIE92ZXJyaWRlIEhUVFBDb2RlIHRvIDUwMC4KICAgICAgICAkSFRUUENvZGUgPSA1MDA7CiAgICB9CgogICAgIyBQcmVwYXJlIGRhdGEuCiAgICBteSAkSlNPTlN0cmluZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpKU09OJyktPkVuY29kZSgKICAgICAgICBEYXRhID0+ICRQYXJhbXtEYXRhfSwKICAgICk7CgogICAgaWYgKCAhJEpTT05TdHJpbmcgKSB7CiAgICAgICAgJFNlbGYtPl9UaHJvd1dlYkV4Y2VwdGlvbigKICAgICAgICAgICAgSFRUUENvZGUgPT4gNTAwLAogICAgICAgICAgICBDb250ZW50ICA9PiAnRXJyb3Igd2hpbGUgZW5jb2RpbmcgcmV0dXJuIEpTT04gc3RydWN0dXJlLicsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGFkZGVkIGZvciBPVE9CT1RpY2tldEludm9rZXIKICAgICMgR2F0aGVyIGFkZGl0aW9uYWwgaGVhZGVycy4KICAgIG15ICVSZXNwb25zZUhlYWRlcnMgPSAkU2VsZi0+X0hlYWRlcnNHZXQoCiAgICAgICAgVHlwZSAgICAgID0+ICdPcGVyYXRpb24nLAogICAgICAgIE9wZXJhdGlvbiA9PiAkUGFyYW17T3BlcmF0aW9ufSwKICAgICk7CgogICAgIyBNaXJyb3Igc29tZSBIVFRQIGhlYWRlcnMgd2hlbiB0aGUgcmVxdWVzdCBjb21lcyBmcm9tIGEgdGVzdCBzY3JpcHQKICAgICMgdGhhdCBoYXMgdGVtcG9yYXJpbHkgc2V0IEdlbmVyaWNJbnRlcmZhY2U6OlRyYW5zcG9ydDo6VW5pdFRlc3RIZWFkZXJzLgogICAgIyBUaGlzIGZlYXR1cmUgYWxsb3dzIHRvIGNoZWNrIG91dGdvaW5nIEhUVFAgaGVhZGVycyBvZiB0aGUgZ2VuZXJpYyBpbnRlcmZhY2UuCiAgICAjIEl0IHdhcyBpbnRyb2R1Y2VkIGJ5IE9UT0JPVGlja2V0SW52b2tlci4KICAgIGlmICggJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdHZW5lcmljSW50ZXJmYWNlOjpUcmFuc3BvcnQ6Ok1pcnJvclVuaXRUZXN0SFRUUEhlYWRlcnMnKSApIHsKCiAgICAgICAgIyBUaGUgSFRUUDo6UkVTVCBzdXBwb3J0IHdvcmtzIHdpdGggYSByZXF1ZXN0IG9iamVjdC4KICAgICAgICAjIEp1c3QgbGlrZSBLZXJuZWw6OlN5c3RlbTo6V2ViOjpJbnRlcmZhY2VBZ2VudC4KICAgICAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgICAgICMgVGhlIEhUVFA6OkhlYWRlcnM6OkZhc3QgYWxzbyBpbmNsdWRlcyBDb250ZW50LVR5cGUgYW5kIENvbnRlbnQtTGVuZ3RoLAogICAgICAgICMgd2hpY2ggc2hvdWxkIG5vdCBiZSBtaXJyb3JlZC4KICAgICAgICBteSAlUmVxdWVzdEhlYWRlcnM7CiAgICAgICAgRklFTERfTkFNRToKICAgICAgICBmb3IgbXkgJEZpZWxkTmFtZSAoIHNvcnQgJFBhcmFtT2JqZWN0LT5IZWFkZXJzLT5oZWFkZXJfZmllbGRfbmFtZXMgKSB7CiAgICAgICAgICAgIG5leHQgRklFTERfTkFNRSBpZiAkRmllbGROYW1lIGVxICdDb250ZW50LVR5cGUnOwogICAgICAgICAgICBuZXh0IEZJRUxEX05BTUUgaWYgJEZpZWxkTmFtZSBlcSAnQ29udGVudC1MZW5ndGgnOwoKICAgICAgICAgICAgIyBub3JtYWxpemUgdG8gdXBwZXJjYXNlIHNlcGFyYXRlZCBieSAnLScsIGUuZy4gRlVOTlktRklFTEQKICAgICAgICAgICAgbXkgJEhlYWRlcktleSA9IHVjICRGaWVsZE5hbWU7CiAgICAgICAgICAgICRIZWFkZXJLZXkgPX4gc3tffXstfXhtc2c7CiAgICAgICAgICAgICRSZXF1ZXN0SGVhZGVyc3skSGVhZGVyS2V5fSA9ICRQYXJhbU9iamVjdC0+SGVhZGVyKCRGaWVsZE5hbWUpOwogICAgICAgIH0KCiAgICAgICAgIyBJZiB3ZSBhcmUgaW4gVW5pdFRlc3QgaGVhZGVyIGNoZWNrIG1vZGUsIG1pcnJvciBhbGwgcmVxdWVzdCBoZWFkZXJzIGluIHJlc3BvbnNlLgogICAgICAgICMgVGhlIGJsYWNrbGlzdCBpcyBub3QgY29uc2lkZXJlZCBoZXJlLCBhcyB3ZSB3YW50IHRvIHZlcmlmeSB0aGF0IHRoZSBibGFja2xpc3RlZCBoZWFkZXJzCiAgICAgICAgIyB3ZXJlIG5vdCBzZW50IGluIHRoZSBmaXJzdCBwbGFjZS4KICAgICAgICBpZiAoIG15ICRNaXJyb3JIZWFkZXJQcmVmaXggPSBkZWxldGUgJFJlcXVlc3RIZWFkZXJze1VOSVRURVNUSEVBREVSU30gKSB7CgogICAgICAgICAgICAjIEF0dGVudGlvbjogQ0dJOjpQU0dJIGFuZCBDR0kgdXNlIGFsbC11cHBlcmNhc2UgbmFtZXMgZm9yIGhlYWRlcnMuCiAgICAgICAgICAgICMgQXR0ZW50aW9uOiBub3Qgc3VyZSB3aGV0ZXIgVW50ZXN0SGVhZGVyQmxhY2tMaXN0IGlzIHNldCBpbiBhbnkgdGVzdCBzY3JpcHQKICAgICAgICAgICAgbXkgJUlzQmxhY2tsaXN0ZWQ7CiAgICAgICAgICAgIGlmICggZGVmaW5lZCAkUmVxdWVzdEhlYWRlcnN7VU5JVFRFU1RIRUFERVJCTEFDS0xJU1R9ICkgewogICAgICAgICAgICAgICAgJUlzQmxhY2tsaXN0ZWQgPSBtYXAgeyB1YygkXykgPT4gMSB9IHNwbGl0IC86LywgZGVsZXRlICRSZXF1ZXN0SGVhZGVyc3tVTklUVEVTVEhFQURFUkJMQUNLTElTVH07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIEhFQURFUjoKICAgICAgICAgICAgZm9yIG15ICRIZWFkZXIgKCBzb3J0IGtleXMgJVJlcXVlc3RIZWFkZXJzICkgewoKICAgICAgICAgICAgICAgIG5leHQgSEVBREVSIGlmICRJc0JsYWNrbGlzdGVkeyRIZWFkZXJ9OwoKICAgICAgICAgICAgICAgICMgdGhlIG1pcnJvcmVkIGhlYWRlciBhcmUgbWFya2VkIHdpdGggYSByYW5kb20gcHJlZml4CiAgICAgICAgICAgICAgICAkUmVzcG9uc2VIZWFkZXJzeyAkTWlycm9ySGVhZGVyUHJlZml4IC4gJEhlYWRlciB9ID0gJFJlcXVlc3RIZWFkZXJzeyRIZWFkZXJ9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgTm8gZXJyb3IsIHN0aWxsIHRocm93IGFuIGV4Y2VwdGlvbgogICAgJFNlbGYtPl9UaHJvd1dlYkV4Y2VwdGlvbigKICAgICAgICBIVFRQQ29kZSA9PiAkSFRUUENvZGUsCiAgICAgICAgQ29udGVudCAgPT4gJEpTT05TdHJpbmcsCiAgICAgICAgSGVhZGVycyAgPT4gXCVSZXNwb25zZUhlYWRlcnMsICAgICMgYWRkZWQgYnkgT1RPQk9UaWNrZXRJbnZva2VyCiAgICApOwoKICAgIHJldHVybjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhY3R1YWxseSBub3QgcmVhY2hlZAp9Cgo9aGVhZDIgUmVxdWVzdGVyUGVyZm9ybVJlcXVlc3QoKQoKRW1pdCBhbiBvdXRnb2luZyB3ZWIgc2VydmljZSByZXF1ZXN0IGFuZCByZWNlaXZlIHRoZSByZXNwb25zZS4gVGhlIHN1cHBsaWVkIGRhdGEgaXMgZWl0aGVyIHNlbnQKYXMgSlNPTiBpbiB0aGUgYm9keSBvciBpcyBhZGRlZCB0byB0aGUgcmVxdWVzdGVkIFVSTCBhcyBhIGxpc3Qgb2YgcGFyYW1ldGVycy4KSW5zcGVjdCB0aGUgcmVzcG9uc2UgYW5kIHJlcG9ydCB0aGUgcmVzdWx0IGFzIG5vdCBzdWNjZXNzZnVsIHdoZW4gdGhlcmUgYXJlIHByb2JsZW1zLgpSZXR1cm4gdGhlIHJlY2VpdmVkIGRhdGEgb3RoZXJ3aXNlLgoKICAgIG15ICRSZXN1bHQgPSAkVHJhbnNwb3J0T2JqZWN0LT5SZXF1ZXN0ZXJQZXJmb3JtUmVxdWVzdCgKICAgICAgICBPcGVyYXRpb24gPT4gJ3JlbW90ZV9vcCcsICMgbmFtZSBvZiByZW1vdGUgb3BlcmF0aW9uIHRvIHBlcmZvcm0KICAgICAgICBEYXRhICAgICAgPT4geyAgICAgICAgICAgICMgZGF0YSBwYXlsb2FkIGZvciByZXF1ZXN0CiAgICAgICAgICAgIC4uLgogICAgICAgIH0sCiAgICApOwoKaW4gY2FzZSBvZiBzdWNjZXNzOgoKICAgICRSZXN1bHQgPSB7CiAgICAgICAgU3VjY2VzcyAgICAgICA9PiAxLAogICAgICAgIFNpemVFeGNlZWRlZCAgPT4gMCwgICMgZWl0aGVyIDAgb3IgMSBkZXBlbmRpbmcgb24gdGhlIGxlbmd0aCBvZiB0aGUgcmVzcG9uc2UKICAgICAgICBEYXRhICAgICAgICAgID0+IHsKICAgICAgICAgICAgLi4uCiAgICAgICAgfSwKICAgIH07CgppbiBjYXNlIG9mIGZhaWx1cmU6CgogICAgJFJlc3VsdCA9IHsKICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJ3NvbWUgbWVzc2FnZScsCiAgICB9OwoKPWN1dAoKc3ViIFJlcXVlc3RlclBlcmZvcm1SZXF1ZXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBDaGVjayB0cmFuc3BvcnQgY29uZmlnLgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoICRTZWxmLT57VHJhbnNwb3J0Q29uZmlnfSApICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJ1JFU1QgVHJhbnNwb3J0OiBIYXZlIG5vIFRyYW5zcG9ydENvbmZpZycsCiAgICAgICAgfTsKICAgIH0KCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJFNlbGYtPntUcmFuc3BvcnRDb25maWd9LT57Q29uZmlnfSApICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJ1JFU1QgVHJhbnNwb3J0OiBIYXZlIG5vIENvbmZpZycsCiAgICAgICAgfTsKICAgIH0KICAgIG15ICRDb25maWcgPSAkU2VsZi0+e1RyYW5zcG9ydENvbmZpZ30tPntDb25maWd9OwoKICAgICMgQ2hlY2sgcmVxdWlyZWQgY29uZmlnLgogICAgTkVFREVEOgogICAgZm9yIG15ICROZWVkZWQgKHF3KEhvc3QgRGVmYXVsdENvbW1hbmQgVGltZW91dCkpIHsKICAgICAgICBuZXh0IE5FRURFRCBpZiBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57JE5lZWRlZH0gKTsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiUkVTVCBUcmFuc3BvcnQ6IEhhdmUgbm8gJE5lZWRlZCBpbiBjb25maWciLAogICAgICAgIH07CiAgICB9CgogICAgIyBDaGVjayBkYXRhIHBhcmFtLgogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtEYXRhfSAmJiByZWYgJFBhcmFte0RhdGF9IG5lICdIQVNIJyAmJiByZWYgJFBhcmFte0RhdGF9IG5lICdBUlJBWScgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAnUkVTVCBUcmFuc3BvcnQ6IEludmFsaWQgRGF0YScsCiAgICAgICAgfTsKICAgIH0KCiAgICAjIENoZWNrIG9wZXJhdGlvbiBwYXJhbS4KICAgIGlmICggIUlzU3RyaW5nV2l0aERhdGEoICRQYXJhbXtPcGVyYXRpb259ICkgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAnUkVTVCBUcmFuc3BvcnQ6IE5lZWQgT3BlcmF0aW9uJywKICAgICAgICB9OwogICAgfQoKICAgICMgQ3JlYXRlIGhlYWRlciBjb250YWluZXIgYW5kIGFkZCBwcm9wZXIgY29udGVudCB0eXBlLgogICAgIyBUaGVzZSBoZWFkZXJzIHdpbGwgYmUgdXNlZCBmb3IgY2FsbGluZyB0aGUgcmVtb3RlIHNlcnZlci4KICAgIG15ICVIZWFkZXJzID0gKCAnQ29udGVudC1UeXBlJyA9PiAnYXBwbGljYXRpb24vanNvbicgKTsKCiAgICAjIEFkZCBBZGRpdGlvbmFsSGVhZGVycywgYnV0IGRvIG5vdCBvdmVyd3JpdGUgZXhpc3RpbmcgaGVhZGVycwogICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFNlbGYtPntUcmFuc3BvcnRDb25maWd9LT57Q29uZmlnfS0+e0FkZGl0aW9uYWxIZWFkZXJzfSApICkgewogICAgICAgIG15ICVBZGRpdGlvbmFsSGVhZGVycyA9ICRTZWxmLT57VHJhbnNwb3J0Q29uZmlnfS0+e0NvbmZpZ30tPntBZGRpdGlvbmFsSGVhZGVyc30tPiUqOwogICAgICAgIGZvciBteSAkQWRkaXRpb25hbEhlYWRlciAoIHNvcnQga2V5cyAlQWRkaXRpb25hbEhlYWRlcnMgKSB7CiAgICAgICAgICAgIGlmICggIUlzU3RyaW5nV2l0aERhdGEoICRIZWFkZXJzeyRBZGRpdGlvbmFsSGVhZGVyfSApICkgewogICAgICAgICAgICAgICAgJEhlYWRlcnN7JEFkZGl0aW9uYWxIZWFkZXJ9ID0gJEFkZGl0aW9uYWxIZWFkZXJzeyRBZGRpdGlvbmFsSGVhZGVyfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCB1cCBhIFJFU1Qgc2Vzc2lvbgogICAgbXkgJFJlc3RDbGllbnQgPSBSRVNUOjpDbGllbnQtPm5ldygKICAgICAgICB7CiAgICAgICAgICAgIGhvc3QgICAgPT4gJENvbmZpZy0+e0hvc3R9LAogICAgICAgICAgICB0aW1lb3V0ID0+ICRDb25maWctPntUaW1lb3V0fSwKICAgICAgICB9CiAgICApOwoKICAgIGlmICggISRSZXN0Q2xpZW50ICkgewoKICAgICAgICBteSAkRXJyb3JNZXNzYWdlID0gIkVycm9yIHdoaWxlIGNyZWF0aW5nIFJFU1QgY2xpZW50IGZyb20gJ1JFU1Q6OkNsaWVudCcuIjsKCiAgICAgICAgIyBMb2cgdG8gZGVidWdnZXIuCiAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkVycm9yKAogICAgICAgICAgICBTdW1tYXJ5ID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgIH07CiAgICB9CgogICAgIyBBZGQgU1NMIG9wdGlvbnMgaWYgY29uZmlndXJlZC4KICAgIGlmICgKICAgICAgICBJc0hhc2hSZWZXaXRoRGF0YSggJENvbmZpZy0+e1NTTH0gKQogICAgICAgICYmIElzU3RyaW5nV2l0aERhdGEoICRDb25maWctPntTU0x9LT57VXNlU1NMfSApCiAgICAgICAgJiYgJENvbmZpZy0+e1NTTH0tPntVc2VTU0x9IGVxICdZZXMnCiAgICAgICAgKQogICAgewogICAgICAgIG15ICVTU0xPcHRpb25zTWFwID0gKAogICAgICAgICAgICBTU0xDZXJ0aWZpY2F0ZSA9PiAnU1NMX2NlcnRfZmlsZScsCiAgICAgICAgICAgIFNTTEtleSAgICAgICAgID0+ICdTU0xfa2V5X2ZpbGUnLAogICAgICAgICAgICBTU0xQYXNzd29yZCAgICA9PiAnU1NMX3Bhc3N3ZF9jYicsCiAgICAgICAgICAgIFNTTENBRmlsZSAgICAgID0+ICdTU0xfY2FfZmlsZScsCiAgICAgICAgICAgIFNTTENBRGlyICAgICAgID0+ICdTU0xfY2FfcGF0aCcsCiAgICAgICAgKTsKICAgICAgICBTU0xPUFRJT046CiAgICAgICAgZm9yIG15ICRTU0xPcHRpb24gKCBzb3J0IGtleXMgJVNTTE9wdGlvbnNNYXAgKSB7CiAgICAgICAgICAgIG5leHQgU1NMT1BUSU9OIGlmICFJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57U1NMfS0+eyRTU0xPcHRpb259ICk7CgogICAgICAgICAgICBpZiAoICRTU0xPcHRpb24gbmUgJ1NTTFBhc3N3b3JkJyApIHsKICAgICAgICAgICAgICAgICRSZXN0Q2xpZW50LT5nZXRVc2VyYWdlbnQoKS0+c3NsX29wdHMoCiAgICAgICAgICAgICAgICAgICAgJFNTTE9wdGlvbnNNYXB7JFNTTE9wdGlvbn0gPT4gJENvbmZpZy0+e1NTTH0tPnskU1NMT3B0aW9ufSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBuZXh0IFNTTE9QVElPTjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBQYXNzd29yZHMgbmVlZHMgYSBzcGVjaWFsIHRyZWF0bWVudC4KICAgICAgICAgICAgJFJlc3RDbGllbnQtPmdldFVzZXJhZ2VudCgpLT5zc2xfb3B0cygKICAgICAgICAgICAgICAgICRTU0xPcHRpb25zTWFweyRTU0xPcHRpb259ID0+IHN1YiB7ICRDb25maWctPntTU0x9LT57JFNTTE9wdGlvbn0gfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2tpcCBob3N0bmFtZSB2ZXJpZmljYXRpb24KICAgICAgICBpZiAoCiAgICAgICAgICAgIElzU3RyaW5nV2l0aERhdGEoICRDb25maWctPntTU0x9e1NTTFZlcmlmeUhvc3RuYW1lfSApCiAgICAgICAgICAgICYmICRDb25maWctPntTU0x9e1NTTFZlcmlmeUhvc3RuYW1lfSBlcSAnTm8nCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRSZXN0Q2xpZW50LT5nZXRVc2VyYWdlbnQoKS0+c3NsX29wdHMoIHZlcmlmeV9ob3N0bmFtZSA9PiAwICk7CiAgICAgICAgfQoKICAgICAgICAjIHNraXAgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uCiAgICAgICAgaWYgKAogICAgICAgICAgICBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57U1NMfXtTU0xWZXJpZnlNb2RlfSApCiAgICAgICAgICAgICYmICRDb25maWctPntTU0x9e1NTTFZlcmlmeU1vZGV9IGVxICdObycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFJlc3RDbGllbnQtPmdldFVzZXJhZ2VudCgpLT5zc2xfb3B0cyggU1NMX3ZlcmlmeV9tb2RlID0+IDAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBBZGQgcHJveHkgb3B0aW9ucyBpZiBjb25maWd1cmVkLgogICAgaWYgKAogICAgICAgIElzSGFzaFJlZldpdGhEYXRhKCAkQ29uZmlnLT57UHJveHl9ICkKICAgICAgICAmJiBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57UHJveHl9LT57VXNlUHJveHl9ICkKICAgICAgICAmJiAkQ29uZmlnLT57UHJveHl9LT57VXNlUHJveHl9IGVxICdZZXMnCiAgICAgICAgKQogICAgewoKICAgICAgICAjIEV4cGxpY2l0bHkgdXNlIG5vIHByb3h5IChldmVuIGlmIGNvbmZpZ3VyZWQgc3lzdGVtIHdpZGUpLgogICAgICAgIGlmICgKICAgICAgICAgICAgSXNTdHJpbmdXaXRoRGF0YSggJENvbmZpZy0+e1Byb3h5fS0+e1Byb3h5RXhjbHVkZX0gKQogICAgICAgICAgICAmJiAkQ29uZmlnLT57UHJveHl9LT57UHJveHlFeGNsdWRlfSBlcSAnWWVzJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUmVzdENsaWVudC0+Z2V0VXNlcmFnZW50KCktPm5vX3Byb3h5KCk7CiAgICAgICAgfQoKICAgICAgICAjIFVzZSBwcm94eS4KICAgICAgICBlbHNpZiAoIElzU3RyaW5nV2l0aERhdGEoICRDb25maWctPntQcm94eX0tPntQcm94eUhvc3R9ICkgKSB7CgogICAgICAgICAgICAjIFNldCBob3N0LgogICAgICAgICAgICAkUmVzdENsaWVudC0+Z2V0VXNlcmFnZW50KCktPnByb3h5KAogICAgICAgICAgICAgICAgWyAnaHR0cCcsICdodHRwcycsIF0sCiAgICAgICAgICAgICAgICAkQ29uZmlnLT57UHJveHl9LT57UHJveHlIb3N0fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgQWRkIHByb3h5IGF1dGhlbnRpY2F0aW9uLgogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57UHJveHl9LT57UHJveHlVc2VyfSApCiAgICAgICAgICAgICAgICAmJiBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57UHJveHl9LT57UHJveHlQYXNzd29yZH0gKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkSGVhZGVyc3snUHJveHktQXV0aG9yaXphdGlvbid9ID0gJ0Jhc2ljICcgLiBlbmNvZGVfYmFzZTY0KAogICAgICAgICAgICAgICAgICAgICRDb25maWctPntQcm94eX0tPntQcm94eVVzZXJ9IC4gJzonIC4gJENvbmZpZy0+e1Byb3h5fS0+e1Byb3h5UGFzc3dvcmR9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgQWRkIGF1dGhlbnRpY2F0aW9uIG9wdGlvbnMgaWYgY29uZmlndXJlZC4KICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRDb25maWctPntBdXRoZW50aWNhdGlvbn0gKSAmJiBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57QXV0aFR5cGV9ICkgKSB7CgogICAgICAgICMgYmFzaWMgYXV0aAogICAgICAgIGlmICgKICAgICAgICAgICAgJENvbmZpZy0+e0F1dGhlbnRpY2F0aW9ufS0+e0F1dGhUeXBlfSBlcSAnQmFzaWNBdXRoJwogICAgICAgICAgICAmJiBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57QmFzaWNBdXRoVXNlcn0gKQogICAgICAgICAgICAmJiBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57QmFzaWNBdXRoUGFzc3dvcmR9ICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJEhlYWRlcnN7QXV0aG9yaXphdGlvbn0gPSAnQmFzaWMgJyAuIGVuY29kZV9iYXNlNjQoCiAgICAgICAgICAgICAgICAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57QmFzaWNBdXRoVXNlcn0gLiAnOicgLiAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57QmFzaWNBdXRoUGFzc3dvcmR9CiAgICAgICAgICAgICk7CiAgICAgICAgfQoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiAgICAgICAgIyBvYXV0aAogICAgICAgIGVsc2lmICgKICAgICAgICAgICAgJENvbmZpZy0+e0F1dGhlbnRpY2F0aW9ufS0+e0F1dGhUeXBlfSBlcSAnT0F1dGgnCiAgICAgICAgICAgICYmIElzU3RyaW5nV2l0aERhdGEoICRDb25maWctPntBdXRoZW50aWNhdGlvbn0tPntPQXV0aEFjY291bnROYW1lfSApCiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICBteSAkQWNjb3VudE5hbWUgPSAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57T0F1dGhBY2NvdW50TmFtZX07CgogICAgICAgICAgICBteSAkVG9rZW5SZXN1bHQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5Qcm92aWRlcicpLT5GZXRjaCgKICAgICAgICAgICAgICAgIEFjY291bnROYW1lID0+ICRBY2NvdW50TmFtZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICggISRUb2tlblJlc3VsdC0+e1N1Y2Nlc3N9ICkgewoKICAgICAgICAgICAgICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5EZWJ1ZygKICAgICAgICAgICAgICAgICAgICBTdW1tYXJ5ID0+IFRyYW5zbGF0YWJsZSgiRXJyb3IgZmV0Y2hpbmcgdGhlIE9BdXRoMiBUb2tlbiIpLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgPT4gJFRva2VuUmVzdWx0LT57RXJyb3J9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkVG9rZW5SZXN1bHQtPntFcnJvcn0sCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkVG9rZW4gPSAkVG9rZW5SZXN1bHQtPntUb2tlbn07CgogICAgICAgICAgICAkU2VsZi0+e0RlYnVnZ2VyT2JqZWN0fS0+RGVidWcoCiAgICAgICAgICAgICAgICBTdW1tYXJ5ID0+IFRyYW5zbGF0YWJsZSgiQXR0YWNoZWQgT0F1dGgyIEJlYXJlciBUb2tlbiIpLAogICAgICAgICAgICAgICAgRGF0YSAgICA9PiAkVG9rZW4sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkSGVhZGVyc3tBdXRob3JpemF0aW9ufSA9ICJCZWFyZXIgJFRva2VuIjsKICAgICAgICB9CiMgRU8gT0F1dGgyCgogICAgICAgICMga2VyYmVyb3MKICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICRDb25maWctPntBdXRoZW50aWNhdGlvbn0tPntBdXRoVHlwZX0gZXEgJ0tlcmJlcm9zJwogICAgICAgICAgICAmJiBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57S2VyYmVyb3NVc2VyfSApCiAgICAgICAgICAgICYmIElzU3RyaW5nV2l0aERhdGEoICRDb25maWctPntBdXRoZW50aWNhdGlvbn0tPntLZXJiZXJvc0tleXRhYn0gKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBpZiAoICEtZSAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57S2VyYmVyb3NLZXl0YWJ9ICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkVycm9yKAogICAgICAgICAgICAgICAgICAgIFN1bW1hcnkgPT4gIickQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57S2VyYmVyb3NLZXl0YWJ9JyBkb2VzIG5vdCBleGlzdC4iLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiJyRDb25maWctPntBdXRoZW50aWNhdGlvbn0tPntLZXJiZXJvc0tleXRhYn0nIGRvZXMgbm90IGV4aXN0LiIsCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJENvbmZpZy0+e0F1dGhlbnRpY2F0aW9ufS0+e0tlcmJlcm9zVXNlcn0gPX4gL1teXHdcZFwtXC5fQF0vICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkVycm9yKAogICAgICAgICAgICAgICAgICAgIFN1bW1hcnkgPT4gIkludmFsaWQgdXNlciBmb3JtYXQgJyRDb25maWctPntBdXRoZW50aWNhdGlvbn0tPntLZXJiZXJvc1VzZXJ9Jy4iLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiSW52YWxpZCB1c2VyIGZvcm1hdCAnJENvbmZpZy0+e0F1dGhlbnRpY2F0aW9ufS0+e0tlcmJlcm9zVXNlcn0nLiIsCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkS2luaXRTdHJpbmcgPSAna2luaXQgLWsgLXQgJyAuICRDb25maWctPntBdXRoZW50aWNhdGlvbn0tPntLZXJiZXJvc0tleXRhYn0gLiAnICcgLiAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57S2VyYmVyb3NVc2VyfTsKICAgICAgICAgICAgbXkgJExvZ01lc3NhZ2UgID0gcXh7JEtpbml0U3RyaW5nIDI+JjF9OwoKICAgICAgICAgICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCRMb2dNZXNzYWdlKSApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5FcnJvcigKICAgICAgICAgICAgICAgICAgICBTdW1tYXJ5ID0+ICdraW5pdDogJyAuICRMb2dNZXNzYWdlLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAna2luaXQ6ICcgLiAkTG9nTWVzc2FnZSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgaWYgKCAkUGFyYW17Q3VzdG9tSGVhZGVyfSApIHsKICAgICAgICAlSGVhZGVycyA9ICgKICAgICAgICAgICAgJUhlYWRlcnMsCiAgICAgICAgICAgICV7ICRQYXJhbXtDdXN0b21IZWFkZXJ9IH0sCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkRlYnVnKAogICAgICAgICAgICBTdW1tYXJ5ID0+ICJDdXN0b20gaGVhZGVycyB1c2VkIChtaWdodCBvdmVyd3JpdGUgYXV0aG9yaXphdGlvbikiLAogICAgICAgICAgICBEYXRhICAgID0+IGpvaW4oICc7ICcsIGtleXMgJFBhcmFte0N1c3RvbUhlYWRlcn0tPiUqICksCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkUmVzdENvbW1hbmQgPSAkQ29uZmlnLT57RGVmYXVsdENvbW1hbmR9OwogICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57SW52b2tlckNvbnRyb2xsZXJNYXBwaW5nfS0+eyAkUGFyYW17T3BlcmF0aW9ufSB9LT57Q29tbWFuZH0gKSApCiAgICB7CiAgICAgICAgJFJlc3RDb21tYW5kID0gJENvbmZpZy0+e0ludm9rZXJDb250cm9sbGVyTWFwcGluZ30tPnsgJFBhcmFte09wZXJhdGlvbn0gfS0+e0NvbW1hbmR9OwogICAgfQoKICAgICRSZXN0Q29tbWFuZCA9IHVjICRSZXN0Q29tbWFuZDsKCiAgICBpZiAoICFncmVwIHsgJF8gZXEgJFJlc3RDb21tYW5kIH0gcXcoR0VUIFBPU1QgUFVUIFBBVENIIERFTEVURSBIRUFEIE9QVElPTlMgQ09OTkVDVCBUUkFDRSkgKSB7CgogICAgICAgIG15ICRFcnJvck1lc3NhZ2UgPSAiJyRSZXN0Q29tbWFuZCcgaXMgbm90IGEgdmFsaWQgUkVTVCBjb21tYW5kLiI7CgogICAgICAgICMgTG9nIHRvIGRlYnVnZ2VyLgogICAgICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5FcnJvcigKICAgICAgICAgICAgU3VtbWFyeSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICk7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgICAgICB9OwogICAgfQoKICAgIGlmICgKICAgICAgICAhSXNIYXNoUmVmV2l0aERhdGEoICRDb25maWctPntJbnZva2VyQ29udHJvbGxlck1hcHBpbmd9ICkKICAgICAgICB8fCAhSXNIYXNoUmVmV2l0aERhdGEoICRDb25maWctPntJbnZva2VyQ29udHJvbGxlck1hcHBpbmd9LT57ICRQYXJhbXtPcGVyYXRpb259IH0gKQogICAgICAgIHx8ICFJc1N0cmluZ1dpdGhEYXRhKAogICAgICAgICAgICAkQ29uZmlnLT57SW52b2tlckNvbnRyb2xsZXJNYXBwaW5nfS0+eyAkUGFyYW17T3BlcmF0aW9ufSB9LT57Q29udHJvbGxlcn0KICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgIG15ICRFcnJvck1lc3NhZ2UgPSAiUkVTVCBUcmFuc3BvcnQ6IEhhdmUgbm8gSW52b2tlciA8LT4gQ29udHJvbGxlciBtYXBwaW5nIGZvciBJbnZva2VyICckUGFyYW17T3BlcmF0aW9ufScuIjsKCiAgICAgICAgIyBMb2cgdG8gZGVidWdnZXIuCiAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkVycm9yKAogICAgICAgICAgICBTdW1tYXJ5ID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgIH07CiAgICB9CgogICAgbXkgJENvbnRyb2xsZXIgPSAkQ29uZmlnLT57SW52b2tlckNvbnRyb2xsZXJNYXBwaW5nfS0+eyAkUGFyYW17T3BlcmF0aW9ufSB9LT57Q29udHJvbGxlcn07CgogICAgIyBSZW1vdmUgYW55IHF1ZXJ5IHBhcmFtZXRlcnMgdGhhdCBtaWdodCBiZSBpbiB0aGUgY29uZmlnLAogICAgIyAgIEZvciBleGFtcGxlLCBmcm9tIHRoZSBjb250cm9sbGVyOiAvVGlja2V0LzpUaWNrZXRJRC8/OlVzZXJMb2dpbiY6UGFzc3dvcmQKICAgICMgICBjb250cm9sbGVyIG11c3QgcmVtYWluICAvVGlja2V0LzpUaWNrZXRJRC8KICAgIG15ICRRdWVyeVBhcmFtc1N0ciA9ICcnOwogICAgaWYgKCAkQ29udHJvbGxlciA9fiBzeyhbXj9dKykoLispP317JDF9ICkgewoKICAgICAgICAjIFJlbWVtYmVyIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIGUuZy4gPzpVc2VyTG9naW4mOlBhc3N3b3JkLgogICAgICAgICMgSXQgaXMgZmluZSB3aGVuICQyIGlzIG5vdCBkZWZpbmVkLCB0aGF0IGlzIHdoZW4gdGhlcmUgaXMgbm8gJz8nIGluICRSZXF1ZXN0VVJJCiAgICAgICAgJFF1ZXJ5UGFyYW1zU3RyID0gJDI7CiAgICB9CgogICAgIyBSZXBsYWNlIGFueSBVUkkgcGFyYW1zIHdpdGggdGhlaXIgYWN0dWFsIHZhbHVlLgogICAgIyAgICBmb3IgZXhhbXBsZTogZnJvbSAvVGlja2V0LzpUaWNrZXRJRC86T3RoZXIKICAgICMgICAgdG8gL1RpY2tldC8xLzIgKGNvbnNpZGVyaW5nIHRoYXQgJFBhcmFte0RhdGF9IGNvbnRhaW5zIFRpY2tldElEID0gMSBhbmQgT3RoZXIgPSAyKS4KICAgIG15IEBQYXJhbXNUb0RlbGV0ZTsKICAgIGlmICggcmVmICRQYXJhbXtEYXRhfSBlcSAnSEFTSCcgKSB7CiAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKCBzb3J0IGtleXMgJXsgJFBhcmFte0RhdGF9IH0gKSB7CiAgICAgICAgICAgIGlmICggJENvbnRyb2xsZXIgPX4gbXs6JFBhcmFtTmFtZSg/PS98XD98JCl9bXN4ICkgewogICAgICAgICAgICAgICAgbXkgJFBhcmFtVmFsdWUgPSAkUGFyYW17RGF0YX0tPnskUGFyYW1OYW1lfTsKICAgICAgICAgICAgICAgICRQYXJhbVZhbHVlID0gdXJpX2VzY2FwZV91dGY4KCRQYXJhbVZhbHVlKTsKICAgICAgICAgICAgICAgICRDb250cm9sbGVyID1+IHN7OiRQYXJhbU5hbWUoPz0vfFw/fCQpfXskUGFyYW1WYWx1ZX1tc3hnOwogICAgICAgICAgICAgICAgcHVzaCBAUGFyYW1zVG9EZWxldGUsICRQYXJhbU5hbWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBlbHNpZiAoIHJlZiAkUGFyYW17RGF0YX0gZXEgJ0FSUkFZJyApIHsKICAgICAgICBmb3IgbXkgJERhdGEgKCAkUGFyYW17RGF0YX0tPkAqICkgewoKICAgICAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKCBzb3J0IGtleXMgJXskRGF0YX0gKSB7CiAgICAgICAgICAgICAgICBpZiAoICRDb250cm9sbGVyID1+IG17OiRQYXJhbU5hbWUoPz0vfFw/fCQpfW1zeCApIHsKICAgICAgICAgICAgICAgICAgICBteSAkUGFyYW1WYWx1ZSA9ICREYXRhLT57JFBhcmFtTmFtZX07CiAgICAgICAgICAgICAgICAgICAgJFBhcmFtVmFsdWUgPSB1cmlfZXNjYXBlX3V0ZjgoJFBhcmFtVmFsdWUpOwogICAgICAgICAgICAgICAgICAgICRDb250cm9sbGVyID1+IHN7OiRQYXJhbU5hbWUoPz0vfFw/fCQpfXskUGFyYW1WYWx1ZX1tc3hnOwogICAgICAgICAgICAgICAgICAgIHB1c2ggQFBhcmFtc1RvRGVsZXRlLCAkUGFyYW1OYW1lOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5EZWJ1ZygKICAgICAgICBTdW1tYXJ5ID0+ICdVUkkgYWZ0ZXIgaW50ZXJwb2xhdGluZyBVUkkgcGFyYW1zIGZyb20gb3V0Z29pbmcgZGF0YScsCiAgICAgICAgRGF0YSAgICA9PiAiJFJlc3RDb21tYW5kICRDb250cm9sbGVyIiwKICAgICk7CgogICAgaWYgKCRRdWVyeVBhcmFtc1N0cikgewoKICAgICAgICAjIFJlcGxhY2UgYW55IHF1ZXJ5IHBhcmFtcyB3aXRoIHRoZWlyIGFjdHVhbCB2YWx1ZQogICAgICAgICMgICAgZm9yIGV4YW1wbGU6IGZyb20gP1VzZXJMb2dpbjpVc2VyTG9naW4mUGFzc3dvcmQ9OlBhc3N3b3JkCiAgICAgICAgIyAgICB0byA/VXNlckxvZ2luPXVzZXImUGFzc3dvcmQ9c2VjcmV0CiAgICAgICAgIyAgICAoY29uc2lkZXJpbmcgdGhhdCAkUGFyYW17RGF0YX0gY29udGFpbnMgVXNlckxvZ2luID0gJ3VzZXInIGFuZCBQYXNzd29yZCA9ICdzZWNyZXQnKS4KICAgICAgICBteSAkUmVwbGFjZUZsYWc7CiAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKCBzb3J0IGtleXMgJXsgJFBhcmFte0RhdGF9IH0gKSB7CiAgICAgICAgICAgIGlmICggJFF1ZXJ5UGFyYW1zU3RyID1+IG17OiRQYXJhbU5hbWUoPz0mfCQpfW1zeCApIHsKICAgICAgICAgICAgICAgIG15ICRQYXJhbVZhbHVlID0gJFBhcmFte0RhdGF9LT57JFBhcmFtTmFtZX07CiAgICAgICAgICAgICAgICAkUGFyYW1WYWx1ZSA9IHVyaV9lc2NhcGVfdXRmOCgkUGFyYW1WYWx1ZSk7CiAgICAgICAgICAgICAgICAkUXVlcnlQYXJhbXNTdHIgPX4gc3s6JFBhcmFtTmFtZSg/PSZ8JCl9eyRQYXJhbVZhbHVlfW1zeGc7CiAgICAgICAgICAgICAgICBwdXNoIEBQYXJhbXNUb0RlbGV0ZSwgJFBhcmFtTmFtZTsKICAgICAgICAgICAgICAgICRSZXBsYWNlRmxhZyA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgQXBwZW5kIHF1ZXJ5IHBhcmFtcyBpbiB0aGUgVVJJLgogICAgICAgIGlmICgkUmVwbGFjZUZsYWcpIHsKICAgICAgICAgICAgJENvbnRyb2xsZXIgLj0gJFF1ZXJ5UGFyYW1zU3RyOwoKICAgICAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkRlYnVnKAogICAgICAgICAgICAgICAgU3VtbWFyeSA9PiAnVVJJIGFmdGVyIGludGVycG9sYXRpbmcgUXVlcnkgcGFyYW1zIGZyb20gb3V0Z29pbmcgZGF0YScsCiAgICAgICAgICAgICAgICBEYXRhICAgID0+ICIkUmVzdENvbW1hbmQgJENvbnRyb2xsZXIiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIFJlbW92ZSBhbHJlYWR5IHVzZWQgcGFyYW1zLgogICAgZm9yIG15ICRQYXJhbU5hbWUgKEBQYXJhbXNUb0RlbGV0ZSkgewogICAgICAgIGRlbGV0ZSAkUGFyYW17RGF0YX0tPnskUGFyYW1OYW1lfTsKICAgIH0KCiAgICAjIEdldCBKU09OIGFuZCBFbmNvZGUgb2JqZWN0LgogICAgbXkgJEpTT05PYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpKU09OJyk7CiAgICBteSAkRW5jb2RlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkVuY29kZScpOwoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtEYXRhfSApIHx8IElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte0RhdGF9ICkgKSB7CgogICAgICAgICMgUE9TVCwgUFVUIGFuZCBQQVRDSCBjYW4gaGF2ZSBEYXRhIGluIHRoZSBCb2R5LgogICAgICAgIGlmICgKICAgICAgICAgICAgJFJlc3RDb21tYW5kIGVxICdQT1NUJwogICAgICAgICAgICB8fCAkUmVzdENvbW1hbmQgZXEgJ1BVVCcKICAgICAgICAgICAgfHwgJFJlc3RDb21tYW5kIGVxICdQQVRDSCcKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkRlYnVnKAogICAgICAgICAgICAgICAgU3VtbWFyeSA9PiAiUmVtYWluaW5nIG91dGdvaW5nIGRhdGEgdG8gYmUgc2VudCIsCiAgICAgICAgICAgICAgICBEYXRhICAgID0+ICRQYXJhbXtEYXRhfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRQYXJhbXtEYXRhfSA9ICRKU09OT2JqZWN0LT5FbmNvZGUoCiAgICAgICAgICAgICAgICBEYXRhID0+ICRQYXJhbXtEYXRhfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgTWFrZSBzdXJlIGRhdGEgaXMgY29ycmVjdGx5IGVuY29kZWQuCiAgICAgICAgICAgICRFbmNvZGVPYmplY3QtPkVuY29kZU91dHB1dCggXCRQYXJhbXtEYXRhfSApOwogICAgICAgIH0KCiAgICAgICAgIyBXaGVyZWFzIEdFVCBhbmQgdGhlIG90aGVycyBqdXN0IGhhdmUgYSB0aGUgZGF0YSBhZGRlZCB0byB0aGUgUXVlcnkgVVJJLgogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgbXkgJFF1ZXJ5UGFyYW1zID0gJFNlbGYtPl9CdWlsZFF1ZXJ5UGFyYW1zKAogICAgICAgICAgICAgICAgRGF0YSAgICAgICA9PiAkUGFyYW17RGF0YX0sCiAgICAgICAgICAgICAgICBSZXN0Q2xpZW50ID0+ICRSZXN0Q2xpZW50LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBDaGVjayBpZiBjb250cm9sbGVyIGFscmVhZHkgaGF2ZSBhICBxdWVzdGlvbiBtYXJrICc/Jy4KICAgICAgICAgICAgaWYgKCAkQ29udHJvbGxlciA9fiBte1w/fW1zeCApIHsKCiAgICAgICAgICAgICAgICAjIFJlcGxhY2UgcXVlc3Rpb24gbWFyayAnPycgYnkgYW4gYW1wZXJzYW5kICcmJy4KICAgICAgICAgICAgICAgICRRdWVyeVBhcmFtcyA9fiBze1xBXD99eyZ9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAkQ29udHJvbGxlciAuPSAkUXVlcnlQYXJhbXM7CgogICAgICAgICAgICAkU2VsZi0+e0RlYnVnZ2VyT2JqZWN0fS0+RGVidWcoCiAgICAgICAgICAgICAgICBTdW1tYXJ5ID0+ICJVUkkgYWZ0ZXIgYWRkaW5nIFF1ZXJ5IHBhcmFtcyBmcm9tIG91dGdvaW5nIGRhdGEiLAogICAgICAgICAgICAgICAgRGF0YSAgICA9PiAkQ29udHJvbGxlciwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5EZWJ1ZygKICAgICAgICAgICAgICAgIFN1bW1hcnkgPT4gIlJlbWFpbmluZyBvdXRnb2luZyBkYXRhIHRvIGJlIHNlbnQiLAogICAgICAgICAgICAgICAgRGF0YSAgICA9PiAiTm8gZGF0YSBpcyBzZW50IGluIHRoZSByZXF1ZXN0IGJvZHkgYXMgJFJlc3RDb21tYW5kIGNvbW1hbmQgc2V0cyBhbGwiCiAgICAgICAgICAgICAgICAgICAgLiAiIERhdGEgYXMgcXVlcnkgcGFyYW1zIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgbXkgQFJlcXVlc3RQYXJhbSA9ICgkQ29udHJvbGxlcik7CgogICAgIyBPbmx5IFBPU1QsIFBVVCBvciBQQVRDSCBoYXZlIGEgYm9keS4gSWYgaXQgaXMgZW1wdHkKICAgICMgKGkuIGUuICRQYXJhbXtEYXRhfSA9IHt9KSwgdW5kZWYgaXMgcGFzc2VkIHRvIFJFU1Q6OkNsaWVudC4KICAgIGlmICgKICAgICAgICAkUmVzdENvbW1hbmQgZXEgJ1BPU1QnCiAgICAgICAgfHwgJFJlc3RDb21tYW5kIGVxICdQVVQnCiAgICAgICAgfHwgJFJlc3RDb21tYW5kIGVxICdQQVRDSCcKICAgICAgICApCiAgICB7CiAgICAgICAgbXkgJEJvZHk7CiAgICAgICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkUGFyYW17RGF0YX0gKSApIHsKICAgICAgICAgICAgJEJvZHkgPSAkUGFyYW17RGF0YX07CiAgICAgICAgfQoKICAgICAgICBwdXNoIEBSZXF1ZXN0UGFyYW0sICRCb2R5OwogICAgfQoKICAgICMgYWRkZWQgZm9yIE9UT0JPVGlja2V0SW52b2tlcgoKICAgICMgR2F0aGVyIGFkZGl0aW9uYWwgaGVhZGVycy4KICAgICVIZWFkZXJzID0gKAogICAgICAgICVIZWFkZXJzLAogICAgICAgICRTZWxmLT5fSGVhZGVyc0dldCgKICAgICAgICAgICAgVHlwZSAgICAgID0+ICdJbnZva2VyJywKICAgICAgICAgICAgT3BlcmF0aW9uID0+ICRQYXJhbXtPcGVyYXRpb259LAogICAgICAgICksCiAgICApOwoKICAgICMgVHJpZ2dlciBtaXJyb3IgbW9kZSBmb3IgaGVhZGVycyAodW5kb2N1bWVudGVkIC0gb25seSBmb3IgVW5pdFRlc3RzKQogICAgaWYgKCAkQ29uZmlnLT57VW5pdFRlc3RIZWFkZXJzfSApIHsKICAgICAgICAkSGVhZGVyc3tVbml0dGVzdGhlYWRlcnN9ID0gJENvbmZpZy0+e1VuaXRUZXN0SGVhZGVyc307CiAgICB9CgogICAgIyBBZGQgaGVhZGVycyB0byByZXF1ZXN0CiAgICBwdXNoIEBSZXF1ZXN0UGFyYW0sIFwlSGVhZGVyczsKCiAgICAjIHRoZSBhY3R1YWwgcmVxdWVzdCB0byB0aGUgcmVtb3RlIHNlcnZpY2UKICAgICRSZXN0Q2xpZW50LT4kUmVzdENvbW1hbmQoQFJlcXVlc3RQYXJhbSk7CgogICAgbXkgJEVycm9yTWVzc2FnZSA9ICJFcnJvciB3aGlsZSBwZXJmb3JtaW5nIFJFU1QgJyRSZXN0Q29tbWFuZCcgcmVxdWVzdCB0byBDb250cm9sbGVyICckQ29udHJvbGxlcicgb24gSG9zdCAnJENvbmZpZy0+e0hvc3R9Jy4iOwogICAgbXkgJFJlc3BvbnNlRXJyb3I7CiAgICBpZiAoICRQYXJhbXtDdXN0b21SZXNwb25zZUFzc2Vzc29yfSApIHsKICAgICAgICAkUmVzcG9uc2VFcnJvciA9ICRQYXJhbXtDdXN0b21SZXNwb25zZUFzc2Vzc29yfS0+KAogICAgICAgICAgICBSZXN0Q2xpZW50ICAgPT4gJFJlc3RDbGllbnQsCiAgICAgICAgICAgIFJlc3RDb21tYW5kICA9PiAkUmVzdENvbW1hbmQsCiAgICAgICAgICAgIENvbnRyb2xsZXIgICA9PiAkQ29udHJvbGxlciwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRSZXNwb25zZUVycm9yID0gX0Fzc2Vzc1Jlc3BvbnNlKAogICAgICAgICAgICBSZXN0Q2xpZW50ICAgPT4gJFJlc3RDbGllbnQsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFJlc3BvbnNlQ29kZSAgICA9ICRSZXN0Q2xpZW50LT5yZXNwb25zZUNvZGUoKTsKICAgIG15ICRSZXNwb25zZUNvbnRlbnQgPSAkUmVzdENsaWVudC0+cmVzcG9uc2VDb250ZW50KCk7CgogICAgIyBSZXR1cm4gZWFybHkgaW4gY2FzZSBhbiBlcnJvciBvbiByZXNwb25zZS4KICAgIGlmICgkUmVzcG9uc2VFcnJvcikgewogICAgICAgIG15ICRSZXNwb25zZURhdGEgPSBJc1N0cmluZ1dpdGhEYXRhKCRSZXNwb25zZUNvbnRlbnQpCiAgICAgICAgICAgID8KICAgICAgICAgICAgIlJlc3BvbnNlIGNvbnRlbnQ6ICckUmVzcG9uc2VDb250ZW50JyIKICAgICAgICAgICAgOgogICAgICAgICAgICAnTm8gY29udGVudCBwcm92aWRlZC4nOwoKICAgICAgICAjIGxvZyB0byBkZWJ1Z2dlciBhbmQgcmV0dXJuIGFzIHVuc3VjY2Vzc2Z1bGwKICAgICAgICByZXR1cm4gJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkVycm9yKAogICAgICAgICAgICBTdW1tYXJ5ID0+ICRSZXNwb25zZUVycm9yLAogICAgICAgICAgICBEYXRhICAgID0+ICRSZXNwb25zZURhdGEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIFNlbmQgcHJvY2Vzc2VkIGRhdGEgdG8gZGVidWdnZXIuCiAgICBteSAkU2l6ZUV4Y2VlZGVkID0gMDsKICAgIHsKICAgICAgICBteSAkTWF4U2l6ZUtpbG9CeXRlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnR2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpSZXNwb25zZUxvZ2dpbmdNYXhTaXplJykKICAgICAgICAgICAgfHwgMjAwOwogICAgICAgIG15ICRNYXhTaXplQnl0ZXMgPSAkTWF4U2l6ZUtpbG9CeXRlcyAqIDEwMjQ7CiAgICAgICAgbXkgJFNpemVCeXRlcyAgICA9IGJ5dGVzOjpsZW5ndGgoJFJlc3BvbnNlQ29udGVudCk7CgogICAgICAgIGlmICggJFNpemVCeXRlcyA8ICRNYXhTaXplQnl0ZXMgKSB7CiAgICAgICAgICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5EZWJ1ZygKICAgICAgICAgICAgICAgIFN1bW1hcnkgPT4gJ0pTT04gZGF0YSByZWNlaXZlZCBmcm9tIHJlbW90ZSBzeXN0ZW0nLAogICAgICAgICAgICAgICAgRGF0YSAgICA9PiAkUmVzcG9uc2VDb250ZW50LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNpemVFeGNlZWRlZCA9IDE7CiAgICAgICAgICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5EZWJ1ZygKICAgICAgICAgICAgICAgIFN1bW1hcnkgPT4gIkpTT04gZGF0YSByZWNlaXZlZCBmcm9tIHJlbW90ZSBzeXN0ZW0gd2FzIHRvbyBsYXJnZSBmb3IgbG9nZ2luZyIsCiAgICAgICAgICAgICAgICBEYXRhICAgID0+ICdTZWUgU3lzQ29uZmlnIG9wdGlvbiBHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OlJlc3BvbnNlTG9nZ2luZ01heFNpemUgdG8gY2hhbmdlIHRoZSBtYXhpbXVtLicsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICRSZXNwb25zZUNvbnRlbnQgPSAkRW5jb2RlT2JqZWN0LT5Db252ZXJ0MkNoYXJzZXRJbnRlcm5hbCgKICAgICAgICBUZXh0ID0+ICRSZXNwb25zZUNvbnRlbnQsCiAgICAgICAgRnJvbSA9PiAndXRmLTgnLAogICAgKTsKCiAgICAjIFRvIGNvbnZlcnQgdGhlIGRhdGEgaW50byBhIGhhc2gsIHVzZSB0aGUgSlNPTiBtb2R1bGUuCiAgICBteSAkUmVzdWx0OwoKICAgIGlmICggJFJlc3BvbnNlQ29kZSBuZSAnMjA0JyApIHsKCiAgICAgICAgJFJlc3VsdCA9ICRKU09OT2JqZWN0LT5EZWNvZGUoCiAgICAgICAgICAgIERhdGEgPT4gJFJlc3BvbnNlQ29udGVudCwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkUmVzdWx0ICkgewogICAgICAgICAgICBteSAkUmVzcG9uc2VFcnJvciA9ICRFcnJvck1lc3NhZ2UgLiAnIEVycm9yIHdoaWxlIHBhcnNpbmcgSlNPTiBkYXRhLic7CgogICAgICAgICAgICAjIExvZyB0byBkZWJ1Z2dlci4KICAgICAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkVycm9yKAogICAgICAgICAgICAgICAgU3VtbWFyeSA9PiAkUmVzcG9uc2VFcnJvciwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkUmVzcG9uc2VFcnJvciwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBpbnRyb2R1Y2VkIGZvciBPVE9CT1RpY2tldEludm9rZXIKCiAgICAjIFJlcG9ydCBtaXJyb3JlZCBoZWFkZXJzLCBvbmx5IHVzZWQgZm9yIFVuaXRUZXN0cwogICAgbXkgJVVuaXRUZXN0SGVhZGVyczsKICAgIGlmICggJENvbmZpZy0+e1VuaXRUZXN0SGVhZGVyc30gKSB7CiAgICAgICAgSEVBREVSOgogICAgICAgIGZvciBteSAkSGVhZGVyICggJFJlc3RDbGllbnQtPnJlc3BvbnNlSGVhZGVycyApIHsKICAgICAgICAgICAgbmV4dCBIRUFERVIgaWYgbGVuZ3RoKCRIZWFkZXIpIDwgMjU7CiAgICAgICAgICAgIG5leHQgSEVBREVSIGlmIHN1YnN0ciggJEhlYWRlciwgMCwgMjUgKSBuZSAkQ29uZmlnLT57VW5pdFRlc3RIZWFkZXJzfTsKCiAgICAgICAgICAgICRVbml0VGVzdEhlYWRlcnN7IHN1YnN0ciggJEhlYWRlciwgMjUgKSB9ID0gJFJlc3RDbGllbnQtPnJlc3BvbnNlSGVhZGVyKCRIZWFkZXIpOwogICAgICAgIH0KICAgIH0KCiAgICAjIEFsbCBPSyAtIHJldHVybiByZXN1bHQuCiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgICAgICAgICA9PiAxLAogICAgICAgIERhdGEgICAgICAgICAgICA9PiAkUmVzdWx0IHx8IHVuZGVmLAogICAgICAgIFNpemVFeGNlZWRlZCAgICA9PiAkU2l6ZUV4Y2VlZGVkLAogICAgICAgIFVuaXRUZXN0SGVhZGVycyA9PiBcJVVuaXRUZXN0SGVhZGVycywgICAgIyBhZGRlZCBieSBPVE9CT1RpY2tldEludm9rZXIKICAgIH07Cn0KCj1iZWdpbiBJbnRlcm5hbDoKCj1oZWFkMiBfQXNzZXNzUmVzcG9uc2UoKQoKSW5zcGVjdCB0aGUgcmVzcG9uc2UgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHJlcXVlc3QuCgo9Y3V0CgpzdWIgX0Fzc2Vzc1Jlc3BvbnNlIHsKICAgIG15ICVQYXJhbSA9IEBfOwoKICAgIG15ICggJFJlc3RDbGllbnQsICRFcnJvck1lc3NhZ2UgKSA9IEBQYXJhbXtxdyhSZXN0Q2xpZW50IEVycm9yTWVzc2FnZSl9OwoKICAgIG15ICRSZXNwb25zZUNvZGUgICAgPSAkUmVzdENsaWVudC0+cmVzcG9uc2VDb2RlOwogICAgbXkgJFJlc3BvbnNlQ29udGVudCA9ICRSZXN0Q2xpZW50LT5yZXNwb25zZUNvbnRlbnQ7CgogICAgbXkgJFJlc3BvbnNlRXJyb3I7ICAgICMgd2lsbCBiZSByZXR1cm5lZAoKICAgIGlmICggIUlzU3RyaW5nV2l0aERhdGEoJFJlc3BvbnNlQ29kZSkgKSB7CiAgICAgICAgJFJlc3BvbnNlRXJyb3IgPSAkRXJyb3JNZXNzYWdlOwogICAgfQoKICAgIGlmICggJFJlc3BvbnNlQ29kZSAhfiBteyBcQSAyMCBcZCBceiB9eG1zICkgewogICAgICAgICRSZXNwb25zZUVycm9yID0gJEVycm9yTWVzc2FnZSAuICIgUmVzcG9uc2UgY29kZSAnJFJlc3BvbnNlQ29kZScuIjsKICAgIH0KCiAgICBpZiAoICRSZXNwb25zZUNvZGUgbmUgJzIwNCcgJiYgIUlzU3RyaW5nV2l0aERhdGEoJFJlc3BvbnNlQ29udGVudCkgKSB7CiAgICAgICAgJFJlc3BvbnNlRXJyb3IgLj0gJyBObyBjb250ZW50IHByb3ZpZGVkLic7CiAgICB9CgogICAgcmV0dXJuICRSZXNwb25zZUVycm9yOwp9Cgo9aGVhZDIgX1Rocm93V2ViRXhjZXB0aW9uKCkKCmNyZWF0ZXMgYSBNPFBsYWNrOjpSZXNwb25zZT4gb2JqZWN0LCB3cmFwIGl0IGludG8gYSBNPEtlcm5lbDo6U3lzdGVtOjpXZWI6OkV4Y2VwdGlvbj4KYW5kIHRocm93IHRoYXQgb2JqZWN0IGFzIGFuIGV4Y2VwdGlvbi4KCiAgICAjIHRoZSBzdWIgZGllcwogICAgJFRyYW5zcG9ydE9iamVjdC0+X1Rocm93V2ViRXhjZXB0aW9uKAogICAgICAgIEhUVFBDb2RlID0+IDUwMCwgICAgICAgICAgICAgICAjIGh0dHAgY29kZSB0byBiZSByZXR1cm5lZCwgb3B0aW9uYWwKICAgICAgICBDb250ZW50ICA9PiAnZXJyb3IgbWVzc2FnZScsICAgIyBtZXNzYWdlIGNvbnRlbnQKICAgICAgICBIZWFkZXJzICA9PiB7IEtleSA9PiAnVmFsJyB9ICAgIyBhZGRpdGlvbmFsIGhlYWRlcnMsIG9wdGlvbmFsCiAgICApOwoKPWN1dAoKc3ViIF9UaHJvd1dlYkV4Y2VwdGlvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgQ2hlY2sgcGFyYW1zLgogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtIVFRQQ29kZX0gJiYgIUlzSW50ZWdlciggJFBhcmFte0hUVFBDb2RlfSApICkgewogICAgICAgICRQYXJhbXtIVFRQQ29kZX0gPSA1MDA7CiAgICAgICAgJFBhcmFte0NvbnRlbnR9ICA9ICdJbnZhbGlkIGludGVybmFsIEhUVFBDb2RlJzsKICAgIH0KICAgIGVsc2lmICggZGVmaW5lZCAkUGFyYW17Q29udGVudH0gJiYgIUlzU3RyaW5nKCAkUGFyYW17Q29udGVudH0gKSApIHsKICAgICAgICAkUGFyYW17SFRUUENvZGV9ID0gNTAwOwogICAgICAgICRQYXJhbXtDb250ZW50fSAgPSAnSW52YWxpZCBDb250ZW50JzsKICAgIH0KCiAgICAjIEZJWE1FOiBhY2NvcmRpbmcgdG8gU09BUDo6VHJhbnNwb3J0OjpIVFRQIHRoZSBwcmV2aW91cyBzaG91bGQgbm90IGJlIHVzZWQKICAgICMgICBmb3IgYWxsIHN1cHBvcnRlZCBicm93c2VycyAnU3RhdHVzOicgc2hvdWxkIGJlIHVzZWQgaGVyZQogICAgIyAgIHRoaXMgYnJlYWtzIGFwYWNoZSB0aG91Z2gKCiAgICAjIHByZXBhcmUgZGF0YQogICAgJFBhcmFte0NvbnRlbnR9ICB8fD0gJyc7CiAgICAkUGFyYW17SFRUUENvZGV9IHx8PSA1MDA7CgogICAgbXkgJENvbnRlbnRUeXBlID0gJFBhcmFte0hUVFBDb2RlfSBlcSAyMDAgPyAnYXBwbGljYXRpb24vanNvbicgOiAndGV4dC9wbGFpbic7CgogICAgIyBMb2cgdG8gZGVidWdnZXIuCiAgICBteSAkRGVidWdMZXZlbCA9ICRQYXJhbXtIVFRQQ29kZX0gZXEgMjAwID8gJ2RlYnVnJyA6ICdlcnJvcic7CiAgICAkU2VsZi0+e0RlYnVnZ2VyT2JqZWN0fS0+RGVidWdMb2coCiAgICAgICAgRGVidWdMZXZlbCA9PiAkRGVidWdMZXZlbCwKICAgICAgICBTdW1tYXJ5ICAgID0+ICJSZXR1cm5pbmcgcHJvdmlkZXIgZGF0YSB0byByZW1vdGUgc3lzdGVtIChIVFRQIENvZGU6ICRQYXJhbXtIVFRQQ29kZX0pIiwKICAgICAgICBEYXRhICAgICAgID0+ICRQYXJhbXtDb250ZW50fSwKICAgICk7CgogICAgIyBoZWFkZXIgZm9yIHRoZSByZXNwb25zZSB0aGF0IHdpbGwgYmUgdGhyb3duCiAgICBteSBASGVhZGVyczsKICAgIHB1c2ggQEhlYWRlcnMsICdDb250ZW50LVR5cGUnID0+ICIkQ29udGVudFR5cGU7IGNoYXJzZXQ9VVRGLTgiOwogICAgcHVzaCBASGVhZGVycywgJ0Nvbm5lY3Rpb24nICAgPT4gKCAkU2VsZi0+e0tlZXBBbGl2ZX0gPyAnS2VlcC1BbGl2ZScgOiAnY2xvc2UnICk7CgogICAgIyBUaGUgQ29udGVudC1MZW5ndGggd2lsbCBiZSBzZXQgbGF0ZXIgaW4gdGhlIG1pZGRsZXdhcmUgUGxhY2s6Ok1pZGRsZXdhcmU6OkNvbnRlbnRMZW5ndGguIFRoaXMgcmVxdWlyZXMgdGhhdAogICAgIyB0aGVyZSBhcmUgbm8gbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIGluIHRoZSBkZWxpdmVyZWQgY29udGVudC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBtaWRkbGV3YXJlCiAgICAjIHVzZXMgY29yZTo6bGVuZ3RoKCkgZm9yIGRldGVybWluaW5nIHRoZSBjb250ZW50IGxlbmd0aC4KICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpFbmNvZGUnKS0+RW5jb2RlT3V0cHV0KCBcJFBhcmFte0NvbnRlbnR9ICk7CgogICAgIyBQcmVwYXJlIGFkZGl0aW9uYWwgaGVhZGVycy4KICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRTZWxmLT57VHJhbnNwb3J0Q29uZmlnfS0+e0NvbmZpZ30tPntBZGRpdGlvbmFsSGVhZGVyc30gKSApIHsKICAgICAgICBteSAlQWRkaXRpb25hbEhlYWRlcnMgPSAkU2VsZi0+e1RyYW5zcG9ydENvbmZpZ30tPntDb25maWd9LT57QWRkaXRpb25hbEhlYWRlcnN9LT4lKjsKICAgICAgICBmb3IgbXkgJEFkZGl0aW9uYWxIZWFkZXIgKCBzb3J0IGtleXMgJUFkZGl0aW9uYWxIZWFkZXJzICkgewogICAgICAgICAgICBwdXNoIEBIZWFkZXJzLCAkQWRkaXRpb25hbEhlYWRlciA9PiAoICRBZGRpdGlvbmFsSGVhZGVyc3skQWRkaXRpb25hbEhlYWRlcn0gfHwgJycgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBpbnRyb2R1Y2VkIGJ5IE9UT0JPVGlja2V0SW52b2tlcgogICAgIyBTZXQgYWRkaXRpb25hbCBoZWFkZXJzLgogICAgaWYgKCAkUGFyYW17SGVhZGVyc30gKSB7CiAgICAgICAgZm9yIG15ICRIZWFkZXIgKCBzb3J0IGtleXMgJFBhcmFte0hlYWRlcnN9LT4lKiApIHsKICAgICAgICAgICAgcHVzaCBASGVhZGVycywgJEhlYWRlciA9PiAkUGFyYW17SGVhZGVyc30tPnskSGVhZGVyfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgdGhlIHJlc3BvbnNlCiAgICBteSAkUGxhY2tSZXNwb25zZSA9IFBsYWNrOjpSZXNwb25zZS0+bmV3KAogICAgICAgICRQYXJhbXtIVFRQQ29kZX0sCiAgICAgICAgXEBIZWFkZXJzLAogICAgICAgICRQYXJhbXtDb250ZW50fQogICAgKTsKCiAgICAjIFRoZSBleGNlcHRpb24gaXMgY2F1Z2h0IGJlIFBsYWNrOjpNaWRkbGV3YXJlOjpIVFRQRXhjZXB0aW9ucwogICAgZGllIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkV4Y2VwdGlvbi0+bmV3KAogICAgICAgIFBsYWNrUmVzcG9uc2UgPT4gJFBsYWNrUmVzcG9uc2UKICAgICk7Cn0KCj1oZWFkMiBfRXJyb3IoKQoKVGFrZSBlcnJvciBwYXJhbWV0ZXJzIGZyb20gcmVxdWVzdCBwcm9jZXNzaW5nLgpFcnJvciBtZXNzYWdlIGlzIHdyaXR0ZW4gdG8gZGVidWdnZXIsIHdyaXR0ZW4gdG8gZW52aXJvbm1lbnQgZm9yIHJlc3BvbnNlLgpFcnJvciBpcyBnZW5lcmF0ZWQgdG8gYmUgcGFzc2VkIHRvIHByb3ZpZGVyL3JlcXVlc3Rlci4KCiAgICBteSAkUmVzdWx0ID0gJFRyYW5zcG9ydE9iamVjdC0+X0Vycm9yKAogICAgICAgIFN1bW1hcnkgICA9PiAnTWVzc2FnZScsICAgICMgZXJyb3IgbWVzc2FnZQogICAgICAgIEhUVFBFcnJvciA9PiA1MDAsICAgICAgICAgICMgaHR0cCBlcnJvciBjb2RlLCBvcHRpb25hbAogICAgKTsKCiAgICAkUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgIEVycm9yTWVzc2FnZSA9PiAnTWVzc2FnZScsICMgZXJyb3IgbWVzc2FnZSBmcm9tIGdpdmVuIHN1bW1hcnkKICAgIH07Cgo9Y3V0CgpzdWIgX0Vycm9yIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgcGFyYW1zCiAgICBpZiAoICFJc1N0cmluZyggJFBhcmFte1N1bW1hcnl9ICkgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fRXJyb3IoCiAgICAgICAgICAgIFN1bW1hcnkgICA9PiAnTmVlZCBTdW1tYXJ5IScsCiAgICAgICAgICAgIEhUVFBFcnJvciA9PiA1MDAsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIExvZyB0byBkZWJ1Z2dlci4KICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5FcnJvcigKICAgICAgICBTdW1tYXJ5ID0+ICRQYXJhbXtTdW1tYXJ5fSwKICAgICk7CgogICAgIyBSZW1lbWJlciBkYXRhIGZvciByZXNwb25zZS4KICAgIGlmICggSXNTdHJpbmdXaXRoRGF0YSggJFBhcmFte0hUVFBFcnJvcn0gKSApIHsKICAgICAgICAkU2VsZi0+e0hUVFBFcnJvcn0gICA9ICRQYXJhbXtIVFRQRXJyb3J9OwogICAgICAgICRTZWxmLT57SFRUUE1lc3NhZ2V9ID0gJFBhcmFte1N1bW1hcnl9OwogICAgfQoKICAgICMgUmV0dXJuIHRvIHByb3ZpZGVyL3JlcXVlc3Rlci4KICAgIHJldHVybiB7CiAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRQYXJhbXtTdW1tYXJ5fSwKICAgIH07Cn0KCiMgaW50cm9kdWNlZCBmb3IgT1RPQk9UaWNrZXRJbnZva2VyCnN1YiBfSGVhZGVyc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRDb25maWcgPSAkU2VsZi0+e1RyYW5zcG9ydENvbmZpZ30tPntDb25maWd9LT57T3V0Ym91bmRIZWFkZXJzfTsKCiAgICAjIEZhbGxiYWNrIGZvciBwcmV2aW91c2x5IHVzZWQgJ2FkZGl0aW9uYWwgcmVzcG9uc2UgaGVhZGVycycuCiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e1RyYW5zcG9ydENvbmZpZ30tPntDb25maWd9LT57QWRkaXRpb25hbEhlYWRlcnN9ICkgKSB7CiAgICAgICAgJENvbmZpZyA9IHsKICAgICAgICAgICAgQ29tbW9uID0+ICRTZWxmLT57VHJhbnNwb3J0Q29uZmlnfS0+e0NvbmZpZ30tPntBZGRpdGlvbmFsSGVhZGVyc30sCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gdW5sZXNzIElzSGFzaFJlZldpdGhEYXRhKCRDb25maWcpOwoKICAgICMgdGhlIGJsYWNrbGlzdGVkIGhlYWRlcnMgYXJlIG5vdCBzZW50CiAgICBteSAlSXNCbGFja2xpc3RlZCA9IG1hcAogICAgICAgIHsgdWMoJF8pID0+IDEgfQogICAgICAgIEB7ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCggJ0dlbmVyaWNJbnRlcmZhY2U6OicgLiAkUGFyYW17VHlwZX0gLiAnOjpPdXRib3VuZEhlYWRlckJsYWNrbGlzdCcgKSAvLyBbXSB9OwoKICAgICMgQ29tbW9uIGhlYWRlcnMuCiAgICAjIFRoZXNlIGNvbWUgZmlyc3QgYXMgc3BlY2lmaWMgaGVhZGVycyBtaWdodCBvdmVycmlkZSB0aGVtLgogICAgbXkgJUhlYWRlcnM7CiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkQ29uZmlnLT57Q29tbW9ufSApICkgewogICAgICAgIEhFQURFUjoKICAgICAgICBmb3IgbXkgJEhlYWRlciAoIHNvcnQga2V5cyAkQ29uZmlnLT57Q29tbW9ufS0+JSogKSB7CiAgICAgICAgICAgIG5leHQgSEVBREVSIGlmICRJc0JsYWNrbGlzdGVkeyB1YyAkSGVhZGVyIH07CgogICAgICAgICAgICAkSGVhZGVyc3skSGVhZGVyfSA9ICRDb25maWctPntDb21tb259LT57JEhlYWRlcn07CiAgICAgICAgfQogICAgfQoKICAgICMgT3BlcmF0aW9uL0ludm9rZXIgc3BlY2lmaWMgaGVhZGVycy4KICAgIHJldHVybiAlSGVhZGVycyB1bmxlc3MgJFBhcmFte09wZXJhdGlvbn07CiAgICByZXR1cm4gJUhlYWRlcnMgdW5sZXNzIHJlZiAkQ29uZmlnLT57U3BlY2lmaWN9IGVxICdIQVNIJzsKICAgIHJldHVybiAlSGVhZGVycyB1bmxlc3MgSXNIYXNoUmVmV2l0aERhdGEoICRDb25maWctPntTcGVjaWZpY30tPnsgJFBhcmFte09wZXJhdGlvbn0gfSApOwoKICAgIEhFQURFUjoKICAgIGZvciBteSAkSGVhZGVyICggc29ydCBrZXlzICRDb25maWctPntTcGVjaWZpY30tPnsgJFBhcmFte09wZXJhdGlvbn0gfS0+JSogKSB7CiAgICAgICAgbmV4dCBIRUFERVIgaWYgJElzQmxhY2tsaXN0ZWR7IHVjICRIZWFkZXIgfTsKCiAgICAgICAgJEhlYWRlcnN7JEhlYWRlcn0gPSAkQ29uZmlnLT57U3BlY2lmaWN9LT57ICRQYXJhbXtPcGVyYXRpb259IH0tPnskSGVhZGVyfTsKICAgIH0KCiAgICByZXR1cm4gJUhlYWRlcnM7Cn0KCnN1YiBfQnVpbGRRdWVyeVBhcmFtcyB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoIHJlZiAkUGFyYW17RGF0YX0gZXEgJ0hBU0gnICkgewogICAgICAgIHJldHVybiAkUGFyYW17UmVzdENsaWVudH0tPmJ1aWxkUXVlcnkoICRQYXJhbXtEYXRhfS0+JSogKTsKICAgIH0KCiAgICBteSBAUXVlcnlQYXJhbXM7CgogICAgZm9yIG15ICREYXRhICggJFBhcmFte0RhdGF9LT5AKiApIHsKICAgICAgICBwdXNoIEBRdWVyeVBhcmFtcywgJFBhcmFte1Jlc3RDbGllbnR9LT5idWlsZFF1ZXJ5KCAkRGF0YS0+JSogKTsKICAgIH0KCiAgICByZXR1cm4gam9pbiggJyYnLCBAUXVlcnlQYXJhbXMgKTsKfQoKPWVuZCBJbnRlcm5hbDoKCj1jdXQKCjE7Cg==</File>
        <File Location="Custom/Kernel/System/WebUserAgent.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL1N5c3RlbS9XZWJVc2VyQWdlbnQucG0KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6V2ViVXNlckFnZW50OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBjb3JlIG1vZHVsZXMKdXNlIExpc3Q6OlV0aWwgcXcoZmlyc3QpOwoKIyBDUEFOIG1vZHVsZXMKdXNlIEhUVFA6OkhlYWRlcnMgICgpOwp1c2UgTFdQOjpVc2VyQWdlbnQgKCk7CgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpFbmNvZGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpNYWluJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6V2ViVXNlckFnZW50IC0gYSB3ZWIgdXNlciBhZ2VudCBsaWIKCj1oZWFkMSBERVNDUklQVElPTgoKQWxsIHdlYiB1c2VyIGFnZW50IGZ1bmN0aW9ucy4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OldlYlVzZXJBZ2VudDsKCiAgICBteSAkV2ViVXNlckFnZW50T2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OldlYlVzZXJBZ2VudC0+bmV3KAogICAgICAgIFRpbWVvdXQgPT4gMTUsICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCwgdGltZW91dAogICAgICAgIFByb3h5ICAgPT4gJ3Byb3h5LmV4YW1wbGUuY29tJywgIyBvcHRpb25hbCwgcHJveHkKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IGJsZXNzIHt9LCAkVHlwZTsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRTZWxmLT57VGltZW91dH0gPSAkUGFyYW17VGltZW91dH0gfHwgJENvbmZpZ09iamVjdC0+R2V0KCdXZWJVc2VyQWdlbnQ6OlRpbWVvdXQnKSB8fCAxNTsKICAgICRTZWxmLT57UHJveHl9ICAgPSAkUGFyYW17UHJveHl9ICAgfHwgJENvbmZpZ09iamVjdC0+R2V0KCdXZWJVc2VyQWdlbnQ6OlByb3h5JykgICB8fCAnJzsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBSZXF1ZXN0KCkKCnJldHVybiB0aGUgY29udGVudCBvZiByZXF1ZXN0ZWQgVVJMLgoKU2ltcGxlIEdFVCByZXF1ZXN0OgoKICAgIG15ICVSZXNwb25zZSA9ICRXZWJVc2VyQWdlbnRPYmplY3QtPlJlcXVlc3QoCiAgICAgICAgVVJMID0+ICdodHRwOi8vZXhhbXBsZS5jb20vc29tZWRhdGEueG1sJywKICAgICAgICBTa2lwU1NMVmVyaWZpY2F0aW9uID0+IDEsICMgKG9wdGlvbmFsKQogICAgICAgIE5vTG9nICAgICAgICAgICAgICAgPT4gMSwgIyAob3B0aW9uYWwpCiAgICApOwoKT3IgYSBQT1NUIHJlcXVlc3Q7IGF0dHJpYnV0ZXMgY2FuIGJlIGEgaGFzaHJlZiBsaWtlIHRoaXM6CgogICAgbXkgJVJlc3BvbnNlID0gJFdlYlVzZXJBZ2VudE9iamVjdC0+UmVxdWVzdCgKICAgICAgICBVUkwgID0+ICdodHRwOi8vZXhhbXBsZS5jb20vc29tZXVybCcsCiAgICAgICAgVHlwZSA9PiAnUE9TVCcsCiAgICAgICAgRGF0YSA9PiB7IEF0dHJpYnV0ZTEgPT4gJ1ZhbHVlJywgQXR0cmlidXRlMiA9PiAnVmFsdWUyJyB9LAogICAgICAgIFNraXBTU0xWZXJpZmljYXRpb24gPT4gMSwgIyAob3B0aW9uYWwpCiAgICAgICAgTm9Mb2cgICAgICAgICAgICAgICA9PiAxLCAjIChvcHRpb25hbCkKICAgICk7CgphbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSBhbiBhcnJheXJlZiBsaWtlIHRoaXM6CgogICAgbXkgJVJlc3BvbnNlID0gJFdlYlVzZXJBZ2VudE9iamVjdC0+UmVxdWVzdCgKICAgICAgICBVUkwgID0+ICdodHRwOi8vZXhhbXBsZS5jb20vc29tZXVybCcsCiAgICAgICAgVHlwZSA9PiAnUE9TVCcsCiAgICAgICAgRGF0YSA9PiBbIEF0dHJpYnV0ZSA9PiAnVmFsdWUnLCBBdHRyaWJ1dGUgPT4gJ090aGVyVmFsdWUnIF0sCiAgICAgICAgU2tpcFNTTFZlcmlmaWNhdGlvbiA9PiAxLCAjIChvcHRpb25hbCkKICAgICAgICBOb0xvZyAgICAgICAgICAgICAgID0+IDEsICMgKG9wdGlvbmFsKQogICAgKTsKCnJldHVybnMKCiAgICAlUmVzcG9uc2UgPSAoCiAgICAgICAgU3RhdHVzICA9PiAnMjAwIE9LJywgICAgIyBodHRwIHN0YXR1cwogICAgICAgIENvbnRlbnQgPT4gJENvbnRlbnRSZWYsICMgY29udGVudCBvZiByZXF1ZXN0ZWQgVVJMCiAgICApOwoKWW91IGNhbiBldmVuIHBhc3Mgc29tZSBoZWFkZXJzCgogICAgbXkgJVJlc3BvbnNlID0gJFdlYlVzZXJBZ2VudE9iamVjdC0+UmVxdWVzdCgKICAgICAgICBVUkwgICAgPT4gJ2h0dHA6Ly9leGFtcGxlLmNvbS9zb21ldXJsJywKICAgICAgICBUeXBlICAgPT4gJ1BPU1QnLAogICAgICAgIERhdGEgICA9PiBbIEF0dHJpYnV0ZSA9PiAnVmFsdWUnLCBBdHRyaWJ1dGUgPT4gJ090aGVyVmFsdWUnIF0sCiAgICAgICAgSGVhZGVyID0+IHsKICAgICAgICAgICAgQXV0aG9yaXphdGlvbiA9PiAnQmFzaWMgeHh4eCcsCiAgICAgICAgICAgIENvbnRlbnRfVHlwZSAgPT4gJ3RleHQvanNvbicsCiAgICAgICAgfSwKICAgICAgICBTa2lwU1NMVmVyaWZpY2F0aW9uID0+IDEsICMgKG9wdGlvbmFsKQogICAgICAgIE5vTG9nICAgICAgICAgICAgICAgPT4gMSwgIyAob3B0aW9uYWwpCiAgICApOwoKSWYgeW91IG5lZWQgdG8gc2V0IGNyZWRlbnRpYWxzCgogICAgbXkgJVJlc3BvbnNlID0gJFdlYlVzZXJBZ2VudE9iamVjdC0+UmVxdWVzdCgKICAgICAgICBVUkwgICAgICAgICAgPT4gJ2h0dHA6Ly9leGFtcGxlLmNvbS9zb21ldXJsJywKICAgICAgICBUeXBlICAgICAgICAgPT4gJ1BPU1QnLAogICAgICAgIERhdGEgICAgICAgICA9PiBbIEF0dHJpYnV0ZSA9PiAnVmFsdWUnLCBBdHRyaWJ1dGUgPT4gJ090aGVyVmFsdWUnIF0sCiAgICAgICAgQ3JlZGVudGlhbHMgID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJ290b2JvX3VzZXInLAogICAgICAgICAgICBQYXNzd29yZCA9PiAnb3RvYm9fcGFzc3dvcmQnLAogICAgICAgICAgICBSZWFsbSAgICA9PiAnT1RPQk8gVW5pdHRlc3RzJywKICAgICAgICAgICAgTG9jYXRpb24gPT4gJ2Z0cC5vdG9iby5vcmc6ODAnLAogICAgICAgIH0sCiAgICAgICAgU2tpcFNTTFZlcmlmaWNhdGlvbiA9PiAxLCAjIChvcHRpb25hbCkKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiAgICAgICAgU2tpcFNTTEhvc3RuYW1lVmVyaWZpY2F0aW9uID0+IDEsICMgKE9wdGlvbmFsKQojIEVPIC8gT0F1dGgyCiAgICAgICAgTm9Mb2cgICAgICAgICAgICAgICA9PiAxLCAjIChvcHRpb25hbCkKICAgICk7Cgo9Y3V0CgpzdWIgUmVxdWVzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVmaW5lIG1ldGhvZCAtIGRlZmF1bHQgdG8gR0VUCiAgICAkUGFyYW17VHlwZX0gfHw9ICdHRVQnOwoKICAgIG15ICRSZXNwb25zZTsKCiAgICAjIGluaXQgYWdlbnQKICAgIG15ICRVc2VyQWdlbnQgPSBMV1A6OlVzZXJBZ2VudC0+bmV3KCk7CgogICAgIyBJbiBzb21lIHNjZW5hcmlvcyBsaWtlIHRyYW5zcGFyZW50IEhUVFBTIHByb3hpZXMsIGl0IGNhbiBiZSBuZWNjZXNzYXJ5IHRvIHR1cm4gb2ZmCiAgICAjICAgU1NMIGNlcnRpZmljYXRlIHZhbGlkYXRpb24uCiAgICBpZiAoCiAgICAgICAgJFBhcmFte1NraXBTU0xWZXJpZmljYXRpb259CgojIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICB8fCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1dlYlVzZXJBZ2VudDo6RGlzYWJsZVNTTFZlcmlmaWNhdGlvbicpCiAgICAgICAgKQogICAgewogICAgICAgICRVc2VyQWdlbnQtPnNzbF9vcHRzKAogICAgICAgICAgICBTU0xfdmVyaWZ5X21vZGUgPT4gMCwKICAgICAgICApOwogICAgfQoKICAgIGlmICgKICAgICAgICAkUGFyYW17U2tpcFNTTEhvc3RuYW1lVmVyaWZpY2F0aW9ufQoKIyBFTyAvIE9BdXRoMgogICAgICAgIHx8ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnV2ViVXNlckFnZW50OjpEaXNhYmxlU1NMVmVyaWZpY2F0aW9uJykKICAgICAgICApCiAgICB7CiAgICAgICAgJFVzZXJBZ2VudC0+c3NsX29wdHMoCiAgICAgICAgICAgIHZlcmlmeV9ob3N0bmFtZSA9PiAwLAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgY3JlZGVudGlhbHMKICAgIGlmICggJFBhcmFte0NyZWRlbnRpYWxzfSApIHsKICAgICAgICBteSAlQ3JlZGVudGlhbFBhcmFtcyAgICA9ICV7ICRQYXJhbXtDcmVkZW50aWFsc30gfHwge30gfTsKICAgICAgICBteSBAS2V5cyAgICAgICAgICAgICAgICA9IHF3KExvY2F0aW9uIFJlYWxtIFVzZXIgUGFzc3dvcmQpOwogICAgICAgIG15ICRBbGxDcmVkZW50aWFsUGFyYW1zID0gIWZpcnN0IHsgIWRlZmluZWQgJF8gfSBAQ3JlZGVudGlhbFBhcmFtc3tAS2V5c307CgogICAgICAgIGlmICgkQWxsQ3JlZGVudGlhbFBhcmFtcykgewogICAgICAgICAgICAkVXNlckFnZW50LT5jcmVkZW50aWFscygKICAgICAgICAgICAgICAgIEBDcmVkZW50aWFsUGFyYW1ze0BLZXlzfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgaGVhZGVycwogICAgaWYgKCAkUGFyYW17SGVhZGVyfSApIHsKICAgICAgICAkVXNlckFnZW50LT5kZWZhdWx0X2hlYWRlcnMoCiAgICAgICAgICAgIEhUVFA6OkhlYWRlcnMtPm5ldyggJXsgJFBhcmFte0hlYWRlcn0gfSApLAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgdGltZW91dAogICAgJFVzZXJBZ2VudC0+dGltZW91dCggJFNlbGYtPntUaW1lb3V0fSApOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBzZXQgdXNlciBhZ2VudAogICAgJFVzZXJBZ2VudC0+YWdlbnQoCiAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCdQcm9kdWN0JykgLiAnICcgLiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ZlcnNpb24nKQogICAgKTsKCiAgICAjIHNldCBwcm94eQogICAgaWYgKCAkU2VsZi0+e1Byb3h5fSApIHsKICAgICAgICAkVXNlckFnZW50LT5wcm94eSggWyAnaHR0cCcsICdodHRwcycsICdmdHAnIF0sICRTZWxmLT57UHJveHl9ICk7CiAgICB9CgogICAgaWYgKCAkUGFyYW17VHlwZX0gZXEgJ0dFVCcgKSB7CgogICAgICAgICMgcGVyZm9ybSBnZXQgcmVxdWVzdCBvbiBVUkwKICAgICAgICAkUmVzcG9uc2UgPSAkVXNlckFnZW50LT5nZXQoICRQYXJhbXtVUkx9ICk7CiAgICB9CgogICAgZWxzZSB7CgogICAgICAgICMgY2hlY2sgZm9yIERhdGEgcGFyYW0KICAgICAgICBpZiAoICFJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtEYXRhfSApICYmICFJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte0RhdGF9ICkgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+CiAgICAgICAgICAgICAgICAgICAgJ1dlYlVzZXJBZ2VudCBQT1NUOiBOZWVkIERhdGEgcGFyYW0gY29udGFpbmluZyBhIGhhc2hyZWYgb3IgYXJyYXlyZWYgd2l0aCBkYXRhLicsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAoIFN0YXR1cyA9PiAwICk7CiAgICAgICAgfQoKICAgICAgICAjIHBlcmZvcm0gcG9zdCByZXF1ZXN0IHBsdXMgZGF0YQogICAgICAgICRSZXNwb25zZSA9ICRVc2VyQWdlbnQtPnBvc3QoICRQYXJhbXtVUkx9LCAkUGFyYW17RGF0YX0gKTsKICAgIH0KCiAgICBpZiAoICEkUmVzcG9uc2UtPmlzX3N1Y2Nlc3MoKSApIHsKCiAgICAgICAgaWYgKCAhJFBhcmFte05vTG9nfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNhbid0IHBlcmZvcm0gJFBhcmFte1R5cGV9IG9uICRQYXJhbXtVUkx9OiAiIC4gJFJlc3BvbnNlLT5zdGF0dXNfbGluZSgpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgU3RhdHVzID0+ICRSZXNwb25zZS0+c3RhdHVzX2xpbmUoKSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHRoZSBjb250ZW50IHRvIGNvbnZlcnQgaW50ZXJuYWwgdXNlZCBjaGFyc2V0CiAgICBteSAkUmVzcG9uc2VDb250ZW50ID0gJFJlc3BvbnNlLT5kZWNvZGVkX2NvbnRlbnQoKTsKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpFbmNvZGUnKS0+RW5jb2RlSW5wdXQoIFwkUmVzcG9uc2VDb250ZW50ICk7CgogICAgaWYgKCAkUGFyYW17UmV0dXJufSAmJiAkUGFyYW17UmV0dXJufSBlcSAnUkVRVUVTVCcgKSB7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgU3RhdHVzICA9PiAkUmVzcG9uc2UtPnN0YXR1c19saW5lKCksCiAgICAgICAgICAgIENvbnRlbnQgPT4gXCRSZXNwb25zZS0+cmVxdWVzdCgpLT5hc19zdHJpbmcoKSwKICAgICAgICApOwogICAgfQoKICAgICMgcmV0dXJuIHJlcXVlc3QKICAgIHJldHVybiAoCiAgICAgICAgU3RhdHVzICA9PiAkUmVzcG9uc2UtPnN0YXR1c19saW5lKCksCiAgICAgICAgQ29udGVudCA9PiBcJFJlc3BvbnNlQ29udGVudCwKICAgICk7Cn0KCjE7Cg==</File>
        <File Location="scripts/test/OAuthGrantTypes.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwp1c2UgRmluZEJpbiBxdygkQmluKTsKCiMgQ1BBTiBtb2R1bGVzCnVzZSBUZXN0Mjo6VjA7CnVzZSBDcnlwdDo6SldUIHF3KGVuY29kZV9qd3QgZGVjb2RlX2p3dCk7CnVzZSBDcnlwdDo6UEs6OlJTQTsKdXNlIFBsYWNrOjpSdW5uZXI7CnVzZSBQbGFjazo6UmVxdWVzdDsKdXNlIFRyeTo6VGlueSBxdyh0cnkgY2F0Y2gpOwp1c2UgSlNPTjsKdXNlIFVSSTo6RXNjYXBlIHF3KHVyaV9lc2NhcGVfdXRmOCk7CgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJPTTsgICAgIyBzZXQgdXAgJEtlcm5lbDo6T00KCm15ICRDdXJyZW50VGltZSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpLT5Ub0Vwb2NoKCk7CgpteSAkTWFpbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyk7CiRNYWluT2JqZWN0LT5SZXF1aXJlKCIkQmluL09BdXRoUHJvdmlkZXJNb2NrIik7CgpteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKJERCT2JqZWN0LT5Db25uZWN0KCk7CiREQk9iamVjdC0+QmVnaW5Xb3JrKCk7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIG1haW4gdGVzdAojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyB3YWl0IGZvciB0aGUgZmFrZSBhdXRob3JpemF0aW9uIHNlcnZlciB0byBjb21lIHVwCnNsZWVwIDE7CgpteSAkQ29uZmlnT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwpteSAkVG9rZW5Qcm92aWRlciAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5Qcm92aWRlcicpOwpteSAkVG9rZW5SZXBvc2l0b3J5ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5Jyk7Cm15ICRPSURDQ29uZmlndXJhdGlvbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpDb25maWd1cmF0aW9uJyk7CgojIHRoZSBPcGVuSURDb25maWcgd2Ugd2lsbCB1c2UuIFRoaXMgd291bGQgbm9ybWFsbHkgY29tZSBmcm9tIFN5c0NvbmZpZwpteSAkT3BlbklEQ29uZmlnID0gT0F1dGhQcm92aWRlck1vY2s6OkdldFRlc3RPcGVuSURDb25maWcoKTsKCiMgVGVzdCBQZXJtdXRhdGlvbnMKbXkgQFRlc3RTY29wZXMgPSAoCiAgICAnJywKICAgICdvcGVuaWQnLAogICAgJ29wZW5pZCBlbWFpbCBwcm9maWxlcycsCiAgICAnb3BlbmlkIGh0dHA6Ly93aWxkLnNjb3BlLm9yZycsCik7CgpteSBAVGVzdFJlc291cmNlcyA9ICgKICAgICcnLAogICAgJ3NvbWVhcGknLAogICAgJ3NvbWVhcGkgb3RoZXJhcGknLAogICAgJ3NvbWVhcGkgaHR0cDovL3dpbGQucmVzb3VyY2Uub3JnLycsCik7CgpteSBAVGVzdFJlc291cmNlUGFyYW1OYW1lcyA9ICgKICAgICcnLAogICAgJ3Jlc291cmNlJywKICAgICdyZXNvdXJjZXMnLAogICAgJ3Jlc291cmNlSWRzJywKKTsKCm15IEBUb2tlblR5cGUgPSAoCiAgICAnYWNjZXNzX3Rva2VuJywKICAgICdpZF90b2tlbicsCik7CgojIE1haW4gVGVzdCBDYXNlcwpteSAkVGVzdENhc2VzID0gWwogICAgewogICAgICAgIEdyYW50VHlwZSA9PiAnY2xpZW50X2NyZWRlbnRpYWxzJywKICAgICAgICBFeHBlY3RlZCAgPT4gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZW5kcG9pbnQiID0+ICJvcGVuaWQiLAogICAgICAgICAgICAgICAgImNvbnRlbnQiICA9PiAiIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZW5kcG9pbnQiID0+ICJqd2tzIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAidG9rZW4iLAogICAgICAgICAgICAgICAgImNvbnRlbnQiICA9PiAiZ3JhbnRfdHlwZT1jbGllbnRfY3JlZGVudGlhbHMiCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgfSwKICAgIHsKICAgICAgICBHcmFudFR5cGUgPT4gJ3Bhc3N3b3JkJywKICAgICAgICBVc2VybmFtZSAgPT4gJ3Rlc3QxQGV4YW1wbGUuY29tJywKICAgICAgICBQYXNzd29yZCAgPT4gJ3Rlc3QnLAogICAgICAgIEV4cGVjdGVkICA9PiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJlbmRwb2ludCIgPT4gIm9wZW5pZCIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJlbmRwb2ludCIgPT4gImp3a3MiLAogICAgICAgICAgICAgICAgImNvbnRlbnQiICA9PiAiIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZW5kcG9pbnQiID0+ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICJncmFudF90eXBlPXBhc3N3b3JkJnVzZXJuYW1lPXRlc3QxJTQwZXhhbXBsZS5jb20mcGFzc3dvcmQ9dGVzdCIKICAgICAgICAgICAgfSwKICAgICAgICBdCiAgICB9LAogICAgewogICAgICAgIEdyYW50VHlwZSA9PiAnYXV0aG9yaXphdGlvbl9jb2RlJywKICAgICAgICBFeHBlY3RlZCAgPT4gWwoKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAib3BlbmlkIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAiandrcyIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJlbmRwb2ludCIgPT4gInRva2VuIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gImdyYW50X3R5cGU9YXV0aG9yaXphdGlvbl9jb2RlJmNvZGU9Q09GRkZFRUJBQkVDT0ZGRUUmcmVkaXJlY3RfdXJpPWh0dHAlM0ElMkYlMkZzb21ld2hlcmUuY29tJTJGIgogICAgICAgICAgICB9LAogICAgICAgIF0KICAgIH0sCl07CgpldmFsIHsKCiAgICAjIG1ha2Ugc3VyZSBjYWNoZSBpcyBjbGVhbiBmb3IgdGVzdGluZwogICAgJE9JRENDb25maWd1cmF0aW9uLT5HZXRQcm92aWRlckRhdGEoCiAgICAgICAgT3BlbklEQ29uZmlnID0+ICRPcGVuSURDb25maWcsCiAgICAgICAgTm9DYWNoZSAgICAgID0+IDEsCiAgICApOwoKICAgICMgT0F1dGhQcm92aWRlck1vY2s6OkFzc2VydEh0dHBDYWxsTG9nKCBFeHBlY3RlZCA9PiBbCgogICAgIyAgICAgICAgIHsKICAgICMgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAib3BlbmlkIiwKICAgICMgICAgICAgICAgICAgImNvbnRlbnQiICA9PiAiIgogICAgIyAgICAgICAgIH0sCiAgICAjICAgICAgICAgewogICAgIyAgICAgICAgICAgICAiZW5kcG9pbnQiID0+ICJqd2tzIiwKICAgICMgICAgICAgICAgICAgImNvbnRlbnQiICA9PiAiIgogICAgIyAgICAgICAgIH0sCiAgICAjIF0pOwoKICAgICMgaXRlcmF0ZSEKICAgIGZvciBteSAkVGVzdENhc2UgKEAkVGVzdENhc2VzKSB7CiAgICAgICAgZm9yIG15ICRSZXNvdXJjZXMgKEBUZXN0UmVzb3VyY2VzKSB7CiAgICAgICAgICAgIGZvciBteSAkUmVzb3VyY2VQYXJhbU5hbWUgKEBUZXN0UmVzb3VyY2VQYXJhbU5hbWVzKSB7CiAgICAgICAgICAgICAgICBmb3IgbXkgJFNjb3BlIChAVGVzdFNjb3BlcykgewogICAgICAgICAgICAgICAgICAgIGZvciBteSAkVG9rZW5UeXBlIChAVG9rZW5UeXBlKSB7CgogICAgICAgICAgICAgICAgICAgICAgICBDbGVhbnVwKCk7CgogICAgICAgICAgICAgICAgICAgICAgICAjIHBhdGNoIHN5c2NvbmZpZyBqdXN0IGZvciB0aGlzIHByb2Nlc3MgLyByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgIFByZXBhcmVUZXN0U3lzQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJSRUZXN0Q2FzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjb3BlICAgICAgICAgICAgID0+ICRTY29wZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlcyAgICAgICAgID0+ICRSZXNvdXJjZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkUmVzb3VyY2VQYXJhbU5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiAgICAgICAgICAgICA9PiAkVG9rZW5UeXBlLAogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyB1c2UgVG9rZW5Qcm92aWRlciB0byBmZXRjaCBhIFRva2VuIGZvciB0aGUgY29uZmlndXJlZCB1bml0IHRlc3QgYWNjb3VudAoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkVGVzdENhc2UtPntHcmFudFR5cGV9IG5lICdhdXRob3JpemF0aW9uX2NvZGUnICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFJlc3VsdCA9ICRUb2tlblByb3ZpZGVyLT5GZXRjaCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2NvdW50TmFtZSA9PiAnX1VuaXRUZXN0MScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgb2soICRSZXN1bHQtPntTdWNjZXNzfSwgICAgICAgICAgICAgICAgICJSZXN1bHQgaXMgU3VjY2Vzcy4iICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvayggJFJlc3VsdC0+e09yaWdpbn0gZXEgJ2ZyZXNoX3Rva2VuJywgIk9yaWdpbiBpcyBmcmVzaF90b2tlbi4iICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGlzIGlzIGF1dGhvcml6YXRpb25fZmxvdywgaW5pdGlhbCB0b2tlbiBjYW4gb25seSBiZSBmZXRjaGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHdpdGggdGhlICdjb2RlJyByZWNlaXZlZCB0aHJvdWdoIHRoZSBicndvc2VyIGZsb3cKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRSZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2hUb2tlbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2NvdW50TmFtZSA9PiAnX1VuaXRUZXN0MScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZSAgICAgICAgPT4gJ0NPRkZGRUVCQUJFQ09GRkVFJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWRpcmVjdFVSTCA9PiAnaHR0cDovL3NvbWV3aGVyZS5jb20vJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9ICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvayggJFJlc3VsdC0+e09yaWdpbn0gZXEgJ2ZyZXNoX3Rva2VuJyApOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb25jZSB3ZSBoYXZlIGl0LCBpdCBjYW4gYmUgcmV0cmVpdmVkIGZyb20gY2FjaGUgYXMgdXN1YWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRSZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2goCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjb3VudE5hbWUgPT4gJ19Vbml0VGVzdDEnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rKCAkUmVzdWx0LT57U3VjY2Vzc30sICAgICAgICAgICAiUmVzdWx0IGlzIFN1Y2Nlc3MuIiApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgb2soICRSZXN1bHQtPntPcmlnaW59IGVxICdjYWNoZScsICJPcmlnaW4gaXMgY2FjaGUiICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICMgcGF0Y2ggdXAgRXhwZWN0ZWQgQ29udGVudCBkeW5hbWljYWxseSB3aXRoCiAgICAgICAgICAgICAgICAgICAgICAgICMgc2NvcGUsIHJlc291cmNlIHBhcmFtZXRlcnMsIGZvciB2YXJpb3VzCiAgICAgICAgICAgICAgICAgICAgICAgICMgJ3Jlc291cmNlIHBhcmFtZXRlciBuYW1lcycKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJEV4cGVjdGVkQ29udGVudCA9ICcnOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRSZXNvdXJjZXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRSZXNvdXJjZVBhcmFtID0gJFJlc291cmNlUGFyYW1OYW1lIHx8ICdyZXNvdXJjZSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRXhwZWN0ZWRDb250ZW50IC49ICImJFJlc291cmNlUGFyYW09IiAuIHVyaV9lc2NhcGVfdXRmOCgkUmVzb3VyY2VzKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFNjb3BlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRXhwZWN0ZWRDb250ZW50IC49ICImc2NvcGU9IiAuIHVyaV9lc2NhcGVfdXRmOCgkU2NvcGUpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEV4cGVjdGVkQ29udGVudCAuPSAiJnNjb3BlPW9wZW5pZCI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICMgaW1wbCBhY3R1YWxseSBwcm9kdWNlcyAnKyogaW5zdGVhZCBvZiAnJTIwJywgZml4IHRoYXQKICAgICAgICAgICAgICAgICAgICAgICAgJEV4cGVjdGVkQ29udGVudCA9fiBzLyUyMC8rL2c7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGJ1aWxkIGFuIEV4cGVjdGF0aW9uIGFycmF5IGZyb20gdGhlIFRlc3RDYXNlIHRlbXBsYXRlCiAgICAgICAgICAgICAgICAgICAgICAgICMgZm9yIHRoaXMgcGVybXV0YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgbXkgQEV4cGVjdGVkOwogICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJEV4cGVjdGF0aW9uICggJFRlc3RDYXNlLT57RXhwZWN0ZWR9LT5AKiApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQEV4cGVjdGVkLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQnID0+ICRFeHBlY3RhdGlvbi0+e2VuZHBvaW50fSBlcSAndG9rZW4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRXhwZWN0YXRpb24tPntjb250ZW50fSAuICRFeHBlY3RlZENvbnRlbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRFeHBlY3RhdGlvbi0+e2NvbnRlbnR9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlbmRwb2ludCcgPT4gJEV4cGVjdGF0aW9uLT57ZW5kcG9pbnR9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcGVyYXRvcicgPT4gJEV4cGVjdGF0aW9uLT57b3BlcmF0b3J9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgT0F1dGhQcm92aWRlck1vY2s6OkFzc2VydEh0dHBDYWxsTG9nKCBFeHBlY3RlZCA9PiBcQEV4cGVjdGVkICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9OwppZiAoJEApIHsKICAgIHByaW50IFNUREVSUiAkQCAuICJcbiI7CiAgICBvayggMCwgInNob3VsZCBub3QgdGhyb3cuIiApOwp9CgojIG92ZXIgYW5kIG91dApkb25lX3Rlc3Rpbmc7CgpDbGVhbnVwKCk7CgokREJPYmplY3QtPlJvbGxiYWNrKCk7CgojIHRlYXIgZG93biBmYWtlIHNlcnZlcgpraWxsKCAnVEVSTScsICRPQXV0aFByb3ZpZGVyTW9jazo6Q2hpbGRQSUQgKTsKd2FpdHBpZCggJE9BdXRoUHJvdmlkZXJNb2NrOjpDaGlsZFBJRCwgMCApOwoKIyBwYXRjaCBzeXNjb25maWcganVzdCBmb3IgdGhpcyBwcm9jZXNzIC8gcmVxdWVzdAoKc3ViIFByZXBhcmVUZXN0U3lzQ29uZmlnIHsKCiAgICBteSAlUGFyYW0gPSBAXzsKCiAgICAjIGNyZWF0ZSBwcm9maWxlCgogICAgbXkgJFlBTUxPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6WUFNTCcpOwoKICAgIG15ICRWYWxpZCA9IDE7CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIGlkIEZST00gb2lkY19mdW5jdGlvbmFsX2FjY291bnRzIFdIRVJFIG5hbWUgPSAnX1VuaXRUZXN0MScgIiwKCiAgICAgICAgIyAgICAgICAgICAgIEJpbmQgID0+IFsgXCRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e05hbWV9IF0sCiAgICAgICAgIyAgICAgICAgICAgIExpbWl0ID0+IDEKICAgICk7CgogICAgbXkgKCRJRCkgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKTsKCiAgICBpZiAoJElEKSB7CiAgICAgICAgJERCT2JqZWN0LT5EbyggU1FMID0+ICJERUxFVEUgRlJPTSBvYXV0aDJfdG9rZW5fc3RvcmFnZSBXSEVSRSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudF9pZCA9ICIgLiAkSUQgKTsKICAgIH0KICAgICREQk9iamVjdC0+RG8oIFNRTCA9PiAiREVMRVRFIEZST00gb2lkY19mdW5jdGlvbmFsX2FjY291bnRzIFdIRVJFIG5hbWUgPSAnX1VuaXRUZXN0MScgIiApOwogICAgJERCT2JqZWN0LT5EbyggU1FMID0+ICJERUxFVEUgRlJPTSBvaWRjX3Byb2ZpbGVzIFdIRVJFIG5hbWUgPSAnIiAuICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e05hbWV9IC4gIiciICk7CgogICAgJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gIklOU0VSVCBJTlRPIG9pZGNfcHJvZmlsZXMKICAgICAgICAgICAgICAgICggbmFtZSxjbGllbnRfaWQsY2xpZW50X1NlY3JldCxyZWRpcmVjdF91cmksb3BlbmlkX2NvbmZpZywKICAgICAgICAgICAgICAgIHNzbF9vcHRpb25zLG1pc2MsdHRsLHZhbGlkX2lkLAogICAgICAgICAgICAgICAgY3JlYXRlX3RpbWUsY3JlYXRlX2J5LGNoYW5nZV90aW1lLGNoYW5nZV9ieSApCiAgICAgICAgICAgICAgICBWQUxVRVMgKD8sID8sID8sID8sPywgPywgPywgPywgPywgY3VycmVudF90aW1lc3RhbXAsIDEsIGN1cnJlbnRfdGltZXN0YW1wLCAxKSIsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc30tPntOYW1lfSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRJRH0sCiAgICAgICAgICAgIFwkT3BlbklEQ29uZmlnLT57Q2xpZW50U2V0dGluZ3N9LT57Q2xpZW50U2VjcmV0fSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntSZWRpcmVjdFVSSX0gLy8gJycsCiAgICAgICAgICAgIFwkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc30tPntPcGVuSURDb25maWd1cmF0aW9ufSwKICAgICAgICAgICAgXCRZQU1MT2JqZWN0LT5EdW1wKCBEYXRhID0+ICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e1NTTE9wdGlvbnN9ICksCiAgICAgICAgICAgIFwkWUFNTE9iamVjdC0+RHVtcCggRGF0YSA9PiAkT3BlbklEQ29uZmlnLT57TWlzY30gLy8ge30gKSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e1RUTH0sCiAgICAgICAgICAgIFwkVmFsaWQsCiAgICAgICAgXSwKICAgICk7CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgPT4gIlNFTEVDVCBpZCBGUk9NIG9pZGNfcHJvZmlsZXMgV0hFUkUgbmFtZSA9ID8gIiwKICAgICAgICBCaW5kID0+IFsgXCRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e05hbWV9IF0sCgogICAgICAgICMgICAgICAgICAgICBMaW1pdCA9PiAxCiAgICApOwoKICAgICgkSUQpID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCk7CgogICAgIyBjcmVhdGUgZnVuY3Rpb25hbCBhY2NvdW50CgogICAgbXkgJEdyYW50VHlwZSAgICAgICAgID0gJFBhcmFte0dyYW50VHlwZX0gICAgICAgICB8fCAnY2xpZW50X2NyZWRlbnRpYWxzJzsKICAgIG15ICRTY29wZSAgICAgICAgICAgICA9ICRQYXJhbXtTY29wZX0gICAgICAgICAgICAgfHwgJ29wZW5pZCc7CiAgICBteSAkUmVzb3VyY2VzICAgICAgICAgPSAkUGFyYW17UmVzb3VyY2VzfSAgICAgICAgIHx8ICcnOwogICAgbXkgJFJlc291cmNlUGFyYW1OYW1lID0gJFBhcmFte1Jlc291cmNlUGFyYW1OYW1lfSB8fCAncmVzb3VyY2UnOwogICAgbXkgJFRva2VuVHlwZSAgICAgICAgID0gJFBhcmFte1Rva2VufSAgICAgICAgICAgICB8fCAnYWNjZXNzX3Rva2VuJzsKCiAgICAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCA9PiAiSU5TRVJUIElOVE8gb2lkY19mdW5jdGlvbmFsX2FjY291bnRzCiAgICAgICAgICAgICAgICAobmFtZSwgb2lkY19wcm9maWxlX2lkLGdyYW50X3R5cGUsc2NvcGVzLHJlc291cmNlcywKICAgICAgICAgICAgICAgIHJlc291cmNlX3BhcmFtX25hbWUsdXNlcm5hbWUscGFzc3dkLCB0b2tlbl90eXBlLCB2YWxpZF9pZCwKICAgICAgICAgICAgICAgIGNyZWF0ZV90aW1lLGNyZWF0ZV9ieSxjaGFuZ2VfdGltZSxjaGFuZ2VfYnkgKQogICAgICAgICAgICAgICAgVkFMVUVTICggJ19Vbml0VGVzdDEnLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgMSwgY3VycmVudF90aW1lc3RhbXAsIDEpIiwKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRJRCwKICAgICAgICAgICAgXCRHcmFudFR5cGUsCiAgICAgICAgICAgIFwkU2NvcGUsCiAgICAgICAgICAgIFwkUmVzb3VyY2VzLAogICAgICAgICAgICBcJFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgICAgICBcJFBhcmFte1VzZXJuYW1lfSwKICAgICAgICAgICAgXCRQYXJhbXtQYXNzd29yZH0sCiAgICAgICAgICAgIFwkVG9rZW5UeXBlLAogICAgICAgICAgICBcJFZhbGlkLAogICAgICAgIF0sCiAgICApOwoKICAgICMgIyBjb25maWd1cmUgYW4gT0lEQyBQcm9maWxlIGZvciB0aGUgdW5pdCB0ZXN0CiAgICAjICRDb25maWdPYmplY3QtPlNldCgKICAgICMgICAgIEtleSAgID0+ICdPcGVuSURDb25uZWN0OjpPSUNEUHJvdmlkZXI6Ol9Vbml0VGVzdDEnLAogICAgIyAgICAgVmFsdWUgPT4gJE9wZW5JRENvbmZpZywKICAgICMgKTsKCiAgICAjICMgY29uZmlndXJlIGEgZnVuY3Rpb25hbCBhY2NvdW50IHRoYXQgdXNlcyBhYm92ZSBjb25maWcKICAgICMgJENvbmZpZ09iamVjdC0+U2V0KAogICAgIyAgICAgS2V5ICAgPT4gJ09wZW5JRENvbm5lY3Q6OkZ1bmN0aW9uYWxBY2NvdW50cycsCiAgICAjICAgICBWYWx1ZSA9PiB7CiAgICAjICAgICAgICAgJ19Vbml0VGVzdDEnID0+IHsKCiAgICAjICAgICAgICAgICAgIE9wZW5JRENvbmZpZyAgICAgID0+ICdPcGVuSURDb25uZWN0OjpPSUNEUHJvdmlkZXI6Ol9Vbml0VGVzdDEnLAogICAgIyAgICAgICAgICAgICBHcmFudFR5cGUgICAgICAgICA9PiAkUGFyYW17R3JhbnRUeXBlfSB8fCAnY2xpZW50X2NyZWRlbnRpYWxzJywKICAgICMgICAgICAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJFBhcmFte1Njb3BlfSAgICAgfHwgJ29wZW5pZCcsCiAgICAjICAgICAgICAgICAgIFJlc291cmNlcyAgICAgICAgID0+ICRQYXJhbXtSZXNvdXJjZXN9LAogICAgIyAgICAgICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkUGFyYW17UmVzb3VyY2VQYXJhbU5hbWV9IHx8ICdyZXNvdXJjZScsCiAgICAjICAgICAgICAgICAgIFRva2VuICAgICAgICAgICAgID0+ICRQYXJhbXtUb2tlbn0gICAgICAgICAgICAgfHwgJ2FjY2Vzc190b2tlbicsCiAgICAjICAgICAgICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRQYXJhbXtVc2VybmFtZX0sCiAgICAjICAgICAgICAgICAgIFBhc3N3b3JkICAgICAgICAgID0+ICRQYXJhbXtQYXNzd29yZH0sCiAgICAjICAgICAgICAgfQogICAgIyAgICAgfSwKICAgICMgKTsKCiAgICByZXR1cm47Cn0KCnN1YiBDbGVhbnVwIHsKCiAgICAjIGNsZWFudXAgY2FjaGUgYW5kIGRiCiAgICAkVG9rZW5SZXBvc2l0b3J5LT5EZWxldGVUb2tlbigKICAgICAgICBBY2NvdW50TmFtZSA9PiAnX1VuaXRUZXN0MScsCiAgICApOwoKICAgIENsZWFudXBDYWNoZSgpOwoKICAgIHJldHVybjsKfQoKc3ViIENsZWFudXBDYWNoZSB7CgogICAgJFRva2VuUHJvdmlkZXItPkVtcHR5Q2FjaGUoCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJ19Vbml0VGVzdDEnLAogICAgKTsKCiAgICByZXR1cm47Cn0K</File>
        <File Location="scripts/test/OAuthToken.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwp1c2UgRmluZEJpbiBxdygkQmluKTsKCiMgQ1BBTiBtb2R1bGVzCnVzZSBUZXN0Mjo6VjA7CnVzZSBDcnlwdDo6SldUIHF3KGVuY29kZV9qd3QgZGVjb2RlX2p3dCk7CnVzZSBDcnlwdDo6UEs6OlJTQTsKdXNlIFBsYWNrOjpSdW5uZXI7CnVzZSBQbGFjazo6UmVxdWVzdDsKdXNlIFRyeTo6VGlueSBxdyh0cnkgY2F0Y2gpOwp1c2UgSlNPTjsKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpSZWdpc3Rlck9NOyAgICAjIHNldCB1cCAkS2VybmVsOjpPTQoKbXkgJEN1cnJlbnRUaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyktPlRvRXBvY2goKTsKCm15ICRNYWluT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKJE1haW5PYmplY3QtPlJlcXVpcmUoIiRCaW4vT0F1dGhQcm92aWRlck1vY2siKTsKCiRPQXV0aFByb3ZpZGVyTW9jazo6S2lkSUQgfHwgJE9BdXRoUHJvdmlkZXJNb2NrOjpQcml2YXRlS2V5IHx8IDA7ICAgICMgcHJldmVudCB3YXJuaW5ncwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBtYWluIHRlc3QKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgd2FpdCBmb3IgdGhlIGZha2UgYXV0aG9yaXphdGlvbiBzZXJ2ZXIgdG8gY29tZSB1cApzbGVlcCAxOwoKbXkgJENvbmZpZ09iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKbXkgJE9JRENDb25maWd1cmF0aW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nKTsKbXkgJFRva2VuT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJyk7CgojIHRoZSBPcGVuSURDb25maWcgd2Ugd2lsbCB1c2UuIFRoaXMgd291bGQgbm9ybWFsbHkgY29tZSBmcm9tIFN5c0NvbmZpZwpteSAkT3BlbklEQ29uZmlnID0gT0F1dGhQcm92aWRlck1vY2s6OkdldFRlc3RPcGVuSURDb25maWcoKTsKCiMgbWFrZSBzdXJlIGNhY2hlIGlzIGNsZWFuIGZvciB0ZXN0aW5nCiRPSURDQ29uZmlndXJhdGlvbi0+R2V0UHJvdmlkZXJEYXRhKAogICAgT3BlbklEQ29uZmlnID0+ICRPcGVuSURDb25maWcsCiAgICBOb0NhY2hlICAgICAgPT4gMSwKKTsKCm15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwokREJPYmplY3QtPkNvbm5lY3QoKTsKJERCT2JqZWN0LT5CZWdpbldvcmsoKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgY3JlYXRlIGEgSldUIHRvIHRlc3QsIHNpZ24gdXNpbmcgb3VyIHByaXZhdGUgUlNBIGtleSBmcm9tIGFib3ZlCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpteSAkVG9rZW4gPSBlbmNvZGVfand0KAogICAgcGF5bG9hZCAgICAgICA9PiBPQXV0aFByb3ZpZGVyTW9jazo6UGF5bG9hZCgpLAogICAgYWxnICAgICAgICAgICA9PiAnUlMyNTYnLAogICAga2V5ICAgICAgICAgICA9PiAkT0F1dGhQcm92aWRlck1vY2s6OlByaXZhdGVLZXksCiAgICBleHRyYV9oZWFkZXJzID0+IHsga2lkID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6S2lkSUQgfSwKKTsKCiMgbm93IHZhbGlkYXRlIHRoaXMgdG9rZW4sIHdoaWNoIHdpbGwgdGFsayB0byBvdXIgZmFrZSBhdXRob3JpemF0aW9uIHNlcnZlcgojIGFuZCBmZXRjaCB0aGUgcHVibGljIGtleSB0byB2YWxpZGF0ZSB0aGUgc2lnbmF0dXJlCgpteSAkUmVzdWx0ID0gJFRva2VuT2JqZWN0LT5WYWxpZGF0ZSgKICAgIFRva2VuICAgICAgICA9PiAkVG9rZW4sCiAgICBPcGVuSURDb25maWcgPT4gJE9wZW5JRENvbmZpZywKKTsKCm9rKCAkUmVzdWx0LT57U3VjY2Vzc30sICdUb2tlbiB2YWxpZC4nICk7CgokUmVzdWx0ID0gJFRva2VuT2JqZWN0LT5WYWxpZGF0ZSgKICAgIFRva2VuICAgICAgICAgID0+ICRUb2tlbiwKICAgIE9wZW5JRENvbmZpZyAgID0+ICRPcGVuSURDb25maWcsCiAgICBFeHBlY3RlZFNjb3BlcyA9PiAnb3BlbmlkJywKKTsKCm9rKCAkUmVzdWx0LT57U3VjY2Vzc30sICdUb2tlbiBzY29wZSBpbmNsdWRlcyBvcGVuaWQnICk7CgokUmVzdWx0ID0gJFRva2VuT2JqZWN0LT5WYWxpZGF0ZSgKICAgIFRva2VuICAgICAgICAgID0+ICRUb2tlbiwKICAgIE9wZW5JRENvbmZpZyAgID0+ICRPcGVuSURDb25maWcsCiAgICBFeHBlY3RlZFNjb3BlcyA9PiAnb3BlbmlkIHJvbGVzJywKKTsKCm9rKCAkUmVzdWx0LT57U3VjY2Vzc30sICdUb2tlbiBzY29wZSBpbmNsdWRlcyBvcGVuaWQgYW5kIHJvbGVzJyApOwoKJFJlc3VsdCA9ICRUb2tlbk9iamVjdC0+VmFsaWRhdGUoCiAgICBUb2tlbiAgICAgICAgICA9PiAkVG9rZW4sCiAgICBPcGVuSURDb25maWcgICA9PiAkT3BlbklEQ29uZmlnLAogICAgRXhwZWN0ZWRTY29wZXMgPT4gJ29wZW5pZDInLAopOwoKb2soICEkUmVzdWx0LT57U3VjY2Vzc30sICdUb2tlbiBzY29wZSBkb2VzIG5vdCBpbmNsdWRlIG9wZW5pZDInICk7CgokUmVzdWx0ID0gJFRva2VuT2JqZWN0LT5WYWxpZGF0ZSgKICAgIFRva2VuICAgICAgICAgICA9PiAkVG9rZW4sCiAgICBPcGVuSURDb25maWcgICAgPT4gJE9wZW5JRENvbmZpZywKICAgIEF1dGhvcml6ZWRQYXJ0eSA9PiAnb3RvYm8nLAopOwoKb2soICRSZXN1bHQtPntTdWNjZXNzfSwgJ0F1dGhvcml6ZWQgcGFydHkgaXMgb3RvYm8nICk7CgokUmVzdWx0ID0gJFRva2VuT2JqZWN0LT5WYWxpZGF0ZSgKICAgIFRva2VuICAgICAgICAgICA9PiAkVG9rZW4sCiAgICBPcGVuSURDb25maWcgICAgPT4gJE9wZW5JRENvbmZpZywKICAgIEF1dGhvcml6ZWRQYXJ0eSA9PiAndW5rbm93bicsCik7Cm9rKCAhJFJlc3VsdC0+e1N1Y2Nlc3N9LCAnQXVyaG9yaXplZCBwYXJ0eSBpcyBub3QgdW5rbm93bi4nICk7CgokUmVzdWx0ID0gJFRva2VuT2JqZWN0LT5WYWxpZGF0ZSgKICAgIFRva2VuICAgICAgICAgICAgPT4gJFRva2VuLAogICAgT3BlbklEQ29uZmlnICAgICA9PiAkT3BlbklEQ29uZmlnLAogICAgRXhwZWN0ZWRBdWRpZW5jZSA9PiAnb3RvYm8nLAopOwpvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAnQUF1ZGllbmNlIGluY2x1ZGVzIG90b2JvJyApOwoKJFJlc3VsdCA9ICRUb2tlbk9iamVjdC0+VmFsaWRhdGUoCiAgICBUb2tlbiAgICAgICAgICAgID0+ICRUb2tlbiwKICAgIE9wZW5JRENvbmZpZyAgICAgPT4gJE9wZW5JRENvbmZpZywKICAgIEV4cGVjdGVkQXVkaWVuY2UgPT4gJ290b2JvMicsCik7Cm9rKCAhJFJlc3VsdC0+e1N1Y2Nlc3N9LCAnQUF1ZGllbmNlIGRvZXMgbm90IGluY2x1ZGUgb3RvYm8yJyApOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBhc3NlcnQgb24gdGhlIHNweSBsb2cKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk9BdXRoUHJvdmlkZXJNb2NrOjpBc3NlcnRIdHRwQ2FsbExvZygKICAgIEV4cGVjdGVkID0+IFsKICAgICAgICB7CiAgICAgICAgICAgICJlbmRwb2ludCIgPT4gIm9wZW5pZCIsCiAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgImVuZHBvaW50IiA9PiAiandrcyIsCiAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICB9LAogICAgXQopOwoKIyBvdmVyIGFuZCBvdXQKZG9uZV90ZXN0aW5nOwoKJERCT2JqZWN0LT5Sb2xsYmFjaygpOwoKIyB0ZWFyIGRvd24gZmFrZSBzZXJ2ZXIKa2lsbCggJ1RFUk0nLCAkT0F1dGhQcm92aWRlck1vY2s6OkNoaWxkUElEICk7CndhaXRwaWQoICRPQXV0aFByb3ZpZGVyTW9jazo6Q2hpbGRQSUQsIDAgKTsKCiMgcGF0Y2ggc3lzY29uZmlnIGp1c3QgZm9yIHRoaXMgcHJvY2VzcyAvIHJlcXVlc3QKCnN1YiBQcmVwYXJlVGVzdFN5c0NvbmZpZyB7CgogICAgIyBubyBvcAogICAgcmV0dXJuOwp9Cg==</File>
        <File Location="scripts/test/OAuthAuthUrl.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwp1c2UgRmluZEJpbiBxdygkQmluKTsKCiMgQ1BBTiBtb2R1bGVzCnVzZSBUZXN0Mjo6VjA7CnVzZSBDcnlwdDo6SldUIHF3KGVuY29kZV9qd3QgZGVjb2RlX2p3dCk7CnVzZSBDcnlwdDo6UEs6OlJTQTsKdXNlIFBsYWNrOjpSdW5uZXI7CnVzZSBQbGFjazo6UmVxdWVzdDsKdXNlIFRyeTo6VGlueSBxdyh0cnkgY2F0Y2gpOwp1c2UgSlNPTjsKdXNlIFVSSTo6RXNjYXBlIHF3KHVyaV9lc2NhcGVfdXRmOCk7CgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJPTTsgICAgIyBzZXQgdXAgJEtlcm5lbDo6T00KCm15ICRNYWluT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKJE1haW5PYmplY3QtPlJlcXVpcmUoIiRCaW4vT0F1dGhQcm92aWRlck1vY2siKTsKCm15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwokREJPYmplY3QtPkNvbm5lY3QoKTsKCm15ICRDb25maWdPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7Cm15ICRUb2tlblByb3ZpZGVyICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblByb3ZpZGVyJyk7Cm15ICRPSURDQ29uZmlndXJhdGlvbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpDb25maWd1cmF0aW9uJyk7CgokREJPYmplY3QtPkJlZ2luV29yaygpOwoKbXkgJEJhc2VVUkwgICAgID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2F1dGgnOwpteSAkUmVkaXJlY3RVUkkgPSAnaHR0cHM6Ly95b3VyLm90b2JvLnVybC9vdG9iby9pbmRleC5wbD9BY3Rpb249QWRtaW5PQXV0aFRva2VuU3RvcmUmU3ViYWN0aW9uPU9BdXRoJzsKCm15ICRUZXN0Q2FzZXMgPSBbCiAgICB7CiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICB9LAogICAgICAgIEV4cGVjdGF0aW9uID0+ICc/cmVzcG9uc2VfdHlwZT1jb2RlJnNjb3BlPW9wZW5pZCZjbGllbnRfaWQ9b3RvYm8mc3RhdGU9JywKICAgIH0sCiAgICB7CiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgU2NvcGUgPT4gJ29wZW5pZCBlbWFpbCBwcm9maWxlIGh0dHA6Ly93ZWlyZHNjb3BlLmNvbScsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RhdGlvbiA9PiAnP3Jlc3BvbnNlX3R5cGU9Y29kZSZzY29wZT1vcGVuaWQlMjBlbWFpbCUyMHByb2ZpbGUlMjBodHRwJTNBJTJGJTJGd2VpcmRzY29wZS5jb20mY2xpZW50X2lkPW90b2JvJnN0YXRlPScsCiAgICB9LAogICAgewogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFJlc291cmNlcyA9PiAnc29tZWFwaSBodHRwOi8vd2VpcmRyZXNvdXJjZS5jb20nLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0YXRpb24gPT4gJz9yZXNwb25zZV90eXBlPWNvZGUmc2NvcGU9b3BlbmlkJmNsaWVudF9pZD1vdG9ibyZyZXNvdXJjZT1zb21lYXBpJTIwaHR0cCUzQSUyRiUyRndlaXJkcmVzb3VyY2UuY29tJnN0YXRlPScsCiAgICB9LAogICAgewogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFRva2VuID0+ICdpZF90b2tlbicsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RhdGlvbiA9PiAnP3Jlc3BvbnNlX3R5cGU9Y29kZSZzY29wZT1vcGVuaWQmY2xpZW50X2lkPW90b2JvJnN0YXRlPScsCiAgICB9LAogICAgewogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIExvZ2luID0+ICdzb21lb25lQHNvbWVkb21haW4uY29tJywKICAgICAgICB9LAogICAgICAgIEV4cGVjdGF0aW9uID0+ICc/cmVzcG9uc2VfdHlwZT1jb2RlJnNjb3BlPW9wZW5pZCZjbGllbnRfaWQ9b3RvYm8mbG9naW5faGludD1zb21lb25lJTQwc29tZWRvbWFpbi5jb20mc3RhdGU9JywKICAgIH0sCiAgICB7CiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgUHJvbXB0ID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RhdGlvbiA9PiAnP3Jlc3BvbnNlX3R5cGU9Y29kZSZzY29wZT1vcGVuaWQmY2xpZW50X2lkPW90b2JvJnByb21wdD1sb2dpbiZzdGF0ZT0nLAogICAgfSwKXTsKCm15ICRPcGVuSURDb25maWcgPSBPQXV0aFByb3ZpZGVyTW9jazo6R2V0VGVzdE9wZW5JRENvbmZpZygpOwoKZXZhbCB7CgogICAgZm9yIG15ICRUZXN0Q2FzZSAoQCRUZXN0Q2FzZXMpIHsKCiAgICAgICAgUHJlcGFyZVRlc3RTeXNDb25maWcoICRUZXN0Q2FzZS0+e0NvbmZpZ30tPiUqICk7CgogICAgICAgIG15ICRSYW5kb21TdHJpbmcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5HZW5lcmF0ZVJhbmRvbVN0cmluZygKICAgICAgICAgICAgTGVuZ3RoID0+IDIyCiAgICAgICAgKTsKCiAgICAgICAgbXkgJEV4cGVjdGVkID0gJEJhc2VVUkwgLiAkVGVzdENhc2UtPntFeHBlY3RhdGlvbn07CiAgICAgICAgJEV4cGVjdGVkIC49ICRSYW5kb21TdHJpbmc7CiAgICAgICAgJEV4cGVjdGVkIC49ICcmcmVkaXJlY3RfdXJpPSc7CiAgICAgICAgJEV4cGVjdGVkIC49IHVyaV9lc2NhcGVfdXRmOCgkUmVkaXJlY3RVUkkpOwoKICAgICAgICBteSAkQXV0aFVSTCA9ICRUb2tlblByb3ZpZGVyLT5HZXRBdXRoVVJMKAogICAgICAgICAgICBBY2NvdW50TmFtZSA9PiAnX1VuaXRUZXN0MScsCiAgICAgICAgICAgIFJlZGlyZWN0VVJJID0+ICRSZWRpcmVjdFVSSSwKICAgICAgICAgICAgU3RhdGUgICAgICAgPT4gJFJhbmRvbVN0cmluZywKICAgICAgICAgICAgTG9naW4gICAgICAgPT4gJFRlc3RDYXNlLT57Q29uZmlnfS0+e0xvZ2lufSwKICAgICAgICAgICAgUHJvbXB0ICAgICAgPT4gJFRlc3RDYXNlLT57Q29uZmlnfS0+e1Byb21wdH0sCiAgICAgICAgKTsKCiAgICAgICAgb2soICRBdXRoVVJMIGVxICRFeHBlY3RlZCwgIiRBdXRoVVJMIGVxICRFeHBlY3RlZCIgKTsKCiAgICB9Cn07CmlmICgkQCkgewogICAgcHJpbnQgU1RERVJSICRAIC4gIlxuIjsKICAgIG9rKCAwLCAnc2hvdWxkIG5vdCB0aHJvdycgKTsKfQoKJERCT2JqZWN0LT5Sb2xsYmFjaygpOwoKZG9uZV90ZXN0aW5nOwoKIyB0ZWFyIGRvd24gZmFrZSBzZXJ2ZXIKa2lsbCggJ1RFUk0nLCAkT0F1dGhQcm92aWRlck1vY2s6OkNoaWxkUElEICk7CndhaXRwaWQoICRPQXV0aFByb3ZpZGVyTW9jazo6Q2hpbGRQSUQsIDAgKTsKCiMgcGF0Y2ggc3lzY29uZmlnIGp1c3QgZm9yIHRoaXMgcHJvY2VzcyAvIHJlcXVlc3QKCnN1YiBQcmVwYXJlVGVzdFN5c0NvbmZpZyB7CgogICAgbXkgJVBhcmFtID0gQF87CgogICAgIyBjcmVhdGUgcHJvZmlsZQoKICAgIG15ICRZQU1MT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OllBTUwnKTsKCiAgICBteSAkVmFsaWQgPSAxOwoKICAgICREQk9iamVjdC0+RG8oIFNRTCA9PiAiREVMRVRFIEZST00gb2lkY19mdW5jdGlvbmFsX2FjY291bnRzIFdIRVJFIG5hbWUgPSAnX1VuaXRUZXN0MScgIiApOwogICAgJERCT2JqZWN0LT5EbyggU1FMID0+ICJERUxFVEUgRlJPTSBvaWRjX3Byb2ZpbGVzIFdIRVJFIG5hbWUgPSAnIiAuICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e05hbWV9IC4gIiciICk7CgogICAgJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gIklOU0VSVCBJTlRPIG9pZGNfcHJvZmlsZXMKICAgICAgICAgICAgICAgICggbmFtZSxjbGllbnRfaWQsY2xpZW50X1NlY3JldCxyZWRpcmVjdF91cmksb3BlbmlkX2NvbmZpZywKICAgICAgICAgICAgICAgIHNzbF9vcHRpb25zLG1pc2MsdHRsLHZhbGlkX2lkLAogICAgICAgICAgICAgICAgY3JlYXRlX3RpbWUsY3JlYXRlX2J5LGNoYW5nZV90aW1lLGNoYW5nZV9ieSApCiAgICAgICAgICAgICAgICBWQUxVRVMgKD8sID8sID8sID8sPywgPywgPywgPywgPywgY3VycmVudF90aW1lc3RhbXAsIDEsIGN1cnJlbnRfdGltZXN0YW1wLCAxKSIsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc30tPntOYW1lfSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRJRH0sCiAgICAgICAgICAgIFwkT3BlbklEQ29uZmlnLT57Q2xpZW50U2V0dGluZ3N9LT57Q2xpZW50U2VjcmV0fSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntSZWRpcmVjdFVSSX0gLy8gJycsCiAgICAgICAgICAgIFwkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc30tPntPcGVuSURDb25maWd1cmF0aW9ufSwKICAgICAgICAgICAgXCRZQU1MT2JqZWN0LT5EdW1wKCBEYXRhID0+ICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e1NTTE9wdGlvbnN9ICksCiAgICAgICAgICAgIFwkWUFNTE9iamVjdC0+RHVtcCggRGF0YSA9PiAkT3BlbklEQ29uZmlnLT57TWlzY30gLy8ge30gKSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e1RUTH0sCiAgICAgICAgICAgIFwkVmFsaWQsCiAgICAgICAgXSwKICAgICk7CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgPT4gIlNFTEVDVCBpZCBGUk9NIG9pZGNfcHJvZmlsZXMgV0hFUkUgbmFtZSA9ID8gIiwKICAgICAgICBCaW5kID0+IFsgXCRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e05hbWV9IF0sCgogICAgICAgICMgICAgICAgICAgICBMaW1pdCA9PiAxCiAgICApOwoKICAgIG15ICgkSUQpID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCk7CgogICAgIyBjcmVhdGUgZnVuY3Rpb25hbCBhY2NvdW50CgogICAgbXkgJEdyYW50VHlwZSAgICAgICAgID0gJFBhcmFte0dyYW50VHlwZX0gICAgICAgICB8fCAnYXV0aG9yaXphdGlvbl9jb2RlJzsKICAgIG15ICRTY29wZSAgICAgICAgICAgICA9ICRQYXJhbXtTY29wZX0gICAgICAgICAgICAgfHwgJ29wZW5pZCc7CiAgICBteSAkUmVzb3VyY2VzICAgICAgICAgPSAkUGFyYW17UmVzb3VyY2VzfSAgICAgICAgIHx8ICcnOwogICAgbXkgJFJlc291cmNlUGFyYW1OYW1lID0gJFBhcmFte1Jlc291cmNlUGFyYW1OYW1lfSB8fCAncmVzb3VyY2UnOwogICAgbXkgJFRva2VuVHlwZSAgICAgICAgID0gJFBhcmFte1Rva2VufSAgICAgICAgICAgICB8fCAnYWNjZXNzX3Rva2VuJzsKCiAgICBwcmludCBTVERFUlIgIlRPS0VOVFlQRTogJFRva2VuVHlwZVxuIjsKCiAgICAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCA9PiAiSU5TRVJUIElOVE8gb2lkY19mdW5jdGlvbmFsX2FjY291bnRzCiAgICAgICAgICAgICAgICAobmFtZSwgb2lkY19wcm9maWxlX2lkLGdyYW50X3R5cGUsc2NvcGVzLHJlc291cmNlcywKICAgICAgICAgICAgICAgIHJlc291cmNlX3BhcmFtX25hbWUsdXNlcm5hbWUscGFzc3dkLCB0b2tlbl90eXBlLCB2YWxpZF9pZCwKICAgICAgICAgICAgICAgIGNyZWF0ZV90aW1lLGNyZWF0ZV9ieSxjaGFuZ2VfdGltZSxjaGFuZ2VfYnkgKQogICAgICAgICAgICAgICAgVkFMVUVTICggJ19Vbml0VGVzdDEnLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgMSwgY3VycmVudF90aW1lc3RhbXAsIDEpIiwKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRJRCwKICAgICAgICAgICAgXCRHcmFudFR5cGUsCiAgICAgICAgICAgIFwkU2NvcGUsCiAgICAgICAgICAgIFwkUmVzb3VyY2VzLAogICAgICAgICAgICBcJFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgICAgICBcJFBhcmFte1VzZXJuYW1lfSwKICAgICAgICAgICAgXCRQYXJhbXtQYXNzd29yZH0sCiAgICAgICAgICAgIFwkVG9rZW5UeXBlLAogICAgICAgICAgICBcJFZhbGlkLAogICAgICAgIF0sCiAgICApOwoKICAgICMgIyBjb25maWd1cmUgYW4gT0lEQyBQcm9maWxlIGZvciB0aGUgdW5pdCB0ZXN0CiAgICAjICRDb25maWdPYmplY3QtPlNldCgKICAgICMgICAgIEtleSAgID0+ICdPcGVuSURDb25uZWN0OjpPSUNEUHJvdmlkZXI6Ol9Vbml0VGVzdDEnLAogICAgIyAgICAgVmFsdWUgPT4gJE9wZW5JRENvbmZpZywKICAgICMgKTsKCiAgICAjICMgY29uZmlndXJlIGEgZnVuY3Rpb25hbCBhY2NvdW50IHRoYXQgdXNlcyBhYm92ZSBjb25maWcKICAgICMgJENvbmZpZ09iamVjdC0+U2V0KAogICAgIyAgICAgS2V5ICAgPT4gJ09wZW5JRENvbm5lY3Q6OkZ1bmN0aW9uYWxBY2NvdW50cycsCiAgICAjICAgICBWYWx1ZSA9PiB7CiAgICAjICAgICAgICAgJ19Vbml0VGVzdDEnID0+IHsKCiAgICAjICAgICAgICAgICAgIE9wZW5JRENvbmZpZyAgICAgID0+ICdPcGVuSURDb25uZWN0OjpPSUNEUHJvdmlkZXI6Ol9Vbml0VGVzdDEnLAogICAgIyAgICAgICAgICAgICBHcmFudFR5cGUgICAgICAgICA9PiAkUGFyYW17R3JhbnRUeXBlfSAgICAgICAgIHx8ICdhdXRob3JpemF0aW9uX2NvZGUnLAogICAgIyAgICAgICAgICAgICBTY29wZSAgICAgICAgICAgICA9PiAkUGFyYW17U2NvcGV9ICAgICAgICAgICAgIHx8ICdvcGVuaWQnLAogICAgIyAgICAgICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAkUGFyYW17UmVzb3VyY2VzfSAgICAgICAgIHx8ICcnLAogICAgIyAgICAgICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkUGFyYW17UmVzb3VyY2VQYXJhbU5hbWV9IHx8ICdyZXNvdXJjZScsCiAgICAjICAgICAgICAgICAgIFRva2VuICAgICAgICAgICAgID0+ICRQYXJhbXtUb2tlbn0gICAgICAgICAgICAgfHwgJ2FjY2Vzc190b2tlbicsCiAgICAjICAgICAgICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRQYXJhbXtVc2VybmFtZX0sCiAgICAjICAgICAgICAgICAgIFBhc3N3b3JkICAgICAgICAgID0+ICRQYXJhbXtQYXNzd29yZH0sCiAgICAjICAgICAgICAgfQogICAgIyAgICAgfSwKICAgICMgKTsKCiAgICByZXR1cm47Cn0K</File>
        <File Location="scripts/test/OAuthTokenCaching.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwp1c2UgRmluZEJpbiBxdygkQmluKTsKCiMgQ1BBTiBtb2R1bGVzCnVzZSBUZXN0Mjo6VjA7CnVzZSBDcnlwdDo6SldUIHF3KGVuY29kZV9qd3QgZGVjb2RlX2p3dCk7CnVzZSBDcnlwdDo6UEs6OlJTQTsKdXNlIFBsYWNrOjpSdW5uZXI7CnVzZSBQbGFjazo6UmVxdWVzdDsKdXNlIFRyeTo6VGlueSBxdyh0cnkgY2F0Y2gpOwp1c2UgSlNPTjsKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpSZWdpc3Rlck9NOyAgICAjIHNldCB1cCAkS2VybmVsOjpPTQoKbXkgJEN1cnJlbnRUaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyktPlRvRXBvY2goKTsKCm15ICRNYWluT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKJE1haW5PYmplY3QtPlJlcXVpcmUoIiRCaW4vT0F1dGhQcm92aWRlck1vY2siKTsKCm15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwokREJPYmplY3QtPkNvbm5lY3QoKTsKJERCT2JqZWN0LT5CZWdpbldvcmsoKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgbWFpbiB0ZXN0CiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojIHdhaXQgZm9yIHRoZSBmYWtlIGF1dGhvcml6YXRpb24gc2VydmVyIHRvIGNvbWUgdXAKc2xlZXAgMTsKCm15ICRDb25maWdPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7Cm15ICRUb2tlblByb3ZpZGVyICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblByb3ZpZGVyJyk7Cm15ICRUb2tlblJlcG9zaXRvcnkgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblJlcG9zaXRvcnknKTsKbXkgJE9JRENDb25maWd1cmF0aW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nKTsKbXkgJFRva2VuT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJyk7CgojIHRoZSBPcGVuSURDb25maWcgd2Ugd2lsbCB1c2UuIFRoaXMgd291bGQgbm9ybWFsbHkgY29tZSBmcm9tIFN5c0NvbmZpZwpteSAkT3BlbklEQ29uZmlnID0gT0F1dGhQcm92aWRlck1vY2s6OkdldFRlc3RPcGVuSURDb25maWcoKTsKCmV2YWwgewoKICAgICMgbWFrZSBzdXJlIGNhY2hlIGlzIGNsZWFuIGZvciB0ZXN0aW5nCiAgICAkT0lEQ0NvbmZpZ3VyYXRpb24tPkdldFByb3ZpZGVyRGF0YSgKICAgICAgICBPcGVuSURDb25maWcgPT4gJE9wZW5JRENvbmZpZywKICAgICAgICBOb0NhY2hlICAgICAgPT4gMSwKICAgICk7CiAgICBDbGVhbnVwKCk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICMgRmV0Y2ggYSBUb2tlbiBmcm9tIHRva2VuX2VuZHBvaW50IGFuZCB2YWxpZGF0ZSBpdAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAjIHBhdGNoIHN5c2NvbmZpZyBqdXN0IGZvciB0aGlzIHByb2Nlc3MgLyByZXF1ZXN0CiAgICBQcmVwYXJlVGVzdFN5c0NvbmZpZygKICAgICAgICBSZXNvdXJjZXMgPT4gJ3NvbWVfYXBpJywKCiAgICAgICAgIyAgICAgICAgR3JhbnRUeXBlID0+ICdwYXNzd29yZCcsCiAgICAgICAgIyAgICAgICAgVXNlcm5hbWUgPT4gJ3Rlc3QnCiAgICApOwoKICAgICMgdXNlIFRva2VuUHJvdmlkZXIgdG8gZmV0Y2ggYSBUb2tlbiBmb3IgdGhlIGNvbmZpZ3VyZWQgdW5pdCB0ZXN0IGFjY291bnQKCiAgICAjIDEpIGZldGNoIGEgZnJlc2ggdG9rZW4KICAgIG15ICRSZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2goCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJ19Vbml0VGVzdDEnLAogICAgKTsKCiAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAgICAgICAgICAgICAgICAgIlJlc3VsdCBpcyBTdWNjZXNzIiApOwogICAgb2soICRSZXN1bHQtPntPcmlnaW59IGVxICdmcmVzaF90b2tlbicsICdPcmlnaW4gaXMgZnJlc2hfdG9rZW4uJyApOwoKICAgIG15ICRUb2tlbiA9ICRSZXN1bHQtPntUb2tlbn07CgogICAgIyB2YWxpZGF0ZSBpdCwgb25lIGxhc3QgdGltZQogICAgJFJlc3VsdCA9ICRUb2tlbk9iamVjdC0+VmFsaWRhdGUoCiAgICAgICAgVG9rZW4gICAgICAgID0+ICRUb2tlbiwKICAgICAgICBPcGVuSURDb25maWcgPT4gJE9wZW5JRENvbmZpZywKICAgICk7CiAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAiUmVzdWx0IGlzIFN1Y2Nlc3MiICk7CgogICAgIyAyKSBmZXRjaCBhZ2Fpbiwgbm93IGNvbWVzIGZyb20gY2FjaGUKICAgICRSZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2goCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJ19Vbml0VGVzdDEnLAogICAgKTsKCiAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAgICAgICAgICAgIlJlc3VsdCBpcyBTdWNjZXNzIiApOwogICAgb2soICRSZXN1bHQtPntPcmlnaW59IGVxICdjYWNoZScsICdPcmlnaW4gaXMgY2FjaGUnICk7CgogICAgIyAzKSBjbGVhbiBjYWNoZSwgbm93IGNvbWVzIGZyb20gREIKICAgIENsZWFudXBDYWNoZSgpOwoKICAgICRSZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2goCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJ19Vbml0VGVzdDEnLAogICAgKTsKCiAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAgICAgICAgIlJlc3VsdCBpcyBTdWNjZXNzIiApOwogICAgb2soICRSZXN1bHQtPntPcmlnaW59IGVxICdkYicsICdPcmlnaW4gaXMgZGIuJyApOwoKICAgICMgMykgY2xlYW4gY2FjaGUgYW5kIERCLCBub3cgdXNpbmcgcmVmcmVzaF90b2tlbgogICAgQ2xlYW51cENhY2hlKCk7CiAgICBteSAkRGVsZXRlU3VjY2VzcyA9ICRUb2tlblJlcG9zaXRvcnktPkRlbGV0ZVRva2VuKAogICAgICAgIEFjY291bnROYW1lID0+ICdfVW5pdFRlc3QxJywKICAgICAgICBUb2tlblR5cGUgICA9PiAnYWNjZXNzX3Rva2VuJywKICAgICk7CiAgICBvayggJERlbGV0ZVN1Y2Nlc3MsICdERUxFVEUgRkFJTEVEJyApOwoKICAgICRSZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2goCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJ19Vbml0VGVzdDEnLAogICAgKTsKCiAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAgICAgICAgICAgICAgICAgICAiUmVzdWx0IGlzIFN1Y2Nlc3MiICk7CiAgICBvayggJFJlc3VsdC0+e09yaWdpbn0gZXEgJ3JlZnJlc2hfdG9rZW4nLCAnT3JpZ2luIGlzIHJlZnJlc2hfdG9rZW4nICk7CgogICAgIyA0KSBjbGVhbiBjYWNoZSxEQiBhbmQgcmVmcmVzaF90b2tlbiAtCgogICAgQ2xlYW51cCgpOwogICAgJFJlc3VsdCA9ICRUb2tlblByb3ZpZGVyLT5GZXRjaCgKICAgICAgICBBY2NvdW50TmFtZSA9PiAnX1VuaXRUZXN0MScsCiAgICApOwoKICAgIG9rKCAkUmVzdWx0LT57U3VjY2Vzc30sICAgICAgICAgICAgICAgICAiUmVzdWx0IGlzIFN1Y2Nlc3MiICk7CiAgICBvayggJFJlc3VsdC0+e09yaWdpbn0gZXEgJ2ZyZXNoX3Rva2VuJywgJ09yaWdpbiBpcyBmcmVzaF90b2tlbicgKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyBpbnZhbGlkIGNyZWRlbnRpYWxzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIENsZWFudXAoKTsKICAgICRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRTZWNyZXR9ID0gJ211cmtzJzsKICAgIFByZXBhcmVUZXN0U3lzQ29uZmlnKAogICAgICAgIFJlc291cmNlcyA9PiAnc29tZV9hcGknLAogICAgKTsKCiAgICAkUmVzdWx0ID0gJFRva2VuUHJvdmlkZXItPkZldGNoKAogICAgICAgIEFjY291bnROYW1lID0+ICdfVW5pdFRlc3QxJywKICAgICk7CgogICAgb2soICEkUmVzdWx0LT57U3VjY2Vzc30gKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyBUZXN0IDQpIC0gQXNzZXJ0IG9uIHRoZSBzcGllZCBMb2cgb2Ygb3VyIGZha2Ugc2VydmVyCiAgICAjIGhlcmUgd2UgY2FuIGFzc2VydCB0aGF0IHBhcmFtZXRlcnMgaGF2ZSBiZWVuIHBhc3NlZCBhcwogICAgIyBleHBlY3RlZCB0byB0aGUgdG9rZW5fZW5kcG9pbnQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgT0F1dGhQcm92aWRlck1vY2s6OkFzc2VydEh0dHBDYWxsTG9nKAogICAgICAgIEV4cGVjdGVkID0+IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAib3BlbmlkIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAiandrcyIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJlbmRwb2ludCIgPT4gInRva2VuIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gImdyYW50X3R5cGU9Y2xpZW50X2NyZWRlbnRpYWxzJnJlc291cmNlPXNvbWVfYXBpJnNjb3BlPW9wZW5pZCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAib3BlbmlkIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAiandrcyIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gImdyYW50X3R5cGU9cmVmcmVzaF90b2tlbiZyZWZyZXNoX3Rva2VuPSIsCiAgICAgICAgICAgICAgICAiZW5kcG9pbnQiID0+ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICBvcGVyYXRvciAgID0+ICdtYXRjaCcKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAib3BlbmlkIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAiandrcyIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJlbmRwb2ludCIgPT4gInRva2VuIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gImdyYW50X3R5cGU9Y2xpZW50X2NyZWRlbnRpYWxzJnJlc291cmNlPXNvbWVfYXBpJnNjb3BlPW9wZW5pZCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAib3BlbmlkIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAiandrcyIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gImdyYW50X3R5cGU9Y2xpZW50X2NyZWRlbnRpYWxzJnJlc291cmNlPXNvbWVfYXBpJnNjb3BlPW9wZW5pZCIsCiAgICAgICAgICAgICAgICAiZW5kcG9pbnQiID0+ICJ0b2tlbiIKICAgICAgICAgICAgfSwKICAgICAgICBdCiAgICApOwp9OwppZiAoJEApIHsKICAgIHByaW50IFNUREVSUiAiJEBcbiI7CiAgICBvayggMCwgInNob3VsZCBub3QgaHRvdy4iICk7Cn0KCiMgb3ZlciBhbmQgb3V0CmRvbmVfdGVzdGluZzsKCkNsZWFudXAoKTsKCiREQk9iamVjdC0+Um9sbGJhY2soKTsKCiMgdGVhciBkb3duIGZha2Ugc2VydmVyCmtpbGwoICdURVJNJywgJE9BdXRoUHJvdmlkZXJNb2NrOjpDaGlsZFBJRCApOwp3YWl0cGlkKCAkT0F1dGhQcm92aWRlck1vY2s6OkNoaWxkUElELCAwICk7CgojIHBhdGNoIHN5c2NvbmZpZyBqdXN0IGZvciB0aGlzIHByb2Nlc3MgLyByZXF1ZXN0CgpzdWIgUHJlcGFyZVRlc3RTeXNDb25maWcgewoKICAgIG15ICVQYXJhbSA9IEBfOwoKICAgICMgY3JlYXRlIHByb2ZpbGUKCiAgICBteSAkWUFNTE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJyk7CgogICAgbXkgJFZhbGlkID0gMTsKCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgaWQgRlJPTSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgV0hFUkUgbmFtZSA9ICdfVW5pdFRlc3QxJyAiLAoKICAgICAgICAjICAgICAgICAgICAgQmluZCAgPT4gWyBcJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57TmFtZX0gXSwKICAgICAgICAjICAgICAgICAgICAgTGltaXQgPT4gMQogICAgKTsKCiAgICBteSAoJElEKSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpOwoKICAgIGlmICgkSUQpIHsKICAgICAgICAkREJPYmplY3QtPkRvKCBTUUwgPT4gIkRFTEVURSBGUk9NIG9hdXRoMl90b2tlbl9zdG9yYWdlIFdIRVJFIG9pZGNfZnVuY3Rpb25hbF9hY2NvdW50X2lkID0gIiAuICRJRCApOwogICAgfQogICAgJERCT2JqZWN0LT5EbyggU1FMID0+ICJERUxFVEUgRlJPTSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgV0hFUkUgbmFtZSA9ICdfVW5pdFRlc3QxJyAiICk7CiAgICAkREJPYmplY3QtPkRvKCBTUUwgPT4gIkRFTEVURSBGUk9NIG9pZGNfcHJvZmlsZXMgV0hFUkUgbmFtZSA9ICciIC4gJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57TmFtZX0gLiAiJyIgKTsKCiAgICAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCA9PiAiSU5TRVJUIElOVE8gb2lkY19wcm9maWxlcwogICAgICAgICAgICAgICAgKCBuYW1lLGNsaWVudF9pZCxjbGllbnRfU2VjcmV0LHJlZGlyZWN0X3VyaSxvcGVuaWRfY29uZmlnLAogICAgICAgICAgICAgICAgc3NsX29wdGlvbnMsbWlzYyx0dGwsdmFsaWRfaWQsCiAgICAgICAgICAgICAgICBjcmVhdGVfdGltZSxjcmVhdGVfYnksY2hhbmdlX3RpbWUsY2hhbmdlX2J5ICkKICAgICAgICAgICAgICAgIFZBTFVFUyAoPywgPywgPywgPyw/LCA/LCA/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgMSwgY3VycmVudF90aW1lc3RhbXAsIDEpIiwKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e05hbWV9LAogICAgICAgICAgICBcJE9wZW5JRENvbmZpZy0+e0NsaWVudFNldHRpbmdzfS0+e0NsaWVudElEfSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRTZWNyZXR9LAogICAgICAgICAgICBcJE9wZW5JRENvbmZpZy0+e0NsaWVudFNldHRpbmdzfS0+e1JlZGlyZWN0VVJJfSAvLyAnJywKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e09wZW5JRENvbmZpZ3VyYXRpb259LAogICAgICAgICAgICBcJFlBTUxPYmplY3QtPkR1bXAoIERhdGEgPT4gJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57U1NMT3B0aW9uc30gKSwKICAgICAgICAgICAgXCRZQU1MT2JqZWN0LT5EdW1wKCBEYXRhID0+ICRPcGVuSURDb25maWctPntNaXNjfSAvLyB7fSApLAogICAgICAgICAgICBcJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57VFRMfSwKICAgICAgICAgICAgXCRWYWxpZCwKICAgICAgICBdLAogICAgKTsKCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMICA9PiAiU0VMRUNUIGlkIEZST00gb2lkY19wcm9maWxlcyBXSEVSRSBuYW1lID0gPyAiLAogICAgICAgIEJpbmQgPT4gWyBcJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57TmFtZX0gXSwKCiAgICAgICAgIyAgICAgICAgICAgIExpbWl0ID0+IDEKICAgICk7CgogICAgKCRJRCkgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKTsKCiAgICAjIGNyZWF0ZSBmdW5jdGlvbmFsIGFjY291bnQKCiAgICBteSAkR3JhbnRUeXBlICAgICAgICAgPSAkUGFyYW17R3JhbnRUeXBlfSAgICAgICAgIHx8ICdjbGllbnRfY3JlZGVudGlhbHMnOwogICAgbXkgJFNjb3BlICAgICAgICAgICAgID0gJFBhcmFte1Njb3BlfSAgICAgICAgICAgICB8fCAnb3BlbmlkJzsKICAgIG15ICRSZXNvdXJjZXMgICAgICAgICA9ICRQYXJhbXtSZXNvdXJjZXN9ICAgICAgICAgfHwgJyc7CiAgICBteSAkUmVzb3VyY2VQYXJhbU5hbWUgPSAkUGFyYW17UmVzb3VyY2VQYXJhbU5hbWV9IHx8ICdyZXNvdXJjZSc7CiAgICBteSAkVG9rZW5UeXBlICAgICAgICAgPSAkUGFyYW17VG9rZW59ICAgICAgICAgICAgIHx8ICdhY2Nlc3NfdG9rZW4nOwoKICAgIHByaW50IFNUREVSUiAiVE9LRU5UWVBFOiAkVG9rZW5UeXBlXG4iOwoKICAgICREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICJJTlNFUlQgSU5UTyBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMKICAgICAgICAgICAgICAgIChuYW1lLCBvaWRjX3Byb2ZpbGVfaWQsZ3JhbnRfdHlwZSxzY29wZXMscmVzb3VyY2VzLAogICAgICAgICAgICAgICAgcmVzb3VyY2VfcGFyYW1fbmFtZSx1c2VybmFtZSxwYXNzd2QsIHRva2VuX3R5cGUsIHZhbGlkX2lkLAogICAgICAgICAgICAgICAgY3JlYXRlX3RpbWUsY3JlYXRlX2J5LGNoYW5nZV90aW1lLGNoYW5nZV9ieSApCiAgICAgICAgICAgICAgICBWQUxVRVMgKCAnX1VuaXRUZXN0MScsID8sID8sID8sID8sID8sID8sID8sID8sID8sIGN1cnJlbnRfdGltZXN0YW1wLCAxLCBjdXJyZW50X3RpbWVzdGFtcCwgMSkiLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJElELAogICAgICAgICAgICBcJEdyYW50VHlwZSwKICAgICAgICAgICAgXCRTY29wZSwKICAgICAgICAgICAgXCRSZXNvdXJjZXMsCiAgICAgICAgICAgIFwkUmVzb3VyY2VQYXJhbU5hbWUsCiAgICAgICAgICAgIFwkUGFyYW17VXNlcm5hbWV9LAogICAgICAgICAgICBcJFBhcmFte1Bhc3N3b3JkfSwKICAgICAgICAgICAgXCRUb2tlblR5cGUsCiAgICAgICAgICAgIFwkVmFsaWQsCiAgICAgICAgXSwKICAgICk7CgogICAgcmV0dXJuOwp9CgpzdWIgQ2xlYW51cCB7CgogICAgIyBjbGVhbnVwIGNhY2hlIGFuZCBkYgogICAgJFRva2VuUmVwb3NpdG9yeS0+RGVsZXRlVG9rZW4oCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJ19Vbml0VGVzdDEnLAogICAgKTsKCiAgICBDbGVhbnVwQ2FjaGUoKTsKCiAgICByZXR1cm47Cn0KCnN1YiBDbGVhbnVwQ2FjaGUgewoKICAgICRUb2tlblByb3ZpZGVyLT5FbXB0eUNhY2hlKAogICAgICAgIEFjY291bnROYW1lID0+ICdfVW5pdFRlc3QxJywKICAgICk7CgogICAgcmV0dXJuOwp9Cg==</File>
        <File Location="scripts/test/OAuthAuthenticator.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwp1c2UgRmluZEJpbiBxdygkQmluKTsKCiMgQ1BBTiBtb2R1bGVzCnVzZSBUZXN0Mjo6VjA7CnVzZSBDcnlwdDo6SldUIHF3KGVuY29kZV9qd3QgZGVjb2RlX2p3dCk7CnVzZSBDcnlwdDo6UEs6OlJTQTsKdXNlIFBsYWNrOjpSdW5uZXI7CnVzZSBQbGFjazo6UmVxdWVzdDsKdXNlIFRyeTo6VGlueSBxdyh0cnkgY2F0Y2gpOwp1c2UgSlNPTjsKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpSZWdpc3Rlck9NOyAgICAjIHNldCB1cCAkS2VybmVsOjpPTQoKbXkgJEN1cnJlbnRUaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyktPlRvRXBvY2goKTsKbXkgJE1haW5PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKJE1haW5PYmplY3QtPlJlcXVpcmUoIiRCaW4vT0F1dGhQcm92aWRlck1vY2siKTsKCm15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwokREJPYmplY3QtPkNvbm5lY3QoKTsKCiMkT0F1dGhQcm92aWRlck1vY2s6OktpZElEIHx8ICRPQXV0aFByb3ZpZGVyTW9jazo6UHJpdmF0ZUtleSB8fCAwOyAgICAgICMgcHJldmVudCB3YXJuaW5ncwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBtYWluIHRlc3QKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgd2FpdCBmb3IgdGhlIGZha2UgYXV0aG9yaXphdGlvbiBzZXJ2ZXIgdG8gY29tZSB1cApzbGVlcCAxOwoKbXkgJENvbmZpZ09iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKbXkgJE9JRENDb25maWd1cmF0aW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nKTsKbXkgJEF1dGhlbnRpY2F0b3IgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkF1dGhlbnRpY2F0b3InKTsKCiMgdGhlIE9wZW5JRENvbmZpZyB3ZSB3aWxsIHVzZS4gVGhpcyB3b3VsZCBub3JtYWxseSBjb21lIGZyb20gU3lzQ29uZmlnCm15ICRPcGVuSURDb25maWcgPSBPQXV0aFByb3ZpZGVyTW9jazo6R2V0VGVzdE9wZW5JRENvbmZpZygpOwoKJERCT2JqZWN0LT5CZWdpbldvcmsoKTsKCmV2YWwgewoKICAgIFByZXBhcmVUZXN0U3lzQ29uZmlnKCk7CgogICAgbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgIG15ICRVc2VySUQgPSAkVXNlck9iamVjdC0+VXNlckxvb2t1cCgKICAgICAgICBVc2VyTG9naW4gPT4gJzljM2UxODM5LWI0NjgtNGNkYS1hMzlhLWQ5NjllYWQ0NWE0MCcsCiAgICAgICAgU2lsZW50ICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwsIGRvbid0IGdlbmVyYXRlIGxvZyBlbnRyeSBpZiB1c2VyIHdhcyBub3QgZm91bmQKICAgICk7CgogICAgaWYgKCAhJFVzZXJJRCApCiAgICB7CiAgICAgICAgIyBhZGQgdXNlcgogICAgICAgICRVc2VySUQgPSAkVXNlck9iamVjdC0+VXNlckFkZCgKICAgICAgICAgICAgVXNlckZpcnN0bmFtZSA9PiAndGVzdHkgMScsCiAgICAgICAgICAgIFVzZXJMYXN0bmFtZSAgPT4gJ3Rlc3RlciAxJywKICAgICAgICAgICAgVXNlckxvZ2luICAgICA9PiAnOWMzZTE4MzktYjQ2OC00Y2RhLWEzOWEtZDk2OWVhZDQ1YTQwJywKICAgICAgICAgICAgVXNlckVtYWlsICAgICA9PiAndGVzdDFAZXhhbXBsZS5jb20nLAogICAgICAgICAgICBVc2VyQ29tbWVudCAgID0+ICd1bml0ZXN0JywKICAgICAgICAgICAgVmFsaWRJRCAgICAgICA9PiAxLAogICAgICAgICAgICBDaGFuZ2VVc2VySUQgID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG1ha2Ugc3VyZSBjYWNoZSBpcyBjbGVhbiBmb3IgdGVzdGluZwogICAgJE9JRENDb25maWd1cmF0aW9uLT5HZXRQcm92aWRlckRhdGEoCiAgICAgICAgT3BlbklEQ29uZmlnID0+ICRPcGVuSURDb25maWcsCiAgICAgICAgTm9DYWNoZSAgICAgID0+IDEsCiAgICApOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAjIDEpIFNpbXBsZSBKV1QKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgbXkgJFRva2VuID0gZW5jb2RlX2p3dCgKICAgICAgICBwYXlsb2FkICAgICAgID0+IE9BdXRoUHJvdmlkZXJNb2NrOjpQYXlsb2FkKCksCiAgICAgICAgYWxnICAgICAgICAgICA9PiAnUlMyNTYnLAogICAgICAgIGtleSAgICAgICAgICAgPT4gJE9BdXRoUHJvdmlkZXJNb2NrOjpQcml2YXRlS2V5LAogICAgICAgIGV4dHJhX2hlYWRlcnMgPT4geyBraWQgPT4gJE9BdXRoUHJvdmlkZXJNb2NrOjpLaWRJRCB9LAogICAgKTsKCiAgICAjIG5vdyB2YWxpZGF0ZSB0aGlzIHRva2VuLCB3aGljaCB3aWxsIHRhbGsgdG8gb3VyIGZha2UgYXV0aG9yaXphdGlvbiBzZXJ2ZXIKICAgICMgYW5kIGZldGNoIHRoZSBwdWJsaWMga2V5IHRvIHZhbGlkYXRlIHRoZSBzaWduYXR1cmUKCiAgICBteSAkUmVzdWx0ID0gJEF1dGhlbnRpY2F0b3ItPkF1dGhlbnRpY2F0ZSgKICAgICAgICBUb2tlbiA9PiAkVG9rZW4sCiAgICApOwoKICAgIG9rKCAkUmVzdWx0LT57U3VjY2Vzc30sICdBdXRoZW50aWNhdGVkJyApOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAjIDIpIFNpbXBsZSBKV1Qgd2l0aCBkZWRpY2F0ZWQgc2NvcGVzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIFByZXBhcmVUZXN0U3lzQ29uZmlnKAogICAgICAgIFNjb3BlID0+ICdvcGVuaWQgc3VwZXJkdXBlcicsCiAgICApOwoKICAgICRUb2tlbiA9IGVuY29kZV9qd3QoCiAgICAgICAgcGF5bG9hZCAgICAgICA9PiBPQXV0aFByb3ZpZGVyTW9jazo6UGF5bG9hZCggU2NvcGUgPT4gJ29wZW5pZCBzdXBlcmR1cGVyJyApLAogICAgICAgIGFsZyAgICAgICAgICAgPT4gJ1JTMjU2JywKICAgICAgICBrZXkgICAgICAgICAgID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6UHJpdmF0ZUtleSwKICAgICAgICBleHRyYV9oZWFkZXJzID0+IHsga2lkID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6S2lkSUQgfSwKICAgICk7CgogICAgIyBub3cgdmFsaWRhdGUgdGhpcyB0b2tlbiwgd2hpY2ggd2lsbCB0YWxrIHRvIG91ciBmYWtlIGF1dGhvcml6YXRpb24gc2VydmVyCiAgICAjIGFuZCBmZXRjaCB0aGUgcHVibGljIGtleSB0byB2YWxpZGF0ZSB0aGUgc2lnbmF0dXJlCgogICAgJFJlc3VsdCA9ICRBdXRoZW50aWNhdG9yLT5BdXRoZW50aWNhdGUoCiAgICAgICAgVG9rZW4gPT4gJFRva2VuLAogICAgKTsKCiAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAnQXV0aGVudGljYXRlZCcgKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyAzKSBTaW1wbGUgSldUIHdpdGggZGVkaWNhdGVkIGF1ZGllbmNlIGNoZWNrCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIFByZXBhcmVUZXN0U3lzQ29uZmlnKAogICAgICAgIEF1ZGllbmNlID0+ICdvdG9ibycsCiAgICApOwoKICAgICRUb2tlbiA9IGVuY29kZV9qd3QoCiAgICAgICAgcGF5bG9hZCAgICAgICA9PiBPQXV0aFByb3ZpZGVyTW9jazo6UGF5bG9hZCggQXVkaWVuY2UgPT4gWyAnb3RvYm8nLCAnbWFtbWFtaWEnIF0gKSwKICAgICAgICBhbGcgICAgICAgICAgID0+ICdSUzI1NicsCiAgICAgICAga2V5ICAgICAgICAgICA9PiAkT0F1dGhQcm92aWRlck1vY2s6OlByaXZhdGVLZXksCiAgICAgICAgZXh0cmFfaGVhZGVycyA9PiB7IGtpZCA9PiAkT0F1dGhQcm92aWRlck1vY2s6OktpZElEIH0sCiAgICApOwoKICAgICMgbm93IHZhbGlkYXRlIHRoaXMgdG9rZW4sIHdoaWNoIHdpbGwgdGFsayB0byBvdXIgZmFrZSBhdXRob3JpemF0aW9uIHNlcnZlcgogICAgIyBhbmQgZmV0Y2ggdGhlIHB1YmxpYyBrZXkgdG8gdmFsaWRhdGUgdGhlIHNpZ25hdHVyZQoKICAgICRSZXN1bHQgPSAkQXV0aGVudGljYXRvci0+QXV0aGVudGljYXRlKAogICAgICAgIFRva2VuID0+ICRUb2tlbiwKICAgICk7CgogICAgb2soICRSZXN1bHQtPntTdWNjZXNzfSwgJ0F1dGhlbnRpY2F0ZWQnICk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICMgNCkgU2ltcGxlIEpXVCB3aXRoIEF1dGhvcml6ZWQgUGFydHkgY2hlY2sKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgUHJlcGFyZVRlc3RTeXNDb25maWcoCiAgICAgICAgQXV0aG9yaXplZFBhcnR5ID0+ICdvdG9ibycsCiAgICApOwoKICAgICRUb2tlbiA9IGVuY29kZV9qd3QoCiAgICAgICAgcGF5bG9hZCAgICAgICA9PiBPQXV0aFByb3ZpZGVyTW9jazo6UGF5bG9hZCgpLAogICAgICAgIGFsZyAgICAgICAgICAgPT4gJ1JTMjU2JywKICAgICAgICBrZXkgICAgICAgICAgID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6UHJpdmF0ZUtleSwKICAgICAgICBleHRyYV9oZWFkZXJzID0+IHsga2lkID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6S2lkSUQgfSwKICAgICk7CgogICAgIyBub3cgdmFsaWRhdGUgdGhpcyB0b2tlbiwgd2hpY2ggd2lsbCB0YWxrIHRvIG91ciBmYWtlIGF1dGhvcml6YXRpb24gc2VydmVyCiAgICAjIGFuZCBmZXRjaCB0aGUgcHVibGljIGtleSB0byB2YWxpZGF0ZSB0aGUgc2lnbmF0dXJlCgogICAgJFJlc3VsdCA9ICRBdXRoZW50aWNhdG9yLT5BdXRoZW50aWNhdGUoCiAgICAgICAgVG9rZW4gPT4gJFRva2VuLAogICAgKTsKCiAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAnQXV0aGVudGljYXRlZCcgKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyBhc3NlcnQgb24gdGhlIHNweSBsb2cKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgT0F1dGhQcm92aWRlck1vY2s6OkFzc2VydEh0dHBDYWxsTG9nKAogICAgICAgIEV4cGVjdGVkID0+IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAib3BlbmlkIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAiandrcyIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgKTsKfTsKaWYgKCRAKSB7CiAgICBwcmludCBTVERFUlIgIiRAXG4iOwogICAgb2soIDAsICJzaG91bGQgbm90IHRocm93LiIgKTsKfQoKJERCT2JqZWN0LT5Sb2xsYmFjaygpOwoKIyBvdmVyIGFuZCBvdXQKZG9uZV90ZXN0aW5nOwoKIyB0ZWFyIGRvd24gZmFrZSBzZXJ2ZXIKa2lsbCggJ1RFUk0nLCAkT0F1dGhQcm92aWRlck1vY2s6OkNoaWxkUElEICk7CndhaXRwaWQoICRPQXV0aFByb3ZpZGVyTW9jazo6Q2hpbGRQSUQsIDAgKTsKCiMgcGF0Y2ggc3lzY29uZmlnIGp1c3QgZm9yIHRoaXMgcHJvY2VzcyAvIHJlcXVlc3QKCnN1YiBQcmVwYXJlVGVzdFN5c0NvbmZpZyB7CgogICAgbXkgJVBhcmFtID0gQF87CgogICAgIyBjb25maWd1cmUgYW4gT0lEQyBQcm9maWxlIGZvciB0aGUgdW5pdCB0ZXN0CiAgICAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICAgICAgS2V5ICAgPT4gJ0F1dGhNb2R1bGU6Ol9Vbml0VGVzdDE6OkNvbmZpZycsCiAgICAgICAgVmFsdWUgPT4gJE9wZW5JRENvbmZpZywKICAgICk7CgogICAgJENvbmZpZ09iamVjdC0+U2V0KAogICAgICAgIEtleSAgID0+ICdBdXRoTW9kdWxlJywKICAgICAgICBWYWx1ZSA9PiAnS2VybmVsOjpTeXN0ZW06OkF1dGg6Ol9Vbml0VGVzdDEnLAogICAgKTsKCiAgICAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICAgICAgS2V5ICAgPT4gJ0NoZWNrRW1haWxBZGRyZXNzZXMnLAogICAgICAgIFZhbHVlID0+IDAsCiAgICApOwoKICAgIHJldHVybjsKfQo=</File>
        <File Location="scripts/test/OAuthProviderMock.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIE9BdXRoUHJvdmlkZXJNb2NrOwp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSBUZXN0Mjo6VjA7CnVzZSBDcnlwdDo6SldUIHF3KGVuY29kZV9qd3QgZGVjb2RlX2p3dCk7CnVzZSBDcnlwdDo6UEs6OlJTQTsKdXNlIFBsYWNrOjpSdW5uZXI7CnVzZSBQbGFjazo6UmVxdWVzdDsKdXNlIFRyeTo6VGlueSBxdyh0cnkgY2F0Y2gpOwp1c2UgSlNPTjsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgT0F1dGggUHJvdmlkZXIgTW9jayBTZXJ2ZXIKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCm15ICRDdXJyZW50VGltZSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpLT5Ub0Vwb2NoKCk7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIHByZXBhcmUgc2hhcmVkIFJTQSBrZXkKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiRPQXV0aFByb3ZpZGVyTW9jazo6UHJpdmF0ZUtleSA9IENyeXB0OjpQSzo6UlNBLT5uZXcoKTsKJE9BdXRoUHJvdmlkZXJNb2NrOjpQcml2YXRlS2V5LT5nZW5lcmF0ZV9rZXkoIDI1NiwgNjU1MzcgKTsKCiMgcHJlcGFyZSBraWQgZGF0YSB0byBiZSBzZXJ2ZWQgZnJvbSBmYWtlIGF1dGhvcml6YXRpb24gc2VydmVyCm15ICRLaWREYXRhICAgICAgID0gZGVjb2RlX2pzb24oICRPQXV0aFByb3ZpZGVyTW9jazo6UHJpdmF0ZUtleS0+ZXhwb3J0X2tleV9qd2soJ3B1YmxpYycpICk7Cm15ICRLaWRUaHVtYnByaW50ID0gJE9BdXRoUHJvdmlkZXJNb2NrOjpQcml2YXRlS2V5LT5leHBvcnRfa2V5X2p3a190aHVtYnByaW50KCk7CiRPQXV0aFByb3ZpZGVyTW9jazo6S2lkSUQgPSAnMlFxUm1LRmtmcEJIb080Y2oteVZmckhKeWtJQkxPTWJiZTdxQnZVNVVuayc7CgojIGhlbHBlciB0byBnZXQgYW4gT3BlbklEQ29uZmlnCnN1YiBHZXRUZXN0T3BlbklEQ29uZmlnIHsKCiAgICBteSAkT3BlbklEQ29uZmlnID0gewogICAgICAgICdDbGllbnRTZXR0aW5ncycgPT4gewogICAgICAgICAgICAnQ2xpZW50U2VjcmV0JyA9PiAnMTIzNDU2Nzg5ODc2NTQzMjEnLAogICAgICAgICAgICAnQ2xpZW50SUQnICAgICA9PiAnb3RvYm8nLAogICAgICAgICAgICAnUmVkaXJlY3RVUkknICA9PiAnaHR0cDovL2xvY2FsaG9zdC9vdG9iby9pbmRleC5wbD9BY3Rpb249TG9naW4nLAogICAgICAgIH0sCiAgICAgICAgJ1Byb3ZpZGVyU2V0dGluZ3MnID0+IHsKICAgICAgICAgICAgJ1RUTCcgICAgICAgICAgICAgICAgID0+IDE4MDAsCiAgICAgICAgICAgICdPcGVuSURDb25maWd1cmF0aW9uJyA9PiAnaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24nLAogICAgICAgICAgICAnTmFtZScgICAgICAgICAgICAgICAgPT4gJ1VuaXRUZXN0JywKICAgICAgICAgICAgJ1NTTE9wdGlvbnMnICAgICAgICAgID0+IHsKICAgICAgICAgICAgICAgICdTU0xWZXJpZnlNb2RlJyAgICAgPT4gMCwKICAgICAgICAgICAgICAgICdTU0xWZXJpZnlIb3N0bmFtZScgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfTsKICAgIHJldHVybiAkT3BlbklEQ29uZmlnOwp9CgojIGhlbHBlciBmb3IgY3JlYXRpbmcgdGVzdCBKV1QgcGF5bG9hZHMKc3ViIFBheWxvYWQgewoKICAgIG15ICVQYXJhbSA9IEBfOwoKICAgIG15ICRTY29wZSAgICA9ICRQYXJhbXtTY29wZX0gICAgfHwgIm9wZW5pZCBlbWFpbCBwcm9maWxlIHJvbGVzIjsKICAgIG15ICRBdWRpZW5jZSA9ICRQYXJhbXtBdWRpZW5jZX0gfHwgWwogICAgICAgICJvdG9ibyIsCiAgICAgICAgImFjY291bnQiCiAgICBdOwoKICAgIHJldHVybiB7CiAgICAgICAgImV4cCIgPT4gJEN1cnJlbnRUaW1lICsgNjAwLAogICAgICAgICJpYXQiID0+ICRDdXJyZW50VGltZSwKCiAgICAgICAgIyAgImp0aSIgICAgICAgICAgICAgICAgPT4gIjI5YTJmNGJhLTZiZmEtNDU3Yi1hZmExLTQ2OWU2ZjRkYzJjMCIsCiAgICAgICAgImlzcyIgPT4gImh0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyIiwKICAgICAgICAiYXVkIiA9PiAkQXVkaWVuY2UsCiAgICAgICAgInN1YiIgPT4gIjljM2UxODM5LWI0NjgtNGNkYS1hMzlhLWQ5NjllYWQ0NWE0MCIsCiAgICAgICAgInR5cCIgPT4gIkJlYXJlciIsCiAgICAgICAgImF6cCIgPT4gIm90b2JvIiwKCiAgICAgICAgIyAgInNpZCIgICAgICAgICAgICAgICAgPT4gImJhYzYyZDgyLTQwZjctNDU1Yy05ZjNmLThlMDMxNmU2MWY1YiIsCiAgICAgICAgImFjciIgICAgICAgICAgICAgICAgPT4gIjEiLAogICAgICAgICJzY29wZSIgICAgICAgICAgICAgID0+ICRTY29wZSwKICAgICAgICAiZW1haWxfdmVyaWZpZWQiICAgICA9PiAxLAogICAgICAgICJuYW1lIiAgICAgICAgICAgICAgID0+ICJ0ZXN0eSAxIHRlc3RlciAxIiwKICAgICAgICAicHJlZmVycmVkX3VzZXJuYW1lIiA9PiAndGVzdDFAZXhhbXBsZS5jb20nLAogICAgICAgICJnaXZlbl9uYW1lIiAgICAgICAgID0+ICJ0ZXN0eSAxIiwKICAgICAgICAiZmFtaWx5X25hbWUiICAgICAgICA9PiAidGVzdGVyIDEiLAogICAgICAgICJlbWFpbCIgICAgICAgICAgICAgID0+ICd0ZXN0MUBleGFtcGxlLmNvbScsCiAgICAgICAgInJlc291cmNlX2FjY2VzcyIgICAgPT4gewogICAgICAgICAgICAib3RvYm8iID0+IHsKICAgICAgICAgICAgICAgICJyb2xlcyIgPT4gWwogICAgICAgICAgICAgICAgICAgICJhZ2VudHMiCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH07Cn0KCnN1YiBBc3NlcnRIdHRwQ2FsbExvZyB7CgogICAgbXkgJVBhcmFtID0gQF87CgogICAgbXkgJEV4cGVjdGVkID0gJFBhcmFte0V4cGVjdGVkfTsKCiAgICBteSAkVUEgICAgICAgPSBMV1A6OlVzZXJBZ2VudC0+bmV3KCB0aW1lb3V0ID0+IDEwICk7CiAgICBteSAkUmVzcG9uc2UgPSAkVUEtPmdldCgnaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvbG9nJyk7CiAgICBpZiAoICRSZXNwb25zZS0+aXNfc3VjY2VzcyApIHsKCiAgICAgICAgbXkgJExvZyA9IGRlY29kZV9qc29uKCAkUmVzcG9uc2UtPmRlY29kZWRfY29udGVudCApOwoKICAgICAgICBvayggc2NhbGFyIEAkTG9nID09IHNjYWxhciBAJEV4cGVjdGVkLCAibnVtYmVyIG9mIGxvZ2dlZCBjYWxscyBtYXRjaGVzIGV4cGVjdGVkICgiIC4gKCBzY2FsYXIgQCRMb2cgKSAuICIgPT0gIiAuICggc2NhbGFyIEAkRXhwZWN0ZWQgKSAuICIpLiIgKTsKCiAgICAgICAgbXkgJEluZGV4ID0gMDsKICAgICAgICBmb3IgbXkgJEV4cGVjdGF0aW9uIChAJEV4cGVjdGVkKSB7CgogICAgICAgICAgICBteSAkQWN0dWFsICAgICAgICAgID0gJExvZy0+WyRJbmRleF07CiAgICAgICAgICAgIG15ICRFeHBlY3RlZENvbnRlbnQgPSAkRXhwZWN0YXRpb24tPntjb250ZW50fTsKICAgICAgICAgICAgbXkgJE9wICAgICAgICAgICAgICA9ICRFeHBlY3RhdGlvbi0+e29wZXJhdG9yfSB8fCAnZXF1YWwnOwoKICAgICAgICAgICAgb2soICRBY3R1YWwtPntlbmRwb2ludH0gZXEgJEV4cGVjdGF0aW9uLT57ZW5kcG9pbnR9LCAkQWN0dWFsLT57ZW5kcG9pbnR9IC4gIiBlcXVhbHMgIiAuICRFeHBlY3RhdGlvbi0+e2VuZHBvaW50fSApOwoKICAgICAgICAgICAgaWYgKCRFeHBlY3RlZENvbnRlbnQpIHsKICAgICAgICAgICAgICAgIGlmICggJE9wIGVxICdtYXRjaCcgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJFJlZ2V4ID0gcXIvJEV4cGVjdGVkQ29udGVudC87CiAgICAgICAgICAgICAgICAgICAgb2soICRBY3R1YWwtPntjb250ZW50fSA9fiAkUmVnZXgsICRBY3R1YWwtPntjb250ZW50fSAuICcgbWF0Y2hlcyAnIC4gJEV4cGVjdGVkQ29udGVudCApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgb2soICRBY3R1YWwtPntjb250ZW50fSBlcSAkRXhwZWN0ZWRDb250ZW50LCAkQWN0dWFsLT57Y29udGVudH0gLiAnIGVxdWFscyAnIC4gJEV4cGVjdGVkQ29udGVudCApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICRJbmRleCsrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybjsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBzdGFydCB0ZXN0IGF1dGhvcml6YXRpb24gc2VydmVyCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgokT0F1dGhQcm92aWRlck1vY2s6OkNoaWxkUElEID0gZm9yaygpOwoKaWYgKCAhJE9BdXRoUHJvdmlkZXJNb2NrOjpDaGlsZFBJRCApIHsKCiAgICAjIGkgYW0gdGhlIGZvcmtlZCBjaGlsZAogICAgIyBydW4gdGhlIHRlc3Qgc2VydmVyCgogICAgdHJ5IHsKCiAgICAgICAgbXkgQExvZzsKICAgICAgICBteSAkQXBwID0gc3ViIHsKCiAgICAgICAgICAgIG15ICRFbnYgPSBzaGlmdDsgICAgICAgICAgICAgICAgICAgICAgICMgUFNHSSBlbnYKICAgICAgICAgICAgbXkgJFJlcSA9IFBsYWNrOjpSZXF1ZXN0LT5uZXcoJEVudik7CgogICAgICAgICAgICAjIHByaW50IFNUREVSUiAiXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cbiI7CiAgICAgICAgICAgICMgcHJpbnQgU1RERVJSICRyZXEtPnBhdGgoKS4iXG4iOwogICAgICAgICAgICAjIHByaW50IFNUREVSUiAkcmVxLT5jb250ZW50KCkuIlxuIjsKICAgICAgICAgICAgIyBwcmludCBTVERFUlIgRHVtcGVyKCRyZXEtPmhlYWRlcnMoKSkuIlxuIjsKCiAgICAgICAgICAgIGlmICggJFJlcS0+cGF0aCgpIGVxICcvcmVhbG1zL21hc3Rlci8ud2VsbC1rbm93bi9vcGVuaWQtY29uZmlndXJhdGlvbicgKSB7CgogICAgICAgICAgICAgICAgcHVzaCBATG9nLCB7CiAgICAgICAgICAgICAgICAgICAgJ2VuZHBvaW50JyA9PiAnb3BlbmlkJywKICAgICAgICAgICAgICAgICAgICAnY29udGVudCcgID0+ICcnLAogICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICAjIHRoZSB0ZXN0IGZpeHR1cmUgZnJvbSBoZWxsCiAgICAgICAgICAgICAgICAjIHJlY29yZGVkIGZyb20gY29udmVyc2F0aW9ucyB3aXRoIGtleWNsb2FrCiAgICAgICAgICAgICAgICBteSAkRGF0YSA9IHsKICAgICAgICAgICAgICAgICAgICAiaXNzdWVyIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImh0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyIiwKICAgICAgICAgICAgICAgICAgICAiYXV0aG9yaXphdGlvbl9lbmRwb2ludCIgICAgICAgICAgICAgICAgPT4gImh0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2F1dGgiLAogICAgICAgICAgICAgICAgICAgICJ0b2tlbl9lbmRwb2ludCIgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW4iLAogICAgICAgICAgICAgICAgICAgICJpbnRyb3NwZWN0aW9uX2VuZHBvaW50IiAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW4vaW50cm9zcGVjdCIsCiAgICAgICAgICAgICAgICAgICAgInVzZXJpbmZvX2VuZHBvaW50IiAgICAgICAgICAgICAgICAgICAgID0+ICJodHRwOi8vbG9jYWxob3N0OjIwMDcvcmVhbG1zL21hc3Rlci9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC91c2VyaW5mbyIsCiAgICAgICAgICAgICAgICAgICAgImVuZF9zZXNzaW9uX2VuZHBvaW50IiAgICAgICAgICAgICAgICAgID0+ICJodHRwOi8vbG9jYWxob3N0OjIwMDcvcmVhbG1zL21hc3Rlci9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC9sb2dvdXQiLAogICAgICAgICAgICAgICAgICAgICJmcm9udGNoYW5uZWxfbG9nb3V0X3Nlc3Npb25fc3VwcG9ydGVkIiA9PiAxLAogICAgICAgICAgICAgICAgICAgICJmcm9udGNoYW5uZWxfbG9nb3V0X3N1cHBvcnRlZCIgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgICJqd2tzX3VyaSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvY2VydHMiLAogICAgICAgICAgICAgICAgICAgICJjaGVja19zZXNzaW9uX2lmcmFtZSIgICAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvbG9naW4tc3RhdHVzLWlmcmFtZS5odG1sIiwKICAgICAgICAgICAgICAgICAgICAiZ3JhbnRfdHlwZXNfc3VwcG9ydGVkIiAgICAgICAgICAgICAgICAgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAiYXV0aG9yaXphdGlvbl9jb2RlIiwgImltcGxpY2l0IiwgInJlZnJlc2hfdG9rZW4iLCAicGFzc3dvcmQiLCAiY2xpZW50X2NyZWRlbnRpYWxzIiwKICAgICAgICAgICAgICAgICAgICAgICAgInVybjpvcGVuaWQ6cGFyYW1zOmdyYW50LXR5cGU6Y2liYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Z3JhbnQtdHlwZTpkZXZpY2VfY29kZSIKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICJhY3JfdmFsdWVzX3N1cHBvcnRlZCIgICAgICAgICAgICAgICAgICA9PiBbICIwIiwgICAgICAiMSIgXSwKICAgICAgICAgICAgICAgICAgICAicmVzcG9uc2VfdHlwZXNfc3VwcG9ydGVkIiAgICAgICAgICAgICAgPT4gWyAiY29kZSIsICAgIm5vbmUiLCAiaWRfdG9rZW4iLCAidG9rZW4iLCAiaWRfdG9rZW4gdG9rZW4iLCAiY29kZSBpZF90b2tlbiIsICJjb2RlIHRva2VuIiwgImNvZGUgaWRfdG9rZW4gdG9rZW4iIF0sCiAgICAgICAgICAgICAgICAgICAgInN1YmplY3RfdHlwZXNfc3VwcG9ydGVkIiAgICAgICAgICAgICAgID0+IFsgInB1YmxpYyIsICJwYWlyd2lzZSIgXSwKICAgICAgICAgICAgICAgICAgICAicHJvbXB0X3ZhbHVlc19zdXBwb3J0ZWQiICAgICAgICAgICAgICAgPT4gWyAibm9uZSIsICAgImxvZ2luIiwgImNvbnNlbnQiIF0sCiAgICAgICAgICAgICAgICAgICAgImlkX3Rva2VuX3NpZ25pbmdfYWxnX3ZhbHVlc19zdXBwb3J0ZWQiID0+CiAgICAgICAgICAgICAgICAgICAgICAgIFsgIlBTMzg0IiwgIlJTMzg0IiwgIkVkRFNBIiwgIkVTMzg0IiwgIkhTMjU2IiwgIkhTNTEyIiwgIkVTMjU2IiwgIlJTMjU2IiwgIkhTMzg0IiwgIkVTNTEyIiwgIlBTMjU2IiwgIlBTNTEyIiwgIlJTNTEyIiBdLAogICAgICAgICAgICAgICAgICAgICJpZF90b2tlbl9lbmNyeXB0aW9uX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiA9PiBbICJFQ0RILUVTK0EyNTZLVyIsICJFQ0RILUVTK0ExOTJLVyIsICJFQ0RILUVTK0ExMjhLVyIsICJSU0EtT0FFUCIsICJSU0EtT0FFUC0yNTYiLCAiUlNBMV81IiwgIkVDREgtRVMiIF0sCiAgICAgICAgICAgICAgICAgICAgImlkX3Rva2VuX2VuY3J5cHRpb25fZW5jX3ZhbHVlc19zdXBwb3J0ZWQiID0+IFsgIkEyNTZHQ00iLCAiQTE5MkdDTSIsICJBMTI4R0NNIiwgIkExMjhDQkMtSFMyNTYiLCAiQTE5MkNCQy1IUzM4NCIsICJBMjU2Q0JDLUhTNTEyIiBdLAogICAgICAgICAgICAgICAgICAgICJ1c2VyaW5mb19zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICBbICJQUzM4NCIsICJSUzM4NCIsICJFZERTQSIsICJFUzM4NCIsICJIUzI1NiIsICJIUzUxMiIsICJFUzI1NiIsICJSUzI1NiIsICJIUzM4NCIsICJFUzUxMiIsICJQUzI1NiIsICJQUzUxMiIsICJSUzUxMiIsICJub25lIiBdLAogICAgICAgICAgICAgICAgICAgICJ1c2VyaW5mb19lbmNyeXB0aW9uX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiAgICA9PiBbICJFQ0RILUVTK0EyNTZLVyIsICJFQ0RILUVTK0ExOTJLVyIsICJFQ0RILUVTK0ExMjhLVyIsICJSU0EtT0FFUCIsICJSU0EtT0FFUC0yNTYiLCAiUlNBMV81IiwgIkVDREgtRVMiIF0sCiAgICAgICAgICAgICAgICAgICAgInVzZXJpbmZvX2VuY3J5cHRpb25fZW5jX3ZhbHVlc19zdXBwb3J0ZWQiICAgID0+IFsgIkEyNTZHQ00iLCAiQTE5MkdDTSIsICJBMTI4R0NNIiwgIkExMjhDQkMtSFMyNTYiLCAiQTE5MkNCQy1IUzM4NCIsICJBMjU2Q0JDLUhTNTEyIiBdLAogICAgICAgICAgICAgICAgICAgICJyZXF1ZXN0X29iamVjdF9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiA9PgogICAgICAgICAgICAgICAgICAgICAgICBbICJQUzM4NCIsICJSUzM4NCIsICJFZERTQSIsICJFUzM4NCIsICJIUzI1NiIsICJIUzUxMiIsICJFUzI1NiIsICJSUzI1NiIsICJIUzM4NCIsICJFUzUxMiIsICJQUzI1NiIsICJQUzUxMiIsICJSUzUxMiIsICJub25lIiBdLAogICAgICAgICAgICAgICAgICAgICJyZXF1ZXN0X29iamVjdF9lbmNyeXB0aW9uX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiA9PgogICAgICAgICAgICAgICAgICAgICAgICBbICJFQ0RILUVTK0EyNTZLVyIsICJFQ0RILUVTK0ExOTJLVyIsICJFQ0RILUVTK0ExMjhLVyIsICJSU0EtT0FFUCIsICJSU0EtT0FFUC0yNTYiLCAiUlNBMV81IiwgIkVDREgtRVMiIF0sCiAgICAgICAgICAgICAgICAgICAgInJlcXVlc3Rfb2JqZWN0X2VuY3J5cHRpb25fZW5jX3ZhbHVlc19zdXBwb3J0ZWQiID0+IFsgIkEyNTZHQ00iLCAiQTE5MkdDTSIsICAiQTEyOEdDTSIsICAgIkExMjhDQkMtSFMyNTYiLCAiQTE5MkNCQy1IUzM4NCIsICJBMjU2Q0JDLUhTNTEyIiBdLAogICAgICAgICAgICAgICAgICAgICJyZXNwb25zZV9tb2Rlc19zdXBwb3J0ZWQiICAgICAgICAgICAgICAgICAgICAgICA9PiBbICJxdWVyeSIsICAgImZyYWdtZW50IiwgImZvcm1fcG9zdCIsICJxdWVyeS5qd3QiLCAgICAgImZyYWdtZW50Lmp3dCIsICAiZm9ybV9wb3N0Lmp3dCIsICJqd3QiIF0sCiAgICAgICAgICAgICAgICAgICAgInJlZ2lzdHJhdGlvbl9lbmRwb2ludCIgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJodHRwOi8vbG9jYWxob3N0OjIwMDcvcmVhbG1zL21hc3Rlci9jbGllbnRzLXJlZ2lzdHJhdGlvbnMvb3BlbmlkLWNvbm5lY3QiLAogICAgICAgICAgICAgICAgICAgICJ0b2tlbl9lbmRwb2ludF9hdXRoX21ldGhvZHNfc3VwcG9ydGVkIiAgICAgICAgICA9PiBbICJwcml2YXRlX2tleV9qd3QiLCAiY2xpZW50X3NlY3JldF9iYXNpYyIsICJjbGllbnRfc2VjcmV0X3Bvc3QiLCAidGxzX2NsaWVudF9hdXRoIiwgImNsaWVudF9zZWNyZXRfand0IiBdLAogICAgICAgICAgICAgICAgICAgICJ0b2tlbl9lbmRwb2ludF9hdXRoX3NpZ25pbmdfYWxnX3ZhbHVlc19zdXBwb3J0ZWQiID0+CiAgICAgICAgICAgICAgICAgICAgICAgIFsgIlBTMzg0IiwgIlJTMzg0IiwgIkVkRFNBIiwgIkVTMzg0IiwgIkhTMjU2IiwgIkhTNTEyIiwgIkVTMjU2IiwgIlJTMjU2IiwgIkhTMzg0IiwgIkVTNTEyIiwgIlBTMjU2IiwgIlBTNTEyIiwgIlJTNTEyIiBdLAogICAgICAgICAgICAgICAgICAgICJpbnRyb3NwZWN0aW9uX2VuZHBvaW50X2F1dGhfbWV0aG9kc19zdXBwb3J0ZWQiID0+CiAgICAgICAgICAgICAgICAgICAgICAgIFsgInByaXZhdGVfa2V5X2p3dCIsICJjbGllbnRfc2VjcmV0X2Jhc2ljIiwgImNsaWVudF9zZWNyZXRfcG9zdCIsICJ0bHNfY2xpZW50X2F1dGgiLCAiY2xpZW50X3NlY3JldF9qd3QiIF0sCiAgICAgICAgICAgICAgICAgICAgImludHJvc3BlY3Rpb25fZW5kcG9pbnRfYXV0aF9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiA9PgogICAgICAgICAgICAgICAgICAgICAgICBbICJQUzM4NCIsICJSUzM4NCIsICJFZERTQSIsICJFUzM4NCIsICJIUzI1NiIsICJIUzUxMiIsICJFUzI1NiIsICJSUzI1NiIsICJIUzM4NCIsICJFUzUxMiIsICJQUzI1NiIsICJQUzUxMiIsICJSUzUxMiIgXSwKICAgICAgICAgICAgICAgICAgICAiYXV0aG9yaXphdGlvbl9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiA9PgogICAgICAgICAgICAgICAgICAgICAgICBbICJQUzM4NCIsICJSUzM4NCIsICJFZERTQSIsICJFUzM4NCIsICJIUzI1NiIsICJIUzUxMiIsICJFUzI1NiIsICJSUzI1NiIsICJIUzM4NCIsICJFUzUxMiIsICJQUzI1NiIsICJQUzUxMiIsICJSUzUxMiIgXSwKICAgICAgICAgICAgICAgICAgICAiYXV0aG9yaXphdGlvbl9lbmNyeXB0aW9uX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiA9PgogICAgICAgICAgICAgICAgICAgICAgICBbICJFQ0RILUVTK0EyNTZLVyIsICJFQ0RILUVTK0ExOTJLVyIsICJFQ0RILUVTK0ExMjhLVyIsICJSU0EtT0FFUCIsICJSU0EtT0FFUC0yNTYiLCAiUlNBMV81IiwgIkVDREgtRVMiIF0sCiAgICAgICAgICAgICAgICAgICAgImF1dGhvcml6YXRpb25fZW5jcnlwdGlvbl9lbmNfdmFsdWVzX3N1cHBvcnRlZCIgPT4gWyAiQTI1NkdDTSIsICJBMTkyR0NNIiwgIkExMjhHQ00iLCAiQTEyOENCQy1IUzI1NiIsICJBMTkyQ0JDLUhTMzg0IiwgIkEyNTZDQkMtSFM1MTIiIF0sCiAgICAgICAgICAgICAgICAgICAgImNsYWltc19zdXBwb3J0ZWQiICAgICAgICAgICA9PiBbICJhdWQiLCAic3ViIiwgImlzcyIsICJhdXRoX3RpbWUiLCAibmFtZSIsICJnaXZlbl9uYW1lIiwgImZhbWlseV9uYW1lIiwgInByZWZlcnJlZF91c2VybmFtZSIsICJlbWFpbCIsICJhY3IiIF0sCiAgICAgICAgICAgICAgICAgICAgImNsYWltX3R5cGVzX3N1cHBvcnRlZCIgICAgICA9PiBbIm5vcm1hbCJdLAogICAgICAgICAgICAgICAgICAgICJjbGFpbXNfcGFyYW1ldGVyX3N1cHBvcnRlZCIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAic2NvcGVzX3N1cHBvcnRlZCIgICAgICAgICAgID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgIm9wZW5pZCIsICAgICAgICAgICJvcmdhbml6YXRpb24iLCAicGhvbmUiLCAib2ZmbGluZV9hY2Nlc3MiLCAicHJvZmlsZSIsICJ3ZWItb3JpZ2lucyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzZXJ2aWNlX2FjY291bnQiLCAiYmFzaWMiLCAgICAgICAgImVtYWlsIiwgImFjciIsICAgICAgICAgICAgImFkZHJlc3MiLCAibWljcm9wcm9maWxlLWp3dCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJpbWFwIiwgICAgICAgICAgICAicm9sZXMiCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAicmVxdWVzdF9wYXJhbWV0ZXJfc3VwcG9ydGVkIiAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgICJyZXF1ZXN0X3VyaV9wYXJhbWV0ZXJfc3VwcG9ydGVkIiAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgInJlcXVpcmVfcmVxdWVzdF91cmlfcmVnaXN0cmF0aW9uIiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICAiY29kZV9jaGFsbGVuZ2VfbWV0aG9kc19zdXBwb3J0ZWQiICAgICAgICAgICA9PiBbICJwbGFpbiIsICJTMjU2IiBdLAogICAgICAgICAgICAgICAgICAgICJ0bHNfY2xpZW50X2NlcnRpZmljYXRlX2JvdW5kX2FjY2Vzc190b2tlbnMiID0+IDEsCiAgICAgICAgICAgICAgICAgICAgInJldm9jYXRpb25fZW5kcG9pbnQiICAgICAgICAgICAgICAgICAgICAgICAgPT4gImh0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Jldm9rZSIsCiAgICAgICAgICAgICAgICAgICAgInJldm9jYXRpb25fZW5kcG9pbnRfYXV0aF9tZXRob2RzX3N1cHBvcnRlZCIgPT4gWyAicHJpdmF0ZV9rZXlfand0IiwgImNsaWVudF9zZWNyZXRfYmFzaWMiLCAiY2xpZW50X3NlY3JldF9wb3N0IiwgInRsc19jbGllbnRfYXV0aCIsICJjbGllbnRfc2VjcmV0X2p3dCIgXSwKICAgICAgICAgICAgICAgICAgICAicmV2b2NhdGlvbl9lbmRwb2ludF9hdXRoX3NpZ25pbmdfYWxnX3ZhbHVlc19zdXBwb3J0ZWQiID0+CiAgICAgICAgICAgICAgICAgICAgICAgIFsgIlBTMzg0IiwgIlJTMzg0IiwgIkVkRFNBIiwgIkVTMzg0IiwgIkhTMjU2IiwgIkhTNTEyIiwgIkVTMjU2IiwgIlJTMjU2IiwgIkhTMzg0IiwgIkVTNTEyIiwgIlBTMjU2IiwgIlBTNTEyIiwgIlJTNTEyIiBdLAogICAgICAgICAgICAgICAgICAgICJiYWNrY2hhbm5lbF9sb2dvdXRfc3VwcG9ydGVkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgImJhY2tjaGFubmVsX2xvZ291dF9zZXNzaW9uX3N1cHBvcnRlZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICAiZGV2aWNlX2F1dGhvcml6YXRpb25fZW5kcG9pbnQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvYXV0aC9kZXZpY2UiLAogICAgICAgICAgICAgICAgICAgICJiYWNrY2hhbm5lbF90b2tlbl9kZWxpdmVyeV9tb2Rlc19zdXBwb3J0ZWQiICAgICAgICAgICAgICAgICAgICAgID0+IFsgInBvbGwiLCAicGluZyIgXSwKICAgICAgICAgICAgICAgICAgICAiYmFja2NoYW5uZWxfYXV0aGVudGljYXRpb25fZW5kcG9pbnQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvZXh0L2NpYmEvYXV0aCIsCiAgICAgICAgICAgICAgICAgICAgImJhY2tjaGFubmVsX2F1dGhlbnRpY2F0aW9uX3JlcXVlc3Rfc2lnbmluZ19hbGdfdmFsdWVzX3N1cHBvcnRlZCIgPT4KICAgICAgICAgICAgICAgICAgICAgICAgWyAiUFMzODQiLCAiUlMzODQiLCAiRWREU0EiLCAiRVMzODQiLCAiRVMyNTYiLCAiUlMyNTYiLCAiRVM1MTIiLCAiUFMyNTYiLCAiUFM1MTIiLCAiUlM1MTIiIF0sCiAgICAgICAgICAgICAgICAgICAgInJlcXVpcmVfcHVzaGVkX2F1dGhvcml6YXRpb25fcmVxdWVzdHMiID0+IDAsCiAgICAgICAgICAgICAgICAgICAgInB1c2hlZF9hdXRob3JpemF0aW9uX3JlcXVlc3RfZW5kcG9pbnQiID0+ICJodHRwOi8vbG9jYWxob3N0OjIwMDcvcmVhbG1zL21hc3Rlci9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC9leHQvcGFyL3JlcXVlc3QiLAogICAgICAgICAgICAgICAgICAgICJtdGxzX2VuZHBvaW50X2FsaWFzZXMiICAgICAgICAgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ0b2tlbl9lbmRwb2ludCIgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW4iLAogICAgICAgICAgICAgICAgICAgICAgICAicmV2b2NhdGlvbl9lbmRwb2ludCIgICAgICAgICAgICAgICAgICAgPT4gImh0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Jldm9rZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJpbnRyb3NwZWN0aW9uX2VuZHBvaW50IiAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW4vaW50cm9zcGVjdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJkZXZpY2VfYXV0aG9yaXphdGlvbl9lbmRwb2ludCIgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvYXV0aC9kZXZpY2UiLAogICAgICAgICAgICAgICAgICAgICAgICAicmVnaXN0cmF0aW9uX2VuZHBvaW50IiAgICAgICAgICAgICAgICAgPT4gImh0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyL2NsaWVudHMtcmVnaXN0cmF0aW9ucy9vcGVuaWQtY29ubmVjdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ1c2VyaW5mb19lbmRwb2ludCIgICAgICAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdXNlcmluZm8iLAogICAgICAgICAgICAgICAgICAgICAgICAicHVzaGVkX2F1dGhvcml6YXRpb25fcmVxdWVzdF9lbmRwb2ludCIgPT4gImh0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2V4dC9wYXIvcmVxdWVzdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJiYWNrY2hhbm5lbF9hdXRoZW50aWNhdGlvbl9lbmRwb2ludCIgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvZXh0L2NpYmEvYXV0aCIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJhdXRob3JpemF0aW9uX3Jlc3BvbnNlX2lzc19wYXJhbWV0ZXJfc3VwcG9ydGVkIiA9PiAxCiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICAgICAgMjAwLAogICAgICAgICAgICAgICAgICAgIFsgIkNvbnRlbnQtVHlwZSIgPT4gJ2FwcGxpY2F0aW9uL2pzb24nIF0sCiAgICAgICAgICAgICAgICAgICAgWyBlbmNvZGVfanNvbigkRGF0YSkgXQogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRSZXEtPnBhdGgoKSBlcSAnL3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvY2VydHMnICkgewoKICAgICAgICAgICAgICAgIHB1c2ggQExvZywgewogICAgICAgICAgICAgICAgICAgICdlbmRwb2ludCcgPT4gJ2p3a3MnLAogICAgICAgICAgICAgICAgICAgICdjb250ZW50JyAgPT4gJycsCiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICMgdGhpcyBpcyB0aGUgandrcyB1cmwgZW5kcG9pbnQsIGhlcmUgd2UgcmV0dXJuIHRoZSBtYWdpYyBrZXkgZGF0YQogICAgICAgICAgICAgICAgbXkgJERhdGEgPSB7CgogICAgICAgICAgICAgICAgICAgICJrZXlzIiA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJraWQiID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6S2lkSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAia3R5IiA9PiAkS2lkRGF0YS0+e2t0eX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWxnIiA9PiAiUlMyNTYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInVzZSIgPT4gInNpZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAibiIgICA9PiAkS2lkRGF0YS0+e259LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImUiICAgPT4gJEtpZERhdGEtPntlfSwKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgICAgICAyMDAsCiAgICAgICAgICAgICAgICAgICAgWyAiQ29udGVudC1UeXBlIiA9PiAnYXBwbGljYXRpb24vanNvbicgXSwKICAgICAgICAgICAgICAgICAgICBbIGVuY29kZV9qc29uKCREYXRhKSBdCiAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJFJlcS0+cGF0aCgpIGVxICcvcmVhbG1zL21hc3Rlci9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbicgKSB7CgogICAgICAgICAgICAgICAgIyB0aGlzIGlzIHRoZSB0b2tlbiBlbmRwb2ludCwgZ2VuZXJhdGUgYSBmcmVzaCBKV1QgdG9rZW4gYW5kIHJldHVybiBpdAogICAgICAgICAgICAgICAgbXkgJFBhcmFtcyA9ICRSZXEtPnBhcmFtZXRlcnMoKTsKICAgICAgICAgICAgICAgIG15ICRTY29wZSAgPSAkUGFyYW1zLT57c2NvcGV9OyAgICAgIyBhbHdheXMgcmV0dXJuIEpXVCB3aXRoIHNjb3BlcyBhcyByZXF1ZXN0ZWQKCiAgICAgICAgICAgICAgICBwdXNoIEBMb2csIHsKICAgICAgICAgICAgICAgICAgICAnZW5kcG9pbnQnID0+ICd0b2tlbicsCiAgICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQnICA9PiAkUmVxLT5jb250ZW50KCksCiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICMgdmFsaWRhdGUgY3JlZGVudGlhbHMgLSB0aGlzIGV4cGVjdHMgY2xpZW50X2NyZWRlbnRpYWxzIGZsb3cgc28gYmFzaWMgYXV0aAogICAgICAgICAgICAgICAgIyBoYXMgY2xpZW50X2lkIGFuZCBjbGllbnRfc2VjcmV0IGZyb20gR2V0VGVzdE9wZW5JRENvbmZpZygpIGluIHRoZSBCYXNlNjQKICAgICAgICAgICAgICAgIGlmICggJFJlcS0+aGVhZGVycygpLT57YXV0aG9yaXphdGlvbn0gbmUgJ0Jhc2ljIGIzUnZZbTg2TVRJek5EVTJOemc1T0RjMk5UUXpNakU9JyApIHsKCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgICAgICAgICAgNDAxLAogICAgICAgICAgICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgW10KICAgICAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIG15ICRBY2Nlc3NUb2tlblBheWxvYWQgPSBQYXlsb2FkKCk7CiAgICAgICAgICAgICAgICAkQWNjZXNzVG9rZW5QYXlsb2FkLT57c2NvcGV9ID0gJFNjb3BlOwoKICAgICAgICAgICAgICAgIG15ICRBY2Nlc3NUb2tlbiA9IGVuY29kZV9qd3QoCiAgICAgICAgICAgICAgICAgICAgcGF5bG9hZCAgICAgICA9PiAkQWNjZXNzVG9rZW5QYXlsb2FkLAogICAgICAgICAgICAgICAgICAgIGFsZyAgICAgICAgICAgPT4gJ1JTMjU2JywKICAgICAgICAgICAgICAgICAgICBrZXkgICAgICAgICAgID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6UHJpdmF0ZUtleSwKICAgICAgICAgICAgICAgICAgICBleHRyYV9oZWFkZXJzID0+IHsga2lkID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6S2lkSUQgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJElEVG9rZW5QYXlsb2FkID0gUGF5bG9hZCgpOwogICAgICAgICAgICAgICAgJElEVG9rZW5QYXlsb2FkLT57dHlwfSAgID0gJ0lEJzsKICAgICAgICAgICAgICAgICRJRFRva2VuUGF5bG9hZC0+e3Njb3BlfSA9ICRTY29wZTsKCiAgICAgICAgICAgICAgICBteSAkSURUb2tlbiA9IGVuY29kZV9qd3QoCiAgICAgICAgICAgICAgICAgICAgcGF5bG9hZCAgICAgICA9PiAkSURUb2tlblBheWxvYWQsCiAgICAgICAgICAgICAgICAgICAgYWxnICAgICAgICAgICA9PiAnUlMyNTYnLAogICAgICAgICAgICAgICAgICAgIGtleSAgICAgICAgICAgPT4gJE9BdXRoUHJvdmlkZXJNb2NrOjpQcml2YXRlS2V5LAogICAgICAgICAgICAgICAgICAgIGV4dHJhX2hlYWRlcnMgPT4geyBraWQgPT4gJE9BdXRoUHJvdmlkZXJNb2NrOjpLaWRJRCB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBteSAkRGF0YSA9IHsKICAgICAgICAgICAgICAgICAgICBhY2Nlc3NfdG9rZW4gID0+ICRBY2Nlc3NUb2tlbiwKICAgICAgICAgICAgICAgICAgICBpZF90b2tlbiAgICAgID0+ICRJRFRva2VuLAogICAgICAgICAgICAgICAgICAgIHJlZnJlc2hfdG9rZW4gPT4gJEFjY2Vzc1Rva2VuLAogICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICAgIDIwMCwKICAgICAgICAgICAgICAgICAgICBbICJDb250ZW50LVR5cGUiID0+ICdhcHBsaWNhdGlvbi9qc29uJyBdLAogICAgICAgICAgICAgICAgICAgIFsgZW5jb2RlX2pzb24oJERhdGEpIF0KICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkUmVxLT5wYXRoKCkgZXEgJy9yZWFsbXMvbWFzdGVyL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2xvZycgKSB7CgogICAgICAgICAgICAgICAgbXkgJEpzb24gPSBlbmNvZGVfanNvbiggXEBMb2cgKTsKICAgICAgICAgICAgICAgIEBMb2cgPSAoKTsgICAgIyByZXNldCBsb2cKCiAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICAgIDIwMCwKICAgICAgICAgICAgICAgICAgICBbICJDb250ZW50LVR5cGUiID0+ICdhcHBsaWNhdGlvbi9qc29uJyBdLAogICAgICAgICAgICAgICAgICAgIFskSnNvbl0KICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICA0MDQsCiAgICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICAgIFsiTm90IEZvdW5kISJdCiAgICAgICAgICAgIF07CiAgICAgICAgfTsKCiAgICAgICAgbXkgJFJ1bm5lciA9IFBsYWNrOjpSdW5uZXItPm5ldzsKICAgICAgICAkUnVubmVyLT5wYXJzZV9vcHRpb25zKHF3Jy0tbm8tZGVmYXVsdC1taWRkbGV3YXJlIC0taG9zdCAxMjcuMC4wLjEgLS1wb3J0IDIwMDcnKTsKICAgICAgICAkUnVubmVyLT5ydW4oJEFwcCk7CiAgICB9CiAgICBjYXRjaCB7CiAgICAgICAgcHJpbnQgU1RERVJSICRfIC4gIlxuIjsKICAgICAgICBleGl0IDE7CiAgICB9OwogICAgZXhpdCAwOwp9CgoxOwo=</File>
        <File Location="doc/en/OAuth2.pdf" Permission="644" Encode="Base64">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6wPWB6wPWB+wPmB9wPqA9QHrA9YH60sA1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfbA+YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9cH6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gfrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+sD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH2wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrg/UB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPlgfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+mB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB64P1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YH60sA1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfbA+YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9cH6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gfrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+sD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH2wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrg/UB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPlgfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+mB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB64P1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YH60sA1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH6wPWB+wPmB9oMgD+ZMcDwplbmRzdHJlYW0KZW5kb2JqCjEwOCAwIG9iago8PC9Db2xvclNwYWNlL0RldmljZVJHQi9TTWFzayAxMDcgMCBSL1R5cGUvWE9iamVjdC9TdWJ0eXBlL0ltYWdlL1dpZHRoIDEwMTkvSGVpZ2h0Cjc5OS9CaXRzUGVyQ29tcG9uZW50IDgvRGVjb2RlUGFybXM8PC9CaXRzUGVyQ29tcG9uZW50IDgvQ29sb3JzIDMvQ29sdW1ucyAxMDE5L1ByZWRpY3RvcgoxNT4+L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMTEwMzAzPj4Kc3RyZWFtCnja7N0JWA3r/wDwmbO07/uiXVIkkUillCypUEiyk7VEISSkZI8iyRLZor20SihKyh5KaZP2fe+s8z8VSZ2Se937u/y/n8dzn+6cc9553++8M/N9Z945B21vJyEAAAAAAACAPxQOQgAAAAAAAABk/AAAAAAAAADI+AEAAAAAAACQ8QMAAAAAAAAg4wcAAAAAAABAxg8AAAAAAACAjB8AAAAAAADI+AEAAAAAAACQ8QMAAAAAAAAg4wcAAAAAAABAxg8AAAAAAACAjB8AAAAAAAAAGT8AAAAAAACAKcLvVFcCjkD4VmEqlcb4B5sQAAAAAACAQfxO1/ipVDqVSu01AMAz/sEmBAAAAAAA4A/J+CHpBwAAAAAA4A/P+CHpBwAAAAAA4A/P+CHpBwAAAAAA4A/P+CHpBwAAAAAA4A/P+CHpBwAAAAAA4A/P+CHpBwAAAAAA4A/P+CHpBwAAAAAA4D+V8dMbPr5NflHdjiFIR9WzpMzEpA8lHZD0AwAAAAAA8E/5F39zF+souBvpfSu3ls6aNH3e5ilVd67fL0AkFiorSkn83YEHI+ln/KfnF3m7M374RV4AAAAAAAD+rYyfUvf0evDFh42iBiaLhfMCQ4LdcoUxDEHQX7aGX53000ofhLodiY17UdlM5Bupo2frvMRqDNffrC/pjof8Udmkh4uHv/HX1LuZi+BQBENZeOQnT3U6ssZKma3vKKkxN8D1knfEu8JmFtGRY6x3rdtpLE78N4ZnzQlu54rmOaxT/Xa3hPomYLLOtfeddf6CzXRn4Q0Drr+4DnpJ8NlTNPNji0TzT2xZWLshw0PlbzStPchqSdziwMumLL2XduSnHj8QePN+QXkHq8TocYu2rtxmNoy9pwaFIUbjzmWb7Hl3VZ8f/WE9xcrPOU3Ps351YmzvemK1Wae2nPFJKm3jENdZYXNyl6Zk3ztMWE3gvlFrMtVPXIldL/qv3FbrqXOvwTT1w15Nu5O4RSnpq9S/7vcNoQdUlqVp+QWHLuH+XY5Z1HdRdkEi7vsnCaIIAAAAAP4rGT+9qTjybGhELnGc5ezRpY9uvBhusVzj/q2MfEaK/ktn3/y6pB+riDwxfXOh4YFtD28OF+oofxJ6bZvZ7pKwY07jWH+2KAxBmWYmOHHT6Cx7fRZ6e9WnxLNem+ee4kx1MhPq9V5qid+SPT58Vj739miK0QrvB23Y5IqGnt4zjjjo+jC07woHrMMgQ7TSF29y9LA+S1FR44h3DtNY/m7bu19tKchJp3VgCF5yga0fRZLwg7L6t+tH/aEgdsnMK02LNlxPmzCSp/VDcoLrdofFVZ7Ba4Z1rYtWGJmSP3aUREryvXq9BQLoj+rJVMcDt8Pn0CV3sqfLNT7ZNu/IVvkLtxd/XxbWEB/2briWbFZE2ue186T/qZS/d7QHqDPKylaaFvV2ufrY7h2v5UH0eyoH+ve2489XlE5HcDj059r2betjDZ8ev8BIcPAGAAAA/jsZf0fJy0ve8Rmt4rPWTCAkJ1zNbqUj1ZfrRy5YMk0w7H5GbXtlVQcmwfGr8olfk/ST3p50eaHpdc5rLl9XxeSm2+262bZlpmvikmBFP92ztdO4Ht14W0sU0bWxPb1NTRiHkD89OWB/8XZmLX2Y2rojW7bp8Zaf2zn/rer45xEhn+jcI6YevbppnhTT8Q2OXUTWbO/2kicbTt+qMLEV70kImxJuHq+cfitknkbXKEPZZNWxd/mHUj5Rxynga9+ddvQ5+6CMzK8wd5e9u6U0B/mFvXoI7wrk9ql3LUSByVt3XLZXamRah7biQGfvw1H5tQTJ6VvsTq4fyYtiTa/ubNsafLeAIjRGZ+fJVdLBBw49qWrPcxS4cMJl8qCdhPR4uWKiSbbrAk7G309Wj0yY+Xbv5GtM1kuvyTq51ed8SjUiqWy11347LmjpuYICzHUh997DdN91lWszPFQIQ2qXMldr/iWHk0djPzViHHJTLU/7ztPof6MBa449eOWjufNjN7WuF7nUzZZdF2jWWR4QbbF7Lj+K0MoiIqtnbT+o7Lk9NLFpviUvY1H2kc0rSVse71UkILS8E1uXttrdm3S3p54niQi9/v0Jy9MXUmtQRYOjAbbmEp8fp+PneBop8+IRXq11FlfN0wspiwV6j4mwyvSwFyobonWiZsRHfZpjK9u5hftEw2WmMNpvCa5/NIYW7VnZ577WeX+Qndy3bocTmGbIFn+n0Hns8M6NytjqL5Sma75o7xqYlyVc3rQ7Pr2MwiKssMjdycNMqIJZ/6EUPHDadDnkVQONQ2jiatvzu8YxRqktb6LsNwXeK2NTWzCRPapyfua+BRzNz8/5OPpk5jZxjDJfdvqQ0Uh2ctjS5QG8qmV3npZQeabs3LSoItT1dn4d12jna3vWq7Iw6ZmUvlvf37LccVNSSRnRzIY98vx0SRwcwwEAAIAf+0dPmPS6V4mHPWJe4JSXrRxVFxEV2Znud+Xl1Tm3rr3lNZk1S77j0ZmA86m15F+31r//IC/1XUZSx0TrWXy9xiFElcXTVDIzHjUhCCU7LFPl4ovQvHgrzuuHdsU2Y9TCU0u9swycMouCkvcKBK0+HVaNIYz0MeiZxOmA8k8Xj8g+8bicTx1sO4jOnCX9/ll+ryuX1Ff333AaTVb7dlOBMMHpSNgWBQLWGO7oeonNMj4n9MXlSXm7XY887yqb/CwoZ/q9ooi8SIOqY7diGVVlUgdS6oG97nUzgt+E5kbPoZ4+uO9hO9KcuXtxKGJ3NKfggo9mzjbnx3JOe3dpiSw4+6N0f0D91ovVBW12Dxlmk5wXlLxfJMou4LHO+mvr5ZXX7vuWkg61XVhNuP+BIp3QnMiK3COW1dc941qZVIGSk5DMPXfR6N5jAa5JRvMEXt991lksLS8lsmaylYGs2VzptLCM2gGu4bNN711PennMU3SHd17+hYPS6YcY7SLI2Ed679XsihK9/tXLeunhYt+HDKuITcnSmWaiNMlC51N4VEXnLtAvGvda+y8ZIBpDiDZher/YfoGXna3FEf/4XVdJLcmPn4/X1uPu6ubUDz67HoruP1dSHpp5SCL2YHQWlWn/IScd9U0dt/11aVThg4Us/jeCPtMRcs7RNaH4rSc/vD+6ru1JbGcTsbqoM1aXObbHB37K2mtWeGH5ibzO8rCGjKIRV7Ij8m5P+rDn8BVJu/S8gMt6RV4B2RSmPbPf1o/jMPDxMZSaaB11AdJ9AAAA4L+Q8ZOKIq9k1srprZ3HnXo54UnFd/kK1laeeDWlXG3aInV6xrXE9HrsvxMUem1DnZBgn8QNJyIshjRU1dERlM9sq4WmAIFDQd/FRjQh+GVzzqOIOu3t60bwEViGzbRcqfAmPpPC+Ai7gdkmDS4UL6A1WbqtsW3QFuJ4+bmojc293kSrqWoSEOFlMlhpz7rzQHyNk64sO55PfY6jWUdCXHFncHFSlpt0pYgoh4rqeL6OxlaMSR0o2SFRHMt2Go7gxHMoGm61ZH1wt6Al/VG8yKxtc8TZ8Nyadg5nl8oO1C2wyti5QtO5ebr+CTn4FNMHak/f9TY+D0uRX+8wTowFLzbN+tyxKTL0v9wuhG/u9szg+aM5ac31bTQcramR2ZQbUmN1i4BEn2nzeEFJsfaqasbAipYT/rhlzjQtNpz0nCkqTx7GVw+pB3IYztkwnhPHKqQ9SbKtibG5iLyifFwExtbKPr9u577KmQeWf/8cOr06OqLEYJEmH45nuvmYjxGPC2kI0j8aDf2WtA4QjaFEe+D64+W1Z7M9vfOeUYn2lOhsdRN1nu5xLUFhW6zPSRNBXHtzAwnBNbc1Y0xLJkw56BvvosqPddQ3UnG4tqZmjPIsKZxgaDdHjI1VeObGGWqdk846HoY+U1pnbTyMhcCruHazVl3S886GI8TJi2aocKDcY5WVucZYL5FmR7nGaUiRmtuZ9kzKAL0aAAAAAD/ln5zVwypn5bJ+Hmdj5M4beS3MztO0plcRz5XcV3jMR4X5f9k8YQIB1zOrB+ma0vOzs3pwArx8NbVV1O8eM6DX1FYjPEL8aA2eX0qyeyY9TlxWFIuvr6uorah8skn75df59UK6dMaHcTyifN0PiQ5hAjrWWN9C4OHqNb0Jxy/AVV/dREe+XcqkFj67+YrHZHJjLVVQ8sv0H7ykFH9dcQNjIILg+MRE0O9X2K8O5LqKys/RS9YGfykUFTKltVXWtYirdz9vivLJG5t0XqJlWksm8/iZz6fuu156bX01h8gw3q464AQ15wp2Xj/uE4KWIber7v1px4Cwtx28srKCNQN1Px4hzvqKKjoi0Wsr0hora9iEhVgRalF4RH5BsbP81c64ttbTOeLrrZfxflcfZu3iE+Pvt03JhRGX1uxIwc9bEx1roPL909300rTQ1OrnL6xjGc2idTS0VkcWWGzB9Y0GPT+ozxKsKoZZNIYU7UE7t4SJMXFldPHO4dV3MhTNjnBSg7tbSymI9HPye12O51eURzuQEQOUjLa8S3BwiX9WzzpshHA7DRnDaFZlXY2wbPfYCi8q2PkHvamisv358e0Tzn2pj4C0FKkzoCgrG7FzEYqgeFY21l4FM+uZX0Let1cDAAAA4L+T8SMom6AAG7URw75lJsraSpIsrfnp2YVfr9VhKLvor/v+kr+f7ncWMmrCVOLhwMSmqSY8X3MMal7Q/XcTjPR40Rxa/ecyCjKGkUfSKz9VY/y8vAI8gnIzz6d2fwUKqTSrmCLLjtz4mVXSK+8mlKjMVuj1XDBBXW9Uw6HUVy7KGl+WUl9dObu7YPmcGbwChNrSCjrSeS2eXl7ayCvIjUNahvTNR0QufkFF+/Djtp0PkGLNxXlFBBme19xsVbWVdEQeh2D176/dbNFfP/ynIta9iRkpex2J+SVYlJebr7WmkrHRWVDG4OnBxXTi3JmCfd7DNcR2tce5et5T2v/o9mgBHOWe7TIv5i1VnqbT6H47e9vY0Rxfl7U9TwyvUnfRJFCzkiNbzO58stXtHL3QS3y3TwpPr1w6o6st3U3A6msb6Wz9GtI366SXhR4zOUCzv33eRp273wagl0SlfDBxzg+YwtNZZHPwkuWnI0s3r+gbDcKUfvFhvpXbhxLtQeEVTLWIqx+/GFvzZLS2By+a2D0Uyo3cerxlVYL/CnkW+qewWbPLmH+a8u7Epnhuj5NZpoJEau5+7VNdY1Me7pq6ajoigkdo1fWMPxAchwA/25RV3rcsubpC+fl5BedIApL7kz2TiLz7ld/nBQAAAPx/9e/OhMUJTrSYsXyJ1mjef+Qs/kvS/U5sqg4HRj/e4rovLPdzE6WjpiTxlJvFacRuf9fUYawhyiviRROto/jxwfOfdGeP4RulNZ2adORKQRONVpt6zcoi6AXlJ7Jlct3n+MMnjhVMsrUU77U9UD6TxfZ8cStWh6UUNVOorfkx/tv8qZarJ/CyjzbVK790/MlnMr05K9ozkjhjptxQh24so0wNKy96JOe30SllT3ebu1/OR1m1dAxK4k7GV1Owtpd+fgdSGljRzou+JPIQEkqUnZetKD2zBcNanp2LfjTAV6igAuNNNXPPeWXV0Og1KbedTuS0cnaug0yifFvHUNvF+BSNU4Sfkf+2fki6mtRAptCYVBTlNt2zRCro0LLjT9+Vt5Nba99GXVmw9IGM83ITPvrriMeNhpMmfLlZgZMw0lRMT4ktR7h52MqeZ5eQEcqnlLOhlbRva6QwjwWt6IpnjsGxrctVWMkkMolEIVN7vZFeERVeNMl4LPfXMY3+TOW8iEd5vH2j0SbZLz6CqkyiMbRoD15nvIL2bELyrhOvRpmO73lUBWNUnsgtJkBEqHWP/R++aadSmX4YI3WQWQVFOYkI+VNcXHQBmUxBWDS0ptfd84mroVBrk/zuvmZ0fpRzionKs9PX75aSsfbS65t3bQ6v+ws9c8A3M+IMs3sAAACAoSfJf05LflW635UCSlo43eUJdj12cPL6qg5O4ZFaeq4xO8yVWRAqY00ysyZ8dtS2/NjGO2n17jOWAihOwPnGSuetrmMPtODFVVae2zpXAC3/0TroFdFzxOJxCEZHOWS1DNzDV88R/j7FYZHfEnJM2M1305SLn5pxgopjLE957NXnQBAOc8+9nxx8po04QeGVM3Xbt0uTkYANsWmcMw/tLd5x2nSUdyur+FS7XV66LCiqffx6+VYH++Hrqbyq+id8DEVxNOVxfK5rN7pc93XTHrSTsKiu3zVipc1ymXYSx2T9KRKtA0RUZPlZpzJ7by35ekxk5EpfByNOXKOqInm9iym/h9eXWRt8Q2sXxyzHZaHrHFUucEqO1VuxbOyBYyf9Z+7h6fc+ouKcwDiBY27X5p8qqKRxSY8au9jb026mBJ6SHRbVon9wVM8VfLyc5ky566ExdcvnW62K8tJXDOigi5obKXaNCHBiX+t5rt8lf6Ql/2VOWfS8uRe/tlPW1vPNEdXu+V20gseh2SNXG/Rc+0cFDSaO2xYTmbtoe59ocAtifZZw8aH9o4EMLdrf6nz4zhb5vtsPL2lqzOJ+YpifIaNiX37ymjB6tovpQQeNJTtFJPVXGi7gvWLnontHrv/mVrPdp7hy2XIVDgHlWabLTDKO298yu7fYLcDEznaj4jYhw/Va2tw17HichJWDf9lpJwOr1RQOJeMlF7cqEH7QR5n0TITZyBkvM0Lt07npyzjvX501DB7eBQAAAIYAbW//h7/YmlYetu9K+KeuZw4JciuOWxvylgc5X75T1jknGeUYvspjkb7A373k/0vT/UFRP+zVPs1z1WubEh56T+/xC6mFhONiJ/4ZraG2N1NYudlxEO0haX172uX92L0LdPmwqvAjBudH3omZJwe5OAAAAPCf8c9f48eLm7vvMv9ukcTCw84Lf2Eb/rV0HwwIx8rF/gftFuzcBIj2kHEO11eNd5i5poFCx4mN23d6NqT7AAAAwP+zjP+fbsC/nO7jJRa6ryRIQEYDQA821ZXbEldCHAAAAADI+P+AdB/pfB50tNF46DcAAAAAAOB38Rtfq4bJPAAAAAAAAPyxGT+k+wAAAAAAAPyxGT+k+wAAAAAAAPyxGT+k+wAAAAAAAPyxGT+k+wAAAAAAAPyxGT+k+wAAAAAAAPx0Fj3QCzk5JRAdAAAAAAAA/tiMf+RIKYgOAAAAAAAAvzv47VgAAAAAAAAg4wcAAAAAAABAxg8AAAAAAACAjB8AAAAAAAAAGT8AAAAAAAAAMn4AAAAAAAAAZPwAAAAAAABAxg8AAAAAAACAjB8AAAAAAAAAGT8AAAAAAAAAMn4AAAAAAAAAZPwAAAAAAAAAyPgBAAAAAAAAzBEGfxnrQqcz/jFgrKxEIpGAx+NRFEIHwO8HwxAajUahUEkkCg6H4jqh3X6yHDgyAAAAAL/NiZ4w+Em9+3ROo9FZWQlsbGxwOgfgt8bYhQkEPOMfGxtrR0cHiUTF43HdR4ShJ/1wZAAAAAB+sxP9D0/qVCqNk5ONnR1O6gD8UUcExk7N2LUZO3j3pXrGLv9T6T4cGQAAAIDf5USPG+ik3n3LvvukTiQSIHAA/HkYu3bPsaDbD9N9ODIAAAAAv92JnjDQef3rLXsiCwsR4gXAn4qxgzMOBGQyFUVRHA4ZfG4PHBkAAACA3/FEjxv4vE5nnNfZ2VkhUgD82Ri7OWNnH8rEHjgyAAAAAL/jiX6gjB9hnP3Z2FhQmKILwJ+OsZszdvahzOSHIwMAAADwO57oB7zGT6PRWFnhrj0A/y8wdnbGLj+Ua/xwZAAAAAB+OwPO42ec+vH4wX+fi5Z7dKPqrvcU7inX8t2tBbuu+WF1F2bNX5s8xrfg5Hrxv3UVkNRY30DCcwvycOD7vkT+lHFy//UrcTmFDQifnNLM5UsPOGhKM5IQcsZamW0XGnUDqw8uIjxYyL83mNQ1skHwbHyCI3UMdhxevUiZrbuJLe8feOy/det+QRmJVVJ1vNWWVTsXyHL1rjKt5JjO0h0ZtO/iNXLJk9frNH7F84r09uaaJioLLx8fG1Jzafuwtc81PQMf2ov9ih9FI0ctM517S2R3+hX3cf3Ch9VdNl20Oq6dRWdz9oMFcv+7H2HrFQG4YPw/xtjZGbv80J7c/eGRgZxsv9jQp21hUPBNc04mr1NebVb2Egi9uF+td+ckhy2ee0b7yr1NIt9KJ6evkjrMcj34nNHfG2OQHiwUizR4/3cPSj9uGgAAAPCfNMisHvoPbtzTSsPDPlAYb25+Hna3GfvFFSNH2cwXk3L0zqP1Xe2nu0t1d+wKeFPBKaejI8tZkXV19w6dZfdK6ExKQVmHGVpNt140eZJYR1b0rSXGp2LqOmtKfhcyV2//odCPzSIj9LSH0bMeHFxsa+H7icqkCG612UZLrKd3/7M2HSH4a1Jkepm/s5SEhdWNRoxRzeHjFlsbTR/5b2S+WOWT4OR2rHN8lHyHadT+rYS/VwTA/xhjZ++ax/+jzjOUIwPpXcid1mHSuMTQZ01/WJj+l03Dqm8dHLc5nQSdFQAAwM8b7Br/4Gh5KaEvaawSIjwVVffDMxsWGfL/snQVay7JL6jHEKyj9H1xhay8GFvPK41hO0+HfMaNtj1013OiGB6hlqVtnuF8Lth71wLNayb98hhe9R3+O6azIAil7ILF2vUxicdvLJ9ly3rL+dL9OoLa1uOJR8cJ45D21wFTJ1+85xH0cPW2aX2eSMSLzT/kvGcU/hefvRvK35a0MVrY+Ck/r2bsCL3F/nr/Ut5QGfMgpQ0nKcVfUZIdfqfa1lb0f3KVv28EhPCwN/5vDf0a/+A60h7cadM6eIq4bfPDe0165jy/tpaMAQfu3+ixdAqZTmQh/ItN+1FjaY01BRXtMDwGAADwyzL+7lP74Al/bvjDV1RWQ6d1MkcPnk9KTmw0XMjX82Fytr+7mvejEk7ZaSttvHZPEMcjWN07H6dzXhHvS9rZpTS07Tw22E7mw5E6595EjF77+slSZTw1fccSHc+WFdHBS2L3ON+nIEjRGSt30RcXehJurOHpzegGRGja/v2aYl3LCBJabnt0g6wf3LmV2WTCPWB9iRLW6ybviY3LfJDVtAwXeb8V4dPfuUtduOt0yj7G3O+m0LN6oWFDueTNvM7hFw1erpXZ5s9tenJ1g8+xp2VECUN7x4tOaoIoQi3NOORw/kJCYR2rkPrsBUeOWoxPPm9xrPMOyRP37bYSQTcIh6W+zupBmQaqa8ISs8JpJTH+tntiHmQ3kDkEx8ywOHHGSldwkByiLjrkdRthhNNhzeBlV9Mj0ko3zpPqDAJWmxbi6BQc9aIOFZEzXG1zcpemJJ5JzScLMdpTc++Yz54L6a/Lqbzyqgu2bTi4QpEHqfE1WrAxddyF4uNrRFBS9EHxOYmiTr5ZHrLBFiaLoxW2e2u8OhqWWseuPHv5Rb+5ykm9IxCcsKwlaJ+Px62sj/V4EaXRi5ztXOdJssAO+q9m/NiveBs5LTStY4a96Wwkwf5IyL1W8+7ZL9Tqux6ndl56ntsuOHWdAScdEeh6c37IhU3776YVI/ImC2c2DVwyNW/vxCNNKzWeHQjKaGWT1Z5z+pqNQZGfqkn5gTzXhXxo13ybJYubt3zwn9iUeNXeJf5hTjOXguoC583u5r06Etb8aN9267tjr8as0xekfLjt53D4YVp+u+A4/R2em2zGcWJFQQazytfvo3vvyp4R4bvv+3lHzJuGtTz3Pb3FKy2rgUvF0OSQl5WeMI5cnLrf7sK1x5WItMq8HZuPLpZhw5qeeHk7+WW8riRIa2g7nNi4UpWd9i5goknN0Q+OBowq0grcJm4rPXT73NSi/o3Vf35Se/eb5o5c5TkN98Pn/Q8n4wEAAPgd4f7iuZ9WEh72kco62myu7tyZfGjjs/B7Ld9epWSdOVU4Yp6BJrEgZL/LKv8qOr30nNU2e/8PhMkmm1eNJr6I3Tp739mPtIHGIfregYEWLAhh5KHXF3pfX6flF37oQAijVTV5e24ooPwTVVUISNuHokLqYFVmlZFkpLDkz5WfP5UVkRCC4shxfF8LQbnV5sxevWLiSHYmqYbLGH0Ur9v1z3hFNPkHVwYLYw8GI9pzxkt3FEXuO3n6DQ2hFnkudN4XXiNjYbHRmO/DVe95G5Pqzfd98FZnQYgzz4clrBP8dndk0ED1Lxyrurd56bXYaikrxyW2Bhzvg87bHM8ZJAxYeWrIow7CqMlz5+rMHo4nPUmOLusc5dBLYleYnb72nnvGhvkL5WvD97ss8SmhMat5BUZ5eWin2Z6kXL4J6+2mq3a89rHZZhNU+4MeQ/1w5tBLAUPdyULNLwJPOwZUEi16R4Avx+vg8hPPyRPnueyapdqUeWTJwTN5NNg//2tJ/xCu8L8JiSbPsNDg4VY3M6QnhnXPfqHlnNq7IAC/Luha8Utn45zYkNLOcjrSL5mtfirj7JlX5Oepmumf0DFoFyq4dJXs/CyurcxzWXu407lCdLz+PJGX4UmtXePwdyHR2Nwl4zkKo1YsikNX7HtVcD1ym2Ds6n1H33ztSFjLE/ed1nGq/tGMdB/teHLJwj5n3CGvj0X+F2dV7p93Mqpryh+9MunUQxXfzDMuavghNA0rv3lo9vG2JdevFGW5rqCELd7xpImcfWCOx33ltffzglIOK6TbeXjnUGtCT1ocrTM+e74w1+vQuFxHi/PJbT/RWLyxQ6rHGO7Z27IjId0HAADw0/7iI6i0nOTQNzSWSdqzJNiFTCYI+t+9G/68ab7el7vcqID1Ra+AOdxY0XDDUV5JfvFvJ9DOP2xhm+qQED5PGke3HblV2e71hRtF63f+kmFL11cO0ek/uECPIujXtKWrDTTqUApnDAaMJ6l2jw1QNi3JH0w+QQUNzz/YY8ZNeyq8VOfY5+yPNCotMSCzg9t0R+RFIwGsSkfGP6K6rZyKCDMN7Lu7zAO1i3nhiJSCjd/+1TIj1XkbXgZnX40oKi+tpSEKA41HyqMfPmrHKxpPVmZTMDUWPXYyKzymbt06gZLwuLv1eG1P9xv24miDprxTQh61tulNJpOat7/1v5hHEtS/kui6UBClLBHSnOAfeT6ldL7uoNtIYuNNr+OTWdpjcDJz4nOzy2jfBQCrKK2hICgeTxRS1TkYOHl9JVWSFx7n/f10PH4YTZ7oY8AYOmOGZuOo3bNfOEvCbudPdHJfO5ExuBVed2xRYFwMI6vNvP2g2nTTMSsFxnFDdPuGtTc3pQ1WNnGa/cpZ0qwIomhiKOZf24QRxiww5zOOeNFsMYWY+iCGRf+GDrHkXNITNcv3a1UkcYjkog27QywPhxXsZOw+WFvmMWcX39ZNT9dPE2J0Lcrjq4nUZW57Zw4jIoi+o82Ka9vDUimmqghGGbbIyUhNCDekpnHXRV/LHG57xWaCIA4RXHNiD9szjo70+Ju1uj77JityIMiMZRcupdSwtiYGPhGyOb1tqhjjmGuyb/WCm4dvPdmoIzbkxkLfAgAA8K9n/LTssOQsKsJWl7FvTR6urYSAYrV3k5Oa9eZxdZcqqT6Gk3FSRSVHjBXDpXwqK/6MltJw4urDxTtPozhxteFiuJeln6p+9rlRvLzsCDbkw7u3mU3zhn25Qo81Zr57T0XYleTkBs3GyZ/KS2kIUVJEYhgqzYK8Kir60IaodM8DotcleQfFV4nO2TFXh+/7RLP/PP5BH51DeQVEu24UcHNzoAhGo9Jp5VXlNLyE0jCezoiImO3fada1ys9MI1tWNUCg8EwLR7lZGx+G7LxVwqWuri1HZ0MHrR29NirkdTuCdqQH26zCUYvoKEJOjUirXGtc/rmGhnKNUOpKc/jGbfcb19nQmBgmNW++W1JNx49RGtsVKKKS4mgO5G1pRdng2xLHKybS2dkIPBwcKEam0b7PYAi6jludSgOuxlxeG+yPELhHTrfwuqgB++fvhvQoNLW0ssaMN/7r/sATeq/V3LShopZbcTgP+mX0J63UOQOQXlPZJK4kyfElxZVSVsSnDTr2lhD/8kAP7svkdvwYcz0Rk5SHLRM5w9J5LD0msGAvKxrYZcW/fN0Pyi6nwFtTVtfZN8k5oelmS/WS/U+m2l6eIoS0lZQ0Fj9xlr/Vk9lzGLSTOrslUVhKHDfUppnVfS4nyCp8GR/gpNWXSSNtQddqxJVku58IQrnU5hoj9LKTVXQZebEvxxEWcQXJlieVFOS7jL/XHRQmjQUAAAD+5YyfVhQWXkBBEMr79Kvvvy6szwi73zavK5lFqKWv37Yjcpz08vw3lXS8ougwSUwcR89/k19BV5XC0cs7/8DJSQrikHI8HsFa21o7T3W0xsaO7xPBvnMIUP6Ji2bx3AlJdj1grH1MQwSP0Coy9h1IrkH4Fllp8qE5A9aZWnHrfGo1xqI7dQwfP4upHntk3GPP07lGu0cwBikdWdF79tzI4DMz2juU68q4Qevcb5QiLCCMp1V+LGvClAWwsrADt+41j1x/ZKYA06LFhQcIVAPTwtvjA2zPvZfedylzrwI16cSIK88GS/jLHoekkhm1LXiQUNCzMR+nxFbO1hflw2NV+R/r6YgIWpV5zC25RGmGmyazmruJSgqitMKPWY3YCAGUmpv3rg3BiQmL4lAcnjEMaW/pjAva3thKHnqPwtpLarhnbtvreJ2z9HFG2JlL7jHX99+YZeggAcnO76T9dUg0ef6t2NsLukbSWFPgAsvNYc+b5shKijQ/yG/CDDonsGGNNaVNiCSCE5Xgq/hY1oYM77w3SKv5XD7oqBFF+n9HEEFV31xke3h8Bmscv1WsHIExMBXlbU+vqKYjwzq7TntxUaOAEh8OaUNYRu294WBPk307yffAAw1vAzZBQY5RDiefOnddKMDaCl+WoIpcaC1jLTgcOuSmzR0pIkRNKWlg7DiMFdIKUz0jCOaqAnyVlaUURLmz6PYM/1s5Y81ERXCfCitpCHfnMZdSWVjOISLc9ZWjdOxLs2mNVbX0QRoLAAAA/KsZP+19Stg7GsvEjW8fWSl2nS3rb7nIWackhL9oMVPpOh3WXV+zlbxQsTkp8UE7x9Q108eMoa/RDbJP8jVeWGIqXRF16Xk791gbawUCHqekgKe9jbSxap7Ekh8dXo8hX56+ZWUjoLSye1dSZjnpj+35GiCUb8HhTUGpRyO8tqvEKU+QQwoy3ufVI5IWtofm8qD9Jn5jTa9OrPUIxDrKXr188LYBlZq9bYkYDkWtDy6/kub3aK+taoz6eNGWV0lZ+R3cBjsWGLANof14yYHqzDzE6oaLVUNcI07PWftRl/7iQkAOi9V4V0ZyzMaCIrR30ZGxOpYTe948yoh5oJDnzLMgAoERptzb/rupIu9vx36mI5xU2gAjEHpp1MO0DpzitrPvjozqyjXI9zZazvB7HRbbuGLejCnu7+7v27X08yS+Z7F+D0nTfBbzMK05u+rK1QqX3e6vm4U+ncb15nbMKxqfuY2+FJ5HUZEXd+/dEWv33DHkjIi0th/EEWXtiYD29Fr3nStiWHXXms8djtY0UxGUe7gCD6T7v5e2lIfRHeNPGX3dHVDu6XPVKQ4Pklr3zF0w3OPoGf9xdgtk6iN3BD6kEjQRwvgF+kIz/HcGS7vN4M4L8PV9hckv/dkDmJzFPH6jPb4ssuYpXQcjKdNpEw/c2n5llPcC8ZqE8x6JYgt3M3afMkZ342BH8eJzTm2J13O8sfTJGj1L7Zp1Pie0HNdNYi+8dcpiP/FU1m7pn21ai46J5Zh9x89d0908X6YhdI+XF4v92nUGFux7DhzSV3QcRXh+fevuZ3MeLF1pOdFx67lT03auUyWnHb0URNQLnkxE63l46h4kPG0y0EJeeF+/XYZZDD40bmtvwxD4+QoAAAA/6y/kVLR3YcnvqHg1s8ny+K9p+DRdfS6sNj7lYWt3TixrasKVeSP+UZu05ZHjtzdI4vFSm24fO7lsePvDiOPnXrarzTwR7WanhEcICnZeq0xG4vNikpJatRyX9vz+FFF76VwtMcrjs8FJ38/9wcsZBz46dMBaWaAu9/79vAahUUvcjjy+PkOG2ZQerKPk7rW4gOvJKZ+IKrMtr8VuMRHoPFuyqi2+88DZ0WQY7f2zqLgCygid7QGnI+xkhzQAGrDOAyCO2BXquns2X/7t294xzaPXOEadmSKMooLTZy8dw1MTe+vi017fuDdQoAbAZrTM22aUQOmz65HlY7db6rIgbQ/TklqYJvw1UWFvO3BipmZKX3/NiGWy6UQRtCMlIr1Wbs718PULFRuivW7fLhS1OuIRYCOBY15zFo09R8L268lXpnkfj33JMmaD3wn/xUI4hKi/c9vWqWLkN8khT1hXbp3C+6OM/1sEMtitzri6WoiVBF1zcrpyvVB4wcEDx025YP/8rXSkhKaRDKca8X3bxAIzpkwhZ4YkdShtdgkwb/Get1h8hPNteWuHCZ27GuvElcHeqrmu9rLiy22ejHdeK/nzX9GKVzHXkyisGb14qkzXfoiTN7t6cwb53F7lYYtmelROv3DAaWzv3Zqo5mBvQwnd4l3MMcsu1Fkozm6DtOhic3+iQ8hmkwEfHRmkae0ya/ZErMXOmi8Wk3fwps0NPDqZl2OsR5SDxlMvLek54za+G39qj70yQXiBY6gjb8SalZIyGx2eyh8LXW/AieAkp7ntEY2dP5+Ty8w4Vn7exEGOQKiAutqozFMjZoUW0KGzAQAA+DloezuTid+MhSQSRUxMAAIEwP8TFRV1rKxEdnbWQd4DR4Z/Br2jqR3h5oSL9wAAAP4hBAgBAAD8T+HYeDghCgAAAP7BMw2EAAAAAAAAAMj4AQAAAAAAAJDxAwAAAAAAACDjBwAAAAAAAEDGDwAAAAAAAICMHwAAAAAAAAAZPwAAAAAAAJDxAwAAAAAAACDjBwAAAAAAAEDGDwAAAAAAAICMHwAAAAAAAAAZPwAAAAAAAAAyfgAAAAAAAABk/AAAAAAAAEDGDwAAAAAAAICMHwAAAAAAAPBbwO/Z49J/KZVKo9HoXFzsTD6B1Zybaaa12t/N7bLrfv8D7lfd3a+4HXnON184QPN4ycIZGtxoz3spaT6jrT7OWK4q+L8eWWBVd2aPiRbfMJFyfKNulNxaIxH8ED5FfXFhnPl7vZVqwn/OyIiWe+QnIjBUza/3TbddfgudtXiUEO6XlTZN9qG+9T/Vf0iRByT20e0WyBF+YSuw5rh9nomCkyeIYr8gzuSMtfInK62NxnGi/0LPaGlpJxDwRCJhsD1ikCMDAAAAAP6rCD/9CVRofcK99Z0n//c7xriS/W6c0u0qhPx8Y//SR5ld9mIZhv/vtBc/bNEWf8owwn9pG2AYhqL/REqHkck0FhbCvxABas6TMJJZwv0FI/F/OQhITwy+ldZS8tf6D51MobMQCf9IK3rXtD/K52ev3k/FGH1/KHEevCwAAAAAgP9Rxj9Y/kItuH1C+0xydiOPjpPzjW0q7B9i1jjyhD9crFDxZI+Nz+WMOhq/gtURZ09zsZ6cqvmGs3qY6NTSB2G5VIEx+vv9bK2VWJHWj+ftjnncKW7AOOSnLfa7OH8CF9LyOmKjzbWEUnb1RVrsERWWb9wWcdKqHt7YuC0quZAsrGl86NyaOTK9WoQ1Z54+udEzo5ggPtVyeCPGeIleHnJ6VeXG10fl3/qd2HD4aW4LXlrfys9/4YTaYEPzD+OVPt5IqELEVZYfcXI3EflWVN/6WMiF7VKNNHgXMl0ARToSj43cKx7/2KL94ndlTux1u4NJi1ieb1S5zbcauXk8q5koqLN99w1HFa7etX8T42h7Pep9K5eSloP35g3jOi7MWh5peT16JT/adal+ypvFH27okPpGAFfstWV+6YwFuTeuiBmpRaarJ5/dMQKPYHX+pstumV7yaemOwCisOHXvRr8bT2voUuqbPLftnNJ0VNs+d+9tf2Ni/omNKgfFAz/tM+eo8pm+MmnVrdDFPY0hfwzx27gv6XkNQVZvjucZaz3W1M0rYj4W4ywWcIUFm39Nl7Gml5H2toFxHynCY/X2nNlgqUjs26LxXLTX/pO2tJiLp3vGN6ACimt9Xd01s3pKC9petWZHZ/9RRGri9h7aejmXJDVhiXp5tMjWTOeKZVIJZoUHF3EiCCl1mWyc8Uf3+R8uTNjJ4jDxxf6ksWEpy8Qf9+sbbUUBjkcPhH+iiI2ynkKm9+69jY961nt7c4mFm+S9xPnSuM77VGouovGJ5jhfR7M3ahMyQ28X03lGGp4MtLeQxn3fRhuZWy4HUqvaczcLXjm17Gl3nFU6htJqIz6USQ+BAxQAAAAAfoFfOluCkhXyavyt7IjCOINKjxvRTd9eSHI/FqfqlF0V/eGs/L1dQWmU3h+jl95JpTr6fK64dsWwwGFlSDYNqwm54FI45U5RXMMnz8VVAUeiWxFytseyIPwOn+KCk5vaUqPLO7M1+qeY5UufKHteKKu46qfxat3qyIJeSVzrgwuLPUk20UGlL3ZMfvU4o9dK6UUxDu5tax+E1n4+s6blhuvtOqzzpsXDJEnblxWRz07IJKw5frW0p6z+9WkTnKY1JiM9pbUzA06PfiY8W1uhhEmZA5fQ+UmElBGYPTOlIrYkflrloRt3mnpFpf2V8/zL1Us88iqCYtZ2HJvve7dVYJbp8GdxzxsZ5dIrY2KrjBZO4GYeAXre1YQGO6+XvvPn6ZXHJdQwlmF1mXdejFxo9nW6CrXguKXn62nOWRUR6W4CgUtPBtdJ6E/hfJZWREXan2dWcCA5T94y/sxJezfccMq3aSXUNzcX2eVN9b9aUeyzT+iu5cZ7lTy63pdnK6hbRn5L9xkjuYzt84OQLaeKygLOT3pvv+N+dVu/FrV0dY4niWk6HiW1kU8diRc87pVw9y8Nq7jpuSFN7dr78Dd+I54EZ1MG6YOZUaG8654mr1Qt6x8Z6uvjbk65WjfehecEG3yKftHaawshvMxa8R3a+8AMSb/A+qqrJ+RSXS9+pPZtY4qCs9tebZFFF7xddQgDbkemraYP0EMAAAAAAP5bGT9e1tp+ihQRzztGbRxvW+O3fAolENCG/JxXhW3cRlvffdisS/zuc8QJc50tJNhZ+LQdl5mWPgjNpvNZ7MqKtFTlpDXXt9FwtKbGDnJGYgjBaOs8MTZWYePNs8YSuxLBmAcv9Kx2TuEnEvl0t1tMfpWe/C3Npjy+lcK5cuWq0RxEHsUNO41kercVj8eTarKeFVfSJW3jomLXCHZmtOwaW3ZpiLGwSM5Y4aj1NjC6/mtZaP/6IGITZim8iUsjI5QPd+5ymc6RxjMtc+ASOgvHSy+215Mmohyj1Cbwt/eKGEJ5/iiO1Wj3KnluAruS9bLl/OmRGTTJ2Toj09KTWxmDpPSY4gmWhuwDRkDLxMlQmBXlmmammh2fWY0hjUmpmRpTTcW+VIqWnRxaN2XXJiU+AouUsbWN4qvYp5jaVNX69HcVpPz0HNWVC3HPnlaTsrJeSKnriffEjpYXnVppsnjLRB4im6jJ7nkqDx8ltzDpC6S0hzEis3eai7PhuSdt3XFxpRyNSYs6U3dURHfzall2lCijO1qmtaUJ61cWVh8dmDVx4/wJfATusXNsjbkHmQiDcmlusFURIjLrG1Ufg4KbLJwtJwkSORSnOa9RJP5kB2efNs9+AheKF9DRkWlraOvo18b+uxNlqK0eoIcAAAAAAPxtv3RWD55fQrQ750HR73Ifgv7e/VudL66f5FfJp7zAYePR9cp837I2lDBMTLL7/ayi8mKNZYz8lPvtyc3+wVkdvHJyQtVdmWZlbbWInFjX2/BiQl1/0CvLa1sTfSaNufilJJnhuHZGmtRdNLW2pkNKW7S7hQRZSWl80beBjpSxr2+V0+Ediivow6ebuHquNGEs5BeV6k4mUQ5ZOZ7ayoZvNwxq+9YHwYnOmC7gm/ChjS81gV3rujIeR+hbpplsr/D2L6GzED5xEfRLxL5PY+k19fViYyS7LzbjhWUkWt9W03D6WqZyt2PTOjSL0wqM5k/loucOEAF+ScGuhytRfiMdze2Pk+qnckRna8x3YKytOz+nVdSUV6Su1Xj+NesV1qNT2bTHTfiQlpZDfik4ynsaMSz0fS6WQ9exUfp2zRurrWkWkRLunm+CExaVIjRWNdD794W2iroWifHdU/BRPgUTM4QUcat/ixBBBCck8OXh1s4YMMty6fVlVVwS4t3rZBGX4B1knIoTFRYjDNA3WhuqG4VGSHdvFLyMghjh1VC6Nfa1TjheMX72XlurfxsRrK5v3ZltR+atZtpDAAAAAAD+Wxk/MtBjiOTKWi5zz1Obz3UUPw5bt+j4ad3zLqN7skiM+rmyjI4oMPI4SvWnSk5RgY4Yl6MJygczwlUFcJS76xad6EzHeXiqa6voCCNPolXVVdG70lkBHsF5y56d02TtzPDrs1+0iA7ryQYJwiIcn4urqAh35/z9yprKXnkp1lDbprYoKHMdvaYg0mX/6t2K+R6MxLLycwuGCDDa0F7yqYlPoedacnv/+jDSN8WZE9hXp95iTccZ7xpNYFJm4U19rsFKQL4OTphlroJ8fBVVZTREorP2tZ8rOAQF8AhO3MRY0Cz2qUZxmdEGdc4BItCMoDgc7stIQkhzztgLsXFPWJ4qLTzJ25NS4wR4heRnX3lmM66zC5BK3xSR5dhRTrWpSlfuXqbWjV04Qot1hEvmRXKl1ooRva6Fo4JC3NVFNWREgb0zv60uo3ALMjLw8r71ZxfkZquqqejarFj9uyvXmnXVmLVokBB8WydjFS3vKyld3ZVSWdFIl/kuGcdaGmtJPWk5Do8O0Dek2z7y1xaVUJHhjMEDvaqsjjZYnv8lUrS6hgZMjOlb+rfRYNOIIW1HJq0eqIcAAAAAAPxd/8q3TmLtd3faWXrmNiLsYjJCPEQ8/vvVUjIjD0VVkWnNGSevhfFomSjjSB00LhF+bhzSmpN4ObGBTKERNXVm1t31iqmhUGsTfeJfMdI/FCc1U1sq9vqJtEYq1vba68AMl2fN364REyeaadb6X76a005vKw44nPCxV35Hy420muEVWkJhERCRFmQhELoq1P7M6+iraiq1Iunq8WQ50+k93wmJ9a9P57exqE4ybIvfE0A1NlMgDFTmoCUMgjheZ2b73cNXP7XRSfm3r12p0Zwzkdg5zDDV4onyO56jsXAKa+e9isEi0J0u8880kXlwwP+R+tRZAt/yTMJo7VnUu+6X8ptotNpHV8xNA58zQooT0tNlDb2SpaSpwCqqMpGYfCVNwWAya6/i8IrGk4WiA8+8aKVTauIPhWfp6upzM6k/q/YUo+KYY7HVFKzthY+Py4MGbg2mLRpKJxWcbir7yDf8VQut9W20b1zXBHeUg5etMO1pC4a1ZJ6JTCb1/QyTyODlTYxZQzxCnjXQSJ8ee5zPpg44xOBk//j2KWNY2V508eyThgE2Vf82sjECjFFIZOxH25HJTvKzPQQAAAAAYIj+la+pRHkXHFh7b+3u4d5kIp+k0S7HzSq9H41EOadOEr2yXWFtHVFJ9+it5RNY2EbtXBm0crP8Oa5h6lPXrBzn4nHsgvHhwzfN1q1bI2UvPH2Tti53NQcewY+cf8OnceO6lRKVdEF1I69zZr0n6/PM2hRsf2LTzAWOJP7pTubmuVXfmq2x0NPKY6vmnE0Ym7jGjAvntLmooTjJSQYdAVNkPzZwKVpf2LNJEY+86H47hwmT+hxZJ69kPA13+p7WXHUC8zK/1YVZCdMWDhY0jnEeIcu32m1XcGrnUNTcGrJpFk9Xxj1S25jr6lX9qdps3f/LJALF3+e+4sbaio7+Ygc1+XtfWGYdtS/YZoety0iXZrzEaJtL2807xwP4kfpqPEdyNMezIwS5yZqEY3nqU777GEIYa337VNMG6yVH6/FSumaBfkbiKNI/dUb5db2CymztNgxbReVTMzx93kiUE9e/RbQhdSC84sZd3sWHzBWDWNVmWs8Wi+FgRVnG2O5Vsl5uJdpO4tQx0Jfs+5wrs8jgZfYcOORwzFLpWiPPKLsNsxQyB9grVE32mO7bNnbOhnb8mIXjRhYO0K/7txFHU9Hg37PCRijo/JqBtyOzVjPtIRZwhAIAAADAL0jG29tJ/ZcyFpJIFDExgX+hBs03dg9PMP50VYd18Pe1Zp3a+VbdbZEeH1YVelD7rHJC4nz5X3eLgl4UZDCr8uAbO+2feJyT9nLf6kUtjlknVOF7FP9JtMKgC37U2W6LpYjt+QeNdpfsu3rOqLu/0EktJBwXO/GfWC1GaWnFOLlY/p98Y35FRR0rK5GdfbAd8d88MgAAAADgVyH8NjXlVDRQi7GburyeQseJj3c7Zyb/v/0dXIxGqn1+MYg0+8JISPf/YXhpXXXiOtdxR0g0GsfoZbt9p/VkpTjWf+73X1EiFxcEHwAAAACQ8f9t7LpW5xXEhnCNlm3Mmp3Ja/6pauCEtfad6FAacjzopXELtK7UzNl0azIRutE/nvKLT3SLmugGgQAAAAAA+B0zfoK06hzp/0AkOKWmGv/MCGGYSVSJCXQgAAAAAADwH4eDEAAAAAAAAAAZPwAAAAAAAAAyfgAAAAAAAMB/DH7PHpf+S6lUGo1G5xrkW1DoDel+Z21WH9nkeOGw7/3kAkRhgpIUZ8/XGHbEr52vZBGPmZnqiw08qKBkHbG+i8xRk6Y93zjiWMnCGRrcg3wR4tDK/IWw5rh9nomCkyeI/urV0YoO6TgmaZh8a8i3dSGffbaOuy66YZY4ftAyKGk+o60+zliuKvi7j9q+RkO7wPcvtYiW5WYja3TS1e3KAddL+w9cdXe/4uZ28/VwC0vVvg9VY1V3ZqtECm/SVsD/vZ7xKmbrsoMbt11wPRIWlFYvpDFGRQD/rT/jB+3t+P/odmhpaScQ8ETiYM/2/PjIAAAAAID/nr/05C7W8nDnlgUxci5e3le1hLHPOZGep+caltxMsTPk60rZW18ExXNradSFhxXsUVMccB30+tf38xToCDKULzwfYpl/O83HEPRrdSifn716PxX7RaUNrmddQ/3yd8Ios8teLMO+pY8YmUxjYflrgen92b9Tzt+KRv8WDS16eFWXS+2d41ZKzCrz/Qqn051l8f9ojdue77TwL9t66EWskgC1+tEJD6sFATJPbTSwr/158N4OAAAAAPDfz/hp2WE7AgQPZris7f6FWyV1G99DmMlqJx/Tp85yjGSrOel+ouzsmB1Fs3c/fOOiOI6xElLKYqkEs8KDizgZf6cuk40z/mBTu8InrqExdfIptkRdBKMW3D6hfSY5u5FHx8n5xjYV7u9XyqRMBGt6GWlvGxj3kSI8Vm/PmQ2WisT+S5rfxDjaXo9638qlpOXgvXnDeC7qI69R+yXvJc6XxnVeKVdzEY1PNMf5Opq9UZuQGXq7mM4z0vBk4CbJAJcDqVXtuZsFr3jvk8vcY+NzOaOOxq9gdcTZ01ysV17anHr8qK3388JWHL+yzv5LDstHEj779CnN3kIarXxwdf2WiMfVHCNn6si0I8O/NY6a7t6zrlM2ncnh2yPzTvo+qkZHTDsVuGW+DJ5cnLp3o9+NpzV0KfVNntt2TuWnf4hZ48gT/nARy5kt80tnLMi9cUXa8ZX3+K8/DkDOvXV2g+vDN00cyjMtvb3mjOUifwzx27gv6XkNQVZvjucZaz0RpNir57NbIxWuLe4px2vEGx8vO6+nHxo5VBesOnd8hjJ7+0u/ExsOP81twUvrW/n5L5xQG2xo/mG80scbCVWIuMryI07uJiIEhMlahhgN2tcWsZ/r/358y+uIjTbXEkrZ1RdpsUdUWL5x6+xLg6NWJ7if2HH5bSkmMHHpet/9k6V6NlpjlstM92dWhyI2y+P6x/a1/6QtLebi6Z7xDaiA4lpfV3cjvp7Mn/YpO7NOxXGFkiCjExKEp2xf45j7qKy6yMfua39O3jzu0UWb7TFppRQWkeFLjuw5atp+zurrq3fH3VT+fl/46L6IWBLocHRvaH4dwq+5buvVfRrCKBydAAAAAPBr/IUZIfSSxIyPOjMXyvT6LE7Ucqla4d3Mks5LmK33gl8qWxmMNjQwbkoJfkljXgxeZlPgpll8mifStphwdc55CHk1/lZ2RGGcQaXHjeimPu9mVmZzxvb5QciWU0VlAecnvbffcb+6qd+StlfO8y9XL/HIqwiKWdtxbL7v3ZYBBzLvAzMk/QLrq66ekEt1vVikscdtr7bIogverjpYkvuxOFWn7KroD2fl7+0KSqP0Ckd+jJMX1TYloqH21s0puS5eb8hMSvtIqXlov+SugMvZ4qKzh6TfRL3vHRbCpG/rYmSR9LKoJ6izb0lpwFHZtAMXP1KpBcctPV9Pc86qiEh3EwhcejK4uvedB3re1YQGO6+XXj3pPkJ5FrBgZ+XC0MCK3IMWZZft/D6T3txcZJc31f9qRbHPPqG7lhvvVWJ9Ptvz97iWiFMWFzh23w+tynObW+BrdSSXXBTj4N629kFo7ecza1puuN6uY3ya+v5hkqTty4rIZydkEtYcv1pKpzJfy09Fg8n7qeRsj2VB+B0+xQUnN7WlRpcP5VI5vfiix7JoqRPp4eXPHMbeP7TUp+TLajqKfK3d7xrsvmUnzzZAbClPEtN0PEpqI586Ei943CvptUK89OjJIhm7Fvr4hL8taKAhLKMcAtabScp+689sOV7bksQO+lfX38k6Lnlnf+Qb7Pve3hdWH3puy7tJEfkxlc9X8gdcuJhNg2MTAAAAAP6HGT9WU9XIIyHY5wIrh4Qwb01dFSMxaswMfjx8sbkwjn3swtkdkaEfKEMpFS9rbT9FiojnHaM2jretsfX7uTTMyiSlPYwRmb3TXJwNzz1p646LK+Uo/ZbQnj+KYzXavUqem8CuZL1sOX96ZMaA1WGfNs9+AheKF9DRkWlraOtVA5RAQBvyc14VtnEbbX33YbNur/nhOGmTsFd7V8gRSY1NbRiu6WvV+5TWkHAvYeR8V3MJDhY+HcfFpvyDBYPDyNxOgxPHKqQ7eVhbYxs1Ozm0bsquTUp8BBYpY2sbxVexT79vhZaJk6Ew67erwrTX4Smk+YtXqbDjOeXWejnbaxE/RqdWmizeMpGHyCZqsnueysNHyS39Pvvl7477QRkjNy03kWIh8I7Y6KBddzezAMHjSTVZz4or6ZK2cVGxawQ7P8GusWWXhhgLi+SMFY5abwOja3IHWMvPRqPP+8kZiSEEo63zxNhYhY03zxo7lB89wxoTIz9Msl9mKE4kiozdsVX9/Z1MxkgBo1WFbnDa9lHPe78aH4rQBogtKqK7ebUsO0qU0R0t09rS1Ls/cqgff3hi76TWxGNuGpKz5XVd90d87ui9asLwnUkXzpgJ4tqb60kIrrm16QdTw1AcAU+vLs58U00Sm3az0G+XCh6OTQAAAAD4Vf7CrB5UUJi7ObeuDUF4ey3tqKprElARwmH18ffjy57Hq5puRxB6R2uT+INnbipaP874+SW+PCCLon2HIczLHFlR1yIxvnvaN8qnYGKG1Af0XUKKuFUvNkayO33CC8tItL6tpiES3xX+NRnD8Yrxs3+pQZ8ZFQT9vfu3Ol9cP8mvkk95gcPGo+uVv03yoNfcPeB1JKaULiypwtmCiTItjd5Q08QmIybS3TR2cQWJQcZaOH5xgd41oVXUlFekrtV4/jXRFdajU3tvEX5Jwe8fpaRXljeJjRXubjf7iAnzR1AfhzSLSAl33wTACYtKERqrGujff/br3/Sm8or2zMNbxpz50kgBGWnKMGNf3yqnwzsUV9CHTzdx9Vxp0llRUanuh61RDlk5ntrK+uoGpmv52Wj03Ra0ytpqEbnu55zxYkJDenKb3lhVzyUlxd7dBg4pUcG6uhq6KFb7PIk+15iS5Bu7ZOIcnoFiixMSEMH31KBvwk4QV12xl/EPoTV+Tgm8ar/CqT0h4MjYnj5FyQ/zcfB5WYYXGKGAdiBKP6ws7zzb63nnDlgv29QkpLtkmefB6SoccHQCAAAAwP8s48dJG2rKHrob+tlg1bCvmRe9OvT6K7mZK2TQ5qDgVxpegfHrhTtf63i2YeSJkIy1WhrfkmuspbGWxOSa54APaWLN8czKPCjIzVZVU0FHFHCMMcG7K9eatWX7LtFV4+OrqCpjJPmdk2VqP1dwCAp05XHYlySOVtfQgIn9qMnkylouc89Tm891FD8OW7fo+Gnd8y6ju/NBrOL6Gce3GomvPcdwoS2BzjJ3mAdNQISX9Kmymo5IMtpAqSuvoUsOMqj6PhY4AV4h+dlXntl0Pb1AKn1TRJZjR7K/vR2Hw30fPFRAiLO6vJ6OdObGHW/unc6TmynEXV1UQ0YUGJk0VlddRuEW5MV9/9mvf+M4BPjZ9G18wxZzdY23Sp6Vc41sqX2vtigocx29piDSZf/q3Yr5Hgi9vvJzC4YIMD7UXvKpiU+BR4jAdC1/KxpdYyAenuraKjrCyMJpVV23kn7cT3mE+VsyPrdjSOegpKOsuo5vtACOERpDz4t240Mqxu+9mTFj/XimsS0Y7AHq+qtO8sF6H6OMBVEEzzts6rpNW+8svPW6Cfua8dM+hG061LL24fXVCiz04mBDo1Imnfq7fQFrKW+RWbUzdTe+Ie/Z4RVuW66qf+ntAAAAAAB/219JKvCjzQ9ble82PxWQVlZPItcXvDq3ZrtT8fSjm+RwtU9up0ibzPz6/Ypso0wM2iJD35NRDl62wrSnLRjWknkmMpnUk/hQSKQfrA4boExUe4pRccyx2GoK1vbCx8flQQOPTt8l3Bo6M9vvHr76qY1Oyr997UqN5pyJRJSbk/3j26eMtLG96OLZJw2DzLhgVI/MGBy0391pZ+mZ24iwi8kI8RDx+G9hw6gkCsonKMyB0utz/K69IVGoVGYlcevr6maFuEZVkGgtz7xvhlUPsC6mw7LR2rOod90v5TfRaLWPrpibBj7/wUwpgrqZFvV24I08EtZRcmWPb1QxywjjyULRgWdetNIpNfGHwrN0dfW5B/o459Q5ozNOBsSXkrH2zwHrt60PqaX9H3vnARU11sXxJNOHNjD03psoCggoItIUEOy9oa5ixd7WvmJ37br2jg27AnZFXVSaoiAqTZDeO8O05JuhiVR11c9yf4fjiZnkvftuXl7+7+Ymib8yvNf2C2l8qpyiJptKJle7gBO5fWN0nkCQfff43w90vHoqGn1aLW1742Oo1t3cCm9tD8rnCwpu774Rzf+EdxqhLBcvwyc7Tz7MEwoKYjZvjTLsbS2aYKBkKp2CqY2YOJMZtPhgBvbZvkVknBzsI/1nH32bKxLrgvLE4FP7n+m6dJdB6/ozweVxqVIqbAoiKHx44F50pUBANOjtzZwLRHbA344TAt9WYiw1JSUJjETGUKI0ISwusZiAQQoAAAAAgP/IF72EEZV23bzjwp6Df02a4pvMoSmrWfcZHHTXzYqF5B6790i/6yaNekXMsO/dqWRByJN1U6YvNxrpPVyJw5Xo5tRDraK6cg1r89ezLDZJhju1Irrzgpov8+m6GdsDMqf7TlEfL2CZO+/c76oshzVaIxJPa897z/adr7eQwzSwnn1+mrs0grb3XOq1Yl7HvlM4pA5DLIzftdRMSVMr2aVjJ8oHHFy+yueOz2L9HTwKS831z7kzPqRZi7TjuKmBG610j8trt/Me4dFh2T9TLlisaVqYiuu+k1mT5kxWHY/qDBoz3Tmohbr2T2tqCa3dinMTF0xfZrysjKRqNvHQ/AFyaOthbnq3CeeX7pziMWReOc3I8499UzRojJFnt5VOGTlqYxFJw77P6X2uKiiS2sI8UHXUAv+MrXPsBo7mMU28xh6fr0+nyW4Zvna2dd9pBF3FqteBvXaSgguYmq1T1bHu2onFkgYjDyydZkAiI83Ukv653miKpPX6U30mTZqgMVOh5zQ7e6k8ZtuJ7piOz+Jj2Zt9rfplEyyrkQtPztAkFb+o/ZGi67vG6cjYQ5eGLWvGt2mtlqvufvRy1aLFq9rPzC7FacpmlmMOrphlTEKEdf352dhVfVf6mg2Zq6TuNLHnMNbByYucXm2q+zV6ZpNzAdObMGXO481OWocENJl2/WfsGc1GeaF+HuupJy8edKPAOAUAAAAAwH8B5XCaibGLVnK5fGVlua9dHc4t52KSjB9CwhD88gpCQpIKb0H8wmOZEuDknrPmpa/ddzicFTHbFsV28hvmwCJyL6yx+8fk5u1Buj931suPdC5Uk51dSKNRGAxaK9t8s5EBAAAAAIBvCPn7VofRfpyvdaIUSUnoAD8JEgZO5kG+jt5FfBxTsfTb20f3p09y/5HOBQD4eSgrq0xJzS4oKAFXAP9H2GwZbS1lKSl4xwIAih/41cEUuqzYXGX0nXoQvcOERQ8mgNcB4HeX+1HP3urqqhoaaKAo3KAF/i8QInJyi0Rd0dLCCEQ/AIof+NWR0HD0AC8AAPD9SEnNFsl9ZSW2SO3XKH7Q/cB3VPrif0SdDscJUSes6ZDtzXTBMwAofgAAAAD4ahQUlBgaqNfI/RrAJ8B3o2aOSRAEholEP66kKJucnAluAUDxAwAAAMBXV10YijYU/CD7ge8Kjou/I1nd7aDnAT8T8JEfAAAA4GeCIGpi/AhE+YH/x5yzvuNB5wNA8QMAAADAN7pu1X4oHPQW8P9R/ND9AFD8AAAAAAAAAAD8WEAePwAAwA8Lke+/RM87zHLHqTvTlL5LhAZ/f2bn38LB20aqfqhOkLDc0ueA6dLnp5yVqyObRO4193bPJqWv6E/7v7lGh9EjAxeZggsJlCSO+qMK4zek7LWmflkbAeBzgHQyABQ/AAAA8LUEf3Hg2RhdG60X5x6mTRms9a30aXVifN1yafyrf4W9iY8lsgAnFV3dsySo80FPafGWhFBICAWtF4rj9fk334KUqhDRv0XHFmqftou/3kfpM2oiypPiHgs5BHQwAABA8QMAAADfEO7DEYprsOPX/Pu2GJUmckIDoownXbG75nH7UurAWTpiyY/nv9w0bfuekFxEvd0ov7l/eSigTdZgBbFbZ2zfeSeDK6c/cNncDSO0mKLqNG72ebdmmISo6tAx2tc9Eld1Ozq3z0vzzhEXzqbi0sbOW0/P7B23e/ie5CRieT/Z1Zdn6ZLqTSEpDpmsd3f+4RCHWY5SDUysSNzvu2nttdRigqnrMmLfwUGdJXnnhg0/LGOecfnJe4F0j6UzR2YHLDuZWCDVYeXZldM6UJHKFP8FW1ZfSsynqLvPm71rmokMiqdu9zU9aRv5ZLQJ6T9OXsoid2/33R72toTZfvD4vX/3MmEQhY9OTZhx/uF7noRB15WH5w9/v3forqQkYlk/6Y/bCAAA8OsCtzQBAAC+L5zES0fDYnKrBAjCryh6EXz92it+s+o1++r9GDuXAR27Dez6/vzFbFy8rvD05BVnVMbdivG/tUTu4qRDtyqarim5MGPpPvKAK9Gnnuyzej1/2ZpIUVVCwYeofO0yLuDHnQ5T3HLgXfweP41/Vx5IJDtPODRB22j8Yv8p2h9LYUyhz4Slxg9nr4vjNLAw//yBZUldTkUHpLxcPSDr2PrACtFaAb/4aZLu/udnY05Yv160+qDS5JCYA/vskv4+GMdHuI+WLV6Z5+Iffurlhd5VW1YuvicqD1P0mnL+b0eN/6q+icLL2wYeYC6+dyE3wa9f8p7hG+IFgvitvtdk/zqUnX/+kvv7xeufCt2mnZ2uZzrVD+Q+AACg+AEAAIBvguDtk41zF5rrrr1UXnlx7JBO/XZuDEoTNt0Oz7t8/r3DsK4KFLneA8ziL4QkizYqCT8bojNhjq2BooxB75E719qpFTVZUxF98Y7S2PnOZiosTbsBszwqg66ltJSBQ3foPd1eWZat3qOLRkVBOUGhMcgoSqZJ0hpfHVCq2qjVwxWPbd/yon5+gsp4zfr31BAbNSaJwFFMWFxQVf1ZUorNYHcrVWmNrqaGEmZDRhsqyyp3s9aoKi4nRFOMS/ThC3paqLFUO/WaNYh6JzhJVBxDx9TVTk3yv7q26l5AuPE0b08NKlnGcOocu8JbEclCMhnjpEbHJxSSLVbsyzreXQK6IAAAvx+Q1QMAAPB9h932Q2/FWh/6Y87cm6UIu+uuG/NGG8k2DTbj6Y/OhuZHPRuuOAVBhFXFFQUXkobOR/PzmIo6SmRx1jpNtccwZSLldKM1SNG1PL68li5VrNlJDF1t2cLUQrx5WzBpZQUWqVrPk9tMhEfpJl4bpof0nnVpoH9tJhJalnh4xpFzMVUyOtpyeWKxX7ulpIT46kLBMBJdWkpsCJlU/SsvLzMn45q3z+WaCQWBsL141Xtg5P8eb8dLs7I5EetnddhV2xY5LU0uSXf2kUlFS/Y4bsqitrebtsZ3vqMMdEIAAEDxAwAAAN8SEoV4e3N/COoyd6jwyOX9Z7O817Kbqtf3l+6/cV/w6qC9tFgZl14Y57PvQvrcP6SkywtyKwmEhiJ4QcjBx2SHxmso7tJy5ILMHBwR5/3j2Zkl0mxJDBHn2xDVgpwoLynk1j62+nnfsMLo5tOnjL+0dPYR9+opBCdo6aYb+kvvHG0nRxbemzl2V/MzhQbLFEmWnN600xumih9DJspSE98zDSlfy7EYU06W3mPinosjxHcLiKK0yCxJE6TkHdJx5TWPrVUFkSd2DP3juO1bXwXohAAA/GZAVg8AAMB3BsXYer1mzNi94o/dmwc4m0o2MxDj2RfPp1j3tlFnSbJEf7Iqbm7GCRdC4llWXp3j/9n8Ml+I54ecmrMhtkyt8ZpSdgfP7lkH14Wm8fCyl1c2Xab0dNcjo0wZeurTsHKCKI/Yde1fXivmETwuv6X32GBSpnPXO6VvuRAmTu0hKiuFTEUlVVkJUsa/Z+6X8PjCNl6AQzXr45h7dGt4LpnBKH/pN3z9yffiwBM3K/npi1zOf3WshGNfs/Ctx25k8AhO+rHJ8yafL0AEr9d5LFpxrxhnsLTUJalkjNRWGwEAAH49IMYPAADwvZFs13PtCpTOICPD/1hNUBhNNhAmhQTEGY3tyaqbDKDKvWw6Lgw+Hz9y3u65GbO3WKgW4krGY7bPcpVRFTZaI8VGNi9Jmb+/u+YGHkun94oli+1oCKnDpPn6472HK3G4El2626lUtiTpVdrr8yYv7qWw+eY8veauEJisw+h1Q0L7nxItM91njzg7dbbeIUn1Tt1Hj+jgt/HvA338pFtrurTnusXJi/b20ttSTldxnDxvazeqeH5zdrPzKZvIJ2P+27t6MNVRC/wzts6xGziaxzTxGnt8vj6ZrrN065Nxk0YrlqJSmh2mHJxvR8GKzQ154xf1km2pjQAAAL8aKIfDbbpWtJLL5Ssry4GDAOA3ITu7kEajMBitfVEJRobvB84rKxXSZBjU+pQYgl9WzKNIS9AxIaeiiicgCIxEZ9LpZBQhmllTVVnF5RMEilEZdGZ1Sr+Qy6ng8DnlVSSWNF1IUGUYZG5lmagSZnWKPbeytHqZ4FeVVggwOlOKXn/vAeeUchAJCUadHBdUVpRxMUlZBkXIK68Q1YxiJAqNLORUIQxpBlpZxqNKSYpT/QXlxXwai0ERB9U5JXwKS4KMEDi3sqqKjxMoSqHTmTSSqImiVSVcsow0tfX7ziEPnnft0h4Tg37Ld/0DQIsQhOhPjFCIP34S08OhE/gE+CmA6AYAAMCPB0aVYn28BqVIydZkvJMYkhIf3RZAm1lDl5Cgf1wAicaQFv2xGoTgacz6h1jRumWRDJdhNbaGIf3RG27ITAlZZk2hVEnpD98ToNVUKSlVt4osyaq9yqBUBqtmLYrRJJiNZpYYjSlLg6MOAADwza4q4AIAAADgp6L6FaCQhg/8/7ofjkP/A0DxAwAAAMC3lfsEKH7ge/e82nwepKbzQQ8Efi4gqwcAAAD4iVQXgeNEdRI/juOQyg/8H3pgNTgofgAUPwAAAAB8fdhsmZzcImUltljsiyGqvygAjgG+p9xHquU+mpdfIOqQ4BMAFD8AAAAAfE20tZSjnr0VLSgpyoq0vkh11X3lFwC+m+gX/4nkflJSpqWFETgEAMUPAAAAAF8TKSmmSGOlpGYnJ2eCN4D/I2y2jKgrijokuAIAxQ8AAAAAX1/0tzfTBT8AAAB8FvCuHgAAAAAAAAAAxQ8AAAAAAAAAACh+AAAAAAAAAABA8QMAAAAAAAAA8P0gLV26rOlagUAoFOKSkozmduH8O3+c2dKy3t4dlUjVK/AC/0FD+9zW9vbSYHz/9yITZddXbLnN7tpZCfsm23+xXSVvD89fO3rC5nkrzx66HFekYtLNUIr06fuXvVjRc7r3GdRFO6THyMRe3u3ZX8leQexln+2Fdk4alCe7zYZ/zZJF8B/XlikTV1sL9eXhzn1e2I3vqPg1ahE8O2AxIM5hnFnRpqn2V3V8XBUbuZTIvdbb9IrCNDs90tftXUj67tkW/kpT3FU+sWA8K2rvgRS2tYZ0vL+t2vQpfsf8/I76+R3b9M/te2myXVx02M0WRBQFzpzuPO254lCHDpKfdzoJXjR1NT824HRwua65OrXNssrLOWQyiUJp7Wn+VkcGAAAAAAB+UL7gXT0MuyW+wy/9Nf9wz+uTVUTSovTe0ZWPO6yOspX9xnKfIIjmPrXCT4+MjnP89Fcyf+72n4aQz0Mp1HqlJXj/z5CF21mj9j/6y1ZFmHzn9ISJS9HAvSstKa02EKlvn+DNk4vcPjfvDTYuTzuynar++foV5/FxajPyjShKfRhJcEXHvl2fNktuwect96e6Mutr+UYzVfVhsw7z1cnfr3d9dufGs579s7VYf3pXLdHOMj0vpS31oolXl8ffnuS2aZa5eeB4djOF8uMvX5JdHrVilCLafNf6zClSzNkTRxxcxthIwkeKAAAAAOC35Qti/AhKV7NRS1qzJEp7tIMpJWnDiL3F0//a6CKDIbzE8/8MG7xu1qrzARFcY4f22hJ43JrJPe8YTXBkY4gwfsM0l1uG1cv1NeUGL/9rwNgdfnseRHK0HLsqMSsT90/+c+CE3Ss3Xgx4RrJwM1VDoqYabQutuD2h31a/rTceo8ZeXRWodfs/Xb1g+tmU6LuRFRa9HDUqIndvGjhy04LVV4JTpG2d9BUonOf7NvQfvGnBmoDTEWgnd6P0jQs/bK9ZY0jV9QlDJyTbe9tKoYjw+fLxPQL1JvWSffcpbbFLmqy/N0nxxax+l4SDXTpL18qq0qBdw6+aBwSPsVOgkSl0BaNO7bmPTqcZDukqW/EyyHfw8onzj+29kkLu2MlKlSp8cdh6+KP8W9sH+BzadCC8xKSLk3yEr9fRewlvbj2j9TCMHjM308O7PZvIv75smdfoXZsDEguizswNN5zQ9dUo1f38qc5mIndwQ8do7OdOcTKOPWDpHSsRf2TgilynMfpJW1b3Hfb3otWn9119L2tnbS64P2HQydC4mOC3LA/tiGE1JeN5N1f5DfTetmzrjQf5SvbdNWSErfk8dO5It/umk1wU8PA9JnobErsPcNciXqwcb31GzUfzQZ85me69chYOrq3F06Ys4Eoh8925cWN2rNgTJm6dHv2D+iTKQv/+yMKO8g2nILz4MzuHDF4/b93VwDhyJ2djxYJn+4PJg8a35xxeOeyh4SRXhYrnVyYPWjF58eljd7LZthbt6EmnDuTbzrDTLY9Z5jhjY6XlIBvZDxMDwee1tEHv6mmZc/twIrnyxObh0/dvvZyj6WJjysJ4qaFLRi4dN/PA5tNxXCMLO50Pd7lQcvbN2+SB4zqwC18eOlLcfU53I7EdKJWtSYo4cwnpPslJXtBod62So94rt0ekPLmRoeJB3dlxX33XMi963LgiXtrpmUsH/LHrr83BIeVavRxUGTnPD15u5GpGWdSj5A4D+xu1PTmCGD8AAAAA/Kp8WeQQVew/xc8iavGaZ6+O7P0HHbh5kjhSLHh5aphvguPh49mpu1fI3xo69U5OG5F0YcIuv4mhZgdfXE65NRDds3FTpCD//IFl77pfS7le/H7LiNxjGwIrxBtyw0+/dnuYHZx2wyVn3clrpfUlkG2X+i23Uxx2YMdf3UiFl7cNPMBcfO9CboJfv+Q9wzfE81KC5qyu9Ll/oSB914Tyk3+dLbX5sH29sqHbeXRIvBWZK7JWmBp4vcqtrzH26W3hhu+/bXgwesNU9Q8R/me3oyXdunWkfbDTesmWwHn6ZE70kkFH8katTcgOCPKp2jRoz61y8c/8J7cfd1ubVnAlbC7lwNo7aVL2O4701us09Mq5Aca1ApjIPrVlymPzE3GXXu4zfHLuNb9lt/Ijrl6QmRT2YFz71KCF2wXTH14uLjhzqnv8su0v+cou+/f31OziffOoW529eOrBtWMCNTY/vZQVOafjvXWjd6cJW/V5J0ezkqev0nE8K/x1AaMyIixLSBSHPS2wdTKh1/SPj2sRvHrwQHd2dMbFxzPJB9bdeY9/MBVPamwhr2FDIo8NXpQz5MLp7Pg1AzOP+O5LFzZqaln4/EEByKxtKZnH9tvGzVxwL6/mMFWl7Bm5+pbT4jO+uvQGtX1uS20/6i145tUn6JI9aRnHNmo/XnUwUSBI/nvolhcuS2KyLz/1kzs9euu5vA+9BGVbL1jjqN/4FgpemfzocpSci7MmuenuBUrjjszqp9DJ796i4croh66lnNKkIrzowt5Zr2wvJwXlRI2TPXbg4GtxU5q4mtxxrO/0rlQY6YBfAGHK062rj6zyO7Jq1eGVq6oX/I7+HZheFHF9+/Us4devkCgIDdx1O1f4MzmJKHoZsnvLucCET7eaKIl9GhxTRiBEaTOe5D4/dfpS/CeVVvnyzrq/jh2NqPhen0GutxwAgLb50rQITHH0Zu8TXVY6YTIjzvl1pFbL98DQHM8/ZtlIUxBpz8X9TTs+elDubNZKIXhO0KU057kbbWRJiKzz+qNYsjzCGvhnTH9JRQlhWUalEBOWllSJT2aS5oiZDpoUFGln3ln2ZYloPJFumqRQdS8g3HjaUU8NKooYTp1jt3VFRPJYJombHxOZmtNbf/r1q9PFQ0RhU0OkenSxmfHgXrHX0JzHQUXW62ywhM2f3BZMsd80NzOZhspOmJdTyrZmNc2X4Uc9uk5zPTVeV4qMGI0c47194ZVwvjNbNIWyn/GHNgNFtOzNtI6UlxKIapNhPPB0jM3UpZ1ZZKRj3+keJ5e1MiGTtJ4y3VSegiCanhej+7LlKdzi/EoCKxU7rkl6ClFy+8pb25mrnFVE/u24YHan/fsisiZrteJzRhdLq/jQsDJPWkRx3/HWd8LelHIkHr/Sd+omgaQ35yEl+xljNRkYot/dVMO/vOHwjDVnYb0bX1x6yB20YLwpg4To+GxfopZPb2Q893FIkGLvuwNU6CTEdvaCgw8FGBJPCHMvTFl4ItHh3iVzFvqfWtoIpusAXysJDGHYd1VfHl8peB19obD71mlGomPC8hg50cAnOIw/1LNOXmMKdt2qm1Fd8yDZ++IZFiHk8TCj6RtDHRjC2AfN7N6zma4ljGm6pcCNTMLzUiNe5mlbu5x65yKW+y+acbWWqbkVjHPALwFJ23b2UlvRAufF7W0xmr6jjCSrT+zSiJivqSI/DJKotJltP6H0V3/k6xPTBD83qbIm3pQWl6nsMdTToPV8TVyIYKS6snlFeWk4vwXdTNF3dlL/pGfQquJf5cppsnLiUkusTFnfLI+woffqLYesRQD4ZopfNPjqe63yPuf+dsQSe0ZtOCS/TFGjNiMCU1DSIJfkFuONTtSPFX9xZj5LU71mD5KWg4uWaLhKjd064/C5mCoZHR35vHrpw1KpTWtueQDES7OyORHrZ3XYVbuFnJYmX91jz57chesXGIzF9Xt6/rVlXB+t5iSyrKV7h73XH1bYJD3O7Tm+C42I/PS2kNjqKo1swuTYkoV5JTii9iHsnxxx4rm0O1ZUpNxBrWbwJCloqVbE5gkRNoLJy9U+gipuX3MDL16UmSupqlJjEVVFVaaVixCmpKBcc2Dx/Furtm8IysAV1EwlygmlZv1WklskqVH30DVTQ4ldWJiPa7Xic1TW3NHwSGhEosQrDYcTFpl9YyKjJZ+rWyxUQptX/IrySjX2oFjjo9eahXhOVqlyR4UaxzAMOw8yRATPPg4pZReWq1rWPIqAsvQ8+yBEbjxREHUX7+fBv7sneJRN3wbi/fNb2qgdsipyjAbbCbPzs7JDfayi6h7OUHDABaKj00wHk3E9X5vHLyh+eXmk286tYw8vzW9294bnWG3XarYimf7T/RP2rho5ZlqpvP2oMVvW9DRs3dUA8OtCcHJDzzyNeF+BsHXdB3UxlUERfvHL248fvC6sJEkbdO3qYS3f4HYfJ8r/ambXwV66WHUM+3K67WAvrZzA3bF0CyQmNIdHYmjadR/YRb48LuxyeecpropoWXrItfDn6Vyqgqq+VFGelutoi/wLWxKNZzmbiU5L4fuLWxMNZzqZUXiZ4U+Dn6bncylKpp08e+krfLjGimYmN09lK6tlxsUWEzR5HbdqO4VFyTevRsVmVREUCXWrLv0dVJjCrMBdz4T6woTYEj5V3ta9HSk6KjKtAlMyGzC0oyYNEZa8vxcYFZNRQUirWLvZddOuD4UQ2U/u3U3hcrMDb5A9e6kViEwJSy4VMNimDl1d28tQhBlXd75VdGbE3C3tOL5nTRqqIDH8XFhhIXL/DM3Rg9TUk4Lk+/eSLYb0NySyokIDH2UU8DAZbTOvfmbqHw91RPn7V5mKNmO0Xh+Nf1NiYlst+YnKnNCgpxEpFYi0Ygenro4GTLTpGk5uEztTzzf2raNmdGPvGebVW+40zFYW3jwIAN9K8Yv0iKysJFVWWqp2sEHZ8lJ5Kfk8RI8hjqTnZfKl2NW6lCBqJCxRWFCC0xvqICl5VsnbHJHKEUk2YeLVc0/Vekpt33jTZE34pfZyGP/WpGGb6zZt2xyMKSdL7zFxz8UR4rgPUZQWmSVpXF4QZz4sIGISnp98ZdnKPxYbvDvZoVnJ39NNfV3w/YuJeS4L29M/ry0o1lhckS2d2hetevT8L9POtYk9gueHdsxPGu81jcXKzs0UIqriJJGC9GwmW470Sc1DRQaUx+Xwqw8ZPye7BNeqjwPVjLYlBdy6qQJWE7whsv13zY21uv1iSwdJtPz0Eq1rzfpNWkG2PDydQyDiI1mVmVfIMpPDWjUKU3RwkDh95a4U3XiMbrt3rKArZ2iCbj76LYWBWhTSrVuIyslL5GUV4YiyyJyql3d2Juj76ny0P4MtRc/Nz8YRPUx0xF8dPVHmOES0m/OWg76W57Mtl58K7zXZhv4fWtpqOzA5GXnd3kcjJ1qITyNuxssUnk6bCe5kVnvnfuaHbiUKMN02d6/tWs1VRC/PytYavyh0Mak4IXL9WL9ZxzsFdmlrzgIAvyhlb9MRb885SrzYy4EhUUbGTqy0e3fvc8xHztCTKU264n//rkL/3jptXe8E6bF5PcbPd2XmRh89/vKthZNa7UBVFnX5YYKSg89QZSQl0v9MMUOr+QI4b56cjaJ4jB1qQCsOO3fr/L+yk3o0fBcakRebbuI9aJGKMO7S1ZBnRsaOrOSHYamqTr5jlKilCecOPY/pqGwjuoIJC3IYbtMXsEv/Dd538UU3b8/ZiqX3j1wPTzbTNCp7fO5JjpnL1OEsbmLYyYtPZCc7mjFrRwzlLo5OqReSLTzd9AVxF+5Fkm29Z2sx8l6dO3XvIbuvs5Ko5IzIJJshU2wVabVDBVnferBN7kXcTiSayyOaelKq1vTi+JsP+Fbjh3aUqog4HRgSqzfS4qOX85XHv8vRNhoor0LSioh4XW7TRTTMcmIC78eyuk+co4K8e3LsapSmrxWn8RprfnBzdjZ3vWjivQ+Wg9wHgLZl8tcrimTg0VU+8PSuZxU4P//Guksx9vY9pFApGXpGRNx7HsJPDdkZkP1RMiBJ1aO3wo1tl6LLcH76w1Vzg14JKdwqoaSirBSGVLy5feR2MY8vbDtFj+BzeaKtJBz7moVvPXYjg0dw0o9Nnjf5fIEw/srwXtsvpPGpcoqabCqZjDXY/iM/qPeyUQo8uCXBsl832pe05WOhxuozeq5s4IjR50LelfEFFYnXDszcLxjhYyNv2c2Nc2v98feVODfp7Imj+dZ9bSifdqDYPb20H+25FF0urIgN3HO9+vEGlClDf/c4rJwgyiN2XXnQ+M04hIDLR1lsBSaKF73Zd+Illy+ojSFzefWzA5GxLl6GT3aefJgnFBTEbN4aZdjbWq2NfkFq18Ms98SNFHMTPZpGV8v8E8czbB0NGrekYS0tHLkWLay+EnXq00Vw9vTJBC5RlXZ06Z6rqaRGcpZm1901NWhTcB6fqHy2e/ey+8V0FEHJVDoFUxsxcSYzaPHBDBz5Ly1ttrfU2Wdm5y64tfpQUqlQWPDo6ACv01H8T5k3kGkUvLyUQ/rk3ZuriMgO+NtxQuDbSoylpqQkgZHIENQHfl8oeiY2qhSUxNTUkBafsXhu7BtKp+568hSUwtaza09OTihsOxUdY7W31ZbBEIqikhpdNDjVjQFl6a+ylbs5qEmRSFJ65rY6LcU2+O9iM+StOxlKkzAau3NXTU5SRtHHgwdFV2QnFUUZmposfpVoZMG0e/Yb66jEQAScKhxFRbbXhhPMOirQURJbVU5CVbeTqGkUlroiicfD8fyUOI6WfWc2HSPJGHSwlMtKSG+uZfzs18lSVt21ZMkoXcWkmwk/Ib76PjUqYWxtUC/32/bkB+egqLAyJ7OkgpC2HjVi1MdyHyEq3saV6HZQo6M0/XbKBa9TxA2vynyVImfTTVWShErqderrrsPiNFnDa8HOZm1r7D0AAD4D8tcsq+PIs9tKp4wctbGIpGHf5/Q+VxUUI4aO9rn0dxeNQ1W48mA3w49vA5LM5q7cUbBpmMnJIrKS0+w/F3WWoiwaFzBuhu5eSfVOjhPGWSxbu+mAy5BW9ZOkqZXs0rET5QMOrhu1wD9j6xy7gaN5TBOvscfn69NpsluGr51t3XcaQVex6nVgr50kKvywvf2H5pP0bHrKH9xr0d2B+WVt+Riq3ryr2xSX7/Sx2ZdahrENO47cvXGVk6hoi7XnvWf7ztdbyGEaWM8+P81dGvm0B6xIBlP/3JG6boBBAM3cbWRv5SAmDaV2mL7caKT3cCUOV6KbUw+1ikaXL7UR46YGbrTSPS6v3c57hEeHZf9MuWB1xNqoY+quHsMkQ+bUbqbjs/hY9mZfq37ZBMtq5MKTMzRJSF7r1lCtLGyx6+XWIpVPsexqIDxFcu7ykT9I2nW1/NnaBbZZC48NlKm5ltC7TTi/dOcUjyHzymlGnn/sm6JBev3xwZe13x6QOd13ivp4Acvceed+VyU0uP7i4LvG6cjYQ5eGLRsoj35hSz/0rv3Tmv5Ka7fi3MQF05cZLysjqZpNPDR/gNynqG66qjoz+kZE9jjXZnbnNbdHMxWR0AlT5jze7KR1SECTadd/xp7RbPQNDGjAbwpDklGbzlZzCgo55eUlb89djq07IyWMW9KHDdajdCmJ2qWGd/6IispKppRMbUiDKiPTwtctCF5ZOT/j3+t7wuseeZKREXycY06TZFAa2omgvJz44DsJGRyytLwEH0dUaleTyOQ6Q8hkMvrBJKK8sqz8/dX9WXXTDgktAq++T97IlqpKnClTewsek5ZhcIqrH4pDGTJSn+PJet9IG3p6Vtx+dGvHZUJOz9CxVycj1od4CVH6Pja1MjMzIF60Fy6o4le8LjTrilZWUiSka250owx1E3WiMKbxmoq3zdvZ7EDY2HsAAHwGKIfTzDvTRSu5XL6ystxXq0fAKePTpBg/8J03PGeny6TwmadO9GX+kG0Rvgs4sE/Q22+EBoWTtMZ1cdqK43tdawZOnFvOxeqGQgD4MrKzC2k0CoNBa2Wbrz8yAMDn0+TJ3RtH8jtOF38dr265Jx6044XieHfb6ugBt7igmMRS+vD4aYM8fqIk9PCNQsfqPP5d0Yrj3KylUQTPDt79QnFcT92Y4FPlnSdb5R47mGc7w7Gd+OTgRp8OiNYf4F2dx28007k9FSE4Cad2vDefY49fPBdnOnhYe3H4g6gqzSyjqijQsXpVHHHjUK75jN6qIjvKo24eyu0wvRd2e/cjbk8PTyMmCS+4uz+UMtCru1x2vSXC5NAdj+UniluKx185G6k9cJhizN4rSH8fS/HXcBBhaU6xUJYt+yHewntx5oI47V4n/cK2WNWJHl3E+fR4yvULwXSnyd2rAnfEqE50s5L8aHaQ9yjwIm430UG2vKkn3dmx1QX206zMqaQqytGIyqI390KCuJ1mDdSuq5YoDrt+MN3Ud6B29fDBiw0490TVc7xF7pmdKWYzXc3p4oz+5Kg0TAsLPfzRGpI+PfJAUzvLLzb2rZNmdBPvuSsX1louB1k9ANAm3+s0ITN+aLkv4Bc/CzwRbznQkfmjtoWkad+JcuYvC/PRpp03vuizeI1LvTLDaCD3AQAAPoyXisZ65ZEh7wr5hLAs7dape1EFHw3iNCo/K62YjxAVyXHRWXjrhaEsNUNWRuijrAqcqHj34mlyzX1ZCp1cnJbBIxBeZtibFHE+IkXHWCnjSXRimZAQlL64djMwrrINOwmhQEhiSlJJiLA44e3bQtF/27pmK2oY4EkPnhdyCaLy/fOzp2Kafy8pRclYpzTqUVqJkODmvPn3NcnAsJVkd5EdbTiBKHhz/sTTuFKcxJCQYZI+enqNKH8dV6RhqFI3AaDqGCoWxKUU0lWN1fPDH+dUikxNibn5bx5fpvEankSzdjb1bRuWE7zyzPSSCkj0AYBW1Cu4QERF4Mb2vokOK1d4SP/AlzAVG7+rNn5wtAAAANqAYtDTqfjGkxPbn/DIUrpdevTWJn30q535y8s3tobjQgkNE822AiaobJeBXcuu/fvPJi5FycDMUCJDPCIrWTuwL1w6v4kvpGrqaEvzxC9Y6GA3sPTJjUNnLwop8oYd+9u1FXsmKXdxkr9w7vx2ClPB0LiTcfqjwJcm3oqtT2Z6DLG8FXRv5z0eJqVo2dfOpPn3BdBNPZyKg58e2fpISJc1dnFyUMNaSCFFJZXkhVfunGD07NuyJzBVM7f2D2/sPxWEkKVU9ft4atbfV8CLUl7lKlrpfXg4gKmnoXr9zev8Dt36di8NfLz3bw4hqWDZp5s+lUE0WkOhI03tRJr6tnXLe43QSDh3otRxrksHGnR+AGjhhPlOWT0AAPzYQFYP8LuBC/hCEoXyeUnh+PubF0Pk3Ed3lqjJqxfwhCiVTAJvfn3AtwDwNYEYPwAAAPA7gpEpX5SgiTZ4dBQlU+Ey+o0A3wIAKH4AAAAA+H9MExRtew2RZsLbYgAA+LkgLV26rOlagUAoFOKSks2nBxK519zlJ45ddczP7+gqvxO7zsfzjTvZ6TCaHQEFsZd9thfaOWkwBTEbRt5C+pprfptbdIIXhzv3eWE3vqPih6CNMH7DVPurOj6uio3r5EVNNdyUNqSXldTnjdv8x7vNhif28m5XvnOmTYDaZMfUKbpbc0a6WkjUf/Sw7PqKLbfZXTsrfXLwiP+JnsHfnVjVrfeeV8Z9ezf9gnpr9eLpu2db+CtNEb+B4ZvSqoWt86VH5CvDDRkuN3b4iqN+fodXrjzit0bcyded47tPtFRt7FfBv3NGeb+xG2Mr+Wtc+8vLOWQyiUJpLQrQ+sgAAL8DZDqVDHofAICfbuz6wv2onfcm/D1BEUUEpZHbVriPO2r7do5TcwnARFHqw0hC/KwAXvTiXoJeG+8DEH9B9uu9apekPmzWYb76V7yRQW7X58h2qjoJyW1Zv6dHRsc5NnxlAMHjCamt3J38NM8gCCf0YmTHXef/8aB+Wr1fAyGfh1KojcVuSy1qamFbbf+qEATxX785S+txujTktOiYJJ7uZhM/P3NFf9oPYxsAAAAAAMCXaeIviPEjFfEnd6aYzugpDmxjNBWdqlt/x2lNdW0XucNkfHrf0aYyqDgW3n7se0/XzLmDT4bGxQS/ERSd9j/+MvlBYL7BSBuVN0G+g5dPnH9s75UUcsdOVqpU4YvD1sMf5d/aPsDn0KYD4SUmXZz06E30kSB07ki3+6aTXBTw8D0mehsSuw9w1yJerBxvfUZtUufco5cLme/OjRuzY8WesOoSqGmHVg57aDjJVaHi+ZXJg1ZMXnz62J1stq2FGSs3aNezCsm4laPWzfcLCsVMPLsq0D6hFh/NB33mZHp4m5HCb5wosZjqIgje+UrNp2ddjF/wdPWC6WdTou9GVli46l6a7XoRL969cvITUsqCdQ9s+jirYgievcN59G5Wn/7G1a9FEKbuHrp2f8ueqXOC8MXmxT7HUmIfPMk1du+lVxm5e9PAkZsWrL4SnCJt66SdtL6+3l6OqvnBy/8aMHaH354HkRwtx66KgoibhxPJlSc2D5++f+vlHE0XG9MGH09BBHk3V/kN9N62bOuNB/lK9t01ZIThPvp7kxRfzOp3STjYpbN0jRV46vaZtS0K053oJvX8Ixt0MnfUW9jLOGhOy1vqK1A4z/dt6D9404I1Aacj0E7u7dTJWS0fEXHVmdcPDOu/avqSE1uPhGVrWLoYS3xoAC9qqtG20IrbE/pt9dt64zFq7NVVgYoIc0P8vQf5TfvT/2hIibp9RyNukIfOYfwPF3NG2fF+vW2Psv4YZSRVdm+I+uasoW42rI+/IFkYe/hggd3cHia1sxVe4vl/hg1eN2vV+YAIrrFDe20J4v3NS/dZvbxtGSn+K21GP9cfaGvALI9s1FKiWdt+RCDGDwAAAAC/Kv/5vfL84siTDxMtOneVaSZ+iSq77N/fU7OL981jo5acnubOst78eJYnKXrJoCN5o9YmZAcE+VRtGrTnVnl1SU9uP+62Nq3gSthcyoG1d9KaiXmTOzmalTx9lY7jWeGvCxiVEWFZQqI47GmBrZMJXSRHXj14oDs7OuPi45nkA+vuvK8voSx8/qAAZNa2lMxj+23jZi64l0eIc2nOR1ueeX353XWnnLUnA0s/tZZWIdsu9VtupzjswI6/uomUE55w/Gax7/bnO728XHh3bqYJRauyngbGd+xX/+J/kta0tjxTs5353JV+PWT67tyzxY1SeHnbwAPMxfcu5Cb49UveM3xDstWHetGEXX4TQ80OvriccmsgumfjpkhxtZlXn6BL9qRlHNuo/XjVwcQGLzjGUw+uHROosfnppazIOR3vrRu9W2wnwg3ff9vwYPSGqeoNO0ldi7ZblDe2IandBwuprW4Zz0sJmrO60uf+hYL0XRPKT/51tlB8b6LFIyI6tG+2z7urvOZwXtG1mL/Vrq288rLRG5q54adfuz3MDk674ZKz7uS1UgR/H+Q9+onJlgOZ2cf3WUVP+uPKO7mOToaJ/0byEX5C2GsKLSY2qgrhv4h5pmFR/T641hC8PDXMN8Hx8PHs1N0r5G8NnXonp/ZuCp53c2f/VfiSizPcFZEmxyVe0JxtAAAAAAAAP4Pi50VMVnekUHtQmH1slmR0m9hN65PTtvlRj67TXBeP15UiM4xGjvGWfXolnC+eHijaz/hDm4FStOzNtCrKS5vLT2F0sbSKfxlWxo2KKO473joj7E0p5+3jV/pO3cTfRseU7GeM1WRgdP3uphoV5WV1JXAfhwQp9l40QIVOkrKdveDgOB1xs0naI2d216CQZDqYW8hUNvx0R+u1fB5dPBc6K9BQSmf3Ttm3I9JwIvdGaJx9dyfpz/BME6ruBYQbT/P21KCSZQynzrErvBWRXP+iZTwn6FKa8+zBNrIkmrbz+qNje8mLm8Z0HeBrJYHR5O27qleWVH5oLVFy+8pb25ljnFUoFMWOC2Z3irsWIf4iDabYb5qbmQyphRa1akObWyIkEjc/JjI1B1ebfv1q8AQ22uoRQcj6i+4e2NWHjXHKirgIVlbRuHuQNEfMdNCkoMx25p1lOSUVeHbQ/WcOwxd1l6VQWPbzB3aNfvqgRMWhOzPyyXtuUly0tpu3dvyTOF7K0zeIvYVJG2lHwoTA0BzPEbNspCl0Jc/F/U1DHj0QT8aI8qiTA0dc11g8d4weucXj0tg2+EgMAAAAAADflf+cx48Ii19cGeM5f6nWkbUfbUG0pGvw/KIi5Q5qNUqSpKClWhGbJ0TYCCYvV/uArTjfufm9UVlzR8MjoRGJEq80HE5YZPaNiYyWfK5usVAJRfJEGlVeqaZBaMPvASKV2YXlqpbq1YWjLD3PPuI8EIQkq1r7kCuKYp9cS/pnuQmVVWPXJEAwunbpnnT1To4LNTCxy1ArmU/3DNLkmyh4aVY2J2L9rA67alspp6XJrXcYXpyZz9JUr8kcIWk5uGgheDqCyarIMeq9+1FpJblFkhoatQ9eMzWU2IWF+bg6QmKrq6Attqh1G9rakq/usWdP7sL1CwzG4vo9Pf/aMq6PKtLKEUEIftLF3XN2P88kyRnqoVWIUZOpK0tFEW3QPjwnq6Di9m7bDgdrN9DSxzhYhx7tC7fEJOq+qeo8rG9l2PqwdOOnuV1GG7WVZkMU5JcpatRm42AKShrkktxiXBURRge9mzhI7/z+oLiRo9qRWvBJY9sAAAAAAAB+CsX/ARLLvOdgy70HIgpwS5E0qpXqwsLiYkK52R0wNouVnZspRFTFaS8F6dlMtpxY5H6SFsIUHRwkTl+5K0U3HqPb7h0r6MoZmqCbjz6pNUHFYEvRc/OzcUQPQ4iiV0dPlDn5UKo3/6JaPkfxY/XfIpfs5GGz7fylEDTKtP/B5t/u0pJnmmzHlJOl95i45+IISbEaLUqLzJI0IRNPa+uUkmeVvM0RiA6N6DgkXj33VM2rRytiE5NWkC0PT+cQiPgtOVWZeYUss+oPRaIffUe9UYuatwGJ/rQtjcsL4syHBURMwvOTryxb+cdig3dHpVo5IsK3F6etK/cJ8f9Dj4qnnnN2zWhqWOOZiZw0u/+YyL3W4ocBBEWvn5UrqWN0KYvO8Q/3h6S166NvxTdIuHjtboy+kx29zePIlpfKS8nnIXoMcYp/XiZfii0j8hHJcv7CnTPLpW3+XHLa7eKYZn2S/IldGwAAAAAA4Bvxn/P4Ebzs9b1LUbKdOrFJUhKMxNiwXBzhpBz850lxfcSXy6uN/hJ8LhehWHZz49xaf/x9Jc5NOnviaL51X5vmP+1NlGVFPU3J/Shjm9Suh1nuiRsp5iZ6NI2ulvknjmfYOhq0/pF0ml1319SgTcF5fKLy2e7dy+4X09vQYF9SSwO7+Vxek3sUqKSTu17o6qOhlva95NBmdvkMz0g49jUL33rsRgaP4KQfmzxv8vmCD/WSVD16K9zYdim6DOenP1w1N+iVsNUQNspy8TJ8svPkwzyhoCBm89Yow97Wam33ixZs+LQthfFXhvfafiGNT5VT1GRTyeQ26iNEXYgqpcKmIILChwfuRVcKBG2kxmAabnYawf6bH5cIiMoX21f1WhYpzvKS7uCoH3XkKsvakiZp3V7rVtBVpU7d2W0qcpKBR1f5wNO7nlXg/Pwb6y7F2Nv3qJ6hMBg0lGE6f5X1M79j90o/2SdEaUJYXGIxpPcAAAAAAPA9+NIYPy9yqraLb/UiVVaj56yly7tTybjnUq8V8zr2ncIhdRhiYfyuWitpG3VM3dVjmOS/J02tzV/PstgkGT1v7Xnv2b7z9RZymAbWs89Pc5dGhM1VIoi5OLRn6tL3G8Y2kMhUKwtb7Hq5tUh/Uyy7GghPkZy7tJGUgcrabw/InO47RX28gGXuvHO/qxIa3fouX1BLvbI3tZJdOnaifMD+yR//oODaxXT6C2Yfm8YKk6zRimealbOqoxb4Z2ydYzdwNI9p4jX2+Hx9Msqrq/fgurkrdxRsGmZysois5DT7z0WdSWURrYljHZ/Fx7I3+1r1yyZYViMXnpyhSUKy25wrNmMDUvaJW9JpsluGr51t3XcaQVex6nVgr50k0toRIbfvs6rvSl+zIXOV1J0m9hzGOjh5kdOrLRatHBKS8aCTu0umThqnmoOzO7lu39tHSzytYHd3UOK/N+6sgmFIO1tFQZ5DJ61PmPaSO448u610yshRG4tIGvZ9Tu9zVUGJpLojy+4zftHuSYt39gtd1NQnUc2dPjF+HuupJy8edKPAGAQAAAAAwLcG5XC4TdeKVnK5fGVluS8pkuCXVxASktSvkcogjFx9+P3siQMkfgVfE0V3Bre74fZs0wRlSPMAfjiyswtpNAqD0doHCP7TyAAAAAAAwP8J7OsXiVIkv47cR/DM52Gqtk7MX8HRQn5lvH/w447dPZRA7gMAAAAAAADfD/KPbBymajVt/K/hZ0HoYp9hwepzDruqguAHAAAAAAAAQPH/en7uvsk/cxP4AQAA4D9RVlaZkppdUFACrgC+GDZbRltLWUqKCa4AQPEDAAAAwA8n96OevdXVVTU00IDPWwBfBCEiJ7dI1JEsLYxA9AOg+AEAAADgxyIlNVsk95WV2CK1X6P4QfcDn6z0xf+IugyOE6IuVNOd2pvpgmcAUPwAAAAA8ANRUFBiaKBeI/drAJ8An0jNDJEgCAwTiX5cSVE2OTkT3AKA4gcAAACAH1C3YfVyPzu74P9oiaqqPByOnw4cFwl/vHquCNNF4PcCAxcAAAAAPxEEgUB8H/jSGWN954EOBIDiBwAAAIAf9rqF1Wi176jYqnPAgV9D8X/vzgMAPwaQ1QMAAPCzQpQmnVxzaOvZ569zhdJaRu7jxqya3VmDIvpF8O+ckWORJa+3mGVu9zWcG4tXq2SytFLn/sP+3tjPWrZG8QjeX/dfsCro1stCXFbFymvI+rVeVrINxRDv3BD3oReFJHF0CKWzVWyGjN+1wcWY3pZlZS9WePodoQ+9dUl1rd4Vp1frHE/M7pk6IXZLB8q38UTuiVW9nvcO22JFbfKb4NXdHUnGM/uokb6oaDzrweT+D3sELh0hDzIRAABQ/AAAAMD3pCpho9ecvVL9NpzysdWiFr5+dmTlaofYWf8edVTFEKGAwBGhWLAKcLrXwjeH7ekEr+jdq5PLtnuNJodd9dLGiKLbO93+eNtr/bLHTmrM4qQLf23uP1Ui4pSzcgNlKxCQOq/8J3iauMiypKfLRm300TEJmaVWe4NYyOehFGqTu8WCN48vcNzOX+lryCideXiMvBQqMgMXCL9i69vI6qlO/am1MSX6/FP56a0pfiFfQKKQG+9Y3ZLsU0tOPizR6AH97RcCUsIAUPwAAADAjwFReMB98DrTrW+bj4vjGf77/ub0vXJpdGcZCoWEqCu5rfOn5Njv2xhqt83+Yw2OUmVlpegIwmLZzfunJNIm4EC0xxrzjP3L7+uu2LNmmApDpNlVWVM2jn428tnjIqcBch8JIpQiIdpdVKKsRY9RzodHRKcKeBnTja6ZrpE7syRjzKMNowuvz53ufzWuQtKoy5wdM6boP58xNjgpFRs7Xu7iSZVdEy93f7n2g2KuTPFfsGX1pcR8irr7vNm7ppnIoHjqdl/Tk7aRT0abkP6j04pOjl0fqcd6eTutQsC0WzhvQ9ekVTticwsy57Wbs7U///yqQ/ufFHBQVrfJk1YOU0/Z+ucWzFEm5JHiwjnqezY13HFjP2USIkg4ejDYrE+fhOfQHwEA+KmBPH4AAIAfTeuXPA24fe9tKUeACHkV6eEPj9/KbBIerwgJijMc2LOzHJVCEr94BCOTmVr2I3vybl9/J2ihYBQjMTTtPCxyw8KL8Zyom28MvfqqMKlY9f4kurbb3pu+XrItxT/xytTwcyHF2voiKYwLqsL33dTZ9mDFH7Ivlww6kj1oacSbw2fGVGwctOcW1mX9Tlft9v38j3gZknAhIfqrL4T7aNnilXku/uGnXl7oXbVl5eJ7HNGVSNFryvm/HTVIX8N7gvfRuOeFh/+E7Gr/8khoCttu+QwzxZ5j/h6pFLfnnzPyoy+F/PPo4hDq4Z37X4ucKnj6qHKc/9qFNqRGO74TIlWvLi9/0H7FJB0ahIQBAPjJgRg/AADADwY36dzKTdve8jCSEH/4p/4eVKHPXEcXVY2GIRq8LDsXV9ZU+ij8j9I01VkF7wtwRK/FwjEJBVlySUEFP6+ggMZSkW1QKEqWkGp6URBGLB8j8ReKEEKCxu7Ub9KOqdokJBfB5D0muHXWoOOhD4MpDof+MNWQwNRGDx/+z/JLEbOcGSRUVJokBWs0U+HHnb5EH36up4UaHVPpNWvQ+fHBSXxnM4aOqasW+nUuSBi7R28TlsheLVVVfh63frKB5z/5NzNLcNInChXfQCnIVH/N7Ylguj1sTSSqP83UaMeKtzv+ettr/SIj6hvokgAAgOIHAAAAvip089WP/ftuXuaxNq6SpDTm5KZNnirsRndkMUk5OTQvpwRHFBv8gufnlbDkpVu9e8srKRFIyTDIMlIy3LcFlQRSH8EmSiIv/Fti6eas0zDYTrJatrM6j796TkCjMZkYwhOtltPUopJQRJBTWKRkpssU/44x1LRVKt9kCxGdlirPy8zJuObtc7nGRAJhe/GqC8bIpK/kPZTKoDcbk6fQGPJ9Fixf3FFcE7e0lM9gvt+FSkjWtf/jHYXx4UGxSXxv34MIrzCjgtJ/RcE/K3zbk6B7AgAAih8AAAD475Do3NcHjsezB432fnf+5N7HCwYMU2i8jWR3F4N5Z2+9nTbKpC7OTxSG+weTnQ7otzKyE/nhQVEKVstkSWod7bX8L18rHDuGjdb+9MRvckDHO27OjSR0XR5/ozkHiSzeD5OTlsnJF4l8DVGteGFWLkOW1bIspkiy5PSmnd4wVUtUHlGWmvieaUj59g4VCnEEY9k7MCccjxjf3lYh//GCYXdtTv/ZsZVj0HH0g7jR4iX+q2XOF00uwrt6AAD4iYE8fgAAgB8Pqrxlv9G7t3iv3TNprJ26RDNSE9MZM34KHjBo/MX78cUcXkVa+M3Znhsf2o2f59DSuzOFpanR2ybufWTed7wlGaHoT/7TJnbBknkBiTmVQm5O3D7fI6Hm7sPafV4Ym2Jp51J1Z/3x95U4N+nsieMFFl62LWt4qlkfx9yjW8NzyQxG+Uu/4etPvhdPT7hZyU9f5HK+0fxJS0sp5ODU45la3lOm0q4O7TG1x/Ag5sw/BimDggcA4HcBYvwAAAA/HCjLZMp6AxKdSlbps64dRmtOQmOyHZacW6W26dQcl/1vCzF5XQOXUYuCfDrrNHkjfdW1NbLMdQiBI0xFC68Bp3b0rY6rk9QHzLxGO7fcb4Hh2CI+U7GTW2//Q/2NPjfkLm216tiwhYvm6y3kMPUtpxyb3Fu2ta091y1OXrS3l96WcrqK4+R5W7uJzMWzz252PmUT+WTMl76rB1UcveJ5dUR+5PEttavkXY8FVy+ZDboaNqhm5aB1awc12M109qbTtVvLNrNj7Zymnd/DdtAnAQD4uS8rHA636VrRSi6Xr6wsBw4CgN+E7OxCGo3CYNBa2QZGhh8OAudxuFU8gZBAMBKJQqMxaKTab2tVllcgDBkmCedWllTWPT+LomQKjcmkkOqi27iAx6nk8YRE9U9UBpNK/jjwzSsv45IlpRpnxgsrS7gkaWZNCjwh5FdWcvlCcTY+XYJOE6l2Ibe0EpWUomKIoKKYT5FhkHmVZUKayB6RzdzKqio+TqAohU5nVhssNpJLlpGmtn7fOeTB865d2pNIGIqiGIZmZub/H32vqioPHfBnBMcJEUIh/vhJTA+HTuAQ4DcBYvwAAAA/LShGZTKozOYGd6akTPUCRmPKtjyPw8hUCWmqRMs1UEWyvZnVJKbMh1pREkVC6uNbAySatFStIRKs6gsNjSlTZzNNgtnIotaNbDzNIeALSsCXzpEJ8AHwmwJ5/AAAAAAAAADwKwMxfgAAAODngkAQlCAgrwb4ss4jTuwBRwC/GxDjBwAAAH4yxSZOxAbNBnxWvyFqu01N14H+A/xuQIwfAAAA+Il0G4HjBIaJH/fFcUjnBz67/1SDg+IHQPEDAAAAwI8Imy2Tk1ukrMQWi30x4vQeeIoX+By5j1TLfTQvv0DUncAnACh+AAAAAPix0NZSjnr2VrSgpChbncqP1iT5AMAni37xn0juJyVlWloYgUOA313xQ8wEAH5D4MQHfnCkpJgilZaSmp2cnAneAL4YNltG1JFE3QlcAfzuir/m2k8QBCgAAPgdgJMd+IlEf3szXfADAADAZ4G1JPdFV3+BQAgOAoDfAdHJLjrlQfQDAAAAwG+l+BEMw6qq+OAgAPgdEJ3solMeBD8AAAAA/FaKXxzsKy+vhDceA8Avj+g0F53sEOMHAAAAgN9O8ZPEYOXlHPARAPzaiE5z0ckuOuFB8QMAAADAb6X4EQwTi36RFKiq4oGbAOBXRXSCVyt+kjipBwQ/AAAAAPxOih/FMEykAchkUkFBKYh+APhV5b7oBBed5mLBD5IfAAAAAH5RyC0rfkQkAgiCRBCESBNISTGkpJggCADg10B0XpeVVZaVcSgUUp3iR+EEBwAAAIDfS/GL/hUpAJEUqPlvRUVVSUmFjIwEg0ETrQRlAAA/qdAXCIQcDld0OotOZCqVLPpX9Fcj9+G8Bn5khClPd/i/LiPE/RhHUEzcW1FmJ5c/lGKO53ec7q5C+pzSBIXvH91/8TKpsExAllJS7WBn2c1YmvIfz6+Kt/47UtrN6GUhwY85e+rCW7zGSIqUnIFVZzc7FcnGZxhekvjyVkh8Ug6HYEiqGpq5uhip0r/HSFASGxZKtHNvL9XQonOTkKHBCKn63j9dFrHxQnYtQYw/35743Ui/QuTFMqShP/9difyljdwc20JqQTPwEu6HFZt266z0HcYloujlg1N38rS8BngakD7Th5JlETeONO6B3OenLqZYDelv2FppwpxXZwJiys2cJjgqkr7Q8nov8T6lxrbOsYyrO16p+/S0kPh/nul47ptrMRKuzhrwgbTvofiRusQekedr9H1Nko9I95eWVuI4Xv2daniNDwD8TNRI+ppzmUaj1DydXxPdh5Qe4MeHpG07e6mtaIHz4va2GE3fUUaS1cKrNCLmsyVFUXzA0ShuB5vBk9QV6Pz8d/F3bwQHVHgMt5TGPrMo0YWwhTMH03Yf5N1ZAsV5xenJd6/eO4N4jOsm21COcZLDTlwpMHR3mWYgQ60seHn7wZlAis8gXcnPrLFlG1rWiUV5aTi/6Y5dliKPJolFeVkyMnss4qOJhEys0+hChIci1E9wkHpf5DC/ZXnRilU8hEr9ID9LM7Nzdb6gcV+AIC0uU9ljaBtyn8CFCEZCG/uwOSj6zk7qUq2Lb6L0XUqBgeO0tuR+qy6o99Kn1Ih8H29+yZSrgWFEVXFqJgIfhPp+ir9e9KMoUb2AipSBUCgU6XxQ/ADwUyt+0b81j+pitdn7EN0Hfm4ITm7omacR7ysQtq77oC6mMijCL355+/GD14WVJGmDrl09rOUbhKp58SHPCts5+rgoV8tLqopxpyEM3v7zz9626065ff4JWVv4NiGLR5Y36ODpYaJCQ5opTZgVuDuWboHEhObwSAxNu+4Duyg0f4sAo7I0jb08Cv65Epdia6dXf9UlSp7dfyfv2t/VlCE+/WQUrdwtM89mp3F0TWiViQ8f336eU4ow1TtYeTpqyGDCV+cvvpbXLo16mysksfQtB/Y1VECasYGK8DLDnwY/Tc/nUpRMO3n20lcgI0RlTmjQ04iUCkRasYNTV3s05lxYYSFy/wzNaZitbLMaXkoXGeuEDHiNCHjIdHvEdBFyZj0y5jIyugiZuwS5moBI6iJzViNTdJBR9oj5RWSBrli1HfZGzrgiuyuR8bniGD+RhixZgPjHIHLtkV5MhNCu9n46svxP5ORzBFdFpq1AFtkhaQeRQVnI4GTkqBoSvRqpPih4+sN7D95X8AuuM/u591DIFzUpLLlUwGCbOnR1bS/TwNWcKP+rmV0He+li1ZH1y+m2omU8Kyo08FFGAQ+T0Tbz6memTkWEJe/vBUbFZFQQ0irWbnbdtOl1ox6R/eTe3RQuNzvwBtmzl1pB47qEGVd3vlV0ZsTcLe04vmdnafF+gsTwOh86epCa9kBB8v17yRZD+hsSTS2pleqpz86FFpTgD08wu7uhYZcFdj6ObAwhCkKDzvG6+DiyXjc94iSEm/3melBMQqFQQlm7e29LVmy9l5zlHtfUSOLmxN8MfvE2j09la3T1sLFSoZRF3DyVrayWGRdbTNDkddyqzxFhUfLNq1GxWVUERULdqkt/B5XmYupEWeKzq7fi00qFJAl2B9fursYSGF6REPL49ou8SrKUloV1bzslZjNrmvbh5o6UVk6jPjygfdn1q0klZaQTl8ij+ulLw6Xp+yh+5EN6D1IT8a/O7Cfq5T6IfgD4ieR+vehH60Q+ioLcB34Fyt6mI96ec5R4sZcDQ6KMjJ1Yaffu3ueYj5yhJ1OadMX//l2F/r116q53wrz4dzST4UrUBiVQNfRNmbcTMnBTRPAurtRjzJDR0mVRF29deMCe3PN/7J0HeBTX1ffvzGzv0qqspFXvQkhIAqECAomO6dgYjLGNu3F3XBLHyZe8cd5U23Hc7fg1tgkYREeILlRRAUmo99572747M9+uChLaFUhAHLDP7+GBZXbm3nPPPXfmf++emZG2mJfmYhR9zcVdix9/Yxmv8+ru7worQpcETm0hy9XFjcxr6aM9bUeHG61oq+6yDfbmXht+GN9j/eMm4dx/JfVIpfXmp+Jcsc7kfUmH+WsejeAbZXtZGbn92e3uRPupr1OyGrzWulqwwasuc38uc/VjD3qz+7Pjzx5Mt3pmMa844WKxJOap1xxQXea3x3NdXlzwwPzOw1T0VHLfiKoR7UlBHg8g06KxDn2Zgg6cQ4Es9NIDqOtZVLUVtR5BK59CnklofQT6LBm97oGwfnSiCG35G8KPDhdBoX+9ji4GorzdiEpHK55EdguNBqO/P4sK1qOib9BQMlr9EvI8iyIQqjqI+j9B+dForFNweUzcoqaE9uhVsS760kNJVxgRj77qyu0qid+blCpdv8TxRr810P2VZ1L0cx9/cI5QeXlfQnKx5/Y5mkvxmR2BS3dtk2irs/99ONPq2djAUYWLySJj4xoO1YauWellsFCXvSnd5UrN/C3PRdixR7uL4RV+zYeKy+YRKJzSktDRHidcQ++Pat+rmLcjxrY3zWIzzHpc3nZ2fzFatupVf1Zb8pkfzjbs2nrNS4aCS8NHGdouHMhXRS1/KUQ4VJS2Z/9lq11RdojuKm72f/T+XzqQpUeOJ+f5+sVKalOzGxzjXnzEnjVYFf91ftEc2XzzX5eo7qwztYKlG9705agrM75OKg/yCWXlpBxvdHrwuaUyTe3R3ekZ7htDGydvmddqHsNTJM1dH8OVoUvWrutsTJHs2OglhFPbj6n4xyQCdk3ij6l8DOQ+ANyDop++NqivTQMA4F6H6ek/35GJIYaLs0jfo6OpzuJyZshDnjbGbVLP6NlFB6t6Sfex3AlSo9RxJufU4zyRQN+uNBiHhVVwcIgtk0DWcxd5XY6vbY4jS8xLMyp+XDI7wk1sVJ529k6cDq3+hgkTGIvL1qs148kLtEqtZnD4LPNdtbXl3fKIOHcBjiFZdKQs90qLYr6PsT6n0EB3vnHQ2rnZkyXa4UvwZBv0dcUtNuEbfUSE0dZ5US6ZF1v65vNL6q3nv+AoMLbfM2T9qh721FfvrD8h/l9N5wmahcLWoq92Dit+HG3YiQJFSJ+DTrHQ3q1IyEC+G9GjX6FjV9G7K9BLh1HXTsROR5eD0Od2SDGiFVvQD2Xoza+Q6UeSOPRyJNpn9H0VOtSPPngUSRhIEoeeckeJ+SbFj8LQWwsQ26JN+vayWuHcJ12tGBhy8F/gX3qmsj/W0fpGkh/HMFLV0Tqg9LEOf/ih8OHU8FK168p5Ug6OON5BYdbHq5rJQPOUd4t12ZtmY37h3tfk/s0jcGpLZsLkHjc01VXyfR71Fxitk0dGr2+gzQ0iWxurCc/NIVZsHLFnBwdnnStvoeyMFnoYLWQZ93dxkei7jBbibss3PMbkcpFBoaEwTK+1+FBG3HrBo+sYAjZm0KgNCNPqtbSioWzAPWq5nIMhjsfSjVgfd6hq0haexlIMu03RSrNxBPy3FP+kBcIJQh+0AgDce7IfhD7w04Mr4DJGL1UjqketUAxUxB8tHot0vt8EkUtw+EzNkJJGE29bpdQKFYPPMxaDicT8ETWJiYUiTatKP0VpGEfIHxtWNx1StE6tY1pzxvfDuGyOoVtl1DfjslPbWtqocbBRalgiEWNkV6ZYwFWrVcNTdb5g9PjxETzJBlo3pNC3pJ/6LGd0D65YrFeqVEy+iD1aq9xfbtyvawozI341msc/js6k+OV2w07qRX22yGnEYAK5ylBxD7KKQeF/QBcGEO8cmrsW2WFjir8P9VsjV96ode6upmLJLtTWiZ5eNX5T7yLK9LeVDHGn9JxGRfHEo52Fi8Rcdb9mijnL6GZM5LNmjfJc2tl/HqWtPX1iV4R4KVRDisbjX7aNOZvvSlMTXX+TujCuWDiTCLzWP2aW+EpucifEhKZN7nG9Qq0TOo4kumAcax9f47+TX5NqmkkKZKP3o+B8iVDXqTK5mC3gMq+zENN1VCaer2pRM0Q2fD2FHCybQ/WV5ZzOaRvCeVIrZEA2iNYMqjhi0YjrMImrh4Tqqpq0he5vthzDFls5k3EE/AiKf5L0BwAAAIC7aSY7AZzN5Umjtq+KEJu+0Pb39BOScXFH2Hq5aS4Wdi2U2V3TnfrWmlKFY6wcR2X00ICSQjzCdGelYojN5hIWS+uckYG6xqZ63Ga21QTFL3Rwt7paVqkOChpN86BVTSkJJQ6PLhdydM2DBhqZVmQNQyo1x447zQsvxuRyGW5ha7bONv12YNRmrUMsW14TR9euGJla0Kra3CbC32emT0HBhxUkboUkXaiVRI4MU9JOcyeSShBmjdbPQolJiJWPtvx+vCtwKbLuRY1qNF9oEnjtHYjyRbgE2bii3adQ6LD6aClFOheEGoeTh6dqE4vDw1UDChpJTHOaoUENmzfFYjutVQ0LYFqj0tvP3vL0XFrVV56UfOyC9KUoDs/KZ+PTYQ6mhpCDHf2kFXPadWlGfhmdQQRes8jMklc2u7Es7jmqgWm1SktPIc2YXDZDqTJaZ40ZS+68WqBzD5dONoTH4SgUQxQS4qbuHlQweVwcqcyVfEfaiSrW8tUv+vIIqufClxmW9X536ck0XdjOzaFWBD1Q8u13Q0Yf8TnabuXIfInurShpFsombxG58G4cw2M9BfyY4OACAAAA4CcFYefnqbiSXNerp8mhprN7k3J7Jn7N8l0cIi5Kjk9v6lQYSL26ozxvX3yNJDbE13R7L91bWFjQY6B0/fmp1VpPV0fWjUu7GbRhqKXy5Kk6wTx/t4lKDrOaG+vccfbC2ZJehZ42KLtyE/ObHPyC7bgevtLm7MIGFU2pOy9ltkp9nITTXWpjuvvZt2RerR4iacNgwYkzCaUqjOvoJ+/OudShomlVfdGZ9C7d8HSANFAz9SszCK3UoD8fRCoK1RxHu3vR+hCT2F25DF38AKXNQqskE+SFDK31QH/7CHXqUecl9GGqaSPDF60yoHf3oUES9WSjTY+iXMMNXEeSpLFWez/3wdy0pgGS1naUp5cR3j4Tbz9gsFn6tqZ+PaKVtaVX20yNonvKD36fVTpIEVy+mDf8lAI7Z2+qJiW/V2t0QmP+/r1FbRafBXOTuszsu5kPzS2xuBuLzRhq7RwgETlQn10yNFWhhIur50BlRpWKRPq2nMtJdRrTKvqIl67t4+DqZahJKxgwRmtvccFVldzPCbdsO0nwBCwCkf1VFRW9xv9aqpIkDQRbyCUQpW7IrWvXUxQSefvwqjPL2nU0OViffKayk7aevIUSWIphCz01JaTBMJxLruzqbBvQQxL5HYEBLgAAAAB+WjC9l8f1n878/sNMHUPoEbn4Prfr8jcIqd+Dj3HSkq7uvZSkoNgSe4fgNfdFeAtxRJmSp30ktYcOXxigRR6BW5Y5sRGyUNrNnx1INZyO/+NZUyoswbf2mRe3Ndp6UhIJ3yd656aiM+fPfnRUQzL5Dj7+Wzf7WmEYCovZqLiU+MU+BeI4zl6web4Yn+6zCjFhUPTmwczTX+8/TDJtfOZsjLY2isyQ9TGDCZc+/7uaFtiGrVvgxcQ09jbksfPfc1fsiLKawcofF/3vV+jVXyPPdxHPA736FVo1nOviEIe8f49kbyGriYKWQC/+E7W+iYLnGOdY6PUdKMG4kY3+35fozV8jv78iQoaeeh9tkqAmy5WxbB25SUeOn9+ybsnquP7ErG8+SCM5Vn5L4xZdJ2GZ3tHBhUdPf5BDkXxnfxfTyj3uGLhydurpL/eeRAyho9e6NS4sAlu8JezsyaSPknS40C5sfbS/5SwiToB5XZZ9jwlGfbh8/dTvcbBgiaWiRIHBYWWX/vV+noEWBnjZTPWITYzjuuqBoZOJJ94/RnHsPVav8xQgasxLK21H/eGwdMuc04lnPzynZ0rlkVvCvdhoyMLsQRYZZ3Mo/uCHTJ6tj1+IX3NaQqH/ozaT7bfzi/O7mPjpAYIvcg/zDOTkJZx3f35p7CpVRvzHhRqc7x65cIETzpGZbXEwj2Fk3lOWnSaxkfVn7z7Ifvx+l9qzpzJk9+1aYgPpJbcPplZrwQsAAEwH4+lCq9XLZNbgCuAnClV94kC2fMNDIRxQGPdYzxn0JMFkYvd2G7QUwWZg0FPAfwJY4wcAAAAA4N4GZzDxe78NbBx6CgDFDwAAAAD/WTBZWNQCHqw/AgAAih8AAAAAfqKKX+DoIgA3AADwkwN+WgEAAAAAAAAAUPwAAAAAAAAAAIDiBwAAAAAAAAAAFD8AAAAAAAAAAKD4AQAAAAAAAAAAxQ8AAAAAAAAAACh+AAAAAAAAAADFDwAAAAAAAAAAKH4AAAAAAAAAAEDxAwAAAAAAAABwt8AAFwAAAAD3CkNDqvqG9p6eAXAFcMtIpWI3V5lQyANXAKD4AQAAAOCuk/u5eRUeHo4+3s4YhoFDgJlDG+no7DMGUlioL4h+ABQ/AAAAANxd1De0G+W+zF5qVPsjih90PzBtpW/6yxgyFEUbQ2gknGYHeoBnAFD8AAAAAHAX0dMz4OMtH5H7I4BPgGkyMkOkaRrHjaKfsrezqq1tBbcAoPgBAAAA4C7Ubfg1ud/e3nP3G+zoaAO9dvdAUUbhTw3PFWG6CPy8gGf1AAAAAPcSNI1gfR+41RnjteCBAAJA8QMAAADAXXvdwke0Gig24FYUPwQPAIofAAAAAAAAAICfGpDHDwAA8BOD7Mg8/j+/P3Yyt7UHE3vNX/D8bx57Ilx8a6uahuKjz+6z+8u7UdKx4/XJ//BeebSFQoimSBojTCvumO3jf6n/PJz1Izbybszq0V5+ZdmVjeefW8SCILyrgZQwABQ/AAAAcE9D95z+MO7xkqhf7zr2mac90Xv10L9fWfPL3qSP3gy8dsI36HQM1tSqlKbpa2nydHddSg6pmfAtc8GzBW1PGAV//77fzTk8P+fAKjsMYWzez1LlknoDwYQLKQAAoPgBAACAOygxS//4zNxji3Izd/gTlr43VL7/RqrfHz/9x0P2XBaBI+ulu175RPfpicJOMtDqwAOPXVzykPqzb8l39n0bmv7a01/tz+snebaRz7yy+zdhNvrcXQH7JU+gvX8vGmJKF7zx9p7trS89d76phbnyMf6pb1bKR/JAGRyxFcc0GWDjCGOKrYRWxtmBofSXgX8mvv3mj2EEotr/ufS5Ky/v3n7yyfc5i/QnTuUpuL6rH/rso42hIgyp6ve8+f67R6q7mfJVr7/68fP+Yoxq+PDFgH9HXJmqUTdFX/L/1sQP+AxlXR7ExF7b/ufZF+eLBq8ce/P3SeUDej1H/tC7Lz8fLtCUnH7z7YT8XgNuE/rWR0/c5zh44S8f/vlUp4pk+z3y3D82N72wpuyR5BfiNClPzv+C+fd/fb6WuPCLF76d+9fdq7t3//Zfu3MHKa7Dijee/dVyaeUHv3ofjxUnp9n98vfPEAm/fOdsgYrjEedLUhCiAADcjUAePwAAwD0B1XzxbHxGW7+WRKSuv7bgwL6CNjN9SVbnnO2Y/cAGBz57JN0GY7Ali1957U/3OxCmtf3++H9Vrf7uiy/WY+f++FFK0Ks5NfFlpzfhX+7e22QsizJocvYWxyWU7y+Kj2n7054E7uIP3o+Vz9t68JMljje+XDA8lsRoz55qIo2ltGUerwhcuYBnMKiTDjau27e7Kve3W7r3bP9DsQZp037z9u+6lu7J2Vt46D7N+797O0ltvBLZrX3u4N9jnYnb8M5AZa3HrguZX576nd3JNw9cUioyDl11fetPyamfJr7E2fN9kRZpLnx8yPDUn9PSPvr6fv2lnG5d+Zm/Z/h/eP7T9JM7fAsKy/iBC12qs8tIfUlFk7WgJKdGZ2jMKbRfGM29+uknP1g/fCzts/NfzK38/ddHO2ijL7PSVDv3/O9bwZX/eD3V7p0/Z6T+79vWjfkqGiIVAIC7EFjjBwAAuBegh7K+++KR7zoNBE7SdTF+uxnO9/2wOmj99fn5VG9fP1dkIxjeqC/4ReDrn5qkPGItfrns5DJjKf73b94025aNU9G/+2eC0MlZpO9sRDim7B2gkQwhQn7/c7EBxu+Fc0LEpT1Kgs/FEcYQ8Jk3Wx/iRKyc3fFeTtPbrpxTGWWRy5ZZoxxEuD+47cl5tgJc+uybi7/eeT7794b9Rzjb4peHOnFwhxWv3H/w8cQa/ZJArnvAMlfsti5ITJ/NW935GIbCV2yw/ktKFe/t37/slpn/w1etZSlVfdxwEjE9Q+wLPvrkfxrCIqMe/E2IDbPXc7bqm9/+mlwdHbj5fzd6cpEoivXrnPZqTYPH4yuHTpRVN3HzOEF/kHWdzWSu/muA6acMj7gHAg+eu6oPQLjH4gh/PjIUF2SKF3wSKTb6J+DhuPn/roRQBQAAFD8AAABwS2Ci9R//X8mmr9c8cKRMz5r1yl+O/DpYLpp8ByJhI7UZyKs3yncbDDED3805/A6FdMkfzftYN7z4TMhcHNgm8Y5pa5Lf+NWpnD62s4+tgkRzRtamMbGTfFjcEwSBzWy5WrggIur5U+c6lrFOVM/b9OvhO31xRzcHnmnlHuf5ODv2XWlXd7V2tJx49OmjIxMIGknX6obrxRnE7XoIH7n3AMMJnCYNzf965O/nZq3eERO01aHn4glTk/yf/v2pZeUpyQWn/+c3fw9/6div5v010asoIy817cSTfzv57P63NsUEDH5yOZlizv1tiCJhz8WzrIGIDZ6Eyc5rjsZwRJnmUBhfwDZupPHxdwNgTBYbfjgHAOCuBE5OAAAA94bkZ7KV5z5Lqvdc/esd9hX7jqUpWUyzR47g7nOXuJX+e28bOazvuWKhlRW7Mae0hxrTq8TwaV9f/OdnErkv//Vyzicnv394ybUH8YzJ5lvBKmxlWG3i4YvH8nzXLpcMV0O1NfcMW4LI1s52kciKLZBYez6/75OM9M8y0j89vfcX7z3hx7wj7tFXHj7YoEb0YN65o53+C12bc2vdHnll1ZoYZ31VY5+BpKi2bx5564MWj3U7t/2/XQFDxY1dyV8u2ZUtjlny/K93brFvLG6imAFz5tac/LbLM8xZPj+489v/aw1b6M4k7BdE6BPjy/tppK1LPljktShkfLGM4REcMZC+J2eIRrqag8mZWghUAADuRmCNHwAA4F7R/GyPyKW//9XOF/xrhH8ocWZb2ofptet3i+Offuc5wSu/3Ognx7szdn/x1kEl1/n63Wi1QsuSutjYiImGY+dO1evW6aeuV6vT0tN4ZxEmWbLC/a0/fIuFPvGx/cjeZO3ef3/35G8fc2r/v3fPDsW9Mk8QqIjtfPuDnPs/jnXtz3pz2z8ZH30X6Ym0bbX5nYLgYDvuLTuH6era8f2muLYBwun+Pz+/yIbJezjp7bW/+MreNnhxQHDxwb+m/u3lJ0Je/O0r0RSTLfZ45g+LXHw6njjy8bZFJ5gslsPSne+FMxDhuzBQk8D082MwyXBXxRE8JtT0CKKQF3Zteefr9YsUFNtu+W+e2yTDx3N3OP4v/3XBm++8GWPguSwMjXUegjgFAAAUPwAAAHCrENaxbzwXw2SziTmv/DmQ4Fj8kZZwWPPCsa8O/OmTD5e81aq2cYlYu/mLhIW7P8aue3omK/j5t70ef/ghT540YPV9D63K+scL/37ggr+F4ly9Zzd9EbtVnP7Dfc43+VUYc1w+3/cXxbz7ImSjezJCVzqffXjH242UfPHGb/4YaYUYa/70du0vP1/h+b6C4xD77OsfLDDaRbXvf2/J3vlXMh/xv+XcHsw69ldv/IM3viH8pd+cf2nsP8/tGP5n+76k7ROOcX3ow789dF0p3NUff7965OOa10vXjJUt9nnio788MWG/gFf/tm/sS6t5m746swnCEwCAuxlMrYbfIAEAmBbG04VWq5fJrMEVdzm0QadS6w0kRWMEg8XicZBWjTg8hl4xpGcL+cNpNJROo1AbaIQRLBaD0mpIllBEaAe0hJA3nIxOqoyfRTw2bTxISxJsoWDyzbu0Tt2vZUiE47lFdM+ZjYGnl2W/97yLcV/9yce3/HPe54e28w0UwpksPo9FmDLfKa1Ko9EbbcOYHA6Pbdpm3DSgZYhFrBvPKZJT8qMiZ+MmMOOf1tbu0S/0Jb9Zkjj39BvreXddXzg62kBA3kVDgza9bsIISVKXMosWLwoBnwA/E2CNHwAA4KcGxmDxhdet6XOHpTBLML4VZ3FE47swOcP/8MTXJDMx+hljCsSWM+0xFtdqQiWkXlX979PZs6M/kI/rdgxn8UWC6xKCMJzN503KSMLZPCv2bTSY6fXynic4XOh5AAAAUPwAAADAfwpDxttPbz3psOuT5W6jgp8I2vn8q3Y87M7XZbqrgKavWz53dIQuAKYZPIii4LUJACh+AAAAAJj51STqf74ofQfnCLhjEh+XRy12wO74VWZE7pv+xjBwOzDtuKGH/xrO6hn7LwCA4gcAAACAGV1OuHzJ9Xk1GMG483qfpimKxk3vE6YoCiQ/MOP4GYYCxQ+A4gcAAACAuxGpVNzR2Sezl5rEvglY6QdmKvfRsNzHurp7jOEEPgFA8QMAAADA3YWbqyw3r8L4wd7Oaji3BxtJywaAaYt+0x+j3K+paQ0L9QWHAKD4AQAAAODuQijkGVVafUN7bW0reAO4ZaRSsTGQjOEErgBA8QMAAADA3Sj6Zwd6gB8AAABmBA4uAAAAAAAAAABQ/AAAAAAAAAAAgOIHAAAAAAAAAAAUPwAAAAAAAAAAoPgBAAAAAAAAAADFDwAAAAAAAAAAKH4AAAAAAAAAAMUPAAAAAAAAAMBPEOKdd34DXgAAYDoYDCRJUgIBF1wB/PiQ9VkffnzuXMrVlJT8iylXU1OvpqQWXB6y8R/I+LJQMM9bOKMVLENvY0pi6vGErPMpJfmVPWqeVG7DJsa+pfuKv3kv4UyHJGyWFXPKMuiB4uykDrGXPWvo8unPzWyg1R2Xjp2PP3E5Nae2SSt0dRWxsTvulWs2WCz7xt/e2brudHd3lOz7JilTZRfizv9vrE3SPRkn/69CEuY5sXZt/t74LHaAv3TGFlGd5cez1C4eYkvhRDWeOXSkxyVYzsL+2z4ct5NsS/goYzDQy5F1Y5/cDfyokXnvAu/cBQAAAO4BCLeIV9+JMH5QF5z7R5HLiw/7CoYv9oOXi2Ysv/oqD+zO1QbNf+AZuS1H311XeeF04gHl6m1hInxE8JfV9zjYierratTugVPPcHV9XU2Unp5iTlGXlJKDQh55xctK03jq36knrTduDeJOS5HQFIlwYupdjTViZjZgN7TwjiihO1vajV0wWFff4x37fKwdccOeJEmcIP4TBmCiwIgNpAi/ri6m15I4uZCw2BE3aY+mv6EVkXfKO9Oq91Z8eEM7zX3yX5X50x4FwOgpFNb4AQCYJrDGD9wVcdhRm9Upnh9kM7L4qG2tzu/BDQWZBxNzM8sVEk+jiMeQvr/wTNKB49nJOfWduNTdiTdhfUtXcTqpxCl253JnCYcgGCyhjYOfgzIjsUkU6mbLMCml3HNlvIWLvXquVnF8ZtkzMER3pZ34vtYm1J2HDa90flcjDSKL9lxo6mltbcFlXnjL1Uk2sAbyL9ZbL44OluI4RyxR1V7qks73Gf8RgFZ3ZBw5F59YUNCs685PKxf6+4paj//zSh+//dS+MnqWh6gp7+APKYkXCjLzWxRiRw8b5tDlM9/kKdqSkw5fKLxcoRB7yq2ac74ftcFhlnzydMJQPfYtxm47kVIv9/MQGs1XZH93OIfrzcw8fLJWmX8y+VRqWXkn4ehhKzS2fWq/jZdmrMuRrklJ2X8kMymrpkElcHUTc8brtuAr42dNY+GhfRdPXii4XN7PcZY78PEb1EU25O0509DT0VpP2s52xmon16UvOnA4W02UHLtQJvAPsB1zqr43N+H8/uM5yRllJW24g5etiEC0qiPj6IVDiXlZxR0qscxNyqSHmi8eOn/41NXcyt7emquZSucgWduh93KpcA+TNCYbD7+fS85zYxckxzdI53qySsbr8sKzTxXwA/wlHQkfZzXqa4/vy0zNqmrCbH2d+QStqkpK2nskJ7OkV9VWfKZFOuyBYY8oao/vL2zs7qzq5vj6WaPOysT4pOPnCq6U9xMODo5CfLCmrI7jNUfO7C9M/upwm3WAs5Sla83J2H8o42xqeVU/W+5hzcfJkoOHUjtVWYcunk0vKe5gu/pI+bihLTfthwOXzqWWFLUgB287EXHrPrzOTh9Ww+U2Hasr+XDa2ZTKRszWx5mnyB/xCV9r3pvXmF4vIPMt6s6s4xcOnbycnt/Sz7Vzs+cQZMNBs37h5M1sFADXgDx+AAAA4N5mqKIZxax57Rcbl0uaknN7KaPaSbpwUe2z7aXtr+0IoDIvXqgzjO9NdlXWsf2D7FkTSmA5ewXw2qtaKONnqqe+TOUS7GHlFyBuLGlST1Epwyv8gfnWtvNit0ZY4eY24JKoHWvi5CO/GajbWtUS6cScH331+dRiScSzrz2wxbe/tH5sUZVsuVIjXf/c8nmCnqwztYIlG9785fZdK4QVyeUd1LCYLm4Wrb3/l29uWmHVlJzXi19vw5QWRrr7ehhqqwcok6prruiR+bsxTb9ClA4Gbt/y5svLgjUFh1I6DTf024T2SgbzUo9UilY8te31pyNldWmHcwapG/cQ1ZOZWMGNXf/GWw9u9Rq4kN6su2FdhGvo/VFSqzmLdsTYDlmsi9aU5vX5b71/c8D4+rWqNDepz/WhV3f86tWVQcqr6ZV6hNRFCReLxfOeem3bU0t45Sdya3RDuUdTq2zmP/2LLY/FcOor+qmbhpelupChubjL6/E3Hn7tYU9FWmGFFimKLiU0yTY9v/W5tdKmkq6Jy+SYwGPtOk+xfM6OjV4isu3CgXxV0NKXXt+yfa4hY//lGt1oNcqa7B9S6JitEd58pC7P3J/LWPjYg2++FOfXd/lges9wq1VlZeTiZ7e/9dJil7a8rAaK7q88k6Kf+9iDb/1idZiuMLlYTd+GD6+zEzNlBZW2O97/wrZXHnZXphVWam/Qm2hmvaA336ItS0y6wgh69NXtL2x27jmblNo6Vc/MbBQAoPgBAACAnwhMT//5jkyM4Lk4i/RaHU11FpczQ2I8bZgYU+oZPZtRW9U7rsBIjVLHEQmuXwrEeSKBXqE0ik66u7RB5+/lzMAkfu52TXWVyluyAeEcPoeFI0rVdfnYmfMKnyWhwvEq9a2FFYKwSAc+QUiDZs0Sj32D8f3Cve3YGMKtFzy6brUvFzNo1QaEafUjcovpYayFhWFcFxeJXqOjp32td/R2UNS0DNJIWd3Y5eLqzjZVZhUcHGLLJNjWcxd5YWW1zYYb+m0cbW15tzxijrsAJ/iy6EhZV0WL4iamYDhm6G/v6VHjDovXvr7RlUXdbl12QYF+VoyJvcjxX7hrW6A9k9Jq9BRGabUGWtNaUm89f4GjgMAEniHrV7mLB5tL2mULFjkJCULoGRzhPq2UIPO6EC6ZHeEmxhHTzt6JY9Dq1ZVFnfLwACcOzpb5zfeeMqGcbG2sJjwXhlixcYbN7OBgbnP58DxT11q4/2CVeGFUsEm16uuKW2zCQ3xEBM6WzotyUde09JlajTuFBrrzMYxj52ZParTGKMMwUtXROqCkReEPP/RwqMUV7hn48PqokQRFuIpxjGMvc2Drtfqpe3OGvSBRm23RtZfVCufGuBrN4Tj4L/DXV1VOORm71VHwcwfy+AEAAIB7G66AO3Ixw0bEC6lWKAYq4o8Wj2kZvt8EVUBw+EzNkJJGExQ4otQKFYPPYyCqr6S0p7f/7Hv5pq06Nc2sUgfP4Uysjp6ODcN29JXlHjldhwXMfeRRT7sJsojWqJUUT8gbOYBrnH70jEoprlg4alBfWc7pnLYhnCe1QgZkM7KVLeAyJ9cyvQmJs7NrX0Wt0pOo6HUOdGIPlyESj2ZjYGKhSNOq0t/QbxOsV2pYItGoUmSKBVy1WkUjkcV7h0e1o3XkhrnqC5d3f6Ag7J3Dl8yPdrqtukzr0SLe5ArVnZmJeSWdJEci4amGj1apVEy+iD3qW7m/nGrLVfGEY/fPssTi6dwsa6kujCPkj34yJY/TxohiCQUj8wdCIJxS8dMqtVogG82Fx/kSoa5TZVS2VHtlX2iAVWluZVdQkB2mG1LoW9JPfZYzWgxXLDYMt5ovGM2fGgkATOSzZo3yXNrZfx6lrT19YleE+Erw2/LhdW3kCvnYeBvHZwJmvek2YaYxjV6ge4smb1FWqCieeHRI4iIxV92vmUrK3/IoAMUPAAAAAPcyky78OJvLk0ZtXxUxvHau7e/pJyTja7mErZeb5mJh10KZ3bUHp+hba0oVjrFynOqoK9P573gjws10AD2Qc+rzkiblHG/Tf0YFCK1WaWnGzWxA9FBJ2ncXqaitG+c6TJaVGJvNQWqFGiHBiFi8pm0wbFjFUN2lJ9N0YTs3h1oR9EDJt98N3a6LWA7eTpmlZXWozdZ/vdEeU4LP0ICSQjzCdOeCYojN5hI39NsE63kcXfOgUYKa2mUYUqk5dpPWlif7itIokCz2Ie+VBlVrQXb8sQL5LufbrMtM7Rkqk9KrbZc8vdWei1E1J+IvGbdxOBxdu0Jv7HST8KzNbcId2GxV14AeyU1yUz84qKPtrrOZ1mnV5GSpOQ1lyeKydZ1Kcjh1glQqtLRkilDlcTgKxRCFTDletGpQweRxjZ9wh+iFqyO07K/OXyjy2hrM5HIZbmFrts5mDSv2wdYhli2Oui1MiFR6+9lbnp5Lq/rKk5KPXZC+stmNdes+RNNquHlvvhjhhs+kF1wnbyG8ODxcNaCgkcQ0fxoa1LB5xlmT/sb9AswIyOoBAAAAfloQdn6eiivJdb16mhxqOrs3KbfnOnHmuzhEXJQcn97UqTCQenVHed6++BpJbIgvh24vbdB6OMvHEpuFXs7SprqKIcRiM4ZaOwdIRA7UZ5cMjeUb0KRhitQDuj8vo8tj5YIQO4IkSQNJkRN3ZMn83PpzszpUNNlXUlo6YCZljIcQbCGXQJS6IbeuXU9RU6qdqW247luWu7d1Y+rVJgdXr9F77+newsKCHgOl689PrdZ6ujqybuy3a6VxPHylzdmFDSqaUndeymyV+jhN/L3Egq+orrQ95y/WaWgGVyJiETiGEzeta4Sb1HW9bTSLzzWqWl13TX6thiQpjOvoJ+/OuWT0M62qLzqT3qW3dfKRtGSktSkpWllXkFU7kknE5DD6m1p0NNK1ZpfXG25hzsnz9JU0Xi5v19G6zsrL1ToL+5AGo+gmjP431KQVDBjb3VtccFUl93MyKTEmk8AYdtGxTm0pV+u0THc/+5bMq9VDJG0YLDhxJqFUZbnNPeUHv88qHaQILl/MI3Acuz0fjtt5I8x7c6a9IJ68Rce393MfzE1rGiBpbUd5ehnh7WOFz6BfRuOc1ilamweUMDWwBKzxAwAAAD8xmN7L4/pPZ37/YaaOIfSIXHyf23XLx4TU78HHOGlJV/deSlJQbIm9Q/Ca+yK8hTjVVVKudV9mf+3SiFvJfayullSoQwKDw8ou/ev9PAMtDPCyGS4OE9jbkMfOf89dvt78Keu63tauoYp/78kdk4SSiNUvrrAfs4M7e/XC7mNpn75HW/v7+sq68etLwO384vwuJn56gOCL3MM8Azl5CefddlhbUJpjNqzYEWV+2+J13/I9nW0T25l+8rGHbeFG8Vt76PCFAVrkEbhlmSnV54Z+m1BaRMxGxaXEL/YpEMdx9oLN88UTqsZE5r5iyBetbD564vDftIglls1bN9fZ2OAb9tG10qzCzOvSW+x0nwUhxUcTP7zCFsncQkMcktIycr2Xha6PGUy49Pnf1bTANmzdAi8W131z1NCJ9E//pmXaewf68FtMAWEfvkh66MjBv+lJlou7m0h3C5JfOm/hqv60H/5ZzJB5B3kLK5nX6StcYiPrz959kP34/d5Lt8w5nXj2w3N6plQeuSXci42axnbj+YYuzDlxPsf/iQXRmwczT3+9/zDJtPGZszHaGrf0zEzcMXDl7NTTX+49iRhCR691a1xYt+XDCXZuFEytHM17c8a9QE/awuSg1XH9iVnffJBGcqz8lsYtMk2Eptkv45H5kHNV/PeDsb9YGsSG06CZm9RqLXgBAIDpYDxdaLV6mcwaXAH8TKEMWopgM24/fVhTnXq133vuXAcG2V/+w7etQU/Fzeb9Z22nNbUHPqn2fmZ5qEnLUdUnDmTLNzwUwsHudl/9B7uz8czhZOtVO+aNpKvTBh2JsRi39Hx/uq8k9wrlEzdbRBh6U7+7MLB401oPAkbMHYnc2+gXYMJMDVwAAAAAANMCZ7DvTDIsx8ldkJ94IkdHU4TQf3X0rNuS+/RARUF6tWpSLgPu4LsiVDqikyhK31tY1SRzWy2453z1HwWbkKuOMVi3LIowsauMOJH8RbqBopl2wTFrQO7fuT66jX4BJvgR1vgBAJgmsMYPAPcmVMPZI/FV4qgNi6KcRvKHaEVrUw/PyVXysxammgEFEgk48MgX4GcATJsAAAAA4KcN7rp88+vLJ27BBI4ugp+9Xzhi8AHwszkLgAsAAAAAAAAAABQ/AAAAAAAAAAD3JMQ77/wGvAAAwHQwGEiSpAQCLrgC+O9AKatT0w+dyDp/sSAzv6kLSVzkfKbFPcmW4x9mKYM8HVjTKZceKM5O6hB72bN6M07+X4UkzJM/0/UwWtF2JbefJxdzp5cUTnWWH89Su3iImWRbwkcZg4Fejqzp16bN3xufxQ7wl+IzrKvx8Ps52hBPGfNH7bbGM4eO9bkGOZm/4JbqLCmq0lvZi4ibuo1syvn0UK/nHDtdzqmvSkRzvdgl+/enMwMCbG5l7ZJWVvz7s0rhPDmVeYs9brQ9/VA18pOJ7/BtANeikf3j319g6G1MSUw9npB1PqUkv7JHzZPKbdi3eauH0dV73sslQ70ciJbj7x/84fzV1NSrKWlFl0u71EJbVxuzG7xpTUN25pEjGYnnr2YXNHWQQme5kPVj+MKS543D8x8H950btjm1MKuguZuwdnPkzTwnnu6xcG65wdC4xWFyAyCPHwAAALgnoPuupB6usN6w4wFvCaHtqjsTn3SCt37LbO7tiwFdX1cTpadNz5KP2ECKJkoQ2vx1uhaNG2q9nKmxDne2mp4+ojX9Da2WHrE+DaVJkkyvJXFy4XSV2HhdhN3CLQLOzR5VPs0m3wnIjuKCfDePYKebT3dwO78NqwgRhpTTchFOTMs95j0+7WNpdXtdr/V/4GVPY9H4H+8FmqRoAr/Wdqqv8sDuXG3Q/Aeekdty9N11lRdOJx5Qrt4WJprxBHgq43HrmGfWx9pjlE7VXn71+LFzhgfXrnCdOAE1tKScPVBuvXTT+ofsWbruxotHkg8x7tsRfhMbzGu8BQda9jwuinpi0zInDNGG/tq8A/GpGU4blzhgFn04k0ib9iAh9dMfJqD4AQAAgHsdqrOlR+A930tiesY7x9Z98eLuiwoVjbiYvr/w3KWUsl4VIfKOilodbsOZcBFvzclKzGru1jLtA0LWrPCyZSBa1ZFxMutyvRKJ7ILiohZiRfHZvb3o4g/s2OV09lHFvOeWScsPHi6zcRvMregkCYlX2Ob1PrYE0nWUJxwvqBlkyAKdmeWKwF1xgWNaBRMLrayYYhyRfbVnjucWt2loJl8+N3LjIgce2XDw/Wq/V5aYdiYbD39Q7f2EW83xmoEh4vsjjIfX8o1N6y2+9HVOfZeG7bIgZnOULZtSVadeOpffMYh48qC5a2Kdxbi+6MDROo/ZhstXqUXrvQuTakO3rLet3PddQcfwS3X1KjV77uoXV9ipqvOOn61sGiQJvjRoWcxSeceJ8bo4GQfL3J5bNodtXj5ZYqnJlvpBWZV86VxBl4ohdA0Nvy/anmfBWkT2N144cbmwTc91cPVk0fTwI77IgcakhNyiFiUtcghfGb3AjSWxFksk43M2XUXKPzOkj+8MtCabjn5woSNi/VMLrei6S/88zd6yhj52jr11Z+DUanyiix6433vILCp0LdmZJzOb+3Gh+yxrrSmxmR4qHelxq9KbHEv2FF9OSK7r0LJsvGatXunQeDSnWqNp+lcWY2eEz4gSo7rOfZ6Ob9xgkoO0Ivu7hJaIzZu89WbOUefuOd4a9cBaD3z455qjzREjn4cFb3XOWDTGbQ1n15o5dqwXbr2u+7j5X54nIp3akutkD+4MkY2WqatMzuudFfv0Utlwa1gOfiFbuLovD+ZVzIphnjuYyXAjK6radAwb76A1q/0djPNGs3HH6sj/6pQuQNh8qVqNcaVha2LjPDiWlT+L5xgUsb7n2HfZjTGuntd+OKYVtcmXiQVPRIdYm4KCLfNcubxnT0H74DyRhJ5W0Eq7LdiAzew8ELc1wsqCNMcYEg8ff2l5U6eeQkUTfBjEKr+ScLGuTYVJ3PxWrA5yYzQe+qhQtnNNtNTYCnX+3sNFvhvu041Emh2yMDRoZX1hwtnyhj6S5+SzdG2onxjrzz59YNBzVk9RvjhizcgwIQeLzqRfLO1VI66T8dyy2JE/kxMo5PEDAAAA9wS4vYvt4OW0Y2nVtZ1qvVFjB4RvCJcatWVD0oWLap9tL21/bUcAlXnxQp3h2jHq8sz9uYyFjz345ktxfn2XD6b3UEhdlHCxWDzvqde2PbWEV34it8E1/IH51rbzYq+7zNOqsjJy8bPb33ppsUtbXlYDhcju1MPFePR9r76yKlzfVKm4bnUX48qjl7hbY2RtanaDY8yLb+14/cnZRG5+0YCFRWBM4LF2nadYPmfHRi8RZlrpLm13vP+Fba887K5MK6zU0v15qUcqRSue2vb605GyurTDOYMmVU9rSvP6/LfevzlgVPTiVv7bX9762qtbX3ksRC6wmxdiQ1DdWWdqBUs2vPnL7btWCCuSyzt519c13LYpyjdrsqW11J6clOONduue2/bKjgDscnpGK2WhNFqRdzy9ThbxzC8e2BGBaqqU9PAa8qX4zA7PmF2vb3syjlt0OLNEhcvmzJ/vPK7hmc6ODj0dLVpE9XS1U8RAc7cG0b3N3ZiLg+10BMu4i5B5VOjqcg9lGsIe2vKLZxY4tze2kDM4lmy9euC8YtaD97/+UlzAUH5iHjb3/nAvjnzFk2Ny39QfUh8PQ231AGVSrs0VPTJ/N4ZlV99gIdbrWjRKBm9w7O3VRbZUlHLmPjUu942buirr2P5B9hOXkVnOXgG89qoWYzGGutLBwO1b3nx5WbCm4FBKp2GKcUc11zS6LHntrYeeisJzU2sHb/QbCG7nLee1dXVOsFLf1NJs7eJrNb7IzvIMf3yTjwSbQdCa23Dr54Hr3TbUUF3ew5VKGRN9aNdVFJ/Y675h4+uvrlnMq4k/WatgO/i5DVXVmF6RQatbK9psA315Y4PPwtCgByqPHG6yXbH+F29sWuvYfuJYed/wgOkpqFbPX/XsKien4WGiLrt8ulO+9eWH33gmhHM1N69rZj8wgeIHAAAA7gkwSVjckxu8eF3VZ76P/+t7R/YkljepaUR1FpczQ2I8bZgYU+oZPZtRW9U7puX0dcUtNuEhPiICZ0vnRbmoa1r61K0l9dbzFzgKCEzgGbJ+lbvE8nUTdwoNdOdjGMfOzZ7UaGmypaYU94z0FzAInneEl2zS9RPjubgIcYS7Ld/wWKw9FxnUGgrD9FrddC7FkqAIVzGOcexlDmy9Vq+tLe+WR8xxF+AEXxYdKeuqaBmZX9gFBfpZmb3GluzLOnaViloYaUcg3HrBo+tW+3Ixg1ZtQJixLAv1TVX+5CZbktSKqrIB98hZco5pwXPpxhAvnsa8tKH+hqIO2YIYJyFBiLznRLiZND3VXV+qdl04T8rBCbF3UJh1W1UzybS1d+RNnDjJ3G16GtpIdUsPPtvHsbOzzaBtaVbKPWynmZMw6iILUdFdX9zAnBMSYsck2NbzFnqa599PfWxPa1mDISAoxJaJM63CVsVEyC2+TBh39HZQ1LQYJaayurHLxdWdPWVXToMbH3tbdWEsp3nhtryJMUxqlDqOSHB9s3CeSKBXKI1SHrMKDjY23+i6uYu8sLLaZsMU447vGhEqYSJc7GIv0etu/MonjMvm6LQaesKsS6GheFwedntBO9mG2zkPGAN3MPOb797947fvvvv9R4darBYvipHjE3xI91Q2Kn1mRzixCQbfZ6G/bX1Dg47l4WvfVdWiNNnd2OLo7jP2GFh6wMLQUFTVtbnNXuDKIXCOa7S/c3tzvXp4b7nvAnfTPQMjwwTDcVo10NqhNAg87n9l7ULbmWUtQVYPAAAAcK/AtPGZtcJnllGeKNqbcs5l7T1K7LqfUCgGKuKPFo9d/vh+Y5duWjek0Lekn/osZ/Q7rlisV6pUTL6IPao45P5y435dltQIf+zVTCNvZaWNB/IlI4oIF/AElq+2mK6jMvF8VYuaIbLh6ynkMK25DFfIH63KlEFMa5Qalkg0qimZYgFXrR5+oS4mEJlrIUNLWloON3Tn3JEUYaqvLOd0TtsQzpNaIQOysaTapyx/UpMtHjuo4ohFxOgczNVDQvc3m5WmVNEanlA8mvLEtrIy3ZhIK1RDisbjX7aNLenzXWkKoeuTdDCBmyuzuKmvZWBI5hsqac1o6uwa7JS6OzPRwLRcOeoiUm0WFaS6Ty92EeCjkyyhGO+f9rGUclArkI0qZKbUKUCKLN6EwXR2du2rqFV6EhW9zoFObFo1havHHTplU6boprEfam6rLkzAF0yashIcPlMzpKSRcELfU2qFisE3aU5MJB695RQTC0WaVpVebXHcYTzutVi+ORqtlsWe8AY0jM1jY2qN0ezxjfq+imKFdaBw+kE72YbbOg+Y8vgjdw7n8U+cBYz7kFartHwxf3RI8PliXKvU0BxPF6ezjXVqd2Zll2NAJB+hkbk/rdaYDQ1aMaTW1eT867O80dLF1pjBdDcBV8SbeIsDxy98U8+VlEOHT2p5LkFzVi7xtJ3JLfig+AEAAIB7Aarr3Gep9PqNy00LbIRA5rZocWfxkZ5e5MzlSaO2r4oYXrPV9vf0ExICtQ9ffplcLsMtbM3W2awRsdo6xLLlNXF07Qr9sNSkVbW5TYS/D286WpLDZqvURkVkFBOUUq20KNWojrQTVazlq1/05RFUz4UvM8bVFj2iPbRq0lKez0Q5YZQ9HF3zoPGabxLKhiGVmmM3kupuLsQ19bnHCsXLH/ceWbGmuktPpunCdm4OtSLogZJvvxuy1JIpy5+GF1h8jrZbOaLU6d6KkmaRi3lpPD7iqjoG9EhuUlQGxZCetjPqFw7Pymfj02EOJp1EDnb0k1bmggWzc7NXX6quVAvlcRIrR216QZNSKIs2KqaB6Rk40hCcbRYVIkUKc7BfQSFrfHj6Yd6DNzhWl8VSDWloZJroGTpqs3utI30sVc9y8HbKLC2rQ222/utZGEbexNW0VqWeqiU366bbqQvD8Ek9Tth6uWkuFnYtlNld6xV9a02pwjHWOOLK6KEBY6/zTL0+qBhis7kE28K4U7XOZNmZ7qxqUTrMnpivxXJ2dDxZU9E3K9J6tCRdQ8nJFGJj0JzpB+3kzXf0PDAxXIZ9iHF5bGW/kkSmXCCj/B8iWVw2hrHlfrLcyuomotkmcKVxTkJfm42YDw0ul8XzD396jZNJlFOarjatQIRpzca7TqGThCx4YiGu6W1JO5JyqsBhx1ze9B0OWT0AAADAvQBu7eeDFV64Wt2npxBtUHTnZ9WTrk72TDs/T8WV5LpePU0ONZ3dm5Tbc+0YpruffUvm1eohkjYMFpw4k1CqwriOfvLunEsdKppW1RedSe/SDcsA0nDj/GpEOLl6qWuyKlUkpa7NqW63nOVOGkiCJ2ARiOyvqqjoNf7XZAaH0d/UoqORrjW7vP7aXQakwWB5hZfj4Sttzi5sUNGUuvNSZqvUx0lo6cJOq5rOJjQ5r47wv/bqWJI0EGwhl0CUuiG3rl1PUbR5XdMt35LKEXn78Kozy9p1NDlYn3ymspMSmJcmEjv5Slsz0tqUFK2sL8iqNXkBt3P2pmpS8nu1Rs835u/fW9RmaZmc4eTg2FFVTEoduYSDi7S9oMbg4mA106euEOZRgct95ar8qwXdBlo/cDW9upeawbEOvnKqpLCw1xhIA1eTLlf046PdbZgs+d29rRtTrzY5uHpxp3I1g83StzX16xGtrC292kZZCiNqGt10R+oaL813cYi4KDk+valTYSD16o7yvH3xNZLYEF/Tzbd0b2FhQY+B0vXnp1ZrPV0dWTcYd9MQ+wZNR0n28ctU8HwX3nXx5bk4VJd2ICO/RamjjO2oOX2unh/i40LcRtDe0fOA+ZCQejvzKoty2vQ0papOK+twdXUzqXmOl6+kPjmv0cHNizuxgeZDAxN5uYiqCjObtBTSt2cnf5/UZimljlaUZOw+XtmtxzhCgYCF4TOU8LDGDwAAANwTEM5xy9ak5Fz4dv9+JYlzhE5+wQ8udTaqEe/lcf2nM7//MFPHEHpELr7PjRjLuMCEQdGbBzNPf73/MMm08ZmzMdoax1DI+pjBhEuf/11NC2zD1i3wYmIaexvy2Pnvucvvu4GGYDkt3ex74sTx90/xPMNdXFhKpvkVl5BFxtkcij/4IZNn6+MX4tecllDo/3hg+CLpoSMH/6YnWS7ubiLTz/u4xEbWn737IPvxjQJzDWEVFrNRcSnxi30KxHGcvWDzfDGO9OYWqSvKCvvUnJPHakYqd5v35Dq/OL+LiZ8eIPgi9zDPQE5ewnn3XZHX6uJOXf40nxSK2UXFrlJlxH9cqMH57pELFzjhHAez0jA0f1P00IlLn/1NTdj5RM21qRxW0ou3hJ09mfRRkg4X2oWtj/a3+G4Ptr27HVUnsrXBjbMsO2tDh627aVV+hkKMaR4VbBS+JeLSyT37zxi4ngsC/HsU0z+WgUK3xOQk7DlwVkdIfULXzhPhOCmXdZ3+IoP1bLTfhNtd+Z7OtontTD85d0pXI+/o4MKjpz/IoUi+s7/LpB86MMFoNK7YEWHh2Incdl3XB6/U78HHOGlJV/deSlJQbIm9Q/Ca+yK8hbjJ97iTj6T20OELA7TII3DLMie2xXHXcbNuofrSvvouA0M0jXGljnPWLYt1nWQS02XJqm2iy2cPHjk5RBJ8K8/QxdsWSgmEbidoZ3geWLEjymr6chqXBT2wUptw6FCGBhO5+N2/1lM4Uqm3i/WZPMES+XVhjonNhwZuM2vzfdqTJ45kKmmezHPVWl8JhvrNTwuh4ZGNGd9+kEcx2LZ+EWuCeTOaCGNqtRYuIwAATAfj6UKr1ctk1uAK4OeIviPrXKcsbrYbh1aWpX6dY7vjkYCZrD3TBh2JsRgEePInDa2pPfBJtfczy0MFN1O/Bj1JMJnY3V8XVX3iQLZ8w0MhHAw6+J4F1vgBAAAAYBowpe6yysTdR9QUhQkc49b6zjDVBGOw7qlrLtmde7ZychoIxvNZEOwjAuE3hTSm9L2FVU0yt9WCm++MM5j4PVIXAIofAAAAAH4uV0z70IU7Q382zSVswlbZQK/PSIQ3nT8eXyWO2uAh/EnVhcnCohbwmDDPA8UPAAAAAADwMwd3Xb759eU/vbowgaOLALr3Xo9OcAEAAAAAAAAAgOIHAAAAAAAAAAAUPwAAAAAAAAAAdxnEO+/8BrwAAMB0MBhIkqQEAi64AvhvQDWfO/xNtXSel2Dmi1Xa/L3xWewAf+mNDyVL4r//9FB+aurVlNSCjMs1tQMcubsV784sjtEDxdlJHWIve/aduANSX7R/fzozIMCq+fD7OdoQT9mEx5obKlL+fpGeP8viM8V1VRcv1fJcnAQ//fswqc7y41lqFw8x815twY16eaSJjWcOHelxCZazzLuTVrRdye3nycVcWlmdmn7oRNb5iwWZ+U1dSOIi5zNvx68lRVV6K3sRAffy3kPAnbsAAADATx6m15I4uXD8Ufg0QlOIFdx52abHI4UYorU99af3pR+3st0ZIbwjykbX19VE6aeu+pYg7BZuEXDY0z+AHGxt73S/w1ZYromkCOLHTiWY2DBa09/QOt23NN0wKv7bzLiXh5sz1Ho5U2MdLke5qYcrrDfseMBbQmi76s7EJ53grd8ym3urjSU7igvy3TyCnVhwZgHFDwAAAAA/BtqOyjOJBRVdepbUOWr1/LkOLIxWVSWlnb7aQ4qcghyGKvmRT8cKay8m1YZu2ejZmfBJMScUFWV06AiuS3TM5kjbKWQLxpa6hnhf+aGjn0ICVXXe8bOVTYMkwZcGLYtZ5sfHLdQixfX9hecupZT1qgiRd1TU6nAbzlhxhuqc+OzeXnTxB3bc1nB2beqlc/kdg4gnD5q7JtZ5/GWq2oZDHxXKdq6Jlhr1mDp/7+Ei3407gjR5iRmpFf0axLTyCFq7LmBca5HdGQfL3J5bNofRf/VMRkp5PymwC3Il6ZEv+2rPHM8tbtPQTL58buTGRfa9qUkpjUp9zynehlWxDoNTWUv3FX/z7UDMC9FeDESraw98anrNUwjRmZWYlV07aOBKAxZFLZstZpINB9+v9ntlSSDTWFnj4Q+qfV6OleedPjDoOaunKF8c9dwqB+Ka/jT3IaWsSr50rqBLxRC6hobfF23Ps7BFVT3ZV+rcPcdbox5Y64EP/3pztDnigbWuHZN6dtPsoVPHawaGiO+PMB7e4HXtFQK02rwVbRaiwtwSpGvNMR7a3K1l2geErFnhZXtNQ1Fd5z5PxzduWOJgnCoqsr9LaInYvMlbPy3LPcYnRbSqI+Nk1uV6JRLZBcVFxXozJ/cye5JVtuM9Vpj8fQZ71SNR3vyxCBYLrayYYpzqbOkReM/3kjCMPuDYui9e3H1RoaIRl5ocHjJl2olve+a8tMHFGF9kc86nh6l1z0fIFY1JCblFLUpa5BC+MnqBG0tiLZZIuLDAf28BefwAAADAPYuh7cKBfFXQ0pde37J9riFj/+UaHVIUXUpokm16futza6VNJV2Tl3gNzcVdXo+/8fBrD3sq0gorpnzvPK3vbyqoUVvZiDCqO+tMrWDJhjd/uX3XCmFFcnkHZbEWsiHpwkW1z7aXtr+2I4DKvHihzjC+wOYV/sB8a9t5sVsjJIN5qUcqRSue2vb605GyurTDOYPj77liO/i5DVXVGAWZUZu2VrTZBvry1KW5SX2uD72641evrgxSXk2v1JtZS7VfSjnXI9/8/LYXt3gMVLYN70HWpmY3OMa8+NaO15+cTeTmFw1g8pi4RS78wHWrYl3oG1iLSZy8+G3VrSa7tHWNzfYu3gJtWWLSFUbQo69uf2Gzc8/ZpNRWagrXUT0F1er5q54dl/vGbeY+pHtyUo432q17btsrOwKwy+kZrZT5lv4b+OqGPVvJ9Fi7zlMsn7Njo9eEN4ZN0YrJUWFuG60uz9yfy1j42INvvhTn13f5YHrPuCW41MfDUFs9QJlyaZoremT+bowZWD6KuijhYrF43lOvbXtqCa/8RG7N5H62YNXIdmVN9g8pdMzWiGty39SJXHn0EndrDLd3sR28nHYsrbq2U603TgQCwjeES3EL4YGkPs6C+uZmUyDQHRXNyNddjvVdis/s8IzZ9fq2J+O4RYczS1S4bM78+c7w8mhQ/AAAAADwo0C2NlYTngtDrNg4w2Z2cDC3ubxFWVnUKQ8PcOLgbJnffG+zpHlcMjvCTYwjpp29E8egnSyqqObzh/74x2/ffXf3nz/P6nSOXBcuxnHrBY+uW+3LxQxatQFhWr0WqS3UQnUWlzNDYjxtmBhT6hk9m1Fb1WsppURbW94tj5jjLsAJviw6UtZV0aKgr33L8vC176pqUZr2a2xxdPcRII7/wl3bAu2ZlFajpzBKqzXQk63uLSnRBsQEyrk409ojJtR6+OqOuy3f8FisPRcZ1BoKw/Ra3cRDbmgtJvHyIOqq+yikr69ot/V1Fujby2qFc2NcrRgYx8F/gb++qrJ/Sgkr913gzrsui8Dch7SiqmzAPXKWnIMxJB5LN4Z4cYcmb+FpbuirGfXsMFO1YtKxOjPbeLq64hab8BAfEYGzpfOiXNQ1LX3jluCO3g6KmpZBGimrG7tcXN3Z2hlYPoKmtaTeev4CRwGBCTxD1q9yl0za39xjPNMeutbC/QerxAujgifduIHxXFyEuLEvw+Ke3ODF66o+8338X987siexvElNWwwP3NbZm91a1UYhqq+imvadZYt115eqXRfOk3JwQuwdFGbdVtVMMm3tHXlw+rnHgKweAAAA4F6FVqnVAploROfgfIlQ16lUDSlZQsHIAiQhEJopfowjHF0HxSxlbePypRuG8/ivE9R9ZTmnc9qGcJ7UChmQDaI1Fmoh1QrFQEX80eKxg/l+liQerVFqWCIRY2QvpljAVatVNLq2Ds3xdHE621indmdWdjkGRPKHE1EyE/NKOkmORMJTWXSEVqnl2YzmBmFiayHebvqg66hMPF/VomaIbPh6CjlcN1u6sbWYvbej4WxzzwJpRYPYN46HdBoVxROPOgYXibnqfs0UChbjinhmN4Za8OGgiiMWEaMzDFcPCdVVNWkL3d9syVcTWz7tnh3e23IrsMnHmttGK7MV+pb0U5/ljBbNFYsNExL/mc7Orn0VtUpPoqLXOdCJTauU07d8NJhVKiZfxB51odxfbpqgXB85k61CVCOi2iv7QgOs/j979wEXxZn4j3/K9r4svSy9FwuKFEXFFhFLYjQmxiSX5NLNpV3uvnfJ//L7Xr9LLmfK5WLue5dqYklixNjFgoqoiAqCICC9l11Yts/MfxcslFXxDgu5z/vlS9dh9mnzsPuZh9mhpKC8LSHB0/VCLt89InZeRKzjqBua647tPrpuM/3M/eHU8OlBuUWGk9nnu+zi+go2MNOX4qqNPYbaLWubLi3pSwM5xykSFviR+AEAAG4VUiISGQw9LCGnnImp28CXiEVioSP3M30/xGZ6DRZO9Z/WwraXfJ9rTfzR0olqmtOf/eTTHoIQuKiFEoolmtSV85OVzphn0XXoaJWLZEQKJSJrfbcjLjrvr2LvMZpEngOviSYl/lHeBeUVdXS9e9xdIpKwl+UcqvCY9cQKLzHJVmZvPOKiTJFMZOzqZgk32nmNR09ftmRbcrPPC+Zmro6U0GzH3rWHB5/aXKe1tK9/UO/p8rOGCyptuoIk7SIJZdQbOELlTMQ93WahxHGe41xI57j+MG0xXfz4AEGSIxhDUiAVWdp7++Mj11l2tl7uPXSLQnvtsXKc6hhNNzJhBC57YR2+37CWBIvFvKDErBXxgv7s3dgj8BgYrwU+4X55JaUXiCaP6MUCkmRuuOUikcjabLD112msKqijo0Ou16pwFUH5pE3LTLYIP9qztyhsxTjJ0LFn23Z/cJBbfPdcf8p5duodNH1Ga/G3HZ12RamL6UH5RPrbd9ZVChvskck+jmeIRRJ1xN1PJDofE0x3i45R8/HKMxbhqh4AABiraJ/AMHtl7mm9jWM6i0+fMvpH+ctCI1W1x881Wzlra/nxCusoVMMwdlooF9MEa6opuNBsY1lC4qIW2jMq1HBi/4VOR2t66natyynoGFIQx9gdcU0UEqmpzz9TY+RYU+uRvEZNhN/gnymIwiJV1ftP1voEhYn7n8UJpGJHcrS2VxZWmRlm2NU0lDoinFdysKTRzNn1tbkn2tn+5zG0RCagCUZ3vqys0/Hfi61gmBG0lucZEajPy6lVRGqd8ZjvFRXcXZBbp2c4S8u5Q6V0eISaIvginq6uwcoR1sb8c9X2GxpDRXiEpCKv1DGGTHf1/p3lrZzb0C2szNVY8YQCW1OdzuY4t6kqOdV0zcvjGfugS6Bc92L4mcGwtrHi4CivhrxTFT0MZ+8+nb1za8mQn7YIgsPdag+eqnPMSedRE91oy0mxb5R/+7EjLUaOM1YX7TzUZhVct1XOdVs+nyZ5nmkz/ZoOnLow/HMplFtUBHlm76mKLhtLcHZDe+HRaibQz4t0PT1oX22o8fyuQltUjPPaMMozIJytPFDYaXG0qrZw/bqipivXflk6Gto6zXgdGhuwxg8AAGMFqz+2/fcnLqZjUhXz0NOTZy8fv2PbrjW7bXyNf8rypDAhSU6eNl+X+9U7xTzv8IRweTn/P32nozyjMqL2bfvbBlqqCE4MjROd3Lon+NnZw2vhh8/N0O3I+2xNnpUnD0mZsSBo4KI5KfNyZ77b85l43qrk9LsNR7Z9+KWBEPnGT106RTnk+mt5uNZt50nZLP++X37Bj5g6oXjztjUnhArvoIkTfHJyDxeEzxh8q0bKf/rM2TsOb3z3tFnoOWVyuLrBkd28UzLcv964aQ1f4hERNSGqPnfrmehH4zx8xTnfbtmzfNGsa7XWWW9guJetuDcyov/W/aKYzAzdtqP/ejuXEamjZmdM93O02itpuubrbzf92cYItMFBCusNjuHM+cbDG987Y6akwSnTpvpRIu9hW3xcjFV42rgzm3e8fYxlpAHR2qsuOVMqd29d/sebhI/eG668OGtc9cLFhy1Iz9RhLfFNW9qdt+P/1n/D8N0jxt+d5jbkVEEaGuCxrZkf1X/USHXiDbaclE5YnN699cjf3zRxMo/ERVPD+ETxdVpFtl7aQxI5cdqx7D3Hoh+bph58IOmAjDlZB47t/WT9+l6GEsn9osbdNztARLOupsc4H+epIFNQHxbjRfafx85Ynrjr+5x3c6yU3DNxcVr05d/IwrQc+PwQvXTF4jAsH48BpMlkwSgAwEg4Xi4sFpu3txuGAu5gXNfZghNsREa8grZ3Hvx0r37GPQtD6LFZy21mrzryXo70wcfGuV/nRoyc3cqQAt4t7j9rtzE0n3/H3CSSM1dteN95G9OJsjHWcvhvgDV+AAD4ISGVgd509v4PD9lZju85Lj3rpgTxW1PL7YyvrN1YerJOEjnP7frBlOQJbkOcoHj8O2dtmWVtnWfO13kHZcrGWMsBiR8AAGDsoWT+Gff7Z/wgarl9gV935NOdJ/nhCxJVyKYjCfx1e7ZsPK9MXRIix2AAEj8AAACMAaR66qMrpmIcRnwCGDh36StzMQ5wB89RDAEAAAAAABI/AAAAAAAg8QMAAAAAABI/AAAAAAAg8QMAAAAAABI/AAAAAAAg8QMAAAAAIPEDAAAAAAASPwAAAAAAIPEDAAAAAMAdgochAACAsaKnx1hd09zRocdQwG2k0SiDAr3lcgmGApD4AQAARjnuF5wsCwnxjQgPIEkSAwK3A+fQ0trlmIqJEyMR+gGJHwAAYDRV1zQ74r63l8aR9vsTP3I/3MKk7/zLMelYlnNMwv4JGR8XgpEBJH4AAIBR09Ghjwj374/7/TAmcMv0n2NyHEdRjtDPenmqq6oaMSyAxA8AADDqqYsiyYGBH7EfbimWdUw4tm/aYebBWIJ79QAAwFjCcf1r/ARW+eF2nHNenniYfIDEDwAAcJPet6j+pIW8Bbcn8WP6ARI/AAAAAAAg8QMAwC1hy10TGvO3fPvlDdYtDy2Y9NtqZux3DdfzAKYfABI/AAAQBMOwLDMw39vtBGtnb7wcm/XSk7i+mxReF8eyHMYfAODOgHv1AACMWVznR/OX/T7m7bK/JPBv9Jm56x5/ftPBWqs0PPWNf/70RzECwlj9+at/+c23Fe18//mvvPjes9FK27EnIrNjfuv21S8bHtp7X/HcjarHiHVvFvXwNVN/+osvXo6R9VasXf3n32XX6DhJyOwHPvzHvZNl1o0r7v+nclzD5rxau2LGaz9Z2bzh9S8qOuQJb6x/49kEV7WQbM2a1TFfJJ/IWxVN46ACAIw+rPEDAIzFrK8/umF3Tlm3yU4w1t76Ywc/3dV4A9fq2MvfXp0t/9k75yo+/iyj5he/P9pLWHJf/8UbbbM/P7buzNcLzH954xc5JoJg7eZjH+4M/uuBXz3mSzgeryvO2HpufdHG9Kbff57dzbVv+uj1ypR1pzZUn/nNPU2f/GFrr7Nsm+5oZcjawvVFnyWV/vw3//B6an/RRx+mVb75jxKb61ooz4VPb3pzZgDiPgDAzYE1fgCAMchSufGNP/+1zErRDHvwf8I+ID0WvTxztm/ASJdxKI4w1pbWt82ZlPb6X0tZgdRW9OW3ovs3zp3oJ6J85r1w76ZHt1Xapjl2dM98/K7JASLaRhC0/71Pz4zxEFLy8ROUJR0GQrnwhUOzlSF+AmMDS1KMrsPMEXyC409ZNn+Sr4IniYmQtixZFeGtJqcmBZgPGThbiYtaZsWJg2PmBJJ4QwIAQOIHAIBLRON+c+TzxW+9nvm7EiPt9dAXf/5zlo9m5D+15YU8//4jnb/9+8ygJkF82rO/Xf3TpLbGlobsh5/Y3F8IR2gWWp0PaDdtoIC+eD9MpZ8/3/l1mqZJ51X6ZE/FP5//18YiszI4yK2t72l9+4lkUue7C5+iaJFC7nwGj+77qvUqtZAUDwv8AABI/AAAMAAtspR+9Gm55t5VD1/Y9MXfj7x6zwqPYTuRIqGwW69nLr3Yc6auLrtIIiTtPTpx4mvr5/22p/3Upo8efezT5KIklVvos1/+8ZlARxjnemoqaiURfOIMQVA07/J9SajBtygxff/an3eEvbbn41g3HpPzk0fec9nSgU/hy1zVAgAANxeu4wcAGJsE7olLVr3/l4d/98GTj6T5S13dLpAXlzRLfvQPvzlSrmdYi+7UFx/85XhQ1jwvyl7y+4Wv//GYTeHrFxUo5VMcIYhbNLP147ePtfLEYsOZX9//hy9qr7skxBmNjMTTy1ctpRsOfbVPb7Ux17k/z1VqsTRVHT3dasIxBQC4ObDGDwAwJpGq6Kf/EE6LBDyfRb+PpYQul8plE/933VO//tU/50f+v1abxD8m4f5/vv6TOB5BJb78m9inn1zl2U3KA+J+9M5jqXwF9/tfVP387/NC/2IQ+cx86pW3pwqI6+R3yfwXH1j/zIuh/yfzn5C+6oGEX//pzY8W/VpxracosobXQrDN69+atW7KibyHcK8eAICb8pZhMlkwCgAwEo6XC4vF5u3thqEYS1i7yWix2lmWICmaFopFor6rdFiruddkZzjnVqGkbyPHWoxms43lSJIvEkmENEkwRr2FVkiEzmf0PZZLhNSlx47trNXQa7VzjjL4Qh5jMhNihZg09lgFcpkjyRN2g84mVIkdJyOc1aS38VVSnqtaCMcmvYWnVAiu/XPn/QcKU1PiKSfS8QfHFm49jnP+SgoHhmGP5BXNmD4BYwJjAtb4AQB+0CieWMYTD98sEMkFgzeRlFAqEQ7aREuUkms9pgUyxZVShKK+f2SXC+bJVBffZUiBWCW4Wi0EJZSohThUAAA37a0AQwAAAGOK82IjDr/RF27f9MNvlAYkfgAAgJsd9zkkfrjVM+/i9TxE/+TDDISxBVf1AADAGEpdHMtyfRfxsyyLS/nhNszAPiwSPyDxAwAAjD6NRtnS2uXtpXGGfSdH5iJJxH64pXGf6Iv7ZFt7h2NCYkwAiR8AAGA0BQV6F5wsczzw8lQ7sr4jdREEFlrhFod+5x9H3K+sbEycGIkBASR+AACA0SSXSxwZq7qmuaqqEaMBt5FGo3RMRceExFAAEj8AAMDoh/74uBCMAwDADcG9egAAAAAAkPgBAAAAAACJHwAAAAAAkPgBAAAAAACJHwAAAAAAkPgBAAAAAACJHwAAAADgvxfuxw8AAGMAU330nc9Lezjnbz1lCZIiHdtIyYTZj3kVfdo+/rn5PvQPsM+137xdFvLsnPF0y74v9hfy4h56MNadHN06OH1x/mEudn68fEDB1vP78nUxUyd7kaPZC/HVG2FoOlFkD0sOUJN32CHgdLn/PGDPyoptP9uoihrnJyDxrQhI/AAAADcJHZT84mvJjgem07v/WqRd/WCkrC+RdR8vug1RnGFp+uIPyR3nICNJgRzHkeQNxkXac9pymUhIsM11pUzUqkdGHPc5liEo+uo7D2yztautjrUN7gXT3djcGjzCno20F9dqb0/j8TyzW1KA+raft7keOqal+HRhUIgj8eM7EZD4AQAAbkdIM7Ue/uro8dpeQhMy/96UGCVJ2HRndh85UNpppBXhqamZSe6iK7ubCj7f0pi6bGGII7JbCtdtrk92PGabCg5vzW3osFLKoLiFS+L8BQSjr83ZWlDU0MspfJLuSpsaJNTn79jQHRrbUVSoTFnpfmZ9s7dfY0mxjhO6B9/VVy/TVbVzS0Fxk5njS/0npdw93UfCNG197yQTxpwv1tsE7snzY+lTBSfqeimvuHvuG68VDq9FdCVtMu2HN5UGPRpZ/215p55cv0GwYnn05dDPmVoOZx/Jr7FItBFB1gp72r0LA5u2vFvmOUtctLd7/KNzoloLt+wqr+tmaKkmYU76nCiJ4fjOdYPbHNF2bGN+Zyex7ythxopkdd9JDFt/MOdAba+tY7t4lrZ6d3f6c2lhPEd1VRv+VhH+44md6/KNoYKa0y1GShY4OXnhVG8pOYJePD1nnL1u75ZjpxpMrMgtfk76vGjZ5QuLSaVcreYrifY9fx9eONdTcXJwR6Rkz9CihmyZq2348v3a+NVzxoktp7/8Ktue/JNVkXLLhQ1rSgKfzEwStB3ddjS/qtsu1sRMT50Tr+QzDQOHLrrzzNbt52qNPPewQKWNcCNolZtSpRJjgR/GLlzHDwAAY1tPWT2RnvXSy3fPVdXtL+hkCaYmZ+8+U8T9z698aVUMm7dv7wX7dc4ZdOU7D9gmPXLfz17OTLSe2V9s4tiuIxvzWkLTn3nl/sczxEXf5J01OtNwx+kK05T5TzkvIuLaiusVC+/9+av3zFPX7T/prLfqYH6Nb/rqn6165fF4uqCwSM/1Rd6OFnHyc68+8Ngk+6FvTjPTsl58YX6CufhYlZ1wXctgQm3mkgi1d9z9A+I+Qdgq9hwsViU/9dKy5ZG6kmrmUrxuOFGpWfz03MmyjqM7q2Szlrz685XPzJOX7T/Xwjo7OqTNVFjSsiluHpNnXor7zmDgn54xXSuNWzQ/I8Y/TNpU0eh8puVCbb2XNlzmqKK1pMHz7mcfeOmRBMGp/bvKrdxIekGwVQcOV3hOfe6nK1dnqav2nK1jr3yNFPunzQp2I10W3j6sI8OLGrqlXuQTrOmsaWQIprO+naZbW5vsBNPS0qT0DZRbS7flnOAlPPziyueWBnTsyjnY18HLQzeJV7P960rx9AUvvpA1W9lS1ub4KuU9fsqUABrfa4DEDwAAcHvwQ6On+PJJWqINUNgsjozYWnyOPyE91J1P8jWhafG8qvOdzHXeDEmSMbY06ns5RdKDDzw4Ucy1V5eYAqdN1ogoWhmekOjWdL6+rwz/yKnBkv6fj/NDHPUKSFKs1apsZitHUEFzlzwy00tM2E1mliQdbekv3C1uvIeIpDW+blLfkAmOpvJV/p601cqyV6vlumyNZ8pkiSk+UprWJMTGKi+dCpDSqKRwTyHpqHTqw4syI8Wk3WKyE6TFZnHd5msiVWEh9IWKLpawVZc1e0QGyPrieVRarL+Y4rsFz5wsP1/caBlZLyiKNHe1N+tswpCUZ1dPCRwYQEiJViunXBVuc9WR4UUN3ULLgwL5jXV6e1drsypsvKqjro3R1bcTWh8Pprm0Sj4pPVDNI0U+0VOjbefLdeyAobNUVla6x8yMlvNpkTY1PrJvZZ/v4eUrwbcajGG4qgcAAMY2sUzc/2Z28Tp5xmQw6Ms2bi6+FIOlUVdLthe3k4qIrKze3bm73tnMuYVGzJw3Icxg7DHUblnbdGldVxrIsc5AqpDwLz1ZKBPzB9ZLkNaW8m17zjeYeAp3qY0lfC5upnkX20eQPB6P7H/UV73rWq6/lsyZTb2sRN6fQR2NkpEdF+sSK+X9j9iu0mM7jjX1UBKNmrAT7ldp83Uiv1e4r31XfcdUTVmNMjJDQhImghQpFf0tJOVqGVduNo+oF1TQjBkpe09mf3SiV+QRk5o0d9LAS60uVzi0cAvB9gztiIuihm/xCvYyHWntVLfbfeOjbPW59d3udb0B4zSUtcrISpQXP6hMKZRik87MXRk6zmy08FQyaf/XeXK1HN9hgMQPAABw2w0Jr5RQLNGkrpyf3LfybdF16GiV6xDNWYym/gBttHnFL39iEmfsOpez/7u9mudTRRJ1xN1PJPo4V56Z7hYdo+YThdcMymxLbvZ5wdzM1ZESmu3Yu/bw9RsudlXLSHosFIoIk8HReJmz9T29l09pyP7PB7PtJd/nWhN/tHSimub0Zz/5tOffG1ra1z+o93T5WcMFlTZdQTpPkThzdzdDePGcJyw6AyHWCkfUC6bXKIieN39Klk1XW5q96XC+dtF0T3L4qcyQwnkuOjK8qAWJ1LDC/Xz8OmoKqrs9It18WU1nSVlVq1uwlk/yRRLKqDdwhIp0fma42yyUCEnCfHnoxFKRXW9wjKijuwRrNBgJZH74AcBVPQAA8MNCe0aFGk7sv9Bp45ieul3rcgo6Bn6ZJxTYmup0NoLrrSo51dR3eXvHuU2fHS3pZmmxVCmhKYqkPAPC2coDhZ0WjjPWFq5fV9R03cttOMbO0BKZgCYY3fmysk7Hf6/3Hvxv1NJP4B0VpCs42mLkmK6zJSX6YT/EYBg7LZSLaYI11RRcaLaxLHeNdrPDtzH9LeF5RgTq83JqFZFaVX8+50ylR0oaLZxdV7P/uD4w0ls0ol7YK/ds25jXbib4MpVESPXfX3V4W4YWLnDRkeFFuSpc6BXs1lhYJvL3pQV+XsrK82VSn0AxQfC9ooK7C3Lr9AxnaTl3qJQOj1APDEOCoMDAlpL9ZQY7Z23MLyrtHThwlo6Gtk4zvsdg7MEaPwAA/MDww+dm6HbkfbYmz8qTh6TMWBBED/pq2rgzm3e8fYxlpAHRWudqNOUbd1f8wR1r131P8OS+YYuytAKanLE8cdf3Oe/mWCm5Z+LitGgxob/OmYZ3Sob71xs3reFLPCKiJkTV5249E/2w57VPTobXMjLi+Mxp7d/l/u0tzi06MtK7neIPOZeIyojat+1vG2ipIjgxNE50cuueoFVuw8shZV7uzHd7PhPPW5V6OfgKPHzFOd9u2bN80WwtPzDcy1bcGxkhuxjRKVWEv3772i87rOKASTMWxotJUjyCXghjZk6qzN77Tj5DiRSh09KmeLiK/MMKp4nhHQl+YmhRItJF4ZLAICmrd/eVkSTh6S9ljEHefSctopjMDN22o/96O5cRqaNmZ0z3owhm4IiELlzak71z61vfEaqY8Ukh5QPOo1oOfH6IXrpicRgWTGGMIU0mC0YBAEbC8XJhsdi8vd0wFPADwNptDM3nj9UbLporDp7ShU+a5MNjdOe++qQx4ccZ8Tfno6X2qiPv5UgffGyc805BbPuetXmie7Omut+EgbuphQP8d8MaPwAA/DeiePyxvE4r8guWFW7LPmblWFoenZkWe1PiPsfajaUn6ySR89wQwgGQ+AEAAOBWEgfELXss7ubWwemOfLrzJD98QaLq4tkRpYifk0gpbk78v6mFAyDxAwAAAAxFqqc+umLqoE0Cr1Dfm1bfTS0c4L8aPnoCAAAAAIDEDwAAAAAASPwAAAAAAIDEDwAAAAAASPwAAAAAAIDEDwAAAAAASPwAAAAAAEj8AAAAAACAxA8AAAAAAEj8AAAAAACAxA8AAAAAADcfD0MAAABjRU+PsbqmuaNDj6GA20ijUQYFesvlEgwFIPEDAACMctwvOFkWEuIbER5AkiQGBG4HzqGltcsxFRMnRiL0AxI/AADAaKquaXbEfW8vjSPt9yd+5H64hUnf+Zdj0rEs55iE/RMyPi4EIwNI/AAAAKOmo0MfEe7fH/f7YUzgluk/x+Q4jqIcoZ/18lRXVTViWACJHwAAYNRTF0WSAwM/Yj/cUizrmHBs37TDzIOxBPfqAQCAsYTj+tf4Cazyw+0457w88TD5AIkfAADgJr1vUf1JC3kLbk/ix/SDsQhX9QAA/OCx9e+/EPqT02xfVqYlqoj0zN+9+1hWIH1bW2U/9NJD/y/0rzuf9cTiEwAAEj8AAPxnkd/OCue+dOaLDCXBWTurv3rljYdfCirbNNf9lq5U2q1WnkBw5f+MnXP8+ffKwvU8cBth+gESPwAA3HKWgw94/pb6NPvzxYKr7kPxlWq52vFAFfejFXFv/Op8JTNXWbP3pSc+Wn9Sx0g8Up584ePXE91JU+GHbz39h/xyA62dcf+H/1w+RW4evOUe+xsP/Zj/+pk/xBDHPohN33vXrq/WpJOn33hsYfOz5e8FHfjNW6/+q7iBc5uy6qkP3kjV8k1fLntk36wHTB98wrz25ceTj/3yyQ8+P2l0m5g+R8Rwoc7zkZo1q2O+SD6RtyqaxrEEABh9+FEqAMBYZqr49uP8olaznSBsvV2nt23PPmu79jOYntqvvy7mgv39aOvu3757IOHFY5UbS3fcQ639eF0dy1Z//+JvDKu2fFJZ/McH9V+8sb6TGbqlOy41SnekqJ5lm46ebRcZ8/OaGE6Xd6Q9MS2s5R+/eyjb59e7Pivd+3TMnt+ver+Oca7t6zb+43zmpx9+uLDzHz/+U0700/uK/7npx8zune1s3zuR58KnN705MwBxHwDg5sAaPwDAGGYvy/vTy/+X303QLEM8snwjIU37TWRmbMjw8Gzd+WdfyVsEwTGEKDB59jtr5vqRPPkb72yV+wUobK21BEX2duo5QsGR5vay0g5LWNjqr9c9JZCSzUO3SLsmjn/u6NGeRYLj+swHJx7IL+02SY+UhMyYyu16qizxyV/Oj1DziaSXn4mP+/hY0/OZjkqj7116T7wHv3b9l6fjn/8sNdKLJhY98OTUPV/3tU0cHDMnkMQbEgAAEj8AAAx7EY+/b1dx0v899tLLO7sJTep7O15ZFal2uVYumPNC33X8ThRPIJEKSYKzVO7/6f9sP9YlDIjwMDDEeI6gAua//VbLr/70avijbNjcrP/3lx8t0g7bEjBueuhnh45VSM/6pf9jQvN9Z46fkhX6jn/ZV/9dlzQgWMXv+4SwW7CXW2dHq3MZn/bW+ggpwt7W2aXxDtXQzq8LPMKDZRd/0ExSPCzwAwDcNLiqBwBgLKP5XNnOtfvJ2S/fN9N+fO36Jkp0lRf2/uv4+/4o5UK+Yy9b8R+e3Cb+yZ+OH3v/+88enKVx5nCuu5ubvPyTnM8qTv32RbeDj/3PoZ5hWwy074xpkvzNe44LI6ZExyUpyjevK7anTIgSyN2VvY2Npv5P41qaO7qUCjXVl+hp5z+Uu1rd0dpg6vsyZ2ltMbI4ggAASPwAAHBNJKUJnff88+//6rH337pnVozsBl7WOZPBItBo3d2V/M4Du7dXW602gin7bmXW33fqhV7B2hANnya54VsIgpcwPbrti5018dER4sDU8e1ffN44aUakkFTPmh+a//4XB9sYe0fRW2sKw+ZN9h/QIMp/8vywwjd/f7LVxrTu//zdHGv/dktT1dHTrSYcTACAmwNX9QAAjG2y2Lm/+xUpEvOI+x/7DccXj/yZgnHP/iLs0QcfCJVoYjIXPDD/6F+f+2JZzuJf3/PnXyYtfpYT+UzMWPPXVFVw5JAtMsdzp0yYRO7pnRwpJISTU0OZTVRGmqNmMvzJV/7W8t7qSUuaOdXEZT/5x+pgPmG5UiM/+LkPn2968c1x3jpB7LznHgnb6dzKNq9/a9a6KSfyHsK9egAAbgbSZLJgFABgJBwvFxaLzdvbDUMx5rAWo97GV8n4Q24jzlrNBpOdI0haIOCxFjMjkCv4rMlktDCc8+J6vlgi5FOcbegWx1PtvToTJ5HJBCRnNel6CalKLOi7LMhmMpusDMuRPKFQIuY59rUaemxCuZTfX6Xd1GuxMKyjShGPsVJiuZB0Ns/CUyoE1/4Bxf4Dhakp8TRNkSR56TfvAtzy7yaWc2AY9khe0YzpEzAgMCZgjR8A4IePEkrUQlfbBSLFlTv480V9/9BiiXLQTwpI/tAtzrcPqUp+8csCsVowcGfxkB80CGTyK1+neGI57/LXhddsnksch99/BLcNx2EMYGy+C2AIAAAAAACQ+AEAAO4QzlVWLLXCbZx+LIv5B0j8AAAANzfuc0j8cKtnHndx4vVPPsxAGFtwHT8AAIyh1MWxLNf3sV2WZXE5P9yGGdiHReIHJH4AAIDRp9EoW1q7vL00zrDv5MhcJD7FC7c27hN9cZ9sa+9wTEiMCSDxAwAAjKagQO+Ck2WOB16eakfWd6Su/ot8AG5h6Hf+ccT9ysrGxImRGBBA4gcAABhNcrnEkbGqa5qrqhoxGnAbaTRKx1R0TEgMBSDxAwAAjH7oj48LwTgAANwQ3KsHAAAAAACJHwAAAAAAkPgBAAAAAACJHwAAAAAAkPgBAAAAAACJHwAAAAAAkPgBAAAAAP574X78AAAwBjDVR9/5vLSHc/7WU5YgKdKxjZRMmP2YV9Gn7eOfm+9Dj92+cbrcfx6wZy2a6UVe2mQ9vy9fFzN18pUtN29ka795uyzk2Tnj6ZZ9X+wv5MU99GCs+yhXy+mL8w9zsfPj5QMKHtU+Xu6F+OqNMDSdKLKHJQeoyTtzAmTFtp9tVEWN8xOQ+IYHJH4AAPgvRAclv/hasuOB6fTuvxZpVz8YKevLSt3Hi8ZgxGcZgqKvFeuY7sbm1mDH+c3Nz36057TlMpGQYJvrSpmoVY+MOO5frxcDW2/taqtjbYP7M6p9vNSLa7W3p/F4ntktKUBN35kTgGkpPl0YFOJI/Ph+ByR+AACAwfHJ1Hr4q6PHa3sJTcj8e1NilCRh053ZfeRAaaeRVoSnpmYmuYsu782271mbbwwV1JxuMVKywMnJC6d6S0mup+Lkll3ldd0MLdUkzEmfEyUle+r2bjl2qsHEitzi56TPi5YN2TJX2/Dl+7Xxq+eME1tOf/lVtj35J6si5ZYLG9aUBD6ZmSRoO7rtaH5Vt12siZmeOideyWcatrxb5jlLXLS3e/yjc6I7z2zdfq7WyHMPC1TaCLcrHWLrD+YcqO21dWyXLJk/w6N9aDlX9jQVfL6lMXXZwhCKICyF6zbXJzses00Fh7fmNnRYKWVQ3MIlcf4CgtHX5mwtKGro5RQ+SXelTQ0SXUmbTPvhTaVBj0bWf1veqSfXbxCsWB59OfRzppbD2UfyaywSbUSQtcKedu/CwKaBvYhqLRw8bhLD8Z3rmr39GkuKdZzQPfiue1Mi2o5tzO/sJPZ9JcxYkaymBvdRPEtbvbs7/bm0MJ6juqoNf6sI//HEznXDj9EIevH0nHH2oUft8uXLpFKuVvOVRPuev9+ZE4BWuSlVKjEW+OFmwHX8AAAwtvWU1RPpWS+9fPdcVd3+gk6WYGpy9u4zRdz//MqXVsWwefv2XrAPegLTWtLgefezD7z0SILg1P5d5VaObT+6s0o2a8mrP1/5zDx52f5zLSxbdeBwhefU5366cnWWumrP2bphW+pFPsGazppGhmA669tpurW1yU4wLS1NSt9AubV0W84JXsLDL658bmlAx66cg41sX9UNJyo1i5+eO4lXs/3rSvH0BS++kDVb2VLWxg58a/ZPz5iulcYtmj9Ta3NdzjXOf3TlOw/YJj1y389ezky0ntlfbOLYriMb81pC05955f7HM8RF3+SdNQ57mlCbuSRC7R13/4C4TxC2ij0Hi1XJT720bHmkrqSauTSAF3sxWdYxbNycTWgrrlcsvPfnr94zT123/2QnFZa0bIqbx+SZl+L+oD5mxPiHSZsq+vpluVBb76UNl7k8RiPoBTH8qF35Gin2T5sV7EbesROA8h4/ZUoAje9oQOIHAAAYih8aPcWXT9ISbYDCZnGkt9bic/wJ6aHufJKvCU2L51Wd72QGPoEUR6XF+ospvlvwzMny88WNNspt6sOLMiPFpN1ishOkxWZxvEFSpLmrvVlnE4akPLt6SiA1bAstDwrkN9bp7V2tzaqw8aqOujZGV99OaH08mObSKvmk9EA1jxT5RE+Ntp0v1zkTHymNSgr3FJKWyspK95iZ0XI+LdKmxkdebWHXdpVyrvXGTpKMsaVR38spkh584MGJYq69usQUOG2yRkTRyvCERLem8/XMiEbW1nimTJaY4iOlaU1CbKzyUiMv9YJwNW7OIxLiOCICkhRrtSqb2cpduxZSFRZCX6joYglbdVmzR2SAzNUxsoysF8OP2oCKJFqtnLqDJwDfw8tXgm9ouClwVQ8AAIxtYpm4/82M7E+kjMlg0Jdt3Fx8KaBKowZnTlKkVPSvpJJytYwrN1sItqf02I5jTT2URKMm7IS7I+8FzZiRsvdk9kcnekUeMalJcye5D9/iFexlOtLaqW63+8ZH2epz67vd63oDxmkoa5WRlSgvfk6VUijFJp2Z68uaSrnjH85stPBUMmn/13lytdx11zir2XU5rva92DlFRFZW7+7cXe9s5txCI2bOmxBmMPYYaresbbq0eiwN5Bzh8/pryZzZ1MtK5JKLp0kKGdlx6ZRJebHBbNfQcXMSysT8gUfkOkivcF/7rvqOqZqyGmVkhoQkTMOPkXlEvXBx1EQuKhwzEwAAiR8AAKA/tg1JfUKxRJO6cn5y35q0Rdeho1X04CTb3c0QXjzn7Vt0BkKs5bWXfJ9rTfzR0olqmtOf/eTTHsd5Q69RED1v/pQsm662NHvT4XztgkRqyJZF0/18/DpqCqq7PSLdfFlNZ0lZVatbsJZP8kUSyqg3cISKdH5ktNsslAhJwuzMwH0pWCwV2fWGXo5QOP7HGg1GwmXkIwUuy3EZzy1GU3/njDav+OVPTOKMXedy9n+3V/N8qkiijrj7iUQf5/o2092iY9T8EY2rUCgiTAZHsTJnuT29l881LvaCdTFu/w7a1z+o93T5WcMFlTbdMSKci2MkFI+kF8OP2qLpnuTwU5mxMgEARguu6gEAgB8W2jMq1HBi/4VOG8f01O1al1PQMSTwmUqPlDRaOLuuZv9xfWCkt4Bh7LRQLqYJ1lRTcKHZxrKcvXLPto157WaCL1NJhBRJkcO3EITQK9itsbBM5O9LC/y8lJXny6Q+gWKC4HtFBXcX5NbpGc7Scu5QKR0eoR74jisICgxsKdlfZrBz1sb8otLeYQv3HMMw1y2HJxTYmup0NoLrrSo51dR3EX3HuU2fHS3pZmmxVCmhKUc7PQPC2coDhZ0WjjPWFq5fV9Q0sot6CIF3VJCu4GiLkWO6zpaU6Ic10sW4Xa0sjrGzrvvo7IdnRKA+L6dWEalVka6PkWhEvXB1jFy05Q6fAJaOhrZOM76TYTRhjR8AAH5g+OFzM3Q78j5bk2flyUNSZiwIGnztB6WK8NdvX/tlh1UcMGnGwnhH0IvKiNq37W8baKkiODE0TnRy657gJ2ZOqsze+04+Q4kUodPSpniIyKFbHIlPEhgkZfXuvjKSJDz9pYwxyLsvs4piMjN0247+6+1cRqSOmp0x3Y8iBiRUUha6cGlP9s6tb31HqGLGJ4WUD8naHr7inG+37Fm+aNbwcgb2NG3cmc073j7GMtKAaK1zzZvyjbsr/uCOteu+J3hy37BFWVoBTc5Ynrjr+5x3c6yU3DNxcVq0eIQjKY7PnNb+Xe7f3uLcoiMjvdupwavqlOfwcQta5Ta8HFLm5c58t+cz8bxVqZeD75U+ztbyA8O9bMW9kREy8irHiCTFI+iFMMbFMRrmDp8ATMuBzw/RS1csDsOyLIwa0mSyYBQAYCQcLxcWi83b2w1DAWOY8+6ceaJ7s6a6/3DugsjabQzN549+h8wVB0/pwidN8uExunNffdKY8OOM+Jvz0VJ71ZH3cqQPPjbOeVhu6jH6IU4AgOvCGj8AAMDYRvH4N2c1WOQXLCvcln3MyrG0PDozLfamxH2OtRtLT9ZJIue5IYQDIPEDAAD8x+lYET8nkVIgWo6IOCBu2WNxN7cOTnfk050n+eELElXULThGmACAxA8AAPBDJ/AK9cUo3EFI9dRHV0y9dccIEwD+G+FDIQAAAAAASPwAAAAAAIDEDwAAAAAASPwAAAAAAIDEDwAAAAAASPwAAAAAAIDEDwAAAACAxA8AAAAAAEj8AAAAAACAxA8AAAAAAHcKHoYAAADGip4eY3VNc0eHHkMBt5FGowwK9JbLJRgKQOIHAAAY5bhfcLIsJMQ3IjyAJEkMCNwOnENLa5djKiZOjEToByR+AACA0VRd0+yI+95eGkfa70/8yP1wC5O+8y/HpGNZzjEJ+ydkfFwIRgaQ+AEAAEZNR4c+Ity/P+73w5jALdN/jslxHEU5Qj/r5amuqmrEsAASPwAAwKinLookBwZ+xH64pVjWMeHYvmmHmQdjCe7VAwAAYwnH9a/xE1jlh9txznl54mHyARI/AADATXrfovqTFvIW3J7Ej+kHSPwAAAAAAHBnwXX8AAB3CK77QvG+g+XljQYLJfIIDE6eOT7BS3B5LdF4Zs+abxt8Mu99eLL06guM1vP78nUxUyd7sWc3flkSd/+yaHrQl5vLtn1/6lyrjafwiJuZMjtGMfBtgDO2HN11oqBKZ7ARIo3vxJlTpoZK7syVoVG+nsdy+KGg7zLO/vERtyvlWr7734B102rXzxRhbsJNnX4ASPwAAP8lDOcO/Su7I3Bq4vK5SiFjbK08t/+zXfqV89N9+iO7uayoVemraCmu1k+KVV01cDBd9U3Ngc77CNrtzj+DsB2HNp/URaY9vFjJtpRs3Zp73Dsz5UrGNZ/dlnOcGLdwZYBawHTXluzYvF/wo/nJbj/QdMNx3OUPAghif77BS61AjgMAJH4AALhJmJZDuxu8Zs6Zk6AS82mKUGrcVRLr7q/3VIx/MNIRRDlDTXGT24R7/c9vuFCqj0lxRn5TwedbGlOXLQyhCMJSuG5zffLSCfU5h+qNtq3b5UvmujlCf1vZN2uLKroYeXji0sWRHr3N1T2eEyb5e8sdNUTF5G+tbmRS3C69EbC6mgbCf25ooKeQIgmFLD6l6Vi7jiHceJbmc9u/LzrfyUi9g9IXTI5zoy0t5Tu3nS5rswk0AamZUyb58CqzN+Xxgpiy801Wnnt4QlZmtI+QIGy6M7uPHCjtNNKK8NTUzCR3EWFvKji8Nbehw0opg+IWLonzF3C6/G3vn/F/4vFxHiOO3FxH8dvPr3l3T4PFLWzp6y//8YFAUfWGWfeUJUZWfLGzlfCJefiPP/tNlieP6znx/prVa/LL9JL4ZY/+/c150WLrxhWrvomaUf/RlrNWYeBdj3/xj6wY8tyb93+bfuYPj4hqPnn5T//7ba3NO3ZlupXFzASAHwRcxw8AcPuxrXWVNu/4ODepgHZ+MJWk+CJp0Lggt8baCxbnDoayC63+IbH+QdF+3SUlBq4v9NoZx5+LAbjvMeWdlDLZRxI+a3qyr+Plnaku00UvznzsoSTvxsKjNSwpCV6wclK0vO+jr0xPW7dYKR9wzQ8l9/UmyvYd3l9Y19htI/jy6OmpKVoeYW3Ytb7YPj79R4/PzfBs3b7rQq+9ae+Gwp6I1Icez1wUZzm0/nillbDbbRfO6sIWZT7xcFpk7+mvD7TaCaYmZ+8+Q1DWQ4seXRJqPbJv7wU7pyvfccASu3TBk49NjzWd2Vds4ghSEjphyQztDa2wf/38a2tFD+RUZ5d8kVr+09d/e8L54wx7yf69fs8VNn934q3AnY+/+WkD07n5r0s/kvwi5+vW879eUvXB/X8sd+7Htn/zrfVXhVs7zv9/007+35qDtkul2k+/+euflad8cfbbcxszaree7OUwNwEAiR8AAEYDZ+g1iqQq4aDMy1PL5Zypx8gRXO+5s/qA2AA5TxoR5d5RcqHrKkmUJxIJKIIWScTOhXvKOzYqzFOu8Q7Qqu1GRzk8iaePUkQQltbK7Z8fadAmTPYfWKMk7q6MzHhJV8nJ9X9b9+f3tm8t7LJShL2uqkwUlBTn6a52C02aNDtazjTWnCcDkib6eLmpAsfFRAvqShpYx2mKMjpmYqBa4+k7OVnLlVTW21vPlNLRyWGBHgoPbXhSJFVZ1skQjlMTY5ee4Su9ptyz6O5YkaMFAo13ZIhKeCMjtnmP75O/nB4splUT7/nZ3aZtW6udUV486YX/meQtEPjNe+TllOIvtzbv3XAs6tmHswIEPGXEMy+lde46XuU8R+JNeXR5hidNquKmJ1j13ZdG0165YWP30l/el6zhS8Jn//LxcD6mJgD8IOCqHgCA248UCkVms8kRmwesuXNms5EQikQk111TVGdqbv7mzzsIgrWbbeaSzvipmkGnDC5LlSkVfGek5/Eo523snZs4Y9XBQ9kFJv+k1OUTfN0HfayX5Cs9Y5NUYRPsdou5va4m/8DejcSiFSKjTebl2Xc2wld5x8kIovysSerpIXauGVEitVpmq+xxJn6ZWimm+7Z5KmXmph5bb09vT/nW7yvIi20Uh9tJRfjsDEPu4V3vbOHcQiNmzpsQ6SiZpHj0jY1Yu909wLd/0Yr217p1VuscLaDUXgHyvspISVCwoqO5obHZdPwPLyS8d/HExi1Qa3GOA+Xpre5/8qBb+rP6Nr17hLb/nZEODPXmncLcBAAkfgAAGA2Ul28AdeRMhSU08vI6P9txpqrNOzhIxOnPXOgImfLY/IC+VXBL2fc7Tpd0p04bsADNWUxml+UOuVDGWrVrx5ZW7ZwVUUEaiUQ46MtcV/E//9U1bfW0CJmQkElkChm/o3ZdfScVJ6BNZiNHiEhHPe3Fp61ad4Gw19jLEipHauZMvUaeSOh81NvjOGdxXifEGYy9QoGIFgjFqokLZyYqnfVY9F09InfKauEFxC6MiLca9NX5+d/t0bxwb5DgxkdMw2uva2KJYEe9bGO9Tukudz7qaqk3cITzo8amutpu1Ux3jVo048cffPOArK+DdSeaZNE84txVD4PSS91RXWcnwgTOK60aOxlMTQD4YbzLYAgAAG4/oW9KmnvN9zl7S9r1FtZu1Fcc2bfuKDdxapgbaSgp0fmEaz1UMpXzjyYiVNNZcqGD4wn49pZ6nc0RtatKzrRc+pQpxzBXCapcd1XuWXny3NhQT7GQ59iPZQf8bICUewXL63L2VLeZHUVxVl1DYZnRJ1AjDPDXdp8/dN7IELam/OM5lb18X20QcyH3tN7GMZ3Fp8+YvCP8nYlfV3zmdIedteoKD1ZZtQG+As8IrbG4oNUulkjJzqPZeaUGmms/981XhbWExN1bo5FQJOdstt3QVd/Sa7uRAVuc0bj2D4frrGzPme/+9I0gc0GIcwXLdGLNn0612e3Nez9980DwwrkBGYvjjr39yY4GK2eq/+SpV57a1HGtQnkhWZnCTb/bdELHWGoP/W5tqR0zEwB+ELDGDwBwR7wae45LuVdwLj9//4ff9dr5End/bcqSSXFBIqKrvLhNkxB25b74ynA/z30VZ9vGJU6OKtq54+0TLCP1DfXtX/IXaLxEB7ds2bN8gcewOtjm1ubeugsffrnj4gZ+/IoHlkZeup6Gp0nOmsIdKlr3zsEeGyFQuAXHpswfL6cEktnze/buy/7Ld6zIQzt9TrBcTM9YEJ1zYNea3Ta+m8+EBYkREqKKoBxnDBVff7NXz8m14QtmaqUEHTkzpXPfqc/W5Fl5ssDxSbMDaIoInxaRt2/tuu8Jntw7cPbsAIHzVOHIJ0V+Tzw+fuT36ln27q9rVq9J1/7RqgpZ8odfvz6FT1QTlF9yhvmT9KAKnSx85UevPRvOF4S8+nnD2y+lLV1llUQvfOTTn4bxCOvVS+VPee1/f//Sn++L/EyviF399PzQ45iZAPBDQJpMFowCAIyE4+XCYrF5e7thKG4S1mY1mW02O8uRJM3ji8RCgSONs9aebkaoFF/5XVycrUdn5SukIsJqMFitNivDk0hohhRLJTzCbuo1WAihTEqbe2xCubTvRMBq6HtMmHUG28BL/gWyiztcKpkxGx0HmWE5gqRovlAoEdGk805AVqPRamMJkuZLpEI+5djRZjQ6dnRegS+SioQ0e+7b9fm+mUujaTtLUHyBVCLoeyZrMZrNNmeP+CKRROjYxtlMJqOFcdbA44slztIcO+ktPKVCcO2fO+8/UJiaEk85kdTQC5YItnpDxvyW355ZnYbP28JNw3HOX+TgwDDskbyiGdMnYExgbKwqYQgAAO4QzqDMH3ZNOyWQqwZvIfly9cUVfZly6P48sVQl7nskkwsGJPu+xyKV+pq/QJakRVLJ8D1InkCqEAzekS+VD03WJOXYTUwO3iSUSoRDWi+WKMWDuyiUqIU4/gAASPwAAHDnIr3GTUyS8W/JL63lnPcc4ghycGWUR8qv3jJH4m0Nbvr0IwZ9AgYAiR8AAP5LEr8qMFRO3oL3lP64zw25r6aTNGBmJg4E3LSZx/X91XdVz6X/AiDxAwDAf1Xkp3m3Iu9zHMtyfRfxsyxLYtjhluf+fiwSPyDxAwAAjD6NRtnS2uXtpXGGfSdXK/0ANzfuE31xn2xr73BMSIwJIPEDAACMpqBA74KTZY4HXp7qvmt7yKv8smGAmxf6nX8ccb+ysjFxYiQGBJD4AQAARpNcLnFkrOqa5qqqRowG3EYajdIxFR0TEkMBSPwAAACjH/rj40IwDgAAN4TCEAAAAAAAIPEDAAAAAAASPwAAAAAAIPEDAAAAAAASPwAAAAAAIPEDAAAAAAASPwAAAAAAEj8AAAAAAPwA0a+99jpGAQBGwm5nGIaVycQYCrg92N6Kg4e+zj66Z9/pvMK6NkKl9ZfyfyB94/TF+TktyjAvIXnN3XT52z86q5gUxj+9buNRYUy0ZvjKnfX8viNVEq2fjLx2lUzL2S//lZNn9JwQLB1QCtd9oXjHlkPZ24/vO1JWWm/ke3h4yejLZRnP7Hnz77mV0vBxfoKrV3C5DezZjesOULGxHoPaaW0uy16/d/POU0fPNHXLPIM8hNRYOgqjjKk9+u7nTf6T/BQXa2XKvv3y63btxEDRv9uMy/NEdoMDaytav/4QPybG/T8/IFzH4e//WaZKDJWOqCymYcuao70JoT6C67wK1O78+ruuwIRrTb/Rnxiu+nLzW8LUfvOXY5YJIaKT/97RHAS/cxcAAMZGJu46cfCbMrclq5aFq2hL24WdG3OyJYuXx4vJMdUNx2kzTbt447Z2tdWxNo4gRtYdftisDH857bKG7sbm1uDrluRI9tUd4TOfnek5sBTDuUP/yu4MnT318eUaib2n7uyp7Z/t0q+cn+7Tv5e5/Gyrm1bVUlKjnxSjumoNl9vgMrN1HNp8sidhzvOPuLF1J7/ckHvcOzPF7Y44jDd4FOAaSEVc8hJGMXCuj62BHdBaF33594vlOIIkRzQOtOe05TKRkGBGo14kfgAAGBPY1oYOWfiUMBXP8WYp8gieMaN9n8HIsb171+YbQwU1p1uMlCxwcvLCqd5SkuupOLllV3ldN0NLNQlz0udESSm29/z+I7tPtxl58sCJSQvSvCSEtfHY0W1H69stfK+YCVnzwjwGvCtyPXV7txw71WBiRW7xc9LnRcuo4ftT7XtGVLukO3/Hhu7Q2I6iQmXq07OFp7YdPlimMxN8dUjCwkUxXrXHNuZ3dhL7vhJmrEiWNl+9VZfYq/blVE1cfncE11RweGtuQ4eVUgbFLVwSQxzNOVDba+vYLlkyf6b2UkRhjRUHj+wubOkmJP4Jk7JmBsjqTm483KFnD34mmb4q/VLoZ1oO7W7wz1qyILp/dVkdljx9uW3rx3srxq+MVJAEZ6g92+g55aHA0o/Lz+mjk52R31Tw+ZbG1GULQxx1WQrXba5PXjqh/nIb5noShK2l7JvcooouRh6euHRxpEdvS63BN3myu8RRa2DMeO/SqiYmxe1yJ+2DexTnLyAszee2f190vpORegelL5gc50ZbWsp3bjtd1mYTaAJSM6dM8uFVZm/K4wUxZeebrDz38ISszGgfoaNu3ZndRw6UdhppRXhqamaSu8hV+RcrrhhwFJKEVYNHTHkl7nFtudlf29OemKmh+lZ/N1pTHI8ttWe+2+Y4E2IcTZqxOG2CB+2q9htjGlqmddhoOx6Tw+fb0IIsNV+/e8b7R1lpGuchK1z3TVHk3asSzCcHz0O/y+vrTM2mv1REvTArjt+30vx2RcRPMuL4Lr5fTMN7ffkbqCR/s2Hy03M05zZ9U+oe1F1Q1srQqjDHHIhw7DX0mCqvNbacrnZv9vEzTTaxT2CogOPc+tqor83ZWlDU0MspfJLuSpsaNOhHIv/+DGGatr5fLJpIFB1usdJibVr60hR3w8W+eBKuWuLy5HHYWDFnN20qFHp3n6vTs8Kg6ckJPcU5RZ0mgdeMZTOTvGimq2rnloLiJjPHl/pPSrl7uo+EaT+8qTTo6dlBo/ECiuv4AQBgTKC8tB7dx3O/y62oajXZCFIZk7Qkqe+iFqa1pMHz7mcfeOmRBMGp/bvKrRzbfnRnlWzWkld/vvKZefKy/edaWK7j2IEttZ6Lnr7/hVUx5PFDhxs507m89QW8aY/c9+rzGVFdxzcd6mAHnGBUHThc4Tn1uZ+uXJ2lrtpzto4lXO8/otqdBXacrjBNmf/UfB9LSUFOV+ADL676nxfvSug9dajcxgtLWjbFzWPyzBXJasu1WjVsvVBXvvOAbdIj9/3s5cxE65n9xRa/9IzpWmncogFx37HXyYPflivm/fj+V55I8b6Q+82xbjJw4r2pGvX4AXHfeVJVX2UPGB8xMDlRnglhng111RbnfwzlF1qCwqLctXGB+pJSw1XW8Cn/QW1gKs/1THhw+curp2ubCvNrWFIWvuzplPC+67E4S0djl1Sjpq/eIxNnbdi1vphImf/iK/cs9G/bvutCr71p74ZCY8Ls519ZvnKS/fD645VWZ2K/UNIdt3L5qz+ZM858+usDrXZHbs3Zu88Ucf/zK19aFcPm7dt7we6i/MuLoFeOgqp72Iix1zkh7cjbViaeufinP7tvRZh+76F6q6vab/Akd3iZLndzOd8GE/pEBfWcrzQ6OsuZGsuaPOIiJaZh8/A6px/DZ+YIW8gZS0uZGU+t/NnzM7RNJ4/WsMTwY3qtVXHDyS2HLngnP/nyslXJROX5XuchY7uObMxrCU1/5pX7H88QF32Td9Y48Iz4358hfU+vL24Le/SnD770YKgh90yZ5ZotGeFYOZ9urtdp7n3hwZdWaNt3HzipTH3qpWVLg7uOnGxjCKbqYH6Nb/rqn6165fF4uqCwSM+N8gso3kMAAGAsIFWJGY8vCZO0Vez8bOOf3vr2823n6vrTGimOSov1F1N8t+CZk+XnixttlNvUhxdlRopJu8VkJ0iLzcIZzpfqg1Ni/UUkTxUy++4JYRLrheIG96QJEQqaEmomp2pNlQ1dA95kKYo0d7U362zCkJRnV08JpGyu9x9J7f0l+kdODZbwCEIUPe2Z++O8+KzFbGNJ1mKxD6jWdu1WDXsbJ0nG2NKo7+UUSQ8+8OBEl9c4WarOtfsnjw+WUbTUOy3Fu62swWVa54wmo0Qy5GJhUiaVE+Zex1BzvWUl+pAEPxEpDIv17iit7hpRJqH8J8YFSUha4hXoYTdbOILiS6UCR8a3tFZu//xwXeikZF/yGj1i6i6USyOmRst4pMA/JW3xBDXbWFtBh06boBZSPPf4cePE9ecaHIGKVI8bN8GDTwvdJk0PI0ur6u2txef4E9JD3fkkXxOaFs+rOt/JjOqIDRwnirTrmjs6TJTPjIWv3B0oYF3VfoNzfmiZrgf4KvNtEEFIpFfb+YZeZ99qG3yDI2TXnofDuZyZI2shQflNjAuWkqTIM8iLccwB+7Bjeo2rXDh9TVGL99R0PzlNK8LHJwfRfac51SWmwGmTNSKKVoYnJLo1na+/MrrMfzJDnO1VxScHKSmC7+nlJ7JbbNdqyYjHylmuNiHCg+84//LwEHiPH6fkEwJfP5Xd6qiACpq75JGZXmLCbjKzJGmzWEf5BRRX9QAAwFjBd4+InRcR63hDNzTXHdt9dN1m+pn71AQpUir633pJuVrGlZstBNtTemzHsaYeSqJRE3bCneDM3cYru6kCQ1Rcb77B1nBo+wfHLoYNsVJpv3LpLhU0Y0bK3pPZH53oFXnEpCbNTRT3uN5/BLX3n5coJBc/Z2xqzdt28mwrI1KpJMYh6cbac61WDYuEioisrN7dubve2cy5hUbMnDchUjU8MZl7zQKFgtdfBl8pE5tMRo4YHs5IsUhsNPY6ohE98DTA2EuIJGKS664trjE2Nm4odxTE2s223tLOuDTNoJpctlEm6/+hwYCLl1ljVe6h7AJzUPrsxxLdxdfskdZgssp9+z/VSorcIiIJ+7kik8z74lXVlFQlt7YanXlOobz4wUpSKVeYG402k8GgL9u4ufhSvdIoztWIUSMcMYWro8Bdit0pSyaZ9h7/+G0D7RWQNGtKmp+L2m9svg8vM8jlaLNdLubbUKJQrd+u2gumYH55m29MitS52H/1eeiin65mJjm8hS7PoEjpxTlA9M8B27BjSjANVxtbzmQ2S+TKi988QrXa+UlZzmDsMdRuWdt0aapKA7krE9dx7vpvz5D+NsmlF1s+8FvPZUtGOlbOgkmaR5H9pVI8Hu9iDf3/WFvKt+0532DiKdylNpbwGe1XTyR+AAAYC9i23R8c5BbfPdff8ZZNy7yDps9oLf62o5NVO9N8N0N48ZwxQGcgxFpee8n3udbEHy2dqKY5/dlPPu0hSIFUZGm/GGa5zrKz9YpgsZgXlJi1Il7Ql/G6G3sEA+4ow/QaBdHz5k/JsulqS7M3Hc7X3qV2sb9hRLUPyDoEYS/POVThMeuJFV5ikq3M3nhkUDTiX7NVw6Op0eYVv/yJSZyx61zO/u/2al5Y6jUsbgklImt9tyNyOAOKvcdoEnk6ctnw9WbK0z+YPnC6whIceflmNWxHUWWLX3iwkNOfvtAeNePlpUFC53Zr8YaNeaXdKVMHnDhwFqPJZeYf8n9r1a4dW9pD734yIVBKXrdHz8ULef8/e/cB38R5/w/8hvaWZQ3b8t7GNhgbgwdgs/cIIxAgzSrZO23a/tv/v+vXlTb50aS//JI2bRoSCCNszPTC2MaAjffee1uy9ri7v2QbsC3ZGMqIk+/7lVcr5NM9z33vkfS506OTTq+lEBfU9tfuwiKzl4LF0mo1JMLH7OFuUEvnsO23NGrbDrZ/O4Aa1GqYTDbOZHMk8TtWzhPaWzGp+lS4CHNSMR/G1Co2pp/UzRCoN1G2nU8atYgi+YnAFVZ9e1HeoeNFypc8HVt3ek4YpdFwo9F4+3DAajCQdDoNdVznqzMdq01OMN7Gt8JRhijyq2tb8FbX8BW2/G2tmmQcjtpGymwyEJTzkYkYB8b3cJ7PFKaP0Nnj96lvNDpRbVEOm63vUlsQpX3kWbUaCyWzH51yxEEbd0e7DU3sG+xSEWL6qI299xGCI90TddtpT5wt5/xZ3DvZ61tX1skaxrJVrwZzcLIv9dPs+/4KCrN6AAAATAeYS0gQWpxaWDtgIRHKqu29caWR8PaQ29/HDRU55e0myqpqyrim9g5WMAjCijP5bBwhDU35DZ0WkkQEgUGc2tyKTjNFDDZmnKvuJtm+IfK23MJaDUFZB4tOnjtVPmYicN3FlEO5vUaEzhNxmBiKoXTny0+l9THndinCSjG4bFuWNPfW3ag3EgR5837bDfqkvXLIZH2Vh/deKR8kcTZXyMGxoROItjURY+I8yy9Y0ppX3KSnSEN3Tm67JMiD7/TkJE2euFjedDottbxXbSKtenVtTvq+XCRucYAA0VaUD3gG3bp2IsM3SNZX3thH0ZgMS0eLyoJQuvrywg7y1lYSE0xhoQbrL5eLFm0I92CRVlutiDH1cdwi3MvbX12dXaMnEEvH1WtpDUamu3eAtS6rSG2hiP7SokK9MsTDPg76i4uL+qykWXXjUq3J39udIQvx117PaOi3LadpOb8vLb9vgoqN2TvkHSvGYNI07d1qAiHUjXllmqGvafRkfXkxvcFI0dgiAQO3DRjcSeu29et6ujvUFmrMgZZnALM5K7Olz0RRhLGz+Gp2qzgkgIs6rhNxVu07jLfbwyAgWNSYUdDs5hPAnmQcjmRyFk3V0mamEHN7XmWjfXK7s5HppIdT4rhPaeiEtUUFHsGS9uysDh1J6RqLrtQTw0ULJOsyb/TbaqZvvnFgX0nHqPGGu937CJmE056M7FPV6H16d8/ikXFH4BweA0cIVU1VVb/tn06Wsmj6W7v01nt6BYXr8QMApgquxw8ebeQX+ihdBurSz185n1qYW9RpcotYt8xPjOvrC7p5vnjJ2ey0672cqMS1sS4srlCgrjyTUni9pNPi6yvrqshTSRcuDBZ3lZ06fS2rcEA0L3FJKI8rd3M31J8/nZee26CWz1q/SDlqCjtNImU25+aeSS22xQ7XxPjkQC7HcXl0iq27hrM6iw1usYF8DMHFLrS6jMsXrtRU9nLCArCy3BZmqL8S7c/PuFGFKmNi/Dwm7BVibKstNrrPCWB3l1YMuM0I85G46OsunrItXNWIeq9cESpjYtbehsz0KoMyyE84MpOC7eYu19ScPZ2Xcb0dCZq3IVHOxhBDa02J2WPOmEuMo0yZV6jMWJWbf/7C9ayC5m7UbeGGhGg5jRqoPp9FRa4Icrt5IpXOtTRk1lqDwyI9sLpLOeczi6808/ykRswrNFiM3+xDIL+trEcWMXQ9fqqnvNR2O8RYfSG/rjin6NKl4f/K+t3Cb10AHuW7jNsiOVfk40lUXLh8Jq2sxuqxfHWEB5fv7U1vzMpJuVhcOiCM2zA3QowNVJf3u3oYruakZNb2ScI3rvAX03AXbzlaW3D6zPXLRf2C2PnLw3l0h/XLbl98H8VMfcN7ITbWT+FQsdtVEnNMpfmnLxZmXVcrfLk6tme0v1whVF0/m3vhUmlhBzt6dWy4mCFxaJ2GmMuOHTs36DXHj3P7CALjefvz+ooL0y5eS8uuqRvkzVqdGOfBQDGB3GGdIhE6rtohSpHT8VZiHyejxw7K4JqrslokC+Jm2q+o43Qc+tDqyvsU4WFSnojZk3s2L/1SSRXu5kGQihg/TzeH8U9z7OGt6H5rgHF6y0u7peHhMvsY6K2w357hJh6/T5maqrweQXSAj9yhtr5iD19Bf/7V0+cKbvRI5oQgA2yfSKXYy5fVmp17+kJRfjMesTouRka/XVL83kcIjdJWX+3kRgV4MO1Xp6q51sWN8hd3D2+LROnYEw/Ktk/PqJWjnkoo08lri338j9SBHCi7opbH+dieFtau+msq17hQdymnL+d03uX8xnaaV6ig/UoR4TeT03a1VzTHT9Q1/Kznqq9f/CybioiSc+7+KqeowWCCtxEAwFTYXi5MJotC4QKlAN8iZO/FT3NZm9ckuqLfu9a/VfvBaiFwOv2RlYGsPXkwT7nhiSgW+hC32UTiTBr63a02ZTUTKIOGP4otvN+1fZAjxFSfdk2UlOjywGfOUJqrGe0hScGCu98GmMcPAAAAgP8URqNj379tflS/Ffywqo3SGLTvW23vHtFVrXeb4fsQ+mto60C9Pfn3dMgCs3oAAFMFs3rAtxFK44pFUpmAi3//WgejMPhCqUwkYsEXFMFDHiEYTy6TPpTf/qYLJB7ie/xoB87xAwAAmN7v43J/9+9r6+D2sRfP3YsHZQAwQiY6LoEhAAAAAAAAACR+AAAAAAAAACR+AAAA4FvF3JX+rwPv7y3rtTYf+fOFQgOlykv58FwX8UAbpVRZnx1P76Lu4gEPoVcAgO8xmMcPAABg+qNIAsFwh2+0kb0tFUTIrqdmuKLG+Vt5LCZyf1M15fh7svfUTwAAgMQPAADge89+5fs8vT+jqahLj/G858xbm6jgkm0nPqySLWaXpA7OemZZpKHmXEpRVY+FIfGMXzU3xqUz5Wh1vxo9cJCxbRM/+3CFz4tLfG6t0KIqvpCTWdGvxwWB8fGrYl1ZTtu19OenZF+qUhkRutgvcu26MA8GUXb4SIWrz2B+VTeBiwKiN60PkuKUtrHo1JnKZj3NNcBbaEHG/G4FMWk/b/2olfNeWTvys09ltfWZMaFP+NoN4UoGjAYAwN2BWT0AAACmCaK7vE228eUn3noqklGYcb7aTA2F6et1kvUvLpvD6Uw9eEMfueS1d7buiLFmH7hWh3qt2hAkVoRv3xrq8ANZRFNaarohaPtrO97aFUbmpqc2OP/pen15ftqA9xNv7vrpmysidYWXqy32eyl9RQWR9MKOd19L8uoouNJEUvrGM9/UsReufvONNUuEXVU9pEPnJ+6nebJeUarqc5mWmKcef/ftVdHm4oxSAwUjAQAAiR8AAMB3E8oOSZihZGN0F9/kOfya0nZ7+ka5IbGBMiZKtDfX4v7zo8RMjOYaMXMmu7WyjZxwVWR3aSU9aoG/Kx2lS/wTImj1Nf1OJ/ywQue/tD1cTidNRguJkiaTdShwYx6zw325KMqS+cgJo4ky1dXVuYYlh/LpOMsrPiLY8eLcU+mn015hKErou9rVOkoQu/OJnbPZMCcIAHC3YFYPAACA6ZL4WULB8C9doXwxj6o2mhC67TBAyLffRekNBp5CMHwiC+OK+OZuPYlMNAGGMGi16qpDx0pvxmduyASnzg3duSkFZd0ESyTi6Efldx5r+KGo/f8oo95EE/G4w3fR+GK+k8OVyfo5ca9QQdCaNboLWef/eoxy8Q9KXh4VLIKzdQAASPwAAAC+kyjj4CCByG3vXJRWpUXYXozhyD0UulEOi6XVakiEj9lj9aCWzmFPnIwxJpsjid+xcp7Q/liTqk+Fi5z9bK61Ou1yrXTx7m1yNkrWnTyUM8GxCJvLsqq1OgoR2NZH6rV6xCHzT9pP7YS9wox6izxi6+4YSj9QmZZxPFXyxiYfmMkPALgrcJ4AAADAdEn8hoqc8nYTZVU1ZVxTewcrRgdf3M07wFqXVaS2UER/aVGhXhniMfF7HC4L8ddez2joty2taTm/Ly2/z96Arqe7Q2UZdbafIqwUg8tmoIi5t+5GvZEgnM8UYvh4e3eVZ1RprZS5Pa+kQjfhZPvJ+umsV1Rf5eG9V8oHSZzNFXJwDENH+qm2wIR+AMAUwTl+AAAA0wQmClKqz3y6v8/M9oxJWhvBRkfHb7rbkq2zzqac33PBQpco47bGBjCRiTMxPXDZItXZ3L17cs00vl9c0mofHEFM1efPZMlWvrxUdvN8Pz0oMar0WMqe60yBwmd2lFtaVnZ+4CK2w+pQnv/aTZqT50795TgiCpsV61c9cctO+qmeuFcYFb4i4tLZT/edRmh894B1a7wYiLns/JlsxeqXFrvCnH4AwFSgBoMJqgAAmArby4XJZFEoXKAU4BGwX50zl7V5TeIDTbmm+rRroqREF/gEHADwXQKvaQAAAMAwoqta7zZDDG+NAIDvGJjVAwAAYDrABBFLozHBA53GgssjwuVQagAAJH4AAADgUWDI/d2hCgAAcA/go0sAAAAAAAAg8QMAAAAAAAAg8QMAAAAAAAAg8QMAAAAAAAAg8QMAAAAAAAAg8QMAAAAAAAAg8QMAAAAAAACJHwAAAAAAAACJHwAAAAAAADC94D//+S+gCgCAqbBaCYIgeTz25IsZC46+8Ma+Q3WixQluLNTZEpby/372QPOsmBki9FFuD6W9+F9//EIftSCAObofhqyvnvpVnd/qULf7cErEmPnH33/SO2NRCOc/3VRz/9XDxz/63xP/+jLtxLni4jZCGuAhY022VoqkKBRFx96mBq7+5vlz+vmzAjkoDGkAAPiegHP8AID7y1x+pVrHZJIVFYUaCspxnw5OTEVffP7fmZaYJ598779f/c0bC/27sn73u7Ra88QPIXuO/ey37+dYxt1G2crkzdFBHKgpAABA4gcAgHtjbLxSaApZvyCCasgrNDyQyE9R5MMO3A+7RcpitY7+t7UxK0cbsXXTY7FKd5mLV9jMHa8vDm3PT60k7nrVLPf562b6jz7B//DrCQAA4OGiQQkAAPeRqaLsht7jsfmzaBXpe6/WaOfP5A9lS7K/5pvPUzNK+8xij7krfe3npilt+h/27HfZ/tHuAIb9n4bsD97/nL3lwxcDLZW5n395paBx0MIUeEXG7nw6IUyAIvqiP75UFPJDWd5nubVGusRvxuMvrE1S2l7EiO5raf8+WlLeomO4BS7btWZjBA9DqMGKnC8OFBQ3qCxCtzmrlj+53JNn64mlL3d/ypErLb2IKDguxss66cY4bdG17qNXDhmfevvtRLZ9y8x1f399f9/jb76bxO4rSP/nvusl7Uaaq2fchlVPLlKwRod4bf2Xv/n6uu/G/7c71AU1NaSd/+psVU2XiaMMWLZt1fpIPoYQ1Xs/+hhdsZN25fN07q6PNsfSb4dyiiQ1Kh2BcIZftVFh+HP/V2pVDJ21MfdmHzh3Iq+pXUOTh0Vt+UHyXJnqxC8/OdhoJv/2x7cbN8yvPDZyu+mpP67q/MOrxdHvP72SUzxBPSlVSebf914r7aQU8xbOJy5lefzg94/JkP7ao59fvFjarUV5PjELnn06xocF4x0AAKYHOMcPALiPLOV51Trf0Nmu/Jmz3C2l5UW6obP8ZM/pD75O6fd54me7f/FMqO5kRr7JFlq5UXO8DUVVtcOx21B/tZQRE+/LsjYd+jC1NWD5L/7yxp9/usSrKfXvKR0jp7It9Ye/0Sz+6Vt//+vOJfTyz/aXaSnEUpv+pw9L8fkbfv2nH+6erT31wYksFUW2X/nLn3K1s5b97A8v/mKnX++RL94/308i1uqD+z66TM595unf/nhJcFvmyYo7nSN3bJHpEzsTLytoMA7/vaaywOifEM0hmrL+/MF107z1v/7zC++sEZT9a+8/829/xEEZ20/8+UCObMVPnwt1waj+7CO/+7rHb9P23//p2d3x5MU/f/lN/XAVKFXuhRTDzBd/vnwmfVQ36D4LFogavv70nd+f+Ca1srbXRKIsRZC30nYgRBkLP//i72WCVa/88L3/2rqSX/nR786WGF3X/fL5rT6MOS+/+5cnwjfcur1diU++dRRCtF5+7y83aIu2/PZ321fSrn19WTvUL33Ovw6eMYa99OtX3/vpQmlZyidne+CTAQAAgMQPAPj+MTXmFRi8Y4KkGOo6K8jLXJdXZLSlXqL+xsUG2fqXliUESL1mzP3hrnCB/fQ4KowKDdLUFjTao6OhtLyUFRofSkdITuTGx17YGuYnFykCwuJD2BqV7mZ0pkVsWL0oUCh09VmR5I30qVWUtSw1v3/Wkh+u8PN0U0RvXrV5Jk3bT9SnX20MXfLS+mAfN1e/2OTd66RVmWWdxobUDHX4tsc2xbh5+ARteH5RBPOOm+TYIjM81h8traq0HbQgRN21KlNkRBSPrM3MbwtMevGxEF93+Yxl655KoK6kVY/029qb9uGXh63x774yW0GzHf8MZJ+tka3bsG2eh7tCEbV6/dbwvkvZHdbhQwN60PZds8I8+WO6hrJmPrX7v15JDMM70vbu/+lLv3/unS+/uNxttH90UHkuh7b0uVULQ6QKpc/iZ5fHGUsyKyxT22GOW0fUpee3hSU/s9zHU+mZ9OTSeCE6nPj7+qzigMAQpVgRMPsHP965I5oL3/wFAIDpAmb1AADuX+CvKMvXuiYFs3UaPcLzCHa1ZF6t08eHox09vSKvENnIKQZ2oLc33mHPsaLg2ICzF250bw9wKbtWz47dFmKf3yOLjseKr+YebO5pb20rK9NS82+doxB6eY5cnoZGHzpbTQ62tJjc5nqMxE+a++rXtyKIOfuIylh48tWnT488kLBYBUpVP95ucJ0dPLIsKvQKdceK7nBWxKFFBOGEh0VYz+bXWKNCOq4WmGfuDOQhpo5WrUuAUjyyiXT/IAV5qrubDLZ1sS3lyH4MIRgD/VbKh4kiZH9Ht7X+4MdPfzPSCGk2Iyzt8NEBTemmdPrCjHH8EhfuTlyIWA2dNTXZFy6d+OhzFeOVl6S9naa+4t/+4fzNlVmMRJjKPKVvUDhuHWVsaRmUBCh4w/cyFL7uWJN9SZfYRf6n//mP14r9o8L9ZsaGz/aDa/0AAAAkfgDA946lIq9abdUc+79/OHbrPk1ZsSF81s1rRA5D6XT68L8xfnSsx5eXarrWyK+WMGPfUtLt81rK/+fnR8pkEUlzvONmR8+RHPj8VnpFcfr4Fy2SJBEMGxc+MVt+dV22a89T3qMXJ7tzkTEL4jf7MTEnLdoiv39suPnrgg4Tq6LAGLgzkokgelsfx2yj7R8kMtxxShH747d8L//qy69OzAnf7sFAbNvPnPfcu6/Hjls1YW+PSccdGiQarv79IrbqmRgv299obEVo5KYQX8HgB19dbSE20Bk0v2f2PLlYOHZbSP2d95iTraPIMZN1UGzkGAZzW/LEXyOarl+vKS0t+MfJVNcNT/5yiycTRj0AAEwHMKsHAHCfmJuuFOg9Hnvx64O/OTT039e/m+9urMsrNjHcpVJVc1X3SJY017c0jXxlFnWZHerTWpWXXV7MCYv3t+VZSleYn4vHvPGz9VtXzpobruBS1slOV2MCdzd6R13HyJR5ouPorz789LrV00eqrm25OdOcaDy9/7df11vErh7svqqbc20ofXtN+z3NRUdZM2N9tIUVWVeqjLMjw1m2e5juHry+uraBkfVZ6mu6UDfp0KcamDJ2VpCr3+bHg1Rnz13sJBHc1UdJ1Vd3jMy8IQcy/uef/7yqpyZL5rrazLzclvHfOmCxGbhU7snsqrx5nU5qsOJfv/4mveteL5KEst0U7L6mrpEambsahktk7co6mFVCeSWuXvrCuy++97SyJausyQqDHgAAIPEDAL5Xgb+irEAjS4xX3DpFjftGxHmYiq7WmXxmJfl0H/vfi1ca+tqrC/7575LBmwthrsGx3u0nvq7gzo3wtd+JMkR8tqazolFr0A5UXjy5N0dn1hqMEyZYRsTimZzr5z+72NTe01t0/NypNmmoP1OREBPenvHfnxfVtPc3Xjn/yaFWkb+CQfddtIBfcuDYsRtdna31Zz5NLTTd28wUlBsZFtqfvz/DNDt++Io1eMDC2W7VGZ8er27u6q1MO/35ZWTe4mDe7dWjovilG73bjuwvUyGcOUvDTGePfHKhsbW7u/Do8S/z6d6+7Em6gimjVkdqTrx/8JucxsbWnubauoy9X++vli5J9qQx/ZcsZOX84/CJwq6u9sazf0/JMEr9XUd+d0ur1poJyuH2JPCQRbOlJemfp7Z0dLZnfZWRb/+oALW9V3RdT//nV1fL2tV97Q2XC7pxuasE3kAAAGCagFk9AID7wlKRV6X1jY9XjoqBuDw+Tn48pbzUtHnNG48bPk/b+5srgwz5wh1rlx27dDPMimLmyPftt8bFyYePAhiRybuTjn7xuw++oYsC5yY++zz+v58c/+Np918tct4wK2zZT55HPj9+6Kd7zRxl4Po3VyWKURSZ/fK7pn/vz/zTT9SEyC12544nY+zzzoO2PvGSNeXop38/bOAEL1v5VPzJS/cW+fmBc0JO5jdHJoSOXFKH5jP/R29Y/rn/6M8OGemunnFP7XoyxhbijaNiu+uynbGpv7p4pCz4mZg1P3nm3N6UQ/9nr4WjDFj79upF0kmPPTBR0mvPMo+mntq//2ifkWBw3fyDNv1kyUo/+2t4yLYdryBnjv3js0Namjxs9mtvJton/yDC4Ejpib173lX/8M/bpLduv7fyTu8KfknvvkZ88uVXPz3ED1+ZtDrgSD6TZuvA6hdWdn526U/vnLGyhd6RsW8+MxsSPwAATBeowWCCKgAApsL2cmEyWRQKFyjFdxelrS+/OiifP8vVfihjbf3ynS/6d/zotTl0KA0AAExfcIoGAADALSimqj7wP2cuNOgtFn3t+YwsfcCcEPg0GAAApjd4HQcAAHAbJ2rFW+tPf/GXPfvVlMAzYOXrq+fy4TqcAAAAiR8AAMB3BsoOXr35v1ZDIQAA4LsDZvUAAAAAAAAAiR8AAAAAAAAAiR8AAAAAAAAAiR8AAAAAAAAAiR8AAAAAAAAAiR8AAAAAAAAAiR8AAAAAAABI/AAAAAAAAABI/AAAAAAAAABI/AAAAAAAAIBvCxqUAAAAwHSh0egbmzr7+tRQCvAISSRCH28Fn8+BUgBI/AAAAMB9jvv5BVV+fu5BgZ4oikJBwKNA2XR1D9iGYvTsYAj9ABI/AAAAcD81NnXa4r5CLrGl/eHED7kfPMSkb/8f26AjSco2CIcHZES4H1QGQOIHAAAA7pu+PnVQoHI47g+DmoCHZvgYk6IoDLOFflIuE9fXt0NZACR+AAAA4L6nLgxFRwd+iP3goSJJ24Ajh4YdjDwwncC1egAAAEwnFDV8jh+Bs/zgURxz3hp4MPgAJH4AAADgAb1vYcNJC/IWeDSJH4YfgMQPAAAAAAAA+HaBefwAAPAdRPYW/+Pj6x0jZyRRGpvvMWP2muW+ku/KeR6YzwNg+AEAiR8AAL7nkZ8gmV5rnpnrh9v+QZlVrRnHs88q5E9EcdAH1B6B4TjUHQAAIPEDAAB4eDCWmC8eTuFCv2C3gqxePYVwUIuq+EJOZkW/HhcExsevinVlIdaO/OxTWW19ZkzoE752Q7iSgZi6qs+lFFX1WBgSz/hVc2Pc6L1ZJ7+xJuxOlmAI1Zd9+pA5bneyoOzgsQa/COu1QnLhlk0+vdmnr1xr1CECWeSi+ORADjaltihVXsrfipW7n5sphVOnAADwIN4PoAQAAPBdR1nU7XXdTC8vAYYQTWmp6VqfNU+ue2aDvzknPbXBSqmqz2aaZmxa/fyzC2cYitNLDZS1I/XgDU1Q/JPPrVoXbrp84FqdGSGsJGklh9dI3rxttRjL8/t816xYEWAuOZVewol4/Jm1j8cxKk7m11mm1haCcvyjNiR5CSDuAwDAgwHn+AEA4Dsa801NR/7w76P2WyRBoC6zFjzhz0DIjuIKPPSxAG8pA5MExgZXnqrqJ+YRlFU/oCbobvK5j62bzWCR7U01qOeq2W5yNkbODAvNv1TeRsZO0JAkOHiGh4hhri1pFM581ttNgiP8iCXmAS7RnT+Ftmw5nyFRBItReEMCAABI/AAAAO4CyvRcNTKPnzT11p87XlTU67tIotPoNNWnTtcOn1CnEHagFRUELlmkzco+/9cTlIt/UPLyKH+N3sCVSdn2z4ExlljMs9RpyDGHE6Pa4YpFDAyhdFo9jesixO0rZogCZwpQpGEqbQUzUQTFaPAdAAAAgMQPAADgLt2ex08J/ANdy5p6SUTKYLJFs9cmRwvtMdykHtCwXDGzieY5Y21QhFmrbszLO35R8upsBlOn15GIyJb5KYNOT2Mx7emfGkn6lEFvpm6+gaDDF8hnMhlmg9469MZCGZqKWvAg9lTaemOzDwP2FQAAPND3AygBAAB856E4k4FTZoOFwmVBXvrS/G4rm8NF+6+czK3Q4lRv5ZGvbzQjHFeFRMLBUIrE3bx8iIasIrWFIvpLi4oNiiAlxmDg2s4eNYEQ6sarlVpyXBMct0C3/us5XXqK0jeWnLvcZWBNqS3bY63agdYunQX2EwAAPBhwjh8AAL4P6Hw+rbuuVRsTEJwc159euHdPrpnG854Vu8QTx5DA+UG56Z/uO43Q+ArvJUs8GWwsaXVoWub5PRcsdBe3qNXRQRwUD5sRXpX/j/dvWClekLd4/DQcTBi1Ys7gxZz//bOB4knCF8f6MVjIVNpCKFVpzr9LPHY/Nwuu1QMAAA8CajCYoAoAgKmwvVyYTBaFwgVKMQ2Q5sFBki1i0W/eYdVrtSRLyKOhFGnSG40WkkJROovFYeIoQlkMBr2JoOwT6ulsDpOOIRRh0etNFsJ+F4vLYtoCPkUYtAaTxWokaXw2RmAsARszazUWJp873IxtAZ3RbKUoDGdxWCyabcVTasu2kNpEEwoYk3/unJF5Iz4uArNDMQwODsAjQFG2/+wIgszJLUlaGAU1AdMCnOMHAIDvIowhEI19uefwRu5AMSaXwxzzR9QWvYXssXfhdC6fPu4uNp83dimEweMzRi/A445ZYGptYUyOmAn7DAAAHth7ApQAAADAtGL/+jBFQR3AIxt+JAnjD0DiBwAAAB5s3Kcg8YOHPfJG5vMgw4MPRiCYXmBWDwAAgGmUuiiSpIYm8ZMkCVP5wSMYgUNISPwAEj8AAABw/0kkwq7uAYVcYg/7drbMZftfKAx4mHEfGYr7aE9vn21AQk0AJH4AAADgfvLxVuQXVNluyGViW9a3pa4xP/4LwMMI/fb/bHG/rq49enYwFARA4gcAAADuJz6fY8tYjU2d9fXtUA3wCEkkQttQtA1IKAWAxA8AAADc/9AfEe4HdQAAgLsC1+oBAAAAAAAAEj8AAAAAAAAAEj8AAAAAAAAAEj8AAAAAAAAAEj8AAAAAAAAAEj8AAAAAAAAAEj8AAAAAAACQ+AEAAAAAAACQ+AEAAIBHyNrfnP7NyT1/+vdvf/fVns/S0ysHLRMuS6lLr6SUaCiE6ss+9dGFbuI/atlScmDfN1Xj10HpGk+drBmkvqv1vlXDOyKbzx3+4pqOcqwY0XzkzxcKDc4e0115PLVFb2tGU3viVL3GYQGiq+yrD7/+JP0u9t2tdSJEx6k9Z69r4UnzEPb+7Yfceq7dw76bqolH1N2Mz1GvKtWX/vT3op7p9Cw216RnXeu6ux7Db+4CAACYHsiB6oOf55si5255XillWXobqlPPphzUrdoeLXB6+so80NNCWigEFYTP20AIJj/FZXvzRO8helyuYsxcIkCnfW0JgsRxbOIaIve+ibhs/lYei+ms5kZVUztiS4Qo3zeKdSGrwWuV7+hYQg02NPYFJr+cLMMnHRcEgeH4+HU+iGo8uDrf16BOEgiGT7jDKNszYop7c2p7f3T9bz3XKNUk++4OPbzrEfUwqvoQDrCG9szUqkIMtnd2+97d8xISPwAAgGnBXJ1R0D8jefcSBcP+T4ZbSNRWtvnTwwVVMxbQLxzOpfkQVTUdZpprYOSaVaHSlquH8vr7kfSvmcnLqLxj2jkvLpVhhu4rKVfy6getbEnYwvilEUI60XHqb6Ws2UhJdpcZZ3slLNgUJ2VY+vNTsi9VqYwIXewXuXZdmAfD2Tu0oflam2v8UnukMTQXH08pb1ITDIln0vqEKMnAxU/z9P6MpqIuPcbznjNvbaKCi1Ka2oIT56tbBgmcK4lcumBpCBcjdTUZOReKevQ0vvfs2NUJcg5ibr9q62Zrr4kuD4taszxAOuq9mtK0pJ64WthmIFkuEUsXLA/lYY7LY73OWkcIdXPaqfySNh0lcItdkZDow1TnnT046D+jr+SGMP7FJczCsVstb75Vw0Xb5nE7HXpFqJpTT14r7rCw3bz9GRTl4jSc9GYfrvB5celM65ieL/PsPnmiTq3B9x6l7dwQ4BEuO5/VpPP15956XFPBoew+NXlpL2fhrkRew6WcCze6BhGOMjJmTbKnELOUHDzW4BdhvVZILtyyOcy+Fyht/e11rrWtiewvzfnsamOPkemVuGBTvJQ5WW0p1ehqrJR0OSw5fi9LccrJiGo6/H5tyBuLw+lDZ6M/qA16PVlZMGrNywX1d7HHydqT48e2GxMhBurPncgv7TBSdK4yJm7jQjcO0XbiwyrZYnZJ6uCsZ5aGdN8YO9I42mvn9jbwxV2NTTpEGBKzzKc381JTr5kTtHzx+gg+5jDm77T3ndTfPjzL7c+13UEtt/fdgpuhf0wPl82mWsaORhZKDJZdyE4r6zezXQJ9aI36gJc2K4q+PNEev2Wtny3Qm27sO9Y6b8ta7+ERtcSn+A77a0rjcyIWVfGFnMyKfj0uCIyPXxXrykIcnr++vUc/LFY8vSZBYkvehhv7jpQEb9wVTeuY+PmLONnXRNnhwzeYisHKFjXJ9Fk4L1JTmlbSb2DIk7Ykx0odX0lkA1lpmc06S98Z9mKvxguDC15JCKDZXo7qD/5PbeDzy2bznG8QzOoBAAAwHRA91Q3M0Ej56OzN8AwI43TWtJEIYm0oHwzfsfXHry+daSz6JrMbCYjdMtdFOid52zzxzbc6U0VK2nVa5A/e3PHKJs++82mX2kn73dbW0p6AZ360862d/tqs4ioToi/PTxvwfuLNXT99c0WkrvBytfOpQ5bmli6ZQmZbO9mXm1LFTl7/o3cf3xagTr3carZ3uLu8Tbbx5SfeeiqSUZhxvtpMkb1XztXzFm/48U92vLScX5VR2UVSfVczTzTL1r24/Y1dYei1y9ntlKEy90A+bf5Tj//4tUUhA9cOX+4jR51Prc/MrpUlvvKjHa+uEddfLGshEefLO2l9IOdQbpf/gpfe2f7cInbJkdwy+9wXsq+o1jB35Qsr3UwOW00bVUOTYyuUtuDE5QbFvOff3rJrHlJXo5t0ksH4nrdy/Nau8xcqZ+3aGCBAEUzqpuhpaTKPOpPrPXtzvEQ8yxYZpZqCS0erBct/uP2d3XGKhqwjVwft20gZywsGQrdt3hR28wwzb8w6EaKrvNN98yvb39jpq8sqrjYhk9Z2TDXMjks62csTjChnm39zzQrV3e1xxHFsWxGi/lJek/uCV9/d9c5zEXj+jRI1NRypr9dJ1r+4bA6vz2Gk2es10GqasWv7T15LkNflnKhzs1Xm5eWCuty6XsrJmL/D3ndWf2f7buw5/ts9VDmMRqrzctqZLvcNL21/bXsIUds6hclyk+6vuxuf419umtJS0w1B21/b8dauMDI3PbXBijg+f+luIT6amjo9ZT/+b6/qkIYHc4yT7k3DBJVsVUk2v7HzrW1evRcyC4TxL7y1ZZPvQE5BD+HkuWz1WLBooRc3fN3KRWHKAG5H7dCoMzU0t8q9AnkTbhIkfgAAANMi8Rt1ZpaAN/ZTbIwj4Fm0Oqst7IlnzoyS0nGmS8zCALSivtUxelk6K+r5MQu8xTSU5RaaGGqpqVbZl8JEEfN8hBhCl8k9WFaTBWGFzn9pe7icTpqMFhIlTSars6xA9bX382SioUCDYqhV1dnXZ8Dckta+s9HbfliCskMSZijZGN3FN3kOv6a03YK5JP5g3apgNmo1GawIarKYKG1Nhdo3boaShdJEfks2RgVwzA2lba6xUUECHGNK5sR7GeraBkY1j2GocaC3U2Vh+sW9/Opcb8zifHmH1k29jeUG7/lzJCwMFwZGRrt01LQOTX5RBif6cmjI5FvtpJV+VVNJlyJxgQcfxwWBs+b54JPvQIeejwuJQplgoK3XaSoz1Vf2KufN8uVhOFeREKfoqWrTDi0oiwwPse3OCZsURc7zFmIoS65wY1pMFsvktR1VDadLOuzliUaUU8Nrvvs97mxsYz7LNjyVLGcjVoORRFGLafhICeWGxAbKmLbjJ4eRNvR3ln/gDBGGsl09JOyAWbYxj3I8pGKrxUzd9d4fmEr9Hd3sIek4Gpt7KyrNoQvCPW2DVuyzIFoypYQ68f662/E59lCiu7SSHrXA35WO0iX+CRG0+pp+wklVGX7B8p6aNp19jDa3ufsG8SYfYxP9FfOKDJLSEaabVMpQzJoppCMMdw+R1Tx0rsHxleR2PUUBfnhD7QCJWBqrOqXBnhMHfpjVAwAAYFrAWVy6UaOjEP6ogEEatHoa155XUYGQOxwRUCFfYGzXkwh3XEI3G/UkRzjycEwgZBtURgpBEZTFH1kUHZkWa+jOTSko6yZYIhFHP1GHKL3OxJQw7I/AXOI2xBhSr33+gRaXe8YunpvgZVsZSygYDhkoX8yjqo0mhNRUXD17tUODcSRixIq4IpRxUH97MZG3n4jS5WktbZfPfHx1ZDPZQqH19nxdzCcpKS614OTfr+tY0rD42GXRbI3z5ce3btTqNdrmE5923Aw+XG+KtKcJAYeO3GmrKbNjKxa90cjhC0cezBSLGZMmP4eex7jSxyzAYDNNbXpnU5Mpo87IEAhGkiVdyGMbDPYFEZQn4EzWKMrmc9Hbe9bZVljHNHizGk6XRMfv5Xip0xE1QVdG1ny3exxxNrZRc1d1ysWaNgNN4Mq1kIjbzUaE/JEnxsC4kTb8HKINT55HUZRGpw/X5WY7d7n3rVOpv7MyDPeQcjIa9Ro9x1U4sqECEQ9rHz8OJq7qfz4+x51fMGi16qpDx0pvPoYbQjmtKsvfy+N8c4PBl17d4x4Wx518jE1cSZyGocPjFKPRaCNj9uZWOr6S3K6APNDder61L1FS1SQMXjTZ7oDEDwAAYFokfmmAjzG9uGe+QnYrKVra68q17slKDKmgNGodiXBw+/c9tRomk+3w1ocyWBxMr9ZSiMie/jSDRiaHiSJmh5as1WmXa6WLd2+Ts1Gy7uShnAl6xGTSLRbb+zUdJY1aRJH8ROAKq769KO/Q8SLlywH2bDdIIHKaPd6otAjbi9ZbfjrLHP30ptlinFKX/fsLja1PXJap19ZxxN7x/qqyVoEvm03ziV6zLYIxnA/bNQzp7bOdhE7PCF2+cu4ai6q54uTh7DyvFWIny2sdW2eyWRxx0Mbd0W72tRGDXSpCTEdu3PoW56RbjdIdeyVj1LP1XWoLorR/h9Kq1Vgo2WQZyqHn6xLHlt1ipTEZTmMik8Mytw7aSm0PbVaN3sCSsUei650SJnqHrZBizpZ3uiRiHBi3l19wczai7GdgKWo44JkMBDV2zXe7x+33jR/bVFfWyRrGslWvBnNwsi/10+zb3R9qhnQcaXdw13vf1sNuZMpfAR5d4KHHoI6jUUhdZ+gHBknEBR/aZP34T0sok94wwf69D+Nz3PEpk82RxO9YOU9ob8Ck6lPhIrS31LGqKEcZosivrm3BW13DV7BQ1DzZ3pygkr2Td8bhuTz6WYK7K310RdVl2gaR14JJryEAs3oAAABMC4zgpChhScahyy3dWithMXRVFuw/VCdKjgpm2d8V+4uLi/qspFl141Ktyd/bfeibnIR1VGygy0N8B/OzWtQEZeqqvFyBBwaJnb0L2h5FMbhsW7o099bdqDcShNOZGpjYla8dGJpdQvZkfXkxvcFI0dgiAQPHUPtqKUNFTnm7ibKqmjKuqb2DFQyCsOJMPhtHSENTfkOnhSQRQWAQpza3otNMEYONGeequ0m2b4i8LbewVkNQ1sGik+dOlY8+42qtu5hyKLfXiNB5Ig7T1hBKd768Q+ssmWcgWZd5o99EUfrmGwf2lXQQU9nq4Ro6aQUVeARL2rOzOnQkpWssulI/+QVyHHs+fCBgHZk+Qur6B/lSpzsEYfkFS1rzipv0FGnozsltlwR58CfJNrfWOR590treaUnHvex8RNFZNFVLm5lCzO15lY3WcRH1bve4s7GNEVYC5/AYOEKoaqqq+m3/HFcBh5F2hznsd733/8MnM+Y4GilxUABadqm83UhZ1U2X8nuGemA7CLR0tKgsCKWrLy/sIKe+vyYYn5Sup7tDbblDPXBZiL/2ekZDv4UiNC3n96Xl901UVVZAsKgxo6DZzSeAfccxdk+VdHwlGdozxPAG0WRB3urctGZBsJdo0gMwOMcPAABgesAlIY8/xcpKK9yXk6YlmSK528w1q+cF8jHElgMwjyBR/TdHUtWUwC9861IPJoLw5K7E8Yt72ctWj7wRssJWLVKlXPnXB1kESxyyZNFCD8zZdRzpQYlRpcdS9lxnChQ+s6Pc0rKy8wOTHC8vyfFxY5d0D1JSEU25cEXrsZNH3jMhDKFizroYT0xTjYmClOozn+7vM7M9Y5LWRtiSQsiikPSU/zmIcwW+0f7hrIJTF31fXpK8Up996KNiI8b1jZuf6IGx3BM2Deae/ezAEYLuGjRrY4LLqBTMDEuOqTuZ+tc8AmMJ/OcnzJViDFfH5XsRh9ZRlJ20Nfr86bQP08wYXxa9PiGUjajvsNVLZ4zUcPmuOIdWUGTuYwmakzkfv2fAZUHxMa7Vk+09x56j2KCrQpX3+WHmM5sDBdrudqbbLOfTkFFx9IKN2pyUT/ZrEZZ7ROKmuUIMcf51akx0c50bHdeF8iMnqe2dlqSJHfYyE3EcUYg8dqHkm6OH37MQDC9fH8G4D5FQWfxd7XHEydjGybhFrt8cOryHzpEGhUSFtGadKg79geuoPO040nx2TXalmrvf+4jlP3syyxxGI44kL16Ukn3gw0ILSzEnxJ2usncsMGFm8bGzH1wlCa5nqBcdmfr+cj4+zdXnz2QrVr+02HV0PCY7Cv73d4U3p85JFu1eHbdskeps7t49uWYa3y8uabUPjlHOnr/L3fiBXi7nCniLlew7jzGnf73TtWQdn8sIIXVnpx09cXHruiVedO9AuaVUFxzEm/wTF9RgMMG7CABgKmwvFyaTRaFwgVKAbxmy9uTBPOWGJ6JYD/fK+IbCg1nGpUvniR2aJXsvfprL2rwm0fVRXKv/0bZ+LyjV1YtnaAnbZnPQ78iYpKxmAmXQ8Ok6th8xa1Xm+8Veb20Z+YEG0mohcDr9e1WCKT+XrfU5H6Vxdz47c/KnO8zqAQAAAO4NOzxR2lLQbYFK/Kf5rie/yWV+BOc7lOhQ2n2I+99ro3+NCqN9L+P+FA4sSauuoqCFE+ztcqf64D//+S+gYACAKb0pWwmCIHk8NpQCfNsw+EKpTCRiPezTWBhf5sEhMB6L7pD3uGKRVCbgPpLQ92hbv4fYYrZyvD3duXAW8ls0th9x3Oe4zgiVceCYafLnMqXK/ndKLhm4fLGfhH6nNcGsHgDAFMGsHgAAAGA6guNpAAAAAAAAIPEDAAAAAAAAIPEDAAAAjxqlykv58FwXcR9WZbqxb//R6qmuieyuPJ7acm8XKp/6Y61VmX861GC9UxHUpVdSSjQUQg1eO7PnTAdxn2rbl33qowvdBIwyAKYbuB4/AACA6R/zR/0m/f1DD1i8SMnHp9gKZVQ1tY+9tjZFEgiGT6FnTh77nzEP9LSQd/qZIeddmaTPqCB83gZCACcLAYDEDwAAADwIhvwvT7THb1nrhw2dfT/WOm/LWu+uU38rZc1GSrK7zDjbK2HBprjbv0OEWFTFF3IyK/r1uCAwPn5VrCsLsXbkZ5/KauszY0Kf8LUbwpUMx3tuPd5an55WP3vrRv9uh1akdE1L6omrhW0GkuUSsXTBMs/ukyfq1Bp871HazrXsjI+qZIvZJamDs34Q3PSPupA3FofTEYRoPvJBbdDri8JxXU1GzoWiHj2N7z07dtVM3YVbj90QwB1sTjuVX9KmowRusSsSEn1YqEVVeC47s1JF8GSR3sT4HE/qay/lXLjRNYhwlJExa5I9ufVXD+X19yPpXzOTV+EIZejO/vrKtWYdIvFbuTkuTIg6qQzRduLD4T6rvfy1NeyFLy2RIm3X/vav+oBdW1Z6o50Zx/dpY3ZKio5p57y4VGZuLj6eUt6kJhgSz6T1CVFS3Fm1AQDfFnCgDgAAYDqztpb2BDzzo51v7fTXZhVX3b7+HNGUlppuCNr+2o63doWRuempDVZKVX0u0xLz1OPvvr0q2lycUWogHe6hptQKWZ+ZXStLfOVHO15dI66/WNbK8Vu7zl+onLVrY4AAtTXedr1Osv7FZXMEjmfLqb6rmSeaZete3P7GrjD02uWcQd/bj6UGcg7ldvkveOmd7c8tYpccyS3Tk505mRf6lJte3v7qVj91dcfYy/9TqoJLR6sFy3+4/Z3dcYqGrCNXB7GA2C1zXaRzkrfNE9ve5jVVrciCNW+9vXGZqCUjv590Vpmhgg33efmiYJmptXuQojRtvXqapa1NSyLGtla90lc6cpqQ7MtNqWInr//Ru49vC1CnXm41T7ROAAAkfgAAAOA/fh8TRczzEWIIXSb3YFlNt+Iw2V1aSY9a4O9KR+kS/4QIWn1NP4GhKKHvalfrKEHszid2zmajjvdMrRUMQ40DvZ0qC9Mv7uVX53qPeztFuSGxgTKms5VR2poKtW/cDCULpYn8lmyMCuDcPsogexvLDd7z50hYGC4MjIx26ahp7ikrM4UtCFeyMbqL34LZLmObMtVX9irnzfLlYThXkRCn6Klq0449aqH7h851p6M4x8tTYDGZKaeVGdVnmqe7e19Xq5noaDOGRCk1rT0mS29zt4uf162PP2xls6o6+/oMmFvS2nc2ejMmWicA4NsBZvUAAACYdkZFWpTF547cGjPLnjBoteqqQ8dKb97JDaFQQdCaNboLWef/eoxy8Q9KXh4VLHK8x9m5sPGtYD5JSXGpBSf/fl3HkobFxy6LcR3zAzgoW8ifqO/GQT1LKBj+egAq8vYT2To7eOtwQK/RNp/4tOPmtwe43pRRZ+K4Cod7hQpd+FjnmLXpjAyBgDa8lXQhj20w6Clk9M/1sHns4Tf7kd8wdVaZ0X1GWQpfyY3mtj5Gj8DnMTfN/u72TkanwC2Rd+v4xyVuQ4wh9drnH2hxuWfs4rkJHhOsEwAAiR8AAAC4p8Bv0hvutAzGZHMk8TtWzhPaQ6hJ1afCRZhRb5FHbN0dQ+kHKtMyjqdKXl8tGXfPG5t8GHfuAaHTM0KXr5y7xqJqrjh5ODvPa13i2EMEFL19/EENpV/KbDIQFIIyuCxTr45E7LGc6q8qaxUEz7h9pMDiiIM27o52syd8YrBLRQiRGyz9wCCJuNiX12n0Y6I0yuSwzK2DVgph2NqzavQGloyNIuYxy9y5MjjSebvPKNfbm15S2cCguc4USwdY1ZWlNNIr2gVF1MNrII1aRJH8ROAKq769KO/Q8SLlS57O1gkA+LaAWT0AAACmBRqTYeloUVlsqbe+vLCDvMPiuCzEX3s9o6HfQhGalvP70vL7EKqv8vDeK+WDJM7mCjk4hqGO90ytM9a6iymHcnuNCJ0n4jAxdORxhNU6/tQ2nUVTtbSZKcTcnlfZaLVf8CYwiFObW9FppojBxoxz1d0k7dZjMZlnIFmXeaPfRFH65hsH9pV0UOKgQFr5pfJ2I2VVN2dd7x275Sy/YElrXnGTniIN3Tm57ZIgD769MxRhJadembFQma9cV1yjkktdcKGnm764aFDpK7md4MmerC8vpjcYKRpbJGDgts13vk5K19PdobbA2X4AHv0LKJQAAADAdEAPTJhZfOzsB1dJgusZ6kW/8/LLFqnO5u7dk2um8f3iklb74BgVviLi0tlP951GaHz3gHVrvFh82bh7GFPqDDMsOabuZOpf8wiMJfCfnzBXimKDrgpV3ueHmc9s5IyK1/LYhZJvjh5+z0IwvHx9BGZ7no5PXqnPPvRRsRHj+sbNT/QY9djNgUlbo8+fTvswzYzxZdHrE0LZGLowecnZ7EMfFhmZsrlzAsVtY9K5OHrBRm1Oyif7tQjLPSJx01z7BCCe3JU4fnEve9l6+pQqM+7KoLi7mxKtMSslmO2ml4QsQf088duTqWjKhStaj5088p4JYQgVc9bFeGJ0xHGdiKn6/JlsxeqXFruiMH4BeKRQg8EEVQAATIXt5cJksigULlAK8AiRVguB0+nTLEJSVjOBMmgw0QUA8EjAOX4AAADTCUajT8MJqSiNAW+4AIBH98oJJQAAAAAAAAASPwAAAAAAAAASPwAAAAAAAAASPwAAAAAAAAASPwAAAAAAAAASPwAAAAAAAAASPwAAAAAAAJD4AQAAAAAAAJD4AQAAAAAAAJD4AQAAAAAAAJD4AQAAAAAAAJD4AQAAAAAAAJD4AQAAAAAAAE7RoAQAAACmC41G39jU2denhlKAR0giEfp4K/h8DpQCQOIHAAAA7nPczy+o8vNzDwr0RFEUCgIeBcqmq3vANhSjZwdD6AeQ+AEAAID7qbGp0xb3FXKJLe0PJ37I/eAhJn37/9gGHUlStkE4PCAjwv2gMgASPwAAAHDf9PWpgwKVw3F/GNQEPDTDx5gURWGYLfSTcpm4vr4dygIg8QMAAAD3PXVhKDo68EPsBw8VSdoGHDk07GDkgekErtUDAABgOqGo4XP8CJzlB4/imPPWwIPBByDxAwAAAA/ofQsbTlqQt8CjSfww/MB0BLN6AADfJUTV0X1fl1hH3pUxOl/mMXd5fJwX89vz/kx23fjk0xvdw8kBo/NkHrHL4hK8WQ+nh2R35ckS7tLFnndxhRGyP+2TEwXSBS9s9uMN3UHpqr78W0fM20mhOAw5AACAxA8AAA+X1YrK45dviebbP8EkTO35OSeOF3m+HOv5YD7RJAgSx7G7fgzLZ93Tc3xwhCKMXUVXT36T7/Zqgj99stBNEBg+cbymKGqKE1woXX9jK2m9u+0irSRqqLqWWu2xLmjo2IkiCIqYfCXU8OSbB7ajYT4PeIRg+AFI/AAA8IjfixE6WyweSvwIjxvmLiwY6LMingxz+9UrKVdae010eVjUmuUBUhpiaC4+nlLepCYYEs+k9QlRUpwydNsWyqsftLIlYQvjl0YI6UTT4fdrQ95YHG5L5ETzkQ9qg15PVhacPTjoP6Ov5IYw/sXlgvqMnAtFPXoa33t27OoEOQdx0tZYGEvMF9sTPI8/y0t6taFDS/nzBvJTsi9VqYwIXewXuXZdmAfDUnLwWINfhPVaIblwy0a3pnMn8ks7jBSdq4yJ27jQjUN0nPqogAggakrVFobrvJUz8ML86y06TB7+2OOzvJgIoW5OO5Vf0qajBG6xKxISXNtPnm4Y1OBfHmXs3BDAHRzz10Qfpjpv1HatdLt9iIFxQmaJ68/faPSZ58sYtR2Wfoc+E2WHD99gKgYrW9Qk02fhvEhNaVpJv4EhT9qSHCvHEYuq+EJOZkW/HhcExsevinVlIZQqL+Vvxcrdz82U3nWQsprNNAbjgRw8PrA1AwAAJH4AALhfSFN3XZfRzcuNjhgqcw9cx5IeW+3NGCw+c/nwZfHzC5DclCr63CU/9KX15V06ntU64zFFbUraNWTWY0+7Mwdqz5xIuyRZv1hOWG+fzx65TVqtfUU1mlULt/uIVFfPn2iUrXlinsTccvHw5WzfxxIHHdpKkjj/IIA0d1e2ddN5MWxUX56f1ue+8ekkV0RTcDIjqzpwWzhitRjL8/uWr1kRKEfqU/IaXOOeXCeha5vOHCoonrVqHs/ekU7awl27hZrrmfuPFM7bkvz04sEr31zKqwv3CtHkHMrtCEzYsZJnai4+eSRX/Pz8RYvaGvMEG5Z586iB7HF/fSHJ/fZ2icd+ooBxQ6Li1RfOZvk/t/j28YuzPmNWq7FVJ9j61Hpud9GBI5n5i5Zsf4bRln4xLb8nepW0NS01XRu67slEnq4l9Vh6qnTjal8axz9qgwtbcDdxf/+Wx9MXP2H4+N/Ez/fvW93x5Y/f/+3R2l66cuU7b370cqgQNdz45C8v/iGvWot7JW3/5J9b5/IRTfHpt1/58kS5jhcc99ZfX3sxml3xXy/uML1z7ddBNISo/uMrj+vevPZrz0Nbnrq15i+Tq957ec/HGd2IcsbO37z9q1VSXN/o0BY80wAAkPgBAODhxvyuS8d/d3lk7gnJViRvC5ailoriNtHMlTPchQyUHxPtlp/bOjDfg6As6gEDEeLht2DJcySDYWktq+dEPOGvdKWj4tA5fjWXqlTJ8gnakfvODZKIcW1uucpjdlKAjINTAQuWoYNMc71jWwslktG50Nhw+A9NtjsoEmG6yCOXzQpmIbh/zA4PttyVYdXoMZQ06KzU0Eu0JDh4hoeIgVEeiUu3MMVSHqUzYihi1hsRhIcgqDAowkMmpomVIk6TIMJXJKZxPSXYDSNJ9jaU6dyTYtxlXIzizQi/fq6qFQ1lYwhK43HpSLfDX1sI91vbRRsfY1G6eNbCsIqvr+SGr57PHbmT6aTPDITC3EICvaQ8GlcqpmuDI2SuAozpITjfYkLI7uIKPPSxAG8pA5MExgZXnqrqJ3xlDIkiWIze3RsSqTr0Wd0/j3y13h/Jevtnv+x/8nT1Us+2C8+u/OXPQj//0P/0W7/V78765mm37r9teOlXB5ac3tH8fzb/q+ed92qecWv/6vcrNn/sX/KW5+Rr9tPt3/L/Dvj+nystUUjansU//Cyh6k3eL8a39bfFbHjWAQAg8QMAwMOEyuOWDc/jp6z6puzsC1da5yjlaq2l61r6P4qHgyzF4orNqEvssgh97vXPP8jA5Z6xi+fGS/U6ghMopdvPx+MsVzHLoNZTE7TCFPD5tlhMGlQ6pkjCxu2X52YoggNlqOmqY1vU2Gt7sLzXDM3jt68IozG5LIZ9qv5g+YXMQ90ESyRk6ZGhX/e0/50rtsV9+w1K05p5LKPNQBNIOCYScRv5O43JsTeO01CUzuDYX9RxzL7xCDWo0+hbL3xxPG24HyTbw0oiN6epOP/rre1yusluIYtmNx88UxH22M3rlUzQZxqLZe8IHcMwOpszVE586K+ETqPTVJ86XTtSG4QdaB2pwl1/CZgK37FtvT8bs9w4cIzz9MmlwVwcCVr6oyf2P3G2zvIajpt6S643da0OeOXMiVcQxHL5qzPMpfue8ePTkOAdT/5gz7vHr1pemXzNqkuHMgJe+ThawUCRZT/4555agan8b45tDU34AgAASPwAAPDwEv/oefycMGlm6oCK8mAycY+45PWh9sBLmTRdeo4rYlazPeZv8Ftg0HVXF6ccL1I+L2VjBq0t5DPs5991WhODbbtlRoauAW//X7PJSIwcAqDDF4lEaWymud9gy8q2xEqp6ipbBT5O2ho/p+fWPP5brNWp2TWi+G0rpWwcabpwMv/W9gxfjJLsyjpVgyUmP+nHpqOqrL3XRm3w7ZujozrKYrAFPsu3R8qHvsWs6RlEFXSke9K/Ft7cLqcwhnLu7MiaS2cL/alJ+zxuh4xeA5Mtmr02OXpoKoxJPaBhud7r9X5wN4+huVLmvo7OlhNbn/56pMiodAOBea76+OPud//w48CnyIBla371/tPLewcGFJEew43hUm93XWkPMSbmO6yZ7O3v4co8h2ftYJK5j0kQ3UXHtuApBwCAxA8AAI8y/TNYdMwW0xGGT4A0vbCmOyzan60rOpeV57oowEOVtT+f9djK5b6ueA8dQ0iKIQ/0zMu+1BKx2pPVW5ldhfludMEQE4s22NZmnuWLtOdVtxCsyDEtCP392NevVHT6zJAaG9PPVfE2hMU4tuV9x65SZjNFcxVKRFyyt6ay2UQoyLF/txitGNtF6CLEVFWNDWoi8E5RE5N5+FLZ1+uCH5stJlryU05o4l5Q2ucoEVYr5fSvHu536iXGUcQleX1xtEJFety5z05SuizIS5+R3z1zta/Q2Jp58gq28jE/KWLVDnTqGHI5925Olt88NqHzXSRBb5/e87q3/aMNTWN1A92HpurTz9x28NrzZG/98V/88tmfBVa/KBJ1drcTiLvtfY/sa+3kSFyGPncYPphDqP4+NckaezQnEoi0vZ26oSNAsjf1kxz6WpljW3CCHwDw7Qe/wAUA+E5Hfh6Ho++q6yJdZs1Z4T944bMD7+05l4+HLJ0jxmhusfMl7SePvPfe159lWWYsCVdi3BlL4sMMN/71wb6PDjXwE+ITvWkI/v/buw+wKM78D+DvzPaFLfQivYOACogiNuwotmiKMSa5XPQSS6KJKZdy/1ySu+QuiSmaXHqiJhqjUYOKiooVsGEDUaRJ7x22z8x/AAvCKphYgvl+Hh8fGHbnfec37+58Z3h3cBgQqS7YtOG9/6xbX6zsY9npCrjAOSpqhFXR+hVrl317xhg6MLIPbaat7nsq8h4YJM/Y+cnyTav2NrgE2dWmpqTVdbzu7BARZV246ZePP92WcFEd5GU6tf1M2Y0Dtthp2KRg2Zmk5e+v/Tyh1n1MPz8poVXWdo0ZKzdkN4jM/LQnRw2Fd+gIfynTkz6bIfWPiQo1Zaz+eM2yb05ogyKjXFt/N9KckbIyPrue+037WBw8bVz552/uzdGwxtLUF+L+76tsirnw66zxH/9SZBRb27vZiIVCWhQ+dII28d1VhRpWn7tu9ffVkVMHiRUqacmxzEIDMRbsW/5zeadzKMp64LTB51d8cKaaYav3rXnuP5ktViFd28KrDAB6wdFQq9WjCgDQE/zbhV5vdHS0/iN30tjSrBXIldLLGZs1NDUYhUoLmYAz6XQaPcNyRCCWyOUiQesPdS1aE8MRihZI5FKpkGq9Q75GpzdyHEWLZVK5uP22/lr+YQaDiZbLxAwnVsmEek0TI1HJ2+eIcEaNVmNgOYoSSaVyiYBfS9e2rmL0jU2cTC3tfG2YMTS3GEx8wwKRRMhodUSmlFGaJqNE0X7pm+9ts9bEd1YgFgtZvY4RK5QCfYNeoJBL+G6adA1agVIhotqKoBdZWrZ+OMCoaTEY+C2kBdL2DWSNzU16RiBRWIroLj9lr9muK1hto5ZY8DW89L1J09Kkpy2tZKLr9NkgVrS2TkzN9UaJWiZq/XWAtsEoUlsICcc3otMZO5aL8Isa9EKVUnzjU6N9+08OiQoRCGiKotbdP+nXhzf/NKNt6lT9+c+WfLhsR3Gz1HnMkiWfLQpScTU7/vHvJd+cq+KkThHj3/n8yTgXuvHUliWLfkw4r5X7Ri755NkFEQpSdey1h97/OqNFxzreP0F4wvO5o2+6rp8x48qambJjbz294tvUWtYhaO6yF18fY0N1bQuZ/0+GZTkew7ApqekjRwxAQQCJHwCQ+AFumfbET7e60ccNbppJ23peJcMvvaF7HNc6EwyJH3odzOMHAIA/+ZFQpsDBEADuabikAQAAvUvrfH+OQx3grg0/lsX4AyR+AACA2xv3OSR+uNMj79J8nkv3d8IIhN4Fv8gEAIBelLo4luXaJvGzLIvPzMJdGIFtWCR+QOIHAAC49WxsVBWVdY4ONq1hv1XrnzKmEPvhjsZ90hb3qarqGn5AoiaAxA8AAHArebg7pp3I4r9wsLfisz6fuq75U7kAdyL0t/7j435ubml4mD8KAkj8AAAAt5JCIecz1sWC8ry8UlQD7iIbGxU/FPkBiVIAEj8AAMCtD/0hwV6oAwDATcG9egAAAAAAkPgBAAAAAACJHwAAAAAAkPgBAAAAAACJHwAAAAAAkPgBAAAAAACJHwAAAADgz0vw2muvowoA0BMmE8MwrKWlDKWAu4HN2/bTip3Nrv1drdr/lgxXf/CbLZm2gb4q6g40z1ScXftdUqrGfoCnxeWrZYbsvSl5crc+luzZ9Wv203372uE62m/du5Xn4w9r3bxUopt40pX6U3ewp1z9kYT3vk3ef+AU/+/gkZycGtre3U55vb9vZKjYu2rbpgzKN9Re3qNuGtPXrTskCgqyNfVk63pYN6657HhavdxFJaP+KHv8Rl1iSuKXbfhp96kDfJEPph/LrNIq7NxtJfStG22HfskhAY43fOfgGo/t+PyM5UBfxb3xqsZf4AIAgN6Cohqydxz0njvGvse5kOP4Z92KfNKYf7HGN2ZBjL2gQzBpLC2v9OR+34pZhtCC25HDbt+aO0QnhqEFghtUn6N6Vn5OV19QSphuz7sYViCgu9T/TsdYYeDIF+73FBJGW1t+YsehNRvpubP81eZ6wVYXnWMC5jze1/am+9ijreth3bim0mOpOutIVytBj3bc7RsS1+/StWjr4X+bGuNAsQZN+flT8b/uMj04ebx7T1/33VVNW55fa83d6hfcnR+ISPwAAHBPJn7H8CDpmcMpwZNGOAquCQ85J+ITLxQ1MgILm9Cxw8cGyJuP7Vydr7CquFjQQlQBEeM8qvcfKKg2yP3Gj54aoqCJofTo4YTDxdV6kUPQgLjxPnYdj4esJudAyq6TFY1E7hIaERfjall0Yn1yTQN7YLV8xJzh7aGfLT6QtL+wxVizXT5tnD0hxoqsjQfTc+oYhW/4jKn+/IOYhsKkrWnpJS2c0ilyQvRQD+nVQMCUxC/Psh8tS9/T2P+JcWFcUadHkqaiPfFHT5VoWal1yNjh4wMt6S69UtHatB/iS4fcP9mLD8H6k2s2Fw++f7J7Wcc1h2qytm9Lz65lLBw9hk8aGGwtuEGvuPqzK9dVO9nUpue2EEu7fmOHjvazoI21aQnJB7LqdURk5RU6eUpQH7Ex/efN+V4hpmOn2BH3T3cq2BmfllGm40QWLhFR00c4yZmyrStOMD5MdkaDUWw7OLav4FTa8aIW2iH4vgf7u0k6VybatnRLfG5Dk2D1JuEj03wsGjv1UNJwZMfPjd59a9JPqoY8HevUpf6xI+2q+d15JK/RJLMJGjFkbEjHa97mquTFlqUlbz1YUmOgVR7Bk6cFu4hvuL/ME8is+wyZFlH82Zm0cr/RTlTnNThVJmy6UNtArftZ/NADAZLczqO05uCWX0zR82JsaMLVJG9bb4iaF6MkXbZuMMn4NSGzoIER27iOnBo9wO7S4Oea8zrWTVJ5YWfC6awqI/+wIRMHRTiJr/SfUimsrEQq+podN9O36cyulP3najUCpe+QIRMjbaXE1LUs+opOqxVVm+v22Q5rnuFRnbzt8LGLLURpHzpqSIyvnDbWd2pLcqlL3ZSYFsudQwdPrfl11ZHC4e7eMjOvgg6n5cd2ril37FOamVHPSWw9J8yMClJRnLbymrERTE5uOJqj0xV9fVj4l8F+4iuv+pbsfSm7TldphAr3sMhJ0fZtpwaVyT8dPlbYQmy8YtvWxtTldRrt0oqTX203BCmKU3K0lMwmPC5mlJeU4jTZSQd3nKphlH1CnZouWES1lqtLEaR38N0Tv38EAIBeg1b7TogWHdtxrprtGNCrD+/Msxw97cWXZ88fr8jad76i9adcXbG+75xZLz8T7ZCbEp/rNHPhrAXjlbmpudUc0Z5PXZcmHPb4gy8+Myqg7tiGQzUd1sfVnziw6YJy/NxZS+dFOeYf3Hi0kXIPmznExqr/lbjf2heX4aNGuFkET4mNceMPpkzu+aYBjzzw/KIRbmUnjxSwhK1LWZ9a4T18/tJZT46SpW9MPau5dmOYkuO5NlOfHjfQsr7LI9m8/ck59kMXvjB7UZxV3u6zRayZXrHXK9OVNUtLE9dlkKjYJUvvm+xStT0xv6W7XrFVF/OVkU8tnTVvvDo3PuV0E6fJTEuqc394yZy/L5kQ2nLq0AVjW5F0mSfqAh+aOSOI5B04UuA8fNFLc5Y+GSJIO5ne0HbtlKmpkA1e+OLDf40wHdp4mhkWt2RxbKgu42ieqWtlMmmvyVO8VS7950z3UXJme8jWnM7RDop96lLc71R/47mEpOPC0MeWzF44w7UmMelAKdvN5dj6Czv3GyMef/Cl5yeGG87sy9By3e6v652Gyl38nZtLSnVm1sC4TZzmZ+UYPOuBQFvO7Ci97ki/unUudakJWbKYqS+89OBDPg17DhUbrjRt2aFuTNmen09qQsc8s/SB2RGm5HXHcg0dOilziR7taU1ds+MKkvbs1frNemb2c3OC2NS9e/JNZspiutFqr63plTUb0rfuzVANnPvcrLmj5ee3pOUama5tXe1SD1739r4u8rKqyu5fBVxVRrFy8syXX7xvvFXRvhO1LNF3HhtlisiZkT5Sl/FPdoj7/KnL0f3xhfZTnp61eE4QdexQcmnrMG7KKibD4557fvo4ddG+NH5tjNnRzhbnFrqNfu6lh+cOodMO5DVypDk9ZWuR430LHnp6sk3R2aq2X8KYKcIdffPE8QMAAHpR5reOGDyIydhxsontsGzoY1Mm+ssok15rIpTeqG9bLPX27aumKZltHxuZT38PFU3J+9hZmYwGzpifUWIbOcBPKaAlNgOHuGlzS+qu/opfn3e+2mVwf09LWmDhGB3lWJVV0tz9BADaJSzYQ04J5A7udiadnmOrL2Zq3YcNtJHSApVvaLh1WXbxtZMvKIuASF97CWX2kTRN6eqqy+uNEq+oBYsGudM306vLazYV5V+w8BsaaCmkxC5R0VMHWHHd9kroPHhYH0uBQOnTf4hLRfoFrSRw2PxZwQ4iVq8zshSr15vam7UPDQ6wElKE9hg37fEYBxkxaXUsRRn1hks7Jbi/nZQS2DhbWzh7DXAWUSK1i73AYGBvXJnr/tTFf6in3PzMBGP5uTxFxHB3vjtSp8ChgcbsC/XdRH6aohhNRWlDC6eMfOThR8Jk3VfmuoQyGa3XGZgbr+E6o7Qn5xQ0Zaovr6nR0k4jJy+d7i42e5ZXWpgj8B42wEpCC21D+vWTFZ8vYTuel7i5XZqPfmnHsZUZ50UDhnvb8nvGxjs6RJiXXct0KQt749Ve69KadaVnL1oPGupsKaAsvQdMjfVUM+ba6tCl7ksgk0gNeh3X/atA5BU4yFlMUTI3N7VRx7/WezY2uObscw2eUX1dpJRQ7TVm+gAfeet6Rd782kT8q9rNVcmPbO56o93CfXCYWkRolZuD2mjQE+2F9EqXyKA+UlriGDDIV9J6XmO24HfwrROzegAAoDehBFaDJ/ie/flohk/YlZRYd+7ojqNlTbTcxoqYiG37UoGwfRI7RVFCUdskD6p9oi1naGo2lhza/r+jly4wylQq05VJuJyuRSdWKoXt34lUljKtVsMRcXf9srSUXm6uPUJompoL478su3xN2sKd45OGoGOKUSmu90jiMXJk1J4TW7463iK1CxoSOS5caLZXHTNL1zUbm7UGhbOyvVtSaz9/wuSdv3GvKJmF6tKmitRWEk2zjtM2pyacOFvJSNVquabD9irbP4lKGSouJOzOLtEKlbYWRpY4Xd5PwvaIQRFKKGzrN0VuVJkr0cvsTymZUn69SdycQadh5SpFe21opUqmrddd52zo0mJK6RcX17LrYOInmzlrb7+Y8QN8ut1f18XodKxEKiY33K7rjVJz+6/zSW7UtAjtnmPff9gscHCNHD0o2sPMh105jVZr6ahsT9C0hVphqNSw5i7sXt5xjLa5uSFr/eaMy+uyCOC6lsXb/GrND7v2NXMajUZkoZRcGk8ugS7EmNe1rZt72ev0erFESnSV5l4Fyg7lkFjK2sfJpZdhD8cGp2vUSFXK9l1Hqd291IRr5N8ZLGXCDmu73min5DIL6tJob19bU4tYYdm+NoGlQnK9gt/Jd04kfgAA6GVEfUInBMZv3lPYfsRkqzO3HTSE/2VGmJWAazi7clVTd+FcJJMJPcLjHgoRtx/rS5vEV++yQ0nkUkNxI38K0DoN2tSk0Urt+YTV/dW4a1MYJZPKrfymzwt3al0z01hRz1h1iqxU+8mBuUfSLY3iwPGxg+KM9YXntmxIPuI21tJcrzpEFr1G23nNIplE2KJp5og1xW9m5anTBnfXbnrFaVsaDXzS4b80NTTopdaC7KRDOXaj5z3kIKPY3C3rU6620Z5jKw5uyRaPm7jIXy5ga/Z8mdx9ncxWpvyGPz15o89fU2KpnNY08NvZ+uFZrqlRJ5FLzD/8cpU4ncboEPLAvAhOU3c+ad+ve2yeGdLt/rrOOYSmOKvEss9IKU3MraHqct6/zijluMuF1+g5s6GM1TUTx5iHfSeYNKWnj6z/9bTLosEeXZI8JZdKm5ubWNJ62ZzTNDaL5DLzF9AvVZKWyOQ2Q2bHDm67YY2+vqZeoKa7lGXRQPOrNdvtS2uWSqWG8mZj2+kSp8lLKxL4WXZt62Y+NsxVZpe0OIXYCSTVN34V9HRsGLs+zkKqr25pP8fjarPOFiv9PLq8qK832rt0QSyTGCpbmLYzLqalWc+pzRdccAffNjGrBwAAel/mdx8Z6VV05kR1+5RxxiSQKGQCwmoL0vLLjSzbzbUzkWeAQ0nqqZwmhjM1nt6yc2tmxynbUi9/m+IjZwo0HKutTEkttfHro7hequAY5jqnArS9qy+bu/9krZ7jNIUn161JL7uJR5pydyesT63WEZGlWi6hKZoy2yuhRGwsK6o3Eq4lL/NUWefZCgI3d++GC8nZGoYYy44eS8rXiR2665Wp9HByWQvLNuefSrlo5e8tY02c2ELGJyxDde7JPB3DdJo4zZgYgdxSLCBMfXZWVi3/bXfJ43qVYUx8lOt53a7WX+QQ4NmYdrCogeH0FecPnRP4+ll1yDdmqsTVnN+w+nBmIyuQWajkApqvsLl2OUNzaXFDy3WHE6dvKD8cf7zAKSjckeqm5+ZGqVgibCqtbGAI03DxyNkm1uzWsVUHf9i9N1/HCWVqpVjAd7XTw9rqJnBy9zHlHjzdYOSY2ozTpzQuAX1umPEE9gHezcf35dfyT2gqSlyTlFZjpixmV3vjblMy5wCX6qMpFRq+DhfTdx6qMsjMtHWFsam2uFJzvSntnElXcfZI/DG23yA3+U29Ni+91q8zNvhx27FJSunrJ89JPVdu4JjGi/t2XqhkhWbHW49GOyX39lcXHjvPr81QeeFYjuF6Bb+TcI0fAAB6H0rqOmqs64VfKtoSZMCogL0Jn/0ssFB6hnsHS09s3e0xx/pGz1aERs9oTN3xzbqNjMjWr//0aOsO4YiyCh8+vTkl4Yu1zUTqHDJ0xiAVbX7OhdjOWZa0KX73A5OczCWqkQ+EJ25LWp5koBX24VOjA2XXzV5dHikxxUTkbtnzyRGGliq9h0UPsqPFNl17RXyj+53ZvOPDoyxj4RroJupSJffY+5u2JWxZ9isrdfCaOMXbUkDduFeUwsXTdOq7j2p1YpuQKSMircXs0AEZmxM+Pi5ROnqEDXBKOpic5jtScrXzjlGjbH9Zv+FjkdzOL2BAQPHBrWcCH7O/cdY00we1rWP9ke83SJ6Y6dv1pw3mV3Sl/lNGTxxVn3D4uw8PMlKrgDGjRlwTdkVdq0Q7B08IObDjyzXbiFDh7DMlzk1srjJsUeb61Y0xz48JlVx7WnRu/7v/OtB6oVtk4RwY8vC4tltzmtsu7up5TtdR6jl/WL/wcylfLzth4hRBPrYC81s3ecQEx81bNr6nJ2KV48ApEa4dNo7uULcxD/TfkZD48S6jyMYl6oFIH0k3572+40bV70hd/XGqQajwiho5yUNAc13KIqK6rJYiwTfoduvHSAZMHd64NeXz97WcpV34lKE+IhHp0taVEN145tDKLK/5fwm26pjd2bqDX61KpvgaUzIb5/5Txsa03ZrT3GvzxqRBXccGp3RxrNrxRbL4qeiAS3PYKPshMbGa5PUrzuhoC8+oYUP7UIbSrkPXzGj3n2TmHcZm4LDY+oM/fZIhdPQN9VVcEAnNFvyOvmdqtXocOQCgJ/i3C73e6OhojVIA/KGwJiMjEIl+983Aufqz3//QPHr+IDcaVbqjPdOzAomQ6nUF7ZXdvhO4urNpx1m/USFKgan2wKo9DSPvm+wluLt9wjV+AACA3o0WijBJtxdXiRZK6F5ZUAmGnXmUyt1RsGXfF4dMLCey7zc87m7HfSR+AAAAuJxTLFxGjmdsEeMAfufZkKXLqFkuo/5IXULiBwAAgDYilacvqgBwL56EoAQAAAAAAEj8AAAAAACAxA8AAAAAAEj8AAAAtw1XfyRh+c4K5hasSn9yzdpNF3q6Jrby/K97ijS/qaWeP9eUtf+/6/NN2M8AcDPwyV0AAOj9Md/MH7r//UQ+o0e5KAQ9bIXT1ReUkmvODziWIbSgBz0z81wAACR+AAD4k9Gm/RBfOuT+yV5029X3zcWD75/sXrH10wxpGElPrjAIZG7Rw2dE2V59hrH+zK6U/edqNQKl75AhEyNtpcRUlpa89WBJjYFWeQRPnhbsIu665MrzTXl7k/LCHpjuXdmlFTtRU9Ge+KOnSrSs1Dpk7PBxrpVb4nMbmgSrNwkfmSzbtyLLfrQsfU9j/8f8C77ODVg8OlhECFO48cMcv2dHBQtasvel7DpdpREq3MMiJ/Zr2XXludN8LBoLk7ampZe0cEqnyAnRQz2klLH+1M7k/efrGUv7UHeGw1gAgJuEWT0AANCbmYozqnyeeOGR5x7xbj54Juvq35FnCpL27NX6zXpm9nNzgtjUvXvyTVz9hZ37jRGPP/jS8xPDDWf2ZWjZLku4HrXC5u1PzrEfuvCF2YvirPJ2ny2We02e4q1y6T9nuo+S4hsvOZ5rM/XpcQOVXa/wczVH98cX2k95etbiOUHUsUMpjZ5Xn8vVpaxPrfAePn/prCdHydI3pp7VsOUp+3fVuMxYMGvRA14NF8qM2OkAgMQPAAB/puOYOmSwh4omInuHPlKT/kocZiszzosGDPe2FVEiG+/oEGFedi1DUxSjqShtaOGUkY88/EiYjOq6pGet0DSlq6surzdKvKIWLBrk3ulwSlkERPraS8ytjGvOPtfgGdXXRUoJ1V5jpg/wkV89y2CrL2Zq3YcNtJHSApVvaLh1WXZh1dmz+qDhwS4yWmTtNTzMGkduALhZmNUDAAC9TocL8ZRUYXHpq2tm2TPa5uaGrPWbMy4vtAjgKKVfXFzLroOJn2zmrL39YsYP8Fd3XWIuUXduhfYYOTJqz4ktXx1vkdoFDYkcF2EruubxMpXien3XNWqkKmX7xwMotbuXmu9s45XTAU1Tc2H8l2WXPz1g4c7pWvRyW1V7ryiVtYIuxwAAACR+AAC4xwO/XqPt7jG0RCa3GTI7drCqNaHr62vqBWpapzE6hDwwL4LT1J1P2vfrHptnJ9l0WrJ4hoe4+x4wLRpx4PjYQXHG+sJzWzYkH3GbMvTaUwTe1f62naFwBr2W4QgltpDqq1tYQvhUz9VmnS1W+ve9eqYglVv5TZ8X7tSa8JnGinpGRU5KNXWNLLFufXxLkwbz+AHgZuF3gwAA0CsIJWJjWVG9kU+9eZmnythuHi6wD/BuPr4vv9bIMU1FiWuS0moIV3N+w+rDmY2sQGahkgtomuq6pGedMeXuTlifWq0jIku1XEJTl57HmEyd87hIKqwvKjFwxFB65PxFEx/qlb5+8pzUc+UGjmm8uG/nhUpWeOW5tL2rL5u7/2StnuM0hSfXrUkv46z8fIWZBzJLdZypofDg8er2LTc21RZXanCbTgDo0RsoSgAAAL2ByDe635nNOz48yjIWroFuou4fP25U/Y7U1R+nGoQKr6iRkzwENBc8IeTAji/XbCNChbPPlDg3qcK+0xJxjzojCYqJyN2y55MjDC1Veg+LHmRH0Y22jvVHvt8geWK6vMOJh0PkCJtfNm14z8iI3Tw9lAY+8tsPiYnVJK9fcUZHW3hGDRvap8NzZ/qOfCA8cVvS8iQDrbAPnxodKKOpETFjdiSvX35aJ7EfNNDXqoRfL9d45tDKLK/5fwm2ojA2AKAblFarRxUAoCf4twu93ujoaI1SwF3EmoyMQCTqZTGXMxkYSiwUYP8BwN2Aa/wAANCb0EJRL5yQSgnFOOACwN1750QJAAAAAACQ+AEAAAAAAIkfAAAAAACQ+AEAAAAAAIkfAAAAAACQ+AEAAAAAAIkfAAAAAACJHwAAAAAAkPgBAAAAAACJHwAAAAAAkPgBAAAAAACJHwAAAAAAfgchSgAAAL1FU5PmYkF5TU0DSgF3kY2NysPdUaGQoxSAxA8AAHCL437aiSwvL2c/X1eKolAQuBs4XkVlHT8Uw8P8EfoBiR8AAOBWulhQzsd9RwcbPu23J37kfriDSb/1P37QsSzHD8L2ARkS7IXKABI/AADALVNT0+Dn69Ie99uhJnDHtJ9jchxH03zoZx3srfLySlEWQOIHAAC45amLpqiOgR+xH+4oluUHHNs27DDyoDfBvXoAAKA34bj2a/wEV/nhbpxzXhl4GHyAxA8AAHCbjlt0e9JC3oK7k/gx/KA3wqweAIBeTr9vlt0bG3T8VyzDEFrQmoiFAbMPnZgb3vk93nTouUdfd1+251nH33y9x7jvI98Jm0tYQjiW4ai21ii7J/5z8fNIMfYFAAASPwAA3HqSoV8XbPmMz/t5v8SOzV2U+WKchBCBWGnuDZ4xcfy/nq6Z47guE2dEQ586XfZXPvDXr32j/8ZBR3+OtacIJZHf4bj/B5jPwxb+tPx95v6PZjubOX1iLr4z9I2WT795O0yAEXrvwXQyQOIHAIA7/U5uYaWw4BOoQshnb6mVwkpyKbA3ndn2/MIf4jNbLP2jnvvkmafDpVcCaf4P/xz/nvrjXUti7ZqPf/rxoo+PZDXIQ+5/4vP3xwfKDOsfmrMxYGTxV/FnDRL3CU/++HVckORKa1KVVet6OAlNKJGKb45PP6bMl4PfFaz87l/hAsKWfzLm6ePPfj9725PLpCOMW7afaJb5T3z4f8unhykporn4w4vL3t6UUy1yiV26ZMWCQBXFFny8KOjHwcdT5wT2pnjMNedmpjBa7pasy8y5FQAAEj8AwJ8HV/tV7P3vBH2YtSxU1PNnaU+9OvO78oX/PPawQ8UvH82c+T/v9CVtkZ+t2rl8+pvGJevnjbEjtZs/mvGl9L+bV45WFH795Buz/uN5/A0Pk7F640bt+n1rh4nP/j32/Y8OjP9y7A1bFnqNHq5/ZXvRm+EeVFlqfFbwE0Plpl+1SRsK39v4/TrnslVPvzH7Ld+T7/kde/2VN6oe+unom87l+5+9/41XAr//dLTMfvLTGwaoXW8m7htz9zw376t1J+oZuV3U3xZ//3q4LcU1nvz12YVrt+cY7fqPeG3F0w/6irosERsKkv8x/4sfj1SzrgMWLFv6cowVKUl9be6n3x2tZay8Z/3n1WX3OVJdlnTtmm7Hpw+uyM3lXp+mfHvzQsXutz948buMEs560Jyn/vfGELcrl/3Z2m0LFy+peyRx9TgPQ5ezHWPa/KB16r+SNe+nN4lshr7wyo/PB1liwAPArYZP7gIA/JGzfsPhn3clZTVqTYQxtBQfPbAqsZTpYSZOO5AgGvH8X4Ncbe3C5syapUzddNTIr7Hl5JoZD293WrLoiRBLEaXb89NRnycfnh5obesa+vSCyJodR/P4Bjhh+OwZE3zUVm5hw4MMdXXdXsiWDp4QUrHraBHLVW5PPhc1dKw1v1Dg+eCsJwfa2bkGP/XiSOqX3Uc0mWs3SWe9OC6sj9p5wPjFM8W7E3L5Psk8g8ZG97mppLvr38sPRrySVbOjLGWW+MuVa4tY0nT0hZk/k8UfXSxd+eXgzGdfTKpq7LLEmPf+g8tOj3k1vXzz4bes1875cH2VYc/b720Peelc5dasz7x2//3nFKOxyxJzGzxhwbqF3kHz39q82KP4638/utX1g8Obyo4/1z/pnTmfFl3aR2zLkbdfW5Q9cf034zyE+oP82U7txF8vbClMvM/04RuvJGlbH6M/uvbchAPlCUU7xlS88+OWRgx6ALj1cI0fAOAPTJ+7/o33Psoy0AKGPfB3n/9RdlOejxnj7NqDyzVsRW2dQ7CXvPWhtKyPh5PmfDkfRJkz23Mfn+KxedWenCfn9CWNJeXakx++HP51+5QSzqqPR9s8Fdq+j724dZlASLf/tdFuKIYOHrJg+66KseItOQPve9Wm9bm0s4eTvPXyOC33c3WuO16urSqtKNny2LzN7f3niM1kQ+sXFC28yfk8I//7zV4LGytOV9FgomlNQxOnP7dvm/2kPfc5SQVk8JIXvz5gMqZs7rSEO7f/l9rhHy7wVwuJeuLsub7zEo6YHhdS9bnnT+V7Dh275GwWv27T3s5Lujkr2/Vr1uBn3xztJKJI/xeXDPjyi2NlC8L4c66sb978diWz5PT9/eT8d5nrNsv/smWsv4WA+I194eG1D+/INQ7jC+z28LMj3Pin9u030OpMQwtHlJjeAwBI/AAAfx7Sfm+n/DD1g9cn/jtTI3B49Mf33otzsunZb2dpa6WqopoP+a7C1rklZZUyKzUfqwX9Fy1etqjFcsQ/X1kbu+lRmVoliX71/R8faL3CztUXn6xUBwhJJrn5DydahU8I//TXjXupE/6TP1fTxMS3WlZcw5DW+wIxpZXlSqWVxFJt7b1g7X/mu9OtHzMoyCmU+4l+U2Ga0xMWvZxwtE7i6m+vYUh/QjTltc3O4S5tZw6U2jtuCqlb2XmJYVd8WXnyvIi0y43ajWDJyH+8seTVr58a/EWFOvD+5+b/96nArkvUNygG21BZZ+nqKmt/iNzVwaa2tppt3eaE1OC/jMz+7ouzC94PlRtqysqL4h/4y0+Xdh9lN63tNwG02sn+0v1GMZMfAJD4AQD+hARS/bmvVl2wmTnnsfwNP36e8uJ9D9n17Jmi8OgxuvfeXTVp9eMOZetWr6oJ+2CwiOygZJZKCxuf518Ji/q/lUnTloycFPTq5xtSYueOt65c+cI/lge+fSTC6rf0lFKPHu/50lsrqbC/rnBoj65M3pofVz35j8f7lH/7dmLTqMUDLYObYypf+fDozBUx7vWHX5z1iXD5qihvoi/LO1lp2a+fvazHrb07L0Hx3ooLU21EpqzXIt7nl8hsFNLK6nKWeNOEqzv7/eqmaI/OS4ZHqWy9Jn1/fG5Y69FPX3LmosFTUFFied+yj575XFdwaOPfHnp/+bAVc4Wdlnz5evD1fwdBK+2smo8Wazmi4DdbV1pVqw625mO9wPmpT5f+x/aXmGGffz53+XOeCmsbv+e3ffxs+9nOxQv5Ig8RycCd3QHgDsA8fgCAPzaxbfi0OZ8ue+zf//vb49EuFj3Ph8qIN1c+ZPntC94O949bTj298qlJ7Um+9UqysM+Mxxa77Pv7J/nOjy7+YlLp36Nn2Hs//43FQ5896/1bLwVRzuMG+ddr+08afPlu/8KwCa6Jj8xx9n7+C/H07/4VZUWUce+88qRx3XjvyS7R39bPWfrqUDEhbPm6D0bP3XGRuYnGdAaJraOFiBgKtm39NddgMBJJ9PCxBdveS6gycpoTn376+t565dDOSyxDomNNiW9/k9vIMDUHv79v8to0gzbx5UUPLrvQQGSO7rZKkUBAdVly3UMlZ9AbOUo9ZrJf6vIfD1Qxppr0Dz5M85sU2af1KSKZjBb6T3vn0Yb3/7G3QhQ8bVz552/uzdGwxtLUF+L+76tsZH0AuEMorVaPKgBAT/BvF3q90dHRGqW4ozhWrzMJpGIhZ9QaaIn0+vmTNTQ1MlK17Mo8GY4xajR6I9M6T15qIZUIiEnTohXIFRI+a3L6pha9SK6UUiadTqNnWI4IxBK5XCQgxNDcZBArLNvusW9saTaILS1EXdOutl4vVCtEV3IrV7NzevCOsUc+WNB6qxrjtice+GTg57/MtjCxhBaJLeRiAdW2ORqdzshyFCWSSuWS1mX8oga9UKUU3/gq1L79J4dEhfABnKKonB/fmf2PY7Vym6C4aTElK9/Nnbzz4Bz34+sWLtqwp8Ck7jf63S/nT/ekaw93WiLQnEt8ceH3G9ObBM7Bc99/4bUx1voz8X+bt3J7jkGk7jN26ZJPn/IXdFli7lPFXN3WD6KeONTnxQ92LlbsfvODF1dmlnPqiNl/+98/h7oLrt6Pn6tMmhX2teOabz4MLfhsyYfLdhQ3S53HLFny2aKg1nv1BKwK2v/hQleaGE8905f/+oOnnHAm8IfGshyPYdiU1PSRIwagIIDEDwBI/PBnwZ9c5Pzv1ZFbo1N2zPRsTe6tiX/5oG+3/83qVgXY9sRPt6JoGrEY7sYJONf6xxOQ+KHXwTx+AAD4/UzJr8x7aJvT/E/HeVy6UC8I/cuCJfby3h/M2aL4Vf/ZUd1pzpFowOQP5vqLsOcBAIkfAAD+JEeTIW9+kfkaLbWUXY74tMuQkU7U7TjKcIRQHEfu1J1taNcpj6+Ygl0MV4Zf68QeFAKQ+AEA4M93OJFZqK+91Q4lEN6GY0x73OdwL0u400mfa/uvbVbP5W8BkPgBAABuferiWJZrm8TPsiwiP9yFEdiGReIHJH4AAIBbz8ZGVVFZ5+hg0xr2W+FKP9z5uE/a4j5VVV3DD0jUBJD4AQAAbiUPd8e0E1n8Fw72Vm1ze6j2SdUAdzD0t/7j435ubml4mD8KAkj8AAAAt5JCIecz1sWC8ry8UlQD7iIbGxU/FPkBiVIAEj8AAMCtD/0hwV6oAwDATaFRAgAAAAAAJH4AAAAAAEDiBwAAAAAAJH4AAAAAAEDiBwAAAAAAJH4AAAAAAEDiBwAAAAD40xK89trrqAIA9ITJxDAMa2kpQyngzmMuHv54xa5d+0/t339y7/5TBw6c2n/g9LEm28CG5C/PWA70VfT4ChbXkHEkqULl4yChzPyw/uA3O3Kc/L0U1O/orCF7b0qe3K2PJXUrNv3Wrq2b4tSd2f/tj8cqbQP8bG7tNcFbvhXG9HXrDomCgqzK4j8+3BLq7STu/I6Vs2Xd8p9zuIAAz0uNMmfXr/7sl5Ptgyf5WG5eg9TF00pOs4U7N3yfazvQx5K+xX0wX+Sqg1s+OyUfHKC61BxbsWPF9mynQF8Vdduq0aH55rLjafVyF5WMuusv69v0YmQrz6ZnG60clAKKwCX4C1wAANALCDwGL3ltMP+F9vSuj9LdFj3ib9kWChqPpd909qyrKmKNHCG/Pw1cZyVMY2l5pectaeGWr62b8/qizFLHiQ/G+QpuuNksQ+ibDFM924oOa/69G2wsy8iRuDhrz2fWjXCwvhzladex9z0RxUdITl9zccfaQ/FWdn8ZbPGneilxTaXHUnXWka5WgrvfmdvzYmQqMk6f9PDq10dMAIkfAADukQSjrUz+6fCxwhZi4xU7MypIRRFj/ZldKfvP1WoESt8hQyZG2kqvRNqco+uP1NaSvT9JRj0UKck7kLLrZEUjkbuERsTFuF69xsppLyTs2KENffQ+bzXTZW1M2dZPM6RhJD25wiCQuUUPnxFldzlcsMUHkvYXthhrtstGu13c1Th8YbSPkF9f3s+f5fjODatdc0TjLS44XaGhLd0HDp481NGCIkxDYdLWtPSSFk7pFDkheqiHlOqyNvm02JF21YcTDh/JazTJbIJGDBkbohJdLYM27Yf40iH3T/biw63+5JrNxYP5r9mytOStB0tqDLTKI3jytGAX8Q3a4spTk/Zc1OvLt+4Qxo3vU9O5LaYkfnmW/WhZ+p7G/k+MG6i8/Lwu1RZVnfl+bc2gv8YEWxgLdm7ZRkfFSk5c2YoYp8Yu9eyw5sdCKlaf7VxbY21aQvKBrHodEVl5hU6eEtRtltPn5eep/WZH1/+4J79ihLVT56v3lMTGfYDv8Z8q6lliLvGzLdn7UnadrtIIFe5hkZOiHeQ96APXVLQn/uipEi0rtQ4ZO3x84M3+0sDUeX8JCjYsywlYPDqY39NM4cYPc/yeHRVMuusJW7Xrs0P09GmjnfhTm+Yjq7aWDJ5xn/+lwUKpFFZWIhVNmLq8nfFpGWU6TmThEhE1fYSTnK9b+fnt29KzaxkLR4/hkwYGWwu6Luk6hEiXDad6UIrb9mK0UVur1GoZLvB3hHn8AADQuzVlFZPhcc89P32cumhfWi1LmIKkPXu1frOemf3cnCA2de+efNPVC10+kfcPsrYbGPPQYHXjiQObLijHz521dF6UY/7BjUcb2UsJw1B8YE9Cje8DU73V9HXWZirOqPJ54oVHnnvEu/ngmSz91QOry/BRI9wsgqfEjgpy8bEoyyltXas+v7DYwc3Xks9tlZkl9tMXPPzc46HiU/sSLxg4ti5lfWqF9/D5S2c9OUqWvjH1rMbM2mLcjOcSko4LQx9bMnvhDNeaxKQDpWw350L1F3buN0Y8/uBLz08MN5zZl6G9YVuUY1TMKA+p/8S4CT4m820xJcdzbaY+3SHum6u2wK7vhJDGvftKWsozEnMdxw938ry6FZz5enZcc5faajLTkurcH14y5+9LJoS2nDp0wdjdoDDmnS2zDfG09/L01RecLee61sZYX3Q6V2tlqzSXC7mao/vjC+2nPD1r8Zwg6tih5FKuB31g8/Yn59gPXfjC7EVxVnm7zxaxN3nu2nV/mXtY9z2hbfy8THk5DWzrHJ7irBrHQI+r54aUzCV6tKc1xeQdOFLgPHzRS3OWPhkiSDuZ3sARQ0niugwSFbtk6X2TXaq2J+a3dF1iZgh13fAeleK2vRhpx/6DBrkK8N6IxA8AAPcOkXfgIGcRJZC7uSqNej5AV2acFw0Y7m0rokQ23tEhwrzsWsbM8/R556tdBvf3tKQFFo7RUY5VWSXNrQmLqTmx/6dD3MC4vo6i1inB5tdGq0MGe6hoIrJ36CM16c1GUErt4yXIz6ljifFiVrmdv6tlW+AKiO7rIqNF1p4xAxXZGaX66ouZWvdhA22ktEDlGxpuXZZdbK6/xvJzeYqI4e5WQkrqFDg00Jh9ob6bSElTFKOpKG1o4ZSRjzz8SJiM+51tURYBkb72HSddm6+PoE90pE9Byve/5NmODvOSkO4ef+2au9RWGjhs/qxgBxGr1xlZitXrTdyNN1xfcrbQOjTQghI69vU1nc+svryRbPHuX/71r5Vvv/39u58frnSNmhKpMpOEuObscw2eUX1dpJRQ7TVm+gAfOdeTPtA0paurLq83SryiFiwa5H6zIavL/jJ7lboHPaGdfZ2ac0saOdKSU1jl5u7ZcRdQcjc3BU1oj3HTHo9xkBGTVsdSFP/SIaai/AsWfkMDLYWU2CUqeuoAK6bLErNDqOuG32QpbvGLUWTn4CzHW+O151coAQAA9GoyS1n7wYy69PlMbXNzQ9b6zRmX45JFgLl8yOladGKlUtj+KJHKUqbVarjWmRnZxfb9PWpOHq+MHOcgut7aKKni0mQQ6vpzkCkHX2dTYnHNUJusApX/KDlFtPwTVcr2q4+UwsqSu6DTNWuamgvjvyy7fE3Swp3j03XnK5ScQadh5apLn2KklSqZtl53neB7aTGl9IuLa9l1MPGTzZy1t1/M+AE+v7MtSqZSXPvQ69VH7BgRIj5+wmGSj5TqyeM7rrlrbbWVqQknzlYyUrVarul+SGhz8nKaSnM++zGR3xaTUW+ZXzrKzrU1dNIuY6a1zeO/IU7XqLm6m9TuXmo+bTZ02wfaY+TIqD0ntnx1vEVqFzQkclzE1elkPdF1f/krzG5e99UQubq612XltXgLsmpdg/tIzLVmqLiQsDu7RCtU2loYWeLEn+g1aw0K5/bfelBSaz9/oj3deQmTd77LECJdN/zmSnEnXoxI/AAAAL1ap2M8LZHJbYbMjh3cNhFYX19TL1Cb+QU/JZFLDcWNJo6I+ceZmjRaqX3rNVVKETEpeqw88/tvjx8PnxilNru2yh52TeDs4tFy+sLZ5ny123A+N3FtabKRIQ7C1ivJ9c1E5iaRSeVWftPnhbfNNWcaK+oZK5GZ/oqlclrT0MwRNdUahRp1ErnEfLzh9Bpte47SGB1CHpgXwWnqzift+3WPzTNDfk9butazKorqSbW5loIDpyk3y4IDJ/q6DexwJyXzjy83s+arTBeSDuXYjZ73kIOMYnO3rE/ppur6nLPlzrH3z4mQt67RVLp1RUpmSYSra89HlNhCqq9uaT8X4mqzzhYrvcWHu+0D06IRB46PHRRnrC88t2VD8hG3KSPszWyUUCQwaQ3GK2darEGrFyiEFJ97O+2vxdNan85x7adhei3D9bQaYiffPqmZ5/JJmV3gVLGZTrAVB7dki8dNXOQvF7A1e75Mbo3aMomwRcPvdmt+qOoqT502uKo7L3F37TqE6JbGThs+KZzuUSnu5IvxTw6zegAA4N4isA/wbj6+L7/WyDFNRYlrktJqOidixsSHOamXv03xkTMFGo7VVqakltr49Wm79isQCinaJmBMP11yUn5z92szm7kZpn0eidDez70hNalQ6e+mbg88nPZcSmapnjPVF+w71uDu7yi1d/Vlc/efrNVznKbw5Lo16WWMubWJHAI8G9MOFjUwnL7i/KFzAl8/qw5HcaFEbCwrqjfyYTsv81RZ6xwcrub8htWHMxtZgcxCJRfQNEV321a7btrqttqGnKS0un5DH54SZEw+ltHMXd2K31JPfn9xYgsZHwYN1bkn83QMc6PZTJymKKNA5e9zeUoMvws8jeczq5ibOIdU+vrJc1LPlRs4pvHivp0XKllBD/pgyt2dsD61WkdElmq5hK82n5INzaXFDS3X/C6GUnm52BZl7Dlbq2E4RtdwPunUBblbgD3VdX/xe0IqrC8qMXDEUHrk/EVTz6sh9vS1LjxwqsjJ3Ud2naIyArmlWECY+uysrFr+WyJwc/duuJCcrWGIsezosaR8ncS98xKxQ9ch1HXDzZTi+jv39r0Y9TUlVbU6vCe2vQ5QAgAAuLeIfMeNqt+RuvrjVINQ4RU1cpJHx0v8lKWDLfPr7tWy8XMGD5/enJLwxdpmInUOGTpjkIom9VeOj67RYe5fnDhY4Dah69q6CY9iO2dZ0qb43Q9MGeMmcvd1MGa0+PtdvhE9rfZzadj+5doag8w1YuTkEBlFyUY+EJ64LWl5koFW2IdPjQ6UmV/b6Imj6hMOf/fhQUZqFTBm1Ig+9DVbHd3vzOYdHx5lGQvXQLfWK/e0c/CEkAM7vlyzjQgVzj5T4tzEAuqGbV0hDeraFtPTahsKjieWuE2ZYC0SqcYFx29MKvad4nx1K266niK/oQMyNid8fFyidPQIG+CUdDA5zXek5DqP1mTnF1q7jbt6qxehu5+TPjG/aIxtzyO//ZCYWE3y+hVndLSFZ9SwoX3Egu77IAmKicjdsueTIwwtVXoPix5kR7FFmetXN8Y8Pya0w0Np+9AHprOJ+5M+26oxCmW2rl5TZw1w4ROZmf3FRo6w+WXThveMjNjN00Np6Hk1LLxd7RLKRQEu5vewwDFqlO0v6zd8LJLb+QUMCCg+uPVM4BP9Yu9v2pawZdmvrNTBa+IUb4WU6rTE0swQkpg6b7iU6lIKs3W+vS9GpmL/D4cEMx6a6oML3ITSavWoAgD0BP92odcbHR2tUQqAnjPlpaxIsnjkr/1s+czDVu/+MlU6M26o7e2absyajIxAJMJs5nsKZzIwlFh4U3ef4XR5P3+a4/u3cWGWKCDgGj8AAMBtC2qsSXPuRJHcf7z1nYrgtFCE65n3HEoovrnAxrLG2jPZRY4eE/8QcZ9ryDp9KEfT6YPmtJP/+DAb3EQTiR8AAKBXB/76lFU7T4h8J4WrL6VwWhkyNpxW4go83FZs0e749dmqIdO8FH+MMxaVf/9J/tgvSPwAAAD3Hspq6BMPDb1mkdjB2xmFgduMdh83Y+k41AE6jAmUAAAAAAAAiR8AAAAAAJD4AQAAAAAAiR8AAAAAAJD4AQAAAAAAiR8AAAAAAJD4AQAAAACQ+AEAAAAAAIkfAAAAAACQ+AEAAAAAAIkfAAAAAACQ+AEAAAAAAIkfAAAAAACQ+AEAAAAAkPgBAAAAAACJHwAAAAAAkPgBAAAAAACJHwAAAAAAkPgBAAAAAACJHwAAAAAAkPgBAAAAAJD4AQAAAAAAiR8AAAAAAJD4AQAAAADgLhGiBAAA0Htt31740UcZaWlV9fUGhuF+wxoEAkqtFoeH2y1eHBwb64aSAgASPwAAwB8l68+fn3zxYlPbdxQh3G9bD3+eUFNjSEws5v95eCg++ywauR8A7jGC1157HVUAgJ4wmRiGYS0tZSgF3HWPPrr3pZeO1tcbbu1q+RX++GNOXl7j9OmeKDIA3DMwjx8AAHqZ8eMTVq/Ovn3r51fON4E6AwASPwAAwF3w6KN7ExOLb3crfBN8Q6g2ACDxAwAA3FHbtxfe1qv7HfEN8c2h5gBwD8AndwEAoNeYPz/5DjeXn//bP8VbmERe/JAkniOsikSMJe++TCLUt7iHpnQS8QpZu5kECjA6AACJHwAAernt2wsv35nnGvJg/w+WD3hgsKVc03Jy0/E5f8vOZW5Ni3xzfKM9vHUPazCyYtGVw2rdATLheRL3Fjk7iljUkR/fItP/To59Rhyp66+CIxxFKOxpAEDiBwCAP6ePPsows1SgXvTNsL9aXXx93rECiTLCoqmcucWNdkj8XNOZbc8v/CE+s8XSP+q5T555OtySOfHVwJfFzw068cae/hsP/KVf+3GVIV+9T/xfJf+Ja0vwcvLUW+T4kyS1gUxXkeTPycJvSL6GWPmQN5aRx3zI+qfIRh9SvIacNRD3GPLj+yRIQhozyLOvkO0XiV1f8tq/yYOexFBM/vF38uNJwjqTBf9HXo7GoAAAJH4AALiHpKVVmbnvPi13caIMORWb1ude0JGf2s8CgkK2JYQPcxIaSyu+WZT0wj7b7/PHDvo2vu9LlaxnyP5z4WWPrnkwUf3MiqEvTrWyrK3Z8M8DC7+t1Zppk2pr9DLtqVdnfle19L3sJ5xKf3xnwsz/eae/MJoQ47H4X8a9dWR/kO3lgypXRRKzyZwxVy/YU3bkm19bv2DzyUtfk4WbyF9dSeo75MGvyax3W7dp4w6yLZGMFpFnp5KPj5AvwsgLcwl5lVyMJSeXkelvkVFfkK+eIqenkvTvSNM+MvEZ4p1IZmBYAEAP4JO7AADQO7Tdfb/Ln9kyVq78X4V+RNSpnGk//tNngHVrxmYLC/89f9ekCYlvnlAu/G/fMF1Z/G6TR4yzj4DYxrgMMJYn7KfiPhz3r75Vr0zf/th3xinLhz7lbXY2Ddfxlv/GtIPbJWNfecJLIZT5z370MavDvx41tqZ5y8inFwbZiq4+jaklNRJiJzd33O1DNu4ij7sRfSPRcKSx8dImDXqIjLIllIqMCCQNTUR/nGyzJS/HEqmADJ5Hvn6IcNnkl3ry98eIWkhcR5G5niThJAYFAPQIrvEDAEDvwDBm/6qu6fg7WwN2eD65oO/TL46a8ZDDlEHJRwLc5r8RMjZYLqOIUGfhKDDs3ljUstot1iOrcrIjdyBle73dW7FyiaXXf37wILRQKWVD/SmSy924Uba6rs4xtE/7Z2QFdu7OLRlVDFET2sHO8drDKa0maj2p1hAivnLuQI5vIw2hZLQ9SVxG/rOHsDYkSE4420s/t7e/dBGOajv10FSRZgfi0tYWfxoQN44YDpCySjIvllw5sxjBYlAAABI/AADcQyiK4jizoZ+tOpn7zpO5X+4Zm73a+/6oMz5LI+Oajg1yOtv86MSst1qn1tQn5m5rHD3zyaDaGG7PwoJKzpZfVdWGg4NfLm+9hs9xmjr2eo1ezfE2anV5ZSlDnPmDJ1tTXC63sW6L5DQtuPY3BLQDiXEjm3aTOTMvTezhasnbL5MBP5O+h8jzWWTXbhJqQZo3E/dE8xsrsyLSalLOEm+acPXk+1/I8HBi606+307C2g7dJZnE4EZIPsYFAHQPs3oAAKCXHLFaD1ldEj9tef+bg5f+xWvqNJ8nptlYcpqScj7AE6FK7uWtdLe9HMUbir/9WRu5NGy8ruDbeB1nrNqxW2c/vf/fp9mFhjnGjVNJjWbb5OgOx0lR+NAJ2sR3VxVqWH3uutXfV0dOHSQy31cBeXopSX+LLN1CKrREX0W+eJUkh5A5AcRkIJSS2MkIW0++2ED0JmIytwJJBBlbQt5LIkaOnFhJXk8mlgEk1kTeXksaGVJzhNz3GEkzYVAAQI/gGj8AAPQOarW4pkbfealY5hTgtHBRsIslV19QtfqZ1GWnmgRvpI3/PHTdkRCBVl94uqim9fK96cD/zp2aGyH/NmNHI/+tfvOS3a/Jop99f+wTxFB04OThteWVZgI0xTd69Tt52L83PLZk0QveL2nlvpFLNiyIVZLr3RnIbizZt4I8/y/it5gYZSRsDNn0b+JFE24amb+LRAwmtq7ksekk9L/k6W0kzkzD5OMvyMJXicsSog4iy98jDlLyf1+SF18lAf8lAkcydxm5T03YIowLAOgepdXqUQUA6An+7UKvNzo6WqMUcFeMH5+QmFh8hxsdN85l586JKD4A9GqY1QMAAL3D4sXBf5JGAQCQ+AEA4M8oNtbNw0NxJ1vkm+vhH9wFAEDiBwAAuAU++yy6481zbiu+Ib451BwAkPgBAADunNhYt0ce8bkzbfEN4QI/ACDxAwAA3GmrVsWMG+dyu1vhm+AbQrUBAIkfAADgLti5c+KcOb40fVum9/Cr5VeO+/MAwL0E9+MHAIDeZ9WqmFmzvJ99NiU7u/EWrtbXV/nxx0MwmQcAkPgBAADuPj6X8/+2by/86KOMigptebmmulrLMDe3EoGA2NrKHB3lDg6yxYuDkfUBAIkfAADgj5j7UQcAgBvAPH4AAAAAACR+AAAAAABA4geAe9sd+8tHAAAAgMQPAHct9HMchzoAAAAg8QPAvRn3KYqYTAxKAQAAgMQPAPdk4ic0Tet0RpQCAAAAiR8A7snE33qNv7lZg4k9AAAAvQV/1EbiB4CbSPyCVnRzsxbVAAAA6BX4ozYSPwD0PPETmm4N/fx7h05nQEEAAAD+4PjjNRI/ANxU4qdomhYIaKFQUFPTiNAPAADwB4/7/PGaP2oLUQsAuJnET/jEz3ECjuP4NxGFQqZQyHGffgAAgD8U/jDd1KRpatKKRAIkfgC4ucTP/0/TFP/e0f5tS4uuoaFFpbKQyST8QkR/AACAuxv0TSZGq9XzR2f+uCwWC1vjPhI/ANxs6KdpmhC2Pd+3T/Lhc39jo4ZlWY4juI0PAADA3TpGt99Hmz80SySi9ptt8P9aL9WhOgDwG0I/RXFtX1D8WwnDMHzOR+IHAAD4IyR+/v/WsE+3Hq9bv6OQ+AHgN72nkNbpPaT9in/bzH7uStxH6AcAALgrh+b20E9dcuULJH4A+O0XEqgrEf9yyqcQ9wEAAO5e6OeuHKOvnAbwkPgB4He+uZAr0b99GcoCAABwt47MHYP+FUj8AHDLoj8AAAD8AeEvcAEAAAAAIPEDAAAAAAASPwAAAAAAIPEDAAAAAAASPwAAAAAAIPEDAAAAAAASPwAAAAAAEj8AAAAAACDxAwAAAAAAEj8AAAAAAPxR/D8+d7NXCmVuZHN0cmVhbQplbmRvYmoKMTA5IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMTI3MT4+CnN0cmVhbQp42qVYy24rNwzd9yvmB6zo/QAGsyh6b9HuLupd0YXjsbtpUGTV37+kSEqasXPjpEgG8xBF8XF4KHl6ncyk4c9MycK/ns4v8PYrXH+3+8/H6emrmYoq0cbpeJ1cdMpFO9msfHHTcf1z1jrbxcNN+8XoWZvnoM1p1cZdtLms2trTcrCpgMSpoKAxMBCeSdhcloODoauDSYbebcaRy7le1l7h/sz3dfnr+Pv05Ti9TsqVHKb/wE7rVdJpepl8zPLyz/TH9K358YpDCk3M1WcXoyrJOg/Ph/oS0f2n31789Mu/MLE67gbHUS57lZvTQZMjpSzWiCMWDV999RJCCqGQjy5p48HH88ohuCtd1dFAjYjRdMlojBhalDBVQp5SJPnoRbVlDTjDJJarujAtqA8viTiN4pcqv/niorxJUts4ZB4CAZGAjGlrZN1T7GFJdgkzuk3um9Sixv6XjTCkOI7gQBNFUgKBJqKUS0uaW9Rw5TqBvBVseY5DKaiWjSADjIZBgFWFFOTXGFVC4PRacz9SNrptJHDy09cwQCV4pSPWFmlyzxpewfYV4HeB5xNcBXKWKHbOsY4RbiEqb0PTQdUhq3vOK9qElqBvGAVc5LS2EsNA0AR9rTjjtzuIY69MHSyzqK6pQ1VRJhMqEyFN7PButGUxRiwmBbgQmEg8EP0OmPXLDgV3IPNQ5G0K8Oxa2CLA054hzPYHoXZWBdNCjZYwYBbTisgzFntEYBhVHbzJoMnv0NPy5dChThHwnCnq3u1R26C4Q1NULn3YI1OaQ+cLrYboh8Jim1plzxvMxIgC+2qDoFeXKOGswnoujxJlbkuY9VeW2uZ6M+8SOoRgvnVxS3pU/fUCfYwfV9j4DgSGsDOj1Z4u8gBHbYXUIiZBJAKTh7BM9Vty3zi9fq02UyH0SEBA7/tZgZGzCnELi6rlHb4jTzsnJVVcazmBnUm2VcJyYEMJBmOvhh4NxdWgoz3VEgRh0xx0Y4s7NKSVcbZBiUhQiIai0CKc3G3vI0tBnJcTsYeonKc3yjHcQrcrt3SK6iS1uslURRHtRIRCXTOHESiF2AuyyHZjsyEaI2QisEcGHoA6jdZzom2+O3HDVV4V2KdsJ2pwB2oa7o5qPF6oeWDN0/d7WUoqhlbwaPUhFCcbhJw4c2WsL2zhOfeR1hR35N06ao5z76DcHlhF45K61Mh2KDf0Gcto4OXT3Bm+tnkydWUI3VMo9Nm4YWXT3mAOMRG4hftQb/uHpCMnnwhFhOsG1oy+p7mTX5Vh0BHw6vh+L1RJgDOzYQHh2bHHSWykJqThyH7PUE9+HI0ZH8wn0DhOfBON+C142tK0rQ0g1K/9+W5nKhlOD2aDVFfbuoQc7mNojZ9554JMQPz5ELyGjlEpCHdAdC4ZKGhHSihDrOMIf55aRm/5dI372E7HnYo3/ePRjAXtlfef4I/NxLqxxEz5RFmqG853N5tOpZL/T1berD7s9y4ORQ0Kct/1AL7fTZTfJElSLicdTialwn+ipEhDhZZsXt41WIyl3UDlzB6PHY52ZFJpIWU4o4Zdd89s6E2A5dTWWjZ0y2r9bYscNji73i6bBtO6Y+ujrLLHw940yI+cOFoMyIG3ThzNnB+cODa+ffjEAUwf+gFvqKXxt4NDjEEl5/nXg/ZKvx/c/P7hQ1YRUxdTUjlnpnT8reKq9+t8++k7n13b1QplbmRzdHJlYW0KZW5kb2JqCjExMiAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDI1MzE+PgpzdHJlYW0KeNrFWsmOM8cNvucp+gVUqX0BBB0COAZyczK3IAeNpPElPtiXvH5IFllLqzVqKQ6MRJ6/u6tY3PmR3cuvi1k0/M8sycL/9XL5Ba5+hN/P7e9fPpY//9UsRZVo4/LxBTdtVr645eP6z6PW2Z4C/NH+ZPRRm8+gzfmqjbtpc7tqa8+ng83wRJ/LycMCAw/CZ11sbqeDg0dfDjaZek2Lze1CP2u/4O8n/72e/vXxt+WHj+XXRbmSw/IfZMarpNPyy+Jjlot/L/9YfrqTRCsDEmhlo4P/umiWv/+4cfO3JrPxyvloq9AHY1UILLW5fTFPF+Hp9zzNRljn5yN1AM3GSDq8XFHnBixmQj5Zy2otBdSXCqx1oMyrq4qNHp5EUnqpOl9xTOe7ycIHDycXPlj7ah38oXmRoEfCQNQlsKBFuldPrCFPnwFv5iN5AfBwMqYzTTanh0bX5UjnVmkl9iCQpEll5IjqJlc5sMsz+VBfILTriXjHRZYg1tPRUVESXkk0gOzBOc0UcZXwKTv7CUgPn6DiK4t7jIR8sg6Yaz6RzCSG7CLrL6Qy0uw6LMw17EAl079dqteWr5EqGAJDES2PrmxUCYFd+XLjwEuuGqV6TZQ7kYW8jGueGw4XVw54m/68AY+F1SCmqov2+jauvQIZSSSompo46gpfiEK1KtkO5f566vEmqmDyckhW+ZSrYqzNT/dBvimQb6Z9OsXq9HbgBVQUugeHUUN4o0YOHTcn2xCVNQUOr6RR9vCC7OhblejIdXQKOBKiHMtiJYx2k8YolyeXgIbarcuilTfmdV2O+/SnWVcMidwNZTmtdE5NWSIJJpCaFhPH10XqzKvOtKFMo51y1rZTvzgz1lMxXDAekcTlygVQDO+dxIBrblMV3+LxnpwGVR7yEEXIGSYVz6E+JzVhAq+cXFl/2wxHeLA/VozOULD86waeNqJXsYBN85uWLcE3HQPmOCQWqkVPS5RsbEmtd+ij5JqrhjQUjqvDZwtbZXyU0yukIaWeu3eW2TmrhVHPoFIIG036PlBd+QTlnyPQKfQD1qhgo6/jM7TBYHwSQfJnwGPG3E71yFTD10rUYmOXDQFp2BTfsOG4UVuDOuiBEvKGDWGrLj2VobT30GA3494rq8sbjI8b33I+rlXhaYm/9ySvVfTpDUdqkLolBgphX+raGPvBbIPuXVRWOzwynZgUa8ZslGAxWbnmhPL0cV5BCIR0jAAu/5Bl0vK4trDmK7ogqrvtHzEm7Rv2Hze28tKRyP83C9/ibOck8T3jgJ49/gfz7VZlhrKZwhuqHDdSDkCukBvKy2YodbXgGEYU64Zk9LYRUled1awuYjdU6ju4xd/YkHBMXbEp6aCaI3KXSkpW4ApvqGTc+AekRWuCKm+U5HHfzqRoVE5lE2u5FKgFrcjq0qtra56Sn8qZQGSyntXf1eKcVAGXGzOoy4V7ki33czE0vDNZgrJQjf3qf7RyinQXI+9F8WppHWg090VZA4dzxXRU9Zm7fOxZj7TgKcbDqp3D06ecSac3uaQkAOe+BUV1k6uT7eBsrWNcl5M06kJaeowPkNZ6T7qGxrCoHPyqQxQexoQjXSHNe8wQwRsAuGpr0v4Qo27df9YcKhrTK/CfJFNwCvEydOp51HSH4pIy+67JVsXcvQgTZgR7uf1J0/qgsn2jU5w2/o4ZYgC9TfkEfH3uydFzFXEvZBRoFlN8o42bNm4J+hAmoPfKGHFA97WKbhXKnQOJDUdwVoHvN9VKf0hJqvBsRGA1sZz1S0AcIRjmO0QML/QA+62TjYpvJfxxI40LOTmHcd5i8tpA2DCCS51wdnXOCINQa7K0NZnUV95t3EiD8zjEpKPkJUpcq+6MsCXz1D3A5GFshT4WPhlaO54x+yPjAqQP+e90MHU2yS5GViNTuHAqBjNC6BlXqsqOOROx6OswNIx+6fukjlsHyLx1QxyrEDNOo73LrVWTxkMNi1HB4+DPVwVINl8P+maIJJlSakbNC2NT8rkHByRop4JpESSeRFCfQ0HOfaEvdcB4yG/A+2kjOqq4nf2uP7kXC7pEU/wAb+7fbnRE09yA53sT8r/HMMnSSwoZv+3oioY0tw2xpSHMNCbeYveVjsDZAv94I6tMG7+b3Q2tpUzoN8ZUG7Vh7wS/t22PJviEM9tw5b6mMLBZnf201d0q30HpaMbh1eMXZlLHwXONP+6VtQgC35Z1Y6QF8D3Y+IoP7nYen5T3b/RO00YsjkPcMlrmQEtslRDXPhLSdqGVxZKEWy+JG+aec5toH7NsJzZeNXpRCI/qUlzXpcB9BtWdsUjKWBbut24XTm316TFHjMiJiV2J3AWjjGkuQYhN4pMLTXOPKk2PalJcpPHJ47Z8twPFoNwbyHrc9zz38HAFw/Hp5BVhttRYICgq7YP8wYE2QKbJKsbWbSAxe+xeUT2ao3gy/sacmleNuEIGIWLgF8YcLjvljHtD1ePGP7iJmTkEZKa0joB8kirO9vLtj6zAPGJa394RlON2FFHAFkd5e/tlQyVoZpDWBnzjidgTXLFoFL3KFbRELNmHE/ykv5DN5TgBQc4gVMtGzp2c+yAZZq4YFAEhCEtztpLzOFNdxuaABWmi+XFkmsuaZ35H/WCAIgf51Ra5P22aJjfCAsjbX2XB3QqPzSYMpq6wBou8j/VtuMBDG+/XoyBXEwBxzMoPDQfMwG+lRVPh/vhVAbcdDZ9gKXLODlqr5z2GcwQVKkGr548gphRSZFV727d+WVFPWzmk3BimUcjQ0/RUV/lRiHsqKE9ZiSMtM2693jaBNAuy5dCjmfmdVDtSLDkUP6P9kT4LgJrhZt2MiK55OdWA6WXtEIPU4u/NuN47pfMbxW3a+Ly69a8uvgue3VxHoyDLv8H1uHH1Pn7mUsaJLRj3M5cyvZ57nblxIwIXYkBmuFjSr/77IZWs707yrH3ZFvPQXh9g0XKtlb4boFeP3Mi4Qd9/gVVvxkdyhTu5gtnikEtgCOsTBC+bdSkJZhdetv17mFrHw2QkrXLoX1UAfR3P9RcgBVjInjHVH+QFbS91TYBsGF29F8HlE/w8P8d7ocA1/Duleg/X4zXSNEATUSE+o3U3pnPmswxft3tivcrrVGaIGlLF04VLoqjrfTqZ78Xz1pjAq5QbYpo+w3I6fY85nA6rbC0fBPGHKO21g44ch0RzhYjlpKdpH6msBlaNyzH90xlPsEAl1qvzyF77XI6usAlGRpFhHEIys7FDSwwWSZKgJi4EckarU9uMNr9lMcnYbJUZUszJYOuLs/GL1QN0Ayo5z9+stsv61erG97aHmJLKkv3p29ivim2czVAWzNS0uVtvwQZs0z4O5W9XT4cYvoO1G9/Q7PpKbyX4T3/6L4RM5y4KZW5kc3RyZWFtCmVuZG9iagoxMTUgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1hZ2UvV2lkdGggNjczL0hlaWdodCA4NDcvQ29sb3JTcGFjZS9EZXZpY2VHcmF5L0JpdHNQZXJDb21wb25lbnQKOC9EZWNvZGVQYXJtczw8L0JpdHNQZXJDb21wb25lbnQgOC9Db2xvcnMgMS9Db2x1bW5zIDY3My9QcmVkaWN0b3IgMj4+L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGgKMTUzNT4+CnN0cmVhbQp42u3SAQ0AAAzCsPs3zW0Q0kpYloNikQCDgkExKBgUDIpBwaAYFAwKBsWgYFAMCgYFg2JQMCgGBYOCQTEoGBSDgkHBoBgUDAoGxaBgUAwKBgWDYlAwKAYFg4JBMSgYFIOCQcGgGBQMikHBoGBQDAoGBYNiUDAoBgWDgkExKBgUg4JBwaAYFAyKQcGgYFAMCgbFoGBQMCgGBYOCQTEoGBSDgkHBoBgUDIpBwaBgUAwKBsWgYFAwKAYFg2JQMCgYFIOCQcGgGBQMikHBoGBQDAoGxaBgUDAoBgWDYlAwKBgUg4JBMSgYFAyKQcGgYFAMCgbFoGBQMCgGBYNiUDAoGBSDgkExKBgUDIpBwaAYFAwKBsWgYFAwKAYFg2JQMCgYFIOCQTEoGBQMikHBoBgUDAoGxaBgUAwKBgWDYlAwKBgUg4JBMSgYFAyKQcGgGBQMCgbFoGBQDAoGBYNiUDAoBgWDgkExKBgUDIpBwaAYFAwKBsWgYFAMCgYFg2JQMCgGBYOCQTEoGBSDgkHBoBgUDAoGxaBgUAwKBgWDYlAwKAYFg4JBMSgYFIOCQcGgGBQMikHBoGBQDAoGBYNiUDAoBgWDgkExKBgUg4JBwaAYFAyKQcGgYFAMCgbFoGBQMCgGBYNiUAkwKBgUg4JBwaAYFAyKQcGgYFAMCgbFoGBQMCgGBYNiUDAoGBSDgkExKBgUDIpBwaBgUAwKBsWgYFAwKAYFg2JQMCgYFIOCQTEoGBQMikHBoBgUDAoGxaBgUDAoBgWDYlAwKBgUg4JBMSgYFAyKQcGgGBQMCgbFoGBQDAoGBYNiUDAoGBSDgkExKBgUDIpBwaAYFAwKBsWgYFAMCgYFg2JQMCgGBYOCQTEoGBQMikHBoBgUDAoGxaBgUAwKBgWDYlAwKAYFg4JBMSgYFIOCQcGgGBQMCgbFoGBQDAoGBYNiUDAoBgWDgkExKBgUg4JBwaAYFAyKQcGgYFAMCgYFg2JQMCgGBYOCQTEoGBSDgkHBoBgUDIpBwaBgUAwKBsWgYFAwKAYFg4JBMSgYFIOCQcGgGBQMikHBoGBQDAoGxaBgUDAoBgWDYlAwKBgUg4JBwaAYFAyKQcGgYFAMCgbFoGBQMCgGBYNiUDAoGBSDgkExKBgUDIpBwaBgUAwKBsWgYFAwKAYFg2JQMCgYFIOCQTEoGBQMikHBoBgUDAoGxaBgUDAoBgWDYlAwKBgUg4JBMSgYFAyKQcGgGBQMCgbFoGBQDAoGBYNiUDAoBpUAg4JBMSgYFAyKQcGgGBQMCgbFoGBQDAoGBYNiUDAoBgWDgkExKBgUg4JBwaAYFAwKBsWgYFAMCgYFg2JQMCgGBYOCQTEoGBSDgkHBoBgUDIpBwaBgUAwKBgWDYlAwKAYFg4JBMSgYFIOCQcGgGBQMikHBoGBQDAoGxaBgUDAoBgWDgkExKBgUg4JBwaAYFAyKQcGgYFAMCgbFoGBQMCgGBYNiUDAo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</File>
    </Filelist>
    <DatabaseInstall Type="post">
        <TableCreate Type="post" Name="oidc_profiles">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="INTEGER"></Column>
            <Column Name="name" Required="true" Size="256" Type="VARCHAR"></Column>
            <Column Name="client_id" Required="true" Size="1024" Type="VARCHAR"></Column>
            <Column Name="client_secret" Required="true" Size="2048" Type="VARCHAR"></Column>
            <Column Name="redirect_uri" Required="true" Size="4096" Type="VARCHAR"></Column>
            <Column Name="openid_config" Required="true" Size="4096" Type="VARCHAR"></Column>
            <Column Name="ssl_options" Required="true" Size="2048" Type="VARCHAR"></Column>
            <Column Name="misc" Required="true" Size="4096" Type="VARCHAR"></Column>
            <Column Name="ttl" Required="true" Type="INTEGER"></Column>
            <Column Name="create_time" Required="true" Type="DATE"></Column>
            <Column Name="create_by" Required="true" Type="INTEGER"></Column>
            <Column Name="change_time" Required="true" Type="DATE"></Column>
            <Column Name="change_by" Required="true" Type="INTEGER"></Column>
            <Column Name="valid_id" Required="true" Type="SMALLINT"></Column>
            <Unique Name="oidc_profiles_name">
                                <UniqueColumn Name="name"></UniqueColumn>
</Unique>
            <ForeignKey ForeignTable="users">
                <Reference Foreign="id" Local="create_by">
                </Reference>
            </ForeignKey>
            <ForeignKey ForeignTable="users">
                <Reference Foreign="id" Local="change_by">
                </Reference>
            </ForeignKey>
            <ForeignKey ForeignTable="valid">
                <Reference Foreign="id" Local="valid_id">
                </Reference>
            </ForeignKey>
        </TableCreate>
        <TableCreate Type="post" Name="oidc_functional_accounts">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="INTEGER"></Column>
            <Column Name="name" Required="true" Size="256" Type="VARCHAR"></Column>
            <Column Name="oidc_profile_id" Required="true" Type="INTEGER"></Column>
            <Column Name="grant_type" Required="true" Size="128" Type="VARCHAR"></Column>
            <Column Name="scopes" Required="true" Size="4096" Type="VARCHAR"></Column>
            <Column Name="resources" Required="true" Size="4096" Type="VARCHAR"></Column>
            <Column Name="resource_param_name" Required="true" Size="128" Type="VARCHAR"></Column>
            <Column Name="username" Required="false" Size="256" Type="VARCHAR"></Column>
            <Column Name="passwd" Required="false" Size="256" Type="VARCHAR"></Column>
            <Column Name="token_type" Required="true" Size="64" Type="VARCHAR"></Column>
            <Column Name="create_time" Required="true" Type="DATE"></Column>
            <Column Name="create_by" Required="true" Type="INTEGER"></Column>
            <Column Name="change_time" Required="true" Type="DATE"></Column>
            <Column Name="change_by" Required="true" Type="INTEGER"></Column>
            <Column Name="valid_id" Required="true" Type="SMALLINT"></Column>
            <Unique Name="oidc_functional_accounts_name">
                                <UniqueColumn Name="name"></UniqueColumn>
</Unique>
            <ForeignKey ForeignTable="oidc_profiles">
                <Reference Foreign="id" Local="oidc_profile_id">
                </Reference>
            </ForeignKey>
            <ForeignKey ForeignTable="users">
                <Reference Foreign="id" Local="create_by">
                </Reference>
            </ForeignKey>
            <ForeignKey ForeignTable="users">
                <Reference Foreign="id" Local="change_by">
                </Reference>
            </ForeignKey>
            <ForeignKey ForeignTable="valid">
                <Reference Foreign="id" Local="valid_id">
                </Reference>
            </ForeignKey>
        </TableCreate>
        <TableCreate Type="post" Name="oauth2_token_storage">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="INTEGER"></Column>
            <Column Name="oidc_functional_account_id" Required="true" Type="INTEGER"></Column>
            <Column Name="token_type" Required="true" Size="20" Type="VARCHAR"></Column>
            <Column Name="token" Required="true" Size="4096" Type="VARCHAR"></Column>
            <Column Name="expires_at" Required="false" Type="INTEGER"></Column>
            <ForeignKey ForeignTable="oidc_functional_accounts">
                <Reference Foreign="id" Local="oidc_functional_account_id">
                </Reference>
            </ForeignKey>
        </TableCreate>
    </DatabaseInstall>
    <DatabaseUninstall Type="pre">
        <TableDrop Type="pre" Name="oauth2_token_storage">
        </TableDrop>
        <TableDrop Type="pre" Name="oidc_functional_accounts">
        </TableDrop>
        <TableDrop Type="pre" Name="oidc_profiles">
        </TableDrop>
    </DatabaseUninstall>
</otrs_package>