LS0tIFJlbGV2YW50IHBvcnRpb25zIG9mIFJGQzI2MTYgLS0tCgpPQ1RFVCAgICAgICAgICAgICAgID0gPGFueSA4LWJpdCBzZXF1ZW5jZSBvZiBkYXRhPgpDSEFSICAgICAgICAgICAgICAgID0gPGFueSBVUy1BU0NJSSBjaGFyYWN0ZXIgKG9jdGV0cyAwIC0gMTI3KT4KVVBBTFBIQSAgICAgICAgICAgICA9IDxhbnkgVVMtQVNDSUkgdXBwZXJjYXNlIGxldHRlciAiQSIuLiJaIj4KTE9BTFBIQSAgICAgICAgICAgICA9IDxhbnkgVVMtQVNDSUkgbG93ZXJjYXNlIGxldHRlciAiYSIuLiJ6Ij4KQUxQSEEgICAgICAgICAgICAgICA9IFVQQUxQSEEgfCBMT0FMUEhBCkRJR0lUICAgICAgICAgICAgICAgPSA8YW55IFVTLUFTQ0lJIGRpZ2l0ICIwIi4uIjkiPgpDVEwgICAgICAgICAgICAgICAgID0gPGFueSBVUy1BU0NJSSBjb250cm9sIGNoYXJhY3RlciAob2N0ZXRzIDAgLSAzMSkgYW5kIERFTCAoMTI3KT4KQ1IgICAgICAgICAgICAgICAgICA9IDxVUy1BU0NJSSBDUiwgY2FycmlhZ2UgcmV0dXJuICgxMyk+CkxGICAgICAgICAgICAgICAgICAgPSA8VVMtQVNDSUkgTEYsIGxpbmVmZWVkICgxMCk+ClNQICAgICAgICAgICAgICAgICAgPSA8VVMtQVNDSUkgU1AsIHNwYWNlICgzMik+CkhUICAgICAgICAgICAgICAgICAgPSA8VVMtQVNDSUkgSFQsIGhvcml6b250YWwtdGFiICg5KT4KPCI+ICAgICAgICAgICAgICAgICA9IDxVUy1BU0NJSSBkb3VibGUtcXVvdGUgbWFyayAoMzQpPgpDUkxGICAgICAgICAgICAgICAgID0gQ1IgTEYKTFdTICAgICAgICAgICAgICAgICA9IFtDUkxGXSAxKiggU1AgfCBIVCApClRFWFQgICAgICAgICAgICAgICAgPSA8YW55IE9DVEVUIGV4Y2VwdCBDVExzLCBidXQgaW5jbHVkaW5nIExXUz4KSEVYICAgICAgICAgICAgICAgICA9ICJBIiB8ICJCIiB8ICJDIiB8ICJEIiB8ICJFIiB8ICJGIgogICAgICAgICAgICAgICAgICAgICAgfCAiYSIgfCAiYiIgfCAiYyIgfCAiZCIgfCAiZSIgfCAiZiIgfCBESUdJVApzZXBhcmF0b3JzICAgICAgICAgID0gIigiIHwgIikiIHwgIjwiIHwgIj4iIHwgIkAiCiAgICAgICAgICAgICAgICAgICAgfCAiLCIgfCAiOyIgfCAiOiIgfCAiXCIgfCA8Ij4KICAgICAgICAgICAgICAgICAgICB8ICIvIiB8ICJbIiB8ICJdIiB8ICI/IiB8ICI9IgogICAgICAgICAgICAgICAgICAgIHwgInsiIHwgIn0iIHwgU1AgfCBIVAp0b2tlbiAgICAgICAgICAgICAgID0gMSo8YW55IENIQVIgZXhjZXB0IENUTHMgb3Igc2VwYXJhdG9ycz4KCnF1b3RlZC1wYWlyICAgICAgICAgPSAiXCIgQ0hBUgpjdGV4dCAgICAgICAgICAgICAgID0gPGFueSBURVhUIGV4Y2x1ZGluZyAiKCIgYW5kICIpIj4KcWR0ZXh0ICAgICAgICAgICAgICA9IDxhbnkgVEVYVCBleGNlcHQgPCI+PgpxdW90ZWQtc3RyaW5nICAgICAgID0gKCA8Ij4gKihxZHRleHQgfCBxdW90ZWQtcGFpciApIDwiPiApCmNvbW1lbnQgICAgICAgICAgICAgPSAiKCIgKiggY3RleHQgfCBxdW90ZWQtcGFpciB8IGNvbW1lbnQgKSAiKSIKCgoKCgo0IEhUVFAgTWVzc2FnZQo0LjEgTWVzc2FnZSBUeXBlcwoKSFRUUCBtZXNzYWdlcyBjb25zaXN0IG9mIHJlcXVlc3RzIGZyb20gY2xpZW50IHRvIHNlcnZlciBhbmQgcmVzcG9uc2VzIGZyb20Kc2VydmVyIHRvIGNsaWVudC4gUmVxdWVzdCAoc2VjdGlvbiA1KSBhbmQgUmVzcG9uc2UgKHNlY3Rpb24gNikgbWVzc2FnZXMgdXNlIHRoZQpnZW5lcmljIG1lc3NhZ2UgZm9ybWF0IG9mIFJGQyA4MjIgWzldIGZvciB0cmFuc2ZlcnJpbmcgZW50aXRpZXMgKHRoZSBwYXlsb2FkIG9mCnRoZSBtZXNzYWdlKS4gQm90aCB0eXBlcyBvZiBtZXNzYWdlIGNvbnNpc3Qgb2YgOgoKICAtIGEgc3RhcnQtbGluZQogIC0gemVybyBvciBtb3JlIGhlYWRlciBmaWVsZHMgKGFsc28ga25vd24gYXMgImhlYWRlcnMiKQogIC0gYW4gZW1wdHkgbGluZSAoaS5lLiwgYSBsaW5lIHdpdGggbm90aGluZyBwcmVjZWRpbmcgdGhlIENSTEYpIGluZGljYXRpbmcgdGhlCiAgICBlbmQgb2YgdGhlIGhlYWRlciBmaWVsZHMKICAtIGFuZCBwb3NzaWJseSBhIG1lc3NhZ2UtYm9keS4KCgpIVFRQLW1lc3NhZ2UgICAgICAgID0gUmVxdWVzdCB8IFJlc3BvbnNlCgpzdGFydC1saW5lICAgICAgICAgID0gUmVxdWVzdC1MaW5lIHwgU3RhdHVzLUxpbmUKZ2VuZXJpYy1tZXNzYWdlICAgICA9IHN0YXJ0LWxpbmUKICAgICAgICAgICAgICAgICAgICAgICoobWVzc2FnZS1oZWFkZXIgQ1JMRikKICAgICAgICAgICAgICAgICAgICAgIENSTEYKICAgICAgICAgICAgICAgICAgICAgIFsgbWVzc2FnZS1ib2R5IF0KCkluIHRoZSBpbnRlcmVzdCBvZiByb2J1c3RuZXNzLCBzZXJ2ZXJzIFNIT1VMRCBpZ25vcmUgYW55IGVtcHR5IGxpbmUocykgcmVjZWl2ZWQKd2hlcmUgYSBSZXF1ZXN0LUxpbmUgaXMgZXhwZWN0ZWQuIEluIG90aGVyIHdvcmRzLCBpZiB0aGUgc2VydmVyIGlzIHJlYWRpbmcgdGhlCnByb3RvY29sIHN0cmVhbSBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgbWVzc2FnZSBhbmQgcmVjZWl2ZXMgYSBDUkxGIGZpcnN0LCBpdApzaG91bGQgaWdub3JlIHRoZSBDUkxGLgoKCjQuMiBNZXNzYWdlIGhlYWRlcnMKCi0gRWFjaCBoZWFkZXIgZmllbGQgY29uc2lzdHMgb2YgYSBuYW1lIGZvbGxvd2VkIGJ5IGEgY29sb24gKCI6IikgYW5kIHRoZSBmaWVsZAogIHZhbHVlLgotIEZpZWxkIG5hbWVzIGFyZSBjYXNlLWluc2Vuc2l0aXZlLgotIFRoZSBmaWVsZCB2YWx1ZSBNQVkgYmUgcHJlY2VkZWQgYnkgYW55IGFtb3VudCBvZiBMV1MsIHRob3VnaCBhIHNpbmdsZSBTUCBpcwogIHByZWZlcnJlZC4KLSBIZWFkZXIgZmllbGRzIGNhbiBiZSBleHRlbmRlZCBvdmVyIG11bHRpcGxlIGxpbmVzIGJ5IHByZWNlZGluZyBlYWNoIGV4dHJhCiAgbGluZSB3aXRoIGF0IGxlYXN0IG9uZSBTUCBvciBIVC4KCgptZXNzYWdlLWhlYWRlciAgICAgID0gZmllbGQtbmFtZSAiOiIgWyBmaWVsZC12YWx1ZSBdCmZpZWxkLW5hbWUgICAgICAgICAgPSB0b2tlbgpmaWVsZC12YWx1ZSAgICAgICAgID0gKiggZmllbGQtY29udGVudCB8IExXUyApCmZpZWxkLWNvbnRlbnQgICAgICAgPSA8dGhlIE9DVEVUcyBtYWtpbmcgdXAgdGhlIGZpZWxkLXZhbHVlIGFuZCBjb25zaXN0aW5nIG9mCiAgICAgICAgICAgICAgICAgICAgICAgZWl0aGVyICpURVhUIG9yIGNvbWJpbmF0aW9ucyBvZiB0b2tlbiwgc2VwYXJhdG9ycywgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVkLXN0cmluZz4KCgpUaGUgZmllbGQtY29udGVudCBkb2VzIG5vdCBpbmNsdWRlIGFueSBsZWFkaW5nIG9yIHRyYWlsaW5nIExXUyBvY2N1cnJpbmcgYmVmb3JlCnRoZSBmaXJzdCBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIgb2YgdGhlIGZpZWxkLXZhbHVlIG9yIGFmdGVyIHRoZSBsYXN0Cm5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlciBvZiB0aGUgZmllbGQtdmFsdWUuIFN1Y2ggbGVhZGluZyBvciB0cmFpbGluZyBMV1MgTUFZCmJlIHJlbW92ZWQgd2l0aG91dCBjaGFuZ2luZyB0aGUgc2VtYW50aWNzIG9mIHRoZSBmaWVsZCB2YWx1ZS4gQW55IExXUyB0aGF0Cm9jY3VycyBiZXR3ZWVuIGZpZWxkLWNvbnRlbnQgTUFZIGJlIHJlcGxhY2VkIHdpdGggYSBzaW5nbGUgU1AgYmVmb3JlCmludGVycHJldGluZyB0aGUgZmllbGQgdmFsdWUgb3IgZm9yd2FyZGluZyB0aGUgbWVzc2FnZSBkb3duc3RyZWFtLgoKCj0+IGZvcm1hdCBkZXMgaGVhZGVycyA9IDEqKENIQVIgJiAhY3RsICYgIXNlcCkgIjoiICooT0NURVQgJiAoIWN0bCB8IExXUykpCj0+IGxlcyByZWdleCBkZSBtYXRjaGluZyBkZSBoZWFkZXJzIHMnYXBwbGlxdWVudCBzdXIgZmllbGQtY29udGVudCwgZXQgcGV1dmVudAogICB1dGlsaXNlciBmaWVsZC12YWx1ZSBjb21tZSBlc3BhY2UgZGUgdHJhdmFpbCAobWFpcyBkZSBwculm6XJlbmNlIGFwcuhzIGxlCiAgIHByZW1pZXIgU1ApLgoKKDE5LjMpIFRoZSBsaW5lIHRlcm1pbmF0b3IgZm9yIG1lc3NhZ2UtaGVhZGVyIGZpZWxkcyBpcyB0aGUgc2VxdWVuY2UgQ1JMRi4KSG93ZXZlciwgd2UgcmVjb21tZW5kIHRoYXQgYXBwbGljYXRpb25zLCB3aGVuIHBhcnNpbmcgc3VjaCBoZWFkZXJzLCByZWNvZ25pemUKYSBzaW5nbGUgTEYgYXMgYSBsaW5lIHRlcm1pbmF0b3IgYW5kIGlnbm9yZSB0aGUgbGVhZGluZyBDUi4KCgoKCgptZXNzYWdlLWJvZHkgICAgPSBlbnRpdHktYm9keQogICAgICAgICAgICAgICAgfCA8ZW50aXR5LWJvZHkgZW5jb2RlZCBhcyBwZXIgVHJhbnNmZXItRW5jb2Rpbmc+CgoKCjUgUmVxdWVzdAoKUmVxdWVzdCAgICAgICAgID0gUmVxdWVzdC1MaW5lCiAgICAgICAgICAgICAgICAgICooKCBnZW5lcmFsLWhlYWRlcgogICAgICAgICAgICAgICAgICAgIHwgcmVxdWVzdC1oZWFkZXIKICAgICAgICAgICAgICAgICAgICB8IGVudGl0eS1oZWFkZXIgKSBDUkxGKQogICAgICAgICAgICAgICAgICBDUkxGCiAgICAgICAgICAgICAgICAgIFsgbWVzc2FnZS1ib2R5IF0KCgoKNS4xIFJlcXVlc3QgbGluZQoKVGhlIGVsZW1lbnRzIGFyZSBzZXBhcmF0ZWQgYnkgU1AgY2hhcmFjdGVycy4gTm8gQ1Igb3IgTEYgaXMgYWxsb3dlZCBleGNlcHQgaW4KdGhlIGZpbmFsIENSTEYgc2VxdWVuY2UuCgpSZXF1ZXN0LUxpbmUgPSBNZXRob2QgU1AgUmVxdWVzdC1VUkkgU1AgSFRUUC1WZXJzaW9uIENSTEYKCigxOS4zKSBDbGllbnRzIFNIT1VMRCBiZSB0b2xlcmFudCBpbiBwYXJzaW5nIHRoZSBTdGF0dXMtTGluZSBhbmQgc2VydmVycwp0b2xlcmFudCB3aGVuIHBhcnNpbmcgdGhlIFJlcXVlc3QtTGluZS4gSW4gcGFydGljdWxhciwgdGhleSBTSE9VTEQgYWNjZXB0IGFueQphbW91bnQgb2YgU1Agb3IgSFQgY2hhcmFjdGVycyBiZXR3ZWVuIGZpZWxkcywgZXZlbiB0aG91Z2ggb25seSBhIHNpbmdsZSBTUCBpcwpyZXF1aXJlZC4KCjQuNSBHZW5lcmFsIGhlYWRlcnMKQXBwbHkgdG8gTUVTU0FHRS4KCmdlbmVyYWwtaGVhZGVyICA9IENhY2hlLUNvbnRyb2wKICAgICAgICAgICAgICAgIHwgQ29ubmVjdGlvbgogICAgICAgICAgICAgICAgfCBEYXRlCiAgICAgICAgICAgICAgICB8IFByYWdtYQogICAgICAgICAgICAgICAgfCBUcmFpbGVyCiAgICAgICAgICAgICAgICB8IFRyYW5zZmVyLUVuY29kaW5nCiAgICAgICAgICAgICAgICB8IFVwZ3JhZGUKICAgICAgICAgICAgICAgIHwgVmlhCiAgICAgICAgICAgICAgICB8IFdhcm5pbmcKCkdlbmVyYWwtaGVhZGVyIGZpZWxkIG5hbWVzIGNhbiBiZSBleHRlbmRlZCByZWxpYWJseSBvbmx5IGluIGNvbWJpbmF0aW9uIHdpdGggYQpjaGFuZ2UgaW4gdGhlIHByb3RvY29sIHZlcnNpb24uIEhvd2V2ZXIsIG5ldyBvciBleHBlcmltZW50YWwgaGVhZGVyIGZpZWxkcyBtYXkKYmUgZ2l2ZW4gdGhlIHNlbWFudGljcyBvZiBnZW5lcmFsIGhlYWRlciBmaWVsZHMgaWYgYWxsIHBhcnRpZXMgaW4gdGhlCmNvbW11bmljYXRpb24gcmVjb2duaXplIHRoZW0gdG8gYmUgZ2VuZXJhbC1oZWFkZXIgZmllbGRzLiBVbnJlY29nbml6ZWQgaGVhZGVyCmZpZWxkcyBhcmUgdHJlYXRlZCBhcyBlbnRpdHktaGVhZGVyIGZpZWxkcy4KCgoKCjUuMyBSZXF1ZXN0IEhlYWRlciBGaWVsZHMKClRoZSByZXF1ZXN0LWhlYWRlciBmaWVsZHMgYWxsb3cgdGhlIGNsaWVudCB0byBwYXNzIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQKdGhlIHJlcXVlc3QsIGFuZCBhYm91dCB0aGUgY2xpZW50IGl0c2VsZiwgdG8gdGhlIHNlcnZlci4gVGhlc2UgZmllbGRzIGFjdCBhcwpyZXF1ZXN0IG1vZGlmaWVycywgd2l0aCBzZW1hbnRpY3MgZXF1aXZhbGVudCB0byB0aGUgcGFyYW1ldGVycyBvbiBhIHByb2dyYW1taW5nCmxhbmd1YWdlIG1ldGhvZCBpbnZvY2F0aW9uLgoKcmVxdWVzdC1oZWFkZXIgID0gQWNjZXB0CiAgICAgICAgICAgICAgICB8IEFjY2VwdC1DaGFyc2V0CiAgICAgICAgICAgICAgICB8IEFjY2VwdC1FbmNvZGluZwogICAgICAgICAgICAgICAgfCBBY2NlcHQtTGFuZ3VhZ2UKICAgICAgICAgICAgICAgIHwgQXV0aG9yaXphdGlvbgogICAgICAgICAgICAgICAgfCBFeHBlY3QKICAgICAgICAgICAgICAgIHwgRnJvbQogICAgICAgICAgICAgICAgfCBIb3N0CiAgICAgICAgICAgICAgICB8IElmLU1hdGNoCiAgICAgICAgICAgICAgICB8IElmLU1vZGlmaWVkLVNpbmNlCiAgICAgICAgICAgICAgICB8IElmLU5vbmUtTWF0Y2gKICAgICAgICAgICAgICAgIHwgSWYtUmFuZ2UKICAgICAgICAgICAgICAgIHwgSWYtVW5tb2RpZmllZC1TaW5jZQogICAgICAgICAgICAgICAgfCBNYXgtRm9yd2FyZHMKICAgICAgICAgICAgICAgIHwgUHJveHktQXV0aG9yaXphdGlvbgogICAgICAgICAgICAgICAgfCBSYW5nZQogICAgICAgICAgICAgICAgfCBSZWZlcmVyCiAgICAgICAgICAgICAgICB8IFRFCiAgICAgICAgICAgICAgICB8IFVzZXItQWdlbnQKClJlcXVlc3QtaGVhZGVyIGZpZWxkIG5hbWVzIGNhbiBiZSBleHRlbmRlZCByZWxpYWJseSBvbmx5IGluIGNvbWJpbmF0aW9uIHdpdGggYQpjaGFuZ2UgaW4gdGhlIHByb3RvY29sIHZlcnNpb24uIEhvd2V2ZXIsIG5ldyBvciBleHBlcmltZW50YWwgaGVhZGVyIGZpZWxkcyBNQVkKYmUgZ2l2ZW4gdGhlIHNlbWFudGljcyBvZiByZXF1ZXN0LWhlYWRlciBmaWVsZHMgaWYgYWxsIHBhcnRpZXMgaW4gdGhlCmNvbW11bmljYXRpb24gcmVjb2duaXplIHRoZW0gdG8gYmUgcmVxdWVzdC1oZWFkZXIgZmllbGRzLiBVbnJlY29nbml6ZWQgaGVhZGVyCmZpZWxkcyBhcmUgdHJlYXRlZCBhcyBlbnRpdHktaGVhZGVyIGZpZWxkcy4KCgoKNy4xIEVudGl0eSBoZWFkZXIgZmllbGRzCgpFbnRpdHktaGVhZGVyIGZpZWxkcyBkZWZpbmUgbWV0YWluZm9ybWF0aW9uIGFib3V0IHRoZSBlbnRpdHktYm9keSBvciwgaWYgbm8KYm9keSBpcyBwcmVzZW50LCBhYm91dCB0aGUgcmVzb3VyY2UgaWRlbnRpZmllZCBieSB0aGUgcmVxdWVzdC4gU29tZSBvZiB0aGlzCm1ldGFpbmZvcm1hdGlvbiBpcyBPUFRJT05BTDsgc29tZSBtaWdodCBiZSBSRVFVSVJFRCBieSBwb3J0aW9ucyBvZiB0aGlzCnNwZWNpZmljYXRpb24uCgplbnRpdHktaGVhZGVyICAgPSBBbGxvdwogICAgICAgICAgICAgICAgfCBDb250ZW50LUVuY29kaW5nCiAgICAgICAgICAgICAgICB8IENvbnRlbnQtTGFuZ3VhZ2UKICAgICAgICAgICAgICAgIHwgQ29udGVudC1MZW5ndGgKICAgICAgICAgICAgICAgIHwgQ29udGVudC1Mb2NhdGlvbgogICAgICAgICAgICAgICAgfCBDb250ZW50LU1ENQogICAgICAgICAgICAgICAgfCBDb250ZW50LVJhbmdlCiAgICAgICAgICAgICAgICB8IENvbnRlbnQtVHlwZQogICAgICAgICAgICAgICAgfCBFeHBpcmVzCiAgICAgICAgICAgICAgICB8IExhc3QtTW9kaWZpZWQKICAgICAgICAgICAgICAgIHwgZXh0ZW5zaW9uLWhlYWRlcgpleHRlbnNpb24taGVhZGVyID0gbWVzc2FnZS1oZWFkZXIKClRoZSBleHRlbnNpb24taGVhZGVyIG1lY2hhbmlzbSBhbGxvd3MgYWRkaXRpb25hbCBlbnRpdHktaGVhZGVyIGZpZWxkcyB0byBiZQpkZWZpbmVkIHdpdGhvdXQgY2hhbmdpbmcgdGhlIHByb3RvY29sLCBidXQgdGhlc2UgZmllbGRzIGNhbm5vdCBiZSBhc3N1bWVkIHRvIGJlCnJlY29nbml6YWJsZSBieSB0aGUgcmVjaXBpZW50LiBVbnJlY29nbml6ZWQgaGVhZGVyIGZpZWxkcyBTSE9VTEQgYmUgaWdub3JlZCBieQp0aGUgcmVjaXBpZW50IGFuZCBNVVNUIGJlIGZvcndhcmRlZCBieSB0cmFuc3BhcmVudCBwcm94aWVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlIGZvcm1hdCBvZiBSZXF1ZXN0LVVSSSBpcyBkZWZpbmVkIGJ5IFJGQzM5ODYgOgoKICAgVVJJICAgICAgICAgICA9IHNjaGVtZSAiOiIgaGllci1wYXJ0IFsgIj8iIHF1ZXJ5IF0gWyAiIyIgZnJhZ21lbnQgXQoKICAgaGllci1wYXJ0ICAgICA9ICIvLyIgYXV0aG9yaXR5IHBhdGgtYWJlbXB0eQogICAgICAgICAgICAgICAgIC8gcGF0aC1hYnNvbHV0ZQogICAgICAgICAgICAgICAgIC8gcGF0aC1yb290bGVzcwogICAgICAgICAgICAgICAgIC8gcGF0aC1lbXB0eQoKICAgVVJJLXJlZmVyZW5jZSA9IFVSSSAvIHJlbGF0aXZlLXJlZgoKICAgYWJzb2x1dGUtVVJJICA9IHNjaGVtZSAiOiIgaGllci1wYXJ0IFsgIj8iIHF1ZXJ5IF0KCiAgIHJlbGF0aXZlLXJlZiAgPSByZWxhdGl2ZS1wYXJ0IFsgIj8iIHF1ZXJ5IF0gWyAiIyIgZnJhZ21lbnQgXQoKICAgcmVsYXRpdmUtcGFydCA9ICIvLyIgYXV0aG9yaXR5IHBhdGgtYWJlbXB0eQogICAgICAgICAgICAgICAgIC8gcGF0aC1hYnNvbHV0ZQogICAgICAgICAgICAgICAgIC8gcGF0aC1ub3NjaGVtZQogICAgICAgICAgICAgICAgIC8gcGF0aC1lbXB0eQoKICAgc2NoZW1lICAgICAgICA9IEFMUEhBICooIEFMUEhBIC8gRElHSVQgLyAiKyIgLyAiLSIgLyAiLiIgKQoKICAgYXV0aG9yaXR5ICAgICA9IFsgdXNlcmluZm8gIkAiIF0gaG9zdCBbICI6IiBwb3J0IF0KICAgdXNlcmluZm8gICAgICA9ICooIHVucmVzZXJ2ZWQgLyBwY3QtZW5jb2RlZCAvIHN1Yi1kZWxpbXMgLyAiOiIgKQogICBob3N0ICAgICAgICAgID0gSVAtbGl0ZXJhbCAvIElQdjRhZGRyZXNzIC8gcmVnLW5hbWUKICAgcG9ydCAgICAgICAgICA9ICpESUdJVAoKICAgSVAtbGl0ZXJhbCAgICA9ICJbIiAoIElQdjZhZGRyZXNzIC8gSVB2RnV0dXJlICApICJdIgoKICAgSVB2RnV0dXJlICAgICA9ICJ2IiAxKkhFWERJRyAiLiIgMSooIHVucmVzZXJ2ZWQgLyBzdWItZGVsaW1zIC8gIjoiICkKCiAgIElQdjZhZGRyZXNzICAgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICA2KCBoMTYgIjoiICkgbHMzMgogICAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgICAgICAgICAgICI6OiIgNSggaDE2ICI6IiApIGxzMzIKICAgICAgICAgICAgICAgICAvIFsgICAgICAgICAgICAgICBoMTYgXSAiOjoiIDQoIGgxNiAiOiIgKSBsczMyCiAgICAgICAgICAgICAgICAgLyBbICoxKCBoMTYgIjoiICkgaDE2IF0gIjo6IiAzKCBoMTYgIjoiICkgbHMzMgogICAgICAgICAgICAgICAgIC8gWyAqMiggaDE2ICI6IiApIGgxNiBdICI6OiIgMiggaDE2ICI6IiApIGxzMzIKICAgICAgICAgICAgICAgICAvIFsgKjMoIGgxNiAiOiIgKSBoMTYgXSAiOjoiICAgIGgxNiAiOiIgICBsczMyCiAgICAgICAgICAgICAgICAgLyBbICo0KCBoMTYgIjoiICkgaDE2IF0gIjo6IiAgICAgICAgICAgICAgbHMzMgogICAgICAgICAgICAgICAgIC8gWyAqNSggaDE2ICI6IiApIGgxNiBdICI6OiIgICAgICAgICAgICAgIGgxNgogICAgICAgICAgICAgICAgIC8gWyAqNiggaDE2ICI6IiApIGgxNiBdICI6OiIKCiAgIGgxNiAgICAgICAgICAgPSAxKjRIRVhESUcKICAgbHMzMiAgICAgICAgICA9ICggaDE2ICI6IiBoMTYgKSAvIElQdjRhZGRyZXNzCiAgIElQdjRhZGRyZXNzICAgPSBkZWMtb2N0ZXQgIi4iIGRlYy1vY3RldCAiLiIgZGVjLW9jdGV0ICIuIiBkZWMtb2N0ZXQKICAgZGVjLW9jdGV0ICAgICA9IERJR0lUICAgICAgICAgICAgICAgICA7IDAtOQogICAgICAgICAgICAgICAgIC8gJXgzMS0zOSBESUdJVCAgICAgICAgIDsgMTAtOTkKICAgICAgICAgICAgICAgICAvICIxIiAyRElHSVQgICAgICAgICAgICA7IDEwMC0xOTkKICAgICAgICAgICAgICAgICAvICIyIiAleDMwLTM0IERJR0lUICAgICA7IDIwMC0yNDkKICAgICAgICAgICAgICAgICAvICIyNSIgJXgzMC0zNSAgICAgICAgICA7IDI1MC0yNTUKCiAgIHJlZy1uYW1lICAgICAgPSAqKCB1bnJlc2VydmVkIC8gcGN0LWVuY29kZWQgLyBzdWItZGVsaW1zICkKCiAgIHBhdGggICAgICAgICAgPSBwYXRoLWFiZW1wdHkgICAgOyBiZWdpbnMgd2l0aCAiLyIgb3IgaXMgZW1wdHkKICAgICAgICAgICAgICAgICAvIHBhdGgtYWJzb2x1dGUgICA7IGJlZ2lucyB3aXRoICIvIiBidXQgbm90ICIvLyIKICAgICAgICAgICAgICAgICAvIHBhdGgtbm9zY2hlbWUgICA7IGJlZ2lucyB3aXRoIGEgbm9uLWNvbG9uIHNlZ21lbnQKICAgICAgICAgICAgICAgICAvIHBhdGgtcm9vdGxlc3MgICA7IGJlZ2lucyB3aXRoIGEgc2VnbWVudAogICAgICAgICAgICAgICAgIC8gcGF0aC1lbXB0eSAgICAgIDsgemVybyBjaGFyYWN0ZXJzCgogICBwYXRoLWFiZW1wdHkgID0gKiggIi8iIHNlZ21lbnQgKQogICBwYXRoLWFic29sdXRlID0gIi8iIFsgc2VnbWVudC1ueiAqKCAiLyIgc2VnbWVudCApIF0KICAgcGF0aC1ub3NjaGVtZSA9IHNlZ21lbnQtbnotbmMgKiggIi8iIHNlZ21lbnQgKQogICBwYXRoLXJvb3RsZXNzID0gc2VnbWVudC1ueiAqKCAiLyIgc2VnbWVudCApCiAgIHBhdGgtZW1wdHkgICAgPSAwPHBjaGFyPgoKICAgc2VnbWVudCAgICAgICA9ICpwY2hhcgogICBzZWdtZW50LW56ICAgID0gMSpwY2hhcgogICBzZWdtZW50LW56LW5jID0gMSooIHVucmVzZXJ2ZWQgLyBwY3QtZW5jb2RlZCAvIHN1Yi1kZWxpbXMgLyAiQCIgKQogICAgICAgICAgICAgICAgIDsgbm9uLXplcm8tbGVuZ3RoIHNlZ21lbnQgd2l0aG91dCBhbnkgY29sb24gIjoiCgogICBwY2hhciAgICAgICAgID0gdW5yZXNlcnZlZCAvIHBjdC1lbmNvZGVkIC8gc3ViLWRlbGltcyAvICI6IiAvICJAIgoKICAgcXVlcnkgICAgICAgICA9ICooIHBjaGFyIC8gIi8iIC8gIj8iICkKCiAgIGZyYWdtZW50ICAgICAgPSAqKCBwY2hhciAvICIvIiAvICI/IiApCgogICBwY3QtZW5jb2RlZCAgID0gIiUiIEhFWERJRyBIRVhESUcKCiAgIHVucmVzZXJ2ZWQgICAgPSBBTFBIQSAvIERJR0lUIC8gIi0iIC8gIi4iIC8gIl8iIC8gIn4iCiAgIHJlc2VydmVkICAgICAgPSBnZW4tZGVsaW1zIC8gc3ViLWRlbGltcwogICBnZW4tZGVsaW1zICAgID0gIjoiIC8gIi8iIC8gIj8iIC8gIiMiIC8gIlsiIC8gIl0iIC8gIkAiCiAgIHN1Yi1kZWxpbXMgICAgPSAiISIgLyAiJCIgLyAiJiIgLyAiJyIgLyAiKCIgLyAiKSIKICAgICAgICAgICAgICAgICAvICIqIiAvICIrIiAvICIsIiAvICI7IiAvICI9IgoKPT4gc28gdGhlIGxpc3Qgb2YgYWxsb3dlZCBjaGFyYWN0ZXJzIGluIGEgVVJJIGlzIDoKCiAgIHVyaS1jaGFyICAgICAgPSB1bnJlc2VydmVkIC8gZ2VuLWRlbGltcyAvIHN1Yi1kZWxpbXMgLyAiJSIKICAgICAgICAgICAgICAgICA9IEFMUEhBIC8gRElHSVQgLyAiLSIgLyAiLiIgLyAiXyIgLyAifiIKICAgICAgICAgICAgICAgICAvICI6IiAvICIvIiAvICI/IiAvICIjIiAvICJbIiAvICJdIiAvICJAIgogICAgICAgICAgICAgICAgIC8gIiEiIC8gIiQiIC8gIiYiIC8gIiciIC8gIigiIC8gIikiIC8KICAgICAgICAgICAgICAgICAvICIqIiAvICIrIiAvICIsIiAvICI7IiAvICI9IiAvICIlIgoKTm90ZSB0aGF0IG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGFyZSBmb3JiaWRkZW4gISBTcGFjZXMgYW5kIENUTCBhcmUgZm9yYmlkZGVuLgpVbmZvcnR1bmF0ZWx5LCBzb21lIHByb2R1Y3RzIHN1Y2ggYXMgQXBhY2hlIGFsbG93IHN1Y2ggY2hhcmFjdGVycyA6LS8KCi0tLS0gVGhlIGNvcnJlY3Qgd2F5IHRvIGRvIGl0IC0tLS0KCi0gb25lIGh0dHBfc2Vzc2lvbgogIEl0IGlzIGJhc2ljYWxseSBhbnkgdHJhbnNwb3J0IHNlc3Npb24gb24gd2hpY2ggd2UgdGFsayBIVFRQLiBJdCBtYXkgYmUgVENQLAogIFNTTCBvdmVyIFRDUCwgZXRjLi4uIEl0IGtub3dzIGEgd2F5IHRvIHRhbGsgdG8gdGhlIGNsaWVudCwgZWl0aGVyIHRoZSBzb2NrZXQKICBmaWxlIGRlc2NyaXB0b3Igb3IgYSBkaXJlY3QgYWNjZXNzIHRvIHRoZSBjbGllbnQtc2lkZSBidWZmZXIuIEl0IHNob3VsZCBob2xkCiAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxhc3QgYWNjZXNzZWQgc2VydmVyIHNvIHRoYXQgd2UgY2FuIGd1YXJhbnRlZSB0aGF0IHRoZQogIHNhbWUgc2VydmVyIGNhbiBiZSB1c2VkIGR1cmluZyBhIHdob2xlIHNlc3Npb24gaWYgbmVlZGVkLiBBIGZpcnN0IHZlcnNpb24KICB3aXRob3V0IG9wdGltYWwgc3VwcG9ydCBmb3IgSFRUUCBwaXBlbGluaW5nIHdpbGwgaGF2ZSB0aGUgY2xpZW50IGJ1ZmZlcnMgdGllZAogIHRvIHRoZSBodHRwX3Nlc3Npb24uIEl0IG1heSBiZSBwb3NzaWJsZSB0aGF0IGl0IGlzIG5vdCBzdWZmaWNpZW50IGZvciBmdWxsCiAgcGlwZWxpbmluZywgYnV0IHRoaXMgd2lsbCBuZWVkIGZ1cnRoZXIgc3R1ZHkuIFRoZSBsaW5rIGZyb20gdGhlIGJ1ZmZlcnMgdG8KICB0aGUgYmFja2VuZCBzaG91bGQgYmUgbWFuYWdlZCBieSB0aGUgaHR0cCB0cmFuc2FjdGlvbiAoaHR0cF90eG4pLCBwcm92aWRlZAogIHRoYXQgdGhleSBhcmUgc2VyaWFsaXplZC4gRWFjaCBodHRwX3Nlc3Npb24sIGhhcyAwIHRvIE4gaHR0cF90eG4uIEVhY2gKICBodHRwX3R4biBiZWxvbmdzIHRvIG9uZSBhbmQgb25seSBvbmUgaHR0cF9zZXNzaW9uLgoKLSBlYWNoIGh0dHBfdHhuIGhhcyAxIHJlcXVlc3QgbWVzc2FnZSAoaHR0cF9yZXEpLCBhbmQgMCBvciAxIHJlc3BvbnNlIG1lc3NhZ2UKICAoaHR0cF9ydHIpLiBFYWNoIG9mIHRoZW0gaGFzIDEgYW5kIG9ubHkgb25lIGh0dHBfdHhuLiBBbiBodHRwX3R4biBob2xkcwogIGluZm9ybWF0aW9ucyBzdWNoIGFzIHRoZSBIVFRQIG1ldGhvZCwgdGhlIFVSSSwgdGhlIEhUVFAgdmVyc2lvbiwgdGhlCiAgdHJhbnNmZXItZW5jb2RpbmcsIHRoZSBIVFRQIHN0YXR1cywgdGhlIGF1dGhvcml6YXRpb24sIHRoZSByZXEgYW5kIHJ0cgogIGNvbnRlbnQtbGVuZ3RoLCB0aGUgdGltZXJzLCBsb2dzLCBldGMuLi4gVGhlIGJhY2tlbmQgYW5kIHNlcnZlciB3aGljaCBwcm9jZXNzCiAgdGhlIHJlcXVlc3QgYXJlIGFsc28ga25vd24gZnJvbSB0aGUgaHR0cF90eG4uCgotIGJvdGggcmVxdWVzdCBhbmQgcmVzcG9uc2UgbWVzc2FnZXMgaG9sZCBoZWFkZXIgYW5kIHBhcnNpbmcgaW5mb3JtYXRpb25zLCBzdWNoCiAgYXMgdGhlIHBhcnNpbmcgc3RhdGUsIHN0YXJ0IG9mIGhlYWRlcnMsIHN0YXJ0IG9mIG1lc3NhZ2UsIGNhcHR1cmVzLCBldGMuLi4KCg==