/pidgin/main: 56d191003b34: facebook: Port from sslconn to Gio

Mike Ruprecht <[email protected]> Fri, 30 Sep 2016 10:52:02 -0400
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Q2hhbmdlc2V0OiA1NmQxOTEwMDNiMzQ4NDVmNWRiYzI3YjgyZGVmYTY2NWI2NDRmZGQ1CkF1dGhv
cjoJIE1pa2UgUnVwcmVjaHQgPGNtYWlrdUBnbWFpbC5jb20+CkRhdGU6CSAyMDE2LTA5LTE1IDEz
OjMxIC0wNTAwCkJyYW5jaDoJIGRlZmF1bHQKVVJMOiBodHRwczovL2hnLnBpZGdpbi5pbS9waWRn
aW4vbWFpbi9yZXYvNTZkMTkxMDAzYjM0CgpEZXNjcmlwdGlvbjoKCmZhY2Vib29rOiBQb3J0IGZy
b20gc3NsY29ubiB0byBHaW8KClRoaXMgcGF0Y2ggcG9ydHMgdXNhZ2Ugb2YgbGlicHVycGxlJ3Mg
c3NsY29ubi5bY2hdIHRvIG5hdGl2ZSBHaW8uClRoZXJlIGlzIHBvdGVudGlhbCB0byBpbXByb3Zl
IHRoaXMgYnkgYWxsb3dpbmcgZm9yIE1xdHRNZXNzYWdlcyB0bwp1c2UgZXh0ZXJuYWwgYnl0ZXMg
d2l0aG91dCBjb3B5aW5nIChwcm92aWRlZCB0aGV5J3JlIGNvbnN1bWVkIHNvb24KZW5vdWdoKSBh
bmQgdG8gInN0ZWFsIiB0aGUgYnl0ZXMgZnJvbSBhIE1xdHRNZXNzYWdlIGZvciBzZW5kaW5nLgpV
bmZvcnR1bmF0ZWx5IEdCeXRlQXJyYXkgZG9lc24ndCBoYXZlIGFsbCB0aGUgbWVtb3J5IG1hbmFn
ZW1lbnQgQVBJCkdCeXRlcyBoYXMuCgpkaWZmc3RhdDoKCiBsaWJwdXJwbGUvcHJvdG9jb2xzL2Zh
Y2Vib29rL2ZhY2Vib29rLmMgfCAgICA0ICstCiBsaWJwdXJwbGUvcHJvdG9jb2xzL2ZhY2Vib29r
L21xdHQuYyAgICAgfCAgMzM0ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGxpYnB1
cnBsZS9wcm90b2NvbHMvZmFjZWJvb2svbXF0dC5oICAgICB8ICAgMTcgLQogMyBmaWxlcyBjaGFu
Z2VkLCAxOTggaW5zZXJ0aW9ucygrKSwgMTU3IGRlbGV0aW9ucygtKQoKZGlmZnMgKHRydW5jYXRl
ZCBmcm9tIDUzNSB0byAzMDAgbGluZXMpOgoKZGlmZiAtLWdpdCBhL2xpYnB1cnBsZS9wcm90b2Nv
bHMvZmFjZWJvb2svZmFjZWJvb2suYyBiL2xpYnB1cnBsZS9wcm90b2NvbHMvZmFjZWJvb2svZmFj
ZWJvb2suYwotLS0gYS9saWJwdXJwbGUvcHJvdG9jb2xzL2ZhY2Vib29rL2ZhY2Vib29rLmMKKysr
IGIvbGlicHVycGxlL3Byb3RvY29scy9mYWNlYm9vay9mYWNlYm9vay5jCkBAIC0zMzIsOCArMzMy
LDggQEAgZmJfY2JfYXBpX2Vycm9yKEZiQXBpICphcGksIEdFcnJvciAqZXJybwogCiAJZ2MgPSBm
Yl9kYXRhX2dldF9jb25uZWN0aW9uKGZhdGEpOwogCi0JaWYgKGVycm9yLT5kb21haW4gPT0gRkJf
TVFUVF9TU0xfRVJST1IpIHsKLQkJcHVycGxlX2Nvbm5lY3Rpb25fc3NsX2Vycm9yKGdjLCBlcnJv
ci0+Y29kZSk7CisJaWYgKGVycm9yLT5kb21haW4gPT0gR19JT19FUlJPUikgeworCQlwdXJwbGVf
Y29ubmVjdGlvbl9nX2Vycm9yKGdjLCBlcnJvcik7CiAJCXJldHVybjsKIAl9CiAKZGlmZiAtLWdp
dCBhL2xpYnB1cnBsZS9wcm90b2NvbHMvZmFjZWJvb2svbXF0dC5jIGIvbGlicHVycGxlL3Byb3Rv
Y29scy9mYWNlYm9vay9tcXR0LmMKLS0tIGEvbGlicHVycGxlL3Byb3RvY29scy9mYWNlYm9vay9t
cXR0LmMKKysrIGIvbGlicHVycGxlL3Byb3RvY29scy9mYWNlYm9vay9tcXR0LmMKQEAgLTI4LDcg
KzI4LDggQEAKICNpbmNsdWRlICJhY2NvdW50LmgiCiAjaW5jbHVkZSAiZXZlbnRsb29wLmgiCiAj
aW5jbHVkZSAiZ2xpYmNvbXBhdC5oIgotI2luY2x1ZGUgInNzbGNvbm4uaCIKKyNpbmNsdWRlICJw
dXJwbGUtZ2lvLmgiCisjaW5jbHVkZSAicXVldWVkb3V0cHV0c3RyZWFtLmgiCiAKICNpbmNsdWRl
ICJtYXJzaGFsLmgiCiAjaW5jbHVkZSAibXF0dC5oIgpAQCAtMzcsMTcgKzM4LDE3IEBACiBzdHJ1
Y3QgX0ZiTXF0dFByaXZhdGUKIHsKIAlQdXJwbGVDb25uZWN0aW9uICpnYzsKLQlQdXJwbGVTc2xD
b25uZWN0aW9uICpnc2M7CisJR0lPU3RyZWFtICpjb25uOworCUdCdWZmZXJlZElucHV0U3RyZWFt
ICppbnB1dDsKKwlQdXJwbGVRdWV1ZWRPdXRwdXRTdHJlYW0gKm91dHB1dDsKKwlHQ2FuY2VsbGFi
bGUgKmNhbmNlbGxhYmxlOwogCWdib29sZWFuIGNvbm5lY3RlZDsKIAlndWludDE2IG1pZDsKIAog
CUdCeXRlQXJyYXkgKnJidWY7Ci0JR0J5dGVBcnJheSAqd2J1ZjsKIAlnc2l6ZSByZW16OwogCiAJ
Z2ludCB0ZXY7Ci0JZ2ludCByZXY7Ci0JZ2ludCB3ZXY7CiB9OwogCiBzdHJ1Y3QgX0ZiTXF0dE1l
c3NhZ2VQcml2YXRlCkBAIC02NSw2ICs2Niw4IEBAIHN0cnVjdCBfRmJNcXR0TWVzc2FnZVByaXZh
dGUKIEdfREVGSU5FX1RZUEUoRmJNcXR0LCBmYl9tcXR0LCBHX1RZUEVfT0JKRUNUKTsKIEdfREVG
SU5FX1RZUEUoRmJNcXR0TWVzc2FnZSwgZmJfbXF0dF9tZXNzYWdlLCBHX1RZUEVfT0JKRUNUKTsK
IAorc3RhdGljIHZvaWQgZmJfbXF0dF9yZWFkX3BhY2tldChGYk1xdHQgKm1xdHQpOworCiBzdGF0
aWMgdm9pZAogZmJfbXF0dF9kaXNwb3NlKEdPYmplY3QgKm9iaikKIHsKQEAgLTczLDcgKzc2LDYg
QEAgZmJfbXF0dF9kaXNwb3NlKEdPYmplY3QgKm9iaikKIAogCWZiX21xdHRfY2xvc2UobXF0dCk7
CiAJZ19ieXRlX2FycmF5X2ZyZWUocHJpdi0+cmJ1ZiwgVFJVRSk7Ci0JZ19ieXRlX2FycmF5X2Zy
ZWUocHJpdi0+d2J1ZiwgVFJVRSk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0xNjEsNyArMTYzLDYg
QEAgZmJfbXF0dF9pbml0KEZiTXF0dCAqbXF0dCkKIAltcXR0LT5wcml2ID0gcHJpdjsKIAogCXBy
aXYtPnJidWYgPSBnX2J5dGVfYXJyYXlfbmV3KCk7Ci0JcHJpdi0+d2J1ZiA9IGdfYnl0ZV9hcnJh
eV9uZXcoKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTIwNSwxOCArMjA2LDYgQEAgZmJfbXF0dF9l
cnJvcl9xdWFyayh2b2lkKQogCXJldHVybiBxOwogfQogCi1HUXVhcmsKLWZiX21xdHRfc3NsX2Vy
cm9yX3F1YXJrKHZvaWQpCi17Ci0Jc3RhdGljIEdRdWFyayBxID0gMDsKLQotCWlmIChHX1VOTElL
RUxZKHEgPT0gMCkpIHsKLQkJcSA9IGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKCJmYi1tcXR0
LXNzbC1lcnJvci1xdWFyayIpOwotCX0KLQotCXJldHVybiBxOwotfQotCiBGYk1xdHQgKgogZmJf
bXF0dF9uZXcoUHVycGxlQ29ubmVjdGlvbiAqZ2MpCiB7CkBAIC0yNDAsMzMgKzIyOSw0NyBAQCBm
Yl9tcXR0X2Nsb3NlKEZiTXF0dCAqbXF0dCkKIAlnX3JldHVybl9pZl9mYWlsKEZCX0lTX01RVFQo
bXF0dCkpOwogCXByaXYgPSBtcXR0LT5wcml2OwogCi0JaWYgKHByaXYtPndldiA+IDApIHsKLQkJ
cHVycGxlX2lucHV0X3JlbW92ZShwcml2LT53ZXYpOwotCQlwcml2LT53ZXYgPSAwOwotCX0KLQot
CWlmIChwcml2LT5yZXYgPiAwKSB7Ci0JCXB1cnBsZV9pbnB1dF9yZW1vdmUocHJpdi0+cmV2KTsK
LQkJcHJpdi0+cmV2ID0gMDsKLQl9Ci0KIAlpZiAocHJpdi0+dGV2ID4gMCkgewogCQlwdXJwbGVf
dGltZW91dF9yZW1vdmUocHJpdi0+dGV2KTsKIAkJcHJpdi0+dGV2ID0gMDsKIAl9CiAKLQlpZiAo
cHJpdi0+Z3NjICE9IE5VTEwpIHsKLQkJcHVycGxlX3NzbF9jbG9zZShwcml2LT5nc2MpOwotCQlw
cml2LT5nc2MgPSBOVUxMOworCWlmIChwcml2LT5jYW5jZWxsYWJsZSAhPSBOVUxMKSB7CisJCWdf
Y2FuY2VsbGFibGVfY2FuY2VsKHByaXYtPmNhbmNlbGxhYmxlKTsKKwkJZ19jbGVhcl9vYmplY3Qo
JnByaXYtPmNhbmNlbGxhYmxlKTsKIAl9CiAKLQlpZiAocHJpdi0+d2J1Zi0+bGVuID4gMCkgewot
CQlmYl91dGlsX2RlYnVnX3dhcm5pbmcoIkNsb3Npbmcgd2l0aCB1bndyaXR0ZW4gZGF0YSIpOwor
CWlmIChwcml2LT5jb25uICE9IE5VTEwpIHsKKwkJcHVycGxlX2dpb19ncmFjZWZ1bF9jbG9zZShw
cml2LT5jb25uLAorCQkJCUdfSU5QVVRfU1RSRUFNKHByaXYtPmlucHV0KSwKKwkJCQlHX09VVFBV
VF9TVFJFQU0ocHJpdi0+b3V0cHV0KSk7CisJCWdfY2xlYXJfb2JqZWN0KCZwcml2LT5pbnB1dCk7
CisJCWdfY2xlYXJfb2JqZWN0KCZwcml2LT5vdXRwdXQpOworCQlnX2NsZWFyX29iamVjdCgmcHJp
di0+Y29ubik7CiAJfQogCiAJcHJpdi0+Y29ubmVjdGVkID0gRkFMU0U7CiAJZ19ieXRlX2FycmF5
X3NldF9zaXplKHByaXYtPnJidWYsIDApOwotCWdfYnl0ZV9hcnJheV9zZXRfc2l6ZShwcml2LT53
YnVmLCAwKTsKK30KKworc3RhdGljIHZvaWQKK2ZiX21xdHRfdGFrZV9lcnJvcihGYk1xdHQgKm1x
dHQsIEdFcnJvciAqZXJyLCBjb25zdCBnY2hhciAqcHJlZml4KQoreworCWlmIChnX2Vycm9yX21h
dGNoZXMoZXJyLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NBTkNFTExFRCkpIHsKKwkJLyogUmV0
dXJuIGFzIGNhbmNlbGxlZCBtZWFucyB0aGUgY29ubmVjdGlvbiBpcyBjbG9zaW5nICovCisJCWdf
ZXJyb3JfZnJlZShlcnIpOworCQlyZXR1cm47CisJfQorCisJLyogTm93IHdlIGNhbiBjaGVjayBm
b3IgcHJvZ3JhbW1pbmcgZXJyb3JzICovCisJZ19yZXR1cm5faWZfZmFpbChGQl9JU19NUVRUKG1x
dHQpKTsKKworCWlmIChwcmVmaXggIT0gTlVMTCkgeworCQlnX3ByZWZpeF9lcnJvcigmZXJyLCAi
JXM6ICIsIHByZWZpeCk7CisJfQorCisJZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1xdHQsICJlcnJv
ciIsIGVycik7CisJZ19lcnJvcl9mcmVlKGVycik7CiB9CiAKIHZvaWQKQEAgLTM0NCw3NCArMzQ3
LDEzMCBAQCBmYl9tcXR0X3BpbmcoRmJNcXR0ICptcXR0KQogfQogCiBzdGF0aWMgdm9pZAotZmJf
bXF0dF9jYl9yZWFkKGdwb2ludGVyIGRhdGEsIGdpbnQgZmQsIFB1cnBsZUlucHV0Q29uZGl0aW9u
IGNvbmQpCitmYl9tcXR0X2NiX2ZpbGwoR09iamVjdCAqc291cmNlLCBHQXN5bmNSZXN1bHQgKnJl
cywgZ3BvaW50ZXIgZGF0YSkKK3sKKwlHQnVmZmVyZWRJbnB1dFN0cmVhbSAqaW5wdXQgPSBHX0JV
RkZFUkVEX0lOUFVUX1NUUkVBTShzb3VyY2UpOworCUZiTXF0dCAqbXF0dCA9IGRhdGE7CisJZ3Nz
aXplIHJldDsKKwlHRXJyb3IgKmVyciA9IE5VTEw7CisKKwlyZXQgPSBnX2J1ZmZlcmVkX2lucHV0
X3N0cmVhbV9maWxsX2ZpbmlzaChpbnB1dCwgcmVzLCAmZXJyKTsKKworCWlmIChyZXQgPCAxKSB7
CisJCWlmIChyZXQgPT0gMCkgeworCQkJZXJyID0gZ19lcnJvcl9uZXdfbGl0ZXJhbChHX0lPX0VS
Uk9SLAorCQkJCQlHX0lPX0VSUk9SX0NPTk5FQ1RJT05fQ0xPU0VELAorCQkJCQlfKCJDb25uZWN0
aW9uIGNsb3NlZCIpKTsKKwkJfQorCisJCWZiX21xdHRfdGFrZV9lcnJvcihtcXR0LCBlcnIsIF8o
IkZhaWxlZCB0byByZWFkIGZpeGVkIGhlYWRlciIpKTsKKwkJcmV0dXJuOworCX0KKworCWZiX21x
dHRfcmVhZF9wYWNrZXQobXF0dCk7Cit9CisKK3N0YXRpYyB2b2lkCitmYl9tcXR0X2NiX3JlYWRf
cGFja2V0KEdPYmplY3QgKnNvdXJjZSwgR0FzeW5jUmVzdWx0ICpyZXMsIGdwb2ludGVyIGRhdGEp
CiB7CiAJRmJNcXR0ICptcXR0ID0gZGF0YTsKKwlGYk1xdHRQcml2YXRlICpwcml2OworCWdzc2l6
ZSByZXQ7CiAJRmJNcXR0TWVzc2FnZSAqbXNnOwotCUZiTXF0dFByaXZhdGUgKnByaXYgPSBtcXR0
LT5wcml2OwotCWdpbnQgcmVzOwotCWd1aW50IG11bHQ7Ci0JZ3VpbnQ4IGJ1ZlsxMDI0XTsKLQln
dWludDggYnl0ZTsKLQlnc2l6ZSBzaXplOwotCWdzc2l6ZSByaXplOworCUdFcnJvciAqZXJyID0g
TlVMTDsKIAotCWlmIChwcml2LT5yZW16IDwgMSkgewotCQkvKiBSZXNldCB0aGUgcmVhZCBidWZm
ZXIgKi8KLQkJZ19ieXRlX2FycmF5X3NldF9zaXplKHByaXYtPnJidWYsIDApOworCXJldCA9IGdf
aW5wdXRfc3RyZWFtX3JlYWRfZmluaXNoKEdfSU5QVVRfU1RSRUFNKHNvdXJjZSksIHJlcywgJmVy
cik7CiAKLQkJcmVzID0gcHVycGxlX3NzbF9yZWFkKHByaXYtPmdzYywgJmJ5dGUsIHNpemVvZiBi
eXRlKTsKLQkJZ19ieXRlX2FycmF5X2FwcGVuZChwcml2LT5yYnVmLCAmYnl0ZSwgc2l6ZW9mIGJ5
dGUpOwotCi0JCWlmIChyZXMgIT0gc2l6ZW9mIGJ5dGUpIHsKLQkJCWZiX21xdHRfZXJyb3IobXF0
dCwgRkJfTVFUVF9FUlJPUl9HRU5FUkFMLAotCQkJICAgICAgICAgICAgICBfKCJGYWlsZWQgdG8g
cmVhZCBmaXhlZCBoZWFkZXIiKSk7Ci0JCQlyZXR1cm47CisJaWYgKHJldCA8IDEpIHsKKwkJaWYg
KHJldCA9PSAwKSB7CisJCQllcnIgPSBnX2Vycm9yX25ld19saXRlcmFsKEdfSU9fRVJST1IsCisJ
CQkJCUdfSU9fRVJST1JfQ09OTkVDVElPTl9DTE9TRUQsCisJCQkJCV8oIkNvbm5lY3Rpb24gY2xv
c2VkIikpOwogCQl9CiAKLQkJbXVsdCA9IDE7Ci0KLQkJZG8gewotCQkJcmVzID0gcHVycGxlX3Nz
bF9yZWFkKHByaXYtPmdzYywgJmJ5dGUsIHNpemVvZiBieXRlKTsKLQkJCWdfYnl0ZV9hcnJheV9h
cHBlbmQocHJpdi0+cmJ1ZiwgJmJ5dGUsIHNpemVvZiBieXRlKTsKLQotCQkJaWYgKHJlcyAhPSBz
aXplb2YgYnl0ZSkgewotCQkJCWZiX21xdHRfZXJyb3IobXF0dCwgRkJfTVFUVF9FUlJPUl9HRU5F
UkFMLAotCQkJCSAgICAgICAgICAgICAgXygiRmFpbGVkIHRvIHJlYWQgcGFja2V0IHNpemUiKSk7
Ci0JCQkJcmV0dXJuOwotCQkJfQotCi0JCQlwcml2LT5yZW16ICs9IChieXRlICYgMTI3KSAqIG11
bHQ7Ci0JCQltdWx0ICo9IDEyODsKLQkJfSB3aGlsZSAoKGJ5dGUgJiAxMjgpICE9IDApOworCQlm
Yl9tcXR0X3Rha2VfZXJyb3IobXF0dCwgZXJyLCBfKCJGYWlsZWQgdG8gcmVhZCBwYWNrZXQgZGF0
YSIpKTsKKwkJcmV0dXJuOwogCX0KIAorCXByaXYgPSBtcXR0LT5wcml2OworCXByaXYtPnJlbXog
LT0gcmV0OworCiAJaWYgKHByaXYtPnJlbXogPiAwKSB7Ci0JCXNpemUgPSBNSU4ocHJpdi0+cmVt
eiwgc2l6ZW9mIGJ1Zik7Ci0JCXJpemUgPSBwdXJwbGVfc3NsX3JlYWQocHJpdi0+Z3NjLCBidWYs
IHNpemUpOworCQlnX2lucHV0X3N0cmVhbV9yZWFkX2FzeW5jKEdfSU5QVVRfU1RSRUFNKHNvdXJj
ZSksCisJCQkJcHJpdi0+cmJ1Zi0+ZGF0YSArCisJCQkJcHJpdi0+cmJ1Zi0+bGVuIC0gcHJpdi0+
cmVteiwgcHJpdi0+cmVteiwKKwkJCQlHX1BSSU9SSVRZX0RFRkFVTFQsIHByaXYtPmNhbmNlbGxh
YmxlLAorCQkJCWZiX21xdHRfY2JfcmVhZF9wYWNrZXQsIG1xdHQpOworCQlyZXR1cm47CisJfQog
Ci0JCWlmIChyaXplIDwgMSkgewotCQkJZmJfbXF0dF9lcnJvcihtcXR0LCBGQl9NUVRUX0VSUk9S
X0dFTkVSQUwsCi0JCQkgICAgICAgICAgICAgIF8oIkZhaWxlZCB0byByZWFkIHBhY2tldCBkYXRh
IikpOwotCQkJcmV0dXJuOworCW1zZyA9IGZiX21xdHRfbWVzc2FnZV9uZXdfYnl0ZXMocHJpdi0+
cmJ1Zik7CisKKwlpZiAoR19VTkxJS0VMWShtc2cgPT0gTlVMTCkpIHsKKwkJZmJfbXF0dF9lcnJv
cihtcXR0LCBGQl9NUVRUX0VSUk9SX0dFTkVSQUwsCisJCSAgICAgICAgICAgICAgXygiRmFpbGVk
IHRvIHBhcnNlIG1lc3NhZ2UiKSk7CisJCXJldHVybjsKKwl9CisKKwlmYl9tcXR0X3JlYWQobXF0
dCwgbXNnKTsKKwlnX29iamVjdF91bnJlZihtc2cpOworCisJLyogUmVhZCBhbm90aGVyIHBhY2tl
dCBpZiBjb25uZWN0aW9uIHdhc24ndCByZXNldCBpbiBmYl9tcXR0X3JlYWQoKSAqLworCWlmIChm
Yl9tcXR0X2Nvbm5lY3RlZChtcXR0LCBGQUxTRSkpIHsKKwkJZmJfbXF0dF9yZWFkX3BhY2tldCht
cXR0KTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkCitmYl9tcXR0X3JlYWRfcGFja2V0KEZiTXF0dCAq
bXF0dCkKK3sKKwlGYk1xdHRQcml2YXRlICpwcml2ID0gbXF0dC0+cHJpdjsKKwljb25zdCBndWlu
dDggY29uc3QgKmJ1ZjsKKwlnc2l6ZSBjb3VudCA9IDA7CisJZ3NpemUgcG9zOworCWd1aW50IG11
bHQgPSAxOworCWd1aW50OCBieXRlOworCWdzaXplIHNpemUgPSAwOworCisJYnVmID0gZ19idWZm
ZXJlZF9pbnB1dF9zdHJlYW1fcGVla19idWZmZXIocHJpdi0+aW5wdXQsICZjb3VudCk7CisKKwkv
KiBTdGFydCBhdCAxIHRvIHNraXAgdGhlIGZpcnN0IGJ5dGUgKi8KKwlwb3MgPSAxOworCisJZG8g
eworCQlpZiAocG9zID49IGNvdW50KSB7CisJCQkvKiBOb3QgZW5vdWdoIGRhdGEgeWV0LCB0cnkg
YWdhaW4gbGF0ZXIgKi8KKwkJCXNpemUgPSAwOworCQkJYnJlYWs7CiAJCX0KIAotCQlnX2J5dGVf
YXJyYXlfYXBwZW5kKHByaXYtPnJidWYsIGJ1Ziwgcml6ZSk7Ci0JCXByaXYtPnJlbXogLT0gcml6
ZTsKLQl9CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpD
b21taXRzIG1haWxpbmcgbGlzdApDb21taXRzQHBpZGdpbi5pbQpodHRwczovL3BpZGdpbi5pbS9j
Z2ktYmluL21haWxtYW4vbGlzdGluZm8vY29tbWl0cw==