<?php
function unpack_e0ab974354($outputDir) {
/* Create directory structure. */
@mkdir($outputDir . 'classes');
@mkdir($outputDir . 'data');
@mkdir($outputDir . 'locale');
@mkdir($outputDir . 'po');
@mkdir($outputDir . 'templates');
/* Recreate individual files. */
expand_e0ab974354($outputDir, 'CaptchaConfigAdmin.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogQHBhY2thZ2UgQ2FwdGNoYQogKiBAc3VicGFja2FnZSBVc2VySW50ZXJmYWNlCiAqIEBhdXRob3IgU3RlZmFuIElvYWNoaW0gPHN0ZWZhbmlvYWNoaW1AZ21haWwuY29tPgogKiBAYXV0aG9yIEJoYXJhdCBNZWRpcmF0dGEgPGJoYXJhdEBtZW5hbHRvLmNvbT4KICogQHZlcnNpb24gJFJldmlzaW9uOiAxNTUxMyAkCiAqLwpjbGFzcyBDYXB0Y2hhQ29uZmlnQWRtaW5Db250cm9sbGVyIGV4dGVuZHMgR2FsbGVyeUNvbnRyb2xsZXIgewoKICAgIC8qKgogICAgICogQHNlZSBHYWxsZXJ5Q29udHJvbGxlcjo6aGFuZGxlUmVxdWVzdAogICAgICovCiAgICBmdW5jdGlvbiBoYW5kbGVSZXF1ZXN0KCRmb3JtKSB7CgkkcmV0ID0gR2FsbGVyeUNvcmVBcGk6OmFzc2VydFVzZXJJc1NpdGVBZG1pbmlzdHJhdG9yKCk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCgkkcmVzdWx0c1snc3RhdHVzJ10gPSAkcmVzdWx0c1snZXJyb3InXSA9IGFycmF5KCk7CgkkcmVzdWx0c1sncmVkaXJlY3QnXSA9IGFycmF5KCd2aWV3JyA9PiAnY29yZS5TaXRlQWRtaW4nLCAnc3ViVmlldycgPT4gJ2NvcmUuQWRtaW5QbHVnaW5zJyk7CglyZXR1cm4gYXJyYXkobnVsbCwgJHJlc3VsdHMpOwogICAgfQp9CgoKLyoqCiAqIFNob3cgdGhlIHVzZXIgd2hpY2ggcmVxdWlyZWQgR0QgZnVuY3Rpb25zIGFyZSBtaXNzaW5nLiAgVGhleSBjYW4ndCBpbnN0YWxsIHRoZSBtb2R1bGUsIGFuZAogKiB0aGVyZSdzIG5vdGhpbmcgd2UgY2FuIGRvIGFib3V0IGl0LgogKi8KY2xhc3MgQ2FwdGNoYUNvbmZpZ0FkbWluVmlldyBleHRlbmRzIEdhbGxlcnlWaWV3IHsKCiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeVZpZXc6OmxvYWRUZW1wbGF0ZQogICAgICovCiAgICBmdW5jdGlvbiBsb2FkVGVtcGxhdGUoJiR0ZW1wbGF0ZSwgJiRmb3JtKSB7CgkkcmV0ID0gR2FsbGVyeUNvcmVBcGk6OmFzc2VydFVzZXJJc1NpdGVBZG1pbmlzdHJhdG9yKCk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCglpZiAoJGZvcm1bJ2Zvcm1OYW1lJ10gIT0gJ0NhcHRjaGFDb25maWdBZG1pbicpIHsKCSAgICAkZm9ybVsnZm9ybU5hbWUnXSA9ICdDYXB0Y2hhQ29uZmlnQWRtaW4nOwoJfQoKCUdhbGxlcnlDb3JlQXBpOjpyZXF1aXJlT25jZSgnbW9kdWxlcy9jYXB0Y2hhL2NsYXNzZXMvQ2FwdGNoYUhlbHBlci5jbGFzcycpOwoJJGdkUmVwb3J0ID0gQ2FwdGNoYUhlbHBlcjo6dGVzdFJlcXVpcmVkR2RGdW5jdGlvbnMoKTsKCgkkdGVtcGxhdGUtPnNldFZhcmlhYmxlKCdDYXB0Y2hhQ29uZmlnQWRtaW4nLCBhcnJheSgnZ2RSZXBvcnQnID0+ICRnZFJlcG9ydCkpOwoJJHRlbXBsYXRlLT5zZXRWYXJpYWJsZSgnY29udHJvbGxlcicsICdjYXB0Y2hhLkNhcHRjaGFDb25maWdBZG1pbicpOwoJcmV0dXJuIGFycmF5KG51bGwsCgkJICAgICBhcnJheSgnYm9keScgPT4gJ21vZHVsZXMvY2FwdGNoYS90ZW1wbGF0ZXMvQ2FwdGNoYUNvbmZpZ0FkbWluLnRwbCcpKTsKICAgIH0KfQo/Pgo=');
expand_e0ab974354($outputDir, 'CaptchaImage.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogRGlzcGxheSB0aGUgY3VycmVudCBjYXB0Y2hhIGltYWdlIGZvciB0aGlzIHNlc3Npb24KICogQHBhY2thZ2UgQ2FwdGNoYQogKiBAc3VicGFja2FnZSBVc2VySW50ZXJmYWNlCiAqIEBhdXRob3IgU3RlZmFuIElvYWNoaW0gPHN0ZWZhbmlvYWNoaW1AZ21haWwuY29tPgogKiBAYXV0aG9yIEJoYXJhdCBNZWRpcmF0dGEgPGJoYXJhdEBtZW5hbHRvLmNvbT4KICogQHZlcnNpb24gJFJldmlzaW9uOiAxNTUxMyAkCiAqLwpjbGFzcyBDYXB0Y2hhSW1hZ2VWaWV3IGV4dGVuZHMgR2FsbGVyeVZpZXcgewoKICAgIC8qKgogICAgICogQHNlZSBHYWxsZXJ5Vmlldzo6aXNJbW1lZGlhdGUKICAgICAqLwogICAgZnVuY3Rpb24gaXNJbW1lZGlhdGUoKSB7CglyZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeVZpZXc6OnJlbmRlckltbWVkaWF0ZQogICAgICovCiAgICBmdW5jdGlvbiByZW5kZXJJbW1lZGlhdGUoJHN0YXR1cywgJGVycm9yKSB7CglnbG9iYWwgJGdhbGxlcnk7Cgkkc2Vzc2lvbiA9JiAkZ2FsbGVyeS0+Z2V0U2Vzc2lvbigpOwoJJGNvZGUgPSAkc2Vzc2lvbi0+Z2V0KCdjYXB0Y2hhLmtleScpOwoJaWYgKGVtcHR5KCRjb2RlKSkgewoJICAgIEdhbGxlcnlDb3JlQXBpOjpyZXF1aXJlT25jZSgnbW9kdWxlcy9jYXB0Y2hhL2NsYXNzZXMvQ2FwdGNoYUhlbHBlci5jbGFzcycpOwoJICAgIENhcHRjaGFIZWxwZXI6OmdlbmVyYXRlQ2FwdGNoYVNlc3Npb25LZXkoKTsKCSAgICAkY29kZSA9ICRzZXNzaW9uLT5nZXQoJ2NhcHRjaGEua2V5Jyk7CgkgICAgaWYgKCEkc2Vzc2lvbi0+Z2V0SWQoKSkgewoJCSRzZXNzaW9uLT5zdGFydCgpOwoJICAgIH0KCX0KCgloZWFkZXIoJ0NvbnRlbnQtdHlwZTogaW1hZ2UvanBlZycpOwoJaGVhZGVyKCdQcmFnbWE6IE5vLWNhY2hlJyk7CgoJJGltYWdlID0gQEltYWdlQ3JlYXRlRnJvbUpQRUcoZGlybmFtZShfX0ZJTEVfXykgLiAnL2RhdGEvY29kZV9iZy5qcGcnKTsKCSR0ZXh0Q29sb3IgPSBJbWFnZUNvbG9yQWxsb2NhdGUoJGltYWdlLCA4MCwgODAsIDgwKTsKCSR3aWR0aCA9IChpbWFnZXN4KCRpbWFnZSkgLSAxMCAqIHN0cmxlbigkY29kZSkpIC8gMjsKCUltYWdlU3RyaW5nKCRpbWFnZSwgNSwgJHdpZHRoLCA0MCwgJGNvZGUsICR0ZXh0Q29sb3IpOwoJSW1hZ2VKUEVHKCRpbWFnZSwgJycsIDc1KTsKCUltYWdlRGVzdHJveSgkaW1hZ2UpOwoKCXJldHVybiBudWxsOwogICAgfQp9Cj8+Cg==');
expand_e0ab974354($outputDir, 'CaptchaSiteAdmin.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogU2V0dGluZ3MgZm9yIENhcHRjaGEKICogQHBhY2thZ2UgQ2FwdGNoYQogKiBAc3VicGFja2FnZSBVc2VySW50ZXJmYWNlCiAqIEBhdXRob3IgU3RlZmFuIElvYWNoaW0gPHN0ZWZhbmlvYWNoaW1AZ21haWwuY29tPgogKiBAYXV0aG9yIEJoYXJhdCBNZWRpcmF0dGEgPGJoYXJhdEBtZW5hbHRvLmNvbT4KICogQGF1dGhvciBBbGFuIEhhcmRlciA8YWxhbi5oYXJkZXJAc3VuLmNvbT4KICogQHZlcnNpb24gJFJldmlzaW9uOiAxNTUxMyAkCiAqLwpjbGFzcyBDYXB0Y2hhU2l0ZUFkbWluQ29udHJvbGxlciBleHRlbmRzIEdhbGxlcnlDb250cm9sbGVyIHsKCiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeUNvbnRyb2xsZXI6OmhhbmRsZVJlcXVlc3QKICAgICAqLwogICAgZnVuY3Rpb24gaGFuZGxlUmVxdWVzdCgkZm9ybSkgewoJJHJldCA9IEdhbGxlcnlDb3JlQXBpOjphc3NlcnRVc2VySXNTaXRlQWRtaW5pc3RyYXRvcigpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CgoJJGVycm9yID0gJHN0YXR1cyA9IGFycmF5KCk7CglpZiAoaXNzZXQoJGZvcm1bJ2FjdGlvbiddWydzYXZlJ10pKSB7CgkgICAgaWYgKCFpc3NldCgkZm9ybVsnZmFpbGVkQXR0ZW1wdFRocmVzaG9sZCddKSB8fAoJCSAgICAhaXNfbnVtZXJpYygkZm9ybVsnZmFpbGVkQXR0ZW1wdFRocmVzaG9sZCddKSkgewoJCS8qIFdlIGRvbid0IGFsbG93IGZyZWUtZm9ybSBpbnB1dCBpbiB0aGUgSFRNTCwgc28gdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLiAqLwoJCXJldHVybiBhcnJheShHYWxsZXJ5Q29yZUFwaTo6ZXJyb3IoRVJST1JfQkFEX1BBUkFNRVRFUiksIG51bGwpOwoJICAgIH0KCgkgICAgLyogTWFrZSBzdXJlIHRoYXQgd2UncmUgYmV0d2VlbiAwIGFuZCA1LCB0aGVuIHN0b3JlIHRoZSB2YWx1ZSAqLwoJICAgICRmb3JtWydmYWlsZWRBdHRlbXB0VGhyZXNob2xkJ10gPSBtaW4oJGZvcm1bJ2ZhaWxlZEF0dGVtcHRUaHJlc2hvbGQnXSwgNSk7CgkgICAgJGZvcm1bJ2ZhaWxlZEF0dGVtcHRUaHJlc2hvbGQnXSA9IG1heCgkZm9ybVsnZmFpbGVkQXR0ZW1wdFRocmVzaG9sZCddLCAwKTsKCSAgICAkcmV0ID0gR2FsbGVyeUNvcmVBcGk6OnNldFBsdWdpblBhcmFtZXRlcigKCQknbW9kdWxlJywgJ2NhcHRjaGEnLCAnZmFpbGVkQXR0ZW1wdFRocmVzaG9sZCcsICRmb3JtWydmYWlsZWRBdHRlbXB0VGhyZXNob2xkJ10pOwoJICAgIGlmICgkcmV0KSB7CgkJcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJICAgIH0KCgkgICAgLyogU2F2ZSBjb25maWd1cmF0aW9uIGZvciBvdGhlciBtb2R1bGVzICovCgkgICAgaWYgKCFlbXB0eSgkZm9ybVsnbGV2ZWwnXSkpIHsKCQlsaXN0ICgkcmV0LCAkb3B0aW9uSW5zdGFuY2VzKSA9IENhcHRjaGFBZG1pbk9wdGlvbjo6Z2V0QWxsT3B0aW9ucygpOwoJCWlmICgkcmV0KSB7CgkJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCQl9CgkJZm9yZWFjaCAoJGZvcm1bJ2xldmVsJ10gYXMgJG9wdGlvbklkID0+ICRsZXZlbCkgewoJCSAgICBpZiAoIWlzc2V0KCRvcHRpb25JbnN0YW5jZXNbJG9wdGlvbklkXSkpIHsKCQkJcmV0dXJuIGFycmF5KEdhbGxlcnlDb3JlQXBpOjplcnJvcihFUlJPUl9CQURfUEFSQU1FVEVSKSwgbnVsbCk7CgkJICAgIH0KCQkgICAgbGlzdCAoJHJldCwgJHRpdGxlLCAkcGFyYW1EYXRhLCAkY2hvaWNlcykgPQoJCQkkb3B0aW9uSW5zdGFuY2VzWyRvcHRpb25JZF0tPmdldE9wdGlvbkRhdGEoKTsKCQkgICAgaWYgKCRyZXQpIHsKCQkJcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJCSAgICB9CgkJICAgIGlmICghaW5fYXJyYXkoJGxldmVsLCAkY2hvaWNlcykpIHsKCQkJcmV0dXJuIGFycmF5KEdhbGxlcnlDb3JlQXBpOjplcnJvcihFUlJPUl9CQURfUEFSQU1FVEVSKSwgbnVsbCk7CgkJICAgIH0KCQkgICAgJHJldCA9IEdhbGxlcnlDb3JlQXBpOjpzZXRQbHVnaW5QYXJhbWV0ZXIoJHBhcmFtRGF0YVswXSwgJHBhcmFtRGF0YVsxXSwKCQkJCQkJCSAgICAgICRwYXJhbURhdGFbMl0sICRsZXZlbCk7CgkJICAgIGlmICgkcmV0KSB7CgkJCXJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCQkgICAgfQoJCX0KCSAgICB9CgoJICAgICRyZWRpcmVjdFsndmlldyddID0gJ2NvcmUuU2l0ZUFkbWluJzsKCSAgICAkcmVkaXJlY3RbJ3N1YlZpZXcnXSA9ICdjYXB0Y2hhLkNhcHRjaGFTaXRlQWRtaW4nOwoJICAgICRzdGF0dXNbJ3NhdmVkJ10gPSAxOwoJfSBlbHNlIGlmIChpc3NldCgkZm9ybVsnYWN0aW9uJ11bJ3Jlc2V0J10pKSB7CgkgICAgJHJlZGlyZWN0Wyd2aWV3J10gPSAnY29yZS5TaXRlQWRtaW4nOwoJICAgICRyZWRpcmVjdFsnc3ViVmlldyddID0gJ2NhcHRjaGEuQ2FwdGNoYVNpdGVBZG1pbic7Cgl9CgoJaWYgKCFlbXB0eSgkcmVkaXJlY3QpKSB7CgkgICAgJHJlc3VsdHNbJ3JlZGlyZWN0J10gPSAkcmVkaXJlY3Q7Cgl9IGVsc2UgewoJICAgICRyZXN1bHRzWydkZWxlZ2F0ZSddWyd2aWV3J10gPSAnY29yZS5TaXRlQWRtaW4nOwoJICAgICRyZXN1bHRzWydkZWxlZ2F0ZSddWydzdWJWaWV3J10gPSAnY2FwdGNoYS5DYXB0Y2hhU2l0ZUFkbWluJzsKCX0KCSRyZXN1bHRzWydzdGF0dXMnXSA9ICRzdGF0dXM7CgkkcmVzdWx0c1snZXJyb3InXSA9ICRlcnJvcjsKCglyZXR1cm4gYXJyYXkobnVsbCwgJHJlc3VsdHMpOwogICAgfQp9CgovKioKICogU2V0dGluZ3MgZm9yIENhcHRjaGEKICovCmNsYXNzIENhcHRjaGFTaXRlQWRtaW5WaWV3IGV4dGVuZHMgR2FsbGVyeVZpZXcgewoKICAgIC8qKgogICAgICogQHNlZSBHYWxsZXJ5Vmlldzo6bG9hZFRlbXBsYXRlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGxvYWRUZW1wbGF0ZSgmJHRlbXBsYXRlLCAmJGZvcm0pIHsKCSRyZXQgPSBHYWxsZXJ5Q29yZUFwaTo6YXNzZXJ0VXNlcklzU2l0ZUFkbWluaXN0cmF0b3IoKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJfQoKCS8qIExvYWQgb3VyIGRlZmF1bHQgdmFsdWVzIGlmIHdlIGRpZG4ndCBqdXN0IGNvbWUgZnJvbSB0aGlzIGZvcm0uICovCglpZiAoJGZvcm1bJ2Zvcm1OYW1lJ10gIT0gJ0NhcHRjaGFTaXRlQWRtaW4nKSB7CgkgICAgJGZvcm1bJ2Zvcm1OYW1lJ10gPSAnQ2FwdGNoYVNpdGVBZG1pbic7CgoJICAgIGxpc3QgKCRyZXQsICRmb3JtWydmYWlsZWRBdHRlbXB0VGhyZXNob2xkJ10pID0KCQlHYWxsZXJ5Q29yZUFwaTo6Z2V0UGx1Z2luUGFyYW1ldGVyKCdtb2R1bGUnLCAnY2FwdGNoYScsICdmYWlsZWRBdHRlbXB0VGhyZXNob2xkJyk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkgICAgfQoJfQoKCS8qIExvYWQgYWRtaW4gb3B0aW9ucyAqLwoJbGlzdCAoJHJldCwgJG9wdGlvbkluc3RhbmNlcykgPSBDYXB0Y2hhQWRtaW5PcHRpb246OmdldEFsbE9wdGlvbnMoKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJfQoJJG9wdGlvbkRhdGEgPSBhcnJheSgpOwoJZm9yZWFjaCAoJG9wdGlvbkluc3RhbmNlcyBhcyAkb3B0aW9uSWQgPT4gJG9wdGlvbikgewoJICAgIGxpc3QgKCRyZXQsICR0aXRsZSwgJHBhcmFtRGF0YSwgJGNob2ljZXMpID0gJG9wdGlvbi0+Z2V0T3B0aW9uRGF0YSgpOwoJICAgIGlmICgkcmV0KSB7CgkJcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJICAgIH0KCSAgICBsaXN0ICgkcmV0LCAkcGFyYW0pID0KCQlHYWxsZXJ5Q29yZUFwaTo6Z2V0UGx1Z2luUGFyYW1ldGVyKCRwYXJhbURhdGFbMF0sICRwYXJhbURhdGFbMV0sICRwYXJhbURhdGFbMl0pOwoJICAgIGlmICgkcmV0KSB7CgkJcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJICAgIH0KCSAgICAkb3B0aW9uRGF0YVskb3B0aW9uSWRdID0KCQlhcnJheSgndGl0bGUnID0+ICR0aXRsZSwgJ3ZhbHVlJyA9PiAkcGFyYW0sICdjaG9pY2VzJyA9PiAkY2hvaWNlcyk7Cgl9CgoJJHRlbXBsYXRlLT5zZXRWYXJpYWJsZSgnQ2FwdGNoYVNpdGVBZG1pbicsCgkJCSAgICAgICBhcnJheSgnZmFpbGVkQXR0ZW1wdFRocmVzaG9sZExpc3QnID0+IHJhbmdlKDAsIDUpLAoJCQkJICAgICAnb3B0aW9ucycgPT4gJG9wdGlvbkRhdGEpKTsKCSR0ZW1wbGF0ZS0+c2V0VmFyaWFibGUoJ2NvbnRyb2xsZXInLCAnY2FwdGNoYS5DYXB0Y2hhU2l0ZUFkbWluJyk7CgoJcmV0dXJuIGFycmF5KG51bGwsCgkJICAgICBhcnJheSgnYm9keScgPT4gJ21vZHVsZXMvY2FwdGNoYS90ZW1wbGF0ZXMvQ2FwdGNoYVNpdGVBZG1pbi50cGwnKSk7CiAgICB9Cn0KCi8qKgogKiBJbnRlcmZhY2UgZm9yIG90aGVyIG1vZHVsZXMgdG8gYWRkIGNhcHRjaGEgY29uZmlndXJhdGlvbiBpbnRvIGNhcHRjaGEgc2l0ZSBhZG1pbi4KICoKICogQHBhY2thZ2UgQ2FwdGNoYQogKiBAc3VicGFja2FnZSBVc2VySW50ZXJmYWNlCiAqLwpjbGFzcyBDYXB0Y2hhQWRtaW5PcHRpb24gewoKICAgIC8qKgogICAgICogUmV0dXJuIGFsbCBhdmFpbGFibGUgb3B0aW9ucy4KICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5IG9iamVjdCBHYWxsZXJ5U3RhdHVzIGEgc3RhdHVzIGNvZGUKICAgICAqICAgICAgICAgICAgICAgYXJyYXkgb2Ygc3RyaW5nIG9wdGlvbklkID0+IENhcHRjaGFBZG1pbk9wdGlvbiBpbnN0YW5jZQogICAgICogQHN0YXRpYwogICAgICovCiAgICBmdW5jdGlvbiBnZXRBbGxPcHRpb25zKCkgewoJJHRlc3RPcHRpb25zID0gQ2FwdGNoYUFkbWluT3B0aW9uOjp0ZXN0T3B0aW9ucygpOwoJaWYgKGlzc2V0KCR0ZXN0T3B0aW9ucykpIHsKCSAgICByZXR1cm4gYXJyYXkobnVsbCwgJHRlc3RPcHRpb25zKTsKCX0KCglsaXN0ICgkcmV0LCAkb3B0aW9uSWRzKSA9CgkgICAgR2FsbGVyeUNvcmVBcGk6OmdldEFsbEZhY3RvcnlJbXBsZW1lbnRhdGlvbklkcygnQ2FwdGNoYUFkbWluT3B0aW9uJyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCgkkb3B0aW9uSW5zdGFuY2VzID0gYXJyYXkoKTsKCWZvcmVhY2ggKGFycmF5X2tleXMoJG9wdGlvbklkcykgYXMgJG9wdGlvbklkKSB7CgkgICAgbGlzdCAoJHJldCwgJG9wdGlvbkluc3RhbmNlc1skb3B0aW9uSWRdKSA9CgkJR2FsbGVyeUNvcmVBcGk6Om5ld0ZhY3RvcnlJbnN0YW5jZUJ5SWQoJ0NhcHRjaGFBZG1pbk9wdGlvbicsICRvcHRpb25JZCk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkgICAgfQoJfQoKCXJldHVybiBhcnJheShudWxsLCAkb3B0aW9uSW5zdGFuY2VzKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCBvcHRpb25zIHRvIHVzZSB3aXRoIHVuaXQgdGVzdHMuCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRvcHRpb25zIChvcHRpb25hbCkgYXJyYXkgb2Ygc3RyaW5nIG9wdGlvbklkID0+IENhcHRjaGFBZG1pbk9wdGlvbiBpbnN0YW5jZQogICAgICogQHJldHVybiBudWxsIG9yIGFycmF5IG9mIHN0cmluZyBvcHRpb25JZCA9PiBDYXB0Y2hhQWRtaW5PcHRpb24gdGVzdCBpbnN0YW5jZQogICAgICogQHN0YXRpYwogICAgICovCiAgICBmdW5jdGlvbiB0ZXN0T3B0aW9ucygkb3B0aW9ucz1udWxsKSB7CglzdGF0aWMgJHRlc3RPcHRpb25zID0gbnVsbDsKCWlmIChpc3NldCgkb3B0aW9ucykpIHsKCSAgICAkdGVzdE9wdGlvbnMgPSAkb3B0aW9uczsKCX0KCXJldHVybiAkdGVzdE9wdGlvbnM7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgZGF0YSBhYm91dCB0aGlzIGNvbmZpZ3VyYXRpb24gb3B0aW9uLgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkgb2JqZWN0IEdhbGxlcnlTdGF0dXMgYSBzdGF0dXMgY29kZQogICAgICogICAgICAgICAgICAgICBzdHJpbmcgbG9jYWxpemVkIHRpdGxlIGZvciB0aGlzIG9wdGlvbgogICAgICogICAgICAgICAgICAgICBhcnJheShwbHVnaW5UeXBlLCBwbHVnaW5JZCwgcGFyYW1ldGVyTmFtZSkgdG8gY29uZmlndXJlCiAgICAgKiAgICAgICAgICAgICAgIGFycmF5IG9mIHN0cmluZyBjaG9pY2VzIChhbnkgb2YgSElHSCwgTUVESVVNLCBMT1csIE9GRikKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0T3B0aW9uRGF0YSgpIHsKCXJldHVybiBhcnJheShHYWxsZXJ5Q29yZUFwaTo6ZXJyb3IoRVJST1JfVU5JTVBMRU1FTlRFRCksCgkJICAgICBudWxsLCBudWxsLCBudWxsKTsKICAgIH0KfQo/Pgo=');
expand_e0ab974354($outputDir, 'MANIFEST', 'IyAkUmV2aXNpb246IDE2MDQxICQKIyBGaWxlIGNyYzMyIGNyYzMyKGNybGYpIHNpemUgc2l6ZShjcmxmKSAgb3IgIFIgRmlsZQptb2R1bGVzL2NhcHRjaGEvQ2FwdGNoYUNvbmZpZ0FkbWluLmluYwkzMjgwMjIyNzQ0CTIxOTAyNjY5ODgJMjM2NgkyNDQwCm1vZHVsZXMvY2FwdGNoYS9DYXB0Y2hhSW1hZ2UuaW5jCTg2NTc4ODgwOAkzNjY4MTQ4NTc3CTIwNjUJMjEzMgptb2R1bGVzL2NhcHRjaGEvQ2FwdGNoYVNpdGVBZG1pbi5pbmMJMTMxNTEzNTkxOAkxNTM2ODI4MDg0CTY5NTYJNzE4Mwptb2R1bGVzL2NhcHRjaGEvY2xhc3Nlcy9DYXB0Y2hhSGVscGVyLmNsYXNzCTE0NzkyNDAyMjAJMzA0Mjg0Mjk0OQkyMzAxCTIzNzMKbW9kdWxlcy9jYXB0Y2hhL2NsYXNzZXMvQ2FwdGNoYVZhbGlkYXRpb25QbHVnaW4uaW5jCTI3MjYwOTkyNDQJMzY1ODk4Nzk1CTUyNDYJNTQxNwptb2R1bGVzL2NhcHRjaGEvY2xhc3Nlcy9SZXNldEZhaWx1cmVDb3VudHNUYXNrLmNsYXNzCTM1MDgxMjU2MTcJMjUxNTYwMzM2NQkyMjQ4CTIzMTkKbW9kdWxlcy9jYXB0Y2hhL2RhdGEvY29kZV9iZy5qcGcJMTUzMDI4MTk0OQkxNTMwMjgxOTQ5CTY0MjkJNjQyOQptb2R1bGVzL2NhcHRjaGEvbW9kdWxlLmluYwkzNzQ1Mzg3ODkzCTI3ODAxMjE0NzEJNDQxNwk0NTY3Cm1vZHVsZXMvY2FwdGNoYS90ZW1wbGF0ZXMvQ2FwdGNoYUNvbmZpZ0FkbWluLnRwbAkyMDc2NTc2OTg4CTMxNjk4NTcyODkJMTg4MQkxOTUwCm1vZHVsZXMvY2FwdGNoYS90ZW1wbGF0ZXMvQ2FwdGNoYVNpdGVBZG1pbi50cGwJMTk5NzgxOTY2OAkxNjM4NDg1MDg4CTM1MjAJMzYxMgptb2R1bGVzL2NhcHRjaGEvdGVtcGxhdGVzL0NhcHRjaGFWYWxpZGF0aW9uUGx1Z2luLnRwbAkzMzY4MDE3MTI3CTM4OTcyNTkwMTEJOTQ3CTk3NAo=');
expand_e0ab974354($outputDir, 'classes/CaptchaHelper.class', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogQHBhY2thZ2UgQ2FwdGNoYQogKiBAc3VicGFja2FnZSBDbGFzc2VzCiAqIEBhdXRob3IgU3RlZmFuIElvYWNoaW0gPHN0ZWZhbmlvYWNoaW1AZ21haWwuY29tPgogKiBAYXV0aG9yIEJoYXJhdCBNZWRpcmF0dGEgPGJoYXJhdEBtZW5hbHRvLmNvbT4KICogQHZlcnNpb24gJFJldmlzaW9uOiAxNTUxMyAkCiAqLwpjbGFzcyBDYXB0Y2hhSGVscGVyIHsKICAgIC8qKgogICAgICogVmVyaWZ5IHRoZSBleGlzdGVuY2Ugb2YgdGhlIEdEIGZ1bmN0aW9ucyB0aGF0IHdlIHJlcXVpcmUgdG8gZHJhdyBhIGNhcHRjaGEuCiAgICAgKiBAcmV0dXJuIGFycmF5ICgnZmFpbCcgPT4gYXJyYXkoZnVuYywgZnVuYywgLi4uKSwgJ3N1Y2Nlc3MnID0+IGFycmF5KGZ1bmMsIGZ1bmMsIC4uLikpCiAgICAgKi8KICAgIGZ1bmN0aW9uIHRlc3RSZXF1aXJlZEdkRnVuY3Rpb25zKCkgewoJZ2xvYmFsICRnYWxsZXJ5OwoJJHBocFZtID0gJGdhbGxlcnktPmdldFBocFZtKCk7CgoJJGdkRnVuY3Rpb25zID0gYXJyYXkoKTsKCSRnZEZ1bmN0aW9uc1tdID0gJ0ltYWdlQ3JlYXRlRnJvbUpQRUcnOwoJJGdkRnVuY3Rpb25zW10gPSAnSW1hZ2VDb2xvckFsbG9jYXRlJzsKCSRnZEZ1bmN0aW9uc1tdID0gJ0ltYWdlU3RyaW5nJzsKCSRnZEZ1bmN0aW9uc1tdID0gJ0ltYWdlSlBFRyc7CgkkZ2RGdW5jdGlvbnNbXSA9ICdJbWFnZURlc3Ryb3knOwoJJGdkRnVuY3Rpb25zW10gPSAnaW1hZ2VzeCc7CgoJJGdkUmVwb3J0ID0gYXJyYXkoJ3N1Y2Nlc3MnID0+IGFycmF5KCksICdmYWlsJyA9PiBhcnJheSgpKTsKCWZvcmVhY2ggKCRnZEZ1bmN0aW9ucyBhcyAkZ2RGdW5jdGlvbikgewoJICAgIGlmICgkcGhwVm0tPmZ1bmN0aW9uX2V4aXN0cygkZ2RGdW5jdGlvbikpIHsKCQkkZ2RSZXBvcnRbJ3N1Y2Nlc3MnXVtdID0gJGdkRnVuY3Rpb247CgkgICAgfSBlbHNlIHsKCQkkZ2RSZXBvcnRbJ2ZhaWwnXVtdID0gJGdkRnVuY3Rpb247CgkgICAgfQoJfQoKCXJldHVybiAkZ2RSZXBvcnQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZW5lcmF0ZSBhIG5ldyBjYXB0Y2hhIGNvZGUgYW5kIHB1dCBpdCBpbnRvIHRoZSBzZXNzaW9uLgogICAgICovCiAgICBmdW5jdGlvbiBnZW5lcmF0ZUNhcHRjaGFTZXNzaW9uS2V5KCkgewoJZ2xvYmFsICRnYWxsZXJ5OwoJbGlzdCAoJHVzZWMsICRzZWMpID0gZXhwbG9kZSgnICcsIG1pY3JvdGltZSgpKTsKCSRyYW5kb21fbnVtID0gcmFuZCgpOwoJJGRhdGVrZXkgPSBkYXRlKCdIIGkgcycpOwoJJHJjb2RlID0gaGV4ZGVjKG1kNShHYWxsZXJ5VXRpbGl0aWVzOjpnZXRTZXJ2ZXJWYXIoJ0hUVFBfVVNFUl9BR0VOVCcpIC4KCQkJICAgICRyYW5kb21fbnVtIC4gJGRhdGVrZXkpKTsKCSRjb2RlID0gc3Vic3RyKCRyY29kZSwgMiwgNik7Cgkkc2Vzc2lvbiA9JiAkZ2FsbGVyeS0+Z2V0U2Vzc2lvbigpOwoJJHNlc3Npb24tPnB1dCgnY2FwdGNoYS5rZXknLCAkY29kZSk7CiAgICB9Cn0KPz4K');
expand_e0ab974354($outputDir, 'classes/CaptchaValidationPlugin.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogQHZlcnNpb24gJFJldmlzaW9uOiAxNTUxMyAkCiAqIEBwYWNrYWdlIENhcHRjaGEKICogQGF1dGhvciBTdGVmYW4gSW9hY2hpbSA8c3RlZmFuaW9hY2hpbUBnbWFpbC5jb20+CiAqIEBhdXRob3IgQmhhcmF0IE1lZGlyYXR0YSA8YmhhcmF0QG1lbmFsdG8uY29tPgogKiBAYXV0aG9yIEFsYW4gSGFyZGVyIDxhbGFuLmhhcmRlckBzdW4uY29tPgogKi8KCkdhbGxlcnlDb3JlQXBpOjpyZXF1aXJlT25jZSgnbW9kdWxlcy9jb3JlL2NsYXNzZXMvR2FsbGVyeVZhbGlkYXRpb25QbHVnaW4uY2xhc3MnKTsKCi8qKgogKiBJbXBsZW1lbnQgVmFsaWRhdGlvblBsdWdpbiB0byBwcmVzZW50IHRoZSBIVE1MIGZvciB0aGUgY2FwdGNoYSBpbWFnZQogKiBhbmQgYW4gaW5wdXQgYm94IGZvciB0aGUgdXNlciB0byB0eXBlIGluIHRoZSBjb3JyZWN0IHZhbHVlLgogKgogKiBAcGFja2FnZSBDYXB0Y2hhCiAqIEBzdWJwYWNrYWdlIENsYXNzZXMKICovCmNsYXNzIENhcHRjaGFWYWxpZGF0aW9uUGx1Z2luIGV4dGVuZHMgR2FsbGVyeVZhbGlkYXRpb25QbHVnaW4gewoKICAgIC8qKgogICAgICogQHNlZSBHYWxsZXJ5VmFsaWRhdGlvblBsdWdpbjo6cGVyZm9ybVZhbGlkYXRpb24KICAgICAqLwogICAgZnVuY3Rpb24gcGVyZm9ybVZhbGlkYXRpb24oJiRmb3JtLCAkb3B0aW9ucz1hcnJheSgpKSB7CglnbG9iYWwgJGdhbGxlcnk7Cgkkc2Vzc2lvbiA9JiAkZ2FsbGVyeS0+Z2V0U2Vzc2lvbigpOwoKCWxpc3QgKCRyZXQsICR1c2VDYXB0Y2hhLCAkZmFpbGVkQXR0ZW1wdHMpID0gJHRoaXMtPl9zaG91bGRWYWxpZGF0ZSgkb3B0aW9ucyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsLCBudWxsKTsKCX0KCgkkZXJyb3IgPSBhcnJheSgpOwoJJHN1Y2Nlc3MgPSB0cnVlOwoJaWYgKCR1c2VDYXB0Y2hhKSB7CgkgICAgJGNvZGUgPSAkc2Vzc2lvbi0+Z2V0KCdjYXB0Y2hhLmtleScpOwoKCSAgICBpZiAoZW1wdHkoJGZvcm1bJ0NhcHRjaGFWYWxpZGF0aW9uUGx1Z2luJ11bJ3dvcmQnXSkpIHsKCQkkZXJyb3JbXSA9ICdmb3JtW2Vycm9yXVtDYXB0Y2hhVmFsaWRhdGlvblBsdWdpbl1bbWlzc2luZ10nOwoJCSRzdWNjZXNzID0gZmFsc2U7CgkgICAgfSBlbHNlIGlmIChlbXB0eSgkY29kZSkgfHwgJGZvcm1bJ0NhcHRjaGFWYWxpZGF0aW9uUGx1Z2luJ11bJ3dvcmQnXSAhPSAkY29kZSkgewoJCSRlcnJvcltdID0gJ2Zvcm1bZXJyb3JdW0NhcHRjaGFWYWxpZGF0aW9uUGx1Z2luXVtpbnZhbGlkXSc7CgkJJHN1Y2Nlc3MgPSBmYWxzZTsKCgkJLyogQ2xlYXIga2V5IGluIHNlc3Npb24gb24gdmFsaWRhdGlvbiBmYWlsdXJlIHRvIHRod2FydCBhdXRvbWF0ZWQgYXR0YWNrcyAqLwoJCSRzZXNzaW9uLT5yZW1vdmUoJ2NhcHRjaGEua2V5Jyk7CgkgICAgfQoJfQoKCWlmIChpc3NldCgkb3B0aW9uc1sncGFzcyddKSAmJiAhJG9wdGlvbnNbJ3Bhc3MnXSkgewoJICAgIC8qIEluY3JlbWVudCBmYWlsdXJlIGNvdW50IGVpdGhlciBpbiBkYiBvciBzZXNzaW9uICovCgkgICAgaWYgKCFlbXB0eSgkb3B0aW9uc1sna2V5J10pKSB7CgkJJHJldCA9IEdhbGxlcnlDb3JlQXBpOjpzZXRQbHVnaW5QYXJhbWV0ZXIoCgkJCSdtb2R1bGUnLCAnY2FwdGNoYScsICdmYWlsQ291bnQtJyAuICRvcHRpb25zWydrZXknXSwgJGZhaWxlZEF0dGVtcHRzICsgMSk7CgkJaWYgKCRyZXQpIHsKCQkgICAgcmV0dXJuIGFycmF5KCRyZXQsIG51bGwsIG51bGwpOwoJCX0KCSAgICB9IGVsc2UgewoJCSRzZXNzaW9uLT5wdXQoJ2NhcHRjaGEuZmFpbGVkQXR0ZW1wdHMnLCAkZmFpbGVkQXR0ZW1wdHMgKyAxKTsKCSAgICB9Cgl9IGVsc2UgaWYgKGlzc2V0KCRvcHRpb25zWydwYXNzJ10pICYmICRvcHRpb25zWydwYXNzJ10KCQkmJiAkc3VjY2VzcyAmJiAkZmFpbGVkQXR0ZW1wdHMgPiAwICYmICFlbXB0eSgkb3B0aW9uc1sna2V5J10pKSB7CgkgICAgJHJldCA9IEdhbGxlcnlDb3JlQXBpOjpyZW1vdmVQbHVnaW5QYXJhbWV0ZXIoCgkJICAgICdtb2R1bGUnLCAnY2FwdGNoYScsICdmYWlsQ291bnQtJyAuICRvcHRpb25zWydrZXknXSk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCwgbnVsbCk7CgkgICAgfQoJfQoKCXJldHVybiBhcnJheShudWxsLCAkZXJyb3IsICRzdWNjZXNzKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeVZhbGlkYXRpb25QbHVnaW46OmxvYWRUZW1wbGF0ZQogICAgICovCiAgICBmdW5jdGlvbiBsb2FkVGVtcGxhdGUoJiRmb3JtLCAkb3B0aW9ucz1hcnJheSgpKSB7CglsaXN0ICgkcmV0LCAkdXNlQ2FwdGNoYSkgPSAkdGhpcy0+X3Nob3VsZFZhbGlkYXRlKCRvcHRpb25zKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuIGFycmF5KCRyZXQsIG51bGwsIG51bGwpOwoJfQoKCWlmICgkdXNlQ2FwdGNoYSkgewoJICAgIEdhbGxlcnlDb3JlQXBpOjpyZXF1aXJlT25jZSgnbW9kdWxlcy9jYXB0Y2hhL2NsYXNzZXMvQ2FwdGNoYUhlbHBlci5jbGFzcycpOwoJICAgIENhcHRjaGFIZWxwZXI6OmdlbmVyYXRlQ2FwdGNoYVNlc3Npb25LZXkoKTsKCSAgICByZXR1cm4gYXJyYXkobnVsbCwKCQkJICdtb2R1bGVzL2NhcHRjaGEvdGVtcGxhdGVzL0NhcHRjaGFWYWxpZGF0aW9uUGx1Z2luLnRwbCcsCgkJCSAnbW9kdWxlc19jYXB0Y2hhJyk7Cgl9CgoJcmV0dXJuIGFycmF5KG51bGwsIG51bGwsIG51bGwpOwogICAgfQoKICAgIC8qKgogICAgICogRGV0ZXJtaW5lIGlmIGNhcHRjaGEgdmFsaWRhdGlvbiBzaG91bGQgYmUgZW5mb3JjZWQKICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgJG9wdGlvbnMKICAgICAqIEByZXR1cm4gYXJyYXkgb2JqZWN0IEdhbGxlcnlTdGF0dXMgYSBzdGF0dXMgY29kZQogICAgICogICAgICAgICAgICAgICBib29sZWFuIHRydWUgdG8gdmFsaWRhdGUKICAgICAqICAgICAgICAgICAgICAgaW50IGN1cnJlbnQgZmFpbHVyZSBjb3VudCwgaWYgYXBwbGljYWJsZQogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIGZ1bmN0aW9uIF9zaG91bGRWYWxpZGF0ZSgkb3B0aW9ucykgewoJJHVzZUNhcHRjaGEgPSBmYWxzZTsKCSRmYWlsZWRBdHRlbXB0cyA9IDA7Cgkkc2VjdXJpdHlMZXZlbCA9IGVtcHR5KCRvcHRpb25zWydsZXZlbCddKSA/ICdISUdIJyA6ICRvcHRpb25zWydsZXZlbCddOwoKCXN3aXRjaCAoJHNlY3VyaXR5TGV2ZWwpIHsKCWNhc2UgJ0hJR0gnOgoJICAgIC8qIEFsd2F5cyByZXF1aXJlIGNhcHRjaGEgdG8gYmUgZW5hYmxlZCAqLwoJICAgICR1c2VDYXB0Y2hhID0gdHJ1ZTsKCSAgICBicmVhazsKCgljYXNlICdNRURJVU0nOgoJY2FzZSAnTE9XJzoKCSAgICAvKgoJICAgICAqIFVzZSB0aGUgY2FwdGNoYSB3aGVuIHRoZSBudW1iZXIgb2YgZmFpbGVkIGF0dGVtcHRzIGV4Y2VlZHMgdGhlIG1vZHVsZSdzCgkgICAgICogZmFpbGVkQXR0ZW1wdFRocmVzaG9sZCBwYXJhbWV0ZXIuICBUcmFjayBmYWlsZWQgYXR0ZW1wdHMgaW4gZGIgdmlhIGEgZ2l2ZW4KCSAgICAgKiB1bmlxdWUga2V5IChNRURJVU0gbGV2ZWwpIG9yIGluIHRoZSBzZXNzaW9uIChMT1cgbGV2ZWwpLgoJICAgICAqLwoJICAgIGxpc3QgKCRyZXQsICRmYWlsZWRBdHRlbXB0VGhyZXNob2xkKSA9IEdhbGxlcnlDb3JlQXBpOjpnZXRQbHVnaW5QYXJhbWV0ZXIoCgkJICAgICdtb2R1bGUnLCAnY2FwdGNoYScsICdmYWlsZWRBdHRlbXB0VGhyZXNob2xkJyk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCwgbnVsbCk7CgkgICAgfQoKCSAgICBpZiAoJHNlY3VyaXR5TGV2ZWwgPT0gJ0xPVycpIHsKCQlnbG9iYWwgJGdhbGxlcnk7CgkJJHNlc3Npb24gPSYgJGdhbGxlcnktPmdldFNlc3Npb24oKTsKCQkkZmFpbGVkQXR0ZW1wdHMgPSAkc2Vzc2lvbi0+Z2V0KCdjYXB0Y2hhLmZhaWxlZEF0dGVtcHRzJyk7CgkgICAgfSBlbHNlIGlmICghZW1wdHkoJG9wdGlvbnNbJ2tleSddKSkgewoJCWxpc3QgKCRyZXQsICRmYWlsZWRBdHRlbXB0cykgPSBHYWxsZXJ5Q29yZUFwaTo6Z2V0UGx1Z2luUGFyYW1ldGVyKAoJCQknbW9kdWxlJywgJ2NhcHRjaGEnLCAnZmFpbENvdW50LScgLiAkb3B0aW9uc1sna2V5J10pOwoJCWlmICgkcmV0KSB7CgkJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsLCBudWxsKTsKCQl9CgkgICAgfQoKCSAgICBpZiAoJGZhaWxlZEF0dGVtcHRzID4gJGZhaWxlZEF0dGVtcHRUaHJlc2hvbGQpIHsKCQkkdXNlQ2FwdGNoYSA9IHRydWU7CgkgICAgfQoJICAgIGJyZWFrOwoKCWRlZmF1bHQ6CgkgICAgLyogQmFkIFBhcmFtZXRlciAqLwoJICAgIHJldHVybiBhcnJheShHYWxsZXJ5Q29yZUFwaTo6ZXJyb3IoRVJST1JfQkFEX1BBUkFNRVRFUiksCgkJCSBudWxsLCBudWxsKTsKCX0KCglyZXR1cm4gYXJyYXkobnVsbCwgJHVzZUNhcHRjaGEsIChpbnQpJGZhaWxlZEF0dGVtcHRzKTsKICAgIH0KfQo/Pgo=');
expand_e0ab974354($outputDir, 'classes/ResetFailureCountsTask.class', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgpHYWxsZXJ5Q29yZUFwaTo6cmVxdWlyZU9uY2UoJ21vZHVsZXMvY29yZS9BZG1pbk1haW50ZW5hbmNlLmluYycpOwoKLyoqCiAqIFRoaXMgaXMgYSBNYWludGVuYW5jZVRhc2sgdGhhdCB3aWxsIGNsZWFyIGFsbCBmYWlsdXJlIGNvdW50cyBpbiB0aGUgZGF0YWJhc2UuCiAqIEBwYWNrYWdlIENhcHRjaGEKICogQHN1YnBhY2thZ2UgQ2xhc3NlcwogKiBAYXV0aG9yIEFsYW4gSGFyZGVyIDxhbGFuLmhhcmRlckBzdW4uY29tPgogKiBAdmVyc2lvbiAkUmV2aXNpb246IDE1NTEzICQKICovCmNsYXNzIFJlc2V0RmFpbHVyZUNvdW50c1Rhc2sgZXh0ZW5kcyBNYWludGVuYW5jZVRhc2sgewogICAgLyoqCiAgICAgKiBAc2VlIE1haW50ZW5hbmNlVGFzazo6Z2V0SW5mbwogICAgICovCiAgICBmdW5jdGlvbiBnZXRJbmZvKCkgewoJZ2xvYmFsICRnYWxsZXJ5OwoKCSRpbmZvWydsMTBEb21haW4nXSA9ICdtb2R1bGVzX2NhcHRjaGEnOwoJJGluZm9bJ3RpdGxlJ10gPSAkZ2FsbGVyeS0+aTE4bignUmVzZXQgY2FwdGNoYSBmYWlsdXJlIGNvdW50cycpOwoJJGluZm9bJ2Rlc2NyaXB0aW9uJ10gPSAkZ2FsbGVyeS0+aTE4bigKCSAgICAnQ2FwdGNoYSByZWNvcmRzIGZhaWx1cmUgY291bnRzIGluIHRoZSBkYXRhYmFzZSB3aGVuIGNvbmZpZ3VyZWQgZm9yIG1lZGl1bScgLgoJICAgICcgc2VjdXJpdHkgbGV2ZWwuICBSdW4gdGhpcyB0YXNrIHRvIGNsZWFyIGFsbCBjb3VudGVycy4nKTsKCXJldHVybiAkaW5mbzsKICAgIH0KCiAgICAvKioKICAgICAqIEBzZWUgTWFpbnRlbmFuY2VUYXNrOjpydW4KICAgICAqLwogICAgZnVuY3Rpb24gcnVuKCkgewoJbGlzdCAoJHJldCwgJHBhcmFtcykgPSBHYWxsZXJ5Q29yZUFwaTo6ZmV0Y2hBbGxQbHVnaW5QYXJhbWV0ZXJzKCdtb2R1bGUnLCAnY2FwdGNoYScpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCwgbnVsbCk7Cgl9CgoJZm9yZWFjaCAoJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSkgewoJICAgIGlmIChzdWJzdHIoJGtleSwgMCwgMTApID09ICdmYWlsQ291bnQtJykgewoJCSRyZXQgPSBHYWxsZXJ5Q29yZUFwaTo6cmVtb3ZlUGx1Z2luUGFyYW1ldGVyKCdtb2R1bGUnLCAnY2FwdGNoYScsICRrZXkpOwoJCWlmICgkcmV0KSB7CgkJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsLCBudWxsKTsKCQl9CgkgICAgfQoJfQoKCWxpc3QgKCRyZXQsICRtb2R1bGUpID0gR2FsbGVyeUNvcmVBcGk6OmxvYWRQbHVnaW4oJ21vZHVsZScsICdjYXB0Y2hhJyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsLCBudWxsKTsKCX0KCglyZXR1cm4gYXJyYXkobnVsbCwgdHJ1ZSwgYXJyYXkoJG1vZHVsZS0+dHJhbnNsYXRlKCdTdWNjZXNzZnVsbHkgcmVzZXQgZmFpbHVyZSBjb3VudHMnKSkpOwogICAgfQp9Cj8+Cg==');
expand_e0ab974354($outputDir, 'data/code_bg.jpg', '/9j/4QDmRXhpZgAASUkqAAgAAAAFABIBAwABAAAAAQAAADEBAgAcAAAASgAAADIBAgAUAAAAZgAAABMCAwABAAAAAQAAAGmHBAABAAAAegAAAAAAAABBQ0QgU3lzdGVtcyBEaWdpdGFsIEltYWdpbmcAMjAwNTowMzoxMiAyMzo1ODoyNgAFAACQBwAEAAAAMDIyMJCSAgAEAAAAOTA2AAKgBAABAAAAZAAAAAOgBAABAAAAZAAAAAWgBAABAAAAvAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAAAKAAAA/8AAEQgAZABkAwEhAAIRAQMRAf/bAIQAAwICAgIBAwICAgMDAwMEBwQEBAQECQYGBQcKCQsLCgkKCgwNEQ4MDBAMCgoPFA8QERITExMLDhUWFRIWERITEgEEBQUGBQYNBwcNGxIPEhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/8QAfAAAAwEBAQEBAAAAAAAAAAAAAwQFAgEGAAgQAAICAgEDAwEEBwUFCQAAAAECAwQREgUTISIABhQxFSMyQQcWQlJVVtMkUYGUlTOS0dLUF0RUV2FlcZbiAQEAAAAAAAAAAAAAAAAAAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwD9EQckt0inyPDNN80GKt0Hy8UCrhykuNnIdeowbK7A6gswxT5+qK0wk9ul5F4+WFoTZgSYhSjZHU3U5CgfsknJBz46glLwt+Olctpbl46F5khguCsIQudm6sWzBUb7xzh9ssDlWPkc3uU5FeQrPU9sRcWsseZp7RZo1nlWFQuV0AJZZCFIXbbb8seg1XocmtGZbkXHSzxP8gPBI4hBZy6v44AXDf3EbRDD/QoHgqc1niN688iXpa6QQ9DMnSYn8SkEIVOTIFYblTrkk5IGrcrH7f4VJDx9QRshVa3Xjmjn2z1dWMngpIRSQNhr2wx3OflzfZ8/ICSi1syxRxvbcM0jPKySRv2ZjkDOAA5OVJIyfQCENmHhjVSOtYuRSf2uBZJzBKiLGgkM3iQqIdyhH0L6MGwDqpPrWjjCcc9lldJZBKrMFKuIyV31YB4yhVpA4I7nPiAX4kcy8psSXqLNDKZIg93pLAvTVl1wpIDau5TU95WII7BiycPJOk99wOhefIRo4gyB4y2FYuAZFKnVh38QS2R6C0vIGplF5jnapdjI4r3UqI7E9yEAzj8gWJbCjPcYGvtqT+Zvc3+tj/h6Cbfpw0E5RKlSUKKzdSFYjL01fIIbD5kZiQANNQE74xn09ebm+H4qPjrzzXNmMdyus8lSOq3QZR0igIxs5JXO23kA50HoJVJa3K8XATPUrJyMscohSRMT7O+SGTYbKSMjLBQWGBoV9NRVZ+T9vSdaDiqhiMkxjSZcyuyMW6RQ6v4t5KQck7FTjcAOCjar+43rA1JIocvEsPIxCxNhCrR9NyfEZcjVfICUMCcK0+zXi4ZK/D8RegqWFR5Xn183kIMpdQTiUlIQ2/c7YXABC+gpW6MC8l8q9QmZKRaSWKSeXVmkYEh2AGsfUXJxjsoYH8jkc7Us1eTvTQXLK14eiQBINl2EaqYyCVA2b93GzHIO2AktBxL8BacQ6x9N5oI6zhgQShKMHTRZgobzCt3P1y3q1xbXLU1uytCQ0a8rJHJZqrsCgVRGGVm8g3kAwjzquM9z6AV+vNX5iXjqXt+dqTNktWsV41nYWI9tiJI10JZ1cY2XK9sLki+Zx3KXTcjrteSlbiE0IS03QfeNYgurRnIJcqqqe/1Ct+MAp7y96ywLHxPt6XmFr5rzSpTJ6ciErocv+6FYY+quuSxyzd/Wz9Jf/l5Z/wAn/wDv0A71GSLnrlfla7vBeGqV4q8qQI5KPod0LjvrltlX7w7eAUtRvR0JDdY0pXVodlENX5kMMy9RFVQAQGAIORoAZHyuqkKE74UQvwCW3HJQmeaulloxPPq28Z8WzIrKdV2AyzAHwXz9EtT2YeBv9OlSFLkii1Wr1I0gAav3jg8sRnALAYUZjXxG2WCjPDd5Li5V5BperBZFW4UEUkZWJTt1ZMa4JSXBJyd+3fZQlxvJTNHBV49ORkkFlFks1q8ccZg1fuvS7SEL3BRgQI5BkYdfQGqry9TiJJoq1WW3x3ThjNJZF3WNwMAJgJhttmzj7sdxgqLE/F+36MkXISLea3EVYwU5eilh4w5KlFIJKoTkAqzYQY1LKQjw0KvFVm5KL51hOTlWuFhgULKcKIvDY6ZG7EqO7sfptj0aCxNKWrWjx4nrrLq/yGaLZlzGWQBigBEgZwTgZ+h7KGuQNO5ws3y6iEKkiSCEP14ITFiTRmGVUhyTkZy4IDY2E6zSh5T2wL9yy1mjJIITUqSTRTLZkbp6SY2IIdSQqgah5GOviSCnNe1+Fv8AMdXlOAocg6rrFPavHfpbEogKSqCighVyoIVVH0APqf8AqT7S/kzhP89L/X9B67geOvjWpys8VE/JFiJI4YK8TysVGSuxLOHRJD4kjUHuRj1uxTnjo3J+Ys/D+xjH/wB8jiCRLKQFGrPqQAwbuD3GO40AJ8nTh4/hORr17zwVrszxfdp0EcuyIVJBGr7bOcKpfRu/iMZXpcnzh5uyrV/lLLNBOMNDDFOG1PV11y4IJx5bSqdST3DEtiXkXA4+GSJd44rgtEzQuijuGlWMDdW6muT+7keXolGPhx7ZjgbaGea5HctRU5WqsXLsT0mXthnxkHZVD47FG9BMnM8lejfYwRCWRpK6xlGSNgxYu5Z/ErpISgDaiXIIKkx04xw54iKSo3H1LAythVSSRrGFfdCEj3GHJK7qO/j22X0DR5LhOQoQ2uN5Ysiy7islGWOQlCuJAUIKkssRZjkEkNkdx6lsa/K+4eM5uO/GeRqXJJ5J4pJnjrwphlUOT1AznAOWVSgYYVVb0GeGbj7vM2zyduWtWmBijaarCazkvqsVeNcCJiZAjDCkhizMDgjfI8a6WvgNJfXjbNt5uuXE0EbpKTsYUyMEofAn8Q3wd+4WqkfJTUR9l8eLMKMybHkRCqYJwqozphQuvYLgfTJIJJvje5P4En+sp/W9Avy0r2YK/KCaDhI6NeO0sDYVIAGAMf0IJ/FkMSGZie2APUmO9ZqRiS/W+Vxdl/mivZi6pfqjRQ5KBBsw27DsO+E6iqA5dN6+IG+Nfq1plmknLLG81RiXGCsOAVwzAgglg7BScBVapcTcumUyVHMMyuxCwPItin2dVEeEOfvFYkKTkHdc5AAMHEQcTBNUqcfanrdZVNX4SSdNyOqCYVRgW+8dWzny2ZjnyVl+OBj5KNHvWIg8ezSu3ydUjJQKz4KsCqgjEf0wNjk+gDE9u0OU5y7yqrJL0Y66yyFo5FUs3UMUeowrNH9GfGmzDbAGE4vj69x+BF+F1pI9m3PLQQ52SfsHJzjplgQG8fIAnG3oCfZPDpRoSzcoax48MkTpaMUQjd0UAhpBjZwFKgsihu/cDaiZOIr/AKQeuvIEvOiVUEvh4lCzMSjFiQXAIZVwwTBGQfQQ+eWrar0056vVtzRQvGsNWBGUIBGwzuD2R41c9sfmAexOZqd+rJU4oNQFESs8tQtE25GI1jHbbuUIUBVIcA5HZiC/JcpxcM0EHI3+ajmWujaRQQWtAw3AJcgqQG/D5fkc98BT7Y9u/wAU9wf6VV/5/QW4TyS+x6PK3ZJq0te18xoIt3EOp84vuV8ZTsmoy5xlVGQxFCWM8hwM9Fq8BtWU6hSKM6FSv3bRIF1UAdQanUjTY6h9iE94Gre5prkHJcf0FhhsFEEgrufHC4wxIz2BADLjYHONBs88fCETW+LtSTIL0kC8fJmzqS28aeLImy4yuVJGcn6egau1eQ5KXkaU942CixumsgDNM+zBVcsoBDNHkMDqoOwAyvr7l4OTp++IobdCVqixiWKXpdOKWOIFEVwWOACPEsM+TFSCQvoM25Obse/LAn4oUW40o7XqybCWVVRF8RG4ZgjDbAUHQ+LeS+lpLT8h+kK1ar8RXq/GPSlmWdQDqhICL0yE2UBCFYbZXyyF9A3LY5GlclTgacccL7yJXgTIM6yRu+ki58VbsSxQfefsnKKK7aea1NPfmloxWV+SLUW5ZxG67EoSygkuMPn6KCu48vQGXkZuVt2eGlpWJZU8aVqrPq0ljzZSI8tg6MrM4DL92Py/FF5CnxkMjcZ9jlYK+lild+c80iAtGiEvGPNuoV1y+GKoSWII9BYns63GSb28nI6hQk1anJIumo0G0cTKfHBzkkgg+h/Ki/kif/TrP9D0HTxUvGQGG3Skgd67lYnX5cynZD0wY2CyrsVBOBgkt+bet8PLBY9z1rCyTo9VRJL9nPK7K5nDGJY1C5ZWGG1H/wA657g78+h7gp07pazKZIluSzC4h0kZZQGaNM9tIThxhScZzh/U7WpU5A/KlgkjDPNWQJZCw7q7ZUZY+TOAWI1zv2wgUA9XonkuXkr3KnGV7/Ig2K9epFtIMMTI8mFxhXDN2wCFUdwPSc0XIWrVO/brw8h9RTBsO6yxSa4dyzeTeJcgADA7bYYegYvXLHIvPE6vDdMjyWKleItE7MpkYvMTgKjuMBh32BwcZMm5bqcxC0dSPkkaF55K1mN3SZd3bu+WYqmsr/8Ap+PDAD0FbkBx3KXH46eGN/sx0g4uGVJoXGgVsMxO7D/YZySASGG2VPqVQEZ9x8fCZLNSdYAQJKKzSROyxFpGmlGuMCWM5VfrpqO7ANdGhA1pb3Ir0WlLoHqs6wzLOjmSZssFcSAg5VmyuMkfhoW6P2jyF6fiLsvTAnNiatWV7E8gQlYV+/LZaQeKldSFU5BJ2D5vdFE1q9huKe4tivEyT2LrVZJAECeUathSChBH1yD6z+tfG/y5F/rMv/N6DXIyiOqGbiLAtOJUleaHWOFNQyuImcs2GlII2PjH9DsPQOLFCx7bFezykNCzLUklFNasTzAszuFKAFZFAjADYw6oG8WQkh3lHg+1xxF+9xiGNpJ+lIWLojq0KOWePJA6YzL5D/aEH6sT8eUnoWqb8hJc6gaaOw8wAdJBCoBCpoG1fbuxJaTU985AU1vlOPiuP8dQKUciRFHd30XwR48LqPvTGwDa5HiA23eXBe5yuFrUeSVnR7FS31x4MkcbSyOkgYusakKASSpVwBk4Cg/wzn257PPRjpwKOoF+PH0nCIuO8fU2dwy9lGjGM9mVsH0StXqUEMzcxEJ4ryw1miikQB9QjiYnzZ2DYMrBs4TUd8+g3JPFd9tJZXg6fwZ0N6w0j6/GZSGiZ3kAZnx3JZlIyuq47glASwe3+rJ1KMCVkSVWlUyFN006isgaTyikLAYyMrsCuCCKV0rcyXoVpK8VeB43hg2MkjB0LTSxsHIYGIEtsPEHsQQBhYuUuy22irRSrPCetYs1WWSR2Vk6sUZBGAkyasMEnQEEFi4ODhPcD8pajqW54a8LxxQgIfJFiQKfKF8dsDA1AxjUet/YHuj+KT/7g/6X0Eyo3G3vcMUnBc5xFOO5HDLK0baYOdAFVkO2QCUPgPuyMNkg8tnmuN5GbjLc62qiWOhOOgKnUxBGezmQYjLLIxGAy6vk9iABOOtC3Z47olpoPlQ/MiaANLEihYwHDAE7DQAnDhVIbuQWcslpuFscnWqVljSuK1tYJ/uI5wSxXeYAkuiqhIOVXUjIOEDvxjf9oWfs29iO/aMtsCYICGi8gsmpYjYuCUHcNIqhiNlTvJxtK5PQiflYFrzvIiwsbYniDM6PKChXQDtjPZXYfmMAaejJXSuayRulyi1ZJIVe1A0kYYbKAVJUiVXYhgdiBq/cemnrcdX5aSKuIFHHooijrldoqssKnOyFlDbFZGfwAAP7JMgBOWrRte40nipmSMYg+PEyxEyNlm3aVSAdO2n1UMAuBnZ2O4sFGOtx1pjQjkFlKsSq4MLsUZEygCuik/gP5j6jsAzx8S8VVvW56k/HcpfjkmSavIkwFd/JyrV8sFysjLsPMsrLhhn1Puc5FJQn5qpUeezx0UjSOETeRAA3mv1DhlBIGXYjJLAgegkchwXuDl61PkfbXuimlWeFndJZUTSQyuXCp0DquT4rk4GPSf6ofpB/mvjf8wn/AE/oPSchXqcfwcHtjkHkjalMwktfHkE8LO5Oyqrdx3LMGlOdhkgFs1Gks0uNPHROkUtZXeIzo0nVAC9VsKAQTuArasQey6kYUDQfqtaYcYtSfku8KtWRo9bMhdgFjkVi4BIWTsfosRC49TjRqHhrNdTJYkFRIoVZGgZm2A0kK4JHiCXIJb8Ldh6AtN46tI8tbYWdmdxRcu4mQqupDMwVVwq5xkqd8L5n0xSsR8fxQpSSw2ZXha0ksViRqaNgFVrlyQuQzYUYHbsMjLgrzMaXbj2+PrmSasDJUmhVm6kTMYy6axaGUhUUgD94hWyM5e2jXLNevUjlSO4l3GHARwjIdnGNNYxgq3fGDjDdgVrPHb5er8DgLUjNZM3yYXkjawG7EKglWSMamMhWGR0WJZfFjgcxzfI9HpcZZesWE6tNY+KsoOy9nZGRn0ZzoSGzl8NnICpav3K1OVbdOS3CUaTpsBJZjeQRrsrRhmY6KGLMepnOHPb0Hl+Lk+JDzBn46xaeNrULMpsPdClgxWLXKjEgB2AXJII7lSBeKk6PGkiHiyZDuyzwTSMmQPHZst2GBhu4IIP09O/Kb/w3B/5OX/h6AKDmKHvi2vWSnXEbmIQOjQzxuyKzKSGZGUsuTguyyRgDxGYvGJxr2OSj5bmrrchJGIEgWVoYY41Hch2wyYxoxBXvkMuRqgN8YeO4a7HFx3HyotqESR2YoGaJl6bs8hkGBkalsoxxkePk4In488rQ5WCeW3TEOZvmwlGklLauY3RRmNgYycFZGJJ3APYgpyPEVprmLHuSOKtZQJdL10hjMMZBULNKE0jGp/AWA0kPbUH1RmtQcfPyDR+6BIpWaZI5Ynhazu8mZA3kzINm8NWyCR3+voDQ1PbUXJwWYAzpXWO29OJSrwyHxMxTIQ6t4gMue5VdRqB9bo8Wfc81biK9d1pyLBP1Fx1G6qdzucIF2OQcghG/E4AAAscog5JbV3jeMmFFhHLD0lbkGkBMhMb7OnT81K+LKC/7uG9fWWm5X3B0K3GC68bwvFVqPFJLEN0Q9RWZQreBMh2JAePJwOwdVzW+NmeOVKjtH1zM0WIyuqK8RAGRlsscghQ31wR2hQuVeTr8ZyFXibUFqpFCXDHRogGIePEuHUYjVl7AHxGw2BDdvhrnO3WuVWrceikpqPcrU+qSSxfSKRVOdsZx3x/gA/qZyv8AGa//AN0sf1vQPccJLnDxtW4+d5asJQTdNoVjUs8RcCQEFlVFHfOQVGTnBVs1bUhexWtRW1S01RJUqO+jZaSN0RW22yCoYhmGB3YFiAG8E09mvUbl5a0vISMJLkjIoiBVhH1EB8nCoB4qAphBOO59Hgs24vaUtQrDAyTl3FiXaUuTiJ1cqdVOyjYgBQo8dSo9AezDNa5enxVy1xdc2I/iG6slZqsVeNXYKw3yxChypKgKh1wpVmAeUrWKvs+SC/XS3bahPBGtGmsahkGylkBHgTjGvjGz5P4jqCfGR8PIyWI5lFZEg06MbK9ll1fWzMm0chQNGxcAA7yZLeQA34tLnw3lhstXsIDFUnraSMWQyHDRg7AojIAMqdlBVuxIBs0pOd9pVOK5K9PJQgjV7q3KnSEMMboWWQFmIbZXXeMldTpsNss0K3z2SSvLansurWorDO6SsWCAlo9csiHpD6gjYgAfQBZk6vE2Wtc1WkHHSqInqpTeREk7SahdyWUIyLu0ZUagdh2MznI6tD26eKElxYqiPJUrCsR0yxIdIm8W+9/ES2gw4IBUoECBZ9q0/c1SrycNy1UQw4Ar25R1CWZ2ZtEI22Zh9c4UZwe3oH/ZnX/jvK/52x/T9B7/AIWRm5WvanCzSrx9UM7oMyF7Dhi2AMkjA/u8V/uHqNyVkN7UlsyVoWdYIpwQpQBn42WRjhcfVlH+GV+hI9AryFm7BT52+/IWJnalWZVkYax9eWUSa4Ax+HI/uP8AhirwMUVv9Hkt+zFFK9EWbEaNCmjSxwzFXYY7t92vl9cdgQAAA8/z3IzcVzEFKtHCY+R5Kbj5dox4xE2EIAGBnESYJB17665Pq17reQLNIsuIMSKlbVTEo+R0x9RlgFkbAcsPp29B4j3D7j5nifd/I+247gscW1wcYa1iNXHSZLAYbY2IIiQak6YH4fXv/b+eX/RxzF6ZujPw90VqckQG0a9eLvsQSTiNBkn9kH6gEBWkrRchPbNoB4QLci12AaIFKuR2IOcsAxznJHfPf15OeeaT3TyVV5WMMIsKEzhfCKIKQP2SASPHGR2OcD0Eines3/0fjlLcm1u4kcjzJ92w8YwFGuPAAthTkDY9vXrJ16PsaGbOZK8K2EcKI23eKqW7oAcf2iXAzgZHbxXATOS4FZvclqKPlLsMVdxHGidNgBqG/aQn6sfz9L/q1/75yH+7D/T9B//Z');
expand_e0ab974354($outputDir, 'module.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogVGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBDYXB0Y2hhIG1vZHVsZQogKgogKiBAcGFja2FnZSBDYXB0Y2hhCiAqIEBhdXRob3IgU3RlZmFuIElvYWNoaW0gPHN0ZWZhbmlvYWNoaW1AZ21haWwuY29tPgogKiBAYXV0aG9yIEJoYXJhdCBNZWRpcmF0dGEgPGJoYXJhdEBtZW5hbHRvLmNvbT4KICogQHZlcnNpb24gJFJldmlzaW9uOiAxNjAzNCAkCiAqLwpjbGFzcyBDYXB0Y2hhTW9kdWxlIGV4dGVuZHMgR2FsbGVyeU1vZHVsZSB7CgogICAgZnVuY3Rpb24gQ2FwdGNoYU1vZHVsZSgpIHsKCWdsb2JhbCAkZ2FsbGVyeTsKCSR0aGlzLT5zZXRJZCgnY2FwdGNoYScpOwoJJHRoaXMtPnNldE5hbWUoJGdhbGxlcnktPmkxOG4oJ0NhcHRjaGEnKSk7CgkkdGhpcy0+c2V0RGVzY3JpcHRpb24oJGdhbGxlcnktPmkxOG4oJ1ByZXZlbnRzIGFidXNlIGJ5IGRldGVycmluZyBhdXRvbWF0ZWQgYm90cyB3aXRoICcgLgoJCQkJCSAgICAgJ2lucHV0IHRoYXQgcmVxdWlyZXMgdmlzdWFsIGNvbXByZWhlbnNpb24nKSk7CgkkdGhpcy0+c2V0VmVyc2lvbignMS4xLjQnKTsgLyogVXBkYXRlIHVwZ3JhZGUoKSBmdW5jdGlvbiBiZWxvdyB0b28gKi8KCSR0aGlzLT5zZXRHcm91cCgnZ2FsbGVyeScsICRnYWxsZXJ5LT5pMThuKCdHYWxsZXJ5JykpOwoJJHRoaXMtPnNldENhbGxiYWNrcygnZ2V0U2l0ZUFkbWluVmlld3MnKTsKCSR0aGlzLT5zZXRSZXF1aXJlZENvcmVBcGkoYXJyYXkoNywgNCkpOwoJJHRoaXMtPnNldFJlcXVpcmVkTW9kdWxlQXBpKGFycmF5KDMsIDApKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeU1vZHVsZTo6cGVyZm9ybUZhY3RvcnlSZWdpc3RyYXRpb25zCiAgICAgKi8KICAgIGZ1bmN0aW9uIHBlcmZvcm1GYWN0b3J5UmVnaXN0cmF0aW9ucygpIHsKCSRyZXQgPSBHYWxsZXJ5Q29yZUFwaTo6cmVnaXN0ZXJGYWN0b3J5SW1wbGVtZW50YXRpb24oCgkgICAgJ0dhbGxlcnlWYWxpZGF0aW9uUGx1Z2luJywgJ0NhcHRjaGFWYWxpZGF0aW9uUGx1Z2luJywgJ0NhcHRjaGFWYWxpZGF0aW9uUGx1Z2luJywKCSAgICAnbW9kdWxlcy9jYXB0Y2hhL2NsYXNzZXMvQ2FwdGNoYVZhbGlkYXRpb25QbHVnaW4uaW5jJywgJ2NhcHRjaGEnLCBudWxsKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuICRyZXQ7Cgl9CgkkcmV0ID0gR2FsbGVyeUNvcmVBcGk6OnJlZ2lzdGVyRmFjdG9yeUltcGxlbWVudGF0aW9uKAoJICAgICdNYWludGVuYW5jZVRhc2snLCAnUmVzZXRGYWlsdXJlQ291bnRzVGFzaycsICdSZXNldEZhaWx1cmVDb3VudHNUYXNrJywKCSAgICAnbW9kdWxlcy9jYXB0Y2hhL2NsYXNzZXMvUmVzZXRGYWlsdXJlQ291bnRzVGFzay5jbGFzcycsICdjYXB0Y2hhJywgbnVsbCk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiAkcmV0OwoJfQoKCXJldHVybiBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogQHNlZSBHYWxsZXJ5TW9kdWxlOjp1cGdyYWRlCiAgICAgKi8KICAgIGZ1bmN0aW9uIHVwZ3JhZGUoJGN1cnJlbnRWZXJzaW9uKSB7CgoJc3dpdGNoICgkY3VycmVudFZlcnNpb24pIHsKCWNhc2UgJyc6CgkgICAgLyogU2V0IHNvbWUgcmVhc29uYWJsZSBkZWZhdWx0cyAqLwoJICAgICRyZXQgPSAkdGhpcy0+c2V0UGFyYW1ldGVyKCdmYWlsZWRBdHRlbXB0VGhyZXNob2xkJywgMyk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gJHJldDsKCSAgICB9CgkgICAgYnJlYWs7CgoJY2FzZSAnMC45LjAnOgoJICAgIC8qIENhcHRjaGEgY2hhbmdlZCBmcm9tIExvZ2luUGx1Z2luIHRvIFZhbGlkYXRpb25QbHVnaW4gdG8gYWRkIHJlZ2lzdHJhdGlvbiBzdXBwb3J0ICovCgljYXNlICcwLjkuMSc6CgkgICAgLyogVXBkYXRlZCBHYWxsZXJ5Q29yZUFwaSByZXF1aXJlbWVudCB0byA1LjMgdG8gdXNlIEdhbGxlcnk6OmdldFBocFZtKCkgKi8KCWNhc2UgJzAuOS4yJzoKCSAgICAvKiBVcGRhdGVkIEdhbGxlcnlDb3JlQXBpIHJlcXVpcmVtZW50IHRvIDYuMCAqLwoJY2FzZSAnMC45LjMnOgoJY2FzZSAnMC45LjQnOgoJICAgIC8qIFVwZ3JhZGVkIEdhbGxlcnlNb2R1bGUgcmVxdWlyZW1lbnQgdG8gMS4wICovCgljYXNlICcwLjkuNSc6CgkgICAgLyogVXBncmFkZWQgR2FsbGVyeU1vZHVsZSByZXF1aXJlbWVudCB0byAyLjAgKi8KCWNhc2UgJzAuOS42JzoKCWNhc2UgJzEuMC4wJzoKCSAgICAvKiBSZW5hbWVkIFZhbGlkYXRpb25QbHVnaW4gdG8gR2FsbGVyeVZhbGlkYXRpb25QbHVnaW4gKi8KCWNhc2UgJzEuMC4xJzoKCSAgICAvKiBHYWxsZXJ5Q29yZUFwaSA3LjAgYW5kIEdhbGxlcnlNb2R1bGUgMy4wICovCgljYXNlICcxLjAuMic6CgkgICAgLyogVXBkYXRlZCBHYWxsZXJ5VmFsaWRhdGlvblBsdWdpbiBBUEkgKi8KCWNhc2UgJzEuMS4wJzoKCWNhc2UgJzEuMS4xJzoKCWNhc2UgJzEuMS4yJzoKCWNhc2UgJzEuMS4zJzoKCgljYXNlICdlbmQgb2YgdXBncmFkZSBwYXRoJzoKCSAgICBicmVhazsKCglkZWZhdWx0OgoJICAgIHJldHVybiBHYWxsZXJ5Q29yZUFwaTo6ZXJyb3IoRVJST1JfQkFEX1BMVUdJTiwgX19GSUxFX18sIF9fTElORV9fLAoJCQkJCSBzcHJpbnRmKCdVbmtub3duIG1vZHVsZSB2ZXJzaW9uICVzJywgJGN1cnJlbnRWZXJzaW9uKSk7Cgl9CgoJcmV0dXJuIG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBAc2VlIEdhbGxlcnlNb2R1bGU6OmF1dG9Db25maWd1cmUKICAgICAqLwogICAgZnVuY3Rpb24gYXV0b0NvbmZpZ3VyZSgpIHsKCS8qIFdlIG5lZWQgdG8gcGVyZm9ybSBhIHRlc3QgYmVmb3JlIGFjdGl2YXRpbmcgKi8KCWxpc3QgKCRyZXQsICRuZWVkc0NvbmZpZ3VyYXRpb24pID0gJHRoaXMtPm5lZWRzQ29uZmlndXJhdGlvbigpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CglyZXR1cm4gYXJyYXkobnVsbCwgISRuZWVkc0NvbmZpZ3VyYXRpb24pOwogICAgfQoKICAgIC8qKgogICAgICogQHNlZSBHYWxsZXJ5TW9kdWxlOjpuZWVkc0NvbmZpZ3VyYXRpb24KICAgICAqLwogICAgZnVuY3Rpb24gbmVlZHNDb25maWd1cmF0aW9uKCkgewoJR2FsbGVyeUNvcmVBcGk6OnJlcXVpcmVPbmNlKCdtb2R1bGVzL2NhcHRjaGEvY2xhc3Nlcy9DYXB0Y2hhSGVscGVyLmNsYXNzJyk7CgkkZ2RSZXBvcnQgPSBDYXB0Y2hhSGVscGVyOjp0ZXN0UmVxdWlyZWRHZEZ1bmN0aW9ucygpOwoKCXJldHVybiBhcnJheShudWxsLCBjb3VudCgkZ2RSZXBvcnRbJ2ZhaWwnXSkgPiAwKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeU1vZHVsZTo6Z2V0U2l0ZUFkbWluVmlld3MKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0U2l0ZUFkbWluVmlld3MoKSB7CglyZXR1cm4gYXJyYXkobnVsbCwKCQkgICAgIGFycmF5KGFycmF5KCduYW1lJyA9PiAkdGhpcy0+dHJhbnNsYXRlKCdDYXB0Y2hhJyksCgkJCQkgJ3ZpZXcnID0+ICdjYXB0Y2hhLkNhcHRjaGFTaXRlQWRtaW4nKSkpOwogICAgfQoKICAgIC8qKgogICAgICogQHNlZSBHYWxsZXJ5TW9kdWxlOjpnZXRDb25maWd1cmF0aW9uVmlldwogICAgICovCiAgICBmdW5jdGlvbiBnZXRDb25maWd1cmF0aW9uVmlldygpIHsKCXJldHVybiAnY2FwdGNoYS5DYXB0Y2hhQ29uZmlnQWRtaW4nOwogICAgfQp9Cj8+Cg==');
expand_e0ab974354($outputDir, 'po/GNUmakefile', 'R0FMTEVSWURJUiA/PSAuLi8uLi8uLgpUT09MRElSID89ICQoR0FMTEVSWURJUikvbGliL3Rvb2xzCgppbmNsdWRlICQoVE9PTERJUikvcG8vR05VbWFrZWZpbGUuaW5jCgo=');
expand_e0ab974354($outputDir, 'po/strings.raw', 'IyAkSWQ6IHN0cmluZ3MucmF3IDE1MzQyIDIwMDYtMTItMDEgMjE6MTQ6NDZaIGFuZHlfc3QgJAoKLyogbW9kdWxlLmluYyAqLwpnZXR0ZXh0KCJDYXB0Y2hhIikKZ2V0dGV4dCgiUHJldmVudHMgYWJ1c2UgYnkgZGV0ZXJyaW5nIGF1dG9tYXRlZCBib3RzIHdpdGggaW5wdXQgdGhhdCByZXF1aXJlcyB2aXN1YWwgY29tcHJlaGVuc2lvbiIpCmdldHRleHQoIkdhbGxlcnkiKQoKLyogY2xhc3Nlcy9SZXNldEZhaWx1cmVDb3VudHNUYXNrLmNsYXNzICovCmdldHRleHQoIlJlc2V0IGNhcHRjaGEgZmFpbHVyZSBjb3VudHMiKQpnZXR0ZXh0KCJDYXB0Y2hhIHJlY29yZHMgZmFpbHVyZSBjb3VudHMgaW4gdGhlIGRhdGFiYXNlIHdoZW4gY29uZmlndXJlZCBmb3IgbWVkaXVtIHNlY3VyaXR5IGxldmVsLiAgUnVuIHRoaXMgdGFzayB0byBjbGVhciBhbGwgY291bnRlcnMuIikKZ2V0dGV4dCgiU3VjY2Vzc2Z1bGx5IHJlc2V0IGZhaWx1cmUgY291bnRzIikKCi8qIHRlbXBsYXRlcy9DYXB0Y2hhQ29uZmlnQWRtaW4udHBsICovCmdldHRleHQoIkNhcHRjaGEgcGx1Z2luIGNvbmZpZ3VyYXRpb24gdGVzdCIpCmdldHRleHQoIlRoZSBDYXB0Y2hhIG1vZHVsZSByZXF1aXJlcyB5b3VyIHdlYnNlcnZlciB0byBoYXZlIHRoZSBHRCBncmFwaGljcyBtb2R1bGUgaW5zdGFsbGVkLiAgVGhlIGZvbGxvd2luZyBHRCBmdW5jdGlvbnMgYXJlIHJlcXVpcmVkLiIpCmdldHRleHQoIkZ1bmN0aW9uIG5hbWUiKQpnZXR0ZXh0KCJQYXNzL2ZhaWwiKQpnZXR0ZXh0KCJBdmFpbGFibGUiKQpnZXR0ZXh0KCJNaXNzaW5nIikKZ2V0dGV4dCgiQ3JpdGljYWwgR0QgZnVuY3Rpb25zIGFyZSBub3QgYXZhaWxhYmxlLiAgIFBsZWFzZSBhc2sgeW91ciBzeXN0ZW0gYWRtaW5pc3RyYXRvciBmb3IgaGVscC4iKQpnZXR0ZXh0KCJZb3VyIHdlYnNlcnZlciBpcyBwcm9wZXJseSBjb25maWd1cmVkIHRvIHVzZSB0aGUgQ2FwdGNoYSBtb2R1bGUuIikKZ2V0dGV4dCgiQ29udGludWUiKQoKLyogdGVtcGxhdGVzL0NhcHRjaGFTaXRlQWRtaW4udHBsICovCmdldHRleHQoIkNhcHRjaGEgU2V0dGluZ3MiKQpnZXR0ZXh0KCJTZXR0aW5ncyBzYXZlZCBzdWNjZXNzZnVsbHkiKQpnZXR0ZXh0KCJIaWdoIFNlY3VyaXR5IC0gQWx3YXlzIE9uIikKZ2V0dGV4dCgiQWx3YXlzIHJlcXVpcmUgdGhlIENhcHRjaGEgdmFsdWUgdG8gYmUgZW50ZXJlZCBiZWZvcmUgcHJvY2VlZGluZy4iKQpnZXR0ZXh0KCJNZWRpdW0vTG93IFNlY3VyaXR5IC0gRmFpbGVkIEF0dGVtcHRzIikKZ2V0dGV4dCgiVXNlcnMgYXJlIG5vdCByZXF1aXJlZCB0byBwYXNzIHRoZSBDYXB0Y2hhIHRlc3QgdW5sZXNzIHRoZXkgaGF2ZSBmYWlsZWQgdmFsaWRhdGlvbiBvciB1c2VyIGlucHV0IGF0IGxlYXN0IHRoaXMgbWFueSB0aW1lcy4gIEFmdGVyIHRoYXQsIHRoZXkgaGF2ZSB0byBlbnRlciB0aGUgQ2FwdGNoYSB2YWx1ZSB0byBsb2cgaW4sIG9yIHBlcmZvcm0gY2VydGFpbiBvdGhlciBzZWN1cmVkIGFjdGlvbnMuIikKZ2V0dGV4dCgiRmFpbGVkIGF0dGVtcHRzOiIpCmdldHRleHQoIk1lZGl1bSBzZWN1cml0eSBjb3VudHMgZmFpbHVyZXMgYnkgYSBrZXkgdmFsdWUgc3VjaCBhcyB0aGUgdXNlcm5hbWUgdXNlZCBpbiBhIGxvZ2luIGF0dGVtcHQuICBUaGlzIG1lYW5zIGFmdGVyIG9uZSB1c2VybmFtZSBoYXMgdG9vIG1hbnkgZmFpbHVyZXMgdGhlbiBhbnlvbmUsIGV2ZW4gdGhlIHJlYWwgYWNjb3VudCBvd25lciwgbXVzdCBwZXJmb3JtIGNhcHRjaGEgdmFsaWRhdGlvbiBmb3IgdGhlaXIgbmV4dCBsb2dpbi4gIExvdyBzZWN1cml0eSBjb3VudHMgZmFpbHVyZXMgaW4gdGhlIHNlc3Npb24uICBUaGlzIHByb3ZpZGVzIHNvbWUgcHJvdGVjdGlvbiBhZ2FpbnN0IGNhc3VhbCBwYXNzd29yZCBndWVzc2VycywgYnV0IG5vIHByb3RlY3Rpb24gYWdhaW5zdCBhdXRvbWF0ZWQgYXR0YWNrcy4iKQpnZXR0ZXh0KCJDb25maWd1cmUgdmFsaWRhdGlvbiBwb2xpY3kgZm9yIG1vZHVsZXMgdXNpbmcgY2FwdGNoYToiKQpnZXR0ZXh0KCJIaWdoIikKZ2V0dGV4dCgiTWVkaXVtIikKZ2V0dGV4dCgiTG93IikKZ2V0dGV4dCgiT2ZmIikKZ2V0dGV4dCgiU2F2ZSIpCmdldHRleHQoIlJlc2V0IikKCi8qIHRlbXBsYXRlcy9DYXB0Y2hhVmFsaWRhdGlvblBsdWdpbi50cGwgKi8KZ2V0dGV4dCgiVHlwZSB0aGUgd29yZCBhcHBlYXJpbmcgaW4gdGhlIHBpY3R1cmUuIikKZ2V0dGV4dCgiWW91IG11c3QgZW50ZXIgdGhlIG51bWJlciBhcHBlYXJpbmcgaW4gdGhlIHBpY3R1cmUuIikKZ2V0dGV4dCgiSW5jb3JyZWN0IG51bWJlci4iKQo=');
expand_e0ab974354($outputDir, 'templates/CaptchaConfigAdmin.tpl', 'eyoKICogJFJldmlzaW9uOiAxNTM0MiAkCiAqIElmIHlvdSB3YW50IHRvIGN1c3RvbWl6ZSB0aGlzIGZpbGUsIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5IHNpbmNlIGZ1dHVyZSB1cGdyYWRlcwogKiBtYXkgb3ZlcndyaXRlIGl0LiAgSW5zdGVhZCwgY29weSBpdCBpbnRvIGEgbmV3IGRpcmVjdG9yeSBjYWxsZWQgImxvY2FsIiBhbmQgZWRpdCB0aGF0CiAqIHZlcnNpb24uICBHYWxsZXJ5IHdpbGwgbG9vayBmb3IgdGhhdCBmaWxlIGZpcnN0IGFuZCB1c2UgaXQgaWYgaXQgZXhpc3RzLgogKn0KPGRpdiBpZD0iZ2JCbG9jayBnY0JhY2tncm91bmQxIj4KICA8aDIgY2xhc3M9ImdpVGl0bGUiPgogICAge2ctPnRleHQgdGV4dD0iQ2FwdGNoYSBwbHVnaW4gY29uZmlndXJhdGlvbiB0ZXN0In0KICA8L2gyPgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImdiQmxvY2siPgogIDxkaXYgY2xhc3M9ImdpRGVzY3JpcHRpb24iPgogICAge2ctPnRleHQgdGV4dD0iVGhlIENhcHRjaGEgbW9kdWxlIHJlcXVpcmVzIHlvdXIgd2Vic2VydmVyIHRvIGhhdmUgdGhlIEdEIGdyYXBoaWNzIG1vZHVsZSBpbnN0YWxsZWQuICBUaGUgZm9sbG93aW5nIEdEIGZ1bmN0aW9ucyBhcmUgcmVxdWlyZWQuIn0KICA8L2Rpdj4KCiAgPHRhYmxlIGNsYXNzPSJnYkRhdGFUYWJsZSI+CiAgICA8dHI+CiAgICAgIDx0aD4KICAgICAgICB7Zy0+dGV4dCB0ZXh0PSJGdW5jdGlvbiBuYW1lIn0KICAgICAgPC90aD4KICAgICAgPHRoPgogICAgICAgIHtnLT50ZXh0IHRleHQ9IlBhc3MvZmFpbCJ9CiAgICAgIDwvdGg+CiAgICA8L3RyPgogICAgCiAgICB7Zm9yZWFjaCBmcm9tPSRDYXB0Y2hhQ29uZmlnQWRtaW4uZ2RSZXBvcnQuc3VjY2VzcyBpdGVtPWZ1bmN9CiAgICA8dHIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9ImdiRXZlbixnYk9kZCJ9Ij4KICAgICAgPHRkPgogICAgICAgIHskZnVuY30KICAgICAgPC90ZD4KICAgICAgPHRkPgogICAgICAgIDxkaXYgY2xhc3M9ImdpU3VjY2VzcyI+CiAgICAgICAgICB7Zy0+dGV4dCB0ZXh0PSJBdmFpbGFibGUifQogICAgICAgIDwvZGl2PgogICAgICA8L3RkPgogICAgPC90cj4KICAgIHsvZm9yZWFjaH0KCiAgICB7Zm9yZWFjaCBmcm9tPSRDYXB0Y2hhQ29uZmlnQWRtaW4uZ2RSZXBvcnQuZmFpbCBpdGVtPWZ1bmN9CiAgICA8dHIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9ImdiRXZlbixnYk9kZCJ9Ij4KICAgICAgPHRkPgogICAgICAgIHskZnVuY30KICAgICAgPC90ZD4KICAgICAgPHRkPgogICAgICAgIDxkaXYgY2xhc3M9ImdpRXJyb3IiPgogICAgICAgICAge2ctPnRleHQgdGV4dD0iTWlzc2luZyJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGQ+CiAgICA8L3RyPgogICAgey9mb3JlYWNofQogIDwvdGFibGU+CgogIHtpZiAhZW1wdHkoJENhcHRjaGFDb25maWdBZG1pbi5nZFJlcG9ydC5mYWlsKX0KICA8ZGl2IGNsYXNzPSJnaUVycm9yIj4KICAgIHtnLT50ZXh0IHRleHQ9IkNyaXRpY2FsIEdEIGZ1bmN0aW9ucyBhcmUgbm90IGF2YWlsYWJsZS4gICBQbGVhc2UgYXNrIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgZm9yIGhlbHAuIn0KICA8L2Rpdj4KICB7ZWxzZX0KICA8ZGl2IGNsYXNzPSJnaVN1Y2Nlc3MiPgogICAge2ctPnRleHQgdGV4dD0iWW91ciB3ZWJzZXJ2ZXIgaXMgcHJvcGVybHkgY29uZmlndXJlZCB0byB1c2UgdGhlIENhcHRjaGEgbW9kdWxlLiJ9CiAgPC9kaXY+CiAgey9pZn0KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJnYkJsb2NrIGdjQmFja2dyb3VuZDEiPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJpbnB1dFR5cGVTdWJtaXQiCiAgIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVthY3Rpb25dW2NvbnRpbnVlXSJ9IiB2YWx1ZT0ie2ctPnRleHQgdGV4dD0iQ29udGludWUifSIvPgo8L2Rpdj4K');
expand_e0ab974354($outputDir, 'templates/CaptchaSiteAdmin.tpl', 'eyoKICogJFJldmlzaW9uOiAxNTM0MiAkCiAqIElmIHlvdSB3YW50IHRvIGN1c3RvbWl6ZSB0aGlzIGZpbGUsIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5IHNpbmNlIGZ1dHVyZSB1cGdyYWRlcwogKiBtYXkgb3ZlcndyaXRlIGl0LiAgSW5zdGVhZCwgY29weSBpdCBpbnRvIGEgbmV3IGRpcmVjdG9yeSBjYWxsZWQgImxvY2FsIiBhbmQgZWRpdCB0aGF0CiAqIHZlcnNpb24uICBHYWxsZXJ5IHdpbGwgbG9vayBmb3IgdGhhdCBmaWxlIGZpcnN0IGFuZCB1c2UgaXQgaWYgaXQgZXhpc3RzLgogKn0KPGRpdiBjbGFzcz0iZ2JCbG9jayBnY0JhY2tncm91bmQxIj4KICA8aDI+CiAgICB7Zy0+dGV4dCB0ZXh0PSJDYXB0Y2hhIFNldHRpbmdzIn0KICA8L2gyPgo8L2Rpdj4KCntpZiBpc3NldCgkc3RhdHVzLnNhdmVkKX0KPGRpdiBjbGFzcz0iZ2JCbG9jayI+CiAgPGgyIGNsYXNzPSJnaVN1Y2Nlc3MiPgogICAge2ctPnRleHQgdGV4dD0iU2V0dGluZ3Mgc2F2ZWQgc3VjY2Vzc2Z1bGx5In0KICA8L2gyPgo8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9ImdiQmxvY2siPgogIDxoMz4ge2ctPnRleHQgdGV4dD0iSGlnaCBTZWN1cml0eSAtIEFsd2F5cyBPbiJ9IDwvaDM+CiAgPHAgY2xhc3M9ImdpRGVzY3JpcHRpb24iPgogICAge2ctPnRleHQgdGV4dD0iQWx3YXlzIHJlcXVpcmUgdGhlIENhcHRjaGEgdmFsdWUgdG8gYmUgZW50ZXJlZCBiZWZvcmUgcHJvY2VlZGluZy4ifQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJnYkJsb2NrIj4KICA8aDM+IHtnLT50ZXh0IHRleHQ9Ik1lZGl1bS9Mb3cgU2VjdXJpdHkgLSBGYWlsZWQgQXR0ZW1wdHMifSA8L2gzPgogIDxwIGNsYXNzPSJnaURlc2NyaXB0aW9uIj4KICAgIHtnLT50ZXh0IHRleHQ9IlVzZXJzIGFyZSBub3QgcmVxdWlyZWQgdG8gcGFzcyB0aGUgQ2FwdGNoYSB0ZXN0IHVubGVzcyB0aGV5IGhhdmUgZmFpbGVkIHZhbGlkYXRpb24gb3IgdXNlciBpbnB1dCBhdCBsZWFzdCB0aGlzIG1hbnkgdGltZXMuICBBZnRlciB0aGF0LCB0aGV5IGhhdmUgdG8gZW50ZXIgdGhlIENhcHRjaGEgdmFsdWUgdG8gbG9nIGluLCBvciBwZXJmb3JtIGNlcnRhaW4gb3RoZXIgc2VjdXJlZCBhY3Rpb25zLiJ9CiAgPC9wPgoKICB7Zy0+dGV4dCB0ZXh0PSJGYWlsZWQgYXR0ZW1wdHM6In0KICA8c2VsZWN0IG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVtmYWlsZWRBdHRlbXB0VGhyZXNob2xkXSJ9Ij4KICAgIHtodG1sX29wdGlvbnMgdmFsdWVzPSRDYXB0Y2hhU2l0ZUFkbWluLmZhaWxlZEF0dGVtcHRUaHJlc2hvbGRMaXN0IHNlbGVjdGVkPSRmb3JtLmZhaWxlZEF0dGVtcHRUaHJlc2hvbGQgb3V0cHV0PSRDYXB0Y2hhU2l0ZUFkbWluLmZhaWxlZEF0dGVtcHRUaHJlc2hvbGRMaXN0fQogIDwvc2VsZWN0PgoKICA8cCBjbGFzcz0iZ2lEZXNjcmlwdGlvbiI+CiAgICB7Zy0+dGV4dCB0ZXh0PSJNZWRpdW0gc2VjdXJpdHkgY291bnRzIGZhaWx1cmVzIGJ5IGEga2V5IHZhbHVlIHN1Y2ggYXMgdGhlIHVzZXJuYW1lIHVzZWQgaW4gYSBsb2dpbiBhdHRlbXB0LiAgVGhpcyBtZWFucyBhZnRlciBvbmUgdXNlcm5hbWUgaGFzIHRvbyBtYW55IGZhaWx1cmVzIHRoZW4gYW55b25lLCBldmVuIHRoZSByZWFsIGFjY291bnQgb3duZXIsIG11c3QgcGVyZm9ybSBjYXB0Y2hhIHZhbGlkYXRpb24gZm9yIHRoZWlyIG5leHQgbG9naW4uICBMb3cgc2VjdXJpdHkgY291bnRzIGZhaWx1cmVzIGluIHRoZSBzZXNzaW9uLiAgVGhpcyBwcm92aWRlcyBzb21lIHByb3RlY3Rpb24gYWdhaW5zdCBjYXN1YWwgcGFzc3dvcmQgZ3Vlc3NlcnMsIGJ1dCBubyBwcm90ZWN0aW9uIGFnYWluc3QgYXV0b21hdGVkIGF0dGFja3MuIn0KPC9kaXY+Cgp7aWYgIWVtcHR5KCRDYXB0Y2hhU2l0ZUFkbWluLm9wdGlvbnMpfQo8ZGl2IGNsYXNzPSJnYkJsb2NrIj4KICA8cCBjbGFzcz0iZ2lEZXNjcmlwdGlvbiI+CiAgICB7Zy0+dGV4dCB0ZXh0PSJDb25maWd1cmUgdmFsaWRhdGlvbiBwb2xpY3kgZm9yIG1vZHVsZXMgdXNpbmcgY2FwdGNoYToifQogIDwvcD4KICA8dGFibGUgY2xhc3M9ImdiRGF0YVRhYmxlIj4KICAgIDx0cj48dGQ+PC90ZD48dGg+CiAgICAgIHtnLT50ZXh0IHRleHQ9IkhpZ2gifQogICAgPC90aD48dGg+CiAgICAgIHtnLT50ZXh0IHRleHQ9Ik1lZGl1bSJ9CiAgICA8L3RoPjx0aD4KICAgICAge2ctPnRleHQgdGV4dD0iTG93In0KICAgIDwvdGg+PHRoPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJPZmYifQogICAgPC90aD48L3RyPgogICAge2ZvcmVhY2ggZnJvbT0kQ2FwdGNoYVNpdGVBZG1pbi5vcHRpb25zIGtleT1vcHRpb25JZCBpdGVtPW9wdGlvbn0KICAgIDx0cj48dGQ+CiAgICAgIHskb3B0aW9uLnRpdGxlfQogICAgPC90ZD48dGQ+CiAgICAgIHtpZiBpbl9hcnJheSgnSElHSCcsICRvcHRpb24uY2hvaWNlcyl9Cgk8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVtsZXZlbF1bYCRvcHRpb25JZGBdIn0iIHZhbHVlPSJISUdIIgoJIHtpZiAkb3B0aW9uLnZhbHVlPT0nSElHSCd9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfS8+CiAgICAgIHsvaWZ9CiAgICA8L3RkPjx0ZD4KICAgICAge2lmIGluX2FycmF5KCdNRURJVU0nLCAkb3B0aW9uLmNob2ljZXMpfQoJPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bbGV2ZWxdW2Akb3B0aW9uSWRgXSJ9IiB2YWx1ZT0iTUVESVVNIgoJIHtpZiAkb3B0aW9uLnZhbHVlPT0nTUVESVVNJ31jaGVja2VkPSJjaGVja2VkInsvaWZ9Lz4KICAgICAgey9pZn0KICAgIDwvdGQ+PHRkPgogICAgICB7aWYgaW5fYXJyYXkoJ0xPVycsICRvcHRpb24uY2hvaWNlcyl9Cgk8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVtsZXZlbF1bYCRvcHRpb25JZGBdIn0iIHZhbHVlPSJMT1ciCgkge2lmICRvcHRpb24udmFsdWU9PSdMT1cnfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0vPgogICAgICB7L2lmfQogICAgPC90ZD48dGQ+CiAgICAgIHtpZiBpbl9hcnJheSgnT0ZGJywgJG9wdGlvbi5jaG9pY2VzKX0KCTxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW2xldmVsXVtgJG9wdGlvbklkYF0ifSIgdmFsdWU9Ik9GRiIKCSB7aWYgJG9wdGlvbi52YWx1ZT09J09GRid9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfS8+CiAgICAgIHsvaWZ9CiAgICA8L3RkPjwvdHI+CiAgICB7L2ZvcmVhY2h9CiAgPC90YWJsZT4KPC9kaXY+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJnYkJsb2NrIGdjQmFja2dyb3VuZDEiPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJpbnB1dFR5cGVTdWJtaXQiCiAgIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVthY3Rpb25dW3NhdmVdIn0iIHZhbHVlPSJ7Zy0+dGV4dCB0ZXh0PSJTYXZlIn0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0iaW5wdXRUeXBlU3VibWl0IgogICBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bYWN0aW9uXVtyZXNldF0ifSIgdmFsdWU9IntnLT50ZXh0IHRleHQ9IlJlc2V0In0iLz4KPC9kaXY+Cg==');
expand_e0ab974354($outputDir, 'templates/CaptchaValidationPlugin.tpl', 'eyoKICogJFJldmlzaW9uOiAxNTM0MiAkCiAqIElmIHlvdSB3YW50IHRvIGN1c3RvbWl6ZSB0aGlzIGZpbGUsIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5IHNpbmNlIGZ1dHVyZSB1cGdyYWRlcwogKiBtYXkgb3ZlcndyaXRlIGl0LiAgSW5zdGVhZCwgY29weSBpdCBpbnRvIGEgbmV3IGRpcmVjdG9yeSBjYWxsZWQgImxvY2FsIiBhbmQgZWRpdCB0aGF0CiAqIHZlcnNpb24uICBHYWxsZXJ5IHdpbGwgbG9vayBmb3IgdGhhdCBmaWxlIGZpcnN0IGFuZCB1c2UgaXQgaWYgaXQgZXhpc3RzLgogKn0KPGRpdiBjbGFzcz0iZ2JCbG9jayI+CiAgPGgzPgogICAge2ctPnRleHQgdGV4dD0iVHlwZSB0aGUgd29yZCBhcHBlYXJpbmcgaW4gdGhlIHBpY3R1cmUuIn0KICA8L2gzPgogIDxkaXY+CiAgICA8aW1nIHNyYz0ie2ctPnVybCBhcmcxPSJ2aWV3PWNhcHRjaGEuQ2FwdGNoYUltYWdlIn0iIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBhbHQ9IiIvPgogIDwvZGl2PgogIDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxMiIKICAgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW0NhcHRjaGFWYWxpZGF0aW9uUGx1Z2luXVt3b3JkXSJ9IiB2YWx1ZT0iIi8+CgogIHtpZiBpc3NldCgkZm9ybS5lcnJvci5DYXB0Y2hhVmFsaWRhdGlvblBsdWdpbil9CiAgPGRpdiBjbGFzcz0iZ2lFcnJvciI+CiAgICB7aWYgaXNzZXQoJGZvcm0uZXJyb3IuQ2FwdGNoYVZhbGlkYXRpb25QbHVnaW4ubWlzc2luZyl9CiAgICAgIHtnLT50ZXh0IHRleHQ9IllvdSBtdXN0IGVudGVyIHRoZSBudW1iZXIgYXBwZWFyaW5nIGluIHRoZSBwaWN0dXJlLiJ9CiAgICB7L2lmfQogICAge2lmIGlzc2V0KCRmb3JtLmVycm9yLkNhcHRjaGFWYWxpZGF0aW9uUGx1Z2luLmludmFsaWQpfQogICAgICB7Zy0+dGV4dCB0ZXh0PSJJbmNvcnJlY3QgbnVtYmVyLiJ9CiAgICB7L2lmfQogIDwvZGl2PgogIHsvaWZ9CjwvZGl2Pgo=');
}
function expand_e0ab974354($outputDir, $relativePath, $data) {
$fd = fopen($outputDir . $relativePath, 'w');
fwrite($fd, base64_decode($data));
fclose($fd);
}
$unpackFunction = "unpack_e0ab974354";
?>