IyBGcmVuY2ggdHJhbnNsYXRpb25zIGZvciBjcHVmcmVxdXRpbHMgcGFja2FnZQojIENvcHlyaWdodCAoQykgMjAwNCBUSEUgUEFDS0FHRSdTIENPUFlSSUdIVCBIT0xERVIKIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgY3B1ZnJlcXV0aWxzIHBhY2thZ2UuCiMgRHVjcm90IEJydW5vIDxkdWNyb3RAcG91cGlub3Uub3JnPiwgMjAwNC4KIwojLCBmdXp6eQptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogY3B1ZnJlcXV0aWxzIDAuMS1wcmUyXG4iCiJSZXBvcnQtTXNnaWQtQnVncy1UbzogXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMS0wMy0wOSAxNDo1MyswMTAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDA0LTExLTE3IDE1OjUzKzEwMDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogQnJ1bm8gRHVjcm90IDxkdWNyb3RAcG91cGlub3Uub3JnPlxuIgoiTGFuZ3VhZ2UtVGVhbTogTk9ORVxuIgoiTGFuZ3VhZ2U6IFxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCgojOiB1dGlscy9pbmZvLmM6MzYKIywgYy1mb3JtYXQKbXNnaWQgIkNvdWxkbid0IGNvdW50IHRoZSBudW1iZXIgb2YgQ1BVcyAoJXM6ICVzKSwgYXNzdW1pbmcgMVxuIgptc2dzdHIgIkTpdGVybWluYXRpb24gZHUgbm9tYnJlIGRlIENQVXMgKCVzIDogJXMpIGltcG9zc2libGUuICBBc3N1bWUgMVxuIgoKIzogdXRpbHMvaW5mby5jOjY4CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgICAgICAgICAgbWluaW11bSBDUFUgZnJlcXVlbmN5ICAtICBtYXhpbXVtIENQVSBmcmVxdWVuY3kgIC0gIGdvdmVybm9yXG4iCm1zZ3N0ciAiIgoiICAgICAgICAgRnLpcXVlbmNlIENQVSBtaW5pbWFsZSAtIEZy6XF1ZW5jZSBDUFUgbWF4aW1hbGUgIC0gculndWxhdGV1clxuIgoKIzogdXRpbHMvaW5mby5jOjE1NgojLCBjLWZvcm1hdAptc2dpZCAiY291bGRuJ3QgYW5hbHl6ZSBDUFUgJWQgYXMgaXQgZG9lc24ndCBzZWVtIHRvIGJlIHByZXNlbnRcbiIKbXNnc3RyICJhbmFseXNlIGR1IENQVSAlZCBpbXBvc3NpYmxlIHB1aXNxdSdpbCBuZSBzZW1ibGUgcGFzIOp0cmUgcHLpc2VudFxuIgoKIzogdXRpbHMvaW5mby5jOjE2MAojLCBjLWZvcm1hdAptc2dpZCAiYW5hbHl6aW5nIENQVSAlZDpcbiIKbXNnc3RyICJhbmFseXNlIGR1IENQVSAlZCA6XG4iCgojOiB1dGlscy9pbmZvLmM6MTY3CiMsIGMtZm9ybWF0Cm1zZ2lkICIgIG5vIG9yIHVua25vd24gY3B1ZnJlcSBkcml2ZXIgaXMgYWN0aXZlIG9uIHRoaXMgQ1BVXG4iCm1zZ3N0ciAiICBwYXMgZGUgcGlsb3RlcyBjcHVmcmVxIHJlY29ubnUgcG91ciBjZSBDUFVcbiIKCiM6IHV0aWxzL2luZm8uYzoxNjkKIywgYy1mb3JtYXQKbXNnaWQgIiAgZHJpdmVyOiAlc1xuIgptc2dzdHIgIiAgcGlsb3RlIDogJXNcbiIKCiM6IHV0aWxzL2luZm8uYzoxNzUKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIgIENQVXMgd2hpY2ggcnVuIGF0IHRoZSBzYW1lIGhhcmR3YXJlIGZyZXF1ZW5jeTogIgptc2dzdHIgIiAgQ1BVcyBxdWkgZG9pdmVudCBjaGFuZ2VyIGRlIGZy6XF1ZW5jZXMgZW4gbeptZSB0ZW1wcyA6ICIKCiM6IHV0aWxzL2luZm8uYzoxODYKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIgIENQVXMgd2hpY2ggbmVlZCB0byBoYXZlIHRoZWlyIGZyZXF1ZW5jeSBjb29yZGluYXRlZCBieSBzb2Z0d2FyZTogIgptc2dzdHIgIiAgQ1BVcyBxdWkgZG9pdmVudCBjaGFuZ2VyIGRlIGZy6XF1ZW5jZXMgZW4gbeptZSB0ZW1wcyA6ICIKCiM6IHV0aWxzL2luZm8uYzoxOTcKIywgYy1mb3JtYXQKbXNnaWQgIiAgbWF4aW11bSB0cmFuc2l0aW9uIGxhdGVuY3k6ICIKbXNnc3RyICIiCgojOiB1dGlscy9pbmZvLmM6MjAzCiMsIGMtZm9ybWF0Cm1zZ2lkICIgIGhhcmR3YXJlIGxpbWl0czogIgptc2dzdHIgIiAgbGltaXRhdGlvbiBtYXTpcmllbGxlIDogIgoKIzogdXRpbHMvaW5mby5jOjIxMgojLCBjLWZvcm1hdAptc2dpZCAiICBhdmFpbGFibGUgZnJlcXVlbmN5IHN0ZXBzOiAiCm1zZ3N0ciAiICBwbGFnZSBkZSBmculxdWVuY2UgOiAiCgojOiB1dGlscy9pbmZvLmM6MjI1CiMsIGMtZm9ybWF0Cm1zZ2lkICIgIGF2YWlsYWJsZSBjcHVmcmVxIGdvdmVybm9yczogIgptc2dzdHIgIiAgculndWxhdGV1cnMgZGlzcG9uaWJsZXMgOiAiCgojOiB1dGlscy9pbmZvLmM6MjM2CiMsIGMtZm9ybWF0Cm1zZ2lkICIgIGN1cnJlbnQgcG9saWN5OiBmcmVxdWVuY3kgc2hvdWxkIGJlIHdpdGhpbiAiCm1zZ3N0ciAiICB0YWN0aXF1ZSBhY3R1ZWxsZSA6IGxhIGZy6XF1ZW5jZSBkb2l0IOp0cmUgY29tcHJpc2UgZW50cmUgIgoKIzogdXRpbHMvaW5mby5jOjIzOAojLCBjLWZvcm1hdAptc2dpZCAiIGFuZCAiCm1zZ3N0ciAiIGV0ICIKCiM6IHV0aWxzL2luZm8uYzoyNDIKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlRoZSBnb3Zlcm5vciBcIiVzXCIgbWF5IGRlY2lkZSB3aGljaCBzcGVlZCB0byB1c2VcbiIKIiAgICAgICAgICAgICAgICAgIHdpdGhpbiB0aGlzIHJhbmdlLlxuIgptc2dzdHIgIiIKIkxlIHLpZ3VsYXRldXIgXCIlc1wiIGVzdCBsaWJyZSBkZSBjaG9pc2lyIGxhIHZpdGVzc2VcbiIKIiAgICAgICAgICAgICAgICAgIGRhbnMgY2V0dGUgcGxhZ2UgZGUgZnLpcXVlbmNlcy5cbiIKCiM6IHV0aWxzL2luZm8uYzoyNDkKIywgYy1mb3JtYXQKbXNnaWQgIiAgY3VycmVudCBDUFUgZnJlcXVlbmN5IGlzICIKbXNnc3RyICIgIGxhIGZy6XF1ZW5jZSBhY3R1ZWxsZSBkZSBjZSBDUFUgZXN0ICIKCiM6IHV0aWxzL2luZm8uYzoyNTIKIywgYy1mb3JtYXQKbXNnaWQgIiAoYXNzZXJ0ZWQgYnkgY2FsbCB0byBoYXJkd2FyZSkiCm1zZ3N0ciAiICh26XJpZmnpIHBhciB1biBhcHBlbCBkaXJlY3QgZHUgbWF06XJpZWwpIgoKIzogdXRpbHMvaW5mby5jOjI2MAojLCBjLWZvcm1hdAptc2dpZCAiICBjcHVmcmVxIHN0YXRzOiAiCm1zZ3N0ciAiICBkZXMgc3RhdGlzdGlxdWUgY29uY2VybmFudCBjcHVmcmVxOiIKCiM6IHV0aWxzL2luZm8uYzo0NDAgdXRpbHMvc2V0LmM6MzEKIywgYy1mb3JtYXQKbXNnaWQgIlJlcG9ydCBlcnJvcnMgYW5kIGJ1Z3MgdG8gJXMsIHBsZWFzZS5cbiIKbXNnc3RyICJWZXVpbGxleiByYXBwb3J0ZXogbGVzIGVycmV1cnMgZXQgbGVzIGJvZ3VlcyDgICVzLCBzJ2lsIHZvdXMgcGxhaXQuXG4iCgojOiB1dGlscy9pbmZvLmM6NDQ0CiMsIGMtZm9ybWF0Cm1zZ2lkICJVc2FnZTogY3B1ZnJlcS1pbmZvIFtvcHRpb25zXVxuIgptc2dzdHIgIlVzYWdlIDogY3B1ZnJlcS1pbmZvIFtvcHRpb25zXVxuIgoKIzogdXRpbHMvaW5mby5jOjQ0NSB1dGlscy9zZXQuYzozNwojLCBjLWZvcm1hdAptc2dpZCAiT3B0aW9uczpcbiIKbXNnc3RyICJPcHRpb25zIDpcbiIKCiM6IHV0aWxzL2luZm8uYzo0NDYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLWMgQ1BVLCAtLWNwdSBDUFUgICAgQ1BVIG51bWJlciB3aGljaCBpbmZvcm1hdGlvbiBzaGFsbCBiZSBkZXRlcm1pbmVkICIKImFib3V0XG4iCm1zZ3N0ciAiIgoiICAtYyBDUFUsIC0tY3B1IENQVSAgICBOdW3pcm8gZHUgQ1BVIHBvdXIgbGVxdWVsIGwnaW5mb3JtYXRpb24gc2VyYSAiCiJhZmZpY2jpZVxuIgoKIzogdXRpbHMvaW5mby5jOjQ0NwojLCBjLWZvcm1hdAptc2dpZCAiICAtZSwgLS1kZWJ1ZyAgICAgICAgICBQcmludHMgb3V0IGRlYnVnIGluZm9ybWF0aW9uXG4iCm1zZ3N0ciAiICAtZSwgLS1kZWJ1ZyAgICAgICAgICBBZmZpY2hlciBsZXMgaW5mb3JtYXRpb25zIGRlIGTpYm9ndWFnZVxuIgoKIzogdXRpbHMvaW5mby5jOjQ0OAojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtZiwgLS1mcmVxICAgICAgICAgICBHZXQgZnJlcXVlbmN5IHRoZSBDUFUgY3VycmVudGx5IHJ1bnMgYXQsIGFjY29yZGluZ1xuIgoiICAgICAgICAgICAgICAgICAgICAgICB0byB0aGUgY3B1ZnJlcSBjb3JlICpcbiIKbXNnc3RyICIiCiIgIC1mLCAtLWZyZXEgICAgICAgICAgIE9idGVuaXIgbGEgZnLpcXVlbmNlIGFjdHVlbGxlIGR1IENQVSBzZWxvbiBsZSBwb2ludFxuIgoiICAgICAgICAgICAgICAgICAgICAgICBkZSB2dWUgZHUgY29ldXIgZHUgc3lzdOhtZSBkZSBjcHVmcmVxICpcbiIKCiM6IHV0aWxzL2luZm8uYzo0NTAKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLXcsIC0taHdmcmVxICAgICAgICAgR2V0IGZyZXF1ZW5jeSB0aGUgQ1BVIGN1cnJlbnRseSBydW5zIGF0LCBieSByZWFkaW5nXG4iCiIgICAgICAgICAgICAgICAgICAgICAgIGl0IGZyb20gaGFyZHdhcmUgKG9ubHkgYXZhaWxhYmxlIHRvIHJvb3QpICpcbiIKbXNnc3RyICIiCiIgIC13LCAtLWh3ZnJlcSAgICAgICAgIE9idGVuaXIgbGEgZnLpcXVlbmNlIGFjdHVlbGxlIGR1IENQVSBkaXJlY3RlbWVudCBwYXJcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgbGUgbWF06XJpZWwgKGRvaXQg6nRyZSByb290KSAqXG4iCgojOiB1dGlscy9pbmZvLmM6NDUyCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1sLCAtLWh3bGltaXRzICAgICAgIERldGVybWluZSB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBDUFUgZnJlcXVlbmN5ICIKImFsbG93ZWQgKlxuIgptc2dzdHIgIiIKIiAgLWwsIC0taHdsaW1pdHMgICAgICAgQWZmaWNoZSBsZXMgZnLpcXVlbmNlcyBtaW5pbWFsZXMgZXQgbWF4aW1hbGVzIGR1IENQVSAiCiIqXG4iCgojOiB1dGlscy9pbmZvLmM6NDUzCiMsIGMtZm9ybWF0Cm1zZ2lkICIgIC1kLCAtLWRyaXZlciAgICAgICAgIERldGVybWluZXMgdGhlIHVzZWQgY3B1ZnJlcSBrZXJuZWwgZHJpdmVyICpcbiIKbXNnc3RyICIgIC1kLCAtLWRyaXZlciAgICAgICAgIEFmZmljaGUgbGUgcGlsb3RlIGNwdWZyZXEgdXRpbGlz6SAqXG4iCgojOiB1dGlscy9pbmZvLmM6NDU0CiMsIGMtZm9ybWF0Cm1zZ2lkICIgIC1wLCAtLXBvbGljeSAgICAgICAgIEdldHMgdGhlIGN1cnJlbnRseSB1c2VkIGNwdWZyZXEgcG9saWN5ICpcbiIKbXNnc3RyICIgIC1wLCAtLXBvbGljeSAgICAgICAgIEFmZmljaGUgbGEgdGFjdGlxdWUgYWN0dWVsbGUgZGUgY3B1ZnJlcSAqXG4iCgojOiB1dGlscy9pbmZvLmM6NDU1CiMsIGMtZm9ybWF0Cm1zZ2lkICIgIC1nLCAtLWdvdmVybm9ycyAgICAgIERldGVybWluZXMgYXZhaWxhYmxlIGNwdWZyZXEgZ292ZXJub3JzICpcbiIKbXNnc3RyICIiCiIgIC1nLCAtLWdvdmVybm9ycyAgICAgIEFmZmljaGUgbGVzIHLpZ3VsYXRldXJzIGRpc3BvbmlibGVzIGRlIGNwdWZyZXEgKlxuIgoKIzogdXRpbHMvaW5mby5jOjQ1NgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLXIsIC0tcmVsYXRlZC1jcHVzICAgRGV0ZXJtaW5lcyB3aGljaCBDUFVzIHJ1biBhdCB0aGUgc2FtZSBoYXJkd2FyZSAiCiJmcmVxdWVuY3kgKlxuIgptc2dzdHIgIiIKIiAgLWEsIC0tYWZmZWN0ZWQtY3B1cyAgIEFmZmljaGUgcXVlbHMgc29udCBsZXMgQ1BVcyBxdWkgZG9pdmVudCBjaGFuZ2VyIGRlXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICBmculxdWVuY2VzIGVuIG3qbWUgdGVtcHMgKlxuIgoKIzogdXRpbHMvaW5mby5jOjQ1NwojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLWEsIC0tYWZmZWN0ZWQtY3B1cyAgRGV0ZXJtaW5lcyB3aGljaCBDUFVzIG5lZWQgdG8gaGF2ZSB0aGVpciBmcmVxdWVuY3lcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgY29vcmRpbmF0ZWQgYnkgc29mdHdhcmUgKlxuIgptc2dzdHIgIiIKIiAgLWEsIC0tYWZmZWN0ZWQtY3B1cyAgIEFmZmljaGUgcXVlbHMgc29udCBsZXMgQ1BVcyBxdWkgZG9pdmVudCBjaGFuZ2VyIGRlXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICBmculxdWVuY2VzIGVuIG3qbWUgdGVtcHMgKlxuIgoKIzogdXRpbHMvaW5mby5jOjQ1OQojLCBjLWZvcm1hdAptc2dpZCAiICAtcywgLS1zdGF0cyAgICAgICAgICBTaG93cyBjcHVmcmVxIHN0YXRpc3RpY3MgaWYgYXZhaWxhYmxlXG4iCm1zZ3N0ciAiIgoiICAtcywgLS1zdGF0cyAgICAgICAgICBJbmRpcXVlIGRlcyBzdGF0aXN0aXF1ZXMgY29uY2VybmFudCBjcHVmcmVxLCBzaVxuIgoiICAgICAgICAgICAgICAgICAgICAgICBkaXNwb25pYmxlc1xuIgoKIzogdXRpbHMvaW5mby5jOjQ2MAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLXksIC0tbGF0ZW5jeSAgICAgICAgRGV0ZXJtaW5lcyB0aGUgbWF4aW11bSBsYXRlbmN5IG9uIENQVSBmcmVxdWVuY3kgIgoiY2hhbmdlcyAqXG4iCm1zZ3N0ciAiIgoiICAtbCwgLS1od2xpbWl0cyAgICAgICBBZmZpY2hlIGxlcyBmculxdWVuY2VzIG1pbmltYWxlcyBldCBtYXhpbWFsZXMgZHUgQ1BVICIKIipcbiIKCiM6IHV0aWxzL2luZm8uYzo0NjEKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLW8sIC0tcHJvYyAgICAgICAgICAgUHJpbnRzIG91dCBpbmZvcm1hdGlvbiBsaWtlIHByb3ZpZGVkIGJ5IHRoZSAvcHJvYy8iCiJjcHVmcmVxXG4iCiIgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFjZSBpbiAyLjQuIGFuZCBlYXJseSAyLjYuIGtlcm5lbHNcbiIKbXNnc3RyICIiCiIgIC1vLCAtLXByb2MgICAgICAgICAgIEFmZmljaGUgbGVzIGluZm9ybWF0aW9ucyBlbiB1dGlsaXNhbnQgbCdpbnRlcmZhY2VcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgZm91cm5pZSBwYXIgL3Byb2MvY3B1ZnJlcSwgcHLpc2VudGUgZGFucyBsZXMgIgoidmVyc2lvbnNcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgMi40IGV0IGxlcyBhbmNpZW5uZXMgdmVyc2lvbnMgMi42IGR1IG5veWF1XG4iCgojOiB1dGlscy9pbmZvLmM6NDYzCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiIgoiICAtbSwgLS1odW1hbiAgICAgICAgICBodW1hbi1yZWFkYWJsZSBvdXRwdXQgZm9yIHRoZSAtZiwgLXcsIC1zIGFuZCAteSAiCiJwYXJhbWV0ZXJzXG4iCm1zZ3N0ciAiIgoiICAtbSwgLS1odW1hbiAgICAgICAgICAgYWZmaWNoZSBkYW5zIHVuIGZvcm1hdCBsaXNpYmxlIHBvdXIgdW4gaHVtYWluXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICBwb3VyIGxlcyBvcHRpb25zIC1mLCAtdyBldCAtcyAoTUh6LCBHSHopXG4iCgojOiB1dGlscy9pbmZvLmM6NDY0CiMsIGMtZm9ybWF0Cm1zZ2lkICIgIC1oLCAtLWhlbHAgICAgICAgICAgIFByaW50cyBvdXQgdGhpcyBzY3JlZW5cbiIKbXNnc3RyICIgIC1oLCAtLWhlbHAgICAgICAgICAgIGFmZmljaGUgbCdhaWRlLW3pbW9pcmVcbiIKCiM6IHV0aWxzL2luZm8uYzo0NjcKIywgYy1mb3JtYXQKbXNnaWQgIiIKIklmIG5vIGFyZ3VtZW50IG9yIG9ubHkgdGhlIC1jLCAtLWNwdSBwYXJhbWV0ZXIgaXMgZ2l2ZW4sIGRlYnVnIG91dHB1dCBhYm91dFxuIgoiY3B1ZnJlcSBpcyBwcmludGVkIHdoaWNoIGlzIHVzZWZ1bCBlLmcuIGZvciByZXBvcnRpbmcgYnVncy5cbiIKbXNnc3RyICIiCiJQYXIgZOlmYXV0LCBsZXMgaW5mb3JtYXRpb25zIGRlIGTpYm9ndWFnZSBzZXJvbnQgYWZmaWNo6WVzIHNpIGF1Y3VuXG4iCiJhcmd1bWVudCwgb3UgYmllbiBzaSBzZXVsZW1lbnQgbCdhcmd1bWVudCAtYyAoLS1jcHUpIGVzdCBkb25u6SwgYWZpbiBkZVxuIgoiZmFjaWxpdGVyIGxlcyByYXBwb3J0cyBkZSBib2d1ZXMgcGFyIGV4ZW1wbGVcbiIKCiM6IHV0aWxzL2luZm8uYzo0NjkKIywgYy1mb3JtYXQKbXNnaWQgIiIKIkZvciB0aGUgYXJndW1lbnRzIG1hcmtlZCB3aXRoICosIG9taXR0aW5nIHRoZSAtYyBvciAtLWNwdSBhcmd1bWVudCBpc1xuIgoiZXF1aXZhbGVudCB0byBzZXR0aW5nIGl0IHRvIHplcm9cbiIKbXNnc3RyICJMZXMgYXJndW1lbnRzIGF2ZWMgdW4gKiB1dGlsaXNlcm9udCBsZSBDUFUgMCBzaSAtYyAoLS1jcHUpIGVzdCBvbWlzXG4iCgojOiB1dGlscy9pbmZvLmM6NTYzCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJUaGUgYXJndW1lbnQgcGFzc2VkIHRvIHRoaXMgdG9vbCBjYW4ndCBiZSBjb21iaW5lZCB3aXRoIHBhc3NpbmcgYSAtLWNwdSAiCiJhcmd1bWVudFxuIgptc2dzdHIgIkNldHRlIG9wdGlvbiBlc3QgaW5jb21wYXRpYmxlIGF2ZWMgLS1jcHVcbiIKCiM6IHV0aWxzL2luZm8uYzo1NzYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIllvdSBjYW4ndCBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgLS1jcHUgcGFyYW1ldGVyIGFuZC9vclxuIgoibW9yZSB0aGFuIG9uZSBvdXRwdXQtc3BlY2lmaWMgYXJndW1lbnRcbiIKbXNnc3RyICIiCiJPbiBuZSBwZXV0IGluZGlxdWVyIHBsdXMgZCd1biBwYXJhbeh0cmUgLS1jcHUsIHRvdXQgY29tbWUgbCdvbiBuZSBwZXV0XG4iCiJzcOljaWZpZXIgcGx1cyBkJ3VuIGFyZ3VtZW50IGRlIGZvcm1hdGFnZVxuIgoKIzogdXRpbHMvaW5mby5jOjU4MiB1dGlscy9zZXQuYzo5NQojLCBjLWZvcm1hdAptc2dpZCAiaW52YWxpZCBvciB1bmtub3duIGFyZ3VtZW50XG4iCm1zZ3N0ciAib3B0aW9uIGludmFsaWRlXG4iCgojOiB1dGlscy9zZXQuYzozNgojLCBjLWZvcm1hdAptc2dpZCAiVXNhZ2U6IGNwdWZyZXEtc2V0IFtvcHRpb25zXVxuIgptc2dzdHIgIlVzYWdlIDogY3B1ZnJlcS1zZXQgW29wdGlvbnNdXG4iCgojOiB1dGlscy9zZXQuYzozOAojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtYyBDUFUsIC0tY3B1IENQVSAgICAgICAgbnVtYmVyIG9mIENQVSB3aGVyZSBjcHVmcmVxIHNldHRpbmdzIHNoYWxsIGJlICIKIm1vZGlmaWVkXG4iCm1zZ3N0ciAiIgoiICAtYyBDUFUsIC0tY3B1IENQVSAgICAgICAgbnVt6XJvIGR1IENQVSDgIHByZW5kcmUgZW4gY29tcHRlIHBvdXIgbGVzXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VtZW50c1xuIgoKIzogdXRpbHMvc2V0LmM6MzkKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLWQgRlJFUSwgLS1taW4gRlJFUSAgICAgIG5ldyBtaW5pbXVtIENQVSBmcmVxdWVuY3kgdGhlIGdvdmVybm9yIG1heSAiCiJzZWxlY3RcbiIKbXNnc3RyICIiCiIgIC1kIEZSRVEsIC0tbWluIEZSRVEgICAgICAgbm91dmVsbGUgZnLpcXVlbmNlIG1pbmltYWxlIGR1IENQVSDgIHV0aWxpc2VyXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyIGxlIHLpZ3VsYXRldXJcbiIKCiM6IHV0aWxzL3NldC5jOjQwCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC11IEZSRVEsIC0tbWF4IEZSRVEgICAgICBuZXcgbWF4aW11bSBDUFUgZnJlcXVlbmN5IHRoZSBnb3Zlcm5vciBtYXkgIgoic2VsZWN0XG4iCm1zZ3N0ciAiIgoiICAtdSBGUkVRLCAtLW1heCBGUkVRICAgICAgIG5vdXZlbGxlIGZy6XF1ZW5jZSBtYXhpbWFsZSBkdSBDUFUg4CB1dGlsaXNlclxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhciBsZSBy6Wd1bGF0ZXVyXG4iCgojOiB1dGlscy9zZXQuYzo0MQojLCBjLWZvcm1hdAptc2dpZCAiICAtZyBHT1YsIC0tZ292ZXJub3IgR09WICAgbmV3IGNwdWZyZXEgZ292ZXJub3JcbiIKbXNnc3RyICIgIC1nIEdPViwgLS1nb3Zlcm5vciBHT1YgICBhY3RpdmUgbGUgculndWxhdGV1ciBHT1ZcbiIKCiM6IHV0aWxzL3NldC5jOjQyCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1mIEZSRVEsIC0tZnJlcSBGUkVRICAgICBzcGVjaWZpYyBmcmVxdWVuY3kgdG8gYmUgc2V0LiBSZXF1aXJlcyB1c2Vyc3BhY2VcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdmVybm9yIHRvIGJlIGF2YWlsYWJsZSBhbmQgbG9hZGVkXG4iCm1zZ3N0ciAiIgoiICAtZiBGUkVRLCAtLWZyZXEgRlJFUSAgICAgZml4ZSBsYSBmculxdWVuY2UgZHUgcHJvY2Vzc2V1ciDgIEZSRVEuIElsIGZhdXRcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZSBsZSBy6Wd1bGF0ZXVyIKsgdXNlcnNwYWNlILsgc29pdCBkaXNwb25pYmxlIFxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgZXQgYWN0aXbpLlxuIgoKIzogdXRpbHMvc2V0LmM6NDQKIywgYy1mb3JtYXQKbXNnaWQgIiAgLXIsIC0tcmVsYXRlZCAgICAgICAgICAgIFN3aXRjaGVzIGFsbCBoYXJkd2FyZS1yZWxhdGVkIENQVXNcbiIKbXNnc3RyICIiCgojOiB1dGlscy9zZXQuYzo0NQojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgIFByaW50cyBvdXQgdGhpcyBzY3JlZW5cbiIKbXNnc3RyICIgIC1oLCAtLWhlbHAgICAgICAgICAgIGFmZmljaGUgbCdhaWRlLW3pbW9pcmVcbiIKCiM6IHV0aWxzL3NldC5jOjQ3CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJOb3RlczpcbiIKIjEuIE9taXR0aW5nIHRoZSAtYyBvciAtLWNwdSBhcmd1bWVudCBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcgaXQgdG8gemVyb1xuIgoiMi4gVGhlIC1mIEZSRVEsIC0tZnJlcSBGUkVRIHBhcmFtZXRlciBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBhbnkgb3RoZXIgIgoicGFyYW1ldGVyXG4iCiIgICBleGNlcHQgdGhlIC1jIENQVSwgLS1jcHUgQ1BVIHBhcmFtZXRlclxuIgoiMy4gRlJFUXVlbmNpZXMgY2FuIGJlIHBhc3NlZCBpbiBIeiwga0h6IChkZWZhdWx0KSwgTUh6LCBHSHosIG9yIFRIelxuIgoiICAgYnkgcG9zdGZpeGluZyB0aGUgdmFsdWUgd2l0aCB0aGUgd2FudGVkIHVuaXQgbmFtZSwgd2l0aG91dCBhbnkgc3BhY2VcbiIKIiAgIChGUkVRdWVuY3kgaW4ga0h6ID1eIEh6ICogMC4wMDEgPV4gTUh6ICogMTAwMCA9XiBHSHogKiAxMDAwMDAwKS5cbiIKbXNnc3RyICIiCiJSZW1hcnF1ZSA6XG4iCiIxLiBMZSBDUFUgbnVt6XJvIDAgc2VyYSB1dGlsaXPpIHBhciBk6WZhdXQgc2kgLWMgKG91IC0tY3B1KSBlc3Qgb21pcyA7XG4iCiIyLiBsJ2FyZ3VtZW50IC1mIEZSRVEgKG91IC0tZnJlcSBGUkVRKSBuZSBwZXV0IOp0cmUgdXRpbGlz6SBxdSdhdmVjIC0tY3B1IDtcbiIKIjMuIG9uIHBvdXJyYSBwculjaXNlciBsJ3VuaXTpIGRlcyBmculxdWVuY2VzIGVuIHBvc3RmaXhhbnQgc2FucyBhdWN1bmUgIgoiZXNwYWNlXG4iCiIgICBsZXMgdmFsZXVycyBwYXIgaHosIGtIeiAocGFyIGTpZmF1dCksIE1IeiwgR0h6IG91IFRIelxuIgoiICAgKGtIeiA9XiBIeiAqIDAuMDAxID1eIE1IeiAqIDEwMDAgPV4gR0h6ICogMTAwMDAwMCkuXG4iCgojOiB1dGlscy9zZXQuYzo2OQojLCBjLWZvcm1hdAptc2dpZCAiIgoiRXJyb3Igc2V0dGluZyBuZXcgdmFsdWVzLiBDb21tb24gZXJyb3JzOlxuIgoiLSBEbyB5b3UgaGF2ZSBwcm9wZXIgYWRtaW5pc3RyYXRpb24gcmlnaHRzPyAoc3VwZXItdXNlcj8pXG4iCiItIElzIHRoZSBnb3Zlcm5vciB5b3UgcmVxdWVzdGVkIGF2YWlsYWJsZSBhbmQgbW9kcHJvYmVkP1xuIgoiLSBUcnlpbmcgdG8gc2V0IGFuIGludmFsaWQgcG9saWN5P1xuIgoiLSBUcnlpbmcgdG8gc2V0IGEgc3BlY2lmaWMgZnJlcXVlbmN5LCBidXQgdXNlcnNwYWNlIGdvdmVybm9yIGlzIG5vdCAiCiJhdmFpbGFibGUsXG4iCiIgICBmb3IgZXhhbXBsZSBiZWNhdXNlIG9mIGhhcmR3YXJlIHdoaWNoIGNhbm5vdCBiZSBzZXQgdG8gYSBzcGVjaWZpYyAiCiJmcmVxdWVuY3lcbiIKIiAgIG9yIGJlY2F1c2UgdGhlIHVzZXJzcGFjZSBnb3Zlcm5vciBpc24ndCBsb2FkZWQ/XG4iCm1zZ3N0ciAiIgoiRW4gYWp1c3RhbnQgbGVzIG5vdXZlYXV4IHBhcmFt6HRyZXMsIHVuZSBlcnJldXIgZXN0IGFwcGFydWUuIExlcyBzb3VyY2VzXG4iCiJkJ2VycmV1ciB0eXBpcXVlIHNvbnQgOlxuIgoiLSBkcm9pdCBkJ2FkbWluaXN0cmF0aW9uIGluc3VmZmlzYW50ICjqdGVzLXZvdXMgcm9vdCA/KSA7XG4iCiItIGxlIHLpZ3VsYXRldXIgY2hvaXNpIG4nZXN0IHBhcyBkaXNwb25pYmxlLCBvdSBiaWVuIG4nZXN0IHBhcyBkaXNwb25pYmxlICIKImVuXG4iCiIgIHRhbnQgcXVlIG1vZHVsZSBub3lhdSA7XG4iCiItIGxhIHRhY3RpcXVlIG4nZXN0IHBhcyBkaXNwb25pYmxlIDtcbiIKIi0gdm91cyB2b3VsZXogdXRpbGlzZXIgbCdvcHRpb24gLWYvLS1mcmVxLCBtYWlzIGxlIHLpZ3VsYXRldXIgqyB1c2Vyc3BhY2Ugu1xuIgoiICBuJ2VzdCBwYXMgZGlzcG9uaWJsZSwgcGFyIGV4ZW1wbGUgcGFyY2UgcXVlIGxlIG1hdOlyaWVsIG5lIGxlIHN1cHBvcnRlXG4iCiIgIHBhcywgb3UgYmllbiBuJ2VzdCB0b3V0IHNpbXBsZW1lbnQgcGFzIGNoYXJn6S5cbiIKCiM6IHV0aWxzL3NldC5jOjE4MwojLCBjLWZvcm1hdAptc2dpZCAid3JvbmcsIHVua25vd24gb3IgdW5oYW5kbGVkIENQVT9cbiIKbXNnc3RyICJDUFUgaW5jb25udSBvdSBub24gc3VwcG9ydOkgP1xuIgoKIzogdXRpbHMvc2V0LmM6MzM2CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJ0aGUgLWYvLS1mcmVxIHBhcmFtZXRlciBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCAtZC8tLW1pbiwgLXUvLS1tYXggb3JcbiIKIi1nLy0tZ292ZXJub3IgcGFyYW1ldGVyc1xuIgptc2dzdHIgIiIKImwnb3B0aW9uIC1mLy0tZnJlcSBlc3QgaW5jb21wYXRpYmxlIGF2ZWMgbGVzIG9wdGlvbnMgLWQvLS1taW4sIC11Ly0tbWF4IGV0XG4iCiItZy8tLWdvdmVybm9yXG4iCgojOiB1dGlscy9zZXQuYzozNDIKIywgYy1mb3JtYXQKbXNnaWQgIiIKIkF0IGxlYXN0IG9uZSBwYXJhbWV0ZXIgb3V0IG9mIC1mLy0tZnJlcSwgLWQvLS1taW4sIC11Ly0tbWF4LCBhbmRcbiIKIi1nLy0tZ292ZXJub3IgbXVzdCBiZSBwYXNzZWRcbiIKbXNnc3RyICIiCiJMJ3VuIGRlIGNlcyBwYXJhbeh0cmVzIGVzdCBvYmxpZ2F0b2lyZSA6IC1mLy0tZnJlcSwgLWQvLS1taW4sIC11Ly0tbWF4IGV0XG4iCiItZy8tLWdvdmVybm9yXG4iCg==