iPhoneHandle
0.9.8
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
Build for iPhoneHandle 0.9.8.
Security release OSA-2011-02.
Fixed many different bugs.
Fixed bug#5731 Access to all tickets via responsible.
Added Package Manager information for install, upgrade and uninstall procedures.
Fixed bug#5624 - Implement non error responses in iPhoneHandle.
New Release containing different fixes.
Init release.
Improved ScreenConfig feature for Dynamic iPhone Screens.
The iPhoneHandle Package.
Das iPhoneHandle Paket.
2.4.x
3.0.x
<br/>
<b>WELCOME</b>
<br/>
<br/>
You are about to install the OTRS package iPhoneHandle.<br/>
<br/>
<br/>
<b>ATTENTION</b>
<br/>
<br/>
Make sure your database accepts packages over 5 MB in size. A MySQL database for example accepts packages up to 1 MB by default. In this case, the value for max_allowed_packet must be increased. The recommended maximum size accepted is 20 MB.<br/>
<br/>
<br/>
((enjoy))<br/>
<br/>
<br/>
<b>ATTENTION</b>
<br/>
<br/>
If you uninstall this package, MyOTRS the iPhone app, will not be able to communicate with
your server!
<br/>
<br/>
((enjoy))<br/>
<br/>
<br/>
<b>WELCOME</b>
<br/>
<br/>
You are about to upgrade the OTRS package iPhoneHandle.<br/>
<br/>
<br/>
((enjoy))<br/>
<br/>
2017-10-09 14:26:23
opms.otrs.com
IyEvdXNyL2Jpbi9wZXJsIC13CiMgLS0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFGRkVSTyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiMgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMKIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQojIG9yIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgdXNlIC4uLy4uLyBhcyBsaWIgbG9jYXRpb24KdXNlIEZpbmRCaW4gcXcoJEJpbik7CnVzZSBsaWIgIiRCaW4vLi4vLi4iOwp1c2UgbGliICIkQmluLy4uLy4uL0tlcm5lbC9jcGFuLWxpYiI7Cgp1c2UgS2VybmVsOjpDb25maWc7CnVzZSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlOwp1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpEQjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpNYWluOwp1c2UgS2VybmVsOjpTeXN0ZW06OlRpbWU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6QXV0aDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpVc2VyOwp1c2UgS2VybmVsOjpTeXN0ZW06Okdyb3VwOwp1c2UgS2VybmVsOjpTeXN0ZW06OlF1ZXVlOwp1c2UgS2VybmVsOjpTeXN0ZW06OlNlcnZpY2U7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VHlwZTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpTdGF0ZTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2NrOwp1c2UgS2VybmVsOjpTeXN0ZW06OlNMQTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXI7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0Owp1c2UgS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3Q7CnVzZSBLZXJuZWw6OlN5c3RlbTo6SlNPTjsKdXNlIEtlcm5lbDo6U3lzdGVtOjppUGhvbmU7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdDsKCm15ICRTZWxmID0gQ29yZS0+bmV3KCk7CnByaW50ICJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IFxuIjsKcHJpbnQgIlxuIjsKcHJpbnQgJFNlbGYtPkRpc3BhdGNoKCk7CgpwYWNrYWdlIENvcmU7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIERpc3BhdGNoIHsKICAgIG15ICgkU2VsZikgPSBAXzsKCiAgICAjIGNvbW1vbiBvYmplY3RzCiAgICAkU2VsZi0+e0NvbmZpZ09iamVjdH0gPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICAkU2VsZi0+e0VuY29kZU9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e0xvZ09iamVjdH0gICAgPSBLZXJuZWw6OlN5c3RlbTo6TG9nLT5uZXcoCiAgICAgICAgTG9nUHJlZml4ID0+ICdPVFJTLVJQQycsCiAgICAgICAgJXskU2VsZn0sCiAgICApOwogICAgJFNlbGYtPntNYWluT2JqZWN0fSAgICAgICAgID0gS2VybmVsOjpTeXN0ZW06Ok1haW4tPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57REJPYmplY3R9ICAgICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpEQi0+bmV3KCAleyRTZWxmfSApOwogICAgJFNlbGYtPntUaW1lT2JqZWN0fSAgICAgICAgID0gS2VybmVsOjpTeXN0ZW06OlRpbWUtPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57VXNlck9iamVjdH0gICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpVc2VyLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e0dyb3VwT2JqZWN0fSAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6R3JvdXAtPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57UXVldWVPYmplY3R9ICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpRdWV1ZS0+bmV3KCAleyRTZWxmfSApOwogICAgJFNlbGYtPntTZXJ2aWNlT2JqZWN0fSAgICAgID0gS2VybmVsOjpTeXN0ZW06OlNlcnZpY2UtPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57VHlwZU9iamVjdH0gICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpUeXBlLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1N0YXRlT2JqZWN0fSAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6U3RhdGUtPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57TG9ja09iamVjdH0gICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpMb2NrLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1NMQU9iamVjdH0gICAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6U0xBLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e0N1c3RvbWVyVXNlck9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0gICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0LT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e0xpbmtPYmplY3R9ICAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdC0+bmV3KCAleyRTZWxmfSApOwogICAgJFNlbGYtPntKU09OT2JqZWN0fSAgICAgICAgID0gS2VybmVsOjpTeXN0ZW06OkpTT04tPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57UGFyYW1PYmplY3R9ICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QtPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57aVBob25lT2JqZWN0fSAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjppUGhvbmUtPm5ldyggJXskU2VsZn0gKTsKCiAgICAjIGdldCBsb2cgZmlsZW5hbWUKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6TG9nRmlsZScpICkgewogICAgICAgICRTZWxmLT57RGVidWdMb2dGaWxlfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkxvZ0ZpbGUnKTsKICAgIH0KCiAgICAjIHNldCBjb21tb24gdmFyaWFibGVzCiAgICBteSAkVXNlciAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAnVXNlcicgKTsKICAgIG15ICRQdyAgICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdQYXNzd29yZCcgKTsKICAgIG15ICRPYmplY3QgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdPYmplY3QnICk7CiAgICBteSAkTWV0aG9kID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAnTWV0aG9kJyApOwogICAgbXkgJERhdGEgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0RhdGEnICk7CiAgICBteSAkUGFyYW1TY2FsYXIgPSAkU2VsZi0+e0pTT05PYmplY3R9LT5EZWNvZGUoIERhdGEgPT4gJERhdGEgKTsKCiAgICBteSAlUGFyYW07CiAgICBpZiAoJFBhcmFtU2NhbGFyKSB7CiAgICAgICAgJVBhcmFtID0gJXskUGFyYW1TY2FsYXJ9OwogICAgfQogICAgJFVzZXIgfHw9ICcnOwogICAgJFB3ICAgfHw9ICcnOwoKICAgICMgaW5ib3VuZCBsb2cKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6RGVidWdMb2cnKSApIHsKICAgICAgICBteSAkTWVzc2FnZSA9ICdVc2VyPScgLiAkVXNlciAuICcmUGFzc3dvcmQ9KioqKicgLiAnJk9iamVjdD0nIC4gJE9iamVjdAogICAgICAgICAgICAuICcmTWV0aG9kPScgLiAkTWV0aG9kIC4gJyZEYXRhPScgLiAkRGF0YTsKCiAgICAgICAgJFNlbGYtPkxvZygKICAgICAgICAgICAgRGlyZWN0aW9uID0+ICdJbmJvdW5kJywKICAgICAgICAgICAgTWVzc2FnZSAgID0+ICRNZXNzYWdlLAogICAgICAgICAgICApCiAgICB9CgogICAgIyBhZ2VudCBhdXRoCiAgICBteSAlUGFyYW1GaXhlZDsKICAgIGlmICgxKSB7CiAgICAgICAgbXkgJEF1dGhPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6QXV0aC0+bmV3KCAleyRTZWxmfSApOwogICAgICAgIG15ICRVc2VyTG9naW4gID0gJEF1dGhPYmplY3QtPkF1dGgoCiAgICAgICAgICAgIFVzZXIgPT4gJFVzZXIsCiAgICAgICAgICAgIFB3ICAgPT4gJFB3CiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJFVzZXJMb2dpbiApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJBdXRoIGZvciB1c2VyICRVc2VyIGZhaWxlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gJFNlbGYtPlJlc3VsdCgpOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgdXNlciBpZAogICAgICAgIG15ICRVc2VySUQgPSAkU2VsZi0+e1VzZXJPYmplY3R9LT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFVzZXJMb2dpbiwKICAgICAgICApOwogICAgICAgIHJldHVybiBpZiAhJFVzZXJJRDsKCiAgICAgICAgJFBhcmFtRml4ZWR7VXNlcklEfSA9ICRVc2VySUQ7CiAgICB9CgogICAgIyBzeXN0ZW0gYXV0aAogICAgZWxzZSB7CiAgICAgICAgbXkgJFJlcXVpcmVkVXNlciAgICAgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnU09BUDo6VXNlcicpOwogICAgICAgIG15ICRSZXF1aXJlZFBhc3N3b3JkID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1NPQVA6OlBhc3N3b3JkJyk7CgogICAgICAgIGlmICgKICAgICAgICAgICAgIWRlZmluZWQgJFJlcXVpcmVkVXNlcgogICAgICAgICAgICB8fCAhbGVuZ3RoICRSZXF1aXJlZFVzZXIKICAgICAgICAgICAgfHwgIWRlZmluZWQgJFJlcXVpcmVkUGFzc3dvcmQgfHwgIWxlbmd0aCAkUmVxdWlyZWRQYXNzd29yZAogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdub3RpY2UnLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1NPQVA6OlVzZXIgb3IgU09BUDo6UGFzc3dvcmQgaXMgZW1wdHksIFNPQVAgYWNjZXNzIGRlbmllZCEnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gJFNlbGYtPlJlc3VsdCgpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkVXNlciBuZSAkUmVxdWlyZWRVc2VyIHx8ICRQdyBuZSAkUmVxdWlyZWRQYXNzd29yZCApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJBdXRoIGZvciB1c2VyICRVc2VyIGZhaWxlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gJFNlbGYtPlJlc3VsdCgpOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICEkU2VsZi0+eyRPYmplY3R9ICYmICRPYmplY3QgbmUgJ0N1c3RvbU9iamVjdCcgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJObyBzdWNoIE9iamVjdCAkT2JqZWN0ISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJFNlbGYtPlJlc3VsdCgpOwogICAgfQoKICAgIGlmICggKCAkU2VsZi0+eyRPYmplY3R9ICYmICEkU2VsZi0+eyRPYmplY3R9LT5jYW4oJE1ldGhvZCkgKSAmJiAhJFNlbGYtPmNhbigkTWV0aG9kKSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIHN1Y2ggbWV0aG9kICckTWV0aG9kJyBpbiAnJE9iamVjdCchIiwKICAgICAgICApOwogICAgICAgIHJldHVybiAkU2VsZi0+UmVzdWx0KCk7CiAgICB9CgogICAgaWYgKCAkT2JqZWN0ID1+IC9eKERCT2JqZWN0fFRpY2tldE9iamVjdDEyMykkLyApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIGFjY2VzcyB0byAnJE9iamVjdCchIiwKICAgICAgICApOwogICAgICAgIHJldHVybiAkU2VsZi0+UmVzdWx0KCk7CiAgICB9CgogICAgaWYgKCAkT2JqZWN0IGVxICdDdXN0b21PYmplY3QnICkgewogICAgICAgIG15IEBSZXN1bHQgPSAkU2VsZi0+e2lQaG9uZU9iamVjdH0tPiRNZXRob2QoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJVBhcmFtRml4ZWQsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJFNlbGYtPlJlc3VsdCggXEBSZXN1bHQgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIG15IEBSZXN1bHQgPSAkU2VsZi0+eyRPYmplY3R9LT4kTWV0aG9kKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVQYXJhbUZpeGVkLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRTZWxmLT5SZXN1bHQoIFxAUmVzdWx0ICk7CiAgICB9Cn0KCnN1YiBSZXN1bHQgewogICAgbXkgKCAkU2VsZiwgJFJlc3VsdCApID0gQF87CgogICAgbXkgJVJlc3VsdFByb3RvY29sOwoKICAgIGlmICgkUmVzdWx0KSB7CiAgICAgICAgaWYgKCBAeyRSZXN1bHR9ICkgewogICAgICAgICAgICBpZiAoIEB7JFJlc3VsdH1bMF0gZXEgLTEgKSB7CiAgICAgICAgICAgICAgICAkUmVzdWx0UHJvdG9jb2x7UmVzdWx0fSA9ICdmYWlsZWQnOwogICAgICAgICAgICAgICAgZm9yIG15ICRLZXkgKHF3KGVycm9yIG5vdGljZSkpIHsKICAgICAgICAgICAgICAgICAgICAkUmVzdWx0UHJvdG9jb2x7TWVzc2FnZX0gPSAkU2VsZi0+e0xvZ09iamVjdH0tPkdldExvZ0VudHJ5KAogICAgICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICRLZXksCiAgICAgICAgICAgICAgICAgICAgICAgIFdoYXQgPT4gJ01lc3NhZ2UnLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgbGFzdCBpZiAkUmVzdWx0UHJvdG9jb2x7TWVzc2FnZX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se1Jlc3VsdH0gPSAnc3VjY2Vzc2Z1bCc7CiAgICAgICAgICAgICAgICAkUmVzdWx0UHJvdG9jb2x7RGF0YX0gICA9ICRSZXN1bHQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGVsc2UgewogICAgICAgICAgICAkUmVzdWx0UHJvdG9jb2x7UmVzdWx0fSA9ICdzdWNjZXNzZnVsJzsKICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se0RhdGF9ICAgPSAkUmVzdWx0OwogICAgICAgIH0KICAgIH0KCiAgICBlbHNlIHsKICAgICAgICAkUmVzdWx0UHJvdG9jb2x7UmVzdWx0fSA9ICdmYWlsZWQnOwogICAgICAgIGZvciBteSAkS2V5IChxdyhlcnJvciBub3RpY2UpKSB7CiAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtNZXNzYWdlfSA9ICRTZWxmLT57TG9nT2JqZWN0fS0+R2V0TG9nRW50cnkoCiAgICAgICAgICAgICAgICBUeXBlID0+ICRLZXksCiAgICAgICAgICAgICAgICBXaGF0ID0+ICdNZXNzYWdlJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbGFzdCBpZiAkUmVzdWx0UHJvdG9jb2x7TWVzc2FnZX07CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IHJlc3VsdCB0byBhIHZhcmlhYmxlIGZvciBlYXN5IGxvZyBvdXRwdXQKICAgIG15ICRKU09OUmVzdWx0ID0gJFNlbGYtPntKU09OT2JqZWN0fS0+RW5jb2RlKCBEYXRhID0+IFwlUmVzdWx0UHJvdG9jb2wgKTsKCiAgICAjIG91dGJvdW5kIGxvZwogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnaVBob25lOjpEZWJ1Z0xvZycpICkgewoKICAgICAgICAkU2VsZi0+TG9nKAogICAgICAgICAgICBEaXJlY3Rpb24gPT4gJ091dGJvdW5kJywKICAgICAgICAgICAgTWVzc2FnZSAgID0+ICRKU09OUmVzdWx0LAogICAgICAgICAgICApCiAgICB9CgogICAgcmV0dXJuICRKU09OUmVzdWx0Owp9CgpzdWIgTG9nIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZIOwoKICAgICMgb3BlbiBsb2dmaWxlCiAgICBpZiAoICFvcGVuICRGSCwgJz4+JywgJFNlbGYtPntEZWJ1Z0xvZ0ZpbGV9ICkgewoKICAgICAgICAjIHByaW50IGVycm9yIHNjcmVlbgogICAgICAgIHByaW50IFNUREVSUiAiXG4iOwogICAgICAgIHByaW50IFNUREVSUiAiID4+IENhbid0IHdyaXRlICRTZWxmLT57TG9nRmlsZX06ICQhIDw8XG4iOwogICAgICAgIHByaW50IFNUREVSUiAiXG4iOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHdyaXRlIGxvZyBmaWxlCiAgICBwcmludCAkRkggJ1snIC4gJFNlbGYtPntUaW1lT2JqZWN0fS0+Q3VycmVudFRpbWVzdGFtcCgpIC4gJ10nOwogICAgcHJpbnQgJEZIICJbRGVidWddIFskUGFyYW17RGlyZWN0aW9ufV0gWyRQYXJhbXtNZXNzYWdlfVxuIjsKCiAgICAjIGNsb3NlIGZpbGUgaGFuZGxlCiAgICBjbG9zZSAkRkg7CiAgICByZXR1cm4gMTsKfQoKMTsK
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8b3Ryc19jb25maWcgdmVyc2lvbj0iMS4wIiBpbml0PSJBcHBsaWNhdGlvbiI+CgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpEZWJ1Z0xvZyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BbGxvd3MgdG8gZW5hYmxlIGEgc3BlY2lhbCBsb2cgZm9yIGFsbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gaVBob25lIGFuZCBvdHJzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OkxvZzwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6TG9nRmlsZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBwYXRoIGFuZCBmaWxlIG5hbWUgZm9yIHRoZSBkZWd1ZyBsb2cgZmlsZS4gVGhpcyBmaWxlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjcmVhdGVkIGJ5IHRoZSBzeXN0ZW0sIGlmIGl0IGRvZXNuJ3QgZXhpc3QuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6TG9nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4vdG1wL2lQaG9uZS5sb2c8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI1RpY2tldFR5cGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGlja2V0IHR5cGUgaW4gdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIG9uIHRoZSBpUGhvbmUgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI1NlcnZpY2UiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgc2VydmljZSBpbiB0aGUgbmV3IHBob25lIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UgKFRpY2tldDo6U2VydmljZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjT3duZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGlja2V0IG93bmVyIGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI1Jlc3BvbnNpYmxlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHJlc3BvbnNpYmxlIGFnZW50IG9mIHRoZSB0aWNrZXQgaW4gdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjQ3VzdG9tZXJJRCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSBjdXN0b21lciBpZCBpbiB0aGUgbmV3IHBob25lIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNTdGF0ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BbGxvd3MgdG8gc2V0IGEgbmV3IHRpY2tldCBzdGF0ZSBpbiB0aGUgbmV3IHBob25lIHRpY2tldCB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjU3RhdGVEZWZhdWx0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGRlZmF1bHQgbmV4dCBzdGF0ZSBmb3IgbmV3IHBob25lIHRpY2tldHMgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+b3BlbjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNQcmlvcml0eURlZmF1bHQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjMgbm9ybWFsPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI0FydGljbGVUeXBlRGVmYXVsdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHR5cGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgbmV3IHBob25lIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+cGhvbmU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjU2VuZGVyVHlwZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSBkZWZhdWx0IHNlbmRlciB0eXBlIGZvciBuZXcgcGhvbmUgdGlja2V0IGluIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPmN1c3RvbWVyPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI1RpbWVVbml0cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aW1lIHVuaXRzIGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI1RpY2tldEZyZWVUZXh0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldCBmcmVlIHRleHQgb3B0aW9ucyBzaG93biBpbiB0aGUgbmV3IHBob25lIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuIFBvc3NpYmxlIHNldHRpbmdzOiAwID0gRGlzYWJsZWQsIDEgPSBFbmFibGVkLCAyID0gRW5hYmxlZCBhbmQgcmVxdWlyZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIzIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI0Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI1Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI2Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI3Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI4Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI5Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxMCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTEiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxMyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTQiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjE1Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxNiI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNUaWNrZXRGcmVlVGltZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaWNrZXQgZnJlZSB0aW1lIG9wdGlvbnMgc2hvd24gaW4gdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gRW5hYmxlZCwgMiA9IEVuYWJsZWQgYW5kIHJlcXVpcmVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iNCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iNSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iNiI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNBcnRpY2xlRnJlZVRleHQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QXJ0aWNsZSBmcmVlIHRleHQgb3B0aW9ucyBzaG93biBpbiB0aGUgbmV3IHBob25lIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIzIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI0hpc3RvcnlUeXBlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGhpc3RvcnkgdHlwZSBmb3IgdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5QaG9uZUNhbGxDdXN0b21lcjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNIaXN0b3J5Q29tbWVudCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgoKICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5ub3RlPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjUmVxdWlyZWRMb2NrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgaWYgYSB0aWNrZXQgbG9jayBpcyByZXF1aXJlZCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlIChpZiB0aGUgdGlja2V0IGlzbid0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNUaWNrZXRUeXBlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpY2tldCB0eXBlIGluIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UgKFRpY2tldDo6VHlwZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNTZXJ2aWNlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHNlcnZpY2UgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoVGlja2V0OjpTZXJ2aWNlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjT3duZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGlja2V0IG93bmVyIGluIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjUmVzcG9uc2libGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgcmVzcG9uc2libGUgYWdlbnQgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1N0YXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgYSB0aWNrZXQgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNTdGF0ZVR5cGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPm9wZW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5jbG9zZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5wZW5kaW5nIHJlbWluZGVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cGVuZGluZyBhdXRvPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1N0YXRlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPm9wZW48L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNOb3RlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFsbG93cyBhZGRpbmcgbm90ZXMgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNTdWJqZWN0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPk5vdGU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNCb2R5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxUZXh0QXJlYT48L1RleHRBcmVhPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI0FydGljbGVUeXBlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHR5cGUgb2YgdGhlIG5vdGUgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPm5vdGUtaW50ZXJuYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNBcnRpY2xlVHlwZXMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U3BlY2lmeSB0aGUgZGlmZmVyZW50IG5vdGUgdHlwZXMsIHRoYXQgeW91IHdhbnQgdG8gdXNlIGluIHlvdXIgc3lzdGVtLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWludGVybmFsIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWV4dGVybmFsIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLXJlcG9ydCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1ByaW9yaXR5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIHRoZSB0aWNrZXQgcHJpb3JpdHkgb3B0aW9ucyBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1ByaW9yaXR5RGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MyBub3JtYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNUaXRsZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyB0aGUgdGl0bGUgZmllbGRzIGluIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gb2YgdGhlIGlwaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjVGltZVVuaXRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpbWUgdW5pdHMgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNUaWNrZXRGcmVlVGV4dCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaWNrZXQgZnJlZSB0ZXh0IG9wdGlvbnMgc2hvd24gaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iNCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iNSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iNiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iNyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iOCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iOSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTAiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjExIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxMiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjE0Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxNSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTYiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNUaWNrZXRGcmVlVGltZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaWNrZXQgZnJlZSB0aW1lIG9wdGlvbnMgc2hvd24gaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iNCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iNSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iNiI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI0FydGljbGVGcmVlVGV4dCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BcnRpY2xlIGZyZWUgdGV4dCBvcHRpb25zIHNob3duIGluIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjIiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjMiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNIaXN0b3J5VHlwZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBoaXN0b3J5IHR5cGUgZm9yIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+QWRkTm90ZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI0hpc3RvcnlDb21tZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGhpc3RvcnkgY29tbWVudCBmb3IgdGhlIHRpY2tldCBub3RlIHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4lJU5vdGU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIGluIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPmNsb3NlPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1JlcXVpcmVkTG9jayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIGlmIGEgdGlja2V0IGxvY2sgaXMgcmVxdWlyZWQgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuJ3QgbG9ja2VkIHlldCwgdGhlIHRpY2tldCBnZXRzIGxvY2tlZCBhbmQgdGhlIGN1cnJlbnQgYWdlbnQgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSBhcyBpdHMgb3duZXIpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjVGlja2V0VHlwZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoVGlja2V0OjpUeXBlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNTZXJ2aWNlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHNlcnZpY2UgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UgKFRpY2tldDo6U2VydmljZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjT3duZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGlja2V0IG93bmVyIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjUmVzcG9uc2libGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgcmVzcG9uc2libGUgYWdlbnQgb2YgdGhlIHRpY2tldCBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1N0YXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgYSB0aWNrZXQgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNTdGF0ZVR5cGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+Y2xvc2VkPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNTdGF0ZURlZmF1bHQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPmNsb3NlZCBzdWNjZXNzZnVsPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI05vdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1N1YmplY3QiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgZGVmYXVsdCBzdWJqZWN0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5DbG9zZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNCb2R5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFRleHRBcmVhPjwvVGV4dEFyZWE+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI0FydGljbGVUeXBlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHR5cGUgb2YgdGhlIG5vdGUgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+bm90ZS1pbnRlcm5hbDwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNBcnRpY2xlVHlwZXMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U3BlY2lmaWVzIHRoZSBkaWZmZXJlbnQgbm90ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBpbiB0aGUgc3lzdGVtLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ibm90ZS1pbnRlcm5hbCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ibm90ZS1leHRlcm5hbCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ibm90ZS1yZXBvcnQiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjUHJpb3JpdHkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgdGhlIHRpY2tldCBwcmlvcml0eSBvcHRpb25zIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjUHJpb3JpdHlEZWZhdWx0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgdGlja2V0IHByaW9yaXR5IGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjMgbm9ybWFsPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1RpdGxlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIHRoZSB0aXRsZSBmaWVsZHMgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNUaW1lVW5pdHMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGltZSB1bml0cyBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1RpY2tldEZyZWVUZXh0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldCBmcmVlIHRleHQgb3B0aW9ucyBzaG93biBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjIiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjQiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjYiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjciPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjgiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjkiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEwIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxMSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTIiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEzIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxNCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjE2Ij4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1RpY2tldEZyZWVUaW1lIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldCBmcmVlIHRpbWUgb3B0aW9ucyBzaG93biBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjIiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjQiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjYiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjQXJ0aWNsZUZyZWVUZXh0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFydGljbGUgZnJlZSB0ZXh0IG9wdGlvbnMgc2hvd24gaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIzIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI0hpc3RvcnlUeXBlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGhpc3RvcnkgdHlwZSBmb3IgdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPkFkZE5vdGU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjSGlzdG9yeUNvbW1lbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgaGlzdG9yeSBjb21tZW50IGZvciB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+JSVDbG9zZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENvbXBvc2UjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHBlcm1pc3Npb25zIHRvIHVzZSB0aGUgdGlja2V0IGNvbXBvc2Ugc2NyZWVuIGluIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+Y29tcG9zZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZSMjI1JlcXVpcmVkTG9jayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIGlmIGEgdGlja2V0IGxvY2sgaXMgcmVxdWlyZWQgaW4gdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoaWYgdGhlIHRpY2tldCBpc24ndCBsb2NrZWQgeWV0LCB0aGUgdGlja2V0IGdldHMgbG9ja2VkIGFuZCB0aGUgY3VycmVudCBhZ2VudCB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGFzIGl0cyBvd25lcikuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDb21wb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlIyMjU3RhdGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgYSBub3RlIGlzIGFkZGVkIGJ5IGFuIGFnZW50LCBzZXRzIHRoZSBzdGF0ZSBvZiBhIHRpY2tldCBpZiBpdCBpcyBjb21wb3NlZCAvIGFuc3dlcmVkIGluIHRoZSB0aWNrZXQgY29tcG9zZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDb21wb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlIyMjU3RhdGVEZWZhdWx0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBpZiBpdCBpcyBjb21wb3NlZCAvIGFuc3dlcmVkIGluIHRoZSB0aWNrZXQgY29tcG9zZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDb21wb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5vcGVuPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlIyMjU3RhdGVUeXBlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIG5leHQgcG9zc2libGUgc3RhdGVzIGFmdGVyIGNvbXBvc2luZyAvIGFuc3dlcmluZyBhIHRpY2tldCBpbiB0aGUgdGlja2V0IGNvbXBvc2Ugc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPm9wZW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5jbG9zZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5wZW5kaW5nIGF1dG88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5wZW5kaW5nIHJlbWluZGVyPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkNvbXBvc2VBZGRDdXN0b21lckFkZHJlc3MiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWRkcyBjdXN0b21lcnMgZW1haWwgYWRkcmVzc2VzIHRvIHJlY2lwaWVudHMgaW4gdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0NvbXBvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpDb21wb3NlUmVwbGFjZVNlbmRlckFkZHJlc3MiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVwbGFjZXMgdGhlIG9yaWdpbmFsIHNlbmRlciB3aXRoIGN1cnJlbnQgY3VzdG9tZXIncyBlbWFpbCBhZGRyZXNzIG9uIGNvbXBvc2UgYW5zd2VyIGluIHRoZSB0aWNrZXQgY29tcG9zZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDb21wb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6Q29tcG9zZUV4Y2x1ZGVDY1JlY2lwaWVudHMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VXNlcyBDYyByZWNpcGllbnRzIGluIHJlcGx5IENjIGxpc3Qgb24gY29tcG9zZSBhbiBlbWFpbCBhbnN3ZXIgaW4gdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0NvbXBvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENvbXBvc2UjIyNUaW1lVW5pdHMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGltZSB1bml0cyBpbiB0aGUgdGlja2V0IGNvbXBvc2Ugc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZSMjI1RpY2tldEZyZWVUZXh0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldCBmcmVlIHRleHQgb3B0aW9ucyBzaG93biBpbiB0aGUgdGlja2V0IGNvbXBvc2Ugc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gRW5hYmxlZCwgMiA9IEVuYWJsZWQgYW5kIHJlcXVpcmVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIzIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI0Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI1Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI2Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI3Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI4Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI5Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxMCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTEiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxMyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTQiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjE1Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxNiI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZSMjI1RpY2tldEZyZWVUaW1lIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldCBmcmVlIHRpbWUgb3B0aW9ucyBzaG93biBpbiB0aGUgdGlja2V0IGNvbXBvc2Ugc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gRW5hYmxlZCwgMiA9IEVuYWJsZWQgYW5kIHJlcXVpcmVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIzIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI0Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI1Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI2Ij4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlIyMjQXJ0aWNsZUZyZWVUZXh0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFydGljbGUgZnJlZSB0ZXh0IG9wdGlvbnMgc2hvd24gaW4gdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0NvbXBvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMyI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCjwhLS0KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6Ok1vdmVUeXBlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRldGVybWluZXMgaWYgdGhlIGxpc3Qgb2YgcG9zc2libGUgcXVldWVzIHRvIG1vdmUgdG8gdGlja2V0IGludG8gc2hvdWxkIGJlIGRpc3BsYXllZCBpbiBhIGRyb3Bkb3duIGxpc3Qgb3IgaW4gYSBuZXcgd2luZG93IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuIElmICJOZXcgV2luZG93IiBpcyBzZXQgeW91IGNhbiBhZGQgYSBtb3ZlIG5vdGUgdG8gdGhlIHRpY2tldC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld01vdmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9ImZvcm0iPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJsaW5rIj5OZXcgV2luZG93PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJmb3JtIj5Ecm9wZG93bjwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgotLT4/CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHBlcm1pc3Npb25zIHRvIHVzZSB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIGluIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+Y29tcG9zZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI1JlcXVpcmVkTG9jayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIGlmIGEgdGlja2V0IGxvY2sgaXMgcmVxdWlyZWQgaW4gdGhlIG1vdmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoaWYgdGhlIHRpY2tldCBpc24ndCBsb2NrZWQgeWV0LCB0aGUgdGlja2V0IGdldHMgbG9ja2VkIGFuZCB0aGUgY3VycmVudCBhZ2VudCB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGFzIGl0cyBvd25lcikuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNb3ZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjT3duZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGlja2V0IG93bmVyIGluIHRoZSBtb3ZlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNb3ZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjU3RhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWxsb3dzIHRvIHNldCBhIG5ldyB0aWNrZXQgc3RhdGUgaW4gdGhlIG1vdmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld01vdmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNTdGF0ZVR5cGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBiZWluZyBtb3ZlZCB0byBhbm90aGVyIHF1ZXVlLCBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPm9wZW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5jbG9zZWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjU3RhdGVEZWZhdWx0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+b3BlbjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI1ByaW9yaXR5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIHRoZSB0aWNrZXQgcHJpb3JpdHkgb3B0aW9ucyBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI1ByaW9yaXR5RGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MyBub3JtYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNUaW1lVW5pdHMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGltZSB1bml0cyBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI1RpY2tldEZyZWVUZXh0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldCBmcmVlIHRleHQgb3B0aW9ucyBzaG93biBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gRW5hYmxlZCwgMiA9IEVuYWJsZWQgYW5kIHJlcXVpcmVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIzIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI0Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI1Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI2Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI3Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI4Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI5Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxMCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTEiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxMyI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTQiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjE1Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxNiI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI1RpY2tldEZyZWVUaW1lIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldCBmcmVlIHRpbWUgb3B0aW9ucyBzaG93biBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gRW5hYmxlZCwgMiA9IEVuYWJsZWQgYW5kIHJlcXVpcmVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIzIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI0Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI1Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI2Ij4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjQXJ0aWNsZUZyZWVUZXh0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFydGljbGUgZnJlZSB0ZXh0IG9wdGlvbnMgc2hvd24gaW4gdGhlIHRpY2tldCBtb3ZlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld01vdmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMyI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCgoKCgoKPC9vdHJzX2NvbmZpZz4K
cGFja2FnZSBKU09OOwoKCnVzZSBzdHJpY3Q7CnVzZSBDYXJwICgpOwp1c2UgYmFzZSBxdyhFeHBvcnRlcik7CkBKU09OOjpFWFBPUlQgPSBxdyhmcm9tX2pzb24gdG9fanNvbiBqc29uVG9PYmogb2JqVG9Kc29uIGVuY29kZV9qc29uIGRlY29kZV9qc29uKTsKCkJFR0lOIHsKICAgICRKU09OOjpWRVJTSU9OID0gJzIuMjEnOwogICAgJEpTT046OkRFQlVHICAgPSAwIHVubGVzcyAoZGVmaW5lZCAkSlNPTjo6REVCVUcpOwp9CgpteSAkTW9kdWxlX1hTICA9ICdKU09OOjpYUyc7Cm15ICRNb2R1bGVfUFAgID0gJ0pTT046OlBQJzsKbXkgJFhTX1ZlcnNpb24gPSAnMi4yNyc7CgoKIyBYUyBhbmQgUFAgY29tbW9uIG1ldGhvZHMKCm15IEBQdWJsaWNNZXRob2RzID0gcXcvCiAgICBhc2NpaSBsYXRpbjEgdXRmOCBwcmV0dHkgaW5kZW50IHNwYWNlX2JlZm9yZSBzcGFjZV9hZnRlciByZWxheGVkIGNhbm9uaWNhbCBhbGxvd19ub25yZWYgCiAgICBhbGxvd19ibGVzc2VkIGNvbnZlcnRfYmxlc3NlZCBmaWx0ZXJfanNvbl9vYmplY3QgZmlsdGVyX2pzb25fc2luZ2xlX2tleV9vYmplY3QgCiAgICBzaHJpbmsgbWF4X2RlcHRoIG1heF9zaXplIGVuY29kZSBkZWNvZGUgZGVjb2RlX3ByZWZpeCBhbGxvd191bmtub3duCi87CgpteSBAUHJvcGVydGllcyA9IHF3LwogICAgYXNjaWkgbGF0aW4xIHV0ZjggaW5kZW50IHNwYWNlX2JlZm9yZSBzcGFjZV9hZnRlciByZWxheGVkIGNhbm9uaWNhbCBhbGxvd19ub25yZWYKICAgIGFsbG93X2JsZXNzZWQgY29udmVydF9ibGVzc2VkIHNocmluayBtYXhfZGVwdGggbWF4X3NpemUgYWxsb3dfdW5rbm93bgovOwoKbXkgQFhTT25seU1ldGhvZHMgPSBxdy8vOyAjIEN1cnJlbnRseSBub3RoaW5nCgpteSBAUFBPbmx5TWV0aG9kcyA9IHF3LwogICAgaW5kZW50X2xlbmd0aCBzb3J0X2J5CiAgICBhbGxvd19zaW5nbGVxdW90ZSBhbGxvd19iaWdudW0gbG9vc2UgYWxsb3dfYmFyZWtleSBlc2NhcGVfc2xhc2ggYXNfbm9uYmxlc3NlZAovOyAjIEpTT046OlBQIHNwZWNpZmljCgoKIyB1c2VkIGluIF9sb2FkX3hzIGFuZCBfbG9hZF9wcCAoJElOU1RBTExfT05MWSBpcyBub3QgdXNlZCBjdXJyZW50bHkpCm15ICRfSU5TVEFMTF9ET05UX0RJRSAgPSAxOyAjIFdoZW4gX2xvYWRfeHMgZmFpbHMgdG8gbG9hZCBYUywgZG9uJ3QgZGllLgpteSAkX0lOU1RBTExfT05MWSAgICAgID0gMjsgIyBEb24ndCBjYWxsIF9zZXRfbWV0aG9kcygpCm15ICRfQUxMT1dfVU5TVVBQT1JURUQgPSAwOwpteSAkX1VOSVZfQ09OVl9CTEVTU0VEID0gMDsKCgojIENoZWNrIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBkZWNpZGUgd29ya2VyIG1vZHVsZS4gCgp1bmxlc3MgKCRKU09OOjpCYWNrZW5kKSB7CiAgICAkSlNPTjo6REVCVUcgYW5kICBDYXJwOjpjYXJwKCJDaGVjayB1c2VkIHdvcmtlciBtb2R1bGUuLi4iKTsKCiAgICBteSAkYmFja2VuZCA9IGV4aXN0cyAkRU5We1BFUkxfSlNPTl9CQUNLRU5EfSA/ICRFTlZ7UEVSTF9KU09OX0JBQ0tFTkR9IDogMTsKCiAgICBpZiAoJGJhY2tlbmQgZXEgJzEnIG9yICRiYWNrZW5kID1+IC9KU09OOjpYU1xzKixccypKU09OOjpQUC8pIHsKICAgICAgICBfbG9hZF94cygkX0lOU1RBTExfRE9OVF9ESUUpIG9yIF9sb2FkX3BwKCk7CiAgICB9CiAgICBlbHNpZiAoJGJhY2tlbmQgZXEgJzAnIG9yICRiYWNrZW5kIGVxICdKU09OOjpQUCcpIHsKICAgICAgICBfbG9hZF9wcCgpOwogICAgfQogICAgZWxzaWYgKCRiYWNrZW5kIGVxICcyJyBvciAkYmFja2VuZCBlcSAnSlNPTjo6WFMnKSB7CiAgICAgICAgX2xvYWRfeHMoKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIENhcnA6OmNyb2FrICJUaGUgdmFsdWUgb2YgZW52aXJvbm1lbnRhbCB2YXJpYWJsZSAnUEVSTF9KU09OX0JBQ0tFTkQnIGlzIGludmFsaWQuIjsKICAgIH0KfQoKCnN1YiBpbXBvcnQgewogICAgbXkgJHBrZyA9IHNoaWZ0OwogICAgbXkgQHdoYXRfdG9fZXhwb3J0OwogICAgbXkgJG5vX2V4cG9ydDsKCiAgICBmb3IgbXkgJHRhZyAoQF8pIHsKICAgICAgICBpZiAoJHRhZyBlcSAnLXN1cHBvcnRfYnlfcHAnKSB7CiAgICAgICAgICAgIGlmICghJF9BTExPV19VTlNVUFBPUlRFRCsrKSB7CiAgICAgICAgICAgICAgICBKU09OOjpCYWNrZW5kOjpYUwogICAgICAgICAgICAgICAgICAgIC0+c3VwcG9ydF9ieV9wcChAUFBPbmx5TWV0aG9kcykgaWYgKCRKU09OOjpCYWNrZW5kIGVxICRNb2R1bGVfWFMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5leHQ7CiAgICAgICAgfQogICAgICAgIGVsc2lmICgkdGFnIGVxICctbm9fZXhwb3J0JykgewogICAgICAgICAgICAkbm9fZXhwb3J0KyssIG5leHQ7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJHRhZyBlcSAnLWNvbnZlcnRfYmxlc3NlZF91bml2ZXJzYWxseScgKSB7CiAgICAgICAgICAgIGV2YWwgcXwKICAgICAgICAgICAgICAgIHJlcXVpcmUgQjsKICAgICAgICAgICAgICAgICpVTklWRVJTQUw6OlRPX0pTT04gPSBzdWIgewogICAgICAgICAgICAgICAgICAgIG15ICRiX29iaiA9IEI6OnN2cmVmXzJvYmplY3QoICRfWzBdICk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICAgICRiX29iai0+aXNhKCdCOjpIVicpID8geyAleyAkX1swXSB9IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGJfb2JqLT5pc2EoJ0I6OkFWJykgPyBbIEB7ICRfWzBdIH0gXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB8IGlmICggISRfVU5JVl9DT05WX0JMRVNTRUQrKyApOwogICAgICAgICAgICBuZXh0OwogICAgICAgIH0KICAgICAgICBwdXNoIEB3aGF0X3RvX2V4cG9ydCwgJHRhZzsKICAgIH0KCiAgICByZXR1cm4gaWYgKCRub19leHBvcnQpOwoKICAgIF9fUEFDS0FHRV9fLT5leHBvcnRfdG9fbGV2ZWwoMSwgJHBrZywgQHdoYXRfdG9fZXhwb3J0KTsKfQoKCiMgT0JTT0xFVEVECgpzdWIganNvblRvT2JqIHsKICAgIG15ICRhbHRlcm5hdGl2ZSA9ICdmcm9tX2pzb24nOwogICAgaWYgKGRlZmluZWQgJF9bMF0gYW5kIFVOSVZFUlNBTDo6aXNhKCRfWzBdLCAnSlNPTicpKSB7CiAgICAgICAgc2hpZnQgQF87ICRhbHRlcm5hdGl2ZSA9ICdkZWNvZGUnOwogICAgfQogICAgQ2FycDo6Y2FycCAiJ2pzb25Ub09iaicgd2lsbCBiZSBvYnNvbGV0ZWQuIFBsZWFzZSB1c2UgJyRhbHRlcm5hdGl2ZScgaW5zdGVhZC4iOwogICAgcmV0dXJuIEpTT046OmZyb21fanNvbihAXyk7Cn07CgpzdWIgb2JqVG9Kc29uIHsKICAgIG15ICRhbHRlcm5hdGl2ZSA9ICd0b19qc29uJzsKICAgIGlmIChkZWZpbmVkICRfWzBdIGFuZCBVTklWRVJTQUw6OmlzYSgkX1swXSwgJ0pTT04nKSkgewogICAgICAgIHNoaWZ0IEBfOyAkYWx0ZXJuYXRpdmUgPSAnZW5jb2RlJzsKICAgIH0KICAgIENhcnA6OmNhcnAgIidvYmpUb0pzb24nIHdpbGwgYmUgb2Jzb2xldGVkLiBQbGVhc2UgdXNlICckYWx0ZXJuYXRpdmUnIGluc3RlYWQuIjsKICAgIEpTT046OnRvX2pzb24oQF8pOwp9OwoKCiMgSU5URVJGQUNFUwoKc3ViIHRvX2pzb24gKCRAKSB7CiAgICBteSAkanNvbiA9IG5ldyBKU09OOwoKICAgIGlmIChAXyA9PSAyIGFuZCByZWYgJF9bMV0gZXEgJ0hBU0gnKSB7CiAgICAgICAgbXkgJG9wdCAgPSAkX1sxXTsKICAgICAgICBmb3IgbXkgJG1ldGhvZCAoa2V5cyAlJG9wdCkgewogICAgICAgICAgICAkanNvbi0+JG1ldGhvZCggJG9wdC0+eyRtZXRob2R9ICk7CiAgICAgICAgfQogICAgfQoKICAgICRqc29uLT5lbmNvZGUoJF9bMF0pOwp9CgoKc3ViIGZyb21fanNvbiAoJEApIHsKICAgIG15ICRqc29uID0gbmV3IEpTT047CgogICAgaWYgKEBfID09IDIgYW5kIHJlZiAkX1sxXSBlcSAnSEFTSCcpIHsKICAgICAgICBteSAkb3B0ICA9ICRfWzFdOwogICAgICAgIGZvciBteSAkbWV0aG9kIChrZXlzICUkb3B0KSB7CiAgICAgICAgICAgICRqc29uLT4kbWV0aG9kKCAkb3B0LT57JG1ldGhvZH0gKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICRqc29uLT5kZWNvZGUoICRfWzBdICk7Cn0KCgpzdWIgdHJ1ZSAgeyAkSlNPTjo6dHJ1ZSAgfQoKc3ViIGZhbHNlIHsgJEpTT046OmZhbHNlIH0KCnN1YiBudWxsICB7IHVuZGVmOyB9CgoKc3ViIHJlcXVpcmVfeHNfdmVyc2lvbiB7ICRYU19WZXJzaW9uOyB9CgpzdWIgYmFja2VuZCB7CiAgICBteSAkcHJvdG8gPSBzaGlmdDsKICAgICRKU09OOjpCYWNrZW5kOwp9CgojKm1vZHVsZSA9ICpiYWNrZW5kOwoKCnN1YiBpc194cyB7CiAgICByZXR1cm4gJF9bMF0tPm1vZHVsZSBlcSAkTW9kdWxlX1hTOwp9CgoKc3ViIGlzX3BwIHsKICAgIHJldHVybiAkX1swXS0+bW9kdWxlIGVxICRNb2R1bGVfUFA7Cn0KCgpzdWIgcHVyZXBlcmxfb25seV9tZXRob2RzIHsgQFBQT25seU1ldGhvZHM7IH0KCgpzdWIgcHJvcGVydHkgewogICAgbXkgKCRzZWxmLCAkbmFtZSwgJHZhbHVlKSA9IEBfOwoKICAgIGlmIChAXyA9PSAxKSB7CiAgICAgICAgbXkgJXByb3BzOwogICAgICAgIGZvciAkbmFtZSAoQFByb3BlcnRpZXMpIHsKICAgICAgICAgICAgbXkgJG1ldGhvZCA9ICdnZXRfJyAuICRuYW1lOwogICAgICAgICAgICBpZiAoJG5hbWUgZXEgJ21heF9zaXplJykgewogICAgICAgICAgICAgICAgbXkgJHZhbHVlID0gJHNlbGYtPiRtZXRob2QoKTsKICAgICAgICAgICAgICAgICRwcm9wc3skbmFtZX0gPSAkdmFsdWUgPT0gMSA/IDAgOiAkdmFsdWU7CiAgICAgICAgICAgICAgICBuZXh0OwogICAgICAgICAgICB9CiAgICAgICAgICAgICRwcm9wc3skbmFtZX0gPSAkc2VsZi0+JG1ldGhvZCgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gXCVwcm9wczsKICAgIH0KICAgIGVsc2lmIChAXyA+IDMpIHsKICAgICAgICBDYXJwOjpjcm9haygncHJvcGVydHkoKSBjYW4gdGFrZSBvbmx5IHRoZSBvcHRpb24gd2l0aGluIDIgYXJndW1lbnRzLicpOwogICAgfQogICAgZWxzaWYgKEBfID09IDIpIHsKICAgICAgICBpZiAoIG15ICRtZXRob2QgPSAkc2VsZi0+Y2FuKCdnZXRfJyAuICRuYW1lKSApIHsKICAgICAgICAgICAgaWYgKCRuYW1lIGVxICdtYXhfc2l6ZScpIHsKICAgICAgICAgICAgICAgIG15ICR2YWx1ZSA9ICRzZWxmLT4kbWV0aG9kKCk7CiAgICAgICAgICAgICAgICByZXR1cm4gJHZhbHVlID09IDEgPyAwIDogJHZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRzZWxmLT4kbWV0aG9kKCk7CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgJHNlbGYtPiRuYW1lKCR2YWx1ZSk7CiAgICB9Cgp9CgoKCiMgSU5URVJOQUwKCnN1YiBfbG9hZF94cyB7CiAgICBteSAkb3B0ID0gc2hpZnQ7CgogICAgJEpTT046OkRFQlVHIGFuZCBDYXJwOjpjYXJwICJMb2FkICRNb2R1bGVfWFMuIjsKCiAgICAjIGlmIGNhbGxlZCBhZnRlciBpbnN0YWxsIG1vZHVsZSwgb3ZlcmxvYWQgaXMgZGlzYWJsZS4uLi4gd2h5PwogICAgSlNPTjo6Qm9vbGVhbjo6X292ZXJycmlkZV9vdmVybG9hZCgkTW9kdWxlX1hTKTsKICAgIEpTT046OkJvb2xlYW46Ol9vdmVycnJpZGVfb3ZlcmxvYWQoJE1vZHVsZV9QUCk7CgogICAgZXZhbCBxcXwKICAgICAgICB1c2UgJE1vZHVsZV9YUyAkWFNfVmVyc2lvbiAoKTsKICAgIHw7CgogICAgaWYgKCRAKSB7CiAgICAgICAgaWYgKGRlZmluZWQgJG9wdCBhbmQgJG9wdCAmICRfSU5TVEFMTF9ET05UX0RJRSkgewogICAgICAgICAgICAkSlNPTjo6REVCVUcgYW5kIENhcnA6OmNhcnAgIkNhbid0IGxvYWQgJE1vZHVsZV9YUy4uLigkQCkiOwogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CiAgICAgICAgQ2FycDo6Y3JvYWsgJEA7CiAgICB9CgogICAgdW5sZXNzIChkZWZpbmVkICRvcHQgYW5kICRvcHQgJiAkX0lOU1RBTExfT05MWSkgewogICAgICAgIF9zZXRfbW9kdWxlKCAkSlNPTjo6QmFja2VuZCA9ICRNb2R1bGVfWFMgKTsKICAgICAgICBteSAkZGF0YSA9IGpvaW4oIiIsIDxEQVRBPik7ICMgdGhpcyBjb2RlIGlzIGZyb20gSmNvZGUgMi54eC4KICAgICAgICBjbG9zZShEQVRBKTsKICAgICAgICBldmFsICRkYXRhOwogICAgICAgIEpTT046OkJhY2tlbmQ6OlhTLT5pbml0OwogICAgfQoKICAgIHJldHVybiAxOwp9OwoKCnN1YiBfbG9hZF9wcCB7CiAgICBteSAkb3B0ID0gc2hpZnQ7CgogICAgJEpTT046OkRFQlVHIGFuZCBDYXJwOjpjYXJwICJMb2FkICRNb2R1bGVfUFAuIjsKCiAgICAjIGlmIGNhbGxlZCBhZnRlciBpbnN0YWxsIG1vZHVsZSwgb3ZlcmxvYWQgaXMgZGlzYWJsZS4uLi4gd2h5PwogICAgSlNPTjo6Qm9vbGVhbjo6X292ZXJycmlkZV9vdmVybG9hZCgkTW9kdWxlX1hTKTsKICAgIEpTT046OkJvb2xlYW46Ol9vdmVycnJpZGVfb3ZlcmxvYWQoJE1vZHVsZV9QUCk7CgogICAgZXZhbCBxcXwgcmVxdWlyZSAkTW9kdWxlX1BQIHw7CiAgICBpZiAoJEApIHsKICAgICAgICBDYXJwOjpjcm9hayAkQDsKICAgIH0KCiAgICB1bmxlc3MgKGRlZmluZWQgJG9wdCBhbmQgJG9wdCAmICRfSU5TVEFMTF9PTkxZKSB7CiAgICAgICAgX3NldF9tb2R1bGUoICRKU09OOjpCYWNrZW5kID0gJE1vZHVsZV9QUCApOwogICAgICAgIEpTT046OkJhY2tlbmQ6OlBQLT5pbml0OwogICAgfQp9OwoKCnN1YiBfc2V0X21vZHVsZSB7CiAgICBteSAkbW9kdWxlID0gc2hpZnQ7CgogICAgbG9jYWwgJF5XOwogICAgbm8gc3RyaWN0IHF3KHJlZnMpOwoKICAgICRKU09OOjp0cnVlICA9ICR7IiRtb2R1bGVcOjp0cnVlIn07CiAgICAkSlNPTjo6ZmFsc2UgPSAkeyIkbW9kdWxlXDo6ZmFsc2UifTsKCiAgICBwdXNoIEBKU09OOjpJU0EsICRtb2R1bGU7CiAgICBwdXNoIEB7IiRtb2R1bGVcOjpCb29sZWFuOjpJU0EifSwgcXcoSlNPTjo6Qm9vbGVhbik7CgogICAgKnsiSlNPTjo6aXNfYm9vbCJ9ID0gXCZ7IiRtb2R1bGVcOjppc19ib29sIn07CgogICAgZm9yIG15ICRtZXRob2QgKCRtb2R1bGUgZXEgJE1vZHVsZV9YUyA/IEBQUE9ubHlNZXRob2RzIDogQFhTT25seU1ldGhvZHMpIHsKICAgICAgICAqeyJKU09OOjokbWV0aG9kIn0gPSBzdWIgewogICAgICAgICAgICBDYXJwOjpjYXJwKCIkbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQgaW4gJG1vZHVsZS4iKTsKICAgICAgICAgICAgJF9bMF07CiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKCgojCiMgSlNPTiBCb29sZWFuCiMKCnBhY2thZ2UgSlNPTjo6Qm9vbGVhbjsKCm15ICVJbnN0YWxsZWQ7CgpzdWIgX292ZXJycmlkZV9vdmVybG9hZCB7CiAgICByZXR1cm4gaWYgKCRJbnN0YWxsZWR7ICRfWzBdIH0rKyk7CgogICAgbXkgJGJvb2xlYW4gPSAkX1swXSAuICc6OkJvb2xlYW4nOwoKICAgIGV2YWwgc3ByaW50ZihxfAogICAgICAgIHBhY2thZ2UgJXM7CiAgICAgICAgdXNlIG92ZXJsb2FkICgKICAgICAgICAgICAgJyIiJyA9PiBzdWIgeyAkeyRfWzBdfSA9PSAxID8gJ3RydWUnIDogJ2ZhbHNlJyB9LAogICAgICAgICAgICAnZXEnID0+IHN1YiB7CiAgICAgICAgICAgICAgICBteSAoJG9iaiwgJG9wKSA9IHJlZiAoJF9bMF0pID8gKCRfWzBdLCAkX1sxXSkgOiAoJF9bMV0sICRfWzBdKTsKICAgICAgICAgICAgICAgIGlmICgkb3AgZXEgJ3RydWUnIG9yICRvcCBlcSAnZmFsc2UnKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIkb2JqIiBlcSAndHJ1ZScgPyAndHJ1ZScgZXEgJG9wIDogJ2ZhbHNlJyBlcSAkb3A7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJG9iaiA/IDEgPT0gJG9wIDogMCA9PSAkb3A7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIHwsICRib29sZWFuKTsKCiAgICBpZiAoJEApIHsgQ2FycDo6Y3JvYWsgJEA7IH0KCiAgICByZXR1cm4gMTsKfQoKCiMKIyBIZWxwZXIgY2xhc3NlcyBmb3IgQmFja2VuZCBNb2R1bGUgKFBQKQojCgpwYWNrYWdlIEpTT046OkJhY2tlbmQ6OlBQOwoKc3ViIGluaXQgewogICAgbG9jYWwgJF5XOwogICAgbm8gc3RyaWN0IHF3KHJlZnMpOwogICAgKnsiSlNPTjo6ZGVjb2RlX2pzb24ifSA9IFwmeyJKU09OOjpQUDo6ZGVjb2RlX2pzb24ifTsKICAgICp7IkpTT046OmVuY29kZV9qc29uIn0gPSBcJnsiSlNPTjo6UFA6OmVuY29kZV9qc29uIn07CiAgICAqeyJKU09OOjpQUDo6aXNfeHMifSAgPSBzdWIgeyAwIH07CiAgICAqeyJKU09OOjpQUDo6aXNfcHAifSAgPSBzdWIgeyAxIH07CiAgICByZXR1cm4gMTsKfQoKIwojIFRvIHNhdmUgbWVtb3J5LCB0aGUgYmVsb3cgbGluZXMgYXJlIHJlYWQgb25seSB3aGVuIFhTIGJhY2tlbmQgaXMgdXNlZC4KIwoKcGFja2FnZSBKU09OOwoKMTsKX19EQVRBX18KCgojCiMgSGVscGVyIGNsYXNzZXMgZm9yIEJhY2tlbmQgTW9kdWxlIChYUykKIwoKcGFja2FnZSBKU09OOjpCYWNrZW5kOjpYUzsKCnVzZSBjb25zdGFudCBJTkRFTlRfTEVOR1RIX0ZMQUcgPT4gMTUgPDwgMTI7Cgp1c2UgY29uc3RhbnQgVU5TVVBQT1JURURfRU5DT0RFX0ZMQUcgPT4gewogICAgRVNDQVBFX1NMQVNIICAgICAgPT4gMHgwMDAwMDAxMCwKICAgIEFMTE9XX0JJR05VTSAgICAgID0+IDB4MDAwMDAwMjAsCiAgICBBU19OT05CTEVTU0VEICAgICA9PiAweDAwMDAwMDQwLAogICAgRVhQQU5ERUQgICAgICAgICAgPT4gMHgxMDAwMDAwMCwgIyBmb3IgZGV2ZWxvcGVyJ3MKfTsKCnVzZSBjb25zdGFudCBVTlNVUFBPUlRFRF9ERUNPREVfRkxBRyA9PiB7CiAgICBMT09TRSAgICAgICAgICAgICA9PiAweDAwMDAwMDAxLAogICAgQUxMT1dfQklHTlVNICAgICAgPT4gMHgwMDAwMDAwMiwKICAgIEFMTE9XX0JBUkVLRVkgICAgID0+IDB4MDAwMDAwMDQsCiAgICBBTExPV19TSU5HTEVRVU9URSA9PiAweDAwMDAwMDA4LAogICAgRVhQQU5ERUQgICAgICAgICAgPT4gMHgyMDAwMDAwMCwgIyBmb3IgZGV2ZWxvcGVyJ3MKfTsKCgpzdWIgaW5pdCB7CiAgICBsb2NhbCAkXlc7CiAgICBubyBzdHJpY3QgcXcocmVmcyk7CiAgICAqeyJKU09OOjpkZWNvZGVfanNvbiJ9ID0gXCZ7IkpTT046OlhTOjpkZWNvZGVfanNvbiJ9OwogICAgKnsiSlNPTjo6ZW5jb2RlX2pzb24ifSA9IFwmeyJKU09OOjpYUzo6ZW5jb2RlX2pzb24ifTsKICAgICp7IkpTT046OlhTOjppc194cyJ9ICA9IHN1YiB7IDEgfTsKICAgICp7IkpTT046OlhTOjppc19wcCJ9ICA9IHN1YiB7IDAgfTsKICAgIHJldHVybiAxOwp9CgoKc3ViIHN1cHBvcnRfYnlfcHAgewogICAgbXkgKCRjbGFzcywgQG1ldGhvZHMpID0gQF87CgogICAgbG9jYWwgJF5XOwogICAgbm8gc3RyaWN0IHF3KHJlZnMpOwoKICAgIHB1c2ggQEpTT046OkJhY2tlbmQ6OlhTOjpTdXBwb3J0YWJsZTo6SVNBLCAnSlNPTic7CgogICAgbXkgJHBrZyA9ICdKU09OOjpCYWNrZW5kOjpYUzo6U3VwcG9ydGFibGUnOwoKICAgICp7SlNPTjo6bmV3fSA9IHN1YiB7CiAgICAgICAgbXkgJHByb3RvID0gbmV3IEpTT046OlhTOyAkJHByb3RvID0gMDsKICAgICAgICBibGVzcyAgJHByb3RvLCAkcGtnOwogICAgfTsKCgogICAgZm9yIG15ICRtZXRob2QgKEBtZXRob2RzKSB7CiAgICAgICAgbXkgJGZsYWcgPSB1YygkbWV0aG9kKTsKICAgICAgICBteSAkdHlwZSB8PSAoVU5TVVBQT1JURURfRU5DT0RFX0ZMQUctPnskZmxhZ30gfHwgMCk7CiAgICAgICAgICAgJHR5cGUgfD0gKFVOU1VQUE9SVEVEX0RFQ09ERV9GTEFHLT57JGZsYWd9IHx8IDApOwoKICAgICAgICBuZXh0IHVubGVzcygkdHlwZSk7CgogICAgICAgICRwa2ctPl9tYWtlX3Vuc3VwcG9ydGVkX21ldGhvZCgkbWV0aG9kID0+ICR0eXBlKTsKICAgIH0KCiAgICBwdXNoIEB7IkpTT046OlhTOjpCb29sZWFuOjpJU0EifSwgcXcoSlNPTjo6UFA6OkJvb2xlYW4pOwogICAgcHVzaCBAeyJKU09OOjpQUDo6Qm9vbGVhbjo6SVNBIn0sIHF3KEpTT046OkJvb2xlYW4pOwoKICAgICRKU09OOjpERUJVRyBhbmQgQ2FycDo6Y2FycCgic2V0IC1zdXBwb3J0X2J5X3BwIG1vZGUuIik7CgogICAgcmV0dXJuIDE7Cn0KCgoKCiMKIyBIZWxwZXIgY2xhc3NlcyBmb3IgWFMKIwoKcGFja2FnZSBKU09OOjpCYWNrZW5kOjpYUzo6U3VwcG9ydGFibGU7Cgp7CiAgICBteSAkSlNPTl9YU19lbmNvZGVfb3JpZ25hbCA9IFwmSlNPTjo6WFM6OmVuY29kZTsKICAgIG15ICRKU09OX1hTX2RlY29kZV9vcmlnbmFsID0gXCZKU09OOjpYUzo6ZGVjb2RlOwogICAgbXkgJEpTT05fWFNfaW5jcl9wYXJzZV9vcmlnbmFsID0gXCZKU09OOjpYUzo6aW5jcl9wYXJzZTsKCiAgICBsb2NhbCAkXlc7CiAgICAqSlNPTjo6WFM6OmRlY29kZSA9IFwmSlNPTjo6QmFja2VuZDo6WFM6OlN1cHBvcnRhYmxlOjpfZGVjb2RlOwogICAgKkpTT046OlhTOjplbmNvZGUgPSBcJkpTT046OkJhY2tlbmQ6OlhTOjpTdXBwb3J0YWJsZTo6X2VuY29kZTsKICAgICpKU09OOjpYUzo6aW5jcl9wYXJzZSA9IFwmSlNPTjo6QmFja2VuZDo6WFM6OlN1cHBvcnRhYmxlOjpfaW5jcl9wYXJzZTsKCiAgICAqe0pTT046OlhTOjpfb3JpZ2luYWxfZGVjb2RlfSA9ICRKU09OX1hTX2RlY29kZV9vcmlnbmFsOwogICAgKntKU09OOjpYUzo6X29yaWdpbmFsX2VuY29kZX0gPSAkSlNPTl9YU19lbmNvZGVfb3JpZ25hbDsKICAgICp7SlNPTjo6WFM6Ol9vcmlnaW5hbF9pbmNyX3BhcnNlfSA9ICRKU09OX1hTX2luY3JfcGFyc2Vfb3JpZ25hbDsKfQoKJENhcnA6OkludGVybmFseydKU09OOjpCYWNrZW5kOjpYUzo6U3VwcG9ydGFibGUnfSA9IDE7CgpzdWIgX21ha2VfdW5zdXBwb3J0ZWRfbWV0aG9kIHsKICAgIG15ICgkcGtnLCAkbWV0aG9kLCAkdHlwZSkgPSBAXzsKCiAgICBsb2NhbCAkXlc7CiAgICBubyBzdHJpY3QgcXcocmVmcyk7CgogICAgKnsiJHBrZ1w6OiRtZXRob2QifSA9IHN1YiB7CiAgICAgICAgbG9jYWwgJF5XOwogICAgICAgIGlmIChkZWZpbmVkICRfWzFdID8gJF9bMV0gOiAxKSB7CiAgICAgICAgICAgICR7JF9bMF19IHw9ICR0eXBlOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHskX1swXX0gJj0gfiR0eXBlOwogICAgICAgIH0KICAgICAgICAkX1swXTsKICAgIH07CgogICAgKnsiJHBrZ1w6OmdldF8kbWV0aG9kIn0gPSBzdWIgewogICAgICAgICR7JF9bMF19ICYgJHR5cGUgPyAxIDogJyc7CiAgICB9OwoKfQoKCnN1YiBfc2V0X2Zvcl9wcCB7CiAgICByZXF1aXJlIEpTT046OlBQOwogICAgbXkgJHR5cGUgID0gc2hpZnQ7CiAgICBteSAkcHAgICAgPSBuZXcgSlNPTjo6UFA7CiAgICBteSAkcHJvcCA9ICRfWzBdLT5wcm9wZXJ0eTsKCiAgICBmb3IgbXkgJG5hbWUgKGtleXMgJSRwcm9wKSB7CiAgICAgICAgJHBwLT4kbmFtZSggJHByb3AtPnskbmFtZX0gPyAkcHJvcC0+eyRuYW1lfSA6IDAgKTsKICAgIH0KCiAgICBteSAkdW5zdXBwb3J0ZWQgPSAkdHlwZSBlcSAnZW5jb2RlJyA/IEpTT046OkJhY2tlbmQ6OlhTOjpVTlNVUFBPUlRFRF9FTkNPREVfRkxBRwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBKU09OOjpCYWNrZW5kOjpYUzo6VU5TVVBQT1JURURfREVDT0RFX0ZMQUc7CiAgICBteSAkZmxhZ3MgICAgICAgPSAkeyRfWzBdfSB8fCAwOwoKICAgIGZvciBteSAkbmFtZSAoa2V5cyAlJHVuc3VwcG9ydGVkKSB7CiAgICAgICAgbmV4dCBpZiAoJG5hbWUgZXEgJ0VYUEFOREVEJyk7ICMgZm9yIGRldmVsb3BlcidzCiAgICAgICAgbXkgJGVuYWJsZSA9ICgkZmxhZ3MgJiAkdW5zdXBwb3J0ZWQtPnskbmFtZX0pID8gMSA6IDA7CiAgICAgICAgbXkgJG1ldGhvZCA9IGxjICRuYW1lOwogICAgICAgICRwcC0+JG1ldGhvZCgkZW5hYmxlKTsKICAgIH0KCiAgICAkcHAtPmluZGVudF9sZW5ndGgoICRfWzBdLT5nZXRfaW5kZW50X2xlbmd0aCApOwoKICAgIHJldHVybiAkcHA7Cn0KCnN1YiBfZW5jb2RlIHsgIyB1c2luZyB3aXRoIFBQIGVuY29kCiAgICBpZiAoJHskX1swXX0pIHsKICAgICAgICBfc2V0X2Zvcl9wcCgnZW5jb2RlJyA9PiBAXyktPmVuY29kZSgkX1sxXSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkX1swXS0+X29yaWdpbmFsX2VuY29kZSggJF9bMV0gKTsKICAgIH0KfQoKCnN1YiBfZGVjb2RlIHsgIyBpZiB1bnN1cHBvcnRlZC1mbGFnIGlzIHNldCwgdXNlIFBQCiAgICBpZiAoJHskX1swXX0pIHsKICAgICAgICBfc2V0X2Zvcl9wcCgnZGVjb2RlJyA9PiBAXyktPmRlY29kZSgkX1sxXSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkX1swXS0+X29yaWdpbmFsX2RlY29kZSggJF9bMV0gKTsKICAgIH0KfQoKCnN1YiBkZWNvZGVfcHJlZml4IHsgIyBpZiB1bnN1cHBvcnRlZC1mbGFnIGlzIHNldCwgdXNlIFBQCiAgICBfc2V0X2Zvcl9wcCgnZGVjb2RlJyA9PiBAXyktPmRlY29kZV9wcmVmaXgoJF9bMV0pOwp9CgoKc3ViIF9pbmNyX3BhcnNlIHsKICAgIGlmICgkeyRfWzBdfSkgewogICAgICAgIF9zZXRfZm9yX3BwKCdkZWNvZGUnID0+IEBfKS0+aW5jcl9wYXJzZSgkX1sxXSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkX1swXS0+X29yaWdpbmFsX2luY3JfcGFyc2UoICRfWzFdICk7CiAgICB9Cn0KCgpzdWIgZ2V0X2luZGVudF9sZW5ndGggewogICAgJHskX1swXX0gPDwgNCA+PiAxNjsKfQoKCnN1YiBpbmRlbnRfbGVuZ3RoIHsKICAgIG15ICRsZW5ndGggPSAkX1sxXTsKCiAgICBpZiAoIWRlZmluZWQgJGxlbmd0aCBvciAkbGVuZ3RoID4gMTUgb3IgJGxlbmd0aCA8IDApIHsKICAgICAgICBDYXJwOjpjYXJwICJUaGUgYWNjZXB0YWJsZSByYW5nZSBvZiBpbmRlbnRfbGVuZ3RoKCkgaXMgMCB0byAxNS4iOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgbG9jYWwgJF5XOwogICAgICAgICRsZW5ndGggPDw9IDEyOwogICAgICAgICR7JF9bMF19ICY9IH4gSlNPTjo6QmFja2VuZDo6WFM6OklOREVOVF9MRU5HVEhfRkxBRzsKICAgICAgICAkeyRfWzBdfSB8PSAkbGVuZ3RoOwogICAgICAgICpKU09OOjpYUzo6ZW5jb2RlID0gXCZKU09OOjpCYWNrZW5kOjpYUzo6U3VwcG9ydGFibGU6Ol9lbmNvZGU7CiAgICB9CgogICAgJF9bMF07Cn0KCgoxOwpfX0VORF9fCgo9aGVhZDEgTkFNRQoKSlNPTiAtIEpTT04gKEphdmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uKSBlbmNvZGVyL2RlY29kZXIKCj1oZWFkMSBTWU5PUFNJUwoKIHVzZSBKU09OOyAjIGltcG9ydHMgZW5jb2RlX2pzb24sIGRlY29kZV9qc29uLCB0b19qc29uIGFuZCBmcm9tX2pzb24uCiAKICMgc2ltcGxlIGFuZCBmYXN0IGludGVyZmFjZXMgKGV4cGVjdC9nZW5lcmF0ZSBVVEYtOCkKIAogJHV0ZjhfZW5jb2RlZF9qc29uX3RleHQgPSBlbmNvZGVfanNvbiAkcGVybF9oYXNoX29yX2FycmF5cmVmOwogJHBlcmxfaGFzaF9vcl9hcnJheXJlZiAgPSBkZWNvZGVfanNvbiAkdXRmOF9lbmNvZGVkX2pzb25fdGV4dDsKIAogIyBPTy1pbnRlcmZhY2UKIAogJGpzb24gPSBKU09OLT5uZXctPmFsbG93X25vbnJlZjsKIAogJGpzb25fdGV4dCAgID0gJGpzb24tPmVuY29kZSggJHBlcmxfc2NhbGFyICk7CiAkcGVybF9zY2FsYXIgPSAkanNvbi0+ZGVjb2RlKCAkanNvbl90ZXh0ICk7CiAKICRwcmV0dHlfcHJpbnRlZCA9ICRqc29uLT5wcmV0dHktPmVuY29kZSggJHBlcmxfc2NhbGFyICk7ICMgcHJldHR5LXByaW50aW5nCiAKICMgSWYgeW91IHdhbnQgdG8gdXNlIFBQIG9ubHkgc3VwcG9ydCBmZWF0dXJlcywgY2FsbCB3aXRoICctc3VwcG9ydF9ieV9wcCcKICMgV2hlbiBYUyB1bnN1cHBvcnRlZCBmZWF0dXJlIGlzIGVuYWJsZSwgdXNpbmcgUFAgKGRlfGVuKWNvZGUgaW5zdGVhZCBvZiBYUyBvbmVzLgogCiB1c2UgSlNPTiAtc3VwcG9ydF9ieV9wcDsKIAogIyBvcHRpb24tYWNjZXB0YWJsZSBpbnRlcmZhY2VzIChleHBlY3QvZ2VuZXJhdGUgVU5JQ09ERSBieSBkZWZhdWx0KQogCiAkanNvbl90ZXh0ICAgPSB0b19qc29uKCAkcGVybF9zY2FsYXIsIHsgYXNjaWkgPT4gMSwgcHJldHR5ID0+IDEgfSApOwogJHBlcmxfc2NhbGFyID0gZnJvbV9qc29uKCAkanNvbl90ZXh0LCB7IHV0ZjggID0+IDEgfSApOwogCiAjIEJldHdlZW4gKGVufGRlKWNvZGVfanNvbiBhbmQgKHRvfGZyb20pX2pzb24sIGlmIHlvdSB3YW50IHRvIHdyaXRlCiAjIGEgY29kZSB3aGljaCBjb21tdW5pY2F0ZXMgdG8gYW4gb3V0ZXIgd29ybGQgKGVuY29kZWQgaW4gVVRGLTgpLAogIyByZWNvbW1lbmQgdG8gdXNlIChlbnxkZSljb2RlX2pzb24uCiAKPWhlYWQxIFZFUlNJT04KCiAgICAyLjIxCgpUaGlzIHZlcnNpb24gaXMgY29tcGF0aWJsZSB3aXRoIEpTT046OlhTIEI8Mi4yNz4gYW5kIGxhdGVyLgoKCj1oZWFkMSBERVNDUklQVElPTgoKICoqKioqKioqKioqKioqKioqKioqKioqKioqIENBVVRJT04gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogVGhpcyBpcyAnSlNPTiBtb2R1bGUgdmVyc2lvbiAyJyBhbmQgdGhlcmUgYXJlIG1hbnkgZGlmZmVyZW5jZXMgICoKICogdG8gdmVyc2lvbiAxLnh4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICogUGxlYXNlIGNoZWNrIHlvdXIgYXBwbGljYXRpb25zIHVzZWluZyBvbGQgdmVyc2lvbi4gICAgICAgICAgICAgICoKICogICBTZWUgdG8gJ0lOQ09NUEFUSUJMRSBDSEFOR0VTIFRPIE9MRCBWRVJTSU9OJyAgICAgICAgICAgICAgICAgICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCkpTT04gKEphdmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uKSBpcyBhIHNpbXBsZSBkYXRhIGZvcm1hdC4KU2VlIHRvIEw8aHR0cDovL3d3dy5qc29uLm9yZy8+IGFuZCBDPFJGQzQ2Mjc+KEw8aHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjNDYyNy50eHQ+KS4KClRoaXMgbW9kdWxlIGNvbnZlcnRzIFBlcmwgZGF0YSBzdHJ1Y3R1cmVzIHRvIEpTT04gYW5kIHZpY2UgdmVyc2EgdXNpbmcgZWl0aGVyCkw8SlNPTjo6WFM+IG9yIEw8SlNPTjo6UFA+LgoKSlNPTjo6WFMgaXMgdGhlIGZhc3Rlc3QgYW5kIG1vc3QgcHJvcGVyIEpTT04gbW9kdWxlIG9uIENQQU4gd2hpY2ggbXVzdCBiZQpjb21waWxlZCBhbmQgaW5zdGFsbGVkIGluIHlvdXIgZW52aXJvbm1lbnQuCkpTT046OlBQIGlzIGEgcHVyZS1QZXJsIG1vZHVsZSB3aGljaCBpcyBidW5kbGVkIGluIHRoaXMgZGlzdHJpYnV0aW9uIGFuZApoYXMgYSBzdHJvbmcgY29tcGF0aWJpbGl0eSB0byBKU09OOjpYUy4KClRoaXMgbW9kdWxlIHRyeSB0byB1c2UgSlNPTjo6WFMgYnkgZGVmYXVsdCBhbmQgZmFpbCB0byBpdCwgdXNlIEpTT046OlBQIGluc3RlYWQuClNvIGl0cyBmZWF0dXJlcyBjb21wbGV0ZWx5IGRlcGVuZCBvbiBKU09OOjpYUyBvciBKU09OOjpQUC4KClNlZSB0byBMPEJBQ0tFTkQgTU9EVUxFIERFQ0lTSU9OPi4KClRvIGRpc3Rpbmd1aXNoIHRoZSBtb2R1bGUgbmFtZSAnSlNPTicgYW5kIHRoZSBmb3JtYXQgdHlwZSBKU09OLAp0aGUgZm9ybWVyIGlzIHF1b3RlZCBieSBDRTxsdD5FPGd0PiAoaXRzIHJlc3VsdHMgdmFyeSB3aXRoIHlvdXIgdXNpbmcgbWVkaWEpLAphbmQgdGhlIGxhdHRlciBpcyBsZWZ0IGp1c3QgYXMgaXQgaXMuCgpNb2R1bGUgbmFtZSA6IEM8SlNPTj4KCkZvcm1hdCB0eXBlIDogSlNPTgoKPWhlYWQyIEZFQVRVUkVTCgo9b3ZlcgoKPWl0ZW0gKiBjb3JyZWN0IHVuaWNvZGUgaGFuZGxpbmcKClRoaXMgbW9kdWxlIChpLmUuIGJhY2tlbmQgbW9kdWxlcykga25vd3MgaG93IHRvIGhhbmRsZSBVbmljb2RlLCBkb2N1bWVudHMKaG93IGFuZCB3aGVuIGl0IGRvZXMgc28sIGFuZCBldmVuIGRvY3VtZW50cyB3aGF0ICJjb3JyZWN0IiBtZWFucy4KCkV2ZW4gdGhvdWdoIHRoZXJlIGFyZSBsaW1pdGF0aW9ucywgdGhpcyBmZWF0dXJlIGlzIGF2YWlsYWJsZSBzaW5jZSBQZXJsIHZlcnNpb24gNS42LgoKSlNPTjo6WFMgcmVxdWlyZXMgUGVybCA1LjguMiAoYnV0IHdvcmtzIGNvcnJlY3RseSBpbiA1LjguOCBvciBsYXRlciksIHNvIGluIG9sZGVyIHZlcnNpb25zCkM8SlNPTj4gc2hvbHVkIGNhbGwgSlNPTjo6UFAgYXMgdGhlIGJhY2tlbmQgd2hpY2ggY2FuIGJlIHVzZWQgc2luY2UgUGVybCA1LjAwNS4KCldpdGggUGVybCA1LjgueCBKU09OOjpQUCB3b3JrcywgYnV0IGZyb20gNS44LjAgdG8gNS44LjIsIGJlY2F1c2Ugb2YgYSBQZXJsIHNpZGUgcHJvYmxlbSwKSlNPTjo6UFAgd29ya3Mgc2xvd2VyIGluIHRoZSB2ZXJzaW9ucy4gQW5kIGluIDUuMDA1LCB0aGUgVW5pY29kZSBoYW5kbGluZyBpcyBub3QgYXZhaWxhYmxlLgpTZWUgdG8gTDxKU09OOjpQUC9VTklDT0RFIEhBTkRMSU5HIE9OIFBFUkxTPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KClNlZSBhbHNvIHRvIEw8SlNPTjo6WFMvQSBGRVcgTk9URVMgT04gVU5JQ09ERSBBTkQgUEVSTD4KYW5kIEw8SlNPTjo6WFMvRU5DT0RJTkcvQ09ERVNFVF9GTEFHX05PVEVTPi4KCgo9aXRlbSAqIHJvdW5kLXRyaXAgaW50ZWdyaXR5CgpXaGVuIHlvdSBzZXJpYWxpc2UgYSBwZXJsIGRhdGEgc3RydWN0dXJlIHVzaW5nIG9ubHkgZGF0YSB0eXBlcyBzdXBwb3J0ZWQKYnkgSlNPTiBhbmQgUGVybCwgdGhlIGRlc2VyaWFsaXNlZCBkYXRhIHN0cnVjdHVyZSBpcyBpZGVudGljYWwgb24gdGhlIFBlcmwKbGV2ZWwuIChlLmcuIHRoZSBzdHJpbmcgIjIuMCIgZG9lc24ndCBzdWRkZW5seSBiZWNvbWUgIjIiIGp1c3QgYmVjYXVzZQppdCBsb29rcyBsaWtlIGEgbnVtYmVyKS4gVGhlcmUgSTxhcmU+IG1pbm9yIGV4Y2VwdGlvbnMgdG8gdGhpcywgcmVhZCB0aGUKTDwvTUFQUElORz4gc2VjdGlvbiBiZWxvdyB0byBsZWFybiBhYm91dCB0aG9zZS4KCgo9aXRlbSAqIHN0cmljdCBjaGVja2luZyBvZiBKU09OIGNvcnJlY3RuZXNzCgpUaGVyZSBpcyBubyBndWVzc2luZywgbm8gZ2VuZXJhdGluZyBvZiBpbGxlZ2FsIEpTT04gdGV4dHMgYnkgZGVmYXVsdCwKYW5kIG9ubHkgSlNPTiBpcyBhY2NlcHRlZCBhcyBpbnB1dCBieSBkZWZhdWx0ICh0aGUgbGF0dGVyIGlzIGEgc2VjdXJpdHkKZmVhdHVyZSkuCgpTZWUgdG8gTDxKU09OOjpYUy9GRUFUVVJFUz4gYW5kIEw8SlNPTjo6UFAvRkVBVFVSRVM+LgoKPWl0ZW0gKiBmYXN0CgpUaGlzIG1vZHVsZSByZXR1cm5zIGEgSlNPTjo6WFMgb2JqZWN0IGl0c2VsZiBpZiBhdmFpbGFibGUuCkNvbXBhcmVkIHRvIG90aGVyIEpTT04gbW9kdWxlcyBhbmQgb3RoZXIgc2VyaWFsaXNlcnMgc3VjaCBhcyBTdG9yYWJsZSwKSlNPTjo6WFMgdXN1YWxseSBjb21wYXJlcyBmYXZvdXJhYmx5IGluIHRlcm1zIG9mIHNwZWVkLCB0b28uCgpJZiBub3QgYXZhaWxhYmxlLCBDPEpTT04+IHJldHVybnMgYSBKU09OOjpQUCBvYmplY3QgaW5zdGVhZCBvZiBKU09OOjpYUyBhbmQKaXQgaXMgdmVyeSBzbG93IGFzIHB1cmUtUGVybC4KCj1pdGVtICogc2ltcGxlIHRvIHVzZQoKVGhpcyBtb2R1bGUgaGFzIGJvdGggYSBzaW1wbGUgZnVuY3Rpb25hbCBpbnRlcmZhY2UgYXMgd2VsbCBhcyBhbgpvYmplY3Qgb3JpZW50ZWQgaW50ZXJmYWNlIGludGVyZmFjZS4KCj1pdGVtICogcmVhc29uYWJseSB2ZXJzYXRpbGUgb3V0cHV0IGZvcm1hdHMKCllvdSBjYW4gY2hvb3NlIGJldHdlZW4gdGhlIG1vc3QgY29tcGFjdCBndWFyYW50ZWVkLXNpbmdsZS1saW5lIGZvcm1hdCBwb3NzaWJsZQoobmljZSBmb3Igc2ltcGxlIGxpbmUtYmFzZWQgcHJvdG9jb2xzKSwgYSBwdXJlLUFTQ0lJIGZvcm1hdCAoZm9yIHdoZW4geW91ciB0cmFuc3BvcnQKaXMgbm90IDgtYml0IGNsZWFuLCBzdGlsbCBzdXBwb3J0cyB0aGUgd2hvbGUgVW5pY29kZSByYW5nZSksIG9yIGEgcHJldHR5LXByaW50ZWQKZm9ybWF0IChmb3Igd2hlbiB5b3Ugd2FudCB0byByZWFkIHRoYXQgc3R1ZmYpLiBPciB5b3UgY2FuIGNvbWJpbmUgdGhvc2UgZmVhdHVyZXMKaW4gd2hhdGV2ZXIgd2F5IHlvdSBsaWtlLgoKPWJhY2sKCj1oZWFkMSBGVU5DVElPTkFMIElOVEVSRkFDRQoKU29tZSBkb2N1bWVudHMgYXJlIGNvcGllZCBhbmQgbW9kaWZpZWQgZnJvbSBMPEpTT046OlhTL0ZVTkNUSU9OQUwgSU5URVJGQUNFPi4KQzx0b19qc29uPiBhbmQgQzxmcm9tX2pzb24+IGFyZSBhZGRpdGlvbmFsIGZ1bmN0aW9ucy4KCj1oZWFkMiBlbmNvZGVfanNvbgoKICAgICRqc29uX3RleHQgPSBlbmNvZGVfanNvbiAkcGVybF9zY2FsYXIKCkNvbnZlcnRzIHRoZSBnaXZlbiBQZXJsIGRhdGEgc3RydWN0dXJlIHRvIGEgVVRGLTggZW5jb2RlZCwgYmluYXJ5IHN0cmluZy4KClRoaXMgZnVuY3Rpb24gY2FsbCBpcyBmdW5jdGlvbmFsbHkgaWRlbnRpY2FsIHRvOgoKICAgICRqc29uX3RleHQgPSBKU09OLT5uZXctPnV0ZjgtPmVuY29kZSgkcGVybF9zY2FsYXIpCgo9aGVhZDIgZGVjb2RlX2pzb24KCiAgICAkcGVybF9zY2FsYXIgPSBkZWNvZGVfanNvbiAkanNvbl90ZXh0CgpUaGUgb3Bwb3NpdGUgb2YgQzxlbmNvZGVfanNvbj46IGV4cGVjdHMgYW4gVVRGLTggKGJpbmFyeSkgc3RyaW5nIGFuZCB0cmllcwp0byBwYXJzZSB0aGF0IGFzIGFuIFVURi04IGVuY29kZWQgSlNPTiB0ZXh0LCByZXR1cm5pbmcgdGhlIHJlc3VsdGluZwpyZWZlcmVuY2UuCgpUaGlzIGZ1bmN0aW9uIGNhbGwgaXMgZnVuY3Rpb25hbGx5IGlkZW50aWNhbCB0bzoKCiAgICAkcGVybF9zY2FsYXIgPSBKU09OLT5uZXctPnV0ZjgtPmRlY29kZSgkanNvbl90ZXh0KQoKCj1oZWFkMiB0b19qc29uCgogICAkanNvbl90ZXh0ID0gdG9fanNvbigkcGVybF9zY2FsYXIpCgpDb252ZXJ0cyB0aGUgZ2l2ZW4gUGVybCBkYXRhIHN0cnVjdHVyZSB0byBhIGpzb24gc3RyaW5nLgoKVGhpcyBmdW5jdGlvbiBjYWxsIGlzIGZ1bmN0aW9uYWxseSBpZGVudGljYWwgdG86CgogICAkanNvbl90ZXh0ID0gSlNPTi0+bmV3LT5lbmNvZGUoJHBlcmxfc2NhbGFyKQoKVGFrZXMgYSBoYXNoIHJlZmVyZW5jZSBhcyB0aGUgc2Vjb25kLgoKICAgJGpzb25fdGV4dCA9IHRvX2pzb24oJHBlcmxfc2NhbGFyLCAkZmxhZ19oYXNocmVmKQoKU28sCgogICAkanNvbl90ZXh0ID0gZW5jb2RlX2pzb24oJHBlcmxfc2NhbGFyLCB7dXRmOCA9PiAxLCBwcmV0dHkgPT4gMX0pCgplcXVpdmFsZW50IHRvOgoKICAgJGpzb25fdGV4dCA9IEpTT04tPm5ldy0+dXRmOCgxKS0+cHJldHR5KDEpLT5lbmNvZGUoJHBlcmxfc2NhbGFyKQoKSWYgeW91IHdhbnQgdG8gd3JpdGUgYSBtb2Rlcm4gcGVybCBjb2RlIHdoaWNoIGNvbW11bmljYXRlcyB0byBvdXRlciB3b3JsZCwKeW91IHNob3VsZCB1c2UgQzxlbmNvZGVfanNvbj4gKHN1cHBvc2VkIHRoYXQgSlNPTiBkYXRhIGFyZSBlbmNvZGVkIGluIFVURi04KS4KCj1oZWFkMiBmcm9tX2pzb24KCiAgICRwZXJsX3NjYWxhciA9IGZyb21fanNvbigkanNvbl90ZXh0KQoKVGhlIG9wcG9zaXRlIG9mIEM8dG9fanNvbj46IGV4cGVjdHMgYSBqc29uIHN0cmluZyBhbmQgdHJpZXMKdG8gcGFyc2UgaXQsIHJldHVybmluZyB0aGUgcmVzdWx0aW5nIHJlZmVyZW5jZS4KClRoaXMgZnVuY3Rpb24gY2FsbCBpcyBmdW5jdGlvbmFsbHkgaWRlbnRpY2FsIHRvOgoKICAgICRwZXJsX3NjYWxhciA9IEpTT04tPmRlY29kZSgkanNvbl90ZXh0KQoKVGFrZXMgYSBoYXNoIHJlZmVyZW5jZSBhcyB0aGUgc2Vjb25kLgoKICAgICRwZXJsX3NjYWxhciA9IGZyb21fanNvbigkanNvbl90ZXh0LCAkZmxhZ19oYXNocmVmKQoKU28sCgogICAgJHBlcmxfc2NhbGFyID0gZnJvbV9qc29uKCRqc29uX3RleHQsIHt1dGY4ID0+IDF9KQoKZXF1aXZhbGVudCB0bzoKCiAgICAkcGVybF9zY2FsYXIgPSBKU09OLT5uZXctPnV0ZjgoMSktPmRlY29kZSgkanNvbl90ZXh0KQoKSWYgeW91IHdhbnQgdG8gd3JpdGUgYSBtb2Rlcm4gcGVybCBjb2RlIHdoaWNoIGNvbW11bmljYXRlcyB0byBvdXRlciB3b3JsZCwKeW91IHNob3VsZCB1c2UgQzxkZWNvZGVfanNvbj4gKHN1cHBvc2VkIHRoYXQgSlNPTiBkYXRhIGFyZSBlbmNvZGVkIGluIFVURi04KS4KCj1oZWFkMiBKU09OOjppc19ib29sCgogICAgJGlzX2Jvb2xlYW4gPSBKU09OOjppc19ib29sKCRzY2FsYXIpCgpSZXR1cm5zIHRydWUgaWYgdGhlIHBhc3NlZCBzY2FsYXIgcmVwcmVzZW50cyBlaXRoZXIgSlNPTjo6dHJ1ZSBvcgpKU09OOjpmYWxzZSwgdHdvIGNvbnN0YW50cyB0aGF0IGFjdCBsaWtlIEM8MT4gYW5kIEM8MD4gcmVzcGVjdGl2ZWx5CmFuZCBhcmUgYWxzbyB1c2VkIHRvIHJlcHJlc2VudCBKU09OIEM8dHJ1ZT4gYW5kIEM8ZmFsc2U+IGluIFBlcmwgc3RyaW5ncy4KCj1oZWFkMiBKU09OOjp0cnVlCgpSZXR1cm5zIEpTT04gdHJ1ZSB2YWx1ZSB3aGljaCBpcyBibGVzc2VkIG9iamVjdC4KSXQgQzxpc2E+IEpTT046OkJvb2xlYW4gb2JqZWN0LgoKPWhlYWQyIEpTT046OmZhbHNlCgpSZXR1cm5zIEpTT04gZmFsc2UgdmFsdWUgd2hpY2ggaXMgYmxlc3NlZCBvYmplY3QuCkl0IEM8aXNhPiBKU09OOjpCb29sZWFuIG9iamVjdC4KCj1oZWFkMiBKU09OOjpudWxsCgpSZXR1cm5zIEM8dW5kZWY+LgoKU2VlIEw8TUFQUElORz4sIGJlbG93LCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgSlNPTiB2YWx1ZXMgYXJlIG1hcHBlZCB0bwpQZXJsLgoKPWhlYWQxIEhPVyBETyBJIERFQ09ERSBBIERBVEEgRlJPTSBPVVRFUiBBTkQgRU5DT0RFIFRPIE9VVEVSCgpUaGlzIHNlY3Rpb24gc3VwcG9zZXMgdGhhdCB5b3VyIHBlcmwgdnJlc2lvbiBpcyA1Ljggb3IgbGF0ZXIuCgpJZiB5b3Uga25vdyBhIEpTT04gdGV4dCBmcm9tIGFuIG91dGVyIHdvcmxkIC0gYSBuZXR3b3JrLCBhIGZpbGUgY29udGVudCwgYW5kIHNvIG9uLAppcyBlbmNvZGVkIGluIFVURi04LCB5b3Ugc2hvdWxkIHVzZSBDPGRlY29kZV9qc29uPiBvciBDPEpTT04+IG1vZHVsZSBvYmplY3QKd2l0aCBDPHV0Zjg+IGVuYWJsZS4gQW5kIHRoZSBkZWNvZGVkIHJlc3VsdCB3aWxsIGNvbnRhaW4gVU5JQ09ERSBjaGFyYWN0ZXJzLgoKICAjIGZyb20gbmV0d29yawogIG15ICRqc29uICAgICAgICA9IEpTT04tPm5ldy0+dXRmODsKICBteSAkanNvbl90ZXh0ICAgPSBDR0ktPm5ldy0+cGFyYW0oICdqc29uX2RhdGEnICk7CiAgbXkgJHBlcmxfc2NhbGFyID0gJGpzb24tPmRlY29kZSggJGpzb25fdGV4dCApOwogIAogICMgZnJvbSBmaWxlIGNvbnRlbnQKICBsb2NhbCAkLzsKICBvcGVuKCBteSAkZmgsICc8JywgJ2pzb24uZGF0YScgKTsKICAkanNvbl90ZXh0ICAgPSA8JGZoPjsKICAkcGVybF9zY2FsYXIgPSBkZWNvZGVfanNvbiggJGpzb25fdGV4dCApOwoKSWYgYW4gb3V0ZXIgZGF0YSBpcyBub3QgZW5jb2RlZCBpbiBVVEYtOCwgZmlyc3RseSB5b3Ugc2hvdWxkIEM8ZGVjb2RlPiBpdC4KCiAgdXNlIEVuY29kZTsKICBsb2NhbCAkLzsKICBvcGVuKCBteSAkZmgsICc8JywgJ2pzb24uZGF0YScgKTsKICBteSAkZW5jb2RpbmcgPSAnY3A5MzInOwogIG15ICR1bmljb2RlX2pzb25fdGV4dCA9IGRlY29kZSggJGVuY29kaW5nLCA8JGZoPiApOyAjIFVOSUNPREUKICAKICAjIG9yIHlvdSBjYW4gd3JpdGUgdGhlIGJlbG93IGNvZGUuCiAgIwogICMgb3BlbiggbXkgJGZoLCAiPDplbmNvZGluZygkZW5jb2RpbmcpIiwgJ2pzb24uZGF0YScgKTsKICAjICR1bmljb2RlX2pzb25fdGV4dCA9IDwkZmg+OwoKSW4gdGhpcyBjYXNlLCBDPCR1bmljb2RlX2pzb25fdGV4dD4gaXMgb2YgY291cnNlIFVOSUNPREUgc3RyaW5nLgpTbyB5b3UgQjxjYW5ub3Q+IHVzZSBDPGRlY29kZV9qc29uPiBub3IgQzxKU09OPiBtb2R1bGUgb2JqZWN0IHdpdGggQzx1dGY4PiBlbmFibGUuCkluc3RlYWQgb2YgdGhlbSwgeW91IHVzZSBDPEpTT04+IG1vZHVsZSBvYmplY3Qgd2l0aCBDPHV0Zjg+IGRpc2FibGUgb3IgQzxmcm9tX2pzb24+LgoKICAkcGVybF9zY2FsYXIgPSAkanNvbi0+dXRmOCgwKS0+ZGVjb2RlKCAkdW5pY29kZV9qc29uX3RleHQgKTsKICAjIG9yCiAgJHBlcmxfc2NhbGFyID0gZnJvbV9qc29uKCAkdW5pY29kZV9qc29uX3RleHQgKTsKCk9yIEM8ZW5jb2RlICd1dGY4Jz4gYW5kIEM8ZGVjb2RlX2pzb24+OgoKICAkcGVybF9zY2FsYXIgPSBkZWNvZGVfanNvbiggZW5jb2RlKCAndXRmOCcsICR1bmljb2RlX2pzb25fdGV4dCApICk7CiAgIyB0aGlzIHdheSBpcyBub3QgZWZmaWNpZW50LgoKQW5kIG5vdywgeW91IHdhbnQgdG8gY29udmVydCB5b3VyIEM8JHBlcmxfc2NhbGFyPiBpbnRvIEpTT04gZGF0YSBhbmQKc2VuZCBpdCB0byBhbiBvdXRlciB3b3JsZCAtIGEgbmV0d29yayBvciBhIGZpbGUgY29udGVudCwgYW5kIHNvIG9uLgoKWW91ciBkYXRhIHVzdWFsbHkgY29udGFpbnMgVU5JQ09ERSBzdHJpbmdzIGFuZCB5b3Ugd2FudCB0aGUgY29udmVydGVkIGRhdGEgdG8gYmUgZW5jb2RlZAppbiBVVEYtOCwgeW91IHNob3VsZCB1c2UgQzxlbmNvZGVfanNvbj4gb3IgQzxKU09OPiBtb2R1bGUgb2JqZWN0IHdpdGggQzx1dGY4PiBlbmFibGUuCgogIHByaW50IGVuY29kZV9qc29uKCAkcGVybF9zY2FsYXIgKTsgIyB0byBhIG5ldHdvcms/IGZpbGU/IG9yIGRpc3BsYXk/CiAgIyBvcgogIHByaW50ICRqc29uLT51dGY4LT5lbmNvZGUoICRwZXJsX3NjYWxhciApOwoKSWYgQzwkcGVybF9zY2FsYXI+IGRvZXMgbm90IGNvbnRhaW4gVU5JQ09ERSBidXQgQzwkZW5jb2Rpbmc+LWVuY29kZWQgc3RyaW5ncwpmb3Igc29tZSByZWFzb24sIHRoZW4gaXRzIGNoYXJhY3RlcnMgYXJlIHJlZ2FyZGVkIGFzIEI8bGF0aW4xPiBmb3IgcGVybAooYmVjYXVzZSBpdCBkb2VzIG5vdCBjb25jZXJuIHdpdGggeW91ciAkZW5jb2RpbmcpLgpZb3UgQjxjYW5ub3Q+IHVzZSBDPGVuY29kZV9qc29uPiBub3IgQzxKU09OPiBtb2R1bGUgb2JqZWN0IHdpdGggQzx1dGY4PiBlbmFibGUuCkluc3RlYWQgb2YgdGhlbSwgeW91IHVzZSBDPEpTT04+IG1vZHVsZSBvYmplY3Qgd2l0aCBDPHV0Zjg+IGRpc2FibGUgb3IgQzx0b19qc29uPi4KTm90ZSB0aGF0IHRoZSByZXN1bHRlZCB0ZXh0IGlzIGEgVU5JQ09ERSBzdHJpbmcgYnV0IG5vIHByb2JsZW0gdG8gcHJpbnQgaXQuCgogICMgJHBlcmxfc2NhbGFyIGNvbnRhaW5zICRlbmNvZGluZyBlbmNvZGVkIHN0cmluZyB2YWx1ZXMKICAkdW5pY29kZV9qc29uX3RleHQgPSAkanNvbi0+dXRmOCgwKS0+ZW5jb2RlKCAkcGVybF9zY2FsYXIgKTsKICAjIG9yIAogICR1bmljb2RlX2pzb25fdGV4dCA9IHRvX2pzb24oICRwZXJsX3NjYWxhciApOwogICMgJHVuaWNvZGVfanNvbl90ZXh0IGNvbnNpc3RzIG9mIGNoYXJhY3RlcnMgbGVzcyB0aGFuIDB4MTAwCiAgcHJpbnQgJHVuaWNvZGVfanNvbl90ZXh0OwoKT3IgQzxkZWNvZGUgJGVuY29kaW5nPiBhbGwgc3RyaW5nIHZhbHVlcyBhbmQgQzxlbmNvZGVfanNvbj46CgogICRwZXJsX3NjYWxhci0+eyBmb28gfSA9IGRlY29kZSggJGVuY29kaW5nLCAkcGVybF9zY2FsYXItPnsgZm9vIH0gKTsKICAjIC4uLiBkbyBpdCB0byBlYWNoIHN0cmluZyB2YWx1ZXMsIHRoZW4gZW5jb2RlX2pzb24KICAkanNvbl90ZXh0ID0gZW5jb2RlX2pzb24oICRwZXJsX3NjYWxhciApOwoKVGhpcyBtZXRob2QgaXMgYSBwcm9wZXIgd2F5IGJ1dCBwcm9iYWJseSBub3QgZWZmaWNpZW50LgoKU2VlIHRvIEw8RW5jb2RlPiwgTDxwZXJsdW5paW50cm8+LgoKCj1oZWFkMSBDT01NT04gT0JKRUNULU9SSUVOVEVEIElOVEVSRkFDRQoKPWhlYWQyIG5ldwoKICAgICRqc29uID0gbmV3IEpTT04KClJldHVybnMgYSBuZXcgQzxKU09OPiBvYmplY3QgaW5oZXJpdGVkIGZyb20gZWl0aGVyIEpTT046OlhTIG9yIEpTT046OlBQCnRoYXQgY2FuIGJlIHVzZWQgdG8gZGUvZW5jb2RlIEpTT04gc3RyaW5ncy4KCkFsbCBib29sZWFuIGZsYWdzIGRlc2NyaWJlZCBiZWxvdyBhcmUgYnkgZGVmYXVsdCBJPGRpc2FibGVkPi4KClRoZSBtdXRhdG9ycyBmb3IgZmxhZ3MgYWxsIHJldHVybiB0aGUgSlNPTiBvYmplY3QgYWdhaW4gYW5kIHRodXMgY2FsbHMgY2FuCmJlIGNoYWluZWQ6CgogICBteSAkanNvbiA9IEpTT04tPm5ldy0+dXRmOC0+c3BhY2VfYWZ0ZXItPmVuY29kZSh7YSA9PiBbMSwyXX0pCiAgID0+IHsiYSI6IFsxLCAyXX0KCj1oZWFkMiBhc2NpaQoKICAgICRqc29uID0gJGpzb24tPmFzY2lpKFskZW5hYmxlXSkKICAgIAogICAgJGVuYWJsZWQgPSAkanNvbi0+Z2V0X2FzY2lpCgpJZiAkZW5hYmxlIGlzIHRydWUgKG9yIG1pc3NpbmcpLCB0aGVuIHRoZSBlbmNvZGUgbWV0aG9kIHdpbGwgbm90IGdlbmVyYXRlIGNoYXJhY3RlcnMgb3V0c2lkZQp0aGUgY29kZSByYW5nZSAwLi4xMjcuIEFueSBVbmljb2RlIGNoYXJhY3RlcnMgb3V0c2lkZSB0aGF0IHJhbmdlIHdpbGwgYmUgZXNjYXBlZCB1c2luZyBlaXRoZXIKYSBzaW5nbGUgXHVYWFhYIG9yIGEgZG91YmxlIFx1SEhISFx1TExMTEwgZXNjYXBlIHNlcXVlbmNlLCBhcyBwZXIgUkZDNDYyNy4KCklmICRlbmFibGUgaXMgZmFsc2UsIHRoZW4gdGhlIGVuY29kZSBtZXRob2Qgd2lsbCBub3QgZXNjYXBlIFVuaWNvZGUgY2hhcmFjdGVycyB1bmxlc3MKcmVxdWlyZWQgYnkgdGhlIEpTT04gc3ludGF4IG9yIG90aGVyIGZsYWdzLiBUaGlzIHJlc3VsdHMgaW4gYSBmYXN0ZXIgYW5kIG1vcmUgY29tcGFjdCBmb3JtYXQuCgpUaGlzIGZlYXR1cmUgZGVwZW5kcyBvbiB0aGUgdXNlZCBQZXJsIHZlcnNpb24gYW5kIGVudmlyb25tZW50LgoKU2VlIHRvIEw8SlNPTjo6UFAvVU5JQ09ERSBIQU5ETElORyBPTiBQRVJMUz4gaWYgdGhlIGJhY2tlbmQgaXMgUFAuCgogIEpTT04tPm5ldy0+YXNjaWkoMSktPmVuY29kZShbY2hyIDB4MTA0MDFdKQogID0+IFsiXHVkODAxXHVkYzAxIl0KCj1oZWFkMiBsYXRpbjEKCiAgICAkanNvbiA9ICRqc29uLT5sYXRpbjEoWyRlbmFibGVdKQogICAgCiAgICAkZW5hYmxlZCA9ICRqc29uLT5nZXRfbGF0aW4xCgpJZiAkZW5hYmxlIGlzIHRydWUgKG9yIG1pc3NpbmcpLCB0aGVuIHRoZSBlbmNvZGUgbWV0aG9kIHdpbGwgZW5jb2RlIHRoZSByZXN1bHRpbmcgSlNPTgp0ZXh0IGFzIGxhdGluMSAob3IgaXNvLTg4NTktMSksIGVzY2FwaW5nIGFueSBjaGFyYWN0ZXJzIG91dHNpZGUgdGhlIGNvZGUgcmFuZ2UgMC4uMjU1LgoKSWYgJGVuYWJsZSBpcyBmYWxzZSwgdGhlbiB0aGUgZW5jb2RlIG1ldGhvZCB3aWxsIG5vdCBlc2NhcGUgVW5pY29kZSBjaGFyYWN0ZXJzCnVubGVzcyByZXF1aXJlZCBieSB0aGUgSlNPTiBzeW50YXggb3Igb3RoZXIgZmxhZ3MuCgogIEpTT04tPm5ldy0+bGF0aW4xLT5lbmNvZGUgKFsiXHh7ODl9XHh7YWJjfSJdCiAgPT4gWyJceHs4OX1cXHUwYWJjIl0gICAgIyAocGVybCBzeW50YXgsIFUrYWJjIGVzY2FwZWQsIFUrODkgbm90KQoKPWhlYWQyIHV0ZjgKCiAgICAkanNvbiA9ICRqc29uLT51dGY4KFskZW5hYmxlXSkKICAgIAogICAgJGVuYWJsZWQgPSAkanNvbi0+Z2V0X3V0ZjgKCklmICRlbmFibGUgaXMgdHJ1ZSAob3IgbWlzc2luZyksIHRoZW4gdGhlIGVuY29kZSBtZXRob2Qgd2lsbCBlbmNvZGUgdGhlIEpTT04gcmVzdWx0CmludG8gVVRGLTgsIGFzIHJlcXVpcmVkIGJ5IG1hbnkgcHJvdG9jb2xzLCB3aGlsZSB0aGUgZGVjb2RlIG1ldGhvZCBleHBlY3RzIHRvIGJlIGhhbmRsZWQKYW4gVVRGLTgtZW5jb2RlZCBzdHJpbmcuIFBsZWFzZSBub3RlIHRoYXQgVVRGLTgtZW5jb2RlZCBzdHJpbmdzIGRvIG5vdCBjb250YWluIGFueQpjaGFyYWN0ZXJzIG91dHNpZGUgdGhlIHJhbmdlIDAuLjI1NSwgdGhleSBhcmUgdGh1cyB1c2VmdWwgZm9yIGJ5dGV3aXNlL2JpbmFyeSBJL08uCgpJbiBmdXR1cmUgdmVyc2lvbnMsIGVuYWJsaW5nIHRoaXMgb3B0aW9uIG1pZ2h0IGVuYWJsZSBhdXRvZGV0ZWN0aW9uIG9mIHRoZSBVVEYtMTYgYW5kIFVURi0zMgplbmNvZGluZyBmYW1pbGllcywgYXMgZGVzY3JpYmVkIGluIFJGQzQ2MjcuCgpJZiAkZW5hYmxlIGlzIGZhbHNlLCB0aGVuIHRoZSBlbmNvZGUgbWV0aG9kIHdpbGwgcmV0dXJuIHRoZSBKU09OIHN0cmluZyBhcyBhIChub24tZW5jb2RlZCkKVW5pY29kZSBzdHJpbmcsIHdoaWxlIGRlY29kZSBleHBlY3RzIHRodXMgYSBVbmljb2RlIHN0cmluZy4gQW55IGRlY29kaW5nIG9yIGVuY29kaW5nCihlLmcuIHRvIFVURi04IG9yIFVURi0xNikgbmVlZHMgdG8gYmUgZG9uZSB5b3Vyc2VsZiwgZS5nLiB1c2luZyB0aGUgRW5jb2RlIG1vZHVsZS4KCgpFeGFtcGxlLCBvdXRwdXQgVVRGLTE2QkUtZW5jb2RlZCBKU09OOgoKICB1c2UgRW5jb2RlOwogICRqc29udGV4dCA9IGVuY29kZSAiVVRGLTE2QkUiLCBKU09OOjpYUy0+bmV3LT5lbmNvZGUgKCRvYmplY3QpOwoKRXhhbXBsZSwgZGVjb2RlIFVURi0zMkxFLWVuY29kZWQgSlNPTjoKCiAgdXNlIEVuY29kZTsKICAkb2JqZWN0ID0gSlNPTjo6WFMtPm5ldy0+ZGVjb2RlIChkZWNvZGUgIlVURi0zMkxFIiwgJGpzb250ZXh0KTsKClNlZSB0byBMPEpTT046OlBQL1VOSUNPREUgSEFORExJTkcgT04gUEVSTFM+IGlmIHRoZSBiYWNrZW5kIGlzIFBQLgoKCj1oZWFkMiBwcmV0dHkKCiAgICAkanNvbiA9ICRqc29uLT5wcmV0dHkoWyRlbmFibGVdKQoKVGhpcyBlbmFibGVzIChvciBkaXNhYmxlcykgYWxsIG9mIHRoZSBDPGluZGVudD4sIEM8c3BhY2VfYmVmb3JlPiBhbmQKQzxzcGFjZV9hZnRlcj4gKGFuZCBpbiB0aGUgZnV0dXJlIHBvc3NpYmx5IG1vcmUpIGZsYWdzIGluIG9uZSBjYWxsIHRvCmdlbmVyYXRlIHRoZSBtb3N0IHJlYWRhYmxlIChvciBtb3N0IGNvbXBhY3QpIGZvcm0gcG9zc2libGUuCgpFcXVpdmFsZW50IHRvOgoKICAgJGpzb24tPmluZGVudC0+c3BhY2VfYmVmb3JlLT5zcGFjZV9hZnRlcgoKVGhlIGluZGVudCBzcGFjZSBsZW5ndGggaXMgdGhyZWUgYW5kIEpTT046OlhTIGNhbm5vdCBjaGFuZ2UgdGhlIGluZGVudApzcGFjZSBsZW5ndGguCgo9aGVhZDIgaW5kZW50CgogICAgJGpzb24gPSAkanNvbi0+aW5kZW50KFskZW5hYmxlXSkKICAgIAogICAgJGVuYWJsZWQgPSAkanNvbi0+Z2V0X2luZGVudAoKSWYgQzwkZW5hYmxlPiBpcyB0cnVlIChvciBtaXNzaW5nKSwgdGhlbiB0aGUgQzxlbmNvZGU+IG1ldGhvZCB3aWxsIHVzZSBhIG11bHRpbGluZQpmb3JtYXQgYXMgb3V0cHV0LCBwdXR0aW5nIGV2ZXJ5IGFycmF5IG1lbWJlciBvciBvYmplY3QvaGFzaCBrZXktdmFsdWUgcGFpcgppbnRvIGl0cyBvd24gbGluZSwgaWRlbnRpbmcgdGhlbSBwcm9wZXJseS4KCklmIEM8JGVuYWJsZT4gaXMgZmFsc2UsIG5vIG5ld2xpbmVzIG9yIGluZGVudGluZyB3aWxsIGJlIHByb2R1Y2VkLCBhbmQgdGhlCnJlc3VsdGluZyBKU09OIHRleHQgaXMgZ3VhcmVudGVlZCBub3QgdG8gY29udGFpbiBhbnkgQzxuZXdsaW5lcz4uCgpUaGlzIHNldHRpbmcgaGFzIG5vIGVmZmVjdCB3aGVuIGRlY29kaW5nIEpTT04gdGV4dHMuCgpUaGUgaW5kZW50IHNwYWNlIGxlbmd0aCBpcyB0aHJlZS4KV2l0aCBKU09OOjpQUCwgeW91IGNhbiBhbHNvIGFjY2VzcyBDPGluZGVudF9sZW5ndGg+IHRvIGNoYW5nZSBpbmRlbnQgc3BhY2UgbGVuZ3RoLgoKCj1oZWFkMiBzcGFjZV9iZWZvcmUKCiAgICAkanNvbiA9ICRqc29uLT5zcGFjZV9iZWZvcmUoWyRlbmFibGVdKQogICAgCiAgICAkZW5hYmxlZCA9ICRqc29uLT5nZXRfc3BhY2VfYmVmb3JlCgpJZiBDPCRlbmFibGU+IGlzIHRydWUgKG9yIG1pc3NpbmcpLCB0aGVuIHRoZSBDPGVuY29kZT4gbWV0aG9kIHdpbGwgYWRkIGFuIGV4dHJhCm9wdGlvbmFsIHNwYWNlIGJlZm9yZSB0aGUgQzw6PiBzZXBhcmF0aW5nIGtleXMgZnJvbSB2YWx1ZXMgaW4gSlNPTiBvYmplY3RzLgoKSWYgQzwkZW5hYmxlPiBpcyBmYWxzZSwgdGhlbiB0aGUgQzxlbmNvZGU+IG1ldGhvZCB3aWxsIG5vdCBhZGQgYW55IGV4dHJhCnNwYWNlIGF0IHRob3NlIHBsYWNlcy4KClRoaXMgc2V0dGluZyBoYXMgbm8gZWZmZWN0IHdoZW4gZGVjb2RpbmcgSlNPTiB0ZXh0cy4KCkV4YW1wbGUsIHNwYWNlX2JlZm9yZSBlbmFibGVkLCBzcGFjZV9hZnRlciBhbmQgaW5kZW50IGRpc2FibGVkOgoKICAgeyJrZXkiIDoidmFsdWUifQoKCj1oZWFkMiBzcGFjZV9hZnRlcgoKICAgICRqc29uID0gJGpzb24tPnNwYWNlX2FmdGVyKFskZW5hYmxlXSkKICAgIAogICAgJGVuYWJsZWQgPSAkanNvbi0+Z2V0X3NwYWNlX2FmdGVyCgpJZiBDPCRlbmFibGU+IGlzIHRydWUgKG9yIG1pc3NpbmcpLCB0aGVuIHRoZSBDPGVuY29kZT4gbWV0aG9kIHdpbGwgYWRkIGFuIGV4dHJhCm9wdGlvbmFsIHNwYWNlIGFmdGVyIHRoZSBDPDo+IHNlcGFyYXRpbmcga2V5cyBmcm9tIHZhbHVlcyBpbiBKU09OIG9iamVjdHMKYW5kIGV4dHJhIHdoaXRlc3BhY2UgYWZ0ZXIgdGhlIEM8LD4gc2VwYXJhdGluZyBrZXktdmFsdWUgcGFpcnMgYW5kIGFycmF5Cm1lbWJlcnMuCgpJZiBDPCRlbmFibGU+IGlzIGZhbHNlLCB0aGVuIHRoZSBDPGVuY29kZT4gbWV0aG9kIHdpbGwgbm90IGFkZCBhbnkgZXh0cmEKc3BhY2UgYXQgdGhvc2UgcGxhY2VzLgoKVGhpcyBzZXR0aW5nIGhhcyBubyBlZmZlY3Qgd2hlbiBkZWNvZGluZyBKU09OIHRleHRzLgoKRXhhbXBsZSwgc3BhY2VfYmVmb3JlIGFuZCBpbmRlbnQgZGlzYWJsZWQsIHNwYWNlX2FmdGVyIGVuYWJsZWQ6CgogICB7ImtleSI6ICJ2YWx1ZSJ9CgoKPWhlYWQyIHJlbGF4ZWQKCiAgICAkanNvbiA9ICRqc29uLT5yZWxheGVkKFskZW5hYmxlXSkKICAgIAogICAgJGVuYWJsZWQgPSAkanNvbi0+Z2V0X3JlbGF4ZWQKCklmIEM8JGVuYWJsZT4gaXMgdHJ1ZSAob3IgbWlzc2luZyksIHRoZW4gQzxkZWNvZGU+IHdpbGwgYWNjZXB0IHNvbWUKZXh0ZW5zaW9ucyB0byBub3JtYWwgSlNPTiBzeW50YXggKHNlZSBiZWxvdykuIEM8ZW5jb2RlPiB3aWxsIG5vdCBiZQphZmZlY3RlZCBpbiBhbnl3YXkuIEk8QmUgYXdhcmUgdGhhdCB0aGlzIG9wdGlvbiBtYWtlcyB5b3UgYWNjZXB0IGludmFsaWQKSlNPTiB0ZXh0cyBhcyBpZiB0aGV5IHdlcmUgdmFsaWQhPi4gSSBzdWdnZXN0IG9ubHkgdG8gdXNlIHRoaXMgb3B0aW9uIHRvCnBhcnNlIGFwcGxpY2F0aW9uLXNwZWNpZmljIGZpbGVzIHdyaXR0ZW4gYnkgaHVtYW5zIChjb25maWd1cmF0aW9uIGZpbGVzLApyZXNvdXJjZSBmaWxlcyBldGMuKQoKSWYgQzwkZW5hYmxlPiBpcyBmYWxzZSAodGhlIGRlZmF1bHQpLCB0aGVuIEM8ZGVjb2RlPiB3aWxsIG9ubHkgYWNjZXB0CnZhbGlkIEpTT04gdGV4dHMuCgpDdXJyZW50bHkgYWNjZXB0ZWQgZXh0ZW5zaW9ucyBhcmU6Cgo9b3ZlciA0Cgo9aXRlbSAqIGxpc3QgaXRlbXMgY2FuIGhhdmUgYW4gZW5kLWNvbW1hCgpKU09OIEk8c2VwYXJhdGVzPiBhcnJheSBlbGVtZW50cyBhbmQga2V5LXZhbHVlIHBhaXJzIHdpdGggY29tbWFzLiBUaGlzCmNhbiBiZSBhbm5veWluZyBpZiB5b3Ugd3JpdGUgSlNPTiB0ZXh0cyBtYW51YWxseSBhbmQgd2FudCB0byBiZSBhYmxlIHRvCnF1aWNrbHkgYXBwZW5kIGVsZW1lbnRzLCBzbyB0aGlzIGV4dGVuc2lvbiBhY2NlcHRzIGNvbW1hIGF0IHRoZSBlbmQgb2YKc3VjaCBpdGVtcyBub3QganVzdCBiZXR3ZWVuIHRoZW06CgogICBbCiAgICAgIDEsCiAgICAgIDIsIDwtIHRoaXMgY29tbWEgbm90IG5vcm1hbGx5IGFsbG93ZWQKICAgXQogICB7CiAgICAgICJrMSI6ICJ2MSIsCiAgICAgICJrMiI6ICJ2MiIsIDwtIHRoaXMgY29tbWEgbm90IG5vcm1hbGx5IGFsbG93ZWQKICAgfQoKPWl0ZW0gKiBzaGVsbC1zdHlsZSAnIyctY29tbWVudHMKCldoZW5ldmVyIEpTT04gYWxsb3dzIHdoaXRlc3BhY2UsIHNoZWxsLXN0eWxlIGNvbW1lbnRzIGFyZSBhZGRpdGlvbmFsbHkKYWxsb3dlZC4gVGhleSBhcmUgdGVybWluYXRlZCBieSB0aGUgZmlyc3QgY2FycmlhZ2UtcmV0dXJuIG9yIGxpbmUtZmVlZApjaGFyYWN0ZXIsIGFmdGVyIHdoaWNoIG1vcmUgd2hpdGUtc3BhY2UgYW5kIGNvbW1lbnRzIGFyZSBhbGxvd2VkLgoKICBbCiAgICAgMSwgIyB0aGlzIGNvbW1lbnQgbm90IGFsbG93ZWQgaW4gSlNPTgogICAgICAgICMgbmVpdGhlciB0aGlzIG9uZS4uLgogIF0KCj1iYWNrCgoKPWhlYWQyIGNhbm9uaWNhbAoKICAgICRqc29uID0gJGpzb24tPmNhbm9uaWNhbChbJGVuYWJsZV0pCiAgICAKICAgICRlbmFibGVkID0gJGpzb24tPmdldF9jYW5vbmljYWwKCklmIEM8JGVuYWJsZT4gaXMgdHJ1ZSAob3IgbWlzc2luZyksIHRoZW4gdGhlIEM8ZW5jb2RlPiBtZXRob2Qgd2lsbCBvdXRwdXQgSlNPTiBvYmplY3RzCmJ5IHNvcnRpbmcgdGhlaXIga2V5cy4gVGhpcyBpcyBhZGRpbmcgYSBjb21wYXJhdGl2ZWx5IGhpZ2ggb3ZlcmhlYWQuCgpJZiBDPCRlbmFibGU+IGlzIGZhbHNlLCB0aGVuIHRoZSBDPGVuY29kZT4gbWV0aG9kIHdpbGwgb3V0cHV0IGtleS12YWx1ZQpwYWlycyBpbiB0aGUgb3JkZXIgUGVybCBzdG9yZXMgdGhlbSAod2hpY2ggd2lsbCBsaWtlbHkgY2hhbmdlIGJldHdlZW4gcnVucwpvZiB0aGUgc2FtZSBzY3JpcHQpLgoKVGhpcyBvcHRpb24gaXMgdXNlZnVsIGlmIHlvdSB3YW50IHRoZSBzYW1lIGRhdGEgc3RydWN0dXJlIHRvIGJlIGVuY29kZWQgYXMKdGhlIHNhbWUgSlNPTiB0ZXh0IChnaXZlbiB0aGUgc2FtZSBvdmVyYWxsIHNldHRpbmdzKS4gSWYgaXQgaXMgZGlzYWJsZWQsCnRoZSBzYW1lIGhhc2ggbWlnaHQgYmUgZW5jb2RlZCBkaWZmZXJlbnRseSBldmVuIGlmIGNvbnRhaW5zIHRoZSBzYW1lIGRhdGEsCmFzIGtleS12YWx1ZSBwYWlycyBoYXZlIG5vIGluaGVyZW50IG9yZGVyaW5nIGluIFBlcmwuCgpUaGlzIHNldHRpbmcgaGFzIG5vIGVmZmVjdCB3aGVuIGRlY29kaW5nIEpTT04gdGV4dHMuCgo9aGVhZDIgYWxsb3dfbm9ucmVmCgogICAgJGpzb24gPSAkanNvbi0+YWxsb3dfbm9ucmVmKFskZW5hYmxlXSkKICAgIAogICAgJGVuYWJsZWQgPSAkanNvbi0+Z2V0X2FsbG93X25vbnJlZgoKSWYgQzwkZW5hYmxlPiBpcyB0cnVlIChvciBtaXNzaW5nKSwgdGhlbiB0aGUgQzxlbmNvZGU+IG1ldGhvZCBjYW4gY29udmVydCBhCm5vbi1yZWZlcmVuY2UgaW50byBpdHMgY29ycmVzcG9uZGluZyBzdHJpbmcsIG51bWJlciBvciBudWxsIEpTT04gdmFsdWUsCndoaWNoIGlzIGFuIGV4dGVuc2lvbiB0byBSRkM0NjI3LiBMaWtld2lzZSwgQzxkZWNvZGU+IHdpbGwgYWNjZXB0IHRob3NlIEpTT04KdmFsdWVzIGluc3RlYWQgb2YgY3JvYWtpbmcuCgpJZiBDPCRlbmFibGU+IGlzIGZhbHNlLCB0aGVuIHRoZSBDPGVuY29kZT4gbWV0aG9kIHdpbGwgY3JvYWsgaWYgaXQgaXNuJ3QKcGFzc2VkIGFuIGFycmF5cmVmIG9yIGhhc2hyZWYsIGFzIEpTT04gdGV4dHMgbXVzdCBlaXRoZXIgYmUgYW4gb2JqZWN0Cm9yIGFycmF5LiBMaWtld2lzZSwgQzxkZWNvZGU+IHdpbGwgY3JvYWsgaWYgZ2l2ZW4gc29tZXRoaW5nIHRoYXQgaXMgbm90IGEKSlNPTiBvYmplY3Qgb3IgYXJyYXkuCgogICBKU09OLT5uZXctPmFsbG93X25vbnJlZi0+ZW5jb2RlICgiSGVsbG8sIFdvcmxkISIpCiAgID0+ICJIZWxsbywgV29ybGQhIgoKPWhlYWQyIGFsbG93X3Vua25vd24KCiAgICAkanNvbiA9ICRqc29uLT5hbGxvd191bmtub3duIChbJGVuYWJsZV0pCiAgICAKICAgICRlbmFibGVkID0gJGpzb24tPmdldF9hbGxvd191bmtub3duCgpJZiAkZW5hYmxlIGlzIHRydWUgKG9yIG1pc3NpbmcpLCB0aGVuICJlbmNvZGUiIHdpbGwgKm5vdCogdGhyb3cgYW4KZXhjZXB0aW9uIHdoZW4gaXQgZW5jb3VudGVycyB2YWx1ZXMgaXQgY2Fubm90IHJlcHJlc2VudCBpbiBKU09OIChmb3IKZXhhbXBsZSwgZmlsZWhhbmRsZXMpIGJ1dCBpbnN0ZWFkIHdpbGwgZW5jb2RlIGEgSlNPTiAibnVsbCIgdmFsdWUuCk5vdGUgdGhhdCBibGVzc2VkIG9iamVjdHMgYXJlIG5vdCBpbmNsdWRlZCBoZXJlIGFuZCBhcmUgaGFuZGxlZApzZXBhcmF0ZWx5IGJ5IGM8YWxsb3dfbm9ucmVmPi4KCklmICRlbmFibGUgaXMgZmFsc2UgKHRoZSBkZWZhdWx0KSwgdGhlbiAiZW5jb2RlIiB3aWxsIHRocm93IGFuCmV4Y2VwdGlvbiB3aGVuIGl0IGVuY291bnRlcnMgYW55dGhpbmcgaXQgY2Fubm90IGVuY29kZSBhcyBKU09OLgoKVGhpcyBvcHRpb24gZG9lcyBub3QgYWZmZWN0ICJkZWNvZGUiIGluIGFueSB3YXksIGFuZCBpdCBpcwpyZWNvbW1lbmRlZCB0byBsZWF2ZSBpdCBvZmYgdW5sZXNzIHlvdSBrbm93IHlvdXIgY29tbXVuaWNhdGlvbnMKcGFydG5lci4KCj1oZWFkMiBhbGxvd19ibGVzc2VkCgogICAgJGpzb24gPSAkanNvbi0+YWxsb3dfYmxlc3NlZChbJGVuYWJsZV0pCiAgICAKICAgICRlbmFibGVkID0gJGpzb24tPmdldF9hbGxvd19ibGVzc2VkCgpJZiBDPCRlbmFibGU+IGlzIHRydWUgKG9yIG1pc3NpbmcpLCB0aGVuIHRoZSBDPGVuY29kZT4gbWV0aG9kIHdpbGwgbm90CmJhcmYgd2hlbiBpdCBlbmNvdW50ZXJzIGEgYmxlc3NlZCByZWZlcmVuY2UuIEluc3RlYWQsIHRoZSB2YWx1ZSBvZiB0aGUKQjxjb252ZXJ0X2JsZXNzZWQ+IG9wdGlvbiB3aWxsIGRlY2lkZSB3aGV0aGVyIEM8bnVsbD4gKEM8Y29udmVydF9ibGVzc2VkPgpkaXNhYmxlZCBvciBubyBDPFRPX0pTT04+IG1ldGhvZCBmb3VuZCkgb3IgYSByZXByZXNlbnRhdGlvbiBvZiB0aGUKb2JqZWN0IChDPGNvbnZlcnRfYmxlc3NlZD4gZW5hYmxlZCBhbmQgQzxUT19KU09OPiBtZXRob2QgZm91bmQpIGlzIGJlaW5nCmVuY29kZWQuIEhhcyBubyBlZmZlY3Qgb24gQzxkZWNvZGU+LgoKSWYgQzwkZW5hYmxlPiBpcyBmYWxzZSAodGhlIGRlZmF1bHQpLCB0aGVuIEM8ZW5jb2RlPiB3aWxsIHRocm93IGFuCmV4Y2VwdGlvbiB3aGVuIGl0IGVuY291bnRlcnMgYSBibGVzc2VkIG9iamVjdC4KCgo9aGVhZDIgY29udmVydF9ibGVzc2VkCgogICAgJGpzb24gPSAkanNvbi0+Y29udmVydF9ibGVzc2VkKFskZW5hYmxlXSkKICAgIAogICAgJGVuYWJsZWQgPSAkanNvbi0+Z2V0X2NvbnZlcnRfYmxlc3NlZAoKSWYgQzwkZW5hYmxlPiBpcyB0cnVlIChvciBtaXNzaW5nKSwgdGhlbiBDPGVuY29kZT4sIHVwb24gZW5jb3VudGVyaW5nIGEKYmxlc3NlZCBvYmplY3QsIHdpbGwgY2hlY2sgZm9yIHRoZSBhdmFpbGFiaWxpdHkgb2YgdGhlIEM8VE9fSlNPTj4gbWV0aG9kCm9uIHRoZSBvYmplY3QncyBjbGFzcy4gSWYgZm91bmQsIGl0IHdpbGwgYmUgY2FsbGVkIGluIHNjYWxhciBjb250ZXh0CmFuZCB0aGUgcmVzdWx0aW5nIHNjYWxhciB3aWxsIGJlIGVuY29kZWQgaW5zdGVhZCBvZiB0aGUgb2JqZWN0LiBJZiBubwpDPFRPX0pTT04+IG1ldGhvZCBpcyBmb3VuZCwgdGhlIHZhbHVlIG9mIEM8YWxsb3dfYmxlc3NlZD4gd2lsbCBkZWNpZGUgd2hhdAp0byBkby4KClRoZSBDPFRPX0pTT04+IG1ldGhvZCBtYXkgc2FmZWx5IGNhbGwgZGllIGlmIGl0IHdhbnRzLiBJZiBDPFRPX0pTT04+CnJldHVybnMgb3RoZXIgYmxlc3NlZCBvYmplY3RzLCB0aG9zZSB3aWxsIGJlIGhhbmRsZWQgaW4gdGhlIHNhbWUKd2F5LiBDPFRPX0pTT04+IG11c3QgdGFrZSBjYXJlIG9mIG5vdCBjYXVzaW5nIGFuIGVuZGxlc3MgcmVjdXJzaW9uIGN5Y2xlCig9PSBjcmFzaCkgaW4gdGhpcyBjYXNlLiBUaGUgbmFtZSBvZiBDPFRPX0pTT04+IHdhcyBjaG9zZW4gYmVjYXVzZSBvdGhlcgptZXRob2RzIGNhbGxlZCBieSB0aGUgUGVybCBjb3JlICg9PSBub3QgYnkgdGhlIHVzZXIgb2YgdGhlIG9iamVjdCkgYXJlCnVzdWFsbHkgaW4gdXBwZXIgY2FzZSBsZXR0ZXJzIGFuZCB0byBhdm9pZCBjb2xsaXNpb25zIHdpdGggdGhlIEM8dG9fanNvbj4KZnVuY3Rpb24gb3IgbWV0aG9kLgoKVGhpcyBzZXR0aW5nIGRvZXMgbm90IHlldCBpbmZsdWVuY2UgQzxkZWNvZGU+IGluIGFueSB3YXkuCgpJZiBDPCRlbmFibGU+IGlzIGZhbHNlLCB0aGVuIHRoZSBDPGFsbG93X2JsZXNzZWQ+IHNldHRpbmcgd2lsbCBkZWNpZGUgd2hhdAp0byBkbyB3aGVuIGEgYmxlc3NlZCBvYmplY3QgaXMgZm91bmQuCgo9b3ZlcgoKPWl0ZW0gY29udmVydF9ibGVzc2VkX3VuaXZlcnNhbGx5IG1vZGUKCklmIHVzZSBDPEpTT04+IHdpdGggQzwtY29udmVydF9ibGVzc2VkX3VuaXZlcnNhbGx5PiwgdGhlIEM8VU5JVkVSU0FMOjpUT19KU09OPgpzdWJyb3V0aW5lIGlzIGRlZmluZWQgYXMgdGhlIGJlbG93IGNvZGU6CgogICAqVU5JVkVSU0FMOjpUT19KU09OID0gc3ViIHsKICAgICAgIG15ICRiX29iaiA9IEI6OnN2cmVmXzJvYmplY3QoICRfWzBdICk7CiAgICAgICByZXR1cm4gICAgJGJfb2JqLT5pc2EoJ0I6OkhWJykgPyB7ICV7ICRfWzBdIH0gfQogICAgICAgICAgICAgICA6ICRiX29iai0+aXNhKCdCOjpBVicpID8gWyBAeyAkX1swXSB9IF0KICAgICAgICAgICAgICAgOiB1bmRlZgogICAgICAgICAgICAgICA7CiAgIH0KClRoaXMgd2lsbCBjYXVzZSB0aGF0IEM8ZW5jb2RlPiBtZXRob2QgY29udmVydHMgc2ltcGxlIGJsZXNzZWQgb2JqZWN0cyBpbnRvCkpTT04gb2JqZWN0cyBhcyBub24tYmxlc3NlZCBvYmplY3QuCgogICBKU09OIC1jb252ZXJ0X2JsZXNzZWRfdW5pdmVyc2FsbHk7CiAgICRqc29uLT5hbGxvd19ibGVzc2VkLT5jb252ZXJ0X2JsZXNzZWQtPmVuY29kZSggJGJsZXNzZWRfb2JqZWN0ICkKClRoaXMgZmVhdHVyZSBpcyBleHBlcmltZW50YWwgYW5kIG1heSBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuCgo9YmFjawoKPWhlYWQyIGZpbHRlcl9qc29uX29iamVjdAoKICAgICRqc29uID0gJGpzb24tPmZpbHRlcl9qc29uX29iamVjdChbJGNvZGVyZWZdKQoKV2hlbiBDPCRjb2RlcmVmPiBpcyBzcGVjaWZpZWQsIGl0IHdpbGwgYmUgY2FsbGVkIGZyb20gQzxkZWNvZGU+IGVhY2gKdGltZSBpdCBkZWNvZGVzIGEgSlNPTiBvYmplY3QuIFRoZSBvbmx5IGFyZ3VtZW50IHBhc3NlZCB0byB0aGUgY29kZXJlZgppcyBhIHJlZmVyZW5jZSB0byB0aGUgbmV3bHktY3JlYXRlZCBoYXNoLiBJZiB0aGUgY29kZSByZWZlcmVuY2VzIHJldHVybnMKYSBzaW5nbGUgc2NhbGFyICh3aGljaCBuZWVkIG5vdCBiZSBhIHJlZmVyZW5jZSksIHRoaXMgdmFsdWUKKGkuZS4gYSBjb3B5IG9mIHRoYXQgc2NhbGFyIHRvIGF2b2lkIGFsaWFzaW5nKSBpcyBpbnNlcnRlZCBpbnRvIHRoZQpkZXNlcmlhbGlzZWQgZGF0YSBzdHJ1Y3R1cmUuIElmIGl0IHJldHVybnMgYW4gZW1wdHkgbGlzdAooTk9URTogSTxub3Q+IEM8dW5kZWY+LCB3aGljaCBpcyBhIHZhbGlkIHNjYWxhciksIHRoZSBvcmlnaW5hbCBkZXNlcmlhbGlzZWQKaGFzaCB3aWxsIGJlIGluc2VydGVkLiBUaGlzIHNldHRpbmcgY2FuIHNsb3cgZG93biBkZWNvZGluZyBjb25zaWRlcmFibHkuCgpXaGVuIEM8JGNvZGVyZWY+IGlzIG9taXR0ZWQgb3IgdW5kZWZpbmVkLCBhbnkgZXhpc3RpbmcgY2FsbGJhY2sgd2lsbApiZSByZW1vdmVkIGFuZCBDPGRlY29kZT4gd2lsbCBub3QgY2hhbmdlIHRoZSBkZXNlcmlhbGlzZWQgaGFzaCBpbiBhbnkKd2F5LgoKRXhhbXBsZSwgY29udmVydCBhbGwgSlNPTiBvYmplY3RzIGludG8gdGhlIGludGVnZXIgNToKCiAgIG15ICRqcyA9IEpTT04tPm5ldy0+ZmlsdGVyX2pzb25fb2JqZWN0IChzdWIgeyA1IH0pOwogICAjIHJldHVybnMgWzVdCiAgICRqcy0+ZGVjb2RlICgnW3t9XScpOyAjIHRoZSBnaXZlbiBzdWJyb3V0aW5lIHRha2VzIGEgaGFzaCByZWZlcmVuY2UuCiAgICMgdGhyb3cgYW4gZXhjZXB0aW9uIGJlY2F1c2UgYWxsb3dfbm9ucmVmIGlzIG5vdCBlbmFibGVkCiAgICMgc28gYSBsb25lIDUgaXMgbm90IGFsbG93ZWQuCiAgICRqcy0+ZGVjb2RlICgneyJhIjoxLCAiYiI6Mn0nKTsKCgo9aGVhZDIgZmlsdGVyX2pzb25fc2luZ2xlX2tleV9vYmplY3QKCiAgICAkanNvbiA9ICRqc29uLT5maWx0ZXJfanNvbl9zaW5nbGVfa2V5X29iamVjdCgka2V5IFs9PiAkY29kZXJlZl0pCgpXb3JrcyByZW1vdGVseSBzaW1pbGFyIHRvIEM8ZmlsdGVyX2pzb25fb2JqZWN0PiwgYnV0IGlzIG9ubHkgY2FsbGVkIGZvcgpKU09OIG9iamVjdHMgaGF2aW5nIGEgc2luZ2xlIGtleSBuYW1lZCBDPCRrZXk+LgoKVGhpcyBDPCRjb2RlcmVmPiBpcyBjYWxsZWQgYmVmb3JlIHRoZSBvbmUgc3BlY2lmaWVkIHZpYQpDPGZpbHRlcl9qc29uX29iamVjdD4sIGlmIGFueS4gSXQgZ2V0cyBwYXNzZWQgdGhlIHNpbmdsZSB2YWx1ZSBpbiB0aGUgSlNPTgpvYmplY3QuIElmIGl0IHJldHVybnMgYSBzaW5nbGUgdmFsdWUsIGl0IHdpbGwgYmUgaW5zZXJ0ZWQgaW50byB0aGUgZGF0YQpzdHJ1Y3R1cmUuIElmIGl0IHJldHVybnMgbm90aGluZyAobm90IGV2ZW4gQzx1bmRlZj4gYnV0IHRoZSBlbXB0eSBsaXN0KSwKdGhlIGNhbGxiYWNrIGZyb20gQzxmaWx0ZXJfanNvbl9vYmplY3Q+IHdpbGwgYmUgY2FsbGVkIG5leHQsIGFzIGlmIG5vCnNpbmdsZS1rZXkgY2FsbGJhY2sgd2VyZSBzcGVjaWZpZWQuCgpJZiBDPCRjb2RlcmVmPiBpcyBvbWl0dGVkIG9yIHVuZGVmaW5lZCwgdGhlIGNvcnJlc3BvbmRpbmcgY2FsbGJhY2sgd2lsbCBiZQpkaXNhYmxlZC4gVGhlcmUgY2FuIG9ubHkgZXZlciBiZSBvbmUgY2FsbGJhY2sgZm9yIGEgZ2l2ZW4ga2V5LgoKQXMgdGhpcyBjYWxsYmFjayBnZXRzIGNhbGxlZCBsZXNzIG9mdGVuIHRoZW4gdGhlIEM8ZmlsdGVyX2pzb25fb2JqZWN0PgpvbmUsIGRlY29kaW5nIHNwZWVkIHdpbGwgbm90IHVzdWFsbHkgc3VmZmVyIGFzIG11Y2guIFRoZXJlZm9yZSwgc2luZ2xlLWtleQpvYmplY3RzIG1ha2UgZXhjZWxsZW50IHRhcmdldHMgdG8gc2VyaWFsaXNlIFBlcmwgb2JqZWN0cyBpbnRvLCBlc3BlY2lhbGx5CmFzIHNpbmdsZS1rZXkgSlNPTiBvYmplY3RzIGFyZSBhcyBjbG9zZSB0byB0aGUgdHlwZS10YWdnZWQgdmFsdWUgY29uY2VwdAphcyBKU09OIGdldHMgKGl0J3MgYmFzaWNhbGx5IGFuIElEL1ZBTFVFIHR1cGxlKS4gT2YgY291cnNlLCBKU09OIGRvZXMgbm90CnN1cHBvcnQgdGhpcyBpbiBhbnkgd2F5LCBzbyB5b3UgbmVlZCB0byBtYWtlIHN1cmUgeW91ciBkYXRhIG5ldmVyIGxvb2tzCmxpa2UgYSBzZXJpYWxpc2VkIFBlcmwgaGFzaC4KClR5cGljYWwgbmFtZXMgZm9yIHRoZSBzaW5nbGUgb2JqZWN0IGtleSBhcmUgQzxfX2NsYXNzX3doYXRldmVyX18+LCBvcgpDPCRfX2RvbGxhcnNfYXJlX3JhcmVseV91c2VkX18kPiBvciBDPH11Z2x5X2JyYWNlX3BsYWNlbWVudD4sIG9yIGV2ZW4KdGhpbmdzIGxpa2UgQzxfX2NsYXNzX21kNXN1bShjbGFzc25hbWUpX18+LCB0byByZWR1Y2UgdGhlIHJpc2sgb2YgY2xhc2hpbmcKd2l0aCByZWFsIGhhc2hlcy4KCkV4YW1wbGUsIGRlY29kZSBKU09OIG9iamVjdHMgb2YgdGhlIGZvcm0gQzw8IHsgIl9fd2lkZ2V0X18iID0+IDxpZD4gfSA+PgppbnRvIHRoZSBjb3JyZXNwb25kaW5nIEM8PCAkV0lER0VUezxpZD59ID4+IG9iamVjdDoKCiAgICMgcmV0dXJuIHdoYXRldmVyIGlzIGluICRXSURHRVR7NX06CiAgIEpTT04KICAgICAgLT5uZXcKICAgICAgLT5maWx0ZXJfanNvbl9zaW5nbGVfa2V5X29iamVjdCAoX193aWRnZXRfXyA9PiBzdWIgewogICAgICAgICAgICAkV0lER0VUeyAkX1swXSB9CiAgICAgICAgIH0pCiAgICAgIC0+ZGVjb2RlICgneyJfX3dpZGdldF9fIjogNScpCgogICAjIHRoaXMgY2FuIGJlIHVzZWQgd2l0aCBhIFRPX0pTT04gbWV0aG9kIGluIHNvbWUgIndpZGdldCIgY2xhc3MKICAgIyBmb3Igc2VyaWFsaXNhdGlvbiB0byBqc29uOgogICBzdWIgV2lkZ2V0QmFzZTo6VE9fSlNPTiB7CiAgICAgIG15ICgkc2VsZikgPSBAXzsKCiAgICAgIHVubGVzcyAoJHNlbGYtPntpZH0pIHsKICAgICAgICAgJHNlbGYtPntpZH0gPSAuLmdldC4uc29tZS4uaWQuLjsKICAgICAgICAgJFdJREdFVHskc2VsZi0+e2lkfX0gPSAkc2VsZjsKICAgICAgfQoKICAgICAgeyBfX3dpZGdldF9fID0+ICRzZWxmLT57aWR9IH0KICAgfQoKCj1oZWFkMiBzaHJpbmsKCiAgICAkanNvbiA9ICRqc29uLT5zaHJpbmsoWyRlbmFibGVdKQogICAgCiAgICAkZW5hYmxlZCA9ICRqc29uLT5nZXRfc2hyaW5rCgpXaXRoIEpTT046OlhTLCB0aGlzIGZsYWcgcmVzaXplcyBzdHJpbmdzIGdlbmVyYXRlZCBieSBlaXRoZXIKQzxlbmNvZGU+IG9yIEM8ZGVjb2RlPiB0byB0aGVpciBtaW5pbXVtIHNpemUgcG9zc2libGUuIFRoaXMgY2FuIHNhdmUKbWVtb3J5IHdoZW4geW91ciBKU09OIHRleHRzIGFyZSBlaXRoZXIgdmVyeSB2ZXJ5IGxvbmcgb3IgeW91IGhhdmUgbWFueQpzaG9ydCBzdHJpbmdzLiBJdCB3aWxsIGFsc28gdHJ5IHRvIGRvd25ncmFkZSBhbnkgc3RyaW5ncyB0byBvY3RldC1mb3JtCmlmIHBvc3NpYmxlOiBwZXJsIHN0b3JlcyBzdHJpbmdzIGludGVybmFsbHkgZWl0aGVyIGluIGFuIGVuY29kaW5nIGNhbGxlZApVVEYtWCBvciBpbiBvY3RldC1mb3JtLiBUaGUgbGF0dGVyIGNhbm5vdCBzdG9yZSBldmVyeXRoaW5nIGJ1dCB1c2VzIGxlc3MKc3BhY2UgaW4gZ2VuZXJhbCAoYW5kIHNvbWUgYnVnZ3kgUGVybCBvciBDIGNvZGUgbWlnaHQgZXZlbiByZWx5IG9uIHRoYXQKaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gYmVpbmcgdXNlZCkuCgpXaXRoIEpTT046OlBQLCBpdCBpcyBub29wIGFib3V0IHJlc2l6aW5nIHN0cmluZ3MgYnV0IHRyaWVzCkM8dXRmODo6ZG93bmdyYWRlPiB0byB0aGUgcmV0dXJuZWQgc3RyaW5nIGJ5IEM8ZW5jb2RlPi4gU2VlIHRvIEw8dXRmOD4uCgpTZWUgdG8gTDxKU09OOjpYUy9PQkpFQ1QtT1JJRU5URUQgSU5URVJGQUNFPiBhbmQgTDxKU09OOjpQUC9NRVRIT0RTPi4KCj1oZWFkMiBtYXhfZGVwdGgKCiAgICAkanNvbiA9ICRqc29uLT5tYXhfZGVwdGgoWyRtYXhpbXVtX25lc3RpbmdfZGVwdGhdKQogICAgCiAgICAkbWF4X2RlcHRoID0gJGpzb24tPmdldF9tYXhfZGVwdGgKClNldHMgdGhlIG1heGltdW0gbmVzdGluZyBsZXZlbCAoZGVmYXVsdCBDPDUxMj4pIGFjY2VwdGVkIHdoaWxlIGVuY29kaW5nCm9yIGRlY29kaW5nLiBJZiBhIGhpZ2hlciBuZXN0aW5nIGxldmVsIGlzIGRldGVjdGVkIGluIEpTT04gdGV4dCBvciBhIFBlcmwKZGF0YSBzdHJ1Y3R1cmUsIHRoZW4gdGhlIGVuY29kZXIgYW5kIGRlY29kZXIgd2lsbCBzdG9wIGFuZCBjcm9hayBhdCB0aGF0CnBvaW50LgoKTmVzdGluZyBsZXZlbCBpcyBkZWZpbmVkIGJ5IG51bWJlciBvZiBoYXNoLSBvciBhcnJheXJlZnMgdGhhdCB0aGUgZW5jb2RlcgpuZWVkcyB0byB0cmF2ZXJzZSB0byByZWFjaCBhIGdpdmVuIHBvaW50IG9yIHRoZSBudW1iZXIgb2YgQzx7PiBvciBDPFs+CmNoYXJhY3RlcnMgd2l0aG91dCB0aGVpciBtYXRjaGluZyBjbG9zaW5nIHBhcmVudGhlc2lzIGNyb3NzZWQgdG8gcmVhY2ggYQpnaXZlbiBjaGFyYWN0ZXIgaW4gYSBzdHJpbmcuCgpJZiBubyBhcmd1bWVudCBpcyBnaXZlbiwgdGhlIGhpZ2hlc3QgcG9zc2libGUgc2V0dGluZyB3aWxsIGJlIHVzZWQsIHdoaWNoCmlzIHJhcmVseSB1c2VmdWwuCgpOb3RlIHRoYXQgbmVzdGluZyBpcyBpbXBsZW1lbnRlZCBieSByZWN1cnNpb24gaW4gQy4gVGhlIGRlZmF1bHQgdmFsdWUgaGFzCmJlZW4gY2hvc2VuIHRvIGJlIGFzIGxhcmdlIGFzIHR5cGljYWwgb3BlcmF0aW5nIHN5c3RlbXMgYWxsb3cgd2l0aG91dApjcmFzaGluZy4gKEpTT046OlhTKQoKV2l0aCBKU09OOjpQUCBhcyB0aGUgYmFja2VuZCwgd2hlbiBhIGxhcmdlIHZhbHVlICgxMDAgb3IgbW9yZSkgd2FzIHNldCBhbmQKaXQgZGUvZW5jb2RlcyBhIGRlZXAgbmVzdGVkIG9iamVjdC90ZXh0LCBpdCBtYXkgcmFpc2UgYSB3YXJuaW5nCidEZWVwIHJlY3Vyc2lvbiBvbiBzdWJyb3V0aW4nIGF0IHRoZSBwZXJsIHJ1bnRpbWUgcGhhc2UuCgpTZWUgTDxKU09OOjpYUy9TRUNVUklUWSBDT05TSURFUkFUSU9OUz4gZm9yIG1vcmUgaW5mbyBvbiB3aHkgdGhpcyBpcyB1c2VmdWwuCgo9aGVhZDIgbWF4X3NpemUKCiAgICAkanNvbiA9ICRqc29uLT5tYXhfc2l6ZShbJG1heGltdW1fc3RyaW5nX3NpemVdKQogICAgCiAgICAkbWF4X3NpemUgPSAkanNvbi0+Z2V0X21heF9zaXplCgpTZXQgdGhlIG1heGltdW0gbGVuZ3RoIGEgSlNPTiB0ZXh0IG1heSBoYXZlIChpbiBieXRlcykgd2hlcmUgZGVjb2RpbmcgaXMKYmVpbmcgYXR0ZW1wdGVkLiBUaGUgZGVmYXVsdCBpcyBDPDA+LCBtZWFuaW5nIG5vIGxpbWl0LiBXaGVuIEM8ZGVjb2RlPgppcyBjYWxsZWQgb24gYSBzdHJpbmcgdGhhdCBpcyBsb25nZXIgdGhlbiB0aGlzIG1hbnkgYnl0ZXMsIGl0IHdpbGwgbm90CmF0dGVtcHQgdG8gZGVjb2RlIHRoZSBzdHJpbmcgYnV0IHRocm93IGFuIGV4Y2VwdGlvbi4gVGhpcyBzZXR0aW5nIGhhcyBubwplZmZlY3Qgb24gQzxlbmNvZGU+ICh5ZXQpLgoKSWYgbm8gYXJndW1lbnQgaXMgZ2l2ZW4sIHRoZSBsaW1pdCBjaGVjayB3aWxsIGJlIGRlYWN0aXZhdGVkIChzYW1lIGFzIHdoZW4KQzwwPiBpcyBzcGVjaWZpZWQpLgoKU2VlIEw8SlNPTjo6WFMvU0VDVVJJVFkgQ09OU0lERVJBVElPTlM+LCBiZWxvdywgZm9yIG1vcmUgaW5mbyBvbiB3aHkgdGhpcyBpcyB1c2VmdWwuCgo9aGVhZDIgZW5jb2RlCgogICAgJGpzb25fdGV4dCA9ICRqc29uLT5lbmNvZGUoJHBlcmxfc2NhbGFyKQoKQ29udmVydHMgdGhlIGdpdmVuIFBlcmwgZGF0YSBzdHJ1Y3R1cmUgKGEgc2ltcGxlIHNjYWxhciBvciBhIHJlZmVyZW5jZQp0byBhIGhhc2ggb3IgYXJyYXkpIHRvIGl0cyBKU09OIHJlcHJlc2VudGF0aW9uLiBTaW1wbGUgc2NhbGFycyB3aWxsIGJlCmNvbnZlcnRlZCBpbnRvIEpTT04gc3RyaW5nIG9yIG51bWJlciBzZXF1ZW5jZXMsIHdoaWxlIHJlZmVyZW5jZXMgdG8gYXJyYXlzCmJlY29tZSBKU09OIGFycmF5cyBhbmQgcmVmZXJlbmNlcyB0byBoYXNoZXMgYmVjb21lIEpTT04gb2JqZWN0cy4gVW5kZWZpbmVkClBlcmwgdmFsdWVzIChlLmcuIEM8dW5kZWY+KSBiZWNvbWUgSlNPTiBDPG51bGw+IHZhbHVlcy4KUmVmZXJlbmNlcyB0byB0aGUgaW50ZWdlcnMgQzwwPiBhbmQgQzwxPiBhcmUgY29udmVydGVkIGludG8gQzx0cnVlPiBhbmQgQzxmYWxzZT4uCgo9aGVhZDIgZGVjb2RlCgogICAgJHBlcmxfc2NhbGFyID0gJGpzb24tPmRlY29kZSgkanNvbl90ZXh0KQoKVGhlIG9wcG9zaXRlIG9mIEM8ZW5jb2RlPjogZXhwZWN0cyBhIEpTT04gdGV4dCBhbmQgdHJpZXMgdG8gcGFyc2UgaXQsCnJldHVybmluZyB0aGUgcmVzdWx0aW5nIHNpbXBsZSBzY2FsYXIgb3IgcmVmZXJlbmNlLiBDcm9ha3Mgb24gZXJyb3IuCgpKU09OIG51bWJlcnMgYW5kIHN0cmluZ3MgYmVjb21lIHNpbXBsZSBQZXJsIHNjYWxhcnMuIEpTT04gYXJyYXlzIGJlY29tZQpQZXJsIGFycmF5cmVmcyBhbmQgSlNPTiBvYmplY3RzIGJlY29tZSBQZXJsIGhhc2hyZWZzLiBDPHRydWU+IGJlY29tZXMKQzwxPiAoQzxKU09OOjp0cnVlPiksIEM8ZmFsc2U+IGJlY29tZXMgQzwwPiAoQzxKU09OOjpmYWxzZT4pIGFuZApDPG51bGw+IGJlY29tZXMgQzx1bmRlZj4uCgo9aGVhZDIgZGVjb2RlX3ByZWZpeAoKICAgICgkcGVybF9zY2FsYXIsICRjaGFyYWN0ZXJzKSA9ICRqc29uLT5kZWNvZGVfcHJlZml4KCRqc29uX3RleHQpCgpUaGlzIHdvcmtzIGxpa2UgdGhlIEM8ZGVjb2RlPiBtZXRob2QsIGJ1dCBpbnN0ZWFkIG9mIHJhaXNpbmcgYW4gZXhjZXB0aW9uCndoZW4gdGhlcmUgaXMgdHJhaWxpbmcgZ2FyYmFnZSBhZnRlciB0aGUgZmlyc3QgSlNPTiBvYmplY3QsIGl0IHdpbGwKc2lsZW50bHkgc3RvcCBwYXJzaW5nIHRoZXJlIGFuZCByZXR1cm4gdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGNvbnN1bWVkCnNvIGZhci4KCiAgIEpTT04tPm5ldy0+ZGVjb2RlX3ByZWZpeCAoIlsxXSB0aGUgdGFpbCIpCiAgID0+IChbXSwgMykKClNlZSB0byBMPEpTT046OlhTL09CSkVDVC1PUklFTlRFRCBJTlRFUkZBQ0U+Cgo9aGVhZDIgcHJvcGVydHkKCiAgICAkYm9vbGVhbiA9ICRqc29uLT5wcm9wZXJ0eSgkcHJvcGVydHlfbmFtZSkKClJldHVybnMgYSBib29sZWFuIHZhbHVlIGFib3V0IGFib3ZlIHNvbWUgcHJvcGVydGllcy4KClRoZSBhdmFpbGFibGUgcHJvcGVydGllcyBhcmUgQzxhc2NpaT4sIEM8bGF0aW4xPiwgQzx1dGY4PiwKQzxpbmRlbnQ+LEM8c3BhY2VfYmVmb3JlPiwgQzxzcGFjZV9hZnRlcj4sIEM8cmVsYXhlZD4sIEM8Y2Fub25pY2FsPiwKQzxhbGxvd19ub25yZWY+LCBDPGFsbG93X3Vua25vd24+LCBDPGFsbG93X2JsZXNzZWQ+LCBDPGNvbnZlcnRfYmxlc3NlZD4sCkM8c2hyaW5rPiwgQzxtYXhfZGVwdGg+IGFuZCBDPG1heF9zaXplPi4KCiAgICRib29sZWFuID0gJGpzb24tPnByb3BlcnR5KCd1dGY4Jyk7CiAgICA9PiAwCiAgICRqc29uLT51dGY4OwogICAkYm9vbGVhbiA9ICRqc29uLT5wcm9wZXJ0eSgndXRmOCcpOwogICAgPT4gMQoKU2V0cyB0aGUgcHJvcGVydHkgd2l0aCBhIGdpdmVuIGJvb2xlYW4gdmFsdWUuCgogICAgJGpzb24gPSAkanNvbi0+cHJvcGVydHkoJHByb3BlcnR5X25hbWUgPT4gJGJvb2xlYW4pOwoKV2l0aCBubyBhcmd1bW50LCBpdCByZXR1cm5zIGFsbCB0aGUgYWJvdmUgcHJvcGVydGllcyBhcyBhIGhhc2ggcmVmZXJlbmNlLgoKICAgICRmbGFnX2hhc2hyZWYgPSAkanNvbi0+cHJvcGVydHkoKTsKCj1oZWFkMSBJTkNSRU1FTlRBTCBQQVJTSU5HCgpNb3N0IG9mIHRoaXMgc2VjdGlvbiBhcmUgY29waWVkIGFuZCBtb2RpZmllZCBmcm9tIEw8SlNPTjo6WFMvSU5DUkVNRU5UQUwgUEFSU0lORz4uCgpJbiBzb21lIGNhc2VzLCB0aGVyZSBpcyB0aGUgbmVlZCBmb3IgaW5jcmVtZW50YWwgcGFyc2luZyBvZiBKU09OIHRleHRzLgpUaGlzIG1vZHVsZSBkb2VzIGFsbG93IHlvdSB0byBwYXJzZSBhIEpTT04gc3RyZWFtIGluY3JlbWVudGFsbHkuCkl0IGRvZXMgc28gYnkgYWNjdW11bGF0aW5nIHRleHQgdW50aWwgaXQgaGFzIGEgZnVsbCBKU09OIG9iamVjdCwgd2hpY2gKaXQgdGhlbiBjYW4gZGVjb2RlLiBUaGlzIHByb2Nlc3MgaXMgc2ltaWxhciB0byB1c2luZyBDPGRlY29kZV9wcmVmaXg+CnRvIHNlZSBpZiBhIGZ1bGwgSlNPTiBvYmplY3QgaXMgYXZhaWxhYmxlLCBidXQgaXMgbXVjaCBtb3JlIGVmZmljaWVudAooYW5kIGNhbiBiZSBpbXBsZW1lbnRlZCB3aXRoIGEgbWluaW11bSBvZiBtZXRob2QgY2FsbHMpLgoKVGhlIGJhY2tlbmQgbW9kdWxlIHdpbGwgb25seSBhdHRlbXB0IHRvIHBhcnNlIHRoZSBKU09OIHRleHQgb25jZSBpdCBpcyBzdXJlIGl0CmhhcyBlbm91Z2ggdGV4dCB0byBnZXQgYSBkZWNpc2l2ZSByZXN1bHQsIHVzaW5nIGEgdmVyeSBzaW1wbGUgYnV0CnRydWx5IGluY3JlbWVudGFsIHBhcnNlci4gVGhpcyBtZWFucyB0aGF0IGl0IHNvbWV0aW1lcyB3b24ndCBzdG9wIGFzCmVhcmx5IGFzIHRoZSBmdWxsIHBhcnNlciwgZm9yIGV4YW1wbGUsIGl0IGRvZXNuJ3QgZGV0ZWN0IHBhcmVudGhlc2UKbWlzbWF0Y2hlcy4gVGhlIG9ubHkgdGhpbmcgaXQgZ3VhcmFudGVlcyBpcyB0aGF0IGl0IHN0YXJ0cyBkZWNvZGluZyBhcwpzb29uIGFzIGEgc3ludGFjdGljYWxseSB2YWxpZCBKU09OIHRleHQgaGFzIGJlZW4gc2Vlbi4gVGhpcyBtZWFucyB5b3UgbmVlZAp0byBzZXQgcmVzb3VyY2UgbGltaXRzIChlLmcuIEM8bWF4X3NpemU+KSB0byBlbnN1cmUgdGhlIHBhcnNlciB3aWxsIHN0b3AKcGFyc2luZyBpbiB0aGUgcHJlc2VuY2UgaWYgc3ludGF4IGVycm9ycy4KClRoZSBmb2xsb3dpbmcgbWV0aG9kcyBpbXBsZW1lbnQgdGhpcyBpbmNyZW1lbnRhbCBwYXJzZXIuCgo9aGVhZDIgaW5jcl9wYXJzZQoKICAgICRqc29uLT5pbmNyX3BhcnNlKCBbJHN0cmluZ10gKSAjIHZvaWQgY29udGV4dAogICAgCiAgICAkb2JqX29yX3VuZGVmID0gJGpzb24tPmluY3JfcGFyc2UoIFskc3RyaW5nXSApICMgc2NhbGFyIGNvbnRleHQKICAgIAogICAgQG9ial9vcl9lbXB0eSA9ICRqc29uLT5pbmNyX3BhcnNlKCBbJHN0cmluZ10gKSAjIGxpc3QgY29udGV4dAoKVGhpcyBpcyB0aGUgY2VudHJhbCBwYXJzaW5nIGZ1bmN0aW9uLiBJdCBjYW4gYm90aCBhcHBlbmQgbmV3IHRleHQgYW5kCmV4dHJhY3Qgb2JqZWN0cyBmcm9tIHRoZSBzdHJlYW0gYWNjdW11bGF0ZWQgc28gZmFyIChib3RoIG9mIHRoZXNlCmZ1bmN0aW9ucyBhcmUgb3B0aW9uYWwpLgoKSWYgQzwkc3RyaW5nPiBpcyBnaXZlbiwgdGhlbiB0aGlzIHN0cmluZyBpcyBhcHBlbmRlZCB0byB0aGUgYWxyZWFkeQpleGlzdGluZyBKU09OIGZyYWdtZW50IHN0b3JlZCBpbiB0aGUgQzwkanNvbj4gb2JqZWN0LgoKQWZ0ZXIgdGhhdCwgaWYgdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiB2b2lkIGNvbnRleHQsIGl0IHdpbGwgc2ltcGx5CnJldHVybiB3aXRob3V0IGRvaW5nIGFueXRoaW5nIGZ1cnRoZXIuIFRoaXMgY2FuIGJlIHVzZWQgdG8gYWRkIG1vcmUgdGV4dAppbiBhcyBtYW55IGNodW5rcyBhcyB5b3Ugd2FudC4KCklmIHRoZSBtZXRob2QgaXMgY2FsbGVkIGluIHNjYWxhciBjb250ZXh0LCB0aGVuIGl0IHdpbGwgdHJ5IHRvIGV4dHJhY3QKZXhhY3RseSBJPG9uZT4gSlNPTiBvYmplY3QuIElmIHRoYXQgaXMgc3VjY2Vzc2Z1bCwgaXQgd2lsbCByZXR1cm4gdGhpcwpvYmplY3QsIG90aGVyd2lzZSBpdCB3aWxsIHJldHVybiBDPHVuZGVmPi4gSWYgdGhlcmUgaXMgYSBwYXJzZSBlcnJvciwKdGhpcyBtZXRob2Qgd2lsbCBjcm9hayBqdXN0IGFzIEM8ZGVjb2RlPiB3b3VsZCBkbyAob25lIGNhbiB0aGVuIHVzZQpDPGluY3Jfc2tpcD4gdG8gc2tpcCB0aGUgZXJyb3Jub3VzIHBhcnQpLiBUaGlzIGlzIHRoZSBtb3N0IGNvbW1vbiB3YXkgb2YKdXNpbmcgdGhlIG1ldGhvZC4KCkFuZCBmaW5hbGx5LCBpbiBsaXN0IGNvbnRleHQsIGl0IHdpbGwgdHJ5IHRvIGV4dHJhY3QgYXMgbWFueSBvYmplY3RzCmZyb20gdGhlIHN0cmVhbSBhcyBpdCBjYW4gZmluZCBhbmQgcmV0dXJuIHRoZW0sIG9yIHRoZSBlbXB0eSBsaXN0Cm90aGVyd2lzZS4gRm9yIHRoaXMgdG8gd29yaywgdGhlcmUgbXVzdCBiZSBubyBzZXBhcmF0b3JzIGJldHdlZW4gdGhlIEpTT04Kb2JqZWN0cyBvciBhcnJheXMsIGluc3RlYWQgdGhleSBtdXN0IGJlIGNvbmNhdGVuYXRlZCBiYWNrLXRvLWJhY2suIElmCmFuIGVycm9yIG9jY3VycywgYW4gZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIGFzIGluIHRoZSBzY2FsYXIgY29udGV4dApjYXNlLiBOb3RlIHRoYXQgaW4gdGhpcyBjYXNlLCBhbnkgcHJldmlvdXNseS1wYXJzZWQgSlNPTiB0ZXh0cyB3aWxsIGJlCmxvc3QuCgpFeGFtcGxlOiBQYXJzZSBzb21lIEpTT04gYXJyYXlzL29iamVjdHMgaW4gYSBnaXZlbiBzdHJpbmcgYW5kIHJldHVybiB0aGVtLgoKICAgIG15IEBvYmpzID0gSlNPTi0+bmV3LT5pbmNyX3BhcnNlICgiWzVdWzddWzEsMl0iKTsKCj1oZWFkMiBpbmNyX3RleHQKCiAgICAkbHZhbHVlX3N0cmluZyA9ICRqc29uLT5pbmNyX3RleHQKClRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGN1cnJlbnRseSBzdG9yZWQgSlNPTiBmcmFnbWVudCBhcyBhbiBsdmFsdWUsIHRoYXQKaXMsIHlvdSBjYW4gbWFuaXB1bGF0ZSBpdC4gVGhpcyBJPG9ubHk+IHdvcmtzIHdoZW4gYSBwcmVjZWRpbmcgY2FsbCB0bwpDPGluY3JfcGFyc2U+IGluIEk8c2NhbGFyIGNvbnRleHQ+IHN1Y2Nlc3NmdWxseSByZXR1cm5lZCBhbiBvYmplY3QuIFVuZGVyCmFsbCBvdGhlciBjaXJjdW1zdGFuY2VzIHlvdSBtdXN0IG5vdCBjYWxsIHRoaXMgZnVuY3Rpb24gKEkgbWVhbiBpdC4KYWx0aG91Z2ggaW4gc2ltcGxlIHRlc3RzIGl0IG1pZ2h0IGFjdHVhbGx5IHdvcmssIGl0IEk8d2lsbD4gZmFpbCB1bmRlcgpyZWFsIHdvcmxkIGNvbmRpdGlvbnMpLiBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCB5b3UgY2FuIGFsc28gY2FsbCB0aGlzCm1ldGhvZCBiZWZvcmUgaGF2aW5nIHBhcnNlZCBhbnl0aGluZy4KClRoaXMgZnVuY3Rpb24gaXMgdXNlZnVsIGluIHR3byBjYXNlczogYSkgZmluZGluZyB0aGUgdHJhaWxpbmcgdGV4dCBhZnRlciBhCkpTT04gb2JqZWN0IG9yIGIpIHBhcnNpbmcgbXVsdGlwbGUgSlNPTiBvYmplY3RzIHNlcGFyYXRlZCBieSBub24tSlNPTiB0ZXh0CihzdWNoIGFzIGNvbW1hcykuCgogICAgJGpzb24tPmluY3JfdGV4dCA9fiBzL1xzKixccyovLzsKCkluIFBlcmwgNS4wMDUsIEM8bHZhbHVlPiBhdHRyaWJ1dGUgaXMgbm90IGF2YWlsYWJsZS4KWW91IG11c3Qgd3JpdGUgY29kZXMgbGlrZSB0aGUgYmVsb3c6CgogICAgJHN0cmluZyA9ICRqc29uLT5pbmNyX3RleHQ7CiAgICAkc3RyaW5nID1+IHMvXHMqLFxzKi8vOwogICAgJGpzb24tPmluY3JfdGV4dCggJHN0cmluZyApOwoKPWhlYWQyIGluY3Jfc2tpcAoKICAgICRqc29uLT5pbmNyX3NraXAKClRoaXMgd2lsbCByZXNldCB0aGUgc3RhdGUgb2YgdGhlIGluY3JlbWVudGFsIHBhcnNlciBhbmQgd2lsbCByZW1vdmUgdGhlCnBhcnNlZCB0ZXh0IGZyb20gdGhlIGlucHV0IGJ1ZmZlci4gVGhpcyBpcyB1c2VmdWwgYWZ0ZXIgQzxpbmNyX3BhcnNlPgpkaWVkLCBpbiB3aGljaCBjYXNlIHRoZSBpbnB1dCBidWZmZXIgYW5kIGluY3JlbWVudGFsIHBhcnNlciBzdGF0ZSBpcyBsZWZ0CnVuY2hhbmdlZCwgdG8gc2tpcCB0aGUgdGV4dCBwYXJzZWQgc28gZmFyIGFuZCB0byByZXNldCB0aGUgcGFyc2Ugc3RhdGUuCgo9aGVhZDIgaW5jcl9yZXNldAoKICAgICRqc29uLT5pbmNyX3Jlc2V0CgpUaGlzIGNvbXBsZXRlbHkgcmVzZXRzIHRoZSBpbmNyZW1lbnRhbCBwYXJzZXIsIHRoYXQgaXMsIGFmdGVyIHRoaXMgY2FsbCwKaXQgd2lsbCBiZSBhcyBpZiB0aGUgcGFyc2VyIGhhZCBuZXZlciBwYXJzZWQgYW55dGhpbmcuCgpUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCBvdCByZXBlYXRlZGx5IHBhcnNlIEpTT04gb2JqZWN0cyBhbmQgd2FudCB0bwppZ25vcmUgYW55IHRyYWlsaW5nIGRhdGEsIHdoaWNoIG1lYW5zIHlvdSBoYXZlIHRvIHJlc2V0IHRoZSBwYXJzZXIgYWZ0ZXIKZWFjaCBzdWNjZXNzZnVsIGRlY29kZS4KClNlZSB0byBMPEpTT046OlhTL0lOQ1JFTUVOVEFMIFBBUlNJTkc+IGZvciBleGFtcGxlcy4KCgo9aGVhZDEgSlNPTjo6UFAgU1VQUE9SVCBNRVRIT0RTCgpUaGUgYmVsb3cgbWV0aG9kcyBhcmUgSlNPTjo6UFAgb3duIG1ldGhvZHMsIHNvIHdoZW4gQzxKU09OPiB3b3Jrcwp3aXRoIEpTT046OlBQIChpLmUuIHRoZSBjcmVhdGVkIG9iamVjdCBpcyBhIEpTT046OlBQIG9iamVjdCksIGF2YWlsYWJsZS4KU2VlIHRvIEw8SlNPTjo6UFAvSlNPTjo6UFAgT1dOIE1FVEhPRFM+IGluIGRldGFpbC4KCklmIHlvdSB1c2UgQzxKU09OPiB3aXRoIGFkZGl0b25hbCBDPC1zdXBwb3J0X2J5X3BwPiwgc29tZSBtZXRob2RzCmFyZSBhdmFpbGFibGUgZXZlbiB3aXRoIEpTT046OlhTLiBTZWUgdG8gTDxVU0UgUFAgRkVBVFVSRVMgRVZFTiBUSE9VR0ggWFMgQkFDS0VORD4uCgogICBCRUlORyB7ICRFTlZ7UEVSTF9KU09OX0JBQ0tFTkR9ID0gJ0pTT046OlhTJyB9CiAgIAogICB1c2UgSlNPTiAtc3VwcG9ydF9ieV9wcDsKICAgCiAgIG15ICRqc29uID0gbmV3IEpTT047CiAgICRqc29uLT5hbGxvd19ub25yZWYtPmVzY2FwZV9zbGFzaC0+ZW5jb2RlKCIvIik7CgogICAjIGZ1bmN0aW9uYWwgaW50ZXJmYWNlcyB0b28uCiAgIHByaW50IHRvX2pzb24oWyIvIl0sIHtlc2NhcGVfc2xhc2ggPT4gMX0pOwogICBwcmludCBmcm9tX2pzb24oJ1siZm9vIl0nLCB7dXRmOCA9PiAxfSk7CgpJZiB5b3UgZG8gbm90IHdhbnQgdG8gYWxsIGZ1bmN0aW9ucyBidXQgQzwtc3VwcG9ydF9ieV9wcD4sCnVzZSBDPC1ub19leHBvcnQ+LgoKICAgdXNlIEpTT04gLXN1cHBvcnRfYnlfcHAsIC1ub19leHBvcnQ7CiAgICMgZnVuY3Rpb25hbCBpbnRlcmZhY2VzIGFyZSBub3QgZXhwb3J0ZWQuCgo9aGVhZDIgYWxsb3dfc2luZ2xlcXVvdGUKCiAgICAkanNvbiA9ICRqc29uLT5hbGxvd19zaW5nbGVxdW90ZShbJGVuYWJsZV0pCgpJZiBDPCRlbmFibGU+IGlzIHRydWUgKG9yIG1pc3NpbmcpLCB0aGVuIEM8ZGVjb2RlPiB3aWxsIGFjY2VwdAphbnkgSlNPTiBzdHJpbmdzIHF1b3RlZCBieSBzaW5nbGUgcXVvdGF0aW9ucyB0aGF0IGFyZSBpbnZhbGlkIEpTT04KZm9ybWF0LgoKICAgICRqc29uLT5hbGxvd19zaW5nbGVxdW90ZS0+ZGVjb2RlKHsiZm9vIjonYmFyJ30pOwogICAgJGpzb24tPmFsbG93X3NpbmdsZXF1b3RlLT5kZWNvZGUoeydmb28nOiJiYXIifSk7CiAgICAkanNvbi0+YWxsb3dfc2luZ2xlcXVvdGUtPmRlY29kZSh7J2Zvbyc6J2Jhcid9KTsKCkFzIHNhbWUgYXMgdGhlIEM8cmVsYXhlZD4gb3B0aW9uLCB0aGlzIG9wdGlvbiBtYXkgYmUgdXNlZCB0byBwYXJzZQphcHBsaWNhdGlvbi1zcGVjaWZpYyBmaWxlcyB3cml0dGVuIGJ5IGh1bWFucy4KCj1oZWFkMiBhbGxvd19iYXJla2V5CgogICAgJGpzb24gPSAkanNvbi0+YWxsb3dfYmFyZWtleShbJGVuYWJsZV0pCgpJZiBDPCRlbmFibGU+IGlzIHRydWUgKG9yIG1pc3NpbmcpLCB0aGVuIEM8ZGVjb2RlPiB3aWxsIGFjY2VwdApiYXJlIGtleXMgb2YgSlNPTiBvYmplY3QgdGhhdCBhcmUgaW52YWxpZCBKU09OIGZvcm1hdC4KCkFzIHNhbWUgYXMgdGhlIEM8cmVsYXhlZD4gb3B0aW9uLCB0aGlzIG9wdGlvbiBtYXkgYmUgdXNlZCB0byBwYXJzZQphcHBsaWNhdGlvbi1zcGVjaWZpYyBmaWxlcyB3cml0dGVuIGJ5IGh1bWFucy4KCiAgICAkanNvbi0+YWxsb3dfYmFyZWtleS0+ZGVjb2RlKCd7Zm9vOiJiYXIifScpOwoKPWhlYWQyIGFsbG93X2JpZ251bQoKICAgICRqc29uID0gJGpzb24tPmFsbG93X2JpZ251bShbJGVuYWJsZV0pCgpJZiBDPCRlbmFibGU+IGlzIHRydWUgKG9yIG1pc3NpbmcpLCB0aGVuIEM8ZGVjb2RlPiB3aWxsIGNvbnZlcnQKdGhlIGJpZyBpbnRlZ2VyIFBlcmwgY2Fubm90IGhhbmRsZSBhcyBpbnRlZ2VyIGludG8gYSBMPE1hdGg6OkJpZ0ludD4Kb2JqZWN0IGFuZCBjb252ZXJ0IGEgZmxvYXRpbmcgbnVtYmVyIChhbnkpIGludG8gYSBMPE1hdGg6OkJpZ0Zsb2F0Pi4KCk9uIHRoZSBjb250YXJ5LCBDPGVuY29kZT4gY29udmVydHMgQzxNYXRoOjpCaWdJbnQ+IG9iamVjdHMgYW5kIEM8TWF0aDo6QmlnRmxvYXQ+Cm9iamVjdHMgaW50byBKU09OIG51bWJlcnMgd2l0aCBDPGFsbG93X2JsZXNzZWQ+IGVuYWJsZS4KCiAgICRqc29uLT5hbGxvd19ub25yZWYtPmFsbG93X2JsZXNzZWQtPmFsbG93X2JpZ251bTsKICAgJGJpZ2Zsb2F0ID0gJGpzb24tPmRlY29kZSgnMi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEnKTsKICAgcHJpbnQgJGpzb24tPmVuY29kZSgkYmlnZmxvYXQpOwogICAjID0+IDIuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCgpTZWUgdG8gTDxNQVBQSU5HPiBhYm9vdXQgdGhlIGNvbnZlcnNpb24gb2YgSlNPTiBudW1iZXIuCgo9aGVhZDIgbG9vc2UKCiAgICAkanNvbiA9ICRqc29uLT5sb29zZShbJGVuYWJsZV0pCgpUaGUgdW5lc2NhcGVkIFtceDAwLVx4MWZceDIyXHgyZlx4NWNdIHN0cmluZ3MgYXJlIGludmFsaWQgaW4gSlNPTiBzdHJpbmdzCmFuZCB0aGUgbW9kdWxlIGRvZXNuJ3QgYWxsb3cgdG8gQzxkZWNvZGU+IHRvIHRoZXNlIChleGNlcHQgZm9yIFx4MmYpLgpJZiBDPCRlbmFibGU+IGlzIHRydWUgKG9yIG1pc3NpbmcpLCB0aGVuIEM8ZGVjb2RlPiAgd2lsbCBhY2NlcHQgdGhlc2UKdW5lc2NhcGVkIHN0cmluZ3MuCgogICAgJGpzb24tPmxvb3NlLT5kZWNvZGUocXF8WyJhYmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWYiXXwpOwoKU2VlIHRvIEw8SlNPTjo6UFAvSlNPTjo6UFAgT1dOIE1FVEhPRFM+LgoKPWhlYWQyIGVzY2FwZV9zbGFzaAoKICAgICRqc29uID0gJGpzb24tPmVzY2FwZV9zbGFzaChbJGVuYWJsZV0pCgpBY2NvcmRpbmcgdG8gSlNPTiBHcmFtbWFyLCBJPHNsYXNoPiAoVSswMDJGKSBpcyBlc2NhcGVkLiBCdXQgYnkgZGVmYXVsdApKU09OIGJhY2tlbmQgbW9kdWxlcyBlbmNvZGUgc3RyaW5ncyB3aXRob3V0IGVzY2FwaW5nIHNsYXNoLgoKSWYgQzwkZW5hYmxlPiBpcyB0cnVlIChvciBtaXNzaW5nKSwgdGhlbiBDPGVuY29kZT4gd2lsbCBlc2NhcGUgc2xhc2hlcy4KCj1oZWFkMiBpbmRlbnRfbGVuZ3RoCgogICAgJGpzb24gPSAkanNvbi0+aW5kZW50X2xlbmd0aCgkbGVuZ3RoKQoKV2l0aCBKU09OOjpYUywgVGhlIGluZGVudCBzcGFjZSBsZW5ndGggaXMgMyBhbmQgY2Fubm90IGJlIGNoYW5nZWQuCldpdGggSlNPTjo6UFAsIGl0IHNldHMgdGhlIGluZGVudCBzcGFjZSBsZW5ndGggd2l0aCB0aGUgZ2l2ZW4gJGxlbmd0aC4KVGhlIGRlZmF1bHQgaXMgMy4gVGhlIGFjY2VwdGFibGUgcmFuZ2UgaXMgMCB0byAxNS4KCj1oZWFkMiBzb3J0X2J5CgogICAgJGpzb24gPSAkanNvbi0+c29ydF9ieSgkZnVuY3Rpb25fbmFtZSkKICAgICRqc29uID0gJGpzb24tPnNvcnRfYnkoJHN1YnJvdXRpbmVfcmVmKQoKSWYgJGZ1bmN0aW9uX25hbWUgb3IgJHN1YnJvdXRpbmVfcmVmIGFyZSBzZXQsIGl0cyBzb3J0IHJvdXRpbmUgYXJlIHVzZWQuCgogICAkanMgPSAkcGMtPnNvcnRfYnkoc3ViIHsgJEpTT046OlBQOjphIGNtcCAkSlNPTjo6UFA6OmIgfSktPmVuY29kZSgkb2JqKTsKICAgIyBpcygkanMsIHF8eyJhIjoxLCJiIjoyLCJjIjozLCJkIjo0LCJlIjo1LCJmIjo2LCJnIjo3LCJoIjo4LCJpIjo5fXwpOwoKICAgJGpzID0gJHBjLT5zb3J0X2J5KCdvd25fc29ydCcpLT5lbmNvZGUoJG9iaik7CiAgICMgaXMoJGpzLCBxfHsiYSI6MSwiYiI6MiwiYyI6MywiZCI6NCwiZSI6NSwiZiI6NiwiZyI6NywiaCI6OCwiaSI6OX18KTsKCiAgIHN1YiBKU09OOjpQUDo6b3duX3NvcnQgeyAkSlNPTjo6UFA6OmEgY21wICRKU09OOjpQUDo6YiB9CgpBcyB0aGUgc29ydGluZyByb3V0aW5lIHJ1bnMgaW4gdGhlIEpTT046OlBQIHNjb3BlLCB0aGUgZ2l2ZW4Kc3Vicm91dGluZSBuYW1lIGFuZCB0aGUgc3BlY2lhbCB2YXJpYWJsZXMgQzwkYT4sIEM8JGI+IHdpbGwgYmVnaW4Kd2l0aCAnSlNPTjo6UFA6OicuCgpJZiAkaW50ZWdlciBpcyBzZXQsIHRoZW4gdGhlIGVmZmVjdCBpcyBzYW1lIGFzIEM8Y2Fub25pY2FsPiBvbi4KClNlZSB0byBMPEpTT046OlBQL0pTT046OlBQIE9XTiBNRVRIT0RTPi4KCj1oZWFkMSBNQVBQSU5HCgpUaGlzIHNlY3Rpb24gaXMgY29waWVkIGZyb20gSlNPTjo6WFMgYW5kIG1vZGlmaWVkIHRvIEM8SlNPTj4uCkpTT046OlhTIGFuZCBKU09OOjpQUCBtYXBwaW5nIG1lY2hhbmlzbXMgYXJlIGFsbW9zdCBlcXVpdmFsZW50LgoKU2VlIHRvIEw8SlNPTjo6WFMvTUFQUElORz4uCgo9aGVhZDIgSlNPTiAtPiBQRVJMCgo9b3ZlciA0Cgo9aXRlbSBvYmplY3QKCkEgSlNPTiBvYmplY3QgYmVjb21lcyBhIHJlZmVyZW5jZSB0byBhIGhhc2ggaW4gUGVybC4gTm8gb3JkZXJpbmcgb2Ygb2JqZWN0CmtleXMgaXMgcHJlc2VydmVkIChKU09OIGRvZXMgbm90IHByZXNlcnZlciBvYmplY3Qga2V5IG9yZGVyaW5nIGl0c2VsZikuCgo9aXRlbSBhcnJheQoKQSBKU09OIGFycmF5IGJlY29tZXMgYSByZWZlcmVuY2UgdG8gYW4gYXJyYXkgaW4gUGVybC4KCj1pdGVtIHN0cmluZwoKQSBKU09OIHN0cmluZyBiZWNvbWVzIGEgc3RyaW5nIHNjYWxhciBpbiBQZXJsIC0gVW5pY29kZSBjb2RlcG9pbnRzIGluIEpTT04KYXJlIHJlcHJlc2VudGVkIGJ5IHRoZSBzYW1lIGNvZGVwb2ludHMgaW4gdGhlIFBlcmwgc3RyaW5nLCBzbyBubyBtYW51YWwKZGVjb2RpbmcgaXMgbmVjZXNzYXJ5LgoKPWl0ZW0gbnVtYmVyCgpBIEpTT04gbnVtYmVyIGJlY29tZXMgZWl0aGVyIGFuIGludGVnZXIsIG51bWVyaWMgKGZsb2F0aW5nIHBvaW50KSBvcgpzdHJpbmcgc2NhbGFyIGluIHBlcmwsIGRlcGVuZGluZyBvbiBpdHMgcmFuZ2UgYW5kIGFueSBmcmFjdGlvbmFsIHBhcnRzLiBPbgp0aGUgUGVybCBsZXZlbCwgdGhlcmUgaXMgbm8gZGlmZmVyZW5jZSBiZXR3ZWVuIHRob3NlIGFzIFBlcmwgaGFuZGxlcyBhbGwKdGhlIGNvbnZlcnNpb24gZGV0YWlscywgYnV0IGFuIGludGVnZXIgbWF5IHRha2Ugc2xpZ2h0bHkgbGVzcyBtZW1vcnkgYW5kCm1pZ2h0IHJlcHJlc2VudCBtb3JlIHZhbHVlcyBleGFjdGx5IHRoYW4gZmxvYXRpbmcgcG9pbnQgbnVtYmVycy4KCklmIHRoZSBudW1iZXIgY29uc2lzdHMgb2YgZGlnaXRzIG9ubHksIEM8SlNPTj4gd2lsbCB0cnkgdG8gcmVwcmVzZW50Cml0IGFzIGFuIGludGVnZXIgdmFsdWUuIElmIHRoYXQgZmFpbHMsIGl0IHdpbGwgdHJ5IHRvIHJlcHJlc2VudCBpdCBhcwphIG51bWVyaWMgKGZsb2F0aW5nIHBvaW50KSB2YWx1ZSBpZiB0aGF0IGlzIHBvc3NpYmxlIHdpdGhvdXQgbG9zcyBvZgpwcmVjaXNpb24uIE90aGVyd2lzZSBpdCB3aWxsIHByZXNlcnZlIHRoZSBudW1iZXIgYXMgYSBzdHJpbmcgdmFsdWUgKGluCndoaWNoIGNhc2UgeW91IGxvc2Ugcm91bmR0cmlwcGluZyBhYmlsaXR5LCBhcyB0aGUgSlNPTiBudW1iZXIgd2lsbCBiZQpyZS1lbmNvZGVkIHRvYSBKU09OIHN0cmluZykuCgpOdW1iZXJzIGNvbnRhaW5pbmcgYSBmcmFjdGlvbmFsIG9yIGV4cG9uZW50aWFsIHBhcnQgd2lsbCBhbHdheXMgYmUKcmVwcmVzZW50ZWQgYXMgbnVtZXJpYyAoZmxvYXRpbmcgcG9pbnQpIHZhbHVlcywgcG9zc2libHkgYXQgYSBsb3NzIG9mCnByZWNpc2lvbiAoaW4gd2hpY2ggY2FzZSB5b3UgbWlnaHQgbG9zZSBwZXJmZWN0IHJvdW5kdHJpcHBpbmcgYWJpbGl0eSwgYnV0CnRoZSBKU09OIG51bWJlciB3aWxsIHN0aWxsIGJlIHJlLWVuY29kZWQgYXMgYSBKU09OIG51bWJlcikuCgpOb3RlIHRoYXQgcHJlY2lzaW9uIGlzIG5vdCBhY2N1cmFjeSAtIGJpbmFyeSBmbG9hdGluZyBwb2ludCB2YWx1ZXMgY2Fubm90CnJlcHJlc2VudCBtb3N0IGRlY2ltYWwgZnJhY3Rpb25zIGV4YWN0bHksIGFuZCB3aGVuIGNvbnZlcnRpbmcgZnJvbSBhbmQgdG8KZmxvYXRpbmcgcG9pbnQsIEM8SlNPTj4gb25seSBndWFyYW50ZWVzIHByZWNpc2lvbiB1cCB0byBidXQgbm90IGluY2x1ZGluZwp0aGUgbGVhdHMgc2lnbmlmaWNhbnQgYml0LgoKSWYgdGhlIGJhY2tlbmQgaXMgSlNPTjo6UFAgYW5kIEM8YWxsb3dfYmlnbnVtPiBpcyBlbmFibGUsIHRoZSBiaWcgaW50ZWdlcnMgCmFuZCB0aGUgbnVtZXJpYyBjYW4gYmUgb3B0aW9uYWxseSBjb252ZXJ0ZWQgaW50byBMPE1hdGg6OkJpZ0ludD4gYW5kCkw8TWF0aDo6QmlnRmxvYXQ+IG9iamVjdHMuCgo9aXRlbSB0cnVlLCBmYWxzZQoKVGhlc2UgSlNPTiBhdG9tcyBiZWNvbWUgQzxKU09OOjp0cnVlPiBhbmQgQzxKU09OOjpmYWxzZT4sCnJlc3BlY3RpdmVseS4gVGhleSBhcmUgb3ZlcmxvYWRlZCB0byBhY3QgYWxtb3N0IGV4YWN0bHkgbGlrZSB0aGUgbnVtYmVycwpDPDE+IGFuZCBDPDA+LiBZb3UgY2FuIGNoZWNrIHdldGhlciBhIHNjYWxhciBpcyBhIEpTT04gYm9vbGVhbiBieSB1c2luZwp0aGUgQzxKU09OOjppc19ib29sPiBmdW5jdGlvbi4KCklmIEM8SlNPTjo6dHJ1ZT4gYW5kIEM8SlNPTjo6ZmFsc2U+IGFyZSB1c2VkIGFzIHN0cmluZ3Mgb3IgY29tcGFyZWQgYXMgc3RyaW5ncywKdGhleSByZXByZXNlbnQgYXMgQzx0cnVlPiBhbmQgQzxmYWxzZT4gcmVzcGVjdGl2ZWx5LgoKICAgcHJpbnQgSlNPTjo6dHJ1ZSAuICJcbiI7CiAgICA9PiB0cnVlCiAgIHByaW50IEpTT046OnRydWUgKyAxOwogICAgPT4gMQoKICAgb2soSlNPTjo6dHJ1ZSBlcSAndHJ1ZScpOwogICBvayhKU09OOjp0cnVlIGVxICAnMScpOwogICBvayhKU09OOjp0cnVlID09IDEpOwoKQzxKU09OPiB3aWxsIGluc3RhbGwgdGhlc2UgbWlzc2luZyBvdmVybG9hZGluZyBmZWF0dXJlcyB0byB0aGUgYmFja2VuZCBtb2R1bGVzLgoKCj1pdGVtIG51bGwKCkEgSlNPTiBudWxsIGF0b20gYmVjb21lcyBDPHVuZGVmPiBpbiBQZXJsLgoKQzxKU09OOjpudWxsPiByZXR1cm5zIEM8dW5kZGVmPi4KCj1iYWNrCgoKPWhlYWQyIFBFUkwgLT4gSlNPTgoKVGhlIG1hcHBpbmcgZnJvbSBQZXJsIHRvIEpTT04gaXMgc2xpZ2h0bHkgbW9yZSBkaWZmaWN1bHQsIGFzIFBlcmwgaXMgYQp0cnVseSB0eXBlbGVzcyBsYW5ndWFnZSwgc28gd2UgY2FuIG9ubHkgZ3Vlc3Mgd2hpY2ggSlNPTiB0eXBlIGlzIG1lYW50IGJ5CmEgUGVybCB2YWx1ZS4KCj1vdmVyIDQKCj1pdGVtIGhhc2ggcmVmZXJlbmNlcwoKUGVybCBoYXNoIHJlZmVyZW5jZXMgYmVjb21lIEpTT04gb2JqZWN0cy4gQXMgdGhlcmUgaXMgbm8gaW5oZXJlbnQgb3JkZXJpbmcKaW4gaGFzaCBrZXlzIChvciBKU09OIG9iamVjdHMpLCB0aGV5IHdpbGwgdXN1YWxseSBiZSBlbmNvZGVkIGluIGEKcHNldWRvLXJhbmRvbSBvcmRlciB0aGF0IGNhbiBjaGFuZ2UgYmV0d2VlbiBydW5zIG9mIHRoZSBzYW1lIHByb2dyYW0gYnV0CnN0YXlzIGdlbmVyYWxseSB0aGUgc2FtZSB3aXRoaW4gYSBzaW5nbGUgcnVuIG9mIGEgcHJvZ3JhbS4gQzxKU09OPgpvcHRpb25hbGx5IHNvcnQgdGhlIGhhc2gga2V5cyAoZGV0ZXJtaW5lZCBieSB0aGUgSTxjYW5vbmljYWw+IGZsYWcpLCBzbwp0aGUgc2FtZSBkYXRhc3RydWN0dXJlIHdpbGwgc2VyaWFsaXNlIHRvIHRoZSBzYW1lIEpTT04gdGV4dCAoZ2l2ZW4gc2FtZQpzZXR0aW5ncyBhbmQgdmVyc2lvbiBvZiBKU09OOjpYUyksIGJ1dCB0aGlzIGluY3VycyBhIHJ1bnRpbWUgb3ZlcmhlYWQKYW5kIGlzIG9ubHkgcmFyZWx5IHVzZWZ1bCwgZS5nLiB3aGVuIHlvdSB3YW50IHRvIGNvbXBhcmUgc29tZSBKU09OIHRleHQKYWdhaW5zdCBhbm90aGVyIGZvciBlcXVhbGl0eS4KCkluIGZ1dHVyZSwgdGhlIG9yZGVyZWQgb2JqZWN0IGZlYXR1cmUgd2lsbCBiZSBhZGRlZCB0byBKU09OOjpQUCB1c2luZyBDPHRpZT4gbWVjaGFuaXNtLgoKCj1pdGVtIGFycmF5IHJlZmVyZW5jZXMKClBlcmwgYXJyYXkgcmVmZXJlbmNlcyBiZWNvbWUgSlNPTiBhcnJheXMuCgo9aXRlbSBvdGhlciByZWZlcmVuY2VzCgpPdGhlciB1bmJsZXNzZWQgcmVmZXJlbmNlcyBhcmUgZ2VuZXJhbGx5IG5vdCBhbGxvd2VkIGFuZCB3aWxsIGNhdXNlIGFuCmV4Y2VwdGlvbiB0byBiZSB0aHJvd24sIGV4Y2VwdCBmb3IgcmVmZXJlbmNlcyB0byB0aGUgaW50ZWdlcnMgQzwwPiBhbmQKQzwxPiwgd2hpY2ggZ2V0IHR1cm5lZCBpbnRvIEM8ZmFsc2U+IGFuZCBDPHRydWU+IGF0b21zIGluIEpTT04uIFlvdSBjYW4KYWxzbyB1c2UgQzxKU09OOjpmYWxzZT4gYW5kIEM8SlNPTjo6dHJ1ZT4gdG8gaW1wcm92ZSByZWFkYWJpbGl0eS4KCiAgIHRvX2pzb24gW1wwLEpTT046OnRydWVdICAgICAgIyB5aWVsZHMgW2ZhbHNlLHRydWVdCgo9aXRlbSBKU09OOjp0cnVlLCBKU09OOjpmYWxzZSwgSlNPTjo6bnVsbAoKVGhlc2Ugc3BlY2lhbCB2YWx1ZXMgYmVjb21lIEpTT04gdHJ1ZSBhbmQgSlNPTiBmYWxzZSB2YWx1ZXMsCnJlc3BlY3RpdmVseS4gWW91IGNhbiBhbHNvIHVzZSBDPFwxPiBhbmQgQzxcMD4gZGlyZWN0bHkgaWYgeW91IHdhbnQuCgpKU09OOjpudWxsIHJldHVybnMgQzx1bmRlZj4uCgo9aXRlbSBibGVzc2VkIG9iamVjdHMKCkJsZXNzZWQgb2JqZWN0cyBhcmUgbm90IGRpcmVjdGx5IHJlcHJlc2VudGFibGUgaW4gSlNPTi4gU2VlIHRoZQpDPGFsbG93X2JsZXNzZWQ+IGFuZCBDPGNvbnZlcnRfYmxlc3NlZD4gbWV0aG9kcyBvbiB2YXJpb3VzIG9wdGlvbnMgb24KaG93IHRvIGRlYWwgd2l0aCB0aGlzOiBiYXNpY2FsbHksIHlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdGhyb3dpbmcgYW4KZXhjZXB0aW9uLCBlbmNvZGluZyB0aGUgcmVmZXJlbmNlIGFzIGlmIGl0IHdlcmVuJ3QgYmxlc3NlZCwgb3IgcHJvdmlkZQp5b3VyIG93biBzZXJpYWxpc2VyIG1ldGhvZC4KCldpdGggQzxjb252ZXJ0X2JsZXNzZWRfdW5pdmVyc2FsbHk+IG1vZGUsICBDPGVuY29kZT4gY29udmVydHMgYmxlc3NlZApoYXNoIHJlZmVyZW5jZXMgb3IgYmxlc3NlZCBhcnJheSByZWZlcmVuY2VzIChjb250YWlucyBvdGhlciBibGVzc2VkIHJlZmVyZW5jZXMpCmludG8gSlNPTiBtZW1iZXJzIGFuZCBhcnJheXMuCgogICB1c2UgSlNPTiAtY29udmVydF9ibGVzc2VkX3VuaXZlcnNhbGx5OwogICBKU09OLT5uZXctPmFsbG93X2JsZXNzZWQtPmNvbnZlcnRfYmxlc3NlZC0+ZW5jb2RlKCAkYmxlc3NlZF9vYmplY3QgKTsKClNlZSB0byBMPGNvbnZlcnRfYmxlc3NlZD4uCgo9aXRlbSBzaW1wbGUgc2NhbGFycwoKU2ltcGxlIFBlcmwgc2NhbGFycyAoYW55IHNjYWxhciB0aGF0IGlzIG5vdCBhIHJlZmVyZW5jZSkgYXJlIHRoZSBtb3N0CmRpZmZpY3VsdCBvYmplY3RzIHRvIGVuY29kZTogSlNPTjo6WFMgYW5kIEpTT046OlBQIHdpbGwgZW5jb2RlIHVuZGVmaW5lZCBzY2FsYXJzIGFzCkpTT04gQzxudWxsPiB2YWx1ZXMsIHNjYWxhcnMgdGhhdCBoYXZlIGxhc3QgYmVlbiB1c2VkIGluIGEgc3RyaW5nIGNvbnRleHQKYmVmb3JlIGVuY29kaW5nIGFzIEpTT04gc3RyaW5ncywgYW5kIGFueXRoaW5nIGVsc2UgYXMgbnVtYmVyIHZhbHVlOgoKICAgIyBkdW1wIGFzIG51bWJlcgogICBlbmNvZGVfanNvbiBbMl0gICAgICAgICAgICAgICAgICAgICAgIyB5aWVsZHMgWzJdCiAgIGVuY29kZV9qc29uIFstMy4wZTE3XSAgICAgICAgICAgICAgICAjIHlpZWxkcyBbLTNlKzE3XQogICBteSAkdmFsdWUgPSA1OyBlbmNvZGVfanNvbiBbJHZhbHVlXSAgIyB5aWVsZHMgWzVdCgogICAjIHVzZWQgYXMgc3RyaW5nLCBzbyBkdW1wIGFzIHN0cmluZwogICBwcmludCAkdmFsdWU7CiAgIGVuY29kZV9qc29uIFskdmFsdWVdICAgICAgICAgICAgICAgICAjIHlpZWxkcyBbIjUiXQoKICAgIyB1bmRlZiBiZWNvbWVzIG51bGwKICAgZW5jb2RlX2pzb24gW3VuZGVmXSAgICAgICAgICAgICAgICAgICMgeWllbGRzIFtudWxsXQoKWW91IGNhbiBmb3JjZSB0aGUgdHlwZSB0byBiZSBhIHN0cmluZyBieSBzdHJpbmdpZnlpbmcgaXQ6CgogICBteSAkeCA9IDMuMTsgIyBzb21lIHZhcmlhYmxlIGNvbnRhaW5pbmcgYSBudW1iZXIKICAgIiR4IjsgICAgICAgICMgc3RyaW5naWZpZWQKICAgJHggLj0gIiI7ICAgICMgYW5vdGhlciwgbW9yZSBhd2t3YXJkIHdheSB0byBzdHJpbmdpZnkKICAgcHJpbnQgJHg7ICAgICMgcGVybCBkb2VzIGl0IGZvciB5b3UsIHRvbywgcXVpdGUgb2Z0ZW4KCllvdSBjYW4gZm9yY2UgdGhlIHR5cGUgdG8gYmUgYSBudW1iZXIgYnkgbnVtaWZ5aW5nIGl0OgoKICAgbXkgJHggPSAiMyI7ICMgc29tZSB2YXJpYWJsZSBjb250YWluaW5nIGEgc3RyaW5nCiAgICR4ICs9IDA7ICAgICAjIG51bWlmeSBpdCwgZW5zdXJpbmcgaXQgd2lsbCBiZSBkdW1wZWQgYXMgYSBudW1iZXIKICAgJHggKj0gMTsgICAgICMgc2FtZSB0aGluZywgdGhlIGNob2lzZSBpcyB5b3Vycy4KCllvdSBjYW4gbm90IGN1cnJlbnRseSBmb3JjZSB0aGUgdHlwZSBpbiBvdGhlciwgbGVzcyBvYnNjdXJlLCB3YXlzLgoKTm90ZSB0aGF0IG51bWVyaWNhbCBwcmVjaXNpb24gaGFzIHRoZSBzYW1lIG1lYW5pbmcgYXMgdW5kZXIgUGVybCAoc28KYmluYXJ5IHRvIGRlY2ltYWwgY29udmVyc2lvbiBmb2xsb3dzIHRoZSBzYW1lIHJ1bGVzIGFzIGluIFBlcmwsIHdoaWNoCmNhbiBkaWZmZXIgdG8gb3RoZXIgbGFuZ3VhZ2VzKS4gQWxzbywgeW91ciBwZXJsIGludGVycHJldGVyIG1pZ2h0IGV4cG9zZQpleHRlbnNpb25zIHRvIHRoZSBmbG9hdGluZyBwb2ludCBudW1iZXJzIG9mIHlvdXIgcGxhdGZvcm0sIHN1Y2ggYXMKaW5maW5pdGllcyBvciBOYU4ncyAtIHRoZXNlIGNhbm5vdCBiZSByZXByZXNlbnRlZCBpbiBKU09OLCBhbmQgaXQgaXMgYW4KZXJyb3IgdG8gcGFzcyB0aG9zZSBpbi4KCj1pdGVtIEJpZyBOdW1iZXIKCklmIHRoZSBiYWNrZW5kIGlzIEpTT046OlBQIGFuZCBDPGFsbG93X2JpZ251bT4gaXMgZW5hYmxlLCAKQzxlbmNvZGU+IGNvbnZlcnRzIEM8TWF0aDo6QmlnSW50PiBvYmplY3RzIGFuZCBDPE1hdGg6OkJpZ0Zsb2F0PgpvYmplY3RzIGludG8gSlNPTiBudW1iZXJzLgoKCj1iYWNrCgo9aGVhZDEgSlNPTiBhbmQgRUNNQXNjcmlwdAoKU2VlIHRvIEw8SlNPTjo6WFMvSlNPTiBhbmQgRUNNQXNjcmlwdD4uCgo9aGVhZDEgSlNPTiBhbmQgWUFNTAoKSlNPTiBpcyBub3QgYSBzdWJzZXQgb2YgWUFNTC4KU2VlIHRvIEw8SlNPTjo6WFMvSlNPTiBhbmQgWUFNTD4uCgoKPWhlYWQxIEJBQ0tFTkQgTU9EVUxFIERFQ0lTSU9OCgpXaGVuIHlvdSB1c2UgQzxKU09OPiwgQzxKU09OPiB0cmllcyB0byBDPHVzZT4gSlNPTjo6WFMuIElmIHRoaXMgY2FsbCBmYWlsZWQsIGl0IHdpbGwKQzx1c2VzPiBKU09OOjpQUC4gVGhlIHJlcXVpcmVkIEpTT046OlhTIHZlcnNpb24gaXMgSTwyLjI+IG9yIGxhdGVyLgoKVGhlIEM8SlNPTj4gY29uc3RydWN0b3IgbWV0aG9kIHJldHVybnMgYW4gb2JqZWN0IGluaGVyaXRlZCBmcm9tIHRoZSBiYWNrZW5kIG1vZHVsZSwKYW5kIEpTT046OlhTIG9iamVjdCBpcyBhIGJsZXNzZWQgc2NhbGVyIHJlZmVyZW5jZSB3aGlsZSBKU09OOjpQUCBpcyBhIGJsZXNzZWQgaGFzaApyZWZlcmVuY2UuCgpTbywgeW91ciBwcm9ncmFtIHNob3VsZCBub3QgZGVwZW5kIG9uIHRoZSBiYWNrZW5kIG1vZHVsZSwgZXNwZWNpYWxseQpyZXR1cm5lZCBvYmplY3RzIHNob3VsZCBub3QgYmUgbW9kaWZpZWQuCgogbXkgJGpzb24gPSBKU09OLT5uZXc7ICMgWFMgb3IgUFA/CiAkanNvbi0+e3N0YXNofSA9ICd0aGlzIGlzIHhzIG9iamVjdCc7ICMgdGhpcyBjb2RlIG1heSByYWlzZSBhbiBlcnJvciEKClRvIGNoZWNrIHRoZSBiYWNrZW5kIG1vZHVsZSwgdGhlcmUgYXJlIHNvbWUgbWV0aG9kcyAtIEM8YmFja2VuZD4sIEM8aXNfcHA+IGFuZCBDPGlzX3hzPi4KCiAgSlNPTi0+YmFja2VuZDsgIyAnSlNPTjo6WFMnIG9yICdKU09OOjpQUCcKICAKICBKU09OLT5iYWNrZW5kLT5pc19wcDogIyAwIG9yIDEKICAKICBKU09OLT5iYWNrZW5kLT5pc194czogIyAxIG9yIDAKICAKICAkanNvbi0+aXNfeHM7ICMgMSBvciAwCiAgCiAgJGpzb24tPmlzX3BwOyAjIDAgb3IgMQoKCklmIHlvdSBzZXQgYW4gZW52aW9ybm1lbnQgdmFyaWFibGUgQzxQRVJMX0pTT05fQkFDS0VORD4sIFRoZSBjYWxsaW5nIGFjdGlvbiB3aWxsIGJlIGNoYW5nZWQuCgo9b3ZlcgoKPWl0ZW0gUEVSTF9KU09OX0JBQ0tFTkQgPSAwIG9yIFBFUkxfSlNPTl9CQUNLRU5EID0gJ0pTT046OlBQJwoKQWx3YXlzIHVzZSBKU09OOjpQUAoKPWl0ZW0gUEVSTF9KU09OX0JBQ0tFTkQgPT0gMSBvciBQRVJMX0pTT05fQkFDS0VORCA9ICdKU09OOjpYUyxKU09OOjpQUCcKCihUaGUgZGVmYXVsdCkgVXNlIGNvbXBpbGVkIEpTT046OlhTIGlmIGl0IGlzIHByb3Blcmx5IGNvbXBpbGVkICYgaW5zdGFsbGVkLApvdGhlcndpc2UgdXNlIEpTT046OlBQLgoKPWl0ZW0gUEVSTF9KU09OX0JBQ0tFTkQgPT0gMiBvciBQRVJMX0pTT05fQkFDS0VORCA9ICdKU09OOjpYUycKCkFsd2F5cyB1c2UgY29tcGlsZWQgSlNPTjo6WFMsIGRpZSBpZiBpdCBpc24ndCBwcm9wZXJseSBjb21waWxlZCAmIGluc3RhbGxlZC4KCj1iYWNrCgpUaGVzZSBpZGVhcyBjb21lIGZyb20gTDxEQkk6OlB1cmVQZXJsPiBtZWNoYW5pc20uCgpleGFtcGxlOgoKIEJFR0lOIHsgJEVOVntQRVJMX0pTT05fQkFDS0VORH0gPSAnSlNPTjo6UFAnIH0KIHVzZSBKU09OOyAjIGFsd2F5cyB1c2VzIEpTT046OlBQCgpJbiBmdXR1cmUsIGl0IG1heSBiZSBhYmxlIHRvIHNwZWNpZnkgYW5vdGhlciBtb2R1bGUuCgo9aGVhZDEgVVNFIFBQIEZFQVRVUkVTIEVWRU4gVEhPVUdIIFhTIEJBQ0tFTkQKCk1hbnkgbWV0aG9kcyBhcmUgYXZhaWxhYmxlIHdpdGggZWl0aGVyIEpTT046OlhTIG9yIEpTT046OlBQIGFuZAp3aGVuIHRoZSBiYWNrZW5kIG1vZHVsZSBpcyBKU09OOjpYUywgaWYgYW55IEpTT046OlBQIHNwZWNpZmljIChpLmUuIEpTT046OlhTIHVuc3Bwb3J0ZWQpCm1ldGhvZCBpcyBjYWxsZWQsIGl0IHdpbGwgQzx3YXJuPiBhbmQgYmUgbm9vcC4KCkJ1dCBJZiB5b3UgQzx1c2U+IEM8SlNPTj4gcGFzc2luZyB0aGUgb3B0aW9uYWwgc3RyaW5nIEM8LXN1cHBvcnRfYnlfcHA+LAppdCBtYWtlcyBhIHBhcnQgb2YgdGhvc2UgdW51cHBvcnRlZCBtZXRob2RzIGF2YWlsYWJsZS4KVGhpcyBmZWF0dXJlIGlzIGFjaGlldmVkIGJ5IHVzaW5nIEpTT046OlBQIGluIEM8ZGUvZW5jb2RlPi4KCiAgIEJFR0lOIHsgJEVOVntQRVJMX0pTT05fQkFDS0VORH0gPSAyIH0gIyB3aXRoIEpTT046OlhTCiAgIHVzZSBKU09OIC1zdXBwb3J0X2J5X3BwOwogICBteSAkanNvbiA9IG5ldyBKU09OOwogICAkanNvbi0+YWxsb3dfbm9ucmVmLT5lc2NhcGVfc2xhc2gtPmVuY29kZSgiLyIpOwoKQXQgdGhpcyB0aW1lLCB0aGUgcmV0dXJuZWQgb2JqZWN0IGlzIGEgQzxKU09OOjpCYWNrZW5kOjpYUzo6U3VwcG9ydGFibGU+Cm9iamVjdCAocmUtYmxlc3NlZCBYUyBvYmplY3QpLCBhbmQgIGJ5IGNoZWNraW5nIEpTT046OlhTIHVuc3VwcG9ydGVkIGZsYWdzCmluIGRlL2VuY29kaW5nLCBjYW4gc3VwcG9ydCBzb21lIHVuc3VwcG9ydGVkIG1ldGhvZHMgLSBDPGxvb3NlPiwgQzxhbGxvd19iaWdudW0+LApDPGFsbG93X2JhcmVrZXk+LCBDPGFsbG93X3NpbmdsZXF1b3RlPiwgQzxlc2NhcGVfc2xhc2g+IGFuZCBDPGluZGVudF9sZW5ndGg+LgoKV2hlbiBhbnkgdW5zdXBwb3J0ZWQgbWV0aG9kcyBhcmUgbm90IGVuYWJsZSwgQzxYUyBkZS9lbmNvZGU+IHdpbGwgYmUKdXNlZCBhcyBpcy4gVGhlIHN3aXRjaCBpcyBhY2hpZXZlZCBieSBjaGFuZ2luZyB0aGUgc3ltYm9saWMgdGFibGVzLgoKQzwtc3VwcG9ydF9ieV9wcD4gaXMgZWZmZWN0aXZlIG9ubHkgd2hlbiB0aGUgYmFja2VuZCBtb2R1bGUgaXMgSlNPTjo6WFMKYW5kIGl0IG1ha2VzIHRoZSBkZS9lbmNvZGluZyBzcGVlZCBkb3duIGEgYml0LgoKU2VlIHRvIEw8SlNPTjo6UFAgU1VQUE9SVCBNRVRIT0RTPi4KCj1oZWFkMSBJTkNPTVBBVElCTEUgQ0hBTkdFUyBUTyBPTEQgVkVSU0lPTgoKVGhlcmUgYXJlIGJpZyBpbmNvbXBhdGliaWxpdHkgYmV0d2VlbiBuZXcgdmVyc2lvbiAoMi4wMCkgYW5kIG9sZCAoMS54eCkuCklmIHlvdSB1c2Ugb2xkIEM8SlNPTj4gMS54eCBpbiB5b3VyIGNvZGUsIHBsZWFzZSBjaGVjayBpdC4KClNlZSB0byBMPFRyYW5zaXRpb24gd2F5cyBmcm9tIDEueHggdG8gMi54eC4+Cgo9b3ZlcgoKPWl0ZW0ganNvblRvT2JqIGFuZCBvYmpUb0pzb24gYXJlIG9ic29sZXRlZC4KCk5vbiBQZXJsLXN0eWxlIG5hbWUgQzxqc29uVG9PYmo+IGFuZCBDPG9ialRvSnNvbj4gYXJlIG9ic29sZXRlZAooYnV0IG5vdCB5ZXQgZGVsZXRlZCBmcm9tIHRoZSBzb3VyY2UpLgpJZiB5b3UgdXNlIHRoZXNlIGZ1bmN0aW9ucyBpbiB5b3VyIGNvZGUsIHBsZWFzZSByZXBsYWNlIHRoZW0Kd2l0aCBDPGZyb21fanNvbj4gYW5kIEM8dG9fanNvbj4uCgoKPWl0ZW0gR2xvYmFsIHZhcmlhYmxlcyBhcmUgbm8gbG9uZ2VyIGF2YWlsYWJsZS4KCkM8SlNPTj4gY2xhc3MgdmFyaWFibGVzIC0gQzwkSlNPTjo6QVVUT0NPTlZFUlQ+LCBDPCRKU09OOjpCYXJlS2V5PiwgZXRjLi4uCi0gYXJlIG5vdCBhdmFpbGFibGUgYW55IGxvbmdlci4KSW5zdGVhZCwgdmFyaW91cyBmZWF0dXJlcyBjYW4gYmUgdXNlZCB0aHJvdWdoIG9iamVjdCBtZXRob2RzLgoKCj1pdGVtIFBhY2thZ2UgSlNPTjo6Q29udmVydGVyIGFuZCBKU09OOjpQYXJzZXIgYXJlIGRlbGV0ZWQuCgpOb3cgQzxKU09OPiBidW5kbGVzIHdpdGggSlNPTjo6UFAgd2hpY2ggY2FuIGhhbmRsZSBKU09OIG1vcmUgcHJvcGVybHkgdGhhbiB0aGVtLgoKPWl0ZW0gUGFja2FnZSBKU09OOjpOb3RTdHJpbmcgaXMgZGVsZXRlZC4KClRoZXJlIHdhcyBDPEpTT046Ok5vdFN0cmluZz4gY2xhc3Mgd2hpY2ggcmVwcmVzZW50cyBKU09OIHZhbHVlIEM8dHJ1ZT4sIEM8ZmFsc2U+LCBDPG51bGw+CmFuZCBudW1iZXJzLiBJdCB3YXMgZGVsZXRlZCBhbmQgcmVwbGFjZWQgYnkgQzxKU09OOjpCb29sZWFuPi4KCkM8SlNPTjo6Qm9vbGVhbj4gcmVwcmVzZW50cyBDPHRydWU+IGFuZCBDPGZhbHNlPi4KCkM8SlNPTjo6Qm9vbGVhbj4gZG9lcyBub3QgcmVwcmVzZW50IEM8bnVsbD4uCgpDPEpTT046Om51bGw+IHJldHVybnMgQzx1bmRlZj4uCgpDPEpTT04+IG1ha2VzIEw8SlNPTjo6WFM6OkJvb2xlYW4+IGFuZCBMPEpTT046OlBQOjpCb29sZWFuPiBpcy1hIHJlbGF0aW9uCnRvIEw8SlNPTjo6Qm9vbGVhbj4uCgo9aXRlbSBmdW5jdGlvbiBKU09OOjpOdW1iZXIgaXMgb2Jzb2xldGVkLgoKQzxKU09OOjpOdW1iZXI+IGlzIG5vdyBuZWVkbGVzcyBiZWNhdXNlIEpTT046OlhTIGFuZCBKU09OOjpQUCBoYXZlCnJvdW5kLXRyaXAgaW50ZWdyaXR5LgoKPWl0ZW0gSlNPTlJQQyBtb2R1bGVzIGFyZSBkZWxldGVkLgoKUGVybCBpbXBsZW1lbnRhdGlvbiBvZiBKU09OLVJQQyBwcm90b2NvbCAtIEM8SlNPTlJQQyA+LCBDPEpTT05SUEM6OlRyYW5zcG9ydDo6SFRUUD4KYW5kIEM8QXBhY2hlOjpKU09OUlBDID4gYXJlIGRlbGV0ZWQgaW4gdGhpcyBkaXN0cmlidXRpb24uCkluc3RlYWQgb2YgdGhlbSwgdGhlcmUgaXMgTDxKU09OOjpSUEM+IHdoaWNoIHN1cHBvcnRzIEpTT04tUlBDIHByb3RvY29sIHZlcnNpb24gMS4xLgoKPWJhY2sKCj1oZWFkMiBUcmFuc2l0aW9uIHdheXMgZnJvbSAxLnh4IHRvIDIueHguCgpZb3Ugc2hvdWxkIHNldCBDPHN1cG9ydF9ieV9wcD4gbW9kZSBmaXJzdGx5LCBiZWNhdXNlCml0IGlzIGFsd2F5cyBzdWNjZXNzZnVsIGZvciB0aGUgYmVsb3cgY29kZXMgZXZlbiB3aXRoIEpTT046OlhTLgoKICAgIHVzZSBKU09OIC1zdXBwb3J0X2J5X3BwOwoKPW92ZXIKCj1pdGVtIEV4cG9ydGVkIGpzb25Ub09iaiAoc2ltcGxlKQoKICBmcm9tX2pzb24oJGpzb25fdGV4dCk7Cgo9aXRlbSBFeHBvcnRlZCBvYmpUb0pzb24gKHNpbXBsZSkKCiAgdG9fanNvbigkcGVybF9zY2FsYXIpOwoKPWl0ZW0gRXhwb3J0ZWQganNvblRvT2JqIChhZHZhbmNlZCkKCiAgJGZsYWdzID0ge2FsbG93X2JhcmVrZXkgPT4gMSwgYWxsb3dfc2luZ2xlcXVvdGUgPT4gMX07CiAgZnJvbV9qc29uKCRqc29uX3RleHQsICRmbGFncyk7CgplcXVpdmFsZW50IHRvOgoKICAkSlNPTjo6QmFyZUtleSA9IDE7CiAgJEpTT046OlF1b3RBcG9zID0gMTsKICBqc29uVG9PYmooJGpzb25fdGV4dCk7Cgo9aXRlbSBFeHBvcnRlZCBvYmpUb0pzb24gKGFkdmFuY2VkKQoKICAkZmxhZ3MgPSB7YWxsb3dfYmxlc3NlZCA9PiAxLCBhbGxvd19iYXJla2V5ID0+IDF9OwogIHRvX2pzb24oJHBlcmxfc2NhbGFyLCAkZmxhZ3MpOwoKZXF1aXZhbGVudCB0bzoKCiAgJEpTT046OkJhcmVLZXkgPSAxOwogIG9ialRvSnNvbigkcGVybF9zY2FsYXIpOwoKPWl0ZW0ganNvblRvT2JqIGFzIG9iamVjdCBtZXRob2QKCiAgJGpzb24tPmRlY29kZSgkanNvbl90ZXh0KTsKCj1pdGVtIG9ialRvSnNvbiBhcyBvYmplY3QgbWV0aG9kCgogICRqc29uLT5lbmNvZGUoJHBlcmxfc2NhbGFyKTsKCj1pdGVtIG5ldyBtZXRob2Qgd2l0aCBwYXJhbWV0ZXJzCgpUaGUgQzxuZXc+IG1ldGhvZCBpbiAyLnggdGFrZXMgYW55IHBhcmFtZXRlcnMgbm8gbG9uZ2VyLgpZb3UgY2FuIHNldCBwYXJhbWV0ZXJzIGluc3RlYWQ7CgogICAkanNvbiA9IEpTT04tPm5ldy0+cHJldHR5OwoKPWl0ZW0gJEpTT046OlByZXR0eSwgJEpTT046OkluZGVudCwgJEpTT046OkRlbGltaXRlcgoKSWYgQzxpbmRlbnQ+IGlzIGVuYWJsZSwgdGhhdCBtZW5hcyBDPCRKU09OOjpQcmV0dHk+IGZsYWcgc2V0LiBBbmQKQzwkSlNPTjo6RGVsaW1pdGVyPiB3YXMgc3Vic3RpdHV0ZWQgYnkgQzxzcGFjZV9iZWZvcmU+IGFuZCBDPHNwYWNlX2FmdGVyPi4KSW4gY29uY2x1c2lvbjoKCiAgICRqc29uLT5pbmRlbnQtPnNwYWNlX2JlZm9yZS0+c3BhY2VfYWZ0ZXI7CgpFcXVpdmFsZW50IHRvOgoKICAkanNvbi0+cHJldHR5OwoKVG8gY2hhbmdlIGluZGVudCBsZW5ndGgsIHVzZSBDPGluZGVudF9sZW5ndGg+LgoKKE9ubHkgd2l0aCBKU09OOjpQUCwgaWYgQzwtc3VwcG9ydF9ieV9wcD4gaXMgbm90IHVzZWQuKQoKICAkanNvbi0+cHJldHR5LT5pbmRlbnRfbGVuZ3RoKDIpLT5lbmNvZGUoJHBlcmxfc2NhbGFyKTsKCj1pdGVtICRKU09OOjpCYXJlS2V5CgooT25seSB3aXRoIEpTT046OlBQLCBpZiBDPC1zdXBwb3J0X2J5X3BwPiBpcyBub3QgdXNlZC4pCgogICRqc29uLT5hbGxvd19iYXJla2V5LT5kZWNvZGUoJGpzb25fdGV4dCkKCj1pdGVtICRKU09OOjpDb252Qmxlc3NlZAoKdXNlIEM8LWNvbnZlcnRfYmxlc3NlZF91bml2ZXJzYWxseT4uIFNlZSB0byBMPGNvbnZlcnRfYmxlc3NlZD4uCgo9aXRlbSAkSlNPTjo6UXVvdEFwb3MKCihPbmx5IHdpdGggSlNPTjo6UFAsIGlmIEM8LXN1cHBvcnRfYnlfcHA+IGlzIG5vdCB1c2VkLikKCiAgJGpzb24tPmFsbG93X3NpbmdsZXF1b3RlLT5kZWNvZGUoJGpzb25fdGV4dCkKCj1pdGVtICRKU09OOjpTaW5nbGVRdW90ZQoKRGlzYWJsZS4gQzxKU09OPiBkb2VzIG5vdCBtYWtlIHN1Y2ggYSBpbnZhbGlkIEpTT04gc3RyaW5nIGFueSBsb25nZXIuCgo9aXRlbSAkSlNPTjo6S2V5U29ydAoKICAkanNvbi0+Y2Fub25pY2FsLT5lbmNvZGUoJHBlcmxfc2NhbGFyKQoKVGhpcyBpcyB0aGUgYXNjaWkgc29ydC4KCklmIHlvdSB3YW50IHRvIHVzZSB3aXRoIHlvdXIgb3duIHNvcnQgcm91dGluZSwgY2hlY2sgdGhlIEM8c29ydF9ieT4gbWV0aG9kLgoKKE9ubHkgd2l0aCBKU09OOjpQUCwgZXZlbiBpZiBDPC1zdXBwb3J0X2J5X3BwPiBpcyB1c2VkIGN1cnJlbnRseS4pCgogICRqc29uLT5zb3J0X2J5KCRzb3J0X3JvdXRpbmVfcmVmKS0+ZW5jb2RlKCRwZXJsX3NjYWxhcikKIAogICRqc29uLT5zb3J0X2J5KHN1YiB7ICRKU09OOjpQUDo6YSA8PT4gJEpTT046OlBQOjpiIH0pLT5lbmNvZGUoJHBlcmxfc2NhbGFyKQoKQ2FuJ3QgYWNjZXNzIEM8JGE+IGFuZCBDPCRiPiBidXQgQzwkSlNPTjo6UFA6OmE+IGFuZCBDPCRKU09OOjpQUDo6Yj4uCgo9aXRlbSAkSlNPTjo6U2tpcEludmFsaWQKCiAgJGpzb24tPmFsbG93X3Vua25vd24KCj1pdGVtICRKU09OOjpBVVRPQ09OVkVSVAoKTmVlZGxlc3MuIEM8SlNPTj4gYmFja2VuZCBtb2R1bGVzIGhhdmUgdGhlIHJvdW5kLXRyaXAgaW50ZWdyaXR5LgoKPWl0ZW0gJEpTT046OlVURjgKCk5lZWRsZXNzIGJlY2F1c2UgQzxKU09OPiAoSlNPTjo6WFMvSlNPTjo6UFApIHNldHMKdGhlIFVURjggZmxhZyBvbiBwcm9wZXJseS4KCiAgICAjIFdpdGggVVRGOC1mbGFnZ2VkIHN0cmluZ3MKCiAgICAkanNvbi0+YWxsb3dfbm9ucmVmOwogICAgJHN0ciA9IGNocigxMDAwKTsgIyBVVEY4LWZsYWdnZWQKCiAgICAkanNvbl90ZXh0ICA9ICRqc29uLT51dGY4KDApLT5lbmNvZGUoJHN0cik7CiAgICB1dGY4Ojppc191dGY4KCRqc29uX3RleHQpOwogICAgIyB0cnVlCiAgICAkanNvbl90ZXh0ICA9ICRqc29uLT51dGY4KDEpLT5lbmNvZGUoJHN0cik7CiAgICB1dGY4Ojppc191dGY4KCRqc29uX3RleHQpOwogICAgIyBmYWxzZQoKICAgICRzdHIgPSAnIicgLiBjaHIoMTAwMCkgLiAnIic7ICMgVVRGOC1mbGFnZ2VkCgogICAgJHBlcmxfc2NhbGFyICA9ICRqc29uLT51dGY4KDApLT5kZWNvZGUoJHN0cik7CiAgICB1dGY4Ojppc191dGY4KCRwZXJsX3NjYWxhcik7CiAgICAjIHRydWUKICAgICRwZXJsX3NjYWxhciAgPSAkanNvbi0+dXRmOCgxKS0+ZGVjb2RlKCRzdHIpOwogICAgIyBkaWVkIGJlY2F1c2Ugb2YgJ1dpZGUgY2hhcmFjdGVyIGluIHN1YnJvdXRpbmUnCgpTZWUgdG8gTDxKU09OOjpYUy9BIEZFVyBOT1RFUyBPTiBVTklDT0RFIEFORCBQRVJMPi4KCj1pdGVtICRKU09OOjpVbk1hcHBpbmcKCkRpc2FibGUuIFNlZSB0byBMPE1BUFBJTkc+LgoKPWl0ZW0gJEpTT046OlNlbGZDb252ZXJ0CgpUaGlzIG9wdGlvbiB3YXMgZGVsZXRlZC4KSW5zdGVhZCBvZiBpdCwgaWYgYSBnaXZpZW4gYmxlc3NlZCBvYmplY3QgaGFzIHRoZSBDPFRPX0pTT04+IG1ldGhvZCwKQzxUT19KU09OPiB3aWxsIGJlIGV4ZWN1dGVkIHdpdGggQzxjb252ZXJ0X2JsZXNzZWQ+LgoKICAkanNvbi0+Y29udmVydF9ibGVzc2VkLT5lbmNvZGUoJGJsZWVzZWRfaGFzaHJlZl9vcl9hcnJheXJlZikKICAjIGlmIG5lZWQsIGNhbGwgYWxsb3dfYmxlc3NlZAoKTm90ZSB0aGF0IGl0IHdhcyBDPHRvSnNvbj4gaW4gb2xkIHZlcnNpb24sIGJ1dCBub3cgbm90IEM8dG9Kc29uPiBidXQgQzxUT19KU09OPi4KCj1iYWNrCgo9aGVhZDEgVE9ETwoKPW92ZXIKCj1pdGVtIGV4YW1wbGUgcHJvZ3JhbXMKCj1iYWNrCgo9aGVhZDEgVEhSRUFEUwoKTm8gdGVzdCB3aXRoIEpTT046OlBQLiBJZiB3aXRoIEpTT046OlhTLCBTZWUgdG8gTDxKU09OOjpYUy9USFJFQURTPi4KCgo9aGVhZDEgQlVHUwoKUGxlYXNlIHJlcG9ydCBidWdzIHJlbGV2YW50IHRvIEM8SlNPTj4gdG8gRTxsdD5tYWthbWFrYVthdF1jcGFuLm9yZ0U8Z3Q+LgoKCj1oZWFkMSBTRUUgQUxTTwoKTW9zdCBvZiB0aGUgZG9jdW1lbnQgaXMgY29waWVkIGFuZCBtb2RpZmllZCBmcm9tIEpTT046OlhTIGRvYy4KCkw8SlNPTjo6WFM+LCBMPEpTT046OlBQPgoKQzxSRkM0NjI3PihMPGh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzQ2MjcudHh0PikKCj1oZWFkMSBBVVRIT1IKCk1ha2FtYWthIEhhbm55YWhhcmFtaXR1LCBFPGx0Pm1ha2FtYWthW2F0XWNwYW4ub3JnRTxndD4KCkpTT046OlhTIHdhcyB3cml0dGVuIGJ5ICBNYXJjIExlaG1hbm4gPHNjaG1vcnBbYXRdc2NobW9ycC5kZT4KClRoZSByZWxlc2Ugb2YgdGhpcyBuZXcgdmVyc2lvbiBvd2VzIHRvIHRoZSBjb3VydGVzeSBvZiBNYXJjIExlaG1hbm4uCgoKPWhlYWQxIENPUFlSSUdIVCBBTkQgTElDRU5TRQoKQ29weXJpZ2h0IDIwMDUtMjAxMCBieSBNYWthbWFrYSBIYW5ueWFoYXJhbWl0dQoKVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHNhbWUgdGVybXMgYXMgUGVybCBpdHNlbGYuIAoKPWN1dAoK
cGFja2FnZSBKU09OOjpQUDsKCiMgSlNPTi0yLjAKCnVzZSA1LjAwNTsKdXNlIHN0cmljdDsKdXNlIGJhc2UgcXcoRXhwb3J0ZXIpOwp1c2Ugb3ZlcmxvYWQ7Cgp1c2UgQ2FycCAoKTsKdXNlIEIgKCk7CiN1c2UgRGV2ZWw6OlBlZWs7CgokSlNPTjo6UFA6OlZFUlNJT04gPSAnMi4yNzAwMyc7CgpASlNPTjo6UFA6OkVYUE9SVCA9IHF3KGVuY29kZV9qc29uIGRlY29kZV9qc29uIGZyb21fanNvbiB0b19qc29uKTsKCiMgaW5zdGVhZCBvZiBoYXNoLWFjY2VzcywgaSB0cmllZCBpbmRleC1hY2Nlc3MgZm9yIHNwZWVkLgojIGJ1dCB0aGlzIG1ldGhvZCBpcyBub3QgZmFzdGVyIHRoYW4gd2hhdCBpIGV4cGVjdGVkLiBzbyBpdCB3aWxsIGJlIGNoYW5nZWQuCgp1c2UgY29uc3RhbnQgUF9BU0NJSSAgICAgICAgICAgICAgICA9PiAwOwp1c2UgY29uc3RhbnQgUF9MQVRJTjEgICAgICAgICAgICAgICA9PiAxOwp1c2UgY29uc3RhbnQgUF9VVEY4ICAgICAgICAgICAgICAgICA9PiAyOwp1c2UgY29uc3RhbnQgUF9JTkRFTlQgICAgICAgICAgICAgICA9PiAzOwp1c2UgY29uc3RhbnQgUF9DQU5PTklDQUwgICAgICAgICAgICA9PiA0Owp1c2UgY29uc3RhbnQgUF9TUEFDRV9CRUZPUkUgICAgICAgICA9PiA1Owp1c2UgY29uc3RhbnQgUF9TUEFDRV9BRlRFUiAgICAgICAgICA9PiA2Owp1c2UgY29uc3RhbnQgUF9BTExPV19OT05SRUYgICAgICAgICA9PiA3Owp1c2UgY29uc3RhbnQgUF9TSFJJTksgICAgICAgICAgICAgICA9PiA4Owp1c2UgY29uc3RhbnQgUF9BTExPV19CTEVTU0VEICAgICAgICA9PiA5Owp1c2UgY29uc3RhbnQgUF9DT05WRVJUX0JMRVNTRUQgICAgICA9PiAxMDsKdXNlIGNvbnN0YW50IFBfUkVMQVhFRCAgICAgICAgICAgICAgPT4gMTE7Cgp1c2UgY29uc3RhbnQgUF9MT09TRSAgICAgICAgICAgICAgICA9PiAxMjsKdXNlIGNvbnN0YW50IFBfQUxMT1dfQklHTlVNICAgICAgICAgPT4gMTM7CnVzZSBjb25zdGFudCBQX0FMTE9XX0JBUkVLRVkgICAgICAgID0+IDE0Owp1c2UgY29uc3RhbnQgUF9BTExPV19TSU5HTEVRVU9URSAgICA9PiAxNTsKdXNlIGNvbnN0YW50IFBfRVNDQVBFX1NMQVNIICAgICAgICAgPT4gMTY7CnVzZSBjb25zdGFudCBQX0FTX05PTkJMRVNTRUQgICAgICAgID0+IDE3OwoKdXNlIGNvbnN0YW50IFBfQUxMT1dfVU5LTk9XTiAgICAgICAgPT4gMTg7CgpCRUdJTiB7CiAgICBteSBAeHNfY29tcGF0aV9iaXRfcHJvcGVydGllcyA9IHF3KAogICAgICAgICAgICBsYXRpbjEgYXNjaWkgdXRmOCBpbmRlbnQgY2Fub25pY2FsIHNwYWNlX2JlZm9yZSBzcGFjZV9hZnRlciBhbGxvd19ub25yZWYgc2hyaW5rCiAgICAgICAgICAgIGFsbG93X2JsZXNzZWQgY29udmVydF9ibGVzc2VkIHJlbGF4ZWQgYWxsb3dfdW5rbm93bgogICAgKTsKICAgIG15IEBwcF9iaXRfcHJvcGVydGllcyA9IHF3KAogICAgICAgICAgICBhbGxvd19zaW5nbGVxdW90ZSBhbGxvd19iaWdudW0gbG9vc2UKICAgICAgICAgICAgYWxsb3dfYmFyZWtleSBlc2NhcGVfc2xhc2ggYXNfbm9uYmxlc3NlZAogICAgKTsKCiAgICAjIFBlcmwgdmVyc2lvbiBjaGVjaywgVW5pY29kZSBoYW5kbGluZyBpcyBlbmFibGU/CiAgICAjIEhlbHBlciBtb2R1bGUgc2V0cyBASlNPTjo6UFA6Ol9wcm9wZXJ0aWVzLgoKICAgIG15ICRoZWxwZXIgPSAkXSA+PSA1LjAwOCA/ICdKU09OOjpQUDU4JwogICAgICAgICAgICAgICA6ICRdID49IDUuMDA2ID8gJ0pTT046OlBQNTYnCiAgICAgICAgICAgICAgIDogICAgICAgICAgICAgICAnSlNPTjo6UFA1MDA1JwogICAgICAgICAgICAgICA7CgogICAgZXZhbCBxcXwgcmVxdWlyZSAkaGVscGVyIHw7CiAgICBpZiAoJEApIHsgQ2FycDo6Y3JvYWsgJEA7IH0KCiAgICBmb3IgbXkgJG5hbWUgKEB4c19jb21wYXRpX2JpdF9wcm9wZXJ0aWVzLCBAcHBfYml0X3Byb3BlcnRpZXMpIHsKICAgICAgICBteSAkZmxhZ19uYW1lID0gJ1BfJyAuIHVjKCRuYW1lKTsKCiAgICAgICAgZXZhbCBxcS8KICAgICAgICAgICAgc3ViICRuYW1lIHsKICAgICAgICAgICAgICAgIG15IFwkZW5hYmxlID0gZGVmaW5lZCBcJF9bMV0gPyBcJF9bMV0gOiAxOwoKICAgICAgICAgICAgICAgIGlmIChcJGVuYWJsZSkgewogICAgICAgICAgICAgICAgICAgIFwkX1swXS0+e1BST1BTfS0+WyRmbGFnX25hbWVdID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIFwkX1swXS0+e1BST1BTfS0+WyRmbGFnX25hbWVdID0gMDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBcJF9bMF07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHN1YiBnZXRfJG5hbWUgewogICAgICAgICAgICAgICAgXCRfWzBdLT57UFJPUFN9LT5bJGZsYWdfbmFtZV0gPyAxIDogJyc7CiAgICAgICAgICAgIH0KICAgICAgICAvOwogICAgfQoKfQoKCgojIEZ1bmN0aW9ucwoKbXkgJWVuY29kZV9hbGxvd19tZXRob2QKICAgICA9IG1hcCB7KCRfID0+IDEpfSBxdy91dGY4IHByZXR0eSBhbGxvd19ub25yZWYgbGF0aW4xIHNlbGZfZW5jb2RlIGVzY2FwZV9zbGFzaAogICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93X2JsZXNzZWQgY29udmVydF9ibGVzc2VkIGluZGVudCBpbmRlbnRfbGVuZ3RoIGFsbG93X2JpZ251bQogICAgICAgICAgICAgICAgICAgICAgICAgIGFzX25vbmJsZXNzZWQKICAgICAgICAgICAgICAgICAgICAgICAgLzsKbXkgJWRlY29kZV9hbGxvd19tZXRob2QKICAgICA9IG1hcCB7KCRfID0+IDEpfSBxdy91dGY4IGFsbG93X25vbnJlZiBsb29zZSBhbGxvd19zaW5nbGVxdW90ZSBhbGxvd19iaWdudW0KICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19iYXJla2V5IG1heF9zaXplIHJlbGF4ZWQvOwoKCm15ICRKU09OOyAjIGNhY2hlCgpzdWIgZW5jb2RlX2pzb24gKCQpIHsgIyBlbmNvZGUKICAgICgkSlNPTiB8fD0gX19QQUNLQUdFX18tPm5ldy0+dXRmOCktPmVuY29kZShAXyk7Cn0KCgpzdWIgZGVjb2RlX2pzb24geyAjIGRlY29kZQogICAgKCRKU09OIHx8PSBfX1BBQ0tBR0VfXy0+bmV3LT51dGY4KS0+ZGVjb2RlKEBfKTsKfQoKIyBPYnNvbGV0ZWQKCnN1YiB0b19qc29uKCQpIHsKICAgQ2FycDo6Y3JvYWsgKCJKU09OOjpQUDo6dG9fanNvbiBoYXMgYmVlbiByZW5hbWVkIHRvIGVuY29kZV9qc29uLiIpOwp9CgoKc3ViIGZyb21fanNvbigkKSB7CiAgIENhcnA6OmNyb2FrICgiSlNPTjo6UFA6OmZyb21fanNvbiBoYXMgYmVlbiByZW5hbWVkIHRvIGRlY29kZV9qc29uLiIpOwp9CgoKIyBNZXRob2RzCgpzdWIgbmV3IHsKICAgIG15ICRjbGFzcyA9IHNoaWZ0OwogICAgbXkgJHNlbGYgID0gewogICAgICAgIG1heF9kZXB0aCAgID0+IDUxMiwKICAgICAgICBtYXhfc2l6ZSAgICA9PiAwLAogICAgICAgIGluZGVudCAgICAgID0+IDAsCiAgICAgICAgRkxBR1MgICAgICAgPT4gMCwKICAgICAgICBmYWxsYmFjayAgICAgID0+IHN1YiB7IGVuY29kZV9lcnJvcignSW52YWxpZCB2YWx1ZS4gSlNPTiBjYW4gb25seSByZWZlcmVuY2UuJykgfSwKICAgICAgICBpbmRlbnRfbGVuZ3RoID0+IDMsCiAgICB9OwoKICAgIGJsZXNzICRzZWxmLCAkY2xhc3M7Cn0KCgpzdWIgZW5jb2RlIHsKICAgIHJldHVybiAkX1swXS0+UFBfZW5jb2RlX2pzb24oJF9bMV0pOwp9CgoKc3ViIGRlY29kZSB7CiAgICByZXR1cm4gJF9bMF0tPlBQX2RlY29kZV9qc29uKCRfWzFdLCAweDAwMDAwMDAwKTsKfQoKCnN1YiBkZWNvZGVfcHJlZml4IHsKICAgIHJldHVybiAkX1swXS0+UFBfZGVjb2RlX2pzb24oJF9bMV0sIDB4MDAwMDAwMDEpOwp9CgoKIyBhY2Nlc3NvcgoKCiMgcHJldHR5IHByaW50aW5nCgpzdWIgcHJldHR5IHsKICAgIG15ICgkc2VsZiwgJHYpID0gQF87CiAgICBteSAkZW5hYmxlID0gZGVmaW5lZCAkdiA/ICR2IDogMTsKCiAgICBpZiAoJGVuYWJsZSkgeyAjIGluZGVudF9sZW5ndGgoMykgZm9yIEpTT046OlhTIGNvbXBhdGliaWxpdHkKICAgICAgICAkc2VsZi0+aW5kZW50KDEpLT5pbmRlbnRfbGVuZ3RoKDMpLT5zcGFjZV9iZWZvcmUoMSktPnNwYWNlX2FmdGVyKDEpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJHNlbGYtPmluZGVudCgwKS0+c3BhY2VfYmVmb3JlKDApLT5zcGFjZV9hZnRlcigwKTsKICAgIH0KCiAgICAkc2VsZjsKfQoKIyBldGMKCnN1YiBtYXhfZGVwdGggewogICAgbXkgJG1heCAgPSBkZWZpbmVkICRfWzFdID8gJF9bMV0gOiAweDgwMDAwMDAwOwogICAgJF9bMF0tPnttYXhfZGVwdGh9ID0gJG1heDsKICAgICRfWzBdOwp9CgoKc3ViIGdldF9tYXhfZGVwdGggeyAkX1swXS0+e21heF9kZXB0aH07IH0KCgpzdWIgbWF4X3NpemUgewogICAgbXkgJG1heCAgPSBkZWZpbmVkICRfWzFdID8gJF9bMV0gOiAwOwogICAgJF9bMF0tPnttYXhfc2l6ZX0gPSAkbWF4OwogICAgJF9bMF07Cn0KCgpzdWIgZ2V0X21heF9zaXplIHsgJF9bMF0tPnttYXhfc2l6ZX07IH0KCgpzdWIgZmlsdGVyX2pzb25fb2JqZWN0IHsKICAgICRfWzBdLT57Y2Jfb2JqZWN0fSA9IGRlZmluZWQgJF9bMV0gPyAkX1sxXSA6IDA7CiAgICAkX1swXS0+e0ZfSE9PS30gPSAoJF9bMF0tPntjYl9vYmplY3R9IG9yICRfWzBdLT57Y2Jfc2tfb2JqZWN0fSkgPyAxIDogMDsKICAgICRfWzBdOwp9CgpzdWIgZmlsdGVyX2pzb25fc2luZ2xlX2tleV9vYmplY3QgewogICAgaWYgKEBfID4gMSkgewogICAgICAgICRfWzBdLT57Y2Jfc2tfb2JqZWN0fS0+eyRfWzFdfSA9ICRfWzJdOwogICAgfQogICAgJF9bMF0tPntGX0hPT0t9ID0gKCRfWzBdLT57Y2Jfb2JqZWN0fSBvciAkX1swXS0+e2NiX3NrX29iamVjdH0pID8gMSA6IDA7CiAgICAkX1swXTsKfQoKc3ViIGluZGVudF9sZW5ndGggewogICAgaWYgKCFkZWZpbmVkICRfWzFdIG9yICRfWzFdID4gMTUgb3IgJF9bMV0gPCAwKSB7CiAgICAgICAgQ2FycDo6Y2FycCAiVGhlIGFjY2VwdGFibGUgcmFuZ2Ugb2YgaW5kZW50X2xlbmd0aCgpIGlzIDAgdG8gMTUuIjsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRfWzBdLT57aW5kZW50X2xlbmd0aH0gPSAkX1sxXTsKICAgIH0KICAgICRfWzBdOwp9CgpzdWIgZ2V0X2luZGVudF9sZW5ndGggewogICAgJF9bMF0tPntpbmRlbnRfbGVuZ3RofTsKfQoKc3ViIHNvcnRfYnkgewogICAgJF9bMF0tPntzb3J0X2J5fSA9IGRlZmluZWQgJF9bMV0gPyAkX1sxXSA6IDE7CiAgICAkX1swXTsKfQoKc3ViIGFsbG93X2JpZ2ludCB7CiAgICBDYXJwOjpjYXJwKCJhbGxvd19iaWdpbnQoKSBpcyBvYnNvbGV0ZWQuIHVzZSBhbGxvd19iaWdudW0oKSBpbnN0ZWQuIik7Cn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCiMjIwojIyMgUGVybCA9PiBKU09OCiMjIwoKCnsgIyBDb252ZXJ0CgogICAgbXkgJG1heF9kZXB0aDsKICAgIG15ICRpbmRlbnQ7CiAgICBteSAkYXNjaWk7CiAgICBteSAkbGF0aW4xOwogICAgbXkgJHV0Zjg7CiAgICBteSAkc3BhY2VfYmVmb3JlOwogICAgbXkgJHNwYWNlX2FmdGVyOwogICAgbXkgJGNhbm9uaWNhbDsKICAgIG15ICRhbGxvd19ibGVzc2VkOwogICAgbXkgJGNvbnZlcnRfYmxlc3NlZDsKCiAgICBteSAkaW5kZW50X2xlbmd0aDsKICAgIG15ICRlc2NhcGVfc2xhc2g7CiAgICBteSAkYmlnbnVtOwogICAgbXkgJGFzX25vbmJsZXNzZWQ7CgogICAgbXkgJGRlcHRoOwogICAgbXkgJGluZGVudF9jb3VudDsKICAgIG15ICRrZXlzb3J0OwoKCiAgICBzdWIgUFBfZW5jb2RlX2pzb24gewogICAgICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICAgICAgbXkgJG9iaiAgPSBzaGlmdDsKCiAgICAgICAgJGluZGVudF9jb3VudCA9IDA7CiAgICAgICAgJGRlcHRoICAgICAgICA9IDA7CgogICAgICAgIG15ICRpZHggPSAkc2VsZi0+e1BST1BTfTsKCiAgICAgICAgKCRhc2NpaSwgJGxhdGluMSwgJHV0ZjgsICRpbmRlbnQsICRjYW5vbmljYWwsICRzcGFjZV9iZWZvcmUsICRzcGFjZV9hZnRlciwgJGFsbG93X2JsZXNzZWQsCiAgICAgICAgICAgICRjb252ZXJ0X2JsZXNzZWQsICRlc2NhcGVfc2xhc2gsICRiaWdudW0sICRhc19ub25ibGVzc2VkKQogICAgICAgICA9IEB7JGlkeH1bUF9BU0NJSSAuLiBQX1NQQUNFX0FGVEVSLCBQX0FMTE9XX0JMRVNTRUQsIFBfQ09OVkVSVF9CTEVTU0VELAogICAgICAgICAgICAgICAgICAgIFBfRVNDQVBFX1NMQVNILCBQX0FMTE9XX0JJR05VTSwgUF9BU19OT05CTEVTU0VEXTsKCiAgICAgICAgKCRtYXhfZGVwdGgsICRpbmRlbnRfbGVuZ3RoKSA9IEB7JHNlbGZ9e3F3L21heF9kZXB0aCBpbmRlbnRfbGVuZ3RoL307CgogICAgICAgICRrZXlzb3J0ID0gJGNhbm9uaWNhbCA/IHN1YiB7ICRhIGNtcCAkYiB9IDogdW5kZWY7CgogICAgICAgIGlmICgkc2VsZi0+e3NvcnRfYnl9KSB7CiAgICAgICAgICAgICRrZXlzb3J0ID0gcmVmKCRzZWxmLT57c29ydF9ieX0pIGVxICdDT0RFJyA/ICRzZWxmLT57c29ydF9ieX0KICAgICAgICAgICAgICAgICAgICAgOiAkc2VsZi0+e3NvcnRfYnl9ID1+IC9cRCsvICAgICAgID8gJHNlbGYtPntzb3J0X2J5fQogICAgICAgICAgICAgICAgICAgICA6IHN1YiB7ICRhIGNtcCAkYiB9OwogICAgICAgIH0KCiAgICAgICAgZW5jb2RlX2Vycm9yKCJoYXNoLSBvciBhcnJheXJlZiBleHBlY3RlZCAobm90IGEgc2ltcGxlIHNjYWxhciwgdXNlIGFsbG93X25vbnJlZiB0byBhbGxvdyB0aGlzKSIpCiAgICAgICAgICAgICBpZighcmVmICRvYmogYW5kICEkaWR4LT5bIFBfQUxMT1dfTk9OUkVGIF0pOwoKICAgICAgICBteSAkc3RyICA9ICRzZWxmLT5vYmplY3RfdG9fanNvbigkb2JqKTsKCiAgICAgICAgJHN0ciAuPSAiXG4iIGlmICggJGluZGVudCApOyAjIEpTT046OlhTIDIuMjYgY29tcGF0aWJsZQoKICAgICAgICB1bmxlc3MgKCRhc2NpaSBvciAkbGF0aW4xIG9yICR1dGY4KSB7CiAgICAgICAgICAgIHV0Zjg6OnVwZ3JhZGUoJHN0cik7CiAgICAgICAgfQoKICAgICAgICBpZiAoJGlkeC0+WyBQX1NIUklOSyBdKSB7CiAgICAgICAgICAgIHV0Zjg6OmRvd25ncmFkZSgkc3RyLCAxKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkc3RyOwogICAgfQoKCiAgICBzdWIgb2JqZWN0X3RvX2pzb24gewogICAgICAgIG15ICgkc2VsZiwgJG9iaikgPSBAXzsKICAgICAgICBteSAkdHlwZSA9IHJlZigkb2JqKTsKCiAgICAgICAgaWYoJHR5cGUgZXEgJ0hBU0gnKXsKICAgICAgICAgICAgcmV0dXJuICRzZWxmLT5oYXNoX3RvX2pzb24oJG9iaik7CiAgICAgICAgfQogICAgICAgIGVsc2lmKCR0eXBlIGVxICdBUlJBWScpewogICAgICAgICAgICByZXR1cm4gJHNlbGYtPmFycmF5X3RvX2pzb24oJG9iaik7CiAgICAgICAgfQogICAgICAgIGVsc2lmICgkdHlwZSkgeyAjIGJsZXNzZWQgb2JqZWN0PwogICAgICAgICAgICBpZiAoYmxlc3NlZCgkb2JqKSkgewoKICAgICAgICAgICAgICAgIHJldHVybiAkc2VsZi0+dmFsdWVfdG9fanNvbigkb2JqKSBpZiAoICRvYmotPmlzYSgnSlNPTjo6UFA6OkJvb2xlYW4nKSApOwoKICAgICAgICAgICAgICAgIGlmICggJGNvbnZlcnRfYmxlc3NlZCBhbmQgJG9iai0+Y2FuKCdUT19KU09OJykgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJHJlc3VsdCA9ICRvYmotPlRPX0pTT04oKTsKICAgICAgICAgICAgICAgICAgICBpZiAoIGRlZmluZWQgJHJlc3VsdCBhbmQgb3ZlcmxvYWQ6Ok92ZXJsb2FkZWQoICRvYmogKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBvdmVybG9hZDo6U3RyVmFsKCAkb2JqICkgZXEgJHJlc3VsdCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kZV9lcnJvciggc3ByaW50ZigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXM6OlRPX0pTT04gbWV0aG9kIHJldHVybmVkIHNhbWUgb2JqZWN0IGFzIHdhcyBwYXNzZWQgaW5zdGVhZCBvZiBhIG5ldyBvbmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZiAkb2JqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHJldHVybiAkc2VsZi0+b2JqZWN0X3RvX2pzb24oICRyZXN1bHQgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICByZXR1cm4gIiRvYmoiIGlmICggJGJpZ251bSBhbmQgX2lzX2JpZ251bSgkb2JqKSApOwogICAgICAgICAgICAgICAgcmV0dXJuICRzZWxmLT5ibGVzc2VkX3RvX2pzb24oJG9iaikgaWYgKCRhbGxvd19ibGVzc2VkIGFuZCAkYXNfbm9uYmxlc3NlZCk7ICMgd2lsbCBiZSByZW1vdmVkLgoKICAgICAgICAgICAgICAgIGVuY29kZV9lcnJvciggc3ByaW50ZigiZW5jb3VudGVyZWQgb2JqZWN0ICclcycsIGJ1dCBuZWl0aGVyIGFsbG93X2JsZXNzZWQgIgogICAgICAgICAgICAgICAgICAgIC4gIm5vciBjb252ZXJ0X2JsZXNzZWQgc2V0dGluZ3MgYXJlIGVuYWJsZWQiLCAkb2JqKQogICAgICAgICAgICAgICAgKSB1bmxlc3MgKCRhbGxvd19ibGVzc2VkKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gJ251bGwnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuICRzZWxmLT52YWx1ZV90b19qc29uKCRvYmopOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICAgIHJldHVybiAkc2VsZi0+dmFsdWVfdG9fanNvbigkb2JqKTsKICAgICAgICB9CiAgICB9CgoKICAgIHN1YiBoYXNoX3RvX2pzb24gewogICAgICAgIG15ICgkc2VsZiwgJG9iaikgPSBAXzsKICAgICAgICBteSAoJGssJHYpOwogICAgICAgIG15ICVyZXM7CgogICAgICAgIGVuY29kZV9lcnJvcigianNvbiB0ZXh0IG9yIHBlcmwgc3RydWN0dXJlIGV4Y2VlZHMgbWF4aW11bSBuZXN0aW5nIGxldmVsIChtYXhfZGVwdGggc2V0IHRvbyBsb3c/KSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCsrJGRlcHRoID4gJG1heF9kZXB0aCk7CgogICAgICAgIG15ICgkcHJlLCAkcG9zdCkgPSAkaW5kZW50ID8gJHNlbGYtPl91cF9pbmRlbnQoKSA6ICgnJywgJycpOwogICAgICAgIG15ICRkZWwgPSAoJHNwYWNlX2JlZm9yZSA/ICcgJyA6ICcnKSAuICc6JyAuICgkc3BhY2VfYWZ0ZXIgPyAnICcgOiAnJyk7CgogICAgICAgIGlmICggbXkgJHRpZV9jbGFzcyA9IHRpZWQgJSRvYmogKSB7CiAgICAgICAgICAgIGlmICggJHRpZV9jbGFzcy0+Y2FuKCdUSUVIQVNIJykgKSB7CiAgICAgICAgICAgICAgICAkdGllX2NsYXNzID1+IHMvPS4rJC8vOwogICAgICAgICAgICAgICAgdGllICVyZXMsICR0aWVfY2xhc3M7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgSW4gdGhlIG9sZCBQZXJsIHZlcmlvbnMsIHRpZWQgaGFzaGVzIGluIGJvb2wgY29udGV4dCBkaWRuJ3Qgd29yay4KICAgICAgICAjIFNvLCB3ZSBjYW4ndCB1c2Ugc3VjaCBhIHdheSAoJXJlcyA/IGEgOiBiKQogICAgICAgIG15ICRoYXM7CgogICAgICAgIGZvciBteSAkayAoa2V5cyAlJG9iaikgewogICAgICAgICAgICBteSAkdiA9ICRvYmotPnska307CiAgICAgICAgICAgICRyZXN7JGt9ID0gJHNlbGYtPm9iamVjdF90b19qc29uKCR2KSB8fCAkc2VsZi0+dmFsdWVfdG9fanNvbigkdik7CiAgICAgICAgICAgICRoYXMgPSAxIHVubGVzcyAoICRoYXMgKTsKICAgICAgICB9CgogICAgICAgIC0tJGRlcHRoOwogICAgICAgICRzZWxmLT5fZG93bl9pbmRlbnQoKSBpZiAoJGluZGVudCk7CgogICAgICAgIHJldHVybiAneycgLiAoICRoYXMgPyAkcHJlIDogJycgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaW5kZW50CiAgICAgICAgICAgICAgICAgICAuICggJGhhcyA/IGpvaW4oIiwkcHJlIiwgbWFwIHsgdXRmODo6ZGVjb2RlKCRfKSBpZiAoJF0gPCA1LjAwOCk7ICAgICAgICAgIyBrZXkgZm9yIFBlcmwgNS42CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ190b19qc29uKCRzZWxmLCAkXykgLiAkZGVsIC4gJHJlc3skX30gIyBrZXkgOiB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gX3NvcnQoICRzZWxmLCBcJXJlcyApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAuICRwb3N0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbmRlbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJwogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAuICd9JzsKICAgIH0KCgogICAgc3ViIGFycmF5X3RvX2pzb24gewogICAgICAgIG15ICgkc2VsZiwgJG9iaikgPSBAXzsKICAgICAgICBteSBAcmVzOwoKICAgICAgICBlbmNvZGVfZXJyb3IoImpzb24gdGV4dCBvciBwZXJsIHN0cnVjdHVyZSBleGNlZWRzIG1heGltdW0gbmVzdGluZyBsZXZlbCAobWF4X2RlcHRoIHNldCB0b28gbG93PykiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrKyRkZXB0aCA+ICRtYXhfZGVwdGgpOwoKICAgICAgICBteSAoJHByZSwgJHBvc3QpID0gJGluZGVudCA/ICRzZWxmLT5fdXBfaW5kZW50KCkgOiAoJycsICcnKTsKCiAgICAgICAgaWYgKG15ICR0aWVfY2xhc3MgPSB0aWVkIEAkb2JqKSB7CiAgICAgICAgICAgIGlmICggJHRpZV9jbGFzcy0+Y2FuKCdUSUVBUlJBWScpICkgewogICAgICAgICAgICAgICAgJHRpZV9jbGFzcyA9fiBzLz0uKyQvLzsKICAgICAgICAgICAgICAgIHRpZSBAcmVzLCAkdGllX2NsYXNzOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJHYgKEAkb2JqKXsKICAgICAgICAgICAgcHVzaCBAcmVzLCAkc2VsZi0+b2JqZWN0X3RvX2pzb24oJHYpIHx8ICRzZWxmLT52YWx1ZV90b19qc29uKCR2KTsKICAgICAgICB9CgogICAgICAgIC0tJGRlcHRoOwogICAgICAgICRzZWxmLT5fZG93bl9pbmRlbnQoKSBpZiAoJGluZGVudCk7CgogICAgICAgIHJldHVybiAnWycgLiAoIEByZXMgPyAkcHJlIDogJycgKSAuICggQHJlcyA/IGpvaW4oICIsJHByZSIsIEByZXMgKSAuICRwb3N0IDogJycgKSAuICddJzsKICAgIH0KCgogICAgc3ViIHZhbHVlX3RvX2pzb24gewogICAgICAgIG15ICgkc2VsZiwgJHZhbHVlKSA9IEBfOwoKICAgICAgICByZXR1cm4gJ251bGwnIGlmKCFkZWZpbmVkICR2YWx1ZSk7CgogICAgICAgIG15ICRiX29iaiA9IEI6OnN2cmVmXzJvYmplY3QoXCR2YWx1ZSk7ICAjIGZvciByb3VuZCB0cmlwIHByb2JsZW0KICAgICAgICBteSAkZmxhZ3MgPSAkYl9vYmotPkZMQUdTOwoKICAgICAgICByZXR1cm4gJHZhbHVlICMgYXMgaXMgCiAgICAgICAgICAgIGlmICggKCAgICAkZmxhZ3MgJiBCOjpTVmZfSU9LIG9yICRmbGFncyAmIEI6OlNWcF9JT0sKICAgICAgICAgICAgICAgICAgIG9yICRmbGFncyAmIEI6OlNWZl9OT0sgb3IgJGZsYWdzICYgQjo6U1ZwX05PSwogICAgICAgICAgICAgICAgICkgYW5kICEoJGZsYWdzICYgQjo6U1ZmX1BPSyApCiAgICAgICAgICAgICk7ICMgU3ZUWVBFIGlzIElWIG9yIE5WPwoKICAgICAgICBteSAkdHlwZSA9IHJlZigkdmFsdWUpOwoKICAgICAgICBpZighJHR5cGUpewogICAgICAgICAgICByZXR1cm4gc3RyaW5nX3RvX2pzb24oJHNlbGYsICR2YWx1ZSk7CiAgICAgICAgfQogICAgICAgIGVsc2lmKCBibGVzc2VkKCR2YWx1ZSkgYW5kICAkdmFsdWUtPmlzYSgnSlNPTjo6UFA6OkJvb2xlYW4nKSApewogICAgICAgICAgICByZXR1cm4gJCR2YWx1ZSA9PSAxID8gJ3RydWUnIDogJ2ZhbHNlJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCR0eXBlKSB7CiAgICAgICAgICAgIGlmICgob3ZlcmxvYWQ6OlN0clZhbCgkdmFsdWUpID1+IC89KFx3KykvKVswXSkgewogICAgICAgICAgICAgICAgcmV0dXJuICRzZWxmLT52YWx1ZV90b19qc29uKCIkdmFsdWUiKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCR0eXBlIGVxICdTQ0FMQVInIGFuZCBkZWZpbmVkICQkdmFsdWUpIHsKICAgICAgICAgICAgICAgIHJldHVybiAgICQkdmFsdWUgZXEgJzEnID8gJ3RydWUnCiAgICAgICAgICAgICAgICAgICAgICAgOiAkJHZhbHVlIGVxICcwJyA/ICdmYWxzZScKICAgICAgICAgICAgICAgICAgICAgICA6ICRzZWxmLT57UFJPUFN9LT5bIFBfQUxMT1dfVU5LTk9XTiBdID8gJ251bGwnCiAgICAgICAgICAgICAgICAgICAgICAgOiBlbmNvZGVfZXJyb3IoImNhbm5vdCBlbmNvZGUgcmVmZXJlbmNlIHRvIHNjYWxhciIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAgaWYgKCAkc2VsZi0+e1BST1BTfS0+WyBQX0FMTE9XX1VOS05PV04gXSApIHsKICAgICAgICAgICAgICAgICByZXR1cm4gJ251bGwnOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgaWYgKCAkdHlwZSBlcSAnU0NBTEFSJyBvciAkdHlwZSBlcSAnUkVGJyApIHsKICAgICAgICAgICAgICAgICAgICBlbmNvZGVfZXJyb3IoImNhbm5vdCBlbmNvZGUgcmVmZXJlbmNlIHRvIHNjYWxhciIpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBlbmNvZGVfZXJyb3IoImVuY291bnRlcmVkICR2YWx1ZSwgYnV0IEpTT04gY2FuIG9ubHkgcmVwcmVzZW50IHJlZmVyZW5jZXMgdG8gYXJyYXlzIG9yIGhhc2hlcyIpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICByZXR1cm4gJHNlbGYtPntmYWxsYmFja30tPigkdmFsdWUpCiAgICAgICAgICAgICAgICAgaWYgKCRzZWxmLT57ZmFsbGJhY2t9IGFuZCByZWYoJHNlbGYtPntmYWxsYmFja30pIGVxICdDT0RFJyk7CiAgICAgICAgICAgIHJldHVybiAnbnVsbCc7CiAgICAgICAgfQoKICAgIH0KCgogICAgbXkgJWVzYyA9ICgKICAgICAgICAiXG4iID0+ICdcbicsCiAgICAgICAgIlxyIiA9PiAnXHInLAogICAgICAgICJcdCIgPT4gJ1x0JywKICAgICAgICAiXGYiID0+ICdcZicsCiAgICAgICAgIlxiIiA9PiAnXGInLAogICAgICAgICJcIiIgPT4gJ1wiJywKICAgICAgICAiXFwiID0+ICdcXFxcJywKICAgICAgICAiXCciID0+ICdcXFwnJywKICAgICk7CgoKICAgIHN1YiBzdHJpbmdfdG9fanNvbiB7CiAgICAgICAgbXkgKCRzZWxmLCAkYXJnKSA9IEBfOwoKICAgICAgICAkYXJnID1+IHMvKFtceDIyXHg1Y1xuXHJcdFxmXGJdKS8kZXNjeyQxfS9nOwogICAgICAgICRhcmcgPX4gcy9cLy9cXFwvL2cgaWYgKCRlc2NhcGVfc2xhc2gpOwogICAgICAgICRhcmcgPX4gcy8oW1x4MDAtXHgwOFx4MGJceDBlLVx4MWZdKS8nXFx1MDAnIC4gdW5wYWNrKCdIMicsICQxKS9lZzsKCiAgICAgICAgaWYgKCRhc2NpaSkgewogICAgICAgICAgICAkYXJnID0gSlNPTl9QUF9lbmNvZGVfYXNjaWkoJGFyZyk7CiAgICAgICAgfQoKICAgICAgICBpZiAoJGxhdGluMSkgewogICAgICAgICAgICAkYXJnID0gSlNPTl9QUF9lbmNvZGVfbGF0aW4xKCRhcmcpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCR1dGY4KSB7CiAgICAgICAgICAgIHV0Zjg6OmVuY29kZSgkYXJnKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAnIicgLiAkYXJnIC4gJyInOwogICAgfQoKCiAgICBzdWIgYmxlc3NlZF90b19qc29uIHsKICAgICAgICBteSAkYl9vYmogPSBCOjpzdnJlZl8yb2JqZWN0KCRfWzFdKTsKICAgICAgICBpZiAoJGJfb2JqLT5pc2EoJ0I6OkhWJykpIHsKICAgICAgICAgICAgcmV0dXJuICRfWzBdLT5oYXNoX3RvX2pzb24oJF9bMV0pOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoJGJfb2JqLT5pc2EoJ0I6OkFWJykpIHsKICAgICAgICAgICAgcmV0dXJuICRfWzBdLT5hcnJheV90b19qc29uKCRfWzFdKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAnbnVsbCc7CiAgICAgICAgfQogICAgfQoKCiAgICBzdWIgZW5jb2RlX2Vycm9yIHsKICAgICAgICBteSAkZXJyb3IgID0gc2hpZnQ7CiAgICAgICAgQ2FycDo6Y3JvYWsgIiRlcnJvciI7CiAgICB9CgoKICAgIHN1YiBfc29ydCB7CiAgICAgICAgbXkgKCRzZWxmLCAkcmVzKSA9IEBfOwogICAgICAgIGRlZmluZWQgJGtleXNvcnQgPyAoc29ydCAka2V5c29ydCAoa2V5cyAlJHJlcykpIDoga2V5cyAlJHJlczsKICAgIH0KCgogICAgc3ViIF91cF9pbmRlbnQgewogICAgICAgIG15ICRzZWxmICA9IHNoaWZ0OwogICAgICAgIG15ICRzcGFjZSA9ICcgJyB4ICRpbmRlbnRfbGVuZ3RoOwoKICAgICAgICBteSAoJHByZSwkcG9zdCkgPSAoJycsJycpOwoKICAgICAgICAkcG9zdCA9ICJcbiIgLiAkc3BhY2UgeCAkaW5kZW50X2NvdW50OwoKICAgICAgICAkaW5kZW50X2NvdW50Kys7CgogICAgICAgICRwcmUgPSAiXG4iIC4gJHNwYWNlIHggJGluZGVudF9jb3VudDsKCiAgICAgICAgcmV0dXJuICgkcHJlLCRwb3N0KTsKICAgIH0KCgogICAgc3ViIF9kb3duX2luZGVudCB7ICRpbmRlbnRfY291bnQtLTsgfQoKCiAgICBzdWIgUFBfZW5jb2RlX2JveCB7CiAgICAgICAgewogICAgICAgICAgICBkZXB0aCAgICAgICAgPT4gJGRlcHRoLAogICAgICAgICAgICBpbmRlbnRfY291bnQgPT4gJGluZGVudF9jb3VudCwKICAgICAgICB9OwogICAgfQoKfSAjIENvbnZlcnQKCgpzdWIgX2VuY29kZV9hc2NpaSB7CiAgICBqb2luKCcnLAogICAgICAgIG1hcCB7CiAgICAgICAgICAgICRfIDw9IDEyNyA/CiAgICAgICAgICAgICAgICBjaHIoJF8pIDoKICAgICAgICAgICAgJF8gPD0gNjU1MzUgPwogICAgICAgICAgICAgICAgc3ByaW50ZignXHUlMDR4JywgJF8pIDogc3ByaW50ZignXHUleFx1JXgnLCBfZW5jb2RlX3N1cnJvZ2F0ZXMoJF8pKTsKICAgICAgICB9IHVucGFjaygnVSonLCAkX1swXSkKICAgICk7Cn0KCgpzdWIgX2VuY29kZV9sYXRpbjEgewogICAgam9pbignJywKICAgICAgICBtYXAgewogICAgICAgICAgICAkXyA8PSAyNTUgPwogICAgICAgICAgICAgICAgY2hyKCRfKSA6CiAgICAgICAgICAgICRfIDw9IDY1NTM1ID8KICAgICAgICAgICAgICAgIHNwcmludGYoJ1x1JTA0eCcsICRfKSA6IHNwcmludGYoJ1x1JXhcdSV4JywgX2VuY29kZV9zdXJyb2dhdGVzKCRfKSk7CiAgICAgICAgfSB1bnBhY2soJ1UqJywgJF9bMF0pCiAgICApOwp9CgoKc3ViIF9lbmNvZGVfc3Vycm9nYXRlcyB7ICMgZnJvbSBwZXJsdW5pY29kZQogICAgbXkgJHVuaSA9ICRfWzBdIC0gMHgxMDAwMDsKICAgIHJldHVybiAoJHVuaSAvIDB4NDAwICsgMHhEODAwLCAkdW5pICUgMHg0MDAgKyAweERDMDApOwp9CgoKc3ViIF9pc19iaWdudW0gewogICAgJF9bMF0tPmlzYSgnTWF0aDo6QmlnSW50Jykgb3IgJF9bMF0tPmlzYSgnTWF0aDo6QmlnRmxvYXQnKTsKfQoKCgojCiMgSlNPTiA9PiBQZXJsCiMKCm15ICRtYXhfaW50c2l6ZTsKCkJFR0lOIHsKICAgIG15ICRjaGVja2ludCA9IDExMTE7CiAgICBmb3IgbXkgJGQgKDUuLjMwKSB7CiAgICAgICAgJGNoZWNraW50IC49IDE7CiAgICAgICAgbXkgJGludCAgID0gZXZhbCBxcXwgJGNoZWNraW50IHw7CiAgICAgICAgaWYgKCRpbnQgPX4gL1tlRV0vKSB7CiAgICAgICAgICAgICRtYXhfaW50c2l6ZSA9ICRkIC0gMTsKICAgICAgICAgICAgbGFzdDsKICAgICAgICB9CiAgICB9Cn0KCnsgIyBQQVJTRSAKCiAgICBteSAlZXNjYXBlcyA9ICggIyAgYnkgSmVyZW15IE11aGxpY2ggPGptdWhsaWNoIFthdF0gYml0Zmxvb2Qub3JnPgogICAgICAgIGIgICAgPT4gIlx4OCIsCiAgICAgICAgdCAgICA9PiAiXHg5IiwKICAgICAgICBuICAgID0+ICJceEEiLAogICAgICAgIGYgICAgPT4gIlx4QyIsCiAgICAgICAgciAgICA9PiAiXHhEIiwKICAgICAgICAnXFwnID0+ICdcXCcsCiAgICAgICAgJyInICA9PiAnIicsCiAgICAgICAgJy8nICA9PiAnLycsCiAgICApOwoKICAgIG15ICR0ZXh0OyAjIGpzb24gZGF0YQogICAgbXkgJGF0OyAgICMgb2Zmc2V0CiAgICBteSAkY2g7ICAgIyAxY2hyYWN0ZXIKICAgIG15ICRsZW47ICAjIHRleHQgbGVuZ3RoIChjaGFuZ2VkIGFjY29yZGluZyB0byBVVEY4IG9yIE5PTiBVVEY4KQogICAgIyBJTlRFUk5BTAogICAgbXkgJGRlcHRoOyAgICAgICAgICAjIG5lc3QgY291bnRlcgogICAgbXkgJGVuY29kaW5nOyAgICAgICAjIGpzb24gdGV4dCBlbmNvZGluZwogICAgbXkgJGlzX3ZhbGlkX3V0Zjg7ICAjIHRlbXAgdmFyaWFibGUKICAgIG15ICR1dGY4X2xlbjsgICAgICAgIyB1dGY4IGJ5dGUgbGVuZ3RoCiAgICAjIEZMQUdTCiAgICBteSAkdXRmODsgICAgICAgICAgICMgbXVzdCBiZSB1dGY4CiAgICBteSAkbWF4X2RlcHRoOyAgICAgICMgbWF4IG5lc3QgbnVibWVyIG9mIG9iamVjdHMgYW5kIGFycmF5cwogICAgbXkgJG1heF9zaXplOwogICAgbXkgJHJlbGF4ZWQ7CiAgICBteSAkY2Jfb2JqZWN0OwogICAgbXkgJGNiX3NrX29iamVjdDsKCiAgICBteSAkRl9IT09LOwoKICAgIG15ICRhbGxvd19iaWdpbnQ7ICAgIyB1c2luZyBNYXRoOjpCaWdJbnQKICAgIG15ICRzaW5nbGVxdW90ZTsgICAgIyBsb29zZWx5IHF1b3RpbmcKICAgIG15ICRsb29zZTsgICAgICAgICAgIyAKICAgIG15ICRhbGxvd19iYXJla2V5OyAgIyBiYXJlS2V5CgogICAgIyAkb3B0IGZsYWcKICAgICMgMHgwMDAwMDAwMSAuLi4uIGRlY29kZV9wcmVmaXgKICAgICMgMHgxMDAwMDAwMCAuLi4uIGluY3JfcGFyc2UKCiAgICBzdWIgUFBfZGVjb2RlX2pzb24gewogICAgICAgIG15ICgkc2VsZiwgJG9wdCk7ICMgJG9wdCBpcyBhbiBlZmZlY3RpdmUgZmxhZyBkdXJpbmcgdGhpcyBkZWNvZGVfanNvbi4KCiAgICAgICAgKCRzZWxmLCAkdGV4dCwgJG9wdCkgPSBAXzsKCiAgICAgICAgKCRhdCwgJGNoLCAkZGVwdGgpID0gKDAsICcnLCAwKTsKCiAgICAgICAgaWYgKCAhZGVmaW5lZCAkdGV4dCBvciByZWYgJHRleHQgKSB7CiAgICAgICAgICAgIGRlY29kZV9lcnJvcigibWFsZm9ybWVkIEpTT04gc3RyaW5nLCBuZWl0aGVyIGFycmF5LCBvYmplY3QsIG51bWJlciwgc3RyaW5nIG9yIGF0b20iKTsKICAgICAgICB9CgogICAgICAgIG15ICRpZHggPSAkc2VsZi0+e1BST1BTfTsKCiAgICAgICAgKCR1dGY4LCAkcmVsYXhlZCwgJGxvb3NlLCAkYWxsb3dfYmlnaW50LCAkYWxsb3dfYmFyZWtleSwgJHNpbmdsZXF1b3RlKQogICAgICAgICAgICA9IEB7JGlkeH1bUF9VVEY4LCBQX1JFTEFYRUQsIFBfTE9PU0UgLi4gUF9BTExPV19TSU5HTEVRVU9URV07CgogICAgICAgIGlmICggJHV0ZjggKSB7CiAgICAgICAgICAgIHV0Zjg6OmRvd25ncmFkZSggJHRleHQsIDEgKSBvciBDYXJwOjpjcm9haygiV2lkZSBjaGFyYWN0ZXIgaW4gc3Vicm91dGluZSBlbnRyeSIpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdXRmODo6dXBncmFkZSggJHRleHQgKTsKICAgICAgICB9CgogICAgICAgICRsZW4gPSBsZW5ndGggJHRleHQ7CgogICAgICAgICgkbWF4X2RlcHRoLCAkbWF4X3NpemUsICRjYl9vYmplY3QsICRjYl9za19vYmplY3QsICRGX0hPT0spCiAgICAgICAgICAgICA9IEB7JHNlbGZ9e3F3L21heF9kZXB0aCAgbWF4X3NpemUgY2Jfb2JqZWN0IGNiX3NrX29iamVjdCBGX0hPT0svfTsKCiAgICAgICAgaWYgKCRtYXhfc2l6ZSA+IDEpIHsKICAgICAgICAgICAgdXNlIGJ5dGVzOwogICAgICAgICAgICBteSAkYnl0ZXMgPSBsZW5ndGggJHRleHQ7CiAgICAgICAgICAgIGRlY29kZV9lcnJvcigKICAgICAgICAgICAgICAgIHNwcmludGYoImF0dGVtcHRlZCBkZWNvZGUgb2YgSlNPTiB0ZXh0IG9mICVzIGJ5dGVzIHNpemUsIGJ1dCBtYXhfc2l6ZSBpcyBzZXQgdG8gJXMiCiAgICAgICAgICAgICAgICAgICAgLCAkYnl0ZXMsICRtYXhfc2l6ZSksIDEKICAgICAgICAgICAgKSBpZiAoJGJ5dGVzID4gJG1heF9zaXplKTsKICAgICAgICB9CgogICAgICAgICMgQ3VycmVudGx5IG5vIGVmZmVjdAogICAgICAgICMgc2hvdWxkIHVzZSByZWdleHAKICAgICAgICBteSBAb2N0ZXRzID0gdW5wYWNrKCdDNCcsICR0ZXh0KTsKICAgICAgICAkZW5jb2RpbmcgPSAgICggJG9jdGV0c1swXSBhbmQgICRvY3RldHNbMV0pID8gJ1VURi04JwogICAgICAgICAgICAgICAgICAgIDogKCEkb2N0ZXRzWzBdIGFuZCAgJG9jdGV0c1sxXSkgPyAnVVRGLTE2QkUnCiAgICAgICAgICAgICAgICAgICAgOiAoISRvY3RldHNbMF0gYW5kICEkb2N0ZXRzWzFdKSA/ICdVVEYtMzJCRScKICAgICAgICAgICAgICAgICAgICA6ICggJG9jdGV0c1syXSAgICAgICAgICAgICAgICApID8gJ1VURi0xNkxFJwogICAgICAgICAgICAgICAgICAgIDogKCEkb2N0ZXRzWzJdICAgICAgICAgICAgICAgICkgPyAnVVRGLTMyTEUnCiAgICAgICAgICAgICAgICAgICAgOiAndW5rbm93bic7CgogICAgICAgIHdoaXRlKCk7ICMgcmVtb3ZlIGhlYWQgd2hpdGUgc3BhY2UKCiAgICAgICAgbXkgJHZhbGlkX3N0YXJ0ID0gZGVmaW5lZCAkY2g7ICMgSXMgdGhlcmUgYSBmaXJzdCBjaGFyYWN0ZXIgZm9yIEpTT04gc3RydWN0dXJlPwoKICAgICAgICBteSAkcmVzdWx0ID0gdmFsdWUoKTsKCiAgICAgICAgcmV0dXJuIHVuZGVmIGlmICggISRyZXN1bHQgJiYgKCAkb3B0ICYgMHgxMDAwMDAwMCApICk7ICMgZm9yIGluY3JfcGFyc2UKCiAgICAgICAgZGVjb2RlX2Vycm9yKCJtYWxmb3JtZWQgSlNPTiBzdHJpbmcsIG5laXRoZXIgYXJyYXksIG9iamVjdCwgbnVtYmVyLCBzdHJpbmcgb3IgYXRvbSIpIHVubGVzcyAkdmFsaWRfc3RhcnQ7CgogICAgICAgIGlmICggISRpZHgtPlsgUF9BTExPV19OT05SRUYgXSBhbmQgIXJlZiAkcmVzdWx0ICkgewogICAgICAgICAgICAgICAgZGVjb2RlX2Vycm9yKAogICAgICAgICAgICAgICAgJ0pTT04gdGV4dCBtdXN0IGJlIGFuIG9iamVjdCBvciBhcnJheSAoYnV0IGZvdW5kIG51bWJlciwgc3RyaW5nLCB0cnVlLCBmYWxzZSBvciBudWxsLCcKICAgICAgICAgICAgICAgICAgICAgICAuICcgdXNlIGFsbG93X25vbnJlZiB0byBhbGxvdyB0aGlzKScsIDEpOwogICAgICAgIH0KCiAgICAgICAgQ2FycDo6Y3JvYWsoJ3NvbWV0aGluZyB3cm9uZy4nKSBpZiAkbGVuIDwgJGF0OyAjIHdlIHdvbid0IGFycml2ZSBoZXJlLgoKICAgICAgICBteSAkY29uc3VtZWQgPSBkZWZpbmVkICRjaCA/ICRhdCAtIDEgOiAkYXQ7ICMgY29uc3VtZWQgSlNPTiB0ZXh0IGxlbmd0aAoKICAgICAgICB3aGl0ZSgpOyAjIHJlbW92ZSB0YWlsIHdoaXRlIHNwYWNlCgogICAgICAgIGlmICggJGNoICkgewogICAgICAgICAgICByZXR1cm4gKCAkcmVzdWx0LCAkY29uc3VtZWQgKSBpZiAoJG9wdCAmIDB4MDAwMDAwMDEpOyAjIGFsbCByaWdodCBpZiBkZWNvZGVfcHJlZml4CiAgICAgICAgICAgIGRlY29kZV9lcnJvcigiZ2FyYmFnZSBhZnRlciBKU09OIG9iamVjdCIpOwogICAgICAgIH0KCiAgICAgICAgKCAkb3B0ICYgMHgwMDAwMDAwMSApID8gKCAkcmVzdWx0LCAkY29uc3VtZWQgKSA6ICRyZXN1bHQ7CiAgICB9CgoKICAgIHN1YiBuZXh0X2NociB7CiAgICAgICAgcmV0dXJuICRjaCA9IHVuZGVmIGlmKCRhdCA+PSAkbGVuKTsKICAgICAgICAkY2ggPSBzdWJzdHIoJHRleHQsICRhdCsrLCAxKTsKICAgIH0KCgogICAgc3ViIHZhbHVlIHsKICAgICAgICB3aGl0ZSgpOwogICAgICAgIHJldHVybiAgICAgICAgICBpZighZGVmaW5lZCAkY2gpOwogICAgICAgIHJldHVybiBvYmplY3QoKSBpZigkY2ggZXEgJ3snKTsKICAgICAgICByZXR1cm4gYXJyYXkoKSAgaWYoJGNoIGVxICdbJyk7CiAgICAgICAgcmV0dXJuIHN0cmluZygpIGlmKCRjaCBlcSAnIicgb3IgKCRzaW5nbGVxdW90ZSBhbmQgJGNoIGVxICInIikpOwogICAgICAgIHJldHVybiBudW1iZXIoKSBpZigkY2ggPX4gL1swLTldLyBvciAkY2ggZXEgJy0nKTsKICAgICAgICByZXR1cm4gd29yZCgpOwogICAgfQoKICAgIHN1YiBzdHJpbmcgewogICAgICAgIG15ICgkaSwgJHMsICR0LCAkdSk7CiAgICAgICAgbXkgJHV0ZjE2OwogICAgICAgIG15ICRpc191dGY4OwoKICAgICAgICAoJGlzX3ZhbGlkX3V0ZjgsICR1dGY4X2xlbikgPSAoJycsIDApOwoKICAgICAgICAkcyA9ICcnOyAjIGJhc2ljYWxseSBVVEY4IGZsYWcgb24KCiAgICAgICAgaWYoJGNoIGVxICciJyBvciAoJHNpbmdsZXF1b3RlIGFuZCAkY2ggZXEgIiciKSl7CiAgICAgICAgICAgIG15ICRib3VuZENoYXIgPSAkY2ggaWYgKCRzaW5nbGVxdW90ZSk7CgogICAgICAgICAgICBPVVRFUjogd2hpbGUoIGRlZmluZWQobmV4dF9jaHIoKSkgKXsKCiAgICAgICAgICAgICAgICBpZigoISRzaW5nbGVxdW90ZSBhbmQgJGNoIGVxICciJykgb3IgKCRzaW5nbGVxdW90ZSBhbmQgJGNoIGVxICRib3VuZENoYXIpKXsKICAgICAgICAgICAgICAgICAgICBuZXh0X2NocigpOwoKICAgICAgICAgICAgICAgICAgICBpZiAoJHV0ZjE2KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlY29kZV9lcnJvcigibWlzc2luZyBsb3cgc3Vycm9nYXRlIGNoYXJhY3RlciBpbiBzdXJyb2dhdGUgcGFpciIpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgdXRmODo6ZGVjb2RlKCRzKSBpZigkaXNfdXRmOCk7CgogICAgICAgICAgICAgICAgICAgIHJldHVybiAkczsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmKCRjaCBlcSAnXFwnKXsKICAgICAgICAgICAgICAgICAgICBuZXh0X2NocigpOwogICAgICAgICAgICAgICAgICAgIGlmKGV4aXN0cyAkZXNjYXBlc3skY2h9KXsKICAgICAgICAgICAgICAgICAgICAgICAgJHMgLj0gJGVzY2FwZXN7JGNofTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYoJGNoIGVxICd1Jyl7ICMgVU5JQ09ERSBoYW5kbGluZwogICAgICAgICAgICAgICAgICAgICAgICBteSAkdSA9ICcnOwoKICAgICAgICAgICAgICAgICAgICAgICAgZm9yKDEuLjQpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNoID0gbmV4dF9jaHIoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgT1VURVIgaWYoJGNoICF+IC9bMC05YS1mQS1GXS8pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHUgLj0gJGNoOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAjIFUrRDgwMCAtIFUrREJGRgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHUgPX4gL15bZERdWzg5YWJBQl1bMC05YS1mQS1GXXsyfS8pIHsgIyBVVEYtMTYgaGlnaCBzdXJyb2dhdGU/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdXRmMTYgPSAkdTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAjIFUrREMwMCAtIFUrREZGRgogICAgICAgICAgICAgICAgICAgICAgICBlbHNpZiAoJHUgPX4gL15bZERdW2MtZkMtRl1bMC05YS1mQS1GXXsyfS8pIHsgIyBVVEYtMTYgbG93IHN1cnJvZ2F0ZT8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVubGVzcyAoZGVmaW5lZCAkdXRmMTYpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvZGVfZXJyb3IoIm1pc3NpbmcgaGlnaCBzdXJyb2dhdGUgY2hhcmFjdGVyIGluIHN1cnJvZ2F0ZSBwYWlyIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXNfdXRmOCA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcyAuPSBKU09OX1BQX2RlY29kZV9zdXJyb2dhdGVzKCR1dGYxNiwgJHUpIHx8IG5leHQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdXRmMTYgPSB1bmRlZjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZWZpbmVkICR1dGYxNikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29kZV9lcnJvcigic3Vycm9nYXRlIHBhaXIgZXhwZWN0ZWQiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoICggbXkgJGhleCA9IGhleCggJHUgKSApID4gMTI3ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpc191dGY4ID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcyAuPSBKU09OX1BQX2RlY29kZV91bmljb2RlKCR1KSB8fCBuZXh0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHMgLj0gY2hyICRoZXg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgIHVubGVzcyAoJGxvb3NlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXQgLT0gMjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29kZV9lcnJvcignaWxsZWdhbCBiYWNrc2xhc2ggZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZycpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICRzIC49ICRjaDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlewoKICAgICAgICAgICAgICAgICAgICBpZiAoIG9yZCAkY2ggID4gMTI3ICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICR1dGY4ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5sZXNzKCAkY2ggPSBpc192YWxpZF91dGY4KCRjaCkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF0IC09IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb2RlX2Vycm9yKCJtYWxmb3JtZWQgVVRGLTggY2hhcmFjdGVyIGluIEpTT04gc3RyaW5nIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXQgKz0gJHV0ZjhfbGVuIC0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0Zjg6OmVuY29kZSggJGNoICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICRpc191dGY4ID0gMTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmICghJGxvb3NlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkY2ggPX4gL1tceDAwLVx4MWZceDIyXHg1Y10vKSAgeyAjICcvJyBvawogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF0LS07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvZGVfZXJyb3IoJ2ludmFsaWQgY2hhcmFjdGVyIGVuY291bnRlcmVkIHdoaWxlIHBhcnNpbmcgSlNPTiBzdHJpbmcnKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJHMgLj0gJGNoOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBkZWNvZGVfZXJyb3IoInVuZXhwZWN0ZWQgZW5kIG9mIHN0cmluZyB3aGlsZSBwYXJzaW5nIEpTT04gc3RyaW5nIik7CiAgICB9CgoKICAgIHN1YiB3aGl0ZSB7CiAgICAgICAgd2hpbGUoIGRlZmluZWQgJGNoICApewogICAgICAgICAgICBpZigkY2ggbGUgJyAnKXsKICAgICAgICAgICAgICAgIG5leHRfY2hyKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYoJGNoIGVxICcvJyl7CiAgICAgICAgICAgICAgICBuZXh0X2NocigpOwogICAgICAgICAgICAgICAgaWYoZGVmaW5lZCAkY2ggYW5kICRjaCBlcSAnLycpewogICAgICAgICAgICAgICAgICAgIDEgd2hpbGUoZGVmaW5lZChuZXh0X2NocigpKSBhbmQgJGNoIG5lICJcbiIgYW5kICRjaCBuZSAiXHIiKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmKGRlZmluZWQgJGNoIGFuZCAkY2ggZXEgJyonKXsKICAgICAgICAgICAgICAgICAgICBuZXh0X2NocigpOwogICAgICAgICAgICAgICAgICAgIHdoaWxlKDEpewogICAgICAgICAgICAgICAgICAgICAgICBpZihkZWZpbmVkICRjaCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigkY2ggZXEgJyonKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihkZWZpbmVkKG5leHRfY2hyKCkpIGFuZCAkY2ggZXEgJy8nKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dF9jaHIoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRfY2hyKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29kZV9lcnJvcigiVW50ZXJtaW5hdGVkIGNvbW1lbnQiKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBuZXh0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgICAgICAkYXQtLTsKICAgICAgICAgICAgICAgICAgICBkZWNvZGVfZXJyb3IoIm1hbGZvcm1lZCBKU09OIHN0cmluZywgbmVpdGhlciBhcnJheSwgb2JqZWN0LCBudW1iZXIsIHN0cmluZyBvciBhdG9tIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgIGlmICgkcmVsYXhlZCBhbmQgJGNoIGVxICcjJykgeyAjIGNvcnJlY3RseT8KICAgICAgICAgICAgICAgICAgICBwb3MoJHRleHQpID0gJGF0OwogICAgICAgICAgICAgICAgICAgICR0ZXh0ID1+IC9cRyhbXlxuXSooPzpcclxufFxyfFxufCQpKS9nOwogICAgICAgICAgICAgICAgICAgICRhdCA9IHBvcygkdGV4dCk7CiAgICAgICAgICAgICAgICAgICAgbmV4dF9jaHI7CiAgICAgICAgICAgICAgICAgICAgbmV4dDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBsYXN0OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKCiAgICBzdWIgYXJyYXkgewogICAgICAgIG15ICRhICA9IFtdOwoKICAgICAgICBkZWNvZGVfZXJyb3IoJ2pzb24gdGV4dCBvciBwZXJsIHN0cnVjdHVyZSBleGNlZWRzIG1heGltdW0gbmVzdGluZyBsZXZlbCAobWF4X2RlcHRoIHNldCB0b28gbG93PyknKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCsrJGRlcHRoID4gJG1heF9kZXB0aCk7CgogICAgICAgIG5leHRfY2hyKCk7CiAgICAgICAgd2hpdGUoKTsKCiAgICAgICAgaWYoZGVmaW5lZCAkY2ggYW5kICRjaCBlcSAnXScpewogICAgICAgICAgICAtLSRkZXB0aDsKICAgICAgICAgICAgbmV4dF9jaHIoKTsKICAgICAgICAgICAgcmV0dXJuICRhOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgd2hpbGUoZGVmaW5lZCgkY2gpKXsKICAgICAgICAgICAgICAgIHB1c2ggQCRhLCB2YWx1ZSgpOwoKICAgICAgICAgICAgICAgIHdoaXRlKCk7CgogICAgICAgICAgICAgICAgaWYgKCFkZWZpbmVkICRjaCkgewogICAgICAgICAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYoJGNoIGVxICddJyl7CiAgICAgICAgICAgICAgICAgICAgLS0kZGVwdGg7CiAgICAgICAgICAgICAgICAgICAgbmV4dF9jaHIoKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGE7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYoJGNoIG5lICcsJyl7CiAgICAgICAgICAgICAgICAgICAgbGFzdDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBuZXh0X2NocigpOwogICAgICAgICAgICAgICAgd2hpdGUoKTsKCiAgICAgICAgICAgICAgICBpZiAoJHJlbGF4ZWQgYW5kICRjaCBlcSAnXScpIHsKICAgICAgICAgICAgICAgICAgICAtLSRkZXB0aDsKICAgICAgICAgICAgICAgICAgICBuZXh0X2NocigpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiAkYTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGRlY29kZV9lcnJvcigiLCBvciBdIGV4cGVjdGVkIHdoaWxlIHBhcnNpbmcgYXJyYXkiKTsKICAgIH0KCgogICAgc3ViIG9iamVjdCB7CiAgICAgICAgbXkgJG8gPSB7fTsKICAgICAgICBteSAkazsKCiAgICAgICAgZGVjb2RlX2Vycm9yKCdqc29uIHRleHQgb3IgcGVybCBzdHJ1Y3R1cmUgZXhjZWVkcyBtYXhpbXVtIG5lc3RpbmcgbGV2ZWwgKG1heF9kZXB0aCBzZXQgdG9vIGxvdz8pJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCsrJGRlcHRoID4gJG1heF9kZXB0aCk7CiAgICAgICAgbmV4dF9jaHIoKTsKICAgICAgICB3aGl0ZSgpOwoKICAgICAgICBpZihkZWZpbmVkICRjaCBhbmQgJGNoIGVxICd9Jyl7CiAgICAgICAgICAgIC0tJGRlcHRoOwogICAgICAgICAgICBuZXh0X2NocigpOwogICAgICAgICAgICBpZiAoJEZfSE9PSykgewogICAgICAgICAgICAgICAgcmV0dXJuIF9qc29uX29iamVjdF9ob29rKCRvKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJG87CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICB3aGlsZSAoZGVmaW5lZCAkY2gpIHsKICAgICAgICAgICAgICAgICRrID0gKCRhbGxvd19iYXJla2V5IGFuZCAkY2ggbmUgJyInIGFuZCAkY2ggbmUgIiciKSA/IGJhcmVLZXkoKSA6IHN0cmluZygpOwogICAgICAgICAgICAgICAgd2hpdGUoKTsKCiAgICAgICAgICAgICAgICBpZighZGVmaW5lZCAkY2ggb3IgJGNoIG5lICc6Jyl7CiAgICAgICAgICAgICAgICAgICAgJGF0LS07CiAgICAgICAgICAgICAgICAgICAgZGVjb2RlX2Vycm9yKCInOicgZXhwZWN0ZWQiKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBuZXh0X2NocigpOwogICAgICAgICAgICAgICAgJG8tPnska30gPSB2YWx1ZSgpOwogICAgICAgICAgICAgICAgd2hpdGUoKTsKCiAgICAgICAgICAgICAgICBsYXN0IGlmICghZGVmaW5lZCAkY2gpOwoKICAgICAgICAgICAgICAgIGlmKCRjaCBlcSAnfScpewogICAgICAgICAgICAgICAgICAgIC0tJGRlcHRoOwogICAgICAgICAgICAgICAgICAgIG5leHRfY2hyKCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRGX0hPT0spIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9qc29uX29iamVjdF9ob29rKCRvKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRvOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmKCRjaCBuZSAnLCcpewogICAgICAgICAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbmV4dF9jaHIoKTsKICAgICAgICAgICAgICAgIHdoaXRlKCk7CgogICAgICAgICAgICAgICAgaWYgKCRyZWxheGVkIGFuZCAkY2ggZXEgJ30nKSB7CiAgICAgICAgICAgICAgICAgICAgLS0kZGVwdGg7CiAgICAgICAgICAgICAgICAgICAgbmV4dF9jaHIoKTsKICAgICAgICAgICAgICAgICAgICBpZiAoJEZfSE9PSykgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2pzb25fb2JqZWN0X2hvb2soJG8pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gJG87CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9CgogICAgICAgIH0KCiAgICAgICAgJGF0LS07CiAgICAgICAgZGVjb2RlX2Vycm9yKCIsIG9yIH0gZXhwZWN0ZWQgd2hpbGUgcGFyc2luZyBvYmplY3QvaGFzaCIpOwogICAgfQoKCiAgICBzdWIgYmFyZUtleSB7ICMgZG9lc24ndCBzdHJpY3RseSBmb2xsb3cgU3RhbmRhcmQgRUNNQS0yNjIgM3JkIEVkaXRpb24KICAgICAgICBteSAka2V5OwogICAgICAgIHdoaWxlKCRjaCA9fiAvW15ceDAwLVx4MjNceDI1LVx4MkZceDNBLVx4NDBceDVCLVx4NUVceDYwXHg3Qi1ceDdGXS8pewogICAgICAgICAgICAka2V5IC49ICRjaDsKICAgICAgICAgICAgbmV4dF9jaHIoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRrZXk7CiAgICB9CgoKICAgIHN1YiB3b3JkIHsKICAgICAgICBteSAkd29yZCA9ICBzdWJzdHIoJHRleHQsJGF0LTEsNCk7CgogICAgICAgIGlmKCR3b3JkIGVxICd0cnVlJyl7CiAgICAgICAgICAgICRhdCArPSAzOwogICAgICAgICAgICBuZXh0X2NocjsKICAgICAgICAgICAgcmV0dXJuICRKU09OOjpQUDo6dHJ1ZTsKICAgICAgICB9CiAgICAgICAgZWxzaWYoJHdvcmQgZXEgJ251bGwnKXsKICAgICAgICAgICAgJGF0ICs9IDM7CiAgICAgICAgICAgIG5leHRfY2hyOwogICAgICAgICAgICByZXR1cm4gdW5kZWY7CiAgICAgICAgfQogICAgICAgIGVsc2lmKCR3b3JkIGVxICdmYWxzJyl7CiAgICAgICAgICAgICRhdCArPSAzOwogICAgICAgICAgICBpZihzdWJzdHIoJHRleHQsJGF0LDEpIGVxICdlJyl7CiAgICAgICAgICAgICAgICAkYXQrKzsKICAgICAgICAgICAgICAgIG5leHRfY2hyOwogICAgICAgICAgICAgICAgcmV0dXJuICRKU09OOjpQUDo6ZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRhdC0tOyAjIGZvciBkZWNvZGVfZXJyb3IgcmVwb3J0CgogICAgICAgIGRlY29kZV9lcnJvcigiJ251bGwnIGV4cGVjdGVkIikgIGlmICgkd29yZCA9fiAvXm4vKTsKICAgICAgICBkZWNvZGVfZXJyb3IoIid0cnVlJyBleHBlY3RlZCIpICBpZiAoJHdvcmQgPX4gL150Lyk7CiAgICAgICAgZGVjb2RlX2Vycm9yKCInZmFsc2UnIGV4cGVjdGVkIikgaWYgKCR3b3JkID1+IC9eZi8pOwogICAgICAgIGRlY29kZV9lcnJvcigibWFsZm9ybWVkIEpTT04gc3RyaW5nLCBuZWl0aGVyIGFycmF5LCBvYmplY3QsIG51bWJlciwgc3RyaW5nIG9yIGF0b20iKTsKICAgIH0KCgogICAgc3ViIG51bWJlciB7CiAgICAgICAgbXkgJG4gICAgPSAnJzsKICAgICAgICBteSAkdjsKCiAgICAgICAgIyBBY2NvcmRpbmcgdG8gUkZDNDYyNywgaGV4IG9yIG9jdCBkaWd0cyBhcmUgaW52YWxpZC4KICAgICAgICBpZigkY2ggZXEgJzAnKXsKICAgICAgICAgICAgbXkgJHBlZWsgPSBzdWJzdHIoJHRleHQsJGF0LDEpOwogICAgICAgICAgICBteSAkaGV4ICA9ICRwZWVrID1+IC9beFhdLzsgIyAwIG9yIDEKCiAgICAgICAgICAgIGlmKCRoZXgpewogICAgICAgICAgICAgICAgZGVjb2RlX2Vycm9yKCJtYWxmb3JtZWQgbnVtYmVyIChsZWFkaW5nIHplcm8gbXVzdCBub3QgYmUgZm9sbG93ZWQgYnkgYW5vdGhlciBkaWdpdCkiKTsKICAgICAgICAgICAgICAgICgkbikgPSAoIHN1YnN0cigkdGV4dCwgJGF0KzEpID1+IC9eKFswLTlhLWZBLUZdKykvKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNleyAjIG9jdAogICAgICAgICAgICAgICAgKCRuKSA9ICggc3Vic3RyKCR0ZXh0LCAkYXQpID1+IC9eKFswLTddKykvKTsKICAgICAgICAgICAgICAgIGlmIChkZWZpbmVkICRuIGFuZCBsZW5ndGggJG4gPiAxKSB7CiAgICAgICAgICAgICAgICAgICAgZGVjb2RlX2Vycm9yKCJtYWxmb3JtZWQgbnVtYmVyIChsZWFkaW5nIHplcm8gbXVzdCBub3QgYmUgZm9sbG93ZWQgYnkgYW5vdGhlciBkaWdpdCkiKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYoZGVmaW5lZCAkbiBhbmQgbGVuZ3RoKCRuKSl7CiAgICAgICAgICAgICAgICBpZiAoISRoZXggYW5kIGxlbmd0aCgkbikgPT0gMSkgewogICAgICAgICAgICAgICAgICAgZGVjb2RlX2Vycm9yKCJtYWxmb3JtZWQgbnVtYmVyIChsZWFkaW5nIHplcm8gbXVzdCBub3QgYmUgZm9sbG93ZWQgYnkgYW5vdGhlciBkaWdpdCkiKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRhdCArPSBsZW5ndGgoJG4pICsgJGhleDsKICAgICAgICAgICAgICAgIG5leHRfY2hyOwogICAgICAgICAgICAgICAgcmV0dXJuICRoZXggPyBoZXgoJG4pIDogb2N0KCRuKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYoJGNoIGVxICctJyl7CiAgICAgICAgICAgICRuID0gJy0nOwogICAgICAgICAgICBuZXh0X2NocjsKICAgICAgICAgICAgaWYgKCFkZWZpbmVkICRjaCBvciAkY2ggIX4gL1xkLykgewogICAgICAgICAgICAgICAgZGVjb2RlX2Vycm9yKCJtYWxmb3JtZWQgbnVtYmVyIChubyBkaWdpdHMgYWZ0ZXIgaW5pdGlhbCBtaW51cykiKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgd2hpbGUoZGVmaW5lZCAkY2ggYW5kICRjaCA9fiAvXGQvKXsKICAgICAgICAgICAgJG4gLj0gJGNoOwogICAgICAgICAgICBuZXh0X2NocjsKICAgICAgICB9CgogICAgICAgIGlmKGRlZmluZWQgJGNoIGFuZCAkY2ggZXEgJy4nKXsKICAgICAgICAgICAgJG4gLj0gJy4nOwoKICAgICAgICAgICAgbmV4dF9jaHI7CiAgICAgICAgICAgIGlmICghZGVmaW5lZCAkY2ggb3IgJGNoICF+IC9cZC8pIHsKICAgICAgICAgICAgICAgIGRlY29kZV9lcnJvcigibWFsZm9ybWVkIG51bWJlciAobm8gZGlnaXRzIGFmdGVyIGRlY2ltYWwgcG9pbnQpIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkbiAuPSAkY2g7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHdoaWxlKGRlZmluZWQobmV4dF9jaHIpIGFuZCAkY2ggPX4gL1xkLyl7CiAgICAgICAgICAgICAgICAkbiAuPSAkY2g7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmKGRlZmluZWQgJGNoIGFuZCAoJGNoIGVxICdlJyBvciAkY2ggZXEgJ0UnKSl7CiAgICAgICAgICAgICRuIC49ICRjaDsKICAgICAgICAgICAgbmV4dF9jaHI7CgogICAgICAgICAgICBpZihkZWZpbmVkKCRjaCkgYW5kICgkY2ggZXEgJysnIG9yICRjaCBlcSAnLScpKXsKICAgICAgICAgICAgICAgICRuIC49ICRjaDsKICAgICAgICAgICAgICAgIG5leHRfY2hyOwogICAgICAgICAgICAgICAgaWYgKCFkZWZpbmVkICRjaCBvciAkY2ggPX4gL1xELykgewogICAgICAgICAgICAgICAgICAgIGRlY29kZV9lcnJvcigibWFsZm9ybWVkIG51bWJlciAobm8gZGlnaXRzIGFmdGVyIGV4cCBzaWduKSIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJG4gLj0gJGNoOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmKGRlZmluZWQoJGNoKSBhbmQgJGNoID1+IC9cZC8pewogICAgICAgICAgICAgICAgJG4gLj0gJGNoOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgZGVjb2RlX2Vycm9yKCJtYWxmb3JtZWQgbnVtYmVyIChubyBkaWdpdHMgYWZ0ZXIgZXhwIHNpZ24pIik7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHdoaWxlKGRlZmluZWQobmV4dF9jaHIpIGFuZCAkY2ggPX4gL1xkLyl7CiAgICAgICAgICAgICAgICAkbiAuPSAkY2g7CiAgICAgICAgICAgIH0KCiAgICAgICAgfQoKICAgICAgICAkdiAuPSAkbjsKCiAgICAgICAgaWYgKCR2ICF+IC9bLmVFXS8gYW5kIGxlbmd0aCAkdiA+ICRtYXhfaW50c2l6ZSkgewogICAgICAgICAgICBpZiAoJGFsbG93X2JpZ2ludCkgeyAjIGZyb20gQWRhbSBTdXNzbWFuCiAgICAgICAgICAgICAgICByZXF1aXJlIE1hdGg6OkJpZ0ludDsKICAgICAgICAgICAgICAgIHJldHVybiBNYXRoOjpCaWdJbnQtPm5ldygkdik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICByZXR1cm4gIiR2IjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNpZiAoJGFsbG93X2JpZ2ludCkgewogICAgICAgICAgICByZXF1aXJlIE1hdGg6OkJpZ0Zsb2F0OwogICAgICAgICAgICByZXR1cm4gTWF0aDo6QmlnRmxvYXQtPm5ldygkdik7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gMCskdjsKICAgIH0KCgogICAgc3ViIGlzX3ZhbGlkX3V0ZjggewoKICAgICAgICAkdXRmOF9sZW4gPSAkX1swXSA9fiAvW1x4MDAtXHg3Rl0vICA/IDEKICAgICAgICAgICAgICAgICAgOiAkX1swXSA9fiAvW1x4QzItXHhERl0vICA/IDIKICAgICAgICAgICAgICAgICAgOiAkX1swXSA9fiAvW1x4RTAtXHhFRl0vICA/IDMKICAgICAgICAgICAgICAgICAgOiAkX1swXSA9fiAvW1x4RjAtXHhGNF0vICA/IDQKICAgICAgICAgICAgICAgICAgOiAwCiAgICAgICAgICAgICAgICAgIDsKCiAgICAgICAgcmV0dXJuIHVubGVzcyAkdXRmOF9sZW47CgogICAgICAgIG15ICRpc192YWxpZF91dGY4ID0gc3Vic3RyKCR0ZXh0LCAkYXQgLSAxLCAkdXRmOF9sZW4pOwoKICAgICAgICByZXR1cm4gKCAkaXNfdmFsaWRfdXRmOCA9fiAvXig/OgogICAgICAgICAgICAgW1x4MDAtXHg3Rl0KICAgICAgICAgICAgfFtceEMyLVx4REZdW1x4ODAtXHhCRl0KICAgICAgICAgICAgfFtceEUwXVtceEEwLVx4QkZdW1x4ODAtXHhCRl0KICAgICAgICAgICAgfFtceEUxLVx4RUNdW1x4ODAtXHhCRl1bXHg4MC1ceEJGXQogICAgICAgICAgICB8W1x4RURdW1x4ODAtXHg5Rl1bXHg4MC1ceEJGXQogICAgICAgICAgICB8W1x4RUUtXHhFRl1bXHg4MC1ceEJGXVtceDgwLVx4QkZdCiAgICAgICAgICAgIHxbXHhGMF1bXHg5MC1ceEJGXVtceDgwLVx4QkZdW1x4ODAtXHhCRl0KICAgICAgICAgICAgfFtceEYxLVx4RjNdW1x4ODAtXHhCRl1bXHg4MC1ceEJGXVtceDgwLVx4QkZdCiAgICAgICAgICAgIHxbXHhGNF1bXHg4MC1ceDhGXVtceDgwLVx4QkZdW1x4ODAtXHhCRl0KICAgICAgICApJC94ICkgID8gJGlzX3ZhbGlkX3V0ZjggOiAnJzsKICAgIH0KCgogICAgc3ViIGRlY29kZV9lcnJvciB7CiAgICAgICAgbXkgJGVycm9yICA9IHNoaWZ0OwogICAgICAgIG15ICRub19yZXAgPSBzaGlmdDsKICAgICAgICBteSAkc3RyICAgID0gZGVmaW5lZCAkdGV4dCA/IHN1YnN0cigkdGV4dCwgJGF0KSA6ICcnOwogICAgICAgIG15ICRtZXNzICAgPSAnJzsKICAgICAgICBteSAkdHlwZSAgID0gJF0gPj0gNS4wMDggICAgICAgICAgID8gJ1UqJwogICAgICAgICAgICAgICAgICAgOiAkXSA8ICA1LjAwNiAgICAgICAgICAgPyAnQyonCiAgICAgICAgICAgICAgICAgICA6IHV0Zjg6OmlzX3V0ZjgoICRzdHIgKSA/ICdVKicgIyA1LjYKICAgICAgICAgICAgICAgICAgIDogJ0MqJwogICAgICAgICAgICAgICAgICAgOwoKICAgICAgICBmb3IgbXkgJGMgKCB1bnBhY2soICR0eXBlLCAkc3RyICkgKSB7ICMgZW11bGF0ZSBwdl91bmlfZGlzcGxheSgpID8KICAgICAgICAgICAgJG1lc3MgLj0gICRjID09IDB4MDcgPyAnXGEnCiAgICAgICAgICAgICAgICAgICAgOiAkYyA9PSAweDA5ID8gJ1x0JwogICAgICAgICAgICAgICAgICAgIDogJGMgPT0gMHgwYSA/ICdcbicKICAgICAgICAgICAgICAgICAgICA6ICRjID09IDB4MGQgPyAnXHInCiAgICAgICAgICAgICAgICAgICAgOiAkYyA9PSAweDBjID8gJ1xmJwogICAgICAgICAgICAgICAgICAgIDogJGMgPCAgMHgyMCA/IHNwcmludGYoJ1x4eyV4fScsICRjKQogICAgICAgICAgICAgICAgICAgIDogJGMgPT0gMHg1YyA/ICdcXFxcJwogICAgICAgICAgICAgICAgICAgIDogJGMgPCAgMHg4MCA/IGNocigkYykKICAgICAgICAgICAgICAgICAgICA6IHNwcmludGYoJ1x4eyV4fScsICRjKQogICAgICAgICAgICAgICAgICAgIDsKICAgICAgICAgICAgaWYgKCBsZW5ndGggJG1lc3MgPj0gMjAgKSB7CiAgICAgICAgICAgICAgICAkbWVzcyAuPSAnLi4uJzsKICAgICAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHVubGVzcyAoIGxlbmd0aCAkbWVzcyApIHsKICAgICAgICAgICAgJG1lc3MgPSAnKGVuZCBvZiBzdHJpbmcpJzsKICAgICAgICB9CgogICAgICAgIENhcnA6OmNyb2FrICgKICAgICAgICAgICAgJG5vX3JlcCA/ICIkZXJyb3IiIDogIiRlcnJvciwgYXQgY2hhcmFjdGVyIG9mZnNldCAkYXQgKGJlZm9yZSBcIiRtZXNzXCIpIgogICAgICAgICk7CgogICAgfQoKCiAgICBzdWIgX2pzb25fb2JqZWN0X2hvb2sgewogICAgICAgIG15ICRvICAgID0gJF9bMF07CiAgICAgICAgbXkgQGtzID0ga2V5cyAleyRvfTsKCiAgICAgICAgaWYgKCAkY2Jfc2tfb2JqZWN0IGFuZCBAa3MgPT0gMSBhbmQgZXhpc3RzICRjYl9za19vYmplY3QtPnsgJGtzWzBdIH0gYW5kIHJlZiAkY2Jfc2tfb2JqZWN0LT57ICRrc1swXSB9ICkgewogICAgICAgICAgICBteSBAdmFsID0gJGNiX3NrX29iamVjdC0+eyAka3NbMF0gfS0+KCAkby0+eyRrc1swXX0gKTsKICAgICAgICAgICAgaWYgKEB2YWwgPT0gMSkgewogICAgICAgICAgICAgICAgcmV0dXJuICR2YWxbMF07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15IEB2YWwgPSAkY2Jfb2JqZWN0LT4oJG8pIGlmICgkY2Jfb2JqZWN0KTsKICAgICAgICBpZiAoQHZhbCA9PSAwIG9yIEB2YWwgPiAxKSB7CiAgICAgICAgICAgIHJldHVybiAkbzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkdmFsWzBdOwogICAgICAgIH0KICAgIH0KCgogICAgc3ViIFBQX2RlY29kZV9ib3ggewogICAgICAgIHsKICAgICAgICAgICAgdGV4dCAgICA9PiAkdGV4dCwKICAgICAgICAgICAgYXQgICAgICA9PiAkYXQsCiAgICAgICAgICAgIGNoICAgICAgPT4gJGNoLAogICAgICAgICAgICBsZW4gICAgID0+ICRsZW4sCiAgICAgICAgICAgIGRlcHRoICAgPT4gJGRlcHRoLAogICAgICAgICAgICBlbmNvZGluZyAgICAgID0+ICRlbmNvZGluZywKICAgICAgICAgICAgaXNfdmFsaWRfdXRmOCA9PiAkaXNfdmFsaWRfdXRmOCwKICAgICAgICB9OwogICAgfQoKfSAjIFBBUlNFCgoKc3ViIF9kZWNvZGVfc3Vycm9nYXRlcyB7ICMgZnJvbSBwZXJsdW5pY29kZQogICAgbXkgJHVuaSA9IDB4MTAwMDAgKyAoaGV4KCRfWzBdKSAtIDB4RDgwMCkgKiAweDQwMCArIChoZXgoJF9bMV0pIC0gMHhEQzAwKTsKICAgIG15ICR1biAgPSBwYWNrKCdVKicsICR1bmkpOwogICAgdXRmODo6ZW5jb2RlKCAkdW4gKTsKICAgIHJldHVybiAkdW47Cn0KCgpzdWIgX2RlY29kZV91bmljb2RlIHsKICAgIG15ICR1biA9IHBhY2soJ1UnLCBoZXggc2hpZnQpOwogICAgdXRmODo6ZW5jb2RlKCAkdW4gKTsKICAgIHJldHVybiAkdW47Cn0KCgoKCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgVXRpbGl0aWVzCiMKCkJFR0lOIHsKICAgIGV2YWwgJ3JlcXVpcmUgU2NhbGFyOjpVdGlsJzsKICAgIHVubGVzcygkQCl7CiAgICAgICAgKkpTT046OlBQOjpibGVzc2VkID0gXCZTY2FsYXI6OlV0aWw6OmJsZXNzZWQ7CiAgICB9CiAgICBlbHNleyAjIFRoaXMgY29kZSBpcyBmcm9tIFNjbGFyOjpVdGlsLgogICAgICAgICMgd2FybiAkQDsKICAgICAgICBldmFsICdzdWIgVU5JVkVSU0FMOjphX3N1Yl9ub3RfbGlrZWx5X3RvX2JlX2hlcmUgeyByZWYoJF9bMF0pIH0nOwogICAgICAgICpKU09OOjpQUDo6Ymxlc3NlZCA9IHN1YiB7CiAgICAgICAgICAgIGxvY2FsKCRALCAkU0lHe19fRElFX199LCAkU0lHe19fV0FSTl9ffSk7CiAgICAgICAgICAgIHJlZigkX1swXSkgPyBldmFsIHsgJF9bMF0tPmFfc3ViX25vdF9saWtlbHlfdG9fYmVfaGVyZSB9IDogdW5kZWY7CiAgICAgICAgfTsKICAgIH0KfQoKCiMgc2hhbWVseSBjb3BpZWQgYW5kIG1vZGlmaWVkIGZyb20gSlNPTjo6WFMgY29kZS4KCiRKU09OOjpQUDo6dHJ1ZSAgPSBkbyB7IGJsZXNzIFwobXkgJGR1bW15ID0gMSksICJKU09OOjpQUDo6Qm9vbGVhbiIgfTsKJEpTT046OlBQOjpmYWxzZSA9IGRvIHsgYmxlc3MgXChteSAkZHVtbXkgPSAwKSwgIkpTT046OlBQOjpCb29sZWFuIiB9OwoKc3ViIGlzX2Jvb2wgeyBkZWZpbmVkICRfWzBdIGFuZCBVTklWRVJTQUw6OmlzYSgkX1swXSwgIkpTT046OlBQOjpCb29sZWFuIik7IH0KCnN1YiB0cnVlICB7ICRKU09OOjpQUDo6dHJ1ZSAgfQpzdWIgZmFsc2UgeyAkSlNPTjo6UFA6OmZhbHNlIH0Kc3ViIG51bGwgIHsgdW5kZWY7IH0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCnBhY2thZ2UgSlNPTjo6UFA6OkJvb2xlYW47CgoKdXNlIG92ZXJsb2FkICgKICAgIjArIiAgICAgPT4gc3ViIHsgJHskX1swXX0gfSwKICAgIisrIiAgICAgPT4gc3ViIHsgJF9bMF0gPSAkeyRfWzBdfSArIDEgfSwKICAgIi0tIiAgICAgPT4gc3ViIHsgJF9bMF0gPSAkeyRfWzBdfSAtIDEgfSwKICAgZmFsbGJhY2sgPT4gMSwKKTsKCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpwYWNrYWdlIEpTT046OlBQOjpJbmNyUGFyc2VyOwoKdXNlIHN0cmljdDsKCnVzZSBjb25zdGFudCBJTkNSX01fV1MgICA9PiAwOyAjIGluaXRpYWwgd2hpdGVzcGFjZSBza2lwcGluZwp1c2UgY29uc3RhbnQgSU5DUl9NX1NUUiAgPT4gMTsgIyBpbnNpZGUgc3RyaW5nCnVzZSBjb25zdGFudCBJTkNSX01fQlMgICA9PiAyOyAjIGluc2lkZSBiYWNrc2xhc2gKdXNlIGNvbnN0YW50IElOQ1JfTV9KU09OID0+IDM7ICMgb3V0c2lkZSBhbnl0aGluZywgY291bnQgbmVzdGluZwp1c2UgY29uc3RhbnQgSU5DUl9NX0MwICAgPT4gNDsKdXNlIGNvbnN0YW50IElOQ1JfTV9DMSAgID0+IDU7CgokSlNPTjo6UFA6OkluY3JQYXJzZXI6OlZFUlNJT04gPSAnMS4wMSc7CgpteSAkdW5wYWNrX2Zvcm1hdCA9ICRdIDwgNS4wMDYgPyAnQyonIDogJ1UqJzsKCnN1YiBuZXcgewogICAgbXkgKCAkY2xhc3MgKSA9IEBfOwoKICAgIGJsZXNzIHsKICAgICAgICBpbmNyX25lc3QgICAgPT4gMCwKICAgICAgICBpbmNyX3RleHQgICAgPT4gdW5kZWYsCiAgICAgICAgaW5jcl9wYXJzaW5nID0+IDAsCiAgICAgICAgaW5jcl9wICAgICAgID0+IDAsCiAgICB9LCAkY2xhc3M7Cn0KCgpzdWIgaW5jcl9wYXJzZSB7CiAgICBteSAoICRzZWxmLCAkY29kZXIsICR0ZXh0ICkgPSBAXzsKCiAgICAkc2VsZi0+e2luY3JfdGV4dH0gPSAnJyB1bmxlc3MgKCBkZWZpbmVkICRzZWxmLT57aW5jcl90ZXh0fSApOwoKICAgIGlmICggZGVmaW5lZCAkdGV4dCApIHsKICAgICAgICBpZiAoIHV0Zjg6OmlzX3V0ZjgoICR0ZXh0ICkgYW5kICF1dGY4Ojppc191dGY4KCAkc2VsZi0+e2luY3JfdGV4dH0gKSApIHsKICAgICAgICAgICAgdXRmODo6dXBncmFkZSggJHNlbGYtPntpbmNyX3RleHR9ICkgOwogICAgICAgICAgICB1dGY4OjpkZWNvZGUoICRzZWxmLT57aW5jcl90ZXh0fSApIDsKICAgICAgICB9CiAgICAgICAgJHNlbGYtPntpbmNyX3RleHR9IC49ICR0ZXh0OwogICAgfQoKCiAgICBteSAkbWF4X3NpemUgPSAkY29kZXItPmdldF9tYXhfc2l6ZTsKCiAgICBpZiAoIGRlZmluZWQgd2FudGFycmF5ICkgewoKICAgICAgICAkc2VsZi0+e2luY3JfbW9kZX0gPSBJTkNSX01fV1M7CgogICAgICAgIGlmICggd2FudGFycmF5ICkgewogICAgICAgICAgICBteSBAcmV0OwoKICAgICAgICAgICAgJHNlbGYtPntpbmNyX3BhcnNpbmd9ID0gMTsKCiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgIHB1c2ggQHJldCwgJHNlbGYtPl9pbmNyX3BhcnNlKCAkY29kZXIsICRzZWxmLT57aW5jcl90ZXh0fSApOwoKICAgICAgICAgICAgICAgIHVubGVzcyAoICEkc2VsZi0+e2luY3JfbmVzdH0gYW5kICRzZWxmLT57aW5jcl9tb2RlfSA9PSBJTkNSX01fSlNPTiApIHsKICAgICAgICAgICAgICAgICAgICAkc2VsZi0+e2luY3JfbW9kZX0gPSBJTkNSX01fV1M7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9IHVudGlsICggISRzZWxmLT57aW5jcl90ZXh0fSApOwoKICAgICAgICAgICAgJHNlbGYtPntpbmNyX3BhcnNpbmd9ID0gMDsKCiAgICAgICAgICAgIHJldHVybiBAcmV0OwogICAgICAgIH0KICAgICAgICBlbHNlIHsgIyBpbiBzY2FsYXIgY29udGV4dAogICAgICAgICAgICAkc2VsZi0+e2luY3JfcGFyc2luZ30gPSAxOwogICAgICAgICAgICBteSAkb2JqID0gJHNlbGYtPl9pbmNyX3BhcnNlKCAkY29kZXIsICRzZWxmLT57aW5jcl90ZXh0fSApOwogICAgICAgICAgICAkc2VsZi0+e2luY3JfcGFyc2luZ30gPSAwIGlmIGRlZmluZWQgJG9iajsgIyBwb2ludGVkIGJ5IE1hcnRpbiBKLiBFdmFucwogICAgICAgICAgICByZXR1cm4gJG9iaiA/ICRvYmogOiB1bmRlZjsgIyAkb2JqIGlzIGFuIGVtcHR5IHN0cmluZywgcGFyc2luZyB3YXMgY29tcGxldGVkLgogICAgICAgIH0KCiAgICB9Cgp9CgoKc3ViIF9pbmNyX3BhcnNlIHsKICAgIG15ICggJHNlbGYsICRjb2RlciwgJHRleHQsICRza2lwICkgPSBAXzsKICAgIG15ICRwID0gJHNlbGYtPntpbmNyX3B9OwogICAgbXkgJHJlc3RvcmUgPSAkcDsKCiAgICBteSBAb2JqOwogICAgbXkgJGxlbiA9IGxlbmd0aCAkdGV4dDsKCiAgICBpZiAoICRzZWxmLT57aW5jcl9tb2RlfSA9PSBJTkNSX01fV1MgKSB7CiAgICAgICAgd2hpbGUgKCAkbGVuID4gJHAgKSB7CiAgICAgICAgICAgIG15ICRzID0gc3Vic3RyKCAkdGV4dCwgJHAsIDEgKTsKICAgICAgICAgICAgJHArKyBhbmQgbmV4dCBpZiAoIDB4MjAgPj0gdW5wYWNrKCR1bnBhY2tfZm9ybWF0LCAkcykgKTsKICAgICAgICAgICAgJHNlbGYtPntpbmNyX21vZGV9ID0gSU5DUl9NX0pTT047CiAgICAgICAgICAgIGxhc3Q7CiAgICAgICB9CiAgICB9CgogICAgd2hpbGUgKCAkbGVuID4gJHAgKSB7CiAgICAgICAgbXkgJHMgPSBzdWJzdHIoICR0ZXh0LCAkcCsrLCAxICk7CgogICAgICAgIGlmICggJHMgZXEgJyInICkgewogICAgICAgICAgICBpZiAoICRzZWxmLT57aW5jcl9tb2RlfSAhPSBJTkNSX01fU1RSICApIHsKICAgICAgICAgICAgICAgICRzZWxmLT57aW5jcl9tb2RlfSA9IElOQ1JfTV9TVFI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkc2VsZi0+e2luY3JfbW9kZX0gPSBJTkNSX01fSlNPTjsKICAgICAgICAgICAgICAgIHVubGVzcyAoICRzZWxmLT57aW5jcl9uZXN0fSApIHsKICAgICAgICAgICAgICAgICAgICBsYXN0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoICRzZWxmLT57aW5jcl9tb2RlfSA9PSBJTkNSX01fSlNPTiApIHsKCiAgICAgICAgICAgIGlmICggJHMgZXEgJ1snIG9yICRzIGVxICd7JyApIHsKICAgICAgICAgICAgICAgIGlmICggKyskc2VsZi0+e2luY3JfbmVzdH0gPiAkY29kZXItPmdldF9tYXhfZGVwdGggKSB7CiAgICAgICAgICAgICAgICAgICAgQ2FycDo6Y3JvYWsoJ2pzb24gdGV4dCBvciBwZXJsIHN0cnVjdHVyZSBleGNlZWRzIG1heGltdW0gbmVzdGluZyBsZXZlbCAobWF4X2RlcHRoIHNldCB0b28gbG93PyknKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRzIGVxICddJyBvciAkcyBlcSAnfScgKSB7CiAgICAgICAgICAgICAgICBsYXN0IGlmICggLS0kc2VsZi0+e2luY3JfbmVzdH0gPD0gMCApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJHMgZXEgJyMnICkgewogICAgICAgICAgICAgICAgd2hpbGUgKCAkbGVuID4gJHAgKSB7CiAgICAgICAgICAgICAgICAgICAgbGFzdCBpZiBzdWJzdHIoICR0ZXh0LCAkcCsrLCAxICkgZXEgIlxuIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICB9CgogICAgfQoKICAgICRzZWxmLT57aW5jcl9wfSA9ICRwOwoKICAgIHJldHVybiBpZiAoICRzZWxmLT57aW5jcl9tb2RlfSA9PSBJTkNSX01fSlNPTiBhbmQgJHNlbGYtPntpbmNyX25lc3R9ID4gMCApOwoKICAgIHJldHVybiAnJyB1bmxlc3MgKCBsZW5ndGggc3Vic3RyKCAkc2VsZi0+e2luY3JfdGV4dH0sIDAsICRwICkgKTsKCiAgICBsb2NhbCAkQ2FycDo6Q2FycExldmVsID0gMjsKCiAgICAkc2VsZi0+e2luY3JfcH0gPSAkcmVzdG9yZTsKICAgICRzZWxmLT57aW5jcl9jfSA9ICRwOwoKICAgIG15ICggJG9iaiwgJHRhaWwgKSA9ICRjb2Rlci0+UFBfZGVjb2RlX2pzb24oIHN1YnN0ciggJHNlbGYtPntpbmNyX3RleHR9LCAwLCAkcCApLCAweDEwMDAwMDAxICk7CgogICAgJHNlbGYtPntpbmNyX3RleHR9ID0gc3Vic3RyKCAkc2VsZi0+e2luY3JfdGV4dH0sICRwICk7CiAgICAkc2VsZi0+e2luY3JfcH0gPSAwOwoKICAgIHJldHVybiAkb2JqIG9yICcnOwp9CgoKc3ViIGluY3JfdGV4dCB7CiAgICBpZiAoICRfWzBdLT57aW5jcl9wYXJzaW5nfSApIHsKICAgICAgICBDYXJwOjpjcm9haygiaW5jcl90ZXh0IGNhbiBub3QgYmUgY2FsbGVkIHdoZW4gdGhlIGluY3JlbWVudGFsIHBhcnNlciBhbHJlYWR5IHN0YXJ0ZWQgcGFyc2luZyIpOwogICAgfQogICAgJF9bMF0tPntpbmNyX3RleHR9Owp9CgoKc3ViIGluY3Jfc2tpcCB7CiAgICBteSAkc2VsZiAgPSBzaGlmdDsKICAgICRzZWxmLT57aW5jcl90ZXh0fSA9IHN1YnN0ciggJHNlbGYtPntpbmNyX3RleHR9LCAkc2VsZi0+e2luY3JfY30gKTsKICAgICRzZWxmLT57aW5jcl9wfSA9IDA7Cn0KCgpzdWIgaW5jcl9yZXNldCB7CiAgICBteSAkc2VsZiA9IHNoaWZ0OwogICAgJHNlbGYtPntpbmNyX3RleHR9ICAgID0gdW5kZWY7CiAgICAkc2VsZi0+e2luY3JfcH0gICAgICAgPSAwOwogICAgJHNlbGYtPntpbmNyX21vZGV9ICAgID0gMDsKICAgICRzZWxmLT57aW5jcl9uZXN0fSAgICA9IDA7CiAgICAkc2VsZi0+e2luY3JfcGFyc2luZ30gPSAwOwp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgoKMTsKX19FTkRfXwo9cG9kCgo9aGVhZDEgTkFNRQoKSlNPTjo6UFAgLSBKU09OOjpYUyBjb21wYXRpYmxlIHB1cmUtUGVybCBtb2R1bGUuCgo9aGVhZDEgU1lOT1BTSVMKCiB1c2UgSlNPTjo6UFA7CgogIyBleHBvcnRlZCBmdW5jdGlvbnMsIHRoZXkgY3JvYWsgb24gZXJyb3IKICMgYW5kIGV4cGVjdC9nZW5lcmF0ZSBVVEYtOAoKICR1dGY4X2VuY29kZWRfanNvbl90ZXh0ID0gZW5jb2RlX2pzb24gJHBlcmxfaGFzaF9vcl9hcnJheXJlZjsKICRwZXJsX2hhc2hfb3JfYXJyYXlyZWYgID0gZGVjb2RlX2pzb24gJHV0ZjhfZW5jb2RlZF9qc29uX3RleHQ7CgogIyBPTy1pbnRlcmZhY2UKCiAkY29kZXIgPSBKU09OOjpQUC0+bmV3LT5hc2NpaS0+cHJldHR5LT5hbGxvd19ub25yZWY7CiAkcHJldHR5X3ByaW50ZWRfdW5lbmNvZGVkID0gJGNvZGVyLT5lbmNvZGUgKCRwZXJsX3NjYWxhcik7CiAkcGVybF9zY2FsYXIgPSAkY29kZXItPmRlY29kZSAoJHVuaWNvZGVfanNvbl90ZXh0KTsKCiAjIE5vdGUgdGhhdCBKU09OIHZlcnNpb24gMi4wIGFuZCBhYm92ZSB3aWxsIGF1dG9tYXRpY2FsbHkgdXNlCiAjIEpTT046OlhTIG9yIEpTT046OlBQLCBzbyB5b3Ugc2hvdWxkIGJlIGFibGUgdG8ganVzdDoKIAogdXNlIEpTT047Cgo9aGVhZDEgREVTQ1JJUFRJT04KClRoaXMgbW9kdWxlIGlzIEw8SlNPTjo6WFM+IGNvbXBhdGlibGUgcHVyZSBQZXJsIG1vZHVsZS4KKFBlcmwgNS44IG9yIGxhdGVyIGlzIHJlY29tbWVuZGVkKQoKSlNPTjo6WFMgaXMgdGhlIGZhc3Rlc3QgYW5kIG1vc3QgcHJvcGVyIEpTT04gbW9kdWxlIG9uIENQQU4uCkl0IGlzIHdyaXR0ZW4gYnkgTWFyYyBMZWhtYW5uIGluIEMsIHNvIG11c3QgYmUgY29tcGlsZWQgYW5kCmluc3RhbGxlZCBpbiB0aGUgdXNlZCBlbnZpcm9ubWVudC4KCkpTT046OlBQIGlzIGEgcHVyZS1QZXJsIG1vZHVsZSBhbmQgaGFzIGNvbXBhdGliaWxpdHkgdG8gSlNPTjo6WFMuCgoKPWhlYWQyIEZFQVRVUkVTCgo9b3ZlcgoKPWl0ZW0gKiBjb3JyZWN0IHVuaWNvZGUgaGFuZGxpbmcKClRoaXMgbW9kdWxlIGtub3dzIGhvdyB0byBoYW5kbGUgVW5pY29kZSAoZGVwZW5kaW5nIG9uIFBlcmwgdmVyc2lvbikuCgpTZWUgdG8gTDxKU09OOjpYUy9BIEZFVyBOT1RFUyBPTiBVTklDT0RFIEFORCBQRVJMPiBhbmQgTDxVTklDT0RFIEhBTkRMSU5HIE9OIFBFUkxTPi4KCgo9aXRlbSAqIHJvdW5kLXRyaXAgaW50ZWdyaXR5CgpXaGVuIHlvdSBzZXJpYWxpc2UgYSBwZXJsIGRhdGEgc3RydWN0dXJlIHVzaW5nIG9ubHkgZGF0YSB0eXBlcyBzdXBwb3J0ZWQKYnkgSlNPTiBhbmQgUGVybCwgdGhlIGRlc2VyaWFsaXNlZCBkYXRhIHN0cnVjdHVyZSBpcyBpZGVudGljYWwgb24gdGhlIFBlcmwKbGV2ZWwuIChlLmcuIHRoZSBzdHJpbmcgIjIuMCIgZG9lc24ndCBzdWRkZW5seSBiZWNvbWUgIjIiIGp1c3QgYmVjYXVzZQppdCBsb29rcyBsaWtlIGEgbnVtYmVyKS4gVGhlcmUgSTxhcmU+IG1pbm9yIGV4Y2VwdGlvbnMgdG8gdGhpcywgcmVhZCB0aGUKTUFQUElORyBzZWN0aW9uIGJlbG93IHRvIGxlYXJuIGFib3V0IHRob3NlLgoKCj1pdGVtICogc3RyaWN0IGNoZWNraW5nIG9mIEpTT04gY29ycmVjdG5lc3MKClRoZXJlIGlzIG5vIGd1ZXNzaW5nLCBubyBnZW5lcmF0aW5nIG9mIGlsbGVnYWwgSlNPTiB0ZXh0cyBieSBkZWZhdWx0LAphbmQgb25seSBKU09OIGlzIGFjY2VwdGVkIGFzIGlucHV0IGJ5IGRlZmF1bHQgKHRoZSBsYXR0ZXIgaXMgYSBzZWN1cml0eSBmZWF0dXJlKS4KQnV0IHdoZW4gc29tZSBvcHRpb25zIGFyZSBzZXQsIGxvb3NlIGNoY2tpbmcgZmVhdHVyZXMgYXJlIGF2YWlsYWJsZS4KCj1iYWNrCgo9aGVhZDEgRlVOQ1RJT05TCgpCYXNpY2FsbHksIGNoZWNrIHRvIEw8SlNPTj4gb3IgTDxKU09OOjpYUz4uCgo9aGVhZDIgZW5jb2RlX2pzb24KCiAgICAkanNvbl90ZXh0ID0gZW5jb2RlX2pzb24gJHBlcmxfc2NhbGFyCgo9aGVhZDIgZGVjb2RlX2pzb24KCiAgICAkcGVybF9zY2FsYXIgPSBkZWNvZGVfanNvbiAkanNvbl90ZXh0Cgo9aGVhZDIgSlNPTjo6UFA6OnRydWUKClJldHVybnMgSlNPTiB0cnVlIHZhbHVlIHdoaWNoIGlzIGJsZXNzZWQgb2JqZWN0LgpJdCBDPGlzYT4gSlNPTjo6UFA6OkJvb2xlYW4gb2JqZWN0LgoKPWhlYWQyIEpTT046OlBQOjpmYWxzZQoKUmV0dXJucyBKU09OIGZhbHNlIHZhbHVlIHdoaWNoIGlzIGJsZXNzZWQgb2JqZWN0LgpJdCBDPGlzYT4gSlNPTjo6UFA6OkJvb2xlYW4gb2JqZWN0LgoKPWhlYWQyIEpTT046OlBQOjpudWxsCgpSZXR1cm5zIEM8dW5kZWY+LgoKPWhlYWQxIE1FVEhPRFMKCkJhc2ljYWxseSwgY2hlY2sgdG8gTDxKU09OPiBvciBMPEpTT046OlhTPi4KCj1oZWFkMiBuZXcKCiAgICAkanNvbiA9IG5ldyBKU09OOjpQUAoKUnR1cm5zIGEgbmV3IEpTT046OlBQIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlL2VuY29kZSBKU09OCnN0cmluZ3MuCgo9aGVhZDIgYXNjaWkKCiAgICAkanNvbiA9ICRqc29uLT5hc2NpaShbJGVuYWJsZV0pCiAgICAKICAgICRlbmFibGVkID0gJGpzb24tPmdldF9hc2NpaQoKSWYgJGVuYWJsZSBpcyB0cnVlIChvciBtaXNzaW5nKSwgdGhlbiB0aGUgZW5jb2RlIG1ldGhvZCB3aWxsIG5vdCBnZW5lcmF0ZSBjaGFyYWN0ZXJzIG91dHNpZGUKdGhlIGNvZGUgcmFuZ2UgMC4uMTI3LiBBbnkgVW5pY29kZSBjaGFyYWN0ZXJzIG91dHNpZGUgdGhhdCByYW5nZSB3aWxsIGJlIGVzY2FwZWQgdXNpbmcgZWl0aGVyCmEgc2luZ2xlIFx1WFhYWCBvciBhIGRvdWJsZSBcdUhISEhcdUxMTExMIGVzY2FwZSBzZXF1ZW5jZSwgYXMgcGVyIFJGQzQ2MjcuCihTZWUgdG8gTDxKU09OOjpYUy9PQkpFQ1QtT1JJRU5URUQgSU5URVJGQUNFPikuCgpJbiBQZXJsIDUuMDA1LCB0aGVyZSBpcyBubyBjaGFyYWN0ZXIgaGF2aW5nIGhpZ2ggdmFsdWUgKG1vcmUgdGhhbiAyNTUpLgpTZWUgdG8gTDxVTklDT0RFIEhBTkRMSU5HIE9OIFBFUkxTPi4KCklmICRlbmFibGUgaXMgZmFsc2UsIHRoZW4gdGhlIGVuY29kZSBtZXRob2Qgd2lsbCBub3QgZXNjYXBlIFVuaWNvZGUgY2hhcmFjdGVycyB1bmxlc3MKcmVxdWlyZWQgYnkgdGhlIEpTT04gc3ludGF4IG9yIG90aGVyIGZsYWdzLiBUaGlzIHJlc3VsdHMgaW4gYSBmYXN0ZXIgYW5kIG1vcmUgY29tcGFjdCBmb3JtYXQuCgogIEpTT046OlBQLT5uZXctPmFzY2lpKDEpLT5lbmNvZGUoW2NociAweDEwNDAxXSkKICA9PiBbIlx1ZDgwMVx1ZGMwMSJdCgo9aGVhZDIgbGF0aW4xCgogICAgJGpzb24gPSAkanNvbi0+bGF0aW4xKFskZW5hYmxlXSkKICAgIAogICAgJGVuYWJsZWQgPSAkanNvbi0+Z2V0X2xhdGluMQoKSWYgJGVuYWJsZSBpcyB0cnVlIChvciBtaXNzaW5nKSwgdGhlbiB0aGUgZW5jb2RlIG1ldGhvZCB3aWxsIGVuY29kZSB0aGUgcmVzdWx0aW5nIEpTT04KdGV4dCBhcyBsYXRpbjEgKG9yIGlzby04ODU5LTEpLCBlc2NhcGluZyBhbnkgY2hhcmFjdGVycyBvdXRzaWRlIHRoZSBjb2RlIHJhbmdlIDAuLjI1NS4KCklmICRlbmFibGUgaXMgZmFsc2UsIHRoZW4gdGhlIGVuY29kZSBtZXRob2Qgd2lsbCBub3QgZXNjYXBlIFVuaWNvZGUgY2hhcmFjdGVycwp1bmxlc3MgcmVxdWlyZWQgYnkgdGhlIEpTT04gc3ludGF4IG9yIG90aGVyIGZsYWdzLgoKICBKU09OOjpYUy0+bmV3LT5sYXRpbjEtPmVuY29kZSAoWyJceHs4OX1ceHthYmN9Il0KICA9PiBbIlx4ezg5fVxcdTBhYmMiXSAgICAjIChwZXJsIHN5bnRheCwgVSthYmMgZXNjYXBlZCwgVSs4OSBub3QpCgpTZWUgdG8gTDxVTklDT0RFIEhBTkRMSU5HIE9OIFBFUkxTPi4KCj1oZWFkMiB1dGY4CgogICAgJGpzb24gPSAkanNvbi0+dXRmOChbJGVuYWJsZV0pCiAgICAKICAgICRlbmFibGVkID0gJGpzb24tPmdldF91dGY4CgpJZiAkZW5hYmxlIGlzIHRydWUgKG9yIG1pc3NpbmcpLCB0aGVuIHRoZSBlbmNvZGUgbWV0aG9kIHdpbGwgZW5jb2RlIHRoZSBKU09OIHJlc3VsdAppbnRvIFVURi04LCBhcyByZXF1aXJlZCBieSBtYW55IHByb3RvY29scywgd2hpbGUgdGhlIGRlY29kZSBtZXRob2QgZXhwZWN0cyB0byBiZSBoYW5kbGVkCmFuIFVURi04LWVuY29kZWQgc3RyaW5nLiBQbGVhc2Ugbm90ZSB0aGF0IFVURi04LWVuY29kZWQgc3RyaW5ncyBkbyBub3QgY29udGFpbiBhbnkKY2hhcmFjdGVycyBvdXRzaWRlIHRoZSByYW5nZSAwLi4yNTUsIHRoZXkgYXJlIHRodXMgdXNlZnVsIGZvciBieXRld2lzZS9iaW5hcnkgSS9PLgoKKEluIFBlcmwgNS4wMDUsIGFueSBjaGFyYWN0ZXIgb3V0c2lkZSB0aGUgcmFuZ2UgMC4uMjU1IGRvZXMgbm90IGV4aXN0LgpTZWUgdG8gTDxVTklDT0RFIEhBTkRMSU5HIE9OIFBFUkxTPi4pCgpJbiBmdXR1cmUgdmVyc2lvbnMsIGVuYWJsaW5nIHRoaXMgb3B0aW9uIG1pZ2h0IGVuYWJsZSBhdXRvZGV0ZWN0aW9uIG9mIHRoZSBVVEYtMTYgYW5kIFVURi0zMgplbmNvZGluZyBmYW1pbGllcywgYXMgZGVzY3JpYmVkIGluIFJGQzQ2MjcuCgpJZiAkZW5hYmxlIGlzIGZhbHNlLCB0aGVuIHRoZSBlbmNvZGUgbWV0aG9kIHdpbGwgcmV0dXJuIHRoZSBKU09OIHN0cmluZyBhcyBhIChub24tZW5jb2RlZCkKVW5pY29kZSBzdHJpbmcsIHdoaWxlIGRlY29kZSBleHBlY3RzIHRodXMgYSBVbmljb2RlIHN0cmluZy4gQW55IGRlY29kaW5nIG9yIGVuY29kaW5nCihlLmcuIHRvIFVURi04IG9yIFVURi0xNikgbmVlZHMgdG8gYmUgZG9uZSB5b3Vyc2VsZiwgZS5nLiB1c2luZyB0aGUgRW5jb2RlIG1vZHVsZS4KCkV4YW1wbGUsIG91dHB1dCBVVEYtMTZCRS1lbmNvZGVkIEpTT046CgogIHVzZSBFbmNvZGU7CiAgJGpzb250ZXh0ID0gZW5jb2RlICJVVEYtMTZCRSIsIEpTT046OlhTLT5uZXctPmVuY29kZSAoJG9iamVjdCk7CgpFeGFtcGxlLCBkZWNvZGUgVVRGLTMyTEUtZW5jb2RlZCBKU09OOgoKICB1c2UgRW5jb2RlOwogICRvYmplY3QgPSBKU09OOjpYUy0+bmV3LT5kZWNvZGUgKGRlY29kZSAiVVRGLTMyTEUiLCAkanNvbnRleHQpOwoKCj1oZWFkMiBwcmV0dHkKCiAgICAkanNvbiA9ICRqc29uLT5wcmV0dHkoWyRlbmFibGVdKQoKVGhpcyBlbmFibGVzIChvciBkaXNhYmxlcykgYWxsIG9mIHRoZSBDPGluZGVudD4sIEM8c3BhY2VfYmVmb3JlPiBhbmQKQzxzcGFjZV9hZnRlcj4gZmxhZ3MgaW4gb25lIGNhbGwgdG8gZ2VuZXJhdGUgdGhlIG1vc3QgcmVhZGFibGUKKG9yIG1vc3QgY29tcGFjdCkgZm9ybSBwb3NzaWJsZS4KCj1oZWFkMiBpbmRlbnQKCiAgICAkanNvbiA9ICRqc29uLT5pbmRlbnQoWyRlbmFibGVdKQogICAgCiAgICAkZW5hYmxlZCA9ICRqc29uLT5nZXRfaW5kZW50CgpUaGUgZGVmYXVsdCBpbmRlbnQgc3BhY2UgbGVuZ3RoIGlzIHRocmVlLgpZb3UgY2FuIHVzZSBDPGluZGVudF9sZW5ndGg+IHRvIGNoYW5nZSB0aGUgbGVuZ3RoLgoKPWhlYWQyIHNwYWNlX2JlZm9yZQoKICAgICRqc29uID0gJGpzb24tPnNwYWNlX2JlZm9yZShbJGVuYWJsZV0pCiAgICAKICAgICRlbmFibGVkID0gJGpzb24tPmdldF9zcGFjZV9iZWZvcmUKCj1oZWFkMiBzcGFjZV9hZnRlcgoKICAgICRqc29uID0gJGpzb24tPnNwYWNlX2FmdGVyKFskZW5hYmxlXSkKICAgIAogICAgJGVuYWJsZWQgPSAkanNvbi0+Z2V0X3NwYWNlX2FmdGVyCgo9aGVhZDIgcmVsYXhlZAoKICAgICRqc29uID0gJGpzb24tPnJlbGF4ZWQoWyRlbmFibGVdKQogICAgCiAgICAkZW5hYmxlZCA9ICRqc29uLT5nZXRfcmVsYXhlZAoKPWhlYWQyIGNhbm9uaWNhbAoKICAgICRqc29uID0gJGpzb24tPmNhbm9uaWNhbChbJGVuYWJsZV0pCiAgICAKICAgICRlbmFibGVkID0gJGpzb24tPmdldF9jYW5vbmljYWwKCklmIHlvdSB3YW50IHlvdXIgb3duIHNvcnRpbmcgcm91dGluZSwgeW91IGNhbiBnaXZlIGEgY29kZSByZWZlcmVjZQpvciBhIHN1YnJvdXRpbmUgbmFtZSB0byBDPHNvcnRfYnk+LiBTZWUgdG8gQzxKU09OOjpQUCBPV04gTUVUSE9EUz4uCgo9aGVhZDIgYWxsb3dfbm9ucmVmCgogICAgJGpzb24gPSAkanNvbi0+YWxsb3dfbm9ucmVmKFskZW5hYmxlXSkKICAgIAogICAgJGVuYWJsZWQgPSAkanNvbi0+Z2V0X2FsbG93X25vbnJlZgoKPWhlYWQyIGFsbG93X3Vua25vd24KCiAgICAkanNvbiA9ICRqc29uLT5hbGxvd191bmtub3duIChbJGVuYWJsZV0pCiAgICAKICAgICRlbmFibGVkID0gJGpzb24tPmdldF9hbGxvd191bmtub3duCgo9aGVhZDIgYWxsb3dfYmxlc3NlZAoKICAgICRqc29uID0gJGpzb24tPmFsbG93X2JsZXNzZWQoWyRlbmFibGVdKQogICAgCiAgICAkZW5hYmxlZCA9ICRqc29uLT5nZXRfYWxsb3dfYmxlc3NlZAoKPWhlYWQyIGNvbnZlcnRfYmxlc3NlZAoKICAgICRqc29uID0gJGpzb24tPmNvbnZlcnRfYmxlc3NlZChbJGVuYWJsZV0pCiAgICAKICAgICRlbmFibGVkID0gJGpzb24tPmdldF9jb252ZXJ0X2JsZXNzZWQKCj1oZWFkMiBmaWx0ZXJfanNvbl9vYmplY3QKCiAgICAkanNvbiA9ICRqc29uLT5maWx0ZXJfanNvbl9vYmplY3QoWyRjb2RlcmVmXSkKCj1oZWFkMiBmaWx0ZXJfanNvbl9zaW5nbGVfa2V5X29iamVjdAoKICAgICRqc29uID0gJGpzb24tPmZpbHRlcl9qc29uX3NpbmdsZV9rZXlfb2JqZWN0KCRrZXkgWz0+ICRjb2RlcmVmXSkKCj1oZWFkMiBzaHJpbmsKCiAgICAkanNvbiA9ICRqc29uLT5zaHJpbmsoWyRlbmFibGVdKQogICAgCiAgICAkZW5hYmxlZCA9ICRqc29uLT5nZXRfc2hyaW5rCgpJbiBKU09OOjpYUywgdGhpcyBmbGFnIHJlc2l6ZXMgc3RyaW5ncyBnZW5lcmF0ZWQgYnkgZWl0aGVyCkM8ZW5jb2RlPiBvciBDPGRlY29kZT4gdG8gdGhlaXIgbWluaW11bSBzaXplIHBvc3NpYmxlLgpJdCB3aWxsIGFsc28gdHJ5IHRvIGRvd25ncmFkZSBhbnkgc3RyaW5ncyB0byBvY3RldC1mb3JtIGlmIHBvc3NpYmxlLgoKSW4gSlNPTjo6UFAsIGl0IGlzIG5vb3AgYWJvdXQgcmVzaXppbmcgc3RyaW5ncyBidXQgdHJpZXMKQzx1dGY4Ojpkb3duZ3JhZGU+IHRvIHRoZSByZXR1cm5lZCBzdHJpbmcgYnkgQzxlbmNvZGU+LgpTZWUgdG8gTDx1dGY4Pi4KClNlZSB0byBMPEpTT046OlhTL09CSkVDVC1PUklFTlRFRCBJTlRFUkZBQ0U+Cgo9aGVhZDIgbWF4X2RlcHRoCgogICAgJGpzb24gPSAkanNvbi0+bWF4X2RlcHRoKFskbWF4aW11bV9uZXN0aW5nX2RlcHRoXSkKICAgIAogICAgJG1heF9kZXB0aCA9ICRqc29uLT5nZXRfbWF4X2RlcHRoCgpTZXRzIHRoZSBtYXhpbXVtIG5lc3RpbmcgbGV2ZWwgKGRlZmF1bHQgQzw1MTI+KSBhY2NlcHRlZCB3aGlsZSBlbmNvZGluZwpvciBkZWNvZGluZy4gSWYgYSBoaWdoZXIgbmVzdGluZyBsZXZlbCBpcyBkZXRlY3RlZCBpbiBKU09OIHRleHQgb3IgYSBQZXJsCmRhdGEgc3RydWN0dXJlLCB0aGVuIHRoZSBlbmNvZGVyIGFuZCBkZWNvZGVyIHdpbGwgc3RvcCBhbmQgY3JvYWsgYXQgdGhhdApwb2ludC4KCk5lc3RpbmcgbGV2ZWwgaXMgZGVmaW5lZCBieSBudW1iZXIgb2YgaGFzaC0gb3IgYXJyYXlyZWZzIHRoYXQgdGhlIGVuY29kZXIKbmVlZHMgdG8gdHJhdmVyc2UgdG8gcmVhY2ggYSBnaXZlbiBwb2ludCBvciB0aGUgbnVtYmVyIG9mIEM8ez4gb3IgQzxbPgpjaGFyYWN0ZXJzIHdpdGhvdXQgdGhlaXIgbWF0Y2hpbmcgY2xvc2luZyBwYXJlbnRoZXNpcyBjcm9zc2VkIHRvIHJlYWNoIGEKZ2l2ZW4gY2hhcmFjdGVyIGluIGEgc3RyaW5nLgoKSWYgbm8gYXJndW1lbnQgaXMgZ2l2ZW4sIHRoZSBoaWdoZXN0IHBvc3NpYmxlIHNldHRpbmcgd2lsbCBiZSB1c2VkLCB3aGljaAppcyByYXJlbHkgdXNlZnVsLgoKU2VlIEw8SlNPTjo6WFMvU1NFQ1VSSVRZIENPTlNJREVSQVRJT05TPiBmb3IgbW9yZSBpbmZvIG9uIHdoeSB0aGlzIGlzIHVzZWZ1bC4KCldoZW4gYSBsYXJnZSB2YWx1ZSAoMTAwIG9yIG1vcmUpIHdhcyBzZXQgYW5kIGl0IGRlL2VuY29kZXMgYSBkZWVwIG5lc3RlZCBvYmplY3QvdGV4dCwKaXQgbWF5IHJhaXNlIGEgd2FybmluZyAnRGVlcCByZWN1cnNpb24gb24gc3Vicm91dGluJyBhdCB0aGUgcGVybCBydW50aW1lIHBoYXNlLgoKPWhlYWQyIG1heF9zaXplCgogICAgJGpzb24gPSAkanNvbi0+bWF4X3NpemUoWyRtYXhpbXVtX3N0cmluZ19zaXplXSkKICAgIAogICAgJG1heF9zaXplID0gJGpzb24tPmdldF9tYXhfc2l6ZQoKU2V0IHRoZSBtYXhpbXVtIGxlbmd0aCBhIEpTT04gdGV4dCBtYXkgaGF2ZSAoaW4gYnl0ZXMpIHdoZXJlIGRlY29kaW5nIGlzCmJlaW5nIGF0dGVtcHRlZC4gVGhlIGRlZmF1bHQgaXMgQzwwPiwgbWVhbmluZyBubyBsaW1pdC4gV2hlbiBDPGRlY29kZT4KaXMgY2FsbGVkIG9uIGEgc3RyaW5nIHRoYXQgaXMgbG9uZ2VyIHRoZW4gdGhpcyBtYW55IGJ5dGVzLCBpdCB3aWxsIG5vdAphdHRlbXB0IHRvIGRlY29kZSB0aGUgc3RyaW5nIGJ1dCB0aHJvdyBhbiBleGNlcHRpb24uIFRoaXMgc2V0dGluZyBoYXMgbm8KZWZmZWN0IG9uIEM8ZW5jb2RlPiAoeWV0KS4KCklmIG5vIGFyZ3VtZW50IGlzIGdpdmVuLCB0aGUgbGltaXQgY2hlY2sgd2lsbCBiZSBkZWFjdGl2YXRlZCAoc2FtZSBhcyB3aGVuCkM8MD4gaXMgc3BlY2lmaWVkKS4KClNlZSBMPEpTT046OlhTL1NTRUNVUklUWSBDT05TSURFUkFUSU9OUz4gZm9yIG1vcmUgaW5mbyBvbiB3aHkgdGhpcyBpcyB1c2VmdWwuCgo9aGVhZDIgZW5jb2RlCgogICAgJGpzb25fdGV4dCA9ICRqc29uLT5lbmNvZGUoJHBlcmxfc2NhbGFyKQoKPWhlYWQyIGRlY29kZQoKICAgICRwZXJsX3NjYWxhciA9ICRqc29uLT5kZWNvZGUoJGpzb25fdGV4dCkKCj1oZWFkMiBkZWNvZGVfcHJlZml4CgogICAgKCRwZXJsX3NjYWxhciwgJGNoYXJhY3RlcnMpID0gJGpzb24tPmRlY29kZV9wcmVmaXgoJGpzb25fdGV4dCkKCgo9aGVhZDEgSU5DUkVNRU5UQUwgUEFSU0lORwoKTW9zdCBvZiB0aGlzIHNlY3Rpb24gYXJlIGNvcGllZCBhbmQgbW9kaWZpZWQgZnJvbSBMPEpTT046OlhTL0lOQ1JFTUVOVEFMIFBBUlNJTkc+LgoKSW4gc29tZSBjYXNlcywgdGhlcmUgaXMgdGhlIG5lZWQgZm9yIGluY3JlbWVudGFsIHBhcnNpbmcgb2YgSlNPTiB0ZXh0cy4KVGhpcyBtb2R1bGUgZG9lcyBhbGxvdyB5b3UgdG8gcGFyc2UgYSBKU09OIHN0cmVhbSBpbmNyZW1lbnRhbGx5LgpJdCBkb2VzIHNvIGJ5IGFjY3VtdWxhdGluZyB0ZXh0IHVudGlsIGl0IGhhcyBhIGZ1bGwgSlNPTiBvYmplY3QsIHdoaWNoCml0IHRoZW4gY2FuIGRlY29kZS4gVGhpcyBwcm9jZXNzIGlzIHNpbWlsYXIgdG8gdXNpbmcgQzxkZWNvZGVfcHJlZml4Pgp0byBzZWUgaWYgYSBmdWxsIEpTT04gb2JqZWN0IGlzIGF2YWlsYWJsZSwgYnV0IGlzIG11Y2ggbW9yZSBlZmZpY2llbnQKKGFuZCBjYW4gYmUgaW1wbGVtZW50ZWQgd2l0aCBhIG1pbmltdW0gb2YgbWV0aG9kIGNhbGxzKS4KClRoaXMgbW9kdWxlIHdpbGwgb25seSBhdHRlbXB0IHRvIHBhcnNlIHRoZSBKU09OIHRleHQgb25jZSBpdCBpcyBzdXJlIGl0CmhhcyBlbm91Z2ggdGV4dCB0byBnZXQgYSBkZWNpc2l2ZSByZXN1bHQsIHVzaW5nIGEgdmVyeSBzaW1wbGUgYnV0CnRydWx5IGluY3JlbWVudGFsIHBhcnNlci4gVGhpcyBtZWFucyB0aGF0IGl0IHNvbWV0aW1lcyB3b24ndCBzdG9wIGFzCmVhcmx5IGFzIHRoZSBmdWxsIHBhcnNlciwgZm9yIGV4YW1wbGUsIGl0IGRvZXNuJ3QgZGV0ZWN0IHBhcmVudGhlc2UKbWlzbWF0Y2hlcy4gVGhlIG9ubHkgdGhpbmcgaXQgZ3VhcmFudGVlcyBpcyB0aGF0IGl0IHN0YXJ0cyBkZWNvZGluZyBhcwpzb29uIGFzIGEgc3ludGFjdGljYWxseSB2YWxpZCBKU09OIHRleHQgaGFzIGJlZW4gc2Vlbi4gVGhpcyBtZWFucyB5b3UgbmVlZAp0byBzZXQgcmVzb3VyY2UgbGltaXRzIChlLmcuIEM8bWF4X3NpemU+KSB0byBlbnN1cmUgdGhlIHBhcnNlciB3aWxsIHN0b3AKcGFyc2luZyBpbiB0aGUgcHJlc2VuY2UgaWYgc3ludGF4IGVycm9ycy4KClRoZSBmb2xsb3dpbmcgbWV0aG9kcyBpbXBsZW1lbnQgdGhpcyBpbmNyZW1lbnRhbCBwYXJzZXIuCgo9aGVhZDIgaW5jcl9wYXJzZQoKICAgICRqc29uLT5pbmNyX3BhcnNlKCBbJHN0cmluZ10gKSAjIHZvaWQgY29udGV4dAogICAgCiAgICAkb2JqX29yX3VuZGVmID0gJGpzb24tPmluY3JfcGFyc2UoIFskc3RyaW5nXSApICMgc2NhbGFyIGNvbnRleHQKICAgIAogICAgQG9ial9vcl9lbXB0eSA9ICRqc29uLT5pbmNyX3BhcnNlKCBbJHN0cmluZ10gKSAjIGxpc3QgY29udGV4dAoKVGhpcyBpcyB0aGUgY2VudHJhbCBwYXJzaW5nIGZ1bmN0aW9uLiBJdCBjYW4gYm90aCBhcHBlbmQgbmV3IHRleHQgYW5kCmV4dHJhY3Qgb2JqZWN0cyBmcm9tIHRoZSBzdHJlYW0gYWNjdW11bGF0ZWQgc28gZmFyIChib3RoIG9mIHRoZXNlCmZ1bmN0aW9ucyBhcmUgb3B0aW9uYWwpLgoKSWYgQzwkc3RyaW5nPiBpcyBnaXZlbiwgdGhlbiB0aGlzIHN0cmluZyBpcyBhcHBlbmRlZCB0byB0aGUgYWxyZWFkeQpleGlzdGluZyBKU09OIGZyYWdtZW50IHN0b3JlZCBpbiB0aGUgQzwkanNvbj4gb2JqZWN0LgoKQWZ0ZXIgdGhhdCwgaWYgdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiB2b2lkIGNvbnRleHQsIGl0IHdpbGwgc2ltcGx5CnJldHVybiB3aXRob3V0IGRvaW5nIGFueXRoaW5nIGZ1cnRoZXIuIFRoaXMgY2FuIGJlIHVzZWQgdG8gYWRkIG1vcmUgdGV4dAppbiBhcyBtYW55IGNodW5rcyBhcyB5b3Ugd2FudC4KCklmIHRoZSBtZXRob2QgaXMgY2FsbGVkIGluIHNjYWxhciBjb250ZXh0LCB0aGVuIGl0IHdpbGwgdHJ5IHRvIGV4dHJhY3QKZXhhY3RseSBJPG9uZT4gSlNPTiBvYmplY3QuIElmIHRoYXQgaXMgc3VjY2Vzc2Z1bCwgaXQgd2lsbCByZXR1cm4gdGhpcwpvYmplY3QsIG90aGVyd2lzZSBpdCB3aWxsIHJldHVybiBDPHVuZGVmPi4gSWYgdGhlcmUgaXMgYSBwYXJzZSBlcnJvciwKdGhpcyBtZXRob2Qgd2lsbCBjcm9hayBqdXN0IGFzIEM8ZGVjb2RlPiB3b3VsZCBkbyAob25lIGNhbiB0aGVuIHVzZQpDPGluY3Jfc2tpcD4gdG8gc2tpcCB0aGUgZXJyb3Jub3VzIHBhcnQpLiBUaGlzIGlzIHRoZSBtb3N0IGNvbW1vbiB3YXkgb2YKdXNpbmcgdGhlIG1ldGhvZC4KCkFuZCBmaW5hbGx5LCBpbiBsaXN0IGNvbnRleHQsIGl0IHdpbGwgdHJ5IHRvIGV4dHJhY3QgYXMgbWFueSBvYmplY3RzCmZyb20gdGhlIHN0cmVhbSBhcyBpdCBjYW4gZmluZCBhbmQgcmV0dXJuIHRoZW0sIG9yIHRoZSBlbXB0eSBsaXN0Cm90aGVyd2lzZS4gRm9yIHRoaXMgdG8gd29yaywgdGhlcmUgbXVzdCBiZSBubyBzZXBhcmF0b3JzIGJldHdlZW4gdGhlIEpTT04Kb2JqZWN0cyBvciBhcnJheXMsIGluc3RlYWQgdGhleSBtdXN0IGJlIGNvbmNhdGVuYXRlZCBiYWNrLXRvLWJhY2suIElmCmFuIGVycm9yIG9jY3VycywgYW4gZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIGFzIGluIHRoZSBzY2FsYXIgY29udGV4dApjYXNlLiBOb3RlIHRoYXQgaW4gdGhpcyBjYXNlLCBhbnkgcHJldmlvdXNseS1wYXJzZWQgSlNPTiB0ZXh0cyB3aWxsIGJlCmxvc3QuCgpFeGFtcGxlOiBQYXJzZSBzb21lIEpTT04gYXJyYXlzL29iamVjdHMgaW4gYSBnaXZlbiBzdHJpbmcgYW5kIHJldHVybiB0aGVtLgoKICAgIG15IEBvYmpzID0gSlNPTi0+bmV3LT5pbmNyX3BhcnNlICgiWzVdWzddWzEsMl0iKTsKCj1oZWFkMiBpbmNyX3RleHQKCiAgICAkbHZhbHVlX3N0cmluZyA9ICRqc29uLT5pbmNyX3RleHQKClRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGN1cnJlbnRseSBzdG9yZWQgSlNPTiBmcmFnbWVudCBhcyBhbiBsdmFsdWUsIHRoYXQKaXMsIHlvdSBjYW4gbWFuaXB1bGF0ZSBpdC4gVGhpcyBJPG9ubHk+IHdvcmtzIHdoZW4gYSBwcmVjZWRpbmcgY2FsbCB0bwpDPGluY3JfcGFyc2U+IGluIEk8c2NhbGFyIGNvbnRleHQ+IHN1Y2Nlc3NmdWxseSByZXR1cm5lZCBhbiBvYmplY3QuIFVuZGVyCmFsbCBvdGhlciBjaXJjdW1zdGFuY2VzIHlvdSBtdXN0IG5vdCBjYWxsIHRoaXMgZnVuY3Rpb24gKEkgbWVhbiBpdC4KYWx0aG91Z2ggaW4gc2ltcGxlIHRlc3RzIGl0IG1pZ2h0IGFjdHVhbGx5IHdvcmssIGl0IEk8d2lsbD4gZmFpbCB1bmRlcgpyZWFsIHdvcmxkIGNvbmRpdGlvbnMpLiBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCB5b3UgY2FuIGFsc28gY2FsbCB0aGlzCm1ldGhvZCBiZWZvcmUgaGF2aW5nIHBhcnNlZCBhbnl0aGluZy4KClRoaXMgZnVuY3Rpb24gaXMgdXNlZnVsIGluIHR3byBjYXNlczogYSkgZmluZGluZyB0aGUgdHJhaWxpbmcgdGV4dCBhZnRlciBhCkpTT04gb2JqZWN0IG9yIGIpIHBhcnNpbmcgbXVsdGlwbGUgSlNPTiBvYmplY3RzIHNlcGFyYXRlZCBieSBub24tSlNPTiB0ZXh0CihzdWNoIGFzIGNvbW1hcykuCgogICAgJGpzb24tPmluY3JfdGV4dCA9fiBzL1xzKixccyovLzsKCkluIFBlcmwgNS4wMDUsIEM8bHZhbHVlPiBhdHRyaWJ1dGUgaXMgbm90IGF2YWlsYWJsZS4KWW91IG11c3Qgd3JpdGUgY29kZXMgbGlrZSB0aGUgYmVsb3c6CgogICAgJHN0cmluZyA9ICRqc29uLT5pbmNyX3RleHQ7CiAgICAkc3RyaW5nID1+IHMvXHMqLFxzKi8vOwogICAgJGpzb24tPmluY3JfdGV4dCggJHN0cmluZyApOwoKPWhlYWQyIGluY3Jfc2tpcAoKICAgICRqc29uLT5pbmNyX3NraXAKClRoaXMgd2lsbCByZXNldCB0aGUgc3RhdGUgb2YgdGhlIGluY3JlbWVudGFsIHBhcnNlciBhbmQgd2lsbCByZW1vdmUgdGhlCnBhcnNlZCB0ZXh0IGZyb20gdGhlIGlucHV0IGJ1ZmZlci4gVGhpcyBpcyB1c2VmdWwgYWZ0ZXIgQzxpbmNyX3BhcnNlPgpkaWVkLCBpbiB3aGljaCBjYXNlIHRoZSBpbnB1dCBidWZmZXIgYW5kIGluY3JlbWVudGFsIHBhcnNlciBzdGF0ZSBpcyBsZWZ0CnVuY2hhbmdlZCwgdG8gc2tpcCB0aGUgdGV4dCBwYXJzZWQgc28gZmFyIGFuZCB0byByZXNldCB0aGUgcGFyc2Ugc3RhdGUuCgo9aGVhZDIgaW5jcl9yZXNldAoKICAgICRqc29uLT5pbmNyX3Jlc2V0CgpUaGlzIGNvbXBsZXRlbHkgcmVzZXRzIHRoZSBpbmNyZW1lbnRhbCBwYXJzZXIsIHRoYXQgaXMsIGFmdGVyIHRoaXMgY2FsbCwKaXQgd2lsbCBiZSBhcyBpZiB0aGUgcGFyc2VyIGhhZCBuZXZlciBwYXJzZWQgYW55dGhpbmcuCgpUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCBvdCByZXBlYXRlZGx5IHBhcnNlIEpTT04gb2JqZWN0cyBhbmQgd2FudCB0bwppZ25vcmUgYW55IHRyYWlsaW5nIGRhdGEsIHdoaWNoIG1lYW5zIHlvdSBoYXZlIHRvIHJlc2V0IHRoZSBwYXJzZXIgYWZ0ZXIKZWFjaCBzdWNjZXNzZnVsIGRlY29kZS4KClNlZSB0byBMPEpTT046OlhTL0lOQ1JFTUVOVEFMIFBBUlNJTkc+IGZvciBleGFtcGxlcy4KCgo9aGVhZDEgSlNPTjo6UFAgT1dOIE1FVEhPRFMKCj1oZWFkMiBhbGxvd19zaW5nbGVxdW90ZQoKICAgICRqc29uID0gJGpzb24tPmFsbG93X3NpbmdsZXF1b3RlKFskZW5hYmxlXSkKCklmIEM8JGVuYWJsZT4gaXMgdHJ1ZSAob3IgbWlzc2luZyksIHRoZW4gQzxkZWNvZGU+IHdpbGwgYWNjZXB0CkpTT04gc3RyaW5ncyBxdW90ZWQgYnkgc2luZ2xlIHF1b3RhdGlvbnMgdGhhdCBhcmUgaW52YWxpZCBKU09OCmZvcm1hdC4KCiAgICAkanNvbi0+YWxsb3dfc2luZ2xlcXVvdGUtPmRlY29kZSh7ImZvbyI6J2Jhcid9KTsKICAgICRqc29uLT5hbGxvd19zaW5nbGVxdW90ZS0+ZGVjb2RlKHsnZm9vJzoiYmFyIn0pOwogICAgJGpzb24tPmFsbG93X3NpbmdsZXF1b3RlLT5kZWNvZGUoeydmb28nOidiYXInfSk7CgpBcyBzYW1lIGFzIHRoZSBDPHJlbGF4ZWQ+IG9wdGlvbiwgdGhpcyBvcHRpb24gbWF5IGJlIHVzZWQgdG8gcGFyc2UKYXBwbGljYXRpb24tc3BlY2lmaWMgZmlsZXMgd3JpdHRlbiBieSBodW1hbnMuCgoKPWhlYWQyIGFsbG93X2JhcmVrZXkKCiAgICAkanNvbiA9ICRqc29uLT5hbGxvd19iYXJla2V5KFskZW5hYmxlXSkKCklmIEM8JGVuYWJsZT4gaXMgdHJ1ZSAob3IgbWlzc2luZyksIHRoZW4gQzxkZWNvZGU+IHdpbGwgYWNjZXB0CmJhcmUga2V5cyBvZiBKU09OIG9iamVjdCB0aGF0IGFyZSBpbnZhbGlkIEpTT04gZm9ybWF0LgoKQXMgc2FtZSBhcyB0aGUgQzxyZWxheGVkPiBvcHRpb24sIHRoaXMgb3B0aW9uIG1heSBiZSB1c2VkIHRvIHBhcnNlCmFwcGxpY2F0aW9uLXNwZWNpZmljIGZpbGVzIHdyaXR0ZW4gYnkgaHVtYW5zLgoKICAgICRqc29uLT5hbGxvd19iYXJla2V5LT5kZWNvZGUoJ3tmb286ImJhciJ9Jyk7Cgo9aGVhZDIgYWxsb3dfYmlnbnVtCgogICAgJGpzb24gPSAkanNvbi0+YWxsb3dfYmlnbnVtKFskZW5hYmxlXSkKCklmIEM8JGVuYWJsZT4gaXMgdHJ1ZSAob3IgbWlzc2luZyksIHRoZW4gQzxkZWNvZGU+IHdpbGwgY29udmVydAp0aGUgYmlnIGludGVnZXIgUGVybCBjYW5ub3QgaGFuZGxlIGFzIGludGVnZXIgaW50byBhIEw8TWF0aDo6QmlnSW50PgpvYmplY3QgYW5kIGNvbnZlcnQgYSBmbG9hdGluZyBudW1iZXIgKGFueSkgaW50byBhIEw8TWF0aDo6QmlnRmxvYXQ+LgoKT24gdGhlIGNvbnRhcnksIEM8ZW5jb2RlPiBjb252ZXJ0cyBDPE1hdGg6OkJpZ0ludD4gb2JqZWN0cyBhbmQgQzxNYXRoOjpCaWdGbG9hdD4Kb2JqZWN0cyBpbnRvIEpTT04gbnVtYmVycyB3aXRoIEM8YWxsb3dfYmxlc3NlZD4gZW5hYmxlLgoKICAgJGpzb24tPmFsbG93X25vbnJlZi0+YWxsb3dfYmxlc3NlZC0+YWxsb3dfYmlnbnVtOwogICAkYmlnZmxvYXQgPSAkanNvbi0+ZGVjb2RlKCcyLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMScpOwogICBwcmludCAkanNvbi0+ZW5jb2RlKCRiaWdmbG9hdCk7CiAgICMgPT4gMi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKClNlZSB0byBMPEpTT046OlhTL01BUFBJTkc+IGFib291dCB0aGUgbm9ybWFsIGNvbnZlcnNpb24gb2YgSlNPTiBudW1iZXIuCgo9aGVhZDIgbG9vc2UKCiAgICAkanNvbiA9ICRqc29uLT5sb29zZShbJGVuYWJsZV0pCgpUaGUgdW5lc2NhcGVkIFtceDAwLVx4MWZceDIyXHgyZlx4NWNdIHN0cmluZ3MgYXJlIGludmFsaWQgaW4gSlNPTiBzdHJpbmdzCmFuZCB0aGUgbW9kdWxlIGRvZXNuJ3QgYWxsb3cgdG8gQzxkZWNvZGU+IHRvIHRoZXNlIChleGNlcHQgZm9yIFx4MmYpLgpJZiBDPCRlbmFibGU+IGlzIHRydWUgKG9yIG1pc3NpbmcpLCB0aGVuIEM8ZGVjb2RlPiAgd2lsbCBhY2NlcHQgdGhlc2UKdW5lc2NhcGVkIHN0cmluZ3MuCgogICAgJGpzb24tPmxvb3NlLT5kZWNvZGUocXF8WyJhYmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWYiXXwpOwoKU2VlIEw8SlNPTjo6WFMvU1NFQ1VSSVRZIENPTlNJREVSQVRJT05TPi4KCj1oZWFkMiBlc2NhcGVfc2xhc2gKCiAgICAkanNvbiA9ICRqc29uLT5lc2NhcGVfc2xhc2goWyRlbmFibGVdKQoKQWNjb3JkaW5nIHRvIEpTT04gR3JhbW1hciwgSTxzbGFzaD4gKFUrMDAyRikgaXMgZXNjYXBlZC4gQnV0IGRlZmF1bHQKSlNPTjo6UFAgKGFzIHNhbWUgYXMgSlNPTjo6WFMpIGVuY29kZXMgc3RyaW5ncyB3aXRob3V0IGVzY2FwaW5nIHNsYXNoLgoKSWYgQzwkZW5hYmxlPiBpcyB0cnVlIChvciBtaXNzaW5nKSwgdGhlbiBDPGVuY29kZT4gd2lsbCBlc2NhcGUgc2xhc2hlcy4KCj1oZWFkMiAoT0JTT0xFVEVEKWFzX25vbmJsZXNzZWQKCiAgICAkanNvbiA9ICRqc29uLT5hc19ub25ibGVzc2VkCgooT0JTT0xFVEVEKSBJZiBDPCRlbmFibGU+IGlzIHRydWUgKG9yIG1pc3NpbmcpLCB0aGVuIEM8ZW5jb2RlPiB3aWxsIGNvbnZlcnQKYSBibGVzc2VkIGhhc2ggcmVmZXJlbmNlIG9yIGEgYmxlc3NlZCBhcnJheSByZWZlcmVuY2UgKGNvbnRhaW5zCm90aGVyIGJsZXNzZWQgcmVmZXJlbmNlcykgaW50byBKU09OIG1lbWJlcnMgYW5kIGFycmF5cy4KClRoaXMgZmVhdHVyZSBpcyBlZmZlY3RpdmUgb25seSB3aGVuIEM8YWxsb3dfYmxlc3NlZD4gaXMgZW5hYmxlLgoKPWhlYWQyIGluZGVudF9sZW5ndGgKCiAgICAkanNvbiA9ICRqc29uLT5pbmRlbnRfbGVuZ3RoKCRsZW5ndGgpCgpKU09OOjpYUyBpbmRlbnQgc3BhY2UgbGVuZ3RoIGlzIDMgYW5kIGNhbm5vdCBiZSBjaGFuZ2VkLgpKU09OOjpQUCBzZXQgdGhlIGluZGVudCBzcGFjZSBsZW5ndGggd2l0aCB0aGUgZ2l2ZW4gJGxlbmd0aC4KVGhlIGRlZmF1bHQgaXMgMy4gVGhlIGFjY2VwdGFibGUgcmFuZ2UgaXMgMCB0byAxNS4KCj1oZWFkMiBzb3J0X2J5CgogICAgJGpzb24gPSAkanNvbi0+c29ydF9ieSgkZnVuY3Rpb25fbmFtZSkKICAgICRqc29uID0gJGpzb24tPnNvcnRfYnkoJHN1YnJvdXRpbmVfcmVmKQoKSWYgJGZ1bmN0aW9uX25hbWUgb3IgJHN1YnJvdXRpbmVfcmVmIGFyZSBzZXQsIGl0cyBzb3J0IHJvdXRpbmUgYXJlIHVzZWQKaW4gZW5jb2RpbmcgSlNPTiBvYmplY3RzLgoKICAgJGpzID0gJHBjLT5zb3J0X2J5KHN1YiB7ICRKU09OOjpQUDo6YSBjbXAgJEpTT046OlBQOjpiIH0pLT5lbmNvZGUoJG9iaik7CiAgICMgaXMoJGpzLCBxfHsiYSI6MSwiYiI6MiwiYyI6MywiZCI6NCwiZSI6NSwiZiI6NiwiZyI6NywiaCI6OCwiaSI6OX18KTsKCiAgICRqcyA9ICRwYy0+c29ydF9ieSgnb3duX3NvcnQnKS0+ZW5jb2RlKCRvYmopOwogICAjIGlzKCRqcywgcXx7ImEiOjEsImIiOjIsImMiOjMsImQiOjQsImUiOjUsImYiOjYsImciOjcsImgiOjgsImkiOjl9fCk7CgogICBzdWIgSlNPTjo6UFA6Om93bl9zb3J0IHsgJEpTT046OlBQOjphIGNtcCAkSlNPTjo6UFA6OmIgfQoKQXMgdGhlIHNvcnRpbmcgcm91dGluZSBydW5zIGluIHRoZSBKU09OOjpQUCBzY29wZSwgdGhlIGdpdmVuCnN1YnJvdXRpbmUgbmFtZSBhbmQgdGhlIHNwZWNpYWwgdmFyaWFibGVzIEM8JGE+LCBDPCRiPiB3aWxsIGJlZ2luCidKU09OOjpQUDo6Jy4KCklmICRpbnRlZ2VyIGlzIHNldCwgdGhlbiB0aGUgZWZmZWN0IGlzIHNhbWUgYXMgQzxjYW5vbmljYWw+IG9uLgoKPWhlYWQxIElOVEVSTkFMCgpGb3IgZGV2ZWxvcGVycy4KCj1vdmVyCgo9aXRlbSBQUF9lbmNvZGVfYm94CgpSZXR1cm5zCgogICAgICAgIHsKICAgICAgICAgICAgZGVwdGggICAgICAgID0+ICRkZXB0aCwKICAgICAgICAgICAgaW5kZW50X2NvdW50ID0+ICRpbmRlbnRfY291bnQsCiAgICAgICAgfQoKCj1pdGVtIFBQX2RlY29kZV9ib3gKClJldHVybnMKCiAgICAgICAgewogICAgICAgICAgICB0ZXh0ICAgID0+ICR0ZXh0LAogICAgICAgICAgICBhdCAgICAgID0+ICRhdCwKICAgICAgICAgICAgY2ggICAgICA9PiAkY2gsCiAgICAgICAgICAgIGxlbiAgICAgPT4gJGxlbiwKICAgICAgICAgICAgZGVwdGggICA9PiAkZGVwdGgsCiAgICAgICAgICAgIGVuY29kaW5nICAgICAgPT4gJGVuY29kaW5nLAogICAgICAgICAgICBpc192YWxpZF91dGY4ID0+ICRpc192YWxpZF91dGY4LAogICAgICAgIH07Cgo9YmFjawoKPWhlYWQxIE1BUFBJTkcKClNlZSB0byBMPEpTT046OlhTL01BUFBJTkc+LgoKCj1oZWFkMSBVTklDT0RFIEhBTkRMSU5HIE9OIFBFUkxTCgpJZiB5b3UgZG8gbm90IGtub3cgYWJvdXQgVW5pY29kZSBvbiBQZXJsIHdlbGwsCnBsZWFzZSBjaGVjayBMPEpTT046OlhTL0EgRkVXIE5PVEVTIE9OIFVOSUNPREUgQU5EIFBFUkw+LgoKPWhlYWQyIFBlcmwgNS44IGFuZCBsYXRlcgoKUGVybCBjYW4gaGFuZGxlIFVuaWNvZGUgYW5kIHRoZSBKU09OOjpQUCBkZS9lbmNvZGUgbWV0aG9kcyBhbHNvIHdvcmsgcHJvcGVybHkuCgogICAgJGpzb24tPmFsbG93X25vbnJlZi0+ZW5jb2RlKGNociBoZXggMzA0Mik7CiAgICAkanNvbi0+YWxsb3dfbm9ucmVmLT5lbmNvZGUoY2hyIGhleCAxMjM0NSk7CgpSZXV0dXJucyBDPCJcdTMwNDIiPiBhbmQgQzwiXHVkODA4XHVkZjQ1Ij4gcmVzcGVjdGl2ZWx5LgoKICAgICRqc29uLT5hbGxvd19ub25yZWYtPmRlY29kZSgnIlx1MzA0MiInKTsKICAgICRqc29uLT5hbGxvd19ub25yZWYtPmRlY29kZSgnIlx1ZDgwOFx1ZGY0NSInKTsKClJldHVybnMgVVRGLTggZW5jb2RlZCBzdHJpbmdzIHdpdGggVVRGOCBmbGFnLCByZWdhcmRlZCBhcyBDPFUrMzA0Mj4gYW5kIEM8VSsxMjM0NT4uCgpOb3RlIHRoYXQgdGhlIHZlcnNpb25zIGZyb20gUGVybCA1LjguMCB0byA1LjguMiwgUGVybCBidWlsdC1pbiBDPGpvaW4+IHdhcyBicm9rZW4sCnNvIEpTT046OlBQIHdyYXBzIHRoZSBDPGpvaW4+IHdpdGggYSBzdWJyb3V0aW5lLiBUaHVzIEpTT046OlBQIHdvcmtzIHNsb3cgaW4gdGhlIHZlcnNpb25zLgoKCj1oZWFkMiBQZXJsIDUuNgoKUGVybCBjYW4gaGFuZGxlIFVuaWNvZGUgYW5kIHRoZSBKU09OOjpQUCBkZS9lbmNvZGUgbWV0aG9kcyBhbHNvIHdvcmsuCgo9aGVhZDIgUGVybCA1LjAwNQoKUGVybCA1LjAwNSBpcyBhIGJ5dGUgc2VtZW50aWNzIHdvcmxkIC0tIGFsbCBzdHJpbmdzIGFyZSBzZXF1ZW5jZXMgb2YgYnl0ZXMuClRoYXQgbWVhbnMgdGhlIHVuaWNvZGUgaGFuZGxpbmcgaXMgbm90IGF2YWlsYWJsZS4KCkluIGVuY29kaW5nLAoKICAgICRqc29uLT5hbGxvd19ub25yZWYtPmVuY29kZShjaHIgaGV4IDMwNDIpOyAgIyBoZXggMzA0MiBpcyAxMjM1NC4KICAgICRqc29uLT5hbGxvd19ub25yZWYtPmVuY29kZShjaHIgaGV4IDEyMzQ1KTsgIyBoZXggMTIzNDUgaXMgNzQ1NjUuCgpSZXR1cm5zIEM8Qj4gYW5kIEM8RT4sIGFzIEM8Y2hyPiB0YWtlcyBhIHZhbHVlIG1vcmUgdGhhbiAyNTUsIGl0IHRyZWF0cwphcyBDPCR2YWx1ZSAlIDI1Nj4sIHNvIHRoZSBhYm92ZSBjb2RlcyBhcmUgZXF1aXZhbGVudCB0byA6CgogICAgJGpzb24tPmFsbG93X25vbnJlZi0+ZW5jb2RlKGNociA2Nik7CiAgICAkanNvbi0+YWxsb3dfbm9ucmVmLT5lbmNvZGUoY2hyIDY5KTsKCkluIGRlY29kaW5nLAoKICAgICRqc29uLT5kZWNvZGUoJyJcdTAwZTNcdTAwODFcdTAwODIiJyk7CgpUaGUgcmV0dXJuZWQgaXMgYSBieXRlIHNlcXVlbmNlIEM8MHhFMyAweDgxIDB4ODI+IGZvciBVVEYtOCBlbmNvZGVkCmphcGFuZXNlIGNoYXJhY3RlciAoQzxISVJBR0FOQSBMRVRURVIgQT4pLgpBbmQgaWYgaXQgaXMgcmVwcmVzZW50ZWQgaW4gVW5pY29kZSBjb2RlIHBvaW50LCBDPFUrMzA0Mj4uCgpOZXh0LCAKCiAgICAkanNvbi0+ZGVjb2RlKCciXHUzMDQyIicpOwoKV2Ugb3JkaW5hcnkgZXhwZWN0IHRoZSByZXR1cm5lZCB2YWx1ZSBpcyBhIFVuaWNvZGUgY2hhcmFjdGVyIEM8VSszMDQyPi4KQnV0IGhlcmUgaXMgNS4wMDUgd29ybGQuIFRoaXMgaXMgQzwweEUzIDB4ODEgMHg4Mj4uCgogICAgJGpzb24tPmRlY29kZSgnIlx1ZDgwOFx1ZGY0NSInKTsKClRoaXMgaXMgbm90IGEgY2hhcmFjdGVyIEM8VSsxMjM0NT4gYnV0IGJ5dGVzIC0gQzwweGYwIDB4OTIgMHg4ZCAweDg1Pi4KCgo9aGVhZDEgVE9ETwoKPW92ZXIKCj1pdGVtIHNwZWVkCgo9aXRlbSBtZW1vcnkgc2F2aW5nCgo9YmFjawoKCj1oZWFkMSBTRUUgQUxTTwoKTW9zdCBvZiB0aGUgZG9jdW1lbnQgYXJlIGNvcGllZCBhbmQgbW9kaWZpZWQgZnJvbSBKU09OOjpYUyBkb2MuCgpMPEpTT046OlhTPgoKUkZDNDYyNyAoTDxodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmM0NjI3LnR4dD4pCgo9aGVhZDEgQVVUSE9SCgpNYWthbWFrYSBIYW5ueWFoYXJhbWl0dSwgRTxsdD5tYWthbWFrYVthdF1jcGFuLm9yZ0U8Z3Q+CgoKPWhlYWQxIENPUFlSSUdIVCBBTkQgTElDRU5TRQoKQ29weXJpZ2h0IDIwMDctMjAxMCBieSBNYWthbWFrYSBIYW5ueWFoYXJhbWl0dQoKVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHNhbWUgdGVybXMgYXMgUGVybCBpdHNlbGYuIAoKPWN1dAo=
cGFja2FnZSBKU09OOjpQUDUwMDU7Cgp1c2UgNS4wMDU7CnVzZSBzdHJpY3Q7CgpteSBAcHJvcGVydGllczsKCiRKU09OOjpQUDUwMDU6OlZFUlNJT04gPSAnMS4wOSc7CgpCRUdJTiB7CgogICAgc3ViIHV0Zjg6OmlzX3V0ZjggewogICAgICAgIDA7ICMgSXQgaXMgY29uc2lkZXJlZCB0aGF0IFVURjggZmxhZyBvZmYgZm9yIFBlcmwgNS4wMDUuCiAgICB9CgogICAgc3ViIHV0Zjg6OnVwZ3JhZGUgewogICAgfQoKICAgIHN1YiB1dGY4Ojpkb3duZ3JhZGUgewogICAgICAgIDE7ICMgbXVzdCBhbHdheXMgcmV0dXJuIHRydWUuCiAgICB9CgogICAgc3ViIHV0Zjg6OmVuY29kZSAgewogICAgfQoKICAgIHN1YiB1dGY4OjpkZWNvZGUgewogICAgfQoKICAgICpKU09OOjpQUDo6SlNPTl9QUF9lbmNvZGVfYXNjaWkgICAgICA9IFwmX2VuY29kZV9hc2NpaTsKICAgICpKU09OOjpQUDo6SlNPTl9QUF9lbmNvZGVfbGF0aW4xICAgICA9IFwmX2VuY29kZV9sYXRpbjE7CiAgICAqSlNPTjo6UFA6OkpTT05fUFBfZGVjb2RlX3N1cnJvZ2F0ZXMgPSBcJl9kZWNvZGVfc3Vycm9nYXRlczsKICAgICpKU09OOjpQUDo6SlNPTl9QUF9kZWNvZGVfdW5pY29kZSAgICA9IFwmX2RlY29kZV91bmljb2RlOwoKICAgICMgbWlzc2luZyBpbiBCIG1vZHVsZS4KICAgIHN1YiBCOjpTVmZfSU9LICgpIHsgMHgwMDAxMDAwMDsgfQogICAgc3ViIEI6OlNWZl9OT0sgKCkgeyAweDAwMDIwMDAwOyB9CiAgICBzdWIgQjo6U1ZmX1BPSyAoKSB7IDB4MDAwNDAwMDA7IH0KICAgIHN1YiBCOjpTVnBfSU9LICgpIHsgMHgwMTAwMDAwMDsgfQogICAgc3ViIEI6OlNWcF9OT0sgKCkgeyAweDAyMDAwMDAwOyB9CgogICAgJElOQ3snYnl0ZXMucG0nfSA9IDE7ICMgZHVtbXkKfQoKCgpzdWIgX2VuY29kZV9hc2NpaSB7CiAgICBqb2luKCcnLCBtYXAgeyAkXyA8PSAxMjcgPyBjaHIoJF8pIDogc3ByaW50ZignXHUlMDR4JywgJF8pIH0gdW5wYWNrKCdDKicsICRfWzBdKSApOwp9CgoKc3ViIF9lbmNvZGVfbGF0aW4xIHsKICAgIGpvaW4oJycsIG1hcCB7IGNocigkXykgfSB1bnBhY2soJ0MqJywgJF9bMF0pICk7Cn0KCgpzdWIgX2RlY29kZV9zdXJyb2dhdGVzIHsgIyBmcm9tIGh0dHA6Ly9ob21lcGFnZTEubmlmdHkuY29tL25vbWVuY2xhdG9yL3VuaWNvZGUvdWNzX3V0Zi5odG0KICAgIG15ICR1bmkgPSAweDEwMDAwICsgKGhleCgkX1swXSkgLSAweEQ4MDApICogMHg0MDAgKyAoaGV4KCRfWzFdKSAtIDB4REMwMCk7ICMgZnJvbSBwZXJsdW5pY29kZQogICAgbXkgJGJpdCA9IHVucGFjaygnQjMyJywgcGFjaygnTicsICR1bmkpKTsKCiAgICBpZiAoICRiaXQgPX4gL14wMDAwMDAwMDAwMCguLi4pKC4uLi4uLikoLi4uLi4uKSguLi4uLi4pJC8gKSB7CiAgICAgICAgbXkgKCR3LCAkeCwgJHksICR6KSA9ICgkMSwgJDIsICQzLCAkNCk7CiAgICAgICAgcmV0dXJuIHBhY2soJ0IqJywgc3ByaW50ZignMTExMTAlczEwJXMxMCVzMTAlcycsICR3LCAkeCwgJHksICR6KSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBDYXJwOjpjcm9haygiSW52YWxpZCBzdXJyb2dhdGUgcGFpciIpOwogICAgfQp9CgoKc3ViIF9kZWNvZGVfdW5pY29kZSB7CiAgICBteSAoJHUpID0gQF87CiAgICBteSAoJHV0ZjhiaXQpOwoKICAgIGlmICggJHUgPX4gL14wMChbODlhLWZdWzAtOWEtZl0pJC9pICkgeyAjIDB4ODAtMHhmZgogICAgICAgICByZXR1cm4gcGFjayggJ0gyJywgJDEgKTsKICAgIH0KCiAgICBteSAkYml0ID0gdW5wYWNrKCJCKiIsIHBhY2soIkgqIiwgJHUpKTsKCiAgICBpZiAoICRiaXQgPX4gL14wMDAwMCguLi4uLikoLi4uLi4uKSQvICkgewogICAgICAgICR1dGY4Yml0ID0gc3ByaW50ZignMTEwJXMxMCVzJywgJDEsICQyKTsKICAgIH0KICAgIGVsc2lmICggJGJpdCA9fiAvXiguLi4uKSguLi4uLi4pKC4uLi4uLikkLyApIHsKICAgICAgICAkdXRmOGJpdCA9IHNwcmludGYoJzExMTAlczEwJXMxMCVzJywgJDEsICQyLCAkMyk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBDYXJwOjpjcm9haygiSW52YWxpZCBlc2NhcGVkIHVuaWNvZGUiKTsKICAgIH0KCiAgICByZXR1cm4gcGFjaygnQionLCAkdXRmOGJpdCk7Cn0KCgpzdWIgSlNPTjo6UFA6OmluY3JfcGFyc2UgewogICAgbG9jYWwgJENhcnA6OkNhcnBMZXZlbCA9IDE7CiAgICAoICRfWzBdLT57X2luY3JfcGFyc2VyfSB8fD0gSlNPTjo6UFA6OkluY3JQYXJzZXItPm5ldyApLT5pbmNyX3BhcnNlKCBAXyApOwp9CgoKc3ViIEpTT046OlBQOjppbmNyX3RleHQgewogICAgJF9bMF0tPntfaW5jcl9wYXJzZXJ9IHx8PSBKU09OOjpQUDo6SW5jclBhcnNlci0+bmV3OwoKICAgIGlmICggJF9bMF0tPntfaW5jcl9wYXJzZXJ9LT57aW5jcl9wYXJzaW5nfSApIHsKICAgICAgICBDYXJwOjpjcm9haygiaW5jcl90ZXh0IGNhbiBub3QgYmUgY2FsbGVkIHdoZW4gdGhlIGluY3JlbWVudGFsIHBhcnNlciBhbHJlYWR5IHN0YXJ0ZWQgcGFyc2luZyIpOwogICAgfQoKICAgICRfWzBdLT57X2luY3JfcGFyc2VyfS0+e2luY3JfdGV4dH0gPSAkX1sxXSBpZiAoIEBfID4gMSApOwogICAgJF9bMF0tPntfaW5jcl9wYXJzZXJ9LT57aW5jcl90ZXh0fTsKfQoKCnN1YiBKU09OOjpQUDo6aW5jcl9za2lwIHsKICAgICggJF9bMF0tPntfaW5jcl9wYXJzZXJ9IHx8PSBKU09OOjpQUDo6SW5jclBhcnNlci0+bmV3ICktPmluY3Jfc2tpcDsKfQoKCnN1YiBKU09OOjpQUDo6aW5jcl9yZXNldCB7CiAgICAoICRfWzBdLT57X2luY3JfcGFyc2VyfSB8fD0gSlNPTjo6UFA6OkluY3JQYXJzZXItPm5ldyApLT5pbmNyX3Jlc2V0Owp9CgoKMTsKX19FTkRfXwoKPXBvZAoKPWhlYWQxIE5BTUUKCkpTT046OlBQNTAwNSAtIEhlbHBlciBtb2R1bGUgaW4gdXNpbmcgSlNPTjo6UFAgaW4gUGVybCA1LjAwNQoKPWhlYWQxIERFU0NSSVBUSU9OCgpKU09OOjpQUCBjYWxscyBpbnRlcm5hbGx5LgoKPWhlYWQxIEFVVEhPUgoKTWFrYW1ha2EgSGFubnlhaGFyYW1pdHUsIEU8bHQ+bWFrYW1ha2FbYXRdY3Bhbi5vcmdFPGd0PgoKCj1oZWFkMSBDT1BZUklHSFQgQU5EIExJQ0VOU0UKCkNvcHlyaWdodCAyMDA3LTIwMDkgYnkgTWFrYW1ha2EgSGFubnlhaGFyYW1pdHUKClRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSBzYW1lIHRlcm1zIGFzIFBlcmwgaXRzZWxmLiAKCj1jdXQKCg==
cGFja2FnZSBKU09OOjpQUDU2OwoKdXNlIDUuMDA2Owp1c2Ugc3RyaWN0OwoKbXkgQHByb3BlcnRpZXM7CgokSlNPTjo6UFA1Njo6VkVSU0lPTiA9ICcxLjA4JzsKCkJFR0lOIHsKCiAgICBzdWIgdXRmODo6aXNfdXRmOCB7CiAgICAgICAgbXkgJGxlbiA9ICBsZW5ndGggJF9bMF07ICMgY2hhciBsZW5ndGgKICAgICAgICB7CiAgICAgICAgICAgIHVzZSBieXRlczsgIyAgYnl0ZSBsZW5ndGg7CiAgICAgICAgICAgIHJldHVybiAkbGVuICE9IGxlbmd0aCAkX1swXTsgIyBpZiAhPSwgVVRGOC1mbGFnZ2VkIG9uLgogICAgICAgIH0KICAgIH0KCgogICAgc3ViIHV0Zjg6OnVwZ3JhZGUgewogICAgICAgIDsgIyBub29wOwogICAgfQoKCiAgICBzdWIgdXRmODo6ZG93bmdyYWRlICgkOyQpIHsKICAgICAgICByZXR1cm4gMSB1bmxlc3MgKCB1dGY4Ojppc191dGY4KCAkX1swXSApICk7CgogICAgICAgIGlmICggX2lzX3ZhbGlkX3V0ZjgoICRfWzBdICkgKSB7CiAgICAgICAgICAgIG15ICRkb3duZ3JhZGU7CiAgICAgICAgICAgIGZvciBteSAkYyAoIHVucGFjayggIlUqIiwgJF9bMF0gKSApIHsKICAgICAgICAgICAgICAgIGlmICggJGMgPCAyNTYgKSB7CiAgICAgICAgICAgICAgICAgICAgJGRvd25ncmFkZSAuPSBwYWNrKCJDIiwgJGMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJGRvd25ncmFkZSAuPSBwYWNrKCJVIiwgJGMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICRfWzBdID0gJGRvd25ncmFkZTsKICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBDYXJwOjpjcm9haygiV2lkZSBjaGFyYWN0ZXIgaW4gc3Vicm91dGluZSBlbnRyeSIpIHVubGVzcyAoICRfWzFdICk7CiAgICAgICAgICAgIDA7CiAgICAgICAgfQogICAgfQoKCiAgICBzdWIgdXRmODo6ZW5jb2RlICgkKSB7ICMgVVRGOCBmbGFnIG9mZgogICAgICAgIGlmICggdXRmODo6aXNfdXRmOCggJF9bMF0gKSApIHsKICAgICAgICAgICAgJF9bMF0gPSBwYWNrKCAiQyoiLCB1bnBhY2soICJDKiIsICRfWzBdICkgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRfWzBdID0gcGFjayggIlUqIiwgdW5wYWNrKCAiQyoiLCAkX1swXSApICk7CiAgICAgICAgICAgICRfWzBdID0gcGFjayggIkMqIiwgdW5wYWNrKCAiQyoiLCAkX1swXSApICk7CiAgICAgICAgfQogICAgfQoKCiAgICBzdWIgdXRmODo6ZGVjb2RlICgkKSB7ICMgVVRGOCBmbGFnIG9uCiAgICAgICAgaWYgKCBfaXNfdmFsaWRfdXRmOCggJF9bMF0gKSApIHsKICAgICAgICAgICAgdXRmODo6ZG93bmdyYWRlKCAkX1swXSApOwogICAgICAgICAgICAkX1swXSA9IHBhY2soICJVKiIsIHVucGFjayggIlUqIiwgJF9bMF0gKSApOwogICAgICAgIH0KICAgIH0KCgogICAgKkpTT046OlBQOjpKU09OX1BQX2VuY29kZV9hc2NpaSAgICAgID0gXCZfZW5jb2RlX2FzY2lpOwogICAgKkpTT046OlBQOjpKU09OX1BQX2VuY29kZV9sYXRpbjEgICAgID0gXCZfZW5jb2RlX2xhdGluMTsKICAgICpKU09OOjpQUDo6SlNPTl9QUF9kZWNvZGVfc3Vycm9nYXRlcyA9IFwmSlNPTjo6UFA6Ol9kZWNvZGVfc3Vycm9nYXRlczsKICAgICpKU09OOjpQUDo6SlNPTl9QUF9kZWNvZGVfdW5pY29kZSAgICA9IFwmSlNPTjo6UFA6Ol9kZWNvZGVfdW5pY29kZTsKCiAgICB1bmxlc3MgKCBkZWZpbmVkICZCOjpTVnBfTk9LICkgeyAjIG1pc3NpbmcgaW4gQiBtb2R1bGUuCiAgICAgICAgZXZhbCBxeyBzdWIgQjo6U1ZwX05PSyAoKSB7IDB4MDIwMDAwMDA7IH0gfTsKICAgIH0KCn0KCgoKc3ViIF9lbmNvZGVfYXNjaWkgewogICAgam9pbignJywKICAgICAgICBtYXAgewogICAgICAgICAgICAkXyA8PSAxMjcgPwogICAgICAgICAgICAgICAgY2hyKCRfKSA6CiAgICAgICAgICAgICRfIDw9IDY1NTM1ID8KICAgICAgICAgICAgICAgIHNwcmludGYoJ1x1JTA0eCcsICRfKSA6IHNwcmludGYoJ1x1JXhcdSV4JywgSlNPTjo6UFA6Ol9lbmNvZGVfc3Vycm9nYXRlcygkXykpOwogICAgICAgIH0gX3VucGFja19lbXUoJF9bMF0pCiAgICApOwp9CgoKc3ViIF9lbmNvZGVfbGF0aW4xIHsKICAgIGpvaW4oJycsCiAgICAgICAgbWFwIHsKICAgICAgICAgICAgJF8gPD0gMjU1ID8KICAgICAgICAgICAgICAgIGNocigkXykgOgogICAgICAgICAgICAkXyA8PSA2NTUzNSA/CiAgICAgICAgICAgICAgICBzcHJpbnRmKCdcdSUwNHgnLCAkXykgOiBzcHJpbnRmKCdcdSV4XHUleCcsIEpTT046OlBQOjpfZW5jb2RlX3N1cnJvZ2F0ZXMoJF8pKTsKICAgICAgICB9IF91bnBhY2tfZW11KCRfWzBdKQogICAgKTsKfQoKCnN1YiBfdW5wYWNrX2VtdSB7ICMgZm9yIFBlcmwgNS42IHVucGFjayB3YXJuaW5ncwogICAgcmV0dXJuICAgIXV0Zjg6OmlzX3V0ZjgoJF9bMF0pID8gdW5wYWNrKCdDKicsICRfWzBdKSAKICAgICAgICAgICA6IF9pc192YWxpZF91dGY4KCRfWzBdKSA/IHVucGFjaygnVSonLCAkX1swXSkKICAgICAgICAgICA6IHVucGFjaygnQyonLCAkX1swXSk7Cn0KCgpzdWIgX2lzX3ZhbGlkX3V0ZjggewogICAgbXkgJHN0ciA9ICRfWzBdOwogICAgbXkgJGlzX3V0Zjg7CgogICAgd2hpbGUgKCRzdHIgPX4gLyg/OgogICAgICAgICAgKAogICAgICAgICAgICAgW1x4MDAtXHg3Rl0KICAgICAgICAgICAgfFtceEMyLVx4REZdW1x4ODAtXHhCRl0KICAgICAgICAgICAgfFtceEUwXVtceEEwLVx4QkZdW1x4ODAtXHhCRl0KICAgICAgICAgICAgfFtceEUxLVx4RUNdW1x4ODAtXHhCRl1bXHg4MC1ceEJGXQogICAgICAgICAgICB8W1x4RURdW1x4ODAtXHg5Rl1bXHg4MC1ceEJGXQogICAgICAgICAgICB8W1x4RUUtXHhFRl1bXHg4MC1ceEJGXVtceDgwLVx4QkZdCiAgICAgICAgICAgIHxbXHhGMF1bXHg5MC1ceEJGXVtceDgwLVx4QkZdW1x4ODAtXHhCRl0KICAgICAgICAgICAgfFtceEYxLVx4RjNdW1x4ODAtXHhCRl1bXHg4MC1ceEJGXVtceDgwLVx4QkZdCiAgICAgICAgICAgIHxbXHhGNF1bXHg4MC1ceDhGXVtceDgwLVx4QkZdW1x4ODAtXHhCRl0KICAgICAgICAgICkKICAgICAgICB8ICguKQogICAgKS94ZykKICAgIHsKICAgICAgICBpZiAoZGVmaW5lZCAkMSkgewogICAgICAgICAgICAkaXNfdXRmOCA9IDEgaWYgKCFkZWZpbmVkICRpc191dGY4KTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRpc191dGY4ID0gMCBpZiAoIWRlZmluZWQgJGlzX3V0ZjgpOwogICAgICAgICAgICBpZiAoJGlzX3V0ZjgpIHsgIyBldmVudHVhbGx5LCBub3QgdXRmOAogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkaXNfdXRmODsKfQoKCnN1YiBKU09OOjpQUDo6aW5jcl9wYXJzZSB7CiAgICBsb2NhbCAkQ2FycDo6Q2FycExldmVsID0gMTsKICAgICggJF9bMF0tPntfaW5jcl9wYXJzZXJ9IHx8PSBKU09OOjpQUDo6SW5jclBhcnNlci0+bmV3ICktPmluY3JfcGFyc2UoIEBfICk7Cn0KCgpzdWIgSlNPTjo6UFA6OmluY3JfdGV4dCA6IGx2YWx1ZSB7CiAgICAkX1swXS0+e19pbmNyX3BhcnNlcn0gfHw9IEpTT046OlBQOjpJbmNyUGFyc2VyLT5uZXc7CgogICAgaWYgKCAkX1swXS0+e19pbmNyX3BhcnNlcn0tPntpbmNyX3BhcnNpbmd9ICkgewogICAgICAgIENhcnA6OmNyb2FrKCJpbmNyX3RleHQgY2FuIG5vdCBiZSBjYWxsZWQgd2hlbiB0aGUgaW5jcmVtZW50YWwgcGFyc2VyIGFscmVhZHkgc3RhcnRlZCBwYXJzaW5nIik7CiAgICB9CiAgICAkX1swXS0+e19pbmNyX3BhcnNlcn0tPntpbmNyX3RleHR9Owp9CgoKc3ViIEpTT046OlBQOjppbmNyX3NraXAgewogICAgKCAkX1swXS0+e19pbmNyX3BhcnNlcn0gfHw9IEpTT046OlBQOjpJbmNyUGFyc2VyLT5uZXcgKS0+aW5jcl9za2lwOwp9CgoKc3ViIEpTT046OlBQOjppbmNyX3Jlc2V0IHsKICAgICggJF9bMF0tPntfaW5jcl9wYXJzZXJ9IHx8PSBKU09OOjpQUDo6SW5jclBhcnNlci0+bmV3ICktPmluY3JfcmVzZXQ7Cn0KCgoxOwpfX0VORF9fCgo9cG9kCgo9aGVhZDEgTkFNRQoKSlNPTjo6UFA1NiAtIEhlbHBlciBtb2R1bGUgaW4gdXNpbmcgSlNPTjo6UFAgaW4gUGVybCA1LjYKCj1oZWFkMSBERVNDUklQVElPTgoKSlNPTjo6UFAgY2FsbHMgaW50ZXJuYWxseS4KCj1oZWFkMSBBVVRIT1IKCk1ha2FtYWthIEhhbm55YWhhcmFtaXR1LCBFPGx0Pm1ha2FtYWthW2F0XWNwYW4ub3JnRTxndD4KCgo9aGVhZDEgQ09QWVJJR0hUIEFORCBMSUNFTlNFCgpDb3B5cmlnaHQgMjAwNy0yMDA5IGJ5IE1ha2FtYWthIEhhbm55YWhhcmFtaXR1CgpUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgc2FtZSB0ZXJtcyBhcyBQZXJsIGl0c2VsZi4gCgo9Y3V0Cgo=
cGFja2FnZSBKU09OOjpQUDU4OwoKdXNlIDUuMDA4Owp1c2Ugc3RyaWN0OwoKbXkgQHByb3BlcnRpZXM7CgokSlNPTjo6UFA1ODo6VkVSU0lPTiA9ICcxLjAzJzsKCgpCRUdJTiB7CgogICAgdW5sZXNzICggZGVmaW5lZCAmdXRmODo6aXNfdXRmOCApIHsKICAgICAgIHJlcXVpcmUgRW5jb2RlOwogICAgICAgKnV0Zjg6OmlzX3V0ZjggPSAqRW5jb2RlOjppc191dGY4OwogICAgfQoKICAgICpKU09OOjpQUDo6SlNPTl9QUF9lbmNvZGVfYXNjaWkgICAgICA9IFwmSlNPTjo6UFA6Ol9lbmNvZGVfYXNjaWk7CiAgICAqSlNPTjo6UFA6OkpTT05fUFBfZW5jb2RlX2xhdGluMSAgICAgPSBcJkpTT046OlBQOjpfZW5jb2RlX2xhdGluMTsKICAgICpKU09OOjpQUDo6SlNPTl9QUF9kZWNvZGVfc3Vycm9nYXRlcyA9IFwmSlNPTjo6UFA6Ol9kZWNvZGVfc3Vycm9nYXRlczsKICAgICpKU09OOjpQUDo6SlNPTl9QUF9kZWNvZGVfdW5pY29kZSAgICA9IFwmSlNPTjo6UFA6Ol9kZWNvZGVfdW5pY29kZTsKCiAgICBpZiAoJF0gPj0gNS4wMDggYW5kICRdIDwgNS4wMDgwMDMpIHsgIyBqb2luKCkgaW4gNS44LjAgLSA1LjguMiBpcyBicm9rZW4uCiAgICAgICAgcGFja2FnZSBKU09OOjpQUDsKICAgICAgICByZXF1aXJlIHN1YnM7CiAgICAgICAgc3Vicy0+aW1wb3J0KCdqb2luJyk7CiAgICAgICAgZXZhbCBxfAogICAgICAgICAgICBzdWIgam9pbiB7CiAgICAgICAgICAgICAgICByZXR1cm4gJycgaWYgKEBfIDwgMik7CiAgICAgICAgICAgICAgICBteSAkaiAgID0gc2hpZnQ7CiAgICAgICAgICAgICAgICBteSAkc3RyID0gc2hpZnQ7CiAgICAgICAgICAgICAgICBmb3IgKEBfKSB7ICRzdHIgLj0gJGogLiAkXzsgfQogICAgICAgICAgICAgICAgcmV0dXJuICRzdHI7CiAgICAgICAgICAgIH0KICAgICAgICB8OwogICAgfQoKfQoKCnN1YiBKU09OOjpQUDo6aW5jcl9wYXJzZSB7CiAgICBsb2NhbCAkQ2FycDo6Q2FycExldmVsID0gMTsKICAgICggJF9bMF0tPntfaW5jcl9wYXJzZXJ9IHx8PSBKU09OOjpQUDo6SW5jclBhcnNlci0+bmV3ICktPmluY3JfcGFyc2UoIEBfICk7Cn0KCgpzdWIgSlNPTjo6UFA6OmluY3JfdGV4dCA6IGx2YWx1ZSB7CiAgICAkX1swXS0+e19pbmNyX3BhcnNlcn0gfHw9IEpTT046OlBQOjpJbmNyUGFyc2VyLT5uZXc7CgogICAgaWYgKCAkX1swXS0+e19pbmNyX3BhcnNlcn0tPntpbmNyX3BhcnNpbmd9ICkgewogICAgICAgIENhcnA6OmNyb2FrKCJpbmNyX3RleHQgY2FuIG5vdCBiZSBjYWxsZWQgd2hlbiB0aGUgaW5jcmVtZW50YWwgcGFyc2VyIGFscmVhZHkgc3RhcnRlZCBwYXJzaW5nIik7CiAgICB9CiAgICAkX1swXS0+e19pbmNyX3BhcnNlcn0tPntpbmNyX3RleHR9Owp9CgoKc3ViIEpTT046OlBQOjppbmNyX3NraXAgewogICAgKCAkX1swXS0+e19pbmNyX3BhcnNlcn0gfHw9IEpTT046OlBQOjpJbmNyUGFyc2VyLT5uZXcgKS0+aW5jcl9za2lwOwp9CgoKc3ViIEpTT046OlBQOjppbmNyX3Jlc2V0IHsKICAgICggJF9bMF0tPntfaW5jcl9wYXJzZXJ9IHx8PSBKU09OOjpQUDo6SW5jclBhcnNlci0+bmV3ICktPmluY3JfcmVzZXQ7Cn0KCgoxOwpfX0VORF9fCgo9cG9kCgo9aGVhZDEgTkFNRQoKSlNPTjo6UFA1OCAtIEhlbHBlciBtb2R1bGUgaW4gdXNpbmcgSlNPTjo6UFAgaW4gUGVybCA1LjggYW5kIGxhdG9yCgo9aGVhZDEgREVTQ1JJUFRJT04KCkpTT046OlBQIGNhbGxzIGludGVybmFsbHkuCgo9aGVhZDEgQVVUSE9SCgpNYWthbWFrYSBIYW5ueWFoYXJhbWl0dSwgRTxsdD5tYWthbWFrYVthdF1jcGFuLm9yZ0U8Z3Q+CgoKPWhlYWQxIENPUFlSSUdIVCBBTkQgTElDRU5TRQoKQ29weXJpZ2h0IDIwMDgtMjAwOSBieSBNYWthbWFrYSBIYW5ueWFoYXJhbWl0dQoKVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHNhbWUgdGVybXMgYXMgUGVybCBpdHNlbGYuIAoKPWN1dAoK
PWhlYWQxIE5BTUUKCkpTT046OlBQOjpCb29sZWFuIC0gZHVtbXkgbW9kdWxlIHByb3ZpZGluZyBKU09OOjpQUDo6Qm9vbGVhbgoKPWhlYWQxIFNZTk9QU0lTCgogIyBkbyBub3QgInVzZSIgeW91cnNlbGYKCj1oZWFkMSBERVNDUklQVElPTgoKVGhpcyBtb2R1bGUgZXhpc3RzIG9ubHkgdG8gcHJvdmlkZSBvdmVybG9hZCByZXNvbHV0aW9uIGZvciBTdG9yYWJsZSBhbmQgc2ltaWxhciBtb2R1bGVzLiBTZWUKTDxKU09OOjpQUD4gZm9yIG1vcmUgaW5mbyBhYm91dCB0aGlzIGNsYXNzLgoKPWN1dAoKdXNlIEpTT046OlBQICgpOwp1c2Ugc3RyaWN0OwoKMTsKCj1oZWFkMSBBVVRIT1IKClRoaXMgaWRlYSBpcyBmcm9tIEw8SlNPTjo6WFM6OkJvb2xlYW4+IHdyaXR0ZW4gYnkgTWFyYyBMZWhtYW5uIDxzY2htb3JwW2F0XXNjaG1vcnAuZGU+Cgo9Y3V0Cgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OmlQaG9uZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlOwp1c2UgS2VybmVsOjpTeXN0ZW06OkNoZWNrSXRlbTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpQcmlvcml0eTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpTeXN0ZW1BZGRyZXNzOwp1c2UgS2VybmVsOjpTeXN0ZW06OlBhY2thZ2U7Cgp1c2UgdmFycyBxdyhASVNBICRWRVJTSU9OKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6aVBob25lIC0gaVBob25lIGxpYgoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgaVBob25lIGZ1bmN0aW9ucy4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OkNvbmZpZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlRpbWU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok1haW47CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkRCOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpVc2VyOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpHcm91cDsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6UXVldWU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlNlcnZpY2U7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlR5cGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlN0YXRlOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2NrOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpTTEE7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlcjsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0OwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0OwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjppUGhvbmU7CgogICAgbXkgJENvbmZpZ09iamVjdCA9IEtlcm5lbDo6Q29uZmlnLT5uZXcoKTsKICAgIG15ICRFbmNvZGVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICApOwogICAgbXkgJExvZ09iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpMb2ctPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkVGltZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpUaW1lLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwogICAgbXkgJE1haW5PYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TWFpbi0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgKTsKICAgIG15ICREQk9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpEQi0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICk7CiAgICBteSAkVXNlck9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpVc2VyLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIFRpbWVPYmplY3QgICA9PiAkVGltZU9iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgPT4gJERCT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRHcm91cE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpHcm91cC0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRRdWV1ZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpRdWV1ZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCAgICAgICAgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgICAgICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgICAgICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgICAgICAgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgICAgICAgID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgR3JvdXBPYmplY3QgICAgICAgICA9PiAkR3JvdXBPYmplY3QsICMgaWYgZ2l2ZW4KICAgICAgICBDdXN0b21lckdyb3VwT2JqZWN0ID0+ICRDdXN0b21lckdyb3VwT2JqZWN0LCAjIGlmIGdpdmVuCiAgICApOwogICAgbXkgJFNlcnZpY2VPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6U2VydmljZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgKTsKICAgIG15ICRUeXBlT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlR5cGUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgPT4gJERCT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkU3RhdGVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6U3RhdGUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgPT4gJERCT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkTG9ja09iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpMb2NrLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJFNMQU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpTTEEtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgPT4gJERCT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICk7CiAgICBteSAkQ3VzdG9tZXJVc2VyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlci0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRUaWNrZXRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0LT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ICAgICAgID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgICAgICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgICAgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgICAgICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgVGltZU9iamVjdCAgICAgICAgID0+ICRUaW1lT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCAgICAgICA9PiAkRW5jb2RlT2JqZWN0LAogICAgICAgIEdyb3VwT2JqZWN0ICAgICAgICA9PiAkR3JvdXBPYmplY3QsICAgICAgICAjIGlmIGdpdmVuCiAgICAgICAgQ3VzdG9tZXJVc2VyT2JqZWN0ID0+ICRDdXN0b21lclVzZXJPYmplY3QsICMgaWYgZ2l2ZW4KICAgICAgICBRdWV1ZU9iamVjdCAgICAgICAgPT4gJFF1ZXVlT2JqZWN0LCAgICAgICAgIyBpZiBnaXZlbgogICAgKTsKICAgIG15ICRMaW5rT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgPT4gJERCT2JqZWN0LAogICAgICAgIFRpbWVPYmplY3QgICA9PiAkVGltZU9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJGlQaG9uZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjppUGhvbmUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgICAgICAgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgICAgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgICAgICAgPT4gJERCT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICAgICAgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBUaW1lT2JqZWN0ICAgICAgICAgPT4gJFRpbWVPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ICAgICAgID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgR3JvdXBPYmplY3QgICAgICAgID0+ICRHcm91cE9iamVjdCwKICAgICAgICBDdXN0b21lclVzZXJPYmplY3QgPT4gJEN1c3RvbWVyVXNlck9iamVjdCwKICAgICAgICBRdWV1ZU9iamVjdCAgICAgICAgPT4gJFF1ZXVlT2JqZWN0LAogICAgICAgIFVzZXJPYmplY3QgICAgICAgICA9PiAkVXNlck9iamVjdCwKICAgICAgICBRdWV1ZU9iamVjdCAgICAgICAgPT4gJFF1ZXVlT2JqZWN0LAogICAgICAgIFNlcnZpY2VPYmplY3QgICAgICA9PiAkU2VydmljZU9iamVjdCwKICAgICAgICBUeXBlT2JqZWN0ICAgICAgICAgPT4gJFR5cGVPYmplY3QsCiAgICAgICAgU3RhdGVPYmplY3QgICAgICAgID0+ICRTdGF0ZU9iamVjdCwKICAgICAgICBMb2NrT2JqZWN0ICAgICAgICAgPT4gJExvY2tPYmplY3QsCiAgICAgICAgU0xBT2JqZWN0ICAgICAgICAgID0+ICRTTEFPYmplY3QsCiAgICAgICAgVGlja2V0T2JqZWN0ICAgICAgID0+ICRUaWNrZXRPYmplY3QsCiAgICAgICAgTGlua2JqZWN0ICAgICAgICAgID0+ICRMaW5rT2JqZWN0LAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yICgKICAgICAgICBxdyhDb25maWdPYmplY3QgVXNlck9iamVjdCBHcm91cE9iamVjdCBRdWV1ZU9iamVjdCBTZXJ2aWNlT2JqZWN0IFR5cGVPYmplY3QKICAgICAgICBTdGF0ZU9iamVjdCBMb2NrT2JqZWN0IFNMQU9iamVjdCBDdXN0b21lclVzZXJPYmplY3QgVGlja2V0T2JqZWN0IExpbmtPYmplY3QgKQogICAgICAgICkKICAgIHsKICAgICAgICAkU2VsZi0+eyRffSA9ICRQYXJhbXskX30gfHwgZGllICJHb3Qgbm8gJF8hIG9iamVjdCI7CiAgICB9CgogICAgJFNlbGYtPntDaGVja0l0ZW1PYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OkNoZWNrSXRlbS0+bmV3KCVQYXJhbSk7CiAgICAkU2VsZi0+e1ByaW9yaXR5T2JqZWN0fSAgPSBLZXJuZWw6OlN5c3RlbTo6UHJpb3JpdHktPm5ldyglUGFyYW0pOwogICAgJFNlbGYtPntTeXN0ZW1BZGRyZXNzfSAgID0gS2VybmVsOjpTeXN0ZW06OlN5c3RlbUFkZHJlc3MtPm5ldyglUGFyYW0pOwogICAgJFNlbGYtPntQYWNrYWdlT2JqZWN0fSAgID0gS2VybmVsOjpTeXN0ZW06OlBhY2thZ2UtPm5ldyglUGFyYW0pOwoKICAgICRTZWxmLT57U3lzdGVtVmVyc2lvbn0gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVmVyc2lvbicpOwoKICAgICMgY2hlY2sgZm9yIGFueSB2ZXJzaW9uIHN0YXJpbmcgd2l0aCAyLjQKICAgIGlmICggJFNlbGYtPntTeXN0ZW1WZXJzaW9ufSA9fiBteyBcQSAyIFwuIDQgXC4gKD86IFxkKyB8IHggXHMrIENWUykgXHogfXhtcyApIHsKICAgICAgICAkU2VsZi0+eydBUEkzWCd9ID0gMDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT57J0FQSTNYJ30gPSAwOwogICAgICAgIGlmICggJFNlbGYtPntTeXN0ZW1WZXJzaW9ufSA9fiBteyBcQSAzIFwuIFxkKyBcLiAoPzogXGQrIHwgeCBccysgQ1ZTICkgXHogfXhtcyApIHsKICAgICAgICAgICAgJFNlbGYtPnsnQVBJM1gnfSA9IDE7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gU2NyZWVuQ29uZmlnKCkKR2V0IGZpZWxkcyBkZWZpbnRpb24gZm9yIGVhY2ggc2NyZWVuIChQaG9uZSwgTm90ZSwgQ2xvc2UsIENvbXBvc2Ugb3IgTW92ZSkKClBob25lICAgKE5ldyBwaG9uZSB0aWNrZXQpCk5vdGUgICAgKEFkZCBhIG5vdGUgdG8gYSBUaWNrZXQpCkNsb3NlICAgKENsb3NlIGEgdGNrZXQpCkNvbXBvc2UgKFJlcGx5IG9yIHJlc3BvbnNlIGEgdGlja2V0KQpNb3ZlICAgIChDaGFuZ2UgdGlja2V0IHF1ZXVlKQoKTm90ZSwgQ2xvc2UsIENvbXBvc2UgYW5kIE1vdmUsIHJlcXVpcmVzIFRpY2tldElEIGFyZ3VtZW50CgpUaGUgcmV0dW5pZyBmaWVsZHMgZGVwcGVuZHMgb24gdGhlIFNjcmVlbiBBcmd1bWVudCBhbmQgb24gdGhlIFNldHRpbmdzIGluIHN5c2NvbmZpZyBmb3IgdGhlIGlQaG9uZQphbmQgYWxzbyBnZW5lcmFsIHNldHRpbmdzCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlNjcmVlbkNvbmZpZygKICAgICAgICBTY3JlZW4gPT4gIlBob25lIiwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlNjcmVlbkNvbmZpZygKICAgICAgICBTY3JlZW4gICA9PiAiTm90ZSIsCiAgICAgICAgVGlja2V0SUQgPT4gMjI0LAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKICAgICMgYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIEFjdGlvbnMgPT4gewogICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAiUGhvbmUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICBNZXRob2QgPT4gIlNjcmVlbkFjdGlvbnMiLAogICAgICAgICAgICBPYmplY3QgPT4gIkN1c3RvbU9iamVjdCIsCiAgICAgICAgICAgIFRpdGxlID0+ICJOZXcgUGhvbmUgVGlja2V0IgogICAgICAgfSwKICAgICAgICBFbGVtZW50cyA9PiAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgPT4gIlR5cGVJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgID0+ICJUeXBlIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICA9PiAiUGlja2VyIiwKICAgICAgICAgICAgICAgIE9wdGlvbnMgICAgPT4gewogICAgICAgICAgICAgICAgICAgIDE9PiAiZGVmYXVsdCIsCiAgICAgICAgICAgICAgICAgICAgMj0+ICJSZkMiLAogICAgICAgICAgICAgICAgICAgIDM9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICAgICAgICAgIDQ9PiAiSW5jaWRlbnQ6OlNlcnZpY2VSZXF1ZXN0IiwKICAgICAgICAgICAgICAgICAgICA1PT4gIkluY2lkZW50OjpEaXNhc3RlciIKICAgICAgICAgICAgICAgICAgICA2PT4gIlByb2JsZW0iLAogICAgICAgICAgICAgICAgICAgIDc9PiAiUHJvYmxlbTo6S25vd25FcnJvciIsCiAgICAgICAgICAgICAgICAgICAgOD0+ICJQcm9ibGVtOjpQZW5kaW5nUmZDIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgPT4iIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiQ3VzdG9tZXJVc2VyTG9naW4iLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gIkZyb20gY3VzdG9tZXIiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4iQXV0b0NvbXBsZXRpb24iLAogICAgICAgICAgICAgICAgRHluYW1pY09wdGlvbnMgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gIkN1c3RvbU9iamVjdCIsCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiJDdXN0b21lclNlYXJjaCIsCiAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PgogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2ggPT4gIkN1c3RvbWVyVXNlckxvZ2luIiwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICA9PiAiIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICA9PiAiUXVldWVJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgPT4gIlRvIHF1ZXVlIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBPcHRpb25zICAgPT57CiAgICAgICAgICAgICAgICAgICAgICA9PiAiLSIsCiAgICAgICAgICAgICAgICAgICAgMSA9PiAiUG9zdG1hc3RlciIsCiAgICAgICAgICAgICAgICAgICAgMiA9PiAiUmF3IiwKICAgICAgICAgICAgICAgICAgICAzID0+ICJKdW5rIiwKICAgICAgICAgICAgICAgICAgICA0ID0+ICJNaXNjIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gIlNlcnZpY2VJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAiU2VydmljZSIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiJQaWNrZXIiLAogICAgICAgICAgICAgICAgRHluYW1pY09wdGlvbnMgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gIkN1c3RvbU9iamVjdCIKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICJTZXJ2aWNlc0dldCIsCiAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlcklEID0+ICJDdXN0b21lclVzZXJMb2dpbiIsCiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgICAgICAgID0+ICJRdWV1ZUlEIiwKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gIlRpY2tldElEIiwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICA9PiAiIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gIlNMQUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICJTTEEiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IiwKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICJTTEFzR2V0IiwKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gIkN1c3RvbWVyVXNlckxvZ2luIiwKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCAgICAgICAgPT4gIlF1ZXVlSUQiLAogICAgICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlSUQgICAgICA9PiAiU2VydmljZUlEIiwKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gIlRpY2tldElEIi4KICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gIk93bmVySUQiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gIk93bmVyIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+IlBpY2tlciIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgID0+ICJRdWV1ZUlEIiwKICAgICAgICAgICAgICAgICAgICAgICAgQWxsVXNlcnMgPT4gMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gIlVzZXJzR2V0IiwKICAgICAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICJDdXN0b21PYmplY3QiLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gIlJlc3BvbnNpYmxlSUQiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gIlJlc3BvbnNpYmxlIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICJQaWNrZXIiLAogICAgICAgICAgICAgICAgRHluYW1pY09wdGlvbnMgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gIkN1c3RvbU9iamVjdCIsCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAiVXNlcnNHZXQiLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEICA9PiAiUXVldWVJRCIsCiAgICAgICAgICAgICAgICAgICAgICAgIEFsbFVzZXJzID0+IDEKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgID0+ICJTdWJqZWN0IiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICA9PiAiU3ViamVjdCIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgID0+ICJJbnB1dCIsCiAgICAgICAgICAgICAgICBNYXggICAgICAgPT4gMjUwLAogICAgICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgID0+ICJCb2R5IiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgID0+ICJUZXh0QXJlYSIsCiAgICAgICAgICAgICAgICBNYXggICAgICAgPT4gMjAwMDAsCiAgICAgICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICA9PiAiIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gIkN1c3RvbWVySUQiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgID0+ICJDdXN0b21lcklEIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgPT4gIklucHV0IiwKICAgICAgICAgICAgICAgIE1heCAgICAgICA9PiAxNTAsCiAgICAgICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICA9PiAiIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiU3RhdGVJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAiTmV4dCBUaWNrZXQgU3RhdGUiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAiTmV4dFN0YXRlc0dldCIsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IiwKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCA9PiAiUXVldWVJRCIsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICA9PiAiNCIsCiAgICAgICAgICAgICAgICBEZWZhdWx0T3B0aW9uICA9PiAib3BlbiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gIlBlbmRpbmdEYXRlIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICA9PiAiUGVuZGluZyBEYXRlIChmb3IgcGVuZGluZyogc3RhdGVzKSIKICAgICAgICAgICAgICAgIERhdGF0eXBlICA9PiAiRGF0ZVRpbWUiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgID0+ICJQaWNrZXIiLAogICAgICAgICAgICAgICAgRGVmYXVsdCAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICJQcmlvcml0eUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICJQcmlvcml0eSIKICAgICAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICJQaWNrZXIiLAogICAgICAgICAgICAgICAgRHluYW1pY09wdGlvbnMgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gIkN1c3RvbU9iamVjdCIKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICJQcmlvcml0aWVzR2V0IiwKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+ICIiLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHRPcHRpb24gID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICA9PiAiMyIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICA9PiAiVGlja2V0RnJlZVRleHQxIiwKICAgICAgICAgICAgICAgIEZyZWVUZXh0S2V5ID0+IHsKICAgICAgICAgICAgICAgICAgICBEZXZpY2UgID0+ICJEZXZpY2UiLAogICAgICAgICAgICAgICAgICAgIFByb2R1Y3QgPT4gIlByb2R1Y3QiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gIlByb2R1Y3QiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBPcHRpb25zICAgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIi0iLAogICAgICAgICAgICAgICAgICAgIFBob25lICAgID0+ICJQaG9uZSIsCiAgICAgICAgICAgICAgICAgICAgTm90ZWJvb2sgPT4gIk5vdGVib29rIiwKICAgICAgICAgICAgICAgICAgICBQQyAgICAgICA9PiAiUEMiLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgID0+ICJOb3RlYm9vayIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gIlRpY2tldEZyZWVUaW1lMSIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgPT4gIlRlcm1pbjEiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgID0+ICJEYXRlVGltZSIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgPT4gIjIwMTAtMDctMTMgMTU6MTg6MjQiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICJBcnRpY2xlRnJlZVRleHQxIiwKICAgICAgICAgICAgICAgIEZyZWVUZXh0S2V5ID0+IHsKICAgICAgICAgICAgICAgICAgICBXb3JrID0+ICJXb3JrIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICA9PiAnJywKICAgICAgICAgICAgICAgIERhdGF0eXBlICAgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICAgID0+ICJQaWNrZXIiLAogICAgICAgICAgICAgICAgT3B0aW9ucyAgICAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIi0iLAogICAgICAgICAgICAgICAgICAgIEJ1Z2ZpeCAgICAgPT4gIkJ1Z2ZpeCIsCiAgICAgICAgICAgICAgICAgICAgQ29uc3VsdGluZyA9PiAiQ29uc3VsdGluZyIsCiAgICAgICAgICAgICAgICAgICAgUmVzZWFyY2ggICA9PiAiUmVzZWFyY2giLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSA9PiAiVGltZVVuaXRzIiwKICAgICAgICAgICAgICAgIFRpdGxlID0+ICJUaW1lIHVuaXRzICh3b3JrIHVuaXRzKSIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSA9PiAiTnVtZXJpYyIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSA9PiAiSW5wdXQiLAogICAgICAgICAgICAgICAgTWF4ID0+IDEwLAogICAgICAgICAgICAgICAgTWluID0+IDEsCiAgICAgICAgICAgICAgICBEZWZhdWx0ID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgKSwKICAgICk7Cgo9Y3V0CgpzdWIgU2NyZWVuQ29uZmlnIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPntMYW5ndWFnZU9iamVjdH0gPSBLZXJuZWw6Okxhbmd1YWdlLT5uZXcoICV7JFNlbGZ9LCBVc2VyTGFuZ3VhZ2UgPT4gJFBhcmFte0xhbmd1YWdlfSApOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgTmV3IFBob25lIFRpY2tldCBTY3JlZW4KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdQaG9uZScgKSB7CgogICAgICAgICMgZ2V0IHNjcmVlbiBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGlwaG9uZSBmcm9tIHN5c2NvbmZpZwogICAgICAgICRTZWxmLT57Q29uZmlnfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lJyk7CiAgICAgICAgbXkgJUNvbmZpZyA9ICgKICAgICAgICAgICAgVGl0bGUgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnTmV3IFBob25lIFRpY2tldCcpLAogICAgICAgICAgICBFbGVtZW50cyA9PiAkU2VsZi0+X0dldFNjcmVlbkVsZW1lbnRzKCVQYXJhbSksCiAgICAgICAgICAgIEFjdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTY3JlZW5BY3Rpb25zJywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAnUGhvbmUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIHJldHVybiBcJUNvbmZpZzsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEFkZCBOb3RlIFNjcmVlbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnTm90ZScgKSB7CgogICAgICAgICMgZ2V0IHNjcmVlbiBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGlwaG9uZSBmcm9tIHN5c2NvbmZpZwogICAgICAgICRTZWxmLT57Q29uZmlnfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUnKTsKCiAgICAgICAgbXkgJUNvbmZpZyA9ICgKICAgICAgICAgICAgVGl0bGUgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnQWRkIE5vdGUnKSwKICAgICAgICAgICAgRWxlbWVudHMgPT4gJFNlbGYtPl9HZXRTY3JlZW5FbGVtZW50cyglUGFyYW0pLAogICAgICAgICAgICBBY3Rpb25zICA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnU2NyZWVuQWN0aW9ucycsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICBBY3Rpb24gICA9PiAnTm90ZScsCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICA9PiAnYSB0aXRsZScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIFwlQ29uZmlnOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgQ2xvc2UgVGlja2V0IFNjcmVlbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ0Nsb3NlJyApIHsKCiAgICAgICAgIyBnZXQgc2NyZWVuIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgaXBob25lIGZyb20gc3lzY29uZmlnCiAgICAgICAgJFNlbGYtPntDb25maWd9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UnKTsKCiAgICAgICAgbXkgJUNvbmZpZyA9ICgKICAgICAgICAgICAgVGl0bGUgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnQ2xvc2UnKSwKICAgICAgICAgICAgRWxlbWVudHMgPT4gJFNlbGYtPl9HZXRTY3JlZW5FbGVtZW50cyglUGFyYW0pLAogICAgICAgICAgICBBY3Rpb25zICA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnU2NyZWVuQWN0aW9ucycsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICBBY3Rpb24gICA9PiAnQ2xvc2UnLAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIFwlQ29uZmlnOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgQ29tcG9zZSBTY3JlZW4KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdDb21wb3NlJyApIHsKCiAgICAgICAgIyBnZXQgc2NyZWVuIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgaXBob25lIGZyb20gc3lzY29uZmlnCiAgICAgICAgJFNlbGYtPntDb25maWd9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZScpOwoKICAgICAgICBteSAlQ29uZmlnID0gKAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdDb21wb3NlJyksCiAgICAgICAgICAgIEVsZW1lbnRzID0+ICRTZWxmLT5fR2V0U2NyZWVuRWxlbWVudHMoJVBhcmFtKSB8fCAnJywKICAgICAgICAgICAgQWN0aW9ucyAgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gJ1NjcmVlbkFjdGlvbnMnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiB7CiAgICAgICAgICAgICAgICAgICAgQWN0aW9uICAgICAgICAgPT4gJ0NvbXBvc2UnLAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgUmVwbHlBcnRpY2xlSUQgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJENvbmZpZ3tFbGVtZW50c30gKSB7CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIFwlQ29uZmlnOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgTW92ZSBTY3JlZW4KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ01vdmUnICkgewoKICAgICAgICAjIGdldCBzY3JlZW4gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBpcGhvbmUgZnJvbSBzeXNjb25maWcKICAgICAgICAkU2VsZi0+e0NvbmZpZ30gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlJyk7CgogICAgICAgIG15ICVDb25maWcgPSAoCiAgICAgICAgICAgIFRpdGxlICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ01vdmUnKSwKICAgICAgICAgICAgRWxlbWVudHMgPT4gJFNlbGYtPl9HZXRTY3JlZW5FbGVtZW50cyglUGFyYW0pLAogICAgICAgICAgICBBY3Rpb25zICA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnU2NyZWVuQWN0aW9ucycsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICBBY3Rpb24gICA9PiAnTW92ZScsCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gXCVDb25maWc7CiAgICB9CgogICAgcmV0dXJuIC0xOwp9Cgo9aXRlbSBCYWRnZXMoKQoKR2V0IEJhZGdlcyB0aWNrZXQgY291bnRzIGZvciBXYXRjaGVkLCBMb2NrZWQgYW5kIFJlcG9zaWJsZSBmb3IgdGlja2V0cwoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5CYWRnZXMoCiAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICApOwoKICAgICMgYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIExvY2tlZCA9PiB7CiAgICAgICAgICAgIEFsbCA9PiAxLAogICAgICAgICAgICBOZXcgPT4gMSwKICAgICAgICB9LAoKICAgICAgICBXYXRjaGVkID0+IHsgICAgICAgIyBPcHRpb25hbCBpZiBmZWF0dXJlIGlzIGVuYWJsZWQKICAgICAgICAgICAgQWxsID0+IDIsCiAgICAgICAgICAgIE5ldyA9PiAwLAogICAgICAgIH0sCgogICAgICAgIFJlc3BvbnNpYmxlID0+IHsgICAjIE9wdGlvbmFsIGlmIGZlYXR1cmUgaXMgZW5hYmxlZAogICAgICAgICAgICBBbGwgPT4gMSwKICAgICAgICAgICAgTmV3ID0+IDEsCiAgICAgICAgfSwKICAgICk7Cgo9Y3V0CgpzdWIgQmFkZ2VzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQERhdGE7CgogICAgIyBsb2NrZWQKICAgIGlmICgxKSB7CiAgICAgICAgbXkgJENvdW50ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgIFJlc3VsdCAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgTG9ja3MgICAgICA9PiBbJ2xvY2snXSwKICAgICAgICAgICAgT3duZXJJRHMgICA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICAgICAgUGVybWlzc2lvbiA9PiAncm8nLAogICAgICAgICk7CiAgICAgICAgbXkgJENvdW50TmV3ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgIFJlc3VsdCAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgTG9ja3MgICAgICA9PiBbJ2xvY2snXSwKICAgICAgICAgICAgT3duZXJJRHMgICA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgIFRpY2tldEZsYWcgPT4gewogICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFBlcm1pc3Npb24gICAgICAgPT4gJ3JvJywKICAgICAgICApOwogICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKICAgICAgICBwdXNoIEBEYXRhLCB7CiAgICAgICAgICAgIExvY2tlZCA9PiB7CiAgICAgICAgICAgICAgICBBbGwgPT4gJENvdW50LAogICAgICAgICAgICAgICAgTmV3ID0+ICRDb3VudE5ldywKICAgICAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgfQoKICAgICMgcmVzcG9uc2libGUKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6UmVzcG9uc2libGUnKSApIHsKICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgUmVzdWx0ICAgICAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgPT4gJ09wZW4nLAogICAgICAgICAgICBSZXNwb25zaWJsZUlEcyA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFBlcm1pc3Npb24gICAgID0+ICdybycsCiAgICAgICAgKTsKICAgICAgICBteSAkQ291bnROZXcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgUmVzdWx0ICAgICAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgPT4gJ09wZW4nLAogICAgICAgICAgICBSZXNwb25zaWJsZUlEcyA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgIFRpY2tldEZsYWcgICAgID0+IHsKICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgID0+ICdybycsCiAgICAgICAgKTsKICAgICAgICAkQ291bnROZXcgPSAkQ291bnQgLSAkQ291bnROZXc7CgogICAgICAgIHB1c2ggQERhdGEsIHsKICAgICAgICAgICAgUmVzcG9uc2libGUgPT4gewogICAgICAgICAgICAgICAgQWxsID0+ICRDb3VudCwKICAgICAgICAgICAgICAgIE5ldyA9PiAkQ291bnROZXcsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgfTsKICAgIH0KCiAgICAjIHdhdGNoZWQKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6V2F0Y2hlcicpICkgewoKICAgICAgICAjIGNoZWNrIGFjY2VzcwogICAgICAgIG15ICRBY2Nlc3NPayA9IDE7CiAgICAgICAgbXkgQEdyb3VwczsKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OldhdGNoZXJHcm91cCcpICkgewogICAgICAgICAgICBAR3JvdXBzID0gQHsgJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6V2F0Y2hlckdyb3VwJykgfTsKICAgICAgICB9CiAgICAgICAgaWYgKEBHcm91cHMpIHsKICAgICAgICAgICAgbXkgJEFjY2VzcyA9IDA7CiAgICAgICAgICAgIGZvciBteSAkR3JvdXAgKEBHcm91cHMpIHsKICAgICAgICAgICAgICAgIG5leHQgaWYgISRQYXJhbXsiVXNlcklzR3JvdXBbJEdyb3VwXSJ9OwogICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17IlVzZXJJc0dyb3VwWyRHcm91cF0ifSBlcSAnWWVzJyApIHsKICAgICAgICAgICAgICAgICAgICAkQWNjZXNzID0gMTsKICAgICAgICAgICAgICAgICAgICBsYXN0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHJldHVybiBvbiBubyBhY2Nlc3MKICAgICAgICAgICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICAgICAgICAgICRBY2Nlc3NPayA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICgkQWNjZXNzT2spIHsKCiAgICAgICAgICAgICMgZmluZCB3YXRjaGVkIHRpY2tldHMKICAgICAgICAgICAgbXkgJENvdW50ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICAgICBSZXN1bHQgICAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgICAgIFdhdGNoVXNlcklEcyA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICA9PiAncm8nLAogICAgICAgICAgICApOwogICAgICAgICAgICBteSAkQ291bnROZXcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgIFJlc3VsdCAgICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWcgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgID0+ICdybycsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKCiAgICAgICAgICAgIHB1c2ggQERhdGEsIHsKICAgICAgICAgICAgICAgIFdhdGNoZWQgPT4gewogICAgICAgICAgICAgICAgICAgIEFsbCA9PiAkQ291bnQsCiAgICAgICAgICAgICAgICAgICAgTmV3ID0+ICRDb3VudE5ldywKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBARGF0YTsKfQoKPWl0ZW0gRXNjYWxhdGlvblZpZXcoKQoKR2V0IHRoZSBudW1iZXIgb2YgdGlrZXRzIG9uIGVzdGFsYXRpb24gc3RhdHVzIGJ5IHN0YXRlIHR5cGUgb3IgbGFzIGN1c3RvbWVyIGFydGljbGUgaW5mb3JtYXRpb24gZnJvbQplYWNoIHRpY2tldCBpbiBlc2NhbGF0aW9uIHN0YXR1cyB3aXRoaW4gYSBmaWx0ZXIsIGlmIHRoZSAiRmlsdGVyIiBhcmd1bWVudCBpcyBzcGVjaWZpZWQuCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkVzY2FsYXRpb25WaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRpY2tldEZyZWVUaW1lMS02fFRpY2tldEZyZWVLZXkxLTE2fFRpY2tldEZyZWVUZXh0MS0xNgogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdXRsID0gKAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJUb2RheSIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJUb21vcnJvdyIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJOZXh0V2VlayIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMAogICAgICAgIH0sCiAgICApOwoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5Fc2NhbGF0aW9uVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgRmlsdGVyICA9PiAiVG9kYXkiLAoKICAgICAgICAjTGltaXQgKG9wdGlvbmFsKSBzZXQgdG8gMTAwIGJ5IGRlZmF1bHQsIGlmIG5vdCBzcGNpZmllZAogICAgICAgIExpbWl0ICAgPT4gNTAsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUaWNrZXRGcmVlVGltZTEtNnxUaWNrZXRGcmVlS2V5MS0xNnxUaWNrZXRGcmVlVGV4dDEtMTYKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3V0bCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRlc3RpbmcgZm9yIGVzY2FsYXRpb24iLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidW5sb2NrIiwKICAgICAgICAgICAgTWltZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW4iLAogICAgICAgICAgICBPd25lciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgUHJpb3JpdHkgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjMgbm9ybWFsIiwKICAgICAgICAgICAgUHJpb3JpdHlDb2xvciAgICAgICAgICAgICAgICAgICAgPT4gIiNjZGNkY2QiLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXIiLAogICAgICAgICAgICBTb2x1dGlvblRpbWUgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25EYXRlICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvblRpbWUgICAgICA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBTb2x1dGlvblRpbWVFc2NhbGF0aW9uICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBTb2x1dGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIm9wZW4iLAogICAgICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiRXNjYWxhdGlvbiBUZXN0IiwKICAgICAgICAgICAgVGlja2V0RnJlZUtleTEzICAgICAgICAgICAgICAgICAgPT4gIkNyaXRpY2FsaXR5SUQiLAogICAgICAgICAgICBUaWNrZXRGcmVlS2V5MTQgICAgICAgICAgICAgICAgICA9PiAiSW1wYWN0SUQiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJFc2NhbGF0aW9uIFRlc3QiLAogICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgIFVudGlsVGltZSAgICAgICAgICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk1LAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNSIsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvblRpbWUgICAgICAgID0+IDEyNzczMTE4NzUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVXb3JraW5nVGltZSAgICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLCAjIG9ubHkgb24gb3RycyAzLnggZnJhbWV3b3JrCgogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIEVzY2FsYXRpb25WaWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpICsgNjAgKiA2MCAqIDI0ICogNywKICAgICk7CiAgICBteSAkVGltZVN0YW1wTmV4dFdlZWsgPSAiJFllYXItJE1vbnRoLSREYXkgMjM6NTk6NTkiOwoKICAgICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUoKSArIDYwICogNjAgKiAyNCwKICAgICk7CiAgICBteSAkVGltZVN0YW1wVG9tb3Jyb3cgPSAiJFllYXItJE1vbnRoLSREYXkgMjM6NTk6NTkiOwoKICAgICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUoKSwKICAgICk7CiAgICBteSAkVGltZVN0YW1wVG9kYXkgPSAiJFllYXItJE1vbnRoLSREYXkgMjM6NTk6NTkiOwoKICAgICMgZGVmaW5lIGZpbHRlcgogICAgbXkgJUZpbHRlcnMgPSAoCiAgICAgICAgVG9kYXkgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ1RvZGF5JywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDAsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBUaWNrZXRFc2NhbGF0aW9uVGltZU9sZGVyRGF0ZSA9PiAkVGltZVN0YW1wVG9kYXksCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICAgICAgICAgICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFRvbW9ycm93ID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdUb21vcnJvdycsCiAgICAgICAgICAgIFByaW8gICA9PiAyMDAwLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgVGlja2V0RXNjYWxhdGlvblRpbWVPbGRlckRhdGUgPT4gJFRpbWVTdGFtcFRvbW9ycm93LAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICAgICAgICAgICAgICAgICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBOZXh0V2VlayA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnTmV4dCBXZWVrJywKICAgICAgICAgICAgUHJpbyAgID0+IDMwMDAsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBUaWNrZXRFc2NhbGF0aW9uVGltZU9sZGVyRGF0ZSA9PiAkVGltZVN0YW1wTmV4dFdlZWssCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICAgICAgICAgICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGRvIHNob3duIHRpY2tldHMgbG9va3VwCiAgICBteSAkTGltaXQgPSAkUGFyYW17TGltaXR9IHx8IDEwMDsKICAgIGlmICggJFBhcmFte0ZpbHRlcn0gKSB7CiAgICAgICAgbXkgQFZpZXdhYmxlVGlja2V0cyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3sgJFBhcmFte0ZpbHRlcn0gfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgTGltaXQgID0+ICRMaW1pdCwKICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCiAgICAgICAgKTsKICAgICAgICBteSBATGlzdDsKICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVmlld2FibGVUaWNrZXRzKSB7CiAgICAgICAgICAgIG5leHQgaWYgISRUaWNrZXRJRDsKICAgICAgICAgICAgbXkgJUFydGljbGUgPSAkU2VsZi0+VGlja2V0TGlzdCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5leHQgaWYgISVBcnRpY2xlOwogICAgICAgICAgICBwdXNoIEBMaXN0LCBcJUFydGljbGU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBATGlzdDsKICAgIH0KCiAgICAjIGRvIG5hdiBiYXIgbG9va3VwCiAgICBteSBAU3RhdGVzOwogICAgZm9yIG15ICRGaWx0ZXIgKCBrZXlzICVGaWx0ZXJzICkgewogICAgICAgIG15ICRDb3VudCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgUmVzdWx0ID0+ICdDT1VOVCcsCiAgICAgICAgKTsKICAgICAgICBteSAkQ291bnROZXcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIFJlc3VsdCAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgVGlja2V0RmxhZyA9PiB7CiAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICAkQ291bnROZXcgPSAkQ291bnQgLSAkQ291bnROZXc7CgogICAgICAgIHB1c2ggQFN0YXRlcywgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gJEZpbHRlciwKICAgICAgICAgICAgRmlsdGVyTmFtZSAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57TmFtZX0sCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAkQ291bnQsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAkQ291bnROZXcsCiAgICAgICAgfTsKICAgIH0KICAgIHJldHVybiBAU3RhdGVzOwp9Cgo9aXRlbSBTdGF0dXNWaWV3KCkKCkdldCB0aGUgbnVtYmVyIG9mIHRpa2V0cyBieSBzdGF0dXMgKG9wZW4gb3IgY2xvc2VkKSBvciBsYXN0IGN1c3RvbWVyIGFydGljbGUgaW5mb3JtYXRpb24gZnJvbSBlYWNoCnRpY2tldCBpbiBlYWNoIHN0YXR1cyB3aXRoaW4gYW4gc3BlY2lmaWVkIGZpbHRlciwgaWYgdGhlICJGaWx0ZXIiIGFyZ3VtZW50IGlzIHNwZWNpZmllZC4KCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U3RhdHVzVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUaWNrZXRGcmVlVGltZTEtNnxUaWNrZXRGcmVlS2V5MS0xNnxUaWNrZXRGcmVlVGV4dDEtMTYKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3V0bCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJDbG9zZWQiLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlN0YXR1c1ZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIEZpbHRlciAgPT4gIk9wZW4iLAoKICAgICAgICAjTGltaXQgKG9wdGlvbmFsKSBzZXQgdG8gMTAwIGJ5IGRlZmF1bHQsIGlmIG5vdCBzcGNpZmllZAogICAgICAgIExpbWl0ICAgPT4gNTAsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUaWNrZXRGcmVlVGltZTEtNnxUaWNrZXRGcmVlS2V5MS0xNnxUaWNrZXRGcmVlVGV4dDEtMTYKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3V0bCA9ICgKICAgICAgICB7CiAgICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNTk2LAogICAgICAgICAgICBBcnRpY2xlSUQgICAgICAgICAgICAgICAgICAgICAgICA9PiA5MjMsCiAgICAgICAgICAgIEFydGljbGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJwaG9uZSIsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJUaGlzIGlzIGFuIG9wZW4gdGlja2V0IiwKICAgICAgICAgICAgQ2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudENoYXJzZXQgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudFR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW47IiwKICAgICAgICAgICAgY2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ3JlYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NDY6MTUiLAogICAgICAgICAgICBDcmVhdGVkQnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZSAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvbkRhdGUgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uVGltZSA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZUVzY2FsYXRpb24gICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZVdvcmtpbmdUaW1lICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgRnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyQG90cnMub3JnIiwKICAgICAgICAgICAgSW5jb21pbmdUaW1lICAgICAgICAgICAgICAgICAgICAgPT4gMTI3NzMxMTU3NSwKICAgICAgICAgICAgTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInVubG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRGcmVlS2V5MTMgICAgICAgICAgICAgICAgICA9PiAiQ3JpdGljYWxpdHlJRCIsCiAgICAgICAgICAgIFRpY2tldEZyZWVLZXkxNCAgICAgICAgICAgICAgICAgID0+ICJJbXBhY3RJRCIsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE3NiwKICAgICAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gMjAxMDA2MjMxMDAwMDAxNSwKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgIFVudGlsVGltZSAgICAgICAgICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk1LAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNSIsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvblRpbWUgICAgICAgID0+IDEyNzczMTE4NzUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVXb3JraW5nVGltZSAgICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLCAjIG9ubHkgb24gb3RycyAzLnggZnJhbWV3b3JrCgogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFN0YXR1c1ZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGRlZmluZSBmaWx0ZXIKICAgIG15ICVGaWx0ZXJzID0gKAogICAgICAgIE9wZW4gPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ09wZW4nLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgPT4gJ09wZW4nLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIENsb3NlZCA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnQ2xvc2VkJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDEsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgID0+ICdDbG9zZWQnLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGRvIHNob3duIHRpY2tldHMgbG9va3VwCiAgICBteSAkTGltaXQgPSAkUGFyYW17TGltaXR9IHx8IDEwMDsKICAgIGlmICggJFBhcmFte0ZpbHRlcn0gKSB7CiAgICAgICAgbXkgQFZpZXdhYmxlVGlja2V0cyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3sgJFBhcmFte0ZpbHRlcn0gfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgTGltaXQgID0+ICRMaW1pdCwKICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCiAgICAgICAgKTsKICAgICAgICBteSBATGlzdDsKICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVmlld2FibGVUaWNrZXRzKSB7CiAgICAgICAgICAgIG5leHQgaWYgISRUaWNrZXRJRDsKICAgICAgICAgICAgbXkgJUFydGljbGUgPSAkU2VsZi0+VGlja2V0TGlzdCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5leHQgaWYgISVBcnRpY2xlOwogICAgICAgICAgICBwdXNoIEBMaXN0LCBcJUFydGljbGU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBATGlzdDsKICAgIH0KCiAgICAjIGRvIG5hdiBiYXIgbG9va3VwCiAgICBteSBAU3RhdGVzOwogICAgZm9yIG15ICRGaWx0ZXIgKCBrZXlzICVGaWx0ZXJzICkgewogICAgICAgIG15ICRDb3VudCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgUmVzdWx0ID0+ICdDT1VOVCcsCiAgICAgICAgKTsKICAgICAgICBteSAkQ291bnROZXcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIFJlc3VsdCAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgVGlja2V0RmxhZyA9PiB7CiAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICAkQ291bnROZXcgPSAkQ291bnQgLSAkQ291bnROZXc7CgogICAgICAgIHB1c2ggQFN0YXRlcywgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gJEZpbHRlciwKICAgICAgICAgICAgRmlsdGVyTmFtZSAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57TmFtZX0sCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAkQ291bnQsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAkQ291bnROZXcsCiAgICAgICAgfTsKICAgIH0KICAgIHJldHVybiBAU3RhdGVzOwp9Cgo9aXRlbSBMb2NrZWRWaWV3KCkKCkdldCB0aGUgbnVtYmVyIG9mIGxvY2tlZCB0aWtldHMgYnkgc3RhdHVzIHR5cGUgKGFsbCwgbmV3LCByZW1pbmRlciwgcmVtaW5kZXIgcmVhY2hlZCApIG9yIGxhc3QKY3VzdG9tZXIgYXJ0aWNsZSBpbmZvcm1hdGlvbiBmcm9tIGVhY2ggbG9ja2VkIHRpY2tldCBpbiBlYWNoIHN0YXR1cyB3aXRoaW4gYW4gc3BlY2lmaWVkIGZpbHRlciwgaWYKdGhlICJGaWx0ZXIiIGFyZ3VtZW50IGlzIHNwZWNpZmllZC4KCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+TG9ja2VkVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUaWNrZXRGcmVlVGltZTEtNnxUaWNrZXRGcmVlS2V5MS0xNnxUaWNrZXRGcmVlVGV4dDEtMTYKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3V0bCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWxsIiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIk5ldywKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlJlbWluZGVyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiUmVtaW5kZXJSZWFjaGVkLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkxvY2tlZFZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIEZpbHRlciAgPT4gIk5ldyIsCgogICAgICAgICNMaW1pdCAob3B0aW9uYWwpIHNldCB0byAxMDAgYnkgZGVmYXVsdCwgaWYgbm90IHNwY2lmaWVkCiAgICAgICAgTGltaXQgICA9PiA1MCwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRpY2tldEZyZWVUaW1lMS02fFRpY2tldEZyZWVLZXkxLTE2fFRpY2tldEZyZWVUZXh0MS0xNgogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdXRsID0gKAogICAgICAgIHsKICAgICAgICAgICAgQWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTU5NiwKICAgICAgICAgICAgQXJ0aWNsZUlEICAgICAgICAgICAgICAgICAgICAgICAgPT4gOTIzLAogICAgICAgICAgICBBcnRpY2xlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAicGhvbmUiLAogICAgICAgICAgICBCb2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiVGhpcyBpcyBhbiBvcGVuIHRpY2tldCIsCiAgICAgICAgICAgIENoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRDaGFyc2V0ICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluOyIsCiAgICAgICAgICAgIGNoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENyZWF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjQ2OjE1IiwKICAgICAgICAgICAgQ3JlYXRlZEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWUgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25EYXRlID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvblRpbWUgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVFc2NhbGF0aW9uICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVXb3JraW5nVGltZSAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIEZyb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJjdXN0b21lckBvdHJzLm9yZyIsCiAgICAgICAgICAgIEluY29taW5nVGltZSAgICAgICAgICAgICAgICAgICAgID0+IDEyNzczMTE1NzUsCiAgICAgICAgICAgIExvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJsb2NrIiwKICAgICAgICAgICAgTWltZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW4iLAogICAgICAgICAgICBPd25lciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgUHJpb3JpdHkgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjMgbm9ybWFsIiwKICAgICAgICAgICAgUHJpb3JpdHlDb2xvciAgICAgICAgICAgICAgICAgICAgPT4gIiNjZGNkY2QiLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXIiLAogICAgICAgICAgICBTb2x1dGlvblRpbWUgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25EYXRlICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvblRpbWUgICAgICA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBTb2x1dGlvblRpbWVFc2NhbGF0aW9uICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBTb2x1dGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIm9wZW4iLAogICAgICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiBUaWNrZXQgVGVzdCIsCiAgICAgICAgICAgIFRpY2tldEZyZWVLZXkxMyAgICAgICAgICAgICAgICAgID0+ICJDcml0aWNhbGl0eUlEIiwKICAgICAgICAgICAgVGlja2V0RnJlZUtleTE0ICAgICAgICAgICAgICAgICAgPT4gIkltcGFjdElEIiwKICAgICAgICAgICAgVGlja2V0SUQgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTc2LAogICAgICAgICAgICBUaWNrZXROdW1iZXIgICAgICAgICAgICAgICAgICAgICA9PiAyMDEwMDYyMzEwMDAwMDE1LAogICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiBUaWNrZXQgVGVzdCIsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkluY2lkZW50IiwKICAgICAgICAgICAgVW50aWxUaW1lICAgICAgICAgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVXBkYXRlVGltZSAgICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE1IiwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uVGltZSAgICAgICAgPT4gMTI3NzMxMTg3NSwKICAgICAgICAgICAgVXBkYXRlVGltZUVzY2FsYXRpb24gICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXBkYXRlVGltZVdvcmtpbmdUaW1lICAgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFNlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsICMgb25seSBvbiBvdHJzIDMueCBmcmFtZXdvcmsKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBMb2NrZWRWaWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWZpbmUgZmlsdGVyCiAgICBteSAlRmlsdGVycyA9ICgKICAgICAgICBBbGwgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ0FsbCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAwLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgTG9ja3MgICAgICA9PiBbJ2xvY2snXSwKICAgICAgICAgICAgICAgIE93bmVySURzICAgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgTmV3ID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdOZXcgQXJ0aWNsZScsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAxLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgTG9ja3MgICAgICA9PiBbJ2xvY2snXSwKICAgICAgICAgICAgICAgIE93bmVySURzICAgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgVGlja2V0RmxhZyA9PiB7CiAgICAgICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZW1pbmRlciA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnUGVuZGluZycsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAyLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgTG9ja3MgICAgICA9PiBbJ2xvY2snXSwKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgPT4gWyAncGVuZGluZyByZW1pbmRlcicsICdwZW5kaW5nIGF1dG8nIF0sCiAgICAgICAgICAgICAgICBPd25lcklEcyAgID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlbWluZGVyUmVhY2hlZCA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnUmVtaW5kZXIgUmVhY2hlZCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAzLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgTG9ja3MgICAgICAgICAgICAgICAgICAgICAgICAgPT4gWydsb2NrJ10sCiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICA9PiBbJ3BlbmRpbmcgcmVtaW5kZXInXSwKICAgICAgICAgICAgICAgIFRpY2tldFBlbmRpbmdUaW1lT2xkZXJNaW51dGVzID0+IDEsCiAgICAgICAgICAgICAgICBPd25lcklEcyAgICAgICAgICAgICAgICAgICAgICA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgICAgICAgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgZG8gc2hvd24gdGlja2V0cyBsb29rdXAKICAgIG15ICRMaW1pdCA9ICRQYXJhbXtMaW1pdH0gfHwgMTAwOwogICAgaWYgKCAkUGFyYW17RmlsdGVyfSApIHsKICAgICAgICBteSBAVmlld2FibGVUaWNrZXRzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyAkUGFyYW17RmlsdGVyfSB9LT57U2VhcmNofSB9LAogICAgICAgICAgICBMaW1pdCAgPT4gJExpbWl0LAogICAgICAgICAgICBSZXN1bHQgPT4gJ0FSUkFZJywKICAgICAgICApOwogICAgICAgIG15IEBMaXN0OwogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBWaWV3YWJsZVRpY2tldHMpIHsKICAgICAgICAgICAgbmV4dCBpZiAhJFRpY2tldElEOwogICAgICAgICAgICBteSAlQXJ0aWNsZSA9ICRTZWxmLT5UaWNrZXRMaXN0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dCBpZiAhJUFydGljbGU7CiAgICAgICAgICAgIHB1c2ggQExpc3QsIFwlQXJ0aWNsZTsKICAgICAgICB9CgogICAgICAgIGlmICggIUBMaXN0ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlcmUgYXJlIG5vIGxvY2tlZCB0aWNrZXRzIHVuZGVyICRQYXJhbXtGaWx0ZXJ9IGZpbHRlciAiCiAgICAgICAgICAgICAgICAgICAgLiAiY2F0ZWdvcnkiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIEBMaXN0OwogICAgfQoKICAgICMgZG8gbmF2IGJhciBsb29rdXAKICAgIG15IEBTdGF0ZXM7CiAgICBmb3IgbXkgJEZpbHRlciAoIGtleXMgJUZpbHRlcnMgKSB7CiAgICAgICAgbXkgJENvdW50ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICBSZXN1bHQgPT4gJ0NPVU5UJywKICAgICAgICApOwogICAgICAgIG15ICRDb3VudE5ldyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBUaWNrZXRGbGFnID0+IHsKICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKCiAgICAgICAgcHVzaCBAU3RhdGVzLCB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyLAogICAgICAgICAgICBGaWx0ZXJOYW1lICAgICAgICAgICAgICAgICAgICAgPT4gJEZpbHRlcnN7JEZpbHRlcn0tPntOYW1lfSwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+ICRDb3VudE5ldywKICAgICAgICB9OwogICAgfQogICAgcmV0dXJuIEBTdGF0ZXM7Cn0KCj1pdGVtIFdhdGNoZWRWaWV3KCkKCkdldCB0aGUgbnVtYmVyIG9mIHdhdGNoZWQgdGlrZXRzIGJ5IHN0YXR1cyB0eXBlIChhbGwsIG5ldywgcmVtaW5kZXIsIHJlbWluZGVyIHJlYWNoZWQgKSBvciBsYXN0CmN1c3RtZXIgYXJ0aWNsZSBpbmZvcm1hdGlvbiBmcm9tIGVhY2ggd2F0Y2hlZCB0aWNrZXQgaW4gZWFjaCBzdGF0dXMgd2l0aGluIGFuIHNwZWNpZmllZCBmaWx0ZXIsIGlmCnRoZSAiRmlsdGVyIiBhcmd1bWVudCBpcyBzcGVjaWZpZWQuCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPldhdGNoZWRWaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRpY2tldEZyZWVUaW1lMS02fFRpY2tldEZyZWVLZXkxLTE2fFRpY2tldEZyZWVUZXh0MS0xNgogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdXRsID0gKAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJBbGwiLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiTmV3LAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiUmVtaW5kZXIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJSZW1pbmRlclJlYWNoZWQsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgKTsKCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+V2F0Y2hlZFZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIEZpbHRlciAgPT4gIk5ldyIsCgogICAgICAgICNMaW1pdCAob3B0aW9uYWwpIHNldCB0byAxMDAgYnkgZGVmYXVsdCwgaWYgbm90IHNwY2lmaWVkCiAgICAgICAgTGltaXQgICA9PiA1MCwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRpY2tldEZyZWVUaW1lMS02fFRpY2tldEZyZWVLZXkxLTE2fFRpY2tldEZyZWVUZXh0MS0xNgogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdXRsID0gKAogICAgICAgIHsKICAgICAgICAgICAgQWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTU5NiwKICAgICAgICAgICAgQXJ0aWNsZUlEICAgICAgICAgICAgICAgICAgICAgICAgPT4gOTIzLAogICAgICAgICAgICBBcnRpY2xlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAicGhvbmUiLAogICAgICAgICAgICBCb2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiVGhpcyBpcyBhbiBvcGVuIHRpY2tldCIsCiAgICAgICAgICAgIENoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRDaGFyc2V0ICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluOyIsCiAgICAgICAgICAgIGNoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENyZWF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjQ2OjE1IiwKICAgICAgICAgICAgQ3JlYXRlZEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWUgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25EYXRlID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvblRpbWUgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVFc2NhbGF0aW9uICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVXb3JraW5nVGltZSAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIEZyb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJjdXN0b21lckBvdHJzLm9yZyIsCiAgICAgICAgICAgIEluY29taW5nVGltZSAgICAgICAgICAgICAgICAgICAgID0+IDEyNzczMTE1NzUsCiAgICAgICAgICAgIExvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJsb2NrIiwKICAgICAgICAgICAgTWltZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW4iLAogICAgICAgICAgICBPd25lciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgUHJpb3JpdHkgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjMgbm9ybWFsIiwKICAgICAgICAgICAgUHJpb3JpdHlDb2xvciAgICAgICAgICAgICAgICAgICAgPT4gIiNjZGNkY2QiLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXIiLAogICAgICAgICAgICBTb2x1dGlvblRpbWUgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25EYXRlICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvblRpbWUgICAgICA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBTb2x1dGlvblRpbWVFc2NhbGF0aW9uICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBTb2x1dGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIm9wZW4iLAogICAgICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiBUaWNrZXQgVGVzdCIsCiAgICAgICAgICAgIFRpY2tldEZyZWVLZXkxMyAgICAgICAgICAgICAgICAgID0+ICJDcml0aWNhbGl0eUlEIiwKICAgICAgICAgICAgVGlja2V0RnJlZUtleTE0ICAgICAgICAgICAgICAgICAgPT4gIkltcGFjdElEIiwKICAgICAgICAgICAgVGlja2V0SUQgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTc2LAogICAgICAgICAgICBUaWNrZXROdW1iZXIgICAgICAgICAgICAgICAgICAgICA9PiAyMDEwMDYyMzEwMDAwMDE1LAogICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiBUaWNrZXQgVGVzdCIsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkluY2lkZW50IiwKICAgICAgICAgICAgVW50aWxUaW1lICAgICAgICAgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVXBkYXRlVGltZSAgICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE1IiwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uVGltZSAgICAgICAgPT4gMTI3NzMxMTg3NSwKICAgICAgICAgICAgVXBkYXRlVGltZUVzY2FsYXRpb24gICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXBkYXRlVGltZVdvcmtpbmdUaW1lICAgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFNlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsICMgb25seSBvbiBvdHJzIDMueCBmcmFtZXdvcmsKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBXYXRjaGVkVmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVmaW5lIGZpbHRlcgogICAgIyBnZXQgYWxsIHdhdGNoZWQgdGlja2V0cyBubyBtYXR0ZXIgaWYgdGhleSBhcmUgbG9ja2VkIG9yIG5vdAogICAgbXkgJUZpbHRlcnMgPSAoCiAgICAgICAgQWxsID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdBbGwnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFdhdGNoVXNlcklEcyA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIE5ldyA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnTmV3IEFydGljbGUnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMSwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFdhdGNoVXNlcklEcyA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnICAgPT4gewogICAgICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVtaW5kZXIgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ1BlbmRpbmcnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMiwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgICA9PiBbICdwZW5kaW5nIHJlbWluZGVyJywgJ3BlbmRpbmcgYXV0bycgXSwKICAgICAgICAgICAgICAgIFdhdGNoVXNlcklEcyA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlbWluZGVyUmVhY2hlZCA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnUmVtaW5kZXIgUmVhY2hlZCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAzLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgPT4gWydwZW5kaW5nIHJlbWluZGVyJ10sCiAgICAgICAgICAgICAgICBUaWNrZXRQZW5kaW5nVGltZU9sZGVyTWludXRlcyA9PiAxLAogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzICAgICAgICAgICAgICAgICAgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICAgICAgICAgICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OldhdGNoZXInKSApIHsKCiAgICAgICAgIyBkbyBzaG93biB0aWNrZXRzIGxvb2t1cAogICAgICAgIG15ICRMaW1pdCA9ICRQYXJhbXtMaW1pdH0gfHwgMTAwOwogICAgICAgIGlmICggJFBhcmFte0ZpbHRlcn0gKSB7CiAgICAgICAgICAgIG15IEBWaWV3YWJsZVRpY2tldHMgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgICV7ICRGaWx0ZXJzeyAkUGFyYW17RmlsdGVyfSB9LT57U2VhcmNofSB9LAogICAgICAgICAgICAgICAgTGltaXQgID0+ICRMaW1pdCwKICAgICAgICAgICAgICAgIFJlc3VsdCA9PiAnQVJSQVknLAogICAgICAgICAgICApOwogICAgICAgICAgICBteSBATGlzdDsKICAgICAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFZpZXdhYmxlVGlja2V0cykgewogICAgICAgICAgICAgICAgbmV4dCBpZiAhJFRpY2tldElEOwogICAgICAgICAgICAgICAgbXkgJUFydGljbGUgPSAkU2VsZi0+VGlja2V0TGlzdCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBuZXh0IGlmICElQXJ0aWNsZTsKICAgICAgICAgICAgICAgIHB1c2ggQExpc3QsIFwlQXJ0aWNsZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICFATGlzdCApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZXJlIGFyZSBubyB3YXRjaGVkIHRpY2tldHMgdW5kZXIgJFBhcmFte0ZpbHRlcn0gZmlsdGVyICIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiY2F0ZWdvcnkiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gQExpc3Q7CiAgICAgICAgfQoKICAgICAgICAjIGRvIG5hdiBiYXIgbG9va3VwCiAgICAgICAgbXkgQFN0YXRlczsKICAgICAgICBmb3IgbXkgJEZpbHRlciAoIGtleXMgJUZpbHRlcnMgKSB7CiAgICAgICAgICAgIG15ICRDb3VudCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgICAgICBSZXN1bHQgPT4gJ0NPVU5UJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgJENvdW50TmV3ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgICAgIFJlc3VsdCAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgICAgIFRpY2tldEZsYWcgPT4gewogICAgICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkQ291bnROZXcgPSAkQ291bnQgLSAkQ291bnROZXc7CgogICAgICAgICAgICBwdXNoIEBTdGF0ZXMsIHsKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyLAogICAgICAgICAgICAgICAgRmlsdGVyTmFtZSAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57TmFtZX0sCiAgICAgICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gJENvdW50LAogICAgICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+ICRDb3VudE5ldywKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIEBTdGF0ZXM7CiAgICB9CiAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgIE1lc3NhZ2UgID0+ICdUaWNrZXQgd2F0Y2hlciBmZWF0dXJlIGlzIG5vdCBlbmFibGUgaW4gc3lzdGVtIGNvbmZpZ3VyYXRpb24gJwogICAgICAgICAgICAuICdQbGVhc2UgY29udGFjdCBhZG1pbicsCiAgICApOwogICAgcmV0dXJuIC0xOwp9Cgo9aXRlbSBSZXNwb25zaWJsZVZpZXcoKQoKR2V0IHRoZSBudW1iZXIgb2YgbG9ja2VkIG9yIHVubG9ja2VkIHRpa2V0cyB3aGVyZSB0aGUgdXNlciBpcyByZXNwb25zaWJsZSBmb3IgYnkgc3RhdHVzIHR5cGUKKGFsbCwgbmV3LCByZW1pbmRlciwgcmVtaW5kZXIgcmVhY2hlZCApIG9yIGxhc3QgY3VzdG9tZXIgYXJ0aWNsZSBpbmZvcm1hdGlvbiBmcm9tIGVhY2ggdGlja2V0IHdoZXJlCnRoZSB1c2VyIGlzIHJlc3BvbnNpYmxlIGZvciAgaW4gZWFjaCBzdGF0dXMgd2l0aGluIGFuIHNwZWNpZmllZCBmaWx0ZXIsIGlmIHRoZSAiRmlsdGVyIiBhcmd1bWVudCBpcwpzcGVjaWZpZWQuCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlJlc3BvbnNpYmxlVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUaWNrZXRGcmVlVGltZTEtNnxUaWNrZXRGcmVlS2V5MS0xNnxUaWNrZXRGcmVlVGV4dDEtMTYKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3V0bCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWxsIiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIk5ldywKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlJlbWluZGVyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiUmVtaW5kZXJSZWFjaGVkLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlJlc3BvbnNpYmxlVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgRmlsdGVyICA9PiAiTmV3IiwKCiAgICAgICAgI0xpbWl0IChvcHRpb25hbCkgc2V0IHRvIDEwMCBieSBkZWZhdWx0LCBpZiBub3Qgc3BjaWZpZWQKICAgICAgICBMaW1pdCAgID0+IDUwLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVGlja2V0RnJlZVRpbWUxLTZ8VGlja2V0RnJlZUtleTEtMTZ8VGlja2V0RnJlZVRleHQxLTE2CiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1dGwgPSAoCiAgICAgICAgewogICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNTk2LAogICAgICAgICAgICBBcnRpY2xlSUQgICAgICAgICAgICAgICAgICAgICAgICA9PiA5MjMsCiAgICAgICAgICAgIEFydGljbGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJwaG9uZSIsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJUaGlzIGlzIGFuIG9wZW4gdGlja2V0IiwKICAgICAgICAgICAgQ2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudENoYXJzZXQgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudFR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW47IiwKICAgICAgICAgICAgY2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ3JlYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NDY6MTUiLAogICAgICAgICAgICBDcmVhdGVkQnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZSAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvbkRhdGUgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uVGltZSA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZUVzY2FsYXRpb24gICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZVdvcmtpbmdUaW1lICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgRnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyQG90cnMub3JnIiwKICAgICAgICAgICAgSW5jb21pbmdUaW1lICAgICAgICAgICAgICAgICAgICAgPT4gMTI3NzMxMTU3NSwKICAgICAgICAgICAgTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImxvY2siLAogICAgICAgICAgICBNaW1lVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbiIsCiAgICAgICAgICAgIE93bmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBQcmlvcml0eSAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMyBub3JtYWwiLAogICAgICAgICAgICBQcmlvcml0eUNvbG9yICAgICAgICAgICAgICAgICAgICA9PiAiI2NkY2RjZCIsCiAgICAgICAgICAgIFF1ZXVlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICAgICAgUmVzcG9uc2libGUgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFNlbmRlclR5cGUgICAgICAgICAgICAgICAgICAgICAgID0+ICJjdXN0b21lciIsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZSAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uVGltZSAgICAgID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZUVzY2FsYXRpb24gICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZVdvcmtpbmdUaW1lICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTdGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAib3BlbiIsCiAgICAgICAgICAgIFN1YmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVGlja2V0RnJlZUtleTEzICAgICAgICAgICAgICAgICAgPT4gIkNyaXRpY2FsaXR5SUQiLAogICAgICAgICAgICBUaWNrZXRGcmVlS2V5MTQgICAgICAgICAgICAgICAgICA9PiAiSW1wYWN0SUQiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICBVbnRpbFRpbWUgICAgICAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NSwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTUiLAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc3MzExODc1LAogICAgICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbiAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU2VlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwgIyBvbmx5IG9uIG90cnMgMy54IGZyYW1ld29yawogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFJlc3BvbnNpYmxlVmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVmaW5lIGZpbHRlcgogICAgbXkgJUZpbHRlcnMgPSAoCiAgICAgICAgQWxsID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdBbGwnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgID0+ICdPcGVuJywKICAgICAgICAgICAgICAgIFJlc3BvbnNpYmxlSURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBOZXcgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ05ldyBBcnRpY2xlJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDEsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICA9PiAnT3BlbicsCiAgICAgICAgICAgICAgICBSZXNwb25zaWJsZUlEcyA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnICAgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZW1pbmRlciA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnUGVuZGluZycsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAyLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgPT4gWyAncGVuZGluZyByZW1pbmRlcicsICdwZW5kaW5nIGF1dG8nIF0sCiAgICAgICAgICAgICAgICBSZXNwb25zaWJsZUlEcyA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVtaW5kZXJSZWFjaGVkID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdSZW1pbmRlciBSZWFjaGVkJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDMsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICA9PiBbJ3BlbmRpbmcgcmVtaW5kZXInXSwKICAgICAgICAgICAgICAgIFRpY2tldFBlbmRpbmdUaW1lT2xkZXJNaW51dGVzID0+IDEsCiAgICAgICAgICAgICAgICBSZXNwb25zaWJsZUlEcyAgICAgICAgICAgICAgICA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgICAgICAgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6UmVzcG9uc2libGUnKSApIHsKCiAgICAgICAgIyBkbyBzaG93biB0aWNrZXRzIGxvb2t1cAogICAgICAgIG15ICRMaW1pdCA9ICRQYXJhbXtMaW1pdH0gfHwgMTAwOwogICAgICAgIGlmICggJFBhcmFte0ZpbHRlcn0gKSB7CiAgICAgICAgICAgIG15IEBWaWV3YWJsZVRpY2tldHMgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgICV7ICRGaWx0ZXJzeyAkUGFyYW17RmlsdGVyfSB9LT57U2VhcmNofSB9LAogICAgICAgICAgICAgICAgTGltaXQgID0+ICRMaW1pdCwKICAgICAgICAgICAgICAgIFJlc3VsdCA9PiAnQVJSQVknLAogICAgICAgICAgICApOwogICAgICAgICAgICBteSBATGlzdDsKICAgICAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFZpZXdhYmxlVGlja2V0cykgewogICAgICAgICAgICAgICAgbmV4dCBpZiAhJFRpY2tldElEOwogICAgICAgICAgICAgICAgbXkgJUFydGljbGUgPSAkU2VsZi0+VGlja2V0TGlzdCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBuZXh0IGlmICElQXJ0aWNsZTsKICAgICAgICAgICAgICAgIHB1c2ggQExpc3QsIFwlQXJ0aWNsZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICFATGlzdCApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZXJlIGFyZSBubyByZXNwb25zaWJsZSBmb3IgdGlja2V0cyB1bmRlciAkUGFyYW17RmlsdGVyfSBmaWx0ZXIgIgogICAgICAgICAgICAgICAgICAgICAgICAuICJjYXRlZ29yeSIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBATGlzdDsKICAgICAgICB9CgogICAgICAgICMgZG8gbmF2IGJhciBsb29rdXAKICAgICAgICBteSBAU3RhdGVzOwogICAgICAgIGZvciBteSAkRmlsdGVyICgga2V5cyAlRmlsdGVycyApIHsKICAgICAgICAgICAgbXkgJENvdW50ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgICAgIFJlc3VsdCA9PiAnQ09VTlQnLAogICAgICAgICAgICApOwogICAgICAgICAgICBteSAkQ291bnROZXcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICAgICAgVGlja2V0RmxhZyA9PiB7CiAgICAgICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKCiAgICAgICAgICAgIHB1c2ggQFN0YXRlcywgewogICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXIsCiAgICAgICAgICAgICAgICBGaWx0ZXJOYW1lICAgICAgICAgICAgICAgICAgICAgPT4gJEZpbHRlcnN7JEZpbHRlcn0tPntOYW1lfSwKICAgICAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAkQ291bnQsCiAgICAgICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gJENvdW50TmV3LAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICByZXR1cm4gQFN0YXRlczsKICAgIH0KICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgTWVzc2FnZSAgPT4gJ1RpY2tldCByZXNwb25zaWJsZSBmZWF0dXJlIGlzIG5vdCBlbmFibGUgaW4gc3lzdGVtIGNvbmZpZ3VyYXRpb24gJwogICAgICAgICAgICAuICdQbGVhc2UgY29udGFjdCBhZG1pbicsCiAgICApOwogICAgcmV0dXJuIC0xOwp9Cgo9aXRlbSBRdWV1ZVZpZXcoKQoKR2V0IHRoZSBudW1iZXIgb2Ygdmlld2FibGUgdGlrZXRzIGJ5IHF1ZXVlIGFzIHdlbGwgYXMgYmFzaWMgcXVldWUgaW5mb3JtYXRpb24sIG9yIGxhcyBjdXN0b21lcgphcnRpY2xlIGluZm9ybWF0aW9uIGZyb20gZWFjaCB0aWNrZXQgd2l0aGluIGFuIHNwZWNpZmllZCBxdWV1ZSwgaWYgdGhlICJRdWV1ZSIgYXJndW1lbnQgaXMKc3BlY2lmaWVkLgoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5RdWV1ZVZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVGlja2V0RnJlZVRpbWUxLTZ8VGlja2V0RnJlZUtleTEtMTZ8VGlja2V0RnJlZVRleHQxLTE2CiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1dGwgPSAoCiAgICAgICAgewogICAgICAgICAgICBRdWV1ZU5hbWUgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgICAgIFF1ZXVlSUQgICAgICAgICAgICAgICAgICAgICAgICA9PiAzLAogICAgICAgICAgICBDb21tZW50ICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFsbCBqdW5rIHRpY2tldHMuIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBRdWV1ZU5hbWUgICAgICAgICAgICAgICAgICAgICAgPT4gIk1pc2MiLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgICAgIFF1ZXVlSUQgICAgICAgICAgICAgICAgICAgICAgICA9PiA0LAogICAgICAgICAgICBDb21tZW50ICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFsbCBtaXNjIHRpY2tldHMuIgogICAgICAgIH0sCiAgICApOwoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5RdWV1ZVZpZXcoCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICBRdWV1ZUlEICA9PiA0LAoKICAgICAgICAjTGltaXQgKG9wdGlvbmFsKSBzZXQgdG8gMTAwIGJ5IGRlZmF1bHQsIGlmIG5vdCBzcGNpZmllZAogICAgICAgIExpbWl0ICAgID0+IDUwLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSAgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUaWNrZXRGcmVlVGltZTEtNnxUaWNrZXRGcmVlS2V5MS0xNnxUaWNrZXRGcmVlVGV4dDEtMTYKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3V0bCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAibG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk1pc2MiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRGcmVlS2V5MTMgICAgICAgICAgICAgICAgICA9PiAiQ3JpdGljYWxpdHlJRCIsCiAgICAgICAgICAgIFRpY2tldEZyZWVLZXkxNCAgICAgICAgICAgICAgICAgID0+ICJJbXBhY3RJRCIsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE3NiwKICAgICAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gMjAxMDA2MjMxMDAwMDAxNSwKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgIFVudGlsVGltZSAgICAgICAgICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk1LAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNSIsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvblRpbWUgICAgICAgID0+IDEyNzczMTE4NzUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVXb3JraW5nVGltZSAgICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLCAjIG9ubHkgb24gb3RycyAzLnggZnJhbWV3b3JrCiAgICAgICAgfSwKICAgICk7Cgo9Y3V0CgpzdWIgUXVldWVWaWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQFZpZXdhYmxlTG9ja0lEcyA9ICRTZWxmLT57TG9ja09iamVjdH0tPkxvY2tWaWV3YWJsZUxvY2soIFR5cGUgPT4gJ0lEJyApOwoKICAgIG15IEBWaWV3YWJsZVN0YXRlSURzID0gJFNlbGYtPntTdGF0ZU9iamVjdH0tPlN0YXRlR2V0U3RhdGVzQnlUeXBlKAogICAgICAgIFR5cGUgICA9PiAnVmlld2FibGUnLAogICAgICAgIFJlc3VsdCA9PiAnSUQnLAogICAgKTsKCiAgICAjIGRvIHNob3duIHRpY2tldHMgbG9va3VwCiAgICBteSAkTGltaXQgPSAkUGFyYW17TGltaXR9IHx8IDEwMDsKICAgIGlmICggJFBhcmFte1F1ZXVlSUR9ICkgewogICAgICAgIG15IEBWaWV3YWJsZVRpY2tldHMgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKCiAgICAgICAgICAgIE9yZGVyQnkgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICBTb3J0QnkgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICBTdGF0ZUlEcyAgID0+IFxAVmlld2FibGVTdGF0ZUlEcywKICAgICAgICAgICAgTG9ja0lEcyAgICA9PiBcQFZpZXdhYmxlTG9ja0lEcywKICAgICAgICAgICAgUXVldWVJRHMgICA9PiBbICRQYXJhbXtRdWV1ZUlEfSBdLAogICAgICAgICAgICBQZXJtaXNzaW9uID0+ICdydycsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIExpbWl0ICAgICAgPT4gJExpbWl0LAogICAgICAgICAgICBSZXN1bHQgICAgID0+ICdBUlJBWScsCiAgICAgICAgKTsKICAgICAgICBteSBATGlzdDsKICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVmlld2FibGVUaWNrZXRzKSB7CiAgICAgICAgICAgIG5leHQgaWYgISRUaWNrZXRJRDsKICAgICAgICAgICAgbXkgJUFydGljbGUgPSAkU2VsZi0+VGlja2V0TGlzdCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5leHQgaWYgISVBcnRpY2xlOwogICAgICAgICAgICBwdXNoIEBMaXN0LCBcJUFydGljbGU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBATGlzdDsKICAgIH0KCiAgICBteSAlQWxsUXVldWVzID0gJFNlbGYtPntRdWV1ZU9iamVjdH0tPlF1ZXVlTGlzdCggVmFsaWQgPT4gMCApOwoKICAgIG15IEBRdWV1ZXM7CiAgICBteSAlUXVldWVTdW07CiAgICBmb3IgbXkgJFF1ZXVlSUQgKCBzb3J0IGtleXMgJUFsbFF1ZXVlcyApIHsKICAgICAgICBteSAlUXVldWUgPSAkU2VsZi0+e1F1ZXVlT2JqZWN0fS0+UXVldWVHZXQoCiAgICAgICAgICAgIElEID0+ICRRdWV1ZUlELAogICAgICAgICk7CgogICAgICAgIG15ICRDb3VudCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICBTdGF0ZUlEcyA9PiBcQFZpZXdhYmxlU3RhdGVJRHMsCiAgICAgICAgICAgIExvY2tJRHMgID0+IFxAVmlld2FibGVMb2NrSURzLAogICAgICAgICAgICBRdWV1ZUlEcyA9PiBbJFF1ZXVlSURdLAoKICAgICAgICAgICAgUGVybWlzc2lvbiA9PiAncncnLAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIExpbWl0ICAgICAgPT4gMTAwMCwKICAgICAgICApOwogICAgICAgIG5leHQgaWYgISRDb3VudDsKCiAgICAgICAgbXkgJENvdW50TmV3ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgIFN0YXRlSURzID0+IFxAVmlld2FibGVTdGF0ZUlEcywKICAgICAgICAgICAgTG9ja0lEcyAgPT4gXEBWaWV3YWJsZUxvY2tJRHMsCiAgICAgICAgICAgIFF1ZXVlSURzID0+IFskUXVldWVJRF0sCgogICAgICAgICAgICBUaWNrZXRGbGFnID0+IHsKICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICA9PiAncncnLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBSZXN1bHQgICAgICAgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgPT4gMTAwMCwKICAgICAgICApOwogICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKCiAgICAgICAgcHVzaCBAUXVldWVzLCB7CiAgICAgICAgICAgIFF1ZXVlSUQgICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgUXVldWVOYW1lID0+ICRRdWV1ZXtOYW1lfSwKICAgICAgICAgICAgQ29tbWVudCAgID0+ICRRdWV1ZXtDb21tZW50fSwKCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAkQ291bnQsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAkQ291bnROZXcsCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gQFF1ZXVlczsKfQoKPWl0ZW0gVGlja2V0TGlzdCgpCgpHZXQgdGhlIGxhc3QgY3VzdG9tZXIgYXJ0aWNsZSBpbmZvcm1hdGlvbiBvZiBhIHRpY2tldAoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5UaWNrZXRMaXN0KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgVGlja2V0SUQgID0+IDE3NiwKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3V0bCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAibG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk1pc2MiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRGcmVlS2V5MTMgICAgICAgICAgICAgICAgICA9PiAiQ3JpdGljYWxpdHlJRCIsCiAgICAgICAgICAgIFRpY2tldEZyZWVLZXkxNCAgICAgICAgICAgICAgICAgID0+ICJJbXBhY3RJRCIsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE3NiwKICAgICAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gMjAxMDA2MjMxMDAwMDAxNSwKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgIFVudGlsVGltZSAgICAgICAgICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk1LAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNSIsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvblRpbWUgICAgICAgID0+IDEyNzczMTE4NzUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVXb3JraW5nVGltZSAgICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLCAjIG9ubHkgb24gb3RycyAzLnggZnJhbWV3b3JrCiAgICAgICAgfSwKICAgICk7Cgo9Y3V0CgpzdWIgVGlja2V0TGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVDb2xvciA9ICgKICAgICAgICAxID0+ICcjY2RjZGNkJywKICAgICAgICAyID0+ICcjY2RjZGNkJywKICAgICAgICAzID0+ICcjY2RjZGNkJywKICAgICAgICA0ID0+ICcjZmZhYWFhJywKICAgICAgICA1ID0+ICcjZmY1MDVlJywKICAgICk7CgogICAgbXkgJUFydGljbGUgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVMYXN0Q3VzdG9tZXJBcnRpY2xlKAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICApOwogICAgaWYgKCVBcnRpY2xlKSB7CiAgICAgICAgJEFydGljbGV7UHJpb3JpdHlDb2xvcn0gPSAkQ29sb3J7ICRBcnRpY2xle1ByaW9yaXR5SUR9IH07CgogICAgICAgIGlmICggJFNlbGYtPnsnQVBJM1gnfSApIHsKICAgICAgICAgICAgbXkgJVRpY2tldEZsYWcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEZsYWdHZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggJFRpY2tldEZsYWd7c2Vlbn0gfHwgJFRpY2tldEZsYWd7U2Vlbn0gKSB7CiAgICAgICAgICAgICAgICAkQXJ0aWNsZXtTZWVufSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc3RyaXAgb3V0IGFsbCBkYXRhCiAgICAgICAgbXkgQERlbGV0ZSA9IHF3KFJlcGx5VG8gTWVzc2FnZUlEIEluUmVwbHlUbyBSZWZlcmVuY2VzIEFnZVRpbWVVbml4IENyZWF0ZVRpbWVVbml4IFNlbmRlclR5cGVJRAogICAgICAgICAgICBBcnRpY2xlRnJlZUtleTEgQXJ0aWNsZUZyZWVLZXkyIEFydGljbGVGcmVlS2V5MyBBcnRpY2xlRnJlZVRleHQxCiAgICAgICAgICAgIEFydGljbGVGcmVlVGV4dDIgQXJ0aWNsZUZyZWVUZXh0MyBJbmNvbWluZ1RpbWUgUmVhbFRpbGxUaW1lTm90VXNlZCBTZXJ2aWNlSUQgU0xBSUQKICAgICAgICAgICAgU3RhdGVUeXBlIEFyY2hpdmVGbGFnIFVubG9ja1RpbWVvdXQgQ2hhbmdlZAogICAgICAgICk7CgogICAgICAgIGZvciBteSAkS2V5IChARGVsZXRlKSB7CiAgICAgICAgICAgIGRlbGV0ZSAkQXJ0aWNsZXskS2V5fTsKICAgICAgICB9CgogICAgICAgIGZvciBteSAkS2V5ICgga2V5cyAlQXJ0aWNsZSApIHsKICAgICAgICAgICAgaWYgKCAhZGVmaW5lZCAkQXJ0aWNsZXskS2V5fSB8fCAkQXJ0aWNsZXskS2V5fSBlcSAnJyApIHsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkQXJ0aWNsZXskS2V5fTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRLZXkgPX4gL15Fc2NhbGEvICkgewogICAgICAgICAgICAgICAgZGVsZXRlICRBcnRpY2xleyRLZXl9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJUFydGljbGU7CiAgICB9CgogICAgIyByZXR1cm4gb25seSB0aWNrZXQgaW5mb3JtYXRpb24gaWYgdGlja2V0IGhhcyBubyBhcnRpY2xlcwogICAgbXkgJVRpY2tldERhdGEgPSAkU2VsZi0+VGlja2V0R2V0KCBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9ICk7CiAgICByZXR1cm4gJVRpY2tldERhdGE7Cn0KCj1pdGVtIFRpY2tldEdldCgpCkdldCBpbmZvcm1hdGlvbiBvZiBhIHRpY2tldAoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgVGlja2V0SUQgID0+IDIyNCwKICAgICAgICBVc2VySUQgICAgPT4gMSwKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3V0bCA9ICgKICAgICAgICBBY2NvdW50ZWRUaW1lICAgPT4gIjU0MDQiLAogICAgICAgIEFnZSAgICAgICAgICAgICA9PiAiNjgxOTQ2IiwKICAgICAgICBDdXN0b21lcklEICAgICAgPT4gInN3IiwKICAgICAgICBDdXN0b21lclVzZXJJRCAgPT4gIkRhdmlkIiwKICAgICAgICBDcmVhdGVkICAgICAgICAgPT4gIjIwMTAtMDctMDYgMTQ6MDU6NTQiLAogICAgICAgIEdyb3VwSUQgICAgICAgICA9PiAxLAogICAgICAgIFRpY2tldElEICAgICAgICA9PiAyMjQsCiAgICAgICAgTG9ja0lEICAgICAgICAgID0+IDIsCiAgICAgICAgTG9jayAgICAgICAgICAgID0+ICJsb2NrIgogICAgICAgIE93bmVySUQgICAgICAgICA9PiAxMTM0LAogICAgICAgIE93bmVyICAgICAgICAgICA9PiAiQWF5bGEiLAogICAgICAgIFByaW9yaXR5Q29sb3IgICA9PiAiI2NkY2RjZCIsCiAgICAgICAgUHJpb3JpdHlJRCAgICAgID0+IDEsCiAgICAgICAgUHJpb3JpdHkgICAgICAgID0+ICIxIHZlcnkgbG93IiwKICAgICAgICBRdWV1ZSAgICAgICAgICAgPT4gIlJhdyIsCiAgICAgICAgUXVldWVJRCAgICAgICAgID0+IDIsCiAgICAgICAgUmVzcG9uc2libGVJRCAgID0+IDExMzQsCiAgICAgICAgUmVzcG9uc2libGUgICAgID0+ICJBYXlsYSIsCiAgICAgICAgU2VlbiAgICAgICAgICAgID0+IDEsICMgb25seSBvbiBvdHJzIDMueCBmcmFtZXdvcmsKICAgICAgICBTdGF0ZUlEICAgICAgICAgPT4gIDQsCiAgICAgICAgU3RhdGUgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICBUaWNrZXROdW1iZXIgICAgPT4gIjIwMTAwNzA2MTAwMDAyMTUiLAogICAgICAgIFRpdGxlICAgICAgICAgICA9PiAiaVBob25lIFRlc3QiLAogICAgICAgIFRpY2tldEZyZWVLZXkxICA9PiAiUHJvZHVjdCIsCiAgICAgICAgVGlja2V0RnJlZVRleHQxID0+ICJQQyIsCiAgICAgICAgVGlja2V0RnJlZUtleTEzID0+ICJDcml0aWNhbGl0eUlEIiwKICAgICAgICBUaWNrZXRGcmVlS2V5MTQgPT4gIkltcGFjdElEIiwKICAgICAgICBUaWNrZXRGcmVlVGltZTEgPT4gIjIwMTAtMDctMTAgMDk6NTg6MDAiLAogICAgICAgIFR5cGVJRCAgICAgICAgICA9PiAxLAogICAgICAgIFR5cGUgICAgICAgICAgICA9PiAiZGVmYXVsdCIsCiAgICAgICAgVW50aWxUaW1lICAgICAgID0+ICIwIiwKICAgICk7Cgo9Y3V0CgpzdWIgVGlja2V0R2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBteSAkQWNjZXNzOwogICAgaWYgKCAkU2VsZi0+eydBUEkzWCd9ICkgewogICAgICAgICRBY2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdybycsCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9CiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRBY2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlBlcm1pc3Npb24oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdybycsCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9CiAgICAgICAgKTsKICAgIH0KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJZb3UgbmVlZCBybyBwZXJtaXNzaW9ucyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICVDb2xvciA9ICgKICAgICAgICAxID0+ICcjY2RjZGNkJywKICAgICAgICAyID0+ICcjY2RjZGNkJywKICAgICAgICAzID0+ICcjY2RjZGNkJywKICAgICAgICA0ID0+ICcjZmZhYWFhJywKICAgICAgICA1ID0+ICcjZmY1MDVlJywKICAgICk7CgogICAgbXkgJVRpY2tldCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0R2V0KCVQYXJhbSk7CgogICAgJFRpY2tldHtQcmlvcml0eUNvbG9yfSA9ICRDb2xvcnsgJFRpY2tldHtQcmlvcml0eUlEfSB9OwoKICAgIGlmICggJFNlbGYtPnsnQVBJM1gnfSApIHsKICAgICAgICBteSAlVGlja2V0RmxhZyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0RmxhZ0dldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICRUaWNrZXRGbGFne3NlZW59IHx8ICRUaWNrZXRGbGFne1NlZW59ICkgewogICAgICAgICAgICAkVGlja2V0e1NlZW59ID0gMTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBjaGVjayBpZiB0aWNrZXQgbmVlZCB0byBiZSBtYXJrZWQgYXMgc2VlbgogICAgICAgIG15ICRBcnRpY2xlQWxsU2VlbiA9IDE7CiAgICAgICAgbXkgQEluZGV4ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlSW5kZXgoIFRpY2tldElEID0+ICRUaWNrZXR7VGlja2V0SUR9ICk7CiAgICAgICAgZm9yIG15ICRBcnRpY2xlSUQgKEBJbmRleCkgewogICAgICAgICAgICBpZiAoICRTZWxmLT57J0FQSTNYJ30gKSB7CiAgICAgICAgICAgICAgICBteSAlQXJ0aWNsZUZsYWcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVGbGFnR2V0KAogICAgICAgICAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBsYXN0IGlmIGFydGljbGUgd2FzIG5vdCBzaG93bgogICAgICAgICAgICAgICAgaWYgKCAhJEFydGljbGVGbGFne1NlZW59ICYmICEkQXJ0aWNsZUZsYWd7c2Vlbn0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEFydGljbGVBbGxTZWVuID0gMDsKICAgICAgICAgICAgICAgICAgICBsYXN0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIG1hcmsgdGlja2V0IGFzIHNlZW4gaWYgYWxsIGFydGljbGUgYXJlIHNob3duCiAgICAgICAgaWYgKCAkQXJ0aWNsZUFsbFNlZW4gJiYgJFNlbGYtPnsnQVBJM1gnfSApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRGbGFnU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldHtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAnU2VlbicsCiAgICAgICAgICAgICAgICBWYWx1ZSAgICA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgYWRkIGFjY291bnRlZCB0aW1lCiAgICBteSAkQWNjb3VudGVkVGltZSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0QWNjb3VudGVkVGltZUdldCglUGFyYW0pOwogICAgaWYgKCBkZWZpbmVkICRBY2NvdW50ZWRUaW1lICkgewogICAgICAgICRUaWNrZXR7QWNjb3VudGVkVGltZX0gPSAkQWNjb3VudGVkVGltZTsKICAgIH0KCiAgICAjIHN0cmlwIG91dCBhbGwgZGF0YQogICAgbXkgQERlbGV0ZSA9IHF3KFJlcGx5VG8gTWVzc2FnZUlEIEluUmVwbHlUbyBSZWZlcmVuY2VzIEFnZVRpbWVVbml4IENyZWF0ZVRpbWVVbml4IFNlbmRlclR5cGVJRAogICAgICAgIEFydGljbGVGcmVlS2V5MSBBcnRpY2xlRnJlZUtleTIgQXJ0aWNsZUZyZWVLZXkzIEFydGljbGVGcmVlVGV4dDEKICAgICAgICBBcnRpY2xlRnJlZVRleHQyIEFydGljbGVGcmVlVGV4dDMgSW5jb21pbmdUaW1lIFJlYWxUaWxsVGltZU5vdFVzZWQgU2VydmljZUlEIFNMQUlECiAgICAgICAgU3RhdGVUeXBlIEFyY2hpdmVGbGFnIFVubG9ja1RpbWVvdXQgQ2hhbmdlZAogICAgKTsKCiAgICBmb3IgbXkgJEtleSAoQERlbGV0ZSkgewogICAgICAgIGRlbGV0ZSAkVGlja2V0eyRLZXl9OwogICAgfQogICAgZm9yIG15ICRLZXkgKCBrZXlzICVUaWNrZXQgKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkVGlja2V0eyRLZXl9IHx8ICRUaWNrZXR7JEtleX0gZXEgJycgKSB7CiAgICAgICAgICAgIGRlbGV0ZSAkVGlja2V0eyRLZXl9OwogICAgICAgIH0KICAgICAgICBpZiAoICRLZXkgPX4gL15Fc2NhbGEvICkgewogICAgICAgICAgICBkZWxldGUgJFRpY2tldHskS2V5fTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gJVRpY2tldDsKfQoKPWl0ZW0gQXJ0aWNsZUdldCgpCgpHZXQgaW5mb3JtYXRpb24gZnJvbSBhbiBhcnRpY2xlCgogICAgbXkgJVJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkFydGljbGVHZXQoKQogICAgICAgIEFydGljbGVJRCAgPT4gMTA1NCwKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgICVSZXN1dGwgPSAoCiAgICAgICAgQWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTY2MjAyLAogICAgICAgIEFjY291bnRlZFRpbWUgICAgICAgICAgICAgICAgICAgID0+IDEyMywKICAgICAgICBBcnRpY2xlSUQgICAgICAgICAgICAgICAgICAgICAgICA9PiAxMDU0LAogICAgICAgIEFydGljbGVUeXBlSUQgICAgICAgICAgICAgICAgICAgID0+IDUsCiAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICBCb2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaVBob25lIHRpY2tldCBUZXN0IiwKICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgIENvbnRlbnRDaGFyc2V0ICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgQ29udGVudFR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgiLAogICAgICAgIENyZWF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIyMDEwLTA3LTEyIDE0OjEzOjA2IiwKICAgICAgICBDcmVhdGVkQnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAxMTM0LAogICAgICAgIEN1c3RvbWVySUQgICAgICAgICAgICAgICAgICAgICAgID0+ICJzdyIsCiAgICAgICAgQ3VzdG9tZXJVc2VySUQgICAgICAgICAgICAgICAgICAgPT4gIkRhdmlkIiwKICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNy0xMiAxNDoxODowNiIsCiAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvblRpbWUgPT4gIjEyNzg5NjIyODYiLAogICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVXb3JraW5nVGltZSAgICAgPT4gLTg2NzAwLAogICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xNjU5MDIsCiAgICAgICAgRnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlwiRGF2aWQgUHJvd3NlXCIgPHBkQHN3LmNvbT4iLAogICAgICAgIExvY2tJRCAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImxvY2siLAogICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICBPd25lcklEICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxMTM0LAogICAgICAgIE93bmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJBYXlsYSIsCiAgICAgICAgUHJpb3JpdHlJRCAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICBQcmlvcml0eSAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMSB2ZXJ5IGxvdyIsCiAgICAgICAgUXVldWVJRCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMywKICAgICAgICBRdWV1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgUmVzcG9uc2libGVJRCAgICAgICAgICAgICAgICAgICAgPT4gMTEzNCwKICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWF5bGEiLAogICAgICAgIFNlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsICMgb25seSBvbiBvdHJzIDMueCBmcmFtZXdvcmsKICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXIiLAogICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA3LTEyIDE0OjE4OjA2IiwKICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvblRpbWUgICAgICA9PiAxMjc4OTYyMjg2LAogICAgICAgIFNvbHV0aW9uVGltZVdvcmtpbmdUaW1lICAgICAgICAgID0+IC04NjcwMCwKICAgICAgICBTb2x1dGlvblRpbWVFc2NhbGF0aW9uICAgICAgICAgICA9PiAxLAogICAgICAgIFNvbHV0aW9uVGltZSAgICAgICAgICAgICAgICAgICAgID0+IC0xNjU5MDIsCiAgICAgICAgU3RhdGVJRCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gNCwKICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaVBob25lIFRlc3QiLAogICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAyNDcsCiAgICAgICAgVGlja2V0RnJlZUtleTEgICAgICAgICAgICAgICAgICAgPT4gIkRldmljZSIsCiAgICAgICAgVGlja2V0RnJlZVRpbWUxICAgICAgICAgICAgICAgICAgPT4gIjIwMTAtMDctMTIgMTQ6MTM6MDAiLAogICAgICAgIFRpY2tldEZyZWVUZXh0MSAgICAgICAgICAgICAgICAgID0+ICJOb3RlYm9vayIsCiAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gIjIwMTAwNzEyMTAwMDAwNDMiLAogICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJpUGhvbmUgVGVzdCIsCiAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgIFR5cGVJRCAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImRlZmF1bHQiLAogICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICAgID0+ICIyMDEwLTA3LTEyIDE0OjE4OjA2IiwKICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc4OTYyMjg2LAogICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgVXBkYXRlVGltZVdvcmtpbmdUaW1lICAgICAgICAgICAgPT4gLTg2NzAwLAogICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xNjU5MDIsCiAgICAgICAgVW50aWxUaW1lICAgICAgICAgICAgICAgICAgICAgICAgPT4gMCwKICAgICk7Cgo9Y3V0CgpzdWIgQXJ0aWNsZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgbXkgJUFydGljbGUgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVHZXQoJVBhcmFtKTsKICAgIG15ICRBY2Nlc3M7CiAgICBpZiAoICRTZWxmLT57J0FQSTNYJ30gKSB7CiAgICAgICAgJEFjY2VzcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UGVybWlzc2lvbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ3JvJywKICAgICAgICAgICAgVGlja2V0SUQgPT4gJEFydGljbGV7VGlja2V0SUR9LAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfQogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkQWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5QZXJtaXNzaW9uKAogICAgICAgICAgICBUeXBlICAgICA9PiAncm8nLAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkQXJ0aWNsZXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9CiAgICAgICAgKTsKICAgIH0KICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJZb3UgbmVlZCBybyBwZXJtaXNzaW9ucyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGlmICglQXJ0aWNsZSkgewogICAgICAgIGlmICggJFNlbGYtPnsnQVBJM1gnfSApIHsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgYXJ0aWNsZSBpcyBzZWVuCiAgICAgICAgICAgIG15ICVBcnRpY2xlRmxhZyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUZsYWdHZXQoCiAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggJEFydGljbGVGbGFne3NlZW59IHx8ICRBcnRpY2xlRmxhZ3tTZWVufSApIHsKICAgICAgICAgICAgICAgICRBcnRpY2xle1NlZW59ID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBtYXJrIHNob3duIGFydGljbGUgYXMgc2VlbgogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVGbGFnU2V0KAogICAgICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRQYXJhbXtBcnRpY2xlSUR9LAogICAgICAgICAgICAgICAgS2V5ICAgICAgID0+ICdTZWVuJywKICAgICAgICAgICAgICAgIFZhbHVlICAgICA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBpZiB0aWNrZXQgbmVlZCB0byBiZSBtYXJrZWQgYXMgc2VlbgogICAgICAgIG15ICRBcnRpY2xlQWxsU2VlbiA9IDE7CiAgICAgICAgbXkgQEluZGV4ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlSW5kZXgoIFRpY2tldElEID0+ICRBcnRpY2xle1RpY2tldElEfSApOwogICAgICAgIGZvciBteSAkQXJ0aWNsZUlEIChASW5kZXgpIHsKICAgICAgICAgICAgaWYgKCAkU2VsZi0+eydBUEkzWCd9ICkgewogICAgICAgICAgICAgICAgbXkgJUFydGljbGVGbGFnID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlRmxhZ0dldCgKICAgICAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVJRCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgbGFzdCBpZiBhcnRpY2xlIHdhcyBub3Qgc2hvd24KICAgICAgICAgICAgICAgIGlmICggISRBcnRpY2xlRmxhZ3tTZWVufSAmJiAhJEFydGljbGVGbGFne3NlZW59ICkgewogICAgICAgICAgICAgICAgICAgICRBcnRpY2xlQWxsU2VlbiA9IDA7CiAgICAgICAgICAgICAgICAgICAgbGFzdDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBtYXJrIHRpY2tldCBhcyBzZWVuIGlmIGFsbCBhcnRpY2xlIGFyZSBzaG93bgogICAgICAgIGlmICggJEFydGljbGVBbGxTZWVuICYmICRTZWxmLT57J0FQSTNYJ30gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0RmxhZ1NldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRBcnRpY2xle1RpY2tldElEfSwKICAgICAgICAgICAgICAgIEtleSAgICAgID0+ICdTZWVuJywKICAgICAgICAgICAgICAgIFZhbHVlICAgID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgYWRkIGFjY291bnRlZCB0aW1lCiAgICAgICAgbXkgJEFjY291bnRlZFRpbWUgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVBY2NvdW50ZWRUaW1lR2V0KCVQYXJhbSk7CiAgICAgICAgaWYgKCBkZWZpbmVkICRBY2NvdW50ZWRUaW1lICkgewogICAgICAgICAgICAkQXJ0aWNsZXtBY2NvdW50ZWRUaW1lfSA9ICRBY2NvdW50ZWRUaW1lOwogICAgICAgIH0KCiAgICAgICAgIyBzdHJpcCBvdXQgYWxsIGRhdGEKICAgICAgICBteSBARGVsZXRlID0gcXcoUmVwbHlUbyBNZXNzYWdlSUQgSW5SZXBseVRvIFJlZmVyZW5jZXMgQWdlVGltZVVuaXggQ3JlYXRlVGltZVVuaXggU2VuZGVyVHlwZUlECiAgICAgICAgICAgIEFydGljbGVGcmVlS2V5MSBBcnRpY2xlRnJlZUtleTIgQXJ0aWNsZUZyZWVLZXkzIEFydGljbGVGcmVlVGV4dDEKICAgICAgICAgICAgQXJ0aWNsZUZyZWVUZXh0MiBBcnRpY2xlRnJlZVRleHQzIEluY29taW5nVGltZSBSZWFsVGlsbFRpbWVOb3RVc2VkIFNlcnZpY2VJRCBTTEFJRAogICAgICAgICAgICBTdGF0ZVR5cGUgQXJjaGl2ZUZsYWcgVW5sb2NrVGltZW91dCBDaGFuZ2VkCiAgICAgICAgKTsKCiAgICAgICAgZm9yIG15ICRLZXkgKEBEZWxldGUpIHsKICAgICAgICAgICAgZGVsZXRlICRBcnRpY2xleyRLZXl9OwogICAgICAgIH0KCiAgICAgICAgZm9yIG15ICRLZXkgKCBrZXlzICVBcnRpY2xlICkgewogICAgICAgICAgICBpZiAoICFkZWZpbmVkICRBcnRpY2xleyRLZXl9IHx8ICRBcnRpY2xleyRLZXl9IGVxICcnICkgewogICAgICAgICAgICAgICAgZGVsZXRlICRBcnRpY2xleyRLZXl9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJEtleSA9fiAvXkVzY2FsYS8gKSB7CiAgICAgICAgICAgICAgICBkZWxldGUgJEFydGljbGV7JEtleX07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAlQXJ0aWNsZTsKICAgIH0KICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgTWVzc2FnZSAgPT4gJ05vIEFydGljbGVzIGZvdW5kIGluIHRoaXMgdGlja2V0JywKICAgICk7CiAgICByZXR1cm4gLTE7Cn0KCj1pdGVtIFNlcnZpY2VzR2V0KCkKR2V0IGEgSGFzaCByZWZlcmVuY2UgdG8gYWxsIHBvc3NpYmxlIHNlcnZpY2VzIGJhc2VkIG9uIGEgVGlja2V0IG9yIFF1ZXVlIGFuZCBDdXN0b21lclVzZXIKCiAgICBteSAkUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U2VydmljZXNHZXQoCiAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICAgICAgUXVldWVJRCAgICAgICAgID0+IDMsICAjIHx8IFRpY2tldElEIE9wdGlvbmFsCiAgICAgICAgVGlja2V0SUQgICAgICAgID0+IDIzLCAjIHx8IFF1ZXVlSUQgT3B0aW9uYWwKICAgICAgICBDdXN0b21lclVzZXJJRCAgPT4gIkN1c3RvbWVyIiwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgMSA9PiAiU2VydmljZSBBIiwKICAgICAgICAzID0+ICJTZXJ2aWNlIEE6OlN1YlNlcnZpY2UgMSIsCiAgICAgICAgMiA9PiAiU2VydmljZSBCIgogICAgXSwKPWN1dAoKc3ViIFNlcnZpY2VzR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVNlcnZpY2UgPSAoKTsKCiAgICAjIGdldCBzZXJ2aWNlCiAgICBpZiAoICggJFBhcmFte1F1ZXVlSUR9IHx8ICRQYXJhbXtUaWNrZXRJRH0gKSAmJiAkUGFyYW17Q3VzdG9tZXJVc2VySUR9ICkgewogICAgICAgICVTZXJ2aWNlID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZXJ2aWNlTGlzdCgKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBBY3Rpb24gPT4gJFBhcmFte0FjdGlvbn0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQogICAgcmV0dXJuIFwlU2VydmljZTsKfQoKPWl0ZW0gU0xBc0dldCgpCkdldCBhIEhhc2ggcmVmZXJlbmNlIHRvIGFsbCBwb3NzaWJsZSBTTEFzIGJhc2VkIG9uIGEgU2VydmljZQoKICAgIG15ICRSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5TTEFzR2V0KAogICAgICAgIFNlcnZpY2VJRCAgICAgICA9PiAxLAogICAgICAgIFF1ZXVlSUQgICAgICAgICA9PiAzLCAgI3x8IFRpY2tlVElEIG9wdGlvbmFsCiAgICAgICAgVGlja2V0SUQgICAgICAgID0+IDIyMyAjfHwgUXVldWVJRCBvcHRpb25hbAogICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgKTsKCiAgICAjIGEgcmVzdWx0IGNvdWxkIGJlCgogICAgJFJlc3VsdCA9IFsKICAgICAgICAxID0+ICJTTEEgR29sZCBmb3IgU2VydmljZSBBIiwKICAgICAgICAzID0+ICJTTEEgU2lsdmVyIGZvciBTZXJ2aWNlIEEiLAogICAgXSwKPWN1dAoKc3ViIFNMQXNHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlU0xBID0gKCk7CgogICAgIyBnZXQgc2xhCiAgICBpZiAoICRQYXJhbXtTZXJ2aWNlSUR9ICkgewogICAgICAgICVTTEEgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNMQUxpc3QoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQWN0aW9uID0+ICRQYXJhbXtBY3Rpb259LAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiBcJVNMQTsKfQoKPWl0ZW0gVXNlcnNHZXQoKQpHZXQgYSBIYXNoIHJlZmVyZW5jZSB0byBhbGwgdXNlcnMgdGhhdCBoYXMgcmlnaHRzIG9uIGEgUXVldWUgb3IgdGhlIFVzZXJzIHRoYXQgaGFzIHRoYXQgcXVldWUgaW4KdGhlICJNeSBRdWV1ZXMiIGxpc3QKCiAgICBteSAkUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+VXNlcnNHZXQoCiAgICAgICAgUXVldWVJRCAgICAgICAgID0+IDMsCiAgICAgICAgQWxsVXNlcnMgICAgICAgID0+IDEgIyBPcHRpb25hbCwgVG8gZ2V0IHRoZSBjb21wbGV0ZSBsaXN0IG9mIHVzZXJzIHdpdGggcmlnaHRzIGluIHRoZSBxdWV1ZQogICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgKTsKCiAgICAjIGEgcmVzdWx0IGNvdWxkIGJlCgogICAgJFJlc3VsdCA9IFsKICAgICAgICAxICAgID0+ICJPVFJTIEFkbWluIChyb290QGxvY2FsaG9zdCkiLAogICAgICAgIDExMzggPT4gIkFteSBBbGxlbiAoQWF5bGEpICIKICAgIF0sCj1jdXQKCnN1YiBVc2Vyc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHVzZXJzCiAgICBteSAlU2hvd25Vc2VycyAgICAgICA9ICgpOwogICAgbXkgJUFsbEdyb3Vwc01lbWJlcnMgPSAkU2VsZi0+e1VzZXJPYmplY3R9LT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMSwKICAgICk7CgogICAgIyBqdXN0IHNob3cgb25seSB1c2VycyB3aXRoIHNlbGVjdGVkIGN1c3RvbSBxdWV1ZQogICAgaWYgKCAkUGFyYW17UXVldWVJRH0gJiYgISRQYXJhbXtBbGxVc2Vyc30gKSB7CiAgICAgICAgbXkgQFVzZXJJRHMgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkdldFN1YnNjcmliZWRVc2VySURzQnlRdWV1ZUlEKCVQYXJhbSk7CiAgICAgICAgZm9yICgga2V5cyAlQWxsR3JvdXBzTWVtYmVycyApIHsKICAgICAgICAgICAgbXkgJEhpdCA9IDA7CiAgICAgICAgICAgIGZvciBteSAkVUlEIChAVXNlcklEcykgewogICAgICAgICAgICAgICAgaWYgKCAkVUlEIGVxICRfICkgewogICAgICAgICAgICAgICAgICAgICRIaXQgPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggISRIaXQgKSB7CiAgICAgICAgICAgICAgICBkZWxldGUgJEFsbEdyb3Vwc01lbWJlcnN7JF99OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgc2hvdyBhbGwgc3lzdGVtIHVzZXJzCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkNoYW5nZU93bmVyVG9FdmVyeW9uZScpICkgewogICAgICAgICVTaG93blVzZXJzID0gJUFsbEdyb3Vwc01lbWJlcnM7CiAgICB9CgogICAgIyBzaG93IGFsbCB1c2VycyB3aG8gYXJlIHJ3IGluIHRoZSBxdWV1ZSBncm91cAogICAgZWxzaWYgKCAkUGFyYW17UXVldWVJRH0gKSB7CiAgICAgICAgbXkgJEdJRCA9ICRTZWxmLT57UXVldWVPYmplY3R9LT5HZXRRdWV1ZUdyb3VwSUQoIFF1ZXVlSUQgPT4gJFBhcmFte1F1ZXVlSUR9ICk7CiAgICAgICAgbXkgJU1lbWJlckxpc3QgPSAkU2VsZi0+e0dyb3VwT2JqZWN0fS0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgICAgICBHcm91cElEID0+ICRHSUQsCiAgICAgICAgICAgIFR5cGUgICAgPT4gJ3J3JywKICAgICAgICAgICAgUmVzdWx0ICA9PiAnSEFTSCcsCiAgICAgICAgICAgIENhY2hlZCAgPT4gMSwKICAgICAgICApOwogICAgICAgIGZvciAoIGtleXMgJU1lbWJlckxpc3QgKSB7CiAgICAgICAgICAgIGlmICggJEFsbEdyb3Vwc01lbWJlcnN7JF99ICkgewogICAgICAgICAgICAgICAgJFNob3duVXNlcnN7JF99ID0gJEFsbEdyb3Vwc01lbWJlcnN7JF99OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIFwlU2hvd25Vc2VyczsKfQoKPWl0ZW0gTmV4dFN0YXRlc0dldCgpCkdldCBhIEhhc2ggcmVmZXJlbmNlIHRvIGFsbCBwb3NzaWJsZSBzdGF0ZWQgYmFzZWQgb24gYSBUaWNrZXQgb3IgUXVldWUKCiAgICBteSAkUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+TmV4dFN0YXRlc0dldCgKICAgICAgICBRdWV1ZUlEICAgICAgICAgPT4gMywgICN8fCBUaWNrZVRJRCBvcHRpb25hbAogICAgICAgIFRpY2tldElEICAgICAgICA9PiAyMjMgI3x8IFF1ZXVlSUQgb3B0aW9uYWwKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgMSAgPT4gIm5ldyIsCiAgICAgICAgMiAgPT4gImNsb3NlZCBzdWNjZXNzZnVsIiwKICAgICAgICAzICA9PiAiY2xvc2VkIHVuc3VjY2Vzc2Z1bCIsCiAgICAgICAgNCAgPT4gIm9wZW4iLAogICAgICAgIDUgID0+ICJyZW1vdmVkIgogICAgICAgIDYgID0+ICJwZW5kaW5nIHJlbWluZGVyIiwKICAgICAgICA3ICA9PiAicGVuZGluZyBhdXRvIGNsb3NlKyIsCiAgICAgICAgOCAgPT4gInBlbmRpbmcgYXV0byBjbG9zZS0iLAogICAgICAgIDkgID0+ICJtZXJnZWQiLAogICAgICAgIDEwID0+ICJjbG9zZWQgd2l0aCB3b3JrYXJvdW5kIiwKICAgIF0sCj1jdXQKCnN1YiBOZXh0U3RhdGVzR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJU5leHRTdGF0ZXMgPSAoKTsKICAgIGlmICggJFBhcmFte1F1ZXVlSUR9IHx8ICRQYXJhbXtUaWNrZXRJRH0gKSB7CiAgICAgICAgJU5leHRTdGF0ZXMgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlN0YXRlTGlzdCgKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBBY3Rpb24gPT4gJFBhcmFte0FjdGlvbn0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQogICAgcmV0dXJuIFwlTmV4dFN0YXRlczsKfQoKPWl0ZW0gUHJpb3JpdGllc0dldCgpCkdldCBhIEhhc2ggcmVmZXJlbmNlIHRvIGFsbCBwb3NzaWJsZSBwcmlvcml0aWVzCgogICAgbXkgJFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlByaW9yaXRpZXNHZXQoCiAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICApOwoKICAgICMgYSByZXN1bHQgY291bGQgYmUKCiAgICAkUmVzdWx0ID0gWwogICAgICAgIDEgPT4gIjEgdmVyeSBsb3ciLAogICAgICAgIDIgPT4gIjIgbG93IiwKICAgICAgICAzID0+ICIzIG5vcm1hbCIsCiAgICAgICAgNCA9PiAiNCBoaWdoIiwKICAgICAgICA1ID0+ICI1IHZlcnkgaGlnaCIsCiAgICBdLAo9Y3V0CgpzdWIgUHJpb3JpdGllc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVQcmlvcml0aWVzID0gKCk7CgogICAgIyBnZXQgcHJpb3JpdHkKICAgICVQcmlvcml0aWVzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5Qcmlvcml0eUxpc3QoCiAgICAgICAgJVBhcmFtLAogICAgICAgIEFjdGlvbiA9PiAkUGFyYW17QWN0aW9ufSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiBcJVByaW9yaXRpZXM7Cn0KCj1pdGVtIEN1c3RvbWVyU2VhcmNoKCkKR2V0IGEgSGFzaCByZWZlcmVuY2UgdG8gYWxsIHBvc3NpYmxlIGN1c3RvbWVycyBtYXRjaGluZyB0aGUgc2VhcmNoIHBhcmFtZW50ZXIsIHVzZSAiKiIgZm9yIGFsbAoKICAgIG15ICRSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5DdXN0b21lclNlYXJjaCgKICAgICAgICBTZWFyY2ggICAgICAgICAgPT4gJ3N3JywKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgUmF5ICAgPT4gJyJSYXkgUGFyayIgPHJwQHN3LmNvbT4nLAogICAgICAgIERhdmlkID0+ICciRGF2aWQgUHJvd3NlIiA8ZHBAc3cuY29tPicsCiAgICBdLAo9Y3V0CgpzdWIgQ3VzdG9tZXJTZWFyY2ggewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBBdXRvQ29tcGxldGUgc2V0dGluZ3MgZm9ybSBjb25maWcKICAgICRTZWxmLT57Q29uZmlnfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpDdXN0b21lclNlYXJjaEF1dG9Db21wbGV0ZScpOwoKICAgIG15ICVDdXN0b21lcnM7CgogICAgIyBzZWFyY2ggb25seSBpZiB0aGUgc2VhcmNoIHN0cmluZyBpcyBhdCBsZWFzdCBhcyBsb25nIGFzIHRoZSBNaW5pbXVtIFF1ZXJ5IExlbmdodAogICAgaWYgKCBsZW5ndGgoICRQYXJhbXtTZWFyY2h9ICkgPj0gJFNlbGYtPntDb25maWd9LT57TWluUXVlcnlMZW5ndGh9ICkgewogICAgICAgICVDdXN0b21lcnMgPSAkU2VsZi0+e0N1c3RvbWVyVXNlck9iamVjdH0tPkN1c3RvbWVyU2VhcmNoKAogICAgICAgICAgICBTZWFyY2ggPT4gJFBhcmFte1NlYXJjaH0sCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiBcJUN1c3RvbWVyczsKfQoKPWl0ZW0gU2NyZWVuQWN0aW9ucygpClBlcmZvcm1zIGEgdGlja2V0IGFjdGlvbiAoQWN0aW9ucyBpbmNsdWRlIFBob25lLCBOb3RlLCBDbG9zZSwgQ29tcG9zZSBvciBNb3ZlKQoKUGhvbmUgICAoTmV3IHBob25lIHRpY2tldCkKTm90ZSAgICAoQWRkIGEgbm90ZSB0byBhIFRpY2tldCkKQ2xvc2UgICAoQ2xvc2UgYSB0Y2tldCkKQ29tcG9zZSAoUmVwbHkgb3IgcmVzcG9uc2UgYSB0aWNrZXQpCk1vdmUgICAgKENoYW5nZSB0aWNrZXQgcXVldWUpCgpUaGUgQXJndW1lbnRzIGRlcGVuZHMgb24gdGhlIHJlc3VsdHMgb2YgU2NyZWVuQ29uZmlnKCkKClRoZSByZXN1bHQgaXMgdGhlIFRpY2tldElEIGZvciBBY3Rpb24gUGhvbmUgb3IgQXJ0aWNsZUlEIGZvciB0aGUgb3RoZXIgYWN0aW9ucwoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5TY3JlZW5BY3Rpb25zKAogICAgICAgIEFjdGlvbiAgICAgICAgICAgICAgPT4gIlBob25lIiwKICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgID0+ICJpUGhvbmUgVGlja2V0IiwKICAgICAgICBDdXN0b21lcklEICAgICAgICAgID0+ICJvdHJzIiwKICAgICAgICBCb2R5ICAgICAgICAgICAgICAgID0+ICJNeSBmaXNydCBpUGhvbmUgdGlja2V0IiwKICAgICAgICBDdXN0b21lclVzZXJMb2dpbiAgID0+ICJBYXlsYSIsCiAgICAgICAgVGltZVVuaXRzICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgUXVldWVJRCAgICAgICAgICAgICA9PiAzLAogICAgICAgIE93bmVySUQgICAgICAgICAgICAgPT4gMjMsCiAgICAgICAgUmVzcG9uc2lsYmVJRCAgICAgICA9PiA0NSwKICAgICAgICBTdGF0ZUlEICAgICAgICAgICAgID0+IDQsCiAgICAgICAgUGVuZGluZ0RhdGUgICAgICAgICA9PiIyMDEwLTA3LTA5IDIzOjU0OjE4IiwKICAgICAgICBQcmlvcml0eUlEICAgICAgICAgID0+IDEsCiAgICAgICAgVGlja2V0RnJlZVRpbWUxICAgICA9PiIyMDEwLTA3LTA5IDIzOjU0OjE4IiwKICAgICAgICBUaWNrZXRGcmVlVGltZTFVc2VkID0+IDEsCiAgICAgICAgVGlja2V0RnJlZVRleHQxICAgICA9PiJOb3RlYm9vayIsCiAgICAgICAgVGlja2V0RnJlZUtleTEgICAgICA9PiJEZXZpY2UiLAogICAgICAgIEFydGljbGVGcmVlVGV4dDEgICAgPT4iQnVnZml4IiwKICAgICAgICBBcnRpY2xlRnJlZUtleTEgICAgID0+IldvcmsiLAogICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoIDIyNCApOwo9Y3V0CgpzdWIgU2NyZWVuQWN0aW9ucyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVVc2VyUHJlZmVyZW5jZXMgPSAkU2VsZi0+e1VzZXJPYmplY3R9LT5HZXRQcmVmZXJlbmNlcyggVXNlcklEID0+ICRQYXJhbXtVc2VySUR9ICk7CiAgICAkU2VsZi0+e1VzZXJUaW1lWm9uZX0gPSAkVXNlclByZWZlcmVuY2Vze1VzZXJUaW1lWm9uZX07CgogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGltZVpvbmVVc2VyJykgJiYgJFNlbGYtPntVc2VyVGltZVpvbmV9ICkgewogICAgICAgICRTZWxmLT57VXNlclRpbWVPYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OlRpbWUtPm5ldyggJXskU2VsZn0gKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT57VXNlclRpbWVPYmplY3R9ID0gJFNlbGYtPntUaW1lT2JqZWN0fTsKICAgICAgICAkU2VsZi0+e1VzZXJUaW1lWm9uZX0gICA9ICcnOwogICAgfQoKICAgIGlmICggJFBhcmFte0FjdGlvbn0gKSB7CiAgICAgICAgbXkgJFJlc3VsdDsKICAgICAgICBpZiAoICRQYXJhbXtBY3Rpb259IGVxICdQaG9uZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldFBob25lTmV3KCVQYXJhbSk7CiAgICAgICAgICAgIGlmICgkUmVzdWx0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJFJlc3VsdDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQogICAgICAgIGlmICggJFBhcmFte0FjdGlvbn0gZXEgJ05vdGUnIHx8ICRQYXJhbXtBY3Rpb259IGVxICdDbG9zZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldENvbW1vbkFjdGlvbnMoJVBhcmFtKTsKICAgICAgICAgICAgaWYgKCRSZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkUmVzdWx0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnQ29tcG9zZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldENvbXBvc2UoJVBhcmFtKTsKICAgICAgICAgICAgaWYgKCRSZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkUmVzdWx0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnTW92ZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldE1vdmUoJVBhcmFtKTsKICAgICAgICAgICAgaWYgKCRSZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkUmVzdWx0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdBY3Rpb24gdW5kZWZpbmVkISBleHBlY3RlZCBQaG9uZSwgTm90ZSwgQ2xvc2UsIENvbXBvc2Ugb3IgTW92ZSwgJwogICAgICAgICAgICAgICAgLiAnYnV0ICcgLiAkUGFyYW17QWN0aW9ufSAuICcgZm91bmQnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdObyBBY3Rpb24gZ2l2ZW4hIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQp9Cgo9aXRlbSBWZXJzaW9uR2V0KCkKR2V0IGEgSGFzaCByZWZlcmVuY2Ugd2l0aCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgb3RycyBpUGhvbmUgUGFja2FnZSBleHRlbnNpb24KCiAgICBteSAkUmVzdXQgPSAkaVBob25lT2JqZWN0LT5WZXJzaW9uR2V0KAogICAgICAgIFVzZXJJRCA9PiAxOwogICAgKTsKCiAgICBhIHJlc3V0bCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgTmFtZSAgICA9PiAiaVBob25lSGFuZGxlIgogICAgICAgIFZlcnNpb24gPT4gIjAuOS4yIiwKICAgICAgICBWZW5kb3IgID0+ICJPVFJTIEFHIiwKICAgICAgICBVUkwgICAgID0+ICJMPGh0dHA6Ly9vdHJzLm9yZy8+IiwKICAgIF07Cgo9Y3V0CgpzdWIgVmVyc2lvbkdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTm8gVXNlcklEIGdpdmVuISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uJywKICAgICAgICApOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgICBQQUNLQUdFOgogICAgZm9yIG15ICRQYWNrYWdlICggJFNlbGYtPntQYWNrYWdlT2JqZWN0fS0+UmVwb3NpdG9yeUxpc3QoKSApIHsKICAgICAgICBpZiAoICRQYWNrYWdlLT57TmFtZX0tPntDb250ZW50fSBlcSAnaVBob25lSGFuZGxlJyApIHsKICAgICAgICAgICAgbXkgJWlQaG9uZVBhY2thZ2UgPSAoCiAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gJFBhY2thZ2UtPntOYW1lfS0+e0NvbnRlbnR9LAogICAgICAgICAgICAgICAgVmVyc2lvbiAgID0+ICRQYWNrYWdlLT57VmVyc2lvbn0tPntDb250ZW50fSwKICAgICAgICAgICAgICAgIFZlbmRvciAgICA9PiAkUGFja2FnZS0+e1ZlbmRvcn0tPntDb250ZW50fSwKICAgICAgICAgICAgICAgIFVSTCAgICAgICA9PiAkUGFja2FnZS0+e1VSTH0tPntDb250ZW50fSwKICAgICAgICAgICAgICAgIEZyYW1ld29yayA9PiAkU2VsZi0+e1N5c3RlbVZlcnNpb259LAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gXCVpUGhvbmVQYWNrYWdlOwogICAgICAgICAgICBsYXN0IFBBQ0tBR0U7CiAgICAgICAgfQogICAgfQogICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICBNZXNzYWdlICA9PiAnTm8gaVBob25lSGFuZGxlIFBhY2thZ2UgZm91bmQsIGlzIHRoaXMgYSBkZXZlbG9wbWVudCBlbnZpcm9tZW50PycsCiAgICApOwogICAgcmV0dXJuIC0xOwp9Cgo9aXRlbSBDdXN0b21lcklER2V0KCkKR2V0IHRoZSBDdXN0b21lciBJRCBmcm9tIGEgZ2l2ZW4gY3VzdG9tZXIgbG9naW4KCiAgICBteSAkUmVzdXQgPSAkaVBob25lT2JqZWN0LT5DdXN0b21lcklER2V0KAogICAgICAgIEN1c3RvbWVyVXNlcklEID0+ICJEYXZpZCI7CiAgICApOwoKICAgIGEgcmVzdXRsIGNvdWxkIGJlCgogICAgJFJlc3VsdCA9ICJzdyIKCj1jdXQKCnN1YiBDdXN0b21lcklER2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBmb3IgcGFyYW1ldGVycwogICAgaWYgKCAhJFBhcmFte0N1c3RvbWVyVXNlcklEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQ3VzdG9tZXJVc2VySUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KICAgIG15ICRDdXN0b21lcklEOwoKICAgICMgZ2V0IGN1c3RvbWVyIGRhdGEKICAgIG15ICVDdXN0b21lclVzZXJEYXRhID0gJFNlbGYtPntDdXN0b21lclVzZXJPYmplY3R9LT5DdXN0b21lclVzZXJEYXRhR2V0KAogICAgICAgIFVzZXIgPT4gJFBhcmFte0N1c3RvbWVyVXNlcklEfSwKICAgICk7CiAgICBpZiAoICVDdXN0b21lclVzZXJEYXRhICYmICRDdXN0b21lclVzZXJEYXRhe1VzZXJDdXN0b21lcklEfSApIHsKICAgICAgICAkQ3VzdG9tZXJJRCA9ICRDdXN0b21lclVzZXJEYXRhe1VzZXJDdXN0b21lcklEfTsKICAgICAgICByZXR1cm4gJEN1c3RvbWVySUQ7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICByZXR1cm4gJyc7CiAgICB9Cn0KCj1pdGVtIEFydGljbGVJbmRleCgpCgpyZXR1cm5zIGFuIGFycmF5IHdpdGggYXJ0aWNsZSBpZCdzIG9yICcnIGlmIHRpY2tldCBoYXMgbm8gYXJ0aWNsZXMKCiAgICBteSBAQXJ0aWNsZUlEcyA9ICRpUGhvbmVPYmplY3QtPkFydGljbGVJbmRleCgKICAgICAgICBUaWNrZXRJRCA9PiAxMjMsCiAgICApOwoKICAgIG15IEBBcnRpY2xlSURzID0gJGlQaG9uZU9iamVjdC0+QXJ0aWNsZUluZGV4KAogICAgICAgIFNlbmRlclR5cGUgPT4gJ2N1c3RvbWVyJywKICAgICAgICBUaWNrZXRJRCAgID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgQXJ0aWNsZUluZGV4IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQEluZGV4ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlSW5kZXgoJVBhcmFtKTsKCiAgICBpZiAoICFASW5kZXggKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdUaGVyZSBhcmUgbm8gYXJ0aWNsZXMgZm9yIHRoaXMgdGlja2V0JywKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiBASW5kZXg7Cn0KCj1pdGVtIEluaXRDb25maWdHZXQoKQoKcmV0dXJucyBhIGhhc2ggcmVmZXJlbmNlIHdpdGggaW5pdGlhbCBjb25maWd1cmF0aW9uIHJlcXVpcmVkIGJ5IHRoZSBpUGhvbmUgYXBwCgogICAgbXkgJFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkluaXRDb25maWdHZXQoKTsKCiAgICBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgVGlja2V0UmVzcG9uc2libGUgICAgICAgICAgPT4gMSwKICAgICAgICBUaWNrZXRXYXRjaGVyICAgICAgICAgICAgICA9PiAxLAogICAgICAgIEN1cnJlbnRUaW1lc3RhbXAgICAgICAgICAgID0+ICIyMDEwLTEwLTI2IDExOjUzOjM1IiwKICAgICAgICBWZXJzaW9uR2V0ICAgICAgICAgICAgICAgICA9PiB7CiAgICAgICAgICAgIFVSTCAgICAgICA9PiAiaHR0cDovL290cnMub3JnLyIsCiAgICAgICAgICAgIEZyYW1ld29yayA9PiAiMi40LnggQ1ZTIiwKICAgICAgICAgICAgVmVyc2lvbiAgID0+ICIwLjkuNiIsCiAgICAgICAgICAgIFZlbmRvciAgICA9PiAiT1RSUyBBRyIsCiAgICAgICAgICAgIE5hbWUgICAgICA9PiAiaVBob25lSGFuZGxlIgogICAgICAgIH0sCiAgICAgICAgQ3VzdG9tZXJTZWFyY2hBdXRvQ29tcGxldGUgPT4gewogICAgICAgICAgICBRdWVyeURlbGF5ICAgICAgICAgID0+IDAuMSwKICAgICAgICAgICAgQWN0aXZlICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBNYXhSZXN1bHRzRGlzcGxheWVkID0+IDIwLAogICAgICAgICAgICBUeXBlQWhlYWQgICAgICAgICAgID0+IGZhbHNlLAogICAgICAgICAgICBNaW5RdWVyeUxlbmd0aCAgICAgID0+IDMsCiAgICAgICAgfSwKICAgICAgICBEZWZhdWx0Q2hhcnNldCAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgXTsKCj1jdXQKCnN1YiBJbml0Q29uZmlnR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUluaXRDb25maWc7CgogICAgJEluaXRDb25maWd7VGlja2V0V2F0Y2hlcn0gICAgID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6V2F0Y2hlcicpOwogICAgJEluaXRDb25maWd7VGlja2V0UmVzcG9uc2libGV9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6UmVzcG9uc2libGUnKTsKICAgICRJbml0Q29uZmlne0RlZmF1bHRDaGFyc2V0fSAgICA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdEZWZhdWx0Q2hhcnNldCcpOwogICAgJEluaXRDb25maWd7Q3VzdG9tZXJTZWFyY2hBdXRvQ29tcGxldGV9CiAgICAgICAgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6Q3VzdG9tZXJTZWFyY2hBdXRvQ29tcGxldGUnKTsKICAgICRJbml0Q29uZmlne0N1cnJlbnRUaW1lc3RhbXB9ID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+Q3VycmVudFRpbWVzdGFtcCgpOwogICAgJEluaXRDb25maWd7VmVyc2lvbkdldH0gICAgICAgPSAkU2VsZi0+VmVyc2lvbkdldCglUGFyYW0pOwoKICAgIHJldHVybiBcJUluaXRDb25maWc7Cn0KCiMgaW50ZXJuYWwgc3Vicm91dGluZXMKCnN1YiBfR2V0VHlwZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlVHlwZSA9ICgpOwoKICAgICMgZ2V0IHR5cGUKICAgICVUeXBlID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRUeXBlTGlzdCgKICAgICAgICAlUGFyYW0sCiAgICAgICAgQWN0aW9uID0+ICRQYXJhbXtBY3Rpb259LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CiAgICByZXR1cm4gXCVUeXBlOwp9CgpzdWIgX0dldFRvcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgb3duIHNlbGVjdGlvbgogICAgbXkgJU5ld1RvcyA9ICgpOwogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPnsnVGlja2V0OjpGcm9udGVuZDo6TmV3UXVldWVPd25TZWxlY3Rpb24nfSApIHsKICAgICAgICAlTmV3VG9zID0gJXsgJFNlbGYtPntDb25maWdPYmplY3R9LT57J1RpY2tldDo6RnJvbnRlbmQ6Ok5ld1F1ZXVlT3duU2VsZWN0aW9uJ30gfTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIFNlbGVjdGlvblR5cGUgUXVldWUgb3IgU3lzdGVtQWRkcmVzcz8KICAgICAgICBteSAlVG9zID0gKCk7CiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TmV3UXVldWVTZWxlY3Rpb25UeXBlJykgZXEgJ1F1ZXVlJyApIHsKICAgICAgICAgICAgJVRvcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+TW92ZUxpc3QoCiAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdjcmVhdGUnLAogICAgICAgICAgICAgICAgQWN0aW9uICA9PiAkUGFyYW17QWN0aW9ufSwKICAgICAgICAgICAgICAgIFF1ZXVlSUQgPT4gJFBhcmFte1F1ZXVlSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICVUb3MgPSAkU2VsZi0+e0RCT2JqZWN0fS0+R2V0VGFibGVEYXRhKAogICAgICAgICAgICAgICAgVGFibGUgPT4gJ3N5c3RlbV9hZGRyZXNzJywKICAgICAgICAgICAgICAgIFdoYXQgID0+ICdxdWV1ZV9pZCwgaWQnLAogICAgICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgICAgIENsYW1wID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBjcmVhdGUgcGVybWlzc2lvbiBxdWV1ZXMKICAgICAgICBteSAlVXNlckdyb3VwcyA9ICRTZWxmLT57R3JvdXBPYmplY3R9LT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgVHlwZSAgID0+ICdjcmVhdGUnLAogICAgICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgICAgICAgICBDYWNoZWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGJ1aWxkIHNlbGVjdGlvbiBzdHJpbmcKICAgICAgICBmb3IgbXkgJFF1ZXVlSUQgKCBrZXlzICVUb3MgKSB7CiAgICAgICAgICAgIG15ICVRdWV1ZURhdGEgPSAkU2VsZi0+e1F1ZXVlT2JqZWN0fS0+UXVldWVHZXQoIElEID0+ICRRdWV1ZUlEICk7CgogICAgICAgICAgICAjIHBlcm1pc3Npb24gY2hlY2ssIGNhbiB3ZSBjcmVhdGUgbmV3IHRpY2tldHMgaW4gcXVldWUKICAgICAgICAgICAgbmV4dCBpZiAhJFVzZXJHcm91cHN7ICRRdWV1ZURhdGF7R3JvdXBJRH0gfTsKCiAgICAgICAgICAgIG15ICRTdHJpbmcgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TmV3UXVldWVTZWxlY3Rpb25TdHJpbmcnKQogICAgICAgICAgICAgICAgfHwgJzxSZWFsbmFtZT4gPDxFbWFpbD4+IC0gUXVldWU6IDxRdWV1ZT4nOwogICAgICAgICAgICAkU3RyaW5nID1+IHMvPFF1ZXVlPi8kUXVldWVEYXRhe05hbWV9L2c7CiAgICAgICAgICAgICRTdHJpbmcgPX4gcy88UXVldWVDb21tZW50Pi8kUXVldWVEYXRhe0NvbW1lbnR9L2c7CiAgICAgICAgICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Ok5ld1F1ZXVlU2VsZWN0aW9uVHlwZScpIG5lICdRdWV1ZScgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBteSAlU3lzdGVtQWRkcmVzc0RhdGEgPSAkU2VsZi0+e1N5c3RlbUFkZHJlc3N9LT5TeXN0ZW1BZGRyZXNzR2V0KAogICAgICAgICAgICAgICAgICAgIElEID0+ICRUb3N7JFF1ZXVlSUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRTdHJpbmcgPX4gcy88UmVhbG5hbWU+LyRTeXN0ZW1BZGRyZXNzRGF0YXtSZWFsbmFtZX0vZzsKICAgICAgICAgICAgICAgICRTdHJpbmcgPX4gcy88RW1haWw+LyRTeXN0ZW1BZGRyZXNzRGF0YXtOYW1lfS9nOwogICAgICAgICAgICB9CiAgICAgICAgICAgICROZXdUb3N7JFF1ZXVlSUR9ID0gJFN0cmluZzsKICAgICAgICB9CiAgICB9CgogICAgIyBhZGQgZW1wdHkgc2VsZWN0aW9uCiAgICAkTmV3VG9zeycnfSA9ICctJzsKICAgIHJldHVybiBcJU5ld1RvczsKfQoKc3ViIF9HZXROb3RlVHlwZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlRGVmYXVsdE5vdGVUeXBlcyA9ICV7ICRTZWxmLT57Q29uZmlnfS0+e0FydGljbGVUeXBlc30gfTsKCiAgICBteSAlTm90ZVR5cGVzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlVHlwZUxpc3QoIFJlc3VsdCA9PiAnSEFTSCcgKTsKICAgIGZvciAoIGtleXMgJU5vdGVUeXBlcyApIHsKICAgICAgICBpZiAoICEkRGVmYXVsdE5vdGVUeXBlc3sgJE5vdGVUeXBlc3skX30gfSApIHsKICAgICAgICAgICAgZGVsZXRlICROb3RlVHlwZXN7JF99OwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJU5vdGVUeXBlczsKfQoKc3ViIF9HZXRTY3JlZW5FbGVtZW50cyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBTY3JlZW5FbGVtZW50czsKCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1RpdGxlfSApIHsKICAgICAgICBteSAlVGlja2V0RGF0YSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0R2V0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgICAgIG15ICRUaXRsZURlZmF1bHQ7CiAgICAgICAgaWYgKCAkVGlja2V0RGF0YXtUaXRsZX0gKSB7CiAgICAgICAgICAgICRUaXRsZURlZmF1bHQgPSAkVGlja2V0RGF0YXtUaXRsZX0gfHwgJyc7CiAgICAgICAgfQoKICAgICAgICBteSAkVGl0bGVFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdUaXRsZScsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdUaXRsZScpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3VHlwZSAgPT4gJ0lucHV0JywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAyMDAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJFRpdGxlRGVmYXVsdCB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkVGl0bGVFbGVtZW50czsKICAgIH0KCiAgICAjIHR5cGUKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6VHlwZScpICYmICRTZWxmLT57Q29uZmlnfS0+e1RpY2tldFR5cGV9ICkgewogICAgICAgIG15ICRUeXBlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdUeXBlSUQnLAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdUeXBlJyksCiAgICAgICAgICAgIERhdGF0eXBlID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE9wdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgICV7CiAgICAgICAgICAgICAgICAgICAgJFNlbGYtPl9HZXRUeXBlcygKICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJFR5cGVFbGVtZW50czsKICAgIH0KCiAgICAjIGZyb20sIHRvCiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdQaG9uZScgKSB7CiAgICAgICAgbXkgJEN1c3RvbWVyRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdDdXN0b21lclVzZXJMb2dpbicsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ0Zyb20gY3VzdG9tZXInKSwKICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiAnQXV0b0NvbXBsZXRpb24nLAogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnQ3VzdG9tZXJTZWFyY2gnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2ggPT4gJ0N1c3RvbWVyVXNlckxvZ2luJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQXV0b0ZpbGxFbGVtZW50cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRWxlbWVudE5hbWUgPT4gJ0N1c3RvbWVySUQnLAogICAgICAgICAgICAgICAgICAgIE9iamVjdCAgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgID0+ICdDdXN0b21lcklER2V0JywKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzICA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlcklEID0+ICdDdXN0b21lclVzZXJMb2dpbicsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJEN1c3RvbWVyRWxlbWVudHM7CiAgICB9CgogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnUGhvbmUnIHx8ICRQYXJhbXtTY3JlZW59IGVxICdNb3ZlJyApIHsKICAgICAgICBteSAkVGl0bGU7CiAgICAgICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnUGhvbmUnICkgewogICAgICAgICAgICAkVGl0bGUgPSAnVG8gcXVldWUnOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFRpdGxlID0gJ05ldyBRdWV1ZScKICAgICAgICB9CiAgICAgICAgbXkgJFF1ZXVlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdRdWV1ZUlEJywKICAgICAgICAgICAgVGl0bGUgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgkVGl0bGUpLAogICAgICAgICAgICBEYXRhdHlwZSA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlID0+ICdQaWNrZXInLAogICAgICAgICAgICBPcHRpb25zICA9PiB7CiAgICAgICAgICAgICAgICAlewogICAgICAgICAgICAgICAgICAgICRTZWxmLT5fR2V0VG9zKAogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkUXVldWVFbGVtZW50czsKICAgIH0KCiAgICAjIHNlcnZpY2UKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6U2VydmljZScpICYmICRTZWxmLT57Q29uZmlnfS0+e1NlcnZpY2V9ICkgewogICAgICAgIG15ICRTZXJ2aWNlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdTZXJ2aWNlSUQnLAogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdTZXJ2aWNlJyksCiAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTZXJ2aWNlc0dldCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlcklEID0+ICdDdXN0b21lclVzZXJMb2dpbicsCiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgICAgICAgID0+ICdRdWV1ZUlEJywKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJ1RpY2tldElEJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkU2VydmljZUVsZW1lbnRzOwogICAgfQoKICAgICMgc2xhCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OlNlcnZpY2UnKSAmJiAkU2VsZi0+e0NvbmZpZ30tPntTZXJ2aWNlfSApIHsKICAgICAgICBteSAkU0xBRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdTTEFJRCcsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1NMQScpLAogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICdQaWNrZXInLAogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnU0xBc0dldCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlcklEID0+ICdDdXN0b21lclVzZXJMb2dpbicsCiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgICAgICAgID0+ICdRdWV1ZUlEJywKICAgICAgICAgICAgICAgICAgICAgICAgU2VydmljZUlEICAgICAgPT4gJ1NlcnZpY2VJRCcsCiAgICAgICAgICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgID0+ICdUaWNrZXRJRCcsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJFNMQUVsZW1lbnRzOwogICAgfQoKICAgICMgb3duZXIKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57T3duZXJ9ICkgewogICAgICAgIG15ICRUaXRsZTsKICAgICAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdNb3ZlJyApIHsKICAgICAgICAgICAgJFRpdGxlID0gJ05ldyBPd25lcic7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkVGl0bGUgPSAnT3duZXInOwogICAgICAgIH0KCiAgICAgICAgbXkgJE93bmVyRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdPd25lcklEJywKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgkVGl0bGUpLAogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICdQaWNrZXInLAogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnVXNlcnNHZXQnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEICA9PiAnUXVldWVJRCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEFsbFVzZXJzID0+IDEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJE93bmVyRWxlbWVudHM7CiAgICB9CgogICAgIyByZXNwb25zaWJsZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpSZXNwb25zaWJsZScpICYmICRTZWxmLT57Q29uZmlnfS0+e1Jlc3BvbnNpYmxlfSApIHsKICAgICAgICBteSAkUmVzcG9uc2libGVFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1Jlc3BvbnNpYmxlSUQnLAogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdSZXNwb25zaWJsZScpLAogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICdQaWNrZXInLAogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnVXNlcnNHZXQnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEICA9PiAnUXVldWVJRCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEFsbFVzZXJzID0+IDEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJFJlc3BvbnNpYmxlRWxlbWVudHM7CiAgICB9CgogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnQ29tcG9zZScgKSB7CiAgICAgICAgbXkgJUNvbXBvc2VEZWZhdWx0cyA9ICRTZWxmLT5fR2V0Q29tcG9zZURlZmF1bHRzKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICk7CgogICAgICAgIGlmICggISVDb21wb3NlRGVmYXVsdHMgKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIG15ICRDb21wb3NlRnJvbUVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0Zyb20nLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnRnJvbScpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ0lucHV0JywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiA1MCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIFJlYWRvbmx5ICA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJENvbXBvc2VEZWZhdWx0c3tGcm9tfSB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkQ29tcG9zZUZyb21FbGVtZW50czsKCiAgICAgICAgbXkgJENvbXBvc2VUb0VsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1RvJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1RvJyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnRU1haWwnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDUwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICRDb21wb3NlRGVmYXVsdHN7VG99IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRDb21wb3NlVG9FbGVtZW50czsKCiAgICAgICAgbXkgJENvbXBvc2VDY0VsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0NjJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ0NjJyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnRU1haWwnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDUwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICRDb21wb3NlRGVmYXVsdHN7Q2N9IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRDb21wb3NlQ2NFbGVtZW50czsKCiAgICAgICAgbXkgJENvbXBvc2VCY2NFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdCY2MnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnQmNjJyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnRU1haWwnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDUwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICRDb21wb3NlRGVmYXVsdHN7QmNjfSB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkQ29tcG9zZUJjY0VsZW1lbnRzOwoKICAgICAgICBteSAkU3ViamVjdEVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1N1YmplY3QnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnU3ViamVjdCcpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ0lucHV0JywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAyNTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJENvbXBvc2VEZWZhdWx0c3tTdWJqZWN0fSB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkU3ViamVjdEVsZW1lbnRzOwoKICAgICAgICBteSAkQm9keUVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0JvZHknLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnVGV4dCcpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ1RleHRBcmVhJywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAyMF8wMDAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJENvbXBvc2VEZWZhdWx0c3tCb2R5fSB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkQm9keUVsZW1lbnRzOwogICAgfQoKICAgICMgc3ViamVjdAogICAgaWYgKCAkUGFyYW17U2NyZWVufSBuZSAnQ29tcG9zZScgKSB7CiAgICAgICAgbXkgJERlZmF1bHRTdWJqZWN0ID0gJyc7CiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntTdWJqZWN0fSApIHsKICAgICAgICAgICAgJERlZmF1bHRTdWJqZWN0ID0gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCggJFNlbGYtPntDb25maWd9LT57U3ViamVjdH0gKQogICAgICAgIH0KCiAgICAgICAgbXkgJFN1YmplY3RFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdTdWJqZWN0JywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1N1YmplY3QnKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdJbnB1dCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMjUwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICREZWZhdWx0U3ViamVjdCB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkU3ViamVjdEVsZW1lbnRzOwogICAgfQoKICAgICMgYm9keQogICAgaWYgKCAkUGFyYW17U2NyZWVufSBuZSAnQ29tcG9zZScgKSB7CiAgICAgICAgbXkgJEJvZHlFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdCb2R5JywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1RleHQnKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdUZXh0QXJlYScsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMjBfMDAwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRCb2R5RWxlbWVudHM7CiAgICB9CgogICAgIyBjdXN0b21lciBpZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntDdXN0b21lcklEfSApIHsKICAgICAgICBteSAkQ3VzdG9tZXJFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdDdXN0b21lcklEJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ0N1c3RvbWVySUQnKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdJbnB1dCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMTUwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRDdXN0b21lckVsZW1lbnRzOwogICAgfQoKICAgICNub3RlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e05vdGV9ICkgewoKICAgICAgICBteSAkRGVmYXVsdEFydGljbGVUeXBlOwogICAgICAgIGlmICggJFNlbGYtPntDb25maWd9LT57QXJ0aWNsZVR5cGVEZWZhdWx0fSApIHsKICAgICAgICAgICAgJERlZmF1bHRBcnRpY2xlVHlwZSA9ICRTZWxmLT57Q29uZmlnfS0+e0FydGljbGVUeXBlRGVmYXVsdH07CiAgICAgICAgfQoKICAgICAgICBteSAkRGVmYXVsdEFydGljbGVUeXBlSUQ7CiAgICAgICAgaWYgKCREZWZhdWx0QXJ0aWNsZVR5cGUpIHsKICAgICAgICAgICAgJERlZmF1bHRBcnRpY2xlVHlwZUlEID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlVHlwZUxvb2t1cCgKICAgICAgICAgICAgICAgIEFydGljbGVUeXBlID0+ICREZWZhdWx0QXJ0aWNsZVR5cGUsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIG15ICROb3RlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdBcnRpY2xlVHlwZUlEJywKICAgICAgICAgICAgVGl0bGUgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnTm90ZSB0eXBlJyksCiAgICAgICAgICAgIERhdGF0eXBlID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE9wdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgICV7ICRTZWxmLT5fR2V0Tm90ZVR5cGVzKCAlUGFyYW0sICkgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBNYW5kYXRvcnkgICAgID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICAgICAgPT4gJERlZmF1bHRBcnRpY2xlVHlwZUlEIHx8ICcnLAogICAgICAgICAgICBEZWZhdWx0T3B0aW9uID0+ICREZWZhdWx0QXJ0aWNsZVR5cGUgfHwgJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJE5vdGVFbGVtZW50czsKICAgIH0KCiAgICAjIHN0YXRlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N0YXRlfSApIHsKCiAgICAgICAgbXkgJERlZmF1bHRTdGF0ZTsKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N0YXRlRGVmYXVsdH0gKSB7CiAgICAgICAgICAgICREZWZhdWx0U3RhdGUgPSAkU2VsZi0+e0NvbmZpZ30tPntTdGF0ZURlZmF1bHR9CiAgICAgICAgfQoKICAgICAgICBteSAkRGVmYXVsdFN0YXRlSUQ7CiAgICAgICAgaWYgKCREZWZhdWx0U3RhdGUpIHsKCiAgICAgICAgICAgICMgY2FuJ3QgdXNlIFN0YXRlTG9va3VwIGZvciAyLjQgZnJhbWV3b3JrIGNvbXBhdGliaWxpdHkKICAgICAgICAgICAgbXkgJVN0YXRlID0gJFNlbGYtPntTdGF0ZU9iamVjdH0tPlN0YXRlR2V0KAogICAgICAgICAgICAgICAgTmFtZSA9PiAkRGVmYXVsdFN0YXRlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCVTdGF0ZSkgewogICAgICAgICAgICAgICAgJERlZmF1bHRTdGF0ZUlEID0gJFN0YXRle0lEfTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJFN0YXRlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdTdGF0ZUlEJywKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnTmV4dCBUaWNrZXQgU3RhdGUnKSwKICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiAnUGlja2VyJywKICAgICAgICAgICAgRHluYW1pY09wdGlvbnMgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gJ05leHRTdGF0ZXNHZXQnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEID0+ICdRdWV1ZUlEJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgICAgID0+ICREZWZhdWx0U3RhdGVJRCB8fCAnJywKICAgICAgICAgICAgRGVmYXVsdE9wdGlvbiA9PiAkRGVmYXVsdFN0YXRlIHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRTdGF0ZUVsZW1lbnRzOwogICAgfQoKICAgICMgcGVuZGluZyBkYXRlCiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdQaG9uZScgfHwgJFBhcmFte1NjcmVlbn0gZXEgJ0NvbXBvc2UnICkgewogICAgICAgIG15ICRQZW5kaW5nRGF0ZUVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1BlbmRpbmdEYXRlJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1BlbmRpbmcgRGF0ZSAoZm9yIHBlbmRpbmcqIHN0YXRlcyknKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlVGltZScsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkUGVuZGluZ0RhdGVFbGVtZW50czsKICAgIH0KCiAgICAjIHByaW9yaXR5CiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdQaG9uZScgKSB7CgogICAgICAgIG15ICREZWZhdWx0UHJpb3JpdHk7CiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntQcmlvcml0eURlZmF1bHR9ICkgewogICAgICAgICAgICAkRGVmYXVsdFByaW9yaXR5ID0gJFNlbGYtPntDb25maWd9LT57UHJpb3JpdHlEZWZhdWx0fTsKICAgICAgICB9CgogICAgICAgIG15ICREZWZhdWx0UHJpb3JpdHlJRDsKICAgICAgICBpZiAoJERlZmF1bHRQcmlvcml0eSkgewogICAgICAgICAgICAkRGVmYXVsdFByaW9yaXR5SUQgPSAkU2VsZi0+e1ByaW9yaXR5T2JqZWN0fS0+UHJpb3JpdHlMb29rdXAoCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAkRGVmYXVsdFByaW9yaXR5LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJFByaW9yaXR5RWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdQcmlvcml0eUlEJywKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnUHJpb3JpdHknKSwKICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiAnUGlja2VyJywKICAgICAgICAgICAgRHluYW1pY09wdGlvbnMgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gJ1ByaW9yaXRpZXNHZXQnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiAnJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgICAgID0+ICREZWZhdWx0UHJpb3JpdHlJRCB8fCAnJywKICAgICAgICAgICAgRGVmYXVsdE9wdGlvbiA9PiAkRGVmYXVsdFByaW9yaXR5IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRQcmlvcml0eUVsZW1lbnRzOwogICAgfQoKICAgICMgdGlja2V0IGZyZWV0ZXh0IGZpZWxkcwogICAgZm9yIG15ICRJbmRleCAoIDEgLi4gMTYgKSB7CiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntUaWNrZXRGcmVlVGV4dH0tPnskSW5kZXh9ICkgewoKICAgICAgICAgICAgbXkgJEZyZWVUZXh0RWxlbWVudDsKCiAgICAgICAgICAgIG15ICROYW1lOwogICAgICAgICAgICAkTmFtZSA9ICdUaWNrZXRGcmVlVGV4dCcgLiAkSW5kZXg7CgogICAgICAgICAgICBteSAkVGl0bGU7CiAgICAgICAgICAgICRUaXRsZSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCAnVGlja2V0RnJlZUtleScgLiAkSW5kZXggLiAnOjpEZWZhdWx0U2VsZWN0aW9uJyApOwoKICAgICAgICAgICAgbXkgJFZpZXdUeXBlOwogICAgICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCAnVGlja2V0RnJlZVRleHQnIC4gJEluZGV4ICkgKSB7CiAgICAgICAgICAgICAgICAkVmlld1R5cGUgPSAnUGlja2VyJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRWaWV3VHlwZSA9ICdJbnB1dCc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15IEBUaWNrZXRGcmVlS2V5czsKICAgICAgICAgICAgQFRpY2tldEZyZWVLZXlzID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoICdUaWNrZXRGcmVlS2V5JyAuICRJbmRleCApOwoKICAgICAgICAgICAgbXkgQE9wdGlvbnM7CiAgICAgICAgICAgIEBPcHRpb25zID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoICdUaWNrZXRGcmVlVGV4dCcgLiAkSW5kZXggKTsKCiAgICAgICAgICAgIG15ICRNYW5kYXRvcnk7CiAgICAgICAgICAgIGlmICggJFNlbGYtPntDb25maWd9LT57VGlja2V0RnJlZVRleHR9LT57JEluZGV4fSA9PSAyICkgewogICAgICAgICAgICAgICAgJE1hbmRhdG9yeSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTWFuZGF0b3J5ID0gMDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJERlZmF1bHQ7CiAgICAgICAgICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoICdUaWNrZXRGcmVlVGV4dCcgLiAkSW5kZXggKSApIHsKICAgICAgICAgICAgICAgICREZWZhdWx0ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoCiAgICAgICAgICAgICAgICAgICAgJ1RpY2tldEZyZWVUZXh0JyAuICRJbmRleAogICAgICAgICAgICAgICAgICAgICAgICAuICc6OkRlZmF1bHRTZWxlY3Rpb24nCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJERlZmF1bHQgPSAnJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCggJ1RpY2tldEZyZWVUZXh0JyAuICRJbmRleCApICkgewogICAgICAgICAgICAgICAgJEZyZWVUZXh0RWxlbWVudCA9IHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICA9PiAkTmFtZSwKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgRnJlZVRleHRLZXkgPT4gQFRpY2tldEZyZWVLZXlzLAogICAgICAgICAgICAgICAgICAgIERhdGF0eXBlICAgID0+ICdUZXh0JywKICAgICAgICAgICAgICAgICAgICBWaWV3dHlwZSAgICA9PiAkVmlld1R5cGUsCiAgICAgICAgICAgICAgICAgICAgT3B0aW9ucyAgICAgPT4gQE9wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgPT4gJE1hbmRhdG9yeSwKICAgICAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICA9PiAkRGVmYXVsdCB8fCAnJywKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkRnJlZVRleHRFbGVtZW50ID0gewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICROYW1lLAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRUaXRsZSwKICAgICAgICAgICAgICAgICAgICBGcmVlVGV4dEtleSA9PiBAVGlja2V0RnJlZUtleXMsCiAgICAgICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgPT4gJ1RleHQnLAogICAgICAgICAgICAgICAgICAgIFZpZXd0eXBlICAgID0+ICRWaWV3VHlwZSwKICAgICAgICAgICAgICAgICAgICBNaW4gICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgIE1heCAgICAgICAgID0+IDIwMCwKICAgICAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICA9PiAkTWFuZGF0b3J5LAogICAgICAgICAgICAgICAgICAgIERlZmF1bHQgICAgID0+ICREZWZhdWx0IHx8ICcnLAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRGcmVlVGV4dEVsZW1lbnQ7CiAgICAgICAgfQogICAgfQoKICAgICMgdGlja2V0IGZyZWV0aW1lIGZpZWxkcwogICAgZm9yIG15ICRJbmRleCAoIDEgLi4gNiApIHsKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1RpY2tldEZyZWVUaW1lfS0+eyRJbmRleH0gKSB7CgogICAgICAgICAgICBteSAkTmFtZTsKICAgICAgICAgICAgJE5hbWUgPSAnVGlja2V0RnJlZVRpbWUnIC4gJEluZGV4OwoKICAgICAgICAgICAgbXkgJFRpdGxlOwogICAgICAgICAgICAkVGl0bGUgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCggJ1RpY2tldEZyZWVUaW1lS2V5JyAuICRJbmRleCApOwoKICAgICAgICAgICAgbXkgJE1hbmRhdG9yeTsKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCggJ1RpY2tldEZyZWVUaW1lT3B0aW9uYWwnIC4gJEluZGV4ICkgKSB7CiAgICAgICAgICAgICAgICAkTWFuZGF0b3J5ID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRNYW5kYXRvcnkgPSAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkRGVmYXVsdFRpbWVGb3JtYXRlZDsKICAgICAgICAgICAgbXkgJFRpbWVEaWZmID0gMDsKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCggJ1RpY2tldEZyZWVUaW1lRGlmZicgLiAkSW5kZXggKSApIHsKICAgICAgICAgICAgICAgICRUaW1lRGlmZiA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCAnVGlja2V0RnJlZVRpbWVEaWZmJyAuICRJbmRleCApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICREZWZhdWx0VGltZSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUoKSAtICRUaW1lRGlmZjsKCiAgICAgICAgICAgICREZWZhdWx0VGltZUZvcm1hdGVkID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZTJUaW1lU3RhbXAoCiAgICAgICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICREZWZhdWx0VGltZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15ICRGcmVlVGltZUVsZW1lbnQgPSB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gJE5hbWUsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlVGltZScsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgPT4gJE1hbmRhdG9yeSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICA9PiAkRGVmYXVsdFRpbWVGb3JtYXRlZCB8fCAnJywKICAgICAgICAgICAgfTsKICAgICAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRGcmVlVGltZUVsZW1lbnQ7CiAgICAgICAgfQogICAgfQoKICAgICMgYXJ0aWNsZSBmcmVldGV4dCBmaWVsZHMKICAgIGZvciBteSAkSW5kZXggKCAxIC4uIDMgKSB7CiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntBcnRpY2xlRnJlZVRleHR9LT57JEluZGV4fSApIHsKCiAgICAgICAgICAgIG15ICRGcmVlVGV4dEVsZW1lbnQ7CgogICAgICAgICAgICBteSAkTmFtZTsKICAgICAgICAgICAgJE5hbWUgPSAnQXJ0aWNsZUZyZWVUZXh0JyAuICRJbmRleDsKCiAgICAgICAgICAgIG15ICRUaXRsZTsKICAgICAgICAgICAgJFRpdGxlID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoICdBcnRpY2xlRnJlZUtleScgLiAkSW5kZXggLiAnOjpEZWZhdWx0U2VsZWN0aW9uJyApOwoKICAgICAgICAgICAgbXkgJFZpZXdUeXBlOwogICAgICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCAnQXJ0aWNsZUZyZWVUZXh0JyAuICRJbmRleCApICkgewogICAgICAgICAgICAgICAgJFZpZXdUeXBlID0gJ1BpY2tlcic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkVmlld1R5cGUgPSAnSW5wdXQnOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSBAQXJ0aWNsZUZyZWVLZXlzOwogICAgICAgICAgICBAQXJ0aWNsZUZyZWVLZXlzID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoICdBcnRpY2xlRnJlZUtleScgLiAkSW5kZXggKTsKCiAgICAgICAgICAgIG15IEBPcHRpb25zOwogICAgICAgICAgICBAT3B0aW9ucyA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCAnQXJ0aWNsZUZyZWVUZXh0JyAuICRJbmRleCApOwoKICAgICAgICAgICAgbXkgJE1hbmRhdG9yeTsKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntBcnRpY2xlRnJlZVRleHR9LT57JEluZGV4fSA9PSAyICkgewogICAgICAgICAgICAgICAgJE1hbmRhdG9yeSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTWFuZGF0b3J5ID0gMDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJERlZmF1bHQ7CiAgICAgICAgICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoICdBcnRpY2xlRnJlZVRleHQnIC4gJEluZGV4ICkgKSB7CiAgICAgICAgICAgICAgICAkRGVmYXVsdCA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KAogICAgICAgICAgICAgICAgICAgICdBcnRpY2xlRnJlZVRleHQnIC4gJEluZGV4CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJzo6RGVmYXVsdFNlbGVjdGlvbicKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkRGVmYXVsdCA9ICcnOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCAnQXJ0aWNsZUZyZWVUZXh0JyAuICRJbmRleCApICkgewogICAgICAgICAgICAgICAgJEZyZWVUZXh0RWxlbWVudCA9IHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICA9PiAkTmFtZSwKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgRnJlZVRleHRLZXkgPT4gQEFydGljbGVGcmVlS2V5cywKICAgICAgICAgICAgICAgICAgICBEYXRhdHlwZSAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgICAgICAgICAgVmlld3R5cGUgICAgPT4gJFZpZXdUeXBlLAogICAgICAgICAgICAgICAgICAgIE9wdGlvbnMgICAgID0+IEBPcHRpb25zLAogICAgICAgICAgICAgICAgICAgIE1hbmRhdG9yeSAgID0+ICRNYW5kYXRvcnksCiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgPT4gJERlZmF1bHQgfHwgJycsCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJEZyZWVUZXh0RWxlbWVudCA9IHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICA9PiAkTmFtZSwKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgRnJlZVRleHRLZXkgPT4gQEFydGljbGVGcmVlS2V5cywKICAgICAgICAgICAgICAgICAgICBEYXRhdHlwZSAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgICAgICAgICAgVmlld3R5cGUgICAgPT4gJFZpZXdUeXBlLAogICAgICAgICAgICAgICAgICAgIE1pbiAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgTWF4ICAgICAgICAgPT4gMjAwLAogICAgICAgICAgICAgICAgICAgIE1hbmRhdG9yeSAgID0+ICRNYW5kYXRvcnksCiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgPT4gJERlZmF1bHQgfHwgJycsCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJEZyZWVUZXh0RWxlbWVudDsKICAgICAgICB9CiAgICB9CgogICAgIyB0aW1lIHVuaXRzCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1RpbWVVbml0c30gKSB7CiAgICAgICAgbXkgJE1hbmRhdG9yeTsKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpOZWVkQWNjb3VudGVkVGltZScpICkgewogICAgICAgICAgICAkTWFuZGF0b3J5ID0gMTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRNYW5kYXRvcnkgPSAwOwogICAgICAgIH0KICAgICAgICBteSAkVGltZVVuaXRzTWVhc3VyZSAgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6VGltZVVuaXRzJyk7CiAgICAgICAgbXkgJFRpbWVVbml0c0VsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1RpbWVVbml0cycsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCJUaW1lIHVuaXRzICRUaW1lVW5pdHNNZWFzdXJlIiksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnTnVtZXJpYycsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnSW5wdXQnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDEwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gJE1hbmRhdG9yeSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRUaW1lVW5pdHNFbGVtZW50czsKICAgIH0KICAgIHJldHVybiBcQFNjcmVlbkVsZW1lbnRzOwp9CgpzdWIgX1RpY2tldFBob25lTmV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPntDb25maWd9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUnKTsKCiAgICBteSAlU3RhdGVEYXRhID0gKCk7CiAgICBpZiAoICRQYXJhbXtTdGF0ZUlEfSApIHsKICAgICAgICAlU3RhdGVEYXRhID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT57U3RhdGVPYmplY3R9LT5TdGF0ZUdldCgKICAgICAgICAgICAgSUQgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyB0cmFuc2Zvcm0gcGVuZGluZyB0aW1lLCB0aW1lIHN0YW1wIGJhc2VkIG9uIHVzZXIgdGltZSB6b25lCiAgICBpZiAoIGRlZmluZWQgJFBhcmFte1BlbmRpbmdEYXRlfSApIHsKICAgICAgICAkUGFyYW17UGVuZGluZ0RhdGV9ID0gJFNlbGYtPl9UcmFuc2Zyb21EYXRlU2VsZWN0aW9uKAogICAgICAgICAgICBUaW1lU3RhbXAgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSwKICAgICAgICApOwogICAgfQoKICAgICMgdHJhbnNmb3JtIGZyZWUgdGltZSwgdGltZSBzdGFtcCBiYXNlZCBvbiB1c2VyIHRpbWUgem9uZQogICAgZm9yIG15ICRDb3VudCAoIDEgLi4gNiApIHsKICAgICAgICBteSAkUHJlZml4ID0gJ1RpY2tldEZyZWVUaW1lJyAuICRDb3VudDsKICAgICAgICBuZXh0IGlmICFkZWZpbmVkICRQYXJhbXskUHJlZml4fTsKICAgICAgICAkUGFyYW17JFByZWZpeH0gPSAkU2VsZi0+X1RyYW5zZnJvbURhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgIFRpbWVTdGFtcCA9PiAkUGFyYW17JFByZWZpeH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkQ3VzdG9tZXJVc2VyID0gJFBhcmFte0N1c3RvbWVyVXNlckxvZ2lufTsKICAgIG15ICRDdXN0b21lcklEID0gJFBhcmFte0N1c3RvbWVySUR9IHx8ICcnOwoKICAgICMgcmV3cmFwIGJvZHkgaWYgZXhpc3RzCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdGcm9udGVuZDo6UmljaFRleHQnKSAmJiAkUGFyYW17Qm9keX0gKSB7CiAgICAgICAgJFBhcmFte0JvZHl9CiAgICAgICAgICAgID1+IHMvKF4+Lit8Lns0LCRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpUZXh0QXJlYU5vdGUnKX0pKD86XHN8XHopLyQxXG4vZ207CiAgICB9CgogICAgIyBjaGVjayBwZW5kaW5nIGRhdGUKICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gJiYgJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15wZW5kaW5nL2kgKSB7CiAgICAgICAgaWYgKCAhJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoIFN0cmluZyA9PiAkUGFyYW17UGVuZGluZ0RhdGV9ICkgKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdEYXRlIGludmFsaWQnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmICgKICAgICAgICAgICAgJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoIFN0cmluZyA9PiAkUGFyYW17UGVuZGluZ0RhdGV9ICkKICAgICAgICAgICAgPCAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0RhdGUgaW52YWxpZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgZnJlZSB0ZXh0IGNvbmZpZyBvcHRpb25zCiAgICBteSAlVGlja2V0RnJlZVRleHQgPSAoKTsKICAgIGZvciAoIDEgLi4gMTYgKSB7CgogICAgICAgICMgY2hlY2sgcmVxdWlyZWQgRnJlZVRleHRGaWVsZCAoaWYgY29uZmlndXJlZCkKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57Q29uZmlnfXsnVGlja2V0RnJlZVRleHQnfS0+eyRffSA9PSAyCiAgICAgICAgICAgICYmICRQYXJhbXsiVGlja2V0RnJlZVRleHQkXyJ9IGVxICcnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaWNrZXRGcmVlVGV4dEZpZWxkJF8gaW52YWxpZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgI2dldCBjdXN0b21lciBpbmZvCiAgICBteSAlQ3VzdG9tZXJVc2VyRGF0YSA9ICRTZWxmLT57Q3VzdG9tZXJVc2VyT2JqZWN0fS0+Q3VzdG9tZXJVc2VyRGF0YUdldCgKICAgICAgICBVc2VyID0+ICRDdXN0b21lclVzZXIsCiAgICApOwogICAgbXkgJUN1c3RvbWVyVXNlckxpc3QgPSAkU2VsZi0+e0N1c3RvbWVyVXNlck9iamVjdH0tPkN1c3RvbWVyU2VhcmNoKAogICAgICAgIFVzZXJMb2dpbiA9PiAkQ3VzdG9tZXJVc2VyLAogICAgKTsKICAgIG15ICRGcm9tOwogICAgaWYgKCVDdXN0b21lclVzZXJMaXN0KSB7CiAgICAgICAgZm9yICgga2V5cyAlQ3VzdG9tZXJVc2VyTGlzdCApIHsKCiAgICAgICAgICAgIGlmICggJFBhcmFte0N1c3RvbWVyVXNlckxvZ2lufSBlcSAkXyApIHsKICAgICAgICAgICAgICAgICRGcm9tID0gJEN1c3RvbWVyVXNlckxpc3R7JF99CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkRnJvbSA9ICRDdXN0b21lclVzZXI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkRnJvbSA9ICRDdXN0b21lclVzZXI7CiAgICB9CgogICAgIyBjaGVjayBlbWFpbCBhZGRyZXNzCiAgICBmb3IgbXkgJEVtYWlsICggTWFpbDo6QWRkcmVzcy0+cGFyc2UoICRDdXN0b21lclVzZXJEYXRhe1VzZXJFbWFpbH0gKSApIHsKICAgICAgICBpZiAoICEkU2VsZi0+e0NoZWNrSXRlbU9iamVjdH0tPkNoZWNrRW1haWwoIEFkZHJlc3MgPT4gJEVtYWlsLT5hZGRyZXNzKCkgKSApIHsKICAgICAgICAgICAgbXkgJFNlcnZlckVycm9yID0gJFNlbGYtPntDaGVja0l0ZW1PYmplY3R9LT5DaGVja0Vycm9yKCk7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBvbiBmaWVsZCBcIkZyb21cIiAgXG4gJFNlcnZlckVycm9yIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KICAgIGlmICggISRQYXJhbXtDdXN0b21lclVzZXJMb2dpbn0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdGcm9tIGludmFsaWQ6IEZyb20gaXMgZW1wdHknLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKCAhJFBhcmFte1N1YmplY3R9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnU3ViamVjdCBpbnZhbGlkOiBTdWJqZWN0IGlzIGVtcHR5JywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICggISRQYXJhbXtRdWV1ZUlEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0Rlc3RpbmF0aW9uIGludmFsaWQ6IERlc3RpbmF0aW9uIHF1ZXVlIGlzIGVtcHR5JywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICgKICAgICAgICAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpTZXJ2aWNlJykKICAgICAgICAmJiAkUGFyYW17U0xBSUR9CiAgICAgICAgJiYgISRQYXJhbXtTZXJ2aWNlSUR9CiAgICAgICAgKQogICAgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnU2VydmljZSBpbnZhbGlkOiBubyBzZXJ2aWNlIHNlbGVjdGVkJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNyZWF0ZSBuZXcgdGlja2V0LCBkbyBkYiBpbnNlcnQKICAgIG15ICRUaWNrZXRJRCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0Q3JlYXRlKAogICAgICAgIFRpdGxlICAgICAgICA9PiAkUGFyYW17U3ViamVjdH0sCiAgICAgICAgUXVldWVJRCAgICAgID0+ICRQYXJhbXtRdWV1ZUlEfSwKICAgICAgICBTdWJqZWN0ICAgICAgPT4gJFBhcmFte1N1YmplY3R9LAogICAgICAgIExvY2sgICAgICAgICA9PiAndW5sb2NrJywKICAgICAgICBUeXBlSUQgICAgICAgPT4gJFBhcmFte1R5cGVJRH0sCiAgICAgICAgU2VydmljZUlEICAgID0+ICRQYXJhbXtTZXJ2aWNlSUR9LAogICAgICAgIFNMQUlEICAgICAgICA9PiAkUGFyYW17U0xBSUR9LAogICAgICAgIFN0YXRlSUQgICAgICA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgUHJpb3JpdHlJRCAgID0+ICRQYXJhbXtQcmlvcml0eUlEfSwKICAgICAgICBPd25lcklEICAgICAgPT4gMSwKICAgICAgICBDdXN0b21lck5vICAgPT4gJEN1c3RvbWVySUQsCiAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICRDdXN0b21lclVzZXIsCiAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKICAgIGlmICggISRUaWNrZXRJRCApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0Vycm9yOiBObyB0aWNrZXQgY3JlYXRlZCEgUGxlYXNlIGNvbnRhY3QgYWRtaW4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc2V0IHRpY2tldCBmcmVlIHRleHQKICAgIGZvciAoIDEgLi4gMTYgKSB7CiAgICAgICAgaWYgKCBkZWZpbmVkKCAkUGFyYW17IlRpY2tldEZyZWVLZXkkXyJ9ICkgKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0RnJlZVRleHRTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAkUGFyYW17IlRpY2tldEZyZWVLZXkkXyJ9LAogICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gJFBhcmFteyJUaWNrZXRGcmVlVGV4dCRfIn0sCiAgICAgICAgICAgICAgICBDb3VudGVyICA9PiAkXywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCB0aWNrZXQgZnJlZSB0aW1lCiAgICBmb3IgKCAxIC4uIDYgKSB7CgogICAgICAgIGlmICggJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gfSApIHsKICAgICAgICAgICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciwgJFdlZWtEYXkgKSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSggJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gfSApLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnWWVhcicgfSAgID0gJFllYXI7CiAgICAgICAgICAgICRQYXJhbXsgJ1RpY2tldEZyZWVUaW1lJyAuICRfIC4gJ01vbnRoJyB9ICA9ICRNb250aDsKICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnRGF5JyB9ICAgID0gJERheTsKICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnSG91cicgfSAgID0gJEhvdXI7CiAgICAgICAgICAgICRQYXJhbXsgJ1RpY2tldEZyZWVUaW1lJyAuICRfIC4gJ01pbnV0ZScgfSA9ICRNaW47CgogICAgICAgICAgICAjIHNldCB0aW1lIHN0YW1wIHRvIE5VTEwgaWYgZmllbGQgaXMgbm90IHVzZWQvY2hlY2tlZAogICAgICAgICAgICBpZiAoICEkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdVc2VkJyB9ICkgewogICAgICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnWWVhcicgfSAgID0gMDsKICAgICAgICAgICAgICAgICRQYXJhbXsgJ1RpY2tldEZyZWVUaW1lJyAuICRfIC4gJ01vbnRoJyB9ICA9IDA7CiAgICAgICAgICAgICAgICAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdEYXknIH0gICAgPSAwOwogICAgICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnSG91cicgfSAgID0gMDsKICAgICAgICAgICAgICAgICRQYXJhbXsgJ1RpY2tldEZyZWVUaW1lJyAuICRfIC4gJ01pbnV0ZScgfSA9IDA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2V0IGZyZWUgdGltZQogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEZyZWVUaW1lU2V0KAogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgUHJlZml4ICAgPT4gJ1RpY2tldEZyZWVUaW1lJywKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIENvdW50ZXIgID0+ICRfLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIG15ICRNaW1lVHlwZSA9ICd0ZXh0L3BsYWluJzsKCiAgICAjIGNoZWNrIGlmIG5ldyBvd25lciBpcyBnaXZlbiAodGhlbiBzZW5kIG5vIGFnZW50IG5vdGlmeSkKICAgIG15ICROb0FnZW50Tm90aWZ5ID0gMDsKICAgIGlmICggJFBhcmFte093bmVySUR9ICkgewogICAgICAgICROb0FnZW50Tm90aWZ5ID0gMTsKICAgIH0KICAgIG15ICRRdWV1ZU5hbWUgPSAkU2VsZi0+e1F1ZXVlT2JqZWN0fS0+UXVldWVMb29rdXAoIFF1ZXVlSUQgPT4gJFBhcmFte1F1ZXVlSUR9ICk7CiAgICBteSAkQXJ0aWNsZUlEID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlQ3JlYXRlKAogICAgICAgIE5vQWdlbnROb3RpZnkgPT4gJE5vQWdlbnROb3RpZnksCiAgICAgICAgVGlja2V0SUQgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgQXJ0aWNsZVR5cGUgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntBcnRpY2xlVHlwZURlZmF1bHR9LAogICAgICAgIFNlbmRlclR5cGUgICAgPT4gJFNlbGYtPntDb25maWd9LT57U2VuZGVyVHlwZX0sCiAgICAgICAgRnJvbSAgICAgICAgICA9PiAkRnJvbSwKICAgICAgICBUbyAgICAgICAgICAgID0+ICRRdWV1ZU5hbWUsCiAgICAgICAgU3ViamVjdCAgICAgICA9PiAkUGFyYW17U3ViamVjdH0sCiAgICAgICAgQm9keSAgICAgICAgICA9PiAkUGFyYW17Qm9keX0sCiAgICAgICAgTWltZVR5cGUgICAgICA9PiAkTWltZVR5cGUsCgogICAgICAgICMgaXBob25lIG11c3Qgc2VuZCBpbmZvIGluIGN1cnJlbnQgY2hhcnNldAogICAgICAgIENoYXJzZXQgICAgICAgICAgPT4gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0RlZmF1bHRDaGFyc2V0JyksCiAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBIaXN0b3J5VHlwZSAgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0hpc3RvcnlUeXBlfSwKICAgICAgICBIaXN0b3J5Q29tbWVudCAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0hpc3RvcnlDb21tZW50fSB8fCAnJSUnLAogICAgICAgIEF1dG9SZXNwb25zZVR5cGUgPT4gJ2F1dG8gcmVwbHknLAogICAgICAgIE9yaWdIZWFkZXIgICAgICAgPT4gewogICAgICAgICAgICBGcm9tICAgID0+ICRGcm9tLAogICAgICAgICAgICBUbyAgICAgID0+ICRRdWV1ZU5hbWUsCiAgICAgICAgICAgIFN1YmplY3QgPT4gJFBhcmFte1N1YmplY3R9LAogICAgICAgICAgICBCb2R5ICAgID0+ICRQYXJhbXtCb2R5fSwKICAgICAgICB9LAogICAgICAgIFF1ZXVlID0+ICRRdWV1ZU5hbWUsCiAgICApOwoKICAgIGlmICgkQXJ0aWNsZUlEKSB7CgogICAgICAgICMgc2V0IGFydGljbGUgZnJlZSB0ZXh0CiAgICAgICAgZm9yICggMSAuLiAzICkgewogICAgICAgICAgICBpZiAoIGRlZmluZWQoICRQYXJhbXsiQXJ0aWNsZUZyZWVLZXkkXyJ9ICkgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVGcmVlVGV4dFNldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICAgICAgICAgIEtleSAgICAgICA9PiAkUGFyYW17IkFydGljbGVGcmVlS2V5JF8ifSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgPT4gJFBhcmFteyJBcnRpY2xlRnJlZVRleHQkXyJ9LAogICAgICAgICAgICAgICAgICAgIENvdW50ZXIgICA9PiAkXywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNldCBvd25lciAoaWYgbmV3IHVzZXIgaWQgaXMgZ2l2ZW4pCiAgICAgICAgaWYgKCAkUGFyYW17T3duZXJJRH0gKSB7CiAgICAgICAgICAgIGlmICggJFNlbGYtPnsnQVBJM1gnfSApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte093bmVySUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBzZXQgbG9jawogICAgICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAnbG9jaycsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5Pd25lclNldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17T3duZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHNldCBsb2NrCiAgICAgICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkxvY2tTZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICdsb2NrJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZWxzZSBzZXQgb3duZXIgdG8gY3VycmVudCBhZ2VudCBidXQgZG8gbm90IGxvY2sgaXQKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgaWYgKCAkU2VsZi0+eydBUEkzWCd9ICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgICAgIE5ld1VzZXJJRCAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBTZW5kTm9Ob3RpZmljYXRpb24gPT4gMSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5Pd25lclNldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgICAgIE5ld1VzZXJJRCAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBTZW5kTm9Ob3RpZmljYXRpb24gPT4gMSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNldCByZXNwb25zaWJsZSAoaWYgbmV3IHVzZXIgaWQgaXMgZ2l2ZW4pCiAgICAgICAgaWYgKCAkUGFyYW17UmVzcG9uc2libGVJRH0gKSB7CiAgICAgICAgICAgIGlmICggJFNlbGYtPnsnQVBJM1gnfSApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UmVzcG9uc2libGVTZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte1Jlc3BvbnNpYmxlSUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlJlc3BvbnNpYmxlU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtSZXNwb25zaWJsZUlEfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHRpbWUgYWNjb3VudGluZwogICAgICAgIGlmICggJFBhcmFte1RpbWVVbml0c30gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0QWNjb3VudFRpbWUoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlSUQsCiAgICAgICAgICAgICAgICBUaW1lVW5pdCAgPT4gJFBhcmFte1RpbWVVbml0c30sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNob3VsZCBpIHNldCBhbiB1bmxvY2s/CiAgICAgICAgbXkgJVN0YXRlRGF0YSA9ICRTZWxmLT57U3RhdGVPYmplY3R9LT5TdGF0ZUdldCggSUQgPT4gJFBhcmFte1N0YXRlSUR9ICk7CiAgICAgICAgaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXmNsb3NlL2kgKSB7CiAgICAgICAgICAgIGlmICggJFNlbGYtPnsnQVBJM1gnfSApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5Mb2NrU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc2V0IHBlbmRpbmcgdGltZQogICAgICAgIGVsc2lmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15wZW5kaW5nL2kgKSB7CgogICAgICAgICAgICAjIHNldCBwZW5kaW5nIHRpbWUKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRQZW5kaW5nVGltZVNldCgKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgU3RyaW5nICAgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRUaWNrZXRJRDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnRXJyb3I6IG5vIGFydGljbGUgd2FzIGNyZWF0ZWQhIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9Cn0KCnN1YiBfVGlja2V0Q29tbW9uQWN0aW9ucyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT57Q29uZmlnfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCAnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXQnIC4gJFBhcmFte0FjdGlvbn0gKTsKCiAgICBteSAlU3RhdGVEYXRhID0gKCk7CgogICAgaWYgKCAkUGFyYW17U3RhdGVJRH0gKSB7CiAgICAgICAgJVN0YXRlRGF0YSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+e1N0YXRlT2JqZWN0fS0+U3RhdGVHZXQoCiAgICAgICAgICAgIElEID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17VGlja2V0SUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTm8gVGlja2V0SUQgaXMgZ2l2ZW4hIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3M7CiAgICBpZiAoICRTZWxmLT57J0FQSTNYJ30gKSB7CiAgICAgICAgJEFjY2VzcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UGVybWlzc2lvbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkQWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5QZXJtaXNzaW9uKAogICAgICAgICAgICBUeXBlICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGVycm9yIHNjcmVlbiwgZG9uJ3Qgc2hvdyB0aWNrZXQKICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJZb3UgbmVlZCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSBwZXJtaXNzaW9ucyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICVUaWNrZXQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEdldCggVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSApOwoKICAgICMgZ2V0IGxvY2sgc3RhdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57UmVxdWlyZWRMb2NrfSApIHsKICAgICAgICBteSAkTG9ja2VkOwogICAgICAgIGlmICggJFNlbGYtPnsnQVBJM1gnfSApIHsKICAgICAgICAgICAgJExvY2tlZCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja0dldCggVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJVRpY2tldERhdGEgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEdldCggVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSApOwogICAgICAgICAgICBpZiAoICRUaWNrZXREYXRhe0xvY2t9IGVxICdsb2NrJyApIHsKICAgICAgICAgICAgICAgICRMb2NrZWQgPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICggISRMb2NrZWQgKSB7CiAgICAgICAgICAgIGlmICggJFNlbGYtPnsnQVBJM1gnfSApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICdsb2NrJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkxvY2tTZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAnbG9jaycsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPk93bmVyU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBteSAkQWNjZXNzT2sgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPk93bmVyQ2hlY2soCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgT3duZXJJRCAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggISRBY2Nlc3NPayApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1NvcnJ5LCB5b3UgbmVlZCB0byBiZSB0aGUgb3duZXIgdG8gZG8gdGhpcyBhY3Rpb24hICcKICAgICAgICAgICAgICAgICAgICAgICAgLiAnUGxlYXNlIGNoYW5nZSB0aGUgb3duZXIgZmlyc3QuJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyB0cmFuc2Zvcm0gcGVuZGluZyB0aW1lLCB0aW1lIHN0YW1wIGJhc2VkIG9uIHVzZXIgdGltZSB6b25lCiAgICBpZiAoIGRlZmluZWQgJFBhcmFte1BlbmRpbmdEYXRlfSApIHsKICAgICAgICAkUGFyYW17UGVuZGluZ0RhdGV9ID0gJFNlbGYtPl9UcmFuc2Zyb21EYXRlU2VsZWN0aW9uKAogICAgICAgICAgICBUaW1lU3RhbXAgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSwKICAgICAgICApOwogICAgfQoKICAgICMgdHJhbnNmb3JtIGZyZWUgdGltZSwgdGltZSBzdGFtcCBiYXNlZCBvbiB1c2VyIHRpbWUgem9uZQogICAgZm9yIG15ICRDb3VudCAoIDEgLi4gNiApIHsKICAgICAgICBteSAkUHJlZml4ID0gJ1RpY2tldEZyZWVUaW1lJyAuICRDb3VudDsKICAgICAgICBuZXh0IGlmICFkZWZpbmVkICRQYXJhbXskUHJlZml4fTsKICAgICAgICAkUGFyYW17JFByZWZpeH0gPSAkU2VsZi0+X1RyYW5zZnJvbURhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgIFRpbWVTdGFtcCA9PiAkUGFyYW17JFByZWZpeH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHJld3JhcCBib2R5IGlmIG5vIHJpY2ggdGV4dCBpcyB1c2VkCiAgICBpZiAoICRQYXJhbXtCb2R5fSApIHsKICAgICAgICBteSAkU2l6ZSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpUZXh0QXJlYU5vdGUnKSB8fCA3MDsKICAgICAgICAkUGFyYW17Qm9keX0gPX4gcy8oXj4uK3wuezQsJFNpemV9KSg/OlxzfFx6KS8kMVxuL2dtOwogICAgfQoKICAgICMgY2hlY2sgcGVuZGluZyBkYXRlCiAgICBpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ICYmICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9ecGVuZGluZy9pICkgewogICAgICAgIGlmICggISRTZWxmLT57VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSApICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnRGF0ZSBpbnZhbGlkJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSApCiAgICAgICAgICAgIDwgJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdEYXRlIGludmFsaWQnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57Tm90ZX0gKSB7CgogICAgICAgICMgY2hlY2sgc3ViamVjdAogICAgICAgIGlmICggISRQYXJhbXtTdWJqZWN0fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1N1YmplY3QgSW52YWxpZDogdGhlIFN1YmplY3QgaXMgZW1wdHkhJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBib2R5CiAgICAgICAgaWYgKCAhJFBhcmFte0JvZHl9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnQm9keSBJbnZhbGlkOiB0aGUgQm9keSBpcyBlbXB0eSEnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgcmVxdWlyZWQgRnJlZVRleHRGaWVsZCAoaWYgY29uZmlndXJlZCkKICAgIGZvciBteSAkQ291bnQgKCAxIC4uIDE2ICkgewogICAgICAgIG5leHQgaWYgJFNlbGYtPntDb25maWd9LT57VGlja2V0RnJlZVRleHR9LT57JENvdW50fSBuZSAyOwogICAgICAgIG5leHQgaWYgJFBhcmFteyJUaWNrZXRGcmVlVGV4dCRDb3VudCJ9IG5lICcnOwogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVGlja2V0RnJlZVRleHRGaWVsZCRDb3VudCBpbnZhbGlkIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjY2hlY2sgaWYgVGl0bGUKICAgIGlmICggISRQYXJhbXtUaXRsZX0gKSB7CiAgICAgICAgbXkgJVRpY2tldERhdGEgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEdldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgJFBhcmFte1RpdGxlfSA9ICRUaWNrZXREYXRhe1RpdGxlfTsKICAgIH0KCiAgICAjIHNldCBuZXcgdGl0bGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57VGl0bGV9ICkgewogICAgICAgIGlmICggZGVmaW5lZCAkUGFyYW17VGl0bGV9ICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFRpdGxlVXBkYXRlKAogICAgICAgICAgICAgICAgVGl0bGUgICAgPT4gJFBhcmFte1RpdGxlfSwKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgbmV3IHR5cGUKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6VHlwZScpICYmICRTZWxmLT57Q29uZmlnfS0+e1RpY2tldFR5cGV9ICkgewogICAgICAgIGlmICggJFBhcmFte1R5cGVJRH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0VHlwZVNldCgKICAgICAgICAgICAgICAgIFR5cGVJRCAgID0+ICRQYXJhbXtUeXBlSUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCBuZXcgc2VydmljZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpTZXJ2aWNlJykgJiYgJFNlbGYtPntDb25maWd9LT57U2VydmljZX0gKSB7CiAgICAgICAgaWYgKCBkZWZpbmVkICRQYXJhbXtTZXJ2aWNlSUR9ICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlcnZpY2VTZXQoCiAgICAgICAgICAgICAgICBTZXJ2aWNlSUQgICAgICA9PiAkUGFyYW17U2VydmljZUlEfSwKICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBDdXN0b21lclVzZXJJRCA9PiAkVGlja2V0e0N1c3RvbWVyVXNlcklEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBpZiAoIGRlZmluZWQgJFBhcmFte1NMQUlEfSApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTTEFTZXQoCiAgICAgICAgICAgICAgICBTTEFJRCAgICA9PiAkUGFyYW17U0xBSUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCBuZXcgb3duZXIKICAgIG15IEBOb3RpZnlEb25lOwogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntPd25lcn0gKSB7CiAgICAgICAgbXkgJEJvZHlUZXh0ID0gJFBhcmFte0JvZHl9IHx8ICcnOwogICAgICAgIGlmICggJFBhcmFte093bmVySUR9ICkgewogICAgICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICAgICAgaWYgKCAkU2VsZi0+eydBUEkzWCd9ICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRTdWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtPd25lcklEfSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ICAgPT4gJEJvZHlUZXh0LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+TG9ja1NldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICdsb2NrJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkU3VjY2VzcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+T3duZXJTZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17T3duZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCAgID0+ICRCb2R5VGV4dCwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcmVtZW1iZXIgdG8gbm90IG5vdGlmeSBvd25lciB0d2ljZQogICAgICAgICAgICBpZiAoICRTdWNjZXNzICYmICRTdWNjZXNzIGVxIDEgKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBOb3RpZnlEb25lLCAkUGFyYW17T3duZXJJRH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgbmV3IHJlc3BvbnNpYmxlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1Jlc3BvbnNpYmxlfSApIHsKICAgICAgICBpZiAoICRQYXJhbXtSZXNwb25zaWJsZUlEfSApIHsKICAgICAgICAgICAgbXkgJEJvZHlUZXh0ID0gJFBhcmFte0JvZHl9IHx8ICcnOwogICAgICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICAgICAgaWYgKCAkU2VsZi0+eydBUEkzWCd9ICkgewogICAgICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFJlc3BvbnNpYmxlU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte1Jlc3BvbnNpYmxlSUR9LAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgICA9PiAkQm9keVRleHQsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlJlc3BvbnNpYmxlU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte1Jlc3BvbnNpYmxlSUR9LAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgICA9PiAkQm9keVRleHQsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHJlbWVtYmVyIHRvIG5vdCBub3RpZnkgcmVzcG9uc2libGUgdHdpY2UKICAgICAgICAgICAgaWYgKCAkU3VjY2VzcyAmJiAkU3VjY2VzcyBlcSAxICkgewogICAgICAgICAgICAgICAgcHVzaCBATm90aWZ5RG9uZSwgJFBhcmFte1Jlc3BvbnNpYmxlSUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgYWRkIG5vdGUKICAgIG15ICRBcnRpY2xlSUQgPSAnJzsKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57Tm90ZX0gfHwgJFBhcmFte0RlZmF1bHRzfSApIHsKICAgICAgICBteSAkTWltZVR5cGUgPSAndGV4dC9wbGFpbic7CgogICAgICAgIG15ICVVc2VyID0gJFNlbGYtPntVc2VyT2JqZWN0fS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBteSAkRnJvbSA9ICIkVXNlcntVc2VyRmlyc3RuYW1lfSAkVXNlcntVc2VyTGFzdG5hbWV9IDwkVXNlcntVc2VyRW1haWx9PiI7CgogICAgICAgICRBcnRpY2xlSUQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVDcmVhdGUoCiAgICAgICAgICAgIFRpY2tldElEICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgU2VuZGVyVHlwZSA9PiAnYWdlbnQnLAogICAgICAgICAgICBGcm9tICAgICAgID0+ICRGcm9tLAogICAgICAgICAgICBNaW1lVHlwZSAgID0+ICRNaW1lVHlwZSwKCiAgICAgICAgICAgICMgaXBob25lIG11c3Qgc2VuZCBpbmZvIGluIGN1cnJlbnQgY2hhcnNldAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRGVmYXVsdENoYXJzZXQnKSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0hpc3RvcnlUeXBlfSwKICAgICAgICAgICAgSGlzdG9yeUNvbW1lbnQgPT4gJFNlbGYtPntDb25maWd9LT57SGlzdG9yeUNvbW1lbnR9LAoKICAgICAgICAgICAgIyAgICAgICAgICAgICAgICBGb3JjZU5vdGlmaWNhdGlvblRvVXNlcklEICAgICAgID0+IFxATm90aWZ5VXNlcklEcywKICAgICAgICAgICAgRXhjbHVkZU11dGVOb3RpZmljYXRpb25Ub1VzZXJJRCA9PiBcQE5vdGlmeURvbmUsCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkQXJ0aWNsZUlEICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnRXJyb3I6IG5vIGFydGljbGUgd2FzIGNyZWF0ZWQhIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHRpbWUgYWNjb3VudGluZwogICAgICAgIGlmICggJFBhcmFte1RpbWVVbml0c30gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0QWNjb3VudFRpbWUoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICAgICAgVGltZVVuaXQgID0+ICRQYXJhbXtUaW1lVW5pdHN9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgdGlja2V0IGZyZWUgdGV4dAogICAgICAgIGZvciBteSAkQ291bnQgKCAxIC4uIDE2ICkgewogICAgICAgICAgICBteSAkS2V5ICA9ICdUaWNrZXRGcmVlS2V5JyAuICRDb3VudDsKICAgICAgICAgICAgbXkgJFRleHQgPSAnVGlja2V0RnJlZVRleHQnIC4gJENvdW50OwogICAgICAgICAgICBuZXh0IGlmICFkZWZpbmVkICRQYXJhbXskS2V5fTsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRGcmVlVGV4dFNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAkUGFyYW17JEtleX0sCiAgICAgICAgICAgICAgICBWYWx1ZSAgICA9PiAkUGFyYW17JFRleHR9LAogICAgICAgICAgICAgICAgQ291bnRlciAgPT4gJENvdW50LAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNldCB0aWNrZXQgZnJlZSB0aW1lCiAgICAgICAgZm9yICggMSAuLiA2ICkgewoKICAgICAgICAgICAgaWYgKCAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyB9ICkgewogICAgICAgICAgICAgICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciwgJFdlZWtEYXkgKSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgICAgICAgICBTeXN0ZW1UaW1lID0+CiAgICAgICAgICAgICAgICAgICAgICAgICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUoICRQYXJhbXsgJ1RpY2tldEZyZWVUaW1lJyAuICRfIH0gKSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnWWVhcicgfSAgID0gJFllYXI7CiAgICAgICAgICAgICAgICAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdNb250aCcgfSAgPSAkTW9udGg7CiAgICAgICAgICAgICAgICAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdEYXknIH0gICAgPSAkRGF5OwogICAgICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnSG91cicgfSAgID0gJEhvdXI7CiAgICAgICAgICAgICAgICAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdNaW51dGUnIH0gPSAkTWluOwoKICAgICAgICAgICAgICAgICMgc2V0IHRpbWUgc3RhbXAgdG8gTlVMTCBpZiBmaWVsZCBpcyBub3QgdXNlZC9jaGVja2VkCiAgICAgICAgICAgICAgICBpZiAoICEkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdVc2VkJyB9ICkgewogICAgICAgICAgICAgICAgICAgICRQYXJhbXsgJ1RpY2tldEZyZWVUaW1lJyAuICRfIC4gJ1llYXInIH0gICA9IDA7CiAgICAgICAgICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnTW9udGgnIH0gID0gMDsKICAgICAgICAgICAgICAgICAgICAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdEYXknIH0gICAgPSAwOwogICAgICAgICAgICAgICAgICAgICRQYXJhbXsgJ1RpY2tldEZyZWVUaW1lJyAuICRfIC4gJ0hvdXInIH0gICA9IDA7CiAgICAgICAgICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnTWludXRlJyB9ID0gMDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHNldCBmcmVlIHRpbWUKICAgICAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0RnJlZVRpbWVTZXQoCiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgIFByZWZpeCAgID0+ICdUaWNrZXRGcmVlVGltZScsCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBDb3VudGVyICA9PiAkXywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc2V0IGFydGljbGUgZnJlZSB0ZXh0CiAgICAgICAgZm9yIG15ICRDb3VudCAoIDEgLi4gMyApIHsKICAgICAgICAgICAgbXkgJEtleSAgPSAnQXJ0aWNsZUZyZWVLZXknIC4gJENvdW50OwogICAgICAgICAgICBteSAkVGV4dCA9ICdBcnRpY2xlRnJlZVRleHQnIC4gJENvdW50OwogICAgICAgICAgICBuZXh0IGlmICFkZWZpbmVkICRQYXJhbXskS2V5fTsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlRnJlZVRleHRTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICAgICAgS2V5ICAgICAgID0+ICRQYXJhbXskS2V5fSwKICAgICAgICAgICAgICAgIFZhbHVlICAgICA9PiAkUGFyYW17JFRleHR9LAogICAgICAgICAgICAgICAgQ291bnRlciAgID0+ICRDb3VudCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IHByaW9yaXR5CiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntQcmlvcml0eX0gJiYgJFBhcmFte1ByaW9yaXR5SUR9ICkgewogICAgICAgICAgICBpZiAoICRTZWxmLT57J0FQSTNYJ30gKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFByaW9yaXR5U2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eUlEID0+ICRQYXJhbXtQcmlvcml0eUlEfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+UHJpb3JpdHlTZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5SUQgPT4gJFBhcmFte1ByaW9yaXR5SUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNldCBzdGF0ZQogICAgICAgIGlmICggJFNlbGYtPntDb25maWd9LT57U3RhdGV9ICYmICRQYXJhbXtTdGF0ZUlEfSApIHsKICAgICAgICAgICAgaWYgKCAkU2VsZi0+eydBUEkzWCd9ICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTdGF0ZVNldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFN0YXRlSUQgID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlN0YXRlU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgU3RhdGVJRCAgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyB1bmxvY2sgdGhlIHRpY2tldCBhZnRlciBjbG9zZQogICAgICAgICAgICBteSAlU3RhdGVEYXRhID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT57U3RhdGVPYmplY3R9LT5TdGF0ZUdldCgKICAgICAgICAgICAgICAgIElEID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgc2V0IHVubG9jayBvbiBjbG9zZSBzdGF0ZQogICAgICAgICAgICBpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9eY2xvc2UvaSApIHsKICAgICAgICAgICAgICAgIGlmICggJFNlbGYtPnsnQVBJM1gnfSApIHsKICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5Mb2NrU2V0KAogICAgICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzZXQgcGVuZGluZyB0aW1lIG9uIHBlbmRpZyBzdGF0ZQogICAgICAgICAgICBlbHNpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9ecGVuZGluZy9pICkgewoKICAgICAgICAgICAgICAgICMgc2V0IHBlbmRpbmcgdGltZQogICAgICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRQZW5kaW5nVGltZVNldCgKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFN0cmluZyAgID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGVsc2UgewoKICAgICAgICAjIGZpbGx1cCBjb25maWd1cmVkIGRlZmF1bHQgdmFycwogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFte0JvZHl9ICYmICRTZWxmLT57Q29uZmlnfS0+e0JvZHl9ICkgewogICAgICAgICAgICAkUGFyYW17Qm9keX0gPSAkU2VsZi0+e0NvbmZpZ30tPntCb2R5fTsKICAgICAgICB9CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17U3ViamVjdH0gJiYgJFNlbGYtPntDb25maWd9LT57U3ViamVjdH0gKSB7CiAgICAgICAgICAgICRQYXJhbXtTdWJqZWN0fSA9ICRTZWxmLT57Q29uZmlnfS0+e1N1YmplY3R9LDsKICAgICAgICB9CgogICAgICAgICMgZ2V0IGZyZWUgdGV4dCBjb25maWcgb3B0aW9ucwogICAgICAgIG15ICVUaWNrZXRGcmVlVGV4dDsKICAgICAgICBmb3IgbXkgJENvdW50ICggMSAuLiAxNiApIHsKICAgICAgICAgICAgbXkgJEtleSAgPSAnVGlja2V0RnJlZUtleScgLiAkQ291bnQ7CiAgICAgICAgICAgIG15ICRUZXh0ID0gJ1RpY2tldEZyZWVUZXh0JyAuICRDb3VudDsKICAgICAgICAgICAgJFRpY2tldEZyZWVUZXh0eyRLZXl9ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRGcmVlVGV4dEdldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBUeXBlICAgICA9PiAkS2V5LAogICAgICAgICAgICAgICAgQWN0aW9uICAgPT4gJFBhcmFte0FjdGlvbn0sCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFRpY2tldEZyZWVUZXh0eyRUZXh0fSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0RnJlZVRleHRHZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVHlwZSAgICAgPT4gJFRleHQsCiAgICAgICAgICAgICAgICBBY3Rpb24gICA9PiAkUGFyYW17QWN0aW9ufSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyB0aWNrZXQgZnJlZSB0aW1lCgogICAgICAgICMgZ2V0IGRlZmF1bHQgc2VsZWN0aW9ucwogICAgICAgIG15ICVBcnRpY2xlRnJlZURlZmF1bHQ7CiAgICAgICAgZm9yIG15ICRDb3VudCAoIDEgLi4gMyApIHsKICAgICAgICAgICAgbXkgJEtleSAgPSAnQXJ0aWNsZUZyZWVLZXknIC4gJENvdW50OwogICAgICAgICAgICBteSAkVGV4dCA9ICdBcnRpY2xlRnJlZVRleHQnIC4gJENvdW50OwogICAgICAgICAgICAkQXJ0aWNsZUZyZWVEZWZhdWx0eyRLZXl9ID0gJFBhcmFteyRLZXl9CiAgICAgICAgICAgICAgICB8fCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCggJEtleSAuICc6OkRlZmF1bHRTZWxlY3Rpb24nICk7CiAgICAgICAgICAgICRBcnRpY2xlRnJlZURlZmF1bHR7JFRleHR9ID0gJFBhcmFteyRUZXh0fQogICAgICAgICAgICAgICAgfHwgJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoICRUZXh0IC4gJzo6RGVmYXVsdFNlbGVjdGlvbicgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IGFydGljbGUgZnJlZSB0ZXh0IGNvbmZpZyBvcHRpb25zCiAgICAgICAgbXkgJUFydGljbGVGcmVlVGV4dDsKICAgICAgICBmb3IgbXkgJENvdW50ICggMSAuLiAzICkgewogICAgICAgICAgICBteSAkS2V5ICA9ICdBcnRpY2xlRnJlZUtleScgLiAkQ291bnQ7CiAgICAgICAgICAgIG15ICRUZXh0ID0gJ0FydGljbGVGcmVlVGV4dCcgLiAkQ291bnQ7CiAgICAgICAgICAgICRBcnRpY2xlRnJlZVRleHR7JEtleX0gPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVGcmVlVGV4dEdldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBUeXBlICAgICA9PiAkS2V5LAogICAgICAgICAgICAgICAgQWN0aW9uICAgPT4gJFBhcmFte0FjdGlvbn0sCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJEFydGljbGVGcmVlVGV4dHskVGV4dH0gPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVGcmVlVGV4dEdldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBUeXBlICAgICA9PiAkVGV4dCwKICAgICAgICAgICAgICAgIEFjdGlvbiAgID0+ICRQYXJhbXtBY3Rpb259LAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIG15ICRyZXN1bHQgPSAkU2VsZi0+X1RpY2tldENvbW1vbkFjdGlvbnMoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgRGVmYXVsdHMgPT4gMSwKICAgICAgICApOwogICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgfQogICAgcmV0dXJuICRBcnRpY2xlSUQ7Cn0KCnN1YiBfVGlja2V0Q29tcG9zZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT57Q29uZmlnfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENvbXBvc2UnKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1RpY2tldElEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05vIFRpY2tldElEIGlzIGdpdmVuISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzOwogICAgaWYgKCAkU2VsZi0+eydBUEkzWCd9ICkgewogICAgICAgICRBY2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJEFjY2VzcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+UGVybWlzc2lvbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBlcnJvciBzY3JlZW4sIGRvbid0IHNob3cgdGlja2V0CiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiWW91IG5lZWQgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gcGVybWlzc2lvbnMhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIG15ICVUaWNrZXQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEdldCggVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSApOwoKICAgICMgZ2V0IGxvY2sgc3RhdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57UmVxdWlyZWRMb2NrfSApIHsKICAgICAgICBteSAkTG9ja2VkOwogICAgICAgIGlmICggJFNlbGYtPnsnQVBJM1gnfSApIHsKICAgICAgICAgICAgJExvY2tlZCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja0dldCggVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJVRpY2tldERhdGEgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEdldCggVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSApOwogICAgICAgICAgICBpZiAoICRUaWNrZXREYXRhe0xvY2t9IGVxICdsb2NrJyApIHsKICAgICAgICAgICAgICAgICRMb2NrZWQgPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICggISRMb2NrZWQgKSB7CiAgICAgICAgICAgIG15ICRTdWNjZXNzOwogICAgICAgICAgICBpZiAoICRTZWxmLT57J0FQSTNYJ30gKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAnbG9jaycsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRTdWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+TG9ja1NldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICdsb2NrJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPk93bmVyU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBteSAkQWNjZXNzT2sgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPk93bmVyQ2hlY2soCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgT3duZXJJRCAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggISRBY2Nlc3NPayApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlNvcnJ5LCB5b3UgbmVlZCB0byBiZSB0aGUgb3duZXIgdG8gZG8gdGhpcyBhY3Rpb24hICIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiUGxlYXNlIGNoYW5nZSB0aGUgb3duZXIgZmlyc3QuIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyB0cmFuc2Zvcm0gcGVuZGluZyB0aW1lLCB0aW1lIHN0YW1wIGJhc2VkIG9uIHVzZXIgdGltZSB6b25lCiAgICBpZiAoIGRlZmluZWQgJFBhcmFte1BlbmRpbmdEYXRlfSApIHsKICAgICAgICAkUGFyYW17UGVuZGluZ0RhdGV9ID0gJFNlbGYtPl9UcmFuc2Zyb21EYXRlU2VsZWN0aW9uKAogICAgICAgICAgICBUaW1lU3RhbXAgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSwKICAgICAgICApOwogICAgfQoKICAgICMgdHJhbnNmb3JtIGZyZWUgdGltZSwgdGltZSBzdGFtcCBiYXNlZCBvbiB1c2VyIHRpbWUgem9uZQogICAgZm9yIG15ICRDb3VudCAoIDEgLi4gNiApIHsKICAgICAgICBteSAkUHJlZml4ID0gJ1RpY2tldEZyZWVUaW1lJyAuICRDb3VudDsKICAgICAgICBuZXh0IGlmICFkZWZpbmVkICRQYXJhbXskUHJlZml4fTsKICAgICAgICAkUGFyYW17JFByZWZpeH0gPSAkU2VsZi0+X1RyYW5zZnJvbURhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgIFRpbWVTdGFtcCA9PiAkUGFyYW17JFByZWZpeH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNlbmQgZW1haWwKCiAgICBteSAlU3RhdGVEYXRhID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT57U3RhdGVPYmplY3R9LT5TdGF0ZUdldCgKICAgICAgICBJRCA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICApOwoKICAgICMgY2hlY2sgcGVuZGluZyBkYXRlCiAgICBpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ICYmICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9ecGVuZGluZy9pICkgewogICAgICAgIGlmICggISRTZWxmLT57VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSApICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnRGF0ZSBpbnZhbGlkJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSApCiAgICAgICAgICAgIDwgJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdEYXRlIGludmFsaWQnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgcmVxdWlyZWQgRnJlZVRleHRGaWVsZCAoaWYgY29uZmlndXJlZCkKICAgIGZvciAoIDEgLi4gMTYgKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e0NvbmZpZ30tPntUaWNrZXRGcmVlVGV4dH0tPnskX30gPT0gMgogICAgICAgICAgICAmJiAkUGFyYW17IlRpY2tldEZyZWVUZXh0JF8ifSBlcSAnJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGlja2V0RnJlZVRleHRGaWVsZCRfIGludmFsaWQiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgc29tZSB2YWx1ZXMKICAgIGZvciBteSAkTGluZSAocXcoRnJvbSBUbyBDYyBCY2MpKSB7CiAgICAgICAgbmV4dCBpZiAhJFBhcmFteyRMaW5lfTsKICAgICAgICBmb3IgbXkgJEVtYWlsICggTWFpbDo6QWRkcmVzcy0+cGFyc2UoICRQYXJhbXskTGluZX0gKSApIHsKICAgICAgICAgICAgaWYgKCAhJFNlbGYtPntDaGVja0l0ZW1PYmplY3R9LT5DaGVja0VtYWlsKCBBZGRyZXNzID0+ICRFbWFpbC0+YWRkcmVzcygpICkgKSB7CiAgICAgICAgICAgICAgICBteSAkU2VydmVyRXJyb3IgPSAkU2VsZi0+e0NoZWNrSXRlbU9iamVjdH0tPkNoZWNrRXJyb3IoKTsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIG9uIGZpZWxkIFwiJExpbmVcIiBcbiAkU2VydmVyRXJyb3IiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHJlcGxhY2UgPE9UUlNfVElDS0VUX1NUQVRFPiB3aXRoIG5leHQgdGlja2V0IHN0YXRlIG5hbWUKICAgIGlmICggJFN0YXRlRGF0YXtOYW1lfSApIHsKICAgICAgICAkUGFyYW17Qm9keX0gPX4gcy88T1RSU19USUNLRVRfU1RBVEU+LyRTdGF0ZURhdGF7TmFtZX0vZzsKICAgICAgICAkUGFyYW17Qm9keX0gPX4gcy8mbHQ7T1RSU19USUNLRVRfU1RBVEUmZ3Q7LyRTdGF0ZURhdGF7TmFtZX0vZzsKICAgIH0KCiAgICAjIGdldCByZWNpcGllbnRzCiAgICBteSAkUmVjaXBpZW50cyA9ICcnOwogICAgZm9yIG15ICRMaW5lIChxdyhUbyBDYyBCY2MpKSB7CiAgICAgICAgaWYgKCAkUGFyYW17JExpbmV9ICkgewogICAgICAgICAgICBpZiAoJFJlY2lwaWVudHMpIHsKICAgICAgICAgICAgICAgICRSZWNpcGllbnRzIC49ICcsJzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkUmVjaXBpZW50cyAuPSAkUGFyYW17JExpbmV9OwogICAgICAgIH0KICAgIH0KCiAgICBteSAkTWltZVR5cGUgPSAndGV4dC9wbGFpbic7CgogICAgIyBzZW5kIGVtYWlsCiAgICBteSAkQXJ0aWNsZUlEID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlU2VuZCgKICAgICAgICBBcnRpY2xlVHlwZSAgICA9PiAnZW1haWwtZXh0ZXJuYWwnLAogICAgICAgIFNlbmRlclR5cGUgICAgID0+ICdhZ2VudCcsCiAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBIaXN0b3J5VHlwZSAgICA9PiAnU2VuZEFuc3dlcicsCiAgICAgICAgSGlzdG9yeUNvbW1lbnQgPT4gIlwlXCUkUmVjaXBpZW50cyIsCiAgICAgICAgRnJvbSAgICAgICAgICAgPT4gJFBhcmFte0Zyb219LAogICAgICAgIFRvICAgICAgICAgICAgID0+ICRQYXJhbXtUb30sCiAgICAgICAgQ2MgICAgICAgICAgICAgPT4gJFBhcmFte0NjfSwKICAgICAgICBCY2MgICAgICAgICAgICA9PiAkUGFyYW17QmNjfSwKICAgICAgICBTdWJqZWN0ICAgICAgICA9PiAkUGFyYW17U3ViamVjdH0sCiAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgQm9keSAgICAgICAgICAgPT4gJFBhcmFte0JvZHl9LAogICAgICAgIEluUmVwbHlUbyAgICAgID0+ICRQYXJhbXtJblJlcGx5VG99LAogICAgICAgIFJlZmVyZW5jZXMgICAgID0+ICRQYXJhbXtSZWZlcmVuY2VzfSwKICAgICAgICBDaGFyc2V0ICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRGVmYXVsdENoYXJzZXQnKSwKICAgICAgICBNaW1lVHlwZSAgICAgICA9PiAkTWltZVR5cGUsCiAgICApOwoKICAgICMgZXJyb3IgcGFnZQogICAgaWYgKCAhJEFydGljbGVJRCApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0Vycm9yIG5vIEFydGljbGUgY3JlYXRlZCEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHRpbWUgYWNjb3VudGluZwogICAgaWYgKCAkUGFyYW17VGltZVVuaXRzfSApIHsKICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEFjY291bnRUaW1lKAogICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlSUQsCiAgICAgICAgICAgIFRpbWVVbml0ICA9PiAkUGFyYW17VGltZVVuaXRzfSwKICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgdGlja2V0IGZyZWUgdGV4dAogICAgZm9yIG15ICRDb3VudCAoIDEgLi4gMTYgKSB7CiAgICAgICAgbXkgJEtleSAgPSAnVGlja2V0RnJlZUtleScgLiAkQ291bnQ7CiAgICAgICAgbXkgJFRleHQgPSAnVGlja2V0RnJlZVRleHQnIC4gJENvdW50OwogICAgICAgIGlmICggZGVmaW5lZCAkUGFyYW17JEtleX0gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0RnJlZVRleHRTZXQoCiAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAkUGFyYW17JEtleX0sCiAgICAgICAgICAgICAgICBWYWx1ZSAgICA9PiAkUGFyYW17JFRleHR9LAogICAgICAgICAgICAgICAgQ291bnRlciAgPT4gJENvdW50LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCB0aWNrZXQgZnJlZSB0aW1lCiAgICBmb3IgKCAxIC4uIDYgKSB7CgogICAgICAgIGlmICggJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gfSApIHsKICAgICAgICAgICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciwgJFdlZWtEYXkgKSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4KICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyB9ICksCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdZZWFyJyB9ICAgPSAkWWVhcjsKICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnTW9udGgnIH0gID0gJE1vbnRoOwogICAgICAgICAgICAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdEYXknIH0gICAgPSAkRGF5OwogICAgICAgICAgICAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdIb3VyJyB9ICAgPSAkSG91cjsKICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnTWludXRlJyB9ID0gJE1pbjsKCiAgICAgICAgICAgICMgc2V0IHRpbWUgc3RhbXAgdG8gTlVMTCBpZiBmaWVsZCBpcyBub3QgdXNlZC9jaGVja2VkCiAgICAgICAgICAgIGlmICggISRQYXJhbXsgJ1RpY2tldEZyZWVUaW1lJyAuICRfIC4gJ1VzZWQnIH0gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdZZWFyJyB9ICAgPSAwOwogICAgICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnTW9udGgnIH0gID0gMDsKICAgICAgICAgICAgICAgICRQYXJhbXsgJ1RpY2tldEZyZWVUaW1lJyAuICRfIC4gJ0RheScgfSAgICA9IDA7CiAgICAgICAgICAgICAgICAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdIb3VyJyB9ICAgPSAwOwogICAgICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnTWludXRlJyB9ID0gMDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzZXQgZnJlZSB0aW1lCiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0RnJlZVRpbWVTZXQoCiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICBQcmVmaXggICA9PiAnVGlja2V0RnJlZVRpbWUnLAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIENvdW50ZXIgID0+ICRfLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGFydGljbGUgZnJlZSB0ZXh0CiAgICBmb3IgbXkgJENvdW50ICggMSAuLiAzICkgewogICAgICAgIG15ICRLZXkgID0gJ0FydGljbGVGcmVlS2V5JyAuICRDb3VudDsKICAgICAgICBteSAkVGV4dCA9ICdBcnRpY2xlRnJlZVRleHQnIC4gJENvdW50OwogICAgICAgIGlmICggZGVmaW5lZCAkUGFyYW17JEtleX0gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUZyZWVUZXh0U2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlSUQsCiAgICAgICAgICAgICAgICBLZXkgICAgICAgPT4gJFBhcmFteyRLZXl9LAogICAgICAgICAgICAgICAgVmFsdWUgICAgID0+ICRQYXJhbXskVGV4dH0sCiAgICAgICAgICAgICAgICBDb3VudGVyICAgPT4gJENvdW50LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgc3RhdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57U3RhdGV9ICYmICRQYXJhbXtTdGF0ZUlEfSApIHsKICAgICAgICBpZiAoICRTZWxmLT57J0FQSTNYJ30gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U3RhdGVTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgU3RhdGVJRCAgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlN0YXRlU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFN0YXRlSUQgID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNob3VsZCBJIHNldCBhbiB1bmxvY2s/CiAgICBpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9eY2xvc2UvaSApIHsKICAgICAgICBpZiAoICRTZWxmLT57J0FQSTNYJ30gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5Mb2NrU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IHBlbmRpbmcgdGltZQogICAgZWxzaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXnBlbmRpbmcvaSApIHsKICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFBlbmRpbmdUaW1lU2V0KAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgU3RyaW5nICAgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSwKICAgICAgICApOwogICAgfQoKICAgICMgbG9nIHVzZSByZXNwb25zZSBpZCBhbmQgcmVwbHkgYXJ0aWNsZSBpZCAodXNlZnVsIGZvciByZXNwb25zZSBkaWFnbm9zdGljcykKICAgIG15ICRIaXN0b3J5TmFtZTsKICAgIGlmICggJFBhcmFte1JlcGx5QXJ0aWNsZUlEfSApIHsKICAgICAgICAkSGlzdG9yeU5hbWUgPSAiUmVzcG9uc2UgZnJvbSBpUGhvbmUgLyRQYXJhbXtSZXBseUFydGljbGVJRH0vJEFydGljbGVJRCkiOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJEhpc3RvcnlOYW1lID0gIlJlc3BvbnNlIGZyb20gaVBob25lIC8kQXJ0aWNsZUlEKSIKICAgIH0KICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+SGlzdG9yeUFkZCgKICAgICAgICBOYW1lICAgICAgICAgPT4gJEhpc3RvcnlOYW1lLAogICAgICAgIEhpc3RvcnlUeXBlICA9PiAnTWlzYycsCiAgICAgICAgVGlja2V0SUQgICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgQ3JlYXRlVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKICAgIHJldHVybiAkQXJ0aWNsZUlEOwp9CgpzdWIgX1RpY2tldE1vdmUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIChxdyhUaWNrZXRJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JF99ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gJF8gaXMgZ2l2ZW4hIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4iLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICRTZWxmLT57Q29uZmlnfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUnKTsKCiAgICAjIGNoZWNrIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzOwogICAgaWYgKCAkU2VsZi0+eydBUEkzWCd9ICkgewogICAgICAgICRBY2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdtb3ZlJywKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJEFjY2VzcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+UGVybWlzc2lvbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ21vdmUnLAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfQogICAgICAgICk7CiAgICB9CgogICAgIyBlcnJvciBzY3JlZW4sIGRvbid0IHNob3cgdGlja2V0CiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiWW91IG5lZWQgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gcGVybWlzc2lvbnMhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBsb2NrIHN0YXRlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1JlcXVpcmVkTG9ja30gKSB7CiAgICAgICAgbXkgJExvY2tlZDsKICAgICAgICBpZiAoICRTZWxmLT57J0FQSTNYJ30gKSB7CiAgICAgICAgICAgICRMb2NrZWQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tHZXQoIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0gKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG15ICVUaWNrZXREYXRhID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRHZXQoIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0gKTsKICAgICAgICAgICAgaWYgKCAkVGlja2V0RGF0YXtMb2NrfSBlcSAnbG9jaycgKSB7CiAgICAgICAgICAgICAgICAkTG9ja2VkID0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoICEkTG9ja2VkICkgewogICAgICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICAgICAgaWYgKCAkU2VsZi0+eydBUEkzWCd9ICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkU3VjY2VzcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkxvY2tTZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAnbG9jaycsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRTdWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5Pd25lclNldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJEFjY2Vzc09rID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5Pd25lckNoZWNrKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIE93bmVySUQgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkQWNjZXNzT2sgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJTb3JyeSwgeW91IG5lZWQgdG8gYmUgdGhlIG93bmVyIHRvIGRvIHRoaXMgYWN0aW9uISAiCiAgICAgICAgICAgICAgICAgICAgICAgIC4gIlBsZWFzZSBjaGFuZ2UgdGhlIG93bmVyIGZpcnN0LiIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgdGlja2V0IGF0dHJpYnV0ZXMKICAgIG15ICVUaWNrZXQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEdldCggVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSApOwoKICAgICMgdHJhbnNmb3JtIHBlbmRpbmcgdGltZSwgdGltZSBzdGFtcCBiYXNlZCBvbiB1c2VyIHRpbWUgem9uZQogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtQZW5kaW5nRGF0ZX0gKSB7CiAgICAgICAgJFBhcmFte1BlbmRpbmdEYXRlfSA9ICRTZWxmLT5fVHJhbnNmcm9tRGF0ZVNlbGVjdGlvbigKICAgICAgICAgICAgVGltZVN0YW1wID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHRyYW5zZm9ybSBmcmVlIHRpbWUsIHRpbWUgc3RhbXAgYmFzZWQgb24gdXNlciB0aW1lIHpvbmUKICAgIGZvciBteSAkQ291bnQgKCAxIC4uIDYgKSB7CiAgICAgICAgbXkgJFByZWZpeCA9ICdUaWNrZXRGcmVlVGltZScgLiAkQ291bnQ7CiAgICAgICAgbmV4dCBpZiAhZGVmaW5lZCAkUGFyYW17JFByZWZpeH07CiAgICAgICAgJFBhcmFteyRQcmVmaXh9ID0gJFNlbGYtPl9UcmFuc2Zyb21EYXRlU2VsZWN0aW9uKAogICAgICAgICAgICBUaW1lU3RhbXAgPT4gJFBhcmFteyRQcmVmaXh9LAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayByZXF1aXJlZCBGcmVlVGV4dEZpZWxkIChpZiBjb25maWd1cmVkKQogICAgZm9yICggMSAuLiAxNiApIHsKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57Q29uZmlnfS0+eydUaWNrZXRGcmVlVGV4dCd9LT57JF99ID09IDIKICAgICAgICAgICAgJiYgJFBhcmFteyJUaWNrZXRGcmVlVGV4dCRfIn0gZXEgJycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRpY2tldEZyZWVUZXh0RmllbGQkXyBpbnZhbGlkIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIERlc3RRdWV1ZUlEIGxvb2t1cAogICAgaWYgKCAhJFBhcmFte1F1ZXVlSUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gUXVldWVJRCBpcyBnaXZlbiEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluLiIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCAkUGFyYW17T3duZXJJRH0gKSB7CiAgICAgICAgJFBhcmFte05ld1VzZXJJRH0gPSAkUGFyYW17T3duZXJJRH07CiAgICB9CgogICAgIyBtb3ZlIHRpY2tldCAoc2VuZCBub3RpZmljYXRpb24gb2Ygbm8gbmV3IG93bmVyIGlzIHNlbGVjdGVkKQogICAgbXkgJEJvZHlBc1RleHQgPSAkUGFyYW17Qm9keX0gfHwgMDsKICAgIG15ICRNb3ZlOwogICAgaWYgKCAkU2VsZi0+eydBUEkzWCd9ICkgewogICAgICAgICRNb3ZlID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRRdWV1ZVNldCgKICAgICAgICAgICAgUXVldWVJRCAgICAgICAgICAgID0+ICRQYXJhbXtRdWV1ZUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgU2VuZE5vTm90aWZpY2F0aW9uID0+ICRQYXJhbXtOZXdVc2VySUR9LAogICAgICAgICAgICBDb21tZW50ICAgICAgICAgICAgPT4gJEJvZHlBc1RleHQsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRNb3ZlID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5Nb3ZlVGlja2V0KAogICAgICAgICAgICBRdWV1ZUlEICAgICAgICAgICAgPT4gJFBhcmFte1F1ZXVlSUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBTZW5kTm9Ob3RpZmljYXRpb24gPT4gJFBhcmFte05ld1VzZXJJRH0sCiAgICAgICAgICAgIENvbW1lbnQgICAgICAgICAgICA9PiAkQm9keUFzVGV4dCwKICAgICAgICApOwogICAgfQogICAgaWYgKCAhJE1vdmUgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvcjogdGlja2V0IG5vdCBtb3ZlZCEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluLiIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgcHJpb3JpdHkKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57UHJpb3JpdHl9ICYmICRQYXJhbXtQcmlvcml0eUlEfSApIHsKICAgICAgICBpZiAoICRTZWxmLT57J0FQSTNYJ30gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UHJpb3JpdHlTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBQcmlvcml0eUlEID0+ICRQYXJhbXtQcmlvcml0eUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlByaW9yaXR5U2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgUHJpb3JpdHlJRCA9PiAkUGFyYW17UHJpb3JpdHlJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCBzdGF0ZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntTdGF0ZX0gJiYgJFBhcmFte1N0YXRlSUR9ICkgewoKICAgICAgICBpZiAoICRTZWxmLT57J0FQSTNYJ30gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U3RhdGVTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgU3RhdGVJRCAgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlN0YXRlU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFN0YXRlSUQgID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyB1bmxvY2sgdGhlIHRpY2tldCBhZnRlciBjbG9zZQogICAgICAgIG15ICVTdGF0ZURhdGEgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPntTdGF0ZU9iamVjdH0tPlN0YXRlR2V0KAogICAgICAgICAgICBJRCA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzZXQgdW5sb2NrIG9uIGNsb3NlIHN0YXRlCiAgICAgICAgaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXmNsb3NlL2kgKSB7CiAgICAgICAgICAgIGlmICggJFNlbGYtPnsnQVBJM1gnfSApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+TG9ja1NldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIG5ldyB1c2VyIGlzIGdpdmVuIGFuZCBzZW5kIG5vdGlmaWNhdGlvbgogICAgaWYgKCAkUGFyYW17TmV3VXNlcklEfSApIHsKICAgICAgICBpZiAoICRTZWxmLT57J0FQSTNYJ30gKSB7CgogICAgICAgICAgICAjIGxvY2sKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICdsb2NrJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzZXQgb3duZXIKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtOZXdVc2VySUR9LAogICAgICAgICAgICAgICAgQ29tbWVudCAgID0+ICRCb2R5QXNUZXh0LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgbG9jawogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkxvY2tTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNldCBvd25lcgogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPk93bmVyU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte05ld1VzZXJJRH0sCiAgICAgICAgICAgICAgICBDb21tZW50ICAgPT4gJEJvZHlBc1RleHQsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgZm9yY2UgdW5sb2NrIGlmIG5vIG5ldyBvd25lciBpcyBzZXQgYW5kIHRpY2tldCB3YXMgdW5sb2NrZWQKICAgIGVsc2UgewogICAgICAgIGlmICggJFNlbGYtPntUaWNrZXRVbmxvY2t9ICkgewogICAgICAgICAgICBpZiAoICRTZWxmLT57J0FQSTNYJ30gKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkxvY2tTZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBhZGQgbm90ZSAoc2VuZCBubyBub3RpZmljYXRpb24pCiAgICBteSAkQXJ0aWNsZUlEOwoKICAgIGlmICggJFBhcmFte0JvZHl9ICkgewoKICAgICAgICBteSAkTWltZVR5cGUgPSAndGV4dC9wbGFpbic7CgogICAgICAgIG15ICVVc2VyRGF0YSA9ICRTZWxmLT57VXNlck9iamVjdH0tPkdldFVzZXJEYXRhKCBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0gKTsKCiAgICAgICAgJEFydGljbGVJRCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUNyZWF0ZSgKICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgPT4gJ25vdGUtaW50ZXJuYWwnLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICA9PiAnYWdlbnQnLAogICAgICAgICAgICBGcm9tICAgICAgICAgICA9PiAiJFVzZXJEYXRhe1VzZXJGaXJzdG5hbWV9ICRVc2VyRGF0YXtVc2VyTGFzdG5hbWV9IDwkVXNlckRhdGF7VXNlckVtYWlsfT4iLAogICAgICAgICAgICBTdWJqZWN0ICAgICAgICA9PiAkUGFyYW17U3ViamVjdH0sCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgID0+ICRQYXJhbXtCb2R5fSwKICAgICAgICAgICAgTWltZVR5cGUgICAgICAgPT4gJE1pbWVUeXBlLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRGVmYXVsdENoYXJzZXQnKSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICdBZGROb3RlJywKICAgICAgICAgICAgSGlzdG9yeUNvbW1lbnQgPT4gJyUlTW92ZScsCiAgICAgICAgICAgIE5vQWdlbnROb3RpZnkgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJEFydGljbGVJRCApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yOiBDYW4ndCBjcmVhdGUgYW4gYXJ0aWNsZSBmb3IgdGhlIG1vdmVkIHRpY2tldCIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgdGlja2V0IGZyZWUgdGV4dAogICAgZm9yIG15ICRDb3VudCAoIDEgLi4gMTYgKSB7CiAgICAgICAgbXkgJEtleSAgPSAnVGlja2V0RnJlZUtleScgLiAkQ291bnQ7CiAgICAgICAgbXkgJFRleHQgPSAnVGlja2V0RnJlZVRleHQnIC4gJENvdW50OwogICAgICAgIGlmICggZGVmaW5lZCAkUGFyYW17JEtleX0gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0RnJlZVRleHRTZXQoCiAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAkUGFyYW17JEtleX0sCiAgICAgICAgICAgICAgICBWYWx1ZSAgICA9PiAkUGFyYW17JFRleHR9LAogICAgICAgICAgICAgICAgQ291bnRlciAgPT4gJENvdW50LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCB0aWNrZXQgZnJlZSB0aW1lCiAgICBmb3IgKCAxIC4uIDYgKSB7CgogICAgICAgIGlmICggJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gfSApIHsKICAgICAgICAgICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciwgJFdlZWtEYXkgKSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4KICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyB9ICksCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdZZWFyJyB9ICAgPSAkWWVhcjsKICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnTW9udGgnIH0gID0gJE1vbnRoOwogICAgICAgICAgICAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdEYXknIH0gICAgPSAkRGF5OwogICAgICAgICAgICAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdIb3VyJyB9ICAgPSAkSG91cjsKICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnTWludXRlJyB9ID0gJE1pbjsKCiAgICAgICAgICAgICMgc2V0IHRpbWUgc3RhbXAgdG8gTlVMTCBpZiBmaWVsZCBpcyBub3QgdXNlZC9jaGVja2VkCiAgICAgICAgICAgIGlmICggISRQYXJhbXsgJ1RpY2tldEZyZWVUaW1lJyAuICRfIC4gJ1VzZWQnIH0gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdZZWFyJyB9ICAgPSAwOwogICAgICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnTW9udGgnIH0gID0gMDsKICAgICAgICAgICAgICAgICRQYXJhbXsgJ1RpY2tldEZyZWVUaW1lJyAuICRfIC4gJ0RheScgfSAgICA9IDA7CiAgICAgICAgICAgICAgICAkUGFyYW17ICdUaWNrZXRGcmVlVGltZScgLiAkXyAuICdIb3VyJyB9ICAgPSAwOwogICAgICAgICAgICAgICAgJFBhcmFteyAnVGlja2V0RnJlZVRpbWUnIC4gJF8gLiAnTWludXRlJyB9ID0gMDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzZXQgZnJlZSB0aW1lCiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0RnJlZVRpbWVTZXQoCiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICBQcmVmaXggICA9PiAnVGlja2V0RnJlZVRpbWUnLAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIENvdW50ZXIgID0+ICRfLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgdGltZSBhY2NvdW50aW5nCiAgICBpZiAoICRQYXJhbXtUaW1lVW5pdHN9ICkgewogICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0QWNjb3VudFRpbWUoCiAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVJRCwKICAgICAgICAgICAgVGltZVVuaXQgID0+ICRQYXJhbXtUaW1lVW5pdHN9LAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoJEFydGljbGVJRCkgewogICAgICAgIHJldHVybiAkQXJ0aWNsZUlEOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgaWYgKCRNb3ZlKSB7CiAgICAgICAgICAgIHJldHVybiAkUGFyYW17UXVldWVJRH07CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIC0xOwoKfQoKc3ViIF9HZXRDb21wb3NlRGVmYXVsdHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VGlja2V0SUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTm8gVGlja2V0SUQgZ2l2ZW4hIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICVDb21wb3NlRGF0YTsKCiAgICAjIGdldCBsYXN0IGN1c3RvbWVyIGFydGljbGUgb3Igc2VsZWN0ZWQgYXJ0aWNsZSAuLi4KICAgIG15ICVEYXRhOwogICAgaWYgKCAkUGFyYW17QXJ0aWNsZUlEfSApIHsKICAgICAgICAlRGF0YSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUdldCggQXJ0aWNsZUlEID0+ICRQYXJhbXtBcnRpY2xlSUR9ICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAlRGF0YSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUxhc3RDdXN0b21lckFydGljbGUoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIGFydGljbGUgdHlwZSBhbmQgcmVwbGFjZSBUbyB3aXRoIEZyb20gKGluIGNhc2UpCiAgICBpZiAoICREYXRhe1NlbmRlclR5cGV9ICF+IC9jdXN0b21lci8gKSB7CiAgICAgICAgbXkgJFRvICAgPSAkRGF0YXtUb307CiAgICAgICAgbXkgJEZyb20gPSAkRGF0YXtGcm9tfTsKCiAgICAgICAgIyBzZXQgT3JpZ0Zyb20gZm9yIGNvcnJlY3QgZW1haWwgcXVvdGVpbmcgKHh4eHggd3JvdGUpCiAgICAgICAgJERhdGF7T3JpZ0Zyb219ID0gJERhdGF7RnJvbX07CgogICAgICAgICMgcmVwbGFjZSBGcm9tL1RvLCBUby9Gcm9tIGJlY2F1c2Ugc2VuZGVyIGlzIGFnZW50CiAgICAgICAgJERhdGF7RnJvbX0gICAgPSAkVG87CiAgICAgICAgJERhdGF7VG99ICAgICAgPSAkRGF0YXtGcm9tfTsKICAgICAgICAkRGF0YXtSZXBseVRvfSA9ICcnOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgc2V0IE9yaWdGcm9tIGZvciBjb3JyZWN0IGVtYWlsIHF1b3RlaW5nICh4eHh4IHdyb3RlKQogICAgICAgICREYXRhe09yaWdGcm9tfSA9ICREYXRhe0Zyb219OwogICAgfQoKICAgICMgYnVpbGQgT3JpZ0Zyb21OYW1lICh0byBvbmx5IHVzZSB0aGUgcmVhbG5hbWUpCiAgICAkRGF0YXtPcmlnRnJvbU5hbWV9ID0gJERhdGF7T3JpZ0Zyb219OwogICAgJERhdGF7T3JpZ0Zyb21OYW1lfSA9fiBzLzwuKj58XCguKlwpfFwifDt8LC8vZzsKICAgICREYXRhe09yaWdGcm9tTmFtZX0gPX4gcy8oICQpfCggICQpLy9nOwoKICAgIG15ICVUaWNrZXQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEdldCgKICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBjdXN0b21lciBkYXRhCiAgICBteSAlQ3VzdG9tZXI7CiAgICBpZiAoICRUaWNrZXR7Q3VzdG9tZXJVc2VySUR9ICkgewogICAgICAgICVDdXN0b21lciA9ICRTZWxmLT57Q3VzdG9tZXJVc2VyT2JqZWN0fS0+Q3VzdG9tZXJVc2VyRGF0YUdldCgKICAgICAgICAgICAgVXNlciA9PiAkVGlja2V0e0N1c3RvbWVyVXNlcklEfQogICAgICAgICk7CiAgICB9CgogICAgIyBwcmVwYXJlIGJvZHksIHN1YmplY3QsIFJlcGx5VG8gLi4uCiAgICAjIHJld3JhcCBib2R5IGlmIGV4aXN0cwogICAgaWYgKCAkRGF0YXtCb2R5fSApIHsKICAgICAgICAkRGF0YXtCb2R5fSA9fiBzL1x0LyAvZzsKICAgICAgICBteSAkUXVvdGUgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6UXVvdGUnKTsKICAgICAgICBpZiAoJFF1b3RlKSB7CiAgICAgICAgICAgICREYXRhe0JvZHl9ID1+IHMvXG4vXG4kUXVvdGUgL2c7CiAgICAgICAgICAgICREYXRhe0JvZHl9ID0gIlxuJFF1b3RlICIgLiAkRGF0YXtCb2R5fTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICREYXRhe0JvZHl9ID0gIlxuIiAuICREYXRhe0JvZHl9OwogICAgICAgICAgICBpZiAoICREYXRhe0NyZWF0ZWR9ICkgewogICAgICAgICAgICAgICAgJERhdGF7Qm9keX0gPSAiRGF0ZTogJERhdGF7Q3JlYXRlZH1cbiIgLiAkRGF0YXtCb2R5fTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgKHF3KFN1YmplY3QgUmVwbHlUbyBSZXBseS1UbyBDYyBUbyBGcm9tKSkgewogICAgICAgICAgICAgICAgaWYgKCAkRGF0YXskX30gKSB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7Qm9keX0gPSAiJF86ICREYXRheyRffVxuIiAuICREYXRhe0JvZHl9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICREYXRhe0JvZHl9ID0gIlxuLS0tLSBNZXNzYWdlIGZyb20gJERhdGF7RnJvbX0gLS0tXG5cbiIgLiAkRGF0YXtCb2R5fTsKICAgICAgICAgICAgJERhdGF7Qm9keX0gLj0gIlxuLS0tLSBFbmQgTWVzc2FnZSAtLS1cbiI7CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgaWYgQ2MgcmVjaXBpZW50cyBzaG91bGQgYmUgdXNlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6Q29tcG9zZUV4Y2x1ZGVDY1JlY2lwaWVudHMnKSApIHsKICAgICAgICAkRGF0YXtDY30gPSAnJzsKICAgIH0KCiAgICAjIGFkZCBub3QgbG9jYWwgVG8gYWRkcmVzc2VzIHRvIENjCiAgICBmb3IgbXkgJEVtYWlsICggTWFpbDo6QWRkcmVzcy0+cGFyc2UoICREYXRhe1RvfSApICkgewogICAgICAgIG15ICRJc0xvY2FsID0gJFNlbGYtPntTeXN0ZW1BZGRyZXNzfS0+U3lzdGVtQWRkcmVzc0lzTG9jYWxBZGRyZXNzKAogICAgICAgICAgICBBZGRyZXNzID0+ICRFbWFpbC0+YWRkcmVzcygpLAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJElzTG9jYWwgKSB7CiAgICAgICAgICAgIGlmICggJERhdGF7Q2N9ICkgewogICAgICAgICAgICAgICAgJERhdGF7Q2N9IC49ICcsICc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJERhdGF7Q2N9IC49ICRFbWFpbC0+Zm9ybWF0KCk7CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgUmVwbHlUbwogICAgaWYgKCAkRGF0YXtSZXBseVRvfSApIHsKICAgICAgICAkRGF0YXtUb30gPSAkRGF0YXtSZXBseVRvfTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICREYXRhe1RvfSA9ICREYXRhe0Zyb219OwoKICAgICAgICAjIHRyeSB0byByZW1vdmUgc29tZSB3cm9uZyB0ZXh0IHRvIGZyb20gbGluZSAoYnkgd2F5IG9mIC4uLikKICAgICAgICAjIGFkZGVkIGJ5IHNvbWUgc3RyYW5nZSBtYWlsIHByb2dyYW1zIG9uIGJvdW5jZQogICAgICAgICREYXRhe1RvfSA9fiBzLyguKz9cPC4rP1xALis/XD4pXHMrXChieVxzK3dheVxzK29mXHMrLis/XCkvJDEvaWc7CiAgICB9CgogICAgIyBnZXQgdG8gZW1haWwgKGp1c3QgInNvbWVAZXhhbXBsZS5jb20iKQogICAgZm9yIG15ICRFbWFpbCAoIE1haWw6OkFkZHJlc3MtPnBhcnNlKCAkRGF0YXtUb30gKSApIHsKICAgICAgICAkRGF0YXtUb0VtYWlsfSA9ICRFbWFpbC0+YWRkcmVzcygpOwogICAgfQoKICAgICMgdXNlIGN1c3RvbWVyIGRhdGFiYXNlIGVtYWlsCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpDb21wb3NlQWRkQ3VzdG9tZXJBZGRyZXNzJykgKSB7CgogICAgICAgICMgY2hlY2sgaWYgY3VzdG9tZXIgaXMgaW4gcmVjaXBpZW50IGxpc3QKICAgICAgICBpZiAoICRDdXN0b21lcntVc2VyRW1haWx9ICYmICREYXRhe1RvRW1haWx9ICF+IC9eXFEkQ3VzdG9tZXJ7VXNlckVtYWlsfVxFJC9pICkgewoKICAgICAgICAgICAgIyByZXBsYWNlIFRvIHdpdGggY3VzdG9tZXJzIGRhdGFiYXNlIGFkZHJlc3MKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6Q29tcG9zZVJlcGxhY2VTZW5kZXJBZGRyZXNzJykgKSB7CiAgICAgICAgICAgICAgICAkRGF0YXtUb30gPSAkQ3VzdG9tZXJ7VXNlckVtYWlsfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBhZGQgY3VzdG9tZXJzIGRhdGFiYXNlIGFkZHJlc3MgdG8gQ2MKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoICREYXRhe0NjfSApIHsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtDY30gLj0gJywgJyAuICRDdXN0b21lcntVc2VyRW1haWx9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7Q2N9ID0gJEN1c3RvbWVye1VzZXJFbWFpbH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBmaW5kIGR1cGxpY2F0ZSBhZGRyZXNzZXMKICAgIG15ICVSZWNpcGllbnQ7CiAgICBmb3IgbXkgJFR5cGUgKHF3KFRvIENjIEJjYykpIHsKICAgICAgICBpZiAoICREYXRheyRUeXBlfSApIHsKICAgICAgICAgICAgbXkgJE5ld0xpbmUgPSAnJzsKICAgICAgICAgICAgZm9yIG15ICRFbWFpbCAoIE1haWw6OkFkZHJlc3MtPnBhcnNlKCAkRGF0YXskVHlwZX0gKSApIHsKICAgICAgICAgICAgICAgIG15ICRBZGRyZXNzID0gbGMgJEVtYWlsLT5hZGRyZXNzKCk7CgogICAgICAgICAgICAgICAgIyBvbmx5IHVzZSBlbWFpbCBhZGRyZXNzZXMgd2l0aCBAIGluc2lkZQogICAgICAgICAgICAgICAgaWYgKCAkQWRkcmVzcyAmJiAkQWRkcmVzcyA9fiAvQC8gJiYgISRSZWNpcGllbnR7JEFkZHJlc3N9ICkgewogICAgICAgICAgICAgICAgICAgICRSZWNpcGllbnR7JEFkZHJlc3N9ID0gMTsKICAgICAgICAgICAgICAgICAgICBteSAkSXNMb2NhbCA9ICRTZWxmLT57U3lzdGVtQWRkcmVzc30tPlN5c3RlbUFkZHJlc3NJc0xvY2FsQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzcyA9PiAkQWRkcmVzcywKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICggISRJc0xvY2FsICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJE5ld0xpbmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICROZXdMaW5lIC49ICcsICc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJE5ld0xpbmUgLj0gJEVtYWlsLT5mb3JtYXQoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJERhdGF7JFR5cGV9ID0gJE5ld0xpbmU7CiAgICAgICAgfQogICAgfQoKICAgICRQYXJhbXtSZXNwb25zZUlEfSA9IDE7CgogICAgIyBzZXQgbm8gUmljaFRleHQgaW4gb3JkZXIgdG8gZ2V0IHRleHQvcGxhaW4gdGVtcGxhdGUgZm9yIHRoZSBpcGhvbmUKICAgICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+U2V0KAogICAgICAgIEtleSAgID0+ICdGcm9udGVuZDo6UmljaFRleHQnLAogICAgICAgIFZhbHVlID0+IDAKICAgICk7CgogICAgIyBnZXQgdGVtcGxhdGUKICAgIG15ICRUZW1wbGF0ZUdlbmVyYXRvciA9IEtlcm5lbDo6U3lzdGVtOjpUZW1wbGF0ZUdlbmVyYXRvci0+bmV3KCAleyRTZWxmfSApOwogICAgbXkgJVJlc3BvbnNlICAgICAgICAgID0gJFRlbXBsYXRlR2VuZXJhdG9yLT5SZXNwb25zZSgKICAgICAgICBUaWNrZXRJRCAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgQXJ0aWNsZUlEICA9PiAkUGFyYW17QXJ0aWNsZUlEfSwKICAgICAgICBSZXNwb25zZUlEID0+ICRQYXJhbXtSZXNwb25zZUlEfSwKICAgICAgICBEYXRhICAgICAgID0+IFwlRGF0YSwKICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9CiAgICApOwogICAgJERhdGF7U2FsdXRhdGlvbn0gICAgICAgPSAkUmVzcG9uc2V7U2FsdXRhdGlvbn07CiAgICAkRGF0YXtTaWduYXR1cmV9ICAgICAgICA9ICRSZXNwb25zZXtTaWduYXR1cmV9OwogICAgJERhdGF7U3RhbmRhcmRSZXNwb25zZX0gPSAkUmVzcG9uc2V7U3RhbmRhcmRSZXNwb25zZX07CgogICAgJURhdGEgPSAkVGVtcGxhdGVHZW5lcmF0b3ItPkF0dHJpYnV0ZXMoCiAgICAgICAgVGlja2V0SUQgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIEFydGljbGVJRCAgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgUmVzcG9uc2VJRCA9PiAkUGFyYW17UmVzcG9uc2VJRH0sCiAgICAgICAgRGF0YSAgICAgICA9PiBcJURhdGEsCiAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgbXkgJFNhbHV0YXRpb24gPSAkRGF0YXtTYWx1dGF0aW9ufTsKICAgIG15ICRPcmlnRnJvbSAgID0gJERhdGF7T3JpZ0Zyb219OwogICAgbXkgJFdyb3RlICAgICAgPSAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCd3cm90ZScpOwogICAgbXkgJEJvZHkgICAgICAgPSAkRGF0YXtCb2R5fTsKICAgIG15ICRTaWduYXR1cmUgID0gJERhdGF7U2lnbmF0dXJlfTsKCiAgICBteSAkUmVzcG9uc2VGb3JtYXQgPQogICAgICAgICIkU2FsdXRhdGlvbiBcbiAkT3JpZ0Zyb20gJFdyb3RlOiBcbiAkQm9keSBcbiAkU2lnbmF0dXJlIFxuIjsKCiAgICAjIHJlc3RvcmUgcWRhdGEgZm9ybWF0dGluZyBmb3IgT3V0cHV0IHJlcGxhY2VtZW50CiAgICAkUmVzcG9uc2VGb3JtYXQgPX4gcy8mcXVvdDsvIi9naTsKCiAgICAjIHByZXBhcmUgc3ViamVjdAogICAgbXkgJFRuID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXROdW1iZXJMb29rdXAoIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0gKTsKICAgICRQYXJhbXtTdWJqZWN0fSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U3ViamVjdEJ1aWxkKAogICAgICAgIFRpY2tldE51bWJlciA9PiAkVG4sCiAgICAgICAgU3ViamVjdCAgICAgID0+ICRQYXJhbXtTdWJqZWN0fSB8fCAnJywKICAgICk7CgogICAgIyBjaGVjayBzb21lIHZhbHVlcwogICAgZm9yIG15ICRMaW5lIChxdyhUbyBDYyBCY2MpKSB7CiAgICAgICAgbmV4dCBpZiAhJERhdGF7JExpbmV9OwogICAgICAgIGZvciBteSAkRW1haWwgKCBNYWlsOjpBZGRyZXNzLT5wYXJzZSggJERhdGF7JExpbmV9ICkgKSB7CiAgICAgICAgICAgIGlmICggISRTZWxmLT57Q2hlY2tJdGVtT2JqZWN0fS0+Q2hlY2tFbWFpbCggQWRkcmVzcyA9PiAkRW1haWwtPmFkZHJlc3MoKSApICkgewogICAgICAgICAgICAgICAgbXkgJFNlcnZlckVycm9yID0gJFNlbGYtPntDaGVja0l0ZW1PYmplY3R9LT5DaGVja0Vycm9yKCk7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBvbiBmaWVsZCBcIiRMaW5lXCIgXG4gJFNlcnZlckVycm9yIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBpZiAoICREYXRhe0Zyb219ICkgewogICAgICAgIGZvciBteSAkRW1haWwgKCBNYWlsOjpBZGRyZXNzLT5wYXJzZSggJERhdGF7RnJvbX0gKSApIHsKICAgICAgICAgICAgaWYgKCAhJFNlbGYtPntDaGVja0l0ZW1PYmplY3R9LT5DaGVja0VtYWlsKCBBZGRyZXNzID0+ICRFbWFpbC0+YWRkcmVzcygpICkgKSB7CiAgICAgICAgICAgICAgICBteSAkU2VydmVyRXJyb3IgPSAkU2VsZi0+e0NoZWNrSXRlbU9iamVjdH0tPkNoZWNrRXJyb3IoKTsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIG9uIGZpZWxkIFwiRnJvbVwiICBcbiAkU2VydmVyRXJyb3IiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAlQ29tcG9zZURhdGEgPSAoCiAgICAgICAgRnJvbSAgICA9PiAkRGF0YXtGcm9tfSwKICAgICAgICBUbyAgICAgID0+ICREYXRhe1RvfSwKICAgICAgICBDYyAgICAgID0+ICREYXRhe0NjfSwKICAgICAgICBCY2MgICAgID0+ICREYXRhe0JjY30sCiAgICAgICAgUmVwbHlUbyA9PiAkRGF0YXtSZXBseVRvfSwKICAgICAgICBTdWJqZWN0ID0+ICREYXRhe1N1YmplY3R9LAogICAgICAgIEJvZHkgICAgPT4gJFJlc3BvbnNlRm9ybWF0LAogICAgKTsKICAgIHJldHVybiAlQ29tcG9zZURhdGE7Cn0KCnN1YiBfVHJhbnNmcm9tRGF0ZVNlbGVjdGlvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdGltZSB6b25lIHRyYW5zbGF0aW9uIGlmIG5lZWRlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGltZVpvbmVVc2VyJykgJiYgJFNlbGYtPntVc2VyVGltZVpvbmV9ICkgewogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17VGltZVN0YW1wfSwKICAgICAgICApOwogICAgICAgICRTeXN0ZW1UaW1lID0gJFN5c3RlbVRpbWUgLSAoICRTZWxmLT57VXNlclRpbWVab25lfSAqIDM2MDAgKTsKICAgICAgICAkUGFyYW17VGltZVN0YW1wfSA9ICRTZWxmLT57VXNlclRpbWVPYmplY3R9LT5TeXN0ZW1UaW1lMlRpbWVTdGFtcCgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkU3lzdGVtVGltZSwKICAgICAgICApOwogICAgfQogICAgcmV0dXJuICRQYXJhbXtUaW1lU3RhbXB9Owp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojICRvcmlnaW46IG90cnMgLSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC0gS2VybmVsL1N5c3RlbS9KU09OLnBtCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpKU09OOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEpTT047Cgp1c2UgdmFycyBxdyhASVNBICRWRVJTSU9OKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6SlNPTiAtIHRoZSBKU09OIHdyYXBwZXIgbGliCgo9aGVhZDEgU1lOT1BTSVMKCkZ1bmN0aW9ucyBmb3IgZW5jb2RpbmcgcGVybCBkYXRhIHN0cnVjdHVyZXMgdG8gSlNPTi4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGEgSlNPTiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpDb25maWc7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkVuY29kZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6TG9nOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpKU09OOwoKICAgIG15ICRDb25maWdPYmplY3QgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICBteSAkRW5jb2RlT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkVuY29kZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgKTsKICAgIG15ICRMb2dPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwoKICAgIG15ICRKU09OT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkpTT04tPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0IChxdyhDb25maWdPYmplY3QgRW5jb2RlT2JqZWN0IExvZ09iamVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICAjIGNyZWF0ZSBhZGRpdGlvbmFsIG9iamVjdHMKICAgICRTZWxmLT57SlNPTk9iamVjdH0gPSBKU09OLT5uZXcoKTsKICAgICRTZWxmLT57SlNPTk9iamVjdH0tPmFsbG93X25vbnJlZigxKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIEVuY29kZSgpCgpFbmNvZGUgYSBwZXJsIGRhdGEgc3RydWN0dXJlIHRvIGEgSlNPTiBzdHJpbmcuCgogICAgbXkgJEpTT05TdHJpbmcgPSAkSlNPTk9iamVjdC0+RW5jb2RlKAogICAgICAgIERhdGEgPT4gJERhdGEsCiAgICApOwoKPWN1dAoKc3ViIEVuY29kZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtEYXRhfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgRGF0YSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IEpTT04tZW5jb2RlZCBwcmVzZW50YXRpb24gb2YgcGVybCBzdHJ1Y3R1cmUKICAgIG15ICRKU09ORW5jb2RlZCA9ICRTZWxmLT57SlNPTk9iamVjdH0tPmVuY29kZSggJFBhcmFte0RhdGF9ICkgfHwgJyIiJzsKCiAgICByZXR1cm4gJEpTT05FbmNvZGVkOwp9CgojIGZ1bmN0aW9uIGlzIG5vdCB1c2VkIHlldAojPWl0ZW0gRGVjb2RlKCkKIwojRGVjb2RlIGEgSlNPTiBzdHJpbmcgdG8gYSBwZXJsIGRhdGEgc3RydWN0dXJlLgojCiMgICAgbXkgJFBlcmxTdHJ1Y3R1clNjYWxhciA9ICRKU09OT2JqZWN0LT5EZWNvZGUoCiMgICAgICAgIERhdGEgPT4gJEpTT05TdHJpbmcsCiMgICAgKTsKIwojPWN1dAoKc3ViIERlY29kZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICByZXR1cm4gaWYgIWRlZmluZWQgJFBhcmFte0RhdGF9OwoKICAgICMgZGVjb2RlIEpTT04gZW5jb2RlZCB0byBwZXJsIHN0cnVjdHVyZQogICAgbXkgJFNjYWxhciA9ICRTZWxmLT57SlNPTk9iamVjdH0tPmRlY29kZSggJFBhcmFte0RhdGF9ICk7CgogICAgcmV0dXJuICRTY2FsYXI7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
JVBERi0xLjQKJaqrrK0KMSAwIG9iago8PAovQ3JlYXRvciAoQXBhY2hlIEZPUCBWZXJzaW9uIDIuMSkKL1Byb2R1Y2VyIChBcGFjaGUgRk9QIFZlcnNpb24gMi4xKQovQ3JlYXRpb25EYXRlIChEOjIwMTcxMDA5MTQyNjIyKzAyJzAwJykKPj4KZW5kb2JqCjIgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAzIDAgUgogIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nO2ZZ1BUWRaA73uvc6Chu2kyNDlJlNCA5JwkSBYV6G4yLTQ5mJDBERhBRCQpgogCDjg6BBlFRRQDoqCAeRoZBJRxcBRRUVnAH7NVu7VbW7W1f7bPj/e+OufWO+e+ulXvq3oAyJDi2QnJsD4ACbwUvq+zHTMoOISJvQ9wgAxIgAow4ezkRFtvbw+wHCtrwT/E+1EArdzv6fzz+r8MEieBxwEAoi9zLIebzF7mncsczUngrOSnVzg9JTEFANh7men85QGXmbPCEd84Y4WjvnHR6ho/X/tlPgoAjhS1yoRTKxyxytSuFWZH8xMAkO5bXq/CTuQvP196pZfitxlWQ3RlP8woLo/LD0/hcpj/4db+ffxdL3Ty8sv/rzf4H/dZOTvf6K3l6pmAGBV/5baWAcB6DQBS8ldO5TAAlN0AdPT8lYs4DkBnCQCSz9ip/LRvOdTq7IAAKIAOpIA8UAYaQAcYAlNgAWyAI3ADXsAPBIPNgA2iQQLgg3SQA3aBfFAISsBBUAVqQQNoAq3gDOgE58FlcA3cAnfBCHgMBGASvAJz4D1YhCAIC5EhGiQFKUCqkDZkCLEgK8gR8oB8oWAoDIqCeFAqlAPthgqhUqgKqoOaoJ+gc9Bl6AY0BD2ExqEZ6E/oE4zAJJgOy8FqsB7Mgm1hd9gP3gRHwUlwFpwH74Mr4Hr4FNwBX4ZvwSOwAH4FzyMAISIMRBHRQViIPeKFhCCRCB/ZjhQg5Ug90op0I/3IPUSAzCIfURgUDcVE6aAsUC4ofxQblYTajipCVaFOojpQfah7qHHUHOormoyWRWujzdGu6CB0FDodnY8uRzei29FX0SPoSfR7DAbDwKhjTDEumGBMLCYbU4Q5jGnDXMIMYSYw81gsVgqrjbXEemHDsSnYfGwl9hT2InYYO4n9gCPi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YmoKNCAwIG9iagpbL0lDQ0Jhc2VkIDIgMCBSXQplbmRvYmoKNSAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDYgMCBSCj4+CnN0cmVhbQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPgo8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgo8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgcmRmOmFib3V0PSIiPgo8ZGM6Zm9ybWF0PmFwcGxpY2F0aW9uL3BkZjwvZGM6Zm9ybWF0Pgo8ZGM6bGFuZ3VhZ2U+ZW48L2RjOmxhbmd1YWdlPgo8ZGM6ZGF0ZT4yMDE3LTEwLTA5VDE0OjI2OjIyKzAyOjAwPC9kYzpkYXRlPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8iIHJkZjphYm91dD0iIj4KPHBkZjpQcm9kdWNlcj5BcGFjaGUgRk9QIFZlcnNpb24gMi4xPC9wZGY6UHJvZHVjZXI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHJkZjphYm91dD0iIj4KPHhtcDpDcmVhdG9yVG9vbD5BcGFjaGUgRk9QIFZlcnNpb24gMi4xPC94bXA6Q3JlYXRvclRvb2w+Cjx4bXA6TWV0YWRhdGFEYXRlPjIwMTctMTAtMDlUMTQ6MjY6MjIrMDI6MDA8L3htcDpNZXRhZGF0YURhdGU+Cjx4bXA6Q3JlYXRlRGF0ZT4yMDE3LTEwLTA5VDE0OjI2OjIyKzAyOjAwPC94bXA6Q3JlYXRlRGF0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ODU4IDY3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2NjcuNjI5IDUzOS45OTggNjc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NyAwIFIKL0ggL0kKCj4+CmVuZG9iago1MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyNSAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iago1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NTUuNjI5IDE1NS4xNjEgNjY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1MCAwIFIKL0ggL0kKCj4+CmVuZG9iago1MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDY1NS42MjkgNTM5Ljk5NyA2NjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDUwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjUzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI1IDAgUiAvWFlaIDcyLjAgNjU4LjQgbnVsbF0KPj4KZW5kb2JqCjU0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY0My42MjkgMTg1LjE3NiA2NTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjQzLjYyOSA1MzkuOTk4IDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjUgMCBSIC9YWVogNzIuMCA2MzguMCBudWxsXQo+PgplbmRvYmoKNTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNjMxLjYyOSAyMTIuNTU0IDY0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA2MzEuNjI5IDUzOS45OTcgNjQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1NiAwIFIKL0ggL0kKCj4+CmVuZG9iago1OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyNSAwIFIgL1hZWiA3Mi4wIDU4Ni4wIG51bGxdCj4+CmVuZG9iago2MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA2MTkuNjI5IDIxMS41NjQgNjI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1OSAwIFIKL0ggL0kKCj4+CmVuZG9iago2MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDYxOS42MjkgNTM5Ljk5OCA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjYyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI1IDAgUiAvWFlaIDcyLjAgNTM0LjAgbnVsbF0KPj4KZW5kb2JqCjYzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDYwNy42MjkgMjMwLjcxMSA2MTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjY0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNjA3LjYyOSA1MzkuOTk3IDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjUgMCBSIC9YWVogNzIuMCA0ODIuMCBudWxsXQo+PgplbmRvYmoKNjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTk1LjYyOSAyMjMuMjM0IDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA1OTUuNjI5IDUzOS45OTcgNjA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2NSAwIFIKL0ggL0kKCj4+CmVuZG9iago2OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyNSAwIFIgL1hZWiA3Mi4wIDQzMC4wIG51bGxdCj4+CmVuZG9iago2OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA1ODMuNjI5IDIxNC42MzggNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2OCAwIFIKL0ggL0kKCj4+CmVuZG9iago3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDU4My42MjkgNTM5Ljk5OCA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjcxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI1IDAgUiAvWFlaIDcyLjAgMzc4LjAgbnVsbF0KPj4KZW5kb2JqCjcyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDU3MS42MjkgMjM5LjM1OCA1ODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjczIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNTcxLjYyOSA1MzkuOTk3IDU4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjUgMCBSIC9YWVogNzIuMCAzMjYuMCBudWxsXQo+PgplbmRvYmoKNzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTU5LjYyOSAxODguOTE5IDU2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4OCA1NTkuNjI5IDU0MC4zNDggNTY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NCAwIFIKL0ggL0kKCj4+CmVuZG9iago3NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyNSAwIFIgL1hZWiA3Mi4wIDMwNS42IG51bGxdCj4+CmVuZG9iago3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA1NDcuNjI5IDIxNi44NDEgNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NyAwIFIKL0ggL0kKCj4+CmVuZG9iago3OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg3IDU0Ny42MjkgNTQwLjM0NyA1NTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjgwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI1IDAgUiAvWFlaIDcyLjAgMjY1LjYgbnVsbF0KPj4KZW5kb2JqCjgxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDUzNS42MjkgMjA5LjYxMiA1NDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjgyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy45ODcgNTM1LjYyOSA1NDAuMzQ3IDU0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKODMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjUgMCBSIC9YWVogNzIuMCAyMjUuNiBudWxsXQo+PgplbmRvYmoKODQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTIzLjYyOSAyMTMuMTMyIDUzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKODUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4NyA1MjMuNjI5IDU0MC4zNDcgNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MyAwIFIKL0ggL0kKCj4+CmVuZG9iago4NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyNSAwIFIgL1hZWiA3Mi4wIDE4NS42IG51bGxdCj4+CmVuZG9iago4NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA1MTEuNjI5IDIzMi4zOSA1MjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjg4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy45ODcgNTExLjYyOSA1NDAuMzQ3IDUyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKODkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjUgMCBSIC9YWVogNzIuMCAxNDUuNiBudWxsXQo+PgplbmRvYmoKOTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNDk5LjYyOSAyMTIuNzE3IDUwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4OCA0OTkuNjI5IDU0MC4zNDggNTA5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4OSAwIFIKL0ggL0kKCj4+CmVuZG9iago5MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago5MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ4Ny42MjkgMTU4LjMzNyA0OTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDg3LjYyOSA1MzkuOTk4IDQ5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKOTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDc1LjYyOSAxNzMuNDA4IDQ4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0NzUuNjI5IDUzOS45OTggNDg1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NSAwIFIKL0ggL0kKCj4+CmVuZG9iago5OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDYwNC40IG51bGxdCj4+CmVuZG9iago5OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NjMuNjI5IDE2NC45MTMgNDczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjgwNyA0NjMuNjI5IDU0MC4xNjcgNDczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA1MzYuMCBudWxsXQo+PgplbmRvYmoKMTAyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ1MS42MjkgMjA5LjU1MiA0NjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0NTEuNjI5IDUzOS45OTggNDYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNDY3LjYgbnVsbF0KPj4KZW5kb2JqCjEwNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MzkuNjI5IDIyMS43OTQgNDQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDM5LjYyOSA1MzkuOTk4IDQ0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwNyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxMDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0MjcuNjI5IDE0OS4zOSA0MzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwNyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0MjcuNjI5IDUzOS45OTggNDM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTEwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNjc4LjggbnVsbF0KPj4KZW5kb2JqCjExMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MTUuNjI5IDE5OS4wMDYgNDI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTEyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDE1LjYyOSA1MzkuOTk4IDQyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTEwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDYwMi40IG51bGxdCj4+CmVuZG9iagoxMTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDAzLjYyOSAxOTQuNjQxIDQxMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTEzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDQwMy42MjkgNTM5Ljk5OCA0MTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTE3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgMzkxLjYyOSAxNDcuNjQ1IDQwMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDM5MS42MjkgNTM5Ljk5OCA0MDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExNiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKMTIwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM3OS42MjkgMjM1LjEwMSAzODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCAzNzkuNjI5IDUzOS45OTggMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTIyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgNjAwLjQgbnVsbF0KPj4KZW5kb2JqCjEyMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNjcuNjI5IDI0NS4wNjMgMzc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMzY3LjYyOSA1MzkuOTk4IDM3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTIyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxMjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCAzNTUuNjI5IDE2MS43ODQgMzY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMzU1LjYyOSA1MzkuOTk4IDM2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDY3OS4wNzUgbnVsbF0KPj4KZW5kb2JqCjEyOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNDMuNjI5IDIwOS4wODcgMzUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTMwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMzQzLjYyOSA1MzkuOTk4IDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDYxNS4zOSBudWxsXQo+PgplbmRvYmoKMTMyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDMzMS42MjkgMTkzLjAxMSAzNDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCAzMzEuNjI5IDUzOS45OTggMzQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNTM5LjcwNSBudWxsXQo+PgplbmRvYmoKMTM1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDMxOS42MjkgMjk5LjMwMSAzMjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4NyAzMTkuNjI5IDU0MC4zNDcgMzI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNDY0LjAyIG51bGxdCj4+CmVuZG9iagoxMzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMzA3LjYyOSAyMDQuNDM3IDMxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg4IDMwNy42MjkgNTQwLjM0OCAzMTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzNyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA0MTIuNDYgbnVsbF0KPj4KZW5kb2JqCjE0MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCAyOTUuNjI5IDE4OC41NTMgMzA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMjk1LjYyOSA1MzkuOTk4IDMwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDM2MC45IG51bGxdCj4+CmVuZG9iagoxNDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMjgzLjYyOSAxODQuMjgxIDI5My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDI4My42MjkgNTM5Ljk5OCAyOTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCAzMjEuMzQgbnVsbF0KPj4KZW5kb2JqCjE0NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCAyNzEuNjI5IDIxMS4zOTYgMjgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMjcxLjYyOSA1MzkuOTk4IDI4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDI2OS43OCBudWxsXQo+PgplbmRvYmoKMTUwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDI1OS42MjkgMjEwLjcxOSAyNjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCAyNTkuNjI5IDUzOS45OTggMjY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgMjMwLjIyIG51bGxdCj4+CmVuZG9iagoxNTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMjQ3LjYyOSAxNzguMTI3IDI1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDI0Ny42MjkgNTM5Ljk5OCAyNTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCAxOTAuNjYgbnVsbF0KPj4KZW5kb2JqCjE1NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCAyMzUuNjI5IDIxNC40ODMgMjQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMjM1LjYyOSA1MzkuOTk4IDI0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDE1MS4xIG51bGxdCj4+CmVuZG9iagoxNTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMjIzLjYyOSAyMjMuNTU1IDIzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDIyMy42MjkgNTM5Ljk5OCAyMzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCAxMTEuNTQgbnVsbF0KPj4KZW5kb2JqCjE2MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCAyMTEuNjI5IDI0Mi45MTQgMjIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTYzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMjExLjYyOSA1MzkuOTk4IDIyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTYxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxNjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMTk5LjYyOSAyMTYuMjQ2IDIwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDE5OS42MjkgNTM5Ljk5OCAyMDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA2ODUuOTI1IG51bGxdCj4+CmVuZG9iagoxNjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMTg3LjYyOSAyMDcuOTAxIDE5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDE4Ny42MjkgNTM5Ljk5OCAxOTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA2NDUuODA1IG51bGxdCj4+CmVuZG9iagoxNzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMTc1LjYyOSAyMjkuMTkzIDE4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTcwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg4IDE3NS42MjkgNTQwLjM0OCAxODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA1OTMuNjg1IG51bGxdCj4+CmVuZG9iagoxNzQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMTYzLjYyOSAyMzMuNDE1IDE3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTczIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg4IDE2My42MjkgNTQwLjM0OCAxNzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA1NDEuNTY1IG51bGxdCj4+CmVuZG9iagoxNzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMTUxLjYyOSAyMzEuMzEyIDE2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDE1MS42MjkgNTM5Ljk5OCAxNjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA1MDEuNDQ1IG51bGxdCj4+CmVuZG9iagoxODAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMTM5LjYyOSAyMTYuMzU2IDE0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDEzOS42MjkgNTM5Ljk5OCAxNDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA0NDkuMzI1IG51bGxdCj4+CmVuZG9iagoxODMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMTI3LjYyOSAyNDIuMjY2IDEzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTgyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDEyNy42MjkgNTM5Ljk5OCAxMzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCAzOTcuMjA1IG51bGxdCj4+CmVuZG9iagoxODYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTE1LjYyOSAyOTEuNjkgMTI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMTE1LjYyOSA1MzkuOTk3IDEyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDMyMC42MSBudWxsXQo+PgplbmRvYmoKMTg5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDEwMy42MjkgMjA1LjYyMiAxMTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjgwOCAxMDMuNjI5IDU0MC4xNjggMTEzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTkxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgMjgwLjQ5IG51bGxdCj4+CmVuZG9iagoxOTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgOTEuNjI5IDIxOC43NzUgMTAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTkzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggOTEuNjI5IDUzOS45OTggMTAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTk0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgMjE2LjM3IG51bGxdCj4+CmVuZG9iagoxOTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNzkuNjI5IDIwNC40MzcgODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4OCA3OS42MjkgNTQwLjM0OCA4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTk0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NyAwIG9iago8PCAvTGVuZ3RoIDE5OCAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCniczL3NrizJlpw3v09RL8Bk+L87IBTA7ttXkGaCGtCA4EiCpAEpoUd6fa3P8yf8nJ1FmmkkNKrr3FNhOyO2Z1iYW6xl69/+lv644v/+Hf8aK//xv/6Xv/3b6+/SHyP/Ufqvf5Va/6Ncj9n6daX4T0/k9f5X/AX/4v//u+uR2x//eSPOP1/vfz//6nr/4f/843/52//1t+uP//5v//E/xd/+b/H37Y//52/PH/cG/s9/+59+O5nr/3fnd55hSfn/h2f4b38b9fmZuT/SamutP2b+I49Hfp7Sv/8f/kv+4+//976YfXjmu/Bf/mj14g//+fUHft7+T58/xL85h3/7W23X8xP4w0x/9Pz+wfX9g3/5no391bv++D/+9k//+rd//4/U/0hxNvPid/Sv//v9LZ1/pBq/uxz/Idc//vW//PEf/7s4JP/5R4qzXy3VP+J/X/8U/zUOSSn+vH9G/FPj78rzz7k+//e14p//8Drm9ec0//xPf/zr/8g5tD/S9duHl/iQwU/r4/3hV4kPH/tj659/xGXyp8Yh8c94/fD2/KGfn1TnI834tc9evv7M9dvxLT0KP+/qSTu+Plrm54/v5/zj+PHgVOOEu3R8jy9w5+cv7fx7fexf+BUUIx3PVzF+/rq08x/Xo4w4fMSNIB1fHo01Kpd4fH8MvnMpa+c/1mOyvqss6fhZHhe34Wja73/2x/4ylyIevx7715+atl4rPxrru7p2/qs9RuH8p3Y+az4Wh5SuHZ+u/HjeyVO7gHS1h/hdSNd81MSXOW5jCZDSo7G6vVQRUB+D2zcnFRAHsb5X0e73lNNj3y+ziteQ6yOzwr2LpxT8WuumXREQD7meDM5KpTzGMEgrlf5YdX9JxZWu1yOx0i1pt3GqJR5C3MZZuw9S7Y/a9zHiRdf16Kx0neJFt/yYl0FdqbU4yOCu1NYjFYO8Us+PchnslXp7VFa6DfFu7vPRq3FGIz0mfD2KeM2jPhYKoFX1E+IJ3h0Gm/EILw6DzXiGi0eOR+8Oga14fBeHwFY8v1nh2sSv9RqPxArnrn2tY7Eepelkka94grPCNWvXnK/+6Mvgr9AfoXEM/sopHuKO6MoJ9W3wV04rZKDBXznHc7wY/JVzPMiTwV85z1A6Bn/lEk9yR3rlEk9yR3vlMh/FEV+5xvPcUV/xFQo5aPBXruNhnVHo/b13UPkrh+DfuxqVv3Io/uoosBySvw12LE284Xo8zsUl7vEgZ79Wqvj7DL1/OQosh+DP3MxriGcfir9mh8BC8ltsMXNoQnZQlwqI57gjwEK4PFKQ9mxFXIZQ/dkRYDlkf+zvuTPFawjd3x0BVq70GLD2bNpFlyse5NzLocREQDzIHQFWQv0/WX5ot1oJ9V8dAVZC/fdY6bgEbeFKjue5I8BKLo818UKWeA2h/pMhwELpPIojwEqI/8odfWWNAmLnG6LHILBS4nmeDQJTyaiE5k/DYK8Smr848quE5m/JYK8Smr878qu0eIwb8quE5L+SwV4lJH9y5FcJyV+awV4lNL/leZXQ/K/bUryGMZ6ul8xeofm37SWzV2j+7XvJ7BXSvzjyq4T0D41gsNcqnvVVVg+tY7BX/II886uG9sf9ktmrhvZ3NrQ1pH9z5FdN+el/qexVU/MMsBrS/3LkVw3pLxpgNUR/deRXDdFvGWC1pKcBphJYLfEYd+RXDdHvmE01NH925FcNzW/5XzU0f3fkVygpz/+qLZ7ijvyqsPZ/Zd3y33+3jf+IR9WPH/tP/GgY4c84Jn7M853LP//5R6uflx/cPX+Pf/7l+v21yK+ofzxfzuw3NT8+nTc9qJTYi347jx8m94z99/4Ffj/vHyZ0ikcS91TsRKXja+y+4/geTCgdP2LzHefPSzXl+PjP8UB6utwioDwg8jWLdgXpGvFA4hKadgmxLo+cuIaiAko8kPYTaYmAHpvvzWxdBKx4IHENs2iAYMKJ2s1dvIbcH1fnGoZ4DXnFAykAvYmAkh+Vla5DvOjS4onENSzxooMPR+XmEb97wYfr6dgNEdCCSwIwgg81wIwHUgBaF0+ppXgsBSB0lwioj8ZCD3GdeevJOrcifkC/Hot1Lk285l7jqWRQWOLF5zA4LDYe8VgySCyNEltwg8US7z5Z6HjEioA4iIXOTTylWR6Jd/2xeCKgxxac2yepn7AetTs0tvKjF4fGVostuENjvAIdBo3lK8cWnPtHPLw9CutcknZCmdeg0yCxnNKjN4PEMqUb2SCxzGvQpZNY6KBH6gaJ5RyP9GKQWM7xTL8MEsu8BR0GieUSz/Sqk1gOKXUlg8QyL0GnQWK5xiPd0WG5xiPdEWKZl6COEsu8BHWkWG7xSC8GieUWj3SYe0zxonkJykLLC9fjkV4NEout0GPEHT3HJd5vvAV1tFge8UyPlU5lidcw4pnuaLHMW9BY5nRl8aJ5C9odGpvxUHe0WF7xUI9beqrEyrtQR4rl2AfkIO7Yy2g3XIl9QHW0WOFlaCx0ko+PR7ojxcoVB8Hc69KuufAulDs6LfGaYxuQHS1WYhtQ446e8UTRALEN6I4WK7wLjYVOVBVqgHikO1qsxDYgBXeneK6LgPbIjhYrsQ2ozaCxEvuAng0aK7wLdbRYqfFQ7waNldgHJEeLxYPtUS6DxgovQx0tVmIj0KtBY6XHU91RY4VXoo4aK7ERiA2NTGMl9gHFEWOFN6LLoTHeiDpqrMx4qheDxmIbcDlirPBGdDg0FtuAUh0ai21Ac9RY4Y3oNGisXslzxWpsBK5s0FjljaijxmqiOtmgsRobgeaosXgaPp0xlcYqb0QdNVYzFcoGjVWq5R01Vnkl6qixWihSNmislu45Y5VXoo4aq7EVuBw1Vmv3nLFaqVTWaazyatRRY7Wn//rO/p9+PNX/CMh/3QSv7bEN7rRfefMmhfdf1za8U/rdpu6xSU2U9qavP/mHrc3b4sQPn9Lx1G5fz2I97XjeFcfxo3+/0h/Hz9igcv5VO37XbmPwp/gOaID4dT7rGboI4F0xl7DEU6KCO3MNQwXU2KFyDVO8hsS7Yg66xGuggpsq2pmLCOBdcQB6FY8fsUFNdMZoxxfeFHNQPMo0QKF2kDde4hkFX03WuYsfUHlRHMfXqQIKpYNBV5d4RpUXxXFQr+onrNiexkFVXYXGm2JWYWp3/y7f3u/Ilnb7U759jV1EoN3/lG/nyt1TxFOifJuFblU8pc77Ytahi6c0UmxQE1wqfgL129zQLaufMGOD6rDY5IWxw2KzxgbVYTHKuC+HxRYvjLl/LvGUVqGEMG6gLJ4SZdysdK4aKVHGHd/sWIepfQJ13JWVrpf6CT02qDqNUcY9lkFjOeXH6gaN7TLuotPYruK+DBqjirsOg8ao4u7VoLFdxZ0MGsslDpoGjVHFnZpBY7uKOxs0RhV3XQaNUcXdu0Fju4q7GDS2y7gvg8Yo407DoDHKuIsjxnYZd9zRsxfxfuslNqgGjVHMPeMjUkniRVPMnQ0ao5g7cUuvJl706LTPGjQ24rFeHBqjmpvvdmw6RUCLDapBY7ELCI4MUhJ3DbuY21FjFHOXuKVTWuI1x0agOXJsF3ND3VNbBWq5J3d0aGMREA91R43tWu64o+do2v22a7kdNUYtd4uDUhXPKMcz3RFju5Q7qDtdQ/2EQSutzmLUcmdHjO1a7rihqTQTAf3RHDFGLffoBovFD6ahVmexXdR9GSxGUXd2xBhF3bUaLLaLuh0xRlH3cMRY4aBmsNiu6jbEGEXdeRksRlF3dcQYRd29GCy2i7odNVbm9TxIZbHYB6TqsBg13Y4Yo6a7TofFYh/QHTG2a7qzwWJr0U6rsxgl3ZhiMovtkm5Hi+2abkeLUdONLyazGDXdljG2a7odLUZNt2WMUdldHC22K7sdLUZld3e0GJXd09FiVHZfjhbbpd2OFqO023HGqOxujhbbld2OFqOyezpa7Olq97gd6vdT+uJqh4r+/bBEgfZd2l0eebva8RcXjjaJRbjbO9Hmx1HrXea9j8f5/g9f3G/qfRO9ALHD+XIGX4zU2C2/IhU0AD3Pic6hWUVAPFdnAMaVRMB8xjex+ZUA9Dw/20+nCGivXKYk/pbYLff2JFwJQM8z/VVsfjUA3VLtSbgaIB6sLDSEKwHYLbPSTf1q0PTMlxLC1QB0S/WnhycB2C0/W8O7CKBbqj09PA1At1R7Eq4EYLfMSuPhaQC6pdqTcDVAjz1OfxKuBqBdqj89PAnAbpmVzuIvidbnZ9qGyAHslmd7Eq4EYLfMQqskQ+cz64xq1ADxYGWd8fAUQGazTIMrHp4GqLHF6U/ZqAFomTJojILfPAwao+C3VoPGKPjtyaCxzHZ5GjSW2S43g8ao+E3ZoDEqfvMyaIyK39oNGsu0PheDxjLv+S+DxjLb5WHQGCW/qRo0RslvSQaNUfJbp0Fjme1yM2gs0wMd9/TWjRIAobV0GqPiNwV1b92oAeKpXgwao+K3xS29daMGiO3yMHgss12Guqe4CrRAs87sfjVAbJenQ2Nsl+OO3rtfCUALtKPGMtvlWGd2v9rx8Ux3xBgFv1fc0Hv3qwHime6IMSp+iyPGqPhtcUPv3a8EoAXaEWOF7XLc0Hv3qwHioe6IMSp+cyz03v1qgNguO2KMit8GdbP7lQA0QjtirNAI7YgxKn6vYbAYFb/ZEGMU/NZksBgFv80RY4XtcjNYrNAI7agxCn6vpbMY9b65GyxGvW91xBj1vv0yWCw2+4/hiLEy4pledRaj3jc5Wox63zwdFottQHW0WIl9QHe0WJnzMZbDYise6Y4Wo+A3dusGi8VGoDhajILfOgwWq7ER6I4Wq1c805PBYjVdj+VoMQp+k6PFKPgtjhaj4LcaWqzGPqA7Wix06mM6Wox638vRYtT7JkeLUe9bDC1GuW9ztFiNbUB3tFhs9h7T0WKU+1rOGPW+ydBiwS+eMfZLffA3wO9Oaut/YE/8lZP6a1jG9fJK+VuiMdrx71+P+OKm/jDYqA9/xgt9O4Uvjhz14c+YGhFAfXgARloaoFEfHoBWvv5WvgCoDw9APMJFAPXhcdEhyDVAp0A8AC2JnxC7tEHSS1GPJ8v6GdemAQYpLM/8LxFAljXLMMXj56Oyzm0NDRCbtMY6B0+LAAKt45pHUz+BQGtWYYifQDgL6xxPZBFQH5l1zpf4W1oEWj8TfSQAtY2dYORZtVOitnGw0L1pp0Rt42Kh69Du6BwP4sRK56Xd0WTUZlIke1E/gUDrAATxigACrVmHrnEG1Y3zMmiM6sY1DBrLeT2CLHUaI6O2JIPGqG6s06Axqht7M2iM6saZDRqjunEtncYyIym6QWMUN5Zi0BjFje3SaYzaxh53dIpvuAZgKkU1aCwzliIZNJb7eCTW+ariNTCYohk0Rm1jizt69il+uQe51g6NMZsiFjqVLl40wymKQ2PEs1y7TE68aFqchkNj9DhVh8YYUBF39FxZ/HbT5TQNGit0OQV3z+968MvxxFobLEZxY4mFTrlq10xxY3PEGMWNA+qeQ7xm8lm4o5P2TSr0ODlarNDjFHf0jAeECCDW2mAxihtbrHOqU7xmupwMMUZtY+yTdRYrdDk5YqzQ5eSIMWobazFYjNrG7ogxahvHMFiM2sbliLHCkIpksBiJtdkRY9Q21mawGMWN3RFjFDcOR4xR3BhPW53FClMqHDFGYm25DBajycnRYhQ39uqwGLMqHC1GceOaDovR5NR0FiOvtjhSjOLGugwWo7ixO1qM4sZZDBar5LMYWqzuqi2Dxeou2zJYrO6yLYPF6i7bMlis7rItg8XqLtsyWKzusi2Dxeou2zJYrO6yLYPF6i7bMlis7rItg8XqLtsyWKzusi2DxX4pbvwG+GLJrZ/ptm9L7rcix9jUb5vtn69nYu2RXLtTaX89SrHl8i27vpzGF5eN4WmvzaMGmCG7XptHCRCP44/u0gAhTl8emHb8vGWXBOiMUHttHjVA/cgu7fg46O2BSYCRbtmlAeotuzRAaNO3ByYB5nXLLg3ABLWXB6YB+i27JMBigtrLA9MA5ZZdGiDE6dsD0wDrll0KgCDNj+zSAME5bw9MA6xbdkmAxAS1lwemAdqtuzQAE9ReHpgEiL3aR3dpgBCn06Axmo5TM2iMpuOP8NIAoU6XTmNkaX50lwSoDFIzaAxX7q27tOOZo2bQWG7Xrbs0QLl1lwbot+7SAOvWXRKgl1t3aYB+6y4NsG7dJQFGvnWXBmi37tIA89ZdEmDmW3dpgHbrLg3AIDWHxhaD1J67R+34er+Q1ADMUXvtHhUALceXI8boOc5vD0wDxFP95YFJx6frfh+pAeKh/vbANEC/X0hKgMw0tdfuUQOUzwtJ7XiGqb12jxpg3S8kJUDJ9wtJDRDP9GKwGC3HyRFjtBznYbBYiX1AdcRYqUxTM1iMJM3hiDGSNFczWIyW4+SIMVqOsyPGgrYftRssFr+c+4WkBBhMU9NZrOwqEYPFaDlO1WGx2AgUR4uVyTQ1h8ViI9CbwWJz3a8jJcDKj7UcFlv9fh+pAcjJM1isXvnzPlI7vt3vIzXAvN9HSoCU7/eRGqDd7yM1wLzfR0qAnO73kRqg3u8jNcC430dKgJLu95EaoN7vIzXAuN9HSoB63e8jNUC530dqgH6/j5QA7fq8j9SOL/f7SAlwFsp9A3xx5dL1M3DzY8v9/TpsOdzgbbO9bbg9jif+/I/rY9Ftd+7dj/wrSrDp4vTHuyf723l9taDecYUiYN55hRpipDuwUETUO7FQRIw7slBDxOPnk1koIsodWigixp1aqCHWdccWiohy5xaKiH4HF4qIdScXSgjsqE90oYjod3ahiFh3eKGGiEfRJ71QRLQ7vlBEzDu/UEPE0+gTYCgi2p1gKCLmHWGoIeKB9MkwFBH1E2IoAsadYqgh4pH0iTEUEfWTYygCxh1kqCHiofRJMhQR5Y4yFBH9zjIUEYtpyM+qdQ3Ry51mKCL6o7wSdETAuuMMNcTIj/7O0BER7Q40FBHrTjTUEDMzHfnZgiMi2p1pKCLmHWqoIVa6Uw1FRL1jDUXEvHMNJQRu1SfYUETUO9lQRIw72lBDpOvONhQR5RNuKALGnW6oIfJ1xxuKiHLnG4qIfgccioj1STjUACXfEYciot8ZhyJi3SGHGqLmO+VQRLRPzKEImHfOoYZo6Q46FBHtTjoUEfOOOtQQPd1ZhyKi3mGHImLcaYcaYlx33KGIqHfeoYgYd+ChhpjXnXgoIsodeSgi+p15KCLWHXqoIVb5pB6KgH7HHoqIdeceSgjcrE/woYhod/KhiJjPg1R6w9D6ZB+KiHaHH4qIeacfaoic7vhDEVE/+YciYNwBiBqipDsBUUTUOwJRRIw7A1FD1OsOQRQR5U5BFBHjjkHUEO26cxBFRLmDEDXEWXT2FfHN38o/o/fe/hajYQ5/qz0G/lSO/9XLHoX+Ljybz6S97VqV349XnC3q6971ZN/O6Kdpwfyzd0GZhujHW0wRUT5tlSLgeI2pIYhGexeViYj7RaYI6HdrpYg4XmVqiHm8yxQR7e6uFBHH20wNQULau7ZMRBzvM0XEvDssJcROSXu/0RQR9e6xFBHHO00NkY6XmiKi3m2WIuJ4rakhmIn2LjITEcebTREx7lZLDVGOd5siotzNliKi392WIuJ4v6khiExbBr/tyLTu8NvOTCsOvxGa9n7FKQJ4x+nw205Nqw6/MSn585ZTRByvOUXE8Z5TQ4zjRaeION50iojjVaeGmMe7ThFxvOwUEcfbTg2xjtedIuJ43ykijheeEmKnqL3eeIqA45WniOh3D6aIWHc3gIYgSO1dgSYi2qcNUwSsux9AQxCl9i5CExHtbgkQEfNuxdQQpKk58m2nqb0L0UTEvNsCNAR5apZ824lqxaE3ItW6Jd92ptpw6G2HqlnyjVS1T0+mhiBXzZJvO1itOfS2k9Us+baj1Sz5trPVukNvO13Nkm/Eq71bMzUA8WqWetv5atWitznvLgENQcLatOiNiLXm0BsRa5Z42xlry6G3HbJmqbedslYcemOu8uWotx2zNhx62zlrlnojaK1Z6m1HrVnqbWetWepth61Z6m2nrVnqbcetWeptB65Z6o3EtWGptx25Zqm3nblmqTdC17Kl3nbsmqXefvXbviG++W2FDeqrnuB3vy1fp98W5Lldtn/8+Ud6Omn4bQyOLn/Gk2v/t18dtxdCavlsdynct3P66XTU4E1G18/+/Sq+eHT8Sl7DvUVE8CbD65t6fNBmeg331hC8/Jqv6d4iImiT6fV1yJ8RtJlfA741BC+/Fi5qUgFBm0w1X3moiKBNBtgPXghIiBm0yYK3rp4V775Y8DLUs5pBm8ywH1kExD5uV0+2on4Er75Y8dLUC499XGHF01AvfAVrMsY+HscaghK6vribLvG7TkvnZMl7Fn9XlNBdLHkt6lnFRi6z5LmpZ8XLL4bZtyV/RuyZWPKa1M/I1L1u3lOvnJdf02E3Suiu5rAbJXQ5O+xGCV1ZOrtRQde6w25U0I3isFvskGMj7rAbJXTXcNiNErpcDXajgq4mh92ooGux4EkHUPTqkBse4ILV16Ved6foNT4jRJuKoOjVYTcq6Grc4zMeOCqColeH3ejzHLHi8TxXr2NS9Gqx26ToNT4jVfXKJ0WvFrstil552Ez1yhdFr/EZ8vOJds+xHHbDA1xxl89xiXcgFXTJ0m5U0JVY8xDE4nVQQVct7UYFXY+7PDEmTURQ9urwGy7gstQbJXQp7vOpki4VdMUSb1TQ1bjNZ5vi7UEJXbfUG72fsxj8RgXdZYk3KujScPiNCrpSHX6jhK5Z6o0Suj4dfqMBdFrqjRK6Kzv8RgldstQbJXSlO/xGCV2z1BsldONy+I0+0DkcfqOE7rLUGyV0OVn8Nil7tfhtUvZq8duk7NXit0Xdq8Vvi7pXi98Wda8Ov1FDVy+D3yiha5Z8o4RuVIffcAGXpd+oobsc/UYJXbb0GyV01dJvlNA1S79RQzcs/YYLuCz9Rg1dsvQbNXTZ0m/U0FVLv1FD1y39RnvosPQbLuCy9Bs1dMnSb7+0iH5FfPP0avtrT6+enl58a9euoWt/xuV8HLx07YkS785Q/jfOXX53j7bf8YrDt3Oc39+TL2f4xSIqh4uhIfrhYmiIdbgYEmJnOb+/JxqiHy6GhliHiyEhdpzz+zmoIdrhYmiIebgYCiLvROe3i6Eh2uFiaIj5cTGk43em8/spqCHq4WJoiHG4GBJi5zq/H4Maot4uhgYYh4shIXay89uj1RDlsDE0BOHOb49WQux055dHqwHK4WJoCOKd3x6thliHiyEhdsCzw255Jzw77JZ3xPP7KSghdsazw255hzy/n4IaYh4uhoTYMc8Ou+Wd8/xW+RpiHi6GhNhJz2+VryHq4WJoiHG4GBJipz1b/Lbjni1+23nPL5WvAMoOfHborezE57fK1xD9cDE0xLpdDAmwM58deis79fmt8jXEOlwMCbFznx1+Kzv4+a3yNcQ8XAwJsaOf3ypfQ7TDxdAQ83AxJMROf3b4rez4Z4ffys5/dvit7ABoh9/KToB2+I3SsmKpN0rLbhdDQ5TDxdAQ/XAxJAQtKpZ+w1XKln6jtOzjYmiAdbgYEoIWlWrxGy0qln7DVPq4GBKADhVLvlFZdrsYGmIeLoaCoLRsWPqN0rLbxdAQ83AxJAQdKsPhN2rLqqXfqC3rln6jtmxY+o3asmXpN1ylZOk3XKVs6Tdqy6ql36gt65Z+o7ZsWvqN2rJl6TdcpWTpN1ylYuk3asuqpd9+rRT7hvjdVcIjaOOnq/RL4lhJLzdp/hna6uMG/agQ2z2avyLWu6Zsp5T9lkyW0u9OBO/d0ow7aXw/r5/eRXzLgwpZuaUienDhetXfaYgVXMhvg+4wCREa6Tla+VKvIzRScOGrO0xDzODC+aovlhC8ebsCsbvDNEQLLlyv7jANMYML16vAWELw5i2tZ3eYBgjhNtervlhDDKjw1R0mIXjxluezvlgDVJjw1R2mIUYw4XzVF0uIUEi9rFd9sYYowYTr1f2qIXoctF71xRJiXsGE69X9qiFKMCH3U1bPanaY8NX9qiEW1ZSv+mIJwXs3lnx3v2qIRjXlq75YQ6xH6utVX6wgcFoLa767XzVEe7TL4Tec1j4cfsNrndXhN+r3ruTwG/V7aTr8htdamsNveK0tO/yG2RrPV4PfMFtnN/iN8r2rOPxGAV++HH7Day3D4De81lYdfsNrHcnhN7zWOR1+o4Dvag6/UcCXs8NveK3U9z/7JyQEc7W7w294rSOW/Nk/oSEYdOTwGxV8sfV99U9oCEYdOfyG11qTxW/M145Ff/ZPaAjGHVn8xoTtYPbdHiYBFgOPLHpjxHYs+bM9TEMw8sihN7zWDrHv9jANwdCj+WwP0wAMPXLYjfq9FHf5sz1MQzD2yKE3vNYaK/5sD9MQDD4y6A2rlY3vsz1MQzD5yKE36veSJd+wWgs3+W4P0xAMP3LoDau1V4fesFqnJd+wWuN2MuiNAr5kyTes1vgNG/SG1Vot+YbV2i35htU6i0NvFPBdlnyjgC8Ng95wWoul3nBaW3LoDae1W+oNq3U2i96o2MgOvU2GIVn0RsFGt+iNgg1LvWG1xjEOvVGw4ag3qveu6tAb5XvZUm84rcVSbzitrTn0htM6LPWG0zot9Ub93mWpN+r3sqXecFqrpd5wWpul3nBah6XecFqXpd6o37ss9Ub9nue+4bRWR71htHrmG0brsNQbRuv9av0b4lv5Xl9/bbT+02m4EvfhGa5vxFWeEXmf4Q/th0E3jhDCL2f01aB7lgpyrRqiHiGEGmLE1v16JeRLCF5ifiKkNUSJrfv1SsjXED227tcrY1VC8BLzEyGtIeKGYHl3Qr6G6LF3T8+MVQ0QNwRLvhPyJQQvMT8R0hqi3RNANMA6JoBICF5ifiaAaIh2TADREPOYAKIgdszeZwKIhqjHBBANMY8JIBKCl5ifDGkNUY8JIBpiHBNAJAQvMT8Z0hqiHBNANMQ4JoBICF5idoffdszeJ0NaQ/RjAoiGWMcEEAnBS8zPBBAN0Y8JIBpiHRNAJAQvMZvDbztoLxv8Rs7e+GRISwge358MaQ3RYvP+zpDWEPMYASIhRorNe3pmSGuAGnv365UhrSHGMQFEQszrmACiIeoxAURDjHsCiARY1zEBREOUYwKIhujHBBAFsVP2LofeMOjuCSAaoh8TQDTEOiaASIiUjwkgGqIdE0A0xDomgEiInI8JIBqiHRNANMQ8JoBICHL2rndEvoao9wQQDTCPCSASgpw9S77h0N0TQDTEOCaASAhy9rJBb8Ts3RNANMQ4JoBICGL2ikNvO2bPkm/UQn4mgGiAdUwAkRCk7CWH3jDoLku9YdBlS73tmL1s0VtsI5ql3ojZuyeASAhi9iz1tmP2LoveYh9xTwBREDtnrzr0tnP2LPVGzt6w1Fuc0DEBREPUewKIBhjHBBAJEduIaqm3nbNnqbeds2ept5pfgxBUetsxe5Z62zF7lnqjFLJa6o1SyG6ptx2z56i3WucxAURCxCYiWeptp+xZ6u1p6fWghfYXZ/XN0iOA5i8svXdn7qcists1lE/Ef3gl8v39q513BQmk11l/OZufFgfzdWeC/aaK6EECgWjUB0kIppDkROh7VhElWCDHw6XKn9GDBQLRuvwZK1ggY4OpV95zsECmD1o9q07RLfmKST2r+KqlGr+rmZeIiId9Yc17/f4N/IJoQQOsBwVCGmJCA/FwUX9VcdAkWLJn9SNin7hY8iApFTGDBjJt7eqFx7O+sOTXUM9qVQYBUdenAsajD+6na2iIOB0s+LifeMOkISoW/HrWdWuI8UiT5ZjqZyT6+Lmf1OPp4uduSup1J7r4uZuKfE508TvshmEYZ2SwW6Ye/HLYLZN/Ohx2y9SDV4fdMvXgyWG3XOjid9gNw/BqDrtl6sGzw2650sXvsFtsMbDgDXbLFIQXh90yb+zg9Xmpn9Hp46d4YKnfdirCq0NvmYrwuMunylWxw3i06bBbHvTxx9e9JvXCKQjPFr1N+vh5p6V+qyZ9/Ba7UQ9eLHajHjy+6HMN9awWffwWv1EPHrw++6XegdSDW+qtXPTxxy83L/HKy0Ufv8NvhXpw7nL54R9qhBnciy+KiqCP3+G3Qj143OVzNvHLXqgHt9RbyfTxx2fUKd4ehXpwS70V6sGD2VMa6pUTD2Spt1Lo43f4rVAQnh1+K5VGfoffSqWR3+C3QkG4pd6wDOlE0fmtNBr5HX4rFIRXg98K9eCWeotN66Nb6q10+vgdfsMyvCz9VgZ9/A6/hRR5FEu/FerBi8Vv1INb+q1M+vgtfqMgvFr8RkG4pd/Koo/f4bd60cfv8FulIDw7/FYv+vgdfsMyjE2gwW+VinBLv1Uqwi39FouHB2/wW6Uk3NJvlZJwR79hGV6WfgvR88iWfqtUhFv6rRYa+Q1+q5U+foffKgXhln7DM0yWfgvN88iWfqsUhFv67VfP8Bvim2e4vkzmeHuGv/ZdX49keoZvxD89E/12GWD66huS7fzeLX45oy8u4DjUlIRoZDu/d4saohxqSkOQ7fzeLWqIdagpCdHJdn55YRqAbOe3F6Yh1iGmJMQg2/nthWmIdqgpDUG488sLkwAzH2JKQ5Dt/PbCNMQ81JSEWOlQUxqCbOenF6YdPw8tpSAoG0wfL0xD1ENLaQiSnd9emIRI16GlNATJzm8vTEOQ7Pz2wiREvg4tpSFIdnbYDRfw1lIagmRnh91wAW8tpSFIdnbYjbLBW0tJiEqys8FumIBtOOyGCXhLKQnBSKfksBtVg7eW0hDz0FISgqFO2aE3TMCPltIA49BSEoKZTsVhN8oGby2lIcahpSTEvA4tpSHK8SZTQ5Ds/N4raoh1vMmUEEx1+nhhGqI/8scL0xDreJOpIHAB+8cL0xDteJOpIeZjfbwwCZHy8SZTQ8TT/+OFaYh5vMmUEDme/h8vTENUChpee0UNMY5XmRKiJCoanntFDVCPN5kaIh7/l8NvmIDdkm+YgLMa/EbZ4GWpN8oGk6XeMAFLc/gNE7BZ+g0TsC+H33ABp6XfqBu8isNvFA5mS7/hApbh8BsuYKsOv+ECDku/4QLOafFb7CMuS79ROJizxW8UE1j6DRewdYvfmOtk6TdcwPtdpoaox7tMDTGOd5kSgrlOyeA3TMBm6TdMwGHpN0zAZek3CgcvR79RN5gt/YYJWC39hgnYLf2GCTgs/YYJuCz9RuFgsvQbhYPZ0m+4gNXSb7iA3dJvuIDD0m+/uoDfEF9cQGK6/soF5C44moGz2QqcPw7giH//8zHz46sT2Nkrx8mvuLe/ndVXe6s16qf/4jq+2lsj8wuKm1tDDPbKzklRzz42fWQVsR57akqr6mdQz777aLt64dSz04adpnrh1LM38Vgq2bnjZtzWIoJd8g4KqyqCXXIg4k7SEFhblcXOfaqISndkUKD8EYPmyHgeZfHCcbZeI83FC6chdt8w+llRyb4HPwz1wqlkryzHEpccZ+slIsWvOc4WWSGrZPFrjrO1WI/YC4gIStkZD16neuWUsvPLjY2piojn5Nh2m3rllLIXh0Swtp6NbyqzYW0Req0zGw2xqTonRSl7dpgNZ+uV76OeFMHB3WE2nK3QwfHca+otKNPBSI/9uIrdpYpgc+zQGo7Ws8thqKc/2RxbtDZjc9wcAplsjteOyhIRKzbHy6K1xeaY3pmi3niLzbFFa2s9XneqeB0YWi8FJX7HaYS9IHSagEQEm2NCFKr4HcfQeiaPq7SGoRVyYjEmQkXE8z47tIah9crPE1eQRtjLEmw0wmaiZOI4EVHYHBu0hqHVLMGGoTWKQ2sYWssSbDTCXsOhNRytrC4Eb8Szw2x4Wc0SbHhZozvMhpe1LMFGD6wljbCycneYDSurWoINK+vZFagyG1bWsAQbVtZqFrPxStwSbFhZr7R59con22KL2Xglbgk2rKznr0pmtrVjsQxmowc2VYfZsLKKJdiwsvZ0PZnZsLK6I9iwsqYl2LCyliXY6IFNlmDDyiqWYMPLUtchtgzdkmyYWNOSbHS/XpZko/s1WZINE6s4kg0Pq1mSDQ+rW5IND2tako3u18uSbL94WF8R3zys9NeTQ3ZlxFnJVuxKto24Xt2v+Xv3a3mM1J/VQ9/O5qedUftjzteEFA0Rz+wLoYI/KyIKs06pHhKP70w6fbqzImIx6/RZPaQheg7t9F5fDRFfgqs/q4dExArt1J/urIaIR3au/Vk9JCIaw06f1UMiYjLs9Pn2SUPMxLDTZ/WQiKgMO32+fRIR83G9no4iIh7Zuffn2ycRUR+VNad6SESMkFD9+fZJQtDLOljzLP6q8lUYdvqsHhIRIxTUeL580hDxxM4sef4LkvqCKKGgnrsRFdEf/SlpVUBsild/vnzSEDk/VnfYDa8vFYfddi/r5bAbVWx16OxGJ2uvDrvtTtbksFuu59NLQ7RH8K7BbruTNTvsRhFbXQ670cnau8NudLLO4rDb7mSNe3y/WxcRNWSUw25UsZXg9f1uXUPQypocdqOVtcdNvt+ti4h49jeL3Whlhdd5ty4iYmfMmvNuXUTE079b9Dbj6R93+ZS5ilbWy2K31Rh1+ny3LiLi4V8detutrHGbJ5VJqGErlnajhq1Z2m13ssZdvt+ti4j6mJZ6w/K7gtf3u3UNkePZb6m33ckaS77frYuI8WiWeqOTdcDs8sN/d7Jyl/NuXUSMx2WpNzy/eO4b/LY7WS31RidrWw6/0co6LPVWWmbWqcFvu5XVUm84f3k4/EYVW60Ov+1eVku+0cs6psFvZcTj31Jvu5U1O/yG85ct+UYRW+0Ov8UuolvqbXeyWuqtrCsOsvgtdhHJ0m+7kzU5/EYNW7X0G52svTn8tjtZLf1Wr/VgvXV+w/lL3eE3nL9i6bfdyWrpNzpZu6Xf6GSdln7brayWfsMATJZ+o4qtWPptt7Ja+o1e1m7pN3pZp6XfcAAvR7/tVlZLv1HEViz99stEi6+I3w3A+SwU+d3/+zX1rj329N/c/ozLfrt8+V/i3//y8gDrn/Fxn//yz89/79EVf//9A2OrCj0OnPsvH/3jmhjFc719HAnQjhtFAsROtb5dHAWQmMTzuU80RDyq5tvF0RCxU+VxmLOKYBJP3gVVRUXU530y5Y+IRxXU2HHvJQSDeMrbxdEQ9bhPNEQ8qsbLxZEAzOH5bHM0xOlRa4jTo5YQ9fSoNcTtUWvHnx61hjg9agnRTo9aQ5wetYY4PWoJ0U+PWkOcHrWGOD1qCTFOj1pDnB61hjg9agkxT49aQ5wetYY4PWoJsQ6PWgOcHrWGOD1qBYFxfnvUGuL0qDXE4VFrgNOjlhDp9Kg1xOlRa4jTo5YQ+faoteNPj1pDnB61hCinR60hTo9aQ5wetYSop0etIU6PWkOcHrWEYOSYpdxwzpMl3XDOb49aQvTTo9YQp0etIU6PWkKM06PWEKdHrSFOj1pDHB61BJinR60hTo9aQ5wetYRYh0etAU6PWkOcHrWCKNfpUWuI06PWEKdHLSHS6VFriNOj1hCnRy0h8ulRa4jTo9YQp0ctIcrpUWuI06PWEKdHrSFOj1pC1NOj1hCnR60hTo9aQrTTo9YQp0etIQ6PWgL006PWEKdHrSFOj1pCjMOj1gCnR60hTo9aQszTo9YQp0etIU6PWkKs06PWEKdHrSFOj1pDnB61gsA5vz1qDXF61Bri9KglRMqm9VbT6VFriGV6bzjnydJvOOfF0m81nx61hCinR60hTo9aQxwetQSoyfTeMM6Lpd8qM8cs/VaZOebot8rMMUu/YZz3Z5fQ999t+r1qlarw+i0r8jqd82DN7Yr/859/jN3RvbudxuGRv+fC1F1F+7sHvLVV/KpS+f5pP11jtBUVuUtFkBa3a+mTCkBa7YLsoSK2tIrLoFhaQhAWR8t1yeplZKQVlyF/BMrq2fSpIlBW8RGtqIiCsuIymnpWBWXFZQx1OcpWVpSJTxFBVlylPYr7SUNsZbVWz3/xrf+JQFkFIihIRLQtreJb1dSzakgr1mPJn4G0CkQ8dkQEYXF9V7irV97rwSQaYmsr3sJ0EUFaHGvep3p7jK2t1lKve6Cs4viS1HMiK+7z6lFDoKxYjSF/BsrKYjey4pbDbkTFdYvd1hZWDrsthBWL0cWzytcWVnHQEM+K7o8JrQ/xe4trvN/YyuyGa5ymw26ZpLjmsFtOW1cZ7JZJilsOu+W8dZXBbvjGV3HYDd84Xw67ZaLihsNumai46rBbrggrh90yUXHTYTd846s57JZD7uXssFsmK27p7JZJiusOu+UWz/7isFvu8eyPFZ/ySREUZ0m3TFBckPpsU70BB9k3DrtlguJiwZMOIPrGIjci12H1dakXTk4c652WeuHkxFnaLa948sc9PmdW779FAI7FbuTExZKH9hGvg+nky9JuuMYp7vEUj38VMXipabBbIScOXh9TvPISm4jOPS4/nwpBcZZ2Yzr5irs8tv7iXY5rnCztVjIJOPHbLUu9DpLiLO1WSIoLXk9XVq+8NN5rGvzGePJlqTdc49QMfiuVBByH3wpBccvht0JQnKXeQrs8ZjH4Dc/4ssQbpnEaDr+V2EOU6vBb6SThOPxWYg/Rp8NvZZCE4/AbrvGVLX6bROFY/Ba7iNItfotdRLPUW5lE4Vj8tjKvNR1+W0ThWPwW24icHH6rF1E4Dr/V2Ea05vBbvYjCcfitJqJwHH7DNb4s/VYTUTgOv9XYR1RHv9VcTeut5sFrTYPfarlM7w3T+HL0W2ieR7b0W63X03qT+a3GLqJZ+q3WbnpvtS7eahr8hmvseW+/usZfEF9d4/ZlctAv9dbxg56pCeVTb41D/MpZSOP9N6m+POT026cwwpIkv3ylrx/340Jo+5skyaSpAaiAzuSJTdIsNAQjrALR2/ffwRcEI6zKa3cqIej7eybiLBWxZ1i9dqcaghlW+cVvEoK+v8F1dPU66PurXMdQr4MJlonrWOp10PfHmm/3TUPEQa28CE5DjEfaCWTi95AS6PxMsRoqojB24eW+aYjOAPkXwWmIxdiFl/smIWj7Y8mHuuJ0/bHim980xHoUbvLtvkkIuv5Y8c1vGqIxdeHlvmmIyQD5l36TELT9seTbfdMQjQHyL/2mISZjF17um4RgguVVXu6bhojdP0u+9ZuGGI9ZLX5jgmWy+I2+v2nxG31/zeE3iqAbay5eNyXQnRXf6k1D9MeE17d6kxDMrywOuxEeki+H3aiBLsNgN0qgW3XYjRLokRx2owh6TofdeNt9NYfdCA/J2WA3aqDLctiNGujWHXZDfo3isBs10Oty2I30kGs47EYNdK4Ou1EDXZPDbtRAN3h9704lRL8YuvDanWqIOCg77EZ6yBV3+XN3KiFGPPwt9UYNdI01f+5ONUQ8/C31Rg30iLv8uTuVEDMe/tXitxlP/2Tx21xMXXjuTiXAioe/Jd4ogo5v7Wt3qiFi62+pN4qgVyx50gGNiacGvVEDXeD1vTuVELGLqNzle3eqIeLZb6k3aqBn3OXP3amEyLH1t9Qb6SEplvzpvmmIwchTg9+oga5xxNN90xCFkacGv1EDPYvDb6SH8E3X+Y30kGSpN2qgS3X4jRroZqk3aqCDqAx+owZ6WuqN9JBQoAa/kR6SLP1GEXSx9BtF0K0Y/EYN9LDkG0XQczj8RnrIZek30kNCWBr8FruIYsk3aqBbs/iNTsps8dsqj2npN9JDru7wG+kh2dJv1EDHPwa/UQPdLP1GDfSoDr9RA70s/UZ6yGXpN2qgs6XfqIGuln6jBrpZ+o0aaM99owZ6WfqN9BDPfaMGOlv6jSLoauk3iqC7pd8ogh6OfqMG2jPfSA9Jln7Dzr6bPL7a1F/sbBJmR7riG/w57O+nm53LYycD5388Z1jthOBXFTRJwel6JoVsN/sXRPpnJsu8Jl79/Xpli3yxDD8zn7+czFfH8DPyWQP0e+KzBCBs+D3wWQOUe96zBuifcc/a8eue9iwBSBp+zwrUAO2e9awB1j3qWQIQM/xM6RaPb/ecZw3A+4bXFHsJQMTwe0ygBqj3lGcNsF827BZ45XDShd8TAjUALxpeA+w1wLjnOyuAHS08X+PrNUC5pztrAF4yvIbXS4C0XzK8et8lQLlHO2uA/Yrh1fkuAdY92FkCkCo8DBLbocLVILGdKZwMEtuRwtMgsZ0p3HQS24nC2SCx/UZ2GSS284S7QWI7TrgYJIYf2C6dxHaW8DBIbEcJv2Y5S8cTJJwMDts5wtPgsB0j/B7kLAHGdc9x1gDlHuOsAfo9xVkCECH8HuKsAco9w1kD9HuEswZY9wRnCbDyPcBZA7R7frMGWPf4ZgWww4Pf05s1QLuHN2uAec9ulgCUEDhSDO/vM7lZA8x7cLMEyOme26wB6mdss3b8uKc2S4By3UObNUC5ZzZrgPEZ2SwdT+GAI8V2XLAjxfD7PvOaNcC6xzVLAIoGqkFjOyrYEWM7KXgaNLaDgh0xtnOCs0FjOyZ4GTS2Y4IdMbZTgotBY9h8xRFjOyN4ODRGrYAjxnZEcHJojIRgR4ztgODm0Bh1AtmgsR0P7KixnQ7cdRrb2cCOGGMm2C6SU2lsJwM7amwHAxtqbMcCO2pspwI7amyHAjtqbGcCO2psRwI7amwnAjtqbAcCO2oMR284amzHATtqbKcBO2pspwE7amyHATtq7Nfi1C8u3Tczb4zfD/t1jD1zTp8jwOIv+h3++yxK3S+3fjnutxLW+jTy9szoX47D6tsxCP1T4Pr3ZzjCE3fHC/9wtkLVMhO8U4j68/S/WGHxm+gBqO3r9X71zlIhnqEvDRAPzfKaaisCWjw/njNRRcDkfTO5EOIpxUNzpgC00kVA5W1zEBHfNgkw4/nBOizxE+KhGUI1VjSJn0DIKCtd1ONHPD6egyg1QDwz52sAtQio8fxgGaZ4/OAlc6wCj0wBgHlWWOfKGy4JUOL5Edc8mvoJoWonqzDUT1jx/GAVVtIA8cy8WOd8ab+lHS26nkNjRcDi7XKoqSqeUjw0Gwvdm3hK8dAcLHQd2h29g0VZ6by0Oxrz7KoGjWGe5WTQ2E4VnQaN4Z61ZtAY9XQjGzS2I0WXQWM7UbQbNIZ9lotBY9hnlZVO4v1DmugwWIxCuhG39JyX+O3u/bGSQWM7SjQWOtUp/lZHeeSm0xjuWY07OqUsXjMxosuhMWJEu0Njs/EiOb55VbyGGQ/1y6ExMkTjjp6htkVAPNSrQ2MrHuqx0Kl07aJ3gug0aCxEyWPFHR1HaReNe5ayQWM7PtRRYzs9NO7oubL27aZwrjtqjLq5Gcs8m/gBJIc6Ygz3LMVCp1zFa2YqriPGdmwo1D2HeM0lnupNZzEyQ6ejxXZk6DJYbCeGOmIM96wUg8Vwz5ohxnZa6DBYjMbv6YgxzLPLEWM7K3QaLIZ5VhwxhnnWssFiOynUEWM7KLQ7LDYZEOKw2GQ+iMNipIQ6YgzzrDlijPq4kRwWIyLUEWOYZ1fTWQzvLDtabMeDLoPFdjqoo8UojBvFYDG6vJehxXYyqKPFMM+yo8Uwz6qjxXYsqKPFqIgbhhajvXs5WmxHgjpabEeCOloM76w6WoxauO5osZ0H6mgxOruXo8V+9c5+An54Z3Mryt+P+qUOriwMrJJe1W7paXHtPu5/PP/5pSKOv5+/f0oIhxn39MJB//l5Py5jltjBxeED1lCO7w9q4IOOxePjkG3lsbsSjg+aJDU8uF47/2DJzWFjauezVtyenH/XjqeLnUCT+E1rF0ATOxaAdOh88F5rTehLAQQ/XnO7T1UEtMcuqMxJBczH7iqPb6EGyCEXWK9ZxWvI9UGy/+pdPKUQzy95IQKCIPe9c3XxGoIhnwGC4+tN+gUwYuO2v6TiStfr8Xp9kUVAyAVWumTtPqACdbHSfYgXHQz57DSZ4kWToLe/GZd40VSgPqdKiRfd1gO5IJMXNvq8DPbaJajPQF/xbu4rdm7GGY38eL1fFK+ZElQYslX1E+ajd4fBQj2/gjvEa57i+lJ52h36WunxMs/FO3nV2LAFoDbxS03t6c6+6dqXGvt8Np0qYlfx2O+7ataueZeeLoO9KD0t3WAv3PNnAIPIXrv0dBnstUtPu8Fesa14oMpl9qL0NCeDvXbp6TTYC/e8NYO9cM9f1bPiRVN76kivXONp7mgvak9pypLZa9eeOmdE6ekw2AvzfFSDvTDPl6O/dvHpjoZt4g3X42EuLnGPx/izsl38fVJ26ugvfPPBzbyGePYjHuPZITDS8By2oOp0Twq8VEA8xR35xTE9SHu2Ii4DVaeO/MI3X23fmeI1hOpPjvzaVaew9mzaRVN1WrmX97ZfAsRj3JFfu+p0/5KGdqvtqlNHflF1+nIutIWj6rQ48mtXnbKzvZZ4DWRWGfIL33w68mtXnc7tgWkUQNVpcuQXZafP9DCRwCg7FX//1JsOg79wzKcjwEpo/u01qPy1600dAUa9aTEEGI75s8NL5K9dbuoIMBzz2Qz+KqH5L0eAUW76UhbiNVBu6ggwHPPXe3nxomc8yC+Hvyg3dQRYIZiqOvwV4j87AmyXmy6Dv3DMLfMLy3ynOan8tetNDQG2y00dAUa56cvD1yiAclPLANv1po4AwzIXDTDM8uUIsF1p6ggwKk2zI8CoNK2OAMMtd7Zru9DUEWCY5Zb/RaFpcgTYLjR1BBiFptURYL+a5d9s8B8P/mfwz28/95fJWUTj7kLTdRaXMjUrXU8H/dfj3r76u09811+ydK/k1J+Fo4Xi7yCIPr6ezU9bkNrvOL5OFUDtd3s20GsAir/jnHsVP6FS/B2A2sVPqBR/d8p3kwig+HvfYlMDNIq/t1ZuIoDi7wCMIp5So/g7AK2Kp9Qp/mYdunhKneLvzldH/QSKvwPQsvgJg+LvAJT6/Vb4CaD4m3rrtkQAqTD78dc1wCQUhnVY4ilNMmG4fy7xlCaRMNxAWTylRSJMAHI8QDQAgTCsw1Q/gTwYbqBL/QTiYLiBtF8Sc5vWc0eh3dLU415Pgard0tTj5qbTGEObajZojJlNbRk0xsim0Q0aY2LTKgaNUY6bLoPGKMfNw6AxxjXVatAY05p6MmiMYU1jGjTGrKbVDBqjHDdlg8Yox83LoDEGNdVu0BiZMr0YNMagpnkZNMacpjg2xEISL7rHY70aNEY9buGWXk286L4edRo0xpCm3gwaY0bTjCufsf0SAfPBFcs0NuOpHtQ9WxK/3TOe6sWhsTmZNUwSgXjNsePsjhxjOtOEuqe4Cise6tzRKWvXzDHJUWOU45a4o+do2v3GYKbmqDHmMvVY51TFM4oN53TEGNW4sdkMTT7ET2CwqyPGKMctjhhjIlOLG5qNpAiIZ7ojxpjHNOOGnr1oXyXKcS9HjFGPm7PBYtTjFkeMMYypdYPFmMU0HDHGKKbliDEKcq9hsBgFudkQY8xhqslgMcYwNUeMMYVpNIPFGMK0HDVGPe61dBajHDd3h8UY4+qIMeYv9cthMarMHDHG9KVVDRZjhKujxajGzdNhMQrNHC3G4KXuaDHmLo1lsBhjl5ajxSjHTcVgMcpxi6PFmLlUHS3GyKXuaDFGLk1HizFxaTlajHrc5GgxCnKLo8WYt1QNLca0pe5oMYYtTUeLUY97OVqMelzLGqMetxha7BeH8Qvgq8PImPrfDvtlylI89p+5lP/0rLbFW+SfXZE7z2b295HXPw738YefGJvSXnFmZ/324T+9BHpEKWXcTKsASEud6bXtlQCxT27pxbQSYFLg9tr2KgCiUtf1oloJUClwe217JcCgwO1FtQqAHlGWaVOtBKiEery2vRJgxLc3vahWAdAkykrvba8EiGfqs/axi4BOpdvLvVMANImy0ptqJUCh1O3l3kmATqnbi2olQNxm2PibahUAXaKs9HbvJEDskzkmi7+kEB7X833a0AA0iT7fzoi39GpUuj3dO+n4SaHbi2kFQKZHNL9SfDVAJez25d5JgEnYrU5jmR7RYtBYpkf0Mmgsx660DYPGcuxKRzVojBrIlQwayyE8rmnQWC4Xabc6jWWaRLNBYzl2pW0ZNJZjVzq6QWPUQK5i0FimS/QyaCzX2CgPg8ZyyxS86TSWaRNNBo3l2JWOadAYRZAr7umnYpQAjcBbmcZyn9S7vRSjAhjxVO8GjWW6ROOWfipGCRBP9cvhsdiWvo/Rjq+Uu732vRJgEHdr0Ni6KHd77XslQCHu1qAxmkRjnfe+Vzo+9smOGCtXPNPjy/3c90qAeKY7YqzQJOqIsRK70h439HPfKwHime6IMabCU+Pz3PcqgBwbZUeMxfaPwNvXvlcCxFPdEWMldgId6t77XgkQT3VHjDEP/nLEWKFN9DJYrMROoBhirMRGoFWDxQpdoo4Yox5yToPFSmwELkeNhR4m71ZmsRL7gLIMFiuxD2iOGCt9UfSmsxj1kMsRYyX2AdfQWazENiA7WqzENqAmh8ViG9AcLVZmPNIdLUY55MoOi8U+4HK0WImNQO4Gi4WApvdTZ7EaGwEsUZnF6jUew9Fi1EOuarBYjY1AcrRYjY1AdrRYjY1AdbRYjY1AN7RYyM7HcLQYRZHL0WKVOjVHi1Xq1BwtVmMfUA0tVilTc7RYpUzN0WIURS5Hi1XK1BwtVilTM7TYr47lFyvyd8dybtnw21G/Zm+y/do25D//+cfIuySS/16PMIFfjiNT8zM2p38ZE0+zKZ3ONGt/+fQfF0WvKR4qtarS8WRIvsr/peN3hOSzUlU5fu0EyWero3Q8AZKc/xCPJ0Bye8ZZOj7Rb1roaLm0C0g0nFI3P7J2RomG09GejY4SgIbTVzWvCNgJks+qdg2wEySfdfYagATJ9kyZkAA0nOb2jJnQADtB8pkzoQFIkGzPTkcJQMMpnS0U2msAEiTbs09bA5AgKS5y3eGRz15tDbDDI5+V9hpgh0c+e7UlQNvhkc9Kew1AeGSTuQITfnIz06stAeg17QZ7UQaci0FfiY7Ty+AvTPg2DALDhB8sNK1CGmCHRz57tSUAg07gbHq1NQDhke3ZKqQBSI90KIxBJ8uhsLXTIw0Ko+W0OBS2dnrks1dbAVAHnFlp8YwyHafQNq1CGoDwSIPBcOHHNBgMF341g8GoA07ic40S4LwMBss0m3aDwTDgezEYDAN+XgaDYcCvoTMYFcCpGgxGBXBx9FdmxokjwPDfu6PA8N+nI8Hw39cyGIwK4ARt7/2PBNjBkc9mRwlA0+llMBj+e4+beTc7agCSIw0GowKYaoXd7KgBSI40GIwK4NLas9lRAtB0mg0GY8TJchhs7uDIZ7OjBKDn1NFgVADnuKN3s6MGIDhSW4FCu2ms8e521ABkRhoMhvk+uZvpdpQA9Js6Gox9ajY0WEk7M/LZ7agByIw0GAzvfcTNvLsdNQCZkQaDUf17BWvvbkcJQNOpo8EKTafJYDC89zYNBsN7H44Gw3tf2WAwqn8vR4NR/Rs8qTNYoevU0WCY7/0yGAzzfRgaDPN9ORqM6t+UDAaj+jc7GqyE/q/NYDDM9y5qMIz3sRwGm5lJKgaDhfRPxWGwkP7F0WAlpH81NBi+OxaYzmBreh4YvvuaBoNR+Wu5YFT+xnE6g9VE0Z7BYPju3dFg+O7T0WBU/l6OBqPyNzkajMpfywirhaI9g8Ew3i0jDON9OhqM0t/L0GBU/iZHg9VKzZ7BYHHreD4YxvtwNNivRvo3i/zHA33H+Pz+c38JF0ivAfOf0IBf/ja9Yng/zvqv/5WZVNtE/v2/UDiMz7699lep8I4e+G/F+lK9Gf/xVfb05eR/Ok1n2ZMCGGfZkwQ4y54kwFn2pAAmZU/pVb0pAY6yJ+l4yp74pVO9qQDWWfYkASh7elVvSsefVU8CgADLNd7VmxKAsqf0qt6UAGfZkwJIlD2lV/WmBDjLniQAZU/v6k0JcNY9KYBM3dO7elMCnHVPEuCse1IAhbqn9KrelABn3ZMEoO4pvao3FUA9654kAHVPBo2RYHnXPSmARt2TQWNEWN51TxLgrHtSAP2se5IAR92TdPxZ96QAxln3JAHOuicJcNY9KYB51D1Jx591TxLgrHuSAGfdkwJYZ92TBDjqnqTjz7onAUCM5V33JAHOuicJcNY9KYB01j1JgLPuSQKcdU8KIJ91TxLgrHuSAGfdkwIoZ92TBDjrniTAWfekAOpZ9yQBjron6fiz7kkCnHVPCqCddU8S4Kx7kgBH3ZNyfD/rniTAWfckAc66JwUwzronCXDUPUnHz6MhUAHENqB3h8VmPRoCJcA8GgIVQOwD0nBYLPYBxdFihFm2ZLAYYZbd0WKEWc5msBjVm5ejxajeTJ8adAlQjoZACdCPhkAJEA91R4uRZvlpCJSOj2e6o8Wo3syOFiPSsjhajEjL5mgxIi2HocWItJyOFqN683K0GNWb2dFiRFpWR4sRadkMLfar6fQT8NV0qj+DL3/pN7/i6fHTdHr/7TaI+tNa+vW/cJ1MTN/j1se7+/wH/v+z+UR9PmHlha/oz4v44vQsZury45IGoED/maE8RUB8pwex2pQISYD4ThPs2vPXhfhq9cQXOu6aIp4SBfozALmJp0SBfiskjGqfQKdujdvgqkn7BLyetghF/f7t++r1jGcs/dIAFOg/4827CAihykp3yEUChFBlpcVLpjyfdS5JPCHK8wly6E28ZOrzGahTh/oJcQzrnJd4ydTns85Ju3to083PqRFDBAQl9ACMqt3QGD2dZW5dPCXq81nmMsRToj6fbO0hflMpz2dSWSviB1CenwwSw+ep0yAxfJ4e6xzqWfwEUmSzQWIYPTi9KVXxokfo1G6QGG26BeYeU7xoUmRZaHnhZujU4ZAYKbJxR89xifcbKbLJIbF1MVQ3MEu8hhU6tTkkRops3NHBfOJFr/Xoy6AxrJ7ZDRqjVuiKW3qKxEqfbr4MFqNPNzaToWundjvg9LRq0BhOz4iFTurxOXTqNFiMl4kXzL0u8ZpJkeWOTku85pIeZRk0htHT4o6O69DuaLTpcLQYRk9cr05jlApdjhajTzd2eDqN0adbHS2G09OmQWM4PaMZNIbTsxwtRq3QtQwao1E3O1qMRt1aDBrD6umOFsPqGcOgMbye5agxCoaSo8bo1M3ToLHYB1RHjGH1xJ7BoLFVH8NRY1g9q+s0Rr1QcsQYfbrlMmgMp6cOg8ZwerqjxnB6ZjJoDKdnOWqMPt3kqDH6dIujxrB6qqPGsHq6o8aweqajxqgXuhw1RqNuctQYnbrFUWN4Pc1RY3g93VFjeD3TUWN06l6OGvvV7PkJ+GH2zJ0k+/tR+fR64jlez2zB7dn0lwvDZJJ/uZ4TSv5b7gytTAz16u3rp/64mD08r+IJiMfHNyTvGY9NOj7t2XmF6sQsAlrsRrmCuUQAs/O4hC4CUqJRB7tLvIY9O+85V0kEMDsvACOJp8TsPNY5LxXA7Lxdb9ZFwGA7So9b0QB7eF58QtyuIqDQqUObrng8s/OeEwY1AO1Mr4nBIiB0H5Nnh/bdTnuCXhzf1hABKzajAag8VRTAnqAX1zya+Al0M7HObaifwAQ9VmElDUA3E+ucL/G3tEfoPUdQiYDJZpSh8OIp0c1UDBJLe4Qe6zDEO5puJlY6L/GO3iP04qJ7ET+BEXqsdG3qJzBCz6Ex2pmaQ2N7hJ5DY3uEnkFjlB82VroV7ZbOe4ReAErTbmnG3Sy4uy/xE/YMPYPGKD/MVaexvEfoGTRG9WGbBo3lPUJPp7G85+gZNIYlfS2DxvKeo2fQGMWHtRg0lvccPYPGMi1Nw6CxvAfpGTSGJx2bUZ3GKD7MjhbLe5CeQWPMz+7ZoLFMS9MyaIxpN/E9jQ11Fr/d9DQ5aozqw9iOxo5a/ABamhwxxhDtHgsdkkm85hFP9eSwGH1NUPcc4jXT18RCJ/H2oa3J0WIUH8ZmNDbUl/jlpq/JEWNMu5mxzqmKMh1L+jLEGMWHKW7olLJ2zRQfFkeMUXzYHDHGDO3ODX1V8Rpoa3LEGJ50bMXW7FP7clN8mBwxRvFhiYVOpYsXTVuTI8YYoj2uXW4hXjRtTY4Yw5O+HDFG8WE813UWo/qwOGIMG6A1ncUKbU2OFmPYzVwGi2FJX44Wo/owF4PFqD6sl85iFB82R4qVEc/0arAYw26Wo8VwpK/psFjsA7KhxSg+rNlhsdgGNEeLlXURXmOw2IpHenFYLLYBydFiFB/GY1pnMYoPq6PFmKTdk8Fi9VqeL8a0G4wxmcWwpJOjxSg+zI4Wo/iwOlqMgdqWM1aZMGJoMYbdWMYYxYfJ0WIUHxZHi1F9WB0txkDtbmgxht1YvhjDbpajxSg+tIyxXw3pb1bzDxGwkwF+/7m/ztMur1DI+Itv1YQlv/4p193e+i8vt/ofnxncIOoXIy/WJ2D9+4l8M/Jir0Nj5hQBZIbx2bwIlABkhu0OXfGUeIB3JrcTlCYByAwLQGdVJQCZYQGo+AQKgAc4w+Sz+Evi+V3jmntWP4DMsADUIl4zD3AWOjfxmnmAs9DXEE9pkBnGMohnxPN7xfHjGiKA3LAANB5NEoDcsAAUbAIFsMgNYxmm+Ak8wAe3j3g4sWHcPEm7ZFy8sm/cop0QLl6dccmraZeMi9cbq9C1rypDqyfL3KZ20UytJmQsnq/a/YyNl3pc9KjqJxAbZpAYNl67DBLDx+vDIDGmVs9qkBg+XhC7TmL4eGkaJIaPV5pBYvh4Leskho3Xl0FiDK2e3SAxbLyrGCSGjZcvg8Sw8UosdKpJ/ATmg1WDxbDxRmL2lfhNYjzYNEgMF+9qBolh4+VY57mGeEqMB1sOjTEeLJh79kv8KjEerDg0NskOi99qXuJFMx9sODTGfDDuaPl2WGSHcfsk8dvNgDBHizFNccQdPWfTvt1MrV6OFsPIu4K7Z53a7YCRlx0thpFX45ZOaYgXncgOM2iMsdUD7p6XeA0MCOOWvpb29cbIS44Yw8jLcU9PkZXw8aqjxfDxejZojKnVwxFjTK1eXacxbLzkaDFsvOJoMXy8Ogwaw8frjhpjaPVMBo3tDaCjxvDxUjNoDCOvOGoMI68ug8Yw8no3aIyx1dNRYxh5vEXWaYwBYY4aw8mLL6BBY4sAMYfGGBA2HRpjQJijxnDy9s5epTGcvLQMGsPJK44cw8lrRacxjLzhqDHGVk9HjWHkXY4aw8jLhhrDxyuOGsPHa44aw8gbjhpjavV01BhG3uWoMYy87KgxjLzqqDGcvOaoMZy84agxxlYvR4396uT9BHx18uaPjLtf+4jjuZ8UJ+931+76bXAMXcJfpljXIyXq56n8tCPQLZ9kAgUQ53+nREmAcqRESYB+pERJgHWkRCmAWo6UKAnQYw+ZXmF3EmDdKVHK8SFc2mdUsQRoR0qUBAjh8h5VrBzf8xESJQFabCHfYXcSIHTLZ1SxAgjdcqdESYAaW8j0CruTAONIiVIA6JbPqGIJUI+YKAkwYgv5DrtTAOiWT0yUBChHTJQE6LGFTK+wOwGAhXnHREmAEltIg8awMO+YKAmwYgtp0BgW5h0TJQHimGrQGBbmHROlABAun5goCdBiD2nQGBbmJyZKOR7h8snslAD1iImSADP2kDqNYWDeKVESIHTLMGgMB7N/MjsVQOiWOyZKAoTy+GR2SoBxxEQpgH7dMVHS8eWIiZIA/YiJkgDriIlSACHP7pgoCdCPmCgJsI6YKAUw8xETJQHaERMlAeYRE6UAVj5ioiRAO2KiJMA8YqIEAA5mc8QYDuYdEyUBxh0TpRyf0hETJQHqERMlAcYRE6UA8nXEREmAcsdEScf3IyZKAcQ+4HLEGAbmHRMlAfoREyUB1h0TpRxf45HuaLFS45hksBgG5uVoMQzM7GgxDMyaDRbDwGyOFsPAHN1gsdLjme5oMQzMdBkshoGZHS2GgVk/kZ0SYBz56QpgXkd+ugSIh3pzWCw2AsnQYviXeTksFvuA6mgx/MteHBZb6whQFwD1yp9jtOPjmV4NFsO+LI4Ww7+s02Ax/MvuaLGa4pluaDFmbyxHi+FfJkeL4V8WR4vhXzZHi+FfdkeL1TKO+HQFEPuAy9Fi+JeWMYZ/WRwthn9pGWP4l93RYr/6lz8BX/3L9SMuMf398C8Z8izZlx+z8qp/xt72Y2Ry3GuqNX/eqV8vTNDV0+hs93F5/hkC7vOJk974+JvnxI72+lk/zuPHrvE6doE/r/DLNrMcu0AJ0I9doARYxy5QAfC29bMLlAD92AVKAPqa3maWAuB164d6JAB9TW8zSwLMYxuoALAtP9QjAdqxDZQA89gGKgBsyw/1SIB6bAMlwDi2gQoA2/JDPRKgHttACTCObaACwLb8bAMlQDm2gRKg39tA4XhGQt7bQAlQjm2gBOjHNlACrGMbqABwLd/bQOn4dmwDJcA6toEKANPysw2UAO3YBkqAeW8DleMxLavBYsS83dtACTCPbaAC4G3rZxsoAeqxDZQA49gGKgDetnaDxYh5u7eBEmAc20AF0K9jGygByrENlAD92AZKgHVsAxXAyMc2UAL0exsoHb+ObaACIO65OyyGa1kcFsO1dNQYMW+fbaB0fDu2gRJgHttAAUDM270NlAD12AZKgHFvA5XjCXt2tBhTIe9toAQYxzZQAWBaOlqMlLfuaDFS3qajxZgKeTlajKmQydFipLwVR4uR8tYcLUbKW3e0GClv09FijIW8HC3GWMh7ipYEaHd9hHL8L1WUPwE/drKtb2/nr3ayv/TWlVdvnbLV5JjUntMnr2dc/88inB2v8mrL+HIWP64u7XiVVyGgBNjxKs+2DO140lVebRkaYN7lzBJgp6u82jI0QL3rmTUA6SrP3jLp+B2u8qoD1ACEq7x6yzTAuOuZJcAOV3kVAmoAbIjdW6Yd3u9qZg2ACfHqLZMAO1vldR9qAEyIV2+ZBlh3NbME2OEqr94yDYAJ8eot0wDzrmZWAHmHq7x6yzRAu6uZNQAmxKu3TALsdJVXNbMGwIQwSCzvdBWDxPJOV9FJLO9wFYPE8g5XMUgs73AVg8TyDlcxSCzvcBWdxPLOVjFILO9sFYPE8s5WMUgs72wVg8TyDleRSSzvaBWDxPKOVnnVMkuAHa1ikFje0SqvWmYNMO9aZgmws1VetcwaoN61zBpg3l3+EmBnq7xaMjRAvbv8NQAexKslQwLscBWHxHa4yqslQwOMu8tfAZQdrvJqydAAeBCvlgwN0O82fw2AB/FsyZCO39kqBomVna3yasnQAOtu85cAO1vl2ZKhHd/uLn8NMO8ufwmws1VeLRkaoN19/hoAD8KgsbKzVQwaKztbxaCxssNVDBorO1zFoLGyw1UMGsMkLI4WwyRsl0FjmITd0WKYhLMaNFbozna0GK0naRo0hklYHC2GS9iyQ2MTE8KhsdnuRn8NgAlh0BjN2Y4WwyX89PlrgHn3+SsAXMJ3n792fL37/DXAvPv8JQC92dmgMVzC4qgxXMLmqDFcwuGoMVzC5aixECV3n78EoDfbUWO4hNVRY7iEzVFjuITDUWO4hMtRYyFK7j5/DbDuPn8JQLmAo8ZwCS1f7GkTzueEmi+ArzZh/pHQ9bYJf23cI+9+m4P//LIDiXL7+zGq84cPmHYKJTUt3z7lp89AsjRDTkKNiQC2SowKHOonrHtYqAQgWvo9oEoDtHtYqAaY97BQCYD3+R4WqgHqPSxUA8x7WKgEaOkeFqoB6j0sVAOMe1ioBMD9fA+o0gDlHhaqAcY9LFQCjOs9LFQ7vNzDQjVAv4eFaoB1DwuVALif7/lUGqB/hoVqx697WKgEwPx8DwvVAO0eFqoB5j0sVAEwCPc9LFQ7vt3DQjXAvIeFSoCU7mGhGoCNkkFi2/vMBokxCZdsUpnEtvnZDRLb5mcxSGybn5dBYpifn2GhGoCNkkFi2/1MBonhfqZpkNh2P5tBYtv9zDKJ4X1+RoVqgHaPCtUA6zMqVDoe8/MyOAzz8zMqVAPMe1SoBMD8fI0K1Y6v96hQDTDvUaESAO/zPSpUA9R7VKgGGPeoUAmA9+kose19vkeFaoBxjwpVANv7fI8K1QDlHhWqAfo9KlQDrHtUqATA/HSUGObnZ1SoBlj3qFAJgPn5HhWqAdo9KlQDzHtUqATA/XS02HY/HS2G+/keFSodj/npSLFtfmaDxjA/h6PFtvnZdRrb3qcjxbb3eRk0hvf5GRWqAco9KlQD9HtUqAZY96hQCYD32Qwa296no8XwPj+jQiUA3qejxbb3WRwaw/u8HBqLfUBytNg2P6tDY5ifjhbD/PyMCtUA9R4VqgHmPSpUAsRGIDlqbLufjhrb7qehxrb56agxzM/pqLFtfjpqbJufhhrD+yyOGtvep6PGtvfpqDG8z+mose19Ompse5+OGtvep6PGfund+wL4amWWHxFlHyvz7OFL8fvZDXn5H/EX/+Fu3rt+zAZITPCmGJyam58//qddkBjhTTVr1Y7P6ZMwox1f74QZDTDuhBkJUNInYUY7vt69hRpg3L2FEqBed2+hBih3b6EG6HdvoQRo191bqAHK3VuoAfrdW6gB1t1bKAF6vnsLNUC/ews1AAO80zMoSwKMfPcWagAGeKdnUJYGmHdvoQSYDPB+BWVpgHb3FmqAGU/lV1CWBFjp7i3UAPXuLdQAof3feX8KgISzd2+hdnyNp7JBY/kad2+hBEhXPJZ1GmPQ6qe1UAP0eCobNEa+2Xzn/UmA0Dqf3kIN0OOpbNAYo1Y/vYUSoORHGwaNMaLh01yoAeZjJYPG6Av/NBdqgHY3F2qAeKa/8/4kQEt3c6EGiKf6O+9PA4y7uVAChJz6NBdqgHo3F2qAcTcXSoBx3c2FGqDczYUaoN/NhRJgXp/mQu34cjcXaoB+NxdqgHU3F0qA2Al/mgs1wJ2LoR2/7uZCBcCo1eKoMWatfpoLNcC8mwslQGyE382F2vH1bi7UAPNuLpQAsQ8ojhhj1GpzxBgTGj7NhRIgNsLTEWP0hX+aCzXAEb4sAahBaQaLMWq1OWKMGQ2f5kINcIQvS4B2hC9rgH43F2qAO3xZOr4TvmywGCMahiPGSDib02Ax2sIvR42VQfqyzmKMWi3LYbF5hC9rAMKXHRabR/iyBFiELxssto7sZQ1A9rLBYgxoaI4WY0DDcLQYCWcrGyxGX/jlaLGayF42WIxRq9XRYkxo6I4WY0LDcLQYEWfL0WI1H9nLEqAc2csaoG1jTGYxRjQ4zhgJZ8PRYiScWc5YpSnY0WK1Jc8aY9ZqNbTYrybpT8BXk7T+HNDwMkeJLftlUEPfJmn7M0DvJnCEXD6yxrb5cj0Hrn4fyRD7s7La68v788O/mHEtmLa9/BAJMINp2+vLqwBiXdbVX19eCdCooH75IRJgBtX255dXOT4WshLhtv0QCRDyb7bXl1cCjGDa9vRDlONjd7Zye313JUCoP9Z5+yESYFA//fJDFEDszmrpr0ewBCjUT7/8EAnQyRV4PYIlwAqibS8/RAGsEkTbXs9gCRDqj4XefogEWEG07fUMFgB0a3du6f0MlgCNZIGXHyIBJskCr2ewAkiZZIGXHyIBWjBtez2DJcAMpm0vW1cB8KKmGjRGxeJMBo1RsbimQWNMG0jNoDGmDZRs0FjmVc3SaYyCxd4NGqNgcRaDxpg2QImmSmMMG0jDoDGGDZRq0FiO7VljnfdOQgIskgV0GqNkccYd/dxJSID+eEaziDTGtIEgmudOQjme9zTdYLHMe5rSXzsJCRDP9MthMd7TDIfFeE8TC/3cSUiASbSAwWK8p4kb+rmTkADxUG8Oi/GeJhb6uZMQAJQsTkeMMWzg4o7eOwkJEE91R4yFoH5UR4wV3tTELf3cSUiAeKobYoyKxXiev3YSCoAXNY4YY9pA8MZrJyEB4qHuqLHCixqYe4qrwHuabrAYBYvLEWNMG0iXwWJMG8iOGCu8p6k6i5XYBnRHi1GxOKbBYlQsLkeLMWwgOVqMYQN5GSxWeE3jaDG6tXsxWIyKxeloMSoW41iDxXhN42gxhg2U5LAY72kcLUbFYne0GBWLMzssxnsaQ4sxbCB1g8UYNlAcLVZjH9Aug8UoWOyOGKNgcVadxRg2cDlajGEDydFiVKIVR4tV3tM4WoyCxW5oMeoVp6PFGDZwOVqMYQPZ0WKV1zSOFqu8pnG0GAWLw9FiFCxOR4sxbOBytNivXtxPwFcvrv3lsIGcf/Pi1vbiCG78l6frRhwjLlw++rF5r1TKD3+M/qL43VZqL39+5BdDjQaj+PBBI7YEoMEoAG2In0DHMOMOykoigAaj7VFOEUCDEb/ALJ4SHcNB42tW8ZToGL4C0Jt4Sp0GI9aB8AkFQMdwnTRKZhFAg1FcdDywRQANRgGoTf0EGoxYh740AD3DrPQ1xVOaNBjBBJd4SjQN9wCMJJ4STcOsdOxIRQANRgEohE9IABqMWIelfcJuGq7cQEn7hN01zEoX9Xj6i/Z8EfGMaBpuLEMXP4Gm4cwyaHcDPcODdW5LI5ndM9wNGts9w8Wgsd0zfBk0Rs9wHQaN7Z7hatDY7hlOBo0xVyVEpU5ju2e4GTS2e4azQWP0DNdl0NjuGu4Gje2u4WLQ2O4avgwaw4NLwd3z+1P7y/H0FxkstruGY6FTruI1D/qLDBbbbcNQ9xziNdM2zEIn8faZtBc5JEbXcNzRc17il5uu4eKwGF3Dsc4hUMRrXvQXGSxG03Dc0Cll7Zp307AjxmgaLo4Y203D3NBX1a5hNw07Yoym4Vi1ENNT+3LvpmFHjO2m4VjoVLp40TQNO2KMpuE2dr2NeNE0DTtibDcNO2IMD+6a/GKz9u3eTcOOGNtdw1lnMZqGm6PFdtNwN1hsNw07Wmx3DV8Gi+HB5aGz2G4adqTYbhpOBovRNDwcLbabhpvBYrtp2NBiOHB02+osRs+wo8V2z7CjxXbP8OWw2JxxjMNi9AxXh8XoGXa0GD3D8QE6i+2eYUeL7Z7hbLAYY1WWo8V2z7CjxXbPcDFYbPcMO1qMpuFuaLHdM+xosd0z7GgxPLjkaLHdNOxosd00bGgxeoa7o8V2z7CjxXbPsKPFds+wo8XoGS6GFvvVgfsJ+OrA9b8ckpLr6cDFk3B80g85Yrz+/aPeLdRUes/p+PnTf3oFIabucGgJ0HY4dEhzFTDj90J9HkurAHIK7iWSFBtdAtQH6dBrkAghAeaRDq0AQkyVz6QOCVCPdGgJMHiD85rUoQDqdaRDS4DCG5zXpA4JMIJ735M6FECoqTsdWgKU4N73pA4J0I90aAmwgnzfkzoUQMipOx1aAnTe4bwmdUiAdaRDK4CReYfznNQhHd+CfN+TOiTAPMKhFUDIqeszqUMCtCMdWgJM3uHoNLbSEQ4tASqvcF6TOiTAONKhBQCm6p0OLQHqI78mdUiHjyMbWgGk69G6QWI0Jd/Z0BKgU9mskxim6p0NLQEKlc06idGUXJNBYjQl39nQCqDkx2gGidGUfGdDS4D1uJZBYjQl39nQEuCcmSYBzplpCqAdM9Ok48+ZaRLgnJmmADoz014J99Lx58g0CcDItHfCvQIY58w0CcDMtFfCvXT8OTJNAcxzZJoEYGTaO+FeApxD0yQAQ9PeCfcKYJ1D0yQAQ9PeCfcS4ByaJgDoSa6fQR0SgKFp74R7CXAOTVMAiaFp74R7CXAOTZMADE17J9wrgHwOTZMADE17J9xLgHNomgIoDE17D+qQAExNew/qkADn1DQFUJmaptMYPcnDkWL0JM9h0Bim6j01TQIwNU2nMVqSiyPFaElujhSjJ3lkg8boSZ6OGMNUvcemKYBxjk2TAOfYNAlwjk1TAPMcmyYBzrFpEuAcm6YA1jk2TQKcY9MkwDk2TQDQlTwcMUZX8j02TQKcY9MUQDrHpkmAc2yaBDjHpkmAY2yacnw+x6ZJgHNsmgRYnjNGU3I11Bg9yd1RY/QkT0eN0ZS8HDVG4aBljNGUXBw1RlOyZYzRlNwdNfarD/sT8NWHnX85hab84sPGd6J892GphXr+m26S/ff/8upJ/vsPY60dExF+fvQXJ24eExEUQEvHRAQJUI+JCBJgHhMRFEBPx0QECVCPiQgSYBwTERTAuI6JCBKgHhMRJMA4JiIoADZcnxReCVA+ExGkw/sxEUECrGMiggJYBMy8x7pIgH6MRJAABMy8xroIx9NhfE9EkAAEzLzHukiAeYxEUADsttp7rIsEIGDmNdZFOn4eExEUAJutz2wqCVCPiQgSgIAZg8RoML4nIkgAEmYMEtsNxskgMTqM2zRIjPLG0QwSo7zxnoigANhtLYPEaDG+JyJIgH5MRJAA65iIoADYbn0mIkiAdkxEkADrmIigANhuvSciSMe3YyKCBJjHRAQFwG5rOTTGbus9EUE6fh4TERQAHcafiQgSoB4TESTAOCYiCIDdYfyZiCAByjERQQKMYyKCAiAK1tFidBjfExEkQD8mIkiAdUxEUAC0GH8mIkiAfkxEkADrmIigAGgxdrQY9Y33RAQJMI+JCAqALNhs0Bg9xslRY/QYF0eN0WT8mYggHV+PiQgSYBwTERRA7AMuR43tHuOk0xgtxsURY7QY3xMRJEA5JiJIgH5MRFAAsQ24JyJIgHJMRJAA/ZiIIAHWMSlUAax4qFeHxmgxdtQYPcbXNGiMHuPcDBqjx7g6aowe47YMGqPAcThqjALH5aix3WTsqDGajLOjxmgyro4a203GjhqjwnEYamyH0TlqjCbj5Kgxmoyzo8ZoMq6GGqPAsTtqbPcYO2qMAsflqLFfnbWfgK/O2vrLoSjll/nONETslL/y5x9p1zrSUZyuZ5fx+894bdwsutfWCLWpsUyUpPw8mS/GFqE28aP5tSvH951pE2fIwkoAMm0aFZ5VBOxMm0s/pUGmTVzzHOI1DzJtKtWBTQSQaVMxcbMIINQmAIWXIApg7lCbuOYhXvQk1IZ1mOJFzx1qw/dJvOhFqA0hlFm86EWqTVz0KuJFL1JtAjC+3zlfra3ESjfegkgAUm2qfEY4W7U23rJo10zjbmdye6viJyRSbViGLl5z2qk25H+K15xJtdHWGFcrdqlx6yTtbsbVqqxxL9rdTNNuZ41r077YNO3Oy2AwmnbjGyTTBaZWqgaDYWqVZDAYpladBoPRs9ubwWD07M5sMBg9u2sZDIaplaDtnU+jADqBNvEJu0NBAhBoYzAYTbs9buY5hnivDQJtDAbD1YotAk0W4q91kGjjMNjciTYE94vXMEm0MRhsEmjjMNgi0abSriPyyyLRxmGwRaJNrFtv2g2Hq1WGtgIYWi3WOJWqnT4NuyMZDEbD7uRuXkM8/USYjcFgGFrZ0GD4WWXR5H+JgJwJedYZjH7dETfzbEVchhyPckeD4Wddwdpxa4rXUOJR7mgw/KyaDAajX7dNg8Fo2B2OBqNhd2WDwfCzLkeDYWgFseoMhqFVHQ1Gx26/DAajY3cYGoyG3eVoMAytlAwGw9DKjgbD0KrNYbDQ/13UYDTrjuUw2IxnuaPB8LJScRgspH9xNBheVjU0GL26vRoMRq/udDQYvbprGgyGlZUcDYaVFTypMxhWVnU0GL263dFg9OpOR4NhZV2OBsPKSo4Gw8oqjgbDy2qOBqNZtzsajG7d6WgwvKzL0GB4WcnRYHhZxdFgeFnN0WC/elk/Ad+8rBDnf+ll9dPLiq/pnlixg8fq07Xa7tV8T6mgffZPBjtwGF7Wzmi0isjo/Uj12QD95cy+WDADt/wZqSUB5vXIrewGaO34gln+jNTSAP3R4ju0Yxw0wMJQecY4SAB6P6jgI1JLA3QMlWeMgwZYGCrPSC0FgGVTK1+KrJ0Slk1P5RmppQHmY7DQxDhIgCDuxUITqaUB2iOx0sQ4aICJrfKMcZAAOWGrPCO1NEDFVnnGOGiAga3CTSmeEimYozxzHDRAfaRansmAGmA8CitNjoMEqBeFpM9kQA1Q8FWeyYAaoOOrPIMcNMDCV9nJgNLxrTxSN2iMaqQSC71zHDTAoo5UpjF8mx539E6j0QCNMlKdxihGupJBYxQjJdaZNBoN0B6lGTSGb9Pijt5pNBJgxvNzOTQ2K7bKM41GA0wKSQ0ao/fjqs80Gg1QKSQ1aIzej2rQGMbNiDt6p9FogPKY06AxypGu4O75XZ98sUouCkl1FsO8KbHQO41GA3QqSXUWw70ZUDdpNBKA3g/u6KR9kyhGuoZBYhQjBVU+02gkAK0fjhjDvGnTYDHMm2GIMbyblQ0WoxbpcsQYtUjZEWN4N7UYLIZ30x0xhnczhsFieDfLEWMUI6VksBjVSNkRY5g3tRkshnnTHTGGeTMcMYZ5E5sGg8ViJ5AcMUY1UlCfzmK8u3W0GAZOrw6LrXioO1oMB2dNg8UoRkpNZzFqkYojxTBwYmersxgGTne0GAbOdLQYtUiXocUoRUqOFsO/KY4Ww79pjhbDv+mOFsO/mY4WoxbpcrQYtUjJ0WL4N8XRYhg4zdFiGDjD0WIYONPRYr8YOF8AXw2c9JcDD65/unai0VGQNJ8DSNNrwMEeN/p2Z+pfGDi/uwN1fAZxfvnwn25Cu+5BnBqg3IM4NUD/DOLUjl/3IE4JQIDWexCnBuj3IE4NsO5BnBIgtk+fQZwaoN2DODXAvAdxSoCZ70GcGqDdgzg1wLwHcUqA2D59BnFqgHoP4tQA4x7EqQCI0PoM4tQA9R7EqQHGPYhTAsT+6TOIUwOUexCnBuj3IE4JkK97EKcGKPcgTg3QP4M4tePXPYhTAsT+6TOIUwP0zyBO7fh1D+KUAMyNrgaNEaHVkkFjO0JrGjRGhNZsBo1R4/QZxKkB5mcQp3Q8Pd3dYDEytD6DODXAuAdxSgB6uofBYswl+Azi1ADjHsQpAejpfg9/0gDlHsSpAfo9iFMDrHsQpwSgq/s9iFMD9HsQpwZY9yBOBUCI1mcQpwZon0Gc2vHzHsQpAejqdsQYGVqfQZwaYN6DOCUAbd2vQZza8fUexKkBxj2IUwIwNvo9iFMD1HsQpwYYn0Gc0vGMjXa02I7QmgaLEaG1HC1GhFZytNiO0FoGi5GhVR0tRobWZxCnBGButKPFyND6DOLUAOsexCkBGBydDBbbGVqOFiNDqztajAytzyBODVA/gzi14+c9iFMC0NXtaDEitD6DODXAuAdxKgAitN6DOLXj6z2IUwOMexCnBKCpuxksRoJWc7TYTtAytBgBWtPRYswluBwtRoJWdrQYCVrF0WIkaDVHixGhNRwttiO0HC3GYILL0WJEaGVHi+0ILUeLEaHVHC1GhNZwtNiv3tpPQP5/m7uWXUmypLivr6gfIDjvx6alaehhjWiJBWIFAhaAxIrfx+2ciDx+K7NmzKRZoFH3dN0O65t544aluR93s/Kht5Z+GmWA3tr66wSKpiuuAanxi8ms1WULJ0oU33l12+yPa3Qq/thIQPr3+td4mN6/8XvnAXexh7s/QwEwXB3up4kCYLg63P0ZBoC7OML9NFEADFfH+2miABiujnd/hgFgNX/G+2miABiujnd/hgJguDrcTxMDQPx3CHd/hgJguDrcTxMFwHR1uPszDADx37jT62miAJiujrcmoACYro53f4YCYLo6bk3AXI/VfNzo1Z+hAJiwDrcmoACYsA67P0Ncj6k4rC5vSUABMGAd7v4MBcCEdbz7MwwA6d9IOl6agAJgwjre/RkKgAlrgcYwFZeTQGOYiitToDFMxbUm0Bim4kYWaAxTcYvaWRrDVFzsAo1hKi4XgcYwFVejQGOYimtDoDFMxY0q0BjG4kISaAxjcRGP9BIFFAAj1gKNYS6uZoHGMBcHc+Bd2lAAE2edpzGMxRlH3qUNBbBP9SjQGMbirEK7SxsGYOVcrQqPWTnX076Gu75fA0/0Km0YgJVzoSk0ZuWcPdV3aUMB7ENdUWOYiqt2zSptqOvtM10RY1hpnPZA79KGAVg5FxQxhqm4pIgxTMWVFO7ShgLMqypiDFNxVmzdpQ0FsA91RYxhLA4/1F3aMADT+UkRYxiLK0VgMYzFNUWMYS6uK2IMO42zCiyGubgoiDGMxaUpsBjG4ooixjAW17LAYhiLG4oaw0rjcw13vX2mF4HFMBWXFTGGqbgyBBbDVFxTxBim4kYSWGykaypaDENxVpIJLGZlQFa0GKbiqqLFMBXXusJi0z7SFS2GqTgsotEshrG4qGgxjMXZM8ezGMbiqqLFMBbXFC2GvcahaDHMxQVFi2EuLilaDHNxWdBiGIurihbDWFxXtBjWGoeixTAWFxQthrG4JGgxTMVlRYthKq4qWgxTcV3RYl87d++Aj5278lPze3Tt4lebrrwN8L927rDYmLJ9ZVt41d23C3/zy/eetpXXL1btvv7ds/7Y5v7S4/iFPNf3RccWjknmh9f6ocmUj0kmB1jTjduynAPM45JJAfqablyW5dz17ZhkcoBplc1tWU4B7NPo5ZLJAapVNrdlOQcYVtlsy3LqeitUXiaZHKBaZXNblnOAcUwyGQDmz8pjWc4ByjHJ5ADdSpvbspwCWKXyMsnkAMVKm9uynAN0rP1uy3IKkMIxyeQAGXu/27KcA7RjkskBjPnynbtAAezT6GWSyQGalTYrd4G7fB6LTApQ0rHI5AAVW788iWH+7OWRSQHswygmnsQwfvayyOQA42WRSV2/PuwEDsP42csikwPg7Ou2yKQAPWLnlycxjJ/lx7CcA/QTHkMBRrDC5nb65QD5hMdwgHbNx7CcAsxwwmM4gH2kP4blHMA+0h/Dcg4wT3gMA8D42XgMyzlAO+ExHGBi63c7/VKAmE54DAeo2PrdTr8cYJz4GAqALHdFi6EpFW7Dcu76cdJjKACi3B/Dcg5QTnwMB+hY+qVpDPNnQ5FiaEmFKtAYbLZSEmgM82dZ0WKYP6tNoDHMn3VFi2H+bAaBxtCTCooWg89WKgKNYf6sKFoM82d1CDSG+bNeBRrD/NlUtBi6UmEqNIZFFEWLYQDtFR9DAbCIomgxDKC94mM4QD/xMQwAbltRUWOYQHviY7jr+4mPoQDYQ0kCjWEArStqDANoU1Bj8NqKihrDAFpW1BgG0IqixjCA1hQ1hgG0oagxDKBNRY3BaysqagwDaFlRYxhAK4oawwBaU9QYBtCGosYKFlEUNYY2FvaWf/a8fWxj1Z86za821vPPu40Vt9v8X6KN9eMA21uzqMAbYluff3iRH7pLHTud2/qcAiA3/rHd5AAZS53b+pwD9GO7SQHgHfZYn3OAfGw3OUCDOcS2PucA82W7SV0P77DHdpMDNOx0butzDjCP7SYDWN5hj/U5B6jLdpO7dsAWYlufUwDYhj22mxygwhZiW59zgHFsNykAbMNu203u+oJtzm19zgH6sd2kAHANe6zPOUA5tpscoMMXYlufUwC4hj22mxwgwxeCZ7DlGpYFBlshhkFgsGUb1gUGW7ZhRWCwZRv22G5SAPiGDYHBlm/YY7vJAebLdpO6HrZhU2CwZRv22G5ygHFsNykAQgwf63MOUK7RyTsAx7DH+pwCwDEsKgwGx7DH+pwD9BM/wwCWY1jiGWwZhj3W5xygn/gZCgDHsMf6nAPkEz/DARo2ObdxMAeYJ36GAsAx7LE+5wDtCo/1OQeYJ36GAsAy7LE+5wD1xM9wgIFdTp7BlmeYosFWfmEQGGx5hgkabFmGKRpsWYZFgcGWZZiiwZZlWBUYbFmGkRpsuYVNgcGWW5iiwZZbWBYYbGUXKhpsuYUJGmyZhRWFwWAWpmiw5RY2FAaDW5iiwZZbWFIYDG5higZbbmFNYLBlF5YFBlvRhYoGW3ZhXWCwZRemaLBlF6ZosOUXpmiw5RemaLDlFyZosGUXpmiwZRemaLBlF6ZosBVdqGiwZRdGarDlFKZosOUUpmiw5RSmaLCvzaR3wMdmUvup1TuaSSl8aSalK/05u/e/1CwUFtij/bDKx9f4oZeEBXYDFJi+UwAssBsADVDmekRKJft5tER+g479dQMUPEEUAAvsBkif78uHRg8W2HGLOvmSECkV7D0P8hUhUqrb9T10DoBIqWKACoM+CoAFdgNkeL5TACyw4zYM7jskREpV+3slL8f6ul2eI/eWU8D6eoJlHvuCsL9ub3lW7i3DWMteDuZ+uV9VGGsl3OY6yDeNWCnc5wKXUQaAWKlib7oX8jsgViriLjT2O2B/Hfehk28asVK4z3GSLwmxUrjTIZIvKWN/HU9P4h6fhFipJpBYQqxUFkgsIVYq8CQGZ63QBRJLSJUqAoklpErZAz1ISkpWZdQhcFhCqJTd51gi+UNFqlQSSAzOWsGe6MhSBkKlmsBhCaFSWeEwhErZbR6zky8JyVJdYTEkSxlxjxbI3yQkS0WFxazUsJdlD9sk3zSSparCYoiWwgPNPg05RGyHT/x2kAD7SG8Ci8FZK9oDbTKO++3OiJYKAotlREsZdY8yuMchI1qqCCyWES1l1B1jJ990ylgP51kM1loR1D0C+R4QLYVHOkzu1ztbrVEULZYRLdV4GstIllKkGKy1IK9pGoO1VlS0WEa0VOFpLCNZSpFiVk5eTZFiudpnehVoDM5aQRFjcNaKU6CxbFVAVsSYyaSrZoHGspUBXRFjufdrdIXGrAwIRaExKwOSIsay1QH2XQQaszqgKmIsz4ztcIHGZruGIsZgrWWyh6exYpVAUsRYsUqgBIHGilUCtQs0VmLCEgVPYyVW7IfTNAZvraCosYKWgKLGihUCRVFjxQqBKqixku1DXVFjJResUPA0BmutqKixYnVAUtRYsTqgKGqsWB3QFDVWari6osYK2kmKGvu6oPcO+NiM6n/Stn4Va2+29fkPuwmFpenVkOq7ObW86knr+vxyG35/Be8tCPvZHYc7CpDRGr3dbChAcxZ3DMCqqJAf03QKkJ3FHQVozuKOAhi5lcc0nQH05CzuKEC9xnhM0ynAdBZ3DMDKqJQe03QKUJ3FHQUYyOe+TbkYwIzO4o4CGL297IYpwLhCf0zTCQCWB1/ZD9T1xWU/UIDush8YQAwn+4G6PrvsBwrQXfYDA0jBZT9QgOyyHyhAc9kPFGC67AcGkJPLfqAAzWU/UIDpsh8YQEku+4ECVJf9QAGGy35gADW67AcKUF32AwUYLvuBATQMCz5OnRSguOwHCoBpwcepkwH04LIfKEBx2Q8UANOCj98wAxjhZD9Q12NY8PEbpgDNZT8wgIlhwcdvmAJkF/5AATAsePsNU9evWcHbCIIAYHnwZD9QgDUreBtBUIDpsh8YQEwn+4G6vrrsBwowXPYDA0jRZT9QgOKyHyjAcNkPDCBHl/1AAYrLfqAA3WU/MIASXPYDBcgu+4ECdJf9wABqcNkPFCC77AcK0Fz2AwWYJ/uBub4ll/1AAZrLfqAA02U/MICeXPYDBagn+4G6frjsBwYwost+oADVZT9QgOGyHxjAjCf7gbq+uOwHCtBd9gMBQINtKloMq4NR0WLYHTzZDwwgBpf9QAGyy36gAM1lP1AADA0KLIblwahoMSwPZkWLYXmwKFoMy4NN0WJYHhyKFkOLbQpaDLuDUdFi2B3MihbD7mBVtBh2B5uixWBePwQt9rXB9g742GAbf9K7HqGrp8GGg8I/22D7df8ZC4HJ5Ue+D3StQ/KnAH5/GR+aNc0VwBRgugKYAaxD8odzKUB1BTAFmK4AZgDrkPwpgClAdQUwBRiuACYAaR2SPwUwBSiuAKYAwxXADGAdkj+kSwGKCz+kAN0VwAxgHZI/fTwKkF0BTAG6K4AZwDokf/p4FCCfApi6vrnwQwowXQHMANYh+d3Ho65vrv6lANOFHzKAdUgu0Fhah+QCjaV1SP5IRwawDskFGkvrkPyWjtT1wxXADGCdkT/SkQIUVwBTgO4KYAawzsgf6UgBiiuAKUB3BTADWGfkCoutM/JHOlKA5gpgApDXGfkjHSlAdgUwBWiuAKYA0xXADGCdkfMsltcR+SMdKcB0BTADWGfkj3SkANUVwBRgnAKYuX6dkT8FMAUorgCmAMMVwAxgnZELLJbXGTnPYnkdkQssltcRucBieR2RCyyGlbyoaDGs5J0CmAJkVwBTgOYKYAowXQHMAHpyBTAFaK4ApgDTFcAMwAqBomgxtHeaosXQ3jkFMAOY8RTA1PXVFcAUYLgCmADAGeoUwBSguAKYAvRTADPXWxlwwg8pQHHhhxSgu/BDBpD8aAgFyCf8kLreT4YwgBxc+CEF8JMhFMBPhlCA6cIPGUDxkyEUoLrwQwrgJ0MYQE0u/JAC+MkQBvClvfMOeGvv5PTdXs/bZcG1dGZ8GUDByavt3s3q12CtMu2/Pm3wva7729PjgU3cg8FGYCy+/8NZTqU/3P2k9d99K3mTPRxh7z9/eG8fauSKeIGwVrI5AA4P595/pgAIdLTrlwcNB8Dp4dz7zxwAp4dze9BQAAS94CcMDxoOUK6xfrEG+abLuNYNgwcNBUDSy96sIt90xenh3C5aHACnh3PvP1MAk07Llx77zxwAp4fCK2odyZt7/5kCdBwezr3/zAEykjf3/jMHwOHh3PvPHGBenbzFCHnZW4/kqx84N5x7/ZkDzGt/lHby1U+cG85t4MAB6iWxxcS54dwGDgwAC0azCASG6YcdFZK524AFI7trPIFhweh2JiDfAzJeokBgWDDqYG0oSwqQcHA4t4EDByjX9pcmCQwLRpvlO/cwY8GodIHAsGDUStgGDhwAB4cCgWHDaA6BwDD+EAtPYFgwujeYyPdccG4oEBg2jHa/mCQwbBiNJBCYFTTcdc0+xrvAXlgsyllgLywW7ZAtkr2wWNS6wF5YLHr89rjr4TGisNeIpnUU9hrwGFHYa8BjRGGvGa77sSTfw4TJiMJes1/L2oJlL4w97KRakr2wV5QV+YW9ou3RQ7IX9oq6Ir+wVzSmwF4YewiK/MLYQ1LkFxaLsiC/sFdUFfmFvaKuyC8sFk1FfmHqISjyC1MPibwBJvqLIr+wUlQV+YWVoq7IL6wUTUV+YeAhCvJrV8Rtb3Z9KnU/DDy0+O6C81TEv7rKOKLrsQrTryVqeVxqMNyAF7vSk+P9z6so/uGbRpyKpttL48O3f3tb0T7Y+7y9NChASWcLnQM0GJZvLw0OMM8WOgWwT/ZyUw4JqGcLnQMMhJRvLw0KsMyQ7vVNDlARUr68NLjrB/zKt5cGBbBP+NcSOgco8CvfhkAcoJ8tdAqAY9HbEIi7vpwldA7QEVG+DYEoAE5Fny10DpDPFjoHMOW9DYGYy+Ef9NpB5wAZMX7bEIgDtLODzgEmAsq3IRAFwJnos4POASoCynkSg4NQKAKJobf32kHnABU5fjyJwUHotYNOAXAqmgQSg4P1awedAwxElPMkht7eawedAxRElNMkBgOh2gUSg4H1awWdA2Tk+PEkhtbeawedAuBU9NlB5wD57KBzgPbaQeeun2cHnQLgUDQLJIbW3msHnQPMs4NOAXAo+uygc4B6dtA5wDg76BQAh6JVoTGcij6OQBzAFPjjCMQA0OErihaDhVB7HIE4gH2mK1oMNtbzcQTiAPahrmgxdPjy4whEARCcqWgxWAi1xxGIAzRklG8rDQ4wjzsjBUBw5u0IxF3fjjkjB5hI8uNpLCM5UxFjcLEehacxNPiCosXQ4IuKFkODL1eBxmAhVBU1llE0ToHG4GI9FDWGTl/IAo2h05cUNYZOX+4CjcFCqBaFxkY49owcICOjXKAxKwSCosbQ6ktJoTFEZypqDBZCtSk0NuexZ2QA8LKeQaAxtPpCF2gMrb6kyDG0+h5/Ru76evwZOcA4/owUIMXjz8gB6sufkbt+HH9GCmCFQFHUGCyEmqLGYGXdFTUGK+upqDH0+6KixtDvS4oaQ7+vKGoMFkJNUWNo+A17dlag4qdO3qeGX3p3GrobfnDSd/ZB/Q5Gq7/Ye38afuk3+//f7omVL/7V68Dxj087cM2s7ImW99bZE7714bV87Jy9wrc4gAvf4gAufIsCNBe+xQF2+BZ3rQvfogDdhW9xABe+xQFc+BYFGCd8i7vehW9xABe+RQGmC9/iAC58iwO48C0GgL7ZK3yLA7jwLQ7gwrcoQHThWxzAhW9xABe+xQFgqPGc0jOA5MK3OAAMNe74QA5wwreo67ML3+IAy1CDZ7A9Eicw2BqJCwKDrZG4Tt5jTMMVgcHWNFwUGGxPwwkMtqfhBAZb03CJZ7A9DHdH13AAF75FAboL3+IALnyLA7jwLQ7gwrcowHDhWxzAhW9xABe+RQGmC9/iAC58iwO48C0GsIbissBgeyjujq7hACd8i7o+uvAtDuDCtziAC9+iAMmFb3GAHb7FXevCtyhAduFbHMCFb3EAF77FAU74FnV9ceFbHMCFb3EAF75FAaoL3+IALnyLA7jwLQrQXPgWB3DhWxzAhW9RgO7CtziAC9/iAC58iwIMF77FAVz4Fgc44VvU9dOFb3EAF77FAVz4FgPYc3ECg625OFKD7ZE4gcHWSJyiwdZI3BAYbI/ECQy2RuIEDbYn4gQGWyNxigbbI3ECg62ROEWD7ZE4gcHWSJyiwdZgnKLB9mCcwGBrME7RYHswTmAwDMYFRYN92RX71AH71CjL745BT6PssQR6JuP2BByzzsX4bdvvQMEY3xqCeH8V760H+x1ood1tdwaA8g+LGugzUteXa2Lcfw1BUIBxRbQAV9edAaAEHP0egqAA5Sr3PCsJ6PD12ZNczPWoAGe7u+4UIMPW557kogAdtj53250BWAmYsUK12u4UwErA3tckF3V5uxpu82q6U4B5jXtNgAOgALzHzUlAg6nPPclFASZMfe6mOwNAAYj7vCa5KEC9Wuv3JBcFGNfI/T47JAAppAvbwnuSiwJYAYj7vM4OKcC48r2/wwGsAqyx3WeHFKDA1ocnMThKjSqQmH1CwtaHJrGEAnAKJAZDqdwEEoOhVM0CicFQqgeBxOAoNTpPYqmEKxSBxGAolaJAYnCUykMgMThK1SqQGByleqJJDH5SYwokluqEp899csgArAZMWSAx+EkVu8375JACWA3YBRKDoVTH80w/DMhexX1eAxAUwGrAoZCY1YD2HNwDEBTAPtGTQmKoAY259wAEA8ByVFNIzIrAaQ/0HoCgAPaRrigxGEolMPcagKAAGa4+9wAEBbAPdUWKwVCq2xM9SE6Cn9RUlFi2QjDajd4DEBTACkFFisFQqhhzR5Iz4CfVFCUGP6mhKDEYSpmGuQcgKIB9pCtaDIZS9pPlaQyGUkXRYjCUalWgMThKDUWLwVEKd5mmsYwNqSbQGBylsqLF4ChVg0BjcJRqihaDo9QoAo1lxK8qWixbGRCHQGNwlMqKFoOjVE0KjQ04lyg0NuBcotCYFQIhCzQGZ1lFi8FRKneFxqwOqIoYg6NUjzyNwVBqKFqsBPiWCDQGR6mUBBqDo1RW1BgcpaqixuAo1RU1BkepqagxEyXIe+JpDJZSSVFjsJQqihqDpVRV1BgspbqixmApNRU1ZqLkCooag6VUUtQYLKWKosZgKSX1xcpaiRz2PNSPL+lpE/72+7e///Y/Ny7CC6ph1DzW7//yX+7r4Tsq//H2VWzj2NfWn/H3v1pf+M+VUFWWG8qnL4Uf/rgvCM8//Mf3f/z239/C97/79k//bF/9V/t6/f6/3/b3+OE/8w/28v0b2P9afLURQ6btxz8G94/KK3RwvLrw/d+//fr7t7/+o/1MY/j++7+5m3T1vgxdxnf426ENHFJ/bhFarzF8vE0rbT63/983Bf/7P9Yw7x8KZW5kc3RyZWFtCmVuZG9iagoxOTggMCBvYmoKMzQyNTgKZW5kb2JqCjE5OSAwIG9iagpbCjQ1IDAgUgo0NiAwIFIKNDggMCBSCjQ5IDAgUgo1MSAwIFIKNTIgMCBSCjU0IDAgUgo1NSAwIFIKNTcgMCBSCjU4IDAgUgo2MCAwIFIKNjEgMCBSCjYzIDAgUgo2NCAwIFIKNjYgMCBSCjY3IDAgUgo2OSAwIFIKNzAgMCBSCjcyIDAgUgo3MyAwIFIKNzUgMCBSCjc2IDAgUgo3OCAwIFIKNzkgMCBSCjgxIDAgUgo4MiAwIFIKODQgMCBSCjg1IDAgUgo4NyAwIFIKODggMCBSCjkwIDAgUgo5MSAwIFIKOTMgMCBSCjk0IDAgUgo5NiAwIFIKOTcgMCBSCjk5IDAgUgoxMDAgMCBSCjEwMiAwIFIKMTAzIDAgUgoxMDUgMCBSCjEwNiAwIFIKMTA4IDAgUgoxMDkgMCBSCjExMSAwIFIKMTEyIDAgUgoxMTQgMCBSCjExNSAwIFIKMTE3IDAgUgoxMTggMCBSCjEyMCAwIFIKMTIxIDAgUgoxMjMgMCBSCjEyNCAwIFIKMTI2IDAgUgoxMjcgMCBSCjEyOSAwIFIKMTMwIDAgUgoxMzIgMCBSCjEzMyAwIFIKMTM1IDAgUgoxMzYgMCBSCjEzOCAwIFIKMTM5IDAgUgoxNDEgMCBSCjE0MiAwIFIKMTQ0IDAgUgoxNDUgMCBSCjE0NyAwIFIKMTQ4IDAgUgoxNTAgMCBSCjE1MSAwIFIKMTUzIDAgUgoxNTQgMCBSCjE1NiAwIFIKMTU3IDAgUgoxNTkgMCBSCjE2MCAwIFIKMTYyIDAgUgoxNjMgMCBSCjE2NSAwIFIKMTY2IDAgUgoxNjggMCBSCjE2OSAwIFIKMTcxIDAgUgoxNzIgMCBSCjE3NCAwIFIKMTc1IDAgUgoxNzcgMCBSCjE3OCAwIFIKMTgwIDAgUgoxODEgMCBSCjE4MyAwIFIKMTg0IDAgUgoxODYgMCBSCjE4NyAwIFIKMTg5IDAgUgoxOTAgMCBSCjE5MiAwIFIKMTkzIDAgUgoxOTUgMCBSCjE5NiAwIFIKXQplbmRvYmoKMjAwIDAgb2JqCjw8CiAgL1Jlc291cmNlcyAxNCAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJv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MzMuNjM4IDcwOS4wMDUgNTM5Ljk5OCA3MTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIxMyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCAxMTIuMTMgbnVsbF0KPj4KZW5kb2JqCjIxNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA2OTcuMDA1IDE4NC4yODEgNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjE4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjk3LjAwNSA1MzkuOTk4IDcwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjE2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIxOSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDMgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMjIwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDY4NS4wMDUgMjExLjM5NiA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIxOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2ODUuMDA1IDUzOS45OTggNjk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjIyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwMyAwIFIgL1hZWiA3Mi4wIDY4Ni4yNTYgbnVsbF0KPj4KZW5kb2JqCjIyMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA2NzMuMDA1IDE3OC4xMjcgNjgyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjI0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjczLjAwNSA1MzkuOTk4IDY4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjIyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjIyNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDMgMCBSIC9YWVogNzIuMCA2MzQuNjY1IG51bGxdCj4+CmVuZG9iagoyMjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNjYxLjAwNSAyMDAuOTggNjcwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjI3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjYxLjAwNSA1MzkuOTk4IDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjI1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIyOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDMgMCBSIC9YWVogNzIuMCA1ODMuMDc0IG51bGxdCj4+CmVuZG9iagoyMjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNjQ5LjAwNSAyMTQuNDgzIDY1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjI4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIzMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY0OS4wMDUgNTM5Ljk5OCA2NTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIyOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAzIDAgUiAvWFlaIDcyLjAgNTMxLjQ4MyBudWxsXQo+PgplbmRvYmoKMjMyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDYzNy4wMDUgMTgxLjY4MiA2NDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIzMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2MzcuMDA1IDUzOS45OTggNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjM0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwMyAwIFIgL1hZWiA3Mi4wIDQ5MS44OTIgbnVsbF0KPj4KZW5kb2JqCjIzNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA2MjUuMDA1IDE5NS4zMDQgNjM0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjM2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjI1LjAwNSA1MzkuOTk4IDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjM0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIzNyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDMgMCBSIC9YWVogNzIuMCA0NTIuMzAxIG51bGxdCj4+CmVuZG9iagoyMzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNjEzLjAwNSAxODMuMjM1IDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjM3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIzOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDYxMy4wMDUgNTM5Ljk5OCA2MjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIzNyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAzIDAgUiAvWFlaIDcyLjAgNDEyLjcxIG51bGxdCj4+CmVuZG9iagoyNDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNjAxLjAwNSAyNDkuMjQ3IDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDYwMS4wMDUgNTM5Ljk5OCA2MTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAzIDAgUiAvWFlaIDcyLjAgMzczLjExOSBudWxsXQo+PgplbmRvYmoKMjQ0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDU4OS4wMDUgMjE4LjA2OCA1OTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1ODkuMDA1IDUzOS45OTggNTk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQ2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwMyAwIFIgL1hZWiA3Mi4wIDMzMy41MjggbnVsbF0KPj4KZW5kb2JqCjI0NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA1NzcuMDA1IDE5My41MzIgNTg2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQ4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNTc3LjAwNSA1MzkuOTk4IDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDMgMCBSIC9YWVogNzIuMCAyOTMuOTM3IG51bGxdCj4+CmVuZG9iagoyNTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTY1LjAwNSAyMjkuODg4IDU3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDU2NS4wMDUgNTM5Ljk5OCA1NzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAzIDAgUiAvWFlaIDcyLjAgMjU0LjM0NiBudWxsXQo+PgplbmRvYmoKMjUzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDU1My4wMDUgMTc5LjQ0MSA1NjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1NTMuMDA1IDUzOS45OTggNTYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwMyAwIFIgL1hZWiA3Mi4wIDIxNC43NTUgbnVsbF0KPj4KZW5kb2JqCjI1NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA1NDEuMDA1IDIwNy45MDEgNTUwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNTQxLjAwNSA1MzkuOTk4IDU1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDMgMCBSIC9YWVogNzIuMCAxNzUuMTY0IG51bGxdCj4+CmVuZG9iagoyNTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTI5LjAwNSAyMjkuMTkzIDUzOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg4IDUyOS4wMDUgNTQwLjM0OCA1MzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAzIDAgUiAvWFlaIDcyLjAgMTIzLjU3MyBudWxsXQo+PgplbmRvYmoKMjYyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDUxNy4wMDUgMjMzLjQxNSA1MjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4OCA1MTcuMDA1IDU0MC4zNDggNTI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjY0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwNiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoyNjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTA1LjAwNSAyMzEuMzEyIDUxNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDUwNS4wMDUgNTM5Ljk5OCA1MTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA2IDAgUiAvWFlaIDcyLjAgNjg2LjQ5IG51bGxdCj4+CmVuZG9iagoyNjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNDkzLjAwNSAyMTYuMzU2IDUwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDQ5My4wMDUgNTM5Ljk5OCA1MDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA2IDAgUiAvWFlaIDcyLjAgNjM1LjI3NCBudWxsXQo+PgplbmRvYmoKMjcxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDQ4MS4wMDUgMjQyLjI2NiA0OTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0ODEuMDA1IDUzOS45OTggNDkwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjczIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwNiAwIFIgL1hZWiA3Mi4wIDU4NC4wNTggbnVsbF0KPj4KZW5kb2JqCjI3NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NjkuMDA1IDI5NS41NzYgNDc4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjc1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy45ODcgNDY5LjAwNSA1NDAuMzQ3IDQ3OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjczIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDYgMCBSIC9YWVogNzIuMCA1MDguOTMyIG51bGxdCj4+CmVuZG9iagoyNzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNDU3LjAwNSAyMDUuNjIyIDQ2Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjc2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuODA4IDQ1Ny4wMDUgNTQwLjE2OCA0NjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA2IDAgUiAvWFlaIDcyLjAgNDY5LjcxNiBudWxsXQo+PgplbmRvYmoKMjgwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDQ0NS4wMDUgMjE4Ljc3NSA0NTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0NDUuMDA1IDUzOS45OTggNDU0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjgyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwNiAwIFIgL1hZWiA3Mi4wIDQwNi41IG51bGxdCj4+CmVuZG9iagoyODMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNDMzLjAwNSAyMDQuNDM3IDQ0Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjgyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg4IDQzMy4wMDUgNTQwLjM0OCA0NDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA2IDAgUiAvWFlaIDcyLjAgMzU1LjI4NCBudWxsXQo+PgplbmRvYmoKMjg2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDQyMS4wMDUgMTg4LjU1MyA0MzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0MjEuMDA1IDUzOS45OTggNDMwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwNiAwIFIgL1hZWiA3Mi4wIDMwNC4wNjggbnVsbF0KPj4KZW5kb2JqCjI4OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA0MDkuMDA1IDE4NC4yODEgNDE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjkwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDA5LjAwNSA1MzkuOTk4IDQxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjg4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDYgMCBSIC9YWVogNzIuMCAyNjQuODUyIG51bGxdCj4+CmVuZG9iagoyOTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMzk3LjAwNSAyMTEuMzk2IDQwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjkxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDM5Ny4wMDUgNTM5Ljk5OCA0MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA2IDAgUiAvWFlaIDcyLjAgMjI1LjYzNiBudWxsXQo+PgplbmRvYmoKMjk1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDM4NS4wMDUgMTc4LjEyNyAzOTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCAzODUuMDA1IDUzOS45OTggMzk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjk3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwNiAwIFIgL1hZWiA3Mi4wIDE3NC40MiBudWxsXQo+PgplbmRvYmoKMjk4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDM3My4wMDUgMjAwLjk4IDM4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDM3My4wMDUgNTM5Ljk5OCAzODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5NyAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA2IDAgUiAvWFlaIDcyLjAgMTIzLjIwNCBudWxsXQo+PgplbmRvYmoKMzAxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDM2MS4wMDUgMjE0LjQ4MyAzNzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwMCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCAzNjEuMDA1IDUzOS45OTggMzcwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzAzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwOSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagozMDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMzQ5LjAwNSAxODEuNjgyIDM1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzAzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDM0OS4wMDUgNTM5Ljk5OCAzNTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwMyAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA5IDAgUiAvWFlaIDcyLjAgNjg1Ljg0NyBudWxsXQo+PgplbmRvYmoKMzA3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDMzNy4wMDUgMTk1LjMwNCAzNDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwNiAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCAzMzcuMDA1IDUzOS45OTggMzQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzA5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwOSAwIFIgL1hZWiA3Mi4wIDY0NS42MDIgbnVsbF0KPj4KZW5kb2JqCjMxMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCAzMjUuMDA1IDE4My4yMzUgMzM0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzExIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMzI1LjAwNSA1MzkuOTk4IDMzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzA5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxMiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDkgMCBSIC9YWVogNzIuMCA2MDUuMzU3IG51bGxdCj4+CmVuZG9iagozMTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMzEzLjAwNSAyNDkuMjQ3IDMyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzEyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDMxMy4wMDUgNTM5Ljk5OCAzMjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMxMiAwIFIKL0ggL0kKCj4+CmVuZG9iagozMTUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA5IDAgUiAvWFlaIDcyLjAgNTY1LjExMiBudWxsXQo+PgplbmRvYmoKMzE2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDMwMS4wMDUgMjE4LjA2OCAzMTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMxNSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCAzMDEuMDA1IDUzOS45OTggMzEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzE4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwOSAwIFIgL1hZWiA3Mi4wIDUyNC44NjcgbnVsbF0KPj4KZW5kb2JqCjMxOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCAyODkuMDA1IDE5My41MzIgMjk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzIwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMjg5LjAwNSA1MzkuOTk4IDI5OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzE4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMyMSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDkgMCBSIC9YWVogNzIuMCA0ODQuNjIyIG51bGxdCj4+CmVuZG9iagozMjIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMjc3LjAwNSAyMjkuODg4IDI4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzIxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMyMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDI3Ny4wMDUgNTM5Ljk5OCAyODYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMyMSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMjQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA5IDAgUiAvWFlaIDcyLjAgNDQ0LjM3NyBudWxsXQo+PgplbmRvYmoKMzI1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDI2NS4wMDUgMTc5LjQ0MSAyNzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMyNCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCAyNjUuMDA1IDUzOS45OTggMjc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMjQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzI3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwOSAwIFIgL1hZWiA3Mi4wIDQwNC4xMzIgbnVsbF0KPj4KZW5kb2JqCjMyOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCAyNTMuMDA1IDIwNy45MDEgMjYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMjcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzI5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMjUzLjAwNSA1MzkuOTk4IDI2Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzI3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzMCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDkgMCBSIC9YWVogNzIuMCAzNjMuODg3IG51bGxdCj4+CmVuZG9iagozMzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMjQxLjAwNSAyMjkuMTkzIDI1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzMwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg4IDI0MS4wMDUgNTQwLjM0OCAyNTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMzMCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMzMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA5IDAgUiAvWFlaIDcyLjAgMzExLjY0MiBudWxsXQo+PgplbmRvYmoKMzM0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDIyOS4wMDUgMjMzLjQxNSAyMzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMzMyAwIFIKL0ggL0kKCj4+CmVuZG9iagozMzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4OCAyMjkuMDA1IDU0MC4zNDggMjM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMzMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzM2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwOSAwIFIgL1hZWiA3Mi4wIDI1OS4zOTcgbnVsbF0KPj4KZW5kb2JqCjMzNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCAyMTcuMDA1IDIzMS4zMTIgMjI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMzYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzM4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMjE3LjAwNSA1MzkuOTk4IDIyNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzM2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzOSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDkgMCBSIC9YWVogNzIuMCAyMTkuMTUyIG51bGxdCj4+CmVuZG9iagozNDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMjA1LjAwNSAyMTYuMzU2IDIxNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzM5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM0MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDIwNS4wMDUgNTM5Ljk5OCAyMTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMzOSAwIFIKL0ggL0kKCj4+CmVuZG9iagozNDIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA5IDAgUiAvWFlaIDcyLjAgMTY2LjkwNyBudWxsXQo+PgplbmRvYmoKMzQzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDE5My4wMDUgMjQyLjI2NiAyMDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM0MiAwIFIKL0ggL0kKCj4+CmVuZG9iagozNDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCAxOTMuMDA1IDUzOS45OTggMjAyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzQ1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwOSAwIFIgL1hZWiA3Mi4wIDExNC42NjIgbnVsbF0KPj4KZW5kb2JqCjM0NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxODEuMDA1IDMxNC45MTkgMTkwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzQ3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy45ODcgMTgxLjAwNSA1NDAuMzQ3IDE5MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzQ1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM0OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTIgMCBSIC9YWVogNzIuMCA2OTYuMCBudWxsXQo+PgplbmRvYmoKMzQ5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDE2OS4wMDUgMjA1LjU5NiAxNzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM0OCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjQ0OCAxNjkuMDA1IDU0MC4xNjggMTc4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzUxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxMiAwIFIgL1hZWiA3Mi4wIDY1Ny40MTQgbnVsbF0KPj4KZW5kb2JqCjM1MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCAxNTcuMDA1IDIxOC43NDkgMTY2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzUzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggMTU3LjAwNSA1MzkuOTk4IDE2Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzUxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM1NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTIgMCBSIC9YWVogNzIuMCA1OTQuODI4IG51bGxdCj4+CmVuZG9iagozNTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgMTQ1LjAwNSAxNzguMTAxIDE1NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzU0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM1NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDE0NS4wMDUgNTM5Ljk5OCAxNTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM1NCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNTcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjEyIDAgUiAvWFlaIDcyLjAgNTQ0LjI0MiBudWxsXQo+PgplbmRvYmoKMzU4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDEzMy4wMDUgMjE0LjQ1NyAxNDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM1NyAwIFIKL0ggL0kKCj4+CmVuZG9iagozNTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCAxMzMuMDA1IDUzOS45OTggMTQyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzYwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxMiAwIFIgL1hZWiA3Mi4wIDQ5My42NTYgbnVsbF0KPj4KZW5kb2JqCjM2MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCAxMjEuMDA1IDIwMC45NTQgMTMwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzYyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggMTIxLjAwNSA1MzkuOTk4IDEzMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzYwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM2MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTIgMCBSIC9YWVogNzIuMCA0NDMuMDcgbnVsbF0KPj4KZW5kb2JqCjM2NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCAxMDkuMDA1IDMwNS40MzQgMTE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNjMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzY1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggMTA5LjAwNSA1MzkuOTk4IDExOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzYzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM2NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTIgMCBSIC9YWVogNzIuMCAzOTIuNDg0IG51bGxdCj4+CmVuZG9iagozNjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgOTcuMDA1IDMxMi40NTQgMTA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzY4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggOTcuMDA1IDUzOS45OTggMTA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzY5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxMiAwIFIgL1hZWiA3Mi4wIDM0MS44OTggbnVsbF0KPj4KZW5kb2JqCjM3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA4NS4wMDUgMzAxLjE1MyA5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzY5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM3MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuNDQ4IDg1LjAwNSA1NDAuMTY4IDk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNjkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzcyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxMiAwIFIgL1hZWiA3Mi4wIDI5MS4zMTIgbnVsbF0KPj4KZW5kb2JqCjM3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA3My4wMDUgMjAxLjU0MiA4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM3NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDczLjAwNSA1MzkuOTk4IDgyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzc1IDAgb2JqCjw8IC9MZW5ndGggMzc2IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJzMvU2vLMmSHLbvX3H/AIsR4fEJCA3MvH5PkHaCBtCC4EqCpAVHwqz09+XmmVURp0+eHjOCC4IY9n33pp3KPFFpYe7h7vZvv+Vfyf/ff8B/xiq//vd//e3f7r/Lv0b5Zf3rX+XWf1l6zdZTyv5PFzK9/+N/gf/g//8P6VXar/8SiPPP6f3f66/S+w//96//7bf/57f063/87T/9Z//b/8P/vv36/367ftwb+L/+9r/86WbSf3f3d96h5fLf4R3+22+jXp9Z+iuvttb6NcuvMl7luqX/+D/9a/n1x/8bDxOXF3wX/vVXqwl/+C/3H/Dz4p8+f/D/4h7+7bfa0vUJ+MPMv3p5/+D6/sFfvmcjvnrp1//12z//y2//8R+5/crp17/8n/vr6bc/X221lFIZv/7lX3/9p//B/+T/K63935R/92tretkv/9f8N/8bAKpf8Yf/b1w18Xe//+df//I/75+d83q1Zn5FffiQtP58eSmvUYr/1trgrm+vufz6Mcifv16p++1Y46638iqG2x+Zu769asL9z8ld7xcNv36mRl1f82tUv76Xwl1fX8sfelXj7qfOV5p+fWnc/bTsL4j/ftrifn6rr1r8+prJnz/8Ir++GPe8Pb0G1jfVxV1vr2X4/fenl+Dh+vHKWN8+jbp+OIFgfbmnHfaqWF3L3N2M/urZn7Y37mnHeo2J3/7gfv4sr4XVLYt72umch9XN3Msy16vg5V2Fe9lXedWOl71yL+9qr47FbZ27nzVfE4trg7ofZ/TXGv64g/pultReueJdMfLHz5dlnqtKzq86ea4qub5647mq5PGaheeqUtJrLZ6rSqmv3HmuKr6pmvFc5V/MV0s8Vznvv/rguapYf83Kc1XxzTRlnqtKtVeePFeV2l/WeK4q1bfqwnJVaeXVF89Vvkiv2XmuKs13al/dSd5O94068VRVenuZE/Nsk3u5ul9Uea4qwzdqX9zMXl5fc/JUVYbv02DmlbjHnb5PY23z4h531pctgaum79P+7vozcO/W8n1a0FW+qi9/1OR6g7v/NV5J0FV+Jy9/v3zjqtTzWvKdWtBVlvqrgZvHpJ7Xku/UeHfJvcWDodcSdJW/tK/kb+8ciXp7zWV8EXSVuY6vvr7ZFnf/ruO7oKuszNdwbnYtxj2v+VYtKCtzHZ8FZWWu48uk2cpcxldBWJnLeN9FabayOl5DUFbWfKvuNFu5IHllQViZq3hLPFuZq/g6eLYyV/FdUFbWfafOPFtZX68lKCtzHZ8bz1bmOt4EZWWu4+sS2Mp1fBeUlU3fq01gKxfy+C7TbOVCPgvKylzIWxXYyoV8E5RVdSHvxEOzVU2+WwvKqrqSd1VIs1V1JZ8FbVVdyZugraor+cZrq+pCfgjaygP81xS0VXUhnwRt5W/6q/DayvehlwnaqrqOb4K2qraunBXJVh7hv6agrarr+CRoq+o6XslZVVfyVdBWtfvbYvOnt6vUP13fuoeyflld+EJ/yy+WdOYXnRiQXyz/8L/4J/+/yCnio77lFZtvuMkps9jTj/8e3OfpW64DeuWuL/6UJeMGyeurb7nIg/qqcoDhey6eoJF35BrGv/X+BOQHmLOC//WqkwUM33YdYIm8I49ge/Vn7pX8BA9hZ3ZAZVfBv/trYhVm5gCuZPyLjH+ZJMDZofhDL9+LOED3zdcBw9hbWr77OqBV8pY8lp1YaOvkLbmeiRz8SOwnLN+AHdAK+Qmj+A7sAN+GSUDzLdgB/vQkYPoejHUYj3zxkD3MvgljHRZ5S65qElba14IETN+G8QIV8pZW9n3YAR5KkoDqGzHWYbKf4MIeK+2ETQGcXX0v5mmsuLRJVaCxkoZvxgKN+cW+HfM05ju9b8cCjRWPbUcRaKx4cDuXQGPFBU7qAo2V0n1LFmjM5YTvyQKNFSuvNgQaKx7hjirQWPEQd2WBxopv5mkKNFaq7+lNoLFSfU8vAo35T/eLBBorHumOLtBY8VB3mUBjxdVU9pX23Z186F5fZQg0Vrpv63ilVyMfevi2ngUaKx7vjinQWPGA12WjS9pBvnHTt3VBjZVpr+LUPX0PIgG+qytqrHjM2/2VznmRz+xB71TkWPGod4G6J7kKyzd1vNH+i6IAlnxTV9SYpfaq/kbP0bj3zTzw7Yoa89t5TV/nXMk78sh3KWLM37JX7njhBvkJHgeYIsbMA4GmiDHzQKD7Cz1RK0IBUOOiiDHzSMDvaM1u3FfJPBLIihgzFIY0gcXMI4GmiDHzSKAvgcXMw+CpiDHzSCApYsw8EihJYDHzSMAEMWYeCLQqsJh/R19DEWPW52tOgcXMA4GkqDHzQKAUnsXM4wBbCot5HNAUMWbT93RTWGz6nq6IMfM4IA2BxTwMKIoWMw8DahZYrHoY0BQt5vHFayharCbf0ovAYk5gr6RoseqBQOkCi1UPBKqixaoHAl3RYhXlaooWq8X3dEWLVQ8EsqLFKirWFC1WUbKmaLHqgYCSGauoWVO0WEXRmqLFqscBWdFi1eMAKTVWUbcmaLEvOdKn7OdDkhQRHHKp2X+vf06S1jNJ6tt/jyRp+90fHX9CihRCrqDwdVxp00i+RGbW//uP9FCa6fGZoUIVX96HD39IxjVn2nblQzjAdKZt15eXAvi6rNSvLy8HaM60/cqHcIDpVNvjy0td7wvpPHLlQziAy7/Zri8vBxjOtC3yIdT1Hp2t0q7vLgdw9Yd1Rj6EAwwn2n7lQyiAR2fV+rUFcwBzou1XPoQDdCfafm3BHGA50bYrH0IBljnRtmsP5gCu/rDQyIdwgOVE2649mAEUj886XmnswRzA5d/qVz6EA0xn2n7twRQgF2fafuVDOEBzpm3XHswBpjNtu9K6FAAHNVWgMdQZzizQGAoN1xRorOCkpgk0VnBUUwQaKziqWTyNodawd4HGUGw4TaCxUscLpZUsjRUc1AyBxgoOaqpAY8XDs4Z1RiTBAVz+TYHGUHQ4/Y2OSIID9Fds0iyNFRzU+DojkqCuxzlNF1is4JzG+hVJcADf05PCYjinGQqL4ZzGFzoiCQ7ge3pWWAznNP5CRyTBAXxTbwqL4ZzGFzoiCQaAAsSpiDHDQQ3eaEQSHMB3dUWMuaB+VUWMGU5q/JWOSIID+K4uiDFUIfp+fkUSFAAHNYoYMxzUOHNHJMEBfFNX1JjFRT0iCe5639O7wGIoRVyKGDMUXSSBxQznNIoYM5zTVJ7FzMOArmgxFCSOKbAYKhKXosUMxzSKFjMc0yyBxQzHNIoWMxzTmMBiKEucihZDXaJfK7AYjmkULWYeCFhWWAznNIoWQ21iV7QYihNnUVgM5zSCFjOc03SBxSrOaRQtVj0OaElgMRQodkWMoUJxVp7FqocBSdFiFec0iharOKdRtFjFOY2ixVCm2AUthjLFqWiximMaRYtVQ1uxwGIVxzSKFqs4plG0GIoVh6LFUK04FS1WcUyjaLEvubgHgD3k4mr9MRdnX3JxfuH4NET/kfCbvf77LduWFjYQf4nX00//ni3wSLssv36kQQKa7x8DORUW4C+9ITvoARUF8Fdspo463UwCKvYPvAGTBPhbX/2WLJPP4JG2RcbTyGfwd6xOPEMjn8HfMd8/8G0jn8HfsYmFbrORAMP+4eSbCgkYvoH4Q49KfoLH2oaVbp38BH/HGr7KNsiH9li7D6zDYm/JX3ustF/FAbq/9hnvTyFfII+1M1a618f3+QGwfAfBOnTjAB5sN6x0IX9JHmt3f59TL+wHTN9BHFCNfOZZfAcBBzxz2APApXxw1iBvyWNtGwKNeajdqkJjHmoPrHMr5BvtofbEOlvl3mi0baeGZZjcJ6AmsuAYhftqoyLSlkBiqIhsXSAxlEQOE0gMJZErCSSG3u00BBJDSWSpAomhJLJmgcRQEtmmQGIoiRxNIDGURK4ikFix9UpLIDGURJYukBhKIqsJJIaSyJ4EEkNJ5Bg8iaEiclWBxErzPT0LJIaKyOIv9CQpCQWRtQkchoLI7uucayZ/qR5pD0WLoSBydRRqk1+kMXCsInCYB9qWFA7zQLv6Ms81yFvyQLsrUgwFkdOJ24M28pvkgfZSpJjL4Vf2hc5lkQ/tkbYpUgwVkRUvNPs2oCKy44UumftyoyJyKlIMnd2+zMtjJO7bbR4HZEWKoSTSnLqn62IO4HFAU6QYSiK7U7fTAPnQHmpPRYqhvzsqHTw+IQEVByuoHeW+3iiJNEWLoSSyGU9jqIgcihRDReQcAo2hyzspWgwVkSXzNIaCSFOkGAoimyLFUBE5ikBjqIicihhDr3fqAo2hIrIoYgwVkTUJNIaSyKaIMZREjqrQ2MSYMIXGJuaEKTS2MChMobGFSWEKjS2MChNoDDWRQxFjqIlcJtCYr/IrK2IMNZFlCDSGmshaBRpDTWRX1BhqIoegxlASuRQ1VjEoUVFjKImUMmMoiayCGkNFZFfUGCoip6LGUBK5FDVWa9MSYyiJNEWNoSRSSoyhJLIrauxLHvYB8JSHRQnHT3nYduZhrT1nYZEO/R1lgvhnTISIjP+35CzGwww8u39pHz7zISuI9UBJ5yKvn+gyxktROAAmxODpWiU/ASNiosCnP/7aHrOImGmS8iSfuWXyOsxx89/N9O8qB8AgNwd0qxygY5KbAyp7SxgQg/UtfZKAjuZif6PJD/AIMb6ZvmWRAENvMUp7yWfGjBisL39LGOeGZRjkM2NKzMIy+I7LATDSLRiD/FJjTgwW2gr5pfYQEZXmqQ/yoTEpJihmkg+NUTFYaI/kKACyh6Ok6yIOgNFui+cKFGVep/TPBPiQ3cNwN4G9MPnRlDvCvJghsBfSh6MK7IX04TU8g2Qv1GTGwGGWvTD9sZBLbBjuJhAYJj+2KRAYEoc4bqcJDInDa54XSWAY/pgFtsDwR6htmsAw/7FWgcAwALJLt9Qw400gMCQO72vIT+iY8iYQGKZAFrA2KjEowMCgN1ShV/J7PXwbN4HAkDq8fkmDfNVmet05a/KhPTjMvtL+COT7MzHuTSGwldBXjBZV8hkWBr4JBLZ8O1fkFzKHUfSQCkcvGAiZFfmFiZDX4OnGvXAYCcn9/pEyvI+TyJvPmPcm8BcKMa+GyEHefMHEN4G/MBDSBAGGgZAt41gykQCX/F0RYMgYXqWkRi6DYeqbwF+YCnkrC/IZKua+CfyFuZCtCvyFlOE1VYTkL6QMpyLAUInpASHPXxgOWRQBhumQtgT+wnjIpggw5AwxzpDmL+QMFUmIQsykCDBMiCym8JeL/6oIMMyIbEPhr+nbObkAK6OXWCAwl/1JEWCYEHnV/pEEhhGRVRFgmBGphGvIFV51FSSBIVe4FAGGKZHXbACSwDAmsigCDIMiqyLAMCmyKwIMycKhCDAkC5ciwDAtMisCDOMiiyLAMC+yKgIMAyO7IsCQLZyKAEO2cCkCDDMjlfxXdfEv5b++JAsfAE/Jwj5/Thb2dCQL/TthP6ULMTgzJk72++//nq726T++5c/atlt4+OiHhNvcfgsUoOVtuMAB6nZc4ABzWy5QgJ635wIHqNt0gQOM7bpAAUbatgscoG7fBQ4wtvECBUB1xns+MAewt/UCd3nf3gscYG3zBQqwMAvndorhAH37L3AAzMK5vGKY69EM/TFg4ACYhXO7xXCAuT0YKABKM9rtF8MBMAvnMozhrp/bhYECoDLjbW/FAer2YeAAmIUjkBh6oT9ODBwAw3AEEote6CyQGJqh2xRIDM3Qowkkhuzbx46BAqA0Ywkkhm7ojyEDB+jbkYEDrG3JQAFQm/H2ZOAAbZsycIC1XRkoAGozblsG7vq2fRk4wNzGDBQApRlLoTGUZtzWDNz1c3szUAA0Q7/NGThA3e4MHGBsewYGEM3Qb38GDmDboIEDjO3QQAEwtVbRYmiG/ng0cIC+TRo4wNouDRQA3dBvmwYO0LdPAwdY26iBAqAfS9FiaIf+WDVwgLm9GigAxtYWgcbQDp0VNYZ2aFPUGPqh334N3PV1GzZwgLEdGyiAxwFJUWPRDp15GkM3tCliDN3QH9cGDmDbtoED9O3bQAE8DPgYN3AA284NHKBv6wYOsLbfKAVYvqlXhcbQDa2oMbRDpynQGNqhSxNoDO3QVVFjaIduS6AxtEMPRY0hF7cUNRb90IoaQz90UdQY+qGrosaiH1pRY2iIHoIaQypuKWoM/dBZUWPohy6KGkM/dBXUGNqhu6LGoh1aUWPIxC1FjX3JrD0AnjJrM/2YWUv/nKLj8GiJdhKL8YTwb/mxHRpnlDNfvcQPP/57vgBnlDjhQy8xB3BewUERSiYpAM4o72MHEtB8H7/S1yRgwu7hasOjAB48j5Svym8OUGH3cLXhcYCJjfxqw6MAOKTM5ar85gAVO/nVhscBhu/kWIdF3hIOKe8jQRJgMHy4Kr85wIDhw9WGRwFwSImVRuU3BzAYPkQbHnd9x0Z+teFxgAXn8KvwmwJ47Lyw0OWZAB4AHd7hKSq/OcCC30P0ElPX44yy5KvwmwM0vyhfvcQcYMLu4ar8pgA4qcTBBiq/OUDDPo5eYu7yCf9wnsRQnlirQGIoT+xZIDG0N48pkBjam1cTSAzlibkIJIb6xLIEEkN9Yu0CiaE+sZtAYmhvnkkgMbQ3ryGQGKoUcxVIDFWKlgUSQ5VinQKJoUqxN57E0N08i0Bi6G5eSyAxVCnmLpAYqhTNBBJDlWLzhY72FQoA/TUEFkN/8/RXOpOcgSJFjH6iSQxFinkKJIYiRfN1jvYVDjBwviXQmF/UnbmjfYUD+JauaDEUKSZf6GhfoQDLt3RFi6FI0fBG06/D8j0dbzS68DjAwhEXT2Pob57+RkcXHgfoOOLiaQxVisXvP7rwKEDGFHKBxlCs6M97deFxAEwhF2gM/c0L3I0uPA6AKeT56sLjAJhCLvAYqhWrv9OTZCUUKzZFi6G9eTSBxtDevBQxhmJFfxVoGkOtYlG0GGoVq6LFUKvYk0Bj6G8eihpDf/OqAo2hVjEragy1imUKNIZaxaqoMdQq9iLQGPqbxxJoDP3NS1FjKFb00FigsYkp5AqNTUwhV2hsYQq5QmMLU8gVGluYQi7QGEoWcxNoDCWLVgQaQ81iVeQYahZ752kM7c1TUWMoWUyKGkPJYlbUGEoWTVBjqFhsihpDxWJX1Bjam6eixlCxKGXGULGYFTWGikUpM4aKxaaoMVQsSpkx9DdPRY2hZDEpauyrL/Z3wFNidf3s+YLEavzf7nH2t+1Ttvj3y9nFcIX/gOiF+1ai6N89S1e9/9NHPSQoUZp61Y1zAENpqgP8FSIBHvJlBzR7fPrHBOVCc4rv1hwA46zR5NAX+QkVtakOaJn9BN8cUHpt5PUYZ30X8JKAipP9qGcnAR7yobN2TO56TLPGOjdneg7gWwPWueZKAjziQ9fYaOQnYJr1xCoM8hMwzRrr7FsvCfC9AetcEvlbwjTru8SeBBgO9l0EVPKWpm8OWOje2FtaONn3dRjkG41p1ljpssg32oPQhMbObuwneMSHla6N+wRUchpWunSOM1DJ2ZpAY6jkHEWgMXRQzyXQGCo5UxdoDKWcxQQaQylnTQKNoZSzDYHGUMo5Kk9j6KBeWaAxVHKmKdAYKjlL42kMhZy1CDSGQs62BBpDIefoAo2hj3qZQGMo5MxJoDEUchZ/o6eLRBLgm3oVaAyFnN0XOlsnHxq2o1OgMaQoVwuDc/KhPQjNRaAxVHKWJdAYKjk9snIVXchv94TcU2hsVhztr/ms+x4zlEsRY6jkzL7QuVTymT0GNUWMoZKzgrrn4J4ZlZwdb3Tmvkko5JyKFkOCEl1Icybuy41CzqyIMRRymq+zqz7ymXNHywvNYqjj7E7c2b/gHKAUdLzwLIY6zqSIMdRxZrzQqZLP4HGAKWIMdZytCCyGOs6uiDF0U88usBjqOJMixlDHWZLAYqjjNEWMoZCzKWIMhZwjCyyGbuqpiDEUcqbGsxgKOYuixVDIaUtgMRRyNkWLoZBzmMJiwzf1JLCYxwFJkWKo43RtIrCYxwFV0WKo42xTYbHV0PPCs9jyLb0ILIYyzqRoMZRxFkWLoYyzmsBiKOPsihZDGedQtBjyk0vRYijjzIoWQxlnUbQYyjirosVQxtkVLYY6zqFoMSQol6LFUMeZFS2GOk4TtBjqOKXEGOo4u6LFUMcpJca+pBsfAE/pRg80/jLfmNuZb6z+QyPfiIOTmCeDMWl/Dv/9FSjvSS1PP/97wsDfgXqN/JgkAg7ao16T6UiEf+UwisDjABbR4S2Ifykkwt+DhCGBGE5HIszj23bNFiARHfaC13g6ErH2RRzC13m8pymRiIYg95ovQCIWotxrRB2H8PehYM3pm2rNw9x2jRggERM2g9eUOg7h79zAkmNKComoMBpMMaeOREwPddnVHhlh7jWqjkRUj3PrNSqFRAwEutewOg4xXVRitTEshUSYx7pNIBEPjjNWG/PqOMRyXYnVxrwUEmHwGlSobXUPdyVqWwsBr0BtSJ8uLDlmppCIjpD3GrtJIhYcBwVqQy98Swq1IYXah0JtyKHOqlBb8Ug5ZYXaSmke+SrUVspE6CtQG1riWxGoDYnUvhRqQyZ1doXaiofLMVOZpjZ/j+A+KFAbPMKN3ZDREu+xr0BtSKWOrFAbcqkTbzjGQHEIj5fxS+WprXTf9ItAbTAJ9wD4mgRFInzP7wq1IZ/qIfA1C4pE+J4vqbbiUbPHariGfY7pe36VqG36pg9SxzwoEjERCF8DoTjE8k1fUm3Iq3osfI2EIhHTg2GF2iz5zu9rHkOhSITv/JJqQ5d89zc8xkJxiJw8IBaoDdnVJak28/Ah4y3HaDsO4eFDkVQbOuU9Jr6G25EI3/lZ1Yb06vCLYr4dhzDf9CXVZh45ZFOozTxyMEm1oVW+KqoNKVaPigVqQ451SqoNSdY1FWozjxyypNqsYZy/Qm1omK+SakOitXeF2pBqnaZQm3n4kCTVZh4+eAghUJt5+GCSakPffMsStXn40CXVhozrbBK1LYz4V6htYcS/RG0LM/4lavPwoUmqDWnXkRRqQ951sqqteuSQqkJtFUbHkmqDmbhJqg3d801Sbci7DkW1Ie86JdVWPXBIkmqrHjgUSbXBUlzLtaGHvkmqDcnXIak2ZF+XpNpqxbh/hdr8Oyjm2mAsXiXV9iUF+4R4zMHmnz1tIgf7x5mDzbe/eEydx7mB/2sM0ce0ToylbD843CiTLJ1vP96tT7f3mK75mLeSiL7dW0nE2vatHAKGkm/LMBLRt4EriVjbwZVCIF/zsXAlEW17uJKI+TFx5QA5bxdXEtG2jSuJmC67bzNqDoGat7d3GIlwkVQuO2oSMLaVK4dA2Vu/DalJRN1uriRibDtXDoHStxGe1OT1tu1cSYQrpHy7UpOItQ1dOQSK39rtS00i+rZ0JRFre7pyCNS/vU1dSUTbrq4kYm1bVw6BErihsBtSNh9jVxIxt7Mrh0AV3NvalUTU7e1KIuY2d+UQqIR7u7uSiLrtXUnE+Pi7UgDUwn0MXkmEbYdXEjG2xSuHgOXk7fFKAmybvJKIvl1eScTaNq8cAjVxS+G3KIp7G72SiLWdXjkEnCffVq8kom2vVxIxt9krh4D7ZFb4LUrjJPUWtXFN4Tfkbaqk3qI6bin8FuVxknpDfdzH85VE1G36SiLGdn3lECNt21cSYdv3lUT0j/ErCVjb+ZVDeBjxsX4lEX17v5KI9TF/5QAeRXRJvaFUbkrqLYrlhsJvSNtkSb8hbfNxgCURc1vAcggUzDWF31AxNyX9FiVzkn6LmjlJvyF5Y5J+Q9Vck/RblM1J+g11c1PSb0jeJEm/ReWcpN+idE7Sbyiea5J+i+o5Sb9F+Zyk374mbx4Qj8mb8rPHCJI3nz9fPiPjNf8rkzc5/znxUOFLP67xnE+38T1VgQoqPCDmc5IIONPPy/WBRMCafl4jOjkESqjC7C+zAHjTj2tGJ4kIc/rL+YFDoIwKblYY00kiwp7+8n4gEfCnn2H+wAEm/OnnNW+YRMCgfl72DyQCDvVYjcE++AqL+ssAgkTAo35cM4dJRJjUXxYQJAIu9eOaOkwhoowKSw4TCBIBo/p5uUCQCDjVz2vwMIfIsKqflw8EiWgHjXGIcKu/7Gw4BAYiYc0xfJhEhF89DG3I62FXr7AbiqjqVNgtqqiawm5RRVUUdkNabi2B3VBElbvCblFEZQq7RSVVUtgNebk+FHaLSiosOMYQcwhUUmWF3lBJ5YR1zVMnEd21ikJvUUrlSx4T1TkE5iMthd6Ql5v+ksdMdRIB43SJ3lBKBWLHVHUS4fEC1pzeoKKUqkr0hlIqf81jsDqJgHu6RG8opfI1j9HqFCJKqYpCbyil8hjuGq5OInz3l+RblFJJ8i1qqfw9nyzropQqSeotSqn8NY8J6yQijgoFgkNirvmSZx4QJ4UCv0U5FYgdU9ZJRJwUCvyGcqoiybcopzKF36KeSpJvyMuNofBb1FNJ8i3qqbLCb6inKpJ8i3qqpvBb1FMVhd+QlxuSfENebnWF36KeSpJvUU+VJH6bcVao8BvqqarEbzNOCxV+mzgtlPgNBVVN4TfUU0n6DfVUdSn8hsRclwRc1FOZwG9RUyXpN9RU5aHwW9RUSfotaqok/Ya8XJf0WxRVSfotiqok/YaiqizpNxRVmaTfoqhK0m9RVCXpN+TlpqTfoqhK0m9RVCXpNxRVmaTfvublHhCPebn61w4l4Q6xB+nNy6Ek2e+/cpRXITuHzFz4ldx/Rrbue7srpiy9LTyePvV7agIVJ7gZ33pJhKVt4kEi6nbxIBFj23hwCL/o4+NBImwbeZCIvp08SMTaVh4cwr+RHy8PEtG3mQeJWB83Dw7Qy7bzIBFt+3mQiLkNPTiEh7YfRw8S0T6WHiRgbk8PDjHz62PqQSLqdvUgEWPbenAIVJxcvh7k9XUbe5CIsZ09KETB8KX3MGkSYdvbg0T0be7BITCAqSjsVjyu/dh7kIi+/T1IxNoGHxwCFSdJYTckRT8WHyRibY8PDoFBTFlht2Jtu3yQiPmx+eAANW+fDxJRt9EHiZjb6YNDtLytPkgEzOwFdittbK8PDoF5TPd4aRJQt9sHiRjb7oNDYCTTe8I0ibBt+EEi+nb8IBFrW35wCMxlek+ZJhF9m36QiLVdPzgEhre8B02TiLZ9P0jE3MYfFAJWIUkSb4b5TG/rDxIxt/cHh8h5m3+QiLrdP0jE2PYfHKLk7f9BIuo2ACER4+MAwgE8imiSeDPMaXp7gJCIvk1AOERNHxcQEmDbBoRE9O0DQiLWNgLhEK1sJxAS0bYVCIlY2wuEQ/SyzUBIRNtuICRibjsQDjHy9gMhEXUbgpCIuR1BOMTM2xKERNTtCUIixjYF4RArbVcQEmHbFoREjO0LQiGqBxIfYxASYdsZhET0jzUICVjbG4RDeBzxMQchEX27g5CI9bEH4QAeRjRJv1UPI7qk35AUnZJ+g6dIkvRb9TAiS/qtehhhkn6rHkc0Sb9VjyOGpN+QFJ2SfoOzSJL0W/U4Qku+fU2KPiAek6Ltr91FMGf5KFYsV7EikxRVmktjwOz7zh/u6CFPhQmz7/okDjGOA3wKEUNmr/ok7no7ju85RD+O7zkEpsy+65MoRMyZfZ9vcQgMmr3rkzjAOo7vKURMmn3XJ3GIdpzfcwgMm33XJzGIEtNm7+pLDtCO43sOgXGz7+pLChHzZt/HWxwCA2ff1ZccYhzH9xQiRs6+qy85RD2O7zkEhs6+qy8pREydfVdfcgg7ju85BObOvqsvKUQMnlXYrcTkWYXdSsyeVditxPBZnt1KzJ5V2A02ufvwnkOsfXhPATyY2Yf3HKIdh/ccYh6H9xTCg5nP4T0HaMfhPYeYx+E9hUAs8zm85xD1OLznEOM4vKcQiGWaxG6rHof3HGIch/cMAl24+/CeQ9hxeM8h+nF4zyHWcXhPIRDMVIXd0Ia7D+85xDoO7ykEoplP8SWH8M1f0m4wz52f4ksKgWhGUm9owy2SekMbbk0Cv6ELt0niDQ66oyr8Bg/dJak3VPulKfAbmnCLJN7QhFuLwm9owm1L4Tf46A5JvcFId5nCbyj2y5J6QxNuGQq/oQm3SuoNXbg9S/w2y9E7wyF8928Sv3kYkYvEbx5GFEm9oQ23donfPIzoknqDp+5MCr/BVHdJ6g1tuLkq/IY2XJP0G9pwq6Tf0IbbFf0GZ90p6TdY6y5Jv6ELN0v6DV24pug3NOE2Sb/BvaJL+g3+ulPSbyj2S5J+QxNulvQbmnBN0m9owm2Sfvua13pAPOa1+l+7WNiXvBYarKIJd/7uMiv8LO481tWC++fUQsZoBZih4JD/4ZO+JyMyRivED32+twcERisknAsYi8BshYSyDhJQMFoho/KRBWCyAp4C3ygOgckKeIrG3hTcgg1PwX4E3IL9r1edNAKTFRxhib0p+AVjwXtlPwOGwVjwSq8GHIMnVmNmEgHP4IblQLqDQ2Cygj/5wobJITBZwRHD2LuCbzCWvFX2rmAcjCW3zt4VnIPxjo7Efgasg4cjWmE/A97BWHOr7OsB82CseW4sLcA9GC/5GiwtwD4YL/lY7F1hqiLW3NeERWCyAt6owt4VHISx5qWyZIWpiob1mPRnLJTZ4JSB/IwwER4Cv4WJcFX4LYYqZoXfwkZ4CvwWNsJN4bcYqlgUfkM615bCb+Ek3BV+i6mKpvBbTFVMCr+Fm/BQ+C3shKvCbzFVMSv8Fo7CU+G3sBRuCr/FXMWi8Bv6t9NS+C1chf0tn93YNxA17qbwW8xV9DXPltknR5H7UPgtnIXxmq/GPjnmKmaF38JbeCr8FubC/p7POdh3EHMVFf2GjO5wYp8ts192FLlL+i3GKvpr7mqUfXCMVZQEXFgMg9gnuRphMYy3PBfywWOsoqTfwmXY3/I5GvkGhs2wpN9irqKveK7sTaHIXZJv4TTsxJ7TYD8DVQGSfIuxipJ8C7Nhf8nnWuRLHm7DknyLsYpZobfwG5bkWxgON4XeYqyiJN/Qvp2XQm/hOSzJtxirKMm3GKuYFHoL22FFvoXtcFXoLaYqSvItnIenQm9hPSzpt5iqWBR6Q5X7kuhtRoObQm+oCjGJ3mY0uCn0hrKQodAbqkIk9RZTFbNCb+FBLKm3MCGW1FtMVSwKvSGd2yT1Fj7EknqLqYqSeoupipJ6CytiSb2FF7Gk3mKqoqTewo1YUm9hRyypt5iqqKg35HOLpN7CkVhSbzFUUVJvMVRRUm9f87kPiMd87vhrR4xwF97N2+Upn1v+li7TC+Sr55Hj/TZHEQnCD3M9fPJjgnAHnhyiHYEnh5hH4EkhfF/fgSeHqEfgySHGEXhSCF//HXhyiIr+jjuxxiHGEXhSCCQI0zuxxiHsCDw5hJNEfSfWKAQShB/q4hB2BJ4coqO/406scYi1A08K4Bv7+BwccIh2BJ4cwkOE98EBA4j04Ie5OETzuPOdWOMQE90dd2KNQiA/+Ak8OURFd8edWOMQ8wg8KQQShEXhNyQId+TJIYZHngq/IUG4I08OUY/Ik0MMtHcI/IYE4Y48OYShv0PgNyQId+TJITxGaAq/RYKwKPyGBOGOPDnEOiJPCoEpGKbwWyQIP5Enh5g78qQAGILxiTw5RDsiTw4xj8iTQmAKRpMIDgnCd+TJAcYReVKIlY/Ik0PUI/LkEOOIPBkEEoSfyJMD2BF5coh+RJ4UIqcj8uQQdkSeHKIfkSeHWEfkSSFKOSJPDtGOyJNDrCPypBAeJBRJviFBuCNPDjGPyJNC1HxEnhyiHpEnh5g78qQAHkfsyJND1CPy5BDjiDwpBPKDkn5DxecaAr0hP5irQm+RH5TkG/KDdSr0hvxgl+RbJAiLQm+zHGUfHML3/i7RG6ZgSOot8oOSekOCsA+J3jAFQ1JvkSDMCr0hQZgl9YYEoTWF3iJBKKk3JAi7pN6QIJySekOCMEnqLRKEknpDgtAU9Yb8YJPUW+QHJfWG/OCU1Bvyg0lSb5EgVNQb8oMmqTfkB5uk3pAfHJJ6+5offEA85gfnX5uuWD/zg8Ve9lDvGV19/jfhtBKdy/DZ/dvvv8Y1CrL+7qHz59/abczS1/VX75Zow8c8tTjnVe7y64ebfUhh+U12u8uvOYT/rtB0Hc3BHGJ5aGR3/TWF8Ehn+npGczAH6Bg7eZdfc4iFzve7OZhC+G7lO9Zdf80hGsZO3s3BHGJ6aGRXczAF8EBnuoi9yq85RPPQyO7mYA4xPTTCagzywUvKHhqVuzmYQ1SMnbzbSzjEwNjJuzmYQniks7Dk0V7CISrGTt7NwRxieGxkd3MwhSjJYyO720s4hPlFdjcHc4jusZHdZMchFuZO3s3BFMJ3q4w1j/YSDtExeTKag7nrF+ZOCuxWavHISGG3UptHRgq7Ydzfagq7ock5F4Hd0ONclsJupU2PjCxlGhDboUJuGPc3werRXMIhBqZO3s0lFGJkj4wUdiujemRU7uYSDjE8MpLYbSaPjOxuLuEQhrGTCrt5oIMTgKt5jkKshLGTCrst3/vB69E8xyF878c7Tu9Pfq2HRgq7Ydzf9Lf8ap7jEL75Z4Xd0OScfc2v5jkKkX3zbwq7WfbN39/yq3mOQ0wPjRR+w7i/Kak35LySv+eTJV30OBdJvJllzJ28m+c4hG/+knoz880/C/yGaX9TEm/IeKWm8Bt6nEtR+M0ahv8o/GYN438UfrOG8T8Kv2Hcnz+0wG9IeSVJvaHJ2eN5gd+sY/6Pwm/+JXy1qfCbDcz/UfgN4/6WpN6Q9EpL4reJAUASv00MAJL4bWEAkMRvCwOAJH5bGACk8BuanLOk39DkXKbAbzVh/o/CbzVj/o/Cbxj3NyT9hnF/S9Fv6HHOkn5Dj7NJ+q0WjP9R+M0X+9Ul/YZxf1PSbxj3tyT9hibnLOk3jzpeJum3WjEBSOG3WjEBSOE3jPubkn6rDSOAFH5DmmyPV3pAPKXJMO7/pzRZbijP+ZImy6/23ypN9ucyvG+ZqOp7SF2IbB/v8iF3NXwP8Yv6yCRiJN9D/KI6J4sw30Pwe/FvF4kYvofcF3EIj1k8YnMKMvbJPWap5ojxw4o+ILrvIY5ow1jE8j2kCje1im8hDZNW2Qf3kCXjS9cq/RnLtxAsRycfHDVeFUvuvzMW0XwPIVc72j+X/5ZmHiQi+1uL1e5WWUTz/cMRTiosYvr+4YjSye85yrvqwLvEfkSpvn3gVSrsg8PoHKtdKvvgaP/EavN35dFKbliOwT64RytWsByLXXK0f2LJWya/56ju6l2hNlR3TVOoDfa9QbU0taG6Kw+F2lDdZVWhNlR3NV/zXDv7GWj/nAq1obprNpwKL/a36+FKKgK1RffnUqgN1V2GJfeNkkX4Bm4Stc38Gv6Wz97YV3DW1xzsSriiSL7aTj3sI3igUrJEbej8xBu+BvsIHqi0plAbKrtGEagtOj/9BZ8r0Qjf87tCbajscrJydjNyOVDZVZNCbajsav6C+zXsc2Tf86tCbajsWiB1nIOTiP5KeMGdE1iEb/qSakNlV/UXHMMSWUTbF5EI3/m7Qm2o7FqSakPrZ04KtaGyqyiqDZVdVVJtqOzqWaG26PyUVBsqu1ZTqA2tn5lVbdH1uRRqQ1VXlVQbqrq6KdSGqq4pqTZUdS1FtaHrM1eJ2jxwMEm1RdfnlKjNI4cuqTZUdc0iURvaPiXVhqqu3BVqQ1WXmUJtqOpqkmpDVVcfCrWhqmtKqg2mvUlSbdH2Kak2VHWZpNpQ1dUU1RZdn5JqQ1XXlFQbPHuTpNpQ1VUk1YaqLmNVGyq6mqTaUNE1JNUWHZ+SavuSqnpCPKaq8s/OFGAkVHV9caaI5FPB39QrJfVOVl0z/P79FBVbyXW4Jz7d5EOm6nBPJBHbPZEDjMM9kUQc7okk4nBP5BDzcE8kEds9kQQc7okcAiPH6+0NSyIO+0QScdgnUgi8FQbDpcZef5gnkgiYJ8LMyuh7OswTOQQGjr+dr0nEYZ5IImCeeHvDcggMHH87X5OIwzyRRMA8sVzesBzCDvNEEgHzRLxOmb0rO8wTOQQmjneF3WDD+jFPJBEwTxTYDS6saSjsBhfWj3ciidjeiRwAA8enQm6lH96JJOLwTuQQY3snkoDDO5FEHN6JJOLwTuQQ8/BOJBGHdyKJOLwTOcQ6vBNJxOGdSCIO70QKYenwTiQRh3ciiTi8EzlEPrwTScThnUgiDu9EDlEO70QScXgnkojDO5FD2OGdSCIO70QSsb0TScDhncgh6uGdSCIO70QSsb0TOQAGhkviDS6sXRJv1g7vRA7RD+9EEnF4J5KIwzuRQ4zDO5FEHN6JJOLwTuQQ8/BOJBGHdyKJGGiuV/jNw4gmyTe4sI4i8dvqrynJN7iwpq7wG1xYiyTf4MJak8JvsGFtQ+G36hcNSb/V3NBez/MbXFiTpN9gw1ok/QYb1irpN9iwNkW/VfPdX9Jv1SoaSAR+gwtrlvQbXFiLpN/gwlol/QYX1i7pt9rSa0j6rTbf/SX99qV78Qlhfy59Qjal/OxWgVxX5Lt2rssVYqSn/unKcYWvBPJdtwcr6lEjn9WiQiv+Z08PNVf+C7TWr8FBT7fwPa/hv8AWP2tNFmHIwl6Dg0iEk15vV+s5h/BIzH+t1+AgEuGkl9rVek4i+stGv1rPSYSTXu3X4CAOMZz0/GGi9ZxEtNf0NyYGB5EIZ73WrtZzDuGhWCntGhxEItrLsOZoPScRznpYcwxG4xDLaQ9rjtZzEuG0BytitJ6TiPlKWHMMRqMQ6K4sWPNC/qrQXFmx5BiMRiKi7PFqPecQOcoeYzAaCYiqx6vznERE1eM1GI1DFFQ99mswGolA1WO/Ws9JBKoeFX5Db+UYCr8hi7eqwm/orcxZ4Td0V5ap8Bu6K2tT+A3dlb0o/IbuyrEUfkMab3WF39BemU3hN7RXWlL4Df2V1dc8RmuQiCh+FPgN/ZUTrzlGa3CIEcWPAr+hvzI3hd/QX2n+nsdoDQ4xUfyo8NtE7WO7RmuQiKh9VPhtofaxX6M1SETUPioEt1D72GO0BgmI0sdrtAaFQHdlnwq/+fccpY/XaA0SgdJHhd/QXem/15gcRAJQ+qjQG5orm/VrchCHKCh9VOjNCkofFXpDd2XylzwmB3EIQ/2jQm/orjR/yWNyEIlA/aNCb2ivHEWhN6TxpiTf0F6ZukJvaK8sknxDe2WV5BvaK9tQ6A3tlUORb0jj+cYv0Bu6K5Mk39BdWZpCb+iurJJ+Q3dlWwK9oblydIneJsofJXqbUf6o0NtE+aNEbwv1jwq9LZQ/SvS2UP6o0BuSeEtSb+itzJJ6Q3NlWQq9obmySuoNzZXdFHpDc+WU1BuyeEtSb+iuzJJ6Q3elSeoN3ZVVUm/oruySekN35ZTUG9J4S1FvaK7MknpDc6VJ6g3NlU1Sb2iu7JJ6q7C9VNTb1yTeA+IxiWc/WxREEu+PM4mHo8t/N4n3z9f/Rsfk27wAxgXfa9LiEP8dTT/cx0MeqB/RNIdYRzRNIeIQ/03HHKId0TSHWEc0TSHiEP8dTXOIdkTTHGIe0TSDKHGI/46mOUQ9omkOMY9omkLEIf6bjzkEDvHf2UIOMY5omkLEIf47W8gh7IimOcQ4omkKEYf472whh7AdTXMAnOG/s4UcYh3RNIWIQ/w7W8gB+hFMcwic4b+zhRQiDvEVfitxiK/wW4lD/LfcpBBxiK/wW4lD/FtucoB5RNMUIs7w33KTQ9QjmuYQ44imKUSc4b/lJoeoRzTNIcYRTVOIOMOX6C3O8N9yk0P0I5pmEBZn+G+5ySHsiKY5RD+iaQ6xjmiaQsQZvkBvFkf4b7nJIdYRTVOIOMN/y00O0Y5omkPMHU1TgDjDf0fTHKIe0TSHmEc0TSHiDF+hN4szfIHeLI7wFXqzOMJX6M3iCF+hNzQsZkm9oWFxR9Mcwo5omkP0I5rmEOuIpinEKEc0zSH6EU1ziHVE0xTC44gqqTekjrqk3pA62tE0hVh5R9McoB3RNIeYRzTNIDCWa0fTHKIe0TSHGDuapgAeRaSs0BuaFrOk3jCK3iT1hrlcTVJvyBx1Rb0hcTQl9YamxSSpNzQtFkm9YRS9SeoNY7mapN6QORqSekPmaErqDZ2LSVJv6FwsknrDWC6T1NvX1NED4lvqCO2p9WF6fTnSRTDc+8zfwkS1fmWGIhvkOJTzRa32Q4vj57o/dgYJk/veGLRM5npml7iJX5Gd+sf983HZnx8M9RftUz/z8IgPUfdxAEMBUH7xqZ/hEOcBDIeIARRXREwB6nn+wiFi/sQdEXMIHMC8I2IK0c4DGA6BA5h3xo9DnAcwFKIfBzAc4DyA4RDnAQyFGOcBDIc4D2A4xHkAQyHmeQDDIc4DGA5xHsBwiPMAhkKs8wCGQ5wHMBziPIBhEFF+8ZGMHOI8gOEQxwEMBcjnAQyHOA9gOMR5AEMhynkAwyGOAxgOMA/JSCEsH5KRQ9RDMnKIcUhGClHTlowcwA7JyCHGIRkpBIovkkJviKG3ZOQQ/ZCMHGIdkpFC9HJIRg7RD8nIIdYhGSmEx9BbMnII3/27Qm9RfmESvaH8Ikn05jF0GhK9ofxCUW9RfZElelv1qH7mEL77N4XeovxCkm+IodMS6C2qL7pCb1F9Iam3qL5ICr2h+mJI6i2qLxT1FsUXknpDDF0k9RbFF5J6i+ILSb2h+GJI6i2KLyT1FtUXknqL6gtJvaH6okrqLaovJPUW1ReServmBfW7s+sB8Vh+0R9GW79j6C+zgpAxiUD2a0hb32N/UGrxLsmI/0vvIPpPn5pxHlveo0gePv/bk2WPJcd6jyKhEP4t2L36HKJj4Pw9ioRDrKNXn0K0goHz+MWwd4UD2U+vPoeY/r15jyKhEPG9efeycggPcd+DljjAxLz5exQJhRj5aNXnEBXz5u9BSxxiHL36FAIHsu9BSxygHq36HGK87DNoiULgPPbTq88h7OjV5xAe4d6DlpjrMZhpd+pzCIPVY7oGLXGIfnTqc4j1ap9BSxQCp7GfTn0O4fHtUNgNo5lSVdgNo5l2pz6HaPB6FNgNo5l2pz6FwHlsUdgNk8d3pz6H8Ai3K+yG0Uy7U59D1FdNArthMlMbCrth8Phu1OcQBq9Hgd0wmml36lMInMd+OvU5hB2d+hwCuf27U58DrKNTn0LgONYUdsNspt2pzyHW0alPIXAc++nU5xDt6NTnEPPo1KcQOI5tEr/hPPYzaYlDeID7mbTEIDCbqUrqDbOZ+mfSEofwzV9Sbxg/vj6TljiE7/6SesNsJvtMWqIQsFuV1BtmM/XPpCUO4bv/Z9ISh1jHnEwKAbvV96QlDtCPMZkcYsHtUeA3g9+qJN8wfXxWgd8wmilJ6g2zmbKk3jCbyZrCb5jN1CT9ZjjBXQq/Yfr4lPQbZjMlU/gNs5mKpN8wm8mGwm+YzdSqxG8zHYMyOYS95pT4zeOIJOk3zGYqReI3GK5K+g2zmVqX+G2tY1Amg8AM8pUUfsNspjQUfsNspiIJOMxm+kzK5ADtmJTJIeYxKZNClHxMyuQQbU/K5ADzmJRJITyOqJJ+w2ymLuk3jCAfkn7DCPIl6TfMZsqSfsNspiLpN8xmqpJ+w2ymLuk35BWnv0xhvvmEeMwrjoc55Hde8U9zmcZtl9d+91/AO69Y/u7//fuVRfw6dzyMkf/xzjpG49dVaPM9O/exYnu4mcfk3LZi4xCnFRuHOK3YKEQ/rdg4xG3Fxl18WrFRiHFasXGI04qNQ5xWbBRiHlZsHOC0YuMQpxUbhVinFRuHOK3YOMRpxcYgkJrbVmwc4rRi4xCnFRuFyKcVG4c4rdg4xGnFxiEwj+TtMkkhymnFxiEwj+TtMskhDis2CmCnFRuHiHkkArUhM7et2ChEjXkkArUhMxdWbNzFGEWiUBtq/bYVG4fAKBKF2pCV21ZsFKIfVmwc4LRi4xCnFRuFGKcVG4c4rdg4xGnFxiFOKzYKMU8rNg5xWrFxiNOKjUKs04qNQ5xWbBzitGJjEMjKbSs2DnFasXGIw4qNAuTTio1DnFZsHOK0YqMQ5bRi4xC3FRt38WnFRiHstGLjEKcVG4c4rdg4xGHFRgHqacXGIU4rNg5xWrFRiHZasXGI04qNQ5xWbBSin1ZsHOK0YuMQpxUbhRinFRuHOK3YOMRpxUYh5mnFxiFOKzYOcVixUYB1WrFxiNOKjUOcVmwMAnV+24qNQ9xWbNzFpxUbhzit2ChEPq3YOAQqYBVqQ41fUVQbxqSbpNqQimuSakMubkiqDbm4Jak21PglSbWhxq9Iqg1z0quk2pCLa5JqQy5uSKoNubglqTbU+CVJtX3tk3tAPObi5sOc9Hcu7st4Jd/zr1o+ppGNmZXuX4Zq/S7XeLiN7/kM/zL01O90P4VAGDn6Va7BAepr1XGXa3CI+crINEa2n0IglJzjLtfgEPVVG7KZg70rDyV76VcxGgVAJLn6ne3nEIby27sYjUMMTEu60/0UwkNJS+NO93MIDyXHiGI07vr+6ljwSPZziPWaUbxq7D0hkPwU33KIjllJdzEah1iYlXQn+ykEAkmseBSjcYj26n3cxWgcYr6mjfswk0GUVF6oGr+K0TiEB5JY8TjM5BDzZVjzlNm78kiy5X4fZnKIimlJArthatdsCrv5LoppSTy7Ye5eXgq7YWiXdYXdMLSrmcJuGNo1ksJu6DieQ2C3UtMrVYXdMLSrZIXdMLXLpsJumNrVmsJumNo1Cs9u6DeeS2G30hZGJd1HmRTCY8liCrthZlf1Bb+OMjnERN+7wG4Y2jXwjvMvB+x7seJRqsEhPJacErt5LOnvxV2qwSF86y8SuyGWdF6/SjUohAeTo0vs5sHk8pf8KtXgEAOd7wK7YWhXAa9HqQaHMHS+36UaHMJ3f0m8YWjX8Ld8slyFhuMlaTfzgDL7kl+lGhzCA0pJvGFoV3VezyyTYGZXl7QbGo6npN3QcOyK5y7V4BC+90vqDUO7/Bcs8BuGdlVJvWFoV28Kv6HjeErqDR3HWG+e38yDiNwVfsPULpPUG6Z2taTwG6Z2dUm9oeN4VoXfDA6+knozjyLyVPgNU7tMUm+Y2tWKxG8eR/Ql8dv0/V+Sb+ZxRDKF3zD8V1JvmNplQ+I3DyOaJN8wtWtkgd/QcDwl9VY9ikiSesPUrlIUfsPULpP0G6Z2NUm/YWrXkPQbWo6XpN9cwcD3S+A3jO0qkn7D2K4q6TeM7WqSfsPYriHpN7QcL0m/uYJB67vAbxjbVST9hrFdVdJvGNul5d6uluPp70d7vqvHdOR6mPh+pyPfk9+vdKRHdBZJyHuKOya8lz92UvJ7vhH1Og2Tvurjx3xPXhQEWwUvxmARCLccMQb9GQi3MDqssQhDuIXHQPkUh0C4hedAtppDINxyxAR9UggkWqsjOrLVHALhliOqsXeFoh3/iq/S2LtCphVL3hb7Gci0FkfUTH8Gwi1DFpx9cqRaseaRp+cQCLewHv35FXlOtWLNO+qnKASqdrDm7HMj0YoVt8zeE1KtqNANQuAQCLawGoP9DKRaseIeobIIRFt4n9jXCSU7eMlXYWkBmdYOWqjsS45MKxa8dfaukGnFgtsg7wr+CGv4gw/yexuJ1oq3yeiPQLClsBsSrXUq7BaJ1qawWyRai8JusEdYS2G3yLR2hd0i02oKu0WmNSnshkxrHwq7Raa1KuwWqdassBtSrXkq7Bap1qawW6RaC89uSLT2pbBbpFq7wm6RavUVn/RNIdOaFHJDptWc1Geb7AuITGtV2C0yrb7gmQcg1FLILRKtYPWV2AdHohXrnRf74CjaWRK7IdHq77g/C/v+IdEqabdItPqSu5JhnwNVO5J2i0Srv+M5V/LJI9EqaTckWht4fUzyySPRinec3p8i0yppN2RaPcBcHgOSb3lkWiXtFplWX/OrQ4pDINRS2A2p1uG87oqPfXKkWiX1FqlWSb0h1VqmwG+RaZXEW2Rai8JvyLQOSb1FprUL/BaJVkm8RaI1KfyGRGsdCr9FolVSb5FozQq/YbTjktRbJFqbwm+RaJXUGxKtdUn8hkSrpN4i0WoSvyHRmiR+8zAiS+otMq1V4jdkWiX1hkyrE5XAb5FqldRbpFqLwm9ItWZJv0WqVdJvkWpV9FtkWiX9hkzrlPRbZFol/RaZVkW/IdFqkn6LRKuk3yLRKuk3JFqnpN8i0Srpt0i0SvotEq2SfvtaxfmAeEqbojXmx7Tp6XqA2YfRLV1gMwCjzPlOn35LlzbfvROSyvb487+nIPL07Tuh5IkEYOp1yTHdlgRU37yR4fU1JhHjhbmaMd2WQ2DqtaXwJiABThz+1zHclkQM37zT5U3AITD0uubLm4BEGEY9XtNtSUTHqMfLm4BDuDLyLzb+ZbIIp46SLjdSEtF9807XeFsSsXzzTpcbKYfA1GssOcbbkoiOWY/XeFsSsTDs8XIj5RCYeo01x3hbEtEw7DGFGymJmL55p2u8LYfwwHriJYcbKYlovnmna7wtiZi+eafLjZRDrOybd7qmd5OIinGP1/RuEjEw7vHyXqEQ6KafQ+A3GNCmqvBbwdjrrPAbmultCvyGXvrWFH5DL/0oCr+hl34uhd/gP5u6wm/wzimm8Bt66WtS+A3N9G0o/IZm+lEVfkMz/coKv8E9J02F3+CeU5rCb+ior0XhN3TUt6XwGzrqR1f4DR31yxR+g3tO9jWP8d0kor7KUPgNLfUVrznGd3OI4ft/VvgNLfVjKvyGlnq/5nIn4BDT939Fv8E9pzixhzsBifDtX9Jv6Kjv/pqHOwGH8Lh6SgIOHfULxD7Z1Vi+++MthzsBhYB5jkn6DQ311d/ycCcgEb77S/oNHfXTVxzuBCSgvpYk32Cek3u+3Ak4hIcRJsk3NNQ3Sb6hq777Sx7uBBzCw+opyTe456BnONwJSMR4ZUm+wT3HmkJvaKtvknxDW31fCr2hrX5K8g32OUmSb7DPwWQznt5gn2OKfENXfasKvaGrfkjyDV31cyr0BvecJOk3uOeUItAbmuptSfTmYUST5Bua6odJ9DZ985fkG9xz0lDozaOIIqk3NNXXrNAbmuqbpN7QVD8k9YbO+lUUeoN7TpLUG9xzSlfoDZ31VVJv6KzvknpDa/2Q1Bta65ek3mCfkyX1BvucIqk3tNZXSb2htV7KvqGzfkjqDZ31WvYN7jlZUm9wz9HSb+isr4p6+5KSfUI8pmTLz+Y5pZ4pWRcK/fuQS2i/cnjSvm1zopb4H+mhvrUeLmlPn/6Q8YshEXeehUMcLmkcoh0uaSQCQyJuj1sSsV3SOAAsUt8etyTicEkjETEj4sqzUIBxmKSRiBgRcedZOARc0m6PWw4xD5c0EgGXtNvjlkQcLmkkAi5p7c6zUIh12KSRCNiktTvPwiEOmzQKgW73j00aiYBNWr/zLBzisEnjEPBIxZpHnoVDHDZpJAI2ae3OI1OIctikkQjYpCn8hiLMNRV+g7FNbgq/wdjGisJvBedFS+A31GD2rvAbajCnKfwGYxuUntL8Bl+bPBR+g6+NVYXfCjxS3ya3JGJhToPAb6jCnG+TWxLRX6ko/AZjm3yb3HIAHBZ1hd4KDoveJrckYmImq0JvOCwaEr3hsOhtcksiJgY1KPSGw6K3yS2J8N2/SfSGw6K3yS2FQBXmlOQbfG3S2+SWRPj2L8k3+NpUSb4ZjoveJrckwrd/Rb6hCHO9TW45BE6LJPkGW5vyNrklEb77S/rNcFp0m9ySgIa5rAK9oQZzSfINtjY5KfQGW5siyTfDYVEV6M1gkSqpNxRhjqnQG4owl6TeYGuTJfUGW5uyFHoznBVJ6g3d7t0UekMR5pTUG4ow15DoDWdFknqDrY1lid5wWCSpNxRhdkm9oQhzFonecFikqDe42uSu0BtcbUxSb9XDiJYUekMNZpfkG2owZxXoDa42SVJvcLXJknqDq41J6q3isEhSb6jB7Ip6QwnmlNQbXG2SpN7galMk9QZXG5PUW8VZkaTeUIM5JPWGGswpqTe42iRJvX1N+D0gHhN+9rOrjX1J+NV6TdKM1nXM2Bz3f7+l9NLCBhNzzp5+/PcMhEfun0FAJKLFIKBUJo1wIsBUmIyojEIUmARhwkTJLKLGJCB/ISaLmHsSEIfwyN3ecxxJRN2TgEjEwP5yzXHkEP7SfSYBkQjD/nLNcSQRwzeYe44jh/DY/TMJiEQ4FbznOJKIvicBkQingvccRw7RbU8CIhEdO8w1x5FErD0JiENgVu89x5EENN9g7jmOJGLuQUAcYhbfYe45jiSi7UlAJGJihxH4zUP3zyAgElGxwVxzHEnE2JOAKAQ66T+TgEiExwHXHEfy+rHnAHEID9xbV9gNdZ6fOUAkouNsR2A3NNJ/5gCRCMPZjsBuqPOsWWE31Hl+5gBxCL9oNIXdUOf5mQNEItYrLYXdUOf5mQNEIo4Z3CTimMHNIdqewU0CjhncJOKYwc0hOmZwX2POSMAxgptEYAT3PeaMQ4xjBjeJwAzua8wZCThGcHOIeYzgJhEYwX2POSMRxxBuEoEh3PeYMw6xjiHcJAJDuO8xZyTiGMJNIVDmWd9jHEkEhnDfY85IxDGEm0NkDOG+x5yRiGMIN4nAEO57zBmHKMcQbhKBIdz3mDMScQzh5hCGIdz3GEcSgSnc9xhHEnFM4eYQFVO4BX5DmeeQxBvKPOdQ+A2d9ElSbyjzLFngN1R5miTeUOXZJPGGMs9RFH5DmeeU5Bs66T9juDnEOMZwk4hjDDeJOMZwc4h5jOEmEccYbhJxjOHmEOsYw00ijjHcJOIYw00hUOg5JPmGQs/PGG4ScYzh5hD5GMNNIo4x3CTiGMNNIvYYbg5QjjHcJOIYw00ilph9Q51nVfQbyjy7pN9Q5jkl/YY6zyXpt1qbmHxDnadJ+g11nlryDXWeXdJvX/O+D4jHvG/92UEJ7mlHoWd7zvqyfklYlnV5AT996EP2EctyGRSTgIn27MtVjkNgZA8eEF7AJKK+rtKk/vy7e0xXYqhMeAFzCHxFuAsxpm9dPsAkAmP61uUoxyFiJvq6fIBJBMb0rctRjkT019tMnANgJDpWGhbnJMLQlH05ypGIjqZs6a4wpW9djnIcIkair8vinERgTt+6HOVIBOb0rcvinENgJjqKtWFxTiLa6yKeyT45JvVgyWFxTiGQphwlXReRCEzqWwKDlBiKvi6zTA4RQ9EVWisxFF25KQzqGQqtIU85qkJryFNek0lYWkOtaQyqpmkNAz8Lu9gxDV1hthLT0BVmKzENXWG2EtPQFWbDqM+scAgmfUKo88yGWZ+1KsyGWZ9du6uGCX0KsyFDeV/DfkbHhD6F2TDss4DTo26EQgyM6FuXVyaJ8P3eFGZDjvL6VQ325ZvpdWfK2Sf3KDP7mocNMInAjD6J2VZCQ/ZlA0wiMKNPYbbl+74k2JCijPoM2ABTCAz7zJJgw7DPa1p5I19BDPsk1wG5yftci32AjNl8CrGhwPRqHB3sAxTM5lOIDVM+TZFsGPLZ8rpMgDmERwxdkmxITV5lssYuh2E0n0JsmPJ5qxD2OSpG8ynEhimfrSrEhtzkNbiFJTbkJqck2VBhevkls8SGMZ9FkmwY82lLITaM+WySZENyEnMoeWJDclLSkSgwTZJkw5TPYhKxeexQJcmGKZ9tSMQ2fd9nF2JlNGErzOZRQ5IkG+Z7XrWMLLNhvmeVJBvme0phH5KSVxUIy2xISi5JsmG85zVogWU2jPcskmTDfM8qSTbM9+ySZENWckiSDVnJJUk2DPjMkmTDgM8iSTYM+KySZMOAzy5JNqQlpyTZkJZckmTDgE8pxwYjJS3H9jUr+YB4zEq2n42UIinzyUr618N+ykti1mlMB+333/89Xc3nf3zL0bXt2/H02Q9Zvbl9OzhEy9u3g0TU7dtBIub27eAQPW/fDhJRt28HiRjbt4NDjLR9O0hE3b4dJGJs3w4OgVqS9+RnEmFv3w7y+r59O0jE2r4dHGJh9tDtSkQi+jbuIBGYPXS5ElEAdJJ/fDtIBGYP3a5EJGJu4w4OgUKSdrsSkQjMHrpciUjA3L4dHAJ1JG/PNRJRt28HicDsIYXd0Ej+8e0gERg+pLBbNJJnhd3QSd6mwm7oJB9NYTek+D6+HRwChSRLYTe0kn98O0hE374dJGJt3w4OgUqSt28HiWjbt4NErO3bwSFQSXL7dpCAtn07SMTcvh0cAoUkS+I3FJLcvh0kYG7fDg6BTvK3bweJqNu3g0SM7dtBIaKT/O3bQSJs+3aQiLF9OzgE5g5L6g2d5B/fDhLRt28HiVjbt4NDoJX87dtBIvr27SARa/t2cAgUK0jqDb3kH98OEjG3bweHwODhovAbesmzpN/QS26SfkMz+du3gwTU7dtBIsb27eAQHkYkSb9FL3kW+A2t5CbJN7SSf3w7SIRt3w4S0bdvB4fwKOLj20EibPt2kIi+fTtIxNqeuRxi+e5fJX5DK7mk39BLnqbCb+glL03hN/SSV0m/1Zihp/AbesmHpN+Q8FuSfotmckm/oZm8SPoNzeRV0m/RTC7pN3STD0W/Id+3JP2GZvIs6Tc0kxdJv6GZvCr6Db3kXdJv0Usu6Tek+5ak375m7x4Qj9m7/rOfT/rnFH2ZRz+5s1sMkISfz4+95Dg3nfluwn74+d9zEDg3xYljNGFzCGcb3GfUgVIInJvehx4sovl+n+86UA4xYfVxtylSCI/FR8p3nTuHqLD6uNsUOcTEhn+3KVIIHJzmcte5c4iKHf9uU+QQw3d8rMdi7woHp/cZJYswmH3cde4cYsDs425TpBA4OMWaR507hzCYfVxtihygY8O/2xQ5xPINv9xl7hTCQ/GFJS8/kMIDovuGf50vsIgFr4+rCZsC4Ny05LvMnUM0vyjfTdgcYsLq465zpxA4PcXBStS5c4iG/T6asLnrp+/2Cruh4rJWhd1Qcdmzwm5oDR9TYTe0hq+msBsqLnNR2A0ll2Up7IaSy9oVdkPJZTeF3dAaPpPCbmgNX0NhNxRe5qqwGwovLSvshsLLOhV2Q+FlbwK7oTN8FoXd0Bm+lsJuKLzMXWE3FF6aKeyGwsvmS3518VAICLah0Bt6w6e/5pllEtRdYvQWz26ou8xTYTfUXZqv+NXFwyEGztoUfvNIvDuvX108HML3fkm9oe4y+ZJfXTwUYvneL6k31F0a3nL+9YAxJ97y6FLkEAvHbQK/oTd8+lt+dSlyiI7jNoHfUHhZ/BmuLkUKkTFmXuE31F/6Q99dihwCY+YVfkNv+AKzR5cih8CY+Xx3KXIIjJlXCA4FmNXf88myFeovm6Te0Bo+msJvaA1fknxDzYm/Gjy/ofyySOoN5ZdVUm8ov+xJ4TcE30PSb+gNX1XhN5RfZkm/ofyyTIXfUH5ZJf2G8steFH5Db/hYCr+hN3xJ+g31lx5pK/w2MWZe4reJMfMSvy2MmZf4bWHMvMRvC2PmFX5DFWZuCr+hCtOKwm8ow6ySgEMZZu8Cv6E1fEr6DVWYSdJvqMLMkn5DFaYp+g1FmE3SbyjC7JJ+Q2v4lPQbijC17BuKMLOk31CEqWXfUITZJP2GIkwt+4be8CnpN1RhJkm/fc3jPiCsP+Rx588mQMjjxv/t/nB//z6VmH+/rH4MV/gPiE7Bb1WX/j20dPU5PH7WQy4UZbdXmTyJMJTdOmLgN8UhPHTMjmj2/Bt4zIUutOgYdgIKgSnl6PDoi/2MirpbR7RMf4bvHagyNxaAKeV3iTKLqCg/iAp+FuGhI7qRkfOgABhSjhVv2Ac4hO8cWPGKs08O4ZEj2ulGYz8DQ8onVmOwn4Eh5Vhx36BZhG8dWPGS2N8VhpTffQUswlB94Gqhsnc1fe/AkvdG39VC+YGvx2Dfcgwpx5qXxb7lHs8mNMF2oz/DI0eseW3kZ6BE1bDmpZNMghLV1hR+Q4nqKAq/of98LoXfUKKausJvqFEtpvAbalRrUvgNNaptKPyGGtVRBX5D//nKCr+hRDVNhd9QolqawG+oUK1F4TdUqLal8BsqVEdX+A1d6MsUfkOFak4Kv6FCtfhbPl1Ysgjf/avCb6hQ7b7k2Tr75LC0nQq/IRu6/C2HwSGJ8Hg2F4XfUKJalsJvKFH18Mz1d2G/7BMKUeK3WVF/sOYPUvExGbok+YYS1exLnktlH9zDWZPkG0pUK4h9DvLBUaLa8ZZn8luFCtUpqTfkQtGVNWciv+uoUM2SfEOFqvmKu1JkHzx39P7w9IYC1e60nnNhH7wUtP4I9IYC1STJNxSoZrzkqbLP4WGESfINBaqtKPSGAtUuyTf0os+u0BsKVJMk31CgWpJCbyhQNUm+oUK1SfINFaojK/SGXvQpyTdUqKYm0BsqVIuk3lChakuhN1SoNkm9oUJ1mERvw3f/pNCbhxFJEm8oUHUho9CbhxFVUm8oUG1TorfV0Pwj0Nvyvb8o9Ib61CSpN9SnFkm9oT61mkJvqE/tknpDfeqQ1BtSoUtSb6hPzZJ6Q31qkdQb6lOrpN5Qn9ol9YYC1SGpN+RCl6TeUKCaJfWGAlVT1BsKVLXkGwpUu6TeUKCqJd++JjYfEI+JzfWz2RGSmrmdic3qF0diE0c3MbsHY+v+nFDwF6J8JuI8/PzvKQh/Ieo1UGWSCHg5jXqPC+QQ/tXDUIcyaESHOyX+pZAIfyESxjfGuEAOYR4lt3tCA4focKe8xwVyiLUv4hC+zuMzv4pDNITJ94QGDrEQJt/jAimEvxEFa07fVGseJbd7QgOHmLCnvMcFUgh/6QaWPGbPcIgKe8p0jQvkENOjZHa1R0aAfM8L5BDVA+R6D5/hEAMB8j0vkEI4HU2sdgyf4RDmEXITSMRD6ozVjnmBFGK55sRqx/AZDmEwplSobXUPkCVqWwsRskBtyMcuLHkMn+EQHRHyPQmVQyw4UwrUhpEBLSnUhnxsHwq1IR87q0JtxYPqlBVqK6V5iKxQWykTIbJAbZgZ0IpAbcjH9qVQG/KxsyvUVjymjsHXNLX5ewRrSoHaYD5v7IaMaQEeHAvUhlzsyAq1IRc78YbHXC0K4eE0fqk8tZXum34RqA2+8x4c33O1OITv+V2hNqRiPTi+52pxCN/zJdVWPJz24A3XsM8xfc+vErVN3/RB6jFXi0NMRMf3XC0KsXzTl1QbcrEeHt9ztTjE9PBYoTZLvvP7ml9ztTiE7/ySasO4gO5v+DVXi0Lk5OGxQG3IxS5JtZmHDxlveUwMpBAePhRJtWFagEfH98RADuE7P6vakIcdftE1MpBCmG/6kmozjxyyKdRmHjmYpNowKKAqqg1pWA+MBWpDGnZKqg1p2DUVajOPHLKk2qzBcUGhNgwKqJJqQxq2d4XakIedplCbefiQJNVmHj54CCFQm3n4YJJqi2xGlqjNw4cuqTYkYmeTqG3Be0GhtgXrBYnaFqwXJGrz8KFJqg2J2JEUakMidrKqrXrkkKpCbRXm15Jqg+G8SaoNMwKapNqQgx2KakMKdkqqrXrgkCTVVj1wKJJqg+G8lmvDjIAmqTakYIek2pCCXZJqqxWuCwq1+XdQzLXBcL5Kqu1rDvYB8ZSDRYX3X+Zg/zhzsPk2nY95/zhE8H8NCwOMO8VIz/aDDZEyBdT59mPW+3R7j+maj1kviejbrJdErG3WyyHgFfp2eyMRfZv1koi1zXopBPI1H7NeEtG2WS+JmB+zXg6Q8zbrJRFtm/WSiOmy+7Yi5xAon3u7vZEIF0nlsiInAWOb9XIIlM/124qcRNTt1ksixnbr5RConxthRU5eb9url0S4Qsq3FTmJWNurl0Ogeq7dVuQkom+vXhKxtlcvh0D13Nurl0S07dVLItb26uUQqJ4bCrshZfPx6iURc3v1cghUz729eklE3V69JGJur14OgfK5t1cviajbq5dEjI9XLwVA9dzHq5dE2PbqJRFje/VyCBiF3l69JMC2Vy+J6Nurl0Ss7dXLIVA+txR+i/K5t1cviVjbq5dDwCj07dVLItr26iURc3v1cgg4hWaF36J8TlJvUT7XFH5D3qZK6i3K55bCb1E+J6k3lM99vHpJRN1evSRibK9eDjHS9uolEba9eklE/3j1koC1vXo5hIcRH69eEtG3Vy+JWB+vXg7gUUSX1BvK56ak3qJ+bij8hrRNlvQb0jYfr14SMbdXL4dA/VxT+A31c1PSb1E/J+m3qJ+T9BuSNybpN9TPNUm/Rf2cpN9QPzcl/YbkTZL0W9TPSfot6uck/YYCuibptyigk/RbFNBJ+u1L8uYJ8Zi8yT/7syB5gz8eHi3jNf8rkzc5/znx4L+SBHthjCB9uo3vqQpUUOEBMYKURDSXK/OyyCARHjCMec0g5RAooQp/xcwCqquVcY0gJRETauWyyOAQKKOCRRhmkJKICrVyWWSQCGcMuBThRaMA0+OFPq8RyyTCXKzMyyKDRAwXK1iNwT44xjRdnqiTRZiLlXGNWCYRHWLlssggER4wYMkxYplCRBkVlhwWGSSiu1qZl0UGifCAAUuOEcscInvAgDWHRQaJaAeNcYgJuXIZAHEIjGnCmmPEMomAhz1eKPb66WJFYTcUUdWpsFtUUTWF3aKKqijshrTcWgK7oYgqd4XdoojKFHaLSqqksBvycn0o7BaVVFhwTFjmEKikygq9oZLKCeuaIE8iumsVhd6ilMqXPCbIcwhMaVoKvSEvN/0ljwnyJAJe9hK9oZQKxI4J8iTC4wWsOb1BRSlVlegNpVT+mscEeRIBL3uJ3lBK5WseE+QpRJRSFYXeUErlMdw1QZ5E+O4vybcopZLkW9RS+Xs+WdZFKVWS1FuUUvlrHhPkSUQcFQoEh8Rc8yXPPCBOCgV+i3IqEDsmyJOIOCkU+A3lVEWSb1FOZQq/RT2VJN+QlxtD4beop5LkW9RTZYXfUE9VJPkW9VRN4beopyoKvyEvNyT5hrzc6gq/RT2VJN+inipJ/DbjrFDhN9RTVYnfZpwWKvw2cVoo8RsKqprCb6inkvQb6qnqUvgNibkuCbiopzKB36KmStJvqKnKQ+G3qKmS9FvUVEn6DXm5Lum3KKqS9FsUVUn6DUVVWdJvKKoySb9FUZWk36KoStJvyMtNSb9FUZWk36KoStJvKKoySb99zcs9IB7zcuWvnVc+f74m9s3LeSXZ779ylFchO4fMXPiw3H9Gtu57uyvmNb1dSZ4+9XtqAhUnSAz61ksiLG1XEhJRtysJiRjblYRD+Dfy40pCImy7kpCIvl1JSMTariQcwr+RH1cSEtG3KwmJWB9XEg7Qy3YlIRFtu5KQiLldSTiEh7YfVxIS0T6uJCRgblcSDjHz6+NKQiLqdiUhEWO7knAIVJxcriTk9XW7kpCIsV1JKETBuKb3VGsSYduVhET07UrCITCvqSjsVjyu/biSkIi+XUlIxNquJBwCFSdJYTckRT+uJCRibVcSDoGBTVlht2Jtu5KQiPlxJeEAmNdUFHZDWvTjSkIi5nYl4RCY12QKuxUUnCSB3Uob25SEQ2Bc0z3UmgTUbUpCIsY2JeEQGNf0HmpNImybkpCIvk1JSMTapiQcAvOa3kOtSUTfpiQkYm1TEg6BxoH3UGsS0bYpCYmY25SEQsDGJEnizTCw6W1KQiLmNiXhEDlvUxISUbcpCYkY25SEQ3hg+zElIRF1m5KQiPExJeEAHkU0SbwZ5jW9TUlIRN+mJBzCo4i3KQkJsG1KQiL6NiUhEWubknCIVrYpCYlo25SERKxtSsIhPIr4mJKQiLZNSUjE3KYkHGLkbUpCIuo2JSERc5uScAgPI0ySb+ZhxMeUhESMbUrCIVbapiQkwrYpCYkY25SEQlQPJD6mJCTCtikJiegfUxISsLYpCYfwOOJjSkIi+jYlIRHrY0rCATyMaJJ+qx5GdEm/4aIp6TfYmCRJv1UPI7Kk36qHESbpt+pxRJP0W/U4Ykj6DUnRKek32JgkSb9VjyO05NvXpOgD4jEpWv/axgSDmY9ixXIVKzJJUaW5NObPvu/84Y4e8lSYP/uuT+IQ4zjApxAxgPaqT+Kut+P4nkP04/ieQ2D87Ls+iULE/Nn3+RaHwPzZuz6JA6zj+J5CxPjZd30Sh2jH+T2HwPzZd30Sgygxf/auvuQA7Ti+5xAYP/uuvqQQMX72fbzFITB+9l19ySHGcXxPIWL87Lv6kkPU4/ieQ2D87Lv6kkLE+Nl39SWHsOP4nkNg/Oy7+pJCxPhZhd1KjJ9V2K3E/FmF3UrMn+XZrcT0WYXd4Oi7D+85xNqH9xTAg5l9eM8h2nF4zyHmcXhPITyY+Rzec4B2HN5ziHkc3lMIxDKfw3sOUY/Dew4xjsN7CoFYpknstupxeM8hxnF4zyDQhbsP7zmEHYf3HKIfh/ccYh2H9xQCwUxV2A1tuPvwnkOs4/CeQiCa+RRfcgjf/CXtBkPf+Sm+pBCIZiT1hjbcIqk3tOHWJPAbunCbJN5g6Duqwm9w9F2SekO1X5oCv6EJt0jiDU24tSj8hibcthR+g6HvkNQbDH2XKfyGYr8sqTc04Zah8BuacKuk3tCF27PEb7McvTMcwnf/JvGbhxG5SPzmYUSR1BvacGuX+M3DiC6pNxj6zqTwGzoLl6Te0Iabq8JvaMM1Sb+hDbdK+g1tuF3RbzD0nZJ+g6HvkvQbunCzpN/QhWuKfkMTbpP0G0wsuqTfYOg7Jf2GYr8k6Tc04WZJv6EJ1yT9hibcJum3r3mtB8RjXqv9tYuFfclrocEqmnDn7y6zws/izmNdLbh/Ti1kjFaALQoO+R8+6XsyImO0QvzQ53t7QGC0QsK5gLEIzFZIKOsgAQWjFTJ+MSwAkxXwFPhGcQhMVsBTNPamYEpseAr2I+BJ7H+96qQRmKzgCEvsTcGTGAveK/sZ8CTGgld6NeBJPLEaM5MImBI3LAfSHRwCkxX8yRc2TA6ByQqOGMbeFVyJseStsncFV2IsuXX2ruBKjHd0JPYz4Eo8HNEK+xlwJcaaW2VfD7gSY81zY2kBrsR4yddgaQGuxHjJx2LvClMVsea+JiwCkxXwRhX2ruBKjDUvlSUrTFU0rMekP2OhzAanDORnhCvxEPgtTImrwm8xVDEr/BamxFPgt/Akbgq/xVDFovAb0rm2FH4LT+Ku8FtMVTSF32KqYlL4LUyJh8JvYUpcFX6LqYpZ4bdwJZ4Kv4UrcVP4LeYqFoXf0L+dlsJv4Ursb/nsxr6BqHE3hd9irqKvebbMPjmK3IfCb+FKjNd8NfbJMVcxK/wWrsRT4bdwJfb3fM7BvoOYq6joN2R0hxP7bJn9sqPIXdJvMVbRX3NXo+yDY6yiJODClRjEPsnVCFNivOUud1mE7/6SfgtXYn/L52jkGxiuxJJ+i7mKvuK5sjeFIndJvoUrsRN7ToP9DFQFSPItxipK8i1cif0ln04lJAJF7pJ8i7GKWaG3cCWW5Fu4EjeF3mKsoiTf0L6dl0Jv4UosybcYqyjJtxirmBR6C1diRb6FKXFV6C2mKkryLVyJp0Jv4Uos6beYqlgUekOV+5LobUaDm0JvqAoxid5mNLgp9IaykKHQG6pCJPUWUxWzQm/hSiypt3AlltRbTFUsCr0hndsk9RauxJJ6i6mKknqLqYqSegtXYkm9hSuxpN5iqqKk3sKVWFJv4UosqbeYqqioN+Rzi6TewpVYUm8xVFFSbzFUUVJvX/O5D4jHfG7/a0eMcBfezdvlKZ9b/pYu0wvkq+eR4/02RxEJwg9zPXzyY4JwB54coh2BJ4eYR+BJIXxf34Enh6hH4MkhxhF4Ughf/x14coiK/o47scYhxhF4UggkCNM7scYh7Ag8OYSTRH0n1igEEoQf6uIQdgSeHKKjv+NOrHGItQNPCuAb+/gcHHCIdgSeHMJDhPfBAQOI9OCHuThE87jznVjjEBPdHXdijUIgP/gJPDlERXfHnVjjEPMIPCkEEoRF4TckCHfkySGGR54KvyFBuCNPDlGPyJNDDLR3CPyGBOGOPDmEob9D4DckCHfkySE8RmgKv0WCsCj8hgThjjw5xDoiTwqBKRim8FskCD+RJ4eYO/KkABiC8Yk8OUQ7Ik8OMY/Ik0JgCkaTCA4JwnfkyQHGEXlSiJWPyJND1CPy5BDjiDwZBBKEn8iTA9gReXKIfkSeFCKnI/LkEHZEnhyiH5Enh1hH5EkhSjkiTw7RjsiTQ6wj8qQQHiQUSb4hQbgjTw4xj8iTQtR8RJ4coh6RJ4eYO/KkAB5H7MiTQ9Qj8uQQ44g8KQTyg5J+Q8XnGgK9IT+Yq0JvkR+U5Bvyg3Uq9Ib8YJfkWyQIi0JvsxxlHxzC9/4u0RumYEjqLfKDknpDgrAPid4wBUNSb5EgzAq9IUGYJfWGBKE1hd4iQSipNyQIu6TekCCcknpDgjBJ6i0ShJJ6Q4LQFPWG/GCT1FvkByX1hvzglNQb8oNJUm+RIFTUG/KDJqk35AebpN6Q4BuSevuaH3xAPOYHx1+brlg/84PFXvZQ7xldff434bQSncvw2f3b77/GNQqy/u6h8+ff2m3M0tf1V++WaMPHPLU451Xu8uuHm31IYflNdrvLrzmEX4Sm62gO5hDLQyO7668phEc609czmoM5QMfYybv8mkMsdL7fzcEUwncr37Hu+msO0TB28m4O5hDTQyO7moMpgAc600XsVX7NIZqHRnY3B3OI6aERVmOQD15S9tCo3M3BHKJi7OTdXsIhBsZO3s3BFMIjnYUlj/YSDlExdvJuDuYQw2Mju5uDKURJHhvZ3V7CIcwvsrs5mEN0j43sJjsOsTB38m4OphC+W2WsebSXcIiOyZPRHMxdvzB3UmC3UotHRgq7ldo8MlLYDeP+VlPYDU3OuQjshh7nshR2K216ZGQp04DYDhVyw7i/CVaP5hIOMTB18m4uoRAje2SksFsZ1SOjcjeXcIjhkZHEbjN5ZGR3cwmHMIydVNjNAx2cAFzNcxRiJYydVNht+d4PXo/mOQ7hF+Edp/cnv9ZDI4XdMO5v+lt+Nc9xCN/8s8JuaHLOvuZX8xyFyL75N4XdLPvm72/51TzHIaaHRgq/YdzflNQbcl7J3/PJki56nIsk3swy5k7ezXMcwjd/Sb2Z+eafBX7DtL8piTdkvFJT+A09zqUo/GYNw38UfrOG8T8Kv1nD+B+F3zDuzx9a4DekvJKk3tDk7PG8wG/WMf9H4Tf/Er7aVPjNBub/KPyGcX9LUm9IeqUl8dvEACCJ3yYGAEn8tjAASOK3hQFAEr8tDABS+A1NzlnSb2hyLlPgt5ow/0fht5ox/0fhN4z7G5J+w7i/peg39DhnSb+hx9kk/VYLxv8o/OaL/eqSfsO4vynpN4z7W5J+Q5NzlvSbRx0vk/RbrZgApPBbrZgApPAbxv1NSb/VhhFACr8hTbbHKz0gHtNk82cPlNxQnvMlTZZf7b9VmuzPZXjfMlHV95C6ENk+3uVD7mr4HuIXdXy7KMRIvof4RRW5Dw5hvofg94JvF4cYvofcF3EIj1k8YnMKMvbJPWap5ojxw4o+ILrvIY5omIPKIZbvIVW4qVV8C2mYtMo+uIcsGV+6VunPWL6FYDk6+eCo8apY8jzJB0eNVy/kakf75/Lf0sQIVAqR/a3Fanc4dHCI5vuHI2ojv+co7zKsdunk9xzlXXXgXWI/olTfPvAqFfbBYXSO1S6VfXC0f2K1+bvyaCU3LMdgH9yjFStYjsUuOdo/seQtk99zVHf1rlAbqrumKdQG+96gWpraUN2Vh0JtqO6yqlAbqruar3munf0MtH9OhdpQ3TUbToUX+9v1cCUVgdqi+3Mp1IbqLsOSp8LSjkcrzSRqm/k1/C2fvbGv4KyvOdiV8IuSr7ZTD/sIHqiULFEbOj/xhq/BPoIHKq0p1IbKrlEEaovOT3/B50o0wvf8rlAbKrucrJzdjFwOVHbVpFAbKruav+B+Dfsc2ff8qlAbKrsWSD3OwTlEfyW84LmS33NUdhVJtaGyq/oLjmGJLKLti0iE7/xdoTZUdi1JtaH1MyeF2lDZVRTVhsquKqk2VHb1rFBbdH5Kqg2VXasp1IbWz8yqtuj6XAq1oaqrSqoNVV3dFGpDVdeUVBuqupai2tD1matEbR44mKTaoutzStTmkUOXVBuqumaRqA1tn5JqQ1VX7gq1oarLTKE2VHU1SbWhqqsPhdpQ1TUl1QbT3iSptmj7lFQbqrpMUm2o6mqKaouuT0m1oaprSqoNnr1JUm2o6iqSakNVl7GqDRVdTVJtqOgakmqLjk9JtX1NVT0gnlJVLf3sTAFGQlXXF2eKSD4V/E29UlLvZNU1w+/fT1GxlVyHe+LTTT5kqg73RBKx3RM5wDjcE0nE4Z5IIg73RA4xD/dEErHdE0nA4Z7IITByvN7esCTisE8kEYd9IoWAD6u18IYlrz/ME0kEzBNvb1gScZgncggMHH87X5OIwzyRRMA88faG5RAYOP52viYRh3kiiYB54u0NyyHsME8kETBPvL1hScRhnsghMHG8K+wGG9aPeSKJgHmiwG5wYU1DYTe4sH68E0nE9k7kABg4PhVyK/3wTiQRh3cihxjbO5EEHN6JJOLwTiQRh3cih5iHdyKJOLwTScThncgh1uGdSCIO70QScXgnUghLh3ciiTi8E0nE4Z3IIfLhnUgiDu9EEnF4J3KIcngnkojDO5FEHN6JHMIO70QScXgnkojtnUgCDu9EDlEP70QScXgnkojtncgB2uGdSCIO70QScXgncoh+eCeSiMM7kUQc3okcYhzeiSTi8E4kEYd3IoeYh3ciiTi8E0nEQHO9wm8eRjRJvsGFdRSJ31Z/TUm+wYU1dYXf4MJaJPkGF9aaFH6DDWsbCr/VXNBCIvBbzQ3t9Ty/wYU1SfoNNqxF0m+wYa2Sfrt8OwV+q+a7v6TfqlU0kAj8BhfWLOk3uLAWSb/BhbVK+g0urF3Sb7Wl15D0W22++0v67Uv34hPiMdeVMQWtxtfkIdUV6a6d6nKBGNmpf7pSXGErgXTXbcGKctRIZ7Uo0Ir/2dNDyZX//qz1a27Qwx18z2r4r6/Fj1qTBBhSsNfUIA7ghNfb1XZOATwIS9aumUEcwOkutavpnAP0l41+9ZxzACe72q+BQRRgONf5g0THOQdor+nvSYwL4gBOda1d/eYUwMOvUto1LIgDtJdhpdFtzgGc57DSGIVGAZbzHFYaveYcwGkO1sNoNecA85Ww0piDxgDQS1mw0oX7JaGTsmKhMQWNA0SJ49VmTgFyVDjGDDTu+qhvvHrMOUCUN14T0ChAQXVjvwagcQAUN/arw5wDoLZRoDE0UI4h0BgydasKNIb2yZwFGkP/ZJkCjaF9sjaBxtA92YtAY2ieHEugMSTpVhdoDL2T2QQaQ+ukJYHG0DpZfaVjagYHiLJGnsbQODnxSmNmBgUYUdTI0xjaJnMTaAxdk+bvdAzMoAATFY0CjU3UM7ZrXAYHiHJGgcYWqhn7NSyDA0Qxo8BjC7WMPUZlcNdHJeM1KYMBoFeyT4HG/IuNOsZrTgYHQBmjQGNolPRfaAwB4q5HEaPAYuiSbNavEUAUoKCEUWAxK6hgFFgMPZLJX+iY/0MBDEWMAouhQ9L8hY7pPxwAJYwCi6FBchSBxZCHm4oYQ3tk6gKLoTuyKGIMzZFVEWPojWxDYDG0Rg5BjCED5/s5z2Loi0yKGENbZGkCi6ErsipqDE2RbfEshpbI0RUWm6hZVFhsRsmiwGITFYsKiy1ULAostlCv+P83dza7siRJEd7fp7gvQJEZERk/m1m0poc1YiQWiBUIWAASK16f+DyzKuPcqsOYiQ0a9fT07bSpqpMnrcw9zM0dFhvYFQ0Wo+c2HC3GJOTuaDEmIdMwWIxByOJoMeYgazZYjDHI7mgx2m3D0WJMQe6OFmMIMjtajBnI4mgxRiCro8WYgOyOFqPTNgwtxvjj7mgxph+zo8UYfjwcLcbsY3W0WGEppaHFvnbY3gEfG2ysq/tfGmx/XBtsnCr+xQbbb+c/M8z43CvAToF3u1icrz8L4Pe38aFZU5cCWAKMpQBWAHG4/uRcCXAsBbAEGEsBrADiZP1ZAEuAYymAJUBfCmABkOJY/VkAS4CyFMASoC8FsAKIM/Un6UoAjtSffTwJ0JYCWAHEgfqzjycB8lIAS4C2FMAKIE7Tn308CZDvAli6nqP0Zx9PAoylAFYAcZJ+9fGk6+tS/0oAjtGffTwFEMfoBo2lOEU3aCzFIfpTOiqAOEM3aCzFEfolHaXr+1IAK4A4P39KRwlQlgJYArSlAFYAcXj+lI4SoCwFsARoSwGsAOLk3GGxODh/SkcJUJcCWADkODZ/SkcJkJcCWALUpQCWAGMpgBVAHJnrLJbjwPwpHSXAWApgBRDn5U/pKAGOpQCWAP0ugJXr47D8WQBLgLIUwBKgLwWwAoiTcoPFchyU6yyW45jcYLEcp+QGi+U4JDdYjInA3dFiDATeBbAEyEsBLAHqUgBLgLEUwAqgpaUAlgB1KYAlwFgKYAUwC4HiaDHaO9XRYrR37gJYAYz9LoCl64+lAJYAfSmABQBJV3cBLAHKUgBLgHYXwMr1swzYdoPFmAHcHS1GsHt2tBghV4ejxejuVEOL0dzpjhZj/G9ztBjTf8nRYkS6Z0eLkW51OFqM7k5ztBjdne5oMab/NkeLMfyXHC1GsFV2tNjX9s474K29k+fPJte39k5ZWjq0sV/xVQSS1bN7Ex2bY/5ROv/6NCH4uu6Pd5eH4LsnhonDvawdIC0w60sH6fl+uPxXnxZH92OfrzK/nz590o/F3dYnoBwffzQfi7tJ0ryPIQIQavx0u/iWDoQav/ib+JYqSm1seyriK1SU2nyFebEIQKnNz9Cb+KEbSm2+ApZG6XqE2nyBY88iAKXWmZQtGqCj1OL3T/zMHaU2f6qli5+5o9TmZ2aqTbl+INTmC+xJ/MwDoTZfYH5HiQCE2vzM7RBvw0CozVfYivYZOLofbTD+u4sAhNq8b7Vrv9zUdpknekvah6a2K6Q25Kp9aIq7eswPPf9LBCDUYumt+KETQm2+Qhrih04oNYPGKO5mOTVfI2m/3VR3x2bQGNVdnQ9QP9QXQKgZLEZxt+0Gi1Hc7d1gsRwmXoPFcph4dRbL4eE1WCyHh9dgsRweXoPFcnh4DRbL4eHVWSyHhddgsRwWXoPFclh4DRbLYeF1WCwsvA6LhYXXYbGw8DosFhZeh8XCwuuwWFh4DRYrYeE1WKyEh9dgsRIeXoPFSnh4DRYrYeLVWayEh9dgsRIeXoPFSnh4DRYr4eE1WKyEh1dnsRIWXoPFSlh4DRYrYeE1WKyEhddgsRIWXp3FSjh4DRYr4eA1WKyEg9dgsTMIpl4jO++Aj0f3GBC+qe2+RMCQ9xMF1tdSqzzTXCi0nsf58df2LO5+edE93tjzcOz95d8+1vwZzGLleTimAOa9v9vKEmD+Or7O+CXAWNrKCmDWgOV1xi8BjqWvLAE6OXDXGb8C4Lfl1VeWAMfSV5YAfZYrzzN+BTBrwLuvLAGmxHyd8UuAtvSVFcAsAsfrjF8ClKWvLAEaIXDXGb8CmFXg3VeWAHnpK0uAKTJfZ/wSYNx9ZeF68nX21xm/BKhLX1kCDMLfzjN+5fpZA95tZQlwkPym0xjJOttu0BjBOndfWQIcy8ihBOhLX1kBzBrwHjmUAGVpLEuAvowcKgBO+DaDxkjUuRvLEqAtI4cKgCO+3aAx0qLvkUMJ0JbGsgLgiO/VWJYAeWksS4D5tf465JcAYxk5VAAc8W0GjRGls70O+SXAuEcOles54Xsd8kuAYxk5lADzW/11yK8AOOFLDo+xFvN5yC9dP7/UX4f8AoAAneKoMfJz6uuQXwK0xXGpAFiI+Tzkl64vi+FSArRZrjyPxxQAyzAdMUZwTnXEGNHQ7XXILwHGYrhUACzCfB3yS4C6GC4lwFgmDhUAezAdMUYo9D1xKAH6YrhUACzBdMQYgTn3xKEE6LfhUrmeI8FqsBhx0N0RY2Tl3BOHCoD9l44aIynnNXEoXd+WiUMFwO5LR4yRBn0bLiVAWwyXCoDFl8NgMdZeOlqMgJzbcCkBxmK4FADEQHdHi5GOcxsuJcBYDJcKgIWX3WAxonEOR4uRAN0cLUYAdHe0GME4m6PFyMVJjhYjF6c4WoxYnMPRYoQ/N0OLEf08HC1GJM7maDEScZKjxWjgTdC5Pe0T4Dfq3w89ObIvP/fkfsmqKafxIh1/mO/u2ZNLv8+//36ZI75EMceu2D89O3YxcHOaJ967W+3Vtn9/Mx+7W7eHQgLUxUMhAcbioVAANS0eCgnAtOezby8BGPekYbyLb6nti4dCAjDuOQGZ2DQJwLgn92GIr9D3xUQhAZj35NxLvb4tHgoFMBj35DZU8RVGuT0U0vVMe3IXSEsTAGRH3x4KCZAXD4UEYNqTu9DUVxiLh0IB7Ex78vhs2k+J4OjbQyEBmPacP6VexLeU0uKhkABMe3IfmvZE0926PRQKIKfFQyEBGPc0aIzu1u2hUACFcU+Dxuhu3SYKCcA+CoPGSKK5TRQSgG0UBo3R3XqZKJTr67aYKCRAXkwUEqAtJgoF0LbFRCEB8m2ikK6vi4lCAozFRKEAelpMFBKgLiYKCTAWE4UCGGkxUUiAYzFRSIC+mCgEAN2t20QhAY7FRCEB+mKiUAD7vpgoJEBZTBQSoC0mCgWQtttEIV1fFhOFBGiLiUIB5G0xUUiAvJgoJEC9TRTS9WMxUSiAkhcThQSoi4lCAozFRKEAZiFQDTFGb+s2UUiAvpgoFMCsA3ZHjJEEnTeDxWhuFUeM0dyqxWAxmlvdEWN0t0Z3WGzWAbsjxsiAzslhsVkIFEeM0d2qjhijvdWzw2KzEtgcMUYUzd50FiP8OTtajO7WsRssRnerOlqM7lY/DBYjiWYztBhBNLujxYh9zo4Wo7l1OFqM5lZztBjNrW5oMXJoNkeLkUOTHC1G4HN2tBjNrcPRYjS3mqPFaG6l1rf9+OYzfNfcau9hzM/m1pecGLJ3ok1F/gv/pl1/f0tang/B5KHLovP+f//eApgPQWo7708F0MiD6/gNkgCd8GwacB8/8TuArL6+kUWfRUB5jFlKDo4jpOv7Y77I2U5Vriepb/AJcOhIgPIodbvaqRKgPWreToeOcn3ZHp3bHGdCEiA/5gWXQ0cCtMfObQ6HjgI4NpbVXYdCEiCzq+5y6EiAyqo6/k0XAePRZ+V5OnQUAEl9Y7tOhSRAfezc6HDoSIDxyNzoOBVSAFyDtIhTIQlwsKbucuhIgM6WuutUSAHMYvi0tR4iAxDVxwMdp0ISoD/y4bDY2B8HdzpOhSRAeVTudBgNJUB7dO50nAoJAEKdtrxfp0ISoLCf7jIaSoDGejqZxojsPopBY3RK227QGJ3S3nUaI9JpOwwaI9IpJYPGiOzOw6AxIruPatAYjdKWDRqjURrFgkpjZDptzaAxIrunjtBpjLnfshs0RqP06AaN0Shth0FjNEpHMmiMud9tGDTG3G+aT/R5uC0B5rd6NmiMTimOgfNwWwG07dGaQWN0SgePdBxuS4D5tb47NNa3R+oOjfX5tT6f6fNwWwLMr3VDjdEpbZO6z8NtBTDmt7qjxhj8nffsOtyWAPNb3ZFjDP4WqLtrd4FGaeWJDouOBJhf6o4ao1E65hN9WnQkwPxSd9QYc7953uew6CjXzzKgOGKMRmmd1H1adCTA/E53xBhjv5sjxhj73dt2WXQkwPxOd8QYkd3zLugsRqe0OmKMTul81nQWY+53c8QYg7/7MFiMwd/siDEiuw9HjNEqbZvBYrRKuyHGGPydSk9nMQZ/kyPGGPzN3WAxMrsPR43RKW3JYLFeHn04LDbrgM0RY8z9puyw2KwDiiPGaJQeTWcx+qTN0WI0SsdusBhjv5ujxRj7TY4WY+y3JIPFaJQejhajU9ocLUandDhajLnf3dFizP0mR4sx+FscLUartDpajFZpc7QYrdLhaDEGf53OGIO/ydFiXzulHwDfdUr7e6r21SklTGmxAdZH+9wpxad1/h2vZvw5xsA/bR+StKmHDq5gYeP7S3/olkXkMw4b7fojEp+vbY0SIBKfZ4XGsZcEiMTna1mjAqgkPrdrV6MEIPF5Ag7xcvKe27WnUQE08p6Zms7iG6IYeo18S4DIe4ZDugbokfd87WiUAJH3PL9SOfWSAAQ+zw/divoKBD63awGtAhgEPnMfmvihqYa4z7F+VgKQ+MzTs2tvKW2R+Hwtn5UAkfhMw/8jNXwAkPhcr9WzCmCPxOcRq4Ol6wl85ulJ6guQ+NyutbMKIJH4TIrbZzr8ACDx2SAx4s9700mMAdipzHQSYwA27QaJJaqhbpBYoho6DBIj/rwlmcRIP+/DIDHGX7dqkBjjrykbJDZ/HaaCbdemWQlA3LNBYqSfN55n+WGoxAjWa422BCBG0CAxxl/nB7+WaEsAYgQNEkst8p6vFdoKgGKoOiTWiRFs1wJtCUCMoENiVEMwd6zPlgAR+Hxtz5YA5AgaLEb8eZtPdBc5ifTz4Sgx5l/3eaPPzdkKgGrIkWKZamg+0rvIGXknRtAgMdLPu6PESD+fGuZami0BiBE0aIz51/k5rpXZCoBiyNFimWLoMGiM+PPuaDES8rjLMo0x/7pXg8aYf82OFstHBD7rNJYPYgQNGiP/vBeDxhiA3RwtxgDs3g0am6qHZA6dxuZP9HEkg8Zyi8RnncbIP++OGGMCdssGjXVyBB0a6+QIOjTWYxe4QWODIEGDxkasAjdobJAjaNAYA7ApGTRWNnIEDRorGzmCBo2Rf94cNUb++XDUGAOwm6PGGIBNjhorKXaB6zQ2ddLjcNQYAejNUWMEoA9HjTEAuzlqjAnY5KixUggSNGhs6iR2oek09rX19QHwXetrfJs4/lwsd6XSza/c71pfxITvR0TVxU45OmBv3sFMtzBfQ2Xvr/pe6Ge6hfnyMUsA2oXl8jErgEIIWrmGyiQAIWjl8jFLAELQ+Hl28S0dhKDly8gsAQhBy9dQmQQgBC1fRmYFUAlBy9dQmQQgBK1cs7ESgBC0cjmZJQAhaOWcjVWub4SglcvILAEIQcvXbKwEIAQtn0Zm5fpOCFq+ZmMlACFo+TIySwBC0MplZFYAgxC0cs3GSgBC0MplZJYAhKCVazZWAOByq9znGMeQAISg5Ws2VgIQgpavcQwFsBOCZtAYqwtzM2iM1YVHMWgMn1vbDRrD59a7QWP07rbDoDFWF6Zk0BirC/MwaIzdhUc1aAyfW8sGjeFzG5tBY7TvtmbQGPstUtFpjPUWZTdojPUWRzdoDJtbO3Qaw+U25hN9zmNIADLQDBpju0WqBo2x3aJwn2MeQwIQgmbQGC63Np/oc6pMAZBsWhwaI9l03uhzqkwCkILm0BjJpke5psokACloDo0NUtAcGiPZtOZrqkwA0L3bHTXGfosJOqfKpOsJQTNYjPUWdd7oc6pMAhCCZrAYNrcBdcdUmQIg2pQnetd+k9hukR0txnaLMp/oc6pMAZBs6ogxbG593udzqkwCEIKmsxi9u70ZLMZ2i+yIMbZbHI4Yw+VWu8FiuNy6I8bo3W3JYDHWW+yOGGO9Ra4Gi7He4nDEGDa3thkshs2tO2KM3t3miDH2W6TdYbFOCprDYiSbHgaLEWzqaDFsbn04LEawqaPFWG+RssFirLcom85ibLc4HCmGza0Vg8WwuQ1Hi9G727rBYqy3SIYWY7tFcbQY2y0OR4vhcmuOFsPlNhwtRutud7QY6y2So8VYb1EcLcZ6i+poMVxuzdFi2NyGo8W+9vo+AL7p9dXt2w0UX7cM9rPV9/1mP7YFvsLt8vkXV4fnbT8bg0/kubziE+KXyLxYZ/GhzCv5akp8eP8fy7yXmpcA7KZsV1NCAxy3mtcAY6r5qykhAVhj+PwN0gA4Cq+mhAbot5qXAKwxfKp5DVBuNa8B+q3mJUDbX2peu77cal4DtFvNS4C+3WpeA+RbzWuA9lLz0vVju9W8Bsi3mtcA9VbzGmDcal4BUOY91bx2fb3VvAYYt5qXAHu61bwGOG41rwH6reYlQEq3mtcAx63mNUC/1bwEYIthNliMOu+l5jVAu9W8BGCNYTFYjELvpeY1QLvVvARgjeGhsxh13kvNa4B6q3kJwBrDarBYrDHMBotR5z3VvHb9uNW8BGCNYTFYjGmml5rXAONW8xKANYaHwWL9uNW8Bui3mpcAbDGsDouxxTA7LDb6reYVQGwxbAaLxRZDR4tR573UvARgi6GjxWKL4WGwGHXe7mixWGPoaLFYY+hosVhj6GgxCr1uaLFYY+hosVhj6Ggx6rzsaLFYY+hosVhjaGgxyrzuaLEvZd4nwHdlXvo21Dx/KfMOocz7mnder5GmK888yrarxHuuk/+/lXv4ZF6FzPvn+FBb1aWQkQBjKWQUAInrT5OIBqhLISMBxl3IKNcTuP56eCTAsRQyEqAvhYwCIHD99fBIgOMuZKTr+1LIKADy1l+FjAQoSyEjAdpSyCiAsd+FjHR9WQoZCdCWQkYA4Je/CxkJkJdCRgLUpZBRAPu2FDISIC+FjASoSyEjAcZSyCiAlJZCRgIcSyEjAcZSyCiAnJZCRgIcSyEjAfpdyCjXl30pZCRAWQoZCdCXQkYBHPtSyEiAchcy0vVtKWQUQN2WQkYC5KWQkQBtKWQUAHnrh85i2OXvQkYC1KWQkQBjKWQUQE9LISMB6lLISICxFDIKYKSlkJEAx1LISIC+FDICgGLsLmQkwGLY1QCLYVcCkLdeDRbj0K06WoxirBtajFpsOFoMv/zuaDH88tnRYvjli6PFOHSrhhajFuuOFqMWG44Wwy6/O1oMu3x2tNjX2uoD4LvaKn+bqZvXhVH03f9SbbX/DqE8qyTqqaitfr/rqDhS679WYXHldv3/bXf1FYdu7wdo+H/S/AXt/dO7fxeRfPGndK7S0gAYgCagpqQB2LRSJ6Bk8S3xzT8lz0iH+JZKGIA2VptqADattAkou/gKRziAWOklfmi++s8qeGiAGg6g+bswxFdg1Qp3eqJEQDiA5u9QEj90wwE0X2FKaBGAA2h+6HqIH5rv/szSKPUdYQDiNgzxM7Nqpc0XOHoRARiAeH5SEwFhAJoEL17PppU+X+CouwgI/w9cI35mvvl5omeZJAHYtNIHj0/WPkNsWplPdO9Je95i0wqBOXvTPnRsWpk3+uRrCYADyKCx2LQyn+h9L+KH5qt/N2gsVq3MJ3prXfzQrFrhid6aRgGxaiUZNMaqlWM+0b1t2hMdq1aqQWOxayUbNBa7VjaDxmLXSjNoLHatFIPGYtfKbtBYLFvpOo3FrpXDoLHYtZIMGiNAMA2DxmLXStVpLFatZIPGYtXKZtBYrFppDo2xaqU4NMaqld2hMVatdIfGWLVyODTGqhVHjbFJmABrmcZi1YqjxmLXSjZoLHatbAaNxa4VR43FrpVi0FjsWnHUWCxbcdRYLFtx1FgsW3HUGMtWqqPGYtmKo8Zi24qhxmLZiqPGYtmKo8Zi2YqjxmLZiqHGviwS/gT4ri4s3yYI5rrUhYxRpygM+x+mCorjse32SeZ+HaRt35Rz4OcP4Exw+/Cibx+IKeq2p3PcXgP0xyTAM8FNApT02I50jttrgPldFMPlu/iWSD6ZtB/j9hKA5JO6nwluGqAQs3+O22uARsx+JLhJ1xN80tKZ4KYByiNxowkN0QDzu4gbnT7/Or4DCD7hRpMaogEyKfuR4KZdXwnZP0NDJAC5J9xnEtw0QH4k7jOpIRoAO3E6U0M0AHZiHh/tcmJPuM1khmgAzMTpTHDTAJiJ9zMzRAEQf5j6fsZQagDMxPuZGaIBMBPvZwylBCD3ZBgkxgz1qAaJkX+4Z4PEyD/Mm0Fi5B+WZpAYM9S1GCTGDHXfDRJjhnp0g8QIQNwPncTIP8zJILGwcwyDxMLOUQ0Sw87Rs0FiJCByl1USCzdHM0gs3BwlRfKRdH3FTGxwWLg5usFh4eaYtzmSjyRAw0xssFi4OSZxR/KRBsBM7LBYx0yczuQjDYCZ2GEx7Bw80PLTgJ2DB5rkIw2AmdhhMfwc84GO5CMFEH4OR4rh52jz/UfykQbATWywWPg55hMdyUcaADexwWL4OQrUTYCbBsBOvJ8BbhIAP4ejxfBzjPlMd5GUws7hSLGwc8wbHQFuGgA7sUFjYecYOo2FncORYtg5hiPFsHPsm0FjYedwxFjYOYpBY/g5qiPGws/RDRoLP4cjxvBz7MmgsfBzDIPGwtDhiDEMHTU7NNZwEzs0hqGjOTSGocMRYxg68u7QGIYOR4yFoeNwaGzgJzZoLAwdjhoLQ0fVaQw/R3bEGH6OYzNoLPwcjhoLP4ehxsg/3Bw1Fn4OR42Fn8NRY/g5DkeNhZ/DUWNh6HDUGPmHm6PGMHQkR42FocNRY18NHR8AS+Pu9z//+Nsf/3Vh95/xRHPCc/z8p/9Y/nz7yRPW3/4U/9v8s/hn/vuv4g/+PbZBnhauT3+0/fKP5wXb83/828+///GfP7aff/PjH/5x/uk/zz8/fv73j/M1fvm/+bv59tcPcP5r893uBDHVX/9xW/6n8w4XOO9u+/mvP37784+//tP8me7bzz//y0JbjxznULP+mk//NjC0pNdtovF5/vXxVmEdwQf1//rG8J//Ac/0PysKZW5kc3RyZWFtCmVuZG9iagozNzYgMCBvYmoKMzQ5MTkKZW5kb2JqCjM3NyAwIG9iagpbCjIxNCAwIFIKMjE1IDAgUgoyMTcgMCBSCjIxOCAwIFIKMjIwIDAgUgoyMjEgMCBSCjIyMyAwIFIKMjI0IDAgUgoyMjYgMCBSCjIyNyAwIFIKMjI5IDAgUgoyMzAgMCBSCjIzMiAwIFIKMjMzIDAgUgoyMzUgMCBSCjIzNiAwIFIKMjM4IDAgUgoyMzkgMCBSCjI0MSAwIFIKMjQyIDAgUgoyNDQgMCBSCjI0NSAwIFIKMjQ3IDAgUgoyNDggMCBSCjI1MCAwIFIKMjUxIDAgUgoyNTMgMCBSCjI1NCAwIFIKMjU2IDAgUgoyNTcgMCBSCjI1OSAwIFIKMjYwIDAgUgoyNjIgMCBSCjI2MyAwIFIKMjY1IDAgUgoyNjYgMCBSCjI2OCAwIFIKMjY5IDAgUgoyNzEgMCBSCjI3MiAwIFIKMjc0IDAgUgoyNzUgMCBSCjI3NyAwIFIKMjc4IDAgUgoyODAgMCBSCjI4MSAwIFIKMjgzIDAgUgoyODQgMCBSCjI4NiAwIFIKMjg3IDAgUgoyODkgMCBSCjI5MCAwIFIKMjkyIDAgUgoyOTMgMCBSCjI5NSAwIFIKMjk2IDAgUgoyOTggMCBSCjI5OSAwIFIKMzAxIDAgUgozMDIgMCBSCjMwNCAwIFIKMzA1IDAgUgozMDcgMCBSCjMwOCAwIFIKMzEwIDAgUgozMTEgMCBSCjMxMyAwIFIKMzE0IDAgUgozMTYgMCBSCjMxNyAwIFIKMzE5IDAgUgozMjAgMCBSCjMyMiAwIFIKMzIzIDAgUgozMjUgMCBSCjMyNiAwIFIKMzI4IDAgUgozMjkgMCBSCjMzMSAwIFIKMzMyIDAgUgozMzQgMCBSCjMzNSAwIFIKMzM3IDAgUgozMzggMCBSCjM0MCAwIFIKMzQxIDAgUgozNDMgMCBSCjM0NCAwIFIKMzQ2IDAgUgozNDcgMCBSCjM0OSAwIFIKMzUwIDAgUgozNTIgMCBSCjM1MyAwIFIKMzU1IDAgUgozNTYgMCBSCjM1OCAwIFIKMzU5IDAgUgozNjEgMCBSCjM2MiAwIFIKMzY0IDAgUgozNjUgMCBSCjM2NyAwIFIKMzY4IDAgUgozNzAgMCBSCjM3MSAwIFIKMzczIDAgUgozNzQgMCBSCl0KZW5kb2JqCjM3OCAwIG9iago8PAogIC9SZXNvdXJjZXMgMTQgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDE1IDAgUgogIC9Bbm5vdHMgMzc3IDAgUgogIC9Db250ZW50cyAzNzUgMCBSCj4+CmVuZG9iagozNzkgMCBvYmoKPDwgL0xlbmd0aCAzODAgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nO1ayY7cNhC991fwB0Yu7hRgNNDLTJDcggyQg+FTgiQHT4I55ffDpUhxE6Vu2MYAEw9ksckia33FEqXXAyVg/x7cTc+M/PZyeMU+SjQjXJVdVCrCYTJSAVA7FGZCvNkOd3P/P8DEJPniZ+RtiPfQBbHxF/n18PcByA+HT59t7++2X5J/D2G5OPGXw8+VMPDm5Msl5JS9QQlfD1oEnkxNdJbzPBPDCNMTCyJ9+PGFkes/XhlPzlwsvBApwDW+YMOt54dSw96dDK8HISFwcA1DiWJxYREXLuJM+9AD8ufh/Hz48EQloUCe/1jC0xAzyVkCANPk+YV8+mhbxprQmhFcNz2SB7uK7aYXAO56qCU527u2lyUFZ3HXL0pyiitcw+VJTEMGboW40tLNdMPf83Hdj7gQL4fzbjezEsf9FEdiDfZxWYepgshPsZfTk6pMRRnGcna6K4XX+hHlv4M7XI4EGRTkXoprkCSy5SxcbEYGOAbs+Jk8/5Q7mdmYnYUNSE6jl91qaQVztODxvCC4hHHbI70csqSlc5ILkOfJ3k9BTnbNrDUHOWzcqTrugHAMPMpYCjy7IrVdDPCuUGmDNnPXBQ1gQttzWhh1AlxBy0geiRBRO/aI0QO51b1mPAQEi2iwo1T7+LxgRFO8YPGTjwGKUa+x/ZghIo6p5bdfL7Nfoln1ByBnD6BC6hQHUS7T57kW6cW8KI8IAPQuiHRD/+p1/9Knxb8cVeAKGaAhvM8hJCOIwc1HfrbUDUcek4HKVJLRRQ55amIpllXVCbru2PBIvuDTogfjHW6NCKUTt4KyXs30RC2SOA60kXanghuxl5PqnnHXBFwPy57Oo/jMJ/Co2bocTdaklDURtcNCdpbOvezkFKpHUMRIvlbycSR1v1MmvlSDjSmLgZ3CimUgheYdgjb74raQJkT6klyreDcdcT0bMSBwm5JX4ylcxWBRXaQZdMU0gNt1zOcOQb4vs66XB1lxaCOJiTaS9LJV+GWu2W+NGsRQtqpyp8Uw5VLRxmvaUy9ZztWhaIAZcG8d5lXVyu5qwTJaagdvB19fy61N65ttlClHtTy/7UZJzcBr18VrruZ2ZRbEuxl5jUHrNV8oPi1w9rbvFCslElAXuujtC779dr8ucGms9i48zNjAw1kt1HrYTbFZkRq/Bzjl5abjRev4zTLIyEl0k3QcCDNiguYzLGkykXR9nRPkZUDiqHsiDFxdz1Vp18j9k5PFbN88gSaCKuLS3lXI1Agad7q4Fag1/ljK+UG8pz08GSchYo87ukXcHgu2T4ZStdn9LWNJd/IaYsm7bYAlTxDr8TPCwYl0GgJqbi20/VxBJ9OvcnGAZivEAsPXKdeacB15iWQNeYmgKMCjaLon6xh5xdx15OVkTlF/1ehblSMHVYGVRJBjZdPS/Qee23Xe88BT2LvBGof2mfj7ooezNpbTThTv+KhC8bTFcUntk9uGRmjhotXRVYtJn7rmuKli9LIJSMctse0fiwBSbko6wGLFvNZ+P7UHV+sep+e9Hoc7cyc3bTSMc2fHPsNM+dWi5l1FhYBBVJyWqKAMowBX5m4nnZfIoMNcIFg/F+x9cmSXrC8e70M59535TQzyt1t97vjOV7RWF5VOW06uKD4SxdNmZWB52uDpxQw/bwFcqM4x7463CeGAhcZdWPXMXdF4o3XroEQzTv0FJYVySzINBfR621MsOiozynk7rbGj0Cg0TpXdDinXw7Or+zBQG65JL4pHW/HNCMPTsc4ZqzDtqf3o1aEb4yzgieO5hEB88Vhm0iDqwhbCC7MLYvZczqOYW0ZzqNw/J56ZLOegtTM3TvfHOWAevznL357dlwMgy/kj8Et8rahB34z9mU5yA/qJpNkOssFNyCfCNcQnAuh0NkiKA1241xLv0H8H2HNVE9Y3BRwivdF5D9ATy3twLjmrY+V/mI9gLmULrnynz9+hMgyOU4Z2jKuvtM9L3bjPv0EQZbBH8/iOFWTD6la+heY1EOfYrRGxDcZ+nfg2qsDH5/qLHiXYpKyHio+fgNg9wZim13/B1Pn0iTE1CceW9bqg+nnL91DVMvWHW2H4RmmpnGBW9U/Imrd9sZWmO+kG30bRiRo9238WndROkj7DpYMbh5lz101M2EzJ1dt2ivv7D8Xv9S0KZW5kc3RyZWFtCmVuZG9iagozODAgMCBvYmoKMTYxNAplbmRvYmoKMzgxIDAgb2JqCjw8CiAgL1Jlc291cmNlcyAxNCAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMTUgMCBSCiAgL0NvbnRlbnRzIDM3OSAwIFIKPj4KZW5kb2JqCjM4MiAwIG9iago8PCAvTGVuZ3RoIDM4MyAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCniczVfNbtswDL77KfQCdUlKsiQgCJCfZthuwwLsUPS0Yduh2ZDTXn+kfhzHURMHxZAgVSVRJPV9Ii3T+wYV8O9BOhdIfds1+yxD5Ujp7liEtlMaWm87AOSlZAmlY4F08v8BWrLqNVoMx1D6JIIy+KW+Nr8bUB+a5xeWfme5VX+b5K4Yfmk+j8DA3eEbItRId4hw3ziT9qSuxWBDCMqTItdSgvT4cUdq/SeSieokubBT1oAMXvNA/MWlfsC9YNg3xkLaQQYeVUfFsSmOj/LMxdQD9bNZbpvHDXaK/7Y/humJunUWGavnlZ16ngGQAYAnbkseW+4X3Dyfq+M5n6/mKdo8NkkPArcVy3TW9WI3f1HbT7KxVQhHG3ulXeuC4X3R9RuLITsF2RR5zg7BJWc8BchrKJN10sFNWiuy2GO226QW9SCD8lnGBFFnfzrbdFlvM9gHBxiK3voYJ5i54kjMsqSssJS5idQc9keTuZ1oCdvCBAvisrNMQn+cHEcaxdG61qLmOAbTH+cgTuRSfKIjn48Es+xirDxwQnOsQheKc4PJoNfCqppepxwhSk3ncAieciSm5Ew+JgE+XtfLfCj5QCTfhBduRjA8o6dJaGt6AlfSnxKKHq5ZzJUJfYT7mEUoNmWMwKTlAGLJJpMprubyQM5Oc0xWI3Gd8qr3YBNRHXJ2VMiSmUa2ovdeshKzmMYFLh0eR4mf6Bg5ELkXWE6LQ9xodUrFxGuT3Wk6S6Widwsq0S429mpt3OQMu85PY1fRuy27/OC61GR8jmaAaTQrevdAM7773qZHSJPo1fTugZ625+lpM41eRe/W9OIlSvnydIcLFkZvjBptO+3mqem9l7bQ0TCoaWy66y+9E96i4qZdMzW9/0nl0nvgaTuuXTtDbcfFyFGZDyr41vsTaazVK0U+cSlu5JGmmghG02sq/5Gb8SdKWr4SLdoWQjeewmB43bdJby7oDl8BJwUetuidlI5cVyIb2fjIlbSQ8h5tNUxksLX8MXvXQZHfP8txGEIKZW5kc3RyZWFtCmVuZG9iagozODMgMCBvYmoKNzY2CmVuZG9iagozODQgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDE0IDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxNSAwIFIKICAvQ29udGVudHMgMzgyIDAgUgo+PgplbmRvYmoKMzg1IDAgb2JqCjw8IC9MZW5ndGggMzg2IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJzNWMFu5DYMvfsr9APrJSnJkoAgQDKTKdpb0QA9LPa0RXcPmxY59fdLSqItezyaTE5B1itZomT6vUeK49cBDfDfJ2lCIvPtZXitY2gCGTuth9BPxsIY/QSAPFVWgjY8II38/wlG8uZnXtH2QdsyBNr5Yf4c/hnA/DJ8+cqjf/G4N/8NZTtd+Mfw+8YZ+HD+tR5apA/o4esQXHkmTSMmn1IykQyFkYpLn399IXP8N79MNifRwovxDqTzs3Zkvzw1d7gVH14H56E8QToRzUS6sdONVzoLWXpgvg+Pz8PnE06G/z3/3coT7Rg8sq+RZ17MlzsAcgDwxNcj9z23D3xFxjXwPeNLyH1f+40tJB53xZb4Aif391/N82/14bR6eDQOR4+WH56cPhxT2Rwfaisb8wPtsbR4KjYExRHpSF/GpJPXPxTbbMPr8Kmss7D0CWbHvEHYODY5ZtCxX1NSxxyWBbMV7pohFUDEteyrLb7AVAAUUPJ7cCMOYR1HAYzf14rv9V7Wyh4ynjEIBWQ71VbGUw/gmMaEmYbpEsAZxEsAwwKq1f5pISXv9VhApVOdk/7hGsCINPokbhD1EN6zw0OFJFbtuQrnsXopN+7ecHDcFcsZRAEWF0Czz4d7flYUU0rzIirgZMQf60XlHq+ijjaOVnTt7UXY1dE92FXLKwpOyxodn2F/aGDHLuwTjEkU67EP+44dMFCcUO4KvpaxsjADXFUuHqh61dusYigRkC9/Rk8s5OUdQo0fV6nqIx2nMYip83RR4KfrSKuQZ9QPjcDTkjVasfcFTpBGK8J1FHpI79m9CekGJye8izoFs2NVKxY9Y8grY718QRVr0AvqOSth5a0G8TwHNZ1b9sGrD3mm7kBqpbusmcVyTGiGw5r5KDRB2WWYrB9RYik6vMjw8TaG89xpsZ1jCTbpLHUZ9mEMzBxaZ7sM79gtzOTosGtugdF2LmMYFvwrk6FwrikMmvNiNdecM3luPn90J41V5Xk+hS6cVspfjtRGK7bGiqgxc+3qurC82ayv2LzlU73v7A1VP4uqMDRKtlAPgK3mrmgqWq472MXgw0VNHd6hKc1hUIukp3WuLtmkpykLuXRkz2w3P+/ZvTdrSAmX37jm6+Iu71Dzeea0xiodzjM2xo12fKuyDXPurVliZrLV8Hvqpq4SrMWrBRLeeH7onCpBM4pWplkVuVTpKsG7NxVIe3b0UPHTOtjP+aRTDEHLo8ahxqa2mg9uOtNzNjnX5NU4tRGu1lGK9DV29LfCzJSys2KkidluHeWA3lRH7dlZXDCdEbpernaRchS5DrIpJjpHSts36rgt9PWUXJ2MsPyqym03ozmPXN849gywi9SOXZuB1nkkZ9omr+WfBHGLo+qQHhtlVy2qkmf11pPw/DzZOw+trWqpp654qbVSL0td97WNiqfn7Q/6ydE4Mcyrbx9gUhxjPBvNHzB2vnwQTaOTF6G9Idjc3vI5ZLPN9rtNmb7RW/QjpGl7C033tg8283Lxbvk0ciZdHDEG+TTB4Ya8SDhqSnSR1HGXJpKvGpywPjQp8vc/5wwYbgplbmRzdHJlYW0KZW5kb2JqCjM4NiAwIG9iagoxMTcxCmVuZG9iagozODcgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDE0IDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxNSAwIFIKICAvQ29udGVudHMgMzg1IDAgUgo+PgplbmRvYmoKMzg4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxMiAwIFIgL1hZWiA3Mi4wIDI1Mi43MjYgbnVsbF0KPj4KZW5kb2JqCjM4OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA3MDkuMDA1IDIyOS4xNjcgNzE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzODggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzkwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy42MjggNzA5LjAwNSA1NDAuMzQ4IDcxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzg4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM5MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTIgMCBSIC9YWVogNzIuMCAyMDIuMTQgbnVsbF0KPj4KZW5kb2JqCjM5MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA2OTcuMDA1IDIzMy4zODkgNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzOTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzkzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy42MjggNjk3LjAwNSA1NDAuMzQ4IDcwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzkxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM5NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTIgMCBSIC9YWVogNzIuMCAxNTEuNTU0IG51bGxdCj4+CmVuZG9iagozOTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNjg1LjAwNSAyMzEuMjg2IDY5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzk0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM5NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDY4NS4wMDUgNTM5Ljk5OCA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM5NCAwIFIKL0ggL0kKCj4+CmVuZG9iagozOTcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjEyIDAgUiAvWFlaIDcyLjAgMTEyLjk2OCBudWxsXQo+PgplbmRvYmoKMzk4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY3My4wMDUgMjk1LjEzMiA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM5NyAwIFIKL0ggL0kKCj4+CmVuZG9iagozOTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjYyOCA2NzMuMDA1IDU0MC4zNDggNjgyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzOTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDAwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM4MSAwIFIgL1hZWiA3Mi4wIDY5Ni4wIG51bGxdCj4+CmVuZG9iago0MDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNjYxLjAwNSAyMDUuNTk2IDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDAwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQwMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuNDQ4IDY2MS4wMDUgNTQwLjE2OCA2NzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQwMCAwIFIKL0ggL0kKCj4+CmVuZG9iago0MDMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzgxIDAgUiAvWFlaIDcyLjAgNjU2LjAgbnVsbF0KPj4KZW5kb2JqCjQwNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA2NDkuMDA1IDIxOC43NDkgNjU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MDMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDA1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNjQ5LjAwNSA1MzkuOTk4IDY1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDAzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQwNiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszODEgMCBSIC9YWVogNzIuMCA1OTIuMCBudWxsXQo+PgplbmRvYmoKNDA3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDYzNy4wMDUgMTg0LjI1NSA2NDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQwNiAwIFIKL0ggL0kKCj4+CmVuZG9iago0MDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA2MzcuMDA1IDUzOS45OTggNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDA5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM4MSAwIFIgL1hZWiA3Mi4wIDU1Mi4wIG51bGxdCj4+CmVuZG9iago0MTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNjI1LjAwNSAxNzguMTAxIDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDA5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQxMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDYyNS4wMDUgNTM5Ljk5OCA2MzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQwOSAwIFIKL0ggL0kKCj4+CmVuZG9iago0MTIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzgxIDAgUiAvWFlaIDcyLjAgNTEyLjAgbnVsbF0KPj4KZW5kb2JqCjQxMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA2MTMuMDA1IDIwMC45NTQgNjIyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDE0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNjEzLjAwNSA1MzkuOTk4IDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDEyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQxNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszODEgMCBSIC9YWVogNzIuMCA0NjAuMCBudWxsXQo+PgplbmRvYmoKNDE2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDYwMS4wMDUgMjE0LjQ1NyA2MTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQxNSAwIFIKL0ggL0kKCj4+CmVuZG9iago0MTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA2MDEuMDA1IDUzOS45OTggNjEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDE4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM4MSAwIFIgL1hZWiA3Mi4wIDQwOC4wIG51bGxdCj4+CmVuZG9iago0MTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTg5LjAwNSAxODcuMTcyIDU5OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDE4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQyMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDU4OS4wMDUgNTM5Ljk5OCA1OTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQxOCAwIFIKL0ggL0kKCj4+CmVuZG9iago0MjEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzgxIDAgUiAvWFlaIDcyLjAgMzY4LjAgbnVsbF0KPj4KZW5kb2JqCjQyMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA1NzcuMDA1IDIyMy41MjkgNTg2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MjEgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDIzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNTc3LjAwNSA1MzkuOTk4IDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDIxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQyNCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszODEgMCBSIC9YWVogNzIuMCAzMjguMCBudWxsXQo+PgplbmRvYmoKNDI1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDU2NS4wMDUgMjAxLjU0MiA1NzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyNCAwIFIKL0ggL0kKCj4+CmVuZG9iago0MjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA1NjUuMDA1IDUzOS45OTggNTc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MjQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDI3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM4MSAwIFIgL1hZWiA3Mi4wIDI4OC4wIG51bGxdCj4+CmVuZG9iago0MjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTUzLjAwNSAyMjkuMTY3IDU2Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDI3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQyOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuNjI4IDU1My4wMDUgNTQwLjM0OCA1NjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyNyAwIFIKL0ggL0kKCj4+CmVuZG9iago0MzAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzgxIDAgUiAvWFlaIDcyLjAgMjM2LjAgbnVsbF0KPj4KZW5kb2JqCjQzMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA1NDEuMDA1IDIzMy4zODkgNTUwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDMyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy42MjggNTQxLjAwNSA1NDAuMzQ4IDU1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDMwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQzMyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszODEgMCBSIC9YWVogNzIuMCAxODQuMCBudWxsXQo+PgplbmRvYmoKNDM0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDUyOS4wMDUgMjMxLjI4NiA1MzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQzMyAwIFIKL0ggL0kKCj4+CmVuZG9iago0MzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA1MjkuMDA1IDUzOS45OTggNTM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDM2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM4NCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago0MzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA1MTcuMDA1IDEzNi43NDQgNTI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDM4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNTE3LjAwNSA1MzkuOTk4IDUyNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDM2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQzOSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszODQgMCBSIC9YWVogNzIuMCA2NzguOCBudWxsXQo+PgplbmRvYmoKNDQwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUwNS4wMDUgMTU0LjExMSA1MTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQzOSAwIFIKL0ggL0kKCj4+CmVuZG9iago0NDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA1MDUuMDA1IDUzOS45OTggNTE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDQyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM4NyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago0NDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0OTMuMDA1IDE1MC4zMzMgNTAyLjk5NSBdCi9DIFsg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CjQ0NiAwIG9iagoxMzIyNwplbmRvYmoKNDQ3IDAgb2JqClsKMzg5IDAgUgozOTAgMCBSCjM5MiAwIFIKMzkzIDAgUgozOTUgMCBSCjM5NiAwIFIKMzk4IDAgUgozOTkgMCBSCjQwMSAwIFIKNDAyIDAgUgo0MDQgMCBSCjQwNSAwIFIKNDA3IDAgUgo0MDggMCBSCjQxMCAwIFIKNDExIDAgUgo0MTMgMCBSCjQxNCAwIFIKNDE2IDAgUgo0MTcgMCBSCjQxOSAwIFIKNDIwIDAgUgo0MjIgMCBSCjQyMyAwIFIKNDI1IDAgUgo0MjYgMCBSCjQyOCAwIFIKNDI5IDAgUgo0MzEgMCBSCjQzMiAwIFIKNDM0IDAgUgo0MzUgMCBSCjQzNyAwIFIKNDM4IDAgUgo0NDAgMCBSCjQ0MSAwIFIKNDQzIDAgUgo0NDQgMCBSCl0KZW5kb2JqCjQ0OCAwIG9iago8PAogIC9SZXNvdXJjZXMgMTQgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDE1IDAgUgogIC9Bbm5vdHMgNDQ3IDAgUgogIC9Db250ZW50cyA0NDUgMCBSCj4+CmVuZG9iago0NDkgMCBvYmoKPDwKICAvVHlwZSAvRm9udERlc2NyaXB0b3IKICAvRm9udE5hbWUgL0VBQUFBQStEZWphVnVTYW5zLUJvbGQKICAvRm9udEJCb3ggWy0xMDY5IC00MTUgMTk3NSAxMTc0XQogIC9GbGFncyAzMwogIC9DYXBIZWlnaHQgNzI5CiAgL0FzY2VudCAxMTc0CiAgL0Rlc2NlbnQgLTQxNQogIC9JdGFsaWNBbmdsZSAwCiAgL1N0ZW1WIDAKICAvTWlzc2luZ1dpZHRoIDUwMAogIC9Gb250RmlsZTIgNDUwIDAgUgogIC9DSURTZXQgNDUxIDAgUgo+PgplbmRvYmoKNDUwIDAgb2JqCjw8CiAgL0xlbmd0aDEgMjk3NjAKICAvTGVuZ3RoIDQ1MiAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+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ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nJvA8P8P/83/D/j///+hAAA5Bgh4CmVuZHN0cmVhbQplbmRvYmoKNDUzIDAgb2JqCjIyCmVuZG9iago0NTQgMCBvYmoKPDwKICAvVHlwZSAvRm9udAogIC9TdWJ0eXBlIC9UeXBlMAogIC9CYXNlRm9udCAvRUFBQUFBK0RlamFWdVNhbnMtQm9sZAogIC9FbmNvZGluZyAvSWRlbnRpdHktSAogIC9Ub1VuaWNvZGUgNDU1IDAgUgogIC9EZXNjZW5kYW50Rm9udHMgWzQ1NiAwIFJdCj4+CmVuZG9iago0NTYgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKL0Jhc2VGb250IC9FQUFBQUErRGVqYVZ1U2Fucy1Cb2xkIAovQ0lEVG9HSURNYXAgL0lkZW50aXR5IAovU3VidHlwZSAvQ0lERm9udFR5cGUyCi9DSURTeXN0ZW1JbmZvIDw8IC9SZWdpc3RyeSAoQWRvYmUpIC9PcmRlcmluZyAoVUNTKSAvU3VwcGxlbWVudCAwID4+Ci9Gb250RGVzY3JpcHRvciA0NDkgMCBSCi9EVyAwCi9XIFsgMCBbNjAwIDM0OCA0MTUgODMwIDY4NyA1OTIgNzExIDEwNDEgNjc4IDcxMSA0NzggNjc0IDM0MiA3MzIgNzExIDgzNiA3MTUgMzQyIDY4MiA2NjUgNzE1IDM3OSA3NzMgNDkzIDU5NSA2OTUgNjk1IDY5NSA2ODMgNzYyIDM5OSA2OTUgNjk1IDY5NSA3MTUgNDM1IDczMyA3MTUgMzQ4IDY4MyA2MzcgOTIzIDg1MCA3MjAgNjk1IDY5NSAxMTAzIDY5NSA2OTUgNzcwIDc3MyA4MzYgOTk1IDY1MSA3MTUgODUwIDY1MSAzNzIgODEyIDY0NSAzNDIgMzY1IF0gXQo+PgplbmRvYmoKNDU1IDAgb2JqCjw8IC9MZW5ndGggNDU3IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJxdlNuK2zAQhu/zFLrcXiy2ND7swhIoKYVc9EDTPoAtyamhsY3jXOTta+ubTaGGHD6PZvT/kkbZ4fjpOPSLyb7Poz/FxXT9EOZ4HW+zj6aN537YWWdC7xel9O0vzbTL1uTT/brEy3HoRiOMCrdJ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eXBlIC9UeXBlMAogIC9CYXNlRm9udCAvRUFBQUFCK0RlamFWdVNhbnMKICAvRW5jb2RpbmcgL0lkZW50aXR5LUgKICAvVG9Vbmljb2RlIDQ2NCAwIFIKICAvRGVzY2VuZGFudEZvbnRzIFs0NjUgMCBSXQo+PgplbmRvYmoKNDY1IDAgb2JqCjw8IC9UeXBlIC9Gb250Ci9CYXNlRm9udCAvRUFBQUFCK0RlamFWdVNhbnMgCi9DSURUb0dJRE1hcCAvSWRlbnRpdHkgCi9TdWJ0eXBlIC9DSURGb250VHlwZTIKL0NJRFN5c3RlbUluZm8gPDwgL1JlZ2lzdHJ5IChBZG9iZSkgL09yZGVyaW5nIChVQ1MpIC9TdXBwbGVtZW50IDAgPj4KL0ZvbnREZXNjcmlwdG9yIDQ1OCAwIFIKL0RXIDAKL1cgWyAwIFs2MDAgMzE3IDM2MCA2MDMgNDExIDYxNSAzNTIgNjEyIDU0OSAzMTcgODYyIDYzNiA1NzUgMzkyIDYzMyA1NTcgMjc3IDUyMCA2ODYgNjM0IDYzNCA2MzYgNjMzIDYxMSA2MzMgNjg0IDgxNyA3ODcgNjM0IDYzNiA2MzEgMjc3IDYzNiA5ODggNjM2IDU3OSA2MzYgNjk0IDYzNCA2MzQgNjEwIDY4NCA3NDggNjk4IDk3NCA1OTEgNjM0IDc4NyA1OTEgMjk0IDMzNiA3NzAgNjM2IDYzNiA2MzYgNjM2IDczMSA1OTEgNzUxIDI3NyAzMTcgMzkwIDEwMDAgMzkwIDQ1OSA1ODkgNTI0IDMzNiA1MzAgODM3IDI3NCA4MzcgODM3IDYxMCA2NTUgMjk0IDgzNyBdIF0KPj4KZW5kb2JqCjQ2NCAwIG9iago8PCAvTGVuZ3RoIDQ2NiAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnicXZTbjpswEIbv8xS+3F6swGODd6VVpCpVpVz0oKZ9AAImRWoAEXKRty/4m7JSkXL4sT3zfzMw2eH46dh3s8m+T0N9irNpu76Z4m24T3U053jp+p0V03T1rCp919dq3GXL4dPjNsfrsW8H49jV3EfdaUz2Y/lzm6eHefrYDOf4wTSxXe9/m5o4df3FPP06nLa7p/s4/onX2M8mT/di36Tf7PClGr9W12iyFOf52CybuvnxvBx/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Zu+dUCyLNc5tghrxpTfLjK2NV5Nzvuc8Ytzspc2toXVWbW+XLH5+AeQaxYcKZW5kc3RyZWFtCmVuZG9iago0NzUgMCBvYmoKMzQ2CmVuZG9iagoxNSAwIG9iago8PCAvVHlwZSAvUGFnZXMKL0NvdW50IDE4Ci9LaWRzIFsxMyAwIFIgMjAwIDAgUiAzNzggMCBSIDQ0OCAwIFIgMjIgMCBSIDI1IDAgUiAyOCAwIFIgMzQgMCBSIDM3IDAgUiA0MCAwIFIgNDMgMCBSIDIwMyAwIFIgMjA2IDAgUiAyMDkgMCBSIDIxMiAwIFIgMzgxIDAgUiAzODQgMCBSIDM4NyAwIFIgXSA+PgplbmRvYmoKNDc2IDAgb2JqCjw8CiAgL1R5cGUgL0NhdGFsb2cKICAvUGFnZXMgMTUgMCBSCiAgL0xhbmcgKGVuKQogIC9NZXRhZGF0YSA1IDAgUgogIC9QYWdlTGFiZWxzIDQ3NyAwIFIKPj4KZW5kb2JqCjE0IDAgb2JqCjw8CiAgL0ZvbnQgPDwKICAvRjE2IDQ1NCAwIFIKICAvRjE1IDQ2MyAwIFIKICAvRjE5IDQ3MiAwIFIKPj4KICAvUHJvY1NldCBbL1BERiAvSW1hZ2VCIC9JbWFnZUMgL1RleHRdCiAgL1hPYmplY3QgPDwKICAvSW0xIDcgMCBSCiAgL0ltMiA5IDAgUgogIC9JbTMgMTYgMCBSCiAgL0ltNCAxOCAwIFIKPj4KICAvQ29sb3JTcGFjZSA8PCAvRGVmYXVsdFJHQiA0IDAgUiA+Pgo+PgplbmRvYmoKNDc3IDAgb2JqCjw8IC9OdW1zIFswIDw8IC9TIC9EID4+IDEgPDwgL1MgL3IgL1N0IDIgPj4gMiA8PCAvUyAvciAvU3QgMyA+PiAzIDw8IC9TIC9yIC9TdCA0ID4+IDQgPDwgL1MgL3IgL1N0IDUgPj4gNSA8PCAvUyAvRCA+PiAxMSA8PCAvUyAvRCAvU3QgNyA+PiAxNSA8PCAvUyAvRCAvU3QgMTEgPj5dID4+CmVuZG9iagp4cmVmCjAgNDc4CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMTQ1IDAwMDAwIG4gCjAwMDAwMDI2ODMgMDAwMDAgbiAKMDAwMDAwMjcwMyAwMDAwMCBuIAowMDAwMDAyNzM2IDAwMDAwIG4gCjAwMDAwMDM2ODMgMDAwMDAgbiAKMDAwMDAwMzcwMiAwMDAwMCBuIAowMDAwMDUyMjI3IDAwMDAwIG4gCjAwMDAwNTIyNDggMDAwMDAgbiAKMDAwMDEwNTUwOCAwMDAwMCBuIAowMDAwMTA1NTMwIDAwMDAwIG4gCjAwMDAxMDYwMzYgMDAwMDAgbiAKMDAwMDEwNjA1NiAwMDAwMCBuIAowMDAwMzE4MDgyIDAwMDAwIG4gCjAwMDAzMTc3ODMgMDAwMDAgbiAKMDAwMDEwNjI1MCAwMDAwMCBuIAowMDAwMTEyNDIxIDAwMDAwIG4gCjAwMDAxMTI0NDIgMDAwMDAgbiAKMDAwMDExOTYyMiAwMDAwMCBuIAowMDAwMTE5NjQzIDAwMDAwIG4gCjAwMDAxMjAyNjggMDAwMDAgbiAKMDAwMDEyMDI4OCAwMDAwMCBuIAowMDAwMTIwNDgyIDAwMDAwIG4gCjAwMDAxMjE5OTggMDAwMDAgbiAKMDAwMDEyMjAxOSAwMDAwMCBuIAowMDAwMTIyMjEzIDAwMDAwIG4gCjAwMDAxMjMwNzIgMDAwMDAgbiAKMDAwMDEyMzA5MiAwMDAwMCBuIAowMDAwMTIzMjg2IDAwMDAwIG4gCjAwMDAxMjMzODEgMDAwMDAgbiAKMDAwMDEyMzUxNyAwMDAwMCBuIAowMDAwMTI0NzAzIDAwMDAwIG4gCjAwMDAxMjQ3MjQgMDAwMDAgbiAKMDAwMDEyNDc1MSAwMDAwMCBuIAowMDAwMTI0OTYyIDAwMDAwIG4gCjAwMDAxMjYyODggMDAwMDAgbiAKMDAwMDEyNjMwOSAwMDAwMCBuIAowMDAwMTI2NTAzIDAwMDAwIG4gCjAwMDAxMjg0NDYgMDAwMDAgbiAKMDAwMDEyODQ2NyAwMDAwMCBuIAowMDAwMTI4NjYxIDAwMDAwIG4gCjAwMDAxMzA2OTEgMDAwMDAgbiAKMDAwMDEzMDcxMiAwMDAwMCBuIAowMDAwMTMwOTA2IDAwMDAwIG4gCjAwMDAxMzA5ODQgMDAwMDAgbiAKMDAwMDEzMTEyMCAwMDAwMCBuIAowMDAwMTMxMjU3IDAwMDAwIG4gCjAwMDAxMzEzMzUgMDAwMDAgbiAKMDAwMDEzMTQ3MiAwMDAwMCBuIAowMDAwMTMxNjEyIDAwMDAwIG4gCjAwMDAxMzE2OTAgMDAwMDAgbiAKMDAwMDEzMTgyOCAwMDAwMCBuIAowMDAwMTMxOTY4IDAwMDAwIG4gCjAwMDAxMzIwNDYgMDAwMDAgbiAKMDAwMDEzMjE4NCAwMDAwMCBuIAowMDAwMTMyMzI0IDAwMDAwIG4gCjAwMDAxMzI0MDIgMDAwMDAgbiAKMDAwMDEzMjU0MCAwMDAwMCBuIAowMDAwMTMyNjgwIDAwMDAwIG4gCjAwMDAxMzI3NTggMDAwMDAgbiAKMDAwMDEzMjg5NiAwMDAwMCBuIAowMDAwMTMzMDM2IDAwMDAwIG4gCjAwMDAxMzMxMTQgMDAwMDAgbiAKMDAwMDEzMzI1MiAwMDAwMCBuIAowMDAwMTMzMzkyIDAwMDAwIG4gCjAwMDAxMzM0NzAgMDAwMDAgbiAKMDAwMDEzMzYwOCAwMDAwMCBuIAowMDAwMTMzNzQ4IDAwMDAwIG4gCjAwMDAxMzM4MjYgMDAwMDAgbiAKMDAwMDEzMzk2NCAwMDAwMCBuIAowMDAwMTM0MTA0IDAwMDAwIG4gCjAwMDAxMzQxODIgMDAwMDAgbiAKMDAwMDEzNDMyMCAwMDAwMCBuIAowMDAwMTM0NDYwIDAwMDAwIG4gCjAwMDAxMzQ1MzggMDAwMDAgbiAKMDAwMDEzNDY3NiAwMDAwMCBuIAowMDAwMTM0ODE2IDAwMDAwIG4gCjAwMDAxMzQ4OTQgMDAwMDAgbiAKMDAwMDEzNTAzMiAwMDAwMCBuIAowMDAwMTM1MTcyIDAwMDAwIG4gCjAwMDAxMzUyNTAgMDAwMDAgbiAKMDAwMDEzNTM4OCAwMDAwMCBuIAowMDAwMTM1NTI4IDAwMDAwIG4gCjAwMDAxMzU2MDYgMDAwMDAgbiAKMDAwMDEzNTc0NCAwMDAwMCBuIAowMDAwMTM1ODg0IDAwMDAwIG4gCjAwMDAxMzU5NjIgMDAwMDAgbiAKMDAwMDEzNjA5OSAwMDAwMCBuIAowMDAwMTM2MjM5IDAwMDAwIG4gCjAwMDAxMzYzMTcgMDAwMDAgbiAKMDAwMDEzNjQ1NSAwMDAwMCBuIAowMDAwMTM2NTk1IDAwMDAwIG4gCjAwMDAxMzY2NzMgMDAwMDAgbiAKMDAwMDEzNjgxMCAwMDAwMCBuIAowMDAwMTM2OTUwIDAwMDAwIG4gCjAwMDAxMzcwMjggMDAwMDAgbiAKMDAwMDEzNzE2NiAwMDAwMCBuIAowMDAwMTM3MzA2IDAwMDAwIG4gCjAwMDAxMzczODQgMDAwMDAgbiAKMDAwMDEzNzUyMiAwMDAwMCBuIAowMDAwMTM3NjYzIDAwMDAwIG4gCjAwMDAxMzc3NDIgMDAwMDAgbiAKMDAwMDEzNzg4MiAwMDAwMCBuIAowMDAwMTM4MDI0IDAwMDAwIG4gCjAwMDAxMzgxMDMgMDAwMDAgbiAKMDAwMDEzODI0MyAwMDAwMCBuIAowMDAwMTM4Mzg1IDAwMDAwIG4gCjAwMDAxMzg0NjQgMDAwMDAgbiAKMDAwMDEzODYwMiAwMDAwMCBuIAowMDAwMTM4NzQ0IDAwMDAwIG4gCjAwMDAxMzg4MjMgMDAwMDAgbiAKMDAwMDEzODk2MyAwMDAwMCBuIAowMDAwMTM5MTA1IDAwMDAwIG4gCjAwMDAxMzkxODQgMDAwMDAgbiAKMDAwMDEzOTMyNCAwMDAwMCBuIAowMDAwMTM5NDY2IDAwMDAwIG4gCjAwMDAxMzk1NDUgMDAwMDAgbiAKMDAwMDEzOTY4NCAwMDAwMCBuIAowMDAwMTM5ODI2IDAwMDAwIG4gCjAwMDAxMzk5MDUgMDAwMDAgbiAKMDAwMDE0MDA0NSAwMDAwMCBuIAowMDAwMTQwMTg3IDAwMDAwIG4gCjAwMDAxNDAyNjYgMDAwMDAgbiAKMDAwMDE0MDQwNiAwMDAwMCBuIAowMDAwMTQwNTQ4IDAwMDAwIG4gCjAwMDAxNDA2MjcgMDAwMDAgbiAKMDAwMDE0MDc2NiAwMDAwMCBuIAowMDAwMTQwOTA4IDAwMDAwIG4gCjAwMDAxNDA5ODkgMDAwMDAgbiAKMDAwMDE0MTEyOSAwMDAwMCBuIAowMDAwMTQxMjcxIDAwMDAwIG4gCjAwMDAxNDEzNTEgMDAwMDAgbiAKMDAwMDE0MTQ5MSAwMDAwMCBuIAowMDAwMTQxNjMzIDAwMDAwIG4gCjAwMDAxNDE3MTQgMDAwMDAgbiAKMDAwMDE0MTg1NCAwMDAwMCBuIAowMDAwMTQxOTk2IDAwMDAwIG4gCjAwMDAxNDIwNzYgMDAwMDAgbiAKMDAwMDE0MjIxNiAwMDAwMCBuIAowMDAwMTQyMzU4IDAwMDAwIG4gCjAwMDAxNDI0MzggMDAwMDAgbiAKMDAwMDE0MjU3OCAwMDAwMCBuIAowMDAwMTQyNzIwIDAwMDAwIG4gCjAwMDAxNDI3OTkgMDAwMDAgbiAKMDAwMDE0MjkzOSAwMDAwMCBuIAowMDAwMTQzMDgxIDAwMDAwIG4gCjAwMDAxNDMxNjEgMDAwMDAgbiAKMDAwMDE0MzMwMSAwMDAwMCBuIAowMDAwMTQzNDQzIDAwMDAwIG4gCjAwMDAxNDM1MjMgMDAwMDAgbiAKMDAwMDE0MzY2MyAwMDAwMCBuIAowMDAwMTQzODA1IDAwMDAwIG4gCjAwMDAxNDM4ODUgMDAwMDAgbiAKMDAwMDE0NDAyNSAwMDAwMCBuIAowMDAwMTQ0MTY3IDAwMDAwIG4gCjAwMDAxNDQyNDcgMDAwMDAgbiAKMDAwMDE0NDM4NyAwMDAwMCBuIAowMDAwMTQ0NTI5IDAwMDAwIG4gCjAwMDAxNDQ2MDggMDAwMDAgbiAKMDAwMDE0NDc0OCAwMDAwMCBuIAowMDAwMTQ0ODkwIDAwMDAwIG4gCjAwMDAxNDQ5NzAgMDAwMDAgbiAKMDAwMDE0NTExMCAwMDAwMCBuIAowMDAwMTQ1MjUyIDAwMDAwIG4gCjAwMDAxNDUzMzEgMDAwMDAgbiAKMDAwMDE0NTQ3MSAwMDAwMCBuIAowMDAwMTQ1NjEzIDAwMDAwIG4gCjAwMDAxNDU2OTQgMDAwMDAgbiAKMDAwMDE0NTgzNCAwMDAwMCBuIAowMDAwMTQ1OTc2IDAwMDAwIG4gCjAwMDAxNDYwNTcgMDAwMDAgbiAKMDAwMDE0NjE5NyAwMDAwMCBuIAowMDAwMTQ2MzM5IDAwMDAwIG4gCjAwMDAxNDY0MjAgMDAwMDAgbiAKMDAwMDE0NjU2MCAwMDAwMCBuIAowMDAwMTQ2NzAyIDAwMDAwIG4gCjAwMDAxNDY3ODMgMDAwMDAgbiAKMDAwMDE0NjkyMyAwMDAwMCBuIAowMDAwMTQ3MDY1IDAwMDAwIG4gCjAwMDAxNDcxNDYgMDAwMDAgbiAKMDAwMDE0NzI4NiAwMDAwMCBuIAowMDAwMTQ3NDI4IDAwMDAwIG4gCjAwMDAxNDc1MDkgMDAwMDAgbiAKMDAwMDE0NzY0OSAwMDAwMCBuIAowMDAwMTQ3NzkxIDAwMDAwIG4gCjAwMDAxNDc4NzIgMDAwMDAgbiAKMDAwMDE0ODAxMSAwMDAwMCBuIAowMDAwMTQ4MTUzIDAwMDAwIG4gCjAwMDAxNDgyMzMgMDAwMDAgbiAKMDAwMDE0ODM3MyAwMDAwMCBuIAowMDAwMTQ4NTE1IDAwMDAwIG4gCjAwMDAxNDg1OTUgMDAwMDAgbiAKMDAwMDE0ODczNCAwMDAwMCBuIAowMDAwMTQ4ODc1IDAwMDAwIG4gCjAwMDAxNDg5NTUgMDAwMDAgbiAKMDAwMDE0OTA5MyAwMDAwMCBuIAowMDAwMTQ5MjMzIDAwMDAwIG4gCjAwMDAxODM1NjkgMDAwMDAgbiAKMDAwMDE4MzU5MiAwMDAwMCBuIAowMDAwMTg0MzkyIDAwMDAwIG4gCjAwMDAxODQ2MDYgMDAwMDAgbiAKMDAwMDE4NjMyNyAwMDAwMCBuIAowMDAwMTg2MzQ5IDAwMDAwIG4gCjAwMDAxODY1NDUgMDAwMDAgbiAKMDAwMDE4ODYwNCAwMDAwMCBuIAowMDAwMTg4NjI2IDAwMDAwIG4gCjAwMDAxODg4MjIgMDAwMDAgbiAKMDAwMDE5MDU3MCAwMDAwMCBuIAowMDAwMTkwNTkyIDAwMDAwIG4gCjAwMDAxOTA3ODggMDAwMDAgbiAKMDAwMDE5MzAxMiAwMDAwMCBuIAowMDAwMTkzMDM0IDAwMDAwIG4gCjAwMDAxOTMyMzAgMDAwMDAgbiAKMDAwMDE5MzMxMCAwMDAwMCBuIAowMDAwMTkzNDUwIDAwMDAwIG4gCjAwMDAxOTM1OTIgMDAwMDAgbiAKMDAwMDE5MzY3MiAwMDAwMCBuIAowMDAwMTkzODEyIDAwMDAwIG4gCjAwMDAxOTM5NTQgMDAwMDAgbiAKMDAwMDE5NDAzNCAwMDAwMCBuIAowMDAwMTk0MTc0IDAwMDAwIG4gCjAwMDAxOTQzMTYgMDAwMDAgbiAKMDAwMDE5NDM5OCAwMDAwMCBuIAowMDAwMTk0NTM4IDAwMDAwIG4gCjAwMDAxOTQ2ODAgMDAwMDAgbiAKMDAwMDE5NDc2MiAwMDAwMCBuIAowMDAwMTk0OTAxIDAwMDAwIG4gCjAwMDAxOTUwNDMgMDAwMDAgbiAKMDAwMDE5NTEyNSAwMDAwMCBuIAowMDAwMTk1MjY1IDAwMDAwIG4gCjAwMDAxOTU0MDcgMDAwMDAgbiAKMDAwMDE5NTQ4OSAwMDAwMCBuIAowMDAwMTk1NjI5IDAwMDAwIG4gCjAwMDAxOTU3NzEgMDAwMDAgbiAKMDAwMDE5NTg1MyAwMDAwMCBuIAowMDAwMTk1OTkzIDAwMDAwIG4gCjAwMDAxOTYxMzUgMDAwMDAgbiAKMDAwMDE5NjIxNyAwMDAwMCBuIAowMDAwMTk2MzU3IDAwMDAwIG4gCjAwMDAxOTY0OTkgMDAwMDAgbiAKMDAwMDE5NjU4MCAwMDAwMCBuIAowMDAwMTk2NzIwIDAwMDAwIG4gCjAwMDAxOTY4NjIgMDAwMDAgbiAKMDAwMDE5Njk0NCAwMDAwMCBuIAowMDAwMTk3MDg0IDAwMDAwIG4gCjAwMDAxOTcyMjYgMDAwMDAgbiAKMDAwMDE5NzMwOCAwMDAwMCBuIAowMDAwMTk3NDQ4IDAwMDAwIG4gCjAwMDAxOTc1OTAgMDAwMDAgbiAKMDAwMDE5NzY3MiAwMDAwMCBuIAowMDAwMTk3ODEyIDAwMDAwIG4gCjAwMDAxOTc5NTQgMDAwMDAgbiAKMDAwMDE5ODAzNiAwMDAwMCBuIAowMDAwMTk4MTc2IDAwMDAwIG4gCjAwMDAxOTgzMTggMDAwMDAgbiAKMDAwMDE5ODQwMCAwMDAwMCBuIAowMDAwMTk4NTQwIDAwMDAwIG4gCjAwMDAxOTg2ODIgMDAwMDAgbiAKMDAwMDE5ODc2NCAwMDAwMCBuIAowMDAwMTk4OTA0IDAwMDAwIG4gCjAwMDAxOTkwNDYgMDAwMDAgbiAKMDAwMDE5OTEyOCAwMDAwMCBuIAowMDAwMTk5MjY4IDAwMDAwIG4gCjAwMDAxOTk0MTAgMDAwMDAgbiAKMDAwMDE5OTQ5MCAwMDAwMCBuIAowMDAwMTk5NjMwIDAwMDAwIG4gCjAwMDAxOTk3NzIgMDAwMDAgbiAKMDAwMDE5OTg1MyAwMDAwMCBuIAowMDAwMTk5OTkzIDAwMDAwIG4gCjAwMDAyMDAxMzUgMDAwMDAgbiAKMDAwMDIwMDIxNyAwMDAwMCBuIAowMDAwMjAwMzU3IDAwMDAwIG4gCjAwMDAyMDA0OTkgMDAwMDAgbiAKMDAwMDIwMDU4MSAwMDAwMCBuIAowMDAwMjAwNzIxIDAwMDAwIG4gCjAwMDAyMDA4NjMgMDAwMDAgbiAKMDAwMDIwMDk0NSAwMDAwMCBuIAowMDAwMjAxMDg1IDAwMDAwIG4gCjAwMDAyMDEyMjcgMDAwMDAgbiAKMDAwMDIwMTMwOSAwMDAwMCBuIAowMDAwMjAxNDQ5IDAwMDAwIG4gCjAwMDAyMDE1OTEgMDAwMDAgbiAKMDAwMDIwMTY3MSAwMDAwMCBuIAowMDAwMjAxODExIDAwMDAwIG4gCjAwMDAyMDE5NTMgMDAwMDAgbiAKMDAwMDIwMjAzNSAwMDAwMCBuIAowMDAwMjAyMTc1IDAwMDAwIG4gCjAwMDAyMDIzMTcgMDAwMDAgbiAKMDAwMDIwMjM5OSAwMDAwMCBuIAowMDAwMjAyNTM5IDAwMDAwIG4gCjAwMDAyMDI2ODEgMDAwMDAgbiAKMDAwMDIwMjc2MyAwMDAwMCBuIAowMDAwMjAyOTAzIDAwMDAwIG4gCjAwMDAyMDMwNDUgMDAwMDAgbiAKMDAwMDIwMzEyNyAwMDAwMCBuIAowMDAwMjAzMjY3IDAwMDAwIG4gCjAwMDAyMDM0MDkgMDAwMDAgbiAKMDAwMDIwMzQ5MCAwMDAwMCBuIAowMDAwMjAzNjI5IDAwMDAwIG4gCjAwMDAyMDM3NzEgMDAwMDAgbiAKMDAwMDIwMzg1MyAwMDAwMCBuIAowMDAwMjAzOTkzIDAwMDAwIG4gCjAwMDAyMDQxMzUgMDAwMDAgbiAKMDAwMDIwNDIxNSAwMDAwMCBuIAowMDAwMjA0MzU1IDAwMDAwIG4gCjAwMDAyMDQ0OTcgMDAwMDAgbiAKMDAwMDIwNDU3OSAwMDAwMCBuIAowMDAwMjA0NzE5IDAwMDAwIG4gCjAwMDAyMDQ4NjEgMDAwMDAgbiAKMDAwMDIwNDk0MyAwMDAwMCBuIAowMDAwMjA1MDgzIDAwMDAwIG4gCjAwMDAyMDUyMjUgMDAwMDAgbiAKMDAwMDIwNTMwNyAwMDAwMCBuIAowMDAwMjA1NDQ3IDAwMDAwIG4gCjAwMDAyMDU1ODkgMDAwMDAgbiAKMDAwMDIwNTY3MSAwMDAwMCBuIAowMDAwMjA1ODExIDAwMDAwIG4gCjAwMDAyMDU5NTMgMDAwMDAgbiAKMDAwMDIwNjAzNSAwMDAwMCBuIAowMDAwMjA2MTc1IDAwMDAwIG4gCjAwMDAyMDYzMTcgMDAwMDAgbiAKMDAwMDIwNjM5OSAwMDAwMCBuIAowMDAwMjA2NTM5IDAwMDAwIG4gCjAwMDAyMDY2ODEgMDAwMDAgbiAKMDAwMDIwNjc2MyAwMDAwMCBuIAowMDAwMjA2OTAzIDAwMDAwIG4gCjAwMDAyMDcwNDUgMDAwMDAgbiAKMDAwMDIwNzEyNyAwMDAwMCBuIAowMDAwMjA3MjY3IDAwMDAwIG4gCjAwMDAyMDc0MDkgMDAwMDAgbiAKMDAwMDIwNzQ5MSAwMDAwMCBuIAowMDAwMjA3NjMxIDAwMDAwIG4gCjAwMDAyMDc3NzMgMDAwMDAgbiAKMDAwMDIwNzg1NSAwMDAwMCBuIAowMDAwMjA3OTk1IDAwMDAwIG4gCjAwMDAyMDgxMzcgMDAwMDAgbiAKMDAwMDIwODIxOSAwMDAwMCBuIAowMDAwMjA4MzU5IDAwMDAwIG4gCjAwMDAyMDg1MDEgMDAwMDAgbiAKMDAwMDIwODU4MyAwMDAwMCBuIAowMDAwMjA4NzIzIDAwMDAwIG4gCjAwMDAyMDg4NjUgMDAwMDAgbiAKMDAwMDIwODk0NyAwMDAwMCBuIAowMDAwMjA5MDg3IDAwMDAwIG4gCjAwMDAyMDkyMjkgMDAwMDAgbiAKMDAwMDIwOTMxMSAwMDAwMCBuIAowMDAwMjA5NDUxIDAwMDAwIG4gCjAwMDAyMDk1OTMgMDAwMDAgbiAKMDAwMDIwOTY3MyAwMDAwMCBuIAowMDAwMjA5ODEzIDAwMDAwIG4gCjAwMDAyMDk5NTUgMDAwMDAgbiAKMDAwMDIxMDAzNyAwMDAwMCBuIAowMDAwMjEwMTc3IDAwMDAwIG4gCjAwMDAyMTAzMTkgMDAwMDAgbiAKMDAwMDIxMDQwMSAwMDAwMCBuIAowMDAwMjEwNTQxIDAwMDAwIG4gCjAwMDAyMTA2ODMgMDAwMDAgbiAKMDAwMDIxMDc2NSAwMDAwMCBuIAowMDAwMjEwOTA1IDAwMDAwIG4gCjAwMDAyMTEwNDcgMDAwMDAgbiAKMDAwMDIxMTEyOSAwMDAwMCBuIAowMDAwMjExMjY5IDAwMDAwIG4gCjAwMDAyMTE0MTEgMDAwMDAgbiAKMDAwMDIxMTQ5MiAwMDAwMCBuIAowMDAwMjExNjMyIDAwMDAwIG4gCjAwMDAyMTE3NzQgMDAwMDAgbiAKMDAwMDIxMTg1NiAwMDAwMCBuIAowMDAwMjExOTk1IDAwMDAwIG4gCjAwMDAyMTIxMzYgMDAwMDAgbiAKMDAwMDIxMjIxOCAwMDAwMCBuIAowMDAwMjEyMzU2IDAwMDAwIG4gCjAwMDAyMTI0OTYgMDAwMDAgbiAKMDAwMDIxMjU3OCAwMDAwMCBuIAowMDAwMjEyNzE2IDAwMDAwIG4gCjAwMDAyMTI4NTYgMDAwMDAgbiAKMDAwMDI0Nzg1MyAwMDAwMCBuIAowMDAwMjQ3ODc2IDAwMDAwIG4gCjAwMDAyNDg3NjEgMDAwMDAgbiAKMDAwMDI0ODk3NSAwMDAwMCBuIAowMDAwMjUwNjY3IDAwMDAwIG4gCjAwMDAyNTA2ODkgMDAwMDAgbiAKMDAwMDI1MDg4NSAwMDAwMCBuIAowMDAwMjUxNzI5IDAwMDAwIG4gCjAwMDAyNTE3NTAgMDAwMDAgbiAKMDAwMDI1MTk0NiAwMDAwMCBuIAowMDAwMjUzMTk1IDAwMDAwIG4gCjAwMDAyNTMyMTcgMDAwMDAgbiAKMDAwMDI1MzQxMyAwMDAwMCBuIAowMDAwMjUzNDk1IDAwMDAwIG4gCjAwMDAyNTM2MzUgMDAwMDAgbiAKMDAwMDI1Mzc3NyAwMDAwMCBuIAowMDAwMjUzODU4IDAwMDAwIG4gCjAwMDAyNTM5OTggMDAwMDAgbiAKMDAwMDI1NDE0MCAwMDAwMCBuIAowMDAwMjU0MjIyIDAwMDAwIG4gCjAwMDAyNTQzNjIgMDAwMDAgbiAKMDAwMDI1NDUwNCAwMDAwMCBuIAowMDAwMjU0NTg2IDAwMDAwIG4gCjAwMDAyNTQ3MjYgMDAwMDAgbiAKMDAwMDI1NDg2OCAwMDAwMCBuIAowMDAwMjU0OTQ4IDAwMDAwIG4gCjAwMDAyNTUwODggMDAwMDAgbiAKMDAwMDI1NTIzMCAwMDAwMCBuIAowMDAwMjU1MzEwIDAwMDAwIG4gCjAwMDAyNTU0NTAgMDAwMDAgbiAKMDAwMDI1NTU5MiAwMDAwMCBuIAowMDAwMjU1NjcyIDAwMDAwIG4gCjAwMDAyNTU4MTIgMDAwMDAgbiAKMDAwMDI1NTk1NCAwMDAwMCBuIAowMDAwMjU2MDM0IDAwMDAwIG4gCjAwMDAyNTYxNzQgMDAwMDAgbiAKMDAwMDI1NjMxNiAwMDAwMCBuIAowMDAwMjU2Mzk2IDAwMDAwIG4gCjAwMDAyNTY1MzYgMDAwMDAgbiAKMDAwMDI1NjY3OCAwMDAwMCBuIAowMDAwMjU2NzU4IDAwMDAwIG4gCjAwMDAyNTY4OTggMDAwMDAgbiAKMDAwMDI1NzA0MCAwMDAwMCBuIAowMDAwMjU3MTIwIDAwMDAwIG4gCjAwMDAyNTcyNjAgMDAwMDAgbiAKMDAwMDI1NzQwMiAwMDAwMCBuIAowMDAwMjU3NDgyIDAwMDAwIG4gCjAwMDAyNTc2MjIgMDAwMDAgbiAKMDAwMDI1Nzc2NCAwMDAwMCBuIAowMDAwMjU3ODQ0IDAwMDAwIG4gCjAwMDAyNTc5ODQgMDAwMDAgbiAKMDAwMDI1ODEyNiAwMDAwMCBuIAowMDAwMjU4MjA2IDAwMDAwIG4gCjAwMDAyNTgzNDYgMDAwMDAgbiAKMDAwMDI1ODQ4OCAwMDAwMCBuIAowMDAwMjU4NTY4IDAwMDAwIG4gCjAwMDAyNTg3MDggMDAwMDAgbiAKMDAwMDI1ODg1MCAwMDAwMCBuIAowMDAwMjU4OTMwIDAwMDAwIG4gCjAwMDAyNTkwNzAgMDAwMDAgbiAKMDAwMDI1OTIxMiAwMDAwMCBuIAowMDAwMjU5MjkyIDAwMDAwIG4gCjAwMDAyNTk0MzEgMDAwMDAgbiAKMDAwMDI1OTU3MyAwMDAwMCBuIAowMDAwMjU5NjUzIDAwMDAwIG4gCjAwMDAyNTk3OTMgMDAwMDAgbiAKMDAwMDI1OTkzNSAwMDAwMCBuIAowMDAwMjYwMDE1IDAwMDAwIG4gCjAwMDAyNjAxNTQgMDAwMDAgbiAKMDAwMDI2MDI5NiAwMDAwMCBuIAowMDAwMjczNjAxIDAwMDAwIG4gCjAwMDAyNzM2MjQgMDAwMDAgbiAKMDAwMDI3Mzk0OSAwMDAwMCBuIAowMDAwMjc0MTYzIDAwMDAwIG4gCjAwMDAyNzQ0MjggMDAwMDAgbiAKMDAwMDI4ODg2NiAwMDAwMCBuIAowMDAwMjg4ODQzIDAwMDAwIG4gCjAwMDAyODg5NjYgMDAwMDAgbiAKMDAwMDI4ODk4NiAwMDAwMCBuIAowMDAwMjg5NjI5IDAwMDAwIG4gCjAwMDAyODkxNTEgMDAwMDAgbiAKMDAwMDI5MDIwNyAwMDAwMCBuIAowMDAwMjkwMjI4IDAwMDAwIG4gCjAwMDAyOTA0ODggMDAwMDAgbiAKMDAwMDMwNjc0MSAwMDAwMCBuIAowMDAwMzA2NzE4IDAwMDAwIG4gCjAwMDAzMDY4NDYgMDAwMDAgbiAKMDAwMDMwNjg2NiAwMDAwMCBuIAowMDAwMzA3NTU4IDAwMDAwIG4gCjAwMDAzMDcwMjYgMDAwMDAgbiAKMDAwMDMwODE5MSAwMDAwMCBuIAowMDAwMzA4MjEyIDAwMDAwIG4gCjAwMDAzMDg0NzQgMDAwMDAgbiAKMDAwMDMxNjcyOSAwMDAwMCBuIAowMDAwMzE2NzA3IDAwMDAwIG4gCjAwMDAzMTY4MjcgMDAwMDAgbiAKMDAwMDMxNjg0NyAwMDAwMCBuIAowMDAwMzE3MzM4IDAwMDAwIG4gCjAwMDAzMTcwMTEgMDAwMDAgbiAKMDAwMDMxNzc2MiAwMDAwMCBuIAowMDAwMzE3OTczIDAwMDAwIG4gCjAwMDAzMTgzMTIgMDAwMDAgbiAKdHJhaWxlcgo8PAogIC9Sb290IDQ3NiAwIFIKICAvSW5mbyAxIDAgUgogIC9JRCBbPEVBRjRCREVERkZGQUZERDUzQzAxRjVCNDU5RDM5MzcwPiA8RUFGNEJERURGRkZBRkRENTNDMDFGNUI0NTlEMzkzNzA+XQogIC9TaXplIDQ3OAo+PgpzdGFydHhyZWYKMzE4NDk0CiUlRU9GCg==