Perlfect Solutions
 

[Perlfect-search] Bug report

Daniel Naber daniel.naber@t-online.de
Thu, 18 Jan 2001 09:03:20 +0100
--------------Boundary-00=_KDMCDP2SD3P30JR8GN5R
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

On 2001-01-18 07:25, you wrote:

> Perlfect Search v3.20_running the setup utility for Linux.
> It install itself in not correct form. Mistake is -SSH (secure Telnet)
> is case sensitive. 'setup.pl' write files and directories with upper
> case than its in 'Search' directory (lower case).=20

It works for me. We're using File::Copy so it seems you're using a buggy=20
version of that. Do you know which version of Perl is installed on your=20
server? Do you use Linux both on your own computer and on the server?

> + you have to put manually 'indexer_filesystem.pl' and
> 'indexer_web.pl' into your remote site before indexing your site:

This should be fixed. Can you please try again with this version of=20
setup.pl?

Regards
 Daniel

--=20
Daniel Naber, Paul-Gerhardt-Str. 2, 33332 Guetersloh, Germany
Tel. 05241-59371, Mobil 0170-4819674

--------------Boundary-00=_KDMCDP2SD3P30JR8GN5R
Content-Type: application/x-perl;
  charset="iso-8859-1";
  name="setup.pl"
Content-Disposition: attachment; filename="setup.pl"
Content-Transfer-Encoding: base64

