Li4gU2VxdWVuY2VzL0NsYXNzZXMvL3N0cmluZyB8MTAwCgpzdHJpbmcKPT09PT09CgpEZXNjcmlwdGlvbgotLS0tLS0tLS0tLQoKYGBzdHJpbmdgYCBpcyBhIHx2YXJpYWRpY3wsIGBiaWRpcmVjdGlvbmFsYF9fLCBgZXh0ZW5zaWJsZWBfXyB8SW50ZWdyYWwgU2VxdWVuY2UgV3JhcHBlcnwgb2YKY2hhcmFjdGVycyB0aGF0IHN1cHBvcnRzIGFtb3J0aXplZCBjb25zdGFudC10aW1lIGluc2VydGlvbiBhbmQgcmVtb3ZhbCBvZiBlbGVtZW50cyBhdCBib3RoIGVuZHMsCmFuZCBsaW5lYXItdGltZSBpbnNlcnRpb24gYW5kIHJlbW92YWwgb2YgZWxlbWVudHMgaW4gdGhlIG1pZGRsZS4gVGhlIHBhcmFtZXRlcnMgdG8gYGBzdHJpbmdgYAphcmUgbXVsdGktY2hhcmFjdGVyIGxpdGVyYWxzLCBnaXZpbmcgYSBzb21ld2hhdCByZWFkYWJsZSBzeW50YXggZm9yIGNvbXBpbGUtdGltZSBzdHJpbmdzLgpgYHN0cmluZ2BgIGNhbiBhbHNvIGJlIGFuIGFyZ3VtZW50IHRvIHRoZSBgYGNfc3RyYGAgbWV0YWZ1bmN0aW9uLCB3aGljaCBnZW5lcmF0ZXMgYQpudWxsLXRlcm1pbmF0ZWQgY2hhcmFjdGVyIGFycmF5IHRoYXQgZmFjaWxpdGF0ZXMgaW50ZXJvcGVyYWJpbGl0eSB3aXRoIHJ1bnRpbWUgc3RyaW5nCnByb2Nlc3Npbmcgcm91dGluZXMuCgpfXyBgQmlkaXJlY3Rpb25hbCBTZXF1ZW5jZWBfCl9fIGBFeHRlbnNpYmxlIFNlcXVlbmNlYF8KCkhlYWRlcgotLS0tLS0KCistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCnwgU2VxdWVuY2UgZm9ybSAgICAgfCBIZWFkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cis9PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCnwgVmFyaWFkaWMgICAgICAgICAgfCBgYCNpbmNsdWRlIDxib29zdC9tcGwvc3RyaW5nLmhwcD5gYCAgICAgICAgICAgICAgICAgICB8CistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCgpNb2RlbCBvZgotLS0tLS0tLQoKKiB8SW50ZWdyYWwgU2VxdWVuY2UgV3JhcHBlcnwKKiB8VmFyaWFkaWMgU2VxdWVuY2V8CiogfEJpZGlyZWN0aW9uYWwgU2VxdWVuY2V8CiogfEV4dGVuc2libGUgU2VxdWVuY2V8CiogfEJhY2sgRXh0ZW5zaWJsZSBTZXF1ZW5jZXwKKiB8RnJvbnQgRXh0ZW5zaWJsZSBTZXF1ZW5jZXwKCkV4cHJlc3Npb24gc2VtYW50aWNzCi0tLS0tLS0tLS0tLS0tLS0tLS0tCgpJbiB0aGUgZm9sbG93aW5nIHRhYmxlLCBgYHNgYCBpcyBhbiBpbnN0YW5jZSBvZiBgYHN0cmluZ2BgLCBgYHBvc2BgIGFuZCBgYGxhc3RgYCBhcmUgaXRlcmF0b3JzIAppbnRvIGBgc2BgLCBgYHJgYCBpcyBhIHxGb3J3YXJkIFNlcXVlbmNlfCBvZiBjaGFyYWN0ZXJzLCBgYG5gYCBhbmQgYGB4YGAgYXJlIHxJbnRlZ3JhbCBDb25zdGFudHxcIHMsCmFuZCB8YzEuLi5jbnwgYXJlIGFyYml0cmFyeSAobXVsdGktKWNoYXJhY3RlcnMuCgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IEV4cHJlc3Npb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTZW1hbnRpY3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kwp8IC4uIHBhcnNlZC1saXRlcmFsOjogICAgICAgICAgICAgICAgICAgfCBgYHN0cmluZ2BgIG9mIGNoYXJhY3RlcnMgfGMxLi4uY258OyBzZWUgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB8VmFyaWFkaWMgU2VxdWVuY2V8LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgIHN0cmluZzx8YzEuLi5jbnw+ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IC4uIHBhcnNlZC1saXRlcmFsOjogICAgICAgICAgICAgICAgICAgfCBJZGVudGljYWwgdG8gYGBzdHJpbmc8YGBcIHxjMS4uLmNufFwgYGA+YGA7ICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWUgfFZhcmlhZGljIFNlcXVlbmNlfC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgIHN0cmluZzx8YzEuLi5jbnw+Ojp0eXBlICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IGBgYmVnaW48cz46OnR5cGVgYCAgICAgICAgICAgICAgICAgICAgfCBBbiBpdGVyYXRvciBwb2ludGluZyB0byB0aGUgYmVnaW5uaW5nIG9mIGBgc2BgOyAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWUgfEJpZGlyZWN0aW9uYWwgU2VxdWVuY2V8LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IGBgZW5kPHM+Ojp0eXBlYGAgICAgICAgICAgICAgICAgICAgICAgfCBBbiBpdGVyYXRvciBwb2ludGluZyB0byB0aGUgZW5kIG9mIGBgc2BgOyAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWUgfEJpZGlyZWN0aW9uYWwgU2VxdWVuY2V8LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IGBgc2l6ZTxzPjo6dHlwZWBgICAgICAgICAgICAgICAgICAgICAgfCBUaGUgc2l6ZSBvZiBgYHNgYDsgc2VlIHxCaWRpcmVjdGlvbmFsIFNlcXVlbmNlfC4gICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IGBgZW1wdHk8cz46OnR5cGVgYCAgICAgICAgICAgICAgICAgICAgfCB8dHJ1ZSBpZiBhbmQgb25seSBpZnwgdGhlIHNlcXVlbmNlIGlzIGVtcHR5OyAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWUgfEJpZGlyZWN0aW9uYWwgU2VxdWVuY2V8LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IGBgZnJvbnQ8cz46OnR5cGVgYCAgICAgICAgICAgICAgICAgICAgfCBUaGUgZmlyc3QgZWxlbWVudCBpbiBgYHNgYDsgc2VlICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB8QmlkaXJlY3Rpb25hbCBTZXF1ZW5jZXwuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IGBgYmFjazxzPjo6dHlwZWBgICAgICAgICAgICAgICAgICAgICAgfCBUaGUgbGFzdCBlbGVtZW50IGluIGBgc2BgOyBzZWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB8QmlkaXJlY3Rpb25hbCBTZXF1ZW5jZXwuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IGBgaW5zZXJ0PHMscG9zLHg+Ojp0eXBlYGAgICAgICAgICAgICAgfCBBIG5ldyBgYHN0cmluZ2BgIG9mIGZvbGxvd2luZyBlbGVtZW50czogICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbYGBiZWdpbjxzPjo6dHlwZWBgLCBgYHBvc2BgKSwgYGB4YGAsICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbYGBwb3NgYCwgYGBlbmQ8cz46OnR5cGVgYCk7IHNlZSB8RXh0ZW5zaWJsZSBTZXF1ZW5jZXwuICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IGBgaW5zZXJ0X3JhbmdlPHMscG9zLHI+Ojp0eXBlYGAgICAgICAgfCBBIG5ldyBgYHN0cmluZ2BgIG9mIGZvbGxvd2luZyBlbGVtZW50czogICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbYGBiZWdpbjxzPjo6dHlwZWBgLCBgYHBvc2BgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbYGBiZWdpbjxyPjo6dHlwZWBgLCBgYGVuZDxyPjo6dHlwZWBgKSAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbYGBwb3NgYCwgYGBlbmQ8cz46OnR5cGVgYCk7IHNlZSB8RXh0ZW5zaWJsZSBTZXF1ZW5jZXwuICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IGBgZXJhc2U8cyxwb3M+Ojp0eXBlYGAgICAgICAgICAgICAgICAgfCBBIG5ldyBgYHN0cmluZ2BgIG9mIGZvbGxvd2luZyBlbGVtZW50czogICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbYGBiZWdpbjxzPjo6dHlwZWBgLCBgYHBvc2BgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbYGBuZXh0PHBvcz46OnR5cGVgYCwgYGBlbmQ8cz46OnR5cGVgYCk7IHNlZSAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB8RXh0ZW5zaWJsZSBTZXF1ZW5jZXwuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IGBgZXJhc2U8cyxwb3MsbGFzdD46OnR5cGVgYCAgICAgICAgICAgfCBBIG5ldyBgYHN0cmluZ2BgIG9mIGZvbGxvd2luZyBlbGVtZW50czogICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbYGBiZWdpbjxzPjo6dHlwZWBgLCBgYHBvc2BgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbYGBsYXN0YGAsIGBgZW5kPHM+Ojp0eXBlYGApOyBzZWUgfEV4dGVuc2libGUgU2VxdWVuY2V8LiAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IGBgY2xlYXI8cz46OnR5cGVgYCAgICAgICAgICAgICAgICAgICAgfCBBbiBlbXB0eSBgYHN0cmluZ2BgOyBzZWUgfEV4dGVuc2libGUgU2VxdWVuY2V8LiAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IGBgcHVzaF9iYWNrPHMseD46OnR5cGVgYCAgICAgICAgICAgICAgfCBBIG5ldyBgYHN0cmluZ2BgIG9mIGZvbGxvd2luZyBlbGVtZW50czogICAgICAgICAgICAgICAgICAgfCAKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgfGJlZ2luL2VuZDxzPnwsIGBgeGBgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VlIHxCYWNrIEV4dGVuc2libGUgU2VxdWVuY2V8LiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKfCBgYHBvcF9iYWNrPHM+Ojp0eXBlYGAgICAgICAgICAgICAgICAgIHwgQSBuZXcgYGBzdHJpbmdgYCBvZiBmb2xsb3dpbmcgZWxlbWVudHM6ICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW2BgYmVnaW48cz46OnR5cGVgYCwgYGBwcmlvcjwgZW5kPHM+Ojp0eXBlID46OnR5cGVgYCk7ICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VlIHxCYWNrIEV4dGVuc2libGUgU2VxdWVuY2V8LiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKfCBgYHB1c2hfZnJvbnQ8cyx4Pjo6dHlwZWBgICAgICAgICAgICAgIHwgQSBuZXcgYGBzdHJpbmdgYCBvZiBmb2xsb3dpbmcgZWxlbWVudHM6ICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgfGJlZ2luL2VuZDxzPnwsIGBgeGBgOyBzZWUgfEZyb250IEV4dGVuc2libGUgU2VxdWVuY2V8LiAgIHwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKfCBgYHBvcF9mcm9udDxzPjo6dHlwZWBgICAgICAgICAgICAgICAgIHwgQSBuZXcgYGBzdHJpbmdgYCBvZiBmb2xsb3dpbmcgZWxlbWVudHM6ICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW2BgbmV4dDwgYmVnaW48cz46OnR5cGUgPjo6dHlwZWBgLCBgYGVuZDxzPjo6dHlwZWBgKTsgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VlIHxGcm9udCBFeHRlbnNpYmxlIFNlcXVlbmNlfC4gICAgICAgICAgICAgICAgICAgICAgICAgIHwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKfCBgYGNfc3RyPHM+Ojp2YWx1ZWBgICAgICAgICAgICAgICAgICAgIHwgQSBudWxsLXRlcm1pbmF0ZWQgYnl0ZSBzdHJpbmcgc3VjaCB0aGF0ICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGBjX3N0cjxzPjo6dmFsdWVbYGBcICpuKlwgYGBdYGAgaXMgZXF1YWwgdG8gdGhlICpuKlwgLXRoIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY2hhcmFjdGVyIGluIGBgc2BgLCBhbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGBjX3N0cjxzPjo6dmFsdWVbc2l6ZTxzPjo6dHlwZTo6dmFsdWVdYGAgaXMgYGAnXDAnYGAuICAgIHwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKCgpFeGFtcGxlCi0tLS0tLS0KCi4uIHBhcnNlZC1saXRlcmFsOjoKICAgCiAgICB0eXBlZGVmIG1wbDo6c3RyaW5nPCdoZWxsJywnbyB3bycsJ3JsZCc+IGhlbGxvOwogICAgdHlwZWRlZiBtcGw6OnB1c2hfYmFjazxoZWxsbywgbXBsOjpjaGFyXzwnISc+ID46OnR5cGUgaGVsbG8yOwoKICAgIEJPT1NUX0FTU0VSVCgwID09IHN0ZDo6c3RyY21wKG1wbDo6Y19zdHI8aGVsbG8yPjo6dmFsdWUsICJoZWxsbyB3b3JsZCEiKSk7CgoKU2VlIGFsc28KLS0tLS0tLS0KCnxTZXF1ZW5jZXN8LCB8VmFyaWFkaWMgU2VxdWVuY2V8LCB8QmlkaXJlY3Rpb25hbCBTZXF1ZW5jZXwsIHxFeHRlbnNpYmxlIFNlcXVlbmNlfCwgfEludGVncmFsIFNlcXVlbmNlIFdyYXBwZXJ8LCB8Y2hhcl98LCB8Y19zdHJ8CgoKLi4gY29weXJpZ2h0OjogQ29weXJpZ2h0IKkgIDIwMDkgRXJpYyBOaWVibGVyCiAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKICAgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCg==