------art_5047_3549652.1135074815988
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: base64
Content-Disposition: inline

SGVyZSdzIG1pbmUsIGNvbXBsZXRlIHdpdGggbWVzc3kgYWQtaG9jIHNvbHV0aW9ucyBnYWxvcmUu
CgpCdHcsIHNob3VsZCB0aGVzZSBiZSB3cml0dGVuIGZyb20gc2NyYXRjaCBmb3IgdGhlIHF1aXo/
IFRoaXMgaXMgbW9yZQpsaWtlIGEgYm90IHRoYXQgaSB3cm90ZSBzb21lIHdlZWtzIGFnbyB0aGF0
IGJlZ2F0IGFub3RoZXIgYm90IHRoYXQKYmVnYXQgYW5vdGhlciBib3QgdGhhdCBiZWdhdCB0aGlz
LgoKLS0KSWxtYXJpCg------art_5047_3549652.1135074815988
Content-Type: application/x-ruby; name="Kite2.rb"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Kite2.rb"

IyBVc2VzIGxpbmVhciB0YXJnZXR0aW5nIGFuZAojIG1vdmVzIGluIGEgd2F5IHRoYXQgZG9kZ2Vz
IGxpbmVhciB0YXJnZXR0aW5nLgojIE5vdCB2ZXJ5IGdvb2QgZm9yIG1lbGVlLgojCnJlcXVpcmUg
J3JvYm90JwpyZXF1aXJlICdtYXRyaXgnCgpjbGFzcyBOdW1lcmljCiAgZGVmIGRlZzJyYWQKICAg
IHNlbGYgKiAwLjAxNzQ1MzI5MjUxOTk0MzMKICBlbmQKICBkZWYgcmFkMmRlZwogICAgc2VsZiAq
IDU3LjI5NTc3OTUxMzA4MjMKICBlbmQKICBkZWYgc2lnbgogICAgc2VsZiAvIGFicwogIGVuZApl
bmQKY2xhc3MgQXJyYXkKICBkZWYgYXZlcmFnZQogICAgaW5qZWN0e3xzLGl8cytpfSAvIHNpemUu
dG9fZgogIGVuZAogIGRlZiBzZAogICAgYXZnID0gYXZlcmFnZQogICAgTWF0aC5zcXJ0KCBpbmpl
Y3QoMCl7fHMsaXwgcysoaS1hdmcpKioyfSAvIChzaXplLTEuMCkgKQogIGVuZAplbmQKY2xhc3Mg
VmVjdG9yCiAgZGVmIG5vcm1hbGl6ZQogICAgc2VsZiAqICgxLjAvc2VsZi5yKQogIGVuZAplbmQK
CmNsYXNzIEtpdGUyCmluY2x1ZGUgUm9ib3QKCiAgZGVmIGluaXRpYWxpemUgKmFyZ3MsICZibG9j
awogICAgc3VwZXIKICAgIEBydCA9IEByYWRhcl9zY2FuID0gMTUKICAgIEBtaW5fcmFkYXJfc2Nh
biA9IDEuNQogICAgQG1heF9yYWRhcl9zY2FuID0gNjAuMAogICAgQGxvY2sgPSBmYWxzZQogICAg
QGZpcmluZ190aHJlc2hvbGQgPSAyMC4wCiAgICBAd2FudGVkX3R1cm4gPSBAd2FudGVkX2d1bl90
dXJuID0gQHdhbnRlZF9yYWRhcl90dXJuID0gMAogICAgQHJ0dXJuX2RpciA9IDEKICAgIEByYWNj
X2RpciA9IDEKICAgIEB0YXJnZXRfcG9zaXRpb25zID0gW10KICAgIEBzZF9saW1pdCA9IDMwCiAg
ZW5kCgogIGRlZiB0aWNrIGV2ZW50cwogICAgQHByZXZfaGVhbHRoID0gZW5lcmd5IGlmIHRpbWUg
PT0gMAogICAgaWYgZXZlbnRzWydyb2JvdF9zY2FubmVkJ10uZW1wdHk/CiAgICAgIEByYWRhcl9z
Y2FuID0gW0ByYWRhcl9zY2FuICogMS41LCBAbWF4X3JhZGFyX3NjYW5dLm1pbgogICAgZWxzZQog
ICAgICBAcmFkYXJfc2NhbiA9IFtAcmFkYXJfc2NhbiAqIDAuNSwgQG1pbl9yYWRhcl9zY2FuXS5t
YXgKICAgIGVuZAogICAgQHJ0ID0gKHRpbWUvMiAlIDIgPCAxID8gLUByYWRhcl9zY2FuLzIuMCA6
IEByYWRhcl9zY2FuLzIuMCkgaWYgQHJhZGFyX3NjYW4uYWJzIDwgQG1heF9yYWRhcl9zY2FuIC0g
MC4xCiAgICBAd2FudGVkX3JhZGFyX3R1cm4gKz0gQHJ0CiAgICBmaXJpbmdfc29sdXRpb24gZXZl
bnRzCiAgICBAaGl0ID0gdW5sZXNzIGV2ZW50c1snZ290X2hpdCddLmVtcHR5PwogICAgICBAcmFj
Y19kaXIgPSBAcmFjY19kaXIgLyBAcmFjY19kaXIuYWJzCiAgICAgIDIwCiAgICBlbHNlCiAgICAg
IChAaGl0fHwwKSAtIDEKICAgIGVuZAogICAgQGhpdCA9IC0xCiAgICBpZiBAaGl0IDwgMAogICAg
ICBAcmFjY19kaXIgPSAoQG1pbl9kaXN0YW5jZSBhbmQgQG1pbl9kaXN0YW5jZSA8IDQ1MCkgPyBA
cmFjY19kaXIuc2lnbiA6IE1hdGguc2luKHRpbWUqMC4xK3JhbmQqMC4yKQogICAgZW5kCiAgICBh
Y2NlbGVyYXRlKEByYWNjX2RpcikKICAgIGlmIGFwcHJvYWNoaW5nX3dhbGw/CiAgICAgIEB3YW50
ZWRfdHVybiA9IDYwICogQHJ0dXJuX2RpcgogICAgZWxzaWYgQHRhcmdldF9oZWFkaW5nIGFuZCBA
d2FudGVkX3R1cm4gPD0gMQogICAgICBAd2FudGVkX3R1cm4gPSBoZWFkaW5nX2Rpc3RhbmNlKCgo
QG1pbl9kaXN0YW5jZSBhbmQgQG1pbl9kaXN0YW5jZSA8IDQ1MCkgPyAoOTAtQHJ0dXJuX2Rpci5z
aWduKjQ1KSotQHJhY2NfZGlyLnNpZ24gOiAwKStoZWFkaW5nLCA5MCtAdGFyZ2V0X2hlYWRpbmcp
CiAgICBlbHNpZiByYW5kIDwgMC4zCiAgICAgIEB3YW50ZWRfdHVybiArPSByYW5kICogMTAgKiBA
cmFjY19kaXIuc2lnbiAqIEBydHVybl9kaXIKICAgIGVsc2lmIHJhbmQgPCAwLjAxCiAgICAgIEBy
dHVybl9kaXIgKj0gLTEKICAgIGVsc2lmIHJhbmQgPCAwLjAxCiAgICAgIEByYWNjX2RpciAqPSAt
MQogICAgZW5kCiAgICB0dXJuX2h1bGwKICAgIHR1cm5fdHVycmV0CiAgICB0dXJuX3JhZGFyX2Rp
c2gKICAgIEBwcmV2X2hlYWx0aCA9IGVuZXJneQogIGVuZAoKICBkZWYgZmlyaW5nX3NvbHV0aW9u
IGV2ZW50cwogICAgdW5sZXNzIGV2ZW50c1sncm9ib3Rfc2Nhbm5lZCddLmVtcHR5PwogICAgICBs
YXN0ID0gQHRhcmdldF9wb3NpdGlvbnMubGFzdCB8fCBWZWN0b3JbMCwwXQogICAgICBwb3NpdGlv
biA9IGV2ZW50c1sncm9ib3Rfc2Nhbm5lZCddLm1hcHt8ZHwKICAgICAgICB0eCA9IHggKyBNYXRo
LmNvcygocmFkYXJfaGVhZGluZyAtIEByYWRhcl9zY2FuLmFicyAvIDIuMCkuZGVnMnJhZCkgKiBk
WzBdCiAgICAgICAgdHkgPSB5IC0gTWF0aC5zaW4oKHJhZGFyX2hlYWRpbmcgLSBAcmFkYXJfc2Nh
bi5hYnMgLyAyLjApLmRlZzJyYWQpICogZFswXQogICAgICAgIFZlY3Rvclt0eCx0eV0KICAgICAg
fS5taW57fGEsYnwgKGEgLSBsYXN0KS5yIDw9PiAoYiAtIGxhc3QpLnIgfQogICAgICBAdGFyZ2V0
X3Bvc2l0aW9ucy5wdXNoIHBvc2l0aW9uCiAgICAgIEBtaW5fZGlzdGFuY2UgPSBldmVudHNbJ3Jv
Ym90X3NjYW5uZWQnXS5mbGF0dGVuLm1pbgogICAgZW5kCiAgICBAdGFyZ2V0X3Bvc2l0aW9ucy5z
aGlmdCBpZiBAdGFyZ2V0X3Bvc2l0aW9ucy5zaXplID4gMTAKICAgIEBtaW5fZGlzdGFuY2UgPSBu
aWwgaWYgQHRhcmdldF9wb3NpdGlvbnMuZW1wdHk/CiAgICBAdGFyZ2V0X2hlYWRpbmcgPSB0YXJn
ZXRfaGVhZGluZwogICAgZ3RkID0gaGVhZGluZ19kaXN0YW5jZShndW5faGVhZGluZywgQHRhcmdl
dF9oZWFkaW5nKSBpZiBAdGFyZ2V0X2hlYWRpbmcKICAgIEBmaXJlcG93ZXIgPSBbMTAwLjAgLyAo
QHZzZHx8MTUwMCldLm1heCAvIDcuMAogICAgZmlyZSBAZmlyZXBvd2VyICogMC4yCiAgICBmaXJl
IEBmaXJlcG93ZXIgaWYgQG9uX3RhcmdldAogICAgaWYgZ3RkIGFuZCBndGQuYWJzIDwgQGZpcmlu
Z190aHJlc2hvbGQKICAgICAgQHdhbnRlZF9ndW5fdHVybiA9IGd0ZAogICAgICBAb25fdGFyZ2V0
ID0gdHJ1ZQogICAgZWxzZQogICAgICBAd2FudGVkX2d1bl90dXJuID0gZ3RkIHx8IChndW5fcmFk
YXJfZGlzdGFuY2UvMy4wKQogICAgICBAb25fdGFyZ2V0ID0gZmFsc2UKICAgIGVuZAogIGVuZAoK
ICBkZWYgYXZlcmFnZSBhcnIKICAgIGFyci5pbmplY3R7fHMsaXwgcytpfSAqICgxLjAvYXJyLnNp
emUpCiAgZW5kCgogIGRlZiB0YXJnZXRfaGVhZGluZwogICAgcmV0dXJuIG5pbCBpZiBAdGFyZ2V0
X3Bvc2l0aW9ucy5zaXplIDwgMTAKICAgIHJldHVybiByYWRhcl9oZWFkaW5nIGlmIEBtaW5fZGlz
dGFuY2UgYW5kIEBtaW5fZGlzdGFuY2UgPCAyMDAKICAgIGxwcyA9ICgwLi4uNSkubWFwe3xpfCBA
dGFyZ2V0X3Bvc2l0aW9uc1tpKjIsMl0gfS5tYXB7fHB0YXwgYXZlcmFnZShwdGEpIH0KICAgIHA0
ID0gbHBzLmxhc3QKICAgIHZzID0gbHBzWzAuLi0yXS56aXAobHBzWzEuLi0xXSkubWFwe3xhLGJ8
IChiLWEpICogMC41IH0KICAgIEB2c2QgPSBNYXRoLnNxcnQodnMubWFwe3x2fCB2WzBdfS5zZCoq
MiArIHZzLm1hcHt8dnwgdlsxXX0uc2QqKjIpCiAgICByZXR1cm4gbmlsIGlmIEB2c2QgPiBAc2Rf
bGltaXQKICAgIGFjY3MgPSB2c1swLi4tMl0uemlwKHZzWzEuLi0xXSkubWFwe3xhLGJ8IChiLWEp
IH0KICAgIEB2c2QgKz0gTWF0aC5zcXJ0KGFjY3MubWFwe3x2fCB2WzBdfS5zZCoqMiArIHZzLm1h
cHt8dnwgdlsxXX0uc2QqKjIpCiAgICBAdnNkICo9IDAuNQogICAgdiA9IGF2ZXJhZ2UodnMpCiAg
ICByZXR1cm4gaGVhZGluZ19mb3IoYXZlcmFnZShscHMpKSBpZiB2LnIgPCA0LjAKICAgIGFjYyA9
IGF2ZXJhZ2UoYWNjcykKICAgIHA0ID0gcDQgKyAodiowLjUpCiAgICBkaXN0YW5jZSA9IHA0IC0g
VmVjdG9yW3gseV0KICAgIHNob3Rfc3BlZWQgPSAzMC4wCiAgICBhID0gZGlzdGFuY2VbMF0qKjIg
KyBkaXN0YW5jZVsxXSoqMgogICAgYiA9IDIqZGlzdGFuY2VbMF0qdlswXSArIDIqZGlzdGFuY2Vb
MV0qdlsxXQogICAgYyA9IHZbMF0qKjIgKyB2WzFdKioyIC0gc2hvdF9zcGVlZCoqMgogICAgZCA9
IGIqKjItNCphKmMKICAgIHJldHVybiBoZWFkaW5nX2ZvcihhdmVyYWdlKGxwcykpIGlmIGQgPCAw
CiAgICB0ID0gMiphIC8gKC1iICsgTWF0aC5zcXJ0KGQpKQogICAgciA9IHYucgogICAgaWYgYWNj
LnIgPiAwLjUKICAgICAgaWYgKHYgKyBhY2MqdCkuciA+IDguMAogICAgICAgIGlmICh2K2FjYyku
ciA+IHYucgogICAgICAgICAgdiA9ICh2ICsgYWNjKjAuNSp0KS5ub3JtYWxpemUgKiA2LjAKICAg
ICAgICBlbHNlCiAgICAgICAgICB2ID0gdi5ub3JtYWxpemUKICAgICAgICBlbmQKICAgICAgZWxz
ZQogICAgICAgIHYgPSB2ICsgYWNjKjAuNSp0CiAgICAgIGVuZAogICAgZW5kCiAgICBlcCA9IHA0
ICsgdip0CiAgICBlc3RpbWF0ZWRfcG9zaXRpb24gPSBWZWN0b3JbCiAgICAgIFtzaXplLCBbYmF0
dGxlZmllbGRfd2lkdGgtc2l6ZSwgZXBbMF1dLm1pbl0ubWF4LAogICAgICBbc2l6ZSwgW2JhdHRs
ZWZpZWxkX2hlaWdodC1zaXplLCBlcFsxXV0ubWluXS5tYXhdCiAgICBoZWFkaW5nX2Zvcihlc3Rp
bWF0ZWRfcG9zaXRpb24pICsgKHJhbmQtMC41KSpAdnNkKjAuMgogIGVuZAoKICBkZWYgaGVhZGlu
Z19mb3IocG9zaXRpb24pCiAgICBkaXN0YW5jZSA9IHBvc2l0aW9uIC0gVmVjdG9yW3gseV0KICAg
IGhlYWRpbmcgPSAoTWF0aC5hdGFuMigtZGlzdGFuY2VbMV0sIGRpc3RhbmNlWzBdKSkucmFkMmRl
ZwogICAgaGVhZGluZyArPSAzNjAgaWYgaGVhZGluZyA8IDAKICAgIGhlYWRpbmcKICBlbmQKCiAg
ZGVmIGhlYWRpbmdfZGlzdGFuY2UgaDEsIGgyCiAgICBsaW1pdCBoMiAtIGgxLCAxODAKICBlbmQK
CiAgZGVmIGxpbWl0IHZhbHVlLCBtCiAgICB2YWx1ZSAtPSAzNjAgaWYgdmFsdWUgPiAxODAKICAg
IHZhbHVlICs9IDM2MCBpZiB2YWx1ZSA8IC0xODAKICAgIHZhbHVlID0gLW0gaWYgdmFsdWUgPCAt
bQogICAgdmFsdWUgPSBtIGlmIHZhbHVlID4gbQogICAgcmV0dXJuIHZhbHVlCiAgZW5kCgogIGRl
ZiBndW5fcmFkYXJfZGlzdGFuY2UKICAgIGhlYWRpbmdfZGlzdGFuY2UgZ3VuX2hlYWRpbmcsIHJh
ZGFyX2hlYWRpbmcKICBlbmQKCiAgZGVmIHR1cm5faHVsbAogICAgdHVybl9hbXQgPSBbLTEwLjAs
IFtAd2FudGVkX3R1cm4sIDEwLjBdLm1pbl0ubWF4CiAgICB0dXJuIHR1cm5fYW10CiAgICBAd2Fu
dGVkX3R1cm4gLT0gdHVybl9hbXQKICAgIEB3YW50ZWRfZ3VuX3R1cm4gLT0gdHVybl9hbXQKICAg
IEB3YW50ZWRfcmFkYXJfdHVybiAtPSB0dXJuX2FtdAogIGVuZAoKICBkZWYgdHVybl90dXJyZXQK
ICAgIHR1cm5fYW10ID0gWy0zMC4wLCBbQHdhbnRlZF9ndW5fdHVybiwgMzAuMF0ubWluXS5tYXgK
ICAgIHR1cm5fZ3VuIHR1cm5fYW10CiAgICBAd2FudGVkX2d1bl90dXJuIC09IHR1cm5fYW10CiAg
ICBAd2FudGVkX3JhZGFyX3R1cm4gLT0gdHVybl9hbXQKICBlbmQKCiAgZGVmIHR1cm5fcmFkYXJf
ZGlzaAogICAgdHVybl9hbXQgPSBbLTYwLjAsIFtAd2FudGVkX3JhZGFyX3R1cm4sIDYwLjBdLm1p
bl0ubWF4CiAgICB0dXJuX3JhZGFyIHR1cm5fYW10CiAgICBAd2FudGVkX3JhZGFyX3R1cm4gLT0g
dHVybl9hbXQKICBlbmQKCiAgZGVmIGFwcHJvYWNoaW5nX3dhbGw/CiAgICBpZiBub3QgKCAodmVs
b2NpdHkgPiAwKSBeIGhlYWRpbmcuYmV0d2Vlbj8oMC4wLCAxODAuMCkgKQogICAgICB5IDwgMTAw
CiAgICBlbHNlCiAgICAgIHkgPiBiYXR0bGVmaWVsZF9oZWlnaHQgLSAxMDAKICAgIGVuZCBvciBp
ZiBub3QgKCAodmVsb2NpdHkgPiAwKSBeIGhlYWRpbmcuYmV0d2Vlbj8oOTAuMCwgMjcwLjApICkK
ICAgICAgeCA8IDEwMAogICAgZWxzZQogICAgICB4ID4gYmF0dGxlZmllbGRfd2lkdGggLSAxMDAK
ICAgIGVuZAogIGVuZAoKZW5kCg------art_5047_3549652.1135074815988--