IyEvdXNyL2Jpbi9wZXJsCiMgJHJjcyA9ICcgJElkOiBzZXR1cC5wbCx2IDEuMTQgMjAwMC8xMi8y
NSAyMTowMzoxMyBkYW5pZWwgRXhwICQgJyA7CQoKIyBQZXJsZmVjdCBTZWFyY2ggLSBTZXR1cCBV
dGlsaXR5CiMKIyBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBHaW9yZ29zIFplcnZhcyA8Z2lvcmdv
c0BwZXJsZmVjdC5jb20+CiMgCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdAojIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKIyBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMK
IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0
ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNwojIFVTQQoKbXkgJFZFUlNJT04gPSAnMy4yMGJl
dGEnOwp1c2UgRmlsZTo6Q29weTsKCiMgcGVvcGxlIHdobyBpbnN0YWxsIG1hbnVhbGx5IG1pZ2h0
IGxlYXZlIHRoaXMgc2NyaXB0IGluIGNnaS1iaW4sIHdoaWNoIGlzIGEgYmFkIGlkZWE6CmlmKCAk
RU5WeydSRVFVRVNUX01FVEhPRCd9ICkgewogIHByaW50ICJDb250ZW50LVR5cGU6IHRleHQvcGxh
aW5cblxuIjsKICBwcmludCAiRXJyb3I6IGZvciBzZWN1cml0eSByZWFzb25zLCB0aGlzIHByb2dy
YW0gaXMgbm90IHN1cHBvc2VkIHRvIGJlIGNhbGxlZCB2aWEgQ0dJLlxuIjsKICBleGl0Owp9Cgpw
cmludCAiClBlcmxmZWN0IFNlYXJjaCAkVkVSU0lPTiBTZXR1cCBVdGlsaXR5CgpXQVJOSU5HOiBU
aGVyZSBpcyBubyBndWFyYW50ZWUgaW1wbGljaXQgb3IgZXhwbGljaXQgdGhhdCB0aGlzIHByb2dy
YW0gCndpbGwgd29yayBjb3JyZWN0bHkuIEJ5IHVzaW5nIHRoaXMgcHJvZ3JhbSB5b3UgYXV0b21h
dGljYWxseSBpbmRlbW5pZnkgClBlcmxmZWN0IFNvbHV0aW9ucyBvZiBhbnkgZGFtYWdlIG9yIGhh
cm0gZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBjYXVzZWQgCmJ5IGl0cyBvcGVyYXRpb24uIFVzZSBp
dCBhdCB5b3VyIG93biByaXNrIQoKIjsKZXhpdCBpZihpbnB1dCgiQXJlIHlvdSBzdXJlIHlvdSB3
YW50IHRvIGNvbnRpbnVlPyBbeS9uXSIsICJ5IiwgWyJ5IiwibiJdKSBlcSAibiIpOwoKbXkgJG9z
ID0gaW5wdXQoIldoYXQgb3BlcmF0aW5nIHN5c3RlbSBpcyB5b3VyIHNpdGUgcnVubmluZyBvbj8g
W3VuaXgvbnRdIiwgInVuaXgiLCBbInVuaXgiLCAibnQiXSk7CgpteSAkcGVybDsKaWYoJG9zIGVx
ICd1bml4JykKICB7CiAgICAkcGVybCA9IGB3aGljaCBwZXJsYDsKICAgIGNob21wICRwZXJsOwog
ICAgJHBlcmw9Jy91c3IvYmluL3BlcmwnIHVubGVzcyAoJHBlcmwpOwogICAgJHBlcmwgPSBpbnB1
dCgiV2hlcmUgaXMgcGVybD8gWyRwZXJsXSIsICIkcGVybCIpOwogICAgcHJpbnQgIk9rLCBJIHdp
bGwgY29uZmlndXJlIHRoZSBzY3JpcHRzIHRvIHJ1biB3aXRoICRwZXJsXG4iOwogICAgc2V0X3Bl
cmxfcGF0aCgic2VhcmNoLnBsIiwgJHBlcmwpOwogICAgc2V0X3BlcmxfcGF0aCgiaW5kZXhlci5w
bCIsICRwZXJsKTsKICB9CnByaW50ICJcbiI7CgpteSAkYmFzZXVybCA9IGlucHV0KCJXaGF0IGlz
IHRoZSBiYXNlIFVSTCBvZiB5b3VyIHNpdGU/IChlLmcuIGh0dHA6Ly93d3cucGVybGZlY3QuY29t
LykiKTsKbXkgJGNnaXVybCA9IGlucHV0KCJBbmQgd2hhdCBpcyB0aGUgVVJMIG9mIHlvdXIgY2dp
LWJpbiBkaXJlY3Rvcnk/IChlLmcuIGh0dHA6Ly93d3cucGVybGZlY3QuY29tL2NnaS1iaW4vIik7
CgpteSAkZG9jdW1lbnRyb290ID0gaW5wdXQoIldoaWNoIGRpcmVjdG9yeSBpcyB5b3VyIHNpdGUg
aW4/IChlLmcuIC9ob21lL2h0dHBkL2h0bWwvKSIpOwpteSAkY2dpZGlyID0gaW5wdXQoIldoZXJl
IGlzIHlvdXIgY2dpLWJpbiBkaXJlY3Rvcnk/IChlLmcuIC9ob21lL2h0dHBkL2NnaS1iaW4vKSIp
OwoKIyBBZGQgc2xhc2hlcyBhdCB0aGUgZW5kIChidXQgbm8gc2xhc2ggZm9yICRiYXNldXJsKQpm
b3JlYWNoICgkZG9jdW1lbnRyb290LCAkY2dpZGlyLCAkY2dpdXJsKQogIHsKICAgICRfID1+IHMv
XC8kLy87CiAgICAkXyAuPSAnLyc7CiAgfQokYmFzZXVybCA9fiBzL1wvJC8vOwpteSAkaW5zdGRp
cj0kY2dpZGlyLiJwZXJsZmVjdC9zZWFyY2gvIjsKbXkgJGluc3R1cmw9JGNnaXVybC4icGVybGZl
Y3Qvc2VhcmNoLyI7CgpwcmludCAiCkkgd2lsbCBub3cgaW5zdGFsbCBQZXJsZmVjdCBTZWFyY2gg
JFZFUlNJT04gaW4KJGluc3RkaXIKCiI7Cmluc3RhbGxfZGlyKCRjZ2lkaXIuInBlcmxmZWN0Iiwg
IjA3NTUiKTsKaW5zdGFsbF9kaXIoJGNnaWRpci4icGVybGZlY3Qvc2VhcmNoIiwgIjA3NTUiKTsK
aW5zdGFsbF9maWxlKCJzZWFyY2gucGwiLCAkaW5zdGRpci4ic2VhcmNoLnBsIiwgIjA3NTUiKTsK
IyBGb3Igc2VjdXJpdHkgcmVhc29ucywgb25seSB0aGUgdXNlciBjYW4gc3RhcnQgdGhlIGluZGV4
ZXI6Cmluc3RhbGxfZmlsZSgiaW5kZXhlci5wbCIsICRpbnN0ZGlyLiJpbmRleGVyLnBsIiwgIjA3
MDAiKTsKIyBBbHNvIG5vdGUgdGhhdCBzZXR1cC5wbCBkb2VzIG5vdCBnZXQgaW5zdGFsbGVkLCBh
cyBpdCdzIG9ubHkgbmVlZGVkIG9uY2UKaW5zdGFsbF9maWxlKCJpbmRleGVyX3dlYi5wbCIsICRp
bnN0ZGlyLiJpbmRleGVyX3dlYi5wbCIsICIwNzU1Iik7Cmluc3RhbGxfZmlsZSgiaW5kZXhlcl9m
aWxlc3lzdGVtLnBsIiwgJGluc3RkaXIuImluZGV4ZXJfZmlsZXN5c3RlbS5wbCIsICIwNzU1Iik7
Cmluc3RhbGxfZmlsZSgiU0dNTEVudGl0aWVzLnBsIiwgJGluc3RkaXIuIlNHTUxFbnRpdGllcy5w
bCIsICIwNzU1Iik7Cmluc3RhbGxfZmlsZSgiY29uZi5wbCIsICRpbnN0ZGlyLiJjb25mLnBsIiwg
IjA3NTUiKTsKaW5zdGFsbF9kaXIoJGluc3RkaXIuImRhdGEiLCAiMDc1NSIpOwppbnN0YWxsX2Rp
cigkaW5zdGRpci4idGVtcCIsICIwNzU1Iik7Cmluc3RhbGxfZGlyKCRpbnN0ZGlyLiJjb25mIiwg
IjA3NTUiKTsKaW5zdGFsbF9maWxlKCJjb25mL3N0b3B3b3Jkcy50eHQiLCAkaW5zdGRpci4iY29u
Zi9zdG9wd29yZHMudHh0IiwgIjA3NTUiLCBrZWVwKTsKaW5zdGFsbF9kaXIoJGluc3RkaXIuInRl
bXBsYXRlcyIsICIwNzU1Iik7Cmluc3RhbGxfZmlsZSgidGVtcGxhdGVzL3NlYXJjaC5odG1sIiwg
JGluc3RkaXIuInRlbXBsYXRlcy9zZWFyY2guaHRtbCIsICIwNzU1Iiwga2VlcCk7Cmluc3RhbGxf
ZmlsZSgidGVtcGxhdGVzL3NlYXJjaF9kZS5odG1sIiwgJGluc3RkaXIuInRlbXBsYXRlcy9zZWFy
Y2hfZGUuaHRtbCIsICIwNzU1Iiwga2VlcCk7Cmluc3RhbGxfZmlsZSgidGVtcGxhdGVzL25vX21h
dGNoLmh0bWwiLCAkaW5zdGRpci4idGVtcGxhdGVzL25vX21hdGNoLmh0bWwiLCAiMDc1NSIsIGtl
ZXApOwppbnN0YWxsX2ZpbGUoInRlbXBsYXRlcy9ub19tYXRjaF9kZS5odG1sIiwgJGluc3RkaXIu
InRlbXBsYXRlcy9ub19tYXRjaF9kZS5odG1sIiwgIjA3NTUiLCBrZWVwKTsKaW5zdGFsbF9kaXIo
JGluc3RkaXIuIlBlcmxmZWN0IiwgIjA3NTUiKTsKaW5zdGFsbF9maWxlKCJQZXJsZmVjdC9UZW1w
bGF0ZS5wbSIsICRpbnN0ZGlyLiJQZXJsZmVjdC9UZW1wbGF0ZS5wbSIsICIwNzU1Iik7CgoKcHJp
bnQgIgpOb3cgSSBuZWVkIHlvdSB0byB0ZWxsIG1lIHdoYXQgZmlsZSB0eXBlcyB3aWxsIGJlIGlu
ZGV4ZWQgYnkgUGVybGZlY3QgU2VhcmNoLgoKIjsKbXkgQGZpbGV0eXBlcyA9ICgpOwpwdXNoKEBm
aWxldHlwZXMsICciaHRtIicpIGlmKGlucHV0KCJEbyB5b3Ugd2FudCB0byBpbmRleCAuaHRtIGZp
bGVzPyBbeS9uXSIsICJ5IiwgWyd5JywnbiddKSBlcSAieSIpOwpwdXNoKEBmaWxldHlwZXMsICci
aHRtbCInKSBpZihpbnB1dCgiRG8geW91IHdhbnQgdG8gaW5kZXggLmh0bWwgZmlsZXM/IFt5L25d
IiwgInkiLCBbJ3knLCduJ10pIGVxICJ5Iik7CnB1c2goQGZpbGV0eXBlcywgJyJzaHRtbCInKSBp
ZihpbnB1dCgiRG8geW91IHdhbnQgdG8gaW5kZXggLnNodG1sIGZpbGVzPyBbeS9uXSIsICJ5Iiwg
Wyd5JywnbiddKSBlcSAieSIpOwpwdXNoKEBmaWxldHlwZXMsICcic3RtIicpIGlmKGlucHV0KCJE
byB5b3Ugd2FudCB0byBpbmRleCAuc3RtIGZpbGVzPyBbeS9uXSIsICJ5IiwgWyd5JywnbiddKSBl
cSAieSIpOwpwdXNoKEBmaWxldHlwZXMsICciYXNwIicpIGlmKGlucHV0KCJEbyB5b3Ugd2FudCB0
byBpbmRleCAuYXNwIGZpbGVzPyBbeS9uXSIsICJuIiwgWyd5JywnbiddKSBlcSAieSIpOwpwdXNo
KEBmaWxldHlwZXMsICcic3R4IicpIGlmKGlucHV0KCJEbyB5b3Ugd2FudCB0byBpbmRleCAuc3R4
IGZpbGVzPyBbeS9uXSIsICJuIiwgWyd5JywnbiddKSBlcSAieSIpOwpwdXNoKEBmaWxldHlwZXMs
ICcidHh0IicpIGlmKGlucHV0KCJEbyB5b3Ugd2FudCB0byBpbmRleCAudHh0IGZpbGVzPyBbeS9u
XSIsICJuIiwgWyd5JywnbiddKSBlcSAieSIpOwpteSAkb3RoZXJfZmlsZXR5cGVzID0gaW5wdXQo
IkFueSBvdGhlciBmaWxldHlwZXM/IChlbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0KSIpOwpm
b3JlYWNoIChzcGxpdCgvLC8sICRvdGhlcl9maWxldHlwZXMpKQogIHsKICAgICRfID1+IHMvXHMv
L2c7CiAgICAkXyA9fiBzL1wnLy9nOwogICAgJF8gPX4gcy9eXC4vLzsKICAgICRfID0gIlwiJF9c
IiI7CiAgICBwdXNoKEBmaWxldHlwZXMsICRfKTsKICB9Cm15ICRmaWxldHlwZV9saXN0ID0gam9p
bigiLCIsIEBmaWxldHlwZXMpOwoKCnByaW50ICJDb25maWd1cmluZyBQZXJsZmVjdCBTZWFyY2gu
Li5cbiI7CgpvcGVuKENPTkYsICIuL2NvbmYucGwiKQogIG9yIGRpZSAiXG4qKiBDb3VsZCBub3Qg
b3BlbiAnLi9jb25mLnBsJzogJCFcbiI7Cm15ICRzbGFzaCA9ICQvOwp1bmRlZiAkLzsKbXkgJGNv
bmYgPSA8Q09ORj47CiQvID0gJHNsYXNoOwpjbG9zZShDT05GKTsKCiRjb25mID0gcmVwbGFjZV9v
cHRpb24oJGNvbmYsICdcJERPQ1VNRU5UX1JPT1QnLCAiJyRkb2N1bWVudHJvb3QnIik7CiRjb25m
ID0gcmVwbGFjZV9vcHRpb24oJGNvbmYsICdcJEJBU0VfVVJMJywgIickYmFzZXVybCciKTsKJGNv
bmYgPSByZXBsYWNlX29wdGlvbigkY29uZiwgJ1wkQ0dJQklOJywgIickaW5zdHVybCciKTsKJGNv
bmYgPSByZXBsYWNlX29wdGlvbigkY29uZiwgJ1wkSU5TVEFMTF9ESVInLCAiJyRpbnN0ZGlyJyIp
OwokY29uZiA9IHJlcGxhY2Vfb3B0aW9uKCRjb25mLCAnXEBFWFQnLCAiKCRmaWxldHlwZV9saXN0
KSIpOwoKb3BlbihDT05GLCAiPiRpbnN0ZGlyL2NvbmYucGwiKQogIG9yIGRpZSAiXG4qKiBDb3Vs
ZCBub3Qgb3BlbiAnJGluc3RkaXIvY29uZi5wbCc6ICQhXG4iOwpwcmludCBDT05GICRjb25mOwpj
bG9zZSBDT05GOwoKCgp1bmxlc3MoLWUgIiRpbnN0ZGlyL2NvbmYvbm9faW5kZXgudHh0IikKICB7
CiAgICBvcGVuKEVYQ0xVREUsICI+JGluc3RkaXIvY29uZi9ub19pbmRleC50eHQiKQogICAgICBv
ciBkaWUgIkNhbm5vdCBvcGVuICckaW5zdGRpci9jb25mL25vX2luZGV4LnR4dCc6ICQhXG4iOwog
ICAgcHJpbnQgRVhDTFVERSAkY2dpZGlyLiIqIjsKICAgIGNsb3NlIEVYQ0xVREU7CiAgfQoKcHJp
bnQgIgpQZXJsZmVjdCBTZWFyY2ggJFZFUlNJT04gaGFzIGJlZW4gaW5zdGFsbGVkIG9uIHlvdXIg
c3lzdGVtLgoiOwppbnB1dCgiLS0gcHJlc3MgZW50ZXIgdG8gY29udGludWUgLS0iKTsKc3lzdGVt
KCdjbGVhcicpIGlmKCRvcyBlcSAndW5peCcpOwoKaWYoJG9zIGVxICd1bml4JykKICB7CiAgICBp
ZihpbnB1dCgiRG8geW91IHdhbnQgbWUgdG8gdGVzdCB0aGUgaW5kZXhlcj8gKHRoaXMgbWlnaHQg
dGFrZSBzb21lIHRpbWUpIFt5L25dIiwgInkiLCBbInkiLCAibiJdKSBlcSAieSIpCiAgICAgIHsK
CW15ICRydiA9IHN5c3RlbSgiY2QgJGluc3RkaXI7IC4vaW5kZXhlci5wbCIpOwoJaWYoJHJ2KQoJ
ICB7CgkgICAgcHJpbnQgIgpJdCBzZWVtcyB0aGUgaW5kZXhlciBmYWlsZWQgdG8gaW5kZXggdGhl
IHNpdGUuIFBsZWFzZSByZWZlciB0bwpodHRwOi8vd3d3LnBlcmxmZWN0LmNvbS9mcmVlc2NyaXB0
cy9zZWFyY2gvZmFxLnNodG1sIGZvciAKdHJvdWJsZXNob290aW5nIGluZm9ybWF0aW9uLgoiOwoJ
ICAgIGV4aXQ7CgkgIH0KICAgICAgfQogICAgaW5wdXQoIi0tIHByZXNzIGVudGVyIHRvIGNvbnRp
bnVlIC0tIik7CiAgICBzeXN0ZW0oJ2NsZWFyJykgaWYoJG9zIGVxICd1bml4Jyk7CiAgICBteSAk
c2VuZG1haWw7CiAgICBteSAkd2hlcmVpcyA9IGB3aGVyZWlzIHNlbmRtYWlsYDsKICAgIGlmKCR3
aGVyZWlzPX5tL15zZW5kbWFpbDogKFxTKykvKQogICAgICB7Cgkkc2VuZG1haWwgPSAkMTsKCXBy
aW50ICIKV2Ugd291bGQgbGlrZSB0byBrbm93IHRoZSBwZW9wbGUgdGhhdCB1c2UgUGVybGZlY3Qg
U2VhcmNoIHNvIHRoYXQgd2UKbWF5IG5vdGlmeSB0aGVtIGJ5IGVtYWlsIHdoZW4gdXBncmFkZXMg
YmVjb21lIGF2YWlsYWJsZS4gSSBjYW4gc2VuZAp5b3VyIHJlZ2lzdHJhdGlvbiBlbWFpbCBhdXRv
bWF0aWNhbGx5IGlmIHlvdSBhcmUgb25saW5lIHJpZ2h0IG5vdy4KSXQgd2lsbCBvbmx5IHRha2Ug
YSBmZXcgc2Vjb25kcyBhbmQgaXQgd2lsbCBlbnN1cmUgeW91IGFyZSB1cCB0bwpkYXRlIHdpdGgg
dGhlIGRldmVsb3BtZW50IG9mIFBlcmxmZWN0IFNlYXJjaC4KIjsKCWlmKGlucHV0KCJEbyB5b3Ug
d2FudCB0byByZWdpc3RlciBieSBlbWFpbCBub3c/IFt5L25dIiwgInkiLCBbInkiLCAibiJdKSBl
cSAieSIpCgkgIHsKCSAgICBteSAkbmFtZSA9IGlucHV0KCJXaGF0IGlzIHlvdSBuYW1lPyIpOwoJ
ICAgIG15ICRlbWFpbCA9IGlucHV0KCJXaGF0IGlzIHlvdXIgZW1haWwgYWRkcmVzcz8iKTsKCSAg
ICBteSAkZGF0ZSA9IGxvY2FsdGltZSh0aW1lKCkpOwoJICAgIGlmKG9wZW4gKE1BSUwsICJ8JHNl
bmRtYWlsIC10IikpCgkgICAgICB7CgkJcHJpbnQgTUFJTCAiRnJvbTogJGVtYWlsXG4iOwoJCXBy
aW50IE1BSUwgIlRvOiBwZXJsZmVjdC1zZWFyY2gtYW5ub3VuY2UtcmVxdWVzdFxAcGVybGZlY3Qu
Y29tXG4iOwoJCXByaW50IE1BSUwgIlN1YmplY3Q6IHN1YnNjcmliZVxuIjsKCQlwcmludCBNQUlM
ICJDb250ZW50LXR5cGU6IHRleHQvcGxhaW5cblxuIjsKCQlwcmludCBNQUlMICJzdWJzY3JpYmVc
biI7CgkJcHJpbnQgTUFJTCAiLS0gXG4iOwoJCXByaW50IE1BSUwgIk5hbWUgICAgICAkbmFtZVxu
IjsKCQlwcmludCBNQUlMICJFbWFpbCAgICAgJGVtYWlsXG4iOwoJCXByaW50IE1BSUwgIlZlcnNp
b24gICAkVkVSU0lPTlxuIjsKCQlwcmludCBNQUlMICJTaXRlICAgICAgJGJhc2V1cmxcbiI7CgkJ
cHJpbnQgTUFJTCAiRGF0ZSAgICAgICRkYXRlXG4iOwoJCWNsb3NlIE1BSUw7CgkJcHJpbnQgIgpU
aGFuayB5b3UuIFlvdXIgcmVnaXN0cmF0aW9uIGVtYWlsIGhhcyBiZWVuIHNlbnQuIFRvIG1ha2Ug
c3VyZSBub2JvZHkKZWxzZSBjYW4gc3Vic2NyaWJlIHlvdSwgeW91J2xsIHNvb24gcmVjZWl2ZSBh
biBlbWFpbCB0aGF0IHlvdSBuZWVkIHRvCnJlcGx5IHRvLiBBZnRlciB0aGF0LCB5b3UnbGwgYmUg
b24gdGhlIG1haWxpbmcgbGlzdC4KIjsKCQlpbnB1dCgiLS0gcHJlc3MgZW50ZXIgdG8gY29udGlu
dWUgLS0iKTsKCQlzeXN0ZW0oJ2NsZWFyJyk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJ
CXByaW50ICIKVGhlcmUgd2FzIGFuIGVycm9yIHVzaW5nIHlvdXIgc2VuZG1haWwgcHJvZ3JhbS4g
SUYgeW91IHdhbnQsIHlvdSBjYW4gcmVnaXN0ZXIKYnkgZ29pbmcgdG8gUGVybGZlY3QgU2VhcmNo
J3Mgd2Vic2l0ZSBodHRwOi8vd3d3LnBlcmxmZWN0LmNvbS9mcmVlc2NyaXB0cy9zZWFyY2gvCmFu
ZCBmb2xsb3dpbmcgdGhlIGluc3RydWN0aW9ucyB0aGVyZSB0byBzdWJzY3JpYmUgdG8gb3VyIGFu
bm91bmNlbWVudHMgbWFpbGluZwpsaXN0LgoiOwoJICAgICAgfQoJICB9CiAgICAgIH0KICB9Cgpw
cmludCAiClRvIGZpbmQgb3V0IGhvdyB0byBpbmRleCB5b3VyIHNpdGUgYW5kIGludGVncmF0ZSBQ
ZXJsZmVjdCBTZWFyY2ggd2l0aCAKeW91ciBwYWdlcywgcGxlYXNlIHJlZmVyIHRvIHRoZSBGQVEg
d2hpY2ggY2FuIGJlIGZvdW5kIGF0Cmh0dHA6Ly93d3cucGVybGZlY3QuY29tL2ZyZWVzY3JpcHRz
L3NlYXJjaC9mYXEuc2h0bWwKCklmIHlvdSB0aGluayB5b3UgaGF2ZSBmb3VuZCBhIGJ1Zywgb3Ig
aGF2ZSBhIGNvbW1lbnQvc3VnZ2VzdGlvbiB0bwptYWtlIHRoYXQgaXMgbm90IGNvdmVyZWQgaW4g
dGhlIEZBUSwgcGxlYXNlIHN1YnNjcmliZSB0byB0aGUgbWFpbGluZyBsaXN0IGF0Cmh0dHA6Ly9w
ZXJsZmVjdC5jb20vbWFpbG1hbi9saXN0aW5mby9wZXJsZmVjdC1zZWFyY2gKClRoYW5rcyBmb3Ig
Y2hvb3NpbmcgUGVybGZlY3QgU2VhcmNoIGZvciB5b3VyIHNpdGUuClBlcmxmZWN0IFNvbHV0aW9u
cyAtIGh0dHA6Ly93d3cucGVybGZlY3QuY29tCgoiOwoKIyBDaGVjayBmb3IgREJfRmlsZQppZigg
ISBldmFsKCJyZXF1aXJlIERCX0ZpbGUiKSApIAogIHsKICAgIHByaW50ICIqKiogV0FSTklORzog
VGhlIERCX0ZpbGUgbW9kdWxlIHdhcyBub3QgZm91bmQgb24geW91ciBzeXN0ZW0uXG4iOwogICAg
cHJpbnQgIioqKiBQZXJsZmVjdCBTZWFyY2ggKm1pZ2h0KiBydW4gd2l0aG91dCwgYnV0IGl0IGlz
IHN0cm9uZ2x5XG4iOwogICAgcHJpbnQgIioqKiByZWNvbW1lbmRlZCB0byBpbnN0YWxsIERCX0Zp
bGUuIFBsZWFzZSBjaGVjayB0aGUgRkFRIGF0XG4iOwogICAgcHJpbnQgIioqKiBodHRwOi8vd3d3
LnBlcmxmZWN0LmNvbS9mcmVlc2NyaXB0cy9zZWFyY2gvZmFxLnNodG1sXG5cbiI7CiAgfQoKZXhp
dDsKCgpzdWIgaW5zdGFsbF9kaXIKICB7CiAgICBteSAoJGRpciwgJHBlcm1pc3Npb25zKSA9IEBf
OwogICAgcHJpbnQgIlNldHRpbmcgdXAgJGRpclxuIjsKICAgIGlmKC1lICRkaXIpCiAgICAgIHsK
CWlmKC1kICRkaXIpCgkgIHsKCSAgICBwcmludCAiKipEaXJlY3RvcnkgYWxyZWFkeSBleGlzdHMu
XG4iOwoJICB9CgllbHNlCgkgIHsKCSAgICBwcmludCAiKiokZGlyIGlzIG5vdCBhIGRpcmVjdG9y
eS5cbiI7CgkgICAgcHJpbnQgIioqSSdkIGJldHRlciBub3QgdG91Y2ggaXQgdGhlblxuKipBYm9y
dGluZy5cbiI7CgkgICAgZXhpdCgxKTsKCSAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXVu
bGVzcyhta2RpcigkZGlyLCBvY3QoJHBlcm1pc3Npb25zKSkpCgkgIHsKCSAgICBwcmludCAiKipD
YW5ub3QgY3JlYXRlICRkaXI6ICQhXG4iOwoJICAgIHByaW50ICIqKkFib3J0aW5nLlxuIjsKCSAg
ICBleGl0KDEpOwoJICB9CiAgICAgIH0KICAgIHVubGVzcyhjaG1vZChvY3QoJHBlcm1pc3Npb25z
KSwgJGRpcikpCiAgICAgIHsKCXByaW50ICIqKkNhbm5vdCBzZXQgcGVybWlzc2lvbnMgZm9yICRk
aXI6ICQhXG4iOwoJcHJpbnQgIioqQWJvcnRpbmcuXG4iOwoJZXhpdCgxKTsKICAgICAgfQogIH0K
CgoKc3ViIGluc3RhbGxfZmlsZQogIHsKICAgIG15ICgkc291cmNlLCAkZGVzdGluYXRpb24sICRw
ZXJtaXNzaW9ucywgJGtlZXBvbGQpID0gQF87CiAgICBwcmludCAiSW5zdGFsbGluZyAkc291cmNl
IHRvICRkZXN0aW5hdGlvblxuIjsKICAgIG15ICR1bmluc3RhbGw7CiAgICBpZigtZSAkZGVzdGlu
YXRpb24pCiAgICAgIHsKCXByaW50ICIqKiRkZXN0aW5hdGlvbiBhbHJlYWR5IGV4aXN0cy5cbiI7
CglpZigka2VlcG9sZCkKCSAgewoJICAgIHByaW50ICIqKlByZXNlcnZpbmcgZXhpc3RpbmcgJGRl
c3RpbmF0aW9uXG4iOwoJICAgIHJldHVybjsKCSAgfQoJaWYocmVuYW1lKCIkZGVzdGluYXRpb24i
LCAiJGRlc3RpbmF0aW9uLmJhayIpKQoJICB7CgkgICAgcHJpbnQgIioqSSBrZXB0IGEgYmFja3Vw
IGluICRkZXN0aW5hdGlvbi5iYWtcbiI7CgkgIH0KCWVsc2UKCSAgewoJICAgIHByaW50ICIqKkNh
bm5vdCBiYWNrdXAgdGhlIGZpbGU6ICQhXG4qKkFib3J0aW5nLlxuIjsKCSAgICBleGl0KDEpOwoJ
ICB9CiAgICAgIH0KICAgIGlmKCAhIGNvcHkoJHNvdXJjZSwgJGRlc3RpbmF0aW9uKSApCiAgICAg
IHsKCXByaW50ICIqKkNhbm5vdCBjb3B5ICRzb3VyY2UgdG8gJGRlc3RpbmF0aW9uOiAkIVxuKipB
Ym9ydGluZy4iOwoJZXhpdCgxKTsKICAgICAgfQogICAgdW5sZXNzKGNobW9kKG9jdCgkcGVybWlz
c2lvbnMpLCAkZGVzdGluYXRpb24pKQogICAgICB7CglwcmludCAiKipDYW5ub3Qgc2V0IHBlcm1p
c3Npb25zIGZvciAkZGVzdGluYXRpb246ICQhXG4qKkFib3J0aW5nLlxuIjsKCWV4aXQoMSk7CiAg
ICAgIH0KICB9CgoKc3ViIHNldF9wZXJsX3BhdGgKICB7CiAgICBteSAoJGZpbGUsICRwYXRoKSA9
IEBfOwogICAgcHJpbnQgIlNldHRpbmcgcGVybCBwYXRoIGluICRmaWxlLlxuIjsKICAgIG15ICRz
b3VyY2UgPSAiIyEkcGF0aFxuIjsKICAgIG9wZW4oU1JDLCAiJGZpbGUiKSBvciBkaWUgIkNhbm5v
dCBvcGVuICckZmlsZSc6ICQhXG4iOwogICAgbXkgJGR1bXAgPSA8U1JDPjsKICAgIHdoaWxlKDxT
UkM+KQogICAgICB7Cgkkc291cmNlIC49ICRfOwogICAgICB9CiAgICBjbG9zZSBTUkM7CiAgICBv
cGVuKERTVCwgIj4kZmlsZSIpIG9yIGRpZSAiQ2Fubm90IG9wZW4gJyRmaWxlJzogJCFcbiI7CiAg
ICBwcmludCBEU1QgJHNvdXJjZTsKICAgIGNsb3NlIERTVDsKICB9CgoKc3ViIGlucHV0CiAgewog
ICAgbXkgKCRxdWVzdGlvbiwgJGRlZmF1bHQsICRvcHRpb25zKSA9IEBfOwogICAgcHJpbnQgIiRx
dWVzdGlvblxuOiAiOwogICAgbXkgJGFuc3dlciA9IDw+OwogICAgY2hvbXAgJGFuc3dlcjsKICAg
IHByaW50ICJcbiI7CiAgICAkYW5zd2VyID0gJGRlZmF1bHQgdW5sZXNzICRhbnN3ZXI7CiAgICB1
bmxlc3Moc2NhbGFyKEAkb3B0aW9ucyk9PTAgb3IgbWVtYmVyKCRvcHRpb25zLCAkYW5zd2VyKSkK
ICAgICAgewoJcHJpbnQgIkludmFsaWQgb3B0aW9uLiBQbGVhc2Ugc2VsZWN0IG9uZSBvZjogIjsK
CXByaW50IGpvaW4oIiwiLCBAJG9wdGlvbnMpLiJcbiI7CglyZXR1cm4gaW5wdXQoJHF1ZXN0aW9u
LCAkZGVmYXVsdCwgJG9wdGlvbnMpOwogICAgICB9CiAgICByZXR1cm4gJGFuc3dlcjsKICB9CgoK
c3ViIG1lbWJlcgogIHsKICAgIG15ICgkYXJ5LCAkZWwpID0gQF87CiAgICBmb3JlYWNoIChAJGFy
eSkKICAgICAgewoJcmV0dXJuIDEgaWYoJF8gZXEgJGVsKTsKICAgICAgfQogICAgcmV0dXJuIDA7
CiAgfQoKCnN1YiByZXBsYWNlX29wdGlvbgogIHsKICAgIG15ICRzdHIgPSBzaGlmdDsKICAgIG15
ICRvcHRpb24gPSBzaGlmdDsKICAgIG15ICR2YWx1ZSA9IHNoaWZ0OwogICAgbXkgJG9wdGlvbm5l
dyA9ICRvcHRpb247CiAgICAkb3B0aW9ubmV3ID1+IHMvXFwvLzsKICAgICRzdHIgPX4gcy9eJG9w
dGlvbi4qJC8kb3B0aW9ubmV3ID0gJHZhbHVlOy9nbTsKICAgIHJldHVybiAkc3RyOwogIH0K

--------------Boundary-00=_KDMCDP2SD3P30JR8GN5R--