Lyogdmk6c2V0IHRzPTggc3RzPTQgc3c9NDoKICoKICogVklNIC0gVmkgSU1wcm92ZWQJYnkgQnJhbSBNb29sZW5hYXIKICoKICogRG8gIjpoZWxwIHVnYW5kYSIgIGluIFZpbSB0byByZWFkIGNvcHlpbmcgYW5kIHVzYWdlIGNvbmRpdGlvbnMuCiAqIERvICI6aGVscCBjcmVkaXRzIiBpbiBWaW0gdG8gc2VlIGEgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkLgogKiBTZWUgUkVBRE1FLnR4dCBmb3IgYW4gb3ZlcnZpZXcgb2YgdGhlIFZpbSBzb3VyY2UgY29kZS4KICovCgovKgogKiBkaWdyYXBoLmM6IGNvZGUgZm9yIGRpZ3JhcGhzCiAqLwoKI2luY2x1ZGUgInZpbS5oIgoKI2lmIGRlZmluZWQoRkVBVF9ESUdSQVBIUykgfHwgZGVmaW5lZChQUk9UTykKCiNpZmRlZiBGRUFUX01CWVRFCnR5cGVkZWYgaW50IHJlc3VsdF9UOwojZWxzZQp0eXBlZGVmIGNoYXJfdSByZXN1bHRfVDsKI2VuZGlmCgp0eXBlZGVmIHN0cnVjdCBkaWdyYXBoCnsKICAgIGNoYXJfdQljaGFyMTsKICAgIGNoYXJfdQljaGFyMjsKICAgIHJlc3VsdF9UCXJlc3VsdDsKfSBkaWdyX1Q7CgpzdGF0aWMgaW50IGdldGV4YWN0ZGlncmFwaCBfX0FSR1MoKGludCwgaW50LCBpbnQpKTsKc3RhdGljIHZvaWQgcHJpbnRkaWdyYXBoIF9fQVJHUygoZGlncl9UICopKTsKCi8qIGRpZ3JhcGhzIGFkZGVkIGJ5IHRoZSB1c2VyICovCnN0YXRpYyBnYXJyYXlfVAl1c2VyX2RpZ3JhcGhzID0gezAsIDAsIChpbnQpc2l6ZW9mKGRpZ3JfVCksIDEwLCBOVUxMfTsKCi8qCiAqIE5vdGU6IENoYXJhY3RlcnMgbWFya2VkIHdpdGggWFggYXJlIG5vdCBpbmNsdWRlZCBsaXRlcmFsbHksIGJlY2F1c2Ugc29tZQogKiBjb21waWxlcnMgY2Fubm90IGhhbmRsZSB0aGVtIChBbWlnYSBTQVMvQyBpcyB0aGUgbW9zdCBwaWNreSBvbmUpLgogKi8Kc3RhdGljIGRpZ3JfVCBkaWdyYXBoZGVmYXVsdFtdID0KI2lmIGRlZmluZWQoTVNET1MpIHx8IGRlZmluZWQoT1MyKQoJLyoKCSAqIE1TRE9TIGRpZ3JhcGhzLgoJICovCiAgICAgICB7eydDJywgJywnLCAxMjh9LAkvKiB+QCBYWCAqLwoJeyd1JywgJyInLCAxMjl9LAkvKiCBICovCgl7J2UnLCAnXCcnLCAxMzB9LAkvKiCCICovCgl7J2EnLCAnXicsIDEzMX0sCS8qIIMgKi8KCXsnYScsICciJywgMTMyfSwJLyoghCAqLwoJeydhJywgJ2AnLCAxMzN9LAkvKiCFICovCgl7J2EnLCAnQCcsIDEzNH0sCS8qIIYgKi8KCXsnYycsICcsJywgMTM1fSwJLyogfkcgWFggKi8KCXsnZScsICdeJywgMTM2fSwJLyogfkggWFggKi8KCXsnZScsICciJywgMTM3fSwJLyogiSAqLwoJeydlJywgJ2AnLCAxMzh9LAkvKiCKICovCgl7J2knLCAnIicsIDEzOX0sCS8qIIsgKi8KCXsnaScsICdeJywgMTQwfSwJLyogjCAqLwoJeydpJywgJ2AnLCAxNDF9LAkvKiCNICovCgl7J0EnLCAnIicsIDE0Mn0sCS8qIH5OIFhYICovCgl7J0EnLCAnQCcsIDE0M30sCS8qII8gKi8KCXsnRScsICdcJycsIDE0NH0sCS8qIJAgKi8KCXsnYScsICdlJywgMTQ1fSwJLyogkSAqLwoJeydBJywgJ0UnLCAxNDZ9LAkvKiCSICovCgl7J28nLCAnXicsIDE0N30sCS8qIJMgKi8KCXsnbycsICciJywgMTQ4fSwJLyoglCAqLwoJeydvJywgJ2AnLCAxNDl9LAkvKiCVICovCgl7J3UnLCAnXicsIDE1MH0sCS8qIJYgKi8KCXsndScsICdgJywgMTUxfSwJLyoglyAqLwoJeyd5JywgJyInLCAxNTJ9LAkvKiCYICovCgl7J08nLCAnIicsIDE1M30sCS8qIJkgKi8KCXsnVScsICciJywgMTU0fSwJLyogmiAqLwoJeydjJywgJ3wnLCAxNTV9LAkvKiCbICovCgl7JyQnLCAnJCcsIDE1Nn0sCS8qIJwgKi8KCXsnWScsICctJywgMTU3fSwJLyogfl0gWFggKi8KCXsnUCcsICd0JywgMTU4fSwJLyogniAqLwoJeydmJywgJ2YnLCAxNTl9LAkvKiCfICovCgl7J2EnLCAnXCcnLCAxNjB9LAkvKiCgICovCgl7J2knLCAnXCcnLCAxNjF9LAkvKiChICovCgl7J28nLCAnXCcnLCAxNjJ9LAkvKiCiICovCgl7J3UnLCAnXCcnLCAxNjN9LAkvKiB4IFhYICovCgl7J24nLCAnficsIDE2NH0sCS8qIKQgKi8KCXsnTicsICd+JywgMTY1fSwJLyogpSAqLwoJeydhJywgJ2EnLCAxNjZ9LAkvKiCmICovCgl7J28nLCAnbycsIDE2N30sCS8qIKcgKi8KCXsnficsICc/JywgMTY4fSwJLyogqCAqLwoJeyctJywgJ2EnLCAxNjl9LAkvKiCpICovCgl7J2EnLCAnLScsIDE3MH0sCS8qIKogKi8KCXsnMScsICcyJywgMTcxfSwJLyogqyAqLwoJeycxJywgJzQnLCAxNzJ9LAkvKiCsICovCgl7J34nLCAnIScsIDE3M30sCS8qIK0gKi8KCXsnPCcsICc8JywgMTc0fSwJLyogriAqLwoJeyc+JywgJz4nLCAxNzV9LAkvKiCvICovCgoJeydzJywgJ3MnLCAyMjV9LAkvKiDhICovCgl7J2onLCAndScsIDIzMH0sCS8qIOYgKi8KCXsnbycsICcvJywgMjM3fSwJLyog7SAqLwoJeycrJywgJy0nLCAyNDF9LAkvKiDxICovCgl7Jz4nLCAnPScsIDI0Mn0sCS8qIPIgKi8KCXsnPCcsICc9JywgMjQzfSwJLyog8yAqLwoJeyc6JywgJy0nLCAyNDZ9LAkvKiD2ICovCgl7J34nLCAnficsIDI0N30sCS8qIPcgKi8KCXsnficsICdvJywgMjQ4fSwJLyog+CAqLwoJeycyJywgJzInLCAyNTN9LAkvKiD9ICovCgl7TlVMLCBOVUwsIE5VTH0KCX07CgojZWxzZQkvKiAhTVNET1MgJiYgIU9TMiAqLwojIGlmZGVmIF9fTUlOVF9fCgoJLyoKCSAqIEFUQVJJIGRpZ3JhcGhzCgkgKi8KICAgICAgIHt7J0MnLCAnLCcsIDEyOH0sCS8qIH5AIFhYICovCgl7J3UnLCAnIicsIDEyOX0sCS8qIIEgKi8KCXsnZScsICdcJycsIDEzMH0sCS8qIIIgKi8KCXsnYScsICdeJywgMTMxfSwJLyoggyAqLwoJeydhJywgJyInLCAxMzJ9LAkvKiCEICovCgl7J2EnLCAnYCcsIDEzM30sCS8qIIUgKi8KCXsnYScsICdAJywgMTM0fSwJLyoghiAqLwoJeydjJywgJywnLCAxMzV9LAkvKiB+RyBYWCAqLwoJeydlJywgJ14nLCAxMzZ9LAkvKiB+SCBYWCAqLwoJeydlJywgJyInLCAxMzd9LAkvKiCJICovCgl7J2UnLCAnYCcsIDEzOH0sCS8qIIogKi8KCXsnaScsICciJywgMTM5fSwJLyogiyAqLwoJeydpJywgJ14nLCAxNDB9LAkvKiCMICovCgl7J2knLCAnYCcsIDE0MX0sCS8qII0gKi8KCXsnQScsICciJywgMTQyfSwJLyogjiAqLwoJeydBJywgJ0AnLCAxNDN9LAkvKiCPICovCgl7J0UnLCAnXCcnLCAxNDR9LAkvKiCQICovCgl7J2EnLCAnZScsIDE0NX0sCS8qIJEgKi8KCXsnQScsICdFJywgMTQ2fSwJLyogkiAqLwoJeydvJywgJ14nLCAxNDd9LAkvKiCTICovCgl7J28nLCAnIicsIDE0OH0sCS8qIJQgKi8KCXsnbycsICdgJywgMTQ5fSwJLyoglSAqLwoJeyd1JywgJ14nLCAxNTB9LAkvKiCWICovCgl7J3UnLCAnYCcsIDE1MX0sCS8qIJcgKi8KCXsneScsICciJywgMTUyfSwJLyogmCAqLwoJeydPJywgJyInLCAxNTN9LAkvKiCZICovCgl7J1UnLCAnIicsIDE1NH0sCS8qIJogKi8KCXsnYycsICd8JywgMTU1fSwJLyogmyAqLwoJeyckJywgJyQnLCAxNTZ9LAkvKiCcICovCgl7J1knLCAnLScsIDE1N30sCS8qIH5dIFhYICovCgl7J3MnLCAncycsIDE1OH0sCS8qIJ4gKi8KCXsnZicsICdmJywgMTU5fSwJLyognyAqLwoJeydhJywgJ1wnJywgMTYwfSwJLyogoCAqLwoJeydpJywgJ1wnJywgMTYxfSwJLyogoSAqLwoJeydvJywgJ1wnJywgMTYyfSwJLyogoiAqLwoJeyd1JywgJ1wnJywgMTYzfSwJLyogoyAqLwoJeyduJywgJ34nLCAxNjR9LAkvKiCkICovCgl7J04nLCAnficsIDE2NX0sCS8qIKUgKi8KCXsnYScsICdhJywgMTY2fSwJLyogpiAqLwoJeydvJywgJ28nLCAxNjd9LAkvKiCnICovCgl7J34nLCAnPycsIDE2OH0sCS8qIKggKi8KCXsnLScsICdhJywgMTY5fSwJLyogqSAqLwoJeydhJywgJy0nLCAxNzB9LAkvKiCqICovCgl7JzEnLCAnMicsIDE3MX0sCS8qIKsgKi8KCXsnMScsICc0JywgMTcyfSwJLyogrCAqLwoJeyd+JywgJyEnLCAxNzN9LAkvKiCtICovCgl7JzwnLCAnPCcsIDE3NH0sCS8qIK4gKi8KCXsnPicsICc+JywgMTc1fSwJLyogryAqLwoJeydqJywgJ3UnLCAyMzB9LAkvKiDmICovCgl7J28nLCAnLycsIDIzN30sCS8qIO0gKi8KCXsnKycsICctJywgMjQxfSwJLyog8SAqLwoJeyc+JywgJz0nLCAyNDJ9LAkvKiDyICovCgl7JzwnLCAnPScsIDI0M30sCS8qIPMgKi8KCXsnOicsICctJywgMjQ2fSwJLyog9iAqLwoJeyd+JywgJ34nLCAyNDd9LAkvKiD3ICovCgl7J34nLCAnbycsIDI0OH0sCS8qIPggKi8KCXsnMicsICcyJywgMjUzfSwJLyog/SAqLwoJe05VTCwgTlVMLCBOVUx9Cgl9OwoKIyBlbHNlCS8qICFfX01JTlRfXyAqLwojICBpZmRlZiBIUFVYX0RJR1JBUEhTCgoJLyoKCSAqIGRpZmZlcmVudCBIUFVYIGRpZ3JhcGhzCgkgKi8KICAgICAgIHt7J0EnLCAnYCcsIDE2MX0sCS8qIKEgKi8KCXsnQScsICdeJywgMTYyfSwJLyogoiAqLwoJeydFJywgJ2AnLCAxNjN9LAkvKiCjICovCgl7J0UnLCAnXicsIDE2NH0sCS8qIKQgKi8KCXsnRScsICciJywgMTY1fSwJLyogpSAqLwoJeydJJywgJ14nLCAxNjZ9LAkvKiCmICovCgl7J0knLCAnIicsIDE2N30sCS8qIKcgKi8KCXsnXCcnLCAnXCcnLCAxNjh9LAkvKiCoICovCgl7J2AnLCAnYCcsIDE2OX0sCS8qIKkgKi8KCXsnXicsICdeJywgMTcwfSwJLyogqiAqLwoJeyciJywgJyInLCAxNzF9LAkvKiCrICovCgl7J34nLCAnficsIDE3Mn0sCS8qIKwgKi8KCXsnVScsICdgJywgMTczfSwJLyogrSAqLwoJeydVJywgJ14nLCAxNzR9LAkvKiCuICovCgl7J0wnLCAnPScsIDE3NX0sCS8qIK8gKi8KCXsnficsICdfJywgMTc2fSwJLyogsCAqLwoJeydZJywgJ1wnJywgMTc3fSwJLyogsSAqLwoJeyd5JywgJ1wnJywgMTc4fSwJLyogsiAqLwoJeyd+JywgJ28nLCAxNzl9LAkvKiCzICovCgl7J0MnLCAnLCcsIDE4MH0sCS8qILQgKi8KCXsnYycsICcsJywgMTgxfSwJLyogtSAqLwoJeydOJywgJ34nLCAxODJ9LAkvKiC2ICovCgl7J24nLCAnficsIDE4M30sCS8qILcgKi8KCXsnficsICchJywgMTg0fSwJLyoguCAqLwoJeyd+JywgJz8nLCAxODV9LAkvKiC5ICovCgl7J28nLCAneCcsIDE4Nn0sCS8qILogKi8KCXsnTCcsICctJywgMTg3fSwJLyoguyAqLwoJeydZJywgJz0nLCAxODh9LAkvKiC8ICovCgl7J3AnLCAncCcsIDE4OX0sCS8qIL0gKi8KCXsnZicsICdsJywgMTkwfSwJLyogviAqLwoJeydjJywgJ3wnLCAxOTF9LAkvKiC/ICovCgl7J2EnLCAnXicsIDE5Mn0sCS8qIMAgKi8KCXsnZScsICdeJywgMTkzfSwJLyogwSAqLwoJeydvJywgJ14nLCAxOTR9LAkvKiDCICovCgl7J3UnLCAnXicsIDE5NX0sCS8qIMMgKi8KCXsnYScsICdcJycsIDE5Nn0sCS8qIMQgKi8KCXsnZScsICdcJycsIDE5N30sCS8qIMUgKi8KCXsnbycsICdcJycsIDE5OH0sCS8qIMYgKi8KCXsndScsICdcJycsIDE5OX0sCS8qIMcgKi8KCXsnYScsICdgJywgMjAwfSwJLyogyCAqLwoJeydlJywgJ2AnLCAyMDF9LAkvKiDJICovCgl7J28nLCAnYCcsIDIwMn0sCS8qIMogKi8KCXsndScsICdgJywgMjAzfSwJLyogyyAqLwoJeydhJywgJyInLCAyMDR9LAkvKiDMICovCgl7J2UnLCAnIicsIDIwNX0sCS8qIM0gKi8KCXsnbycsICciJywgMjA2fSwJLyogziAqLwoJeyd1JywgJyInLCAyMDd9LAkvKiDPICovCgl7J0EnLCAnbycsIDIwOH0sCS8qINAgKi8KCXsnaScsICdeJywgMjA5fSwJLyog0SAqLwoJeydPJywgJy8nLCAyMTB9LAkvKiDSICovCgl7J0EnLCAnRScsIDIxMX0sCS8qINMgKi8KCXsnYScsICdvJywgMjEyfSwJLyog1CAqLwoJeydpJywgJ1wnJywgMjEzfSwJLyog1SAqLwoJeydvJywgJy8nLCAyMTR9LAkvKiDWICovCgl7J2EnLCAnZScsIDIxNX0sCS8qINcgKi8KCXsnQScsICciJywgMjE2fSwJLyog2CAqLwoJeydpJywgJ2AnLCAyMTd9LAkvKiDZICovCgl7J08nLCAnIicsIDIxOH0sCS8qINogKi8KCXsnVScsICciJywgMjE5fSwJLyog2yAqLwoJeydFJywgJ1wnJywgMjIwfSwJLyog3CAqLwoJeydpJywgJyInLCAyMjF9LAkvKiDdICovCgl7J3MnLCAncycsIDIyMn0sCS8qIN4gKi8KCXsnTycsICdeJywgMjIzfSwJLyog3yAqLwoJeydBJywgJ1wnJywgMjI0fSwJLyog4CAqLwoJeydBJywgJ34nLCAyMjV9LAkvKiDhICovCgl7J2EnLCAnficsIDIyNn0sCS8qIOIgKi8KCXsnRCcsICctJywgMjI3fSwJLyog4yAqLwoJeydkJywgJy0nLCAyMjh9LAkvKiDkICovCgl7J0knLCAnXCcnLCAyMjl9LAkvKiDlICovCgl7J0knLCAnYCcsIDIzMH0sCS8qIOYgKi8KCXsnTycsICdcJycsIDIzMX0sCS8qIOcgKi8KCXsnTycsICdgJywgMjMyfSwJLyog6CAqLwoJeydPJywgJ34nLCAyMzN9LAkvKiDpICovCgl7J28nLCAnficsIDIzNH0sCS8qIOogKi8KCXsnUycsICd+JywgMjM1fSwJLyog6yAqLwoJeydzJywgJ34nLCAyMzZ9LAkvKiDsICovCgl7J1UnLCAnXCcnLCAyMzd9LAkvKiDtICovCgl7J1knLCAnIicsIDIzOH0sCS8qIO4gKi8KCXsneScsICciJywgMjM5fSwJLyog7yAqLwoJeydwJywgJy0nLCAyNDB9LAkvKiDwICovCgl7J3AnLCAnficsIDI0MX0sCS8qIPEgKi8KCXsnficsICcuJywgMjQyfSwJLyog8iAqLwoJeydqJywgJ3UnLCAyNDN9LAkvKiDzICovCgl7J1AnLCAncCcsIDI0NH0sCS8qIPQgKi8KCXsnMycsICc0JywgMjQ1fSwJLyog9SAqLwoJeyctJywgJy0nLCAyNDZ9LAkvKiD2ICovCgl7JzEnLCAnNCcsIDI0N30sCS8qIPcgKi8KCXsnMScsICcyJywgMjQ4fSwJLyog+CAqLwoJeydhJywgJ18nLCAyNDl9LAkvKiD5ICovCgl7J28nLCAnXycsIDI1MH0sCS8qIPogKi8KCXsnPCcsICc8JywgMjUxfSwJLyog+yAqLwoJeyd4JywgJ3gnLCAyNTJ9LAkvKiD8ICovCgl7Jz4nLCAnPicsIDI1M30sCS8qIP0gKi8KCXsnKycsICctJywgMjU0fSwJLyog/iAqLwoJeyduJywgJ3UnLCAyNTV9LAkvKiB4IFhYICovCgl7TlVMLCBOVUwsIE5VTH0KCX07CgojICBlbHNlCS8qICFIUFVYX0RJR1JBUEhTICovCgojICAgaWZkZWYgRUJDRElDCgoJLyoKCSAqIEVCQ0RJQyAtIElTTyBkaWdyYXBocwoJICogVE9ETzogRUJDRElDIFRhYmxlIGlzIENvZGUtUGFnZSAxMDQ3CgkgKi8KICAgICAgIHt7J2EnLCAnXicsICAgIDY2fSwJLyog4iAqLwoJeydhJywgJyInLCAgICA2N30sCS8qIOQgKi8KCXsnYScsICdgJywgICAgNjh9LAkvKiDgICovCgl7J2EnLCAnXCcnLCAgIDY5fSwJLyog4SAqLwoJeydhJywgJ34nLCAgICA3MH0sCS8qIOMgKi8KCXsnYScsICdAJywgICAgNzF9LAkvKiDlICovCgl7J2EnLCAnYScsICAgIDcxfSwJLyog5SAqLwoJeydjJywgJywnLCAgICA3Mn0sCS8qIOcgKi8KCXsnbicsICd+JywgICAgNzN9LAkvKiDxICovCgl7J2MnLCAnfCcsICAgIDc0fSwJLyogoiAqLwoJeydlJywgJ1wnJywgICA4MX0sCS8qIOkgKi8KCXsnZScsICdeJywgICAgODJ9LAkvKiDqICovCgl7J2UnLCAnIicsICAgIDgzfSwJLyog6yAqLwoJeydlJywgJ2AnLCAgICA4NH0sCS8qIOggKi8KCXsnaScsICdcJycsICAgODV9LAkvKiDtICovCgl7J2knLCAnXicsICAgIDg2fSwJLyog7iAqLwoJeydpJywgJyInLCAgICA4N30sCS8qIO8gKi8KCXsnaScsICdgJywgICAgODh9LAkvKiDsICovCgl7J3MnLCAncycsICAgIDg5fSwJLyog3yAqLwoJeydBJywgJ14nLCAgICA5OH0sCS8qIMIgKi8KCXsnQScsICciJywgICAgOTl9LAkvKiDEICovCgl7J0EnLCAnYCcsICAgMTAwfSwJLyogwCAqLwoJeydBJywgJ1wnJywgIDEwMX0sCS8qIMEgKi8KCXsnQScsICd+JywgICAxMDJ9LAkvKiDDICovCgl7J0EnLCAnQCcsICAgMTAzfSwJLyogxSAqLwoJeydBJywgJ0EnLCAgIDEwM30sCS8qIMUgKi8KCXsnQycsICcsJywgICAxMDR9LAkvKiDHICovCgl7J04nLCAnficsICAgMTA1fSwJLyog0SAqLwoJeyd8JywgJ3wnLCAgIDEwNn0sCS8qIKYgKi8KCXsnbycsICcvJywgICAxMTJ9LAkvKiD4ICovCgl7J0UnLCAnXCcnLCAgMTEzfSwJLyogySAqLwoJeydFJywgJ14nLCAgIDExNH0sCS8qIMogKi8KCXsnRScsICciJywgICAxMTV9LAkvKiDLICovCgl7J0UnLCAnYCcsICAgMTE2fSwJLyogyCAqLwoJeydJJywgJ1wnJywgIDExN30sCS8qIM0gKi8KCXsnSScsICdeJywgICAxMTh9LAkvKiDOICovCgl7J0knLCAnIicsICAgMTE5fSwJLyogzyAqLwoJeydJJywgJ2AnLCAgIDEyMH0sCS8qIMwgKi8KCXsnTycsICcvJywgICAxMjh9LAkvKiAwLyBYWCAqLwoJeyc8JywgJzwnLCAgIDEzOH0sCS8qIKsgKi8KCXsnPicsICc+JywgICAxMzl9LAkvKiC7ICovCgl7J2QnLCAnLScsICAgMTQwfSwJLyog8CAqLwoJeyd5JywgJ1wnJywgIDE0MX0sCS8qIP0gKi8KCXsnaScsICdwJywgICAxNDJ9LAkvKiD+ICovCgl7JysnLCAnLScsICAgMTQzfSwJLyogsSAqLwoJeyd+JywgJ28nLCAgIDE0NH0sCS8qILAgKi8KCXsnYScsICctJywgICAxNTR9LAkvKiCqICovCgl7J28nLCAnLScsICAgMTU1fSwJLyoguiAqLwoJeydhJywgJ2UnLCAgIDE1Nn0sCS8qIOYgKi8KCXsnLCcsICcsJywgICAxNTd9LAkvKiAsIFhYICovCgl7J0EnLCAnRScsICAgMTU4fSwJLyogxiAqLwoJeydvJywgJ3gnLCAgIDE1OX0sCS8qIKQgLSBjdXJyZW5jeSBzeW1ib2wgaW4gSVNPIDg4NTktMSAqLwoJeydlJywgJz0nLCAgIDE1OX0sCS8qIKQgLSBldXJvIHN5bWJvbCBpbiBJU08gODg1OS0xNSAqLwoJeydFJywgJ3UnLCAgIDE1OX0sCS8qIKQgLSBldXJvIHN5bWJvbCBpbiBJU08gODg1OS0xNSAqLwoJeydqJywgJ3UnLCAgIDE2MH0sCS8qILUgKi8KCXsneScsICciJywgICAxNjd9LAkvKiB4IFhYICovCgl7J34nLCAnIScsICAgMTcwfSwJLyogoSAqLwoJeyd+JywgJz8nLCAgIDE3MX0sCS8qIL8gKi8KCXsnRCcsICctJywgICAxNzJ9LAkvKiDQICovCgl7J0knLCAncCcsICAgMTc0fSwJLyog3iAqLwoJeydyJywgJ08nLCAgIDE3NX0sCS8qIK4gKi8KCXsnLScsICcsJywgICAxNzZ9LAkvKiCsICovCgl7JyQnLCAnJCcsICAgMTc3fSwJLyogoyAqLwoJeydZJywgJy0nLCAgIDE3OH0sCS8qIKUgKi8KCXsnficsICcuJywgICAxNzl9LAkvKiC3ICovCgl7J2MnLCAnTycsICAgMTgwfSwJLyogqSAqLwoJeydwJywgJ2EnLCAgIDE4MX0sCS8qIKcgKi8KCXsncCcsICdwJywgICAxODJ9LAkvKiC2ICovCgl7JzEnLCAnNCcsICAgMTgzfSwJLyogvCAqLwoJeycxJywgJzInLCAgIDE4NH0sCS8qIL0gKi8KCXsnMycsICc0JywgICAxODV9LAkvKiC+ICovCgl7J1knLCAnXCcnLCAgMTg2fSwJLyog3SAqLwoJeyciJywgJyInLCAgIDE4N30sCS8qIKggKi8KCXsnLScsICc9JywgICAxODh9LAkvKiCvICovCgl7J1wnJywgJ1wnJywgMTkwfSwJLyogtCAqLwoJeydPJywgJ0UnLCAgIDE5MX0sCS8qINcgLSBPRSBpbiBJU08gODg1OS0xNSAqLwoJeycvJywgJ1xcJywgIDE5MX0sCS8qINcgLSBtdWx0aXBsaWNhdGlvbiBzeW1ib2wgaW4gSVNPIDg4NTktMSAqLwoJeyctJywgJy0nLCAgIDIwMn0sCS8qIK0gKi8KCXsnbycsICdeJywgICAyMDN9LAkvKiD0ICovCgl7J28nLCAnIicsICAgMjA0fSwJLyog9iAqLwoJeydvJywgJ2AnLCAgIDIwNX0sCS8qIPIgKi8KCXsnbycsICdcJycsICAyMDZ9LAkvKiDzICovCgl7J28nLCAnficsICAgMjA3fSwJLyog9SAqLwoJeycxJywgJzEnLCAgIDIxOH0sCS8qILkgKi8KCXsndScsICdeJywgICAyMTl9LAkvKiD7ICovCgl7J3UnLCAnIicsICAgMjIwfSwJLyog/CAqLwoJeyd1JywgJ2AnLCAgIDIyMX0sCS8qIPkgKi8KCXsndScsICdcJycsICAyMjJ9LAkvKiD6ICovCgl7JzonLCAnLScsICAgMjI1fSwJLyog9yAtIGRpdmlzaW9uIHN5bWJvbCBpbiBJU08gODg1OS0xICovCgl7J28nLCAnZScsICAgMjI1fSwJLyog9yAtIG9lIGluIElTTyA4ODU5LTE1ICovCgl7JzInLCAnMicsICAgMjM0fSwJLyogsiAqLwoJeydPJywgJ14nLCAgIDIzNX0sCS8qINQgKi8KCXsnTycsICciJywgICAyMzZ9LAkvKiDWICovCgl7J08nLCAnYCcsICAgMjM3fSwJLyog0iAqLwoJeydPJywgJ1wnJywgIDIzOH0sCS8qINMgKi8KCXsnTycsICd+JywgICAyMzl9LAkvKiDVICovCgl7JzMnLCAnMycsICAgMjUwfSwJLyogsyAqLwoJeydVJywgJ14nLCAgIDI1MX0sCS8qINsgKi8KCXsnVScsICciJywgICAyNTJ9LAkvKiDcICovCgl7J1UnLCAnYCcsICAgMjUzfSwJLyog2SAqLwoJeydVJywgJ1wnJywgIDI1NH0sCS8qINogKi8KCXtOVUwsIE5VTCwgTlVMfQoJfTsKCiMgICBlbHNlCiMgICAgaWYgZGVmaW5lZChNQUNPUykgJiYgIWRlZmluZWQoRkVBVF9NQllURSkKCgkvKgoJICogTWFjaW50b3NoIGRpZ3JhcGhzCgkgKi8KICAgICAgIHt7J2EnLCAndCcsIDY0fSwJCS8qIEAgKi8KCXsnQScsICciJywgMTI4fSwJLyogfkAgWFggKi8KCXsnQScsICdvJywgMTI5fSwJLyogxSAqLwoJeydDJywgJywnLCAxMzB9LAkvKiDHICovCgl7J0UnLCAnXCcnLCAxMzF9LAkvKiDJICovCgl7J04nLCAnficsIDEzMn0sCS8qINEgKi8KCXsnTycsICciJywgMTMzfSwJLyog1iAqLwoJeydVJywgJyInLCAxMzR9LAkvKiDcICovCgl7J2EnLCAnXCcnLCAxMzV9LAkvKiB+RyBYWCAqLwoJeydhJywgJ2AnLCAxMzZ9LAkvKiB+SCBYWCAqLwoJeydhJywgJ14nLCAxMzd9LAkvKiDiICovCgl7J2EnLCAnIicsIDEzOH0sCS8qIOQgKi8KCXsnYScsICd+JywgMTM5fSwJLyog4yAqLwoJeydhJywgJ28nLCAxNDB9LAkvKiDlICovCgl7J2MnLCAnLCcsIDE0MX0sCS8qIOcgKi8KCXsnZScsICdcJycsIDE0Mn0sCS8qIOkgKi8KCXsnZScsICdgJywgMTQzfSwJLyog6CAqLwoJeydlJywgJ14nLCAxNDR9LAkvKiDqICovCgl7J2UnLCAnIicsIDE0NX0sCS8qIOsgKi8KCXsnaScsICdcJycsIDE0Nn0sCS8qIO0gKi8KCXsnaScsICdgJywgMTQ3fSwJLyog7CAqLwoJeydpJywgJ14nLCAxNDh9LAkvKiDuICovCgl7J2knLCAnIicsIDE0OX0sCS8qIO8gKi8KCXsnbicsICd+JywgMTUwfSwJLyog8SAqLwoJeydvJywgJ1wnJywgMTUxfSwJLyog8yAqLwoJeydvJywgJ2AnLCAxNTJ9LAkvKiDyICovCgl7J28nLCAnXicsIDE1M30sCS8qIPQgKi8KCXsnbycsICciJywgMTU0fSwJLyog9iAqLwoJeydvJywgJ34nLCAxNTV9LAkvKiBvICovCgl7J3UnLCAnXCcnLCAxNTZ9LAkvKiD6ICovCgl7J3UnLCAnYCcsIDE1N30sCS8qIH5dIFhYICovCgl7J3UnLCAnXicsIDE1OH0sCS8qIPsgKi8KCXsndScsICciJywgMTU5fSwJLyog/CAqLwoJeycrJywgJ18nLCAxNjB9LAkvKiDdICovCgl7J34nLCAnbycsIDE2MX0sCS8qILAgKi8KCXsnYycsICd8JywgMTYyfSwJLyogoiAqLwoJeyckJywgJyQnLCAxNjN9LAkvKiCjICovCgl7J3AnLCAnYScsIDE2NH0sCS8qIKcgKi8KCXsnLicsICcuJywgMTY1fSwJLyogKiAqLwoJeydQJywgJ1AnLCAxNjZ9LAkvKiC2ICovCgl7J3MnLCAncycsIDE2N30sCS8qIN8gKi8KCXsncicsICdPJywgMTY4fSwJLyogriAqLwoJeydjJywgJ08nLCAxNjl9LAkvKiCpICovCgl7J1QnLCAnTScsIDE3MH0sCS8qIIEgKi8KCXsnPScsICcvJywgMTczfSwJLyoggiAqLwoJeydBJywgJ0UnLCAxNzR9LAkvKiDGICovCgl7J08nLCAnLycsIDE3NX0sCS8qINggKi8KCXsnMCcsICcwJywgMTc2fSwJLyoggyAqLwoJeycrJywgJy0nLCAxNzd9LAkvKiCxICovCgl7JzwnLCAnPScsIDE3OH0sCS8qIL4gKi8KCXsnPicsICc9JywgMTc5fSwJLyoghCAqLwoJeydZJywgJy0nLCAxODB9LAkvKiClICovCgl7J2onLCAndScsIDE4MX0sCS8qILUgKi8KCXsnbScsICd1JywgMTgxfSwJLyogtSAqLwoJeydkJywgJ2QnLCAxODJ9LAkvKiCPICovCgl7J1MnLCAnUycsIDE4M30sCS8qIIUgKi8KCXsnUycsICdJJywgMTgzfSwJLyoghSAqLwoJeydQJywgJ0knLCAxODR9LAkvKiC9ICovCgl7J3AnLCAnaScsIDE4NX0sCS8qILwgKi8KCXsnSScsICdJJywgMTg2fSwJLyoghiAqLwoJeydhJywgJy0nLCAxODd9LAkvKiC7ICovCgl7J28nLCAnLScsIDE4OH0sCS8qILogKi8KCXsnTycsICdNJywgMTg5fSwJLyogvSAqLwoJeydhJywgJ2UnLCAxOTB9LAkvKiDmICovCgl7J28nLCAnLycsIDE5MX0sCS8qIPggKi8KCXsnficsICc/JywgMTkyfSwJLyogvyAqLwoJeyd+JywgJyEnLCAxOTN9LAkvKiChICovCgl7Jy0nLCAnLCcsIDE5NH0sCS8qIKwgKi8KCXsndicsICctJywgMTk1fSwJLyogfkggWFggKi8KCXsnZicsICctJywgMTk2fSwJLyognyAqLwoJeyd+JywgJ34nLCAxOTd9LAkvKiCJICovCgl7J0QnLCAnRScsIDE5OH0sCS8qIJAgKi8KCXsnPCcsICc8JywgMTk5fSwJLyogqyAqLwoJeyc+JywgJz4nLCAyMDB9LAkvKiC7ICovCgl7Jy4nLCAnOicsIDIwMX0sCS8qIIogKi8KCXsnQScsICdgJywgMjAzfSwJLyogwCAqLwoJeydBJywgJ34nLCAyMDR9LAkvKiDDICovCgl7J08nLCAnficsIDIwNX0sCS8qINUgKi8KCXsnTycsICdFJywgMjA2fSwJLyogkSAqLwoJeydvJywgJ2UnLCAyMDd9LAkvKiCmICovCgl7Jy0nLCAnLicsIDIwOH0sCS8qIC0gKi8KCXsnLScsICctJywgMjA5fSwJLyogLSAqLwoJeydgJywgJ2AnLCAyMTB9LAkvKiAiICovCgl7J1wnJywgJ1wnJywgMjExfSwJLyogIiAqLwoJeydgJywgJyAnLCAyMTJ9LAkvKiAnICovCgl7J1wnJywgJyAnLCAyMTN9LAkvKiAnICovCgl7Jy0nLCAnOicsIDIxNH0sCS8qIPcgKi8KCXsnRCcsICdJJywgMjE1fSwJLyog1yAqLwoJeyd5JywgJzonLCAyMTZ9LAkvKiD/ICovCgl7J1knLCAnOicsIDIxN30sCS8qII0gKi8KCXsnLycsICcvJywgMjE4fSwJLyogjiAqLwoJeydFJywgJz0nLCAyMTl9LAkvKiCkIEV1cm8gU3lzdGVtID49OC41ICovCgl7J28nLCAneCcsIDIxOX0sCS8qIKQgQ3VycmVuY3kgU3lzdGVtIDw9OC4xKi8KCXsnPCcsICcgJywgMjIwfSwJLyog0CAqLwoJeyc+JywgJyAnLCAyMjF9LAkvKiDwICovCgl7J2YnLCAnaScsIDIyMn0sCS8qIN4gKi8KCXsnZicsICdsJywgMjIzfSwJLyog/iAqLwoJeycrJywgJysnLCAyMjR9LAkvKiD9ICovCgl7J34nLCAnLicsIDIyNX0sCS8qILcgKi8KCXsnLCcsICcgJywgMjI2fSwJLyogkiAqLwoJeycsJywgJywnLCAyMjd9LAkvKiCTICovCgl7JyUnLCAnLicsIDIyOH0sCS8qIJQgKi8KCXsnJScsICcwJywgMjI4fSwJLyoglCAqLwoJeydBJywgJ14nLCAyMjl9LAkvKiDCICovCgl7J0UnLCAnXicsIDIzMH0sCS8qIMogKi8KCXsnQScsICdcJycsIDIzMX0sCS8qIMEgKi8KCXsnRScsICciJywgMjMyfSwJLyogyyAqLwoJeydFJywgJ2AnLCAyMzN9LAkvKiDIICovCgl7J0knLCAnXCcnLCAyMzR9LAkvKiDNICovCgl7J0knLCAnXicsIDIzNX0sCS8qIM4gKi8KCXsnSScsICciJywgMjM2fSwJLyogzyAqLwoJeydJJywgJ2AnLCAyMzd9LAkvKiDMICovCgl7J08nLCAnXCcnLCAyMzh9LAkvKiDTICovCgl7J08nLCAnXicsIDIzOX0sCS8qINQgKi8KCXsnQScsICdQJywgMjQwfSwJLyoglSAqLwoJeydPJywgJ2AnLCAyNDF9LAkvKiDSICovCgl7J1UnLCAnXCcnLCAyNDJ9LAkvKiDaICovCgl7J1UnLCAnXicsIDI0M30sCS8qINsgKi8KCXsnVScsICdgJywgMjQ0fSwJLyog2SAqLwoJeydpJywgJy4nLCAyNDV9LAkvKiCeICovCgl7TlVMLCBOVUwsIE5VTH0KCX07CgojICAgIGVsc2UJLyogIU1BQ09TICovCgojICAgICBpZmRlZiBPTERfRElHUkFQSFMKCgkvKgoJICogZGlncmFwaHMgY29tcGF0aWJsZSB3aXRoIFZpbSA1LngKCSAqLwogICAgICAge3snficsICchJywgMTYxfSwJLyogoSAqLwoJeydjJywgJ3wnLCAxNjJ9LAkvKiCiICovCgl7JyQnLCAnJCcsIDE2M30sCS8qIKMgKi8KCXsnbycsICd4JywgMTY0fSwJLyogpCAtIGN1cnJlbmN5IHN5bWJvbCBpbiBJU08gODg1OS0xICovCgl7J2UnLCAnPScsIDE2NH0sCS8qIKQgLSBldXJvIHN5bWJvbCBpbiBJU08gODg1OS0xNSAqLwoJeydZJywgJy0nLCAxNjV9LAkvKiClICovCgl7J3wnLCAnfCcsIDE2Nn0sCS8qIKYgKi8KCXsncCcsICdhJywgMTY3fSwJLyogpyAqLwoJeyciJywgJyInLCAxNjh9LAkvKiCoICovCgl7J2MnLCAnTycsIDE2OX0sCS8qIKkgKi8KCXsnYScsICctJywgMTcwfSwJLyogqiAqLwoJeyc8JywgJzwnLCAxNzF9LAkvKiCrICovCgl7Jy0nLCAnLCcsIDE3Mn0sCS8qIKwgKi8KCXsnLScsICctJywgMTczfSwJLyogrSAqLwoJeydyJywgJ08nLCAxNzR9LAkvKiCuICovCgl7Jy0nLCAnPScsIDE3NX0sCS8qIK8gKi8KCXsnficsICdvJywgMTc2fSwJLyogsCAqLwoJeycrJywgJy0nLCAxNzd9LAkvKiCxICovCgl7JzInLCAnMicsIDE3OH0sCS8qILIgKi8KCXsnMycsICczJywgMTc5fSwJLyogsyAqLwoJeydcJycsICdcJycsIDE4MH0sCS8qILQgKi8KCXsnaicsICd1JywgMTgxfSwJLyogtSAqLwoJeydwJywgJ3AnLCAxODJ9LAkvKiC2ICovCgl7J34nLCAnLicsIDE4M30sCS8qILcgKi8KCXsnLCcsICcsJywgMTg0fSwJLyoguCAqLwoJeycxJywgJzEnLCAxODV9LAkvKiC5ICovCgl7J28nLCAnLScsIDE4Nn0sCS8qILogKi8KCXsnPicsICc+JywgMTg3fSwJLyoguyAqLwoJeycxJywgJzQnLCAxODh9LAkvKiC8ICovCgl7JzEnLCAnMicsIDE4OX0sCS8qIL0gKi8KCXsnMycsICc0JywgMTkwfSwJLyogviAqLwoJeyd+JywgJz8nLCAxOTF9LAkvKiC/ICovCgl7J0EnLCAnYCcsIDE5Mn0sCS8qIMAgKi8KCXsnQScsICdcJycsIDE5M30sCS8qIMEgKi8KCXsnQScsICdeJywgMTk0fSwJLyogwiAqLwoJeydBJywgJ34nLCAxOTV9LAkvKiDDICovCgl7J0EnLCAnIicsIDE5Nn0sCS8qIMQgKi8KCXsnQScsICdAJywgMTk3fSwJLyogxSAqLwoJeydBJywgJ0EnLCAxOTd9LAkvKiDFICovCgl7J0EnLCAnRScsIDE5OH0sCS8qIMYgKi8KCXsnQycsICcsJywgMTk5fSwJLyogxyAqLwoJeydFJywgJ2AnLCAyMDB9LAkvKiDIICovCgl7J0UnLCAnXCcnLCAyMDF9LAkvKiDJICovCgl7J0UnLCAnXicsIDIwMn0sCS8qIMogKi8KCXsnRScsICciJywgMjAzfSwJLyogyyAqLwoJeydJJywgJ2AnLCAyMDR9LAkvKiDMICovCgl7J0knLCAnXCcnLCAyMDV9LAkvKiDNICovCgl7J0knLCAnXicsIDIwNn0sCS8qIM4gKi8KCXsnSScsICciJywgMjA3fSwJLyogzyAqLwoJeydEJywgJy0nLCAyMDh9LAkvKiDQICovCgl7J04nLCAnficsIDIwOX0sCS8qINEgKi8KCXsnTycsICdgJywgMjEwfSwJLyog0iAqLwoJeydPJywgJ1wnJywgMjExfSwJLyog0yAqLwoJeydPJywgJ14nLCAyMTJ9LAkvKiDUICovCgl7J08nLCAnficsIDIxM30sCS8qINUgKi8KCXsnTycsICciJywgMjE0fSwJLyog1iAqLwoJeycvJywgJ1xcJywgMjE1fSwJLyog1yAtIG11bHRpcGxpY2F0aW9uIHN5bWJvbCBpbiBJU08gODg1OS0xICovCgl7J08nLCAnRScsIDIxNX0sCS8qINcgLSBPRSBpbiBJU08gODg1OS0xNSAqLwoJeydPJywgJy8nLCAyMTZ9LAkvKiDYICovCgl7J1UnLCAnYCcsIDIxN30sCS8qINkgKi8KCXsnVScsICdcJycsIDIxOH0sCS8qINogKi8KCXsnVScsICdeJywgMjE5fSwJLyog2yAqLwoJeydVJywgJyInLCAyMjB9LAkvKiDcICovCgl7J1knLCAnXCcnLCAyMjF9LAkvKiDdICovCgl7J0knLCAncCcsIDIyMn0sCS8qIN4gKi8KCXsncycsICdzJywgMjIzfSwJLyog3yAqLwoJeydhJywgJ2AnLCAyMjR9LAkvKiDgICovCgl7J2EnLCAnXCcnLCAyMjV9LAkvKiDhICovCgl7J2EnLCAnXicsIDIyNn0sCS8qIOIgKi8KCXsnYScsICd+JywgMjI3fSwJLyog4yAqLwoJeydhJywgJyInLCAyMjh9LAkvKiDkICovCgl7J2EnLCAnQCcsIDIyOX0sCS8qIOUgKi8KCXsnYScsICdhJywgMjI5fSwJLyog5SAqLwoJeydhJywgJ2UnLCAyMzB9LAkvKiDmICovCgl7J2MnLCAnLCcsIDIzMX0sCS8qIOcgKi8KCXsnZScsICdgJywgMjMyfSwJLyog6CAqLwoJeydlJywgJ1wnJywgMjMzfSwJLyog6SAqLwoJeydlJywgJ14nLCAyMzR9LAkvKiDqICovCgl7J2UnLCAnIicsIDIzNX0sCS8qIOsgKi8KCXsnaScsICdgJywgMjM2fSwJLyog7CAqLwoJeydpJywgJ1wnJywgMjM3fSwJLyog7SAqLwoJeydpJywgJ14nLCAyMzh9LAkvKiDuICovCgl7J2knLCAnIicsIDIzOX0sCS8qIO8gKi8KCXsnZCcsICctJywgMjQwfSwJLyog8CAqLwoJeyduJywgJ34nLCAyNDF9LAkvKiDxICovCgl7J28nLCAnYCcsIDI0Mn0sCS8qIPIgKi8KCXsnbycsICdcJycsIDI0M30sCS8qIPMgKi8KCXsnbycsICdeJywgMjQ0fSwJLyog9CAqLwoJeydvJywgJ34nLCAyNDV9LAkvKiD1ICovCgl7J28nLCAnIicsIDI0Nn0sCS8qIPYgKi8KCXsnOicsICctJywgMjQ3fSwJLyog9yAtIGRpdmlzaW9uIHN5bWJvbCBpbiBJU08gODg1OS0xICovCgl7J28nLCAnZScsIDI0N30sCS8qIPcgLSBvZSBpbiBJU08gODg1OS0xNSAqLwoJeydvJywgJy8nLCAyNDh9LAkvKiD4ICovCgl7J3UnLCAnYCcsIDI0OX0sCS8qIPkgKi8KCXsndScsICdcJycsIDI1MH0sCS8qIPogKi8KCXsndScsICdeJywgMjUxfSwJLyog+yAqLwoJeyd1JywgJyInLCAyNTJ9LAkvKiD8ICovCgl7J3knLCAnXCcnLCAyNTN9LAkvKiD9ICovCgl7J2knLCAncCcsIDI1NH0sCS8qIP4gKi8KCXsneScsICciJywgMjU1fSwJLyogeCBYWCAqLwoJe05VTCwgTlVMLCBOVUx9Cgl9OwojICAgICBlbHNlIC8qIE9MRF9ESUdSQVBIUyAqLwoKCS8qCgkgKiBkaWdyYXBocyBmb3IgVW5pY29kZSBmcm9tIFJGQzEzNDUKCSAqIChhbHNvIHdvcmsgZm9yIElTTy04ODU5LTEgYWthIGxhdGluMSkKCSAqLwogICAgICAgewoJeydOJywgJ1UnLCAweDBhfSwJLyogTEYgZm9yIE5VTCAqLwoJeydTJywgJ0gnLCAweDAxfSwKCXsnUycsICdYJywgMHgwMn0sCgl7J0UnLCAnWCcsIDB4MDN9LAoJeydFJywgJ1QnLCAweDA0fSwKCXsnRScsICdRJywgMHgwNX0sCgl7J0EnLCAnSycsIDB4MDZ9LAoJeydCJywgJ0wnLCAweDA3fSwKCXsnQicsICdTJywgMHgwOH0sCgl7J0gnLCAnVCcsIDB4MDl9LAoJeydMJywgJ0YnLCAweDBhfSwKCXsnVicsICdUJywgMHgwYn0sCgl7J0YnLCAnRicsIDB4MGN9LAoJeydDJywgJ1InLCAweDBkfSwKCXsnUycsICdPJywgMHgwZX0sCgl7J1MnLCAnSScsIDB4MGZ9LAoJeydEJywgJ0wnLCAweDEwfSwKCXsnRCcsICcxJywgMHgxMX0sCgl7J0QnLCAnMicsIDB4MTJ9LAoJeydEJywgJzMnLCAweDEzfSwKCXsnRCcsICc0JywgMHgxNH0sCgl7J04nLCAnSycsIDB4MTV9LAoJeydTJywgJ1knLCAweDE2fSwKCXsnRScsICdCJywgMHgxN30sCgl7J0MnLCAnTicsIDB4MTh9LAoJeydFJywgJ00nLCAweDE5fSwKCXsnUycsICdCJywgMHgxYX0sCgl7J0UnLCAnQycsIDB4MWJ9LAoJeydGJywgJ1MnLCAweDFjfSwKCXsnRycsICdTJywgMHgxZH0sCgl7J1InLCAnUycsIDB4MWV9LAoJeydVJywgJ1MnLCAweDFmfSwKCXsnUycsICdQJywgMHgyMH0sCgl7J04nLCAnYicsIDB4MjN9LAoJeydEJywgJ08nLCAweDI0fSwKCXsnQScsICd0JywgMHg0MH0sCgl7JzwnLCAnKCcsIDB4NWJ9LAoJeycvJywgJy8nLCAweDVjfSwKCXsnKScsICc+JywgMHg1ZH0sCgl7J1wnJywgJz4nLCAweDVlfSwKCXsnXCcnLCAnIScsIDB4NjB9LAoJeycoJywgJyEnLCAweDdifSwKCXsnIScsICchJywgMHg3Y30sCgl7JyEnLCAnKScsIDB4N2R9LAoJeydcJycsICc/JywgMHg3ZX0sCgl7J0QnLCAnVCcsIDB4N2Z9LAoJeydQJywgJ0EnLCAweDgwfSwKCXsnSCcsICdPJywgMHg4MX0sCgl7J0InLCAnSCcsIDB4ODJ9LAoJeydOJywgJ0gnLCAweDgzfSwKCXsnSScsICdOJywgMHg4NH0sCgl7J04nLCAnTCcsIDB4ODV9LAoJeydTJywgJ0EnLCAweDg2fSwKCXsnRScsICdTJywgMHg4N30sCgl7J0gnLCAnUycsIDB4ODh9LAoJeydIJywgJ0onLCAweDg5fSwKCXsnVicsICdTJywgMHg4YX0sCgl7J1AnLCAnRCcsIDB4OGJ9LAoJeydQJywgJ1UnLCAweDhjfSwKCXsnUicsICdJJywgMHg4ZH0sCgl7J1MnLCAnMicsIDB4OGV9LAoJeydTJywgJzMnLCAweDhmfSwKCXsnRCcsICdDJywgMHg5MH0sCgl7J1AnLCAnMScsIDB4OTF9LAoJeydQJywgJzInLCAweDkyfSwKCXsnVCcsICdTJywgMHg5M30sCgl7J0MnLCAnQycsIDB4OTR9LAoJeydNJywgJ1cnLCAweDk1fSwKCXsnUycsICdHJywgMHg5Nn0sCgl7J0UnLCAnRycsIDB4OTd9LAoJeydTJywgJ1MnLCAweDk4fSwKCXsnRycsICdDJywgMHg5OX0sCgl7J1MnLCAnQycsIDB4OWF9LAoJeydDJywgJ0knLCAweDlifSwKCXsnUycsICdUJywgMHg5Y30sCgl7J08nLCAnQycsIDB4OWR9LAoJeydQJywgJ00nLCAweDllfSwKCXsnQScsICdDJywgMHg5Zn0sCgl7J04nLCAnUycsIDB4YTB9LAoJeychJywgJ0knLCAweGExfSwKCXsnQycsICd0JywgMHhhMn0sCgl7J1AnLCAnZCcsIDB4YTN9LAoJeydDJywgJ3UnLCAweGE0fSwKCXsnWScsICdlJywgMHhhNX0sCgl7J0InLCAnQicsIDB4YTZ9LAoJeydTJywgJ0UnLCAweGE3fSwKCXsnXCcnLCAnOicsIDB4YTh9LAoJeydDJywgJ28nLCAweGE5fSwKCXsnLScsICdhJywgMHhhYX0sCgl7JzwnLCAnPCcsIDB4YWJ9LAoJeydOJywgJ08nLCAweGFjfSwKCXsnLScsICctJywgMHhhZH0sCgl7J1InLCAnZycsIDB4YWV9LAoJeydcJycsICdtJywgMHhhZn0sCgl7J0QnLCAnRycsIDB4YjB9LAoJeycrJywgJy0nLCAweGIxfSwKCXsnMicsICdTJywgMHhiMn0sCgl7JzMnLCAnUycsIDB4YjN9LAoJeydcJycsICdcJycsIDB4YjR9LAoJeydNJywgJ3knLCAweGI1fSwKCXsnUCcsICdJJywgMHhiNn0sCgl7Jy4nLCAnTScsIDB4Yjd9LAoJeydcJycsICcsJywgMHhiOH0sCgl7JzEnLCAnUycsIDB4Yjl9LAoJeyctJywgJ28nLCAweGJhfSwKCXsnPicsICc+JywgMHhiYn0sCgl7JzEnLCAnNCcsIDB4YmN9LAoJeycxJywgJzInLCAweGJkfSwKCXsnMycsICc0JywgMHhiZX0sCgl7Jz8nLCAnSScsIDB4YmZ9LAoJeydBJywgJyEnLCAweGMwfSwKCXsnQScsICdcJycsIDB4YzF9LAoJeydBJywgJz4nLCAweGMyfSwKCXsnQScsICc/JywgMHhjM30sCgl7J0EnLCAnOicsIDB4YzR9LAoJeydBJywgJ0EnLCAweGM1fSwKCXsnQScsICdFJywgMHhjNn0sCgl7J0MnLCAnLCcsIDB4Yzd9LAoJeydFJywgJyEnLCAweGM4fSwKCXsnRScsICdcJycsIDB4Yzl9LAoJeydFJywgJz4nLCAweGNhfSwKCXsnRScsICc6JywgMHhjYn0sCgl7J0knLCAnIScsIDB4Y2N9LAoJeydJJywgJ1wnJywgMHhjZH0sCgl7J0knLCAnPicsIDB4Y2V9LAoJeydJJywgJzonLCAweGNmfSwKCXsnRCcsICctJywgMHhkMH0sCgl7J04nLCAnPycsIDB4ZDF9LAoJeydPJywgJyEnLCAweGQyfSwKCXsnTycsICdcJycsIDB4ZDN9LAoJeydPJywgJz4nLCAweGQ0fSwKCXsnTycsICc/JywgMHhkNX0sCgl7J08nLCAnOicsIDB4ZDZ9LAoJeycqJywgJ1gnLCAweGQ3fSwKCXsnTycsICcvJywgMHhkOH0sCgl7J1UnLCAnIScsIDB4ZDl9LAoJeydVJywgJ1wnJywgMHhkYX0sCgl7J1UnLCAnPicsIDB4ZGJ9LAoJeydVJywgJzonLCAweGRjfSwKCXsnWScsICdcJycsIDB4ZGR9LAoJeydUJywgJ0gnLCAweGRlfSwKCXsncycsICdzJywgMHhkZn0sCgl7J2EnLCAnIScsIDB4ZTB9LAoJeydhJywgJ1wnJywgMHhlMX0sCgl7J2EnLCAnPicsIDB4ZTJ9LAoJeydhJywgJz8nLCAweGUzfSwKCXsnYScsICc6JywgMHhlNH0sCgl7J2EnLCAnYScsIDB4ZTV9LAoJeydhJywgJ2UnLCAweGU2fSwKCXsnYycsICcsJywgMHhlN30sCgl7J2UnLCAnIScsIDB4ZTh9LAoJeydlJywgJ1wnJywgMHhlOX0sCgl7J2UnLCAnPicsIDB4ZWF9LAoJeydlJywgJzonLCAweGVifSwKCXsnaScsICchJywgMHhlY30sCgl7J2knLCAnXCcnLCAweGVkfSwKCXsnaScsICc+JywgMHhlZX0sCgl7J2knLCAnOicsIDB4ZWZ9LAoJeydkJywgJy0nLCAweGYwfSwKCXsnbicsICc/JywgMHhmMX0sCgl7J28nLCAnIScsIDB4ZjJ9LAoJeydvJywgJ1wnJywgMHhmM30sCgl7J28nLCAnPicsIDB4ZjR9LAoJeydvJywgJz8nLCAweGY1fSwKCXsnbycsICc6JywgMHhmNn0sCgl7Jy0nLCAnOicsIDB4Zjd9LAoJeydvJywgJy8nLCAweGY4fSwKCXsndScsICchJywgMHhmOX0sCgl7J3UnLCAnXCcnLCAweGZhfSwKCXsndScsICc+JywgMHhmYn0sCgl7J3UnLCAnOicsIDB4ZmN9LAoJeyd5JywgJ1wnJywgMHhmZH0sCgl7J3QnLCAnaCcsIDB4ZmV9LAoJeyd5JywgJzonLCAweGZmfSwKCiMgICAgICBpZmRlZiBGRUFUX01CWVRFCiMJZGVmaW5lIFVTRV9VTklDT0RFX0RJR1JBUEhTCgoJeydBJywgJy0nLCAweDAxMDB9LAoJeydhJywgJy0nLCAweDAxMDF9LAoJeydBJywgJygnLCAweDAxMDJ9LAoJeydhJywgJygnLCAweDAxMDN9LAoJeydBJywgJzsnLCAweDAxMDR9LAoJeydhJywgJzsnLCAweDAxMDV9LAoJeydDJywgJ1wnJywgMHgwMTA2fSwKCXsnYycsICdcJycsIDB4MDEwN30sCgl7J0MnLCAnPicsIDB4MDEwOH0sCgl7J2MnLCAnPicsIDB4MDEwOX0sCgl7J0MnLCAnLicsIDB4MDEwYX0sCgl7J2MnLCAnLicsIDB4MDEwYn0sCgl7J0MnLCAnPCcsIDB4MDEwY30sCgl7J2MnLCAnPCcsIDB4MDEwZH0sCgl7J0QnLCAnPCcsIDB4MDEwZX0sCgl7J2QnLCAnPCcsIDB4MDEwZn0sCgl7J0QnLCAnLycsIDB4MDExMH0sCgl7J2QnLCAnLycsIDB4MDExMX0sCgl7J0UnLCAnLScsIDB4MDExMn0sCgl7J2UnLCAnLScsIDB4MDExM30sCgl7J0UnLCAnKCcsIDB4MDExNH0sCgl7J2UnLCAnKCcsIDB4MDExNX0sCgl7J0UnLCAnLicsIDB4MDExNn0sCgl7J2UnLCAnLicsIDB4MDExN30sCgl7J0UnLCAnOycsIDB4MDExOH0sCgl7J2UnLCAnOycsIDB4MDExOX0sCgl7J0UnLCAnPCcsIDB4MDExYX0sCgl7J2UnLCAnPCcsIDB4MDExYn0sCgl7J0cnLCAnPicsIDB4MDExY30sCgl7J2cnLCAnPicsIDB4MDExZH0sCgl7J0cnLCAnKCcsIDB4MDExZX0sCgl7J2cnLCAnKCcsIDB4MDExZn0sCgl7J0cnLCAnLicsIDB4MDEyMH0sCgl7J2cnLCAnLicsIDB4MDEyMX0sCgl7J0cnLCAnLCcsIDB4MDEyMn0sCgl7J2cnLCAnLCcsIDB4MDEyM30sCgl7J0gnLCAnPicsIDB4MDEyNH0sCgl7J2gnLCAnPicsIDB4MDEyNX0sCgl7J0gnLCAnLycsIDB4MDEyNn0sCgl7J2gnLCAnLycsIDB4MDEyN30sCgl7J0knLCAnPycsIDB4MDEyOH0sCgl7J2knLCAnPycsIDB4MDEyOX0sCgl7J0knLCAnLScsIDB4MDEyYX0sCgl7J2knLCAnLScsIDB4MDEyYn0sCgl7J0knLCAnKCcsIDB4MDEyY30sCgl7J2knLCAnKCcsIDB4MDEyZH0sCgl7J0knLCAnOycsIDB4MDEyZX0sCgl7J2knLCAnOycsIDB4MDEyZn0sCgl7J0knLCAnLicsIDB4MDEzMH0sCgl7J2knLCAnLicsIDB4MDEzMX0sCgl7J0knLCAnSicsIDB4MDEzMn0sCgl7J2knLCAnaicsIDB4MDEzM30sCgl7J0onLCAnPicsIDB4MDEzNH0sCgl7J2onLCAnPicsIDB4MDEzNX0sCgl7J0snLCAnLCcsIDB4MDEzNn0sCgl7J2snLCAnLCcsIDB4MDEzN30sCgl7J2snLCAnaycsIDB4MDEzOH0sCgl7J0wnLCAnXCcnLCAweDAxMzl9LAoJeydsJywgJ1wnJywgMHgwMTNhfSwKCXsnTCcsICcsJywgMHgwMTNifSwKCXsnbCcsICcsJywgMHgwMTNjfSwKCXsnTCcsICc8JywgMHgwMTNkfSwKCXsnbCcsICc8JywgMHgwMTNlfSwKCXsnTCcsICcuJywgMHgwMTNmfSwKCXsnbCcsICcuJywgMHgwMTQwfSwKCXsnTCcsICcvJywgMHgwMTQxfSwKCXsnbCcsICcvJywgMHgwMTQyfSwKCXsnTicsICdcJycsIDB4MDE0M30sCgl7J24nLCAnXCcnLCAweDAxNDR9LAoJeydOJywgJywnLCAweDAxNDV9LAoJeyduJywgJywnLCAweDAxNDZ9LAoJeydOJywgJzwnLCAweDAxNDd9LAoJeyduJywgJzwnLCAweDAxNDh9LAoJeydcJycsICduJywgMHgwMTQ5fSwKCXsnTicsICdHJywgMHgwMTRhfSwKCXsnbicsICdnJywgMHgwMTRifSwKCXsnTycsICctJywgMHgwMTRjfSwKCXsnbycsICctJywgMHgwMTRkfSwKCXsnTycsICcoJywgMHgwMTRlfSwKCXsnbycsICcoJywgMHgwMTRmfSwKCXsnTycsICciJywgMHgwMTUwfSwKCXsnbycsICciJywgMHgwMTUxfSwKCXsnTycsICdFJywgMHgwMTUyfSwKCXsnbycsICdlJywgMHgwMTUzfSwKCXsnUicsICdcJycsIDB4MDE1NH0sCgl7J3InLCAnXCcnLCAweDAxNTV9LAoJeydSJywgJywnLCAweDAxNTZ9LAoJeydyJywgJywnLCAweDAxNTd9LAoJeydSJywgJzwnLCAweDAxNTh9LAoJeydyJywgJzwnLCAweDAxNTl9LAoJeydTJywgJ1wnJywgMHgwMTVhfSwKCXsncycsICdcJycsIDB4MDE1Yn0sCgl7J1MnLCAnPicsIDB4MDE1Y30sCgl7J3MnLCAnPicsIDB4MDE1ZH0sCgl7J1MnLCAnLCcsIDB4MDE1ZX0sCgl7J3MnLCAnLCcsIDB4MDE1Zn0sCgl7J1MnLCAnPCcsIDB4MDE2MH0sCgl7J3MnLCAnPCcsIDB4MDE2MX0sCgl7J1QnLCAnLCcsIDB4MDE2Mn0sCgl7J3QnLCAnLCcsIDB4MDE2M30sCgl7J1QnLCAnPCcsIDB4MDE2NH0sCgl7J3QnLCAnPCcsIDB4MDE2NX0sCgl7J1QnLCAnLycsIDB4MDE2Nn0sCgl7J3QnLCAnLycsIDB4MDE2N30sCgl7J1UnLCAnPycsIDB4MDE2OH0sCgl7J3UnLCAnPycsIDB4MDE2OX0sCgl7J1UnLCAnLScsIDB4MDE2YX0sCgl7J3UnLCAnLScsIDB4MDE2Yn0sCgl7J1UnLCAnKCcsIDB4MDE2Y30sCgl7J3UnLCAnKCcsIDB4MDE2ZH0sCgl7J1UnLCAnMCcsIDB4MDE2ZX0sCgl7J3UnLCAnMCcsIDB4MDE2Zn0sCgl7J1UnLCAnIicsIDB4MDE3MH0sCgl7J3UnLCAnIicsIDB4MDE3MX0sCgl7J1UnLCAnOycsIDB4MDE3Mn0sCgl7J3UnLCAnOycsIDB4MDE3M30sCgl7J1cnLCAnPicsIDB4MDE3NH0sCgl7J3cnLCAnPicsIDB4MDE3NX0sCgl7J1knLCAnPicsIDB4MDE3Nn0sCgl7J3knLCAnPicsIDB4MDE3N30sCgl7J1knLCAnOicsIDB4MDE3OH0sCgl7J1onLCAnXCcnLCAweDAxNzl9LAoJeyd6JywgJ1wnJywgMHgwMTdhfSwKCXsnWicsICcuJywgMHgwMTdifSwKCXsneicsICcuJywgMHgwMTdjfSwKCXsnWicsICc8JywgMHgwMTdkfSwKCXsneicsICc8JywgMHgwMTdlfSwKCXsnTycsICc5JywgMHgwMWEwfSwKCXsnbycsICc5JywgMHgwMWExfSwKCXsnTycsICdJJywgMHgwMWEyfSwKCXsnbycsICdpJywgMHgwMWEzfSwKCXsneScsICdyJywgMHgwMWE2fSwKCXsnVScsICc5JywgMHgwMWFmfSwKCXsndScsICc5JywgMHgwMWIwfSwKCXsnWicsICcvJywgMHgwMWI1fSwKCXsneicsICcvJywgMHgwMWI2fSwKCXsnRScsICdEJywgMHgwMWI3fSwKCXsnQScsICc8JywgMHgwMWNkfSwKCXsnYScsICc8JywgMHgwMWNlfSwKCXsnSScsICc8JywgMHgwMWNmfSwKCXsnaScsICc8JywgMHgwMWQwfSwKCXsnTycsICc8JywgMHgwMWQxfSwKCXsnbycsICc8JywgMHgwMWQyfSwKCXsnVScsICc8JywgMHgwMWQzfSwKCXsndScsICc8JywgMHgwMWQ0fSwKCXsnQScsICcxJywgMHgwMWRlfSwKCXsnYScsICcxJywgMHgwMWRmfSwKCXsnQScsICc3JywgMHgwMWUwfSwKCXsnYScsICc3JywgMHgwMWUxfSwKCXsnQScsICczJywgMHgwMWUyfSwKCXsnYScsICczJywgMHgwMWUzfSwKCXsnRycsICcvJywgMHgwMWU0fSwKCXsnZycsICcvJywgMHgwMWU1fSwKCXsnRycsICc8JywgMHgwMWU2fSwKCXsnZycsICc8JywgMHgwMWU3fSwKCXsnSycsICc8JywgMHgwMWU4fSwKCXsnaycsICc8JywgMHgwMWU5fSwKCXsnTycsICc7JywgMHgwMWVhfSwKCXsnbycsICc7JywgMHgwMWVifSwKCXsnTycsICcxJywgMHgwMWVjfSwKCXsnbycsICcxJywgMHgwMWVkfSwKCXsnRScsICdaJywgMHgwMWVlfSwKCXsnZScsICd6JywgMHgwMWVmfSwKCXsnaicsICc8JywgMHgwMWYwfSwKCXsnRycsICdcJycsIDB4MDFmNH0sCgl7J2cnLCAnXCcnLCAweDAxZjV9LAoJeyc7JywgJ1MnLCAweDAyYmZ9LAoJeydcJycsICc8JywgMHgwMmM3fSwKCXsnXCcnLCAnKCcsIDB4MDJkOH0sCgl7J1wnJywgJy4nLCAweDAyZDl9LAoJeydcJycsICcwJywgMHgwMmRhfSwKCXsnXCcnLCAnOycsIDB4MDJkYn0sCgl7J1wnJywgJyInLCAweDAyZGR9LAoJeydBJywgJyUnLCAweDAzODZ9LAoJeydFJywgJyUnLCAweDAzODh9LAoJeydZJywgJyUnLCAweDAzODl9LAoJeydJJywgJyUnLCAweDAzOGF9LAoJeydPJywgJyUnLCAweDAzOGN9LAoJeydVJywgJyUnLCAweDAzOGV9LAoJeydXJywgJyUnLCAweDAzOGZ9LAoJeydpJywgJzMnLCAweDAzOTB9LAoJeydBJywgJyonLCAweDAzOTF9LAoJeydCJywgJyonLCAweDAzOTJ9LAoJeydHJywgJyonLCAweDAzOTN9LAoJeydEJywgJyonLCAweDAzOTR9LAoJeydFJywgJyonLCAweDAzOTV9LAoJeydaJywgJyonLCAweDAzOTZ9LAoJeydZJywgJyonLCAweDAzOTd9LAoJeydIJywgJyonLCAweDAzOTh9LAoJeydJJywgJyonLCAweDAzOTl9LAoJeydLJywgJyonLCAweDAzOWF9LAoJeydMJywgJyonLCAweDAzOWJ9LAoJeydNJywgJyonLCAweDAzOWN9LAoJeydOJywgJyonLCAweDAzOWR9LAoJeydDJywgJyonLCAweDAzOWV9LAoJeydPJywgJyonLCAweDAzOWZ9LAoJeydQJywgJyonLCAweDAzYTB9LAoJeydSJywgJyonLCAweDAzYTF9LAoJeydTJywgJyonLCAweDAzYTN9LAoJeydUJywgJyonLCAweDAzYTR9LAoJeydVJywgJyonLCAweDAzYTV9LAoJeydGJywgJyonLCAweDAzYTZ9LAoJeydYJywgJyonLCAweDAzYTd9LAoJeydRJywgJyonLCAweDAzYTh9LAoJeydXJywgJyonLCAweDAzYTl9LAoJeydKJywgJyonLCAweDAzYWF9LAoJeydWJywgJyonLCAweDAzYWJ9LAoJeydhJywgJyUnLCAweDAzYWN9LAoJeydlJywgJyUnLCAweDAzYWR9LAoJeyd5JywgJyUnLCAweDAzYWV9LAoJeydpJywgJyUnLCAweDAzYWZ9LAoJeyd1JywgJzMnLCAweDAzYjB9LAoJeydhJywgJyonLCAweDAzYjF9LAoJeydiJywgJyonLCAweDAzYjJ9LAoJeydnJywgJyonLCAweDAzYjN9LAoJeydkJywgJyonLCAweDAzYjR9LAoJeydlJywgJyonLCAweDAzYjV9LAoJeyd6JywgJyonLCAweDAzYjZ9LAoJeyd5JywgJyonLCAweDAzYjd9LAoJeydoJywgJyonLCAweDAzYjh9LAoJeydpJywgJyonLCAweDAzYjl9LAoJeydrJywgJyonLCAweDAzYmF9LAoJeydsJywgJyonLCAweDAzYmJ9LAoJeydtJywgJyonLCAweDAzYmN9LAoJeyduJywgJyonLCAweDAzYmR9LAoJeydjJywgJyonLCAweDAzYmV9LAoJeydvJywgJyonLCAweDAzYmZ9LAoJeydwJywgJyonLCAweDAzYzB9LAoJeydyJywgJyonLCAweDAzYzF9LAoJeycqJywgJ3MnLCAweDAzYzJ9LAoJeydzJywgJyonLCAweDAzYzN9LAoJeyd0JywgJyonLCAweDAzYzR9LAoJeyd1JywgJyonLCAweDAzYzV9LAoJeydmJywgJyonLCAweDAzYzZ9LAoJeyd4JywgJyonLCAweDAzYzd9LAoJeydxJywgJyonLCAweDAzYzh9LAoJeyd3JywgJyonLCAweDAzYzl9LAoJeydqJywgJyonLCAweDAzY2F9LAoJeyd2JywgJyonLCAweDAzY2J9LAoJeydvJywgJyUnLCAweDAzY2N9LAoJeyd1JywgJyUnLCAweDAzY2R9LAoJeyd3JywgJyUnLCAweDAzY2V9LAoJeydcJycsICdHJywgMHgwM2Q4fSwKCXsnLCcsICdHJywgMHgwM2Q5fSwKCXsnVCcsICczJywgMHgwM2RhfSwKCXsndCcsICczJywgMHgwM2RifSwKCXsnTScsICczJywgMHgwM2RjfSwKCXsnbScsICczJywgMHgwM2RkfSwKCXsnSycsICczJywgMHgwM2RlfSwKCXsnaycsICczJywgMHgwM2RmfSwKCXsnUCcsICczJywgMHgwM2UwfSwKCXsncCcsICczJywgMHgwM2UxfSwKCXsnXCcnLCAnJScsIDB4MDNmNH0sCgl7J2onLCAnMycsIDB4MDNmNX0sCgl7J0knLCAnTycsIDB4MDQwMX0sCgl7J0QnLCAnJScsIDB4MDQwMn0sCgl7J0cnLCAnJScsIDB4MDQwM30sCgl7J0knLCAnRScsIDB4MDQwNH0sCgl7J0QnLCAnUycsIDB4MDQwNX0sCgl7J0knLCAnSScsIDB4MDQwNn0sCgl7J1knLCAnSScsIDB4MDQwN30sCgl7J0onLCAnJScsIDB4MDQwOH0sCgl7J0wnLCAnSicsIDB4MDQwOX0sCgl7J04nLCAnSicsIDB4MDQwYX0sCgl7J1QnLCAncycsIDB4MDQwYn0sCgl7J0snLCAnSicsIDB4MDQwY30sCgl7J1YnLCAnJScsIDB4MDQwZX0sCgl7J0QnLCAnWicsIDB4MDQwZn0sCgl7J0EnLCAnPScsIDB4MDQxMH0sCgl7J0InLCAnPScsIDB4MDQxMX0sCgl7J1YnLCAnPScsIDB4MDQxMn0sCgl7J0cnLCAnPScsIDB4MDQxM30sCgl7J0QnLCAnPScsIDB4MDQxNH0sCgl7J0UnLCAnPScsIDB4MDQxNX0sCgl7J1onLCAnJScsIDB4MDQxNn0sCgl7J1onLCAnPScsIDB4MDQxN30sCgl7J0knLCAnPScsIDB4MDQxOH0sCgl7J0onLCAnPScsIDB4MDQxOX0sCgl7J0snLCAnPScsIDB4MDQxYX0sCgl7J0wnLCAnPScsIDB4MDQxYn0sCgl7J00nLCAnPScsIDB4MDQxY30sCgl7J04nLCAnPScsIDB4MDQxZH0sCgl7J08nLCAnPScsIDB4MDQxZX0sCgl7J1AnLCAnPScsIDB4MDQxZn0sCgl7J1InLCAnPScsIDB4MDQyMH0sCgl7J1MnLCAnPScsIDB4MDQyMX0sCgl7J1QnLCAnPScsIDB4MDQyMn0sCgl7J1UnLCAnPScsIDB4MDQyM30sCgl7J0YnLCAnPScsIDB4MDQyNH0sCgl7J0gnLCAnPScsIDB4MDQyNX0sCgl7J0MnLCAnPScsIDB4MDQyNn0sCgl7J0MnLCAnJScsIDB4MDQyN30sCgl7J1MnLCAnJScsIDB4MDQyOH0sCgl7J1MnLCAnYycsIDB4MDQyOX0sCgl7Jz0nLCAnIicsIDB4MDQyYX0sCgl7J1knLCAnPScsIDB4MDQyYn0sCgl7JyUnLCAnIicsIDB4MDQyY30sCgl7J0onLCAnRScsIDB4MDQyZH0sCgl7J0onLCAnVScsIDB4MDQyZX0sCgl7J0onLCAnQScsIDB4MDQyZn0sCgl7J2EnLCAnPScsIDB4MDQzMH0sCgl7J2InLCAnPScsIDB4MDQzMX0sCgl7J3YnLCAnPScsIDB4MDQzMn0sCgl7J2cnLCAnPScsIDB4MDQzM30sCgl7J2QnLCAnPScsIDB4MDQzNH0sCgl7J2UnLCAnPScsIDB4MDQzNX0sCgl7J3onLCAnJScsIDB4MDQzNn0sCgl7J3onLCAnPScsIDB4MDQzN30sCgl7J2knLCAnPScsIDB4MDQzOH0sCgl7J2onLCAnPScsIDB4MDQzOX0sCgl7J2snLCAnPScsIDB4MDQzYX0sCgl7J2wnLCAnPScsIDB4MDQzYn0sCgl7J20nLCAnPScsIDB4MDQzY30sCgl7J24nLCAnPScsIDB4MDQzZH0sCgl7J28nLCAnPScsIDB4MDQzZX0sCgl7J3AnLCAnPScsIDB4MDQzZn0sCgl7J3InLCAnPScsIDB4MDQ0MH0sCgl7J3MnLCAnPScsIDB4MDQ0MX0sCgl7J3QnLCAnPScsIDB4MDQ0Mn0sCgl7J3UnLCAnPScsIDB4MDQ0M30sCgl7J2YnLCAnPScsIDB4MDQ0NH0sCgl7J2gnLCAnPScsIDB4MDQ0NX0sCgl7J2MnLCAnPScsIDB4MDQ0Nn0sCgl7J2MnLCAnJScsIDB4MDQ0N30sCgl7J3MnLCAnJScsIDB4MDQ0OH0sCgl7J3MnLCAnYycsIDB4MDQ0OX0sCgl7Jz0nLCAnXCcnLCAweDA0NGF9LAoJeyd5JywgJz0nLCAweDA0NGJ9LAoJeyclJywgJ1wnJywgMHgwNDRjfSwKCXsnaicsICdlJywgMHgwNDRkfSwKCXsnaicsICd1JywgMHgwNDRlfSwKCXsnaicsICdhJywgMHgwNDRmfSwKCXsnaScsICdvJywgMHgwNDUxfSwKCXsnZCcsICclJywgMHgwNDUyfSwKCXsnZycsICclJywgMHgwNDUzfSwKCXsnaScsICdlJywgMHgwNDU0fSwKCXsnZCcsICdzJywgMHgwNDU1fSwKCXsnaScsICdpJywgMHgwNDU2fSwKCXsneScsICdpJywgMHgwNDU3fSwKCXsnaicsICclJywgMHgwNDU4fSwKCXsnbCcsICdqJywgMHgwNDU5fSwKCXsnbicsICdqJywgMHgwNDVhfSwKCXsndCcsICdzJywgMHgwNDVifSwKCXsnaycsICdqJywgMHgwNDVjfSwKCXsndicsICclJywgMHgwNDVlfSwKCXsnZCcsICd6JywgMHgwNDVmfSwKCXsnWScsICczJywgMHgwNDYyfSwKCXsneScsICczJywgMHgwNDYzfSwKCXsnTycsICczJywgMHgwNDZhfSwKCXsnbycsICczJywgMHgwNDZifSwKCXsnRicsICczJywgMHgwNDcyfSwKCXsnZicsICczJywgMHgwNDczfSwKCXsnVicsICczJywgMHgwNDc0fSwKCXsndicsICczJywgMHgwNDc1fSwKCXsnQycsICczJywgMHgwNDgwfSwKCXsnYycsICczJywgMHgwNDgxfSwKCXsnRycsICczJywgMHgwNDkwfSwKCXsnZycsICczJywgMHgwNDkxfSwKCXsnQScsICcrJywgMHgwNWQwfSwKCXsnQicsICcrJywgMHgwNWQxfSwKCXsnRycsICcrJywgMHgwNWQyfSwKCXsnRCcsICcrJywgMHgwNWQzfSwKCXsnSCcsICcrJywgMHgwNWQ0fSwKCXsnVycsICcrJywgMHgwNWQ1fSwKCXsnWicsICcrJywgMHgwNWQ2fSwKCXsnWCcsICcrJywgMHgwNWQ3fSwKCXsnVCcsICdqJywgMHgwNWQ4fSwKCXsnSicsICcrJywgMHgwNWQ5fSwKCXsnSycsICclJywgMHgwNWRhfSwKCXsnSycsICcrJywgMHgwNWRifSwKCXsnTCcsICcrJywgMHgwNWRjfSwKCXsnTScsICclJywgMHgwNWRkfSwKCXsnTScsICcrJywgMHgwNWRlfSwKCXsnTicsICclJywgMHgwNWRmfSwKCXsnTicsICcrJywgMHgwNWUwfSwKCXsnUycsICcrJywgMHgwNWUxfSwKCXsnRScsICcrJywgMHgwNWUyfSwKCXsnUCcsICclJywgMHgwNWUzfSwKCXsnUCcsICcrJywgMHgwNWU0fSwKCXsnWicsICdqJywgMHgwNWU1fSwKCXsnWicsICdKJywgMHgwNWU2fSwKCXsnUScsICcrJywgMHgwNWU3fSwKCXsnUicsICcrJywgMHgwNWU4fSwKCXsnUycsICdoJywgMHgwNWU5fSwKCXsnVCcsICcrJywgMHgwNWVhfSwKCXsnLCcsICcrJywgMHgwNjBjfSwKCXsnOycsICcrJywgMHgwNjFifSwKCXsnPycsICcrJywgMHgwNjFmfSwKCXsnSCcsICdcJycsIDB4MDYyMX0sCgl7J2EnLCAnTScsIDB4MDYyMn0sCgl7J2EnLCAnSCcsIDB4MDYyM30sCgl7J3cnLCAnSCcsIDB4MDYyNH0sCgl7J2EnLCAnaCcsIDB4MDYyNX0sCgl7J3knLCAnSCcsIDB4MDYyNn0sCgl7J2EnLCAnKycsIDB4MDYyN30sCgl7J2InLCAnKycsIDB4MDYyOH0sCgl7J3QnLCAnbScsIDB4MDYyOX0sCgl7J3QnLCAnKycsIDB4MDYyYX0sCgl7J3QnLCAnaycsIDB4MDYyYn0sCgl7J2cnLCAnKycsIDB4MDYyY30sCgl7J2gnLCAnaycsIDB4MDYyZH0sCgl7J3gnLCAnKycsIDB4MDYyZX0sCgl7J2QnLCAnKycsIDB4MDYyZn0sCgl7J2QnLCAnaycsIDB4MDYzMH0sCgl7J3InLCAnKycsIDB4MDYzMX0sCgl7J3onLCAnKycsIDB4MDYzMn0sCgl7J3MnLCAnKycsIDB4MDYzM30sCgl7J3MnLCAnbicsIDB4MDYzNH0sCgl7J2MnLCAnKycsIDB4MDYzNX0sCgl7J2QnLCAnZCcsIDB4MDYzNn0sCgl7J3QnLCAnaicsIDB4MDYzN30sCgl7J3onLCAnSCcsIDB4MDYzOH0sCgl7J2UnLCAnKycsIDB4MDYzOX0sCgl7J2knLCAnKycsIDB4MDYzYX0sCgl7JysnLCAnKycsIDB4MDY0MH0sCgl7J2YnLCAnKycsIDB4MDY0MX0sCgl7J3EnLCAnKycsIDB4MDY0Mn0sCgl7J2snLCAnKycsIDB4MDY0M30sCgl7J2wnLCAnKycsIDB4MDY0NH0sCgl7J20nLCAnKycsIDB4MDY0NX0sCgl7J24nLCAnKycsIDB4MDY0Nn0sCgl7J2gnLCAnKycsIDB4MDY0N30sCgl7J3cnLCAnKycsIDB4MDY0OH0sCgl7J2onLCAnKycsIDB4MDY0OX0sCgl7J3knLCAnKycsIDB4MDY0YX0sCgl7JzonLCAnKycsIDB4MDY0Yn0sCgl7JyInLCAnKycsIDB4MDY0Y30sCgl7Jz0nLCAnKycsIDB4MDY0ZH0sCgl7Jy8nLCAnKycsIDB4MDY0ZX0sCgl7J1wnJywgJysnLCAweDA2NGZ9LAoJeycxJywgJysnLCAweDA2NTB9LAoJeyczJywgJysnLCAweDA2NTF9LAoJeycwJywgJysnLCAweDA2NTJ9LAoJeydhJywgJ1MnLCAweDA2NzB9LAoJeydwJywgJysnLCAweDA2N2V9LAoJeyd2JywgJysnLCAweDA2YTR9LAoJeydnJywgJ2YnLCAweDA2YWZ9LAoJeycwJywgJ2EnLCAweDA2ZjB9LAoJeycxJywgJ2EnLCAweDA2ZjF9LAoJeycyJywgJ2EnLCAweDA2ZjJ9LAoJeyczJywgJ2EnLCAweDA2ZjN9LAoJeyc0JywgJ2EnLCAweDA2ZjR9LAoJeyc1JywgJ2EnLCAweDA2ZjV9LAoJeyc2JywgJ2EnLCAweDA2ZjZ9LAoJeyc3JywgJ2EnLCAweDA2Zjd9LAoJeyc4JywgJ2EnLCAweDA2Zjh9LAoJeyc5JywgJ2EnLCAweDA2Zjl9LAoJeydCJywgJy4nLCAweDFlMDJ9LAoJeydiJywgJy4nLCAweDFlMDN9LAoJeydCJywgJ18nLCAweDFlMDZ9LAoJeydiJywgJ18nLCAweDFlMDd9LAoJeydEJywgJy4nLCAweDFlMGF9LAoJeydkJywgJy4nLCAweDFlMGJ9LAoJeydEJywgJ18nLCAweDFlMGV9LAoJeydkJywgJ18nLCAweDFlMGZ9LAoJeydEJywgJywnLCAweDFlMTB9LAoJeydkJywgJywnLCAweDFlMTF9LAoJeydGJywgJy4nLCAweDFlMWV9LAoJeydmJywgJy4nLCAweDFlMWZ9LAoJeydHJywgJy0nLCAweDFlMjB9LAoJeydnJywgJy0nLCAweDFlMjF9LAoJeydIJywgJy4nLCAweDFlMjJ9LAoJeydoJywgJy4nLCAweDFlMjN9LAoJeydIJywgJzonLCAweDFlMjZ9LAoJeydoJywgJzonLCAweDFlMjd9LAoJeydIJywgJywnLCAweDFlMjh9LAoJeydoJywgJywnLCAweDFlMjl9LAoJeydLJywgJ1wnJywgMHgxZTMwfSwKCXsnaycsICdcJycsIDB4MWUzMX0sCgl7J0snLCAnXycsIDB4MWUzNH0sCgl7J2snLCAnXycsIDB4MWUzNX0sCgl7J0wnLCAnXycsIDB4MWUzYX0sCgl7J2wnLCAnXycsIDB4MWUzYn0sCgl7J00nLCAnXCcnLCAweDFlM2V9LAoJeydtJywgJ1wnJywgMHgxZTNmfSwKCXsnTScsICcuJywgMHgxZTQwfSwKCXsnbScsICcuJywgMHgxZTQxfSwKCXsnTicsICcuJywgMHgxZTQ0fSwKCXsnbicsICcuJywgMHgxZTQ1fSwKCXsnTicsICdfJywgMHgxZTQ4fSwKCXsnbicsICdfJywgMHgxZTQ5fSwKCXsnUCcsICdcJycsIDB4MWU1NH0sCgl7J3AnLCAnXCcnLCAweDFlNTV9LAoJeydQJywgJy4nLCAweDFlNTZ9LAoJeydwJywgJy4nLCAweDFlNTd9LAoJeydSJywgJy4nLCAweDFlNTh9LAoJeydyJywgJy4nLCAweDFlNTl9LAoJeydSJywgJ18nLCAweDFlNWV9LAoJeydyJywgJ18nLCAweDFlNWZ9LAoJeydTJywgJy4nLCAweDFlNjB9LAoJeydzJywgJy4nLCAweDFlNjF9LAoJeydUJywgJy4nLCAweDFlNmF9LAoJeyd0JywgJy4nLCAweDFlNmJ9LAoJeydUJywgJ18nLCAweDFlNmV9LAoJeyd0JywgJ18nLCAweDFlNmZ9LAoJeydWJywgJz8nLCAweDFlN2N9LAoJeyd2JywgJz8nLCAweDFlN2R9LAoJeydXJywgJyEnLCAweDFlODB9LAoJeyd3JywgJyEnLCAweDFlODF9LAoJeydXJywgJ1wnJywgMHgxZTgyfSwKCXsndycsICdcJycsIDB4MWU4M30sCgl7J1cnLCAnOicsIDB4MWU4NH0sCgl7J3cnLCAnOicsIDB4MWU4NX0sCgl7J1cnLCAnLicsIDB4MWU4Nn0sCgl7J3cnLCAnLicsIDB4MWU4N30sCgl7J1gnLCAnLicsIDB4MWU4YX0sCgl7J3gnLCAnLicsIDB4MWU4Yn0sCgl7J1gnLCAnOicsIDB4MWU4Y30sCgl7J3gnLCAnOicsIDB4MWU4ZH0sCgl7J1knLCAnLicsIDB4MWU4ZX0sCgl7J3knLCAnLicsIDB4MWU4Zn0sCgl7J1onLCAnPicsIDB4MWU5MH0sCgl7J3onLCAnPicsIDB4MWU5MX0sCgl7J1onLCAnXycsIDB4MWU5NH0sCgl7J3onLCAnXycsIDB4MWU5NX0sCgl7J2gnLCAnXycsIDB4MWU5Nn0sCgl7J3QnLCAnOicsIDB4MWU5N30sCgl7J3cnLCAnMCcsIDB4MWU5OH0sCgl7J3knLCAnMCcsIDB4MWU5OX0sCgl7J0EnLCAnMicsIDB4MWVhMn0sCgl7J2EnLCAnMicsIDB4MWVhM30sCgl7J0UnLCAnMicsIDB4MWViYX0sCgl7J2UnLCAnMicsIDB4MWViYn0sCgl7J0UnLCAnPycsIDB4MWViY30sCgl7J2UnLCAnPycsIDB4MWViZH0sCgl7J0knLCAnMicsIDB4MWVjOH0sCgl7J2knLCAnMicsIDB4MWVjOX0sCgl7J08nLCAnMicsIDB4MWVjZX0sCgl7J28nLCAnMicsIDB4MWVjZn0sCgl7J1UnLCAnMicsIDB4MWVlNn0sCgl7J3UnLCAnMicsIDB4MWVlN30sCgl7J1knLCAnIScsIDB4MWVmMn0sCgl7J3knLCAnIScsIDB4MWVmM30sCgl7J1knLCAnMicsIDB4MWVmNn0sCgl7J3knLCAnMicsIDB4MWVmN30sCgl7J1knLCAnPycsIDB4MWVmOH0sCgl7J3knLCAnPycsIDB4MWVmOX0sCgl7JzsnLCAnXCcnLCAweDFmMDB9LAoJeycsJywgJ1wnJywgMHgxZjAxfSwKCXsnOycsICchJywgMHgxZjAyfSwKCXsnLCcsICchJywgMHgxZjAzfSwKCXsnPycsICc7JywgMHgxZjA0fSwKCXsnPycsICcsJywgMHgxZjA1fSwKCXsnIScsICc6JywgMHgxZjA2fSwKCXsnPycsICc6JywgMHgxZjA3fSwKCXsnMScsICdOJywgMHgyMDAyfSwKCXsnMScsICdNJywgMHgyMDAzfSwKCXsnMycsICdNJywgMHgyMDA0fSwKCXsnNCcsICdNJywgMHgyMDA1fSwKCXsnNicsICdNJywgMHgyMDA2fSwKCXsnMScsICdUJywgMHgyMDA5fSwKCXsnMScsICdIJywgMHgyMDBhfSwKCXsnLScsICcxJywgMHgyMDEwfSwKCXsnLScsICdOJywgMHgyMDEzfSwKCXsnLScsICdNJywgMHgyMDE0fSwKCXsnLScsICczJywgMHgyMDE1fSwKCXsnIScsICcyJywgMHgyMDE2fSwKCXsnPScsICcyJywgMHgyMDE3fSwKCXsnXCcnLCAnNicsIDB4MjAxOH0sCgl7J1wnJywgJzknLCAweDIwMTl9LAoJeycuJywgJzknLCAweDIwMWF9LAoJeyc5JywgJ1wnJywgMHgyMDFifSwKCXsnIicsICc2JywgMHgyMDFjfSwKCXsnIicsICc5JywgMHgyMDFkfSwKCXsnOicsICc5JywgMHgyMDFlfSwKCXsnOScsICciJywgMHgyMDFmfSwKCXsnLycsICctJywgMHgyMDIwfSwKCXsnLycsICc9JywgMHgyMDIxfSwKCXsnLicsICcuJywgMHgyMDI1fSwKCXsnJScsICcwJywgMHgyMDMwfSwKCXsnMScsICdcJycsIDB4MjAzMn0sCgl7JzInLCAnXCcnLCAweDIwMzN9LAoJeyczJywgJ1wnJywgMHgyMDM0fSwKCXsnMScsICciJywgMHgyMDM1fSwKCXsnMicsICciJywgMHgyMDM2fSwKCXsnMycsICciJywgMHgyMDM3fSwKCXsnQycsICdhJywgMHgyMDM4fSwKCXsnPCcsICcxJywgMHgyMDM5fSwKCXsnPicsICcxJywgMHgyMDNhfSwKCXsnOicsICdYJywgMHgyMDNifSwKCXsnXCcnLCAnLScsIDB4MjAzZX0sCgl7Jy8nLCAnZicsIDB4MjA0NH0sCgl7JzAnLCAnUycsIDB4MjA3MH0sCgl7JzQnLCAnUycsIDB4MjA3NH0sCgl7JzUnLCAnUycsIDB4MjA3NX0sCgl7JzYnLCAnUycsIDB4MjA3Nn0sCgl7JzcnLCAnUycsIDB4MjA3N30sCgl7JzgnLCAnUycsIDB4MjA3OH0sCgl7JzknLCAnUycsIDB4MjA3OX0sCgl7JysnLCAnUycsIDB4MjA3YX0sCgl7Jy0nLCAnUycsIDB4MjA3Yn0sCgl7Jz0nLCAnUycsIDB4MjA3Y30sCgl7JygnLCAnUycsIDB4MjA3ZH0sCgl7JyknLCAnUycsIDB4MjA3ZX0sCgl7J24nLCAnUycsIDB4MjA3Zn0sCgl7JzAnLCAncycsIDB4MjA4MH0sCgl7JzEnLCAncycsIDB4MjA4MX0sCgl7JzInLCAncycsIDB4MjA4Mn0sCgl7JzMnLCAncycsIDB4MjA4M30sCgl7JzQnLCAncycsIDB4MjA4NH0sCgl7JzUnLCAncycsIDB4MjA4NX0sCgl7JzYnLCAncycsIDB4MjA4Nn0sCgl7JzcnLCAncycsIDB4MjA4N30sCgl7JzgnLCAncycsIDB4MjA4OH0sCgl7JzknLCAncycsIDB4MjA4OX0sCgl7JysnLCAncycsIDB4MjA4YX0sCgl7Jy0nLCAncycsIDB4MjA4Yn0sCgl7Jz0nLCAncycsIDB4MjA4Y30sCgl7JygnLCAncycsIDB4MjA4ZH0sCgl7JyknLCAncycsIDB4MjA4ZX0sCgl7J0wnLCAnaScsIDB4MjBhNH0sCgl7J1AnLCAndCcsIDB4MjBhN30sCgl7J1cnLCAnPScsIDB4MjBhOX0sCgl7Jz0nLCAnZScsIDB4MjBhY30sIC8qIGV1cm8gKi8KCXsnRScsICd1JywgMHgyMGFjfSwgLyogZXVybyAqLwoJeydvJywgJ0MnLCAweDIxMDN9LAoJeydjJywgJ28nLCAweDIxMDV9LAoJeydvJywgJ0YnLCAweDIxMDl9LAoJeydOJywgJzAnLCAweDIxMTZ9LAoJeydQJywgJ08nLCAweDIxMTd9LAoJeydSJywgJ3gnLCAweDIxMWV9LAoJeydTJywgJ00nLCAweDIxMjB9LAoJeydUJywgJ00nLCAweDIxMjJ9LAoJeydPJywgJ20nLCAweDIxMjZ9LAoJeydBJywgJ08nLCAweDIxMmJ9LAoJeycxJywgJzMnLCAweDIxNTN9LAoJeycyJywgJzMnLCAweDIxNTR9LAoJeycxJywgJzUnLCAweDIxNTV9LAoJeycyJywgJzUnLCAweDIxNTZ9LAoJeyczJywgJzUnLCAweDIxNTd9LAoJeyc0JywgJzUnLCAweDIxNTh9LAoJeycxJywgJzYnLCAweDIxNTl9LAoJeyc1JywgJzYnLCAweDIxNWF9LAoJeycxJywgJzgnLCAweDIxNWJ9LAoJeyczJywgJzgnLCAweDIxNWN9LAoJeyc1JywgJzgnLCAweDIxNWR9LAoJeyc3JywgJzgnLCAweDIxNWV9LAoJeycxJywgJ1InLCAweDIxNjB9LAoJeycyJywgJ1InLCAweDIxNjF9LAoJeyczJywgJ1InLCAweDIxNjJ9LAoJeyc0JywgJ1InLCAweDIxNjN9LAoJeyc1JywgJ1InLCAweDIxNjR9LAoJeyc2JywgJ1InLCAweDIxNjV9LAoJeyc3JywgJ1InLCAweDIxNjZ9LAoJeyc4JywgJ1InLCAweDIxNjd9LAoJeyc5JywgJ1InLCAweDIxNjh9LAoJeydhJywgJ1InLCAweDIxNjl9LAoJeydiJywgJ1InLCAweDIxNmF9LAoJeydjJywgJ1InLCAweDIxNmJ9LAoJeycxJywgJ3InLCAweDIxNzB9LAoJeycyJywgJ3InLCAweDIxNzF9LAoJeyczJywgJ3InLCAweDIxNzJ9LAoJeyc0JywgJ3InLCAweDIxNzN9LAoJeyc1JywgJ3InLCAweDIxNzR9LAoJeyc2JywgJ3InLCAweDIxNzV9LAoJeyc3JywgJ3InLCAweDIxNzZ9LAoJeyc4JywgJ3InLCAweDIxNzd9LAoJeyc5JywgJ3InLCAweDIxNzh9LAoJeydhJywgJ3InLCAweDIxNzl9LAoJeydiJywgJ3InLCAweDIxN2F9LAoJeydjJywgJ3InLCAweDIxN2J9LAoJeyc8JywgJy0nLCAweDIxOTB9LAoJeyctJywgJyEnLCAweDIxOTF9LAoJeyctJywgJz4nLCAweDIxOTJ9LAoJeyctJywgJ3YnLCAweDIxOTN9LAoJeyc8JywgJz4nLCAweDIxOTR9LAoJeydVJywgJ0QnLCAweDIxOTV9LAoJeyc8JywgJz0nLCAweDIxZDB9LAoJeyc9JywgJz4nLCAweDIxZDJ9LAoJeyc9JywgJz0nLCAweDIxZDR9LAoJeydGJywgJ0EnLCAweDIyMDB9LAoJeydkJywgJ1AnLCAweDIyMDJ9LAoJeydUJywgJ0UnLCAweDIyMDN9LAoJeycvJywgJzAnLCAweDIyMDV9LAoJeydEJywgJ0UnLCAweDIyMDZ9LAoJeydOJywgJ0InLCAweDIyMDd9LAoJeycoJywgJy0nLCAweDIyMDh9LAoJeyctJywgJyknLCAweDIyMGJ9LAoJeycqJywgJ1AnLCAweDIyMGZ9LAoJeycrJywgJ1onLCAweDIyMTF9LAoJeyctJywgJzInLCAweDIyMTJ9LAoJeyctJywgJysnLCAweDIyMTN9LAoJeycqJywgJy0nLCAweDIyMTd9LAoJeydPJywgJ2InLCAweDIyMTh9LAoJeydTJywgJ2InLCAweDIyMTl9LAoJeydSJywgJ1QnLCAweDIyMWF9LAoJeycwJywgJygnLCAweDIyMWR9LAoJeycwJywgJzAnLCAweDIyMWV9LAoJeyctJywgJ0wnLCAweDIyMWZ9LAoJeyctJywgJ1YnLCAweDIyMjB9LAoJeydQJywgJ1AnLCAweDIyMjV9LAoJeydBJywgJ04nLCAweDIyMjd9LAoJeydPJywgJ1InLCAweDIyMjh9LAoJeycoJywgJ1UnLCAweDIyMjl9LAoJeycpJywgJ1UnLCAweDIyMmF9LAoJeydJJywgJ24nLCAweDIyMmJ9LAoJeydEJywgJ0knLCAweDIyMmN9LAoJeydJJywgJ28nLCAweDIyMmV9LAoJeycuJywgJzonLCAweDIyMzR9LAoJeyc6JywgJy4nLCAweDIyMzV9LAoJeyc6JywgJ1InLCAweDIyMzZ9LAoJeyc6JywgJzonLCAweDIyMzd9LAoJeyc/JywgJzEnLCAweDIyM2N9LAoJeydDJywgJ0cnLCAweDIyM2V9LAoJeyc/JywgJy0nLCAweDIyNDN9LAoJeyc/JywgJz0nLCAweDIyNDV9LAoJeyc/JywgJzInLCAweDIyNDh9LAoJeyc9JywgJz8nLCAweDIyNGN9LAoJeydIJywgJ0knLCAweDIyNTN9LAoJeychJywgJz0nLCAweDIyNjB9LAoJeyc9JywgJzMnLCAweDIyNjF9LAoJeyc9JywgJzwnLCAweDIyNjR9LAoJeyc+JywgJz0nLCAweDIyNjV9LAoJeyc8JywgJyonLCAweDIyNmF9LAoJeycqJywgJz4nLCAweDIyNmJ9LAoJeychJywgJzwnLCAweDIyNmV9LAoJeychJywgJz4nLCAweDIyNmZ9LAoJeycoJywgJ0MnLCAweDIyODJ9LAoJeycpJywgJ0MnLCAweDIyODN9LAoJeycoJywgJ18nLCAweDIyODZ9LAoJeycpJywgJ18nLCAweDIyODd9LAoJeycwJywgJy4nLCAweDIyOTl9LAoJeycwJywgJzInLCAweDIyOWF9LAoJeyctJywgJ1QnLCAweDIyYTV9LAoJeycuJywgJ1AnLCAweDIyYzV9LAoJeyc6JywgJzMnLCAweDIyZWV9LAoJeycuJywgJzMnLCAweDIyZWZ9LAoJeydFJywgJ2gnLCAweDIzMDJ9LAoJeyc8JywgJzcnLCAweDIzMDh9LAoJeyc+JywgJzcnLCAweDIzMDl9LAoJeyc3JywgJzwnLCAweDIzMGF9LAoJeyc3JywgJz4nLCAweDIzMGJ9LAoJeydOJywgJ0knLCAweDIzMTB9LAoJeycoJywgJ0EnLCAweDIzMTJ9LAoJeydUJywgJ1InLCAweDIzMTV9LAoJeydJJywgJ3UnLCAweDIzMjB9LAoJeydJJywgJ2wnLCAweDIzMjF9LAoJeyc8JywgJy8nLCAweDIzMjl9LAoJeycvJywgJz4nLCAweDIzMmF9LAoJeydWJywgJ3MnLCAweDI0MjN9LAoJeycxJywgJ2gnLCAweDI0NDB9LAoJeyczJywgJ2gnLCAweDI0NDF9LAoJeycyJywgJ2gnLCAweDI0NDJ9LAoJeyc0JywgJ2gnLCAweDI0NDN9LAoJeycxJywgJ2onLCAweDI0NDZ9LAoJeycyJywgJ2onLCAweDI0NDd9LAoJeyczJywgJ2onLCAweDI0NDh9LAoJeyc0JywgJ2onLCAweDI0NDl9LAoJeycxJywgJy4nLCAweDI0ODh9LAoJeycyJywgJy4nLCAweDI0ODl9LAoJeyczJywgJy4nLCAweDI0OGF9LAoJeyc0JywgJy4nLCAweDI0OGJ9LAoJeyc1JywgJy4nLCAweDI0OGN9LAoJeyc2JywgJy4nLCAweDI0OGR9LAoJeyc3JywgJy4nLCAweDI0OGV9LAoJeyc4JywgJy4nLCAweDI0OGZ9LAoJeyc5JywgJy4nLCAweDI0OTB9LAoJeydoJywgJ2gnLCAweDI1MDB9LAoJeydIJywgJ0gnLCAweDI1MDF9LAoJeyd2JywgJ3YnLCAweDI1MDJ9LAoJeydWJywgJ1YnLCAweDI1MDN9LAoJeyczJywgJy0nLCAweDI1MDR9LAoJeyczJywgJ18nLCAweDI1MDV9LAoJeyczJywgJyEnLCAweDI1MDZ9LAoJeyczJywgJy8nLCAweDI1MDd9LAoJeyc0JywgJy0nLCAweDI1MDh9LAoJeyc0JywgJ18nLCAweDI1MDl9LAoJeyc0JywgJyEnLCAweDI1MGF9LAoJeyc0JywgJy8nLCAweDI1MGJ9LAoJeydkJywgJ3InLCAweDI1MGN9LAoJeydkJywgJ1InLCAweDI1MGR9LAoJeydEJywgJ3InLCAweDI1MGV9LAoJeydEJywgJ1InLCAweDI1MGZ9LAoJeydkJywgJ2wnLCAweDI1MTB9LAoJeydkJywgJ0wnLCAweDI1MTF9LAoJeydEJywgJ2wnLCAweDI1MTJ9LAoJeydMJywgJ0QnLCAweDI1MTN9LAoJeyd1JywgJ3InLCAweDI1MTR9LAoJeyd1JywgJ1InLCAweDI1MTV9LAoJeydVJywgJ3InLCAweDI1MTZ9LAoJeydVJywgJ1InLCAweDI1MTd9LAoJeyd1JywgJ2wnLCAweDI1MTh9LAoJeyd1JywgJ0wnLCAweDI1MTl9LAoJeydVJywgJ2wnLCAweDI1MWF9LAoJeydVJywgJ0wnLCAweDI1MWJ9LAoJeyd2JywgJ3InLCAweDI1MWN9LAoJeyd2JywgJ1InLCAweDI1MWR9LAoJeydWJywgJ3InLCAweDI1MjB9LAoJeydWJywgJ1InLCAweDI1MjN9LAoJeyd2JywgJ2wnLCAweDI1MjR9LAoJeyd2JywgJ0wnLCAweDI1MjV9LAoJeydWJywgJ2wnLCAweDI1Mjh9LAoJeydWJywgJ0wnLCAweDI1MmJ9LAoJeydkJywgJ2gnLCAweDI1MmN9LAoJeydkJywgJ0gnLCAweDI1MmZ9LAoJeydEJywgJ2gnLCAweDI1MzB9LAoJeydEJywgJ0gnLCAweDI1MzN9LAoJeyd1JywgJ2gnLCAweDI1MzR9LAoJeyd1JywgJ0gnLCAweDI1Mzd9LAoJeydVJywgJ2gnLCAweDI1Mzh9LAoJeydVJywgJ0gnLCAweDI1M2J9LAoJeyd2JywgJ2gnLCAweDI1M2N9LAoJeyd2JywgJ0gnLCAweDI1M2Z9LAoJeydWJywgJ2gnLCAweDI1NDJ9LAoJeydWJywgJ0gnLCAweDI1NGJ9LAoJeydGJywgJ0QnLCAweDI1NzF9LAoJeydCJywgJ0QnLCAweDI1NzJ9LAoJeydUJywgJ0InLCAweDI1ODB9LAoJeydMJywgJ0InLCAweDI1ODR9LAoJeydGJywgJ0InLCAweDI1ODh9LAoJeydsJywgJ0InLCAweDI1OGN9LAoJeydSJywgJ0InLCAweDI1OTB9LAoJeycuJywgJ1MnLCAweDI1OTF9LAoJeyc6JywgJ1MnLCAweDI1OTJ9LAoJeyc/JywgJ1MnLCAweDI1OTN9LAoJeydmJywgJ1MnLCAweDI1YTB9LAoJeydPJywgJ1MnLCAweDI1YTF9LAoJeydSJywgJ08nLCAweDI1YTJ9LAoJeydSJywgJ3InLCAweDI1YTN9LAoJeydSJywgJ0YnLCAweDI1YTR9LAoJeydSJywgJ1knLCAweDI1YTV9LAoJeydSJywgJ0gnLCAweDI1YTZ9LAoJeydSJywgJ1onLCAweDI1YTd9LAoJeydSJywgJ0snLCAweDI1YTh9LAoJeydSJywgJ1gnLCAweDI1YTl9LAoJeydzJywgJ0InLCAweDI1YWF9LAoJeydTJywgJ1InLCAweDI1YWN9LAoJeydPJywgJ3InLCAweDI1YWR9LAoJeydVJywgJ1QnLCAweDI1YjJ9LAoJeyd1JywgJ1QnLCAweDI1YjN9LAoJeydQJywgJ1InLCAweDI1YjZ9LAoJeydUJywgJ3InLCAweDI1Yjd9LAoJeydEJywgJ3QnLCAweDI1YmN9LAoJeydkJywgJ1QnLCAweDI1YmR9LAoJeydQJywgJ0wnLCAweDI1YzB9LAoJeydUJywgJ2wnLCAweDI1YzF9LAoJeydEJywgJ2InLCAweDI1YzZ9LAoJeydEJywgJ3cnLCAweDI1Yzd9LAoJeydMJywgJ1onLCAweDI1Y2F9LAoJeycwJywgJ20nLCAweDI1Y2J9LAoJeycwJywgJ28nLCAweDI1Y2V9LAoJeycwJywgJ00nLCAweDI1Y2Z9LAoJeycwJywgJ0wnLCAweDI1ZDB9LAoJeycwJywgJ1InLCAweDI1ZDF9LAoJeydTJywgJ24nLCAweDI1ZDh9LAoJeydJJywgJ2MnLCAweDI1ZDl9LAoJeydGJywgJ2QnLCAweDI1ZTJ9LAoJeydCJywgJ2QnLCAweDI1ZTN9LAoJeycqJywgJzInLCAweDI2MDV9LAoJeycqJywgJzEnLCAweDI2MDZ9LAoJeyc8JywgJ0gnLCAweDI2MWN9LAoJeyc+JywgJ0gnLCAweDI2MWV9LAoJeycwJywgJ3UnLCAweDI2M2F9LAoJeycwJywgJ1UnLCAweDI2M2J9LAoJeydTJywgJ1UnLCAweDI2M2N9LAoJeydGJywgJ20nLCAweDI2NDB9LAoJeydNJywgJ2wnLCAweDI2NDJ9LAoJeydjJywgJ1MnLCAweDI2NjB9LAoJeydjJywgJ0gnLCAweDI2NjF9LAoJeydjJywgJ0QnLCAweDI2NjJ9LAoJeydjJywgJ0MnLCAweDI2NjN9LAoJeydNJywgJ2QnLCAweDI2Njl9LAoJeydNJywgJzgnLCAweDI2NmF9LAoJeydNJywgJzInLCAweDI2NmJ9LAoJeydNJywgJ2InLCAweDI2NmR9LAoJeydNJywgJ3gnLCAweDI2NmV9LAoJeydNJywgJ1gnLCAweDI2NmZ9LAoJeydPJywgJ0snLCAweDI3MTN9LAoJeydYJywgJ1gnLCAweDI3MTd9LAoJeyctJywgJ1gnLCAweDI3MjB9LAoJeydJJywgJ1MnLCAweDMwMDB9LAoJeycsJywgJ18nLCAweDMwMDF9LAoJeycuJywgJ18nLCAweDMwMDJ9LAoJeycrJywgJyInLCAweDMwMDN9LAoJeycrJywgJ18nLCAweDMwMDR9LAoJeycqJywgJ18nLCAweDMwMDV9LAoJeyc7JywgJ18nLCAweDMwMDZ9LAoJeycwJywgJ18nLCAweDMwMDd9LAoJeyc8JywgJysnLCAweDMwMGF9LAoJeyc+JywgJysnLCAweDMwMGJ9LAoJeyc8JywgJ1wnJywgMHgzMDBjfSwKCXsnPicsICdcJycsIDB4MzAwZH0sCgl7JzwnLCAnIicsIDB4MzAwZX0sCgl7Jz4nLCAnIicsIDB4MzAwZn0sCgl7JygnLCAnIicsIDB4MzAxMH0sCgl7JyknLCAnIicsIDB4MzAxMX0sCgl7Jz0nLCAnVCcsIDB4MzAxMn0sCgl7Jz0nLCAnXycsIDB4MzAxM30sCgl7JygnLCAnXCcnLCAweDMwMTR9LAoJeycpJywgJ1wnJywgMHgzMDE1fSwKCXsnKCcsICdJJywgMHgzMDE2fSwKCXsnKScsICdJJywgMHgzMDE3fSwKCXsnLScsICc/JywgMHgzMDFjfSwKCXsnQScsICc1JywgMHgzMDQxfSwKCXsnYScsICc1JywgMHgzMDQyfSwKCXsnSScsICc1JywgMHgzMDQzfSwKCXsnaScsICc1JywgMHgzMDQ0fSwKCXsnVScsICc1JywgMHgzMDQ1fSwKCXsndScsICc1JywgMHgzMDQ2fSwKCXsnRScsICc1JywgMHgzMDQ3fSwKCXsnZScsICc1JywgMHgzMDQ4fSwKCXsnTycsICc1JywgMHgzMDQ5fSwKCXsnbycsICc1JywgMHgzMDRhfSwKCXsnaycsICdhJywgMHgzMDRifSwKCXsnZycsICdhJywgMHgzMDRjfSwKCXsnaycsICdpJywgMHgzMDRkfSwKCXsnZycsICdpJywgMHgzMDRlfSwKCXsnaycsICd1JywgMHgzMDRmfSwKCXsnZycsICd1JywgMHgzMDUwfSwKCXsnaycsICdlJywgMHgzMDUxfSwKCXsnZycsICdlJywgMHgzMDUyfSwKCXsnaycsICdvJywgMHgzMDUzfSwKCXsnZycsICdvJywgMHgzMDU0fSwKCXsncycsICdhJywgMHgzMDU1fSwKCXsneicsICdhJywgMHgzMDU2fSwKCXsncycsICdpJywgMHgzMDU3fSwKCXsneicsICdpJywgMHgzMDU4fSwKCXsncycsICd1JywgMHgzMDU5fSwKCXsneicsICd1JywgMHgzMDVhfSwKCXsncycsICdlJywgMHgzMDVifSwKCXsneicsICdlJywgMHgzMDVjfSwKCXsncycsICdvJywgMHgzMDVkfSwKCXsneicsICdvJywgMHgzMDVlfSwKCXsndCcsICdhJywgMHgzMDVmfSwKCXsnZCcsICdhJywgMHgzMDYwfSwKCXsndCcsICdpJywgMHgzMDYxfSwKCXsnZCcsICdpJywgMHgzMDYyfSwKCXsndCcsICdVJywgMHgzMDYzfSwKCXsndCcsICd1JywgMHgzMDY0fSwKCXsnZCcsICd1JywgMHgzMDY1fSwKCXsndCcsICdlJywgMHgzMDY2fSwKCXsnZCcsICdlJywgMHgzMDY3fSwKCXsndCcsICdvJywgMHgzMDY4fSwKCXsnZCcsICdvJywgMHgzMDY5fSwKCXsnbicsICdhJywgMHgzMDZhfSwKCXsnbicsICdpJywgMHgzMDZifSwKCXsnbicsICd1JywgMHgzMDZjfSwKCXsnbicsICdlJywgMHgzMDZkfSwKCXsnbicsICdvJywgMHgzMDZlfSwKCXsnaCcsICdhJywgMHgzMDZmfSwKCXsnYicsICdhJywgMHgzMDcwfSwKCXsncCcsICdhJywgMHgzMDcxfSwKCXsnaCcsICdpJywgMHgzMDcyfSwKCXsnYicsICdpJywgMHgzMDczfSwKCXsncCcsICdpJywgMHgzMDc0fSwKCXsnaCcsICd1JywgMHgzMDc1fSwKCXsnYicsICd1JywgMHgzMDc2fSwKCXsncCcsICd1JywgMHgzMDc3fSwKCXsnaCcsICdlJywgMHgzMDc4fSwKCXsnYicsICdlJywgMHgzMDc5fSwKCXsncCcsICdlJywgMHgzMDdhfSwKCXsnaCcsICdvJywgMHgzMDdifSwKCXsnYicsICdvJywgMHgzMDdjfSwKCXsncCcsICdvJywgMHgzMDdkfSwKCXsnbScsICdhJywgMHgzMDdlfSwKCXsnbScsICdpJywgMHgzMDdmfSwKCXsnbScsICd1JywgMHgzMDgwfSwKCXsnbScsICdlJywgMHgzMDgxfSwKCXsnbScsICdvJywgMHgzMDgyfSwKCXsneScsICdBJywgMHgzMDgzfSwKCXsneScsICdhJywgMHgzMDg0fSwKCXsneScsICdVJywgMHgzMDg1fSwKCXsneScsICd1JywgMHgzMDg2fSwKCXsneScsICdPJywgMHgzMDg3fSwKCXsneScsICdvJywgMHgzMDg4fSwKCXsncicsICdhJywgMHgzMDg5fSwKCXsncicsICdpJywgMHgzMDhhfSwKCXsncicsICd1JywgMHgzMDhifSwKCXsncicsICdlJywgMHgzMDhjfSwKCXsncicsICdvJywgMHgzMDhkfSwKCXsndycsICdBJywgMHgzMDhlfSwKCXsndycsICdhJywgMHgzMDhmfSwKCXsndycsICdpJywgMHgzMDkwfSwKCXsndycsICdlJywgMHgzMDkxfSwKCXsndycsICdvJywgMHgzMDkyfSwKCXsnbicsICc1JywgMHgzMDkzfSwKCXsndicsICd1JywgMHgzMDk0fSwKCXsnIicsICc1JywgMHgzMDlifSwKCXsnMCcsICc1JywgMHgzMDljfSwKCXsnKicsICc1JywgMHgzMDlkfSwKCXsnKycsICc1JywgMHgzMDllfSwKCXsnYScsICc2JywgMHgzMGExfSwKCXsnQScsICc2JywgMHgzMGEyfSwKCXsnaScsICc2JywgMHgzMGEzfSwKCXsnSScsICc2JywgMHgzMGE0fSwKCXsndScsICc2JywgMHgzMGE1fSwKCXsnVScsICc2JywgMHgzMGE2fSwKCXsnZScsICc2JywgMHgzMGE3fSwKCXsnRScsICc2JywgMHgzMGE4fSwKCXsnbycsICc2JywgMHgzMGE5fSwKCXsnTycsICc2JywgMHgzMGFhfSwKCXsnSycsICdhJywgMHgzMGFifSwKCXsnRycsICdhJywgMHgzMGFjfSwKCXsnSycsICdpJywgMHgzMGFkfSwKCXsnRycsICdpJywgMHgzMGFlfSwKCXsnSycsICd1JywgMHgzMGFmfSwKCXsnRycsICd1JywgMHgzMGIwfSwKCXsnSycsICdlJywgMHgzMGIxfSwKCXsnRycsICdlJywgMHgzMGIyfSwKCXsnSycsICdvJywgMHgzMGIzfSwKCXsnRycsICdvJywgMHgzMGI0fSwKCXsnUycsICdhJywgMHgzMGI1fSwKCXsnWicsICdhJywgMHgzMGI2fSwKCXsnUycsICdpJywgMHgzMGI3fSwKCXsnWicsICdpJywgMHgzMGI4fSwKCXsnUycsICd1JywgMHgzMGI5fSwKCXsnWicsICd1JywgMHgzMGJhfSwKCXsnUycsICdlJywgMHgzMGJifSwKCXsnWicsICdlJywgMHgzMGJjfSwKCXsnUycsICdvJywgMHgzMGJkfSwKCXsnWicsICdvJywgMHgzMGJlfSwKCXsnVCcsICdhJywgMHgzMGJmfSwKCXsnRCcsICdhJywgMHgzMGMwfSwKCXsnVCcsICdpJywgMHgzMGMxfSwKCXsnRCcsICdpJywgMHgzMGMyfSwKCXsnVCcsICdVJywgMHgzMGMzfSwKCXsnVCcsICd1JywgMHgzMGM0fSwKCXsnRCcsICd1JywgMHgzMGM1fSwKCXsnVCcsICdlJywgMHgzMGM2fSwKCXsnRCcsICdlJywgMHgzMGM3fSwKCXsnVCcsICdvJywgMHgzMGM4fSwKCXsnRCcsICdvJywgMHgzMGM5fSwKCXsnTicsICdhJywgMHgzMGNhfSwKCXsnTicsICdpJywgMHgzMGNifSwKCXsnTicsICd1JywgMHgzMGNjfSwKCXsnTicsICdlJywgMHgzMGNkfSwKCXsnTicsICdvJywgMHgzMGNlfSwKCXsnSCcsICdhJywgMHgzMGNmfSwKCXsnQicsICdhJywgMHgzMGQwfSwKCXsnUCcsICdhJywgMHgzMGQxfSwKCXsnSCcsICdpJywgMHgzMGQyfSwKCXsnQicsICdpJywgMHgzMGQzfSwKCXsnUCcsICdpJywgMHgzMGQ0fSwKCXsnSCcsICd1JywgMHgzMGQ1fSwKCXsnQicsICd1JywgMHgzMGQ2fSwKCXsnUCcsICd1JywgMHgzMGQ3fSwKCXsnSCcsICdlJywgMHgzMGQ4fSwKCXsnQicsICdlJywgMHgzMGQ5fSwKCXsnUCcsICdlJywgMHgzMGRhfSwKCXsnSCcsICdvJywgMHgzMGRifSwKCXsnQicsICdvJywgMHgzMGRjfSwKCXsnUCcsICdvJywgMHgzMGRkfSwKCXsnTScsICdhJywgMHgzMGRlfSwKCXsnTScsICdpJywgMHgzMGRmfSwKCXsnTScsICd1JywgMHgzMGUwfSwKCXsnTScsICdlJywgMHgzMGUxfSwKCXsnTScsICdvJywgMHgzMGUyfSwKCXsnWScsICdBJywgMHgzMGUzfSwKCXsnWScsICdhJywgMHgzMGU0fSwKCXsnWScsICdVJywgMHgzMGU1fSwKCXsnWScsICd1JywgMHgzMGU2fSwKCXsnWScsICdPJywgMHgzMGU3fSwKCXsnWScsICdvJywgMHgzMGU4fSwKCXsnUicsICdhJywgMHgzMGU5fSwKCXsnUicsICdpJywgMHgzMGVhfSwKCXsnUicsICd1JywgMHgzMGVifSwKCXsnUicsICdlJywgMHgzMGVjfSwKCXsnUicsICdvJywgMHgzMGVkfSwKCXsnVycsICdBJywgMHgzMGVlfSwKCXsnVycsICdhJywgMHgzMGVmfSwKCXsnVycsICdpJywgMHgzMGYwfSwKCXsnVycsICdlJywgMHgzMGYxfSwKCXsnVycsICdvJywgMHgzMGYyfSwKCXsnTicsICc2JywgMHgzMGYzfSwKCXsnVicsICd1JywgMHgzMGY0fSwKCXsnSycsICdBJywgMHgzMGY1fSwKCXsnSycsICdFJywgMHgzMGY2fSwKCXsnVicsICdhJywgMHgzMGY3fSwKCXsnVicsICdpJywgMHgzMGY4fSwKCXsnVicsICdlJywgMHgzMGY5fSwKCXsnVicsICdvJywgMHgzMGZhfSwKCXsnLicsICc2JywgMHgzMGZifSwKCXsnLScsICc2JywgMHgzMGZjfSwKCXsnKicsICc2JywgMHgzMGZkfSwKCXsnKycsICc2JywgMHgzMGZlfSwKCXsnYicsICc0JywgMHgzMTA1fSwKCXsncCcsICc0JywgMHgzMTA2fSwKCXsnbScsICc0JywgMHgzMTA3fSwKCXsnZicsICc0JywgMHgzMTA4fSwKCXsnZCcsICc0JywgMHgzMTA5fSwKCXsndCcsICc0JywgMHgzMTBhfSwKCXsnbicsICc0JywgMHgzMTBifSwKCXsnbCcsICc0JywgMHgzMTBjfSwKCXsnZycsICc0JywgMHgzMTBkfSwKCXsnaycsICc0JywgMHgzMTBlfSwKCXsnaCcsICc0JywgMHgzMTBmfSwKCXsnaicsICc0JywgMHgzMTEwfSwKCXsncScsICc0JywgMHgzMTExfSwKCXsneCcsICc0JywgMHgzMTEyfSwKCXsneicsICdoJywgMHgzMTEzfSwKCXsnYycsICdoJywgMHgzMTE0fSwKCXsncycsICdoJywgMHgzMTE1fSwKCXsncicsICc0JywgMHgzMTE2fSwKCXsneicsICc0JywgMHgzMTE3fSwKCXsnYycsICc0JywgMHgzMTE4fSwKCXsncycsICc0JywgMHgzMTE5fSwKCXsnYScsICc0JywgMHgzMTFhfSwKCXsnbycsICc0JywgMHgzMTFifSwKCXsnZScsICc0JywgMHgzMTFjfSwKCXsnYScsICdpJywgMHgzMTFlfSwKCXsnZScsICdpJywgMHgzMTFmfSwKCXsnYScsICd1JywgMHgzMTIwfSwKCXsnbycsICd1JywgMHgzMTIxfSwKCXsnYScsICduJywgMHgzMTIyfSwKCXsnZScsICduJywgMHgzMTIzfSwKCXsnYScsICdOJywgMHgzMTI0fSwKCXsnZScsICdOJywgMHgzMTI1fSwKCXsnZScsICdyJywgMHgzMTI2fSwKCXsnaScsICc0JywgMHgzMTI3fSwKCXsndScsICc0JywgMHgzMTI4fSwKCXsnaScsICd1JywgMHgzMTI5fSwKCXsndicsICc0JywgMHgzMTJhfSwKCXsnbicsICdHJywgMHgzMTJifSwKCXsnZycsICduJywgMHgzMTJjfSwKCXsnMScsICdjJywgMHgzMjIwfSwKCXsnMicsICdjJywgMHgzMjIxfSwKCXsnMycsICdjJywgMHgzMjIyfSwKCXsnNCcsICdjJywgMHgzMjIzfSwKCXsnNScsICdjJywgMHgzMjI0fSwKCXsnNicsICdjJywgMHgzMjI1fSwKCXsnNycsICdjJywgMHgzMjI2fSwKCXsnOCcsICdjJywgMHgzMjI3fSwKCXsnOScsICdjJywgMHgzMjI4fSwKCS8qIGNvZGUgcG9pbnRzIDB4ZTAwMCAtIDB4ZWZmZiBleGNsdWRlZCwgdGhleSBoYXZlIG5vIGFzc2lnbmVkCgkgKiBjaGFyYWN0ZXJzLCBvbmx5IHVzZWQgaW4gcHJvcG9zYWxzLiAqLwoJeydmJywgJ2YnLCAweGZiMDB9LAoJeydmJywgJ2knLCAweGZiMDF9LAoJeydmJywgJ2wnLCAweGZiMDJ9LAoJeydmJywgJ3QnLCAweGZiMDV9LAoJeydzJywgJ3QnLCAweGZiMDZ9LAojICAgICAgZW5kaWYgLyogRkVBVF9NQllURSAqLwoKCS8qIFZpbSA1LnggY29tcGF0aWJsZSBkaWdyYXBocyB0aGF0IGRvbid0IGNvbmZsaWN0IHdpdGggdGhlIGFib3ZlICovCgl7J34nLCAnIScsIDE2MX0sCS8qIKEgKi8KCXsnYycsICd8JywgMTYyfSwJLyogoiAqLwoJeyckJywgJyQnLCAxNjN9LAkvKiCjICovCgl7J28nLCAneCcsIDE2NH0sCS8qIKQgLSBjdXJyZW5jeSBzeW1ib2wgaW4gSVNPIDg4NTktMSAqLwoJeydZJywgJy0nLCAxNjV9LAkvKiClICovCgl7J3wnLCAnfCcsIDE2Nn0sCS8qIKYgKi8KCXsnYycsICdPJywgMTY5fSwJLyogqSAqLwoJeyctJywgJywnLCAxNzJ9LAkvKiCsICovCgl7Jy0nLCAnPScsIDE3NX0sCS8qIK8gKi8KCXsnficsICdvJywgMTc2fSwJLyogsCAqLwoJeycyJywgJzInLCAxNzh9LAkvKiCyICovCgl7JzMnLCAnMycsIDE3OX0sCS8qILMgKi8KCXsncCcsICdwJywgMTgyfSwJLyogtiAqLwoJeyd+JywgJy4nLCAxODN9LAkvKiC3ICovCgl7JzEnLCAnMScsIDE4NX0sCS8qILkgKi8KCXsnficsICc/JywgMTkxfSwJLyogvyAqLwoJeydBJywgJ2AnLCAxOTJ9LAkvKiDAICovCgl7J0EnLCAnXicsIDE5NH0sCS8qIMIgKi8KCXsnQScsICd+JywgMTk1fSwJLyogwyAqLwoJeydBJywgJyInLCAxOTZ9LAkvKiDEICovCgl7J0EnLCAnQCcsIDE5N30sCS8qIMUgKi8KCXsnRScsICdgJywgMjAwfSwJLyogyCAqLwoJeydFJywgJ14nLCAyMDJ9LAkvKiDKICovCgl7J0UnLCAnIicsIDIwM30sCS8qIMsgKi8KCXsnSScsICdgJywgMjA0fSwJLyogzCAqLwoJeydJJywgJ14nLCAyMDZ9LAkvKiDOICovCgl7J0knLCAnIicsIDIwN30sCS8qIM8gKi8KCXsnTicsICd+JywgMjA5fSwJLyog0SAqLwoJeydPJywgJ2AnLCAyMTB9LAkvKiDSICovCgl7J08nLCAnXicsIDIxMn0sCS8qINQgKi8KCXsnTycsICd+JywgMjEzfSwJLyog1SAqLwoJeycvJywgJ1xcJywgMjE1fSwJLyog1yAtIG11bHRpcGxpY2F0aW9uIHN5bWJvbCBpbiBJU08gODg1OS0xICovCgl7J1UnLCAnYCcsIDIxN30sCS8qINkgKi8KCXsnVScsICdeJywgMjE5fSwJLyog2yAqLwoJeydJJywgJ3AnLCAyMjJ9LAkvKiDeICovCgl7J2EnLCAnYCcsIDIyNH0sCS8qIOAgKi8KCXsnYScsICdeJywgMjI2fSwJLyog4iAqLwoJeydhJywgJ34nLCAyMjd9LAkvKiDjICovCgl7J2EnLCAnIicsIDIyOH0sCS8qIOQgKi8KCXsnYScsICdAJywgMjI5fSwJLyog5SAqLwoJeydlJywgJ2AnLCAyMzJ9LAkvKiDoICovCgl7J2UnLCAnXicsIDIzNH0sCS8qIOogKi8KCXsnZScsICciJywgMjM1fSwJLyog6yAqLwoJeydpJywgJ2AnLCAyMzZ9LAkvKiDsICovCgl7J2knLCAnXicsIDIzOH0sCS8qIO4gKi8KCXsnbicsICd+JywgMjQxfSwJLyog8SAqLwoJeydvJywgJ2AnLCAyNDJ9LAkvKiDyICovCgl7J28nLCAnXicsIDI0NH0sCS8qIPQgKi8KCXsnbycsICd+JywgMjQ1fSwJLyog9SAqLwoJeyd1JywgJ2AnLCAyNDl9LAkvKiD5ICovCgl7J3UnLCAnXicsIDI1MX0sCS8qIPsgKi8KCXsneScsICciJywgMjU1fSwJLyogeCBYWCAqLwoKCXtOVUwsIE5VTCwgTlVMfQogICAgICAgfTsKCiMgICAgIGVuZGlmIC8qIE9MRF9ESUdSQVBIUyAqLwoKIyAgICBlbmRpZiAvKiBNYWNpbnRvc2ggKi8KIyAgIGVuZGlmIC8qIEVCQ0RJQyAqLwojICBlbmRpZiAgICAvKiAhSFBVWF9ESUdSQVBIUyAqLwojIGVuZGlmCS8qICFfX01JTlRfXyAqLwojZW5kaWYJLyogIU1TRE9TICYmICFPUzIgKi8KCi8qCiAqIGhhbmRsZSBkaWdyYXBocyBhZnRlciB0eXBpbmcgYSBjaGFyYWN0ZXIKICovCiAgICBpbnQKZG9fZGlncmFwaChjKQogICAgaW50CSAgICBjOwp7CiAgICBzdGF0aWMgaW50CWJhY2tzcGFjZWQ7CS8qIGNoYXJhY3RlciBiZWZvcmUgS19CUyAqLwogICAgc3RhdGljIGludAlsYXN0Y2hhcjsJLyogbGFzdCB0eXBlZCBjaGFyYWN0ZXIgKi8KCiAgICBpZiAoYyA9PSAtMSkJCS8qIGluaXQgdmFsdWVzICovCiAgICB7CgliYWNrc3BhY2VkID0gLTE7CiAgICB9CiAgICBlbHNlIGlmIChwX2RnKQogICAgewoJaWYgKGJhY2tzcGFjZWQgPj0gMCkKCSAgICBjID0gZ2V0ZGlncmFwaChiYWNrc3BhY2VkLCBjLCBGQUxTRSk7CgliYWNrc3BhY2VkID0gLTE7CglpZiAoKGMgPT0gS19CUyB8fCBjID09IEN0cmxfSCkgJiYgbGFzdGNoYXIgPj0gMCkKCSAgICBiYWNrc3BhY2VkID0gbGFzdGNoYXI7CiAgICB9CiAgICBsYXN0Y2hhciA9IGM7CiAgICByZXR1cm4gYzsKfQoKLyoKICogR2V0IGEgZGlncmFwaC4gIFVzZWQgYWZ0ZXIgdHlwaW5nIENUUkwtSyBvbiB0aGUgY29tbWFuZCBsaW5lIG9yIGluIG5vcm1hbAogKiBtb2RlLgogKiBSZXR1cm5zIGNvbXBvc2VkIGNoYXJhY3Rlciwgb3IgTlVMIHdoZW4gRVNDIHdhcyB1c2VkLgogKi8KICAgIGludApnZXRfZGlncmFwaChjbWRsaW5lKQogICAgaW50CQljbWRsaW5lOwkvKiBUUlVFIHdoZW4gY2FsbGVkIGZyb20gdGhlIGNtZGxpbmUgKi8KewogICAgaW50CQljLCBjYzsKCiAgICArK25vX21hcHBpbmc7CiAgICArK2FsbG93X2tleXM7CiAgICBjID0gcGxhaW5fdmdldGMoKTsKICAgIC0tbm9fbWFwcGluZzsKICAgIC0tYWxsb3dfa2V5czsKICAgIGlmIChjICE9IEVTQykJCS8qIEVTQyBjYW5jZWxzIENUUkwtSyAqLwogICAgewoJaWYgKElTX1NQRUNJQUwoYykpCS8qIGluc2VydCBzcGVjaWFsIGtleSBjb2RlICovCgkgICAgcmV0dXJuIGM7CglpZiAoY21kbGluZSkKCXsKCSAgICBpZiAoY2hhcjJjZWxscyhjKSA9PSAxCiNpZiBkZWZpbmVkKEZFQVRfQ1JZUFQpIHx8IGRlZmluZWQoRkVBVF9FVkFMKQoJCSAgICAmJiBjbWRsaW5lX3N0YXIgPT0gMAojZW5kaWYKCQkgICAgKQoJCXB1dGNtZGxpbmUoYywgVFJVRSk7Cgl9CiNpZmRlZiBGRUFUX0NNRExfSU5GTwoJZWxzZQoJICAgIGFkZF90b19zaG93Y21kKGMpOwojZW5kaWYKCSsrbm9fbWFwcGluZzsKCSsrYWxsb3dfa2V5czsKCWNjID0gcGxhaW5fdmdldGMoKTsKCS0tbm9fbWFwcGluZzsKCS0tYWxsb3dfa2V5czsKCWlmIChjYyAhPSBFU0MpCSAgICAvKiBFU0MgY2FuY2VscyBDVFJMLUsgKi8KCSAgICByZXR1cm4gZ2V0ZGlncmFwaChjLCBjYywgVFJVRSk7CiAgICB9CiAgICByZXR1cm4gTlVMOwp9CgovKgogKiBMb29rdXAgdGhlIHBhaXIgImNoYXIxIiwgImNoYXIyIiBpbiB0aGUgZGlncmFwaCB0YWJsZXMuCiAqIElmIG5vIG1hdGNoLCByZXR1cm4gImNoYXIyIi4KICogSWYgIm1ldGFfY2hhciIgaXMgVFJVRSBhbmQgImNoYXIxIiBpcyBhIHNwYWNlLCByZXR1cm4gImNoYXIyIiB8IDB4ODAuCiAqLwogICAgc3RhdGljIGludApnZXRleGFjdGRpZ3JhcGgoY2hhcjEsIGNoYXIyLCBtZXRhX2NoYXIpCiAgICBpbnQJCWNoYXIxOwogICAgaW50CQljaGFyMjsKICAgIGludAkJbWV0YV9jaGFyOwp7CiAgICBpbnQJCWk7CiAgICBpbnQJCXJldHZhbCA9IDA7CiAgICBkaWdyX1QJKmRwOwoKICAgIGlmIChJU19TUEVDSUFMKGNoYXIxKSB8fCBJU19TUEVDSUFMKGNoYXIyKSkKCXJldHVybiBjaGFyMjsKCiAgICAvKgogICAgICogU2VhcmNoIHVzZXIgZGlncmFwaHMgZmlyc3QuCiAgICAgKi8KICAgIGRwID0gKGRpZ3JfVCAqKXVzZXJfZGlncmFwaHMuZ2FfZGF0YTsKICAgIGZvciAoaSA9IDA7IGkgPCB1c2VyX2RpZ3JhcGhzLmdhX2xlbjsgKytpKQogICAgewoJaWYgKChpbnQpZHAtPmNoYXIxID09IGNoYXIxICYmIChpbnQpZHAtPmNoYXIyID09IGNoYXIyKQoJewoJICAgIHJldHZhbCA9IGRwLT5yZXN1bHQ7CgkgICAgYnJlYWs7Cgl9CgkrK2RwOwogICAgfQoKICAgIC8qCiAgICAgKiBTZWFyY2ggZGVmYXVsdCBkaWdyYXBocy4KICAgICAqLwogICAgaWYgKHJldHZhbCA9PSAwKQogICAgewoJZHAgPSBkaWdyYXBoZGVmYXVsdDsKCWZvciAoaSA9IDA7IGRwLT5jaGFyMSAhPSAwOyArK2kpCgl7CgkgICAgaWYgKChpbnQpZHAtPmNoYXIxID09IGNoYXIxICYmIChpbnQpZHAtPmNoYXIyID09IGNoYXIyKQoJICAgIHsKCQlyZXR2YWwgPSBkcC0+cmVzdWx0OwoJCWJyZWFrOwoJICAgIH0KCSAgICArK2RwOwoJfQogICAgfQojaWZkZWYgRkVBVF9NQllURQojIGlmZGVmIFVTRV9VTklDT0RFX0RJR1JBUEhTCiAgICBpZiAocmV0dmFsICE9IDAgJiYgIWVuY191dGY4KQogICAgewoJY2hhcl91CSAgICBidWZbNl0sICp0bzsKCXZpbWNvbnZfVCAgIHZjOwoKCS8qCgkgKiBDb252ZXJ0IHRoZSBVbmljb2RlIGRpZ3JhcGggdG8gJ2VuY29kaW5nJy4KCSAqLwoJaSA9IHV0Zl9jaGFyMmJ5dGVzKHJldHZhbCwgYnVmKTsKCXJldHZhbCA9IDA7Cgl2Yy52Y190eXBlID0gQ09OVl9OT05FOwoJaWYgKGNvbnZlcnRfc2V0dXAoJnZjLCAoY2hhcl91ICopInV0Zi04IiwgcF9lbmMpID09IE9LKQoJewoJICAgIHZjLnZjX2ZhaWwgPSBUUlVFOwoJICAgIHRvID0gc3RyaW5nX2NvbnZlcnQoJnZjLCBidWYsICZpKTsKCSAgICBpZiAodG8gIT0gTlVMTCkKCSAgICB7CgkJcmV0dmFsID0gKCptYl9wdHIyY2hhcikodG8pOwoJCXZpbV9mcmVlKHRvKTsKCSAgICB9CgkgICAgKHZvaWQpY29udmVydF9zZXR1cCgmdmMsIE5VTEwsIE5VTEwpOwoJfQogICAgfQojIGVuZGlmCgogICAgLyogSWdub3JlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyB3aGVuIG5vdCBpbiBtdWx0aS1ieXRlIG1vZGUuICovCiAgICBpZiAoIWhhc19tYnl0ZSAmJiByZXR2YWwgPiAweGZmKQoJcmV0dmFsID0gMDsKI2VuZGlmCgogICAgaWYgKHJldHZhbCA9PSAwKQkJLyogZGlncmFwaCBkZWxldGVkIG9yIG5vdCBmb3VuZCAqLwogICAgewoJaWYgKGNoYXIxID09ICcgJyAmJiBtZXRhX2NoYXIpCS8qIDxzcGFjZT4gPGNoYXI+IC0tPiBtZXRhLWNoYXIgKi8KCSAgICByZXR1cm4gKGNoYXIyIHwgMHg4MCk7CglyZXR1cm4gY2hhcjI7CiAgICB9CiAgICByZXR1cm4gcmV0dmFsOwp9CgovKgogKiBHZXQgZGlncmFwaC4KICogQWxsb3cgZm9yIGJvdGggY2hhcjEtY2hhcjIgYW5kIGNoYXIyLWNoYXIxCiAqLwogICAgaW50CmdldGRpZ3JhcGgoY2hhcjEsIGNoYXIyLCBtZXRhX2NoYXIpCiAgICBpbnQJY2hhcjE7CiAgICBpbnQJY2hhcjI7CiAgICBpbnQJbWV0YV9jaGFyOwp7CiAgICBpbnQJICAgIHJldHZhbDsKCiAgICBpZiAoKChyZXR2YWwgPSBnZXRleGFjdGRpZ3JhcGgoY2hhcjEsIGNoYXIyLCBtZXRhX2NoYXIpKSA9PSBjaGFyMikKCSAgICAmJiAoY2hhcjEgIT0gY2hhcjIpCgkgICAgJiYgKChyZXR2YWwgPSBnZXRleGFjdGRpZ3JhcGgoY2hhcjIsIGNoYXIxLCBtZXRhX2NoYXIpKSA9PSBjaGFyMSkpCglyZXR1cm4gY2hhcjI7CiAgICByZXR1cm4gcmV0dmFsOwp9CgovKgogKiBBZGQgdGhlIGRpZ3JhcGhzIGluIHRoZSBhcmd1bWVudCB0byB0aGUgZGlncmFwaCB0YWJsZS4KICogZm9ybWF0OiB7YzF9e2MyfSBjaGFyIHtjMX17YzJ9IGNoYXIgLi4uCiAqLwogICAgdm9pZApwdXRkaWdyYXBoKHN0cikKICAgIGNoYXJfdSAqc3RyOwp7CiAgICBpbnQJCWNoYXIxLCBjaGFyMiwgbjsKICAgIGludAkJaTsKICAgIGRpZ3JfVAkqZHA7CgogICAgd2hpbGUgKCpzdHIgIT0gTlVMKQogICAgewoJc3RyID0gc2tpcHdoaXRlKHN0cik7CglpZiAoKnN0ciA9PSBOVUwpCgkgICAgcmV0dXJuOwoJY2hhcjEgPSAqc3RyKys7CgljaGFyMiA9ICpzdHIrKzsKCWlmIChjaGFyMiA9PSAwKQoJewoJICAgIEVNU0coXyhlX2ludmFyZykpOwoJICAgIHJldHVybjsKCX0KCWlmIChjaGFyMSA9PSBFU0MgfHwgY2hhcjIgPT0gRVNDKQoJewoJICAgIEVNU0coXygiRTEwNDogRXNjYXBlIG5vdCBhbGxvd2VkIGluIGRpZ3JhcGgiKSk7CgkgICAgcmV0dXJuOwoJfQoJc3RyID0gc2tpcHdoaXRlKHN0cik7CglpZiAoIVZJTV9JU0RJR0lUKCpzdHIpKQoJewoJICAgIEVNU0coXyhlX251bWJlcl9leHApKTsKCSAgICByZXR1cm47Cgl9CgluID0gZ2V0ZGlnaXRzKCZzdHIpOwoKCS8qIElmIHRoZSBkaWdyYXBoIGFscmVhZHkgZXhpc3RzLCByZXBsYWNlIHRoZSByZXN1bHQuICovCglkcCA9IChkaWdyX1QgKil1c2VyX2RpZ3JhcGhzLmdhX2RhdGE7Cglmb3IgKGkgPSAwOyBpIDwgdXNlcl9kaWdyYXBocy5nYV9sZW47ICsraSkKCXsKCSAgICBpZiAoKGludClkcC0+Y2hhcjEgPT0gY2hhcjEgJiYgKGludClkcC0+Y2hhcjIgPT0gY2hhcjIpCgkgICAgewoJCWRwLT5yZXN1bHQgPSBuOwoJCWJyZWFrOwoJICAgIH0KCSAgICArK2RwOwoJfQoKCS8qIEFkZCBhIG5ldyBkaWdyYXBoIHRvIHRoZSB0YWJsZS4gKi8KCWlmIChpID09IHVzZXJfZGlncmFwaHMuZ2FfbGVuKQoJewoJICAgIGlmIChnYV9ncm93KCZ1c2VyX2RpZ3JhcGhzLCAxKSA9PSBPSykKCSAgICB7CgkJZHAgPSAoZGlncl9UICopdXNlcl9kaWdyYXBocy5nYV9kYXRhICsgdXNlcl9kaWdyYXBocy5nYV9sZW47CgkJZHAtPmNoYXIxID0gY2hhcjE7CgkJZHAtPmNoYXIyID0gY2hhcjI7CgkJZHAtPnJlc3VsdCA9IG47CgkJKyt1c2VyX2RpZ3JhcGhzLmdhX2xlbjsKCSAgICB9Cgl9CiAgICB9Cn0KCiAgICB2b2lkCmxpc3RkaWdyYXBocygpCnsKICAgIGludAkJaTsKICAgIGRpZ3JfVAkqZHA7CgogICAgbXNnX3B1dGNoYXIoJ1xuJyk7CgogICAgZHAgPSBkaWdyYXBoZGVmYXVsdDsKICAgIGZvciAoaSA9IDA7IGRwLT5jaGFyMSAhPSBOVUwgJiYgIWdvdF9pbnQ7ICsraSkKICAgIHsKI2lmIGRlZmluZWQoVVNFX1VOSUNPREVfRElHUkFQSFMpICYmIGRlZmluZWQoRkVBVF9NQllURSkKCWRpZ3JfVCB0bXA7CgoJLyogTWF5IG5lZWQgdG8gY29udmVydCB0aGUgcmVzdWx0IHRvICdlbmNvZGluZycuICovCgl0bXAuY2hhcjEgPSBkcC0+Y2hhcjE7Cgl0bXAuY2hhcjIgPSBkcC0+Y2hhcjI7Cgl0bXAucmVzdWx0ID0gZ2V0ZXhhY3RkaWdyYXBoKHRtcC5jaGFyMSwgdG1wLmNoYXIyLCBGQUxTRSk7CglpZiAodG1wLnJlc3VsdCAhPSAwICYmIHRtcC5yZXN1bHQgIT0gdG1wLmNoYXIyCgkJCQkJICAmJiAoaGFzX21ieXRlIHx8IHRtcC5yZXN1bHQgPD0gMjU1KSkKCSAgICBwcmludGRpZ3JhcGgoJnRtcCk7CiNlbHNlCgoJaWYgKGdldGV4YWN0ZGlncmFwaChkcC0+Y2hhcjEsIGRwLT5jaGFyMiwgRkFMU0UpID09IGRwLT5yZXN1bHQKIyBpZmRlZiBGRUFUX01CWVRFCgkJJiYgKGhhc19tYnl0ZSB8fCBkcC0+cmVzdWx0IDw9IDI1NSkKIyBlbmRpZgoJCSkKCSAgICBwcmludGRpZ3JhcGgoZHApOwojZW5kaWYKCSsrZHA7Cgl1aV9icmVha2NoZWNrKCk7CiAgICB9CgogICAgZHAgPSAoZGlncl9UICopdXNlcl9kaWdyYXBocy5nYV9kYXRhOwogICAgZm9yIChpID0gMDsgaSA8IHVzZXJfZGlncmFwaHMuZ2FfbGVuICYmICFnb3RfaW50OyArK2kpCiAgICB7CglwcmludGRpZ3JhcGgoZHApOwoJdWlfYnJlYWtjaGVjaygpOwoJKytkcDsKICAgIH0KICAgIG11c3RfcmVkcmF3ID0gQ0xFQVI7ICAgIC8qIGNsZWFyIHNjcmVlbiwgYmVjYXVzZSBzb21lIGRpZ3JhcGhzIG1heSBiZQoJCQkgICAgICAgd3JvbmcsIGluIHdoaWNoIGNhc2Ugd2UgbWVzc2VkIHVwIFNjcmVlbkxpbmVzICovCn0KCiAgICBzdGF0aWMgdm9pZApwcmludGRpZ3JhcGgoZHApCiAgICBkaWdyX1QJKmRwOwp7CiAgICBjaGFyX3UJYnVmWzMwXTsKICAgIGNoYXJfdQkqcDsKCiAgICBpbnQJCWxpc3Rfd2lkdGg7CgogICAgaWYgKChkeV9mbGFncyAmIERZX1VIRVgpCiNpZmRlZiBGRUFUX01CWVRFCgkgICAgfHwgaGFzX21ieXRlCiNlbmRpZgoJICAgICkKCWxpc3Rfd2lkdGggPSAxMzsKICAgIGVsc2UKCWxpc3Rfd2lkdGggPSAxMTsKCiAgICBpZiAoZHAtPnJlc3VsdCAhPSAwKQogICAgewoJaWYgKG1zZ19jb2wgPiBDb2x1bW5zIC0gbGlzdF93aWR0aCkKCSAgICBtc2dfcHV0Y2hhcignXG4nKTsKCWlmIChtc2dfY29sKQoJICAgIHdoaWxlIChtc2dfY29sICUgbGlzdF93aWR0aCAhPSAwKQoJCW1zZ19wdXRjaGFyKCcgJyk7CgoJcCA9IGJ1ZjsKCSpwKysgPSBkcC0+Y2hhcjE7CgkqcCsrID0gZHAtPmNoYXIyOwoJKnArKyA9ICcgJzsKI2lmZGVmIEZFQVRfTUJZVEUKCWlmIChoYXNfbWJ5dGUpCgl7CgkgICAgLyogYWRkIGEgc3BhY2UgdG8gZHJhdyBhIGNvbXBvc2luZyBjaGFyIG9uICovCgkgICAgaWYgKGVuY191dGY4ICYmIHV0Zl9pc2NvbXBvc2luZyhkcC0+cmVzdWx0KSkKCQkqcCsrID0gJyAnOwoJICAgIHAgKz0gKCptYl9jaGFyMmJ5dGVzKShkcC0+cmVzdWx0LCBwKTsKCX0KCWVsc2UKI2VuZGlmCgkgICAgKnArKyA9IChjaGFyX3UpZHAtPnJlc3VsdDsKCWlmIChjaGFyMmNlbGxzKGRwLT5yZXN1bHQpID09IDEpCgkgICAgKnArKyA9ICcgJzsKCXZpbV9zbnByaW50ZigoY2hhciAqKXAsIHNpemVvZihidWYpIC0gKHAgLSBidWYpLCAiICUzZCIsIGRwLT5yZXN1bHQpOwoJbXNnX291dHRyYW5zKGJ1Zik7CiAgICB9Cn0KCiNlbmRpZiAvKiBGRUFUX0RJR1JBUEhTICovCgojaWYgZGVmaW5lZChGRUFUX0tFWU1BUCkgfHwgZGVmaW5lZChQUk9UTykKCi8qIHN0cnVjdHVyZSB1c2VkIGZvciBiX2ttYXBfZ2EuZ2FfZGF0YSAqLwp0eXBlZGVmIHN0cnVjdAp7CiAgICBjaGFyX3UJKmZyb207CiAgICBjaGFyX3UJKnRvOwp9IGttYXBfVDsKCiNkZWZpbmUgS01BUF9NQVhMRU4gMjAJICAgIC8qIG1heGltdW0gbGVuZ3RoIG9mICJmcm9tIiBvciAidG8iICovCgpzdGF0aWMgdm9pZCBrZXltYXBfdW5sb2FkIF9fQVJHUygodm9pZCkpOwoKLyoKICogU2V0IHVwIGtleSBtYXBwaW5nIHRhYmxlcyBmb3IgdGhlICdrZXltYXAnIG9wdGlvbi4KICogUmV0dXJucyBOVUxMIGlmIE9LLCBhbiBlcnJvciBtZXNzYWdlIGZvciBmYWlsdXJlLiAgVGhpcyBvbmx5IG5lZWRzIHRvIGJlCiAqIHVzZWQgd2hlbiBzZXR0aW5nIHRoZSBvcHRpb24sIG5vdCBsYXRlciB3aGVuIHRoZSB2YWx1ZSBoYXMgYWxyZWFkeSBiZWVuCiAqIGNoZWNrZWQuCiAqLwogICAgY2hhcl91ICoKa2V5bWFwX2luaXQoKQp7CiAgICBjdXJidWYtPmJfa21hcF9zdGF0ZSAmPSB+S0VZTUFQX0lOSVQ7CgogICAgaWYgKCpjdXJidWYtPmJfcF9rZXltYXAgPT0gTlVMKQogICAgewoJLyogU3RvcCBhbnkgYWN0aXZlIGtleW1hcCBhbmQgY2xlYXIgdGhlIHRhYmxlLiAgQWxzbyByZW1vdmUKCSAqIGI6a2V5bWFwX25hbWUsIGFzIG5vIGtleW1hcCBpcyBhY3RpdmUgbm93LiAqLwoJa2V5bWFwX3VubG9hZCgpOwoJZG9fY21kbGluZV9jbWQoKGNoYXJfdSAqKSJ1bmxldCEgYjprZXltYXBfbmFtZSIpOwogICAgfQogICAgZWxzZQogICAgewoJY2hhcl91CSpidWY7CglzaXplX3QgIGJ1ZmxlbjsKCgkvKiBTb3VyY2UgdGhlIGtleW1hcCBmaWxlLiAgSXQgd2lsbCBjb250YWluIGEgIjpsb2Fka2V5bWFwIiBjb21tYW5kCgkgKiB3aGljaCB3aWxsIGNhbGwgZXhfbG9hZGtleW1hcCgpIGJlbG93LiAqLwoJYnVmbGVuID0gU1RSTEVOKGN1cmJ1Zi0+Yl9wX2tleW1hcCkKIyBpZmRlZiBGRUFUX01CWVRFCgkJCQkJICAgKyBTVFJMRU4ocF9lbmMpCiMgZW5kaWYKCQkJCQkJICAgICAgICsgMTQ7CglidWYgPSBhbGxvYygodW5zaWduZWQpYnVmbGVuKTsKCWlmIChidWYgPT0gTlVMTCkKCSAgICByZXR1cm4gZV9vdXRvZm1lbTsKCiMgaWZkZWYgRkVBVF9NQllURQoJLyogdHJ5IGZpbmRpbmcgImtleW1hcC8na2V5bWFwJ18nZW5jb2RpbmcnLnZpbSIgIGluICdydW50aW1lcGF0aCcgKi8KCXZpbV9zbnByaW50ZigoY2hhciAqKWJ1ZiwgYnVmbGVuLCAia2V5bWFwLyVzXyVzLnZpbSIsCgkJCQkJCSAgIGN1cmJ1Zi0+Yl9wX2tleW1hcCwgcF9lbmMpOwoJaWYgKHNvdXJjZV9ydW50aW1lKGJ1ZiwgRkFMU0UpID09IEZBSUwpCiMgZW5kaWYKCXsKCSAgICAvKiB0cnkgZmluZGluZyAia2V5bWFwLydrZXltYXAnLnZpbSIgaW4gJ3J1bnRpbWVwYXRoJyAgKi8KCSAgICB2aW1fc25wcmludGYoKGNoYXIgKilidWYsIGJ1ZmxlbiwgImtleW1hcC8lcy52aW0iLAoJCQkJCQkJICBjdXJidWYtPmJfcF9rZXltYXApOwoJICAgIGlmIChzb3VyY2VfcnVudGltZShidWYsIEZBTFNFKSA9PSBGQUlMKQoJICAgIHsKCQl2aW1fZnJlZShidWYpOwoJCXJldHVybiAoY2hhcl91ICopTl8oIkU1NDQ6IEtleW1hcCBmaWxlIG5vdCBmb3VuZCIpOwoJICAgIH0KCX0KCXZpbV9mcmVlKGJ1Zik7CiAgICB9CgogICAgcmV0dXJuIE5VTEw7Cn0KCi8qCiAqICI6bG9hZGtleW1hcCIgY29tbWFuZDogbG9hZCB0aGUgZm9sbG93aW5nIGxpbmVzIGFzIHRoZSBrZXltYXAuCiAqLwogICAgdm9pZApleF9sb2Fka2V5bWFwKGVhcCkKICAgIGV4YXJnX1QJKmVhcDsKewogICAgY2hhcl91CSpsaW5lOwogICAgY2hhcl91CSpwOwogICAgY2hhcl91CSpzOwogICAga21hcF9UCSprcDsKI2RlZmluZSBLTUFQX0xMRU4gICAyMDAJICAgIC8qIG1heCBsZW5ndGggb2YgInRvIiBhbmQgImZyb20iIHRvZ2V0aGVyICovCiAgICBjaGFyX3UJYnVmW0tNQVBfTExFTiArIDExXTsKICAgIGludAkJaTsKICAgIGNoYXJfdQkqc2F2ZV9jcG8gPSBwX2NwbzsKCiAgICBpZiAoIWdldGxpbmVfZXF1YWwoZWFwLT5nZXRsaW5lLCBlYXAtPmNvb2tpZSwgZ2V0c291cmNlbGluZSkpCiAgICB7CglFTVNHKF8oIkUxMDU6IFVzaW5nIDpsb2Fka2V5bWFwIG5vdCBpbiBhIHNvdXJjZWQgZmlsZSIpKTsKCXJldHVybjsKICAgIH0KCiAgICAvKgogICAgICogU3RvcCBhbnkgYWN0aXZlIGtleW1hcCBhbmQgY2xlYXIgdGhlIHRhYmxlLgogICAgICovCiAgICBrZXltYXBfdW5sb2FkKCk7CgogICAgY3VyYnVmLT5iX2ttYXBfc3RhdGUgPSAwOwogICAgZ2FfaW5pdDIoJmN1cmJ1Zi0+Yl9rbWFwX2dhLCAoaW50KXNpemVvZihrbWFwX1QpLCAyMCk7CgogICAgLyogU2V0ICdjcG9wdGlvbnMnIHRvICJDIiB0byBhdm9pZCBsaW5lIGNvbnRpbnVhdGlvbi4gKi8KICAgIHBfY3BvID0gKGNoYXJfdSAqKSJDIjsKCiAgICAvKgogICAgICogR2V0IGVhY2ggbGluZSBvZiB0aGUgc291cmNlZCBmaWxlLCBicmVhayBhdCB0aGUgZW5kLgogICAgICovCiAgICBmb3IgKDs7KQogICAgewoJbGluZSA9IGVhcC0+Z2V0bGluZSgwLCBlYXAtPmNvb2tpZSwgMCk7CglpZiAobGluZSA9PSBOVUxMKQoJICAgIGJyZWFrOwoKCXAgPSBza2lwd2hpdGUobGluZSk7CglpZiAoKnAgIT0gJyInICYmICpwICE9IE5VTCAmJiBnYV9ncm93KCZjdXJidWYtPmJfa21hcF9nYSwgMSkgPT0gT0spCgl7CgkgICAga3AgPSAoa21hcF9UICopY3VyYnVmLT5iX2ttYXBfZ2EuZ2FfZGF0YSArIGN1cmJ1Zi0+Yl9rbWFwX2dhLmdhX2xlbjsKCSAgICBzID0gc2tpcHRvd2hpdGUocCk7CgkgICAga3AtPmZyb20gPSB2aW1fc3RybnNhdmUocCwgKGludCkocyAtIHApKTsKCSAgICBwID0gc2tpcHdoaXRlKHMpOwoJICAgIHMgPSBza2lwdG93aGl0ZShwKTsKCSAgICBrcC0+dG8gPSB2aW1fc3RybnNhdmUocCwgKGludCkocyAtIHApKTsKCgkgICAgaWYgKGtwLT5mcm9tID09IE5VTEwgfHwga3AtPnRvID09IE5VTEwKCQkgICAgfHwgU1RSTEVOKGtwLT5mcm9tKSArIFNUUkxFTihrcC0+dG8pID49IEtNQVBfTExFTgoJCSAgICB8fCAqa3AtPmZyb20gPT0gTlVMIHx8ICprcC0+dG8gPT0gTlVMKQoJICAgIHsKCQlpZiAoa3AtPnRvICE9IE5VTEwgJiYgKmtwLT50byA9PSBOVUwpCgkJICAgIEVNU0coXygiRTc5MTogRW1wdHkga2V5bWFwIGVudHJ5IikpOwoJCXZpbV9mcmVlKGtwLT5mcm9tKTsKCQl2aW1fZnJlZShrcC0+dG8pOwoJICAgIH0KCSAgICBlbHNlCgkJKytjdXJidWYtPmJfa21hcF9nYS5nYV9sZW47Cgl9Cgl2aW1fZnJlZShsaW5lKTsKICAgIH0KCiAgICAvKgogICAgICogc2V0dXAgIjpsbm9yZW1hcCIgdG8gbWFwIHRoZSBrZXlzCiAgICAgKi8KICAgIGZvciAoaSA9IDA7IGkgPCBjdXJidWYtPmJfa21hcF9nYS5nYV9sZW47ICsraSkKICAgIHsKCXZpbV9zbnByaW50ZigoY2hhciAqKWJ1Ziwgc2l6ZW9mKGJ1ZiksICI8YnVmZmVyPiAlcyAlcyIsCgkJCQkoKGttYXBfVCAqKWN1cmJ1Zi0+Yl9rbWFwX2dhLmdhX2RhdGEpW2ldLmZyb20sCgkJCQkgKChrbWFwX1QgKiljdXJidWYtPmJfa21hcF9nYS5nYV9kYXRhKVtpXS50byk7Cgkodm9pZClkb19tYXAoMiwgYnVmLCBMQU5HTUFQLCBGQUxTRSk7CiAgICB9CgogICAgcF9jcG8gPSBzYXZlX2NwbzsKCiAgICBjdXJidWYtPmJfa21hcF9zdGF0ZSB8PSBLRVlNQVBfTE9BREVEOwojaWZkZWYgRkVBVF9XSU5ET1dTCiAgICBzdGF0dXNfcmVkcmF3X2N1cmJ1ZigpOwojZW5kaWYKfQoKLyoKICogU3RvcCB1c2luZyAna2V5bWFwJy4KICovCiAgICBzdGF0aWMgdm9pZAprZXltYXBfdW5sb2FkKCkKewogICAgY2hhcl91CWJ1ZltLTUFQX01BWExFTiArIDEwXTsKICAgIGludAkJaTsKICAgIGNoYXJfdQkqc2F2ZV9jcG8gPSBwX2NwbzsKICAgIGttYXBfVAkqa3A7CgogICAgaWYgKCEoY3VyYnVmLT5iX2ttYXBfc3RhdGUgJiBLRVlNQVBfTE9BREVEKSkKCXJldHVybjsKCiAgICAvKiBTZXQgJ2Nwb3B0aW9ucycgdG8gIkMiIHRvIGF2b2lkIGxpbmUgY29udGludWF0aW9uLiAqLwogICAgcF9jcG8gPSAoY2hhcl91ICopIkMiOwoKICAgIC8qIGNsZWFyIHRoZSAiOmxtYXAicyAqLwogICAga3AgPSAoa21hcF9UICopY3VyYnVmLT5iX2ttYXBfZ2EuZ2FfZGF0YTsKICAgIGZvciAoaSA9IDA7IGkgPCBjdXJidWYtPmJfa21hcF9nYS5nYV9sZW47ICsraSkKICAgIHsKCXZpbV9zbnByaW50ZigoY2hhciAqKWJ1Ziwgc2l6ZW9mKGJ1ZiksICI8YnVmZmVyPiAlcyIsIGtwW2ldLmZyb20pOwoJKHZvaWQpZG9fbWFwKDEsIGJ1ZiwgTEFOR01BUCwgRkFMU0UpOwoJdmltX2ZyZWUoa3BbaV0uZnJvbSk7Cgl2aW1fZnJlZShrcFtpXS50byk7CiAgICB9CgogICAgcF9jcG8gPSBzYXZlX2NwbzsKCiAgICBnYV9jbGVhcigmY3VyYnVmLT5iX2ttYXBfZ2EpOwogICAgY3VyYnVmLT5iX2ttYXBfc3RhdGUgJj0gfktFWU1BUF9MT0FERUQ7CiNpZmRlZiBGRUFUX1dJTkRPV1MKICAgIHN0YXR1c19yZWRyYXdfY3VyYnVmKCk7CiNlbmRpZgp9CgojZW5kaWYgLyogRkVBVF9LRVlNQVAgKi8KCg==