IyBUcmFuc2xhdGlvbiBvZiBSLXNwbGluZXMucG90IHRvIEZyZW5jaAojIENvcHlyaWdodCAoQykgMjAwNSBUaGUgUiBGb3VuZGF0aW9uCiMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIHNwbGluZXMgUiBwYWNrYWdlLgojIFBoaWxpcHBlIEdyb3NqZWFuIDxwaGdyb3NqZWFuQHNjaXZpZXdzLm9yZz4sIDIwMDUuCiMKbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IFIgMi4xMi4wXG4iCiJSZXBvcnQtTXNnaWQtQnVncy1UbzogYnVncy5yLXByb2plY3Qub3JnXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxOC0wMy0yOSAwNzowNlxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAxMy0wMy0xOCAyMjoxMCswMTAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IFBoaWxpcHBlIEdyb3NqZWFuIDxwaGdyb3NqZWFuQHNjaXZpZXdzLm9yZz5cbiIKIkxhbmd1YWdlLVRlYW06IEZyZW5jaCA8Ui1jb3JlQHItcHJvamVjdC5vcmc+XG4iCiJMYW5ndWFnZTogZnJcbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9KG4gPiAxKTtcbiIKIlgtR2VuZXJhdG9yOiBQb2VkaXQgMS41LjVcbiIKCm1zZ2lkICJtdXN0IGhhdmUgYXQgbGVhc3QgJ29yZCcga25vdHMiCm1zZ3N0ciAiaWwgZmF1dCBhdSBtb2lucyAnb3JkJyBub2V1ZHMiCgojLCBmdXp6eQptc2dpZCAibGVuZ3RoIG9mICdkZXJpdnMnIGlzIGxhcmdlciB0aGFuIGxlbmd0aCBvZiAneCciCm1zZ3N0ciAibGEgbG9uZ3VldXIgZGUgJ2Rlcml2cycgZG9pdCBjb3JyZXNwb25kcmUg4CBsYSBsb25ndWV1ciBkZSAneCciCgptc2dpZCAiZW1wdHkgJ2Rlcml2cyciCm1zZ3N0ciAiIgoKbXNnaWQgIidvcmQnIG11c3QgYmUgcG9zaXRpdmUgaW50ZWdlciwgYXQgbW9zdCB0aGUgbnVtYmVyIG9mIGtub3RzIgptc2dzdHIgIidvcmQnIGRvaXQg6nRyZSB1biBlbnRpZXIgcG9zaXRpZiwgYXUgbm9tYnJlIGRlIG5vZXVkcyBhdSBtaWV1eCIKCm1zZ2lkICJuZWVkIGF0IGxlYXN0ICVzICg9JWQpIGtub3RzIgptc2dzdHIgImlsIGZhdXQgYXUgbW9pbnMgJXMgKD0lZCkgbm9ldWRzIgoKbXNnaWQgInRoZSAneCcgZGF0YSBtdXN0IGJlIGluIHRoZSByYW5nZSAlZyB0byAlZyB1bmxlc3MgeW91IHNldCAnJXMnIgptc2dzdHIgIiIKImxlcyBkb25u6WVzICd4JyBkb2l2ZW50IOp0cmUgZGFucyBsYSBwbGFnZSAlZyB0byAlZyDgIG1vaW5zIGRlIHNw6WNpZmllciAnJXMnIgoKbXNnaWQgIiVzIG5lZWRzIHBhY2thZ2UgJ01hdHJpeCcgY29ycmVjdGx5IGluc3RhbGxlZCIKbXNnc3RyICIlcyBhIGJlc29pbiBkdSBwYWNrYWdlICdNYXRyaXgnIGluc3RhbGzpIGNvcnJlY3RlbWVudCIKCm1zZ2lkICJ2YWx1ZXMgb2YgJ3gnIG11c3QgYmUgZGlzdGluY3QiCm1zZ3N0ciAibGVzIHZhbGV1cnMgZGUgJ3gnIGRvaXZlbnQg6nRyZSBkaXN0aW5jdGVzIgoKIywgZnV6enkKbXNnaWQgIm11c3QgaGF2ZSBhdCBsZWFzdCAnb3JkJz0lZCBwb2ludHMiCm1zZ3N0ciAiaWwgZmF1dCBhdSBtb2lucyAnb3JkJyBub2V1ZHMiCgptc2dpZCAiJ2Zvcm11bGEnIG11c3QgYmUgb2YgdGhlIGZvcm0gXCJ5IH4geFwiIgptc2dzdHIgIidmb3JtdWxhJyBkb2l0IOp0cmUgZGUgbGEgZm9ybWUgXCJ5IH4geCBcIiIKCm1zZ2lkICJsZW5ndGhzIG9mICd4JyBhbmQgJ3knIG11c3QgbWF0Y2giCm1zZ3N0ciAibGVzIGxvbmd1ZXVycyBkZSAneCcgZXQgJ3knIGRvaXZlbnQgY29ycmVzcG9uZHJlIgoKbXNnaWQgInZhbHVlcyBvZiAneCcgbXVzdCBiZSBzdHJpY3RseSBpbmNyZWFzaW5nIgptc2dzdHIgImxlcyB2YWxldXJzIGRlICd4JyBkb2l2ZW50IOp0cmUgc3RyaWN0ZW1lbnQgY3JvaXNzYW50ZXMiCgptc2dpZCAiJ29yZCcgbXVzdCBiZSA+PSAyIgptc2dzdHIgIidvcmQnIGRvaXQg6nRyZSA+PSAyIgoKbXNnaWQgInRoZSByYW5nZSBvZiAneCcgdmFsdWVzIGV4Y2VlZHMgb25lIHBlcmlvZCIKbXNnc3RyICJsYSBwbGFnZSBkZSAneCcgZXN0IHBsdXMgbGFyZ2UgcXUndW5lIHDpcmlvZGUiCgptc2dpZCAia25vdCBwb3NpdGlvbnMgbXVzdCBiZSBub24tZGVjcmVhc2luZyIKbXNnc3RyICJsZXMgcG9zaXRpb25zIGRlcyBub2V1ZHMgbmUgcGV1dCDqdHJlIGTpY3JvaXNzYW50ZSIKCm1zZ2lkICJsZW5ndGhzIG9mICd4JyBhbmQgJ3knIG11c3QgYmUgdGhlIHNhbWUiCm1zZ3N0ciAibGVzIGxvbmd1ZXVycyBkZSAneCcgZXQgJ3knIGRvaXZlbnQg6nRyZSBsZXMgbeptZXMiCgptc2dpZCAiJ2Rlcml2JyBtdXN0IGJlIGJldHdlZW4gMCBhbmQgJWQiCm1zZ3N0ciAiJ2Rlcml2JyBkb2l0IOp0cmUgY29tcHJpcyBlbnRyZSAwIGV0ICVkIgoKbXNnaWQgImtub3QgcG9zaXRpb25zIG11c3QgYmUgc3RyaWN0bHkgaW5jcmVhc2luZyIKbXNnc3RyICJsZXMgcG9zaXRpb25zIGRlcyBub2V1ZHMgZG9pdmVudCDqdHJlIHN0cmljdGVtZW50IGNyb2lzc2FudGVzIgoKbXNnaWQgImN1cnJlbnRseSBpbXBsZW1lbnRlZCBvbmx5IGZvciBjdWJpYyBzcGxpbmVzIgptc2dzdHIgIiIKCm1zZ2lkICJzcGxpbmUgbXVzdCBiZSBtb25vdG9uZSIKbXNnc3RyICJsYSBjb3VyYmUgc3BsaW5lIGRvaXQg6nRyZSBtb25vdG9uZSIKCm1zZ2lkICInZGVncmVlJyBtdXN0IGJlIGludGVnZXIgPj0gMSIKbXNnc3RyICInZGVncmVlJyBkb2l0IOp0cmUgdW4gZW50aWVyID49IDEiCgptc2dpZCAiJ2RmJyB3YXMgdG9vIHNtYWxsOyBoYXZlIHVzZWQgJWQiCm1zZ3N0ciAiJ2RmJyDpdGFpdCB0cm9wIHBldGl0IDsgbm91cyBhdm9ucyB1dGlsaXPpICVkIgoKbXNnaWQgInNvbWUgJ3gnIHZhbHVlcyBiZXlvbmQgYm91bmRhcnkga25vdHMgbWF5IGNhdXNlIGlsbC1jb25kaXRpb25lZCBiYXNlcyIKbXNnc3RyICIiCiJxdWVscXVlcyB2YWxldXJzIGRlICd4JyBhdSBkZWzgIGRlcyBsaW1pdGVzIGRlIG5vZXVkcyBwZXV0IGNhdXNlciBkZXMgYmFzZXMgIgoibWFsIGNvbmRpdGlvbm7pZXMiCg==