Re: [patch] python support configuration for FreeBSD64 broken, other BSDs not supported

Emmanuel Briot <[email protected]> Tue, 11 Oct 2011 14:49:31 +0200
Newsgroups gmane.comp.ide.gps.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------000007000103090806090601
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

> Thanks Emmanuel,
> I'll consider this a "5.0.1" issue only then.
> I have a couple of other patches on a different topic that I'll send
> along soon.

I forgot to send you the current aclocal.m4, if you want to test on FreeBSD. I 
have used it successfully on our own FreeBSD machines, but that's not a system 
we use a lot, so there might be differences on your own machine.

Eagerly waiting for the next patches :-)

Emmanuel

--------------000007000103090806090601
Content-Type: application/x-m4;
 name="aclocal.m4"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="aclocal.m4"

IyMgVGhpcyBmaWxlIGNvbnRhaW5zIHZhcmlvdXMgbTQgbWFjcm9zIHRoYXQgY2FuIGJlIGlu
Y2x1ZGVkIGluIHlvdXIKIyMgb3duIHByb2plY3RzIHRvIGVuYWJsZSBwcm9wZXIgZGV0ZWN0
aW9uIG9mIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2VzCiMjIEluIHlvdXIgb3duIGFjbG9jYWwu
bTQgZmlsZSwgeW91IGNhbiB1c2Ugc3ludGF4IGxpa2UKIyMgICBpbmNsdWRlKGduYXRjb2xs
L2FjbG9jYWwubTQpCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIENvcHkgYSBmaWxlLCBhcyBwYXJ0IG9mIGNvbmZp
Zy5zdGF0dXMKIyAgQU1fTElOS19GSUxFKFNPVVJDRSxERVNUKQojIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKQUNfREVG
VU4oQU1fTElOS19GSUxFLApbCiAgIEFDX0NPTkZJR19DT01NQU5EUyhbJDJdLAogICAgICAg
ICAgICAgICAgICAgICAgW3JtIC1mICQyCiAgICAgICAgICAgICAgICAgICAgICAgY3AgLWYg
JDEgJDJdLCBbJDNdKQpdKQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBDaGVja2luZyBmb3IgYnVpbGQgdHlwZQoj
IFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgaXMgZXhwb3J0ZWQgYnkgY29uZmlndXJlOgojICAg
QEJVSUxEX1RZUEVAOiBlaXRoZXIgIlByb2R1Y3Rpb24iIG9yICJEZWJ1ZyIKIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK
CkFDX0RFRlVOKENIRUNLX0JVSUxEX1RZUEUsClsKICBBQ19BUkdfRU5BQkxFKGJ1aWxkLAog
ICAgW0FDX0hFTFBfU1RSSU5HKAogICAgICAgWy0tZW5hYmxlLWJ1aWxkPTx0eXBlPl0sCiAg
ICAgICBbRGVmYXVsdCBidWlsZCB0eXBlIGZvciB0aGUgbGlicmFyeSAoRGVidWcsIFByb2R1
Y3Rpb24pXSldLAogICAgQlVJTERfVFlQRT0kZW5hYmxldmFsLAogICAgQlVJTERfVFlQRT1Q
cm9kdWN0aW9uKQogIEFDX1NVQlNUKEJVSUxEX1RZUEUpCl0pCgojIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgQ2hlY2sg
d2hldGhlciBnbmF0bWFrZSBjYW4gY29tcGlsZSwgYmluZCBhbmQgbGluayBhbiBBZGEgcHJv
Z3JhbQojICAgIEFNX1RSWV9BREEoZ25hdG1ha2UsZmlsZW5hbWUsY29udGVudCxzdWNjZXNz
LGZhaWx1cmUpCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMKCkFDX0RFRlVOKEFNX1RSWV9BREEsClsKICAgbWtkaXIgY29u
ZnRlc3QKICAgY2F0ID4gY29uZnRlc3Qvc3JjLmFkYSA8PEVPRgpbJDNdCkVPRgogICBpZiBB
Q19UUllfQ09NTUFORChbY2QgY29uZnRlc3QgJiYgZ25hdGNob3AgLXEgc3JjLmFkYSAmJiAk
MSAkMiA+L2Rldi9udWxsIDI+Li4vY29uZnRlc3Qub3V0XSkKICAgdGhlbgogICAgICA6IFN1
Y2Nlc3MKICAgICAgJDQKICAgZWxzZQogICAgICA6IEZhaWx1cmUKICAgICAgJDUKICAgZmkK
ICAgcm0gLXJmIGNvbmZ0ZXN0KgpdKQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIENoZWNrIHdoZXRoZXIgcGxhdGZv
cm0vR05BVCBzdXBwb3J0cyBhdG9taWMgaW5jcmVtZW50L2RlY3JlbWVudAojIG9wZXJhdGlv
bnMuCiMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyB0aGVuIHNldDoKIyAgICAgU1lOQ19D
T1VOVEVSU19JTVBMCiMgdG8gZWl0aGVyICJpbnRyaW5zaWMiIG9yICJtdXRleCIKIyBDb2Rl
IGNvbWVzIGZyb20gdGhlIHBvbHlvcmIgY29uZmlndXJlLmFjCiMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCkFDX0RFRlVO
KEFNX0hBU19JTlRSSU5TSUNfU1lOQ19DT1VOVEVSUywKWwogIEFDX01TR19DSEVDS0lORyhb
d2hldGhlciBwbGF0Zm9ybSBzdXBwb3J0cyBhdG9taWMgaW5jL2RlY10pCiAgQU1fVFJZX0FE
QShbZ25hdG1ha2VdLCBbY2hlY2suYWRiXSwKWwp3aXRoIEludGVyZmFjZXM7IHVzZSBJbnRl
cmZhY2VzOwpwcm9jZWR1cmUgQ2hlY2sgaXMKICAgZnVuY3Rpb24gU3luY19BZGRfQW5kX0Zl
dGNoCiAgICAgKFB0ciAgIDogYWNjZXNzIEludGVyZmFjZXMuSW50ZWdlcl8zMjsKICAgICAg
VmFsdWUgOiBJbnRlcmZhY2VzLkludGVnZXJfMzIpIHJldHVybiBJbnRlcmZhY2VzLkludGVn
ZXJfMzI7CiAgIHByYWdtYSBJbXBvcnQgKEludHJpbnNpYywgU3luY19BZGRfQW5kX0ZldGNo
LCAiX19zeW5jX2FkZF9hbmRfZmV0Y2hfNCIpOwogICBYIDogYWxpYXNlZCBJbnRlcmZhY2Vz
LkludGVnZXJfMzI7CiAgIFkgOiBJbnRlcmZhY2VzLkludGVnZXJfMzIgOj0gMDsKICAgcHJh
Z21hIFZvbGF0aWxlIChZKTsKICAgLS0gIE9uIHNvbWUgcGxhdGZvcm1zIChlLmcuIGkzODYp
LCBHQ0MgaGFzIGxpbWl0ZWQgc3VwcG9ydCBmb3IKICAgLS0gIF9fc3luY19hZGRfYW5kX2Zl
dGNoXzQgZm9yIHRoZSBjYXNlIHdoZXJlIHRoZSByZXN1bHQgaXMgbm90IHVzZWQuCiAgIC0t
ICBIZXJlIHdlIHdhbnQgdG8gdGVzdCBmb3IgZ2VuZXJhbCBhdmFpbGFiaWxpdHksIHNvIG1h
a2UgWSB2b2xhdGlsZSB0bwogICAtLSAgcHJldmVudCB0aGUgc3RvcmUgb3BlcmF0aW9uIGZy
b20gYmVpbmcgZGlzY2FyZGVkLgpiZWdpbgogICBZIDo9IFN5bmNfQWRkX0FuZF9GZXRjaCAo
WCdBY2Nlc3MsIDEpOwplbmQgQ2hlY2s7Cl0sClsKICAgQUNfTVNHX1JFU1VMVCh5ZXMpCiAg
IFNZTkNfQ09VTlRFUlNfSU1QTD0iaW50cmluc2ljIgpdLFsKICAgQUNfTVNHX1JFU1VMVChu
bykKICAgU1lOQ19DT1VOVEVSU19JTVBMPSJtdXRleCIKXSkKCiAgIEFDX1NVQlNUKFNZTkNf
Q09VTlRFUlNfSU1QTCkKXSkKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBDaGVjayB3aGV0aGVyIHdlIGhhdmUgdGhl
IEdOQVQgc291cmNlcyBhdmFpbGFibGUKIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUg
ZXhwb3J0ZWQgYnkgY29uZmlndXJlOgojICAgQFdJVEhfUFJPSkVDVFNAOiAieWVzIiBvciAi
bm8iCiMgICBHTkFUX1NPVVJDRVM6ICJnbmF0X3V0aWwiLCAiY29weSIsICJubyIKIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IwoKQUNfREVGVU4oQU1fR05BVF9TT1VSQ0VTLApbCiAgQUNfTVNHX0NIRUNLSU5HKHdoZXRo
ZXIgZ25hdCBzb3VyY2VzIGFyZSBmb3VuZCkKICBpZiB0ZXN0IC1kIGduYXRfc3JjOyB0aGVu
CiAgICAgQUNfTVNHX1JFU1VMVCh5ZXMpCiAgICAgSEFTX0dOQVRfU09VUkNFUz15ZXMKICAg
ICBHTkFUX1NPVVJDRVM9Y29weQogIGVsc2UKICAgICBBQ19NU0dfUkVTVUxUKG5vKQoKICAg
ICBBQ19NU0dfQ0hFQ0tJTkcod2hldGhlciBnbmF0X3V0aWwgZXhpc3RzKQogICAgIEFNX1BB
VEhfUFJPSkVDVChnbmF0X3V0aWwsIEhBVkVfR05BVF9VVElMKQogICAgIGlmIHRlc3QgIiRI
QVZFX0dOQVRfVVRJTCIgPSAieWVzIjsgdGhlbgogICAgICAgIEFDX01TR19SRVNVTFQoeWVz
KTsKICAgICAgICBIQVNfR05BVF9TT1VSQ0VTPXllcwogICAgICAgIEdOQVRfU09VUkNFUz1n
bmF0X3V0aWwKICAgICBlbHNlCiAgICAgICAgQUNfTVNHX1JFU1VMVChubykKICAgICAgICBI
QVNfR05BVF9TT1VSQ0VTPW5vCiAgICAgICAgR05BVF9TT1VSQ0VTPWNvcHkKICAgICBmaQog
IGZpCgogIEFDX1NVQlNUKEdOQVRfU09VUkNFUykKXSkKCkFDX0RFRlVOKEFNX1BST0pFQ1RT
LApbCiAgIyBBbGxvdyB0aGUgdXNlciB0byBkaXNhYmxlIHByb2plY3RzIHN1cHBvcnQgc28g
dGhhdCBnbmF0Y29sbCBkb2VzIG5vdCBkZXBlbmQKICAjIG9uIHRoZSBpbnN0YWxsZWQgZ25h
dCBjb21waWxlciAoZ25hdF91dGlscyBwcm9qZWN0KQogIEFDX0FSR19FTkFCTEUocHJvamVj
dHMsCiAgICBBQ19IRUxQX1NUUklORygKICAgICAgWy0tZGlzYWJsZS1wcm9qZWN0c10sCiAg
ICAgIFtEaXNhYmxlIHN1cHBvcnQgZm9yIEdOQVQgUHJvamVjdHMgW1tkZWZhdWx0PWVuYWJs
ZWRdXV0pLAogICAgW1dJVEhfUFJPSkVDVFM9JGVuYWJsZXZhbF0sCiAgICBbV0lUSF9QUk9K
RUNUUz0kSEFTX0dOQVRfU09VUkNFU10pCgogIEFDX1NVQlNUKFdJVEhfUFJPSkVDVFMpCl0p
CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjCiMgQ2hlY2sgd2hldGhlciBHTkFUIG9uIHRoYXQgdGFyZ2V0IHN1cHBvcnRz
IGJ1aWxkaW5nIHNoYXJlZAojIGxpYnJhcmllcwojIFRoZSBmb2xsb3dpbmcgdmFyaWFibGVz
IGFyZSBleHBvcnRlZCBieSBjb25maWd1cmU6CiMgICBAR05BVF9CVUlMRFNfU0hBUkVEQDog
ZWl0aGVyICJ5ZXMiIG9yICJubyIKIyAgIEBERUZBVUxUX0xJQlJBUllfVFlQRUA6IGVpdGhl
ciAic3RhdGljIiBvciAicmVsb2NhdGFibGUiCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCkFDX0RFRlVOKEFNX0dOQVRf
QlVJTERTX1NIQVJFRCwKWwogICBBQ19NU0dfQ0hFQ0tJTkcod2hldGhlciBnbmF0IGNhbiBi
dWlsZCBzaGFyZWQgbGlicykKCiAgIERFRkFVTFRfTElCUkFSWV9UWVBFPXN0YXRpYwoKICAg
QUNfQVJHX0VOQUJMRShzaGFyZWQsCiAgICAgW0FDX0hFTFBfU1RSSU5HKAogICAgICAgIFst
LWRpc2FibGUtc2hhcmVkXSwKICAgICAgICBbRGlzYWJsZSBidWlsZGluZyBvZiBzaGFyZWQg
bGlicmFyaWVzXSkKQUNfSEVMUF9TVFJJTkcoCiAgICAgICAgWy0tZW5hYmxlLXNoYXJlZF0s
CiAgICAgICAgW0J1aWxkIHNoYXJlZCBsaWJyYXJpZXMgaWYgc3VwcG9ydGVkIG9uIHRoZSB0
YXJnZXQKTWFrZSB0aGVtIHRoZSBpbnN0YWxsYXRpb24gZGVmYXVsdF0pXSwKICAgICBbR05B
VF9CVUlMRFNfU0hBUkVEPSRlbmFibGV2YWwKICAgICAgaWYgdGVzdCAkZW5hYmxldmFsID0g
eWVzOyB0aGVuCiAgICAgICAgIERFRkFVTFRfTElCUkFSWV9UWVBFPXJlbG9jYXRhYmxlCiAg
ICAgIGZpXSwKICAgICBbR05BVF9CVUlMRFNfU0hBUkVEPXllc10pCgogICBpZiB0ZXN0IHgk
R05BVF9CVUlMRFNfU0hBUkVEID0geHllczsgdGhlbgogICAgICAjIENyZWF0ZSBhIHRlbXBv
cmFyeSBkaXJlY3RvcnkgKGZyb20gImluZm8gYXV0b2NvbmYiKQogICAgICA6ICR7VE1QRElS
PS90bXB9CiAgICAgIHsKICAgICAgICB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kICIk
VE1QRElSL2Zvb1hYWFhYWCIpIDI+L2Rldi9udWxsYCBcCiAgICAgICAgICAgJiYgdGVzdCAt
biAiJHRtcCIgJiYgdGVzdCAtZCAiJHRtcCIKICAgICAgfSB8fCB7CiAgICAgICAgdG1wPSRU
TVBESVIvZm9vJCQtJFJBTkRPTQogICAgICAgICh1bWFzayAwNzcgJiYgbWtkaXIgLXAgIiR0
bXAiKQogICAgICB9IHx8IGV4aXQgJD8KCiAgICAgIG1rZGlyICR0bXAvbGliCiAgICAgIGVj
aG8gInBhY2thZ2UgRm9vIGlzIGVuZCBGb287IiA+ICR0bXAvZm9vLmFkcwogICAgICBjYXQg
PiAkdG1wL2xpYi5ncHIgPDxFT0YKcHJvamVjdCBMaWIgaXMKICAgZm9yIFNvdXJjZV9EaXJz
IHVzZSAoIi4iKTsKICAgZm9yIExpYnJhcnlfRGlyIHVzZSAibGliIjsKICAgZm9yIExpYnJh
cnlfTmFtZSB1c2UgImxpYiI7CiAgIGZvciBMaWJyYXJ5X0tpbmQgdXNlICJyZWxvY2F0YWJs
ZSI7CmVuZCBMaWI7CkVPRgoKICAgICAgZ25hdG1ha2UgLWMgLXEgLVAkdG1wL2xpYiAyPi9k
ZXYvbnVsbAogICAgICBpZiB0ZXN0ICQ/ID0gMCA7IHRoZW4KICAgICAgICAgR05BVF9CVUlM
RFNfU0hBUkVEPXllcwogICAgICBlbHNlCiAgICAgICAgIEdOQVRfQlVJTERTX1NIQVJFRD1u
bwogICAgICAgICBERUZBVUxUX0xJQlJBUllfVFlQRT1zdGF0aWMKICAgICAgZmkKICAgICAg
cm0gLXJmICR0bXAKICAgICAgQUNfTVNHX1JFU1VMVCgkR05BVF9CVUlMRFNfU0hBUkVEKQog
ICBlbHNlCiAgICAgIEFDX01TR19SRVNVTFQoW25vICgtLWRpc2FibGVkLXNoYXJlZCldKQog
ICBmaQoKICAgQUNfU1VCU1QoR05BVF9CVUlMRFNfU0hBUkVEKQogICBBQ19TVUJTVChERUZB
VUxUX0xJQlJBUllfVFlQRSkKXSkKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBDaGVja2luZyBmb3Igc3lzbG9nCiMg
VGhpcyBjaGVja3Mgd2hldGhlciBzeXNsb2cgZXhpc3RzIG9uIHRoaXMgc3lzdGVtLgojIFRo
aXMgbW9kdWxlIGNhbiBiZSBkaXNhYmxlZCB3aXRoCiMgICAgLS1kaXNhYmxlLXN5c2xvZwoj
IFRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGFyZSBleHBvcnRlZCBieSBjb25maWd1cmU6CiMg
ICAgQFdJVEhfU1lTTE9HQDogZWl0aGVyICJ5ZXMiIG9yICJubyIKIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpBQ19ERUZV
TihBTV9QQVRIX1NZU0xPRywKWwogICBBQ19BUkdfRU5BQkxFKHN5c2xvZywKICAgICBBQ19I
RUxQX1NUUklORygKICAgICAgICBbLS1kaXNhYmxlLXN5c2xvZ10sCiAgICAgICAgW0Rpc2Fi
bGUgc3VwcG9ydCBmb3Igc3lzbG9nIFtbZGVmYXVsdD1lbmFibGVkXV1dKSwKICAgICBbV0lU
SF9TWVNMT0c9JGVuYWJsZXZhbF0sCiAgICAgW1dJVEhfU1lTTE9HPXllc10pCgogICBpZiB0
ZXN0IHgkV0lUSF9TWVNMT0cgPSB4eWVzIDsgdGhlbgogICAgIEFDX0NIRUNLX0hFQURFUihb
c3lzbG9nLmhdLAogICAgICAgICAgICAgICAgICAgICBbV0lUSF9TWVNMT0c9eWVzXSwKICAg
ICAgICAgICAgICAgICAgICAgW1dJVEhfU1lTTE9HPW5vXSkKICAgZmkKCiAgIEFDX1NVQlNU
KFdJVEhfU1lTTE9HKQpdKQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFNlYXJjaCBmb3IgYSBsaWJyYXJ5IGFueXdo
ZXJlIG9uIExEX0xJQlJBUllfUEFUSAojIFRoaXMgd2lsbCByZXR1cm4gdGhlIGVtcHR5IHN0
cmluZyBpZiBub3QgZm91bmQsIGFuZCB0aGUgZGlyZWN0b3J5CiMgb3RoZXJ3aXNlLgojIFRo
aXMgY2FuIGJlIHVzZWQgdG8gYWRkIC1MZGlyIHBhcmFtZXRlcnMgb24gdGhlIGNvbW1hbmQg
bGluZTogaWYKIyB0aGUgbGlicmFyeSB3YXMgZm91bmQgd2l0aCBBQ19DSEVDS19MSUIgYnV0
IG5vdCB0aGlzIG1hY3JvLCB0aGlzCiMgbWVhbnMgaXQgaXMgaW4gdGhlIHN0YW5kYXJkIHNl
YXJjaCBwYXRoIGFuZCBubyBjb21tYW5kIGxpbmUgc3dpdGNoCiMgaXMgcmVxdWlyZWQuCiMg
ICAgQU1fTElCX1BBVEgobGlibmFtZSkKIyBTZXRzIGFtX3BhdGhfPGxpYm5hbWU+IHRvIHRo
ZSBwYXRoCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMKCkFDX0RFRlVOKEFNX0xJQl9QQVRILApbCiAgIGFtX3BhdGhfJDE9
IiIKICAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgogICBmb3IgbGli
X2RpciBpbiAkTERfTElCUkFSWV9QQVRICiAgIGRvCiAgICAgIElGUz0kYXNfc2F2ZV9JRlMK
ICAgICAgaWYgdGVzdCAtZiAiJGxpYl9kaXIvbGliJDEuc28iOyB0aGVuCiAgICAgICAgIGFt
X3BhdGhfJDE9JGxpYl9kaXIKICAgICAgICAgYnJlYWsKICAgICAgZWxpZiB0ZXN0IC1mICIk
bGliX2Rpci9saWIkMS5kbGwiOyB0aGVuCiAgICAgICAgIGFtX3BhdGhfJDE9JGxpYl9kaXIK
ICAgICAgICAgYnJlYWsKICAgICAgZWxpZiB0ZXN0IC1mICIkbGliX2Rpci9saWIkMS5keWxp
YiI7IHRoZW4KICAgICAgICAgYW1fcGF0aF8kMT0kbGliX2RpcgogICAgICAgICBicmVhawog
ICAgICBmaQogICBkb25lCiAgIElGUz0kYXNfc2F2ZV9JRlMKXSkKCiMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBDaGVj
a2luZyBmb3IgcG9zdGdyZVNRTAojIFRoaXMgY2hlY2tzIHdoZXRoZXIgdGhlIGxpYnBxIGV4
aXN0cyBvbiB0aGlzIHN5c3RlbQojIFRoaXMgbW9kdWxlIGNhbiBiZSBkaXNhYmxlZCB3aXRo
CiMgICAgLS13aXRoLXBvc3RncmVzcWw9cGF0aAojIFRoZSBmb2xsb3dpbmcgdmFyaWFibGVz
IGFyZSBleHBvcnRlZCBieSBjb25maWd1cmU6CiMgICBAV0lUSF9QT1NUR1JFU0A6IHdoZXRo
ZXIgcG9zdGdyZXMgd2FzIGRldGVjdGVkCiMgICBAUEFUSF9MSUJQUUA6IHBhdGggdG8gbGli
cHEsIG9yICIiIGlmIG5vdCBmb3VuZAojICAgQEhBU19QUVBSRVBBUkVAOiB3aGV0aGVyIHRo
ZSB2ZXJzaW9uIG9mIHBvc3RncmVTUUwgaGFzIFBRcHJlcGFyZSAoKQojIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpBQ19E
RUZVTihBTV9QQVRIX1BPU1RHUkVTLApbCiAgIE5FRURfUFNRTD1ubwogICBBQ19BUkdfV0lU
SChwb3N0Z3Jlc3FsLAogICAgIFtBQ19IRUxQX1NUUklORygKICAgICAgIFstLXdpdGgtcG9z
dGdyZXNxbD08cGF0aD5dLAogICAgICAgW1NwZWNpZnkgdGhlIGZ1bGwgcGF0aCB0byB0aGUg
UG9zdGdyZVNRTCBpbnN0YWxsYXRpb25dKQpBQ19IRUxQX1NUUklORygKICAgICAgIFstLXdp
dGhvdXQtcG9zdGdyZXNxbF0sCiAgICAgICBbRGlzYWJsZSBQb3N0Z3JlU1FMIHN1cHBvcnRd
KV0sCiAgICAgW1BPU1RHUkVTUUxfUEFUSF9XSVRIPSR3aXRodmFsOyBORUVEX1BTUUw9eWVz
XSwKICAgICBQT1NUR1JFU1FMX1BBVEhfV0lUSD15ZXMpCgogICBQQVRIX0xJQlBRPSIiCiAg
IGlmIHRlc3QgeCIkUE9TVEdSRVNRTF9QQVRIX1dJVEgiID0geG5vIDsgdGhlbgogICAgICBB
Q19NU0dfQ0hFQ0tJTkcoZm9yIFBvc3RncmVTUUwpCiAgICAgIEFDX01TR19SRVNVTFQobm8s
IHVzZSAtLXdpdGgtcG9zdGdyZXNxbCBpZiBuZWVkZWQpCiAgICAgIFdJVEhfUE9TVEdSRVM9
bm8KCiAgIGVsc2UKICAgICBpZiB0ZXN0IHgiJFBPU1RHUkVTUUxfUEFUSF9XSVRIIiA9IHh5
ZXMgOyB0aGVuCiAgICAgICBBTV9MSUJfUEFUSChwcSkKICAgICAgIGlmIHRlc3QgeCIkYW1f
cGF0aF9wcSIgIT0geCA7IHRoZW4KICAgICAgICAgIFBBVEhfTElCUFE9Ii1MJGFtX3BhdGhf
cHEiCiAgICAgICBmaQogICAgICAgQUNfQ0hFQ0tfTElCKHBxLFBRcmVzZXQsV0lUSF9QT1NU
R1JFUz15ZXMsV0lUSF9QT1NUR1JFUz1ubyxbJFBBVEhfTElCUFFdKQogICAgIGVsc2UKICAg
ICAgIFdJVEhfUE9TVEdSRVM9eWVzCiAgICAgICBpZiB0ZXN0IC1mICIkUE9TVEdSRVNRTF9Q
QVRIX1dJVEgvbGlicHEuc28iIC1vIC1mICIkUE9TVEdSRVNRTF9QQVRIX1dJVEgvbGlicHEu
ZGxsIiAtbyAtZiAiJFBPU1RHUkVTUUxfUEFUSF9XSVRIL2xpYnBxLmR5bGliIiA7IHRoZW4K
ICAgICAgICAgIFBBVEhfTElCUFE9Ii1MJFBPU1RHUkVTUUxfUEFUSF9XSVRIIgogICAgICAg
ZWxpZiB0ZXN0IC1mICIkUE9TVEdSRVNRTF9QQVRIX1dJVEgvbGliL2xpYnBxLnNvIiAtbyAt
ZiAiJFBPU1RHUkVTUUxfUEFUSF9XSVRIL2xpYi9saWJwcS5kbGwiIC1vIC1mICIkUE9TVEdS
RVNRTF9QQVRIX1dJVEgvbGliL2xpYnBxLmR5bGliIiA7IHRoZW4KICAgICAgICAgIFBBVEhf
TElCUFE9Ii1MJFBPU1RHUkVTUUxfUEFUSF9XSVRIL2xpYiIKICAgICAgIGVsc2UKICAgICAg
ICAgIEFDX01TR19DSEVDS0lORyhmb3IgUG9zdGdyZVNRTCkKICAgICAgICAgIEFDX01TR19S
RVNVTFQobm90IGZvdW5kIGluICRQT1NUR1JFU1FMX1BBVEhfV0lUSCkKICAgICAgICAgIFdJ
VEhfUE9TVEdSRVM9bm8KICAgICAgIGZpCiAgICAgZmkKCiAgICAgaWYgdGVzdCB4IiRXSVRI
X1BPU1RHUkVTIiA9IHhubyAtYSB4IiRORUVEX1BTUUwiID0geHllcyA7IHRoZW4KICAgICAg
IEFDX01TR19FUlJPUihbUG9zdGdyZVNRTCBub3QgZm91bmRdKQogICAgIGZpCiAgIGZpCgog
ICBpZiB0ZXN0IHgiJFdJVEhfUE9TVEdSRVMiID0geHllcyA7IHRoZW4KICAgICBBQ19DSEVD
S19MSUIocHEsUFFwcmVwYXJlLEhBU19QUVBSRVBBUkU9eWVzLEhBU19QUVBSRVBBUkU9bm8s
WyRQQVRIX0xJQlBRXSkKICAgZWxzZQogICAgIEhBU19QUVBSRVBBUkU9bm8KICAgZmkKCiAg
IEFDX1NVQlNUKFdJVEhfUE9TVEdSRVMpCiAgIEFDX1NVQlNUKFBBVEhfTElCUFEpCiAgIEFD
X1NVQlNUKEhBU19QUVBSRVBBUkUpCl0pCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgQ2hlY2tpbmcgZm9yIHNxbGl0
ZQojIFRoaXMgY2hlY2tzIHdoZXRoZXIgc3FsaXRlIGlzIGluc3RhbGxlZCBvbiB0aGUgc3lz
dGVtLiBJdCBjYW4KIyBiZSBkaXNhYmxlZCB3aXRoCiMgICAgLXdpdGgtc3FsaXRlPW5vCiMg
VGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIGV4cG9ydGVkIGJ5IGNvbmZpZ3VyZToKIyAg
ICBAV0lUSF9TUUxJVEVAOiB3aGV0aGVyIHNxbGl0ZSBpcyBkZXRlY3RlZAojICAgIEBQQVRI
X0xJQlNRTElURUA6IHBhdGggdG8gbGlic3FsaXRlMwojIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpBQ19ERUZVTihBTV9Q
QVRIX1NRTElURSwKWwogICBORUVEX1NRTElURT1ubwogICBBQ19BUkdfV0lUSChzcWxpdGUs
CiAgICAgW0FDX0hFTFBfU1RSSU5HKAogICAgICAgIFstLXdpdGgtc3FsaXRlPTxwYXRoPl0s
CiAgICAgICAgW1NwZWNpZnkgdGhlIGZ1bGwgcGF0aCB0byB0aGUgc3FsaXRlIGluc3RhbGxh
dGlvbiwgb3IgImVtYmVkZGVkIl0pCkFDX0hFTFBfU1RSSU5HKAogICAgICAgIFstLXdpdGhv
dXQtc3FsaXRlXSwKICAgICAgICBbRGlzYWJsZSBzcWxpdGUgc3VwcG9ydF0pXSwKICAgICBb
U1FMSVRFX1BBVEhfV0lUSD0kd2l0aHZhbDsgTkVFRF9TUUxJVEU9eWVzXSwKICAgICBTUUxJ
VEVfUEFUSF9XSVRIPXllcykKCiAgIFBBVEhfTElCU1FMSVRFPSIiCiAgIGlmIHRlc3QgeCIk
U1FMSVRFX1BBVEhfV0lUSCIgPSB4ZW1iZWRkZWQgOyB0aGVuCiAgICAgIEFDX01TR19DSEVD
S0lORyhmb3Igc3FsaXRlKQogICAgICBBQ19NU0dfUkVTVUxUKGVtYmVkZGVkLCB1c2UgLS13
aXRoLXNxbGl0ZSB0byB1c2UgYSBkeW5hbWljIGxpYikKICAgICAgV0lUSF9TUUxJVEU9ZW1i
ZWRkZWQKCiAgIGVsc2UKICAgICAgaWYgdGVzdCB4IiRTUUxJVEVfUEFUSF9XSVRIIiA9IHhu
byA7IHRoZW4KICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIHNxbGl0ZSkKICAgICAgICBB
Q19NU0dfUkVTVUxUKG5vLCB1c2UgLS13aXRoLXNxbGl0ZSB0byB1c2UgYSBkeW5hbWljIGxp
YikKICAgICAgICBXSVRIX1NRTElURT1ubwogICAgICBlbHNlCiAgICAgICAgIGlmIHRlc3Qg
eCIkU1FMSVRFX1BBVEhfV0lUSCIgIT0geHllcyA7IHRoZW4KICAgICAgICAgICBQQVRIX0xJ
QlNRTElURT0iLUwkU1FMSVRFX1BBVEhfV0lUSC9saWIiCiAgICAgICAgIGZpCiAgICAgICAK
ICAgICAgICAgQUNfQ0hFQ0tfTElCKHNxbGl0ZTMsIHNxbGl0ZTNfb3BlbiwKICAgICAgICAg
ICAgICAgICAgICAgIFtXSVRIX1NRTElURT15ZXNdLAogICAgICAgICAgICAgICAgICAgICAg
W1dJVEhfU1FMSVRFPW5vXSwKICAgICAgICAgICAgICAgICAgICAgICRTUUxJVEVfQ0ZMQUdT
ICRQQVRIX0xJQlNRTElURSkKICAgICAgIAogICAgICAgICBpZiB0ZXN0IHgiJFdJVEhfU1FM
SVRFIiA9IHhubyA7IHRoZW4KICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5HKGZvciBzcWxp
dGUpCiAgICAgICAgICAgIEFDX01TR19SRVNVTFQoZW1iZWRkZWQsIHVzZSAtLXdpdGgtc3Fs
aXRlIHRvIHVzZSBhIGR5bmFtaWMgbGliKQogICAgICAgICAgICBXSVRIX1NRTElURT1lbWJl
ZGRlZAogICAgICAgICBmaQogICAgICBmaQogICBmaQogICAKICAgQUNfU1VCU1QoV0lUSF9T
UUxJVEUpCiAgIEFDX1NVQlNUKFBBVEhfTElCU1FMSVRFKQoKXSkKCiMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBDaGVj
a2luZyBmb3IgZ21wCiMgVGhpcyBjaGVja3Mgd2hldGhlciB0aGUgZ251IG11bHRpcHJlY2lz
aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlLgojIFRoZSByZXN1bHQgY2FuIGJlIGZvcmNlZCBi
eSB1c2luZyB0aGUKIyAgICAtLXdpdGgtZ21wPXBhdGgKIyBUaGUgZm9sbG93aW5nIHZhcmlh
YmxlcyBhcmUgZXhwb3J0ZWQgb24gZXhpdDoKIyAgIEBHTVBfQ0ZMQUdTQDogIENvbXBpbGVy
IGZsYWdzCiMgICBAR01QX0xJQlNAOiAgICBFeHRyYSBjb21tYW5kIGxpbmUgc3dpdGNoZXMg
Zm9yIHRoZSBsaW5rZXIKIyAgIEBXSVRIX0dNUEA6ICAgICJ5ZXMiIG9yICJubyIgZGVwZW5k
aW5nIG9uIHdoZXRoZXIgZ21wIGlzIGF2YWlsYWJsZQojIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpBQ19ERUZVTihBTV9Q
QVRIX0dNUCwKWwogICBBQ19BUkdfV0lUSChnbXAsCiAgICAgW0FDX0hFTFBfU1RSSU5HKAog
ICAgICAgWy0td2l0aC1nbXA9PHBhdGg+XSwKICAgICAgIFtTcGVjaWZ5IHRoZSBmdWxsIHBh
dGggb2YgdGhlIGdtcCBpbnN0YWxsYXRpb25dKQpBQ19IRUxQX1NUUklORygKICAgICAgIFst
LXdpdGhvdXQtZ21wXSwKICAgICAgIFtEaXNhYmxlIHN1cHBvcnQgZm9yIGdtcF0pXSwKICAg
ICBHTVBfUEFUSF9XSVRIPSR3aXRodmFsLAogICAgIEdNUF9QQVRIX1dJVEg9eWVzKQoKICAg
R01QX0NGTEFHUz0iIgogICBHTVBfTElCUz0iIgogICBpZiB0ZXN0IHgiJEdNUF9QQVRIX1dJ
VEgiID0geG5vIDsgdGhlbgogICAgICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIGdtcCkKICAgICAg
QUNfTVNHX1JFU1VMVChubywgdXNlIC0td2l0aC1nbXAgaWYgbmVlZGVkKQogICAgICBXSVRI
X0dNUD1ubwoKICAgZWxzZQogICAgIGlmIHRlc3QgeCIkR01QX1BBVEhfV0lUSCIgPSB4eWVz
IDsgdGhlbgogICAgICAgQUNfQ0hFQ0tfTElCKGdtcCxfX2dtcHpfaW5pdCxXSVRIX0dNUD15
ZXMsV0lUSF9HTVA9bm8pCiAgICAgICBBQ19DSEVDS19IRUFERVIoZ21wLmgpCiAgICAgICBH
TVBfTElCUz0iLWxnbXAiCiAgICAgZWxzZQogICAgICAgR01QX0xJQlM9Ii1MJEdNUF9QQVRI
X1dJVEgvbGliIC1sZ21wIgogICAgICAgR01QX0NGTEFHUz0iLUkkR01QX1BBVEhfV0lUSC9p
bmNsdWRlIgogICAgICAgV0lUSF9HTVA9eWVzCiAgICAgZmkKICAgZmkKCiAgIEFDX1NVQlNU
KFdJVEhfR01QKQogICBBQ19TVUJTVChHTVBfQ0ZMQUdTKQogICBBQ19TVUJTVChHTVBfTElC
UykKXSkKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMKIyBDaGVja2luZyBmb3IgcHl0aG9uCiMgVGhpcyBjaGVja3Mgd2hl
dGhlciBweXRob24gaXMgYXZhaWxhYmxlIG9uIHRoZSBzeXN0ZW0sIGFuZCBpZiB5ZXMKIyB3
aGF0IHRoZSBwYXRocyBhcmUuIFRoZSByZXN1bHQgY2FuIGJlIGZvcmNlZCBieSB1c2luZyB0
aGUKIyAgICAtLXdpdGgtcHl0aG9uPXBhdGgKIyBjb21tYW5kIGxpbmUgc3dpdGNoCiMgVGhl
IGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIGV4cG9ydGVkIGJ5IGNvbmZpZ3VyZSBvbiBleGl0
OgojICAgIEBQWVRIT05fQkFTRUA6ICAgIEVpdGhlciAibm8iIG9yIHRoZSBkaXJlY3Rvcnkg
dGhhdCBjb250YWlucyBweXRob24KIyAgICBAUFlUSE9OX1ZFUlNJT05AOiBWZXJzaW9uIG9m
IHB5dGhvbiBkZXRlY3RlZAojICAgIEBQWVRIT05fQ0ZMQUdTQDogIENvbXBpbGVyIGZsYWdz
IHRvIHVzZSBmb3IgcHl0aG9uIGNvZGUKIyAgICBAUFlUSE9OX0RJUkA6ICAgICBEaXJlY3Rv
cnkgZm9yIGxpYnB5dGhvbi5zbwojICAgIEBQWVRIT05fTElCU0A6ICAgIGV4dHJhIGNvbW1h
bmQgbGluZSBzd2l0Y2hlcyB0byBwYXNzIHRvIHRoZSBsaW5rZXIuCiMgICAgQFdJVEhfUFlU
SE9OQDogZWl0aGVyICJ5ZXMiIG9yICJubyIgZGVwZW5kaW5nIG9uIHdoZXRoZXIKIyAgICAg
ICAgICAgICAgICAgICAgICBweXRob24gc3VwcG9ydCBpcyBhdmFpbGFibGUuCiMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK
CkFDX0RFRlVOKEFNX1BBVEhfUFlUSE9OLApbCiAgIE5FRURfUFlUSE9OPW5vCgogICBBQ19B
UkdfV0lUSChweXRob24sCiAgICAgW0FDX0hFTFBfU1RSSU5HKAogICAgICAgWy0td2l0aC1w
eXRob249PHBhdGg+XSwKICAgICAgIFtTcGVjaWZ5IHRoZSBmdWxsIHBhdGggdG8gdGhlIFB5
dGhvbiBpbnN0YWxsYXRpb25dKQpBQ19IRUxQX1NUUklORygKICAgICAgIFstLXdpdGhvdXQt
cHl0aG9uXSwKICAgICAgIFtEaXNhYmxlIHB5dGhvbiBzdXBwb3J0XSldLAogICAgIFtQWVRI
T05fUEFUSF9XSVRIPSR3aXRodmFsOyBORUVEX1BZVEhPTj0kUFlUSE9OX1BBVEhfV0lUSF0s
CiAgICAgUFlUSE9OX1BBVEhfV0lUSD15ZXMpCiAgIEFDX0FSR19FTkFCTEUoc2hhcmVkLXB5
dGhvbiwKICAgICBBQ19IRUxQX1NUUklORygKICAgICAgIFstLWVuYWJsZS1zaGFyZWQtcHl0
aG9uXSwKICAgICAgIFtMaW5rIHdpdGggc2hhcmVkIHB5dGhvbiBsaWJyYXJ5IGluc3RlYWQg
b2Ygc3RhdGljXSksCiAgICAgUFlUSE9OX1NIQVJFRD0kZW5hYmxldmFsLAogICAgIFBZVEhP
Tl9TSEFSRUQ9bm8pCgogICBXSVRIX1BZVEhPTj15ZXMKICAgaWYgdGVzdCB4IiRQWVRIT05f
UEFUSF9XSVRIIiA9IHhubyA7IHRoZW4KICAgICAgQUNfTVNHX0NIRUNLSU5HKGZvciBweXRo
b24pCiAgICAgIEFDX01TR19SRVNVTFQobm8sIHVzZSAtLXdpdGgtcHl0aG9uIGlmIG5lZWRl
ZCkKICAgICAgUFlUSE9OX0JBU0U9bm8KICAgICAgV0lUSF9QWVRIT049bm8KCiAgIGVsc2UK
ICAgICAgQUNfUEFUSF9QUk9HKFBZVEhPTiwgcHl0aG9uLCBubywgJFBZVEhPTl9QQVRIX1dJ
VEgvYmluOiRQWVRIT05fUEFUSF9XSVRIOiRQQVRIKQogICAgICBpZiB0ZXN0IHgiJFBZVEhP
TiIgPSB4bm8gOyB0aGVuCiAgICAgICAgIFBZVEhPTl9CQVNFPW5vCiAgICAgICAgIFdJVEhf
UFlUSE9OPW5vCiAgICAgIGVsc2UKICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIHB5dGhv
biA+PSAyLjApCiAgICAgICAgaWYgdGVzdCB4IiRQWVRIT05fUEFUSF9XSVRIIiAhPSB4eWVz
IDsgdGhlbgogICAgICAgICAgIFBZVEhPTl9CQVNFPSRQWVRIT05fUEFUSF9XSVRICiAgICAg
ICAgZWxzZQogICAgICAgICAgIFBZVEhPTl9CQVNFPWAkUFlUSE9OIC1jICdpbXBvcnQgc3lz
OyBwcmludCBzeXMucHJlZml4JyBgCiAgICAgICAgZmkKCiAgICAgICAgUFlUSE9OX01BSk9S
X1ZFUlNJT049YCRQWVRIT04gLWMgJ2ltcG9ydCBzeXM7IHByaW50IHN5cy52ZXJzaW9uX2lu
Zm9bWzBdXScgMj4vZGV2L251bGxgCiAgICAgICAgUFlUSE9OX01JTk9SX1ZFUlNJT049YCRQ
WVRIT04gLWMgJ2ltcG9ydCBzeXM7IHByaW50IHN5cy52ZXJzaW9uX2luZm9bWzFdXScgMj4v
ZGV2L251bGxgCiAgICAgICAgaWYgdGVzdCB4JFBZVEhPTl9NQUpPUl9WRVJTSU9OICE9IHgy
IDsgdGhlbgogICAgICAgICAgIEFDX01TR19SRVNVTFQobm8sIG5lZWQgYXQgbGVhc3QgdmVy
c2lvbiAyLjApCiAgICAgICAgICAgUFlUSE9OX0JBU0U9bm8KICAgICAgICAgICBXSVRIX1BZ
VEhPTj1ubwogICAgICAgIGVsc2UKICAgICAgICAgICBjYXNlICIke2hvc3R9IiBpbgogICAg
ICAgICAgICAgIyBPbiB3aW5kb3dzLCB0aGVyZSBhcmUgdHdvIHBvc3NpYmxlIHR5cGVzIG9m
IGluc3RhbGxhdGlvbiBmb3IKICAgICAgICAgICAgICMgcHl0aG9uLCB3aGVyZSB0aGUgbGF5
b3V0IG9mIGRpcmVjdG9yaWVzIGFyZSBkaWZmZXJlbnQuIEV2ZW4gd2hlbgogICAgICAgICAg
ICAgIyBydW5uaW5nIGN5Z3dpbiwgd2UgbWlnaHQgd2FudCB0byBsaW5rIHdpdGggYSBtaW5n
d2luIHZlcnNpb24gb2YKICAgICAgICAgICAgICMgcHl0aG9uIGZvciBlYXNpZXIgcmVkaXN0
cmlidXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uLgoKICAgICAgICAgICAgICotKm1pbmd3MzIq
IHwgKmN5Z3dpbiogKQogICAgICAgICAgICAgICBpZiB0ZXN0IC1kICR7UFlUSE9OX0JBU0V9
L2xpYi9weXRob24ke1BZVEhPTl9NQUpPUl9WRVJTSU9OfS4ke1BZVEhPTl9NSU5PUl9WRVJT
SU9OfS9jb25maWc7IHRoZW4KICAgICAgICAgICAgICAgICBQWVRIT05fV0lOMzI9bm8KICAg
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIFBZVEhPTl9XSU4zMj15ZXMKICAg
ICAgICAgICAgICAgZmkKICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICopCiAgICAg
ICAgICAgICAgIFBZVEhPTl9XSU4zMj1ubwogICAgICAgICAgICAgICA7OwogICAgICAgICAg
IGVzYWMKCiAgICAgICAgICAgaWYgdGVzdCB4JFBZVEhPTl9XSU4zMiA9PSB4eWVzOyB0aGVu
CiAgICAgICAgICAgICBQWVRIT05fVkVSU0lPTj0kUFlUSE9OX01BSk9SX1ZFUlNJT04kUFlU
SE9OX01JTk9SX1ZFUlNJT04KICAgICAgICAgICAgIFBZVEhPTl9ESVI9JHtQWVRIT05fQkFT
RX0vbGlicwogICAgICAgICAgIGVsc2UKICAgICAgICAgICAgIFBZVEhPTl9WRVJTSU9OPSRQ
WVRIT05fTUFKT1JfVkVSU0lPTi4kUFlUSE9OX01JTk9SX1ZFUlNJT04KICAgICAgICAgICAg
IGlmIHRlc3QgeCRQWVRIT05fU0hBUkVEID0geHllczsgdGhlbgogICAgICAgICAgICAgICAg
UFlUSE9OX0RJUj0ke1BZVEhPTl9CQVNFfS9saWIKICAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgIFBZVEhPTl9ESVI9JHtQWVRIT05fQkFTRX0vbGliL3B5dGhvbiR7UFlUSE9O
X1ZFUlNJT059L2NvbmZpZwogICAgICAgICAgICAgZmkKICAgICAgICAgICBmaQoKICAgICAg
ICAgICBBQ19NU0dfUkVTVUxUKHllcyAodmVyc2lvbiAkUFlUSE9OX01BSk9SX1ZFUlNJT04u
JFBZVEhPTl9NSU5PUl9WRVJTSU9OKSkKICAgICAgICBmaQogICAgICBmaQogICBmaQoKICAg
aWYgdGVzdCB4IiRQWVRIT05fQkFTRSIgIT0geG5vOyB0aGVuCiAgICAgICMgRmluZCB0aGUg
bGlicyB0aGF0IGFyZSByZXF1aXJlZCB0byBsaW5rIHdpdGggcHl0aG9uLiBXZSBmaXJzdCB0
cnkKICAgICAgIyB3aXRoIHB5dGhvbi1jb25maWcgLS1saWJzLCBidXQgdGhpcyBtaWdodCBu
b3QgZXhpc3Qgb24gdGhlIHBsYXRmb3JtLCBvcgogICAgICAjIG1pZ2h0IGJlIGluY29ycmVj
dCwgc28gd2UgYWxzbyBoYXZlIGhhcmQtY29kZWQgZmFsbGJhY2tzLgoKICAgICAgQUNfUEFU
SF9QUk9HKFBZVEhPTl9DT05GSUcsIHB5dGhvbi1jb25maWcsIG5vLCAkUFlUSE9OX1BBVEhf
V0lUSC9iaW46JFBZVEhPTl9QQVRIX1dJVEg6JFBBVEgpCgogICAgICBBQ19NU0dfQ0hFQ0tJ
TkcoaWYgd2UgY2FuIGxpbmsgd2l0aCBweXRob24gKHVzaW5nIHB5dGhvbi1jb25maWcpKQog
ICAgICBpZiB0ZXN0IHgiJFBZVEhPTl9DT05GSUciICE9IHhubyA7IHRoZW4KICAgICAgICAg
UFlUSE9OX0xJQlM9YCRQWVRIT05fQ09ORklHIC0tbGlic2AKICAgICAgICAgUFlUSE9OX0NG
TEFHUz1gJFBZVEhPTl9DT05GSUcgLS1jZmxhZ3NgCiAgICAgIGVsc2UKICAgICAgICAgUFlU
SE9OX0xJQlM9IiIKICAgICAgICAgUFlUSE9OX0NGTEFHUz0iIgogICAgICBmaQoKICAgICAg
U0FWRV9DRkxBR1M9IiR7Q0ZMQUdTfSIKICAgICAgU0FWRV9MSUJTPSIke0xJQlN9IgogICAg
ICBDRkxBR1M9IiR7U0FWRV9DRkxBR1N9ICR7UFlUSE9OX0NGTEFHU30iCiAgICAgIExJQlM9
IiR7U0FWRV9MSUJTfSAke1BZVEhPTl9MSUJTfSIKCgogICAgICBBQ19MSU5LX0lGRUxTRSgK
ICAgICAgICBbQUNfTEFOR19QUk9HUkFNKFsKLyogICAgd2lsbCBvbmx5IHdvcmsgd2l0aCBn
Y2MsIGJ1dCBuZWVkZWQgdG8gdXNlIGl0IHdpdGggdGhlIG1pbmd3aW4gcHl0aG9uICovCiNk
ZWZpbmUgUFlfTE9OR19MT05HIGxvbmcgbG9uZwojaW5jbHVkZSA8UHl0aG9uLmg+Cl0sWyAg
IFB5X0luaXRpYWxpemUoKTtdKV0sCiAgICAgICAgW0FDX01TR19SRVNVTFQoeWVzKV0sCgog
ICAgICAgIFsKICAgICAgICAgQUNfTVNHX1JFU1VMVChubykKICAgICAgICAgQUNfTVNHX0NI
RUNLSU5HKGlmIHdlIGNhbiBsaW5rIHdpdGggcHl0aG9uKQogICAgICAgICAjIGhhcmQtY29k
ZSBweXRob24gZGVwZW5kZW5jaWVzCiAgICAgICAgIGlmIHRlc3QgXCggLWYgJHtQWVRIT05f
RElSfS9saWJweXRob24ke1BZVEhPTl9WRVJTSU9OfS5hIFwpIC1hIFwoICEgeCRQWVRIT05f
U0hBUkVEID0geHllcyBcKSA7IHRoZW4KICAgICAgICAgICAgUFlUSE9OX0xJQlM9IiR7UFlU
SE9OX0RJUn0vbGlicHl0aG9uJHtQWVRIT05fVkVSU0lPTn0uYSIKICAgICAgICAgZWxzZQog
ICAgICAgICAgICBQWVRIT05fTElCUz0iLUwke1BZVEhPTl9ESVJ9IC1scHl0aG9uJHtQWVRI
T05fVkVSU0lPTn0iCiAgICAgICAgIGZpCgogICAgICAgICBjYXNlICIke2hvc3R9IiBpbgog
ICAgICAgICAgICBocHBhKi1ocC1ocHV4MSogKQogICAgICAgICAgICAgICBQWVRIT05fTElC
Uz0iLVdsLC1FIC1sbSAke1BZVEhPTl9MSUJTfSIKICAgICAgICAgICAgICAgOzsKICAgICAg
ICAgICAgcG93ZXJwYy1pYm0tYWl4NS4qIHwgcG93ZXJwYy0qLWRhcndpbiogfCAqLWRhcndp
biopCiAgICAgICAgICAgICAgIFBZVEhPTl9MSUJTPSItbGRsIC1sbSAke1BZVEhPTl9MSUJT
fSIKICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgKi1zdW5vczUuNSogfCAqLXNvbGFy
aXMyLjUqIHwgKi1zdW5vczUqIHwgKi1zb2xhcmlzKiApCiAgICAgICAgICAgICAgIFBZVEhP
Tl9MSUJTPSItbHJlc29sdiAtbHNvY2tldCAtbG5zbCAtbGRsIC1sbSAke1BZVEhPTl9MSUJT
fSIKICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgaWE2NC0qbGludXgtZ251KiB8IHg4
Nl82NC0qLSogfCBpW1szNDU2XV04Ni0qbGludXgtZ251KiApCiAgICAgICAgICAgICAgIFBZ
VEhPTl9MSUJTPSItV2wsLWV4cG9ydC1keW5hbWljIC1sbSAtbGRsICR7UFlUSE9OX0xJQlN9
IgogICAgICAgICAgICAgICA7OwogICAgICAgICAgICBpYTY0LSpocC1ocHV4MTEqICkKICAg
ICAgICAgICAgICAgUFlUSE9OX0xJQlM9Ii1sZGxkIC1sZGwgLWxtIC1XbCwtRSAke1BZVEhP
Tl9MSUJTfSIKICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgKi1mcmVlYnNkKiApCiAg
ICAgICAgICAgICAgIFBZVEhPTl9MSUJTPSItbG0gLWx1dGlsICR7UFlUSE9OX0xJQlN9Igog
ICAgICAgICAgICAgICA7OwogICAgICAgICBlc2FjCgogICAgICAgICBpZiB0ZXN0IHgkUFlU
SE9OX1dJTjMyID09IHh5ZXM7IHRoZW4KICAgICAgICAgICAgUFlUSE9OX0NGTEFHUz0iLUkk
e1BZVEhPTl9CQVNFfS9pbmNsdWRlIgogICAgICAgICBlbHNlCiAgICAgICAgICAgIFBZVEhP
Tl9DRkxBR1M9Ii1JJHtQWVRIT05fQkFTRX0vaW5jbHVkZS9weXRob24ke1BZVEhPTl9WRVJT
SU9OfSIKICAgICAgICAgZmkKCiAgICAgICAgICMgLWx1dGlsIGlzIGFsbW9zdCBhbHdheXMg
bmVlZGVkLCBmb3IgZm9ya3B0eSgpCiAgICAgICAgIENGTEFHUz0iJHtTQVZFX0NGTEFHU30g
JHtQWVRIT05fQ0ZMQUdTfSIKICAgICAgICAgTElCUz0iJHtTQVZFX0xJQlN9ICR7UFlUSE9O
X0xJQlN9IgoKICAgICAgICAgQUNfTElOS19JRkVMU0UoCiAgICAgICAgICAgW0FDX0xBTkdf
UFJPR1JBTShbCi8qIHdpbGwgb25seSB3b3JrIHdpdGggZ2NjLCBidXQgbmVlZGVkIHRvIHVz
ZSBpdCB3aXRoIHRoZSBtaW5nd2luIHB5dGhvbiAqLwojZGVmaW5lIFBZX0xPTkdfTE9ORyBs
b25nIGxvbmcKI2luY2x1ZGUgPFB5dGhvbi5oPgpdLFtQeV9Jbml0aWFsaXplKCk7XSldLAog
ICAgICAgICAgIFtBQ19NU0dfUkVTVUxUKHllcyldLAogICAgICAgICAgIFtMSUJTPSIke0xJ
QlN9IC1sdXRpbCIKICAgICAgICAgICAgQUNfTElOS19JRkVMU0UoCiAgICAgICAgICAgICBb
QUNfTEFOR19QUk9HUkFNKFsKLyogd2lsbCBvbmx5IHdvcmsgd2l0aCBnY2MsIGJ1dCBuZWVk
ZWQgdG8gdXNlIGl0IHdpdGggdGhlIG1pbmd3aW4gcHl0aG9uICovCiNkZWZpbmUgUFlfTE9O
R19MT05HIGxvbmcgbG9uZwojaW5jbHVkZSA8UHl0aG9uLmg+Cl0sW1B5X0luaXRpYWxpemUo
KTtdKV0sCiAgICAgICAgICAgICBbUFlUSE9OX0xJQlM9IiR7UFlUSE9OX0xJQlN9IC1sdXRp
bCIKICAgICAgICAgICAgQUNfTVNHX1JFU1VMVCh5ZXMpXSwKCiAgICAgICAgICAgIFtMSUJT
PSIke0xJQlN9IC1scHRocmVhZCAtbHV0aWwgLWx6IgogICAgICAgICAgICAgQUNfTElOS19J
RkVMU0UoCiAgICAgICAgICAgICAgIFtBQ19MQU5HX1BST0dSQU0oWwovKiB3aWxsIG9ubHkg
d29yayB3aXRoIGdjYywgYnV0IG5lZWRlZCB0byB1c2UgaXQgd2l0aCB0aGUgbWluZ3dpbiBw
eXRob24gKi8KI2RlZmluZSBQWV9MT05HX0xPTkcgbG9uZyBsb25nCiNpbmNsdWRlIDxQeXRo
b24uaD5dLFtQeV9Jbml0aWFsaXplKCk7XSldLAogICAgICAgICAgICAgICBbUFlUSE9OX0xJ
QlM9IiR7UFlUSE9OX0xJQlN9IC1scHRocmVhZCAtbHV0aWwgLWx6IgogICAgICAgICAgICAg
ICAgQUNfTVNHX1JFU1VMVCh5ZXMpXSwKCiAgICAgICAgICAgICAgIFtMSUJTPSIke0xJQlN9
IC1scHRocmVhZCAtbHNzbCAtbHV0aWwgLWx6IgogICAgICAgICAgICAgICAgQUNfTElOS19J
RkVMU0UoCiAgICAgICAgICAgICAgICAgIFtBQ19MQU5HX1BST0dSQU0oWwogICAvKiB3aWxs
IG9ubHkgd29yayB3aXRoIGdjYywgYnV0IG5lZWRlZCB0byB1c2UgaXQgd2l0aCB0aGUgbWlu
Z3dpbiBweXRob24gKi8KICAgI2RlZmluZSBQWV9MT05HX0xPTkcgbG9uZyBsb25nCiAgICNp
bmNsdWRlIDxQeXRob24uaD5dLFtQeV9Jbml0aWFsaXplKCk7XSldLAogICAgICAgICAgICAg
ICAgICBbUFlUSE9OX0xJQlM9IiR7UFlUSE9OX0xJQlN9IC1scHRocmVhZCAtbHNzbCAtbHV0
aWwgLWx6IgogICAgICAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVCh5ZXMpXSwKCiAgICAg
ICAgICAgICAgIFtBQ19NU0dfUkVTVUxUKG5vLCBbY2FuJ3QgY29tcGlsZSBhbmQgbGluayBw
eXRob24gZXhhbXBsZV0pCiAgICAgICAgICAgICAgICBXSVRIX1BZVEhPTj1ubwogICAgICAg
ICAgICAgICAgUFlUSE9OX0JBU0U9W10KICAgICAgICAgICAgICAgIFBZVEhPTl9MSUJTPVtd
XSldKV0pCgogICAgICAgIF0pXSkKCiAgICAgIyBSZXN0b3JlIGFuIGVudmlyb25tZW50IHB5
dGhvbi1mcmVlLCBzbyB0aGF0IGZ1cnRoZXIgdGVzdHMgYXJlIG5vdAogICAgICMgaW1wYWN0
ZWQgaW4gY2FzZSB3ZSBkaWQgbm90IGZpbmQgcHl0aG9uCgogICAgIENGTEFHUz0iJHtTQVZF
X0NGTEFHU30iCiAgICAgTElCUz0iJHtTQVZFX0xJQlN9IgogICBmaQoKICAgaWYgdGVzdCB4
IiRXSVRIX1BZVEhPTiIgPSB4bm8gLWEgeCIkTkVFRF9QWVRIT04iICE9IHhubyA7IHRoZW4K
ICAgICBBQ19NU0dfRVJST1IoW1B5dGhvbiBub3QgZm91bmRdKQogICBmaQoKICAgQUNfU1VC
U1QoUFlUSE9OX0JBU0UpCiAgIEFDX1NVQlNUKFBZVEhPTl9WRVJTSU9OKQogICBBQ19TVUJT
VChQWVRIT05fRElSKQogICBBQ19TVUJTVChQWVRIT05fTElCUykKICAgQUNfU1VCU1QoUFlU
SE9OX0NGTEFHUykKICAgQUNfU1VCU1QoV0lUSF9QWVRIT04pCl0pCgojIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMKIyMgQ2hlY2tpbmcgZm9yIHB5Z3RrCiMjICAgJDE9bWluaW11bSBweWd0ayB2
ZXJzaW9uIHJlcXVpcmVkCiMjIFRoaXMgZnVuY3Rpb24gY2hlY2tzIHdoZXRoZXIgcHlndGsg
ZXhpc3RzIG9uIHRoZSBzeXN0ZW0sIGFuZCBoYXMgYSByZWNlbnQKIyMgZW5vdWdoIHZlcnNp
b24uIEl0IGV4cG9ydHMgdGhlIGZvbGxvd2luZyB2YXJpYWJsZXM6CiMjICAgIEBXSVRIX1BZ
R1RLQDogICAgInllcyIgb3IgIm5vIgojIyAgICBAUFlHVEtfUFJFRklYQDogIGluc3RhbGxh
dGlvbiBkaXJlY3Rvcnkgb2YgcHlndGsKIyMgICAgQFBZR1RLX0lOQ0xVREVAOiBjZmxhZ3Mg
dG8gdXNlIHdoZW4gY29tcGlsaW5nIGEgcHlndGsgYXBwbGljYXRpb24KIyMgVGhpcyBmdW5j
dGlvbiBtdXN0IGJlIGNhbGxlZCBhZnRlciB0aGUgdmFyaWFibGUgUEtHX0NPTkZJRyBoYXMg
YmVlbiBzZXQsCiMjIGllIHByb2JhYmx5IGFmdGVyIGd0aysgaXRzZWxmIGhhcyBiZWVuIGRl
dGVjdGVkLiBQeXRob24gbXVzdCBhbHNvIGhhdmUgYmVlbgojIyBkZXRlY3RlZCBmaXJzdC4K
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjCgoKQUNfREVGVU4oQU1fUEFUSF9QWUdUSywKWwogICAg
QUNfQVJHX0VOQUJMRShweWd0aywKICAgICAgQUNfSEVMUF9TVFJJTkcoCiAgICAgICAgWy0t
ZGlzYWJsZS1weWd0a10sCiAgICAgICAgW0Rpc2FibGUgc3VwcG9ydCBmb3IgUHlHVEsgW1tk
ZWZhdWx0PWVuYWJsZWRdXV0pLAogICAgICBbV0lUSF9QWUdUSz0kZW5hYmxldmFsXSwKICAg
ICAgW1dJVEhfUFlHVEs9JFdJVEhfUFlUSE9OXSkKCiAgICBpZiB0ZXN0ICIkUEtHX0NPTkZJ
RyIgPSAiIiAtbyAiJFBLR19DT05GSUciID0gIm5vIiA7IHRoZW4KICAgICAgIEFDX01TR19D
SEVDS0lORyhmb3IgcHlndGspCiAgICAgICBBQ19NU0dfUkVTVUxUKG5vIChwa2ctY29uZmln
IG5vdCBmb3VuZCkpCiAgICAgICBXSVRIX1BZR1RLPW5vCiAgICBlbHNlCiAgICAgICBtaW5f
cHlndGtfdmVyc2lvbj1pZmVsc2UoWyQxXSwgLDIuOCwkMSkKICAgICAgIG1vZHVsZT1weWd0
ay0yLjAKICAgICAgIEFDX01TR19DSEVDS0lORyhmb3IgcHlndGsgLSB2ZXJzaW9uID49ICRt
aW5fcHlndGtfdmVyc2lvbikKCiAgICAgICBpZiB0ZXN0IHgiJFdJVEhfUFlHVEsiID0geCAt
byB4IiRXSVRIX1BZR1RLIiA9IHhubyA7IHRoZW4KICAgICAgICAgIEFDX01TR19SRVNVTFQo
bm8pCiAgICAgICAgICBQWUdUS19QUkVGSVg9IiIKICAgICAgICAgIFBZR1RLX0lOQ0xVREU9
IiIKICAgICAgICAgIFdJVEhfUFlHVEs9bm8KCiAgICAgICBlbGlmIHRlc3QgIiRQWVRIT05f
QkFTRSIgIT0gIm5vIiA7IHRoZW4KICAgICAgICAgIHB5Z3RrX3ZlcnNpb249YCRQS0dfQ09O
RklHICRtb2R1bGUgLS1tb2R2ZXJzaW9uYAogICAgICAgICAgJFBLR19DT05GSUcgJG1vZHVs
ZSAtLWF0bGVhc3QtdmVyc2lvbj0kbWluX3B5Z3RrX3ZlcnNpb24KICAgICAgICAgIGlmIHRl
c3QgJD8gPSAwIDsgdGhlbgogICAgICAgICAgICAgUFlHVEtfSU5DTFVERT0iYCRQS0dfQ09O
RklHICRtb2R1bGUgLS1jZmxhZ3NgIC1EUFlHVEsiCiAgICAgICAgICAgICBQWUdUS19QUkVG
SVg9YCRQS0dfQ09ORklHICRtb2R1bGUgLS12YXJpYWJsZT1wcmVmaXhgCiAgICAgICAgICAg
ICBBQ19NU0dfUkVTVUxUKHllcyAodmVyc2lvbiAkcHlndGtfdmVyc2lvbikpCiAgICAgICAg
ICAgICBXSVRIX1BZR1RLPXllcwogICAgICAgICAgZWxzZQogICAgICAgICAgICAgQUNfTVNH
X1JFU1VMVChubyAoZm91bmQgJHB5Z3RrX3ZlcnNpb24pKQogICAgICAgICAgICAgUFlHVEtf
UFJFRklYPSIiCiAgICAgICAgICAgICBQWUdUS19JTkNMVURFPSIiCiAgICAgICAgICAgICBX
SVRIX1BZR1RLPW5vCiAgICAgICAgICBmaQoKICAgICAgIGVsc2UKICAgICAgICAgIEFDX01T
R19SRVNVTFQobm8gc2luY2UgcHl0aG9uIG5vdCBmb3VuZCkKICAgICAgICAgIFBZR1RLX1BS
RUZJWD0iIgogICAgICAgICAgUFlHVEtfSU5DTFVERT0iIgogICAgICAgICAgV0lUSF9QWUdU
Sz1ubwogICAgICAgZmkKICAgIGZpCgogICAgQUNfU1VCU1QoUFlHVEtfUFJFRklYKQogICAg
QUNfU1VCU1QoUFlHVEtfSU5DTFVERSkKICAgIEFDX1NVQlNUKFdJVEhfUFlHVEspCl0pCgoj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIwojIyBDb252ZXJ0cyBhIGxpc3Qgb2Ygc3BhY2Utc2VwYXJh
dGVkIHdvcmRzIGludG8gYSBsaXN0IHN1aXRhYmxlIGZvcgojIyBpbmNsdXNpb24gaW4gLmdw
ciBmaWxlcwojIyAgICQxPXRoZSBsaXN0CiMjICAgJDI9ZXhwb3J0ZWQgbmFtZQojIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIwoKQUNfREVGVU4oQU1fVE9fR1BSLApbCiAgIHZhbHVlPVskMV0KCiAg
ICMgU3BlY2lhbCBoYW5kbGluZyBvbiBkYXJ3aW4KICAgdmFsPWBlY2hvICR2YWx1ZSB8IHNl
ZCAtZSAicywtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uLC1mcmFtZXdvcms9Q29yZUZvdW5k
YXRpb24sImAKICAgdmFsdWU9JHZhbAoKICAgb3V0cHV0PSQyCiAgIHJlc3VsdD0iIgogICBm
b3IgdiBpbiAkdmFsdWU7IGRvCiAgICAgIGlmIHRlc3QgIiRyZXN1bHQiICE9ICIiOyB0aGVu
CiAgICAgICAgIHJlc3VsdD0iJHJlc3VsdCwgIgogICAgICBmaQogICAgICByZXN1bHQ9IiRy
ZXN1bHRcIiR2XCIiCiAgIGRvbmUKICAgJDI9JHJlc3VsdAogICBBQ19TVUJTVCgkMikKCl0p
CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIyBDaGVjayB0aGUgYXZhaWxhYmlsaXR5IG9mIGEg
cHJvamVjdCBmaWxlCiMjIFRoZSBmaWxlIGlzIHNlYXJjaGVkIG9uIHRoZSBwcmVkZWZpbmVk
IFBBVEggYW5kIChBREF8R1BSKV9QUk9KRUNUX1BBVEgKIyMgICAkMT1wcm9qZWN0IHRvIHRl
c3QKIyMgICAkMj1leHBvcnRlZCBuYW1lCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpBQ19ERUZV
TihBTV9QQVRIX1BST0pFQ1QsClsKICAgcHJvamVjdD1bJDFdCiAgIG91dHB1dD0kMgoKICAg
IyBDcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IChmcm9tICJpbmZvIGF1dG9jb25mIikK
ICAgOiAke1RNUERJUj0vdG1wfQogICB7CiAgICAgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVt
cCAtZCAiJFRNUERJUi9mb29YWFhYWFgiKSAyPi9kZXYvbnVsbGAgXAogICAgICAgICYmIHRl
c3QgLW4gIiR0bXAiICYmIHRlc3QgLWQgIiR0bXAiCiAgIH0gfHwgewogICAgIHRtcD0kVE1Q
RElSL2ZvbyQkLSRSQU5ET00KICAgICAodW1hc2sgMDc3ICYmIG1rZGlyIC1wICIkdG1wIikK
ICAgfSB8fCBleGl0ICQ/CgogICBta2RpciAkdG1wL2xpYgogICBlY2hvICJ3aXRoIFwiJHBy
b2plY3RcIjsgcHJvamVjdCBkZWZhdWx0IGlzIGZvciBTb3VyY2VfRGlycyB1c2UgKCk7IGVu
ZCBkZWZhdWx0OyIgPiAkdG1wL2RlZmF1bHQuZ3ByCgogICBnbmF0IG1ha2UgLVAkdG1wL2Rl
ZmF1bHQuZ3ByID4vZGV2L251bGwgMj4vZGV2L251bGwKICAgaWYgdGVzdCAkPyA9IDAgOyB0
aGVuCiAgICAgJDI9eWVzCiAgIGVsc2UKICAgICAkMj1ubwogICBmaQogICBBQ19TVUJTVCgk
MikKXSkKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMjIERldGVjdHMgR1RLIGFuZCBHdGtBZGEK
IyMgVGhpcyBleHBvcnRzIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzCiMjICAgICBAUEtHX0NP
TkZJR0A6IHBhdGggdG8gcGtnLWNvbmZpZywgb3IgIm5vIiBpZiBub3QgZm91bmQKIyMgICAg
IEBHVEtfR0NDX0ZMQUdTQDogY2ZsYWdzIHRvIHBhc3MgdG8gdGhlIGNvbXBpbGVyLiBJdCBp
c24ndCBjYWxsCiMjICAgICAgICAgICAgICAgICAgICAgIEdUS19DRkxBR1MgZm9yIGNvbXBh
dGliaWxpdHkgcmVhc29ucyB3aXRoIEdQUwojIyAgICAgQFdJVEhfR1RLQDogRWl0aGVyICJ5
ZXMiIG9yICJubyIsIGRlcGVuZGluZyBvbiB3aGV0aGVyIGd0aysgd2FzIGZvdW5kCiMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjCgpBQ19ERUZVTihBTV9QQVRIX0dUSywKWwogICBBQ19BUkdfRU5B
QkxFKGd0aywKICAgICBBQ19IRUxQX1NUUklORygKICAgICAgIFstLWRpc2FibGUtZ3RrXSwK
ICAgICAgIFtEaXNhYmxlIHN1cHBvcnQgZm9yIEdUSyBbW2RlZmF1bHQ9ZW5hYmxlZF1dXSks
CiAgICAgW1dJVEhfR1RLPSRlbmFibGV2YWxdLAogICAgIFtXSVRIX0dUSz15ZXNdKQoKCiAg
IGlmIHRlc3QgJFdJVEhfR1RLID0geWVzOyB0aGVuCiAgICAgQUNfUEFUSF9QUk9HKFBLR19D
T05GSUcsIHBrZy1jb25maWcsIG5vKQogICAgIEFDX01TR19DSEVDS0lORyhmb3IgZ3RrKykK
ICAgICBpZiB0ZXN0ICIkUEtHX0NPTkZJRyIgPSAibm8iIDsgdGhlbgogICAgICAgIEFDX01T
R19SRVNVTFQobm90IGZvdW5kKQogICAgICAgIFdJVEhfR1RLPW5vCiAgICAgZWxzZQogICAg
ICAgIEdUS19QUkVGSVg9YCRQS0dfQ09ORklHIGd0aystMi4wIC0tdmFyaWFibGU9cHJlZml4
YAogICAgICAgIEFDX01TR19SRVNVTFQoJEdUS19QUkVGSVgpCiAgICAgICAgR1RLX0dDQ19G
TEFHUz1gJFBLR19DT05GSUcgZ3RrKy0yLjAgLS1jZmxhZ3NgCiAgICAgICAgaWYgdGVzdCB4
IiRHVEtfR0NDX0ZMQUdTIiAhPSB4IDsgdGhlbgogICAgICAgICAgIEFDX01TR19DSEVDS0lO
Ryhmb3IgZ3RrYWRhKQogICAgICAgICAgIEFNX1BBVEhfUFJPSkVDVChndGthZGEsIEhBVkVf
R1RLQURBKQogICAgICAgICAgIGlmIHRlc3QgIiRIQVZFX0dUS0FEQSIgPSAieWVzIjsgdGhl
bgogICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoZm91bmQpOwogICAgICAgICAgICAgIFdJ
VEhfR1RLPXllcwogICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxU
KG5vdCBmb3VuZCkKICAgICAgICAgICAgICBXSVRIX0dUSz1ubwogICAgICAgICAgIGZpCiAg
ICAgICAgZWxzZQogICAgICAgICAgIFdJVEhfR1RLPW5vCiAgICAgICAgZmkKICAgICBmaQog
ICBlbHNlCiAgICAgQUNfTVNHX0NIRUNLSU5HKGZvciBndGsrKQogICAgIEFDX01TR19SRVNV
TFQoJFdJVEhfR1RLIChmcm9tIHN3aXRjaCkpCiAgIGZpCgogICBBQ19TVUJTVChQS0dfQ09O
RklHKQogICBBQ19TVUJTVChHVEtfR0NDX0ZMQUdTKQogICBBQ19TVUJTVChXSVRIX0dUSykK
Cl0pCg==
--------------000007000103090806090601
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
gps-devel mailing list
[email protected]
http://lists.adacore.com/mailman/listinfo/gps-devel

--------------000007000103090806090601--