[Distutils] new build_scripts patch

Bastian Kleineidam calvin@cs.uni-sb.de
Wed, 24 May 2000 00:04:01 +0200 (CEST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--1619418364-1236589548-959119441=:876
Content-Type: TEXT/PLAIN; charset=US-ASCII

Ok, the patch is against latest CVS (sourceforge).

>command-line options to the Python interpreter are quite rare.
Now optionally ending command-line options are preserved in the scripts.

>> - install_misc is now the base class for all install commands
install_misc is now removed since install_scripts and install_data both
changed. No need of a common base class any more

>Good that you brought this up, because I think I like the Automake way
>better.  Your installation directories shouldn't be constrained by your
Ok, implemented a bit of Automake: the data_files elements can be filename
strings (these files are copied in install_data) and tuples with
a directory to install to and a filename list.
Example:
data_files = ['info.txt', ('man/man1', ['bubble.1', 'bobble.1'])]
... installs
/usr/share/info.txt
/usr/share/man/man1/{bubble.1 bobble.1}

Note: if you want to provide an absolute data path instead of man/man1,
the --root install option will fail.

Bastian

--1619418364-1236589548-959119441=:876
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="scriptsdata.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0005240004010.876@earth.cs.uni-sb.de>
Content-Description: 
Content-Disposition: attachment; filename="scriptsdata.patch"

ZGlmZiAtQnVyTiAtLW1pbmltYWwgLS1leGNsdWRlPSoucHljIGRpc3R1dGls
cy5vcmlnL2Rpc3R1dGlscy9jbWQucHkgZGlzdHV0aWxzLnBhdGNoZWQvZGlz
dHV0aWxzL2NtZC5weQ0KLS0tIGRpc3R1dGlscy5vcmlnL2Rpc3R1dGlscy9j
bWQucHkJVHVlIE1heSAyMyAyMjoyODowOCAyMDAwDQorKysgZGlzdHV0aWxz
LnBhdGNoZWQvZGlzdHV0aWxzL2NtZC5weQlUdWUgTWF5IDIzIDIzOjA3OjUw
IDIwMDANCkBAIC0zNDMsMzMgKzM0Myw1IEBADQogDQogIyBjbGFzcyBDb21t
YW5kDQogDQotDQotY2xhc3MgaW5zdGFsbF9taXNjIChDb21tYW5kKToNCi0g
ICAgIiIiQ29tbW9uIGJhc2UgY2xhc3MgZm9yIGluc3RhbGxpbmcgc29tZSBm
aWxlcyBpbiBhIHN1YmRpcmVjdG9yeS4NCi0gICAgQ3VycmVudGx5IHVzZWQg
YnkgaW5zdGFsbF9kYXRhIGFuZCBpbnN0YWxsX3NjcmlwdHMuDQotICAgICIi
Ig0KLSAgICANCi0gICAgdXNlcl9vcHRpb25zID0gWygnaW5zdGFsbC1kaXI9
JywgJ2QnLCAiZGlyZWN0b3J5IHRvIGluc3RhbGwgdGhlIGZpbGVzIHRvIild
DQotDQotICAgIGRlZiBpbml0aWFsaXplX29wdGlvbnMgKHNlbGYpOg0KLSAg
ICAgICAgc2VsZi5pbnN0YWxsX2RpciA9IE5vbmUNCi0gICAgICAgIHNlbGYu
b3V0ZmlsZXMgPSBbXQ0KLQ0KLSAgICBkZWYgX2luc3RhbGxfZGlyX2Zyb20g
KHNlbGYsIGRpcm5hbWUpOg0KLSAgICAgICAgc2VsZi5zZXRfdW5kZWZpbmVk
X29wdGlvbnMoJ2luc3RhbGwnLCAoZGlybmFtZSwgJ2luc3RhbGxfZGlyJykp
DQotDQotICAgIGRlZiBfY29weV9maWxlcyAoc2VsZiwgZmlsZWxpc3QpOg0K
LSAgICAgICAgc2VsZi5vdXRmaWxlcyA9IFtdDQotICAgICAgICBpZiBub3Qg
ZmlsZWxpc3Q6DQotICAgICAgICAgICAgcmV0dXJuDQotICAgICAgICBzZWxm
Lm1rcGF0aChzZWxmLmluc3RhbGxfZGlyKQ0KLSAgICAgICAgZm9yIGYgaW4g
ZmlsZWxpc3Q6DQotICAgICAgICAgICAgc2VsZi5jb3B5X2ZpbGUoZiwgc2Vs
Zi5pbnN0YWxsX2RpcikNCi0gICAgICAgICAgICBzZWxmLm91dGZpbGVzLmFw
cGVuZChvcy5wYXRoLmpvaW4oc2VsZi5pbnN0YWxsX2RpciwgZikpDQotDQot
ICAgIGRlZiBnZXRfb3V0cHV0cyAoc2VsZik6DQotICAgICAgICByZXR1cm4g
c2VsZi5vdXRmaWxlcw0KLQ0KLQ0KIGlmIF9fbmFtZV9fID09ICJfX21haW5f
XyI6DQogICAgIHByaW50ICJvayINCmRpZmYgLUJ1ck4gLS1taW5pbWFsIC0t
ZXhjbHVkZT0qLnB5YyBkaXN0dXRpbHMub3JpZy9kaXN0dXRpbHMvY29tbWFu
ZC9fX2luaXRfXy5weSBkaXN0dXRpbHMucGF0Y2hlZC9kaXN0dXRpbHMvY29t
bWFuZC9fX2luaXRfXy5weQ0KLS0tIGRpc3R1dGlscy5vcmlnL2Rpc3R1dGls
cy9jb21tYW5kL19faW5pdF9fLnB5CVNhdCBNYXkgMTMgMDM6NDg6MTUgMjAw
MA0KKysrIGRpc3R1dGlscy5wYXRjaGVkL2Rpc3R1dGlscy9jb21tYW5kL19f
aW5pdF9fLnB5CVR1ZSBNYXkgMjMgMjI6MzY6NDYgMjAwMA0KQEAgLTksNiAr
OSw3IEBADQogICAgICAgICAgICAnYnVpbGRfcHknLA0KICAgICAgICAgICAg
J2J1aWxkX2V4dCcsDQogICAgICAgICAgICAnYnVpbGRfY2xpYicsDQorICAg
ICAgICAgICAnYnVpbGRfc2NyaXB0cycsDQogICAgICAgICAgICAnaW5zdGFs
bCcsDQogICAgICAgICAgICAnaW5zdGFsbF9saWInLA0KICAgICAgICAgICAg
J2luc3RhbGxfc2NyaXB0cycsDQpkaWZmIC1CdXJOIC0tbWluaW1hbCAtLWV4
Y2x1ZGU9Ki5weWMgZGlzdHV0aWxzLm9yaWcvZGlzdHV0aWxzL2NvbW1hbmQv
YnVpbGQucHkgZGlzdHV0aWxzLnBhdGNoZWQvZGlzdHV0aWxzL2NvbW1hbmQv
YnVpbGQucHkNCi0tLSBkaXN0dXRpbHMub3JpZy9kaXN0dXRpbHMvY29tbWFu
ZC9idWlsZC5weQlGcmkgTWF5IDEyIDAyOjMzOjE0IDIwMDANCisrKyBkaXN0
dXRpbHMucGF0Y2hlZC9kaXN0dXRpbHMvY29tbWFuZC9idWlsZC5weQlUdWUg
TWF5IDIzIDIyOjUyOjUxIDIwMDANCkBAIC0yNCw2ICsyNCw4IEBADQogICAg
ICAgICAoJ2J1aWxkLWxpYj0nLCBOb25lLA0KICAgICAgICAgICJidWlsZCBk
aXJlY3RvcnkgZm9yIGFsbCBkaXN0cmlidXRpb24gKGRlZmF1bHRzIHRvIGVp
dGhlciAiICsNCiAgICAgICAgICAiYnVpbGQtcHVyZWxpYiBvciBidWlsZC1w
bGF0bGliIiksDQorICAgICAgICAoJ2J1aWxkLXNjcmlwdHM9JywgTm9uZSwN
CisgICAgICAgICAiYnVpbGQgZGlyZWN0b3J5IGZvciBzY3JpcHRzIiksDQog
ICAgICAgICAoJ2J1aWxkLXRlbXA9JywgJ3QnLA0KICAgICAgICAgICJ0ZW1w
b3JhcnkgYnVpbGQgZGlyZWN0b3J5IiksDQogICAgICAgICAoJ2NvbXBpbGVy
PScsICdjJywNCkBAIC00Miw2ICs0NCw3IEBADQogICAgICAgICBzZWxmLmJ1
aWxkX3BsYXRsaWIgPSBOb25lDQogICAgICAgICBzZWxmLmJ1aWxkX2xpYiA9
IE5vbmUNCiAgICAgICAgIHNlbGYuYnVpbGRfdGVtcCA9IE5vbmUNCisgICAg
ICAgIHNlbGYuYnVpbGRfc2NyaXB0cyA9IE5vbmUNCiAgICAgICAgIHNlbGYu
Y29tcGlsZXIgPSBOb25lDQogICAgICAgICBzZWxmLmRlYnVnID0gTm9uZQ0K
ICAgICAgICAgc2VsZi5mb3JjZSA9IDANCkBAIC03Niw2ICs3OSw4IEBADQog
ICAgICAgICBpZiBzZWxmLmJ1aWxkX3RlbXAgaXMgTm9uZToNCiAgICAgICAg
ICAgICBzZWxmLmJ1aWxkX3RlbXAgPSBvcy5wYXRoLmpvaW4gKHNlbGYuYnVp
bGRfYmFzZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICd0ZW1wLicgKyBzZWxmLnBsYXQpDQorICAgICAgICBpZiBz
ZWxmLmJ1aWxkX3NjcmlwdHMgaXMgTm9uZToNCisgICAgICAgICAgICBzZWxm
LmJ1aWxkX3NjcmlwdHMgPSBvcy5wYXRoLmpvaW4gKHNlbGYuYnVpbGRfYmFz
ZSwgJ3NjcmlwdHMnKQ0KICAgICAjIGZpbmFsaXplX29wdGlvbnMgKCkNCiAN
CiANCkBAIC05OSw1ICsxMDQsOCBAQA0KICAgICAgICAgIyBpbnRvIHRoZSBi
dWlsZCB0cmVlDQogICAgICAgICBpZiBzZWxmLmRpc3RyaWJ1dGlvbi5oYXNf
ZXh0X21vZHVsZXMoKToNCiAgICAgICAgICAgICBzZWxmLnJ1bl9wZWVyICgn
YnVpbGRfZXh0JykNCisNCisgICAgICAgIGlmIHNlbGYuZGlzdHJpYnV0aW9u
LnNjcmlwdHM6DQorICAgICAgICAgICAgc2VsZi5ydW5fcGVlciAoJ2J1aWxk
X3NjcmlwdHMnKQ0KIA0KICMgZW5kIGNsYXNzIEJ1aWxkDQpkaWZmIC1CdXJO
IC0tbWluaW1hbCAtLWV4Y2x1ZGU9Ki5weWMgZGlzdHV0aWxzLm9yaWcvZGlz
dHV0aWxzL2NvbW1hbmQvYnVpbGRfc2NyaXB0cy5weSBkaXN0dXRpbHMucGF0
Y2hlZC9kaXN0dXRpbHMvY29tbWFuZC9idWlsZF9zY3JpcHRzLnB5DQotLS0g
ZGlzdHV0aWxzLm9yaWcvZGlzdHV0aWxzL2NvbW1hbmQvYnVpbGRfc2NyaXB0
cy5weQlUaHUgSmFuICAxIDAxOjAwOjAwIDE5NzANCisrKyBkaXN0dXRpbHMu
cGF0Y2hlZC9kaXN0dXRpbHMvY29tbWFuZC9idWlsZF9zY3JpcHRzLnB5CVR1
ZSBNYXkgMjMgMjM6NDI6MjEgMjAwMA0KQEAgLTAsMCArMSw3MSBAQA0KKyIi
ImRpc3R1dGlscy5jb21tYW5kLmJ1aWxkX3NjcmlwdHMNCisNCitJbXBsZW1l
bnRzIHRoZSBEaXN0dXRpbHMgJ2J1aWxkX3NjcmlwdHMnIGNvbW1hbmQuIiIi
DQorDQorIyBjcmVhdGVkIDIwMDAvMDUvMjMsIEJhc3RpYW4gS2xlaW5laWRh
bQ0KKw0KK19fcmV2aXNpb25fXyA9ICIkSWQkIg0KKw0KK2ltcG9ydCBzeXMs
b3MscmUNCitmcm9tIGRpc3R1dGlscy5jb3JlIGltcG9ydCBDb21tYW5kDQor
DQorIyBjaGVjayBpZiBQeXRob24gaXMgY2FsbGVkIG9uIHRoZSBmaXJzdCBs
aW5lIHdpdGggdGhpcyBleHByZXNzaW9uDQorZmlyc3RfbGluZV9yZSA9IHJl
LmNvbXBpbGUociJeIyEuK3B5dGhvbihccy1cdyspKiIpDQorDQorY2xhc3Mg
YnVpbGRfc2NyaXB0cyAoQ29tbWFuZCk6DQorDQorICAgIGRlc2NyaXB0aW9u
ID0gIlwiYnVpbGRcIiBzY3JpcHRzIg0KKw0KKyAgICB1c2VyX29wdGlvbnMg
PSBbDQorICAgICAgICAoJ2J1aWxkLWRpcj0nLCAnZCcsICJkaXJlY3Rvcnkg
dG8gXCJidWlsZFwiIChjb3B5KSB0byIpLA0KKyAgICAgICAgKCdmb3JjZScs
ICdmJywgImZvcmNpYmx5IGJ1aWxkIGV2ZXJ5dGhpbmcgKGlnbm9yZSBmaWxl
IHRpbWVzdGFtcHMiKSwNCisgICAgICAgIF0NCisNCisNCisgICAgZGVmIGlu
aXRpYWxpemVfb3B0aW9ucyAoc2VsZik6DQorICAgICAgICBzZWxmLmJ1aWxk
X2RpciA9IE5vbmUNCisgICAgICAgIHNlbGYuc2NyaXB0cyA9IE5vbmUNCisg
ICAgICAgIHNlbGYuZm9yY2UgPSBOb25lDQorICAgICAgICBzZWxmLm91dGZp
bGVzID0gTm9uZQ0KKw0KKyAgICBkZWYgZmluYWxpemVfb3B0aW9ucyAoc2Vs
Zik6DQorICAgICAgICBzZWxmLnNldF91bmRlZmluZWRfb3B0aW9ucyAoJ2J1
aWxkJywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
J2J1aWxkX3NjcmlwdHMnLCAnYnVpbGRfZGlyJyksDQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCdmb3JjZScsICdmb3JjZScpKQ0K
KyAgICAgICAgc2VsZi5zY3JpcHRzID0gc2VsZi5kaXN0cmlidXRpb24uc2Ny
aXB0cw0KKw0KKw0KKyAgICBkZWYgcnVuIChzZWxmKToNCisgICAgICAgIGlm
IG5vdCBzZWxmLnNjcmlwdHM6DQorICAgICAgICAgICAgcmV0dXJuDQorICAg
ICAgICBzZWxmLl9jb3B5X2ZpbGVzKCkNCisgICAgICAgIHNlbGYuX2FkanVz
dF9maWxlcygpDQorICAgICAgICANCisgICAgZGVmIF9jb3B5X2ZpbGVzKHNl
bGYpOg0KKyAgICAgICAgIiIiQ29weSBhbGwgdGhlIHNjcmlwdHMgdG8gdGhl
IGJ1aWxkIGRpciIiIg0KKyAgICAgICAgc2VsZi5vdXRmaWxlcyA9IFtdDQor
ICAgICAgICBzZWxmLm1rcGF0aChzZWxmLmJ1aWxkX2RpcikNCisgICAgICAg
IGZvciBmIGluIHNlbGYuc2NyaXB0czoNCisgICAgICAgICAgICBwcmludCBz
ZWxmLmJ1aWxkX2Rpcg0KKyAgICAgICAgICAgIGlmIHNlbGYuY29weV9maWxl
KGYsIHNlbGYuYnVpbGRfZGlyKToNCisgICAgICAgICAgICAgICAgc2VsZi5v
dXRmaWxlcy5hcHBlbmQob3MucGF0aC5qb2luKHNlbGYuYnVpbGRfZGlyLCBm
KSkNCisgICAgICAgICAgICANCisgICAgZGVmIF9hZGp1c3RfZmlsZXMoc2Vs
Zik6DQorICAgICAgICAiIiJJZiB0aGUgZmlyc3QgbGluZSBiZWdpbnMgd2l0
aCAjISBhbmQgZW5kcyB3aXRoIHB5dGhvbg0KKwkgICByZXBsYWNlIGl0IHdp
dGggdGhlIGN1cnJlbnQgcHl0aG9uIGludGVycHJldGVyIiIiDQorICAgICAg
ICBmb3IgZiBpbiBzZWxmLm91dGZpbGVzOg0KKyAgICAgICAgICAgIGlmIG5v
dCBzZWxmLmRyeV9ydW46DQorICAgICAgICAgICAgICAgIGRhdGEgPSBvcGVu
KGYsICJyIikucmVhZGxpbmVzKCkNCisgICAgICAgICAgICAgICAgaWYgbm90
IGRhdGE6DQorICAgICAgICAgICAgICAgICAgICBzZWxmLndhcm4oIiVzIGlz
IGFuIGVtcHR5IGZpbGUhIiAlIGYpDQorICAgICAgICAgICAgICAgICAgICBj
b250aW51ZQ0KKyAgICAgICAgICAgICAgICBtbyA9IGZpcnN0X2xpbmVfcmUu
bWF0Y2goZGF0YVswXSkNCisgICAgICAgICAgICAgICAgaWYgbW86DQorICAg
ICAgICAgICAgICAgICAgICBzZWxmLmFubm91bmNlKCJBZGp1c3RpbmcgZmly
c3QgbGluZSBvZiBmaWxlICVzIiAlIGYpDQorICAgICAgICAgICAgICAgICAg
ICBkYXRhWzBdID0gIiMhIitzeXMuZXhlY3V0YWJsZQ0KKyAgICAgICAgICAg
ICAgICAgICAgIyBhZGQgb3B0aW9uYWwgY29tbWFuZCBsaW5lIG9wdGlvbnMN
CisgICAgICAgICAgICAgICAgICAgIGlmIG1vLmdyb3VwKDEpOg0KKyAgICAg
ICAgICAgICAgICAgICAgICAgIGRhdGFbMF0gPSBkYXRhWzBdICsgbW8uZ3Jv
dXAoMSkNCisgICAgICAgICAgICAgICAgICAgIGVsc2U6DQorICAgICAgICAg
ICAgICAgICAgICAgICAgZGF0YVswXSA9IGRhdGFbMF0gKyAiXG4iDQorICAg
ICAgICAgICAgICAgICAgICBvcGVuKGYsICJ3Iikud3JpdGVsaW5lcyhkYXRh
KQ0KZGlmZiAtQnVyTiAtLW1pbmltYWwgLS1leGNsdWRlPSoucHljIGRpc3R1
dGlscy5vcmlnL2Rpc3R1dGlscy9jb21tYW5kL2luc3RhbGxfZGF0YS5weSBk
aXN0dXRpbHMucGF0Y2hlZC9kaXN0dXRpbHMvY29tbWFuZC9pbnN0YWxsX2Rh
dGEucHkNCi0tLSBkaXN0dXRpbHMub3JpZy9kaXN0dXRpbHMvY29tbWFuZC9p
bnN0YWxsX2RhdGEucHkJU2F0IE1heSAxMyAwNTowOTo1MCAyMDAwDQorKysg
ZGlzdHV0aWxzLnBhdGNoZWQvZGlzdHV0aWxzL2NvbW1hbmQvaW5zdGFsbF9k
YXRhLnB5CVR1ZSBNYXkgMjMgMjM6MzE6MzYgMjAwMA0KQEAgLTcsMTcgKzcs
NDAgQEANCiANCiBfX3JldmlzaW9uX18gPSAiJElkOiBpbnN0YWxsX2RhdGEu
cHksdiAxLjUgMjAwMC8wNS8xMyAwMzowOTo1MCBncmVnIEV4cCAkIg0KIA0K
LWZyb20gZGlzdHV0aWxzLmNtZCBpbXBvcnQgaW5zdGFsbF9taXNjDQoraW1w
b3J0IG9zDQorZnJvbSB0eXBlcyBpbXBvcnQgU3RyaW5nVHlwZQ0KK2Zyb20g
ZGlzdHV0aWxzLmNvcmUgaW1wb3J0IENvbW1hbmQNCiANCi1jbGFzcyBpbnN0
YWxsX2RhdGEgKGluc3RhbGxfbWlzYyk6DQorY2xhc3MgaW5zdGFsbF9kYXRh
IChDb21tYW5kKToNCiANCiAgICAgZGVzY3JpcHRpb24gPSAiaW5zdGFsbCBk
YXRhIGZpbGVzIg0KIA0KKyAgICB1c2VyX29wdGlvbnMgPSBbKCdpbnN0YWxs
LWRpcj0nLCAnZCcsDQorICAgICAgICAgICAgICAgICAgICAgImRpcmVjdG9y
eSB0byBpbnN0YWxsIHRoZSBmaWxlcyB0byIpXQ0KKw0KKyAgICBkZWYgaW5p
dGlhbGl6ZV9vcHRpb25zIChzZWxmKToNCisgICAgICAgIHNlbGYuaW5zdGFs
bF9kaXIgPSBOb25lDQorICAgICAgICBzZWxmLm91dGZpbGVzID0gTm9uZQ0K
KyAgICAgICAgc2VsZi5kYXRhX2ZpbGVzID0gc2VsZi5kaXN0cmlidXRpb24u
ZGF0YV9maWxlcw0KKw0KICAgICBkZWYgZmluYWxpemVfb3B0aW9ucyAoc2Vs
Zik6DQotICAgICAgICBzZWxmLl9pbnN0YWxsX2Rpcl9mcm9tKCdpbnN0YWxs
X2RhdGEnKQ0KKyAgICAgICAgc2VsZi5zZXRfdW5kZWZpbmVkX29wdGlvbnMo
J2luc3RhbGwnLCAoJ2luc3RhbGxfZGF0YScsICdpbnN0YWxsX2RpcicpKQ0K
IA0KICAgICBkZWYgcnVuIChzZWxmKToNCi0gICAgICAgIHNlbGYuX2NvcHlf
ZmlsZXMoc2VsZi5kaXN0cmlidXRpb24uZGF0YV9maWxlcykNCisgICAgICAg
IHNlbGYubWtwYXRoKHNlbGYuaW5zdGFsbF9kaXIpDQorICAgICAgICBmb3Ig
ZiBpbiBzZWxmLmRhdGFfZmlsZXM6DQorICAgICAgICAgICAgaWYgdHlwZShm
KSA9PSBTdHJpbmdUeXBlOg0KKyAgICAgICAgICAgICAgICAjIGl0cyBhIHNp
bXBsZSBmaWxlLCBzbyBjb3B5IGl0DQorICAgICAgICAgICAgICAgIHNlbGYu
Y29weV9maWxlKGYsIHNlbGYuaW5zdGFsbF9kaXIpDQorICAgICAgICAgICAg
ZWxzZToNCisgICAgICAgICAgICAgICAgIyBpdHMgYSB0dXBsZSB3aXRoIHBh
dGggdG8gaW5zdGFsbCB0byBhbmQgYSBsaXN0IG9mIGZpbGVzDQorICAgICAg
ICAgICAgICAgIGRpciA9IG9zLnBhdGguam9pbihzZWxmLmluc3RhbGxfZGly
LCBmWzBdKQ0KKyAgICAgICAgICAgICAgICBzZWxmLm1rcGF0aChkaXIpDQor
ICAgICAgICAgICAgICAgIGZvciBkYXRhIGluIGZbMV06DQorICAgICAgICAg
ICAgICAgICAgICBzZWxmLmNvcHlfZmlsZShkYXRhLCBkaXIpDQogDQogICAg
IGRlZiBnZXRfaW5wdXRzIChzZWxmKToNCi0gICAgICAgIHJldHVybiBzZWxm
LmRpc3RyaWJ1dGlvbi5kYXRhX2ZpbGVzIG9yIFtdDQorICAgICAgICByZXR1
cm4gc2VsZi5kYXRhX2ZpbGVzIG9yIFtdDQorDQorICAgIGRlZiBnZXRfb3V0
cHV0cyAoc2VsZik6DQorICAgICAgICByZXR1cm4gc2VsZi5vdXRmaWxlcw0K
ZGlmZiAtQnVyTiAtLW1pbmltYWwgLS1leGNsdWRlPSoucHljIGRpc3R1dGls
cy5vcmlnL2Rpc3R1dGlscy9jb21tYW5kL2luc3RhbGxfc2NyaXB0cy5weSBk
aXN0dXRpbHMucGF0Y2hlZC9kaXN0dXRpbHMvY29tbWFuZC9pbnN0YWxsX3Nj
cmlwdHMucHkNCi0tLSBkaXN0dXRpbHMub3JpZy9kaXN0dXRpbHMvY29tbWFu
ZC9pbnN0YWxsX3NjcmlwdHMucHkJU2F0IE1heSAxMyAwNTowNzo1MyAyMDAw
DQorKysgZGlzdHV0aWxzLnBhdGNoZWQvZGlzdHV0aWxzL2NvbW1hbmQvaW5z
dGFsbF9zY3JpcHRzLnB5CVR1ZSBNYXkgMjMgMjM6MjU6MDIgMjAwMA0KQEAg
LTgsMjMgKzgsMzkgQEANCiBfX3JldmlzaW9uX18gPSAiJElkOiBpbnN0YWxs
X3NjcmlwdHMucHksdiAxLjQgMjAwMC8wNS8xMyAwMzowNzo1MyBncmVnIEV4
cCAkIg0KIA0KIGltcG9ydCBvcw0KLWZyb20gZGlzdHV0aWxzLmNtZCBpbXBv
cnQgaW5zdGFsbF9taXNjDQorZnJvbSBkaXN0dXRpbHMuY29yZSBpbXBvcnQg
Q29tbWFuZA0KIGZyb20gc3RhdCBpbXBvcnQgU1RfTU9ERQ0KIA0KLWNsYXNz
IGluc3RhbGxfc2NyaXB0cyhpbnN0YWxsX21pc2MpOg0KK2NsYXNzIGluc3Rh
bGxfc2NyaXB0cyhDb21tYW5kKToNCiANCiAgICAgZGVzY3JpcHRpb24gPSAi
aW5zdGFsbCBzY3JpcHRzIg0KIA0KKyAgICB1c2VyX29wdGlvbnMgPSBbDQor
ICAgICAgICAoJ2luc3RhbGwtZGlyPScsICdkJywgImRpcmVjdG9yeSB0byBp
bnN0YWxsIHRvIiksDQorICAgICAgICAoJ2J1aWxkLWRpcj0nLCdiJywgImJ1
aWxkIGRpcmVjdG9yeSAod2hlcmUgdG8gaW5zdGFsbCBmcm9tKSIpLA0KKyAg
ICAgICAgKCdza2lwLWJ1aWxkJywgTm9uZSwgInNraXAgdGhlIGJ1aWxkIHN0
ZXBzIiksDQorICAgIF0NCisNCisgICAgZGVmIGluaXRpYWxpemVfb3B0aW9u
cyAoc2VsZik6DQorICAgICAgICBzZWxmLmluc3RhbGxfZGlyID0gTm9uZQ0K
KyAgICAgICAgc2VsZi5idWlsZF9kaXIgPSBOb25lDQorICAgICAgICBzZWxm
LnNraXBfYnVpbGQgPSBOb25lDQorDQogICAgIGRlZiBmaW5hbGl6ZV9vcHRp
b25zIChzZWxmKToNCi0gICAgICAgIHNlbGYuX2luc3RhbGxfZGlyX2Zyb20o
J2luc3RhbGxfc2NyaXB0cycpDQorICAgICAgICBzZWxmLnNldF91bmRlZmlu
ZWRfb3B0aW9ucygnYnVpbGQnLCAoJ2J1aWxkX3NjcmlwdHMnLCAnYnVpbGRf
ZGlyJykpDQorICAgICAgICBzZWxmLnNldF91bmRlZmluZWRfb3B0aW9ucyAo
J2luc3RhbGwnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICgnaW5zdGFsbF9zY3JpcHRzJywgJ2luc3RhbGxfZGlyJyksDQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdza2lwX2J1aWxk
JywgJ3NraXBfYnVpbGQnKSwNCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICkNCiANCiAgICAgZGVmIHJ1biAoc2VsZik6DQotICAgICAg
ICBzZWxmLl9jb3B5X2ZpbGVzKHNlbGYuZGlzdHJpYnV0aW9uLnNjcmlwdHMp
DQorICAgICAgICBpZiBub3Qgc2VsZi5za2lwX2J1aWxkOg0KKyAgICAgICAg
ICAgIHNlbGYucnVuX3BlZXIoJ2J1aWxkX3NjcmlwdHMnKQ0KKyAgICAgICAg
c2VsZi5vdXRmaWxlcyA9IHNlbGYuY29weV90cmVlIChzZWxmLmJ1aWxkX2Rp
ciwgc2VsZi5pbnN0YWxsX2RpcikNCiAgICAgICAgIGlmIG9zLm5hbWUgPT0g
J3Bvc2l4JzoNCiAgICAgICAgICAgICAjIFNldCB0aGUgZXhlY3V0YWJsZSBi
aXRzIChvd25lciwgZ3JvdXAsIGFuZCB3b3JsZCkgb24NCiAgICAgICAgICAg
ICAjIGFsbCB0aGUgc2NyaXB0cyB3ZSBqdXN0IGluc3RhbGxlZC4NCi0gICAg
ICAgICAgICBmaWxlcyA9IHNlbGYuZ2V0X291dHB1dHMoKQ0KLSAgICAgICAg
ICAgIGZvciBmaWxlIGluIGZpbGVzOg0KKyAgICAgICAgICAgIGZvciBmaWxl
IGluIHNlbGYuZ2V0X291dHB1dHMoKToNCiAgICAgICAgICAgICAgICAgaWYg
c2VsZi5kcnlfcnVuOg0KICAgICAgICAgICAgICAgICAgICAgc2VsZi5hbm5v
dW5jZSgiY2hhbmdpbmcgbW9kZSBvZiAlcyIgJSBmaWxlKQ0KICAgICAgICAg
ICAgICAgICBlbHNlOg0KQEAgLTM0LDUgKzUwLDggQEANCiANCiAgICAgZGVm
IGdldF9pbnB1dHMgKHNlbGYpOg0KICAgICAgICAgcmV0dXJuIHNlbGYuZGlz
dHJpYnV0aW9uLnNjcmlwdHMgb3IgW10NCisNCisgICAgZGVmIGdldF9vdXRw
dXRzKHNlbGYpOg0KKyAgICAgICAgcmV0dXJuIHNlbGYub3V0ZmlsZXMgb3Ig
W10NCiANCiAjIGNsYXNzIGluc3RhbGxfc2NyaXB0cw0K
--1619418364-1236589548-959119441=:876--