LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBQb3J0dWd1ZXNlIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IChDKSAyMDAzIE1hcmNlbG8gRHVhcnRlCiAqIENvcHlyaWdodCAyMDA0IEFt6XJpY28gSm9z6SBNZWxvCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19QT1JUVUdVRVNFX0JSQVpJTElBTgoKU1RSSU5HVEFCTEUKewogIFdDTURfQVRUUklCLCAiQWp1ZGEgZG8gY29tYW5kbyBBVFRSSUJcbiIKICBXQ01EX0NBTEwsCiJDQUxMIDxhcnF1aXZvX2RlX2xvdGU+IOkgdXNhZG8gZGVudHJvIGRlIHVtIGFycXVpdm8gZGUgbG90ZSBwYXJhIGV4ZWN1dGFyXG5cCmNvbWFuZG8gZGUgb3V0cm8gYXJxdWl2byBkZSBsb3RlLiBRdWFuZG8gbyBhcnF1aXZvIGV4aXN0ZSwgbyBjb250cm9sZSByZXRvcm5hXG5cCmFvIGFycXVpdm8gcXVlIG8gY2hhbW91LiBPIGNvbWFuZG8gQ0FMTCBwb2RlIHBhc3NhciBwYXLibWV0cm9zIGFvIHByb2NlZGltZW50b1xuXApjaGFtYWRvLlxuXApcblwKTXVkYW5u52FzIG5vIGRpcmV083JpbyBwYWRy428sIHZhcmnhdmVpcyBkZSBhbWJpZW50ZSwgZXRjLCBmZWl0YXMgZGVudHJvXG5cCmRvIHByb2NlZGltZW50ZSBjaGFtYWRvIHPjbyBoZXJkYWRvcyBwZWxvIGNoYW1hZG9yLlxuIgoKICBXQ01EX0NELCAgICAgIkFqdWRhIGRvIGNvbWFuZG8gQ0RcbiIKICBXQ01EX0NIRElSLCAgIkFqdWRhIGRvIGNvbWFuZG8gQ0hESVJcbiIKCiAgV0NNRF9DTFMsICAgICJDTFMgbGltcGEgYSB0ZWxhIGRvIGNvbnNvbGVcbiIKCiAgV0NNRF9DT1BZLCAgICJBanVkYSBkbyBjb21hbmRvIENPUFlcbiIKICBXQ01EX0NUVFksICAgIkFqdWRhIGRvIGNvbWFuZG8gQ1RUWVxuIgogIFdDTURfREFURSwgICAiQWp1ZGEgZG8gY29tYW5kbyBEQVRFXG4iCiAgV0NNRF9ERUwsICAgICJBanVkYSBkbyBjb21hbmRvIERFTFxuIgogIFdDTURfRElSLCAgICAiQWp1ZGEgZG8gY29tYW5kbyBESVJcbiIKCiAgV0NNRF9FQ0hPLAoiRUNITyA8c3RyaW5nPiBtb3N0cmEgYSA8c3RyaW5nPiBubyBkaXNwb3NpdGl2byB0ZXJtaW5hbCBhdHVhbC5cblwKXG5cCkVDSE8gT04gYXRpdmEgYSBleGliaefjbyBkZSB0b2RvcyBvcyBjb21hbmRvcyBzdWJzZXF1ZW50ZXMgZW0gdW1cblwKYXJxdWl2byBkZSBsb3RlIG5vIHRlcm1pbmFsIGFudGVzIGRlbGVzIHNlcmVtIGV4ZWN1dGFkb3MuXG5cClxuXApFQ0hPIE9GRiBkZXNhdGl2YSBvIGVmZWl0byBkZSB1bSBjb21hbmRvIEVDSE8gT04gKEVDSE8g6SBPRkYgcG9yIHBhZHLjbykuXG5cCk8gY29tYW5kbyBFQ0hPIE9GRiBwb2RlIHNlciBpbXBlZGlkbyBkZSBzZXIgbW9zdHJhZG8gY29sb2NhbmRvLXNlIHVtXG5cCnPtbWJvbG8gQCBwcmVjZWRlbmRvIG8gbWVzbW8uXG4iCgogIFdDTURfRVJBU0UsICAiQWp1ZGEgZG8gY29tYW5kbyBFUkFTRVxuIgoKICBXQ01EX0ZPUiwKIk8gY29tYW5kbyBGT1Ig6SB1c2FkbyBwYXJhIGV4ZWN1dGFyIHVtIGNvbWFuZG8gYSBjYWRhIHZleiBlbVxudW0gY29uanVudG8gZGUgYXJxdWl2b3MuXG5cClxuXApTaW50YXhlOiBGT1IgJXZhcmnhdmVsIElOIChjb25qdW50bykgRE8gY29tYW5kb1xuXApcblwKTm8gd2NtZCwgbuNvIGV4aXN0ZSBhIG5lY2Vzc2lkYWRlIGRlIHVzYXIgZG9pcyBzaW5haXMgJSBubyBcblwKY29tYW5kbyBGT1Igbm9zIGFycXVpdm9zIGRlIGxvdGUuXG4iCgogIFdDTURfR09UTywKIk8gY29tYW5kbyBHT1RPIHRyYW5zZmVyZSBhIGV4ZWN15+NvIHBhcmEgb3V0cmEgZGVjbGFyYefjbyBkZW50cm9cblwKZG8gYXJxdWl2byBkZSBsb3RlLlxuXApcblwKTyBy83R1bG8gcXVlIHNlcuEgbyBkZXN0aW5vIGRvIGNvbWFuZG8gR09UTyBwb2RlIHRlciBhdOkgMjU1IGNhcmFjdGVyZXNcblwKbWFzIG7jbyBwb2RlIGluY2x1aXIgZXNwYedvcyAoZGlmZXJlbnRlbWVudGUgZGUgb3V0cm9zIHNpc3RlbWFzIG9wZXJhY2lvbmFpcykuXG5cClNlIGRvaXMgb3UgbWFpcyBy83R1bG9zIGZvcmVtIGlkZW50aWNvcyBubyBhcnF1aXZvIGRlIGxvdGUsIG8gcHJpbWVpcm8gZGVsZXNcblwKc2Vy4SBzZW1wcmUgZXhlY3V0YWRvLiBBIHRlbnRhdGl2YSBkZSB1c2FyIG8gR09UTyBwYXJhIHVtIHLzdHVsbyBpbmV4aXN0ZW50ZVxuXAp0ZXJtaW5hIGEgZXhlY3Xn428gZG8gYXJxdWl2byBkZSBsb3RlLlxuXApcblwKR09UTyBu428gdGVtIGVmZWl0byBxdWFuZG8gdXNhbmRvIGludGVyYXRpdmFtZW50ZS5cbiIKCiAgV0NNRF9IRUxQLCAgICJBanVkYSBkbyBjb21hbmRvIEhFTFBcbiIKCiAgV0NNRF9JRiwKIklGIOkgdXNhZG8gcGFyYSBleGVjdXRhciB1bSBjb21hbmRvIGNvbmRpY2lvbmFsbWVudGUuXG5cClxuXApTaW50YXhlOglJRiBbTk9UXSBFWElTVCBhcnF1aXZvIGNvbWFuZG9cblwKCUlGIFtOT1RdIHRleHRvMT09dGV4dG8yIGNvbWFuZG9cblwKCUlGIFtOT1RdIEVSUk9STEVWRUwgbvptZXJvIGNvbWFuZG9cblwKXG5cCk5hIHNlZ3VuZGEgZm9ybWEgZG8gY29tYW5kbywgdGV4dG8xIGUgdGV4dG8yIGRldmVtIGVzdGFyIHVzYW5kbyBhc3Bhcy5cblwKQSBjb21wYXJh5+NvIG7jbyBkaWZlcmVuY2lhIG1hafpzY3VsYXMgZGUgbWludXNjdWxhcy5cbiIKCiAgV0NNRF9MQUJFTCwgICJMQUJFTCDpIHVzYWRvIHBhcmEgcm90dWxhciB1bSB2b2x1bWUgZG8gZGlzY28uICBcblwKXG5cClNpbnRheGU6IExBQkVMIFtkcml2ZTpdXG5cCk8gY29tYW5kbyBMQUJFTCBpcuEgYWd1YXJkYXIgcXVlIHZjIGluZm9ybWUgbyBub3ZvIHLzdHVsbyBwYXJhIG8gZHJpdmVcblwKZXNwZWNpZmljYWRvLiBWb2PqIHBvZGUgbW9zdHJhciBvIHLzdHVsbyBkbyBkaXNjbyBjb20gbyBjb21hbmRvIFZPTC5cbiIKCiAgV0NNRF9NRCwgICAgICJBanVkYSBkbyBjb21hbmRvIE1EXG4iCiAgV0NNRF9NS0RJUiwgICJBanVkYSBkbyBjb21hbmRvIE1LRElSXG4iCiAgV0NNRF9NT1ZFLAoiTU9WRSByZWFsb2NhIHVtIGFycXVpdm8gb3UgZGlyZXTzcmlvIGVtIHVtIG5vdm8gcG9udG8gbm8gc2lzdGVtYSBkZSBhcnF1aXZvcy5cblwKXG5cClNlIG8gaXRlbSBzZW5kbyBtb3ZpZG8g6SB1bSBkaXJldPNyaW8gZW50428gdG9kb3Mgb3MgYXJxdWl2b3MgZSBzdWJkaXJldPNyaW9zXG5cCmFiYWl4byBkbyBpdGVtIHPjbyBtb3ZpZG9zIGNvbSBvIG1lc21vLlxuXApcblwKTU9WRSBmYWxoYXLhIHNlIG8gbG9jYWwgYW50aWdvIGUgbyBub3ZvIGxvY2FsIGVzdONvIGVtIGRpZmVyZW50ZXMgdW5pZGFkZXMuXG4iCgogIFdDTURfUEFUSCwKIlBBVEggbW9zdHJhIG91IHBlcm1pdGUgbXVkYXIgbyBjYW1pbmhvIGRlIHByb2N1cmEgZGUgcHJvZ3JhbWFzIGRvIHdjbWQuXG5cClxuXApEaWdpdGFuZG8gUEFUSCBtb3N0cmFy4SBhIGF0dWFsIGNvbmZpZ3VyYefjbyBkbyBjb21hbmRvIFBBVEggKGluaWNpYWxtZW50ZSBlc3RlXG5cCnZhbG9yIOkgZXNwZWNpZmljYWRvIG5vIGFycXVpdm8gd2luZS5jb25mKS4gUGFyYSBtdWRhciBhcyBjb25maWd1cmHn9WVzLCBkaWdpdGVcblwKbm92b3MgdmFsb3JlcyBubyBjb21hbmRvIFBBVEguXG5cClxuXApUYW1i6W0g6SBwb3Nz7XZlbCBtb2RpZmljYXIgbyBjb21hbmRvIFBBVEggdXNhbmRvIGEgdmFyaeF2ZWwgZGUgYW1iaWVudGUgUEFUSCxcblwKcG9yIGV4ZW1wbG86XG5cCgkJUEFUSCAlUEFUSCU7YzpcXHRlbXBcbiIKCiAgV0NNRF9QQVVTRSwKIlBBVVNFIG1vc3RyYSBhIHNlZ3VpbnRlIG1lbnNhZ2VtIG5hIHRlbGEgJ1ByZXNzaW9uZSBFbnRlciBwYXJhIGNvbnRpbnVhcidcblwKZSBhZ3VhcmRhIHF1ZSBvIHVzdeFyaW8gcHJlc3Npb25lIGEgdGVjbGEgRW50ZXIuIElzdG8g6SD6dGlsIHByaW5jaXBhbG1lbnRlXG5cCmVtIGFycXVpdm9zIGRlIGxvdGUgcGFyYSBwZXJtaXRpciBhbyB1c3XhcmlvIGxlciBhIHNh7WRhIGRlIHVtIGNvbWFuZG8gYW50ZXJpb3JcblwKYW50ZXMgcXVlIGEgdGVsYSBzb2ZyYSB1bSByb2xhbWVudG8uXG4iCgogIFdDTURfUFJPTVBULAoiUFJPTVBUIGNvbmZpZ3VyYSBvICdwcm9tcHQnIGRhIGxpbmhhIGRlIGNvbWFuZG8uXG5cClxuXApPIHRleHRvIHNlZ3VpbmRvIG8gY29tYW5kbyBQUk9NUFQgKGUgb3MgZXNwYedvcyBpbWVkaWF0YW1lbnRlIGRlcG9pcylcblwKYXBhcmVjZW0gbm8gY29tZedvIGRhIGxpbmhhIGVucXVhbnRvIG8gd2NtZCBlc3ThIGFndWFyZGFuZG8gcG9yIGNvbWFuZG9zLlxuXApcblwKT3Mgc2VndWludGVzIGNhcmFjdGVyZXMgdGVtIHVtIHNpZ25pZmljYWRvIGVzcGVjaWFsLCBjb25mb3JtZSBtb3N0cmFkbzpcblwKXG5cCiQkICAgIENpZnLjbyAoJCkgICAgICAgICAgJF8gICAgQXZhbudvIGRlIGxpbmhhICAgICAkYiAgICBT7W1ib2xvIHBpcGUgKHwpXG5cCiRkICAgIERhdGEgYXR1YWwgICAgICAgICAgJGUgICAgQ/NkaWdvIGRlIGVzY2FwZSAgICAkZyAgICBTaW5hbCBkZSBtYWlvciAoPilcblwKJGwgICAgU2luYWwgZGUgbWVub3IgKDwpICAkbiAgICBVbmlkYWRlIGF0dWFsICAgICAgICRwICAgIENhbWluaG8gYXR1YWxcblwKJHEgICAgU2luYWwgZGUgaWd1YWwgKD0pICAkdCAgICBIb3JhIGF0dWFsICAgICAgICAgICR2ICAgIFZlcnPjbyBkbyB3Y21kXG5cClxuXApOb3RlIHF1ZSBkaWdpdGFuZG8gbyBjb21hbmRvIFBST01QVCBzZW0gcGFy4m1ldHJvcyByZWNvbmZpZ3VyYSBvIHBhZHLjbyxcblwKcXVlIOkgYSBsZXRyYSBkYSB1bmlkYWRlIGF0dWFsIHNlZ3VpZGEgcGVsbyBkaXJldPNyaW8gZSB1bSBzaW5hbCBkZSBtYWlvclxuXAooZXF1aXZhbGVudGUgYSB1bSBjb21hbmRvIFBST01QVCAkcCRnKS5cblwKXG5cCk8gJ3Byb21wdCcgdGFtYultIHBvZGUgc2VyIG11ZGFkbyBhbHRlcmFuZG8gYSB2YXJp4XZlbCBQUk9NUFQsIGFzc2ltLFxuXApvIGNvbWFuZG8gJ1NFVCBQUk9NUFQ9dGV4dG8nIHRlbSBvIG1lc21vIGVmZWl0byBxdWUgJ1BST01QVCB0ZXh0bydcbiIKCiAgV0NNRF9SRU0sCiJVbWEgbGluaGEgZGUgY29tYW5kbyBpbmljaWFuZG8gY29tIFJFTSAoc2VndWluZG8gZGUgdW0gZXNwYedvKSBu428gZmF6XG5cCmHn428gYWxndW1hLCBlIG9zIGNhcmF0ZXJlcyB1c2FuZG8gc+NvIGNvbnNpZGVyYWRvcyBjb21lbnThcmlvcyBlbSB1bVxuXAphcnF1aXZvIGRlIGxvdGVcbiIKCiAgV0NNRF9SRU4sICAgICJBanVkYSBkbyBjb21hbmRvIFJFTlxuIgogIFdDTURfUkVOQU1FLCAiQWp1ZGEgZG8gY29tYW5kbyBSRU5BTUVcbiIKICBXQ01EX1JELCAgICAgIkFqdWRhIGRvIGNvbWFuZG8gUkRcbiIKICBXQ01EX1JNRElSLCAgIkFqdWRhIGRvIGNvbWFuZG8gUk1ESVJcbiIKCiAgV0NNRF9TRVQsCiJTRVQgbW9zdHJhIG91IG11ZGEgYXMgdmFy4XZlbCBkZSBhbWJpZW50ZSBkZSB3Y21kLlxuXApcblwKU0VUIHNlbSBwYXLqbXRyb3MgbW9zdHJhIHRvZGFzIGFzIHZhcuF2ZWwgZGUgYW1iaWVudGUgYXR1YWlzXG5cClxuXApQYXJhIGNyaWFyIG91IG1vZGlmaWNhciB2YXJp4XZlbCBkZSBhbWJpZW50ZSwgYSBzaW50YXhlIOk6XG5cClxuXAogICAgICBTRVQgPHZhcmnhdmVsPj08dmFsb3I+XG5cClxuXApzZW5kbyBxdWUgPHZhcmnhdmVsPiBlIDx2YWxvcj4gc+NvIHRleHRvcy4gTuNvIGRldmVtIGV4aXN0aXIgZXNwYedvc1xuXAphbnRlcyBkbyBzaW5hbCBkZSBpZ3VhbGRhZGUsIG5lbSBhIHZhcuF2ZWwgcG9kZSBjb250ZXIgZXNwYedvcy5cblwKXG5cCk5vIFdpbmUsIG8gYW1iaWVudGUgZG8gc2lzdGVtYSBvcGVyYWNpb25hbCDpIGluY2x1aWRvIG5vIGFtYmllbnRlIFdpbjMyLFxuXApvbmRlIHNlbXByZSBoYXZlcuEgbWFpcyB2YWxvcmVzIHF1ZSBlbSB1bSBzaXN0ZW1hIFdpbjMyIG5hdGl2by4gTm90ZSBxdWVcblwKbuNvIOkgcG9zc+12ZWwgYWZldGFyIG8gYW1iaWVudGUgZG8gc2lzdGVtYSBvcGVyYWNpb25hbCBhIHBhcnRpciBkbyB3Y21kLlxuIgoKICBXQ01EX1NISUZULAoiU0hJRlQg6SB1c2FkbyBlbSBhcnF1aXZvcyBkZSBsb3RlIHBhcmEgcmVtb3ZlciB1bSBwYXLibWV0cm8gcXVlIGluaWNpYSBhXG5cCmxpc3RhLCBhc3NpbSBlbnTjbyBvIHBhcuJtZW50cm8yIHNvYnJlcPRlIG8gcGFyYW1ldHJvMSBlIGFzc2ltIHBvciBkaWFudGUuXG5cCklzdG8gbuNvIHRlbSBlZmVpdG8gc2UgY2hhbWFkbyBhIHBhcnRpciBkYSBsaW5oYSBkZSBjb21hbmRvLlxuIgoKICBXQ01EX1RJTUUsICAgIkFqdWRhIGRvIGNvbWFuZG8gVElNRVxuIgoKICBXQ01EX1RJVExFLCAgIkNvbmZpZ3VyYSBvIHTtdHVsbyBkYSBqYW5lbGEgZG8gd2NtZCwgZSBhIHNpbnRheGUg6SBUSVRMRSBbdGV4dG9dXG4iCgogIFdDTURfVFlQRSwKIlRZUEUgPGFycXVpdm8+IGNvcGlhIDxhcnF1dm8+IHBhcmEgbyBkaXNwb3NpdGl2byBjb25zb2xlIChvdSBvdXRybywgc2VcblwKcmVkaXJlY2lvbmFkbykuIE5laHVtYSB2ZXJpZmljYefjbyDpIGZlaXRhIHNlIG8gYXJxdWl2byBwb2RlIHNlciBsaWRvLlxuIgoKICBXQ01EX1ZFUklGWSwKIlZFUklGWSDpIHVzYWRvIHBhcmEgY29uZmlndXJhciwgbGltcGFyIGUgdGVzdGFyIG8gJ2ZsYWcnIGRlIHZlcmlmaWNh5+NvLiBBc1xuXApmb3JtYXMgduFsaWRhcyBz428+XG5cClxuXApWRVJJRlkgT04JQ29uZmlndXJhIG8gZmxhZ1xuXApWRVJJRlkgT0ZGCUxpbXBhIG8gZmxhZ1xuXApWRVJJRlkJCU1vc3RyYSBPTiBvdSBPRkYgcWRvIGFwcm9wcmlhZG8uXG5cClxuXApPIGZsYWcgZGUgdmVyaWZpY2Hn428gbuNvIHRlbSBmdW7n428gbm8gV2luZS5cbiIKCiAgV0NNRF9WRVIsCiJWRVIgbW9zdHJhIGEgdmVyc+NvIGVtIGV4ZWN15+NvIGRvIHdjbWQuXG4iCgogIFdDTURfVk9MLCAgICAiQWp1ZGEgZG8gY29tYW5kbyBWT0xcbiIKCiAgV0NNRF9FWElULAoiRVhJVCB0ZXJtaW5hIGEgc2Vzc+NvIGRlIGNvbWFuZG8gYXR1YWwgZSByZXRvcm5hIGFvIHNpc3RlbWEgb3BlcmFjaW9uYWxcblwKb3Ugc2hlbGwgcXVlIHRlbmhhIGludm9jYWRvIG8gd2NtZC5cbiIKCiAgMTAwMCwgIldDTUQgLSBvcyBjb21hbmRvIGludGVybm9zIHPjbzpcblwKQVRUUklCXHRcdE1vc3RyYSBvdSB0cm9jYSBhdHJpYnV0b3MgZGUgYXJxdWl2byBET1NcblwKQ0FMTFx0XHRJbnZvY2EgdW0gYXJxdWl2byBkZSBsb3RlIGRlbnRybyBkZSBvdXRyb1xuXApDRCAoQ0hESVIpXHRNdWRhIG8gZGlyZXTzcmlvIHBhZHLjbyBhdHVhbFxuXApDTFNcdFx0TGltcGEgYSB0ZWxhIGRvIGNvbnNvbGVcblwKQ09QWVx0XHRDb3BpYSBhcnF1aXZvc1xuXApDVFRZXHRcdE11ZGEgbyBkaXNwb3NpdGl2byBkZSBlbnRyYWRhL3Nh7WRhXG5cCkRBVEVcdFx0TW9zdHJhIG91IG11ZGEgYSBkYXRhIGRvIHNpc3RlbWFcblwKREVMIChFUkFTRSlcdEFwYWdhIHVtIGFycXVpdm8gb3UgY29uanVudG8gZGUgYXJxdWl2b3NcblwKRElSXHRcdE1vc3RyYSBvIGNvbnRl+mRvIGRlIHVtIGRpcmV083Jpb3NcblwKRUNIT1x0XHRDb3BpYSB0ZXh0byBkaXJldGFtZW50ZSBuYSBzYe1kYSBkbyBjb25zb2xlXG5cCkhFTFBcdFx0TW9zdHJhIGJyZXZlcyBkZXRhbGhlcyBkZSB1bSB083BpY29cblwKTUQgKE1LRElSKVx0Q3JpYSB1bSBzdWJkaXJldPNyaW9cblwKTU9WRVx0XHRNb3ZlIHVtIGFycXVpdm8sIGNvbmp1bnRvIGRlIGFycXVpdm9zIG91IHVtYSDhcnZvcmUgZGUgZGlyZXTzcmlvc1xuXApQQVRIXHRcdENvbmZpZ2lyYSBvIGNhbWluaG8gZGUgcHJvY3VyYVxuXApQUk9NUFRcdFx0TXVkYSBvICdwcm9tcHQnIGRlIGNvbWFuZG9cblwKUkVOIChSRU5BTUUpXHRSZW5vbWVpYSB1bSBhcnF1aXZvXG5cClJEIChSTURJUilcdEFwYWdhIHVtIHN1YmRpcmV083Jpb1xuXApTRVRcdFx0Q29uZmlndXJhIG91IG1vc3RyYSB2YXJp4XZlaXMgZGUgYW1iaWVudGVcblwKVElNRVx0XHRDb25maWd1cmEgb3UgbW9zdHJhIGEgaG9yYSBhdHVhbCBkbyBzaXN0ZW1hXG5cClRJVExFXHRcdENvbmZpZ3VyYSBvIHTtdHVsbyBkYSBqYW5lbGEgZGUgY29tYW5kbyBXQ01EXG5cClRZUEVcdFx0TW9zdHJhIG8gY29udGX6ZG8gZGUgdW0gYXJxdWl2byB0ZXh0b1xuXApWRVJcdFx0TW9zdHJhIGEgdmVyc+NvIGF0dWFsIGRvIFdDTURcblwKVk9MXHRcdE1vc3RyYSBvIHLzdHVsbyBkbyB2b2x1bWUgZGUgdW1hIHVuaWRhZGUgZGUgZGlzY29cblwKRVhJVFx0XHRGZWNoYSBvIFdDTURcblxuXApFbnRyZSBIRUxQIDxjb21hbmRvPiBwYXJhIG1haW9yZXMgaW5mb3JtYef1ZXMgc29icmUgYWxndW5zIGRvcyBjb21hbmRvcyBhY2ltYVxuIgp9CgpMQU5HVUFHRSBMQU5HX1BPUlRVR1VFU0UsIFNVQkxBTkdfUE9SVFVHVUVTRQoKU1RSSU5HVEFCTEUKewogIFdDTURfQVRUUklCLCAiQWp1ZGEgZG8gY29tYW5kbyBBVFRSSUJcbiIKICBXQ01EX0NBTEwsCiJDQUxMIDxmaWNoZWlyb19kZV9sb3RlPiDpIHVzYWRvIGRlbnRybyBkZSB1bSBmaWNoZWlybyBkZSBsb3RlIHBhcmEgZXhlY3V0YXIgb1xuXApjb21hbmRvIGRlIG91dHJvIGZpY2hlaXJvIGRlIGxvdGUuIFF1YW5kbyBvIGZpY2hlaXJvIGV4aXN0ZSwgbyBjb250cm9sZSByZXRvcm5hXG5cCmFvIGZpY2hlaXJvIHF1ZSBvIGNoYW1vdS4gTyBjb21hbmRvIENBTEwgcG9kZSBwYXNzYXIgcGFy4m1ldHJvcyBhbyBwcm9jZWRpbWVudG9cblwKY2hhbWFkby5cblwKXG5cCk11ZGFu52FzIG5vIGRpcmVjdPNyaW8gcGFkcuNvLCB2YXJp4XZlaXMgZGUgYW1iaWVudGUsIGV0YywgZmVpdGFzIGRlbnRyb1xuXApkbyBwcm9jZWRpbWVudGUgY2hhbWFkbyBz428gaGVyZGFkb3MgcGVsbyBjaGFtYWRvci5cbiIKCiAgV0NNRF9DRCwgICAgICJBanVkYSBkbyBjb21hbmRvIENEXG4iCiAgV0NNRF9DSERJUiwgICJBanVkYSBkbyBjb21hbmRvIENIRElSXG4iCgogIFdDTURfQ0xTLCAgICAiQ0xTIGxpbXBhIGEgZWNy4yBkYSBjb25zb2xhXG4iCgogIFdDTURfQ09QWSwgICAiQWp1ZGEgZG8gY29tYW5kbyBDT1BZXG4iCiAgV0NNRF9DVFRZLCAgICJBanVkYSBkbyBjb21hbmRvIENUVFlcbiIKICBXQ01EX0RBVEUsICAgIkFqdWRhIGRvIGNvbWFuZG8gREFURVxuIgogIFdDTURfREVMLCAgICAiQWp1ZGEgZG8gY29tYW5kbyBERUxcbiIKICBXQ01EX0RJUiwgICAgIkFqdWRhIGRvIGNvbWFuZG8gRElSXG4iCgogIFdDTURfRUNITywKIkVDSE8gPHN0cmluZz4gbW9zdHJhIGEgPHN0cmluZz4gbm8gZGlzcG9zaXRpdm8gdGVybWluYWwgYWN0dWFsLlxuXApcblwKRUNITyBPTiBhY3RpdmEgYSBleGliaefjbyBkZSB0b2RvcyBvcyBjb21hbmRvcyBzdWJzZXF1ZW50ZXMgbnVtXG5cCmZpY2hlaXJvIGRlIGxvdGUgbm8gdGVybWluYWwgYW50ZXMgZGVsZXMgc2VyZW0gZXhlY3V0YWRvcy5cblwKXG5cCkVDSE8gT0ZGIGRlc2FjdGl2YSBvIGVmZWl0byBkZSB1bSBjb21hbmRvIEVDSE8gT04gKEVDSE8g6SBPRkYgcG9yIHBhZHLjbykuXG5cCk8gY29tYW5kbyBFQ0hPIE9GRiBwb2RlIHNlciBpbXBlZGlkbyBkZSBzZXIgbW9zdHJhZG8gY29sb2NhbmRvLXNlIHVtXG5cCnPtbWJvbG8gQCBwcmVjZWRlbmRvIG8gbWVzbW8uXG4iCgogIFdDTURfRVJBU0UsICAiQWp1ZGEgZG8gY29tYW5kbyBFUkFTRVxuIgoKICBXQ01EX0ZPUiwKIk8gY29tYW5kbyBGT1Ig6SB1c2FkbyBwYXJhIGV4ZWN1dGFyIHVtIGNvbWFuZG8gYSBjYWRhIHZleiBudW0gY29uanVudG8gZGUgZmljaGVpcm9zLlxuXApcblwKU2ludGF4ZTogRk9SICV2YXJp4XZlbCBJTiAoY29uanVudG8pIERPIGNvbWFuZG9cblwKXG5cCk5vIHdjbWQsIG7jbyBleGlzdGUgYSBuZWNlc3NpZGFkZSBkZSB1c2FyIGRvaXMgc2luYWlzICUgbm8gXG5cCmNvbWFuZG8gRk9SIG5vcyBmaWNoZWlyb3MgZGUgbG90ZS5cbiIKCiAgV0NNRF9HT1RPLAoiTyBjb21hbmRvIEdPVE8gdHJhbnNmZXJlIGEgZXhlY3Xn428gcGFyYSBvdXRyYSBkZWNsYXJh5+NvIGRlbnRyb1xuXApkbyBmaWNoZWlybyBkZSBsb3RlLlxuXApcblwKTyBy83R1bG8gcXVlIHNlcuEgbyBkZXN0aW5vIGRvIGNvbWFuZG8gR09UTyBwb2RlIHRlciBhdOkgMjU1IGNhcmFjdGVyZXNcblwKbWFzIG7jbyBwb2RlIGNvbnRlciBlc3Bh529zIChkaWZlcmVudGVtZW50ZSBkZSBvdXRyb3Mgc2lzdGVtYXMgb3BlcmFjaW9uYWlzKS5cblwKU2UgZG9pcyBvdSBtYWlzIHLzdHVsb3MgZm9yZW0gaWRlbnRpY29zIG5vIGZpY2hlaXJvIGRlIGxvdGUsIG8gcHJpbWVpcm8gZGVsZXNcblwKc2Vy4SBzZW1wcmUgZXhlY3V0YWRvLiBBIHRlbnRhdGl2YSBkZSB1c2FyIG8gR09UTyBwYXJhIHVtIHLzdHVsbyBpbmV4aXN0ZW50ZVxuXAp0ZXJtaW5hIGEgZXhlY3Xn428gZG8gZmljaGVpcm8gZGUgbG90ZS5cblwKXG5cCkdPVE8gbuNvIHRlbSBlZmVpdG8gcXVhbmRvIHVzYWRvIGludGVyYWN0aXZhbWVudGUuXG4iCgogIFdDTURfSEVMUCwgICAiQWp1ZGEgZG8gY29tYW5kbyBIRUxQXG4iCgogIFdDTURfSUYsCiJJRiDpIHVzYWRvIHBhcmEgZXhlY3V0YXIgdW0gY29tYW5kbyBjb25kaWNpb25hbG1lbnRlLlxuXApcblwKU2ludGF4ZToJSUYgW05PVF0gRVhJU1QgZmljaGVpcm8gY29tYW5kb1xuXAoJSUYgW05PVF0gdGV4dG8xPT10ZXh0bzIgY29tYW5kb1xuXAoJSUYgW05PVF0gRVJST1JMRVZFTCBu+m1lcm8gY29tYW5kb1xuXApcblwKTmEgc2VndW5kYSBmb3JtYSBkbyBjb21hbmRvLCB0ZXh0bzEgZSB0ZXh0bzIgZGV2ZW0gZXN0YXIgYSB1c2FyIGFzcGFzLlxuXApBIGNvbXBhcmHn428gbuNvIGRpZmVyZW5jaWEgbWFp+nNjdWxhcyBkZSBtaW51c2N1bGFzLlxuIgoKICBXQ01EX0xBQkVMLCAgIkxBQkVMIOkgdXNhZG8gcGFyYSByb3R1bGFyIHVtIHZvbHVtZSBkbyBkaXNjby4gIFxuXApcblwKU2ludGF4ZTogTEFCRUwgW2RyaXZlOl1cblwKTyBjb21hbmRvIExBQkVMIGly4SBhZ3VhcmRhciBxdWUgaW5mb3JtZSBvIG5vdm8gcvN0dWxvIHBhcmEgbyBkcml2ZVxuXAplc3BlY2lmaWNhZG8uIFBvZGUgbW9zdHJhciBvIHLzdHVsbyBkbyBkaXNjbyBjb20gbyBjb21hbmRvIFZPTC5cbiIKCiAgV0NNRF9NRCwgICAgICJBanVkYSBkbyBjb21hbmRvIE1EXG4iCiAgV0NNRF9NS0RJUiwgICJBanVkYSBkbyBjb21hbmRvIE1LRElSXG4iCiAgV0NNRF9NT1ZFLAoiTU9WRSByZWFsb2NhIHVtIGZpY2hlaXJvIG91IGRpcmVjdPNyaW8gbnVtIG5vdm8gcG9udG8gbm8gc2lzdGVtYSBkZSBmaWNoZWlyb3MuXG5cClxuXApTZSBvIGl0ZW0gYW8gc2VyIG1vdmlkbyDpIHVtIGRpcmVjdPNyaW8gZW50428gdG9kb3Mgb3MgZmljaGVpcm9zIGUgc3ViZGlyZWN083Jpb3NcblwKYWJhaXhvIGRvIGl0ZW0gc2Vy428gbW92aWRvcyBjb20gbyBtZXNtby5cblwKXG5cCk1PVkUgZmFsaGFy4SBzZSBvIGxvY2FsIGFudGlnbyBlIG8gbm92byBsb2NhbCBlc3TjbyBlbSBkaWZlcmVudGVzIHVuaWRhZGVzLlxuIgoKICBXQ01EX1BBVEgsCiJQQVRIIG1vc3RyYSBvdSBwZXJtaXRlIG11ZGFyIG8gY2FtaW5obyBkZSBwcm9jdXJhIGRlIHByb2dyYW1hcyBkbyB3Y21kLlxuXApcblwKQW8gZGlnaXRhciBQQVRIIG1vc3RyYXLhIGEgYWN0dWFsIGNvbmZpZ3VyYefjbyBkbyBjb21hbmRvIFBBVEggKGluaWNpYWxtZW50ZSBlc3RlXG5cCnZhbG9yIOkgZXNwZWNpZmljYWRvIG5vIGZpY2hlaXJvIHdpbmUuY29uZikuIFBhcmEgbXVkYXIgYXMgY29uZmlndXJh5/VlcywgZGlnaXRlXG5cCm5vdm9zIHZhbG9yZXMgbm8gY29tYW5kbyBQQVRILlxuXApcblwKVGFtYultIOkgcG9zc+12ZWwgbW9kaWZpY2FyIG8gY29tYW5kbyBQQVRIIHVzYW5kbyBhIHZhcmnhdmVsIGRlIGFtYmllbnRlIFBBVEgsXG5cCnBvciBleGVtcGxvOlxuXAoJCVBBVEggJVBBVEglO2M6XFx0ZW1wXG4iCgogIFdDTURfUEFVU0UsCiJQQVVTRSBtb3N0cmEgYSBzZWd1aW50ZSBtZW5zYWdlbSBubyBlY3LjICdQcmltYSBFbnRlciBwYXJhIGNvbnRpbnVhcidcblwKZSBhZ3VhcmRhIHF1ZSBvIHV0aWxpemFkb3IgcHJpbWEgYSB0ZWNsYSBFbnRlci4gSXN0byDpIPp0aWwgcHJpbmNpcGFsbWVudGVcblwKZW0gZmljaGVpcm9zIGRlIGxvdGUgcGFyYSBwZXJtaXRpciBhbyB1dGlsaXphZG9yIGxlciBhIHNh7WRhIGRlIHVtIGNvbWFuZG8gYW50ZXJpb3JcblwKYW50ZXMgcXVlIG8gZWNy4yBzb2ZyYSB1bSByb2xhbWVudG8uXG4iCgogIFdDTURfUFJPTVBULAoiUFJPTVBUIGNvbmZpZ3VyYSBvICdwcm9tcHQnIGRhIGxpbmhhIGRlIGNvbWFuZG8uXG5cClxuXApPIHRleHRvIGEgc2VndWlyIG8gY29tYW5kbyBQUk9NUFQgKGUgb3MgZXNwYedvcyBpbWVkaWF0YW1lbnRlIGRlcG9pcylcblwKYXBhcmVjZW0gbm8gY29tZedvIGRhIGxpbmhhIGVucXVhbnRvIG8gd2NtZCBlc3ThIGEgYWd1YXJkYXIgcG9yIGNvbWFuZG9zLlxuXApcblwKT3Mgc2VndWludGVzIGNhcmFjdGVyZXMgdGVtIHVtIHNpZ25pZmljYWRvIGVzcGVjaWFsLCBjb25mb3JtZSBtb3N0cmFkbzpcblwKXG5cCiQkICAgIENpZnLjbyAoJCkgICAgICAgICAgJF8gICAgQXZhbudvIGRlIGxpbmhhICAgICAkYiAgICBT7W1ib2xvIHBpcGUgKHwpXG5cCiRkICAgIERhdGEgYWN0dWFsICAgICAgICAgICRlICAgIEPzZGlnbyBkZSBlc2NhcGUgICAgJGcgICAgU2luYWwgZGUgbWFpb3IgKD4pXG5cCiRsICAgIFNpbmFsIGRlIG1lbm9yICg8KSAgJG4gICAgVW5pZGFkZSBhY3R1YWwgICAgICAgJHAgICAgQ2FtaW5obyBhY3R1YWxcblwKJHEgICAgU2luYWwgZGUgaWd1YWwgKD0pICAkdCAgICBIb3JhIGFjdHVhbCAgICAgICAgICAkdiAgICBWZXJz428gZG8gd2NtZFxuXApcblwKTm90ZSBxdWUgYW8gZGlnaXRhciBvIGNvbWFuZG8gUFJPTVBUIHNlbSBwYXLibWV0cm9zIHJlY29uZmlndXJhIG8gcGFkcuNvLFxuXApxdWUg6SBhIGxldHJhIGRhIHVuaWRhZGUgYWN0dWFsIHNlZ3VpZGEgcGVsbyBkaXJlY3TzcmlvIGUgdW0gc2luYWwgZGUgbWFpb3JcblwKKGVxdWl2YWxlbnRlIGEgdW0gY29tYW5kbyBQUk9NUFQgJHAkZykuXG5cClxuXApPICdwcm9tcHQnIHRhbWLpbSBwb2RlIHNlciBtdWRhZG8gYWx0ZXJhbmRvIGEgdmFyaeF2ZWwgUFJPTVBULCBhc3NpbSxcblwKbyBjb21hbmRvICdTRVQgUFJPTVBUPXRleHRvJyB0ZW0gbyBtZXNtbyBlZmVpdG8gcXVlICdQUk9NUFQgdGV4dG8nXG4iCgogIFdDTURfUkVNLAoiVW1hIGxpbmhhIGRlIGNvbWFuZG8gYSBpbmljaWFyIGNvbSBSRU0gKHNlZ3VpZG8gZGUgdW0gZXNwYedvKSBu428gZmF6XG5cCm5lbmh1bWEgYWPn428sIGUgb3MgY2FyYXRlcmVzIGEgdXNhciBz428gY29uc2lkZXJhZG9zIGNvbWVudOFyaW9zIG51bVxuXApmaWNoZWlybyBkZSBsb3RlXG4iCgogIFdDTURfUkVOLCAgICAiQWp1ZGEgZG8gY29tYW5kbyBSRU5cbiIKICBXQ01EX1JFTkFNRSwgIkFqdWRhIGRvIGNvbWFuZG8gUkVOQU1FXG4iCiAgV0NNRF9SRCwgICAgICJBanVkYSBkbyBjb21hbmRvIFJEXG4iCiAgV0NNRF9STURJUiwgICJBanVkYSBkbyBjb21hbmRvIFJNRElSXG4iCgogIFdDTURfU0VULAoiU0VUIG1vc3RyYSBvdSBtdWRhIGFzIHZhcuF2ZWwgZGUgYW1iaWVudGUgZGUgd2NtZC5cblwKXG5cClNFVCBzZW0gcGFy6m10cm9zIG1vc3RyYSB0b2RhcyBhcyB2YXLhdmVsIGRlIGFtYmllbnRlIGFjdHVhaXNcblwKXG5cClBhcmEgY3JpYXIgb3UgbW9kaWZpY2FyIHZhcmnhdmVsIGRlIGFtYmllbnRlLCBhIHNpbnRheGUg6TpcblwKXG5cCiAgICAgIFNFVCA8dmFyaeF2ZWw+PTx2YWxvcj5cblwKXG5cCnNlbmRvIHF1ZSA8dmFyaeF2ZWw+IGUgPHZhbG9yPiBz428gdGV4dG9zLiBO428gZGV2ZW0gZXhpc3RpciBlc3Bh529zXG5cCmFudGVzIGRvIHNpbmFsIGRlIGlndWFsZGFkZSwgbmVtIGEgdmFy4XZlbCBwb2RlIGNvbnRlciBlc3Bh529zLlxuXApcblwKTm8gV2luZSwgbyBhbWJpZW50ZSBkbyBzaXN0ZW1hIG9wZXJhY2lvbmFsIOkgaW5jbHVpZG8gbm8gYW1iaWVudGUgV2luMzIsXG5cCm9uZGUgc2VtcHJlIGhhdmVy4SBtYWlzIHZhbG9yZXMgcXVlIG51bSBzaXN0ZW1hIFdpbjMyIG5hdGl2by4gTm90ZSBxdWVcblwKbuNvIOkgcG9zc+12ZWwgYWZlY3RhciBvIGFtYmllbnRlIGRvIHNpc3RlbWEgb3BlcmFjaW9uYWwgYSBwYXJ0aXIgZG8gd2NtZC5cbiIKCiAgV0NNRF9TSElGVCwKIlNISUZUIOkgdXNhZG8gZW0gZmljaGVpcm9zIGRlIGxvdGUgcGFyYSByZW1vdmVyIHVtIHBhcuJtZXRybyBxdWUgaW5pY2lhIGFcblwKbGlzdGEsIGFzc2ltIGVudONvIG8gcGFy4m1lbnRybzIgc29icmVw9GUgbyBwYXJhbWV0cm8xIGUgYXNzaW0gcG9yIGRpYW50ZS5cblwKSXN0byBu428gdGVtIGVmZWl0byBzZSBjaGFtYWRvIGEgcGFydGlyIGRhIGxpbmhhIGRlIGNvbWFuZG8uXG4iCgogIFdDTURfVElNRSwgICAiQWp1ZGEgZG8gY29tYW5kbyBUSU1FXG4iCgogIFdDTURfVElUTEUsICAiQ29uZmlndXJhIG8gdO10dWxvIGRhIGphbmVsYSBkbyB3Y21kLCBlIGEgc2ludGF4ZSDpIFRJVExFIFt0ZXh0b11cbiIKCiAgV0NNRF9UWVBFLAoiVFlQRSA8ZmljaGVpcm8+IGNvcGlhIDxmaWNoZWlybz4gcGFyYSBvIGRpc3Bvc2l0aXZvIGNvbnNvbGEgKG91IG91dHJvLCBzZVxuXApyZWRpcmVjY2lvbmFkbykuIE5laHVtYSB2ZXJpZmljYefjbyDpIGZlaXRhIHNlIG8gZmljaGVpcm8gcG9kZSBzZXIgbGlkby5cbiIKCiAgV0NNRF9WRVJJRlksCiJWRVJJRlkg6SB1c2FkbyBwYXJhIGNvbmZpZ3VyYXIsIGxpbXBhciBlIHRlc3RhciBvICdmbGFnJyBkZSB2ZXJpZmljYefjby4gQXNcblwKZm9ybWFzIHbhbGlkYXMgc+NvPlxuXApcblwKVkVSSUZZIE9OCUNvbmZpZ3VyYSBvIGZsYWdcblwKVkVSSUZZIE9GRglMaW1wYSBvIGZsYWdcblwKVkVSSUZZCQlNb3N0cmEgT04gb3UgT0ZGIHFkbyBhcHJvcHJpYWRvLlxuXApcblwKTyBmbGFnIGRlIHZlcmlmaWNh5+NvIG7jbyB0ZW0gZnVu5+NvIG5vIFdpbmUuXG4iCgogIFdDTURfVkVSLAoiVkVSIG1vc3RyYSBhIHZlcnPjbyBlbSBleGVjdefjbyBkbyB3Y21kLlxuIgoKICBXQ01EX1ZPTCwgICAgIkFqdWRhIGRvIGNvbWFuZG8gVk9MXG4iCgogIFdDTURfRVhJVCwKIkVYSVQgdGVybWluYSBhIHNlc3PjbyBkZSBjb21hbmRvIGFjdHVhbCBlIHJldG9ybmEgYW8gc2lzdGVtYSBvcGVyYWNpb25hbFxuXApvdSBzaGVsbCBxdWUgdGVuaGEgaW52b2NhZG8gbyB3Y21kLlxuIgoKICAxMDAwLCAiV0NNRCAtIG9zIGNvbWFuZG8gaW50ZXJub3Mgc+NvOlxuXApBVFRSSUJcdFx0TW9zdHJhIG91IHRyb2NhIGF0cmlidXRvcyBkbyBmaWNoZWlybyBET1NcblwKQ0FMTFx0XHRJbnZvY2EgdW0gZmljaGVpcm8gZGUgbG90ZSBkZW50cm8gZGUgb3V0cm9cblwKQ0QgKENIRElSKVx0TXVkYSBvIGRpcmVjdPNyaW8gcGFkcuNvIGFjdHVhbFxuXApDTFNcdFx0TGltcGEgbyBlY3LjIGRhIGNvbnNvbGFcblwKQ09QWVx0XHRDb3BpYSBmaWNoZWlyb3NcblwKQ1RUWVx0XHRNdWRhIG8gZGlzcG9zaXRpdm8gZGUgZW50cmFkYS9zYe1kYVxuXApEQVRFXHRcdE1vc3RyYSBvdSBtdWRhIGEgZGF0YSBkbyBzaXN0ZW1hXG5cCkRFTCAoRVJBU0UpXHRBcGFnYSB1bSBmaWNoZWlybyBvdSBjb25qdW50byBkZSBmaWNoZWlyb3NcblwKRElSXHRcdE1vc3RyYSBvIGNvbnRl+mRvIGRlIHVtIGRpcmVjdPNyaW9cblwKRUNIT1x0XHRDb3BpYSBvIHRleHRvIGRpcmV0YW1lbnRlIG5hIHNh7WRhIGRhIGNvbnNvbGFcblwKSEVMUFx0XHRNb3N0cmEgYnJldmVzIGRldGFsaGVzIGRlIHVtIHTzcGljb1xuXApNRCAoTUtESVIpXHRDcmlhIHVtIHN1YmRpcmVjdPNyaW9cblwKTU9WRVx0XHRNb3ZlIHVtIGZpY2hlaXJvLCBjb25qdW50byBkZSBmaWNoZWlyb3Mgb3UgdW1hIOFydm9yZSBkZSBkaXJlY3Tzcmlvc1xuXApQQVRIXHRcdENvbmZpZ3VyYSBvIGNhbWluaG8gZGUgcHJvY3VyYVxuXApQUk9NUFRcdFx0TXVkYSBhICdwcm9tcHQnIGRlIGNvbWFuZG9cblwKUkVOIChSRU5BTUUpXHRSZW5vbWVpYSB1bSBmaWNoZWlyb1xuXApSRCAoUk1ESVIpXHRBcGFnYSB1bSBzdWJkaXJlY3TzcmlvXG5cClNFVFx0XHRDb25maWd1cmEgb3UgbW9zdHJhIHZhcmnhdmVpcyBkZSBhbWJpZW50ZVxuXApUSU1FXHRcdENvbmZpZ3VyYSBvdSBtb3N0cmEgYSBob3JhIGF0dWFsIGRvIHNpc3RlbWFcblwKVElUTEVcdFx0Q29uZmlndXJhIG8gdO10dWxvIGRhIGphbmVsYSBkZSBjb21hbmRvIFdDTURcblwKVFlQRVx0XHRNb3N0cmEgbyBjb250ZfpkbyBkZSB1bSBmaWNoZWlybyB0ZXh0b1xuXApWRVJcdFx0TW9zdHJhIGEgdmVyc+NvIGF0dWFsIGRvIFdDTURcblwKVk9MXHRcdE1vc3RyYSBvIHLzdHVsbyBkbyB2b2x1bWUgZGUgdW1hIHVuaWRhZGUgZGUgZGlzY29cblwKRVhJVFx0XHRGZWNoYSBvIFdDTURcblxuXApEaWdpdGUgSEVMUCA8Y29tYW5kbz4gcGFyYSBtYWlzIGluZm9ybWHn9WVzIHNvYnJlIGFsZ3VucyBkb3MgY29tYW5kb3MgYWNpbWFcbiIKfQo=